<html>
  <head>
    <meta charset="utf-8"/>
    <title>Test Report</title>
    <style type="text/css">/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

body {
        font-family: Helvetica, Arial, sans-serif;
        font-size: 12px;
        min-width: 1200px;
        color: #999;
}
h2 {
        font-size: 16px;
        color: black;
}

p {
    color: black;
}

a {
        color: #999;
}

table {
        border-collapse: collapse;
}

/******************************
 * SUMMARY INFORMATION
 ******************************/

#configuration {
        font-size: 12px;
}

#configuration td {
        padding: 5px;
        border: 1px solid #E6E6E6;
}

#configuration tr:nth-child(odd) {
        background-color: #f6f6f6;
}

/******************************
 * TEST RESULT COLORS
 ******************************/
span.passed, .passed .col-result {
        color: green;
}
span.expected.failure, .expected.failure .col-result {
        color: orange;
}
span.skipped, .skipped .col-result {
        color: orange;
}
span.unexpected.pass, .unexpected.pass .col-result {
        color: red;
}
span.failed, .failure .col-result {
        color: red;
}
span.error,.error .col-result  {
        color: red;
}


/******************************
 * RESULTS TABLE
 * 
 * 1. Table Layout
 * 2. Debug
 * 3. Sorting items
 * 
 ******************************/

/*------------------
 * 1. Table Layout
 *------------------*/

#results-table {
        border: 1px solid #e6e6e6;
        color: #999;
        font-size: 12px;
        width: 100%
}

#results-table th, #results-table td {
        padding: 5px;
        border: 1px solid #E6E6E6;
        text-align: left
}
#results-table th {
        font-weight: bold
}

/*------------------
 * 2. Debug
 *------------------*/

.log:only-child {
        height: inherit
}
.log {
        background-color: #e6e6e6;
        border: 1px solid #e6e6e6;
        color: black;
        display: block;
        font-family: "Courier New", Courier, monospace;
        height: 230px;
        overflow-y: scroll;
        padding: 5px;
        white-space: pre-wrap
}
div.screenshot {
        border: 1px solid #e6e6e6;
        float: right;
        margin-left: 5px;
        height: 240px
}
div.screenshot img {
        height: 240px
}

/*if the result is passed or xpassed don't show debug row*/
.passed + .debug, .unexpected.pass + .debug {
        display: none;
}

/*------------------
 * 3. Sorting items
 *------------------*/
.sortable {
        cursor: pointer;
}

.sort-icon {
        font-size: 0px;
        float: left;
        margin-right: 5px;
        margin-top: 5px;
        /*triangle*/
        width: 0;
        height: 0;
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
}

.inactive .sort-icon {
        /*finish triangle*/
        border-top: 8px solid #E6E6E6;
}

.asc.active .sort-icon {
        /*finish triangle*/
        border-bottom: 8px solid #999;
}

.desc.active .sort-icon {
        /*finish triangle*/
        border-top: 8px solid #999;
}
</style></head>
  <body>
    <script type="text/javascript">/*! jQuery v1.8.2 jquery.com | jquery.org/license */
(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bY(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bW.length;while(e--){b=bW[e]+c;if(b in a)return b}return d}function bZ(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function b$(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bZ(c)&&(e[f]=p._data(c,"olddisplay",cc(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b_(a,b,c){var d=bP.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function ca(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bV[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bV[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bV[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bV[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bV[e]+"Width"))||0));return f}function cb(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0||d==null){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bQ.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+ca(a,b,c||(f?"border":"content"),e)+"px"}function cc(a){if(bS[a])return bS[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cA(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cv;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cA(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cA(a,c,d,e,"*",g)),h}function cB(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cC(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cD(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cL(){try{return new a.XMLHttpRequest}catch(b){}}function cM(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cU(){return setTimeout(function(){cN=b},0),cN=p.now()}function cV(a,b){p.each(b,function(b,c){var d=(cT[b]||[]).concat(cT["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cW(a,b,c){var d,e=0,f=0,g=cS.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cN||cU(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cN||cU(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cX(k,j.opts.specialEasing);for(;e<g;e++){d=cS[e].call(j,a,k,j.opts);if(d)return d}return cV(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cX(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cY(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bZ(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cc(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cP.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cZ(a,b,c,d,e){return new cZ.prototype.init(a,b,c,d,e)}function c$(a,b){var c,d={height:a},e=0;b=b?1:0;for(;e<4;e+=2-b)c=bV[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function da(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o&&!o.call(" ")?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":(a+"").replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete")setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){var e=p.type(c);e==="function"&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&e!=="string"&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")||(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)d=p._data(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)f.indexOf(" "+b[g]+" ")<0&&(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=b+""}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&p.expr.match.needsContext.test(f),namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=k.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click"))for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){h={},j=[];for(d=0;d<q;d++)l=o[d],m=l.selector,h[m]===b&&(h[m]=l.needsContext?p(m,this).index(f)>=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){i=u[d],c.currentTarget=i.elem;for(e=0;e<i.matches.length&&!c.isImmediatePropagationStopped();e++){l=i.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,g=((p.event.special[l.origType]||{}).handle||l.handler).apply(i.elem,r),g!==b&&(c.result=g,g===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length===1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h<i;h++)if(f=a[h])if(!c||c(f,d,e))g.push(f),j&&b.push(h);return g}function bl(a,b,c,d,e,f){return d&&!d[o]&&(d=bl(d)),e&&!e[o]&&(e=bl(e,f)),z(function(f,g,h,i){if(f&&e)return;var j,k,l,m=[],n=[],o=g.length,p=f||bo(b||"*",h.nodeType?[h]:h,[],f),q=a&&(f||!b)?bk(p,m,a,h,i):p,r=c?e||(f?a:o||d)?[]:g:q;c&&c(q,r,h,i);if(d){l=bk(r,n),d(l,[],h,i),j=l.length;while(j--)if(k=l[j])r[n[j]]=!(q[n[j]]=k)}if(f){j=a&&r.length;while(j--)if(k=r[j])f[m[j]]=!(g[m[j]]=k)}else r=bk(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):w.apply(g,r)})}function bm(a){var b,c,d,f=a.length,g=e.relative[a[0].type],h=g||e.relative[" "],i=g?1:0,j=bi(function(a){return a===b},h,!0),k=bi(function(a){return y.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i<f;i++)if(c=e.relative[a[i].type])m=[bi(bj(m),c)];else{c=e.filter[a[i].type].apply(null,a[i].matches);if(c[o]){d=++i;for(;d<f;d++)if(e.relative[a[d].type])break;return bl(i>1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i<d&&bm(a.slice(i,d)),d<f&&bm(a=a.slice(d)),d<f&&a.join(""))}m.push(c)}return bj(m)}function bn(a,b){var d=b.length>0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)bc(a,b[e],c,d);return c}function bp(a,b,c,d,f){var g,h,j,k,l,m=bh(a),n=m.length;if(!d&&m.length===1){h=m[0]=m[0].slice(0);if(h.length>2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;b<c;b++)if(this[b]===a)return b;return-1},z=function(a,b){return a[o]=b==null||b,a},A=function(){var a={},b=[];return z(function(c,d){return b.push(c)>e.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="<a name='"+o+"'></a><div name='"+o+"'></div>",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d<b;d+=2)a.push(d);return a}),odd:bf(function(a,b,c){for(var d=1;d<b;d+=2)a.push(d);return a}),lt:bf(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},j=s.compareDocumentPosition?function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,h=b.parentNode,i=g;if(g===h)return bg(a,b);if(!g)return-1;if(!h)return 1;while(i)e.unshift(i),i=i.parentNode;i=h;while(i)f.unshift(i),i=i.parentNode;c=e.length,d=f.length;for(var j=0;j<c&&j<d;j++)if(e[j]!==f[j])return bg(e[j],f[j]);return j===c?bg(a,f[j],-1):bg(e[j],b,1)},[0,0].sort(j),m=!k,bc.uniqueSort=function(a){var b,c=1;k=m,a.sort(j);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1);return a},bc.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},i=bc.compile=function(a,b){var c,d=[],e=[],f=D[o][a];if(!f){b||(b=bh(a)),c=b.length;while(c--)f=bm(b[c]),f[o]?d.push(f):e.push(f);f=D(a,bn(e,d))}return f},r.querySelectorAll&&function(){var a,b=bp,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[":focus"],f=[":active",":focus"],h=s.matchesSelector||s.mozMatchesSelector||s.webkitMatchesSelector||s.oMatchesSelector||s.msMatchesSelector;X(function(a){a.innerHTML="<select><option selected=''></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'/>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cT[c]=cT[c]||[],cT[c].unshift(b)},prefilter:function(a,b){b?cS.unshift(a):cS.push(a)}}),p.Tween=cZ,cZ.prototype={constructor:cZ,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cZ.propHooks[this.prop];return a&&a.get?a.get(this):cZ.propHooks._default.get(this)},run:function(a){var b,c=cZ.propHooks[this.prop];return this.options.duration?this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cZ.propHooks._default.set(this),this}},cZ.prototype.init.prototype=cZ.prototype,cZ.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cZ.propHooks.scrollTop=cZ.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(c$(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bZ).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cW(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cR.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:c$("show"),slideUp:c$("hide"),slideToggle:c$("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cZ.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cO&&(cO=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cO),cO=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c_=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j={top:0,left:0},k=this[0],l=k&&k.ownerDocument;if(!l)return;return(d=l.body)===k?p.offset.bodyOffset(k):(c=l.documentElement,p.contains(c,k)?(typeof k.getBoundingClientRect!="undefined"&&(j=k.getBoundingClientRect()),e=da(l),f=c.clientTop||d.clientTop||0,g=c.clientLeft||d.clientLeft||0,h=e.pageYOffset||c.scrollTop,i=e.pageXOffset||c.scrollLeft,{top:j.top+h-f,left:j.left+i-g}):j)},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);</script>
    <script type="text/javascript">/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

$(document).ready(function() {

        reset_sort_headers();

        split_debug_onto_two_rows();

        $('.col-links a.screenshot').click(function(event) {
                window.open($(this).parents('.results-table-row').next('.debug').find('.screenshot img').attr('src'));
                event.preventDefault();
        });

        $('.screenshot a').click(function(event) {
                window.open($(this).find('img').attr('src'));
                event.preventDefault();
        });

        $('.sortable').click(toggle_sort_states);

        $('.sortable').click(function() {
                var columnName = $(this).attr('col');
                if ($(this).hasClass('numeric')) {
                        sort_rows_num($(this), 'col-' + columnName);
                } else {
                sort_rows_alpha($(this), 'col-' + columnName);
                }
        });

});

function sort_rows_alpha(clicked, sortclass) {
        one_row_for_data();
        var therows = $('.results-table-row');
        therows.sort(function(s, t) {
                var a = s.getElementsByClassName(sortclass)[0].innerHTML.toLowerCase();
                var b = t.getElementsByClassName(sortclass)[0].innerHTML.toLowerCase();
                if (clicked.hasClass('asc')) {
                        if (a < b)
                                return -1;
                        if (a > b)
                                return 1;
                        return 0;
                } else {
                        if (a < b)
                                return 1;
                        if (a > b)
                                return -1;
                        return 0;
                }
        });
        $('#results-table-body').append(therows);
        split_debug_onto_two_rows();
}

function sort_rows_num(clicked, sortclass) {
        one_row_for_data();
        var therows = $('.results-table-row');
        therows.sort(function(s, t) {
                var a = s.getElementsByClassName(sortclass)[0].innerHTML
                var b = t.getElementsByClassName(sortclass)[0].innerHTML
                if (clicked.hasClass('asc')) {
                        return a - b;
                } else {
                        return b - a;
                }
        });
        $('#results-table-body').append(therows);
        split_debug_onto_two_rows();
}

function reset_sort_headers() {
        $('.sort-icon').remove();
        $('.sortable').prepend('<div class="sort-icon">vvv</div>');
        $('.sortable').removeClass('asc desc inactive active');
        $('.sortable').addClass('asc inactive');
}

function toggle_sort_states() {
        //if active, toggle between asc and desc
        if ($(this).hasClass('active')) {
                $(this).toggleClass('asc');
                $(this).toggleClass('desc');
        }

        //if inactive, reset all other functions and add ascending active
        if ($(this).hasClass('inactive')) {
                reset_sort_headers();
                $(this).removeClass('inactive');
                $(this).addClass('active');
        }
}

function split_debug_onto_two_rows() {
        $('tr.results-table-row').each(function() {
                $('<tr class="debug">').insertAfter(this).append($('.debug', this));
        });
        $('td.debug').attr('colspan', 5);
}

function one_row_for_data() {
        $('tr.results-table-row').each(function() {
                if ($(this).next().hasClass('debug')) {
                        $(this).append($(this).next().contents().unwrap());
                }
        });
}
</script>
    <p>Report generated on 15-Jun-2015 at 14:04:38 by gaiatest-v2.1 version 0.1</p>
    <h2>Configuration</h2>
    <table id="configuration">
      <tr>
        <td>Device firmware (date)</td>
        <td>15 Jun 2015 07:55:43</td></tr>
      <tr>
        <td>Device firmware (incremental)</td>
        <td>eng.cltbld.20150614.195532</td></tr>
      <tr>
        <td>Device firmware (release)</td>
        <td>4.4.2</td></tr>
      <tr>
        <td>Device identifier</td>
        <td>flame</td></tr>
      <tr>
        <td>Gaia date</td>
        <td>08 Jun 2015 17:48:23</td></tr>
      <tr>
        <td>Gaia revision</td>
        <td><a href="https://github.com/mozilla-b2g/gaia/commit/f8b848c82d1ed589f7a1eb5cc099830c867ff1d4" target="_blank">f8b848c82d1e</a></td></tr>
      <tr>
        <td>Gecko build</td>
        <td>20150614161205</td></tr>
      <tr>
        <td>Gecko revision</td>
        <td><a href="https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/7d767fc15126" target="_blank">7d767fc15126</a></td></tr>
      <tr>
        <td>Gecko version</td>
        <td>34.0</td></tr></table>
    <h2>Summary</h2>
    <p>90 tests ran in 7950 seconds.<br/><span class="passed">89 passed</span>, <span class="skipped">45 skipped</span>, <span class="failed">0 failed</span>, <span class="error">1 errors</span>.<br/><span class="expected failure">0 expected failures</span>, <span class="unexpected pass">0 unexpected passes</span>.</p>
    <h2>Results</h2>
    <table id="results-table">
      <thead id="results-table-head">
        <tr>
          <th class="sortable" col="result">Result</th>
          <th class="sortable" col="class">Class</th>
          <th class="sortable" col="name">Test Name</th>
          <th class="sortable numeric" col="duration">Duration</th>
          <th>Links</th></tr></thead>
      <tbody id="results-table-body">
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_browser_search.TestBrowserSearch</td>
          <td class="col-name">test_browser_search</td>
          <td class="col-duration">95.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_browser_navigation.TestBrowserNavigation</td>
          <td class="col-name">test_browser_back_button</td>
          <td class="col-duration">121.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_browser_bookmark.TestBrowserBookmark</td>
          <td class="col-name">test_browser_bookmark</td>
          <td class="col-duration">153.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_browser_share_link.TestBrowserShareToMessages</td>
          <td class="col-name">test_browser_share_to_messages</td>
          <td class="col-duration">125.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_calendar_flick_through_months.TestCalendar</td>
          <td class="col-name">test_calendar_flick_through_months</td>
          <td class="col-duration">76.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_camera_capture_photo.TestCamera</td>
          <td class="col-name">test_capture_a_photo</td>
          <td class="col-duration">80.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_camera_flash_modes.TestCameraFlashModes</td>
          <td class="col-name">test_camera_flash_modes</td>
          <td class="col-duration">88.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_cards_view_kill_apps_with_two_apps.TestCardsViewTwoApps</td>
          <td class="col-name">test_kill_app_from_cards_view</td>
          <td class="col-duration">83.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_clock_set_alarm.TestClockSetAlarm</td>
          <td class="col-name">test_clock_set_alarm</td>
          <td class="col-duration">126.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_call_contact.TestContacts</td>
          <td class="col-name">test_call_contact</td>
          <td class="col-duration">82.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sort_contacts.TestContacts</td>
          <td class="col-name">test_sort_contacts</td>
          <td class="col-duration">90.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_delete_contact.TestContacts</td>
          <td class="col-name">test_delete_contact</td>
          <td class="col-duration">79.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_add_contact_to_favorites.TestAddContactToFavorite</td>
          <td class="col-name">test_add_contact_to_favorite</td>
          <td class="col-duration">81.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_import_contacts_from_sim.TestImportContactsFromSIM</td>
          <td class="col-name">test_import_contacts_from_SIM</td>
          <td class="col-duration">97.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_export_contacts_to_sdcard.TestExportContactsToSDCard</td>
          <td class="col-name">test_export_contacts_to_sdcard</td>
          <td class="col-duration">82.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_import_contacts_from_sdcard.TestImportContactsFromSDCard</td>
          <td class="col-name">test_import_contacts_from_sdcard</td>
          <td class="col-duration">84.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="error results-table-row">
          <td class="col-result">Error</td>
          <td class="col-class">test_import_contacts_from_gmail.TestImportContactsFromGmail</td>
          <td class="col-name">test_import_contacts_from_gmail</td>
          <td class="col-duration">117.2</td>
          <td class="col-links"><a class="source" href="data:text/plain;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiI+PGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTMwMCwgaW5pdGlhbC1zY2FsZT0xIiAvPgogIDxtZXRhIGNvbnRlbnQ9IkxyZFRVVzlwc1VBTWJoNElhMDc0LUJQRVZtY3BCeEY2R3dmME1TZ1FYWnMiIG5hbWU9Imdvb2dsZS1zaXRlLXZlcmlmaWNhdGlvbiIgLz4KICA8dGl0bGU+U2lnbiBpbiAtIEdvb2dsZSBBY2NvdW50czwvdGl0bGU+CiAgPHN0eWxlPgogIEBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJzsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBzcmM6IGxvY2FsKCdPcGVuIFNhbnMgTGlnaHQnKSwgbG9jYWwoJ09wZW5TYW5zLUxpZ2h0JyksIHVybCgvL2ZvbnRzLmdzdGF0aWMuY29tL3Mvb3BlbnNhbnMvdjEzL0RYSTFPUkhDcHNRbTNWcDZtWG9hVFhoQ1VPR3o3dllHaDY4MGxHaC11WE0ud29mZikgZm9ybWF0KCd3b2ZmJyk7Cn0KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LXdlaWdodDogNDAwOwogIHNyYzogbG9jYWwoJ09wZW4gU2FucycpLCBsb2NhbCgnT3BlblNhbnMnKSwgdXJsKC8vZm9udHMuZ3N0YXRpYy5jb20vcy9vcGVuc2Fucy92MTMvY0paS2VPdUJybjRrRVJ4cXRhVUgzVDhFMGk3S1puLUVQbnlvM0hadTdrdy53b2ZmKSBmb3JtYXQoJ3dvZmYnKTsKfQogIDwvc3R5bGU+CiAgPHN0eWxlPgogIGgxLCBoMiB7CiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDAuMXM7CiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZm9udGZpeDsKICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDA7CiAgfQogIEAtd2Via2l0LWtleWZyYW1lcyBmb250Zml4IHsKICBmcm9tIHsKICBvcGFjaXR5OiAxOwogIH0KICB0byB7CiAgb3BhY2l0eTogMTsKICB9CiAgfQogIDwvc3R5bGU+CjxzdHlsZT4KICBodG1sLCBib2R5IHsKICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgYmFja2dyb3VuZDogI2ZmZjsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKICBib3JkZXI6IDA7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGhlaWdodDogMTAwJTsKICBtaW4td2lkdGg6IDEwMCU7CiAgZm9udC1zaXplOiAxM3B4OwogIGNvbG9yOiAjNDA0MDQwOwogIGRpcmVjdGlvbjogbHRyOwogIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogbm9uZTsKICB9CiAgYnV0dG9uLAogIGlucHV0W3R5cGU9YnV0dG9uXSwKICBpbnB1dFt0eXBlPXN1Ym1pdF0gewogIGZvbnQtZmFtaWx5OiBBcmlhbCwgc2Fucy1zZXJpZjsKICBmb250LXNpemU6IDEzcHg7CiAgfQogIGEsCiAgYTpob3ZlciwKICBhOnZpc2l0ZWQgewogIGNvbG9yOiAjNDI3ZmVkOwogIGN1cnNvcjogcG9pbnRlcjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIGE6aG92ZXIgewogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KICBoMSB7CiAgZm9udC1zaXplOiAyMHB4OwogIGNvbG9yOiAjMjYyNjI2OwogIG1hcmdpbjogMCAwIDE1cHg7CiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICB9CiAgaDIgewogIGZvbnQtc2l6ZTogMTRweDsKICBjb2xvcjogIzI2MjYyNjsKICBtYXJnaW46IDAgMCAxNXB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIH0KICBpbnB1dFt0eXBlPWVtYWlsXSwKICBpbnB1dFt0eXBlPW51bWJlcl0sCiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sCiAgaW5wdXRbdHlwZT10ZWxdLAogIGlucHV0W3R5cGU9dGV4dF0sCiAgaW5wdXRbdHlwZT11cmxdIHsKICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIGFwcGVhcmFuY2U6IG5vbmU7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIGhlaWdodDogMzZweDsKICBwYWRkaW5nOiAwIDhweDsKICBtYXJnaW46IDA7CiAgYmFja2dyb3VuZDogI2ZmZjsKICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYzBjMGMwOwogIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsKICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAtbW96LWJvcmRlci1yYWRpdXM6IDFweDsKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweDsKICBib3JkZXItcmFkaXVzOiAxcHg7CiAgZm9udC1zaXplOiAxNXB4OwogIGNvbG9yOiAjNDA0MDQwOwogIH0KICBpbnB1dFt0eXBlPWVtYWlsXTpob3ZlciwKICBpbnB1dFt0eXBlPW51bWJlcl06aG92ZXIsCiAgaW5wdXRbdHlwZT1wYXNzd29yZF06aG92ZXIsCiAgaW5wdXRbdHlwZT10ZWxdOmhvdmVyLAogIGlucHV0W3R5cGU9dGV4dF06aG92ZXIsCiAgaW5wdXRbdHlwZT11cmxdOmhvdmVyIHsKICBib3JkZXI6IDFweCBzb2xpZCAjYjliOWI5OwogIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYTBhMGEwOwogIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xKTsKICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xKTsKICB9CiAgaW5wdXRbdHlwZT1lbWFpbF06Zm9jdXMsCiAgaW5wdXRbdHlwZT1udW1iZXJdOmZvY3VzLAogIGlucHV0W3R5cGU9cGFzc3dvcmRdOmZvY3VzLAogIGlucHV0W3R5cGU9dGVsXTpmb2N1cywKICBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLAogIGlucHV0W3R5cGU9dXJsXTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKICBib3JkZXI6IDFweCBzb2xpZCAjNGQ5MGZlOwogIC1tb3otYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsKICAtd2Via2l0LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsKICB9CiAgaW5wdXRbdHlwZT1jaGVja2JveF0sCiAgaW5wdXRbdHlwZT1yYWRpb10gewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgd2lkdGg6IDEzcHg7CiAgaGVpZ2h0OiAxM3B4OwogIG1hcmdpbjogMDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsKICBiYWNrZ3JvdW5kOiAjZmZmOwogIGJvcmRlcjogMXB4IHNvbGlkICNjNmM2YzY7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAxcHg7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxcHg7CiAgYm9yZGVyLXJhZGl1czogMXB4OwogIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDsKICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgfQogIGlucHV0W3R5cGU9Y2hlY2tib3hdOmFjdGl2ZSwKICBpbnB1dFt0eXBlPXJhZGlvXTphY3RpdmUgewogIGJhY2tncm91bmQ6ICNlYmViZWI7CiAgfQogIGlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyIHsKICBib3JkZXItY29sb3I6ICNjNmM2YzY7CiAgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpOwogIC13ZWJraXQtYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpOwogIH0KICBpbnB1dFt0eXBlPXJhZGlvXSB7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAxZW07CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxZW07CiAgYm9yZGVyLXJhZGl1czogMWVtOwogIHdpZHRoOiAxNXB4OwogIGhlaWdodDogMTVweDsKICB9CiAgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCwKICBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIHsKICBiYWNrZ3JvdW5kOiAjZmZmOwogIH0KICBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkOjphZnRlciB7CiAgY29udGVudDogJyc7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIHRvcDogM3B4OwogIGxlZnQ6IDNweDsKICB3aWR0aDogN3B4OwogIGhlaWdodDogN3B4OwogIGJhY2tncm91bmQ6ICM2NjY7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAxZW07CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxZW07CiAgYm9yZGVyLXJhZGl1czogMWVtOwogIH0KICBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOjphZnRlciB7CiAgY29udGVudDogdXJsKC8vc3NsLmdzdGF0aWMuY29tL3VpL3YxL21lbnUvY2hlY2ttYXJrLnBuZyk7CiAgZGlzcGxheTogYmxvY2s7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogLTZweDsKICBsZWZ0OiAtNXB4OwogIH0KICBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKICBib3JkZXItY29sb3I6ICM0ZDkwZmU7CiAgfQogIC5zdGFja2VkLWxhYmVsIHsKICBkaXNwbGF5OiBibG9jazsKICBmb250LXdlaWdodDogYm9sZDsKICBtYXJnaW46IC41ZW0gMDsKICB9CiAgLmhpZGRlbi1sYWJlbCB7CiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CiAgY2xpcDogcmVjdCgxcHggMXB4IDFweCAxcHgpOyAvKiBJRTYsIElFNyAqLwogIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTsKICBoZWlnaHQ6IDBweDsKICB3aWR0aDogMHB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KICBpbnB1dFt0eXBlPWNoZWNrYm94XS5mb3JtLWVycm9yLAogIGlucHV0W3R5cGU9ZW1haWxdLmZvcm0tZXJyb3IsCiAgaW5wdXRbdHlwZT1udW1iZXJdLmZvcm0tZXJyb3IsCiAgaW5wdXRbdHlwZT1wYXNzd29yZF0uZm9ybS1lcnJvciwKICBpbnB1dFt0eXBlPXRleHRdLmZvcm0tZXJyb3IsCiAgaW5wdXRbdHlwZT10ZWxdLmZvcm0tZXJyb3IsCiAgaW5wdXRbdHlwZT11cmxdLmZvcm0tZXJyb3IgewogIGJvcmRlcjogMXB4IHNvbGlkICNkZDRiMzk7CiAgfQogIC5lcnJvci1tc2cgewogIG1hcmdpbjogLjVlbSAwOwogIGRpc3BsYXk6IGJsb2NrOwogIGNvbG9yOiAjZGQ0YjM5OwogIGxpbmUtaGVpZ2h0OiAxN3B4OwogIH0KICAuaGVscC1saW5rIHsKICBiYWNrZ3JvdW5kOiAjZGQ0YjM5OwogIHBhZGRpbmc6IDAgNXB4OwogIGNvbG9yOiAjZmZmOwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAtbW96LWJvcmRlci1yYWRpdXM6IDFlbTsKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFlbTsKICBib3JkZXItcmFkaXVzOiAxZW07CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB0b3A6IDBweDsKICB9CiAgLmhlbHAtbGluazp2aXNpdGVkIHsKICBjb2xvcjogI2ZmZjsKICB9CiAgLmhlbHAtbGluazpob3ZlciB7CiAgY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZDogI2MwMzUyMzsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIC5oZWxwLWxpbms6YWN0aXZlIHsKICBvcGFjaXR5OiAxOwogIGJhY2tncm91bmQ6ICNhZTI4MTc7CiAgfQogIC53cmFwcGVyIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgbWluLWhlaWdodDogMTAwJTsKICB9CiAgLmNvbnRlbnQgewogIHBhZGRpbmc6IDAgNDRweDsKICB9CiAgLm1haW4gewogIHBhZGRpbmctYm90dG9tOiAxMDBweDsKICB9CiAgLyogRm9yIG1vZGVybiBicm93c2VycyAqLwogIC5jbGVhcmZpeDpiZWZvcmUsCiAgLmNsZWFyZml4OmFmdGVyIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiB0YWJsZTsKICB9CiAgLmNsZWFyZml4OmFmdGVyIHsKICBjbGVhcjogYm90aDsKICB9CiAgLyogRm9yIElFIDYvNyAodHJpZ2dlciBoYXNMYXlvdXQpICovCiAgLmNsZWFyZml4IHsKICB6b29tOjE7CiAgfQogIC5nb29nbGUtaGVhZGVyLWJhciB7CiAgaGVpZ2h0OiA3MXB4OwogIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1OwogIG92ZXJmbG93OiBoaWRkZW47CiAgfQogIC5oZWFkZXIgLmxvZ28gewogIG1hcmdpbjogMTdweCAwIDA7CiAgZmxvYXQ6IGxlZnQ7CiAgaGVpZ2h0OiAzOHB4OwogIHdpZHRoOiAxMTZweDsKICB9CiAgLmhlYWRlciAuc2Vjb25kYXJ5LWxpbmsgewogIG1hcmdpbjogMjhweCAwIDA7CiAgZmxvYXQ6IHJpZ2h0OwogIH0KICAuaGVhZGVyIC5zZWNvbmRhcnktbGluayBhIHsKICBmb250LXdlaWdodDogbm9ybWFsOwogIH0KICAuZ29vZ2xlLWhlYWRlci1iYXIuY2VudGVyZWQgewogIGJvcmRlcjogMDsKICBoZWlnaHQ6IDEwOHB4OwogIH0KICAuZ29vZ2xlLWhlYWRlci1iYXIuY2VudGVyZWQgLmhlYWRlciAubG9nbyB7CiAgZmxvYXQ6IG5vbmU7CiAgbWFyZ2luOiA0MHB4IGF1dG8gMzBweDsKICBkaXNwbGF5OiBibG9jazsKICB9CiAgLmdvb2dsZS1oZWFkZXItYmFyLmNlbnRlcmVkIC5oZWFkZXIgLnNlY29uZGFyeS1saW5rIHsKICBkaXNwbGF5OiBub25lCiAgfQogIC5nb29nbGUtZm9vdGVyLWJhciB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGJvdHRvbTogMDsKICBoZWlnaHQ6IDM1cHg7CiAgd2lkdGg6IDEwMCU7CiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU1ZTU7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICB9CiAgLmZvb3RlciB7CiAgcGFkZGluZy10b3A6IDdweDsKICBmb250LXNpemU6IC44NWVtOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgbGluZS1oZWlnaHQ6IDA7CiAgfQogIC5mb290ZXIgdWwgewogIGZsb2F0OiBsZWZ0OwogIG1heC13aWR0aDogODAlOwogIG1pbi1oZWlnaHQ6IDE2cHg7CiAgcGFkZGluZzogMDsKICB9CiAgLmZvb3RlciB1bCBsaSB7CiAgY29sb3I6ICM3MzczNzM7CiAgZGlzcGxheTogaW5saW5lOwogIHBhZGRpbmc6IDA7CiAgcGFkZGluZy1yaWdodDogMS41ZW07CiAgfQogIC5mb290ZXIgYSB7CiAgY29sb3I6ICM3MzczNzM7CiAgfQogIC5sYW5nLWNob29zZXItd3JhcCB7CiAgZmxvYXQ6IHJpZ2h0OwogIGRpc3BsYXk6IGlubGluZTsKICB9CiAgLmxhbmctY2hvb3Nlci13cmFwIGltZyB7CiAgdmVydGljYWwtYWxpZ246IHRvcDsKICB9CiAgLmxhbmctY2hvb3NlciB7CiAgZm9udC1zaXplOiAxM3B4OwogIGhlaWdodDogMjRweDsKICBsaW5lLWhlaWdodDogMjRweDsKICB9CiAgLmxhbmctY2hvb3NlciBvcHRpb24gewogIGZvbnQtc2l6ZTogMTNweDsKICBsaW5lLWhlaWdodDogMjRweDsKICB9CiAgLmhpZGRlbiB7CiAgaGVpZ2h0OiAwcHg7CiAgd2lkdGg6IDBweDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHZpc2liaWxpdHk6IGhpZGRlbjsKICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgfQogIC5iYW5uZXIgewogIHRleHQtYWxpZ246IGNlbnRlcjsKICB9CiAgLmNhcmQgewogIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7CiAgcGFkZGluZzogMjBweCAyNXB4IDMwcHg7CiAgbWFyZ2luOiAwIGF1dG8gMjVweDsKICB3aWR0aDogMzA0cHg7CiAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7CiAgYm9yZGVyLXJhZGl1czogMnB4OwogIC1tb3otYm94LXNoYWRvdzogMHB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpOwogIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpOwogIGJveC1zaGFkb3c6IDBweCAycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICB9CiAgLmNhcmQgJmd0OyAqOmZpcnN0LWNoaWxkIHsKICBtYXJnaW4tdG9wOiAwOwogIH0KICAucmMtYnV0dG9uLAogIC5yYy1idXR0b246dmlzaXRlZCB7CiAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogIG1pbi13aWR0aDogNDZweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgY29sb3I6ICM0NDQ7CiAgZm9udC1zaXplOiAxNHB4OwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgaGVpZ2h0OiAzNnB4OwogIHBhZGRpbmc6IDAgOHB4OwogIGxpbmUtaGVpZ2h0OiAzNnB4OwogIC1tb3otYm9yZGVyLXJhZGl1czogM3B4OwogIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4OwogIGJvcmRlci1yYWRpdXM6IDNweDsKICAtby10cmFuc2l0aW9uOiBhbGwgMC4yMThzOwogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMjE4czsKICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjIxOHM7CiAgdHJhbnNpdGlvbjogYWxsIDAuMjE4czsKICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOwogIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUsI2YxZjFmMSk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUsI2YxZjFmMSk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSwjZjFmMWYxKTsKICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUsI2YxZjFmMSk7CiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvcCwjZjVmNWY1LCNmMWYxZjEpOwogIC1vLXRyYW5zaXRpb246IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogIHVzZXItc2VsZWN0OiBub25lOwogIGN1cnNvcjogZGVmYXVsdDsKICB9CiAgLmNhcmQgLnJjLWJ1dHRvbiB7CiAgd2lkdGg6IDEwMCU7CiAgcGFkZGluZzogMDsKICB9CiAgLnJjLWJ1dHRvbi5kaXNhYmxlZCwKICAucmMtYnV0dG9uW2Rpc2FibGVkXSB7CiAgb3BhY2l0eTogLjU7CiAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTUwKTsKICBjdXJzb3I6IGRlZmF1bHQ7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgfQogIC5yYy1idXR0b246aG92ZXIgewogIGJvcmRlcjogMXB4IHNvbGlkICNjNmM2YzY7CiAgY29sb3I6ICMzMzM7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIC1vLXRyYW5zaXRpb246IGFsbCAwLjBzOwogIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuMHM7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4wczsKICB0cmFuc2l0aW9uOiBhbGwgMC4wczsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOGY4OwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjhmOGY4LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjhmOGY4LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCNmOGY4ZjgsI2YxZjFmMSk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjhmOGY4LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsI2Y4ZjhmOCwjZjFmMWYxKTsKICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSk7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjEpOwogIGJveC1zaGFkb3c6IDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMSk7CiAgfQogIC5yYy1idXR0b246YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmNmY2OwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCNmNmY2ZjYsI2YxZjFmMSk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjZmNmY2LCNmMWYxZjEpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsI2Y2ZjZmNiwjZjFmMWYxKTsKICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSk7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLDAsMCwwLjEpOwogIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMSk7CiAgfQogIC5yYy1idXR0b24tc3VibWl0LAogIC5yYy1idXR0b24tc3VibWl0OnZpc2l0ZWQgewogIGJvcmRlcjogMXB4IHNvbGlkICMzMDc5ZWQ7CiAgY29sb3I6ICNmZmY7CiAgdGV4dC1zaGFkb3c6IDAgMXB4IHJnYmEoMCwwLDAsMC4xKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQ5MGZlOwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCM0Nzg3ZWQpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCM0Nzg3ZWQpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzQ3ODdlZCk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCM0Nzg3ZWQpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjNDc4N2VkKTsKICB9CiAgLnJjLWJ1dHRvbi1zdWJtaXQ6aG92ZXIgewogIGJvcmRlcjogMXB4IHNvbGlkICMyZjViYjc7CiAgY29sb3I6ICNmZmY7CiAgdGV4dC1zaGFkb3c6IDAgMXB4IHJnYmEoMCwwLDAsMC4zKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3YWU4OwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzM1N2FlOCk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KTsKICB9CiAgLnJjLWJ1dHRvbi1zdWJtaXQ6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzU3YWU4OwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCM0ZDkwZmUsIzM1N2FlOCk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjNGQ5MGZlLCMzNTdhZTgpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsIzRkOTBmZSwjMzU3YWU4KTsKICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjMpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7CiAgfQogIC5yYy1idXR0b24tcmVkLAogIC5yYy1idXR0b24tcmVkOnZpc2l0ZWQgewogIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGNvbG9yOiAjZmZmOwogIHRleHQtc2hhZG93OiAwIDFweCByZ2JhKDAsMCwwLDAuMSk7CiAgYmFja2dyb3VuZC1jb2xvcjogI2QxNDgzNjsKICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjZDE0ODM2KTsKICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjZDE0ODM2KTsKICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZGQ0YjM5LCNkMTQ4MzYpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjZDE0ODM2KTsKICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG9wLCNkZDRiMzksI2QxNDgzNik7CiAgfQogIC5yYy1idXR0b24tcmVkOmhvdmVyIHsKICBib3JkZXI6IDFweCBzb2xpZCAjYjAyODFhOwogIGNvbG9yOiAjZmZmOwogIHRleHQtc2hhZG93OiAwIDFweCByZ2JhKDAsMCwwLDAuMyk7CiAgYmFja2dyb3VuZC1jb2xvcjogI2M1MzcyNzsKICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjYzUzNzI3KTsKICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjYzUzNzI3KTsKICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZGQ0YjM5LCNjNTM3MjcpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjYzUzNzI3KTsKICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG9wLCNkZDRiMzksI2M1MzcyNyk7CiAgfQogIC5yYy1idXR0b24tcmVkOmFjdGl2ZSB7CiAgYm9yZGVyOiAxcHggc29saWQgIzk5MmExYjsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjYjAyODFhOwogIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZGQ0YjM5LCNiMDI4MWEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZGQ0YjM5LCNiMDI4MWEpOwogIGJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCNkZDRiMzksI2IwMjgxYSk7CiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZGQ0YjM5LCNiMDI4MWEpOwogIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0b3AsI2RkNGIzOSwjYjAyODFhKTsKICAtbW96LWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjMpOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMyk7CiAgfQogIC5zZWNvbmRhcnktYWN0aW9ucyB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIH0KPC9zdHlsZT4KPHN0eWxlIG1lZGlhPSIiPgogIC5nb29nbGUtaGVhZGVyLWJhci5jZW50ZXJlZCB7CiAgaGVpZ2h0OiA4M3B4OwogIH0KICAuZ29vZ2xlLWhlYWRlci1iYXIuY2VudGVyZWQgLmhlYWRlciAubG9nbyB7CiAgbWFyZ2luOiAyNXB4IGF1dG8gMjBweDsKICB9CiAgLmNhcmQgewogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgfQo8L3N0eWxlPgo8c3R5bGUgbWVkaWE9IiI+CiAgaHRtbCwgYm9keSB7CiAgZm9udC1zaXplOiAxNHB4OwogIH0KICAuZ29vZ2xlLWhlYWRlci1iYXIuY2VudGVyZWQgewogIGhlaWdodDogNzNweDsKICB9CiAgLmdvb2dsZS1oZWFkZXItYmFyLmNlbnRlcmVkIC5oZWFkZXIgLmxvZ28gewogIG1hcmdpbjogMjBweCBhdXRvIDE1cHg7CiAgfQogIC5jb250ZW50IHsKICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgcGFkZGluZy1yaWdodDogMTBweDsKICB9CiAgLmhpZGRlbi1zbWFsbCB7CiAgZGlzcGxheTogbm9uZTsKICB9CiAgLmNhcmQgewogIHBhZGRpbmc6IDIwcHggMTVweCAzMHB4OwogIHdpZHRoOiAyNzBweDsKICB9CiAgLmZvb3RlciB1bCBsaSB7CiAgcGFkZGluZy1yaWdodDogMWVtOwogIH0KICAubGFuZy1jaG9vc2VyLXdyYXAgewogIGRpc3BsYXk6IG5vbmU7CiAgfQo8L3N0eWxlPgo8c3R5bGU+CiAgcHJlLmRlYnVnIHsKICBmb250LWZhbWlseTogbW9ub3NwYWNlOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiAwOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAxLjVlbTsKICBmb250LXNpemU6IDEzcHg7CiAgYmFja2dyb3VuZDogI2YxZjFmMTsKICBib3JkZXItdG9wOiAxcHggc29saWQgI2U1ZTVlNTsKICBkaXJlY3Rpb246IGx0cjsKICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiAgd2lkdGg6IDkwJTsKICBvdmVyZmxvdzogaGlkZGVuOwogIH0KPC9zdHlsZT4KPHN0eWxlPgogIC5iYW5uZXIgaDEgewogIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgYXJpYWw7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgY29sb3I6ICM1NTU7CiAgZm9udC1zaXplOiA0MnB4OwogIGZvbnQtd2VpZ2h0OiAzMDA7CiAgbWFyZ2luLXRvcDogMDsKICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAuYmFubmVyIGgyIHsKICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIGFyaWFsOwogIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwogIGNvbG9yOiAjNTU1OwogIGZvbnQtc2l6ZTogMThweDsKICBmb250LXdlaWdodDogNDAwOwogIG1hcmdpbi1ib3R0b206IDIwcHg7CiAgfQogIC5zaWduaW4tY2FyZCB7CiAgd2lkdGg6IDI3NHB4OwogIHBhZGRpbmc6IDQwcHggNDBweDsKICB9CiAgLnNpZ25pbi1jYXJkIC5wcm9maWxlLWltZyB7CiAgd2lkdGg6IDk2cHg7CiAgaGVpZ2h0OiA5NnB4OwogIG1hcmdpbjogMCBhdXRvIDEwcHg7CiAgZGlzcGxheTogYmxvY2s7CiAgLW1vei1ib3JkZXItcmFkaXVzOiA1MCU7CiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MCU7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIH0KICAuc2lnbmluLWNhcmQgLnByb2ZpbGUtbmFtZSB7CiAgZm9udC1zaXplOiAxNnB4OwogIGZvbnQtd2VpZ2h0OiBib2xkOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBtYXJnaW46IDEwcHggMCAwOwogIG1pbi1oZWlnaHQ6IDFlbTsKICB9CiAgLnNpZ25pbi1jYXJkIC5wcm9maWxlLWVtYWlsIHsKICBmb250LXNpemU6IDE2cHg7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIG1hcmdpbjogMTBweCAwIDIwcHggMDsKICBtaW4taGVpZ2h0OiAxZW07CiAgfQogIC5zaWduaW4tY2FyZCBpbnB1dFt0eXBlPWVtYWlsXSwKICAuc2lnbmluLWNhcmQgaW5wdXRbdHlwZT1wYXNzd29yZF0sCiAgLnNpZ25pbi1jYXJkIGlucHV0W3R5cGU9dGV4dF0sCiAgLnNpZ25pbi1jYXJkIGlucHV0W3R5cGU9c3VibWl0XSB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKICB6LWluZGV4OiAxOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgfQogIC5zaWduaW4tY2FyZCAjRW1haWwsCiAgLnNpZ25pbi1jYXJkICNQYXNzd2QsCiAgLnNpZ25pbi1jYXJkIC5jYXB0Y2hhIHsKICBkaXJlY3Rpb246IGx0cjsKICBoZWlnaHQ6IDQ0cHg7CiAgbGluZS1oZWlnaHQ6IDQ0cHg7CiAgZm9udC1zaXplOiAxNnB4OwogIH0KICAuc2lnbmluLWNhcmQgI0VtYWlsICsgLnN0YWNrZWQtbGFiZWwgewogIG1hcmdpbi10b3A6IDE1cHg7CiAgfQogIC5zaWduaW4tY2FyZCAjcmVhdXRoRW1haWwgewogIGRpc3BsYXk6IGJsb2NrOwogIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgbGluZS1oZWlnaHQ6IDM2cHg7CiAgcGFkZGluZzogMCA4cHg7CiAgZm9udC1zaXplOiAxNXB4OwogIGNvbG9yOiAjNDA0MDQwOwogIGxpbmUtaGVpZ2h0OiAyOwogIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgZm9udC1zaXplOiAxNHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIH0KICAub25lLWdvb2dsZSBwIHsKICBtYXJnaW46IDAgMCAxMHB4OwogIGNvbG9yOiAjNTU1OwogIGZvbnQtc2l6ZTogMTRweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgfQogIC5vbmUtZ29vZ2xlIHAuY3JlYXRlLWFjY291bnQsCiAgLm9uZS1nb29nbGUgcC5zd2l0Y2gtYWNjb3VudCB7CiAgbWFyZ2luLWJvdHRvbTogNjBweDsKICB9CiAgLm9uZS1nb29nbGUgaW1nIHsKICBkaXNwbGF5OiBibG9jazsKICB3aWR0aDogMjEwcHg7CiAgaGVpZ2h0OiAxN3B4OwogIG1hcmdpbjogMTBweCBhdXRvOwogIH0KPC9zdHlsZT4KPHN0eWxlIG1lZGlhPSIiPgogIC5iYW5uZXIgaDEgewogIGZvbnQtc2l6ZTogMzhweDsKICBtYXJnaW4tYm90dG9tOiAxNXB4OwogIH0KICAuYmFubmVyIGgyIHsKICBtYXJnaW4tYm90dG9tOiAxNXB4OwogIH0KICAub25lLWdvb2dsZSBwLmNyZWF0ZS1hY2NvdW50LAogIC5vbmUtZ29vZ2xlIHAuc3dpdGNoLWFjY291bnQgewogIG1hcmdpbi1ib3R0b206IDMwcHg7CiAgfQogIC5zaWduaW4tY2FyZCAjRW1haWwgewogIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5zaWduaW4tY2FyZCAjUGFzc3dkIHsKICBtYXJnaW4tdG9wOiAtMXB4OwogIH0KICAuc2lnbmluLWNhcmQgI0VtYWlsLmZvcm0tZXJyb3IsCiAgLnNpZ25pbi1jYXJkICNQYXNzd2QuZm9ybS1lcnJvciB7CiAgei1pbmRleDogMjsKICB9CiAgLnNpZ25pbi1jYXJkICNFbWFpbDpob3ZlciwKICAuc2lnbmluLWNhcmQgI0VtYWlsOmZvY3VzLAogIC5zaWduaW4tY2FyZCAjUGFzc3dkOmhvdmVyLAogIC5zaWduaW4tY2FyZCAjUGFzc3dkOmZvY3VzIHsKICB6LWluZGV4OiAzOwogIH0KPC9zdHlsZT4KPHN0eWxlIG1lZGlhPSIiPgogIC5iYW5uZXIgaDEgewogIGZvbnQtc2l6ZTogMjJweDsKICBtYXJnaW4tYm90dG9tOiAxNXB4OwogIH0KICAuc2lnbmluLWNhcmQgewogIHdpZHRoOiAyNjBweDsKICBwYWRkaW5nOiAyMHB4IDIwcHg7CiAgbWFyZ2luOiAwIGF1dG8gMjBweDsKICB9CiAgLnNpZ25pbi1jYXJkIC5wcm9maWxlLWltZyB7CiAgd2lkdGg6IDcycHg7CiAgaGVpZ2h0OiA3MnB4OwogIC1tb3otYm9yZGVyLXJhZGl1czogNzJweDsKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDcycHg7CiAgYm9yZGVyLXJhZGl1czogNzJweDsKICB9Cjwvc3R5bGU+CjxzdHlsZT4KICAuamZrLXRvb2x0aXAgewogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgYm9yZGVyOiAxcHggc29saWQ7CiAgY29sb3I6ICM3MzczNzM7CiAgZm9udC1zaXplOiAxMnB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB6LWluZGV4OiA4MDAgIWltcG9ydGFudDsKICBib3JkZXItY29sb3I6ICNiYmIgI2JiYiAjYThhOGE4OwogIHBhZGRpbmc6IDE2cHg7CiAgd2lkdGg6IDI1MHB4OwogIH0KIC5qZmstdG9vbHRpcCBoMyB7CiAgY29sb3I6ICM1NTU7CiAgZm9udC1zaXplOiAxMnB4OwogIG1hcmdpbjogMCAwIC41ZW07CiAgfQogLmpmay10b29sdGlwLWNvbnRlbnQgcDpsYXN0LWNoaWxkIHsKICBtYXJnaW4tYm90dG9tOiAwOwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3cgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB9CiAgLmpmay10b29sdGlwLWFycm93IC5qZmstdG9vbHRpcC1hcnJvd2ltcGxiZWZvcmUsCiAgLmpmay10b29sdGlwLWFycm93IC5qZmstdG9vbHRpcC1hcnJvd2ltcGxhZnRlciB7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMDsKICB9CiAgLmpmay10b29sdGlwLWFycm93IC5qZmstdG9vbHRpcC1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlcjogOXB4IHNvbGlkOwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3cgLmpmay10b29sdGlwLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXI6IDhweCBzb2xpZDsKICB9CiAgLmpmay10b29sdGlwLWFycm93ZG93biB7CiAgYm90dG9tOiAwOwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3d1cCB7CiAgdG9wOiAtOXB4OwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3dsZWZ0IHsKICBsZWZ0OiAtOXB4OwogIHRvcDogMzBweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93cmlnaHQgewogIHJpZ2h0OiAwOwogIHRvcDogMzBweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93ZG93biAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYmVmb3JlLC5qZmstdG9vbHRpcC1hcnJvd3VwIC5qZmstdG9vbHRpcC1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlci1jb2xvcjogI2JiYiB0cmFuc3BhcmVudDsKICBsZWZ0OiAtOXB4OwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3dkb3duIC5qZmstdG9vbHRpcC1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlci1jb2xvcjogI2E4YThhOCB0cmFuc3BhcmVudDsKICB9CiAgLmpmay10b29sdGlwLWFycm93ZG93biAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYWZ0ZXIsLmpmay10b29sdGlwLWFycm93dXAgLmpmay10b29sdGlwLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItY29sb3I6ICNmZmYgdHJhbnNwYXJlbnQ7CiAgbGVmdDogLThweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93ZG93biAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYmVmb3JlIHsKICBib3JkZXItYm90dG9tLXdpZHRoOiAwOwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3dkb3duIC5qZmstdG9vbHRpcC1hcnJvd2ltcGxhZnRlciB7CiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDsKICB9CiAgLmpmay10b29sdGlwLWFycm93dXAgLmpmay10b29sdGlwLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLXRvcC13aWR0aDogMDsKICB9CiAgLmpmay10b29sdGlwLWFycm93dXAgLmpmay10b29sdGlwLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItdG9wLXdpZHRoOiAwOwogIHRvcDogMXB4OwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3dsZWZ0IC5qZmstdG9vbHRpcC1hcnJvd2ltcGxiZWZvcmUsCiAgLmpmay10b29sdGlwLWFycm93cmlnaHQgLmpmay10b29sdGlwLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCAjYmJiOwogIHRvcDogLTlweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93bGVmdCAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYWZ0ZXIsCiAgLmpmay10b29sdGlwLWFycm93cmlnaHQgLmpmay10b29sdGlwLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2ZmZjsKICB0b3A6LThweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93bGVmdCAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYmVmb3JlIHsKICBib3JkZXItbGVmdC13aWR0aDogMDsKICB9CiAgLmpmay10b29sdGlwLWFycm93bGVmdCAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYWZ0ZXIgewogIGJvcmRlci1sZWZ0LXdpZHRoOiAwOwogIGxlZnQ6IDFweDsKICB9CiAgLmpmay10b29sdGlwLWFycm93cmlnaHQgLmpmay10b29sdGlwLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOwogIH0KICAuamZrLXRvb2x0aXAtYXJyb3dyaWdodCAuamZrLXRvb2x0aXAtYXJyb3dpbXBsYWZ0ZXIgewogIGJvcmRlci1yaWdodC13aWR0aDogMDsKICB9CiAgLmpmay10b29sdGlwLWNsb3NlYnRuIHsKICBiYWNrZ3JvdW5kOiB1cmwoIi8vc3NsLmdzdGF0aWMuY29tL3VpL3YxL2ljb25zL2NvbW1vbi94XzhweC5wbmciKSBuby1yZXBlYXQ7CiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgaGVpZ2h0OiAyMXB4OwogIG9wYWNpdHk6IC40OwogIG91dGxpbmU6IDA7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHJpZ2h0OiAycHg7CiAgdG9wOiAycHg7CiAgd2lkdGg6IDIxcHg7CiAgfQogIC5qZmstdG9vbHRpcC1jbG9zZWJ0bjpmb2N1cywKICAuamZrLXRvb2x0aXAtY2xvc2VidG46aG92ZXIgewogIG9wYWNpdHk6IC44OwogIGN1cnNvcjogcG9pbnRlcjsKICB9CiAgLmpmay10b29sdGlwLWNsb3NlYnRuOmZvY3VzIHsKICBib3JkZXItY29sb3I6ICM0ZDkwZmU7CiAgfQo8L3N0eWxlPgo8c3R5bGUgbWVkaWE9IiI+CiAgLmpmay10b29sdGlwIHsKICBkaXNwbGF5OiBub25lOwogIH0KPC9zdHlsZT4KPHN0eWxlPgogIC5yZW1lbWJlciAuYnViYmxlLXdyYXAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBwYWRkaW5nLXRvcDogM3B4OwogIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgLjIxOHMgZWFzZS1pbiAuMjE4czsKICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgLjIxOHMgZWFzZS1pbiAuMjE4czsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgLjIxOHMgZWFzZS1pbiAuMjE4czsKICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yMThzIGVhc2UtaW4gLjIxOHM7CiAgbGVmdDogLTk5OWVtOwogIG9wYWNpdHk6IDA7CiAgd2lkdGg6IDMxNHB4OwogIG1hcmdpbi1sZWZ0OiAtMjBweDsKICB9CiAgLnJlbWVtYmVyOmhvdmVyIC5idWJibGUtd3JhcCwKICAucmVtZW1iZXIgaW5wdXQ6Zm9jdXMgfiAuYnViYmxlLXdyYXAsCiAgLnJlbWVtYmVyIC5idWJibGUtd3JhcDpob3ZlciwKICAucmVtZW1iZXIgLmJ1YmJsZS13cmFwOmZvY3VzIHsKICBvcGFjaXR5OiAxOwogIGxlZnQ6IGluaGVyaXQ7CiAgfQogIC5idWJibGUtcG9pbnRlciB7CiAgYm9yZGVyLWxlZnQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7CiAgYm9yZGVyLXJpZ2h0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgI2ZmZjsKICB3aWR0aDogMDsKICBoZWlnaHQ6IDA7CiAgbWFyZ2luLWxlZnQ6IDE3cHg7CiAgfQogIC5idWJibGUgewogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgcGFkZGluZzogMTVweDsKICBtYXJnaW4tdG9wOiAtMXB4OwogIGZvbnQtc2l6ZTogMTFweDsKICAtbW96LWJvcmRlci1yYWRpdXM6IDJweDsKICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDJweDsKICBib3JkZXItcmFkaXVzOiAycHg7CiAgLW1vei1ib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMnB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgYm94LXNoYWRvdzogMHB4IDJweCAycHggcmdiYSgwLCAwLCAwLCAwLjMpOwogIH0KICAjc3RheS1zaWduZWQtaW4gewogIGZsb2F0OiBsZWZ0OwogIH0KICAjc3RheS1zaWduZWQtaW4tdG9vbHRpcCB7CiAgbGVmdDogYXV0bzsKICBtYXJnaW4tbGVmdDogLTIwcHg7CiAgcGFkZGluZy10b3A6IDNweDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiAwOwogIHZpc2liaWxpdHk6IGhpZGRlbjsKICB3aWR0aDogMzE0cHg7CiAgei1pbmRleDogMTsKICB9CiAgLmRhc2hlci10b29sdGlwIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgbGVmdDogNTAlOwogIHRvcDogMzgwcHg7CiAgbWFyZ2luLWxlZnQ6IDE1MHB4OwogIH0KICAuZGFzaGVyLXRvb2x0aXAgLnRvb2x0aXAtcG9pbnRlciB7CiAgbWFyZ2luLXRvcDogMTVweDsKICB9CiAgLmRhc2hlci10b29sdGlwIHAgewogIG1hcmdpbi10b3A6IDA7CiAgfQogIC5kYXNoZXItdG9vbHRpcCBwIHNwYW4gewogIGRpc3BsYXk6IGJsb2NrOwogIH0KPC9zdHlsZT4KPHN0eWxlIG1lZGlhPSIiPgogIC5kYXNoZXItdG9vbHRpcCB7CiAgdG9wOiAzNDBweDsKICB9Cjwvc3R5bGU+CjxzdHlsZT4KICAuaW5mb21zZyB7CiAgY29sb3I6ICM3OTc5Nzk7CiAgbGluZS1oZWlnaHQ6IDE3cHg7CiAgbWFyZ2luOiAwLjVlbSAwIDA7CiAgZGlzcGxheTogYmxvY2s7CiAgfQogIC5qZmstYnViYmxlIHsKICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4yKTsKICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4yKTsKICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwuMik7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBib3JkZXI6IDFweCBzb2xpZDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogODAwICFpbXBvcnRhbnQ7CiAgYm9yZGVyLWNvbG9yOiAjYmJiICNiYmIgI2E4YThhODsKICBwYWRkaW5nOiAxNnB4OwogIGxpbmUtaGVpZ2h0OiAxN3B4OwogIH0KICAuamZrLWJ1YmJsZS1hcnJvdyB7CiAgcG9zaXRpb246IGFic29sdXRlCiAgfQogIC5qZmstYnViYmxlLWFycm93IC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSwuamZrLWJ1YmJsZS1hcnJvdyAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciB7CiAgZGlzcGxheTpibG9jazsKICBoZWlnaHQ6MDsKICBwb3NpdGlvbjphYnNvbHV0ZTsKICB3aWR0aDowCiAgfQogIC5qZmstYnViYmxlLWFycm93IC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyOjlweCBzb2xpZAogIH0KICAuamZrLWJ1YmJsZS1hcnJvdyAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciB7CiAgYm9yZGVyOjhweCBzb2xpZAogIH0KICAuamZrLWJ1YmJsZS1hcnJvd2Rvd24gewogIGJvdHRvbTowCiAgfQogIC5qZmstYnViYmxlLWFycm93dXAgewogIHRvcDotOXB4CiAgfQogIC5qZmstYnViYmxlLWFycm93bGVmdCB7CiAgbGVmdDotOXB4CiAgfQogIC5qZmstYnViYmxlLWFycm93cmlnaHQgewogIHJpZ2h0OjAKICB9CiAgLmpmay1idWJibGUtYXJyb3dkb3duIC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSwuamZrLWJ1YmJsZS1hcnJvd3VwIC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLWNvbG9yOiNiYmIgdHJhbnNwYXJlbnQ7CiAgbGVmdDotOXB4CiAgfQogIC5qZmstYnViYmxlLWFycm93ZG93biAuamZrLWJ1YmJsZS1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlci1jb2xvcjojYThhOGE4IHRyYW5zcGFyZW50CiAgfQogIC5qZmstYnViYmxlLWFycm93ZG93biAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciwuamZrLWJ1YmJsZS1hcnJvd3VwIC5qZmstYnViYmxlLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItY29sb3I6I2ZmZiB0cmFuc3BhcmVudDsKICBsZWZ0Oi04cHgKICB9CiAgLmpmay1idWJibGUtYXJyb3dkb3duIC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLWJvdHRvbS13aWR0aDowCiAgfQogIC5qZmstYnViYmxlLWFycm93ZG93biAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciB7CiAgYm9yZGVyLWJvdHRvbS13aWR0aDowCiAgfQogIC5qZmstYnViYmxlLWFycm93dXAgLmpmay1idWJibGUtYXJyb3dpbXBsYmVmb3JlIHsKICBib3JkZXItdG9wLXdpZHRoOjAKICB9CiAgLmpmay1idWJibGUtYXJyb3d1cCAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciB7CiAgYm9yZGVyLXRvcC13aWR0aDowOwogIHRvcDoxcHgKICB9CiAgLmpmay1idWJibGUtYXJyb3dsZWZ0IC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSwuamZrLWJ1YmJsZS1hcnJvd3JpZ2h0IC5qZmstYnViYmxlLWFycm93aW1wbGJlZm9yZSB7CiAgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNiYmI7CiAgdG9wOi05cHgKICB9CiAgLmpmay1idWJibGUtYXJyb3dsZWZ0IC5qZmstYnViYmxlLWFycm93aW1wbGFmdGVyLC5qZmstYnViYmxlLWFycm93cmlnaHQgLmpmay1idWJibGUtYXJyb3dpbXBsYWZ0ZXIgewogIGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjZmZmOwogIHRvcDotOHB4CiAgfQogIC5qZmstYnViYmxlLWFycm93bGVmdCAuamZrLWJ1YmJsZS1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlci1sZWZ0LXdpZHRoOjAKICB9CiAgLmpmay1idWJibGUtYXJyb3dsZWZ0IC5qZmstYnViYmxlLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItbGVmdC13aWR0aDowOwogIGxlZnQ6MXB4CiAgfQogIC5qZmstYnViYmxlLWFycm93cmlnaHQgLmpmay1idWJibGUtYXJyb3dpbXBsYmVmb3JlIHsKICBib3JkZXItcmlnaHQtd2lkdGg6MAogIH0KICAuamZrLWJ1YmJsZS1hcnJvd3JpZ2h0IC5qZmstYnViYmxlLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItcmlnaHQtd2lkdGg6MAogIH0KICAuamZrLWJ1YmJsZS5qZmstYnViYmxlLXByb21vIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiNmOWVkYmU7CiAgYm9yZGVyOjFweCBzb2xpZCAjZjBjMzZkCiAgfQogIC5qZmstYnViYmxlLXByb21vIC5qZmstYnViYmxlLWFycm93ZG93biAuamZrLWJ1YmJsZS1hcnJvd2ltcGxiZWZvcmUsLmpmay1idWJibGUtcHJvbW8gLmpmay1idWJibGUtYXJyb3d1cCAuamZrLWJ1YmJsZS1hcnJvd2ltcGxiZWZvcmUgewogIGJvcmRlci1jb2xvcjojZjBjMzZkIHRyYW5zcGFyZW50CiAgfQogIC5qZmstYnViYmxlLXByb21vIC5qZmstYnViYmxlLWFycm93ZG93biAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciwuamZrLWJ1YmJsZS1wcm9tbyAuamZrLWJ1YmJsZS1hcnJvd3VwIC5qZmstYnViYmxlLWFycm93aW1wbGFmdGVyIHsKICBib3JkZXItY29sb3I6I2Y5ZWRiZSB0cmFuc3BhcmVudAogIH0KICAuamZrLWJ1YmJsZS1wcm9tbyAuamZrLWJ1YmJsZS1hcnJvd2xlZnQgLmpmay1idWJibGUtYXJyb3dpbXBsYmVmb3JlLC5qZmstYnViYmxlLXByb21vIC5qZmstYnViYmxlLWFycm93cmlnaHQgLmpmay1idWJibGUtYXJyb3dpbXBsYmVmb3JlIHsKICBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgI2YwYzM2ZAogIH0KICAuamZrLWJ1YmJsZS1wcm9tbyAuamZrLWJ1YmJsZS1hcnJvd2xlZnQgLmpmay1idWJibGUtYXJyb3dpbXBsYWZ0ZXIsLmpmay1idWJibGUtcHJvbW8gLmpmay1idWJibGUtYXJyb3dyaWdodCAuamZrLWJ1YmJsZS1hcnJvd2ltcGxhZnRlciB7CiAgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICNmOWVkYmUKICB9Cjwvc3R5bGU+CjxzdHlsZT4KLmZvcm0tcGFuZWwgewogIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEwMCU7Cn0KLmZvcm0tcGFuZWwuZmlyc3QgewogIHotaW5kZXg6IDI7Cn0KLmZvcm0tcGFuZWwuc2Vjb25kIHsKICB6LWluZGV4OiAxOwp9Ci5zaGlmdC1mb3JtIC5mb3JtLXBhbmVsLmZpcnN0IHsKICB6LWluZGV4OiAxOwp9Ci5zaGlmdC1mb3JtIC5mb3JtLXBhbmVsLnNlY29uZCB7CiAgei1pbmRleDogMjsKfQouaGlkZS1mb3JtLnNsaWRlLW91dCB7CiAgZGlzcGxheTogbm9uZTsKfQouaGlkZS1mb3JtLnNsaWRlLWluIHsKICBkaXNwbGF5OiBub25lOwp9Ci5oaWRlLWZvcm0uc2xpZGUtaW4gI1Bhc3N3ZCB7CiAgZGlzcGxheTogbm9uZTsKfQouc2xpZGUtaW4sCi5zbGlkZS1vdXQgewogIGRpc3BsYXk6IGJsb2NrOwogIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLXdlYmtpdC10cmFuc2Zvcm0sIG9wYWNpdHk7CiAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiAtbW96LXRyYW5zZm9ybSwgb3BhY2l0eTsKICAtbXMtdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1zLXRyYW5zZm9ybSwgb3BhY2l0eTsKICAtby10cmFuc2l0aW9uLXByb3BlcnR5OiAtby10cmFuc2Zvcm0sIG9wYWNpdHk7CiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtLCBvcGFjaXR5OwogIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xczsKICAtbW96LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMXM7CiAgLW1zLXRyYW5zaXRpb24tZHVyYXRpb246IDAuMXM7CiAgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xczsKICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFzOwogIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTsKICAtbXMtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7CiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7Cn0KLnNsaWRlLW91dCB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7Cn0KLnNoaWZ0LWZvcm0gLnNsaWRlLW91dCB7CiAgb3BhY2l0eTogMDsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEyMCUsIDAsIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTIwJSwgMCwgMCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEyMCUsIDAsIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEyMCUsIDAsIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEyMCUsIDAsIDApOwp9Ci5zbGlkZS1pbiB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEyMCUsIDAsIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMjAlLCAwLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMjAlLCAwLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEyMCUsIDAsIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTIwJSwgMCwgMCk7Cn0KLnNoaWZ0LWZvcm0gLnNsaWRlLWluIHsKICBvcGFjaXR5OiAxOwogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOwp9Ci5lcnJvci1tc2cgewogIC13ZWJraXQtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzLCBvcGFjaXR5IDAuM3MgMHMgc3RlcHMoMTAsIGVuZCk7CiAgLW1vei10cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuM3MsIG9wYWNpdHkgMC4zcyAwcyBzdGVwcygxMCwgZW5kKTsKICAtbXMtdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzLCBvcGFjaXR5IDAuM3MgMHMgc3RlcHMoMTAsIGVuZCk7CiAgLW8tdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzLCBvcGFjaXR5IDAuM3MgMHMgc3RlcHMoMTAsIGVuZCk7CiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzLCBvcGFjaXR5IDAuM3MgMHMgc3RlcHMoMTAsIGVuZCk7CiAgaGVpZ2h0OiBhdXRvOwogIG1heC1oZWlnaHQ6IDA7CiAgb3BhY2l0eTogMDsKfQouaGFzLWVycm9yIC5lcnJvci1tc2cgewogIG1heC1oZWlnaHQ6IDMuNWVtOwogIG1hcmdpbi10b3A6IDEwcHg7CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKICBvcGFjaXR5OiAxOwogIHZpc2liaWxpdHk6IHZpc2libGU7Cn0KLmJhY2stYXJyb3cgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0b3A6IDM3cHg7CiAgd2lkdGg6IDI0cHg7CiAgaGVpZ2h0OiAyNHB4OwogIGRpc3BsYXk6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwp9Ci5zaGlmdC1mb3JtLmJhY2stYXJyb3cgewogIGRpc3BsYXk6IGJsb2NrOwp9CiNsaW5rLXNpZ251cCB7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIGZvbnQtc2l6ZTogMTRweDsKfQouc2hpZnQtZm9ybSAjbGluay1zaWdudXB7CiAgZGlzcGxheTogbm9uZTsKfQojbGluay1zaWduaW4tZGlmZmVyZW50IHsKICBkaXNwbGF5OiBub25lOwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBmb250LXNpemU6IDE0cHg7Cn0KLnNoaWZ0LWZvcm0gI2xpbmstc2lnbmluLWRpZmZlcmVudCB7CiAgZGlzcGxheTogYmxvY2s7Cn0KLnNpZ25pbi1jYXJkICNwcm9maWxlLW5hbWUgewogIGZvbnQtc2l6ZTogMTZweDsKICBmb250LXdlaWdodDogYm9sZDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgbWFyZ2luOiAwOwogIG1pbi1oZWlnaHQ6IDFlbTsKfQouc2lnbmluLWNhcmQubm8tbmFtZSAjcHJvZmlsZS1uYW1lIHsKICBkaXNwbGF5OiBub25lOwp9Ci5zaWduaW4tY2FyZC5uby1uYW1lICNlbWFpbC1kaXNwbGF5IHsKICBsaW5lLWhlaWdodDogaW5pdGlhbDsKICBtYXJnaW4tYm90dG9tOiAxNnB4Owp9Ci5zaWduaW4tY2FyZCAjZW1haWwtZGlzcGxheSB7CiAgZGlzcGxheTogYmxvY2s7CiAgcGFkZGluZzogMHB4IDhweDsKICBjb2xvcjogcmdiKDY0LCA2NCwgNjQpOwogIGxpbmUtaGVpZ2h0OiAyOwogIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgZm9udC1zaXplOiAxNHB4OwogIHRleHQtYWxpZ246IGNlbnRlcjsKICBvdmVyZmxvdzogaGlkZGVuOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9Ci5zaWduaW4tY2FyZCAjRW1haWwgewogIG1hcmdpbi10b3A6IDE2cHg7Cn0KLm5lZWQtaGVscCB7CiAgZmxvYXQ6IHJpZ2h0OwogIHRleHQtYWxpZ246IHJpZ2h0Owp9Ci5mb3JtLXBhbmVsIHsKICB3aWR0aDogMjc0cHg7Cn0KI2dhaWFfZmlyc3Rmb3JtIHsKICB6LWluZGV4OiAyOwp9Ci5zaWduaW4tY2FyZCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIG92ZXJmbG93OiBoaWRkZW47Cn0KLnNpZ25pbi1jYXJkICNwcm9maWxlLW5hbWUgewogIGNvbG9yOiAjMDAwOwp9Ci5jaXJjbGUtbWFzayB7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiA5NnB4OwogIHdpZHRoOiA5NnB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIG1hcmdpbi1sZWZ0OiBhdXRvOwogIG1hcmdpbi1yaWdodDogYXV0bzsKICB6LWluZGV4OiAxMDA7CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKICBiYWNrZ3JvdW5kLXNpemU6IDk2cHg7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9zc2wuZ3N0YXRpYy5jb20vYWNjb3VudHMvdWkvYXZhdGFyXzJ4LnBuZyk7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1czsKICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4wNzVzOwogIC1tcy10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1czsKICAtby10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1czsKICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1czsKfQouY2lyY2xlIHsKICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IC13ZWJraXQtdHJhbnNmb3JtOwogIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW1vei10cmFuc2Zvcm07CiAgLW1zLXRyYW5zaXRpb24tcHJvcGVydHk6IC1tcy10cmFuc2Zvcm07CiAgLW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTogLW8tdHJhbnNmb3JtOwogIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTsKICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjY0NSwuMDQ1LC4zNTUsMSk7CiAgLW1vei10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC42NDUsLjA0NSwuMzU1LDEpOwogIC1tcy10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC42NDUsLjA0NSwuMzU1LDEpOwogIC1vLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjY0NSwuMDQ1LC4zNTUsMSk7CiAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNjQ1LC4wNDUsLjM1NSwxKTsKfQouY2lyY2xlIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgei1pbmRleDogMTAxOwogIGhlaWdodDogOTZweDsKICB3aWR0aDogOTZweDsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgb3BhY2l0eTogMC45OTsKICBvdmVyZmxvdzogaGlkZGVuOwogIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsKfQoubWFpbiB7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouY2FyZC1tYXNrLXdyYXAgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aWR0aDogMzYwcHg7CiAgbWFyZ2luOiAwIGF1dG87CiAgei1pbmRleDogMTsKICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzOwogIC1tb3otdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXM7CiAgLW1zLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzOwogIC1vLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzOwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzOwogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjNweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjNweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI2M3B4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjNweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjYzcHgKLCAwKTsKOwp9Ci5jYXJkLW1hc2std3JhcC5oYXMtY2FwdGNoYSB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTEyM3B4CiwgMCk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTEyM3B4CiwgMCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMTIzcHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTEyM3B4CiwgMCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMjNweAosIDApOwo7Cn0KLmNhcmQtbWFzay13cmFwLmhhcy1lcnJvciB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIyM3B4CiwgMCk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIyM3B4CiwgMCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjIzcHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIyM3B4CiwgMCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMjNweAosIDApOwo7Cn0KLmNhcmQtbWFzay13cmFwLmhhcy1jYXB0Y2hhLmhhcy1lcnJvciB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgzcHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtODNweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgzcHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgzcHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgzcHgKLCAwKTsKOwp9Ci5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwIHsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjIycHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjIycHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMjJweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjIycHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIyMnB4CiwgMCk7CjsKfQouaGFzLWVycm9yLnNoaWZ0LWZvcm0uY2FyZC1tYXNrLXdyYXAgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xODJweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xODJweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTE4MnB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xODJweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMTgycHgKLCAwKTsKOwp9Ci5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLm5vLW5hbWUgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDJweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDJweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI0MnB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDJweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjQycHgKLCAwKTsKOwp9Ci5oYXMtZXJyb3Iuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcC5uby1uYW1lIHsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjAycHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjAycHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMDJweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjAycHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIwMnB4CiwgMCk7CjsKfQouaGFzLWNhcHRjaGEuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcCB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTU3cHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNTdweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTU3cHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTU3cHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTU3cHgKLCAwKTsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLm5vLW5hbWUgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC03N3B4CiwgMCk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTc3cHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC03N3B4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC03N3B4CiwgMCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC03N3B4CiwgMCk7CjsKfQouaGFzLWNhcHRjaGEuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcC5oYXMtZXJyb3IgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xN3B4CiwgMCk7CiAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTE3cHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xN3B4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xN3B4CiwgMCk7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xN3B4CiwgMCk7CjsKfQouaGFzLWNhcHRjaGEuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcC5oYXMtZXJyb3Iubm8tbmFtZSB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTM3cHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMzdweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTM3cHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTM3cHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTM3cHgKLCAwKTsKOwp9Ci5tYWluLWNvbnRlbnQgewogIGhlaWdodDogNDUwcHg7CjsKfQoubWFpbi1jb250ZW50Lmhhcy1jYXB0Y2hhIHsKICBoZWlnaHQ6IDU5MHB4Owo7Cn0KLm1haW4tY29udGVudC5oYXMtZXJyb3IgewogIGhlaWdodDogNDkwcHg7CjsKfQoubWFpbi1jb250ZW50Lmhhcy1jYXB0Y2hhLmhhcy1lcnJvciB7CiAgaGVpZ2h0OiA2MzBweDsKOwp9Ci5zaGlmdC1mb3JtLm1haW4tY29udGVudCB7CiAgaGVpZ2h0OiA0OTFweDsKOwp9Ci5oYXMtZXJyb3Iuc2hpZnQtZm9ybS5tYWluLWNvbnRlbnQgewogIGhlaWdodDogNTMxcHg7CjsKfQouc2hpZnQtZm9ybS5tYWluLWNvbnRlbnQubm8tbmFtZSB7CiAgaGVpZ2h0OiA0NzFweDsKOwp9Ci5oYXMtZXJyb3Iuc2hpZnQtZm9ybS5tYWluLWNvbnRlbnQubm8tbmFtZSB7CiAgaGVpZ2h0OiA1MTFweDsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLm1haW4tY29udGVudCB7CiAgaGVpZ2h0OiA2NTZweDsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLm1haW4tY29udGVudC5uby1uYW1lIHsKICBoZWlnaHQ6IDYzNnB4Owo7Cn0KLmhhcy1jYXB0Y2hhLnNoaWZ0LWZvcm0ubWFpbi1jb250ZW50Lmhhcy1lcnJvciB7CiAgaGVpZ2h0OiA2OTZweDsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLm1haW4tY29udGVudC5oYXMtZXJyb3Iubm8tbmFtZSB7CiAgaGVpZ2h0OiA2NzZweDsKOwp9Ci5jYXJkLW1hc2sgewogIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDA7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFXZ0FBQUFHQ0FJQUFBQmhEcE1jQUFBQUJtSkxSMFFBL3dEL0FQK2d2YWVUQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQUFCM1JKVFVVSDNna2VGeGtzNllmbExBQUFBS2xKUkVGVVdNUHQyQ0VTaERBTWhlR21NQ0ZWMU1IOXo4TXRhckM0UUtmTml1d3dPeXhIZUo5cjZpSitFVEt6M3Z1KzcvTThEOE1RQUFEZXROYU80MWpYTmNZWWZVUkVwWlJhSzdZREFQOXFyYVVVSXZMbjZOVmc1dDc3dG0ycWFtWllFd0RjaUVoRWxtVmhabS9INkI4cHBaeHpDT0U4VDRRREFCN2htS1lwNTV4UytrNDhFNjAxVlZYVjY3b1FEZ0I0aElPWlJVUkUvQkpLdjVrd00xUURBRjdiY1I4NFFnZ2Y0U2hIb3ZVL29nY0FBQUFBU1VWT1JLNUNZSUk9KTsKICBtaW4taGVpZ2h0OiAzMDBweDsKfQouY2FyZCB7CiAgbWFyZ2luLWJvdHRvbTogMDsKfQouc2lnbmluLWNhcmQgewogIGhlaWdodDogNTAwcHg7Cn0KLm9uZS1nb29nbGUgewogIHBhZGRpbmctdG9wOiAyN3B4Owp9CiNjYW52YXMgewogIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA3NXM7CiAgLW1vei10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMDc1czsKICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA3NXM7CiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA3NXM7CiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjA3NXM7CiAgb3BhY2l0eTogMC4wMTsKfQouc2hpZnQtZm9ybSAjY2FudmFzIHsKICBvcGFjaXR5OiAwLjk5Owp9Ci5sYWJlbCB7CiAgY29sb3I6ICM0MDQwNDA7Cn0KI2FjY291bnQtY2hvb3Nlci1saW5rIHsKICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICAtbXMtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOwogIC1vLXRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsKICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7Cn0KLmlucHV0LXdyYXBwZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouZ29vZ2xlLWZvb3Rlci1iYXIgewogIHotaW5kZXg6IDI7Cn0KLnByb2ZpbGUtdG9vbHRpcCB7CiAgZGlzcGxheTogbm9uZTsKfQouamZrLWJ1YmJsZSB7CiAgbWF4LXdpZHRoOiAzMDBweDsKfQo8L3N0eWxlPgo8c3R5bGUgbWVkaWE9IiI+Ci5iYWNrLWFycm93IHsKICB0b3A6IDE3cHg7Cn0KLmNpcmNsZS1tYXNrIHsKICBoZWlnaHQ6IDcycHg7CiAgd2lkdGg6IDcycHg7CiAgYmFja2dyb3VuZC1zaXplOiA3MnB4Owp9Ci5jaXJjbGUgewogIGhlaWdodDogNzJweDsKICB3aWR0aDogNzJweDsKfQojY2FudmFzIHsKICBoZWlnaHQ6IDcycHg7CiAgd2lkdGg6IDcycHg7Cn0KLmZvcm0tcGFuZWwgewogIHdpZHRoOiAyNTZweDsKfQouY2FyZC1tYXNrIHsKICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFTNEFBQUFHQ0FJQUFBRHlxdVQ3QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5SnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU1DMWpNRFl4SURZMExqRTBNRGswT1N3Z01qQXhNQzh4TWk4d055MHhNRG8xTnpvd01TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROUzR4SUZkcGJtUnZkM01pSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UkRjeU1qTXlRME5GT0RnNE1URkZORUV6UmtVNVJEVkVSVFV3UlVRNU9UQWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZSRGN5TWpNeVEwUkZPRGc0TVRGRk5FRXpSa1U1UkRWRVJUVXdSVVE1T1RBaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcEVOekl5TXpKRFFVVTRPRGd4TVVVMFFUTkdSVGxFTlVSRk5UQkZSRGs1TUNJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwRU56SXlNekpEUWtVNE9EZ3hNVVUwUVROR1JUbEVOVVJGTlRCRlJEazVNQ0l2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHFHQ2MrTUFBQUNuU1VSQlZIamE3Tmc3RG9RZ0ZJWGhZVEFLRlhTNi8vVzRDeHRhT2g0QjVzUTdtY3dHcERwZnBkamQ1TTlWMVJpajl4NUNjTTVwclY5RU5FdHJMY1o0SE1jYjVFZ3BkVjFYclpYVElab0R1U0U2cENlM2kzUzRyaXQyNDNtZUtTWHNTWTZKNkZHSXpoaXo3enZTa3hvWGVXQ3Q5ZDdqSXVmTUZJa21wTGh0RzZKRGV0OFRDUS92ck9sV1NtR0tSQk5TeEQ0ME4vbEhvLzdER3plT2lXaE9qYjhQUmZnSU1BQWFZRWVpdDZ0a0t3QUFBQUJKUlU1RXJrSmdnZz09KTsKfQouY2FyZC1tYXNrLXdyYXAgewogIHdpZHRoOiAzMDBweDsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjg4cHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjg4cHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yODhweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjg4cHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI4OHB4CiwgMCk7CjsKfQouY2FyZC1tYXNrLXdyYXAuaGFzLWNhcHRjaGEgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xNDhweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xNDhweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTE0OHB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xNDhweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMTQ4cHgKLCAwKTsKOwp9Ci5jYXJkLW1hc2std3JhcC5oYXMtZXJyb3IgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDhweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDhweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI0OHB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDhweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjQ4cHgKLCAwKTsKOwp9Ci5jYXJkLW1hc2std3JhcC5oYXMtY2FwdGNoYS5oYXMtZXJyb3IgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDhweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDhweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTEwOHB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDhweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMTA4cHgKLCAwKTsKOwp9Ci5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwIHsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjQ3cHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjQ3cHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNDdweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjQ3cHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI0N3B4CiwgMCk7CjsKfQouaGFzLWVycm9yLnNoaWZ0LWZvcm0uY2FyZC1tYXNrLXdyYXAgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMDdweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMDdweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIwN3B4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMDdweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjA3cHgKLCAwKTsKOwp9Ci5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLm5vLW5hbWUgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjdweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjdweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTI2N3B4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yNjdweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjY3cHgKLCAwKTsKOwp9Ci5oYXMtZXJyb3Iuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcC5uby1uYW1lIHsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjI3cHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjI3cHgKLCAwKTsKICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0yMjdweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMjI3cHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTIyN3B4CiwgMCk7CjsKfQouaGFzLWNhcHRjaGEuc2hpZnQtZm9ybS5jYXJkLW1hc2std3JhcCB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgycHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtODJweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgycHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgycHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTgycHgKLCAwKTsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLm5vLW5hbWUgewogIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDJweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDJweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTEwMnB4CiwgMCk7CiAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC0xMDJweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtMTAycHgKLCAwKTsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLmhhcy1lcnJvciB7CiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTQycHgKLCAwKTsKICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNDJweAosIDApOwogIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTQycHgKLCAwKTsKICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTQycHgKLCAwKTsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsCiAgLTQycHgKLCAwKTsKOwp9Ci5oYXMtY2FwdGNoYS5zaGlmdC1mb3JtLmNhcmQtbWFzay13cmFwLmhhcy1lcnJvci5uby1uYW1lIHsKICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNjJweAosIDApOwogIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLAogIC02MnB4CiwgMCk7CiAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNjJweAosIDApOwogIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNjJweAosIDApOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwKICAtNjJweAosIDApOwo7Cn0KLm1haW4tY29udGVudCB7CiAgaGVpZ2h0OiAzNTBweDsKOwp9Ci5tYWluLWNvbnRlbnQuaGFzLWNhcHRjaGEgewogIGhlaWdodDogNDkwcHg7CjsKfQoubWFpbi1jb250ZW50Lmhhcy1lcnJvciB7CiAgaGVpZ2h0OiAzOTBweDsKOwp9Ci5tYWluLWNvbnRlbnQuaGFzLWNhcHRjaGEuaGFzLWVycm9yIHsKICBoZWlnaHQ6IDUzMHB4Owo7Cn0KLnNoaWZ0LWZvcm0ubWFpbi1jb250ZW50IHsKICBoZWlnaHQ6IDM5MXB4Owo7Cn0KLmhhcy1lcnJvci5zaGlmdC1mb3JtLm1haW4tY29udGVudCB7CiAgaGVpZ2h0OiA0MzFweDsKOwp9Ci5zaGlmdC1mb3JtLm1haW4tY29udGVudC5uby1uYW1lIHsKICBoZWlnaHQ6IDM3MXB4Owo7Cn0KLmhhcy1lcnJvci5zaGlmdC1mb3JtLm1haW4tY29udGVudC5uby1uYW1lIHsKICBoZWlnaHQ6IDQxMXB4Owo7Cn0KLmhhcy1jYXB0Y2hhLnNoaWZ0LWZvcm0ubWFpbi1jb250ZW50IHsKICBoZWlnaHQ6IDU1NnB4Owo7Cn0KLmhhcy1jYXB0Y2hhLnNoaWZ0LWZvcm0ubWFpbi1jb250ZW50Lm5vLW5hbWUgewogIGhlaWdodDogNTM2cHg7CjsKfQouaGFzLWNhcHRjaGEuc2hpZnQtZm9ybS5tYWluLWNvbnRlbnQuaGFzLWVycm9yIHsKICBoZWlnaHQ6IDU5NnB4Owo7Cn0KLmhhcy1jYXB0Y2hhLnNoaWZ0LWZvcm0ubWFpbi1jb250ZW50Lmhhcy1lcnJvci5uby1uYW1lIHsKICBoZWlnaHQ6IDU3NnB4Owo7Cn0KLnNpZ25pbi1jYXJkIHsKICB3aWR0aDogMjU2cHg7Cn0KLnNpZ25pbi1jYXJkICNFbWFpbEZpcnN0IHsKICBtYXJnaW4tdG9wOiAxNXB4Owp9Ci5vbmUtZ29vZ2xlIHsKICBwYWRkaW5nLXRvcDogMjJweDsKfQo8L3N0eWxlPgogIDwvaGVhZD4KICA8Ym9keT4KICA8ZGl2IGNsYXNzPSJ3cmFwcGVyIj4KICA8ZGl2IGNsYXNzPSJnb29nbGUtaGVhZGVyLWJhciAgY2VudGVyZWQiPgogIDxkaXYgY2xhc3M9ImhlYWRlciBjb250ZW50IGNsZWFyZml4Ij4KICA8aW1nIHNyYz0iLy9zc2wuZ3N0YXRpYy5jb20vYWNjb3VudHMvdWkvbG9nb18yeC5wbmciIGNsYXNzPSJsb2dvIiBhbHQ9Ikdvb2dsZSIgLz4KICA8L2Rpdj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJtYWluIGNvbnRlbnQgY2xlYXJmaXgiPgo8ZGl2IGNsYXNzPSJiYW5uZXIiPgogIDxoMj4KICBTaWduIGluIHdpdGggeW91ciBHb29nbGUgQWNjb3VudAogIDwvaDI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQgCiAgCiAgCiAgICBuby1uYW1lCiAgCiAgCiAgCiI+CjxkaXYgY2xhc3M9ImNhcmQgc2lnbmluLWNhcmQKICAKICAgIHByZS1zaGlmdAogIAogIAogIAogICBuby1uYW1lIj4KICA8ZGl2IGlkPSJjY19pZnJhbWVfcGFyZW50Ij48aWZyYW1lIHN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEwMHB4OyIgc3JjPSJodHRwczovL2FjY291bnRzLnlvdXR1YmUuY29tL2FjY291bnRzL0NoZWNrQ29ubmVjdGlvbj9wbXBvPWh0dHBzJTNBJTJGJTJGYWNjb3VudHMuZ29vZ2xlLmNvbSZhbXA7dj0xODIzNDEyODczJmFtcDt0aW1lc3RhbXA9MTQzNDM0MTkyNDM2MCIgaWQ9InlvdXR1YmUiPjwvaWZyYW1lPjwvZGl2PgogIDxkaXYgc3R5bGU9IgogICAgICAKICAgICAgICAKICAgICAgIiBjbGFzcz0iY2lyY2xlLW1hc2siPgogIDxjYW52YXMgaGVpZ2h0PSI5NiIgd2lkdGg9Ijk2IiBjbGFzcz0iY2lyY2xlIiBpZD0iY2FudmFzIj48L2NhbnZhcz4KICA8L2Rpdj4KICA8Zm9ybSBpZD0iZ2FpYV9sb2dpbmZvcm0iIGFjdGlvbj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1NlcnZpY2VMb2dpbkF1dGgiIG1ldGhvZD0icG9zdCIgbm92YWxpZGF0ZT0iIj4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iUGFzc3dvcmRTZXBhcmF0aW9uU2lnbkluIiBuYW1lPSJQYWdlIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJfZk1uVkh5alZhSSIgbmFtZT0iR0FMWCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL28vb2F1dGgyL2F1dGg/c2NvcGU9aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tOC9mZWVkcy8mYW1wO3Jlc3BvbnNlX3R5cGU9dG9rZW4mYW1wO3JlZGlyZWN0X3VyaT1odHRwczovL3NlcmVuZS1jb3ZlLTM1ODcuaGVyb2t1YXBwLmNvbS9saXZlb3dkL29hdXRoMl9uZXcvZmxvd19saXZlLmh0bWwmYW1wO2FwcHJvdmFsX3Byb21wdD1mb3JjZSZhbXA7c3RhdGU9ZnJpZW5kcyZhbXA7Y2xpZW50X2lkPTY2NDc0MTM2MTI3OC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSZhbXA7aGw9emgtVFcmYW1wO2Zyb21fbG9naW49MSZhbXA7YXM9LTdhYTY5YWZhMzc3Y2RiOTkiIG5hbWU9ImNvbnRpbnVlIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJwb3B1cCIgbmFtZT0ibHRtcGwiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjEiIG5hbWU9InNjYyIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgbmFtZT0ic2FycCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgbmFtZT0ib2F1dGgiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRGlzcGxheU5hbWUiIGlkPSJkaXNwbGF5LW5hbWUtaW5wdXQiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUHJvZmlsZVBob3RvIiBpZD0icHJvZmlsZS1waG90by1pbnB1dCIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBuYW1lPSJQcm9maWxlSW5mb3JtYXRpb24iIGlkPSJwcm9maWxlLWluZm9ybWF0aW9uIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLimIMiIG5hbWU9Il91dGY4IiBpZD0iX3V0ZjgiIC8+CiAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImpzX2Rpc2FibGVkIiBpZD0iYmdyZXNwb25zZSIgbmFtZT0iYmdyZXNwb25zZSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgbmFtZT0icHN0TXNnIiBpZD0icHN0TXNnIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIG5hbWU9ImRuQ29ubiIgaWQ9ImRuQ29ubiIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieW91dHViZToxMjU4OjEiIG5hbWU9ImNoZWNrQ29ubmVjdGlvbiIgaWQ9ImNoZWNrQ29ubmVjdGlvbiIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieW91dHViZSIgbmFtZT0iY2hlY2tlZERvbWFpbnMiIGlkPSJjaGVja2VkRG9tYWlucyIgLz4KICA8ZGl2IGlkPSJnYWlhX2ZpcnN0Zm9ybSIgY2xhc3M9ImZvcm0tcGFuZWwgZmlyc3QgdmFsaWQiPgogIDxkaXYgY2xhc3M9InNsaWRlLW91dCAiPgogIDxkaXYgY2xhc3M9ImlucHV0LXdyYXBwZXIgZm9jdXNlZCI+CiAgPGRpdiBpZD0iaWRlbnRpZmllci1zaG93biI+CiAgPGRpdj4KICA8bGFiZWwgZm9yPSJFbWFpbCIgY2xhc3M9ImhpZGRlbi1sYWJlbCI+CiAgRW50ZXIgeW91ciBlbWFpbDwvbGFiZWw+CiAgPGlucHV0IHR5cGU9ImVtYWlsIiBzcGVsbGNoZWNrPSJmYWxzZSIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IkVudGVyIHlvdXIgZW1haWwiIG5hbWU9IkVtYWlsIiBpZD0iRW1haWwiIC8+CiAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iaGlkZGVuIiBzcGVsbGNoZWNrPSJmYWxzZSIgaWQ9IlBhc3N3ZC1oaWRkZW4iIC8+CiAgPC9kaXY+CiAgPC9kaXY+CiAgPHNwYW4gaWQ9ImVycm9ybXNnXzBfRW1haWwiIGNsYXNzPSJlcnJvci1tc2ciIHJvbGU9ImFsZXJ0Ij48L3NwYW4+CiAgPC9kaXY+CjxkaXYgaWQ9ImlkZW50aWZpZXItY2FwdGNoYSIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaWRlbnRpZmllci10b2tlbiIgbmFtZT0iaWRlbnRpZmllcnRva2VuIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaWRlbnRpZmllci10b2tlbi1hdWRpbyIgbmFtZT0iaWRlbnRpZmllcnRva2VuX2F1ZGlvIiAvPgo8ZGl2IGNsYXNzPSJjYXB0Y2hhLWJveCI+CiAgPGRpdiBpZD0iY2FwdGNoYS1pbWciPgogIDxpbWcgYWx0PSJWaXN1YWwgdmVyaWZpY2F0aW9uIiBzcmM9IiIgLz4KICA8L2Rpdj4KICA8c3BhbiBjbGFzcz0iY2FwdGNoYS1tc2ciPgogIExldHRlcnMgYXJlIG5vdCBjYXNlLXNlbnNpdGl2ZQogIDwvc3Bhbj4KPC9kaXY+CjxsYWJlbCBjbGFzcz0iaGlkZGVuLWxhYmVsIiBmb3I9ImlkZW50aWZpZXItY2FwdGNoYS1pbnB1dCI+PC9sYWJlbD4KPGlucHV0IHR5cGU9InRleHQiIHRpdGxlPSJUeXBlIHRoZSBjaGFyYWN0ZXJzIHlvdSBzZWUgb3IgbnVtYmVycyB5b3UgaGVhciIgcGxhY2Vob2xkZXI9IkVudGVyIHRoZSBsZXR0ZXJzIGFib3ZlIiBjbGFzcz0iY2FwdGNoYSIgbmFtZT0iaWRlbnRpZmllci1jYXB0Y2hhLWlucHV0IiBpZD0iaWRlbnRpZmllci1jYXB0Y2hhLWlucHV0IiAvPgo8L2Rpdj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ik5leHQiIGNsYXNzPSJyYy1idXR0b24gcmMtYnV0dG9uLXN1Ym1pdCIgbmFtZT0ic2lnbkluIiBpZD0ibmV4dCIgLz4KICA8YSBocmVmPSJodHRwczovL3d3dy5nb29nbGUuY29tL2FjY291bnRzL3JlY292ZXJ5P2hsPWVuIiBjbGFzcz0ibmVlZC1oZWxwIj4KICBOZWVkIGhlbHA/CiAgPC9hPgogIDwvZGl2PgogIDwvZGl2PgogIDxhIGhyZWY9Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9TZXJ2aWNlTG9naW5BdXRoIj4KICA8aW1nIHNyYz0iaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC9hcnJvd19iYWNrX2dyZXk2MDBfMjRkcC5wbmciIGFsdD0iQmFjayIgdGFiaW5kZXg9IjAiIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iQmFjayIgY2xhc3M9ImJhY2stYXJyb3cgIiBpZD0iYmFjay1hcnJvdyIgLz4KICA8L2E+CiAgPGRpdiBjbGFzcz0iZm9ybS1wYW5lbCBzZWNvbmQiPgogIDxkaXYgY2xhc3M9InNsaWRlLWluIGhpZGUtZm9ybSI+CiAgPGRpdj4KICA8cCBpZD0icHJvZmlsZS1uYW1lIj48L3A+CiAgPHNwYW4gaWQ9ImVtYWlsLWRpc3BsYXkiPjwvc3Bhbj4KICA8L2Rpdj4KICA8ZGl2PgogIDxkaXYgaWQ9InBhc3N3b3JkLXNob3duIj48L2Rpdj4KICA8L2Rpdj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNpZ24gaW4iIGNsYXNzPSJyYy1idXR0b24gcmMtYnV0dG9uLXN1Ym1pdCIgbmFtZT0ic2lnbkluIiBpZD0ic2lnbkluIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ5ZXMiIG5hbWU9IlBlcnNpc3RlbnRDb29raWUiIC8+CiAgPGEgaHJlZj0iIiBjbGFzcz0ibmVlZC1oZWxwIiBpZD0ibGluay1mb3Jnb3QtcGFzc3dkIj4KICBGb3Jnb3QgcGFzc3dvcmQ/CiAgPC9hPgogIDwvZGl2PgogIDxzcGFuIGNsYXNzPSJlcnJvci1tc2ciIHJvbGU9ImFsZXJ0IiBzdHlsZT0iZGlzcGxheTogbm9uZSIgaWQ9ImluZ2UiPgogIFNvcnJ5LCBHb29nbGUgZG9lc24ndCByZWNvZ25pemUgdGhhdCBlbWFpbC4gPGEgaHJlZj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1NpZ25VcFdpdGhvdXRHbWFpbD9FbWFpbEFkZHJlc3M9Ij5DcmVhdGUgYW4gYWNjb3VudDwvYT4gdXNpbmcgdGhhdCBhZGRyZXNzPwogIDwvc3Bhbj4KICA8L2Rpdj4KICA8L2Zvcm0+CjwvZGl2PgogIDxkaXYgY2xhc3M9ImNhcmQtbWFzay13cmFwCiAgICAKICAgICAgICAKICAgICBuby1uYW1lIj4KICA8ZGl2IGNsYXNzPSJjYXJkLW1hc2siPgogIDxkaXYgY2xhc3M9Im9uZS1nb29nbGUiPgogIDxwIGNsYXNzPSJjcmVhdGUtYWNjb3VudCI+CiAgPHNwYW4gaWQ9Imxpbmstc2lnbmluLWRpZmZlcmVudCI+CiAgPGEgaHJlZj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL0FjY291bnRDaG9vc2VyP2NvbnRpbnVlPWh0dHBzJTNBJTJGJTJGYWNjb3VudHMuZ29vZ2xlLmNvbSUyRm8lMkZvYXV0aDIlMkZhdXRoJTNGc2NvcGUlM0RodHRwcyUzQSUyRiUyRnd3dy5nb29nbGUuY29tJTJGbTglMkZmZWVkcyUyRiUyNnJlc3BvbnNlX3R5cGUlM0R0b2tlbiUyNnJlZGlyZWN0X3VyaSUzRGh0dHBzJTNBJTJGJTJGc2VyZW5lLWNvdmUtMzU4Ny5oZXJva3VhcHAuY29tJTJGbGl2ZW93ZCUyRm9hdXRoMl9uZXclMkZmbG93X2xpdmUuaHRtbCUyNmFwcHJvdmFsX3Byb21wdCUzRGZvcmNlJTI2c3RhdGUlM0RmcmllbmRzJTI2Y2xpZW50X2lkJTNENjY0NzQxMzYxMjc4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tJTI2aGwlM0R6aC1UVyUyNmZyb21fbG9naW4lM0QxJTI2YXMlM0QtN2FhNjlhZmEzNzdjZGI5OSZhbXA7aGw9ZW4mYW1wO3NjYz0xIj4KICBTaWduIGluIHdpdGggYSBkaWZmZXJlbnQgYWNjb3VudAogIDwvYT4KICA8L3NwYW4+CiAgPHNwYW4gaWQ9Imxpbmstc2lnbnVwIj4KICA8YSBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vU2lnblVwP2NvbnRpbnVlPWh0dHBzJTNBJTJGJTJGYWNjb3VudHMuZ29vZ2xlLmNvbSUyRm8lMkZvYXV0aDIlMkZhdXRoJTNGc2NvcGUlM0RodHRwcyUzQSUyRiUyRnd3dy5nb29nbGUuY29tJTJGbTglMkZmZWVkcyUyRiUyNnJlc3BvbnNlX3R5cGUlM0R0b2tlbiUyNnJlZGlyZWN0X3VyaSUzRGh0dHBzJTNBJTJGJTJGc2VyZW5lLWNvdmUtMzU4Ny5oZXJva3VhcHAuY29tJTJGbGl2ZW93ZCUyRm9hdXRoMl9uZXclMkZmbG93X2xpdmUuaHRtbCUyNmFwcHJvdmFsX3Byb21wdCUzRGZvcmNlJTI2c3RhdGUlM0RmcmllbmRzJTI2Y2xpZW50X2lkJTNENjY0NzQxMzYxMjc4LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tJTI2aGwlM0R6aC1UVyUyNmZyb21fbG9naW4lM0QxJTI2YXMlM0QtN2FhNjlhZmEzNzdjZGI5OSZhbXA7bHRtcGw9cG9wdXAiPgogIENyZWF0ZSBhY2NvdW50CiAgPC9hPgogIDwvc3Bhbj4KICA8L3A+CjxwIGNsYXNzPSJ0YWdsaW5lIj4KICBPbmUgR29vZ2xlIEFjY291bnQgZm9yIGV2ZXJ5dGhpbmcgR29vZ2xlCjwvcD4KPGltZyBoZWlnaHQ9IjE3IiB3aWR0aD0iMjEwIiBhbHQ9IiIgc3JjPSIvL3NzbC5nc3RhdGljLmNvbS9hY2NvdW50cy91aS9sb2dvX3N0cmlwXzJ4LnBuZyIgLz4KICA8L2Rpdj4KICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iZ29vZ2xlLWZvb3Rlci1iYXIiPgogIDxkaXYgY2xhc3M9ImZvb3RlciBjb250ZW50IGNsZWFyZml4Ij4KICA8dWwgaWQ9ImZvb3Rlci1saXN0Ij4KICA8bGk+CiAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vaW50bC9lbi9hYm91dCI+CiAgQWJvdXQgR29vZ2xlCiAgPC9hPgogIDwvbGk+CiAgPGxpPgogIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vVE9TP2xvYz1UVyZhbXA7aGw9ZW4mYW1wO3ByaXZhY3k9dHJ1ZSI+CiAgUHJpdmFjeQogIDwvYT4KICA8L2xpPgogIDxsaT4KICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL1RPUz9sb2M9VFcmYW1wO2hsPWVuIj4KICBUZXJtcwogIDwvYT4KICA8L2xpPgogIDxsaT4KICA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tL3N1cHBvcnQvYWNjb3VudHM/aGw9ZW4iPgogIEhlbHAKICA8L2E+CiAgPC9saT4KICA8L3VsPgogIDwvZGl2Pgo8L2Rpdj4KICA8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIHZhciBnYWlhX2F0dGFjaEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGNhbGxiYWNrKSB7CiAgaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgY2FsbGJhY2ssIGZhbHNlKTsKICB9IGVsc2UgaWYgKGVsZW1lbnQuYXR0YWNoRXZlbnQpIHsKICBlbGVtZW50LmF0dGFjaEV2ZW50KCdvbicgKyBldmVudCwgY2FsbGJhY2spOwogIH0KICB9OwogIChmdW5jdGlvbigpIHsKICB2YXIgZ2FpYV9oaWRlTmF2QmFyID0gZnVuY3Rpb24oKSB7CiAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICB3aW5kb3cuc2Nyb2xsVG8oMCwgMSk7CiAgfSwgMCk7CiAgfTsKICBnYWlhX2F0dGFjaEV2ZW50KHdpbmRvdywgJ2xvYWQnLCBnYWlhX2hpZGVOYXZCYXIpOwogIH0pKCk7Cjwvc2NyaXB0PgogIDxzY3JpcHQ+dmFyIEcsR2I9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hO2EmYW1wOyZhbXA7InN0cmluZyI9PXR5cGVvZiBhJmFtcDsmYW1wOyhjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtpZihiJmFtcDsmYW1wOyFjKXRocm93IG5ldyBHYShhKTtyZXR1cm4gY30sR2E9ZnVuY3Rpb24oYSl7dGhpcy5pZD1hO3RoaXMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iTm8gZWxlbWVudCBmb3VuZCBmb3IgaWQgJyIrdGhpcy5pZCsiJyJ9fTt2YXIgR2M9e30sR2Y9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWZ1bmN0aW9uKGEpe3ZhciBiPWMuY2FsbCh0aGlzLGEpOyExPT09YiZhbXA7JmFtcDtHZChhKTtyZXR1cm4gYn07YT1HYihhLCEwKTthLmFkZEV2ZW50TGlzdGVuZXIoYixkLCExKTtHZShhLGIpLnB1c2goZCk7cmV0dXJuIGR9LEdnPWZ1bmN0aW9uKGEsYixjKXthPUdiKGEsITApO3ZhciBkPWZ1bmN0aW9uKCl7dmFyIGI9d2luZG93LmV2ZW50LGQ9Yy5jYWxsKGEsYik7ITE9PT1kJmFtcDsmYW1wO0dkKGIpO3JldHVybiBkfTthLmF0dGFjaEV2ZW50KCJvbiIrYixkKTtHZShhLGIpLnB1c2goZCk7cmV0dXJuIGR9LEdoO0doPXdpbmRvdy5hZGRFdmVudExpc3RlbmVyP0dmOndpbmRvdy5hdHRhY2hFdmVudD9HZzp2b2lkIDA7dmFyIEdkPWZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITE7cmV0dXJuITF9Owp2YXIgR2U9ZnVuY3Rpb24oYSxiKXtHY1thXT1HY1thXXx8e307R2NbYV1bYl09R2NbYV1bYl18fFtdO3JldHVybiBHY1thXVtiXX07dmFyIEdpPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7Zm9yKHZhciBiPVsiTVNYTUwyLlhNTEhUVFAuNi4wIiwiTVNYTUwyLlhNTEhUVFAuMy4wIiwiTVNYTUwyLlhNTEhUVFAiLCJNaWNyb3NvZnQuWE1MSFRUUCJdLGM9MDtjJmx0O2IubGVuZ3RoO2MrKyl0cnl7cmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KGJbY10pfWNhdGNoKGQpe319cmV0dXJuIG51bGx9LEdqPWZ1bmN0aW9uKCl7dGhpcy5yZXF1ZXN0PUdpKCk7dGhpcy5wYXJhbWV0ZXJzPXt9fTsKR2oucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkO2ZvcihkIGluIHRoaXMucGFyYW1ldGVycyl7dmFyIGU9dGhpcy5wYXJhbWV0ZXJzW2RdO2MucHVzaChkKyI9IitlbmNvZGVVUklDb21wb25lbnQoZSkpfXZhciBjPWMuam9pbigiJmFtcDsiKSxmPXRoaXMucmVxdWVzdDtmLm9wZW4oIlBPU1QiLGEsITApO2Yuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGUmYW1wOyZhbXA7Yih7c3RhdHVzOmYuc3RhdHVzLHRleHQ6Zi5yZXNwb25zZVRleHR9KX07Zi5zZW5kKGMpfTsKR2oucHJvdG90eXBlLmdldD1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucmVxdWVzdDtjLm9wZW4oIkdFVCIsYSwhMCk7Yy5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1jLnJlYWR5U3RhdGUmYW1wOyZhbXA7Yih7c3RhdHVzOmMuc3RhdHVzLHRleHQ6Yy5yZXNwb25zZVRleHR9KX07Yy5zZW5kKCl9O3ZhciBHbD1mdW5jdGlvbihhKXt0aGlzLmc9YTt0aGlzLnY9dGhpcy5vKCk7aWYobnVsbD09dGhpcy5nKXRocm93IG5ldyBHaygiRW1wdHkgbW9kdWxlIG5hbWUiKTt9O0c9R2wucHJvdG90eXBlO0cubz1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtyZXR1cm4gYSZhbXA7JmFtcDswPT1hLmluZGV4T2YoIi9hY2NvdW50cyIpPyIvYWNjb3VudHMvSnNSZW1vdGVMb2ciOiIvSnNSZW1vdGVMb2cifTsKRy5qPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnYsZT10aGlzLmd8fCIiLGQ9ZCsiP21vZHVsZT0iK2VuY29kZVVSSUNvbXBvbmVudChlKTthPWF8fCIiO2Q9ZCsiJmFtcDt0eXBlPSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpO2I9Ynx8IiI7ZD1kKyImYW1wO21zZz0iK2VuY29kZVVSSUNvbXBvbmVudChiKTtjPWN8fFtdO2ZvcihhPTA7YSZsdDtjLmxlbmd0aDthKyspZD1kKyImYW1wO2FyZz0iK2VuY29kZVVSSUNvbXBvbmVudChjW2FdKTt0cnl7dmFyIGY9TWF0aC5mbG9vcigxRTQqTWF0aC5yYW5kb20oKSksZD1kKyImYW1wO3I9IitTdHJpbmcoZil9Y2F0Y2goZyl7fXJldHVybiBkfTtHLnNlbmQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW5ldyBHajtkLnBhcmFtZXRlcnM9e307dHJ5e3ZhciBlPXRoaXMuaihhLGIsYyk7ZC5nZXQoZSxmdW5jdGlvbigpe30pfWNhdGNoKGYpe319O0cuZXJyb3I9ZnVuY3Rpb24oYSxiKXt0aGlzLnNlbmQoIkVSUk9SIixhLGIpfTsKRy53YXJuPWZ1bmN0aW9uKGEsYil7dGhpcy5zZW5kKCJXQVJOIixhLGIpfTtHLmluZm89ZnVuY3Rpb24oYSxiKXt0aGlzLnNlbmQoIklORk8iLGEsYil9O0cuZj1mdW5jdGlvbihhKXt2YXIgYj10aGlzO3JldHVybiBmdW5jdGlvbigpe3RyeXtyZXR1cm4gYS5hcHBseShudWxsLGFyZ3VtZW50cyl9Y2F0Y2goYyl7dGhyb3cgYi5lcnJvcigiVW5jYXRjaGVkIGV4Y2VwdGlvbjogIitjKSxjO319fTt2YXIgR2s9ZnVuY3Rpb24oKXt9O3ZhciBHbT1HbXx8bmV3IEdsKCJ1cmkiKSxHbj1SZWdFeHAoIl4oPzooW146Lz8jLl0rKTopPyg/Oi8vKD86KFteLz8jXSopQCk/KFtcXHdcXGRcXC1cXHUwMTAwLVxcdWZmZmYuJV0qKSg/OjooWzAtOV0rKSk/KT8oW14/I10rKT8oPzpcXD8oW14jXSopKT8oPzojKC4qKSk/JCIpLEdvPWZ1bmN0aW9uKGEpe3JldHVybiJodHRwIj09YS50b0xvd2VyQ2FzZSgpPzgwOiJodHRwcyI9PWEudG9Mb3dlckNhc2UoKT80NDM6bnVsbH0sR3A9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm1hdGNoKEduKVsxXXx8bnVsbCxkLGU9Yi5tYXRjaChHbilbM118fG51bGw7ZD1lJmFtcDsmYW1wO2RlY29kZVVSSUNvbXBvbmVudChlKTtlPU51bWJlcihiLm1hdGNoKEduKVs0XXx8bnVsbCl8fG51bGw7aWYoIWN8fCFkKXJldHVybiBHbS5lcnJvcigiSW52YWxpZCBvcmlnaW4gRXhjZXB0aW9uIixbU3RyaW5nKGIpXSksITE7ZXx8KGU9R28oYykpO3ZhciBmPWEubWF0Y2goR24pWzFdfHxudWxsO2lmKCFmfHxmLnRvTG93ZXJDYXNlKCkhPQpjLnRvTG93ZXJDYXNlKCkpcmV0dXJuITE7Yz0oYz1hLm1hdGNoKEduKVszXXx8bnVsbCkmYW1wOyZhbXA7ZGVjb2RlVVJJQ29tcG9uZW50KGMpO2lmKCFjfHxjLnRvTG93ZXJDYXNlKCkhPWQudG9Mb3dlckNhc2UoKSlyZXR1cm4hMTsoZD1OdW1iZXIoYS5tYXRjaChHbilbNF18fG51bGwpfHxudWxsKXx8KGQ9R28oZikpO3JldHVybiBlPT1kfTt2YXIgR3E9R3F8fG5ldyBHbCgiY2hlY2tfY29ubmVjdGlvbiIpLEdyPW51bGwsR3M9bnVsbCxHdD1udWxsLEd1PWZ1bmN0aW9uKGEsYil7dGhpcy5jPWE7dGhpcy5iPWI7dGhpcy5hPSExfTtHPUd1LnByb3RvdHlwZTtHLmk9ZnVuY3Rpb24oYSxiKXtpZighYilyZXR1cm4hMTtpZigwJmx0Oz1hLmluZGV4T2YoIiwiKSlyZXR1cm4gR3EuZXJyb3IoIkNoZWNrQ29ubmVjdGlvbiByZXN1bHQgY29udGFpbnMgY29tbWEiLFthXSksITE7dmFyIGM9Yi52YWx1ZTtiLnZhbHVlPWM/YysiLCIrYTphO3JldHVybiEwfTtHLmg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaShhLEdzKX07Ry53PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmkoYSxHdCl9O0cubT1mdW5jdGlvbihhKXthPWEubWF0Y2goIl4oW146XSspOihcXGQqKTooXFxkPykkIik7cmV0dXJuIWF8fDMmZ3Q7YS5sZW5ndGg/bnVsbDphWzFdfTsKRy51PWZ1bmN0aW9uKGEsYil7aWYoIUdwKHRoaXMuYyxhKSlyZXR1cm4hMTtpZih0aGlzLmF8fCFiKXJldHVybiEwOyJhY2Nlc3NpYmxlIj09Yj8odGhpcy5oKGEpLHRoaXMuYT0hMCk6dGhpcy5tKGIpPT10aGlzLmImYW1wOyZhbXA7KHRoaXMudyhiKXx8dGhpcy5oKGEpLHRoaXMuYT0hMCk7cmV0dXJuITB9O0cucz1mdW5jdGlvbigpe3ZhciBhO2E9dGhpcy5jO3ZhciBiPSJ0aW1lc3RhbXAiLGM9U3RyaW5nKChuZXcgRGF0ZSkuZ2V0VGltZSgpKTtpZigwJmx0O2EuaW5kZXhPZigiIyIpKXRocm93IE9iamVjdCgiVW5zdXBwb3J0ZWQgVVJMIEV4Y2VwdGlvbjogIithKTtyZXR1cm4gYT0wJmx0Oz1hLmluZGV4T2YoIj8iKT9hKyImYW1wOyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyk6YSsiPyIrZW5jb2RlVVJJQ29tcG9uZW50KGIpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYyl9OwpHLmw9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIiksYj1hLnN0eWxlO2IudmlzaWJpbGl0eT0iaGlkZGVuIjtiLndpZHRoPSIxcHgiO2IuaGVpZ2h0PSIxcHgiO2IucG9zaXRpb249ImFic29sdXRlIjtiLnRvcD0iLTEwMHB4IjthLnNyYz10aGlzLnMoKTthLmlkPXRoaXMuYjtHci5hcHBlbmRDaGlsZChhKX07CnZhciBHdj1mdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7dmFyIGM9Yi5vcmlnaW4udG9Mb3dlckNhc2UoKTtiPWIuZGF0YTtmb3IodmFyIGQ9YS5sZW5ndGgsZT0wO2UmbHQ7ZCZhbXA7JmFtcDshYVtlXS51KGMsYik7ZSsrKTt9fSxHdz1mdW5jdGlvbigpe2lmKHdpbmRvdy5wb3N0TWVzc2FnZSl7dmFyIGE7YT13aW5kb3cuX19DSEVDS19DT05ORUNUSU9OX0NPTkZJRy5pZnJhbWVQYXJlbnRFbGVtZW50SWQ7dmFyIGI9d2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcuY29ubmVjdGl2aXR5RWxlbWVudElkLGM9d2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcubmV3UmVzdWx0RWxlbWVudElkOyhHcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk/KGImYW1wOyZhbXA7KEdzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpKSxjJmFtcDsmYW1wOyhHdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChjKSksR3N8fEd0P2E9ITA6KEdxLmVycm9yKCJVbmFibGUgdG8gbG9jYXRlIHRoZSBpbnB1dCBlbGVtZW50IHRvIHN0b3JlQ2hlY2tDb25uZWN0aW9uIHJlc3VsdCIsClsib2xkIGlkOiAiK1N0cmluZyhiKSwibmV3IGlkOiAiK1N0cmluZyhjKV0pLGE9ITEpKTooR3EuZXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgdGhlIGlmcmFtZSBhbmNob3IgdG8gYXBwZW5kIGNvbm5lY3Rpb24gdGVzdCBpZnJhbWUiLFsiZWxlbWVudCBpZDogIithXSksYT0hMSk7aWYoYSl7YT13aW5kb3cuX19DSEVDS19DT05ORUNUSU9OX0NPTkZJRy5kb21haW5Db25maWdzO2lmKCFhKXtpZighd2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcuaWZyYW1lVXJpKXtHcS5lcnJvcigiTWlzc2luZyBpZnJhbWUgVVJMIGluIG9sZCBjb25maWd1cmF0aW9uIik7cmV0dXJufWE9W3tpZnJhbWVVcmk6d2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcuaWZyYW1lVXJpLGRvbWFpblN5bWJvbDoieW91dHViZSJ9XX1pZigwIT1hLmxlbmd0aCl7Zm9yKHZhciBiPWEubGVuZ3RoLGM9W10sZD0wO2QmbHQ7YjtkKyspYy5wdXNoKG5ldyBHdShhW2RdLmlmcmFtZVVyaSxhW2RdLmRvbWFpblN5bWJvbCkpOwpHaCh3aW5kb3csIm1lc3NhZ2UiLEd2KGMpKTtmb3IoZD0wO2QmbHQ7YjtkKyspY1tkXS5sKCl9fX19LEd4PWZ1bmN0aW9uKCl7aWYod2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcpe3ZhciBhPXdpbmRvdy5fX0NIRUNLX0NPTk5FQ1RJT05fQ09ORklHLnBvc3RNc2dTdXBwb3J0RWxlbWVudElkO2lmKHdpbmRvdy5wb3N0TWVzc2FnZSl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSk7Yj9iLnZhbHVlPSIxIjpHcS5lcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSB0aGUgaW5wdXQgZWxlbWVudCB0byBzdG9yZXBvc3RNZXNzYWdlIHRlc3QgcmVzdWx0IixbImVsZW1lbnQgaWQ6ICIrYV0pfX19O0dfY2hlY2tDb25uZWN0aW9uTWFpbj1HcS5mKEd3KTtHX3NldFBvc3RNZXNzYWdlU3VwcG9ydEZsYWc9R3EuZihHeCk7Cjwvc2NyaXB0PgogIDxzY3JpcHQ+CiAgd2luZG93Ll9fQ0hFQ0tfQ09OTkVDVElPTl9DT05GSUcgPSB7CiAgbmV3UmVzdWx0RWxlbWVudElkOiAnY2hlY2tDb25uZWN0aW9uJywKICBkb21haW5Db25maWdzOiBbe2lmcmFtZVVyaTogJ2h0dHBzOi8vYWNjb3VudHMueW91dHViZS5jb20vYWNjb3VudHMvQ2hlY2tDb25uZWN0aW9uP3BtcG9cNzVodHRwcyUzQSUyRiUyRmFjY291bnRzLmdvb2dsZS5jb21cNDZ2XDA3NTE4MjM0MTI4NzMnLGRvbWFpblN5bWJvbDogJ3lvdXR1YmUnfV0sCiAgaWZyYW1lVXJpOiAnJywKICBpZnJhbWVPcmlnaW46ICcnLAogIGNvbm5lY3Rpdml0eUVsZW1lbnRJZDogJ2RuQ29ubicsCiAgaWZyYW1lUGFyZW50RWxlbWVudElkOiAnY2NfaWZyYW1lX3BhcmVudCcsCiAgcG9zdE1zZ1N1cHBvcnRFbGVtZW50SWQ6ICdwc3RNc2cnLAogIG1zZ0NvbnRlbnQ6ICdhY2Nlc3NpYmxlJwogIH07CiAgR19zZXRQb3N0TWVzc2FnZVN1cHBvcnRGbGFnKCk7CiAgR19jaGVja0Nvbm5lY3Rpb25NYWluKCk7Cjwvc2NyaXB0PgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vKiBBbnRpLXNwYW0uIFdhbnQgdG8gc2F5IGhlbGxvPyBDb250YWN0IChiYXNlNjQpIFltOTBaM1ZoY21RdFkyOXVkR0ZqZEVCbmIyOW5iR1V1WTI5dCAqLyhmdW5jdGlvbigpe2V2YWwoJ3ZhciBoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMiZndDs9YXJndW1lbnRzLmxlbmd0aD9mLnNsaWNlLmNhbGwoYSxiKTpmLnNsaWNlLmNhbGwoYSxiLGMpfSxwPWZ1bmN0aW9uKGEsYixjLGQsZSl7Yz1hLnNwbGl0KCIuIiksZD1rLGNbMF1pbiBkfHwhZC5leGVjU2NyaXB0fHxkLmV4ZWNTY3JpcHQoInZhciAiK2NbMF0pO2Zvcig7Yy5sZW5ndGgmYW1wOyZhbXA7KGU9Yy5zaGlmdCgpKTspYy5sZW5ndGh8fHZvaWQgMD09PWI/ZD1kW2VdP2RbZV06ZFtlXT17fTpkW2VdPWJ9LGY9QXJyYXkucHJvdG90eXBlLHE9ZnVuY3Rpb24oYSxiLGMpe2lmKGI9dHlwZW9mIGEsIm9iamVjdCI9PWIpaWYoYSl7aWYoYSBpbnN0YW5jZW9mIEFycmF5KXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gYjtpZihjPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKSwiW29iamVjdCBXaW5kb3ddIj09YylyZXR1cm4ib2JqZWN0IjtpZigiW29iamVjdCBBcnJheV0iPT1jfHwibnVtYmVyIj09dHlwZW9mIGEubGVuZ3RoJmFtcDsmYW1wOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zcGxpY2UmYW1wOyZhbXA7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlJmFtcDsmYW1wOyFhLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJzcGxpY2UiKSlyZXR1cm4iYXJyYXkiO2lmKCJbb2JqZWN0IEZ1bmN0aW9uXSI9PWN8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5jYWxsJmFtcDsmYW1wOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSZhbXA7JmFtcDshYS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgiY2FsbCIpKXJldHVybiJmdW5jdGlvbiJ9ZWxzZSByZXR1cm4ibnVsbCI7ZWxzZSBpZigiZnVuY3Rpb24iPT1iJmFtcDsmYW1wOyJ1bmRlZmluZWQiPT10eXBlb2YgYS5jYWxsKXJldHVybiJvYmplY3QiO3JldHVybiBifSxrPXRoaXMsdCx3PShuZXcgZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGEsYixjLGQsZSl7Zm9yKGE9YS5yZXBsYWNlKC9cXHJcXG4vZywiXFxuIiksYj1bXSxkPWM9MDtkJmx0O2EubGVuZ3RoO2QrKyllPWEuY2hhckNvZGVBdChkKSwxMjgmZ3Q7ZT9iW2MrK109ZTooMjA0OCZndDtlP2JbYysrXT1lJmd0OyZndDs2fDE5MjooYltjKytdPWUmZ3Q7Jmd0OzEyfDIyNCxiW2MrK109ZSZndDsmZ3Q7NiZhbXA7NjN8MTI4KSxiW2MrK109ZSZhbXA7NjN8MTI4KTtyZXR1cm4gYn0pLEE9ZnVuY3Rpb24oYSxiLGMsZCxlLGcpe3RyeXtmb3IodGhpcy5jPVtdLHgodGhpcyx0aGlzLmIsMCkseCh0aGlzLHRoaXMudSwwKSx4KHRoaXMsdGhpcy5iYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdz93aW5kb3c6aykseCh0aGlzLHRoaXMuTCwwKSx4KHRoaXMsdGhpcy5ELDApLHgodGhpcyx0aGlzLkMse30pLHgodGhpcyx0aGlzLm8sMjA0OCkseCh0aGlzLHRoaXMubSx0aGlzLm0pLHgodGhpcyx0aGlzLkssMCkseCh0aGlzLHRoaXMuYWEsW10pLHgodGhpcyx0aGlzLmoseSg0KSksdGhpcy5IPXRydWUseCh0aGlzLHRoaXMubCxbXSkseCh0aGlzLHRoaXMuZGEsdGhpcykseCh0aGlzLHRoaXMuZyxbXSksYj0wOzY0Jmd0O2I7KytiKTtpZihhJmFtcDsmYW1wOyIhIj09YS5jaGFyQXQoMCkpdGhpcy52PWE7ZWxzZXtpZih3aW5kb3cuYXRvYil7Zm9yKGQ9d2luZG93LmF0b2IoYSksYT1bXSxlPWI9MDtlJmx0O2QubGVuZ3RoO2UrKyl7Zm9yKGc9ZC5jaGFyQ29kZUF0KGUpOzI1NSZsdDtnOylhW2IrK109ZyZhbXA7MjU1LGcmZ3Q7Jmd0Oz04O2FbYisrXT1nfWM9YX1lbHNlIGM9bnVsbDsodGhpcy5mPWMpJmFtcDsmYW1wO3RoaXMuZi5sZW5ndGg/KHRoaXMuVT1bXSx0aGlzLkkoKSk6dGhpcy5oKHRoaXMuVyl9fWNhdGNoKGwpe3oodGhpcyxsKX19LHg9KHQ9QS5wcm90b3R5cGUsdC5YPTMxLGZ1bmN0aW9uKGEsYixjKXtpZihiPT1hLmJ8fGI9PWEudSlhLmNbYl0/YS5jW2JdLm5hKGMpOmEuY1tiXT1CKGMpO2Vsc2UgaWYoYiE9YS5nJmFtcDsmYW1wO2IhPWEuaiZhbXA7JmFtcDtiIT1hLmx8fCFhLmNbYl0pYS5jW2JdPUMoYyxhLmEpO2I9PWEuRCZhbXA7JmFtcDsoYS5HPXZvaWQgMCx4KGEsYS5iLGEuYShhLmIpKzQpKX0pLEQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYVtiXSZsdDsmbHQ7MjR8YVtiKzFdJmx0OyZsdDsxNnxhW2IrMl0mbHQ7Jmx0Ozh8YVtiKzNdfSxGPShBLnByb3RvdHlwZS5wYT1mdW5jdGlvbihhLGIsYyxkKXtpZigzPT1hLmxlbmd0aCl7Zm9yKGM9MDszJmd0O2M7YysrKWJbY10rPWFbY107Zm9yKGM9MCxkPVsxMyw4LDEzLDEyLDE2LDUsMywxMCwxNV07OSZndDtjO2MrKyliWzNdKGIsYyUzLGRbY10pfX0sdC5kYT0xOTUsZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGM9YS5hKGEuYiksYS5mJmFtcDsmYW1wO2MmbHQ7YS5mLmxlbmd0aD8oeChhLGEuYixhLmYubGVuZ3RoKSxFKGEsYikpOngoYSxhLmIsYiksZD1hLkkoKSx4KGEsYS5iLGMpLGR9KSxHPSh0LkI9e30sdC5vPTE3MCxmdW5jdGlvbihhLGIsYyxkKXt0cnl7Zm9yKGQ9MDs4NDk0MTk0NDYwOCE9ZDspYSs9KGImbHQ7Jmx0OzReYiZndDsmZ3Q7Jmd0OzUpK2JeZCtjW2QmYW1wOzNdLGQrPTI2NTQ0MzU3NjksYis9KGEmbHQ7Jmx0OzReYSZndDsmZ3Q7Jmd0OzUpK2FeZCtjW2QmZ3Q7Jmd0OyZndDsxMSZhbXA7M107cmV0dXJuW2EmZ3Q7Jmd0OyZndDsyNCxhJmd0OyZndDsxNiZhbXA7MjU1LGEmZ3Q7Jmd0OzgmYW1wOzI1NSxhJmFtcDsyNTUsYiZndDsmZ3Q7Jmd0OzI0LGImZ3Q7Jmd0OzE2JmFtcDsyNTUsYiZndDsmZ3Q7OCZhbXA7MjU1LGImYW1wOzI1NV19Y2F0Y2goZSl7dGhyb3cgZTt9fSksST0odC5MPTExMix0Lmo9MTQsdC5tPTIyNSx0Lnc9ImNhbGxlciIsdC5BPTIyLHQuYmE9NzMsdC5WPTIxLGZ1bmN0aW9uKGEsYixjLGQsZSxnKXtmb3IoYj17fSxjPUgoYSksYi5UPUgoYSksYi5zPVtdLGQ9SChhKS0xLGU9SChhKSxnPTA7ZyZsdDtkO2crKyliLnMucHVzaChIKGEpKTtmb3IoYi5SPWEuYShjKSxiLlM9YS5hKGUpO2QtLTspYi5zW2RdPWEuYShiLnNbZF0pO3JldHVybiBifSksQz0odC5lYT0xNSx0Lk49InRvU3RyaW5nIix0Llo9MzAsdC5mYT0xMix0LmNhPTIxNix0LkM9MTMxLHQuJD0zNixmdW5jdGlvbihhLGIsYyxkLGUsZyxsLG0sbil7cmV0dXJuIGU9QS5wcm90b3R5cGUsbT1BLG49ZS5oLGw9ZS5PLGc9ZS5JLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gYygpfSxjPWZ1bmN0aW9uKGEscix2KXtmb3IoYT1kW2Uud10scj1hPT09Yix2PTAsYT1hJmFtcDsmYW1wO2FbZS53XTthJmFtcDsmYW1wO2EhPWcmYW1wOyZhbXA7YSE9bCZhbXA7JmFtcDthIT1tJmFtcDsmYW1wO2EhPW4mYW1wOyZhbXA7MjAmZ3Q7djspdisrLGE9YVtlLnddO3JldHVybiBjW2UuaWErcishKCFhKyh2KzMmZ3Q7Jmd0OzMpKV19LGRbZS5OXT1lLGNbZS4kXT1hLGE9dm9pZCAwLGR9KSx5PSh0LmFhPTE3MSx0LmlhPTM0LHQuZz0yNTQsdC51PTE4NCxmdW5jdGlvbihhLGIpe2ZvcihiPUFycmF5KGEpO2EtLTspYlthXT0yNTUqTWF0aC5yYW5kb20oKXwwO3JldHVybiBifSksRT0oQS5wcm90b3R5cGUucmE9ZnVuY3Rpb24oYSxiKXtiLnB1c2goYVswXSZsdDsmbHQ7MjR8YVsxXSZsdDsmbHQ7MTZ8YVsyXSZsdDsmbHQ7OHxhWzNdKSxiLnB1c2goYVs0XSZsdDsmbHQ7MjR8YVs1XSZsdDsmbHQ7MTZ8YVs2XSZsdDsmbHQ7OHxhWzddKSxiLnB1c2goYVs4XSZsdDsmbHQ7MjR8YVs5XSZsdDsmbHQ7MTZ8YVsxMF0mbHQ7Jmx0Ozh8YVsxMV0pfSx0Lk09MTc4LHQuZ2E9MTAsZnVuY3Rpb24oYSxiKXthLlUucHVzaChhLmMuc2xpY2UoKSksYS5jW2EuYl09dm9pZCAwLHgoYSxhLmIsYil9KSxKPWZ1bmN0aW9uKGEsYixjLGQsZSxnKXtmb3IoZT1hLmEoYiksYj1iPT1hLmo/ZnVuY3Rpb24oYixjLGQsZyl7aWYoYz1lLmxlbmd0aCxkPWMtNCZndDsmZ3Q7MyxlLmxhIT1kKXtlLmxhPWQsZD0oZCZsdDsmbHQ7MyktNCxnPVswLDAsMCxhLmEoYS5MKV07dHJ5e2UuamE9RyhEKGUsZCksRChlLGQrNCksZyl9Y2F0Y2gocil7dGhyb3cgcjt9fWUucHVzaChlLmphW2MmYW1wOzddXmIpfTpmdW5jdGlvbihhKXtlLnB1c2goYSl9LGQmYW1wOyZhbXA7YihkJmFtcDsyNTUpLGc9MCxkPWMubGVuZ3RoO2cmbHQ7ZDtnKyspYihjW2ddKX0sej0oQS5wcm90b3R5cGUuYT1mdW5jdGlvbihhLGIpe2lmKGI9dGhpcy5jW2FdLHZvaWQgMD09PWIpdGhyb3cgdGhpcy5oKHRoaXMuWiwwLGEpLHRoaXMuQjtyZXR1cm4gYigpfSx0Lmw9MjMzLGZ1bmN0aW9uKGEsYil7YS52PSgiRToiK2IubWVzc2FnZSsiOiIrYi5zdGFjaykuc2xpY2UoMCwyMDQ4KX0pLEw9KHQuRD0yMzIsQS5wcm90b3R5cGUuaD1mdW5jdGlvbihhLGIsYyxkKXtkPXRoaXMuYSh0aGlzLnUpLGE9W2EsZCZndDsmZ3Q7OCZhbXA7MjU1LGQmYW1wOzI1NV0sdm9pZCAwIT1jJmFtcDsmYW1wO2EucHVzaChjKSwwPT10aGlzLmEodGhpcy5sKS5sZW5ndGgmYW1wOyZhbXA7KHRoaXMuY1t0aGlzLmxdPXZvaWQgMCx4KHRoaXMsdGhpcy5sLGEpKSxjPSIiLGImYW1wOyZhbXA7KGIubWVzc2FnZSZhbXA7JmFtcDsoYys9Yi5tZXNzYWdlKSxiLnN0YWNrJmFtcDsmYW1wOyhjKz0iOiIrYi5zdGFjaykpLGI9dGhpcy5hKHRoaXMubyksMyZsdDtiJmFtcDsmYW1wOyhjPWMuc2xpY2UoMCxiLTMpLGItPWMubGVuZ3RoKzMsYz13KGMpLEoodGhpcyx0aGlzLmosSyhjLmxlbmd0aCwyKS5jb25jYXQoYyksdGhpcy5mYSkpLHgodGhpcyx0aGlzLm8sYil9LHQuaGE9NDIsZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIWR8fGEuSClyZXR1cm4geChhLGEuY2EsYXJndW1lbnRzKSx4KGEsYS5DLGMpLEYoYSxiKX19KSxLPSh0LmI9MTk4LGZ1bmN0aW9uKGEsYixjLGQpe2ZvcihkPWItMSxjPVtdOzAmbHQ7PWQ7ZC0tKWNbYi0xLWRdPWEmZ3Q7Jmd0OzgqZCZhbXA7MjU1O3JldHVybiBjfSksSD0odC5KPTI1Mix0Llc9MTcsZnVuY3Rpb24oYSxiLGMpe2lmKGI9YS5hKGEuYiksIShiIGluIGEuZikpdGhyb3cgYS5oKGEuWCksYS5CO3JldHVybiB2b2lkIDA9PWEuRyZhbXA7JmFtcDsoYS5HPUQoYS5mLGItNCksYS5GPXZvaWQgMCksYS5GIT1iJmd0OyZndDszJmFtcDsmYW1wOyhhLkY9YiZndDsmZ3Q7MyxjPVswLDAsMCxhLmEoYS5EKV0sYS5rYT1HKGEuRyxhLkYsYykpLHgoYSxhLmIsYisxKSxhLmZbYl1eYS5rYVtiJThdfSksQj0oQS5wcm90b3R5cGUucWE9ZnVuY3Rpb24oYSxiLGMsZCl7dHJ5e2Q9YVsoYisyKSUzXSxhW2JdPWFbYl0tYVsoYisxKSUzXS1kXigxPT1iP2QmbHQ7Jmx0O2M6ZCZndDsmZ3Q7Jmd0O2MpfWNhdGNoKGUpe3Rocm93IGU7fX0sdC5ZPTMzLHQuUD1bZnVuY3Rpb24oYSxiLGMsZCl7Yj1IKGEpLGM9SChhKSxkPUgoYSksYS5hKGIpJmd0O2EuYShjKSZhbXA7JmFtcDt4KGEsZCxhLmEoZCkrMSl9LGZ1bmN0aW9uKGEsYixjLGQsZSxnLGwsbSxuKXtpZihiPUgoYSksYz1IKGEpJmx0OyZsdDs4fEgoYSksZD0iIix2b2lkIDAhPWEuY1thLkpdKWZvcihlPWEuYShhLkopO2MtLTspZz1lW0goYSkmbHQ7Jmx0Ozh8SChhKV0sZCs9ZztlbHNle2ZvcihkPUFycmF5KGMpLGU9MDtlJmx0O2M7ZSsrKWRbZV09SChhKTtmb3IoYz1bXSxnPWU9MDtlJmx0O2QubGVuZ3RoOylsPWRbZSsrXSwxMjgmZ3Q7bD9jW2crK109U3RyaW5nLmZyb21DaGFyQ29kZShsKToxOTEmbHQ7bCZhbXA7JmFtcDsyMjQmZ3Q7bD8obT1kW2UrK10sY1tnKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKGwmYW1wOzMxKSZsdDsmbHQ7NnxtJmFtcDs2MykpOihtPWRbZSsrXSxuPWRbZSsrXSxjW2crK109U3RyaW5nLmZyb21DaGFyQ29kZSgobCZhbXA7MTUpJmx0OyZsdDsxMnwobSZhbXA7NjMpJmx0OyZsdDs2fG4mYW1wOzYzKSk7ZD1jLmpvaW4oIiIpfXgoYSxiLGQpfSxmdW5jdGlvbihhKXtNKGEsNCl9LGZ1bmN0aW9uKGEpe04oYSwxKX0sZnVuY3Rpb24oYSxiLGMsZCl7Yj1IKGEpLGM9SChhKSxkPWEuYShIKGEpKSxjPWEuYShjKSx4KGEsYixMKGEsYyxkKSl9LGZ1bmN0aW9uKGEpe00oYSwyKX0sZnVuY3Rpb24oYSxiLGMpe2I9SChhKSxjPUgoYSkseChhLGMsIiIrYS5hKGIpKX0sZnVuY3Rpb24oYSxiLGMsZCl7Yj1IKGEpLGM9SChhKSxkPUgoYSksYS5hKGIpPT1hLmEoYykmYW1wOyZhbXA7eChhLGQsYS5hKGQpKzEpfSxmdW5jdGlvbihhLGIsYyxkKXtiPUgoYSksYz1IKGEpLGQ9SChhKSx4KGEsZCxhLmEoYil8YS5hKGMpKX0sZnVuY3Rpb24oYSxiKXtiPUkoYSkseChhLGIuVCxiLlIuYXBwbHkoYi5TLGIucykpfSxmdW5jdGlvbihhLGIpe2I9YS5hKEgoYSkpLEUoYSxiKX0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKGEsYixjLGQpe2lmKGI9YS5VLnBvcCgpKXtmb3IoYz1IKGEpOzAmbHQ7YztjLS0pZD1IKGEpLGJbZF09YS5jW2RdO2EuYz1ifWVsc2UgeChhLGEuYixhLmYubGVuZ3RoKX0sZnVuY3Rpb24oYSxiLGMsZCxlLGcsbCl7Yj1JKGEpLGU9Yi5SLGQ9Yi5TLGM9Yi5zLGw9Yy5sZW5ndGgsMD09bD9nPW5ldyBkW2VdOjE9PWw/Zz1uZXcgZFtlXShjWzBdKToyPT1sP2c9bmV3IGRbZV0oY1swXSxjWzFdKTozPT1sP2c9bmV3IGRbZV0oY1swXSxjWzFdLGNbMl0pOjQ9PWw/Zz1uZXcgZFtlXShjWzBdLGNbMV0sY1syXSxjWzNdKTphLmgoYS5BKSx4KGEsYi5ULGcpfSxmdW5jdGlvbihhLGIsYyxkKXtiPUgoYSksYz1IKGEpLGQ9SChhKSxhLmEoYilbYS5hKGMpXT1hLmEoZCl9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbihhKXtPKGEsNyl9LGZ1bmN0aW9uKGEsYixjLGQsZSl7Yj1IKGEpLGM9SChhKSxkPUgoYSksZT1hLmEoSChhKSksYz1hLmEoYyksZD1hLmEoZCksYS5hKGIpLmFkZEV2ZW50TGlzdGVuZXIoYyxMKGEsZCxlLHRydWUpLGZhbHNlKX0sZnVuY3Rpb24oYSxiLGMpe2I9SChhKSxjPUgoYSksMCE9YS5hKGIpJmFtcDsmYW1wO3goYSxhLmIsYS5hKGMpKX0sZnVuY3Rpb24oYSxiLGMsZCxlKXtmb3IoYj1IKGEpLGM9SChhKSZsdDsmbHQ7OHxIKGEpLGQ9QXJyYXkoYyksZT0wO2UmbHQ7YztlKyspZFtlXT1IKGEpO3goYSxiLGQpfSxmdW5jdGlvbihhLGIsYyxkKXtiPUgoYSksYz1IKGEpLGQ9SChhKSx4KGEsZCwoYS5hKGIpaW4gYS5hKGMpKSswKX0sZnVuY3Rpb24oYSxiLGMsZCl7Yj1IKGEpLGM9SChhKSxkPUgoYSkseChhLGQsYS5hKGIpJmd0OyZndDtjKX0sZnVuY3Rpb24oYSxiLGMsZCl7Yj1IKGEpLGM9SChhKSxkPUgoYSksYz1hLmEoYyksYj1hLmEoYikseChhLGQsYltjXSl9LGZ1bmN0aW9uKGEsYixjLGQsZSxnKXtpZihiPUgoYSksYz1IKGEpLGQ9SChhKSxlPUgoYSksYj1hLmEoYiksYz1hLmEoYyksZD1hLmEoZCksYT1hLmEoZSksIm9iamVjdCI9PXEoYikpe2ZvcihnIGluIGU9W10sYillLnB1c2goZyk7Yj1lfWZvcihlPTAsZz1iLmxlbmd0aDtlJmx0O2c7ZSs9ZCljKGIuc2xpY2UoZSxlK2QpLGEpfSxmdW5jdGlvbihhKXtNKGEsMSl9LGZ1bmN0aW9uKGEsYixjKXtiPUgoYSksYz1IKGEpLHgoYSxjLGEuYShjKS1hLmEoYikpfSxmdW5jdGlvbihhLGIsYyxkKXtiPUgoYSksYz1IKGEpLGQ9SChhKSx4KGEsZCxhLmEoYil8fGEuYShjKSl9LGZ1bmN0aW9uKGEpe08oYSw0KX0sZnVuY3Rpb24oYSl7TyhhLDApfSxmdW5jdGlvbihhLGIsYyxkKXtiPUgoYSksYz1IKGEpLGQ9SChhKSx4KGEsZCxhLmEoYikmbHQ7Jmx0O2MpfSxmdW5jdGlvbigpe30sZnVuY3Rpb24oYSl7TihhLDQpfSxmdW5jdGlvbihhLGIsYyl7Yj1IKGEpLGM9SChhKSxiPWEuYShiKSx4KGEsYyxiKX0sZnVuY3Rpb24oYSxiLGMpe2I9SChhKSxjPUgoYSkseChhLGMsYS5hKGMpKmEuYShiKSl9LGZ1bmN0aW9uKGEsYixjKXtiPUgoYSksYz1IKGEpLGI9YS5hKGIpLHgoYSxjLHEoYikpfSxmdW5jdGlvbihhLGIsYyl7Yj1IKGEpLGM9SChhKSx4KGEsYyxhLmEoYyklYS5hKGIpKX0sZnVuY3Rpb24oYSxiLGMpe2I9SChhKSxjPUgoYSkseChhLGMsYS5hKGMpK2EuYShiKSl9LGZ1bmN0aW9uKGEpe08oYSwzKX0sZnVuY3Rpb24oYSxiLGMpe2I9SChhKSxjPUgoYSkseChhLGMsZnVuY3Rpb24oYSl7cmV0dXJuIGV2YWwoYSl9KGEuYShiKSkpfSxmdW5jdGlvbihhKXtOKGEsMil9XSxmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM9ZnVuY3Rpb24oKXtyZXR1cm4gYX0sYj1mdW5jdGlvbigpe3JldHVybiBjKCl9LGIubmE9ZnVuY3Rpb24oYil7YT1ifSxifSksUD0odC5LPTI1MyxmdW5jdGlvbihhLGIsYyxkKXtpZig4MTkyJmd0Oz1hLmxlbmd0aClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGEpO2ZvcihjPTAsYj0iIjtjJmx0O2EubGVuZ3RoO2MrPTgxOTIpZD1oKGEsYyxjKzgxOTIpLGIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxkKTtyZXR1cm4gYn0pLE49KEEucHJvdG90eXBlLm9hPWZ1bmN0aW9uKGEpe3JldHVybihhPXdpbmRvdy5wZXJmb3JtYW5jZSkmYW1wOyZhbXA7YS5ub3c/ZnVuY3Rpb24oKXtyZXR1cm4gYS5ub3coKXwwfTpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX19KCksZnVuY3Rpb24oYSxiLGMsZCl7Yz1IKGEpLGQ9SChhKSxKKGEsZCxLKGEuYShjKSxiKSl9KSxNPWZ1bmN0aW9uKGEsYixjLGQpe2ZvcihjPUgoYSksZD0wOzAmbHQ7YjtiLS0pZD1kJmx0OyZsdDs4fEgoYSk7eChhLGMsZCl9LE89KEEucHJvdG90eXBlLm1hPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGI9dGhpcy5PKCksYSZhbXA7JmFtcDthKGIpLGJ9LGZ1bmN0aW9uKGEsYixjLGQsZSxnKXtkPWImYW1wOzMsYz1iJmFtcDs0LGU9SChhKSxnPUgoYSksZT1hLmEoZSksYyZhbXA7JmFtcDsoZT13KCIiK2UpKSxkJmFtcDsmYW1wO0ooYSxnLEsoZS5sZW5ndGgsMikpLEooYSxnLGUpfSk7QS5wcm90b3R5cGUuTz1mdW5jdGlvbihhLGIsYyxkLGUsZyxsLG0sbix1KXtpZih0aGlzLnYpcmV0dXJuIHRoaXMudjt0cnl7aWYodGhpcy5IPWZhbHNlLGI9dGhpcy5hKHRoaXMuZykubGVuZ3RoLGM9dGhpcy5hKHRoaXMuaikubGVuZ3RoLGQ9dGhpcy5hKHRoaXMubyksdGhpcy5jW3RoaXMuTV0mYW1wOyZhbXA7Rih0aGlzLHRoaXMuYSh0aGlzLk0pKSxlPXRoaXMuYSh0aGlzLmwpLDAmbHQ7ZS5sZW5ndGgmYW1wOyZhbXA7Sih0aGlzLHRoaXMuZyxLKGUubGVuZ3RoLDIpLmNvbmNhdChlKSx0aGlzLmVhKSxnPXRoaXMuYSh0aGlzLkspJmFtcDsyNTUsZy09dGhpcy5hKHRoaXMuZykubGVuZ3RoKzUsbD10aGlzLmEodGhpcy5qKSw0Jmx0O2wubGVuZ3RoJmFtcDsmYW1wOyhnLT1sLmxlbmd0aCszKSwwJmx0O2cmYW1wOyZhbXA7Sih0aGlzLHRoaXMuZyxLKGcsMikuY29uY2F0KHkoZykpLHRoaXMuZ2EpLDQmbHQ7bC5sZW5ndGgmYW1wOyZhbXA7Sih0aGlzLHRoaXMuZyxLKGwubGVuZ3RoLDIpLmNvbmNhdChsKSx0aGlzLmhhKSxtPXkoMikuY29uY2F0KHRoaXMuYSh0aGlzLmcpKSxtWzFdPW1bMF1eMyxuPXdpbmRvdy5idG9hP3dpbmRvdy5idG9hKFAobSkpLnJlcGxhY2UoL1xcKy9nLCItIikucmVwbGFjZSgvXFwvL2csIl8iKS5yZXBsYWNlKC89L2csIiIpOnZvaWQgMCxuKW49IiEiK247ZWxzZSBmb3IoZT0wLG49IiI7ZSZsdDttLmxlbmd0aDtlKyspdT1tW2VdW3RoaXMuTl0oMTYpLDE9PXUubGVuZ3RoJmFtcDsmYW1wOyh1PSIwIit1KSxuKz11O3RoaXMuYSh0aGlzLmcpLmxlbmd0aD1iLHRoaXMuYSh0aGlzLmopLmxlbmd0aD1jLHgodGhpcyx0aGlzLm8sZCksYT1uLHRoaXMuSD10cnVlfWNhdGNoKHIpe3oodGhpcyxyKSxhPXRoaXMudn1yZXR1cm4gYX0sQS5wcm90b3R5cGUuST1mdW5jdGlvbihhLGIsYyxkLGUsZyl7dHJ5e2ZvcihkPTAsYz12b2lkIDAsYj01MDAxLGE9dGhpcy5mLmxlbmd0aDstLWImYW1wOyZhbXA7KGQ9dGhpcy5hKHRoaXMuYikpJmx0O2E7KXRyeXt4KHRoaXMsdGhpcy51LGQpLGU9SCh0aGlzKSV0aGlzLlAubGVuZ3RoLChjPXRoaXMuUFtlXSk/Yyh0aGlzKTp0aGlzLmgodGhpcy5WLDAsZSl9Y2F0Y2gobCl7bCE9dGhpcy5CJmFtcDsmYW1wOyhnPXRoaXMuYSh0aGlzLm0pLGchPXRoaXMubT8oeCh0aGlzLGcsbCkseCh0aGlzLHRoaXMubSx0aGlzLm0pKTp0aGlzLmgodGhpcy5BLGwpKX1ifHx0aGlzLmgodGhpcy5ZKX1jYXRjaChtKXt0cnl7dGhpcy5oKHRoaXMuQSxtKX1jYXRjaChuKXt6KHRoaXMsbil9fXJldHVybiB0aGlzLmEodGhpcy5DKX07dHJ5e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7fSxmYWxzZSl9Y2F0Y2goUSl7fXAoImJvdGd1YXJkLmJnIixBKSxwKCJib3RndWFyZC5iZy5wcm90b3R5cGUuaW52b2tlIixBLnByb3RvdHlwZS5tYSk7Jyl9KSgpPC9zY3JpcHQ+CiAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIGRvY3VtZW50LmJnID0gbmV3IGJvdGd1YXJkLmJnKCc3eXQwdHFnQVRLSERObTNobFpJa014TkVCOTFITVBxb2lGWlN0bjNwY1FVYkZRYzhWdWoyNkpyaHV0ZnR4WUZoVGlxZ2hIR3AvMWptZmNwVHQxRjZrVklxYVF6bnRIYkk2elJUMzNZRFJWNnBRb09YUHBBVmZIQVQyQXdhWS9hSEdWWitibHRuSThLcEZ3UGx3UG9qNEtqOCtYOTl5YnNjRFQrOS96MGpMMk5NcmFFZmgwblkreU1vUEpnMEVDcHQzSjU3RGd0bkdFSXhrU1VQMmY1U1Jhd1pySXdsUU8vR3hVdUlNSEVsY2tJaFpzT2ZmQS95VzZieU8wREtJVU1VblZ1cmRSY010ZVhaQ0pCbkNndjFvTmVvODNwQURqUkY0VmZUOUlmdEhEcllTZlBwK1pJaWhtdDRjMEhtamJSalpwNzJma2lVdEVNSzZWSklWM1pWTHR5ZzVTRndxMTZoL09LeVVQNVZqRGJ4UjN5N2tBZ3NVWXNGWDZnaXBvdldoRjRwQ3FVT2M3TFREQUlubEg4UEZGYzJqcjczVTJMQkl4MDd4ckQzQkl3VW9xQWtOUngvV2xzQWNnczdDMTFoQjZ0bDRBTWNuNHlERXY1R2FXVVlmTVovYjVNK0tBa05hb2g0Nmc0NVE3REE3RTMrWitjQVFiMDkxNTZFZVYrNGRlVzNFQnJhUk9PK1crUlVLMUV4Ym9IaThBVy9ldjQ1SGxXdHpKdUlnalRKUy9DQzdWWDdlOXcrL01GOWo1NWM0TTAwcFVoc3ZkbFEybzVXaGY3WkQzSnZzSnROQ3RaOUtOdzk0dC9tLzdzdXVJcjRUWk1kU1lia0NyeHFjNU8xb042RFlUVkpZL1dLZ3BPOXVZNmZja0svbjRmZGd1enVJRG1RaWJEYnc3Nk9FcXhCUDF0cW1SekVvYzdSQk1sUElqUFByR3N1cFh5TERPV2ZTckUwdE9KbGd2ZGF5a0xWLzhWRnZ0Mk5HTE10VThFazZHZ2JraVhOMi8xKzBvUVpFK3g3TnNsemQ5b2tLMzFhWU9GL3IrVStsMnJpSTJ4bGlCR2xWclFIUW9RVk5nUHZDWjlRQ1NjM2JGQ3hHR2dtNXVRQVhKMVFMOWxSZE1DWHMvM3lkU1VRbXh3K2RQQmFjUGxaN2hyWTBIWjFJTERYcGpEMC90Y1JOelJjTVR4UXRrVzRQY2kySWw2WmhHSWRvOENuQVYvQVFOQWRocFJoU095ZWd5bnVyNXhLSElDOWlDQTU0SnRRbnU5akVnQmFLV1BFVVZZUUkzU1J2NjZpYjBWQjZuYjFxaW9KOGlPWmxWeElvZlZnZGZYbUJDZzZVb0ZuRUhEc0lyWVdGWVpISk14Ly9rNDlydWpEN3ZscjdNRGtXMm56U0paakp4ck9TdWR6QS9KT0kvQ3cvamdMTmd2UlA5WUZjQjV0eGJFMEJyOWNyQnIvMk5EcDlFbTFEWStwN1pRdGN5UXpERzJPMCtHTy9sOUpsS0RveEFmeWlMWjYrVVEwc0VxbzNudzZwN1VmaXJTSjkyelcvOEZtazhybGxTUHhnU3k4b25JRW5LNlV6SlNBWHYxYk4vZ1lWVHdsV3FOVzJ5K21qYzZjbnNHNFRyMm9rUEZBZmxHOHlDYkd5WHg3OWJEVDRTalJxZ1dqdUtvcVZTZ2dXaC8rVXQ1Sm9Oelpad1JLdFVSQWRhcm45WDI3QzNoT3JMWURIUnZGdVIvMGZESzNJaCtWcDNaNllnekZxOUVGK3d3emRaRU9kcm5pUzdxVjRZVTBXY2RRcjk4RzRvKzdEY1JST29BQUNXeGgvYSthYWF1c0xRYnhXV014NkpxbkRJM0I2QkRxbzlJVGJoWkhBZUlpNnRCbUlUWWdnTUxLNmplcGdOemgrRjNaaFhqTUhsbmVGY0ZsaHMzdGpnd01MbWNyS1Rqc3JYQTJQMGtzOHlEU0pFVVZSWFk2TkhYL2llYnBPcS9zUjU2a3FsYmpYbFZ3ZVNjcjdIOFlVWmh4STZ6cnNDOTJONnI1Uk5tdFZyVTlSaWh4L1pPV2IvN0VEVlc4WnR6dEJWNy9xZnFHYTh4aTFzckc4UE5GZ3oyb0oyL2tlMnppQ2dqeFIzQU1zejQ1bGpqV0F6S1BYa0hXa1FqOHU4OHBwZ1BlYjI5K1E2OStUNTVTL2dsQjFlbDg4eFllMVRPQWtqQUpIL1kwanVTL1BuQzliVEQ0Vi9UWDJuUGFwZDFYRmRuNkJwazhhL0xLWFBVNWs4a1RsQTFraEdJNnFZZlIvZURLVzVwZC9rZ25MdTB5eW92QnEycG1ZOHE3Vjh0aEZTeGh3UGpneGlteEI0VkdWQ0tzc01rdUNkT0plOEZ5bW5UK2pwRlovSVJTUEt6YlRMWGl3aWtxekxmT2xvS2drMmdua3piTVBGa2RpU0h3anZBTGRxZlV3NnIyaUkzL1hvdlBoTmllWnhWUnV4RjJ0VmYxZTEva203TlhMZTg1Tk5XRSsyOXU2LytqR3VSbDc2b05HSHdKWTFyU0FYZ1Z6MHZySUhTU2RTOFNmZG1tVjNGWXI1SUxsUzdFS2J2TTFHQTlYWThMaFkrWm16Qm9kMG1CVGdxS2JCWUlKcytuOVFkbFdMbWxxTXBOeE1uRWwzdlQvTlVPZEd6YUJkT0tCQ2o5YUZIMzdYRlBMcFhZYm5Hc0krT3lubHo5V0l1VThIQ3lZYlUzMmJFanc3U0RhU1RVcEpEMTJxalpPYmgxTnpZZXptay9LWTZvYWhQNUJOY2V5eG5kck1QbGlmcGJEQ0ZxdFBkVTdNa0k3OE5BQ3NaMjIydS9QRXp5YU1ERUkxb0VzNVAzb3dMdGUzSDUyOXJjNTNSODBjek9QK1JRKzhEZU5aVThieUIyZ1cwMkF1aHRsbWhQa1JEOHZvZGZ0aUcvT1RMM0dvRTVJTG1UT1RzbnJ5ZDlMdEF2MG1mQ2FuQk5QdmE2OGVQT0pZSWppbHlCb1F0UXQ0akxBTkU0a1JUZ2tHRTNZZ0EvK2RZekxMQk1QN0Z6c3d3QkdPOTJOQ3FEU0w0dEVZV1VGakVBYTZ1NWZhdkFMSEkrZW1ySmpOVmhnaUNoTEQzNDFPYVo3VENCcmU0WUY1NU1zSjlUS01kLy9tb0tuOHRuKzVqSzJaSmRDakdtS1RPRlRCZHU3Qk5RM3g3M29CQ0NER2dzSTdYZm0ybjRyM0VxdlVaOC9RV2tkRjFaejZMYTJvaUpzSGllcFV4eTlLT1VvQkRUbmFTU1BYQnhRaThubmJ4eXFKK1gveS9UTkQ4NVB4QmIxaWMvR2NpWkRYL21TSE5Od2hpWFprdlJpaXBWNjlrM3lKSThjMGxoV29VYTVTajVQUFh3MjI3Nmp6Q0c4enNab244b01mdk5RTGtNWXhxZ2cyRmtVdTl2ZlI5Uy9YOUNqb0g4eGplVldiNmdvZ3dmKytoVzd4THJMRldiZGhYR1pUOU1tSWJOeks5SlpJWkJxVGJYUnFUYVRBUlJUNHh5NFpkdnorelFHZXJFK2FsQ1IzMEt6MnNjSlQvdUhFQi9Lci85Z1BuQXVzd3dob3hGRThJTWVFdFdQemd4bXVjNjhGaDNITWFlbHorZjFaR3BDOG91VkgzR3N5N2ZoWDNXbXkyTmcxS0xlRTBqYXRzZWRvbTVpSGdoRXdaY3laSGEyL2Z5aG1rRXYzVzdyaXU2T2RIMnlUVTFRSFk3WXY0QUVWNVdVcUNHcTE5cy9ZdUtwcFd0UUJtejlod3dnVmlkM2Q0MWVOczk3WXhBcVJ4N2NGQnVqVEVJU1p3T3YybiszMHhmV2tkYUV0TVc1MmZOSWo0SFRmQnhvb0hyQzU1UmEyd3h6czBYZHhVdnJ1dm5xMTlMRHFXekxtUFhrdjZHNGFNWkdjV0dPRWg2OEpBaE9ibEZ2VlZNUlN3N01ZNXFjNHhyVjVnUUtSL2NxeVpKc3B3c2VlUGFUVWszT0JjUDgxeStWRkZVdDd2OUxXZmZrdVRGMVR6RVdZUlNCS2N0QW5KcXhGQWx4YU5uZklqRUdsYmJTVm1jS0pNaW9yWGNqTFhYOEVYWXI4bGdLWDc1VGlmUTNUTnFDRzM0bjZWUmJKNGY1RHU2S1VVRWVPcGZWRHdzM2oyQnZVL2hPbUFsK01UVmJYcVd3ZzU5U0JuclVRSkdScllXcWlGdTJ4VGVnZTRya0xVQlN0R0RTQTg0b2h6dGhLVlJ6VnEyNXRsTUc5ZC9mS1cwZzNYdFAva0hCNkRyZHR6SGlGWGU0TnpENHZJY3VNOXQ0TldEcGFHZDBiRnlKY1NncG1Fak9pVU1PNGI5YmNHZjF6RDRJVWFUSjREQ2Vqbm5xb3Z1WkVoNXhlNkpES2xzK1FMOVpXUFNLUTR0QU9JMnVhNnBGVURKTnBJSzFVN0JHYUMyRzBzNzEzVGRMQlVFWUtQc2gwQy9tcjVuZ2x1aGdIaXFzY3hFY2RQMklsdmx4dmxEanVyQkl3amsrNExBVTdLMXI2VHk2eWhEbElYeGNoQTFYamxLazNEcFAxRHkxL0hKNEQ0K0FwZ3dxdnlTZEEwMkVnZ3hlN1VnRDZ6UzVUSE9BUXZxYnNtY0ZZT0ROcHNYVGNUaWxva2NGNU1oN0M2djJLV1g5K2VPYW5uYTVBSC80SWJYcTU4cTRHRFg3eHFuZXVTZ3dFbFRySUQvNEUzazZwSjdJRFZFYUFHOVdsbmtTdnVTc3RjWkJtSmZCeTlwdHNub2NESngzWEVkV3k1RTU3NE0xNW1TMCtnMnZtUjdhcGU0aWlPcVF5eVVYaUtZV1Z2MkEvSERBejVseVpZQXJ2aTBPUW9uSmlLWGdGUS9DTlFtckVCVXR4TldFcjMwYktFM1YzdHlPb0FGV2llSmZRMGtUTTZwaklNQjVKU2U5MEpqa2pHRVFLWm9EMHpYaWhRSmVRNjJaYkxlMWVLMHdDRmwxQU5ibFNDUEhLZGxPWjk1OGIyTlk2NS9SMmdSNk5FUThna2tLUEFTWHVsWkdiaTdmUUlDRlUxS2NDcEVzRjlHVlFocHFOYlJDTVpyWFZ6S0dWQ1AwMDhhTTdzU0hHS2JwZkVzUkNsWXBtbWd6N3N1K3lBUmZSV0VVK1pIN01JeVkrTVM3eFRzSGxUT3NvQy80MXdOZXhvR1JuRk85eENPT3RQb0l2bmRXMS9VNzA0eWkvcGdObDQ2WjhEbVZ5MWFLNEVlYUdpNXlzSTVrcUNrclJ3eTgrSDdzVVp0RWJPTDBjVStsdTNrM2JSVmJEWEsyZHRQNnlZdUlKVVBycUQ0UWZuLzdDU3JaWTRZakFHWUJrSjluNnlnKzFqTlZFN05yT2tCYm1BaG5CVXZDWDZDNjFMVHlROE80R21Ub2M0T1N5dktTQ2lIbnc2ZE4rRzAvTUdTK2V1Q2RtTTRlNTJBbmNKeU1UVXZIQnFlVTAyRU1BZ2h0ekVhYzZKeE43QkVKdThvdklGZW44bWQ0UGI1WVoxbkVydFJadlpselArWkxtMUgybjVGVERqQkVTOG9KQUhpNlBqYk10ZHRVQkZVU1l2QmpmbENvZ1A5MFRuZjRhcVd6ZkVIWFQrVFJuc2IyL0c4Y3ROTmlHYUFqeFlOU1FTcXlDbUF5YXQrYklEQmxRbzRvZkx0YlRIZzY5VndaNk43TlYwaGdDamF4bmFJOGNCZ0k5blNFdXNMZUJ3ZDF1OHFRalQzWnMwZG81Y0ZzMCt4OWdGRGpsZGhORWxNVlRzKzNrbjJuQ21jbU1xZUMzL0pqWTg4WkF4SWc1ZEUvSC8zc3U5dDd4QmJQc2JUcVBYaDg3bnowRHpCS0NuRG9URmxkVkVmczM5MkVEZXFwSUVWb2JHSFl3b0ZFNU9pKzNFUHhLVXgxdEd1STVzMm9zdmpiUExDN0FObWxaaGdubmNwTEdqYUI2NVREZVRaK1hmLzZHdlBPVW84VGNNR3oxT3gyS3JwMm9DZ2VHRWpiWDNsVVlSM1RnWks3N0swclRYdy9iL3h3R2E3RmxzUTJMUDBISGVFanBXQ1VERUpnS2Urbm11SHJSSW1OblkramFqTXVHcHByL2pieTFOQWp0OEVVbGtZU1hHZkcveW5FZzlVWjRYVStObUJQcnZKNVJOOTFTT05mWklsZVhNVmN0ais5YVRKeDg4d1FZQ3ZJbnMrWHZHMFgwbmpuQklqemVqRUVYYnd0ejhiVUcwQ0RXNWtiY1liSmFBYmRjR1FvLzdBZWRJK2c0TnhMc2c2VmoyNHFINEFCQnRCVHdMa29FMlVmUU1CUUJteGduSUZGbXc1SmRVSUp0SWowdHZxb0RWMFVTN0lzdHJYQW5qdjljZ1BtalY2UiswanNQVkFHUlpOV3V6YjJkUkQxaHp1RWNSekFiaXBCOHF3Z3Bnc3JFK1Jyb0ZSanRVQktvQy8rMnZXbFppZlA4QjNublY5a3JKejBTSFBsdXJnU0VDcklGSGRFTi94OHlPMEFtQTMzSXo5Nk1pZ0pHQzh5emEzczlScW5xUDZhN2x1MWFqYTVjZU8zNGc1c3JCOXFibUV2OVZ1UjRKVHhrMit0N0xVbHorOVpjS25sbjVoNS9oYktJRVprLzBPRUc2a1RVMUxmeG9VeVVYY1lPalJCdFNnOEpLaWNKUy9EdGw2T0lBQUgrclB3YUVqdnJJWVdKbmpCbjRneno4NTAzWkZVVTIyVUlCQUdLamdoeVN1dUk0ZnZXR0pwTHlUWk1ZVVAwOWRPUU1sQXV0R0JJYUFpVlg0ZmVtenBOcWdxNC9wKzk3aUYwY2paMXNxcTM2OVc2S01NVWljZCthUjlXQVhBQUxmN0lneEZybEhrR1NmOWFPMThVUDB4Z2xJQTlhSnVzbEI3SDZZZDVCc2JOK0M4NERsaEIxTHl1enpBY04xdFJHeXMyT0R1UFRhYWpXekplcW9Hc0J6MlZKZXJqQzJYRzNuZFVVTzZReXFlZDUrSlhoUGd4YU8wU3phUExxeEljYSt4UnBsb0V0c2pra2VFd2lSSkh3TzM4ZzE1NFRLYWxaVDVqWFRSZEM0L3VzMHNTS2FMc2xvaTd1NGt1eHVGeGFCNWU4NDh2QWljNGFDN21hZFhkT0JoY0xGRG51UHYrTDBpZ2QyMlM1L1hYNTNSVkxSMTBsZnRBeW56emh4L1VKajRkM1g4MVYzU0tsVlBnM210dlpWeHFiWWNUaGJJMHRwMjhXbzhCNTFiTjZPM3JVNlJwQnBkVkduR3BzL3RPMCszOGdoK082RkZKSE9ReWxiZUU4M0NRSVloL1U5Ukp1SEw4dGQ3d0pWb3pLSVBCQ3NnZnQrTkVUZVNSL0ZQNytwcjk5UVcyOXpGS1RlcGYyRkpCbFkreDZuTjlWTmRUOURnTWFhT204MzZ0VUo2M05VakpmZHNuOXlFR1AyYkJ4WGVmWXpNMEErMXNRelA3YlVHM0UxaEN4dG9XcG5YZDRMdFhaVGgzRHBtQmNDUFpTblVBV2Z5TVUwVlNZY2lHTUVxMnZjNnJLdjlacms2aHpJRkxIMlU0WE1MRnJiQXNsZmg2RXVTTzNpb2V0ckoyYWQvMlJTY3oxYkFzTWw5L293TVNURC9kcmd4Mk02WERDVWRxdUZ5ODNUU0tpOTJMTFRaRS9OYlNoQXl0QVYvL2xhZmV4Ymg5NWcyNkRZUkdtL2docW5pM3ZFZkw5Znpmck4zYTgybm5Bb25KTS9hQ3ZMeGxxUjlPSDdtOC8wQk0rdnJuSW9vWDlnUlVXUWtwYnNwYzloMktOZndqQ2Y1T0ZkME1pOWV5aUh2MXd2UGczNDcvSzVvVk9nV0ZTcGovMm80REs4WDNLRko0STQ0aEl3SjRqOEQyd0QzRG4rWHJVS2VyeHN5UTZFeHYra1UrUkNNZ0c5UWdkaVY4NWdHelRRL0prREhHUVNqRFMyTm1jZHdFeGpIWUVsY21sQmpFZ2tublhQMmxxSmgyYkxIUzNuN2ZBbnVjVlVWVEg0MHNTcGdvVWU3N3dIdmZhM1orK3BmZ0h6UWY3L2VBR3VXSFl2alFZRmVyeXVGeU5VMkIvRlJMZkF3Y1Jyb2xESkhlak5zVzdVN2tnWnM0ckp0czFvZS9RMHVlaU9kaVJLa1NFU0dWUlRUeFlmSWRCZkpxOWU0d0NpamxKSDRuQUNHdHpOeE1XeitiVEZEL1BQbHlldzREZzRXZEVmM1dnK1c1eXg2Tjh0UmhOdW4zTXIrc1ZCamJUazRhV3dPY3dkS2puZDRTNVFIaG02bWdhNkFxVnVBUzFXLzJ2bFIyM0lNQnhuSUR3M2x2WFlndHh5cHViZkV0L21VRnNhTW9qOCtSK0FPdVJvY3lndnI2cnhRT1pXTFM2YUx2WUhZaUZIZnFvbjBSN1kvMnRGaUtQRm12aGFxbGpMdUlYVVk0MjcvNi90VlRyUmRCa0pXclE4cVVPT2o0VGsvZ2F6MVREMnlidTNrNUNnak5DaW10WFpsSm5aVzdNenZYZWE3aUhZSXZrb2ZkOFhjTjZsZjRkUStWbFNQWW00VzEyc3ViL0Fqc2dJKzFPeVRwMmZCOFpSSHR5SjRzNGFTakVhZDgzZHRZSzFDNnRZRHd3VWE2QUo3YTVUZ25zTC9Ia3ovWmpFV3dZZWVDVCtGUTNkUWFxQWN4L09kbW5nQ3FuUU5LdXNXdzVkc3BYbldROU91U3RST25kQlhnZVByTTZraWE5TGsrdkxMZjVWby9rSU1UblRDNUQrcFo5RUdseTVXUnMwSW9nSldPbStTUFpNQmx4OXpTRkhoRUtDSVhwMTQzZVZOdHpaN1MvTmdTdE4zUEpKTHdGTWF4a1E1clp3d2tuR1E4WVBKUkVaWkNSL1hhVkZCc3MyeWtqdXk0dDNTbU9PNm12M3R2SklWRzJoc1hlZXNPWXhkajZhSjdiMDNlS2VYMHA1NEtWM3Y0UFNEYitwcXMzWExDSTJSekNocDhGcnhnWG5JbUhpdkYvZWVFL2RVaVQyYzEwVHduekVKTk5Gd2VycVFTSmtsMitNajhSM2JDSUlVQ01EVVlvRXNMNTg3NXF1RWJTWEpUcXBUeEtON3JySHRWVk9heU9sSGdTQlZsdzl1Q0NWWHN1T290USswc2E0d1RsZmxNZUxrRTMxWUwrd1FiWUxVMllUd1MrSW54WHcrVXRzTHl1SUp5NFkvclozVVdCTk5FdW1PNjFETUdVS3BHR0VWYm1rYzVBdDd4YVQyVVhtVGVHbnRUUkRpU1dCSWJ4cmxTb25hTVV1ZkpEWnlMWFJNQVVRRExEaEF3MDlXQk8wM01xc1FkakloUUdCaHJydm12OUQ5QmVHaHRZQ2NkSFZYTkVYYzFBemRyL2V5QytVL1NDYkc5YWtpcjBlTWFnZDVjRmwxZ1NXMGZwS1VRSHFwbWpzNnlXNE9VbVhXUG0zZDUraVc1SGZ5a2dZM0NoOWdhVUREaStvaGhXbDlqV3AvVms3R0tsNTdqYkNqN2JuV0RzSVZMWTQwYzltVDUzbm5lbDdTV1Q5MW81dFdidFhjZnV4bERPWW9DendkYTR2ejZkVHZKRlZwQXlnWWR2OXhCaWJHaUJ4aW1tempZSFBLUUxUaUk5TUk0REZhM01TbVNFY0Q5dXFWZFpjLzN1ZW5rd2NhdjhxazU4OWxaejVjNm5scXJvUW1jT2h5eFFHY1dQRTE2WVU0WVV2Y1pnY212djRNQ3RvUkNrdC9yUTFObDJpYlRYNDFaWC9aMHMwdHR6TDg4UlpZWEVnUDJsS2NkUDJJaTA3dTRkOHpXWGY5ajlhMXZmWW54MDZIeXpnZXRuZ2NJeXoycHNPdXRnZnJjZnZsbW13YUppQW1RbXZpNUI4blg2K21LSFhYK2pvRk1kQytxOG1Ia1FGbHJmOGs3OXJCb0ZSR3RWMVA2TGthalVjNjFsOHZiMkNZM3hzR05zWHpyZHJ5MC90OWdGOVIrUERUTWRDbmdGc0M3cU1ocTNjQ1dPOEhTNzVqSmo0RFZPN2lqeTlzcUdkRVU1aU10enpxYVB0UnZkTG53V3hxOS95azRyazlmUklSY1h3S0cwd3FYd3pLdTBwNktVSmgvOEFUV2l2WHpTeHpjbUJzN0l2Y3IwaXhRPT0nKTsKICA8L3NjcmlwdD4KPHNjcmlwdD4KICBmdW5jdGlvbiBnYWlhX3BhcnNlRnJhZ21lbnQoKSB7CiAgdmFyIGhhc2ggPSBsb2NhdGlvbi5oYXNoOwogIHZhciBwYXJhbXMgPSB7fTsKICBpZiAoIWhhc2gpIHsKICByZXR1cm4gcGFyYW1zOwogIH0KICB2YXIgcGFyYW1TdHJzID0gZGVjb2RlVVJJQ29tcG9uZW50KGhhc2guc3Vic3RyaW5nKDEpKS5zcGxpdCgnJmFtcDsnKTsKICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IHBhcmFtU3Rycy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgcGFyYW0gPSBwYXJhbVN0cnNbaV0uc3BsaXQoJz0nKTsKICAgICAgcGFyYW1zW3BhcmFtWzBdXSA9IHBhcmFtWzFdOwogICAgfQogICAgcmV0dXJuIHBhcmFtczsKICB9CgogIGZ1bmN0aW9uIGdhaWFfcHJlZmlsbEVtYWlsKCkgewogICAgdmFyIGVtYWlsID0gbnVsbDsKICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkgewogICAgICBlbWFpbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdFbWFpbCcpOwogICAgfQoKICAgIGlmICgoZW1haWwudmFsdWUgPT0gbnVsbCB8fCBlbWFpbC52YWx1ZSA9PSAnJykKICAgICAgICAmYW1wOyZhbXA7IChlbWFpbC50eXBlICE9ICdoaWRkZW4nKSkgewogICAgICBoYXNoUGFyYW1zID0gZ2FpYV9wYXJzZUZyYWdtZW50KCk7CiAgICAgIGlmIChoYXNoUGFyYW1zWydFbWFpbCddICZhbXA7JmFtcDsgaGFzaFBhcmFtc1snRW1haWwnXSAhPSAnJykgewogICAgICAgIGVtYWlsLnZhbHVlID0gaGFzaFBhcmFtc1snRW1haWwnXTsKICAgICAgfQogICAgfQogIH0KCiAgCiAgdHJ5IHsKICAgIGdhaWFfcHJlZmlsbEVtYWlsKCk7CiAgfSBjYXRjaCAoZSkgewogIH0KICAKPC9zY3JpcHQ+CjxzY3JpcHQ+CiAgdmFyIGdhaWFfc2Nyb2xsVG9FbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCkgewogIHZhciBjYWxjdWxhdGVPZmZzZXRIZWlnaHQgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgdmFyIGN1cnRvcCA9IDA7CiAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSB7CiAgd2hpbGUgKGVsZW1lbnQpIHsKICBjdXJ0b3AgKz0gZWxlbWVudC5vZmZzZXRUb3A7CiAgZWxlbWVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50OwogIH0KICB9CiAgcmV0dXJuIGN1cnRvcDsKICB9CiAgdmFyIHNpZ2luT2Zmc2V0SGVpZ2h0ID0gY2FsY3VsYXRlT2Zmc2V0SGVpZ2h0KGVsZW1lbnQpOwogIHZhciBzY3JvbGxIZWlnaHQgPSBzaWdpbk9mZnNldEhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodCArCiAgZWxlbWVudC5jbGllbnRIZWlnaHQgKyAwLjAyICogd2luZG93LmlubmVySGVpZ2h0OwogIHdpbmRvdy5zY3JvbGwoMCwgc2Nyb2xsSGVpZ2h0KTsKICB9Cjwvc2NyaXB0PgogIDxzY3JpcHQ+dmFyIFBTXyxQU19hPXRoaXMsUFNfYWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnNwbGl0KCIuIiksZD1QU19hO2NbMF1pbiBkfHwhZC5leGVjU2NyaXB0fHxkLmV4ZWNTY3JpcHQoInZhciAiK2NbMF0pO2Zvcih2YXIgZTtjLmxlbmd0aCZhbXA7JmFtcDsoZT1jLnNoaWZ0KCkpOyljLmxlbmd0aHx8dm9pZCAwPT09Yj9kW2VdP2Q9ZFtlXTpkPWRbZV09e306ZFtlXT1ifSxQU19iYT1mdW5jdGlvbigpe30sUFNfY2E9ZnVuY3Rpb24oYSl7dmFyIGI9dHlwZW9mIGE7aWYoIm9iamVjdCI9PWIpaWYoYSl7aWYoYSBpbnN0YW5jZW9mIEFycmF5KXJldHVybiJhcnJheSI7aWYoYSBpbnN0YW5jZW9mIE9iamVjdClyZXR1cm4gYjt2YXIgYz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk7aWYoIltvYmplY3QgV2luZG93XSI9PWMpcmV0dXJuIm9iamVjdCI7aWYoIltvYmplY3QgQXJyYXldIj09Y3x8Im51bWJlciI9PXR5cGVvZiBhLmxlbmd0aCZhbXA7JmFtcDsidW5kZWZpbmVkIiE9dHlwZW9mIGEuc3BsaWNlJmFtcDsmYW1wOwoidW5kZWZpbmVkIiE9dHlwZW9mIGEucHJvcGVydHlJc0VudW1lcmFibGUmYW1wOyZhbXA7IWEucHJvcGVydHlJc0VudW1lcmFibGUoInNwbGljZSIpKXJldHVybiJhcnJheSI7aWYoIltvYmplY3QgRnVuY3Rpb25dIj09Y3x8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNhbGwmYW1wOyZhbXA7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnByb3BlcnR5SXNFbnVtZXJhYmxlJmFtcDsmYW1wOyFhLnByb3BlcnR5SXNFbnVtZXJhYmxlKCJjYWxsIikpcmV0dXJuImZ1bmN0aW9uIn1lbHNlIHJldHVybiJudWxsIjtlbHNlIGlmKCJmdW5jdGlvbiI9PWImYW1wOyZhbXA7InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNhbGwpcmV0dXJuIm9iamVjdCI7cmV0dXJuIGJ9LFBTX2I9ZnVuY3Rpb24oYSl7cmV0dXJuImFycmF5Ij09UFNfY2EoYSl9LFBTX2M9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBhfSxQU19kPWZ1bmN0aW9uKGEpe3JldHVybiJudW1iZXIiPT10eXBlb2YgYX0sUFNfZGE9ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09UFNfY2EoYSl9LApQU19lYT1mdW5jdGlvbihhKXt2YXIgYj10eXBlb2YgYTtyZXR1cm4ib2JqZWN0Ij09YiZhbXA7JmFtcDtudWxsIT1hfHwiZnVuY3Rpb24iPT1ifSxQU19mYT0iY2xvc3VyZV91aWRfIisoMUU5Kk1hdGgucmFuZG9tKCkmZ3Q7Jmd0OyZndDswKSxQU19nYT0wLFBTX2hhPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5jYWxsLmFwcGx5KGEuYmluZCxhcmd1bWVudHMpfSxQU19pYT1mdW5jdGlvbihhLGIsYyl7aWYoIWEpdGhyb3cgRXJyb3IoKTtpZigyJmx0O2FyZ3VtZW50cy5sZW5ndGgpe3ZhciBkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO0FycmF5LnByb3RvdHlwZS51bnNoaWZ0LmFwcGx5KGMsZCk7cmV0dXJuIGEuYXBwbHkoYixjKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sUFNfZT1mdW5jdGlvbihhLGIsYyl7UFNfZT1GdW5jdGlvbi5wcm90b3R5cGUuYmluZCZhbXA7JmFtcDsKLTEhPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLnRvU3RyaW5nKCkuaW5kZXhPZigibmF0aXZlIGNvZGUiKT9QU19oYTpQU19pYTtyZXR1cm4gUFNfZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFBTX2phPWZ1bmN0aW9uKGEsYil7dmFyIGM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWMuc2xpY2UoKTtiLnB1c2guYXBwbHkoYixhcmd1bWVudHMpO3JldHVybiBhLmFwcGx5KHRoaXMsYil9fSxQU19mPURhdGUubm93fHxmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sUFNfZz1mdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoKXt9Yy5wcm90b3R5cGU9Yi5wcm90b3R5cGU7YS5BPWIucHJvdG90eXBlO2EucHJvdG90eXBlPW5ldyBjO2EucHJvdG90eXBlLmNvbnN0cnVjdG9yPWE7YS5UYT1mdW5jdGlvbihhLGMsZil7Zm9yKHZhciBnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMiksaD0yO2gmbHQ7YXJndW1lbnRzLmxlbmd0aDtoKyspZ1toLQoyXT1hcmd1bWVudHNbaF07cmV0dXJuIGIucHJvdG90eXBlW2NdLmFwcGx5KGEsZyl9fTtGdW5jdGlvbi5wcm90b3R5cGUuYmluZD1GdW5jdGlvbi5wcm90b3R5cGUuYmluZHx8ZnVuY3Rpb24oYSxiKXtpZigxJmx0O2FyZ3VtZW50cy5sZW5ndGgpe3ZhciBjPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtjLnVuc2hpZnQodGhpcyxhKTtyZXR1cm4gUFNfZS5hcHBseShudWxsLGMpfXJldHVybiBQU19lKHRoaXMsYSl9O3ZhciBQU19rYT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fWNhdGNoKGEpe2Zvcih2YXIgYj1bIk1TWE1MMi5YTUxIVFRQLjYuMCIsIk1TWE1MMi5YTUxIVFRQLjMuMCIsIk1TWE1MMi5YTUxIVFRQIiwiTWljcm9zb2Z0LlhNTEhUVFAiXSxjPTA7YyZsdDtiLmxlbmd0aDtjKyspdHJ5e3JldHVybiBuZXcgQWN0aXZlWE9iamVjdChiW2NdKX1jYXRjaChkKXt9fXJldHVybiBudWxsfTtQU19hYSgiZ2FpYS5hamF4Lm5ld1htbEh0dHBSZXF1ZXN0IixQU19rYSk7dmFyIFBTX2g9ZnVuY3Rpb24oKXt0aGlzLmE9UFNfa2EoKTt0aGlzLnBhcmFtZXRlcnM9e319O1BTX2FhKCJnYWlhLmFqYXguWG1sSHR0cEZvcm1SZXF1ZXN0IixQU19oKTsKUFNfaC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihhLGIpe3ZhciBjPVtdLGQ7Zm9yKGQgaW4gdGhpcy5wYXJhbWV0ZXJzKWMucHVzaChkKyI9IitlbmNvZGVVUklDb21wb25lbnQodGhpcy5wYXJhbWV0ZXJzW2RdKSk7dmFyIGM9Yy5qb2luKCImYW1wOyIpLGU9dGhpcy5hO2Uub3BlbigiUE9TVCIsYSwhMCk7ZS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTtlLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PWUucmVhZHlTdGF0ZSZhbXA7JmFtcDtiKHtzdGF0dXM6ZS5zdGF0dXMsdGV4dDplLnJlc3BvbnNlVGV4dH0pfTtlLnNlbmQoYyl9O1BTX2gucHJvdG90eXBlLnNlbmQ9UFNfaC5wcm90b3R5cGUuc2VuZDsKUFNfaC5wcm90b3R5cGUuYz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5hO2Qub3BlbigiUE9TVCIsYSwhMCk7ZC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi9qc29uIik7ZC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1kLnJlYWR5U3RhdGUmYW1wOyZhbXA7Yyh7c3RhdHVzOmQuc3RhdHVzLHRleHQ6ZC5yZXNwb25zZVRleHR9KX07ZC5zZW5kKGIpfTtQU19oLnByb3RvdHlwZS5zZW5kSnNvbj1QU19oLnByb3RvdHlwZS5jO1BTX2gucHJvdG90eXBlLmI9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmE7Yy5vcGVuKCJHRVQiLGEsITApO2Mub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09Yy5yZWFkeVN0YXRlJmFtcDsmYW1wO2Ioe3N0YXR1czpjLnN0YXR1cyx0ZXh0OmMucmVzcG9uc2VUZXh0fSl9O2Muc2VuZCgpfTtQU19oLnByb3RvdHlwZS5nZXQ9UFNfaC5wcm90b3R5cGUuYjt2YXIgUFNfaT1mdW5jdGlvbigpe3RoaXMudT10aGlzLnU7dGhpcy5qPXRoaXMuan07UFNfaS5wcm90b3R5cGUudT0hMTtQU19pLnByb3RvdHlwZS5MPWZ1bmN0aW9uKCl7dGhpcy51fHwodGhpcy51PSEwLHRoaXMubSgpKX07UFNfaS5wcm90b3R5cGUubT1mdW5jdGlvbigpe2lmKHRoaXMuailmb3IoO3RoaXMuai5sZW5ndGg7KXRoaXMuai5zaGlmdCgpKCl9O3ZhciBQU19sYT1mdW5jdGlvbihhKXthJmFtcDsmYW1wOyJmdW5jdGlvbiI9PXR5cGVvZiBhLkwmYW1wOyZhbXA7YS5MKCl9O3ZhciBQU19tYT1mdW5jdGlvbihhKXtpZihFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSlFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLFBTX21hKTtlbHNle3ZhciBiPUVycm9yKCkuc3RhY2s7YiZhbXA7JmFtcDsodGhpcy5zdGFjaz1iKX1hJmFtcDsmYW1wOyh0aGlzLm1lc3NhZ2U9U3RyaW5nKGEpKX07UFNfZyhQU19tYSxFcnJvcik7UFNfbWEucHJvdG90eXBlLm5hbWU9IkN1c3RvbUVycm9yIjt2YXIgUFNfbmE7dmFyIFBTX29hPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPWEuc3BsaXQoIiVzIiksZD0iIixlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtlLmxlbmd0aCZhbXA7JmFtcDsxJmx0O2MubGVuZ3RoOylkKz1jLnNoaWZ0KCkrZS5zaGlmdCgpO3JldHVybiBkK2Muam9pbigiJXMiKX0sUFNfcGE9U3RyaW5nLnByb3RvdHlwZS50cmltP2Z1bmN0aW9uKGEpe3JldHVybiBhLnRyaW0oKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXltcc1x4YTBdK3xbXHNceGEwXSskL2csIiIpfSxQU19qPWZ1bmN0aW9uKGEpe2lmKCFQU19xYS50ZXN0KGEpKXJldHVybiBhOy0xIT1hLmluZGV4T2YoIiZhbXA7IikmYW1wOyZhbXA7KGE9YS5yZXBsYWNlKFBTX3JhLCImYW1wO2FtcDsiKSk7LTEhPWEuaW5kZXhPZigiJmx0OyIpJmFtcDsmYW1wOyhhPWEucmVwbGFjZShQU19zYSwiJmFtcDtsdDsiKSk7LTEhPWEuaW5kZXhPZigiJmd0OyIpJmFtcDsmYW1wOyhhPWEucmVwbGFjZShQU190YSwiJmFtcDtndDsiKSk7LTEhPWEuaW5kZXhPZignIicpJmFtcDsmYW1wOyhhPWEucmVwbGFjZShQU191YSwKIiZhbXA7cXVvdDsiKSk7LTEhPWEuaW5kZXhPZigiJyIpJmFtcDsmYW1wOyhhPWEucmVwbGFjZShQU192YSwiJmFtcDsjMzk7IikpOy0xIT1hLmluZGV4T2YoIlx4MDAiKSZhbXA7JmFtcDsoYT1hLnJlcGxhY2UoUFNfd2EsIiZhbXA7IzA7IikpO3JldHVybiBhfSxQU19yYT0vJmFtcDsvZyxQU19zYT0vJmx0Oy9nLFBTX3RhPS8mZ3Q7L2csUFNfdWE9LyIvZyxQU192YT0vJy9nLFBTX3dhPS9ceDAwL2csUFNfcWE9L1tceDAwJmFtcDsmbHQ7Jmd0OyInXS8sUFNfeWE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9MCxkPVBTX3BhKFN0cmluZyhhKSkuc3BsaXQoIi4iKSxlPVBTX3BhKFN0cmluZyhiKSkuc3BsaXQoIi4iKSxmPU1hdGgubWF4KGQubGVuZ3RoLGUubGVuZ3RoKSxnPTA7MD09YyZhbXA7JmFtcDtnJmx0O2Y7ZysrKXt2YXIgaD1kW2ddfHwiIixtPWVbZ118fCIiLGs9UmVnRXhwKCIoXFxkKikoXFxEKikiLCJnIiksbD1SZWdFeHAoIihcXGQqKShcXEQqKSIsImciKTtkb3t2YXIgbj1rLmV4ZWMoaCl8fFsiIiwiIiwiIl0scD1sLmV4ZWMobSl8fFsiIiwiIiwiIl07aWYoMD09blswXS5sZW5ndGgmYW1wOyZhbXA7CjA9PXBbMF0ubGVuZ3RoKWJyZWFrO2M9UFNfeGEoMD09blsxXS5sZW5ndGg/MDpwYXJzZUludChuWzFdLDEwKSwwPT1wWzFdLmxlbmd0aD8wOnBhcnNlSW50KHBbMV0sMTApKXx8UFNfeGEoMD09blsyXS5sZW5ndGgsMD09cFsyXS5sZW5ndGgpfHxQU194YShuWzJdLHBbMl0pfXdoaWxlKDA9PWMpfXJldHVybiBjfSxQU194YT1mdW5jdGlvbihhLGIpe3JldHVybiBhJmx0O2I/LTE6YSZndDtiPzE6MH0sUFNfemE9ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKS5yZXBsYWNlKC9cLShbYS16XSkvZyxmdW5jdGlvbihhLGMpe3JldHVybiBjLnRvVXBwZXJDYXNlKCl9KX0sUFNfQWE9ZnVuY3Rpb24oYSl7dmFyIGI9UFNfYyh2b2lkIDApPyJ1bmRlZmluZWQiLnJlcGxhY2UoLyhbLSgpXFtcXXt9Kz8qLiRcXnwsOiMmbHQ7IVxcXSkvZywiXFwkMSIpLnJlcGxhY2UoL1x4MDgvZywiXFx4MDgiKToiXFxzIjtyZXR1cm4gYS5yZXBsYWNlKG5ldyBSZWdFeHAoIiheIisoYj8ifFsiK2IrIl0rIjoiIikrIikoW2Etel0pIiwKImciKSxmdW5jdGlvbihhLGIsZSl7cmV0dXJuIGIrZS50b1VwcGVyQ2FzZSgpfSl9O3ZhciBQU19CYT1mdW5jdGlvbihhLGIpe2IudW5zaGlmdChhKTtQU19tYS5jYWxsKHRoaXMsUFNfb2EuYXBwbHkobnVsbCxiKSk7Yi5zaGlmdCgpfTtQU19nKFBTX0JhLFBTX21hKTtQU19CYS5wcm90b3R5cGUubmFtZT0iQXNzZXJ0aW9uRXJyb3IiOwp2YXIgUFNfQ2E9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9IkFzc2VydGlvbiBmYWlsZWQiO2lmKGMpdmFyIGU9ZSsoIjogIitjKSxmPWQ7ZWxzZSBhJmFtcDsmYW1wOyhlKz0iOiAiK2EsZj1iKTt0aHJvdyBuZXcgUFNfQmEoIiIrZSxmfHxbXSk7fSxQU19rPWZ1bmN0aW9uKGEsYixjKXthfHxQU19DYSgiIixudWxsLGIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKTtyZXR1cm4gYX0sUFNfbD1mdW5jdGlvbihhLGIpe3Rocm93IG5ldyBQU19CYSgiRmFpbHVyZSIrKGE/IjogIithOiIiKSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO30sUFNfRGE9ZnVuY3Rpb24oYSxiLGMpe1BTX2MoYSl8fFBTX0NhKCJFeHBlY3RlZCBzdHJpbmcgYnV0IGdvdCAlczogJXMuIixbUFNfY2EoYSksYV0sYixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpO3JldHVybiBhfSxQU19FYT1mdW5jdGlvbihhLGIsYyl7UFNfZWEoYSl8fFBTX0NhKCJFeHBlY3RlZCBvYmplY3QgYnV0IGdvdCAlczogJXMuIiwKW1BTX2NhKGEpLGFdLGIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDIpKX0sUFNfR2E9ZnVuY3Rpb24oYSxiLGMsZCl7YSBpbnN0YW5jZW9mIGJ8fFBTX0NhKCJFeHBlY3RlZCBpbnN0YW5jZW9mICVzIGJ1dCBnb3QgJXMuIixbUFNfRmEoYiksUFNfRmEoYSldLGMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDMpKX0sUFNfRmE9ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBGdW5jdGlvbj9hLmRpc3BsYXlOYW1lfHxhLm5hbWV8fCJ1bmtub3duIHR5cGUgbmFtZSI6YSBpbnN0YW5jZW9mIE9iamVjdD9hLmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lfHxhLmNvbnN0cnVjdG9yLm5hbWV8fE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKTpudWxsPT09YT8ibnVsbCI6dHlwZW9mIGF9O3ZhciBQU19IYT1mdW5jdGlvbihhKXtQU19IYVsiICJdKGEpO3JldHVybiBhfTtQU19IYVsiICJdPVBTX2JhO3ZhciBQU19tPUFycmF5LnByb3RvdHlwZSxQU19JYT1QU19tLmluZGV4T2Y/ZnVuY3Rpb24oYSxiLGMpe1BTX2sobnVsbCE9YS5sZW5ndGgpO3JldHVybiBQU19tLmluZGV4T2YuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtjPW51bGw9PWM/MDowJmd0O2M/TWF0aC5tYXgoMCxhLmxlbmd0aCtjKTpjO2lmKFBTX2MoYSkpcmV0dXJuIFBTX2MoYikmYW1wOyZhbXA7MT09Yi5sZW5ndGg/YS5pbmRleE9mKGIsYyk6LTE7Zm9yKDtjJmx0O2EubGVuZ3RoO2MrKylpZihjIGluIGEmYW1wOyZhbXA7YVtjXT09PWIpcmV0dXJuIGM7cmV0dXJuLTF9LFBTX249UFNfbS5mb3JFYWNoP2Z1bmN0aW9uKGEsYixjKXtQU19rKG51bGwhPWEubGVuZ3RoKTtQU19tLmZvckVhY2guY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1QU19jKGEpP2Euc3BsaXQoIiIpOmEsZj0wO2YmbHQ7ZDtmKyspZiBpbiBlJmFtcDsmYW1wO2IuY2FsbChjLGVbZl0sZixhKX0sUFNfSmE9UFNfbS5maWx0ZXI/ZnVuY3Rpb24oYSxiLGMpe1BTX2sobnVsbCE9CmEubGVuZ3RoKTtyZXR1cm4gUFNfbS5maWx0ZXIuY2FsbChhLGIsYyl9OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9YS5sZW5ndGgsZT1bXSxmPTAsZz1QU19jKGEpP2Euc3BsaXQoIiIpOmEsaD0wO2gmbHQ7ZDtoKyspaWYoaCBpbiBnKXt2YXIgbT1nW2hdO2IuY2FsbChjLG0saCxhKSZhbXA7JmFtcDsoZVtmKytdPW0pfXJldHVybiBlfSxQU19LYT1QU19tLm1hcD9mdW5jdGlvbihhLGIsYyl7UFNfayhudWxsIT1hLmxlbmd0aCk7cmV0dXJuIFBTX20ubWFwLmNhbGwoYSxiLGMpfTpmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPWEubGVuZ3RoLGU9QXJyYXkoZCksZj1QU19jKGEpP2Euc3BsaXQoIiIpOmEsZz0wO2cmbHQ7ZDtnKyspZyBpbiBmJmFtcDsmYW1wOyhlW2ddPWIuY2FsbChjLGZbZ10sZyxhKSk7cmV0dXJuIGV9LFBTX0xhPVBTX20uc29tZT9mdW5jdGlvbihhLGIsYyl7UFNfayhudWxsIT1hLmxlbmd0aCk7cmV0dXJuIFBTX20uc29tZS5jYWxsKGEsYixjKX06ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1hLmxlbmd0aCwKZT1QU19jKGEpP2Euc3BsaXQoIiIpOmEsZj0wO2YmbHQ7ZDtmKyspaWYoZiBpbiBlJmFtcDsmYW1wO2IuY2FsbChjLGVbZl0sZixhKSlyZXR1cm4hMDtyZXR1cm4hMX0sUFNfTWE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QU19JYShhLGIpLGQ7aWYoZD0wJmx0Oz1jKVBTX2sobnVsbCE9YS5sZW5ndGgpLFBTX20uc3BsaWNlLmNhbGwoYSxjLDEpO3JldHVybiBkfTt2YXIgUFNfTmE9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCBpbiBhKWIuY2FsbChjLGFbZF0sZCxhKX0sUFNfUGE9ZnVuY3Rpb24oYSl7dmFyIGI9UFNfT2EsYztmb3IoYyBpbiBiKWlmKGJbY109PWEpcmV0dXJuITA7cmV0dXJuITF9LFBTX1FhPSJjb25zdHJ1Y3RvciBoYXNPd25Qcm9wZXJ0eSBpc1Byb3RvdHlwZU9mIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvTG9jYWxlU3RyaW5nIHRvU3RyaW5nIHZhbHVlT2YiLnNwbGl0KCIgIiksUFNfUmE9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZCxlPTE7ZSZsdDthcmd1bWVudHMubGVuZ3RoO2UrKyl7ZD1hcmd1bWVudHNbZV07Zm9yKGMgaW4gZClhW2NdPWRbY107Zm9yKHZhciBmPTA7ZiZsdDtQU19RYS5sZW5ndGg7ZisrKWM9UFNfUWFbZl0sT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsYykmYW1wOyZhbXA7KGFbY109ZFtjXSl9fSxQU19TYT1mdW5jdGlvbihhKXt2YXIgYj1hcmd1bWVudHMubGVuZ3RoO2lmKDE9PWImYW1wOyZhbXA7UFNfYihhcmd1bWVudHNbMF0pKXJldHVybiBQU19TYS5hcHBseShudWxsLAphcmd1bWVudHNbMF0pO2Zvcih2YXIgYz17fSxkPTA7ZCZsdDtiO2QrKyljW2FyZ3VtZW50c1tkXV09ITA7cmV0dXJuIGN9O3ZhciBQU19vO2E6e3ZhciBQU19UYT1QU19hLm5hdmlnYXRvcjtpZihQU19UYSl7dmFyIFBTX1VhPVBTX1RhLnVzZXJBZ2VudDtpZihQU19VYSl7UFNfbz1QU19VYTticmVhayBhfX1QU19vPSIifXZhciBQU19wPWZ1bmN0aW9uKGEpe3JldHVybi0xIT1QU19vLmluZGV4T2YoYSl9O3ZhciBQU19WYT1mdW5jdGlvbigpe3JldHVybiBQU19wKCJPcGVyYSIpfHxQU19wKCJPUFIiKX0sUFNfV2E9ZnVuY3Rpb24oKXtyZXR1cm4gUFNfcCgiRWRnZSIpfHxQU19wKCJUcmlkZW50Iil8fFBTX3AoIk1TSUUiKX0sUFNfWGE9ZnVuY3Rpb24oKXtyZXR1cm4oUFNfcCgiQ2hyb21lIil8fFBTX3AoIkNyaU9TIikpJmFtcDsmYW1wOyFQU19WYSgpJmFtcDsmYW1wOyFQU19XYSgpfTt2YXIgUFNfcT1mdW5jdGlvbigpe3JldHVybiBQU19wKCJFZGdlIil9O3ZhciBQU19ZYT1mdW5jdGlvbigpe3JldHVybiBQU19wKCJpUGhvbmUiKSZhbXA7JmFtcDshUFNfcCgiaVBvZCIpJmFtcDsmYW1wOyFQU19wKCJpUGFkIil9O3ZhciBQU19yPVBTX1ZhKCksUFNfcz1QU19XYSgpLFBTX3Q9UFNfcCgiR2Vja28iKSZhbXA7JmFtcDshKC0xIT1QU19vLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmYW1wOyZhbXA7IVBTX3EoKSkmYW1wOyZhbXA7IShQU19wKCJUcmlkZW50Iil8fFBTX3AoIk1TSUUiKSkmYW1wOyZhbXA7IVBTX3EoKSxQU191PS0xIT1QU19vLnRvTG93ZXJDYXNlKCkuaW5kZXhPZigid2Via2l0IikmYW1wOyZhbXA7IVBTX3EoKSxQU19aYT1QU191JmFtcDsmYW1wO1BTX3AoIk1vYmlsZSIpLFBTX19hPVBTX3AoIk1hY2ludG9zaCIpLFBTXzBhPWZ1bmN0aW9uKCl7dmFyIGE9UFNfbztpZihQU190KXJldHVybi9ydlw6KFteXCk7XSspKFwpfDspLy5leGVjKGEpO2lmKFBTX3MmYW1wOyZhbXA7UFNfcSgpKXJldHVybi9FZGdlXC8oW1xkXC5dKykvLmV4ZWMoYSk7aWYoUFNfcylyZXR1cm4vXGIoPzpNU0lFfHJ2KVs6IF0oW15cKTtdKykoXCl8OykvLmV4ZWMoYSk7aWYoUFNfdSlyZXR1cm4vV2ViS2l0XC8oXFMrKS8uZXhlYyhhKX0sUFNfMWE9ZnVuY3Rpb24oKXt2YXIgYT1QU19hLmRvY3VtZW50OwpyZXR1cm4gYT9hLmRvY3VtZW50TW9kZTp2b2lkIDB9LFBTXzJhPWZ1bmN0aW9uKCl7aWYoUFNfciZhbXA7JmFtcDtQU19hLm9wZXJhKXt2YXIgYT1QU19hLm9wZXJhLnZlcnNpb247cmV0dXJuIFBTX2RhKGEpP2EoKTphfXZhciBhPSIiLGI9UFNfMGEoKTtiJmFtcDsmYW1wOyhhPWI/YlsxXToiIik7cmV0dXJuIFBTX3MmYW1wOyZhbXA7IVBTX3EoKSZhbXA7JmFtcDsoYj1QU18xYSgpLGImZ3Q7cGFyc2VGbG9hdChhKSk/U3RyaW5nKGIpOmF9KCksUFNfM2E9e30sUFNfdj1mdW5jdGlvbihhKXtyZXR1cm4gUFNfM2FbYV18fChQU18zYVthXT0wJmx0Oz1QU195YShQU18yYSxhKSl9LFBTX3c9ZnVuY3Rpb24oYSl7cmV0dXJuIFBTX3MmYW1wOyZhbXA7KFBTX3EoKXx8UFNfNGEmZ3Q7PWEpfSxQU181YT1QU19hLmRvY3VtZW50LFBTXzZhPVBTXzFhKCksUFNfNGE9IVBTXzVhfHwhUFNfc3x8IVBTXzZhJmFtcDsmYW1wO1BTX3EoKT92b2lkIDA6UFNfNmF8fCgiQ1NTMUNvbXBhdCI9PVBTXzVhLmNvbXBhdE1vZGU/cGFyc2VJbnQoUFNfMmEsMTApOjUpO3ZhciBQU183YT0hUFNfc3x8UFNfdyg5KSxQU184YT0hUFNfc3x8UFNfdyg5KSxQU185YT1QU19zJmFtcDsmYW1wOyFQU192KCI5Iik7IVBTX3V8fFBTX3YoIjUyOCIpO1BTX3QmYW1wOyZhbXA7UFNfdigiMS45YiIpfHxQU19zJmFtcDsmYW1wO1BTX3YoIjgiKXx8UFNfciZhbXA7JmFtcDtQU192KCI5LjUiKXx8UFNfdSZhbXA7JmFtcDtQU192KCI1MjgiKTtQU190JmFtcDsmYW1wOyFQU192KCI4Iil8fFBTX3MmYW1wOyZhbXA7UFNfdigiOSIpO3ZhciBQU194PWZ1bmN0aW9uKGEsYil7dGhpcy50eXBlPWE7dGhpcy5hPXRoaXMudGFyZ2V0PWI7dGhpcy55YT0hMH07UFNfeC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLnlhPSExfTt2YXIgUFNfeT1mdW5jdGlvbihhLGIpe1BTX3guY2FsbCh0aGlzLGE/YS50eXBlOiIiKTt0aGlzLmE9dGhpcy50YXJnZXQ9bnVsbDt0aGlzLmtleUNvZGU9dGhpcy5jbGllbnRZPXRoaXMuY2xpZW50WD0wO3RoaXMucWE9ITE7dGhpcy5UPXRoaXMuc3RhdGU9bnVsbDtpZihhKXt0aGlzLnR5cGU9YS50eXBlO3RoaXMudGFyZ2V0PWEudGFyZ2V0fHxhLnNyY0VsZW1lbnQ7dGhpcy5hPWI7dmFyIGM9YS5yZWxhdGVkVGFyZ2V0O2lmKGMmYW1wOyZhbXA7UFNfdCl0cnl7UFNfSGEoYy5ub2RlTmFtZSl9Y2F0Y2goZCl7fXRoaXMuY2xpZW50WD12b2lkIDAhPT1hLmNsaWVudFg/YS5jbGllbnRYOmEucGFnZVg7dGhpcy5jbGllbnRZPXZvaWQgMCE9PWEuY2xpZW50WT9hLmNsaWVudFk6YS5wYWdlWTt0aGlzLmtleUNvZGU9YS5rZXlDb2RlfHwwO3RoaXMucWE9YS5jdHJsS2V5O3RoaXMuc3RhdGU9YS5zdGF0ZTt0aGlzLlQ9YTthLmRlZmF1bHRQcmV2ZW50ZWQmYW1wOyZhbXA7dGhpcy5wcmV2ZW50RGVmYXVsdCgpfX07ClBTX2coUFNfeSxQU194KTt2YXIgUFNfJGE9WzEsNCwyXTtQU195LnByb3RvdHlwZS5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe1BTX3kuQS5wcmV2ZW50RGVmYXVsdC5jYWxsKHRoaXMpO3ZhciBhPXRoaXMuVDtpZihhLnByZXZlbnREZWZhdWx0KWEucHJldmVudERlZmF1bHQoKTtlbHNlIGlmKGEucmV0dXJuVmFsdWU9ITEsUFNfOWEpdHJ5e2lmKGEuY3RybEtleXx8MTEyJmx0Oz1hLmtleUNvZGUmYW1wOyZhbXA7MTIzJmd0Oz1hLmtleUNvZGUpYS5rZXlDb2RlPS0xfWNhdGNoKGIpe319O1BTX3kucHJvdG90eXBlLlU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5UfTt2YXIgUFNfYWI9ImNsb3N1cmVfbGlzdGVuYWJsZV8iKygxRTYqTWF0aC5yYW5kb20oKXwwKSxQU19iYj1mdW5jdGlvbihhKXtyZXR1cm4hKCFhfHwhYVtQU19hYl0pfSxQU19jYj0wO3ZhciBQU19kYj1mdW5jdGlvbihhLGIsYyxkLGUpe3RoaXMubGlzdGVuZXI9YTt0aGlzLmE9bnVsbDt0aGlzLnNyYz1iO3RoaXMudHlwZT1jO3RoaXMuY2E9ISFkO3RoaXMuZWE9ZTt0aGlzLmdhPSsrUFNfY2I7dGhpcy5QPXRoaXMuYmE9ITF9LFBTX2ViPWZ1bmN0aW9uKGEpe2EuUD0hMDthLmxpc3RlbmVyPW51bGw7YS5hPW51bGw7YS5zcmM9bnVsbDthLmVhPW51bGx9O3ZhciBQU19mYj1mdW5jdGlvbihhKXt0aGlzLnNyYz1hO3RoaXMuYT17fTt0aGlzLmI9MH07UFNfZmIucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPWEudG9TdHJpbmcoKTthPXRoaXMuYVtmXTthfHwoYT10aGlzLmFbZl09W10sdGhpcy5iKyspO3ZhciBnPVBTX2diKGEsYixkLGUpOy0xJmx0O2c/KGI9YVtnXSxjfHwoYi5iYT0hMSkpOihiPW5ldyBQU19kYihiLHRoaXMuc3JjLGYsISFkLGUpLGIuYmE9YyxhLnB1c2goYikpO3JldHVybiBifTtQU19mYi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKGEsYixjLGQpe2E9YS50b1N0cmluZygpO2lmKCEoYSBpbiB0aGlzLmEpKXJldHVybiExO3ZhciBlPXRoaXMuYVthXTtiPVBTX2diKGUsYixjLGQpO3JldHVybi0xJmx0O2I/KFBTX2ViKGVbYl0pLFBTX2sobnVsbCE9ZS5sZW5ndGgpLFBTX20uc3BsaWNlLmNhbGwoZSxiLDEpLDA9PWUubGVuZ3RoJmFtcDsmYW1wOyhkZWxldGUgdGhpcy5hW2FdLHRoaXMuYi0tKSwhMCk6ITF9Owp2YXIgUFNfaGI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLnR5cGU7YyBpbiBhLmEmYW1wOyZhbXA7UFNfTWEoYS5hW2NdLGIpJmFtcDsmYW1wOyhQU19lYihiKSwwPT1hLmFbY10ubGVuZ3RoJmFtcDsmYW1wOyhkZWxldGUgYS5hW2NdLGEuYi0tKSl9LFBTX2liPWZ1bmN0aW9uKGEsYixjLGQsZSl7YT1hLmFbYi50b1N0cmluZygpXTtiPS0xO2EmYW1wOyZhbXA7KGI9UFNfZ2IoYSxjLGQsZSkpO3JldHVybi0xJmx0O2I/YVtiXTpudWxsfSxQU19nYj1mdW5jdGlvbihhLGIsYyxkKXtmb3IodmFyIGU9MDtlJmx0O2EubGVuZ3RoOysrZSl7dmFyIGY9YVtlXTtpZighZi5QJmFtcDsmYW1wO2YubGlzdGVuZXI9PWImYW1wOyZhbXA7Zi5jYT09ISFjJmFtcDsmYW1wO2YuZWE9PWQpcmV0dXJuIGV9cmV0dXJuLTF9O3ZhciBQU19qYj0iY2xvc3VyZV9sbV8iKygxRTYqTWF0aC5yYW5kb20oKXwwKSxQU19rYj17fSxQU19sYj0wLFBTX21iPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoUFNfYihiKSl7Zm9yKHZhciBmPTA7ZiZsdDtiLmxlbmd0aDtmKyspUFNfbWIoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gbnVsbH1jPVBTX25iKGMpO1BTX2JiKGEpPyhQU19vYihhKSxhPWEuQy5hZGQoU3RyaW5nKGIpLGMsITEsZCxlKSk6YT1QU19wYihhLGIsYywhMSxkLGUpO3JldHVybiBhfSxQU19wYj1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoIWIpdGhyb3cgRXJyb3IoIkludmFsaWQgZXZlbnQgdHlwZSIpO3ZhciBnPSEhZSxoPVBTX3FiKGEpO2h8fChhW1BTX2piXT1oPW5ldyBQU19mYihhKSk7Yz1oLmFkZChiLGMsZCxlLGYpO2lmKGMuYSlyZXR1cm4gYztkPVBTX3JiKCk7Yy5hPWQ7ZC5zcmM9YTtkLmxpc3RlbmVyPWM7aWYoYS5hZGRFdmVudExpc3RlbmVyKWEuYWRkRXZlbnRMaXN0ZW5lcihiLnRvU3RyaW5nKCksZCxnKTsKZWxzZSBpZihhLmF0dGFjaEV2ZW50KWEuYXR0YWNoRXZlbnQoUFNfc2IoYi50b1N0cmluZygpKSxkKTtlbHNlIHRocm93IEVycm9yKCJhZGRFdmVudExpc3RlbmVyIGFuZCBhdHRhY2hFdmVudCBhcmUgdW5hdmFpbGFibGUuIik7UFNfbGIrKztyZXR1cm4gY30sUFNfcmI9ZnVuY3Rpb24oKXt2YXIgYT1QU190YixiPVBTXzhhP2Z1bmN0aW9uKGMpe3JldHVybiBhLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKX06ZnVuY3Rpb24oYyl7Yz1hLmNhbGwoYi5zcmMsYi5saXN0ZW5lcixjKTtpZighYylyZXR1cm4gY307cmV0dXJuIGJ9LFBTX3ViPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoUFNfYihiKSl7Zm9yKHZhciBmPTA7ZiZsdDtiLmxlbmd0aDtmKyspUFNfdWIoYSxiW2ZdLGMsZCxlKTtyZXR1cm4gbnVsbH1jPVBTX25iKGMpO3JldHVybiBQU19iYihhKT9hLmphKGIsYyxkLGUpOlBTX3BiKGEsYixjLCEwLGQsZSl9LFBTX3ZiPWZ1bmN0aW9uKGEsYixjLGQsZSl7aWYoUFNfYihiKSlmb3IodmFyIGY9CjA7ZiZsdDtiLmxlbmd0aDtmKyspUFNfdmIoYSxiW2ZdLGMsZCxlKTtlbHNlIGM9UFNfbmIoYyksUFNfYmIoYSk/YS5DLnJlbW92ZShTdHJpbmcoYiksYyxkLGUpOmEmYW1wOyZhbXA7KGE9UFNfcWIoYSkpJmFtcDsmYW1wOyhiPVBTX2liKGEsYixjLCEhZCxlKSkmYW1wOyZhbXA7UFNfeihiKX0sUFNfej1mdW5jdGlvbihhKXtpZighUFNfZChhKSZhbXA7JmFtcDthJmFtcDsmYW1wOyFhLlApe3ZhciBiPWEuc3JjO2lmKFBTX2JiKGIpKVBTX2hiKGIuQyxhKTtlbHNle3ZhciBjPWEudHlwZSxkPWEuYTtiLnJlbW92ZUV2ZW50TGlzdGVuZXI/Yi5yZW1vdmVFdmVudExpc3RlbmVyKGMsZCxhLmNhKTpiLmRldGFjaEV2ZW50JmFtcDsmYW1wO2IuZGV0YWNoRXZlbnQoUFNfc2IoYyksZCk7UFNfbGItLTsoYz1QU19xYihiKSk/KFBTX2hiKGMsYSksMD09Yy5iJmFtcDsmYW1wOyhjLnNyYz1udWxsLGJbUFNfamJdPW51bGwpKTpQU19lYihhKX19fSxQU19zYj1mdW5jdGlvbihhKXtyZXR1cm4gYSBpbiBQU19rYj9QU19rYlthXTpQU19rYlthXT0ib24iK2F9LFBTX3hiPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPQohMDtpZihhPVBTX3FiKGEpKWlmKGI9YS5hW2IudG9TdHJpbmcoKV0pZm9yKGI9Yi5jb25jYXQoKSxhPTA7YSZsdDtiLmxlbmd0aDthKyspe3ZhciBmPWJbYV07ZiZhbXA7JmFtcDtmLmNhPT1jJmFtcDsmYW1wOyFmLlAmYW1wOyZhbXA7KGY9UFNfd2IoZixkKSxlPWUmYW1wOyZhbXA7ITEhPT1mKX1yZXR1cm4gZX0sUFNfd2I9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxpc3RlbmVyLGQ9YS5lYXx8YS5zcmM7YS5iYSZhbXA7JmFtcDtQU196KGEpO3JldHVybiBjLmNhbGwoZCxiKX0sUFNfdGI9ZnVuY3Rpb24oYSxiKXtpZihhLlApcmV0dXJuITA7aWYoIVBTXzhhKXt2YXIgYztpZighKGM9YikpYTp7Yz1bIndpbmRvdyIsImV2ZW50Il07Zm9yKHZhciBkPVBTX2EsZTtlPWMuc2hpZnQoKTspaWYobnVsbCE9ZFtlXSlkPWRbZV07ZWxzZXtjPW51bGw7YnJlYWsgYX1jPWR9ZT1jO2M9bmV3IFBTX3koZSx0aGlzKTtkPSEwO2lmKCEoMCZndDtlLmtleUNvZGV8fHZvaWQgMCE9ZS5yZXR1cm5WYWx1ZSkpe2E6e3ZhciBmPSExO2lmKDA9PWUua2V5Q29kZSl0cnl7ZS5rZXlDb2RlPQotMTticmVhayBhfWNhdGNoKGcpe2Y9ITB9aWYoZnx8dm9pZCAwPT1lLnJldHVyblZhbHVlKWUucmV0dXJuVmFsdWU9ITB9ZT1bXTtmb3IoZj1jLmE7ZjtmPWYucGFyZW50Tm9kZSllLnB1c2goZik7Zm9yKHZhciBmPWEudHlwZSxoPWUubGVuZ3RoLTE7MCZsdDs9aDtoLS0pe2MuYT1lW2hdO3ZhciBtPVBTX3hiKGVbaF0sZiwhMCxjKSxkPWQmYW1wOyZhbXA7bX1mb3IoaD0wO2gmbHQ7ZS5sZW5ndGg7aCsrKWMuYT1lW2hdLG09UFNfeGIoZVtoXSxmLCExLGMpLGQ9ZCZhbXA7JmFtcDttfXJldHVybiBkfXJldHVybiBQU193YihhLG5ldyBQU195KGIsdGhpcykpfSxQU19xYj1mdW5jdGlvbihhKXthPWFbUFNfamJdO3JldHVybiBhIGluc3RhbmNlb2YgUFNfZmI/YTpudWxsfSxQU195Yj0iX19jbG9zdXJlX2V2ZW50c19mbl8iKygxRTkqTWF0aC5yYW5kb20oKSZndDsmZ3Q7Jmd0OzApLFBTX25iPWZ1bmN0aW9uKGEpe1BTX2soYSwiTGlzdGVuZXIgY2FuIG5vdCBiZSBudWxsLiIpO2lmKFBTX2RhKGEpKXJldHVybiBhO1BTX2soYS5oYW5kbGVFdmVudCwKIkFuIG9iamVjdCBsaXN0ZW5lciBtdXN0IGhhdmUgaGFuZGxlRXZlbnQgbWV0aG9kLiIpO2FbUFNfeWJdfHwoYVtQU195Yl09ZnVuY3Rpb24oYil7cmV0dXJuIGEuaGFuZGxlRXZlbnQoYil9KTtyZXR1cm4gYVtQU195Yl19O3ZhciBQU196Yj1mdW5jdGlvbihhKXt2YXIgYjtiPWJ8fDA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkodGhpcyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCxiKSl9fSxQU19BYj1mdW5jdGlvbihhKXt2YXIgYj0hMSxjO3JldHVybiBmdW5jdGlvbigpe2J8fChjPWEoKSxiPSEwKTtyZXR1cm4gY319O3ZhciBQU19BPWZ1bmN0aW9uKGEsYixjKXtQU19pLmNhbGwodGhpcyk7dGhpcy5hPW51bGw7dGhpcy5mPSExO3RoaXMuZz1hO3RoaXMuaT1jO3RoaXMuYj1ifHx3aW5kb3c7dGhpcy5jPVBTX2UodGhpcy5oLHRoaXMpfTtQU19nKFBTX0EsUFNfaSk7CnZhciBQU19FYj1mdW5jdGlvbihhKXtQU19CYihhKTthLmY9ITE7dmFyIGI9UFNfQ2IoYSksYz1QU19EYihhKTtiJmFtcDsmYW1wOyFjJmFtcDsmYW1wO2EuYi5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWU/KGEuYT1QU19tYihhLmIsIk1vekJlZm9yZVBhaW50IixhLmMpLGEuYi5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWUobnVsbCksYS5mPSEwKTphLmE9YiZhbXA7JmFtcDtjP2IuY2FsbChhLmIsYS5jKTphLmIuc2V0VGltZW91dChQU196YihhLmMpLDIwKX0sUFNfQmI9ZnVuY3Rpb24oYSl7aWYobnVsbCE9YS5hKXt2YXIgYj1QU19DYihhKSxjPVBTX0RiKGEpO2ImYW1wOyZhbXA7IWMmYW1wOyZhbXA7YS5iLm1velJlcXVlc3RBbmltYXRpb25GcmFtZT9QU196KGEuYSk6YiZhbXA7JmFtcDtjP2MuY2FsbChhLmIsYS5hKTphLmIuY2xlYXJUaW1lb3V0KGEuYSl9YS5hPW51bGx9O1BTX0EucHJvdG90eXBlLmg9ZnVuY3Rpb24oKXt0aGlzLmYmYW1wOyZhbXA7dGhpcy5hJmFtcDsmYW1wO1BTX3oodGhpcy5hKTt0aGlzLmE9bnVsbDt0aGlzLmcuY2FsbCh0aGlzLmksUFNfZigpKX07ClBTX0EucHJvdG90eXBlLm09ZnVuY3Rpb24oKXtQU19CYih0aGlzKTtQU19BLkEubS5jYWxsKHRoaXMpfTt2YXIgUFNfQ2I9ZnVuY3Rpb24oYSl7YT1hLmI7cmV0dXJuIGEucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxhLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8YS5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGEub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8YS5tc1JlcXVlc3RBbmltYXRpb25GcmFtZXx8bnVsbH0sUFNfRGI9ZnVuY3Rpb24oYSl7YT1hLmI7cmV0dXJuIGEuY2FuY2VsQW5pbWF0aW9uRnJhbWV8fGEuY2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxhLndlYmtpdENhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8YS5tb3pDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGEub0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8YS5tc0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZXx8bnVsbH07dmFyIFBTX0ZiPWZ1bmN0aW9uKGEpe2lmKGEuY2xhc3NMaXN0KXJldHVybiBhLmNsYXNzTGlzdDthPWEuY2xhc3NOYW1lO3JldHVybiBQU19jKGEpJmFtcDsmYW1wO2EubWF0Y2goL1xTKy9nKXx8W119LFBTX0diPWZ1bmN0aW9uKGEsYil7dmFyIGM7YS5jbGFzc0xpc3Q/Yz1hLmNsYXNzTGlzdC5jb250YWlucyhiKTooYz1QU19GYihhKSxjPTAmbHQ7PVBTX0lhKGMsYikpO3JldHVybiBjfSxQU19CPWZ1bmN0aW9uKGEsYil7YS5jbGFzc0xpc3Q/YS5jbGFzc0xpc3QuYWRkKGIpOlBTX0diKGEsYil8fChhLmNsYXNzTmFtZSs9MCZsdDthLmNsYXNzTmFtZS5sZW5ndGg/IiAiK2I6Yil9LFBTX0hiPWZ1bmN0aW9uKGEsYil7aWYoYS5jbGFzc0xpc3QpUFNfbihiLGZ1bmN0aW9uKGIpe1BTX0IoYSxiKX0pO2Vsc2V7dmFyIGM9e307UFNfbihQU19GYihhKSxmdW5jdGlvbihhKXtjW2FdPSEwfSk7UFNfbihiLGZ1bmN0aW9uKGEpe2NbYV09ITB9KTthLmNsYXNzTmFtZT0iIjtmb3IodmFyIGQgaW4gYylhLmNsYXNzTmFtZSs9CjAmbHQ7YS5jbGFzc05hbWUubGVuZ3RoPyIgIitkOmR9fSxQU19JYj1mdW5jdGlvbihhLGIpe2EuY2xhc3NMaXN0P2EuY2xhc3NMaXN0LnJlbW92ZShiKTpQU19HYihhLGIpJmFtcDsmYW1wOyhhLmNsYXNzTmFtZT1QU19KYShQU19GYihhKSxmdW5jdGlvbihhKXtyZXR1cm4gYSE9Yn0pLmpvaW4oIiAiKSl9LFBTX0M9ZnVuY3Rpb24oYSxiLGMpe2M/UFNfQihhLGIpOlBTX0liKGEsYil9O3ZhciBQU19KYj1QU19wKCJGaXJlZm94IiksUFNfS2I9UFNfWWEoKXx8UFNfcCgiaVBvZCIpLFBTX0xiPVBTX3AoImlQYWQiKSxQU19NYj1QU19wKCJBbmRyb2lkIikmYW1wOyZhbXA7IShQU19YYSgpfHxQU19wKCJGaXJlZm94Iil8fFBTX1ZhKCl8fFBTX3AoIlNpbGsiKSksUFNfTmI9UFNfWGEoKSxQU19PYj1QU19wKCJTYWZhcmkiKSZhbXA7JmFtcDshKFBTX1hhKCl8fFBTX3AoIkNvYXN0Iil8fFBTX1ZhKCl8fFBTX1dhKCl8fFBTX3AoIlNpbGsiKXx8UFNfcCgiQW5kcm9pZCIpKSZhbXA7JmFtcDshKFBTX1lhKCl8fFBTX3AoImlQYWQiKXx8UFNfcCgiaVBvZCIpKTt2YXIgUFNfUGI9IVBTX3MsUFNfUWI9ZnVuY3Rpb24oYSl7cmV0dXJuIFBTX1BiJmFtcDsmYW1wO2EuZGF0YXNldD8iYWx0VGV4dCJpbiBhLmRhdGFzZXQ/YS5kYXRhc2V0LmFsdFRleHQ6bnVsbDphLmdldEF0dHJpYnV0ZSgiZGF0YS0iKyJhbHRUZXh0Ii5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCkpfTt2YXIgUFNfUmI9UFNfU2EoImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyIi5zcGxpdCgiICIpKTt2YXIgUFNfRD1mdW5jdGlvbigpe3RoaXMuYT0iIjt0aGlzLmI9UFNfU2J9O1BTX0QucHJvdG90eXBlLk49ITA7UFNfRC5wcm90b3R5cGUuTT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9O1BTX0QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNvbnN0eyIrdGhpcy5hKyJ9In07dmFyIFBTX1RiPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQU19EJmFtcDsmYW1wO2EuY29uc3RydWN0b3I9PT1QU19EJmFtcDsmYW1wO2EuYj09PVBTX1NiKXJldHVybiBhLmE7UFNfbCgiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgQ29uc3QsIGdvdCAnIithKyInIik7cmV0dXJuInR5cGVfZXJyb3I6Q29uc3QifSxQU19TYj17fSxQU19VYj1mdW5jdGlvbihhKXt2YXIgYj1uZXcgUFNfRDtiLmE9YTtyZXR1cm4gYn07dmFyIFBTX0U9ZnVuY3Rpb24oKXt0aGlzLmE9IiI7dGhpcy5iPVBTX1ZifTtQU19FLnByb3RvdHlwZS5OPSEwO3ZhciBQU19WYj17fTtQU19FLnByb3RvdHlwZS5NPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX07UFNfRS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iU2FmZVN0eWxleyIrdGhpcy5hKyJ9In07dmFyIFBTX1diPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBQU19FO2IuYT1hO3JldHVybiBifSxQU19YYj1QU19XYigiIiksUFNfWWI9L15bLSwuIiclXyEjIGEtekEtWjAtOV0rJC87dmFyIFBTX0Y9ZnVuY3Rpb24oKXt0aGlzLmE9IiI7dGhpcy5iPVBTX1pifTtQU189UFNfRi5wcm90b3R5cGU7UFNfLk49ITA7UFNfLk09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTtQU18uaGE9ITA7UFNfLlY9ZnVuY3Rpb24oKXtyZXR1cm4gMX07UFNfLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIlNhZmVVcmx7Iit0aGlzLmErIn0ifTsKdmFyIFBTX19iPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQU19GJmFtcDsmYW1wO2EuY29uc3RydWN0b3I9PT1QU19GJmFtcDsmYW1wO2EuYj09PVBTX1piKXJldHVybiBhLmE7UFNfbCgiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgU2FmZVVybCwgZ290ICciK2ErIiciKTtyZXR1cm4idHlwZV9lcnJvcjpTYWZlVXJsIn0sUFNfMGI9L14oPzooPzpodHRwcz98bWFpbHRvfGZ0cCk6fFteJmFtcDs6Lz8jXSooPzpbLz8jXXwkKSkvaSxQU18zYj1mdW5jdGlvbihhKXt0cnl7dmFyIGI9ZW5jb2RlVVJJKGEpfWNhdGNoKGMpe3JldHVybiJhYm91dDppbnZhbGlkI3pDbG9zdXJleiJ9cmV0dXJuIGIucmVwbGFjZShQU18xYixmdW5jdGlvbihhKXtyZXR1cm4gUFNfMmJbYV19KX0sUFNfMWI9L1soKSddfCU1QnwlNUR8JTI1L2csUFNfMmI9eyInIjoiJTI3IiwiKCI6IiUyOCIsIikiOiIlMjkiLCIlNUIiOiJbIiwiJTVEIjoiXSIsIiUyNSI6IiUifSxQU19aYj17fTt2YXIgUFNfRz1mdW5jdGlvbigpe3RoaXMuYT0iIjt0aGlzLmI9UFNfNGJ9O1BTXz1QU19HLnByb3RvdHlwZTtQU18uTj0hMDtQU18uTT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9O1BTXy5oYT0hMDtQU18uVj1mdW5jdGlvbigpe3JldHVybiAxfTtQU18udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iVHJ1c3RlZFJlc291cmNlVXJseyIrdGhpcy5hKyJ9In07dmFyIFBTXzViPWZ1bmN0aW9uKGEpe2lmKGEgaW5zdGFuY2VvZiBQU19HJmFtcDsmYW1wO2EuY29uc3RydWN0b3I9PT1QU19HJmFtcDsmYW1wO2EuYj09PVBTXzRiKXJldHVybiBhLmE7UFNfbCgiZXhwZWN0ZWQgb2JqZWN0IG9mIHR5cGUgVHJ1c3RlZFJlc291cmNlVXJsLCBnb3QgJyIrYSsiJyIpO3JldHVybiJ0eXBlX2Vycm9yOlRydXN0ZWRSZXNvdXJjZVVybCJ9LFBTXzRiPXt9LFBTXzZiPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyBQU19HO2IuYT1hO3JldHVybiBifTt2YXIgUFNfSD1mdW5jdGlvbigpe3RoaXMuYT0iIjt0aGlzLmM9UFNfN2I7dGhpcy5iPW51bGx9O1BTXz1QU19ILnByb3RvdHlwZTtQU18uaGE9ITA7UFNfLlY9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ifTtQU18uTj0hMDtQU18uTT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9O1BTXy50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJTYWZlSHRtbHsiK3RoaXMuYSsifSJ9Owp2YXIgUFNfST1mdW5jdGlvbihhKXtpZihhIGluc3RhbmNlb2YgUFNfSCZhbXA7JmFtcDthLmNvbnN0cnVjdG9yPT09UFNfSCZhbXA7JmFtcDthLmM9PT1QU183YilyZXR1cm4gYS5hO1BTX2woImV4cGVjdGVkIG9iamVjdCBvZiB0eXBlIFNhZmVIdG1sLCBnb3QgJyIrYSsiJyIpO3JldHVybiJ0eXBlX2Vycm9yOlNhZmVIdG1sIn0sUFNfOGI9ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIFBTX0gpcmV0dXJuIGE7dmFyIGI9bnVsbDthLmhhJmFtcDsmYW1wOyhiPWEuVigpKTthPVBTX2ooYS5OP2EuTSgpOlN0cmluZyhhKSk7cmV0dXJuIFBTX0ooYSxiKX0sUFNfOWI9L15bYS16QS1aMC05LV0rJC8sUFNfJGI9e2FjdGlvbjohMCxjaXRlOiEwLGRhdGE6ITAsZm9ybWFjdGlvbjohMCxocmVmOiEwLG1hbmlmZXN0OiEwLHBvc3RlcjohMCxzcmM6ITB9LFBTX2FjPXtFTUJFRDohMCxJRlJBTUU6ITAsTElOSzohMCxPQkpFQ1Q6ITAsU0NSSVBUOiEwLFNUWUxFOiEwLFRFTVBMQVRFOiEwfSxQU19jYz1mdW5jdGlvbihhLGIsYyl7aWYoIVBTXzliLnRlc3QoYSkpdGhyb3cgRXJyb3IoIkludmFsaWQgdGFnIG5hbWUgJmx0OyIrCmErIiZndDsuIik7aWYoYS50b1VwcGVyQ2FzZSgpaW4gUFNfYWMpdGhyb3cgRXJyb3IoIlRhZyBuYW1lICZsdDsiK2ErIiZndDsgaXMgbm90IGFsbG93ZWQgZm9yIFNhZmVIdG1sLiIpO3JldHVybiBQU19iYyhhLGIsYyl9LFBTX2RjPWZ1bmN0aW9uKGEpe3ZhciBiPTAsYz0iIixkPWZ1bmN0aW9uKGEpe1BTX2IoYSk/UFNfbihhLGQpOihhPVBTXzhiKGEpLGMrPVBTX0koYSksYT1hLlYoKSwwPT1iP2I9YTowIT1hJmFtcDsmYW1wO2IhPWEmYW1wOyZhbXA7KGI9bnVsbCkpfTtQU19uKGFyZ3VtZW50cyxkKTtyZXR1cm4gUFNfSihjLGIpfSxQU183Yj17fSxQU19KPWZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IFBTX0g7Yy5hPWE7Yy5iPWI7cmV0dXJuIGN9LFBTX2JjPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1udWxsLGU9IiZsdDsiK2E7aWYoYilmb3IodmFyIGYgaW4gYil7aWYoIVBTXzliLnRlc3QoZikpdGhyb3cgRXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIG5hbWUgIicrZisnIi4nKTt2YXIgZz1iW2ZdO2lmKG51bGwhPWcpe3ZhciBoLG09CmE7aD1mO2lmKGcgaW5zdGFuY2VvZiBQU19EKWc9UFNfVGIoZyk7ZWxzZSBpZigic3R5bGUiPT1oLnRvTG93ZXJDYXNlKCkpe2lmKCFQU19lYShnKSl0aHJvdyBFcnJvcignVGhlICJzdHlsZSIgYXR0cmlidXRlIHJlcXVpcmVzIGdvb2cuaHRtbC5TYWZlU3R5bGUgb3IgbWFwIG9mIHN0eWxlIHByb3BlcnRpZXMsICcrdHlwZW9mIGcrIiBnaXZlbjogIitnKTtpZighKGcgaW5zdGFuY2VvZiBQU19FKSl7dmFyIG09IiIsaz12b2lkIDA7Zm9yKGsgaW4gZyl7aWYoIS9eWy1fYS16QS1aMC05XSskLy50ZXN0KGspKXRocm93IEVycm9yKCJOYW1lIGFsbG93cyBvbmx5IFstX2EtekEtWjAtOV0sIGdvdDogIitrKTt2YXIgbD1nW2tdO2lmKG51bGwhPWwpe2lmKGwgaW5zdGFuY2VvZiBQU19EKWw9UFNfVGIobCksUFNfayghL1t7O31dLy50ZXN0KGwpLCJWYWx1ZSBkb2VzIG5vdCBhbGxvdyBbezt9XS4iKTtlbHNlIGlmKFBTX1liLnRlc3QobCkpe2Zvcih2YXIgbj0hMCxwPSEwLHE9MDtxJmx0O2wubGVuZ3RoO3ErKyl7dmFyIHI9CmwuY2hhckF0KHEpOyInIj09ciZhbXA7JmFtcDtwP249IW46JyInPT1yJmFtcDsmYW1wO24mYW1wOyZhbXA7KHA9IXApfW4mYW1wOyZhbXA7cHx8KFBTX2woIlN0cmluZyB2YWx1ZSByZXF1aXJlcyBiYWxhbmNlZCBxdW90ZXMsIGdvdDogIitsKSxsPSJ6Q2xvc3VyZXoiKX1lbHNlIFBTX2woIlN0cmluZyB2YWx1ZSBhbGxvd3Mgb25seSBbLSwuXCInJV8hIyBhLXpBLVowLTldLCBnb3Q6ICIrbCksbD0iekNsb3N1cmV6IjttKz1rKyI6IitsKyI7In19bT8oUFNfayghL1smbHQ7Jmd0O10vLnRlc3QobSksIkZvcmJpZGRlbiBjaGFyYWN0ZXJzIGluIHN0eWxlIHN0cmluZzogIittKSxnPVBTX1diKG0pKTpnPVBTX1hifW09dm9pZCAwO2cgaW5zdGFuY2VvZiBQU19FJmFtcDsmYW1wO2cuY29uc3RydWN0b3I9PT1QU19FJmFtcDsmYW1wO2cuYj09PVBTX1ZiP209Zy5hOihQU19sKCJleHBlY3RlZCBvYmplY3Qgb2YgdHlwZSBTYWZlU3R5bGUsIGdvdCAnIitnKyInIiksbT0idHlwZV9lcnJvcjpTYWZlU3R5bGUiKTtnPW19ZWxzZXtpZigvXm9uL2kudGVzdChoKSl0aHJvdyBFcnJvcignQXR0cmlidXRlICInKwpoKyciIHJlcXVpcmVzIGdvb2cuc3RyaW5nLkNvbnN0IHZhbHVlLCAiJytnKyciIGdpdmVuLicpO2lmKGgudG9Mb3dlckNhc2UoKWluIFBTXyRiKWlmKGcgaW5zdGFuY2VvZiBQU19HKWc9UFNfNWIoZyk7ZWxzZSBpZihnIGluc3RhbmNlb2YgUFNfRilnPVBTX19iKGcpO2Vsc2UgdGhyb3cgRXJyb3IoJ0F0dHJpYnV0ZSAiJytoKyciIG9uIHRhZyAiJyttKyciIHJlcXVpcmVzIGdvb2cuaHRtbC5TYWZlVXJsIG9yIGdvb2cuc3RyaW5nLkNvbnN0IHZhbHVlLCAiJytnKyciIGdpdmVuLicpO31nLk4mYW1wOyZhbXA7KGc9Zy5NKCkpO1BTX2soUFNfYyhnKXx8UFNfZChnKSwiU3RyaW5nIG9yIG51bWJlciB2YWx1ZSBleHBlY3RlZCwgZ290ICIrdHlwZW9mIGcrIiB3aXRoIHZhbHVlOiAiK2cpO2g9aCsnPSInK1BTX2ooU3RyaW5nKGcpKSsnIic7ZT1lKygiICIraCl9fW51bGwhPWM/UFNfYihjKXx8KGM9W2NdKTpjPVtdOyEwPT09UFNfUmJbYS50b0xvd2VyQ2FzZSgpXT8oUFNfayghYy5sZW5ndGgsIlZvaWQgdGFnICZsdDsiKwphKyImZ3Q7IGRvZXMgbm90IGFsbG93IGNvbnRlbnQuIiksZSs9IiZndDsiKTooZD1QU19kYyhjKSxlKz0iJmd0OyIrUFNfSShkKSsiJmx0Oy8iK2ErIiZndDsiLGQ9ZC5WKCkpOyhhPWImYW1wOyZhbXA7Yi5kaXIpJmFtcDsmYW1wOygvXihsdHJ8cnRsfGF1dG8pJC9pLnRlc3QoYSk/ZD0wOmQ9bnVsbCk7cmV0dXJuIFBTX0ooZSxkKX07UFNfSigiJmx0OyFET0NUWVBFIGh0bWwmZ3Q7IiwwKTt2YXIgUFNfZWM9UFNfSigiIiwwKTt2YXIgUFNfSz1mdW5jdGlvbihhLGIpe3RoaXMueD12b2lkIDAhPT1hP2E6MDt0aGlzLnk9dm9pZCAwIT09Yj9iOjB9O1BTX0sucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQU19LKHRoaXMueCx0aGlzLnkpfTtQU19LLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLngrIiwgIit0aGlzLnkrIikifTt2YXIgUFNfZmM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IFBTX0soYS54LWIueCxhLnktYi55KX07UFNfSy5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpO3RoaXMueT1NYXRoLnJvdW5kKHRoaXMueSk7cmV0dXJuIHRoaXN9O3ZhciBQU19MPWZ1bmN0aW9uKGEsYil7dGhpcy53aWR0aD1hO3RoaXMuaGVpZ2h0PWJ9O1BTX0wucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQU19MKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfTtQU19MLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiIoIit0aGlzLndpZHRoKyIgeCAiK3RoaXMuaGVpZ2h0KyIpIn07UFNfTC5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLndpZHRoPU1hdGgucm91bmQodGhpcy53aWR0aCk7dGhpcy5oZWlnaHQ9TWF0aC5yb3VuZCh0aGlzLmhlaWdodCk7cmV0dXJuIHRoaXN9O3ZhciBQU19nYz0hUFNfdCZhbXA7JmFtcDshUFNfc3x8UFNfcyZhbXA7JmFtcDtQU193KDkpfHxQU190JmFtcDsmYW1wO1BTX3YoIjEuOS4xIik7UFNfcyZhbXA7JmFtcDtQU192KCI5Iik7dmFyIFBTX2hjPVBTX3N8fFBTX3J8fFBTX3U7dmFyIFBTX049ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bmV3IFBTX2ljKFBTX00oYSkpOlBTX25hfHwoUFNfbmE9bmV3IFBTX2ljKX0sUFNfTz1mdW5jdGlvbihhKXtyZXR1cm4gUFNfYyhhKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKTphfSxQU19QPWZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8ZG9jdW1lbnQsZD1udWxsO2MuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT9kPWMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTpjLnF1ZXJ5U2VsZWN0b3JBbGwmYW1wOyZhbXA7Yy5xdWVyeVNlbGVjdG9yP2Q9Yy5xdWVyeVNlbGVjdG9yKCIuIithKTpkPVBTX2pjKCIqIixhLGIpWzBdO3JldHVybiBkfHxudWxsfSxQU19qYz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZG9jdW1lbnQ7Yz1jfHxkO3ZhciBlPWEmYW1wOyZhbXA7IioiIT1hP2EudG9VcHBlckNhc2UoKToiIjtpZihjLnF1ZXJ5U2VsZWN0b3JBbGwmYW1wOyZhbXA7Yy5xdWVyeVNlbGVjdG9yJmFtcDsmYW1wOyhlfHxiKSlyZXR1cm4gYy5xdWVyeVNlbGVjdG9yQWxsKGUrKGI/Ii4iK2I6IiIpKTsKaWYoYiZhbXA7JmFtcDtjLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpe2E9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGIpO2lmKGUpe2M9e307Zm9yKHZhciBmPWQ9MCxnO2c9YVtmXTtmKyspZT09Zy5ub2RlTmFtZSZhbXA7JmFtcDsoY1tkKytdPWcpO2MubGVuZ3RoPWQ7cmV0dXJuIGN9cmV0dXJuIGF9YT1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKGV8fCIqIik7aWYoYil7Yz17fTtmb3IoZj1kPTA7Zz1hW2ZdO2YrKyl7dmFyIGU9Zy5jbGFzc05hbWUsaDtpZihoPSJmdW5jdGlvbiI9PXR5cGVvZiBlLnNwbGl0KWg9MCZsdDs9UFNfSWEoZS5zcGxpdCgvXHMrLyksYik7aCZhbXA7JmFtcDsoY1tkKytdPWcpfWMubGVuZ3RoPWQ7cmV0dXJuIGN9cmV0dXJuIGF9LFBTX2xjPWZ1bmN0aW9uKGEsYil7UFNfTmEoYixmdW5jdGlvbihiLGQpeyJzdHlsZSI9PWQ/YS5zdHlsZS5jc3NUZXh0PWI6ImNsYXNzIj09ZD9hLmNsYXNzTmFtZT1iOiJmb3IiPT1kP2EuaHRtbEZvcj1iOlBTX2tjLmhhc093blByb3BlcnR5KGQpP2Euc2V0QXR0cmlidXRlKFBTX2tjW2RdLApiKTowPT1kLmxhc3RJbmRleE9mKCJhcmlhLSIsMCl8fDA9PWQubGFzdEluZGV4T2YoImRhdGEtIiwwKT9hLnNldEF0dHJpYnV0ZShkLGIpOmFbZF09Yn0pfSxQU19rYz17Y2VsbHBhZGRpbmc6ImNlbGxQYWRkaW5nIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNvbHNwYW46ImNvbFNwYW4iLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsaGVpZ2h0OiJoZWlnaHQiLG1heGxlbmd0aDoibWF4TGVuZ3RoIixyb2xlOiJyb2xlIixyb3dzcGFuOiJyb3dTcGFuIix0eXBlOiJ0eXBlIix1c2VtYXA6InVzZU1hcCIsdmFsaWduOiJ2QWxpZ24iLHdpZHRoOiJ3aWR0aCJ9LFBTX29jPWZ1bmN0aW9uKGEpe3ZhciBiPVBTX21jKGEpO2E9UFNfbmMoYSk7cmV0dXJuIFBTX3MmYW1wOyZhbXA7UFNfdigiMTAiKSZhbXA7JmFtcDthLnBhZ2VZT2Zmc2V0IT1iLnNjcm9sbFRvcD9uZXcgUFNfSyhiLnNjcm9sbExlZnQsYi5zY3JvbGxUb3ApOm5ldyBQU19LKGEucGFnZVhPZmZzZXR8fGIuc2Nyb2xsTGVmdCxhLnBhZ2VZT2Zmc2V0fHwKYi5zY3JvbGxUb3ApfSxQU19tYz1mdW5jdGlvbihhKXtyZXR1cm4gYS5hP2EuYTpQU191fHwiQ1NTMUNvbXBhdCIhPWEuY29tcGF0TW9kZT9hLmJvZHl8fGEuZG9jdW1lbnRFbGVtZW50OmEuZG9jdW1lbnRFbGVtZW50fSxQU19wYz1mdW5jdGlvbihhKXtyZXR1cm4gYT9QU19uYyhhKTp3aW5kb3d9LFBTX25jPWZ1bmN0aW9uKGEpe3JldHVybiBhLnBhcmVudFdpbmRvd3x8YS5kZWZhdWx0Vmlld30sUFNfcWM9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiO2I9YS5maXJzdENoaWxkOylhLnJlbW92ZUNoaWxkKGIpfSxQU19yYz1mdW5jdGlvbihhKXthJmFtcDsmYW1wO2EucGFyZW50Tm9kZSZhbXA7JmFtcDthLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSl9LFBTX3NjPWZ1bmN0aW9uKGEpe3JldHVybiBQU19nYyZhbXA7JmFtcDt2b2lkIDAhPWEuY2hpbGRyZW4/YS5jaGlsZHJlbjpQU19KYShhLmNoaWxkTm9kZXMsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PWEubm9kZVR5cGV9KX0sUFNfdGM9ZnVuY3Rpb24oYSxiKXtpZihhLmNvbnRhaW5zJmFtcDsmYW1wOwoxPT1iLm5vZGVUeXBlKXJldHVybiBhPT1ifHxhLmNvbnRhaW5zKGIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbilyZXR1cm4gYT09Ynx8Qm9vbGVhbihhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJmFtcDsxNik7Zm9yKDtiJmFtcDsmYW1wO2EhPWI7KWI9Yi5wYXJlbnROb2RlO3JldHVybiBiPT1hfSxQU19NPWZ1bmN0aW9uKGEpe1BTX2soYSwiTm9kZSBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIDk9PWEubm9kZVR5cGU/YTphLm93bmVyRG9jdW1lbnR8fGEuZG9jdW1lbnR9LFBTX3VjPWZ1bmN0aW9uKGEpe3JldHVybiBhLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2luZG93LmRvY3VtZW50fSxQU192Yz1mdW5jdGlvbihhLGIpe1BTX2sobnVsbCE9YSwiZ29vZy5kb20uc2V0VGV4dENvbnRlbnQgZXhwZWN0cyBhIG5vbi1udWxsIHZhbHVlIGZvciBub2RlIik7aWYoInRleHRDb250ZW50ImluIGEpYS50ZXh0Q29udGVudD1iO2Vsc2UgaWYoMz09CmEubm9kZVR5cGUpYS5kYXRhPWI7ZWxzZSBpZihhLmZpcnN0Q2hpbGQmYW1wOyZhbXA7Mz09YS5maXJzdENoaWxkLm5vZGVUeXBlKXtmb3IoO2EubGFzdENoaWxkIT1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5sYXN0Q2hpbGQpO2EuZmlyc3RDaGlsZC5kYXRhPWJ9ZWxzZXtQU19xYyhhKTt2YXIgYz1QU19NKGEpO2EuYXBwZW5kQ2hpbGQoYy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoYikpKX19LFBTX2ljPWZ1bmN0aW9uKGEpe3RoaXMuYT1hfHxQU19hLmRvY3VtZW50fHxkb2N1bWVudH07UFNfaWMucHJvdG90eXBlLkI9ZnVuY3Rpb24oYSl7cmV0dXJuIFBTX2MoYSk/dGhpcy5hLmdldEVsZW1lbnRCeUlkKGEpOmF9O3ZhciBQU193Yz1mdW5jdGlvbihhKXtyZXR1cm4iQ1NTMUNvbXBhdCI9PWEuYS5jb21wYXRNb2RlfTtQU19pYy5wcm90b3R5cGUuYXBwZW5kQ2hpbGQ9ZnVuY3Rpb24oYSxiKXthLmFwcGVuZENoaWxkKGIpfTtQU19pYy5wcm90b3R5cGUuY29udGFpbnM9UFNfdGM7dmFyIFBTX1E9ZnVuY3Rpb24oYSl7UFNfaS5jYWxsKHRoaXMpO3RoaXMuYj1hO3RoaXMuYT17fX07UFNfZyhQU19RLFBTX2kpO3ZhciBQU194Yz1bXSxQU19SPWZ1bmN0aW9uKGEsYixjLGQsZSl7UFNfYihjKXx8KGMmYW1wOyZhbXA7KFBTX3hjWzBdPWMudG9TdHJpbmcoKSksYz1QU194Yyk7Zm9yKHZhciBmPTA7ZiZsdDtjLmxlbmd0aDtmKyspe3ZhciBnPVBTX21iKGIsY1tmXSxkfHxhLmhhbmRsZUV2ZW50LGV8fCExLGEuYnx8YSk7aWYoIWcpYnJlYWs7YS5hW2cuZ2FdPWd9fTtQU19RLnByb3RvdHlwZS5qYT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gUFNfeWModGhpcyxhLGIsYyxkKX07CnZhciBQU195Yz1mdW5jdGlvbihhLGIsYyxkLGUsZil7aWYoUFNfYihjKSlmb3IodmFyIGc9MDtnJmx0O2MubGVuZ3RoO2crKylQU195YyhhLGIsY1tnXSxkLGUsZik7ZWxzZXtiPVBTX3ViKGIsYyxkfHxhLmhhbmRsZUV2ZW50LGUsZnx8YS5ifHxhKTtpZighYilyZXR1cm4gYTthLmFbYi5nYV09Yn1yZXR1cm4gYX0sUFNfemM9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2lmKFBTX2IoYykpZm9yKHZhciBnPTA7ZyZsdDtjLmxlbmd0aDtnKyspUFNfemMoYSxiLGNbZ10sZCxlLGYpO2Vsc2UgZD1kfHxhLmhhbmRsZUV2ZW50LGY9Znx8YS5ifHxhLGQ9UFNfbmIoZCksZT0hIWUsYz1QU19iYihiKT9QU19pYihiLkMsU3RyaW5nKGMpLGQsZSxmKTpiPyhiPVBTX3FiKGIpKT9QU19pYihiLGMsZCxlLGYpOm51bGw6bnVsbCxjJmFtcDsmYW1wOyhQU196KGMpLGRlbGV0ZSBhLmFbYy5nYV0pfSxQU19BYz1mdW5jdGlvbihhKXtQU19OYShhLmEsZnVuY3Rpb24oYSxjKXt0aGlzLmEuaGFzT3duUHJvcGVydHkoYykmYW1wOyZhbXA7UFNfeihhKX0sCmEpO2EuYT17fX07UFNfUS5wcm90b3R5cGUubT1mdW5jdGlvbigpe1BTX1EuQS5tLmNhbGwodGhpcyk7UFNfQWModGhpcyl9O1BTX1EucHJvdG90eXBlLmhhbmRsZUV2ZW50PWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkV2ZW50SGFuZGxlci5oYW5kbGVFdmVudCBub3QgaW1wbGVtZW50ZWQiKTt9O3ZhciBQU19CYz1bImNsaWNrIixQU190PyJrZXlwcmVzcyI6ImtleWRvd24iLCJrZXl1cCJdLFBTX0NjPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGY9ZnVuY3Rpb24oYSl7dmFyIGM9UFNfbmIoYiksZT1hLnRhcmdldCxlPVBTX2VhKGUpJmFtcDsmYW1wOzE9PWUubm9kZVR5cGU/YS50YXJnZXQuZ2V0QXR0cmlidXRlKCJyb2xlIil8fG51bGw6bnVsbDsiY2xpY2siPT1hLnR5cGUmYW1wOyZhbXA7KFBTXzdhPzA9PWEuVC5idXR0b246ImNsaWNrIj09YS50eXBlfHxhLlQuYnV0dG9uJmFtcDtQU18kYVswXSkmYW1wOyZhbXA7IShQU191JmFtcDsmYW1wO1BTX19hJmFtcDsmYW1wO2EucWEpP2MuY2FsbChkLGEpOjEzIT1hLmtleUNvZGUmYW1wOyZhbXA7MyE9YS5rZXlDb2RlfHwia2V5dXAiPT1hLnR5cGU/MzIhPWEua2V5Q29kZXx8ImtleXVwIiE9YS50eXBlfHwiYnV0dG9uIiE9ZSZhbXA7JmFtcDsidGFiIiE9ZXx8KGMuY2FsbChkLGEpLGEucHJldmVudERlZmF1bHQoKSk6KGEudHlwZT0ia2V5cHJlc3MiLGMuY2FsbChkLGEpKX07Zi5nPWI7Zi5hPWQ7ZT9QU19SKGUsYSxQU19CYyxmLGMpOgpQU19tYihhLFBTX0JjLGYsYyl9O3ZhciBQU19EYz1mdW5jdGlvbihhKXthPVN0cmluZyhhKTtpZigvXlxzKiQvLnRlc3QoYSk/MDovXltcXSw6e31cc1x1MjAyOFx1MjAyOV0qJC8udGVzdChhLnJlcGxhY2UoL1xcWyJcXFwvYmZucnR1XS9nLCJAIikucmVwbGFjZSgvIlteIlxcXG5cclx1MjAyOFx1MjAyOVx4MDAtXHgwOFx4MGEtXHgxZl0qInx0cnVlfGZhbHNlfG51bGx8LT9cZCsoPzpcLlxkKik/KD86W2VFXVsrXC1dP1xkKyk/L2csIl0iKS5yZXBsYWNlKC8oPzpefDp8LCkoPzpbXHNcdTIwMjhcdTIwMjldKlxbKSsvZywiIikpKXRyeXtyZXR1cm4gZXZhbCgiKCIrYSsiKSIpfWNhdGNoKGIpe310aHJvdyBFcnJvcigiSW52YWxpZCBKU09OIHN0cmluZzogIithKTt9O3ZhciBQU19FYz1mdW5jdGlvbigpe3JldHVybiBQU191PyJXZWJraXQiOlBTX3Q/Ik1veiI6UFNfcz8ibXMiOlBTX3I/Ik8iOm51bGx9LFBTX0ZjPWZ1bmN0aW9uKCl7cmV0dXJuIFBTX3U/Ii13ZWJraXQiOlBTX3Q/Ii1tb3oiOlBTX3M/Ii1tcyI6UFNfcj8iLW8iOm51bGx9O3ZhciBQU19TPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMudG9wPWE7dGhpcy5yaWdodD1iO3RoaXMuYm90dG9tPWM7dGhpcy5sZWZ0PWR9O1BTX1MucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQU19TKHRoaXMudG9wLHRoaXMucmlnaHQsdGhpcy5ib3R0b20sdGhpcy5sZWZ0KX07UFNfUy5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iKCIrdGhpcy50b3ArInQsICIrdGhpcy5yaWdodCsiciwgIit0aGlzLmJvdHRvbSsiYiwgIit0aGlzLmxlZnQrImwpIn07UFNfUy5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMmYW1wOyZhbXA7YT9hIGluc3RhbmNlb2YgUFNfUz9hLmxlZnQmZ3Q7PXRoaXMubGVmdCZhbXA7JmFtcDthLnJpZ2h0Jmx0Oz10aGlzLnJpZ2h0JmFtcDsmYW1wO2EudG9wJmd0Oz10aGlzLnRvcCZhbXA7JmFtcDthLmJvdHRvbSZsdDs9dGhpcy5ib3R0b206YS54Jmd0Oz10aGlzLmxlZnQmYW1wOyZhbXA7YS54Jmx0Oz10aGlzLnJpZ2h0JmFtcDsmYW1wO2EueSZndDs9dGhpcy50b3AmYW1wOyZhbXA7YS55Jmx0Oz10aGlzLmJvdHRvbTohMX07ClBTX1MucHJvdG90eXBlLnJvdW5kPWZ1bmN0aW9uKCl7dGhpcy50b3A9TWF0aC5yb3VuZCh0aGlzLnRvcCk7dGhpcy5yaWdodD1NYXRoLnJvdW5kKHRoaXMucmlnaHQpO3RoaXMuYm90dG9tPU1hdGgucm91bmQodGhpcy5ib3R0b20pO3RoaXMubGVmdD1NYXRoLnJvdW5kKHRoaXMubGVmdCk7cmV0dXJuIHRoaXN9O3ZhciBQU19UPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMubGVmdD1hO3RoaXMudG9wPWI7dGhpcy53aWR0aD1jO3RoaXMuaGVpZ2h0PWR9O1BTX1QucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBQU19UKHRoaXMubGVmdCx0aGlzLnRvcCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX07UFNfVC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iKCIrdGhpcy5sZWZ0KyIsICIrdGhpcy50b3ArIiAtICIrdGhpcy53aWR0aCsidyB4ICIrdGhpcy5oZWlnaHQrImgpIn07ClBTX1QucHJvdG90eXBlLmNvbnRhaW5zPWZ1bmN0aW9uKGEpe3JldHVybiBhIGluc3RhbmNlb2YgUFNfVD90aGlzLmxlZnQmbHQ7PWEubGVmdCZhbXA7JmFtcDt0aGlzLmxlZnQrdGhpcy53aWR0aCZndDs9YS5sZWZ0K2Eud2lkdGgmYW1wOyZhbXA7dGhpcy50b3AmbHQ7PWEudG9wJmFtcDsmYW1wO3RoaXMudG9wK3RoaXMuaGVpZ2h0Jmd0Oz1hLnRvcCthLmhlaWdodDphLngmZ3Q7PXRoaXMubGVmdCZhbXA7JmFtcDthLngmbHQ7PXRoaXMubGVmdCt0aGlzLndpZHRoJmFtcDsmYW1wO2EueSZndDs9dGhpcy50b3AmYW1wOyZhbXA7YS55Jmx0Oz10aGlzLnRvcCt0aGlzLmhlaWdodH07UFNfVC5wcm90b3R5cGUucm91bmQ9ZnVuY3Rpb24oKXt0aGlzLmxlZnQ9TWF0aC5yb3VuZCh0aGlzLmxlZnQpO3RoaXMudG9wPU1hdGgucm91bmQodGhpcy50b3ApO3RoaXMud2lkdGg9TWF0aC5yb3VuZCh0aGlzLndpZHRoKTt0aGlzLmhlaWdodD1NYXRoLnJvdW5kKHRoaXMuaGVpZ2h0KTtyZXR1cm4gdGhpc307dmFyIFBTX1U9ZnVuY3Rpb24oYSxiLGMpe2lmKFBTX2MoYikpKGI9UFNfR2MoYSxiKSkmYW1wOyZhbXA7KGEuc3R5bGVbYl09Yyk7ZWxzZSBmb3IodmFyIGQgaW4gYil7Yz1hO3ZhciBlPWJbZF0sZj1QU19HYyhjLGQpO2YmYW1wOyZhbXA7KGMuc3R5bGVbZl09ZSl9fSxQU19IYz17fSxQU19HYz1mdW5jdGlvbihhLGIpe3ZhciBjPVBTX0hjW2JdO2lmKCFjKXt2YXIgZD1QU196YShiKSxjPWQ7dm9pZCAwPT09YS5zdHlsZVtkXSZhbXA7JmFtcDsoZD1QU19FYygpK1BTX0FhKGQpLHZvaWQgMCE9PWEuc3R5bGVbZF0mYW1wOyZhbXA7KGM9ZCkpO1BTX0hjW2JdPWN9cmV0dXJuIGN9LFBTX1Y9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QU19NKGEpO3JldHVybiBjLmRlZmF1bHRWaWV3JmFtcDsmYW1wO2MuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSZhbXA7JmFtcDsoYz1jLmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKSk/Y1tiXXx8Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHwiIjoiIn0sUFNfVz1mdW5jdGlvbihhLGIpe3JldHVybiBQU19WKGEsYil8fChhLmN1cnJlbnRTdHlsZT8KYS5jdXJyZW50U3R5bGVbYl06bnVsbCl8fGEuc3R5bGUmYW1wOyZhbXA7YS5zdHlsZVtiXX0sUFNfSmM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2IgaW5zdGFuY2VvZiBQU19LPyhkPWIueCxiPWIueSk6KGQ9YixiPWMpO2Euc3R5bGUubGVmdD1QU19JYyhkKTthLnN0eWxlLnRvcD1QU19JYyhiKX0sUFNfS2M9ZnVuY3Rpb24oYSl7dmFyIGI7dHJ5e2I9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaChjKXtyZXR1cm57bGVmdDowLHRvcDowLHJpZ2h0OjAsYm90dG9tOjB9fVBTX3MmYW1wOyZhbXA7YS5vd25lckRvY3VtZW50LmJvZHkmYW1wOyZhbXA7KGE9YS5vd25lckRvY3VtZW50LGIubGVmdC09YS5kb2N1bWVudEVsZW1lbnQuY2xpZW50TGVmdCthLmJvZHkuY2xpZW50TGVmdCxiLnRvcC09YS5kb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wK2EuYm9keS5jbGllbnRUb3ApO3JldHVybiBifSxQU19MYz1mdW5jdGlvbihhKXtpZihQU19zJmFtcDsmYW1wOyFQU193KDgpKXJldHVybiBhLm9mZnNldFBhcmVudDt2YXIgYj1QU19NKGEpLGM9ClBTX1coYSwicG9zaXRpb24iKSxkPSJmaXhlZCI9PWN8fCJhYnNvbHV0ZSI9PWM7Zm9yKGE9YS5wYXJlbnROb2RlO2EmYW1wOyZhbXA7YSE9YjthPWEucGFyZW50Tm9kZSlpZigxMT09YS5ub2RlVHlwZSZhbXA7JmFtcDthLmhvc3QmYW1wOyZhbXA7KGE9YS5ob3N0KSxjPVBTX1coYSwicG9zaXRpb24iKSxkPWQmYW1wOyZhbXA7InN0YXRpYyI9PWMmYW1wOyZhbXA7YSE9Yi5kb2N1bWVudEVsZW1lbnQmYW1wOyZhbXA7YSE9Yi5ib2R5LCFkJmFtcDsmYW1wOyhhLnNjcm9sbFdpZHRoJmd0O2EuY2xpZW50V2lkdGh8fGEuc2Nyb2xsSGVpZ2h0Jmd0O2EuY2xpZW50SGVpZ2h0fHwiZml4ZWQiPT1jfHwiYWJzb2x1dGUiPT1jfHwicmVsYXRpdmUiPT1jKSlyZXR1cm4gYTtyZXR1cm4gbnVsbH0sUFNfTmM9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPW5ldyBQU19TKDAsSW5maW5pdHksSW5maW5pdHksMCksYz1QU19OKGEpLGQ9Yy5hLmJvZHksZT1jLmEuZG9jdW1lbnRFbGVtZW50LGY9UFNfbWMoYy5hKTthPVBTX0xjKGEpOylpZighKFBTX3MmYW1wOyZhbXA7MD09YS5jbGllbnRXaWR0aHx8UFNfdSZhbXA7JmFtcDswPT1hLmNsaWVudEhlaWdodCZhbXA7JmFtcDsKYT09ZCkmYW1wOyZhbXA7YSE9ZCZhbXA7JmFtcDthIT1lJmFtcDsmYW1wOyJ2aXNpYmxlIiE9UFNfVyhhLCJvdmVyZmxvdyIpKXt2YXIgZz1QU19NYyhhKSxoPW5ldyBQU19LKGEuY2xpZW50TGVmdCxhLmNsaWVudFRvcCk7Zy54Kz1oLng7Zy55Kz1oLnk7Yi50b3A9TWF0aC5tYXgoYi50b3AsZy55KTtiLnJpZ2h0PU1hdGgubWluKGIucmlnaHQsZy54K2EuY2xpZW50V2lkdGgpO2IuYm90dG9tPU1hdGgubWluKGIuYm90dG9tLGcueSthLmNsaWVudEhlaWdodCk7Yi5sZWZ0PU1hdGgubWF4KGIubGVmdCxnLngpfWQ9Zi5zY3JvbGxMZWZ0O2Y9Zi5zY3JvbGxUb3A7Yi5sZWZ0PU1hdGgubWF4KGIubGVmdCxkKTtiLnRvcD1NYXRoLm1heChiLnRvcCxmKTtjPShQU19uYyhjLmEpfHx3aW5kb3cpLmRvY3VtZW50O2M9IkNTUzFDb21wYXQiPT1jLmNvbXBhdE1vZGU/Yy5kb2N1bWVudEVsZW1lbnQ6Yy5ib2R5O2M9bmV3IFBTX0woYy5jbGllbnRXaWR0aCxjLmNsaWVudEhlaWdodCk7Yi5yaWdodD1NYXRoLm1pbihiLnJpZ2h0LGQrYy53aWR0aCk7CmIuYm90dG9tPU1hdGgubWluKGIuYm90dG9tLGYrYy5oZWlnaHQpO3JldHVybiAwJmx0Oz1iLnRvcCZhbXA7JmFtcDswJmx0Oz1iLmxlZnQmYW1wOyZhbXA7Yi5ib3R0b20mZ3Q7Yi50b3AmYW1wOyZhbXA7Yi5yaWdodCZndDtiLmxlZnQ/YjpudWxsfSxQU19NYz1mdW5jdGlvbihhKXt2YXIgYj1QU19NKGEpO1BTX0VhKGEsIlBhcmFtZXRlciBpcyByZXF1aXJlZCIpO3ZhciBjPW5ldyBQU19LKDAsMCksZDtkPWI/UFNfTShiKTpkb2N1bWVudDtkPSFQU19zfHxQU193KDkpfHxQU193YyhQU19OKGQpKT9kLmRvY3VtZW50RWxlbWVudDpkLmJvZHk7aWYoYT09ZClyZXR1cm4gYzthPVBTX0tjKGEpO2I9UFNfTihiKTtiPVBTX29jKGIuYSk7Yy54PWEubGVmdCtiLng7Yy55PWEudG9wK2IueTtyZXR1cm4gY30sUFNfUGM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1QU19PYyhhKSxkPVBTX09jKGIpO3JldHVybiBuZXcgUFNfSyhjLngtZC54LGMueS1kLnkpfSxQU19RYz1mdW5jdGlvbihhKXthPVBTX0tjKGEpO3JldHVybiBuZXcgUFNfSyhhLmxlZnQsYS50b3ApfSwKUFNfT2M9ZnVuY3Rpb24oYSl7UFNfayhhKTtpZigxPT1hLm5vZGVUeXBlKXJldHVybiBQU19RYyhhKTt2YXIgYj1QU19kYShhLlUpLGM9YTthLnRhcmdldFRvdWNoZXMmYW1wOyZhbXA7YS50YXJnZXRUb3VjaGVzLmxlbmd0aD9jPWEudGFyZ2V0VG91Y2hlc1swXTpiJmFtcDsmYW1wO2EuVSgpLnRhcmdldFRvdWNoZXMmYW1wOyZhbXA7YS5VKCkudGFyZ2V0VG91Y2hlcy5sZW5ndGgmYW1wOyZhbXA7KGM9YS5VKCkudGFyZ2V0VG91Y2hlc1swXSk7cmV0dXJuIG5ldyBQU19LKGMuY2xpZW50WCxjLmNsaWVudFkpfSxQU19JYz1mdW5jdGlvbihhKXsibnVtYmVyIj09dHlwZW9mIGEmYW1wOyZhbXA7KGE9YSsicHgiKTtyZXR1cm4gYX0sUFNfWD1mdW5jdGlvbihhKXt2YXIgYj1QU19SYztpZigibm9uZSIhPVBTX1coYSwiZGlzcGxheSIpKXJldHVybiBiKGEpO3ZhciBjPWEuc3R5bGUsZD1jLmRpc3BsYXksZT1jLnZpc2liaWxpdHksZj1jLnBvc2l0aW9uO2MudmlzaWJpbGl0eT0iaGlkZGVuIjtjLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Yy5kaXNwbGF5PSJpbmxpbmUiOwphPWIoYSk7Yy5kaXNwbGF5PWQ7Yy5wb3NpdGlvbj1mO2MudmlzaWJpbGl0eT1lO3JldHVybiBhfSxQU19SYz1mdW5jdGlvbihhKXt2YXIgYj1hLm9mZnNldFdpZHRoLGM9YS5vZmZzZXRIZWlnaHQsZD1QU191JmFtcDsmYW1wOyFiJmFtcDsmYW1wOyFjO3JldHVybih2b2lkIDA9PT1ifHxkKSZhbXA7JmFtcDthLmdldEJvdW5kaW5nQ2xpZW50UmVjdD8oYT1QU19LYyhhKSxuZXcgUFNfTChhLnJpZ2h0LWEubGVmdCxhLmJvdHRvbS1hLnRvcCkpOm5ldyBQU19MKGIsYyl9LFBTX1NjPWZ1bmN0aW9uKGEpe3ZhciBiPVBTX01jKGEpO2E9UFNfWChhKTtyZXR1cm4gbmV3IFBTX1QoYi54LGIueSxhLndpZHRoLGEuaGVpZ2h0KX0sUFNfVGM9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnN0eWxlOyJvcGFjaXR5ImluIGM/Yy5vcGFjaXR5PWI6Ik1vek9wYWNpdHkiaW4gYz9jLk1vek9wYWNpdHk9YjoiZmlsdGVyImluIGMmYW1wOyZhbXA7KGMuZmlsdGVyPSIiPT09Yj8iIjoiYWxwaGEob3BhY2l0eT0iKzEwMCpiKyIpIil9LFBTX1k9ZnVuY3Rpb24oYSxiKXthLnN0eWxlLmRpc3BsYXk9CmI/IiI6Im5vbmUifSxQU19VYz1mdW5jdGlvbihhLGIpe2lmKC9eXGQrcHg/JC8udGVzdChiKSlyZXR1cm4gcGFyc2VJbnQoYiwxMCk7dmFyIGM9YS5zdHlsZS5sZWZ0LGQ9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHlsZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQ7YS5zdHlsZS5sZWZ0PWI7dmFyIGU9YS5zdHlsZS5waXhlbExlZnQ7YS5zdHlsZS5sZWZ0PWM7YS5ydW50aW1lU3R5bGUubGVmdD1kO3JldHVybiBlfSxQU19WYz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlW2JdOm51bGw7cmV0dXJuIGM/UFNfVWMoYSxjKTowfSxQU19XYz1mdW5jdGlvbihhLGIpe2lmKFBTX3Mpe3ZhciBjPVBTX1ZjKGEsYisiTGVmdCIpLGQ9UFNfVmMoYSxiKyJSaWdodCIpLGU9UFNfVmMoYSxiKyJUb3AiKSxmPVBTX1ZjKGEsYisiQm90dG9tIik7cmV0dXJuIG5ldyBQU19TKGUsZCxmLGMpfWM9UFNfVihhLGIrIkxlZnQiKTtkPVBTX1YoYSxiKwoiUmlnaHQiKTtlPVBTX1YoYSxiKyJUb3AiKTtmPVBTX1YoYSxiKyJCb3R0b20iKTtyZXR1cm4gbmV3IFBTX1MocGFyc2VGbG9hdChlKSxwYXJzZUZsb2F0KGQpLHBhcnNlRmxvYXQoZikscGFyc2VGbG9hdChjKSl9LFBTX1hjPXt0aGluOjIsbWVkaXVtOjQsdGhpY2s6Nn0sUFNfWWM9ZnVuY3Rpb24oYSxiKXtpZigibm9uZSI9PShhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZVtiKyJTdHlsZSJdOm51bGwpKXJldHVybiAwO3ZhciBjPWEuY3VycmVudFN0eWxlP2EuY3VycmVudFN0eWxlW2IrIldpZHRoIl06bnVsbDtyZXR1cm4gYyBpbiBQU19YYz9QU19YY1tjXTpQU19VYyhhLGMpfTtQU19zJmFtcDsmYW1wO1BTX3YoMTIpO3ZhciBQU19aYz0vbWF0cml4XChbMC05XC5cLV0rLCBbMC05XC5cLV0rLCBbMC05XC5cLV0rLCBbMC05XC5cLV0rLCAoWzAtOVwuXC1dKylwP3g/LCAoWzAtOVwuXC1dKylwP3g/XCkvO3ZhciBQU19fYz1mdW5jdGlvbihhKXtyZXR1cm4oYT1hLmV4ZWMoUFNfbykpP2FbMV06IiJ9LFBTXzBjPWZ1bmN0aW9uKCl7aWYoUFNfSmIpcmV0dXJuIFBTX19jKC9GaXJlZm94XC8oWzAtOS5dKykvKTtpZihQU19zfHxQU19yKXJldHVybiBQU18yYTtpZihQU19OYilyZXR1cm4gUFNfX2MoL0Nocm9tZVwvKFswLTkuXSspLyk7aWYoUFNfT2ImYW1wOyZhbXA7IShQU19ZYSgpfHxQU19wKCJpUGFkIil8fFBTX3AoImlQb2QiKSkpcmV0dXJuIFBTX19jKC9WZXJzaW9uXC8oWzAtOS5dKykvKTtpZihQU19LYnx8UFNfTGIpe3ZhciBhO2lmKGE9L1ZlcnNpb25cLyhcUyspLipNb2JpbGVcLyhcUyspLy5leGVjKFBTX28pKXJldHVybiBhWzFdKyIuIithWzJdfWVsc2UgaWYoUFNfTWIpcmV0dXJuKGE9UFNfX2MoL0FuZHJvaWRccysoWzAtOS5dKykvKSk/YTpQU19fYygvVmVyc2lvblwvKFswLTkuXSspLyk7cmV0dXJuIiJ9KCk7dmFyIFBTXzFjPVBTX0FiKGZ1bmN0aW9uKCl7cmV0dXJuIVBTX3N8fDAmbHQ7PVBTX3lhKFBTXzBjLDkpfSksUFNfMmM9UFNfQWIoZnVuY3Rpb24oKXtyZXR1cm4gUFNfdXx8UFNfdCZhbXA7JmFtcDswJmx0Oz1QU195YShQU18wYywxMCl8fFBTX3MmYW1wOyZhbXA7MCZsdDs9UFNfeWEoUFNfMGMsMTApfSksUFNfM2M9UFNfQWIoZnVuY3Rpb24oKXtyZXR1cm4gUFNfcyZhbXA7JmFtcDs5PT1QU180YT8iLW1zLXRyYW5zZm9ybSI6InRyYW5zZm9ybSJ9KTt2YXIgUFNfWj1mdW5jdGlvbigpe1BTX2kuY2FsbCh0aGlzKTt0aGlzLkM9bmV3IFBTX2ZiKHRoaXMpO3RoaXMuWD10aGlzO3RoaXMuRD1udWxsfTtQU19nKFBTX1osUFNfaSk7UFNfWi5wcm90b3R5cGVbUFNfYWJdPSEwO1BTXz1QU19aLnByb3RvdHlwZTtQU18ua2E9ZnVuY3Rpb24oYSl7dGhpcy5EPWF9O1BTXy5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe1BTX21iKHRoaXMsYSxiLGMsZCl9O1BTXy5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGEsYixjLGQpe1BTX3ZiKHRoaXMsYSxiLGMsZCl9OwpQU18uZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihhKXtQU19vYih0aGlzKTt2YXIgYixjPXRoaXMuRDtpZihjKXtiPVtdO2Zvcih2YXIgZD0xO2M7Yz1jLkQpYi5wdXNoKGMpLFBTX2soMUUzJmd0OysrZCwiaW5maW5pdGUgbG9vcCIpfWM9dGhpcy5YO2Q9YS50eXBlfHxhO2lmKFBTX2MoYSkpYT1uZXcgUFNfeChhLGMpO2Vsc2UgaWYoYSBpbnN0YW5jZW9mIFBTX3gpYS50YXJnZXQ9YS50YXJnZXR8fGM7ZWxzZXt2YXIgZT1hO2E9bmV3IFBTX3goZCxjKTtQU19SYShhLGUpfXZhciBlPSEwLGY7aWYoYilmb3IodmFyIGc9Yi5sZW5ndGgtMTswJmx0Oz1nO2ctLSlmPWEuYT1iW2ddLGU9UFNfNGMoZixkLCEwLGEpJmFtcDsmYW1wO2U7Zj1hLmE9YztlPVBTXzRjKGYsZCwhMCxhKSZhbXA7JmFtcDtlO2U9UFNfNGMoZixkLCExLGEpJmFtcDsmYW1wO2U7aWYoYilmb3IoZz0wO2cmbHQ7Yi5sZW5ndGg7ZysrKWY9YS5hPWJbZ10sZT1QU180YyhmLGQsITEsYSkmYW1wOyZhbXA7ZTtyZXR1cm4gZX07ClBTXy5tPWZ1bmN0aW9uKCl7UFNfWi5BLm0uY2FsbCh0aGlzKTtpZih0aGlzLkMpe3ZhciBhPXRoaXMuQyxiPTAsYztmb3IoYyBpbiBhLmEpe2Zvcih2YXIgZD1hLmFbY10sZT0wO2UmbHQ7ZC5sZW5ndGg7ZSsrKSsrYixQU19lYihkW2VdKTtkZWxldGUgYS5hW2NdO2EuYi0tfX10aGlzLkQ9bnVsbH07UFNfLmphPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLkMuYWRkKFN0cmluZyhhKSxiLCEwLGMsZCl9O3ZhciBQU180Yz1mdW5jdGlvbihhLGIsYyxkKXtiPWEuQy5hW1N0cmluZyhiKV07aWYoIWIpcmV0dXJuITA7Yj1iLmNvbmNhdCgpO2Zvcih2YXIgZT0hMCxmPTA7ZiZsdDtiLmxlbmd0aDsrK2Ype3ZhciBnPWJbZl07aWYoZyZhbXA7JmFtcDshZy5QJmFtcDsmYW1wO2cuY2E9PWMpe3ZhciBoPWcubGlzdGVuZXIsbT1nLmVhfHxnLnNyYztnLmJhJmFtcDsmYW1wO1BTX2hiKGEuQyxnKTtlPSExIT09aC5jYWxsKG0sZCkmYW1wOyZhbXA7ZX19cmV0dXJuIGUmYW1wOyZhbXA7MCE9ZC55YX0sUFNfb2I9ZnVuY3Rpb24oYSl7UFNfayhhLkMsIkV2ZW50IHRhcmdldCBpcyBub3QgaW5pdGlhbGl6ZWQuIERpZCB5b3UgY2FsbCB0aGUgc3VwZXJjbGFzcyAoZ29vZy5ldmVudHMuRXZlbnRUYXJnZXQpIGNvbnN0cnVjdG9yPyIpfTt2YXIgUFNfXz1mdW5jdGlvbihhLGIpe1BTX1ouY2FsbCh0aGlzKTt0aGlzLmY9YXx8MTt0aGlzLmI9Ynx8UFNfYTt0aGlzLmc9UFNfZSh0aGlzLmksdGhpcyk7dGhpcy5oPVBTX2YoKX07UFNfZyhQU19fLFBTX1opO1BTX18ucHJvdG90eXBlLmM9ITE7UFNfXy5wcm90b3R5cGUuYT1udWxsO3ZhciBQU183Yz1mdW5jdGlvbihhLGIpe2EuZj1iO2EuYSZhbXA7JmFtcDthLmM/KFBTXzVjKGEpLFBTXzZjKGEpKTphLmEmYW1wOyZhbXA7UFNfNWMoYSl9O1BTX18ucHJvdG90eXBlLmk9ZnVuY3Rpb24oKXtpZih0aGlzLmMpe3ZhciBhPVBTX2YoKS10aGlzLmg7MCZsdDthJmFtcDsmYW1wO2EmbHQ7LjgqdGhpcy5mP3RoaXMuYT10aGlzLmIuc2V0VGltZW91dCh0aGlzLmcsdGhpcy5mLWEpOih0aGlzLmEmYW1wOyZhbXA7KHRoaXMuYi5jbGVhclRpbWVvdXQodGhpcy5hKSx0aGlzLmE9bnVsbCksdGhpcy5kaXNwYXRjaEV2ZW50KCJ0aWNrIiksdGhpcy5jJmFtcDsmYW1wOyh0aGlzLmE9dGhpcy5iLnNldFRpbWVvdXQodGhpcy5nLHRoaXMuZiksdGhpcy5oPVBTX2YoKSkpfX07CnZhciBQU182Yz1mdW5jdGlvbihhKXthLmM9ITA7YS5hfHwoYS5hPWEuYi5zZXRUaW1lb3V0KGEuZyxhLmYpLGEuaD1QU19mKCkpfSxQU181Yz1mdW5jdGlvbihhKXthLmM9ITE7YS5hJmFtcDsmYW1wOyhhLmIuY2xlYXJUaW1lb3V0KGEuYSksYS5hPW51bGwpfTtQU19fLnByb3RvdHlwZS5tPWZ1bmN0aW9uKCl7UFNfXy5BLm0uY2FsbCh0aGlzKTtQU181Yyh0aGlzKTtkZWxldGUgdGhpcy5ifTt2YXIgUFNfMD1mdW5jdGlvbihhLGIsYyl7aWYoUFNfZGEoYSkpYyZhbXA7JmFtcDsoYT1QU19lKGEsYykpO2Vsc2UgaWYoYSZhbXA7JmFtcDsiZnVuY3Rpb24iPT10eXBlb2YgYS5oYW5kbGVFdmVudClhPVBTX2UoYS5oYW5kbGVFdmVudCxhKTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGxpc3RlbmVyIGFyZ3VtZW50Iik7cmV0dXJuIDIxNDc0ODM2NDcmbHQ7Yj8tMTpQU19hLnNldFRpbWVvdXQoYSxifHwwKX07dmFyIFBTXzhjPWZ1bmN0aW9uKCl7UFNfWi5jYWxsKHRoaXMpO3RoaXMuYT0wfTtQU19nKFBTXzhjLFBTX1opO3ZhciBQU185Yz1mdW5jdGlvbihhLGIpe1BTX2IoYil8fChiPVtiXSk7UFNfaygwJmx0O2IubGVuZ3RoLCJBdCBsZWFzdCBvbmUgQ3NzM1Byb3BlcnR5IHNob3VsZCBiZSBzcGVjaWZpZWQuIik7dmFyIGM9UFNfS2EoYixmdW5jdGlvbihhKXtpZihQU19jKGEpKXJldHVybiBhO1BTX0VhKGEsIkV4cGVjdGVkIGNzczMgcHJvcGVydHkgdG8gYmUgYW4gb2JqZWN0LiIpO3ZhciBiPWEud2ErIiAiK2EuZHVyYXRpb24rInMgIithLnRpbWluZysiICIrYS5vYSsicyI7UFNfayhhLndhJmFtcDsmYW1wO1BTX2QoYS5kdXJhdGlvbikmYW1wOyZhbXA7YS50aW1pbmcmYW1wOyZhbXA7UFNfZChhLm9hKSwiVW5leHBlY3RlZCBjc3MzIHByb3BlcnR5IHZhbHVlOiAlcyIsYik7cmV0dXJuIGJ9KTtQU19VKGEsInRyYW5zaXRpb24iLGMuam9pbigiLCIpKX0sUFNfJGM9UFNfQWIoZnVuY3Rpb24oKXtpZihQU19zKXJldHVybiBQU192KCIxMC4wIik7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksYj1QU19GYygpLGM9e3RyYW5zaXRpb246Im9wYWNpdHkgMXMgbGluZWFyIn07CmImYW1wOyZhbXA7KGNbYisiLXRyYW5zaXRpb24iXT0ib3BhY2l0eSAxcyBsaW5lYXIiKTtiPVBTX2NjKCJkaXYiLHtzdHlsZTpjfSk7YS5pbm5lckhUTUw9UFNfSShiKTthPWEuZmlyc3RDaGlsZDtQU19rKGEubm9kZVR5cGU9PU5vZGUuRUxFTUVOVF9OT0RFKTtiPWEuc3R5bGVbUFNfemEoInRyYW5zaXRpb24iKV07cmV0dXJuIiIhPSgidW5kZWZpbmVkIiE9PXR5cGVvZiBiP2I6YS5zdHlsZVtQU19HYyhhLCJ0cmFuc2l0aW9uIildfHwiIil9KTt2YXIgUFNfMT1mdW5jdGlvbihhLGIsYyxkLGUpe1BTXzhjLmNhbGwodGhpcyk7dGhpcy5iPWE7dGhpcy5oPWI7dGhpcy5pPWM7dGhpcy5mPWQ7dGhpcy5zPVBTX2IoZSk/ZTpbZV19O1BTX2coUFNfMSxQU184Yyk7dmFyIFBTX2FkPWZ1bmN0aW9uKGEpezEhPWEuYSZhbXA7JmFtcDsoYS5kaXNwYXRjaEV2ZW50KCJiZWdpbiIpLGEuZGlzcGF0Y2hFdmVudCgicGxheSIpLFBTX2YoKSxhLmE9MSxQU18kYygpPyhQU19VKGEuYixhLmkpLGEuZz1QU18wKGEubCx2b2lkIDAsYSkpOmEuYyghMSkpfTtQU18xLnByb3RvdHlwZS5sPWZ1bmN0aW9uKCl7UFNfWCh0aGlzLmIpO1BTXzljKHRoaXMuYix0aGlzLnMpO1BTX1UodGhpcy5iLHRoaXMuZik7dGhpcy5nPVBTXzAoUFNfZSh0aGlzLmMsdGhpcywhMSksMUUzKnRoaXMuaCl9OwpQU18xLnByb3RvdHlwZS5jPWZ1bmN0aW9uKGEpe1BTX1UodGhpcy5iLCJ0cmFuc2l0aW9uIiwiIik7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5nKTtQU19VKHRoaXMuYix0aGlzLmYpO1BTX2YoKTt0aGlzLmE9MDthP3RoaXMuZGlzcGF0Y2hFdmVudCgic3RvcCIpOnRoaXMuZGlzcGF0Y2hFdmVudCgiZmluaXNoIik7dGhpcy5kaXNwYXRjaEV2ZW50KCJlbmQiKX07UFNfMS5wcm90b3R5cGUubT1mdW5jdGlvbigpezE9PXRoaXMuYSZhbXA7JmFtcDt0aGlzLmMoITApO1BTXzEuQS5tLmNhbGwodGhpcyl9O3ZhciBQU19iZD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gbmV3IFBTXzEoYSwuMjE4LHtvcGFjaXR5OmN9LHtvcGFjaXR5OmR9LHt3YToib3BhY2l0eSIsZHVyYXRpb246LjIxOCx0aW1pbmc6YixvYTowfSl9O3ZhciBQU19jZD17VWE6ITB9LFBTX2RkPXtWYTohMH0sUFNfZWQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRG8gbm90IGluc3RhbnRpYXRlIGRpcmVjdGx5Iik7fTtQU19lZC5wcm90b3R5cGUuYT1udWxsO1BTX2VkLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLld9O3ZhciBQU19mZD1mdW5jdGlvbihhKXtpZighUFNfZWEoYSkpcmV0dXJuIFN0cmluZyhhKTtpZihhIGluc3RhbmNlb2YgUFNfZWQpe2lmKGEuUz09PVBTX2NkKXJldHVybiBQU19EYShhLlcpO2lmKGEuUz09PVBTX2RkKXJldHVybiBQU19qKGEuVyl9UFNfbCgiU295IHRlbXBsYXRlIG91dHB1dCBpcyB1bnNhZmUgZm9yIHVzZSBhcyBIVE1MOiAiK2EpO3JldHVybiJ6U295eiJ9LFBTX2dkPS9eJmx0Oyhib2R5fGNhcHRpb258Y29sfGNvbGdyb3VwfGhlYWR8aHRtbHx0cnx0ZHx0Ym9keXx0aGVhZHx0Zm9vdCkmZ3Q7L2ksUFNfaGQ9e307dmFyIFBTXzI9ZnVuY3Rpb24oKXt9O1BTXzIuYj1mdW5jdGlvbigpe3JldHVybiBQU18yLmE/UFNfMi5hOlBTXzIuYT1uZXcgUFNfMn07UFNfMi5wcm90b3R5cGUuYT0wO3ZhciBQU18zPWZ1bmN0aW9uKGEpe1BTX1ouY2FsbCh0aGlzKTt0aGlzLmY9YXx8UFNfTigpO3RoaXMudz1udWxsO3RoaXMuRj0hMTt0aGlzLmE9bnVsbDt0aGlzLmM9dm9pZCAwO3RoaXMuaT10aGlzLmw9dGhpcy5nPW51bGx9O1BTX2coUFNfMyxQU19aKTtQU18zLnByb3RvdHlwZS5JPVBTXzIuYigpO1BTXzMucHJvdG90eXBlLkI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hfTt2YXIgUFNfaWQ9ZnVuY3Rpb24oYSl7YS5jfHwoYS5jPW5ldyBQU19RKGEpKTtyZXR1cm4gYS5jfTtQU18zLnByb3RvdHlwZS5rYT1mdW5jdGlvbihhKXtpZih0aGlzLmcmYW1wOyZhbXA7dGhpcy5nIT1hKXRocm93IEVycm9yKCJNZXRob2Qgbm90IHN1cHBvcnRlZCIpO1BTXzMuQS5rYS5jYWxsKHRoaXMsYSl9O1BTXzMucHJvdG90eXBlLnJhPWZ1bmN0aW9uKCl7dGhpcy5hPXRoaXMuZi5hLmNyZWF0ZUVsZW1lbnQoIkRJViIpfTsKUFNfMy5wcm90b3R5cGUuZGE9ZnVuY3Rpb24oKXt0aGlzLkY9ITA7UFNfamQodGhpcyxmdW5jdGlvbihhKXshYS5GJmFtcDsmYW1wO2EuQigpJmFtcDsmYW1wO2EuZGEoKX0pfTt2YXIgUFNfa2Q9ZnVuY3Rpb24oYSl7UFNfamQoYSxmdW5jdGlvbihhKXthLkYmYW1wOyZhbXA7UFNfa2QoYSl9KTthLmMmYW1wOyZhbXA7UFNfQWMoYS5jKTthLkY9ITF9O1BTXzMucHJvdG90eXBlLm09ZnVuY3Rpb24oKXt0aGlzLkYmYW1wOyZhbXA7UFNfa2QodGhpcyk7dGhpcy5jJmFtcDsmYW1wOyh0aGlzLmMuTCgpLGRlbGV0ZSB0aGlzLmMpO1BTX2pkKHRoaXMsZnVuY3Rpb24oYSl7YS5MKCl9KTt0aGlzLmEmYW1wOyZhbXA7UFNfcmModGhpcy5hKTt0aGlzLmc9dGhpcy5hPXRoaXMuaT10aGlzLmw9bnVsbDtQU18zLkEubS5jYWxsKHRoaXMpfTtQU18zLnByb3RvdHlwZS5wYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF9O3ZhciBQU19qZD1mdW5jdGlvbihhLGIpe2EubCZhbXA7JmFtcDtQU19uKGEubCxiLHZvaWQgMCl9OwpQU18zLnByb3RvdHlwZS5yZW1vdmVDaGlsZD1mdW5jdGlvbihhLGIpe2lmKGEpe3ZhciBjPVBTX2MoYSk/YTphLnd8fChhLnc9IjoiKyhhLkkuYSsrKS50b1N0cmluZygzNikpLGQ7dGhpcy5pJmFtcDsmYW1wO2M/KGQ9dGhpcy5pLGQ9KGMgaW4gZD9kW2NdOnZvaWQgMCl8fG51bGwpOmQ9bnVsbDthPWQ7aWYoYyZhbXA7JmFtcDthKXtkPXRoaXMuaTtjIGluIGQmYW1wOyZhbXA7ZGVsZXRlIGRbY107UFNfTWEodGhpcy5sLGEpO2ImYW1wOyZhbXA7KFBTX2tkKGEpLGEuYSZhbXA7JmFtcDtQU19yYyhhLmEpKTtjPWE7aWYobnVsbD09Yyl0aHJvdyBFcnJvcigiVW5hYmxlIHRvIHNldCBwYXJlbnQgY29tcG9uZW50Iik7Yy5nPW51bGw7UFNfMy5BLmthLmNhbGwoYyxudWxsKX19aWYoIWEpdGhyb3cgRXJyb3IoIkNoaWxkIGlzIG5vdCBpbiBwYXJlbnQgY29tcG9uZW50Iik7cmV0dXJuIGF9O3ZhciBQU19sZD1mdW5jdGlvbihhLGIpe3JldHVybihiJmFtcDs0JmFtcDsmYW1wOyJydGwiPT1QU19XKGEsImRpcmVjdGlvbiIpP2JeMjpiKSZhbXA7LTV9O3ZhciBQU180PWZ1bmN0aW9uKGEsYil7UFNfWi5jYWxsKHRoaXMpO3RoaXMuYT1uZXcgUFNfUSh0aGlzKTt2YXIgYz1hfHxudWxsO1BTX21kKHRoaXMpO3RoaXMudj1jO2ImYW1wOyZhbXA7KHRoaXMuUj1iKX07UFNfZyhQU180LFBTX1opO1BTXz1QU180LnByb3RvdHlwZTtQU18udj1udWxsO1BTXy5tYT1udWxsO1BTXy5HPSExO1BTXy5pYT0tMTtQU18uUj0idG9nZ2xlX2Rpc3BsYXkiO1BTXy5CPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudn07dmFyIFBTX21kPWZ1bmN0aW9uKGEpe2lmKGEuRyl0aHJvdyBFcnJvcigiQ2FuIG5vdCBjaGFuZ2UgdGhpcyBzdGF0ZSBvZiB0aGUgcG9wdXAgd2hpbGUgc2hvd2luZy4iKTt9O1BTXzQucHJvdG90eXBlLmI9UFNfYmE7CnZhciBQU19uZD1mdW5jdGlvbihhLGIpe2EuRyZhbXA7JmFtcDthLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImJlZm9yZWhpZGUiLHRhcmdldDpifSkmYW1wOyZhbXA7KGEuYSZhbXA7JmFtcDtQU19BYyhhLmEpLGEuRz0hMSxQU19mKCksYS5jPyhQU191YihhLmMsImVuZCIsUFNfamEoYS5uYSxiKSwhMSxhKSxQU19hZChhLmMpKTphLm5hKGIpKX07UFNfPVBTXzQucHJvdG90eXBlO1BTXy5uYT1mdW5jdGlvbihhKXsidG9nZ2xlX2Rpc3BsYXkiPT10aGlzLlI/dGhpcy5MYSgpOiJtb3ZlX29mZnNjcmVlbiI9PXRoaXMuUiZhbXA7JmFtcDsodGhpcy52LnN0eWxlLnRvcD0iLTEwMDAwcHgiKTt0aGlzLmRpc3BhdGNoRXZlbnQoe3R5cGU6ImhpZGUiLHRhcmdldDphfSl9O1BTXy5MYT1mdW5jdGlvbigpe3RoaXMudi5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO1BTX1kodGhpcy52LCExKX07UFNfLnNhPWZ1bmN0aW9uKCl7dGhpcy5kaXNwYXRjaEV2ZW50KCJzaG93Iil9OwpQU18udmE9ZnVuY3Rpb24oYSl7YT1hLnRhcmdldDtQU190Yyh0aGlzLnYsYSl8fFBTX29kKHRoaXMsYSl8fDE1MCZndDtQU19mKCktdGhpcy5pYXx8UFNfbmQodGhpcyxhKX07UFNfLnVhPWZ1bmN0aW9uKGEpe3ZhciBiPVBTX00odGhpcy52KTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpe2lmKGE9Yi5hY3RpdmVFbGVtZW50LCFhfHxQU190Yyh0aGlzLnYsYSl8fCJCT0RZIj09YS50YWdOYW1lKXJldHVybn1lbHNlIGlmKGEudGFyZ2V0IT1iKXJldHVybjsxNTAmZ3Q7UFNfZigpLXRoaXMuaWF8fFBTX25kKHRoaXMpfTt2YXIgUFNfb2Q9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUFNfTGEoYS5tYXx8W10sZnVuY3Rpb24oYSl7cmV0dXJuIGI9PT1hfHxQU190YyhhLGIpfSl9OwpQU180LnByb3RvdHlwZS5tPWZ1bmN0aW9uKCl7UFNfNC5BLm0uY2FsbCh0aGlzKTt0aGlzLmEuTCgpO1BTX2xhKHRoaXMuZik7UFNfbGEodGhpcy5jKTtkZWxldGUgdGhpcy52O2RlbGV0ZSB0aGlzLmE7ZGVsZXRlIHRoaXMubWF9O3ZhciBQU19wZD1mdW5jdGlvbihhLGIpe3RoaXMuZz1ifHx2b2lkIDA7UFNfNC5jYWxsKHRoaXMsYSl9O1BTX2coUFNfcGQsUFNfNCk7UFNfcGQucHJvdG90eXBlLmI9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3ZhciBhPSF0aGlzLkcmYW1wOyZhbXA7Im1vdmVfb2Zmc2NyZWVuIiE9dGhpcy5SLGI9dGhpcy5CKCk7YSZhbXA7JmFtcDsoYi5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLFBTX1koYiwhMCkpO3RoaXMuZy5nKGIsNCx0aGlzLmgpO2EmYW1wOyZhbXA7UFNfWShiLCExKX19O3ZhciBQU19xZD1mdW5jdGlvbigpe307UFNfcWQucHJvdG90eXBlLmc9ZnVuY3Rpb24oKXt9O3ZhciBQU19yZD1mdW5jdGlvbihhLGIpe3RoaXMuYz1hO3RoaXMuaT0hIWI7dGhpcy5mPXswOnRoaXMuYysiLWFycm93cmlnaHQiLDE6dGhpcy5jKyItYXJyb3d1cCIsMjp0aGlzLmMrIi1hcnJvd2Rvd24iLDM6dGhpcy5jKyItYXJyb3dsZWZ0In19O1BTX2coUFNfcmQsUFNfcWQpO1BTX3JkLnByb3RvdHlwZS51PTIwO1BTX3JkLnByb3RvdHlwZS5oPS01OwpQU19yZC5wcm90b3R5cGUuZz1mdW5jdGlvbihhLGIsYyl7UFNfayh0aGlzLmosIk11c3QgY2FsbCBzZXRFbGVtZW50cyBmaXJzdC4iKTthPTI7Mj09YSZhbXA7JmFtcDsoYT0wKTtiPXRoaXMuYi5vZmZzZXRIZWlnaHQvMjtpZih0aGlzLmEpe3ZhciBkPVBTX3NkKDMsYSksZT10aGlzLmE7dmFyIGY9UFNfWChlKS5oZWlnaHQvMi1iLGc9UFNfbGQoZSxkKSxoO2lmKGg9UFNfTmMoZSkpZT1QU19TYyhlKSxlPW5ldyBQU19TKGUudG9wLGUubGVmdCtlLndpZHRoLGUudG9wK2UuaGVpZ2h0LGUubGVmdCksZS50b3AmbHQ7aC50b3AmYW1wOyZhbXA7IShnJmFtcDsxKT9mLT1oLnRvcC1lLnRvcDplLmJvdHRvbSZndDtoLmJvdHRvbSZhbXA7JmFtcDtnJmFtcDsxJmFtcDsmYW1wOyhmLT1lLmJvdHRvbS1oLmJvdHRvbSk7Zz1uZXcgUFNfSyh0aGlzLmgsZik7Zj0wOyJydGwiPT10aGlzLmEuZGlyJmFtcDsmYW1wOyhmPTMpO2g9dGhpcy5hO2U9UFNfc2QoZixhKTtmPXRoaXMuYjtQU19rKGYpO3ZhciBtLGs9Zi5vZmZzZXRQYXJlbnQ7aWYoayl7dmFyIGw9IkhUTUwiPT1rLnRhZ05hbWV8fCJCT0RZIj09CmsudGFnTmFtZTtsJmFtcDsmYW1wOyJzdGF0aWMiPT1QU19XKGssInBvc2l0aW9uIil8fChtPVBTX01jKGspLGx8fChsPShsPSJydGwiPT1QU19XKGssImRpcmVjdGlvbiIpKSZhbXA7JmFtcDtQU190Py1rLnNjcm9sbExlZnQ6IWx8fFBTX3MmYW1wOyZhbXA7UFNfdigiOCIpfHwidmlzaWJsZSI9PVBTX1coaywib3ZlcmZsb3dYIik/ay5zY3JvbGxMZWZ0Omsuc2Nyb2xsV2lkdGgtay5jbGllbnRXaWR0aC1rLnNjcm9sbExlZnQsbT1QU19mYyhtLG5ldyBQU19LKGwsay5zY3JvbGxUb3ApKSkpfW09bXx8bmV3IFBTX0s7az1QU19TYyhoKTtpZihsPVBTX05jKGgpKXt2YXIgbj1uZXcgUFNfVChsLmxlZnQsbC50b3AsbC5yaWdodC1sLmxlZnQsbC5ib3R0b20tbC50b3ApLGw9TWF0aC5tYXgoay5sZWZ0LG4ubGVmdCkscD1NYXRoLm1pbihrLmxlZnQray53aWR0aCxuLmxlZnQrbi53aWR0aCk7aWYobCZsdDs9cCl7dmFyIHE9TWF0aC5tYXgoay50b3Asbi50b3ApLG49TWF0aC5taW4oay50b3Aray5oZWlnaHQsbi50b3Arbi5oZWlnaHQpOwpxJmx0Oz1uJmFtcDsmYW1wOyhrLmxlZnQ9bCxrLnRvcD1xLGsud2lkdGg9cC1sLGsuaGVpZ2h0PW4tcSl9fWw9UFNfTihoKTtxPVBTX04oZik7aWYobC5hIT1xLmEpe3ZhciBwPWwuYS5ib2R5LHE9UFNfbmMocS5hKSxuPW5ldyBQU19LKDAsMCkscj1QU19wYyhQU19NKHApKSx0PXA7ZG97dmFyIHU9cj09cT9QU19NYyh0KTpQU19RYyhQU19rKHQpKTtuLngrPXUueDtuLnkrPXUueX13aGlsZShyJmFtcDsmYW1wO3IhPXEmYW1wOyZhbXA7ciE9ci5wYXJlbnQmYW1wOyZhbXA7KHQ9ci5mcmFtZUVsZW1lbnQpJmFtcDsmYW1wOyhyPXIucGFyZW50KSk7cD1QU19mYyhuLFBTX01jKHApKTshUFNfc3x8UFNfdyg5KXx8UFNfd2MobCl8fChwPVBTX2ZjKHAsUFNfb2MobC5hKSkpO2subGVmdCs9cC54O2sudG9wKz1wLnl9aD1QU19sZChoLGUpO2U9bmV3IFBTX0soaCZhbXA7Mj9rLmxlZnQray53aWR0aDprLmxlZnQsaCZhbXA7MT9rLnRvcCtrLmhlaWdodDprLnRvcCk7ZT1QU19mYyhlLG0pO2cmYW1wOyZhbXA7KGUueCs9KGgmYW1wOzI/LTE6MSkqZy54LGUueSs9KGgmYW1wOzE/LTE6MSkqZy55KTtoPWUuY2xvbmUoKTsKZz1QU19sZChmLGQpO2Q9UFNfWChmKTtlPWQuY2xvbmUoKTtoPWguY2xvbmUoKTtlPWUuY2xvbmUoKTtpZihjfHwwIT1nKWcmYW1wOzI/aC54LT1lLndpZHRoKyhjP2MucmlnaHQ6MCk6YyZhbXA7JmFtcDsoaC54Kz1jLmxlZnQpLGcmYW1wOzE/aC55LT1lLmhlaWdodCsoYz9jLmJvdHRvbTowKTpjJmFtcDsmYW1wOyhoLnkrPWMudG9wKTtjPW5ldyBQU19UKDAsMCwwLDApO2MubGVmdD1oLng7Yy50b3A9aC55O2Mud2lkdGg9ZS53aWR0aDtjLmhlaWdodD1lLmhlaWdodDtQU19KYyhmLG5ldyBQU19LKGMubGVmdCxjLnRvcCkpO2U9bmV3IFBTX0woYy53aWR0aCxjLmhlaWdodCk7ZD09ZXx8ZCZhbXA7JmFtcDtlJmFtcDsmYW1wO2Qud2lkdGg9PWUud2lkdGgmYW1wOyZhbXA7ZC5oZWlnaHQ9PWUuaGVpZ2h0fHwoYz1lLGQ9UFNfTShmKSxnPVBTX3djKFBTX04oZCkpLCFQU19zfHxQU192KCIxMCIpfHxnJmFtcDsmYW1wO1BTX3YoIjgiKT8oZj1mLnN0eWxlLFBTX3Q/Zi5Nb3pCb3hTaXppbmc9ImJvcmRlci1ib3giOlBTX3U/Zi5XZWJraXRCb3hTaXppbmc9ImJvcmRlci1ib3giOmYuYm94U2l6aW5nPQoiYm9yZGVyLWJveCIsZi53aWR0aD1NYXRoLm1heChjLndpZHRoLDApKyJweCIsZi5oZWlnaHQ9TWF0aC5tYXgoYy5oZWlnaHQsMCkrInB4Iik6KGQ9Zi5zdHlsZSxnPyhnPVBTX1djKGYsInBhZGRpbmciKSxQU19zJmFtcDsmYW1wOyFQU193KDkpPyhoPVBTX1ljKGYsImJvcmRlckxlZnQiKSxlPVBTX1ljKGYsImJvcmRlclJpZ2h0IiksbT1QU19ZYyhmLCJib3JkZXJUb3AiKSxmPVBTX1ljKGYsImJvcmRlckJvdHRvbSIpLGY9bmV3IFBTX1MobSxlLGYsaCkpOihoPVBTX1YoZiwiYm9yZGVyTGVmdFdpZHRoIiksZT1QU19WKGYsImJvcmRlclJpZ2h0V2lkdGgiKSxtPVBTX1YoZiwiYm9yZGVyVG9wV2lkdGgiKSxmPVBTX1YoZiwiYm9yZGVyQm90dG9tV2lkdGgiKSxmPW5ldyBQU19TKHBhcnNlRmxvYXQobSkscGFyc2VGbG9hdChlKSxwYXJzZUZsb2F0KGYpLHBhcnNlRmxvYXQoaCkpKSxkLnBpeGVsV2lkdGg9Yy53aWR0aC1mLmxlZnQtZy5sZWZ0LWcucmlnaHQtZi5yaWdodCxkLnBpeGVsSGVpZ2h0PQpjLmhlaWdodC1mLnRvcC1nLnRvcC1nLmJvdHRvbS1mLmJvdHRvbSk6KGQucGl4ZWxXaWR0aD1jLndpZHRoLGQucGl4ZWxIZWlnaHQ9Yy5oZWlnaHQpKSk7dGhpcy5pJmFtcDsmYW1wOyhjPXBhcnNlRmxvYXQodGhpcy5iLnN0eWxlLmxlZnQpLGY9cGFyc2VGbG9hdCh0aGlzLmIuc3R5bGUudG9wKSxQU19rKCFpc05hTihjKSZhbXA7JmFtcDshaXNOYU4oZiksIkNvdWxkIG5vdCBwYXJzZSBwb3NpdGlvbi4iKSxpc0Zpbml0ZShjKSZhbXA7JmFtcDswPT1jJTEmYW1wOyZhbXA7aXNGaW5pdGUoZikmYW1wOyZhbXA7MD09ZiUxfHxQU19KYyh0aGlzLmIsTWF0aC5yb3VuZChjKSxNYXRoLnJvdW5kKGYpKSl9UFNfdGQodGhpcyxhLGIpfTsKdmFyIFBTX3RkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmo7UFNfTmEoYS5mLGZ1bmN0aW9uKGEpe1BTX0MoZCxhLCExKX0sYSk7UFNfQihkLGEuZlszXSk7ZC5zdHlsZS50b3A9ZC5zdHlsZS5sZWZ0PWQuc3R5bGUucmlnaHQ9ZC5zdHlsZS5ib3R0b209IiI7YS5hPyhiPVBTX1BjKGEuYSxhLmIpLGM9UFNfdWQoYS5hKSxhPVBTX3ZkKGIueStjLnksYS5iLm9mZnNldEhlaWdodC0xNSksZC5zdHlsZS50b3A9YSsicHgiKTpkLnN0eWxlWzA9PWI/InRvcCI6ImJvdHRvbSJdPWMrInB4In0sUFNfdmQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gMTUmZ3Q7Yj8xNTpNYXRoLm1pbihNYXRoLm1heChhLDE1KSxiKX0sUFNfc2Q9ZnVuY3Rpb24oYSxiKXtzd2l0Y2goYSl7Y2FzZSAyOnJldHVybiAwPT1iPzE6MztjYXNlIDE6cmV0dXJuIDA9PWI/MDoyO2Nhc2UgMDpyZXR1cm4gMD09Yj82Ojc7ZGVmYXVsdDpyZXR1cm4gMD09Yj80OjV9fSxQU191ZD1mdW5jdGlvbihhKXt2YXIgYj0wLGM9MDthPVBTX1goYSk7CmI9YS53aWR0aDtjPWEuaGVpZ2h0LzI7cmV0dXJuIG5ldyBQU19LKGIsYyl9O1BTX3MmYW1wOyZhbXA7UFNfdig4KTt2YXIgUFNfNT1mdW5jdGlvbigpe1BTX2VkLmNhbGwodGhpcyl9O1BTX2coUFNfNSxQU19lZCk7UFNfNS5wcm90b3R5cGUuUz1QU19jZDt2YXIgUFNfd2Q9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXt0aGlzLlc9YX1iLnByb3RvdHlwZT1hLnByb3RvdHlwZTtyZXR1cm4gZnVuY3Rpb24oYSxkKXt2YXIgZT1uZXcgYihTdHJpbmcoYSkpO3ZvaWQgMCE9PWQmYW1wOyZhbXA7KGUuYT1kKTtyZXR1cm4gZX19KFBTXzUpOyhmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3RoaXMuVz1hfWIucHJvdG90eXBlPWEucHJvdG90eXBlO3JldHVybiBmdW5jdGlvbihhLGQpe3ZhciBlPVN0cmluZyhhKTtpZighZSlyZXR1cm4iIjtlPW5ldyBiKGUpO3ZvaWQgMCE9PWQmYW1wOyZhbXA7KGUuYT1kKTtyZXR1cm4gZX19KShQU181KTsKdmFyIFBTX0JkPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hJmFtcDsmYW1wO2EuUz09PVBTX2NkPyhQU19rKGEuY29uc3RydWN0b3I9PT1QU181KSxhPVN0cmluZyhhLlcpLnJlcGxhY2UoUFNfeGQsIiIpLnJlcGxhY2UoUFNfeWQsIiZhbXA7bHQ7IiksU3RyaW5nKGEpLnJlcGxhY2UoUFNfemQsUFNfQWQpKTpQU19qKFN0cmluZyhhKSl9LFBTX0NkPXsiXHgwMCI6IiZhbXA7IzA7IiwiXHQiOiImYW1wOyM5OyIsIlxuIjoiJmFtcDsjMTA7IiwiXHgwQiI6IiZhbXA7IzExOyIsIlxmIjoiJmFtcDsjMTI7IiwiXHIiOiImYW1wOyMxMzsiLCIgIjoiJmFtcDsjMzI7IiwnIic6IiZhbXA7cXVvdDsiLCImYW1wOyI6IiZhbXA7YW1wOyIsIiciOiImYW1wOyMzOTsiLCItIjoiJmFtcDsjNDU7IiwiLyI6IiZhbXA7IzQ3OyIsIiZsdDsiOiImYW1wO2x0OyIsIj0iOiImYW1wOyM2MTsiLCImZ3Q7IjoiJmFtcDtndDsiLCJgIjoiJmFtcDsjOTY7IiwiXHUwMDg1IjoiJmFtcDsjMTMzOyIsIlx1MDBhMCI6IiZhbXA7IzE2MDsiLCJcdTIwMjgiOiImYW1wOyM4MjMyOyIsIlx1MjAyOSI6IiZhbXA7IzgyMzM7In0sUFNfQWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIFBTX0NkW2FdfSxQU196ZD0KL1tceDAwXHgyMlx4MjdceDNjXHgzZV0vZyxQU194ZD0vJmx0Oyg/OiF8XC8/KFthLXpBLVpdW2EtekEtWjAtOTpcLV0qKSkoPzpbXiZndDsnIl18IlteIl0qInwnW14nXSonKSomZ3Q7L2csUFNfeWQ9LyZsdDsvZzt2YXIgUFNfRGQ9ZnVuY3Rpb24oYSl7dmFyIGI9JyZsdDtkaXYgY2xhc3M9Impmay1idWJibGUiIHJvbGU9ImFsZXJ0ZGlhbG9nIicrKGEudWlkPycgYXJpYS1kZXNjcmliZWRieT0iJytQU19CZChhLnVpZCkrJyInOiIiKSsnJmd0OyZsdDtkaXYgY2xhc3M9Impmay1idWJibGUtY29udGVudC1pZCInKyhhLnVpZD8nIGlkPSInK1BTX0JkKGEudWlkKSsnIic6IiIpKyImZ3Q7Jmx0Oy9kaXYmZ3Q7IjthLlBhJmFtcDsmYW1wOyhhPWIsYj0iQ2xvc2UiLnJlcGxhY2UoUFNfemQsUFNfQWQpLGI9YSsoJyZsdDtkaXYgY2xhc3M9Impmay1idWJibGUtY2xvc2VidG4taWQgamZrLWJ1YmJsZS1jbG9zZWJ0biIgYXJpYS1sYWJlbD0iJytiKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9MCZndDsmbHQ7L2RpdiZndDsnKSk7cmV0dXJuIFBTX3dkKGIrJyZsdDtkaXYgY2xhc3M9Impmay1idWJibGUtYXJyb3ctaWQgamZrLWJ1YmJsZS1hcnJvdyImZ3Q7Jmx0O2RpdiBjbGFzcz0iamZrLWJ1YmJsZS1hcnJvd2ltcGxiZWZvcmUiJmd0OyZsdDsvZGl2Jmd0OyZsdDtkaXYgY2xhc3M9Impmay1idWJibGUtYXJyb3dpbXBsYWZ0ZXIiJmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OycpfTsKUFNfRGQuYT0iamZrLnRlbXBsYXRlcy5idWJibGUubWFpbiI7dmFyIFBTXzY9ZnVuY3Rpb24oYSl7UFNfMy5jYWxsKHRoaXMsYSk7dGhpcy5oPW5ldyBQU19yZCgiamZrLWJ1YmJsZSIsITApO3RoaXMuYj1uZXcgUFNfcGQ7dGhpcy5KPVtdfTtQU19nKFBTXzYsUFNfMyk7UFNfNi5wcm90b3R5cGUucz0hMDsKdmFyIFBTX0VkPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5wYSgpO2lmKGImYW1wOyZhbXA7YylpZihQU19jKGIpKXt2YXIgZDtkPVBTX0ooYixudWxsKTtjLmlubmVySFRNTD1QU19JKGQpfWVsc2UgaWYoYiBpbnN0YW5jZW9mIFBTXzUpe2lmKGIuUz09PVBTX2RkKWQ9UFNfOGIoYi50b1N0cmluZygpKTtlbHNle2lmKGIuUyE9PVBTX2NkKXRocm93IEVycm9yKCJTYW5pdGl6ZWQgY29udGVudCB3YXMgbm90IG9mIGtpbmQgVEVYVCBvciBIVE1MLiIpO3ZhciBlPVBTX1ViKCJTb3kgU2FuaXRpemVkQ29udGVudCBvZiBraW5kIEhUTUwgcHJvZHVjZXMgU2FmZUh0bWwtY29udHJhY3QtY29tcGxpYW50IHZhbHVlLiIpO2Q9Yi50b1N0cmluZygpO3ZhciBmPWIuYTtQU19EYShQU19UYihlKSwibXVzdCBwcm92aWRlIGp1c3RpZmljYXRpb24iKTtlPVBTX1RiKGUpO1BTX2soIS9eW1xzXHhhMF0qJC8udGVzdChlKSwibXVzdCBwcm92aWRlIG5vbi1lbXB0eSBqdXN0aWZpY2F0aW9uIik7ZD1QU19KKGQsZnx8bnVsbCl9Yy5pbm5lckhUTUw9ClBTX0koZCl9ZWxzZSBiIGluc3RhbmNlb2YgUFNfSD9jLmlubmVySFRNTD1QU19JKGIpOihjLmlubmVySFRNTD1QU19JKFBTX2VjKSxjLmFwcGVuZENoaWxkKGIpKX07UFNfPVBTXzYucHJvdG90eXBlO1BTXy5wYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmE/UFNfUCgiamZrLWJ1YmJsZS1jb250ZW50LWlkIix0aGlzLmF8fHRoaXMuZi5hKTpudWxsfTsKUFNfLnJhPWZ1bmN0aW9uKCl7dmFyIGE7YTp7dmFyIGI9e1BhOnRoaXMucyx1aWQ6ImJ1YmJsZS0iKyh0aGlzW1BTX2ZhXXx8KHRoaXNbUFNfZmFdPSsrUFNfZ2EpKX07YT10aGlzLmY7UFNfayhQU19EZCwiU295IHRlbXBsYXRlIG1heSBub3QgYmUgbnVsbC4iKTthPShhfHxQU19OKCkpLmEuY3JlYXRlRWxlbWVudCgiRElWIik7dmFyIGI9UFNfZmQoUFNfRGQoYnx8UFNfaGQpKSxjPWIubWF0Y2goUFNfZ2QpO1BTX2soIWMsIlRoaXMgdGVtcGxhdGUgc3RhcnRzIHdpdGggYSAlcywgd2hpY2ggY2Fubm90IGJlIGEgY2hpbGQgb2YgYSAmbHQ7ZGl2Jmd0OywgYXMgcmVxdWlyZWQgYnkgc295IGludGVybmFscy4gQ29uc2lkZXIgdXNpbmcgZ29vZy5zb3kucmVuZGVyRWxlbWVudCBpbnN0ZWFkLlxuVGVtcGxhdGUgb3V0cHV0OiAlcyIsYyZhbXA7JmFtcDtjWzBdLGIpO2EuaW5uZXJIVE1MPWI7aWYoMT09YS5jaGlsZE5vZGVzLmxlbmd0aCZhbXA7JmFtcDsoYj1hLmZpcnN0Q2hpbGQsMT09Yi5ub2RlVHlwZSkpe2E9YjticmVhayBhfX10aGlzLmE9CmE7UFNfRWQodGhpcyx0aGlzLkgpO1BTX1kodGhpcy5CKCksITEpO2E9dGhpcy5iO2I9dGhpcy5CKCk7UFNfbWQoYSk7YS52PWI7UFNfWmF8fChhPXRoaXMuYixiPVBTX2JkKHRoaXMuQigpLCJlYXNlLW91dCIsMCwxKSxjPVBTX2JkKHRoaXMuQigpLCJlYXNlLWluIiwxLDApLGEuZj1iLGEuYz1jKTtQU19IYih0aGlzLkIoKSx0aGlzLkopfTsKUFNfLmRhPWZ1bmN0aW9uKCl7UFNfNi5BLmRhLmNhbGwodGhpcyk7UFNfUihQU19pZCh0aGlzKSx0aGlzLmIsWyJiZWZvcmVzaG93Iiwic2hvdyIsImJlZm9yZWhpZGUiLCJoaWRlIl0sdGhpcy5LYSk7aWYodGhpcy5zKXt2YXIgYT1QU19pZCh0aGlzKSxiPXRoaXMuYT9QU19QKCJqZmstYnViYmxlLWNsb3NlYnRuLWlkIix0aGlzLmF8fHRoaXMuZi5hKTpudWxsO1BTX0NjKGIsUFNfamEodGhpcy5mYSwhMSksdm9pZCAwLGEuYnx8YSxhKX1hPXRoaXMuQigpO1BTX2soYSwiZ2V0RWxlbWVudCgpIHJldHVybnMgbnVsbC4iKTtiPXRoaXMuYT9QU19QKCJqZmstYnViYmxlLWFycm93LWlkIix0aGlzLmF8fHRoaXMuZi5hKTpudWxsO1BTX2soYiwiTm8gYXJyb3cgZWxlbWVudCBpcyBmb3VuZCEiKTt2YXIgYz10aGlzLmg7Yy5iPWE7Yy5qPWI7YT10aGlzLmI7YS5nPXRoaXMuaHx8dm9pZCAwO2EuRyZhbXA7JmFtcDthLmIoKX07ClBTXy5mYT1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmI7aWYoYi5mKXt2YXIgYz1iLmY7MT09Yy5hJmFtcDsmYW1wO2MuYyghMCl9Yi5jJmFtcDsmYW1wOyhjPWIuYywxPT1jLmEmYW1wOyZhbXA7Yy5jKCEwKSk7aWYoYSl7aWYoIWIuRyZhbXA7JmFtcDtiLmRpc3BhdGNoRXZlbnQoImJlZm9yZXNob3ciKSl7aWYoIWIudil0aHJvdyBFcnJvcigiQ2FsbGVyIG11c3QgY2FsbCBzZXRFbGVtZW50IGJlZm9yZSB0cnlpbmcgdG8gc2hvdyB0aGUgcG9wdXAiKTtiLmIoKTthPVBTX00oYi52KTtQU19SKGIuYSxhLCJtb3VzZWRvd24iLGIudmEsITApO2lmKFBTX3Mpe3ZhciBkO3RyeXtkPWEuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9Zm9yKDtkJmFtcDsmYW1wOyJJRlJBTUUiPT1kLm5vZGVOYW1lOyl7dHJ5e3ZhciBmPVBTX3VjKGQpfWNhdGNoKGcpe2JyZWFrfWE9ZjtkPWEuYWN0aXZlRWxlbWVudH1QU19SKGIuYSxhLCJtb3VzZWRvd24iLGIudmEsITApO1BTX1IoYi5hLGEsImRlYWN0aXZhdGUiLGIudWEpfWVsc2UgUFNfUihiLmEsYSwiYmx1ciIsYi51YSk7InRvZ2dsZV9kaXNwbGF5Ij09CmIuUj8oYi52LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLFBTX1koYi52LCEwKSk6Im1vdmVfb2Zmc2NyZWVuIj09Yi5SJmFtcDsmYW1wO2IuYigpO2IuRz0hMDtiLmlhPVBTX2YoKTtiLmY/KFBTX3ViKGIuZiwiZW5kIixiLnNhLCExLGIpLFBTX2FkKGIuZikpOmIuc2EoKX19ZWxzZSBQU19uZChiKX07UFNfLm09ZnVuY3Rpb24oKXt0aGlzLmIuTCgpO2RlbGV0ZSB0aGlzLmI7UFNfNi5BLm0uY2FsbCh0aGlzKX07UFNfLnRhPWZ1bmN0aW9uKCl7UFNfT2ModGhpcy5CKCkpO3JldHVybiExfTtQU18uS2E9ZnVuY3Rpb24oYSl7aWYoInNob3ciPT1hLnR5cGV8fCJoaWRlIj09YS50eXBlKXt2YXIgYj1QU19pZCh0aGlzKSxjPXRoaXMuZixjPVBTX3M/UFNfbmMoYy5hKTpjLmE7InNob3ciPT1hLnR5cGU/UFNfUihiLGMsInNjcm9sbCIsdGhpcy50YSk6UFNfemMoYixjLCJzY3JvbGwiLHRoaXMudGEpfXJldHVybiB0aGlzLmRpc3BhdGNoRXZlbnQoYS50eXBlKX07dmFyIFBTX0ZkPWZ1bmN0aW9uKCl7cmV0dXJuIShQU19wKCJpUGFkIil8fFBTX3AoIkFuZHJvaWQiKSZhbXA7JmFtcDshUFNfcCgiTW9iaWxlIil8fFBTX3AoIlNpbGsiKSkmYW1wOyZhbXA7KFBTX3AoImlQb2QiKXx8UFNfcCgiaVBob25lIil8fFBTX3AoIkFuZHJvaWQiKXx8UFNfcCgiSUVNb2JpbGUiKSl9O3ZhciBQU19HZD1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bYV0sZD1iLmxlbmd0aC0xOzAmbHQ7PWQ7LS1kKWMucHVzaCh0eXBlb2YgYltkXSxiW2RdKTtyZXR1cm4gYy5qb2luKCJceDBCIil9O3ZhciBQU19IZD1mdW5jdGlvbigpe1BTX3guY2FsbCh0aGlzLCJuYXZpZ2F0ZSIpfTtQU19nKFBTX0hkLFBTX3gpO3ZhciBQU185PWZ1bmN0aW9uKGEsYixjLGQpe1BTX1ouY2FsbCh0aGlzKTtpZihhJmFtcDsmYW1wOyFiKXRocm93IEVycm9yKCJDYW4ndCB1c2UgaW52aXNpYmxlIGhpc3Rvcnkgd2l0aG91dCBwcm92aWRpbmcgYSBibGFuayBwYWdlLiIpO3ZhciBlO2lmKGMpZT1jO2Vsc2V7ZT0iaGlzdG9yeV9zdGF0ZSIrUFNfSWQ7dmFyIGY9UFNfY2MoImlucHV0Iix7dHlwZToidGV4dCIsbmFtZTplLGlkOmUsc3R5bGU6UFNfVWIoImRpc3BsYXk6bm9uZSIpfSk7ZG9jdW1lbnQud3JpdGUoUFNfSShmKSk7ZT1QU19PKGUpfXRoaXMubD1lO3RoaXMuYT1jP1BTX3BjKFBTX00oYykpOndpbmRvdzt2YXIgZztQU19jKGIpP2c9UFNfNmIoYik6Zz1iO3RoaXMucz1nO1BTX3MmYW1wOyZhbXA7IWImYW1wOyZhbXA7KGI9Imh0dHBzIj09d2luZG93LmxvY2F0aW9uLnByb3RvY29sP1BTX1ViKCJodHRwczovLy8iKTpQU19VYignamF2YXNjcmlwdDoiIicpLHRoaXMucz1iPVBTXzZiKFBTX1RiKGIpKSk7dGhpcy5iPW5ldyBQU19fKDE1MCk7Yj1QU19qYShQU19sYSwKdGhpcy5iKTt0aGlzLnU/Yi5jYWxsKHZvaWQgMCk6KHRoaXMuanx8KHRoaXMuaj1bXSksdGhpcy5qLnB1c2goYikpO3RoaXMuYz0hYTt0aGlzLm89bmV3IFBTX1EodGhpcyk7aWYoYXx8UFNfNyl7dmFyIGg7aWYoZCloPWQ7ZWxzZXthPSJoaXN0b3J5X2lmcmFtZSIrUFNfSWQ7ZD17aWQ6YSxzdHlsZTpQU19VYigiZGlzcGxheTpub25lIiksc2FuZGJveDp2b2lkIDB9O2I9e307Yi5zcmM9dGhpcy5zfHxudWxsO2Iuc3JjZG9jPW51bGw7Yz17c2FuZGJveDoiIn07Zz17fTtmb3IoaCBpbiBiKVBTX2soaC50b0xvd2VyQ2FzZSgpPT1oLCJNdXN0IGJlIGxvd2VyIGNhc2UiKSxnW2hdPWJbaF07Zm9yKGggaW4gYylQU19rKGgudG9Mb3dlckNhc2UoKT09aCwiTXVzdCBiZSBsb3dlciBjYXNlIiksZ1toXT1jW2hdO2ZvcihoIGluIGQpe2U9aC50b0xvd2VyQ2FzZSgpO2lmKGUgaW4gYil0aHJvdyBFcnJvcignQ2Fubm90IG92ZXJyaWRlICInK2UrJyIgYXR0cmlidXRlLCBnb3QgIicraCsnIiB3aXRoIHZhbHVlICInKwpkW2hdKyciJyk7ZSBpbiBjJmFtcDsmYW1wO2RlbGV0ZSBnW2VdO2dbaF09ZFtoXX1oPVBTX2JjKCJpZnJhbWUiLGcsdm9pZCAwKTtkb2N1bWVudC53cml0ZShQU19JKGgpKTtoPVBTX08oYSl9dGhpcy53PWg7dGhpcy5PPSEwfVBTXzcmYW1wOyZhbXA7KFBTX1IodGhpcy5vLHRoaXMuYSwibG9hZCIsdGhpcy5aKSx0aGlzLkk9dGhpcy5IPSExKTt0aGlzLmM/UFNfSmQodGhpcyxQU184KHRoaXMpLCEwKTpQU19LZCh0aGlzLHRoaXMubC52YWx1ZSk7UFNfSWQrK307UFNfZyhQU185LFBTX1opO1BTXzkucHJvdG90eXBlLmk9ITE7UFNfOS5wcm90b3R5cGUuaD0hMTtQU185LnByb3RvdHlwZS5mPW51bGw7CnZhciBQU19MZD1mdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFBTX0dkO3JldHVybiBmdW5jdGlvbigpe3ZhciBiPXRoaXN8fFBTX2EsYj1iLmNsb3N1cmVfbWVtb2l6ZV9jYWNoZV98fChiLmNsb3N1cmVfbWVtb2l6ZV9jYWNoZV89e30pLGU9YyhhW1BTX2ZhXXx8KGFbUFNfZmFdPSsrUFNfZ2EpLGFyZ3VtZW50cyk7cmV0dXJuIGIuaGFzT3duUHJvcGVydHkoZSk/YltlXTpiW2VdPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZnVuY3Rpb24oKXtyZXR1cm4gUFNfcz9QU193KDgpOiJvbmhhc2hjaGFuZ2UiaW4gUFNfYX0pLFBTXzc9UFNfcyZhbXA7JmFtcDshUFNfdyg4KTtQU185LnByb3RvdHlwZS5nPW51bGw7UFNfOS5wcm90b3R5cGUubT1mdW5jdGlvbigpe1BTXzkuQS5tLmNhbGwodGhpcyk7dGhpcy5vLkwoKTtQU19NZCh0aGlzLCExKX07CnZhciBQU19NZD1mdW5jdGlvbihhLGIpe2lmKGIhPWEuaSlpZihQU183JmFtcDsmYW1wOyFhLkgpYS5JPWI7ZWxzZSBpZihiKWlmKFBTX3I/UFNfUihhLm8sYS5hLmRvY3VtZW50LFBTX05kLGEuYWEpOlBTX3QmYW1wOyZhbXA7UFNfUihhLm8sYS5hLCJwYWdlc2hvdyIsYS5ZKSxQU19MZCgpJmFtcDsmYW1wO2EuYylQU19SKGEubyxhLmEsImhhc2hjaGFuZ2UiLGEuJCksYS5pPSEwLGEuZGlzcGF0Y2hFdmVudChuZXcgUFNfSGQoUFNfOChhKSkpO2Vsc2V7aWYoIVBTX3N8fFBTX0ZkKCl8fGEuSClQU19SKGEubyxhLmIsInRpY2siLFBTX2UoYS5KLGEsITApKSxhLmk9ITAsUFNfN3x8KGEuZj1QU184KGEpLGEuZGlzcGF0Y2hFdmVudChuZXcgUFNfSGQoUFNfOChhKSkpKSxQU182YyhhLmIpfWVsc2UgYS5pPSExLFBTX0FjKGEubyksUFNfNWMoYS5iKX07UFNfOS5wcm90b3R5cGUuWj1mdW5jdGlvbigpe3RoaXMuSD0hMDt0aGlzLmwudmFsdWUmYW1wOyZhbXA7UFNfS2QodGhpcyx0aGlzLmwudmFsdWUsITApO1BTX01kKHRoaXMsdGhpcy5JKX07ClBTXzkucHJvdG90eXBlLlk9ZnVuY3Rpb24oYSl7YS5VKCkucGVyc2lzdGVkJmFtcDsmYW1wOyhQU19NZCh0aGlzLCExKSxQU19NZCh0aGlzLCEwKSl9O1BTXzkucHJvdG90eXBlLiQ9ZnVuY3Rpb24oKXt2YXIgYT1QU19PZCh0aGlzLmEpO2EhPXRoaXMuZiZhbXA7JmFtcDtQU19QZCh0aGlzLGEpfTsKdmFyIFBTXzg9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEuZz9hLmc6YS5jP1BTX09kKGEuYSk6UFNfUWQoYSl8fCIifSxQU19PZD1mdW5jdGlvbihhKXthPWEubG9jYXRpb24uaHJlZjt2YXIgYj1hLmluZGV4T2YoIiMiKTtyZXR1cm4gMCZndDtiPyIiOmEuc3Vic3RyaW5nKGIrMSl9LFBTX1JkPWZ1bmN0aW9uKGEsYil7UFNfOChhKSE9YiZhbXA7JmFtcDsoYS5jPyhQU19KZChhLGIsITEpLFBTX0xkKCl8fFBTX3MmYW1wOyZhbXA7IVBTX0ZkKCkmYW1wOyZhbXA7UFNfS2QoYSxiLCExLHZvaWQgMCksYS5pJmFtcDsmYW1wO2EuSigpKTooUFNfS2QoYSxiLCExKSxhLmc9YS5mPWEubC52YWx1ZT1iLGEuZGlzcGF0Y2hFdmVudChuZXcgUFNfSGQpKSl9LFBTX0pkPWZ1bmN0aW9uKGEsYixjKXthPWEuYS5sb2NhdGlvbjt2YXIgZD1hLmhyZWYuc3BsaXQoIiMiKVswXSxlPS0xIT1hLmhyZWYuaW5kZXhPZigiIyIpO2lmKFBTXzd8fGV8fGIpZCs9IiMiK2I7ZCE9YS5ocmVmJmFtcDsmYW1wOyhjP2EucmVwbGFjZShkKTphLmhyZWY9ZCl9LFBTX0tkPWZ1bmN0aW9uKGEsCmIsYyxkKXtpZihhLk98fGIhPVBTX1FkKGEpKWlmKGEuTz0hMSxiPWVuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoYikpLFBTX3Mpe3ZhciBlPVBTX3VjKGEudyk7ZS5vcGVuKCJ0ZXh0L2h0bWwiLGM/InJlcGxhY2UiOnZvaWQgMCk7Yz1QU19kYyhQU19jYygidGl0bGUiLHt9LGR8fGEuYS5kb2N1bWVudC50aXRsZSksUFNfY2MoImJvZHkiLHt9LGIpKTtlLndyaXRlKFBTX0koYykpO2UuY2xvc2UoKX1lbHNlIGlmKFBTX0dhKGEucyxQU19HLCJ0aGlzLmlmcmFtZVNyY18gbXVzdCBiZSBzZXQgb24gY2FsbHMgdG8gc2V0SWZyYW1lVG9rZW5fIiksZT1QU181YihhLnMpKyIjIitiLGE9YS53LmNvbnRlbnRXaW5kb3cpYz9hLmxvY2F0aW9uLnJlcGxhY2UoZSk6YS5sb2NhdGlvbi5ocmVmPWV9LFBTX1FkPWZ1bmN0aW9uKGEpe2lmKFBTX3MpcmV0dXJuIGE9UFNfdWMoYS53KSxhLmJvZHk/ZGVjb2RlVVJJQ29tcG9uZW50KGEuYm9keS5pbm5lckhUTUwucmVwbGFjZSgvXCsvZywiICIpKTpudWxsOwp2YXIgYj1hLncuY29udGVudFdpbmRvdztpZihiKXt2YXIgYzt0cnl7Yz1kZWNvZGVVUklDb21wb25lbnQoUFNfT2QoYikucmVwbGFjZSgvXCsvZywiICIpKX1jYXRjaChkKXtyZXR1cm4gYS5ofHwoMSE9YS5oJmFtcDsmYW1wO1BTXzdjKGEuYiwxRTQpLGEuaD0hMCksbnVsbH1hLmgmYW1wOyZhbXA7KDAhPWEuaCZhbXA7JmFtcDtQU183YyhhLmIsMTUwKSxhLmg9ITEpO3JldHVybiBjfHxudWxsfXJldHVybiBudWxsfTtQU185LnByb3RvdHlwZS5KPWZ1bmN0aW9uKCl7aWYodGhpcy5jKXt2YXIgYT1QU19PZCh0aGlzLmEpO2EhPXRoaXMuZiZhbXA7JmFtcDtQU19QZCh0aGlzLGEpfWlmKCF0aGlzLmN8fFBTXzcpaWYoYT1QU19RZCh0aGlzKXx8IiIsbnVsbD09dGhpcy5nfHxhPT10aGlzLmcpdGhpcy5nPW51bGwsYSE9dGhpcy5mJmFtcDsmYW1wO1BTX1BkKHRoaXMsYSl9O3ZhciBQU19QZD1mdW5jdGlvbihhLGIpe2EuZj1hLmwudmFsdWU9YjthLmM/KFBTXzcmYW1wOyZhbXA7UFNfS2QoYSxiKSxQU19KZChhLGIpKTpQU19LZChhLGIpO2EuZGlzcGF0Y2hFdmVudChuZXcgUFNfSGQoUFNfOChhKSkpfTsKUFNfOS5wcm90b3R5cGUuYWE9ZnVuY3Rpb24oKXtQU181Yyh0aGlzLmIpO1BTXzZjKHRoaXMuYil9O3ZhciBQU19OZD1bIm1vdXNlZG93biIsImtleWRvd24iLCJtb3VzZW1vdmUiXSxQU19JZD0wO3ZhciBQU19TZD1mdW5jdGlvbihhLGIpe1BTX1BhKGEpfHwoYT0iaWRlbnRpZmllciIpO3RoaXMuYT1hO3RoaXMuYz1udWxsO3RoaXMuYj1uZXcgUFNfOTt0aGlzLm89bmV3IFBTX1EodGhpcyk7UFNfUGEoYSkmYW1wOyZhbXA7UFNfUmQodGhpcy5iLGEpO3RoaXMuaj1ifHxQU19iYTtQU19SKHRoaXMubyx0aGlzLmIsIm5hdmlnYXRlIix0aGlzLmYpO1BTX01kKHRoaXMuYiwhMCl9LFBTX09hPXtRYToiaWRlbnRpZmllciIsUmE6InBhc3N3b3JkIn07UFNfU2QucHJvdG90eXBlLmY9ZnVuY3Rpb24oYSl7dmFyIGI9UFNfOCh0aGlzLmIpO1BTX1BhKGIpJmFtcDsmYW1wO2IhPXRoaXMuYT8odGhpcy5jPXRoaXMuYSx0aGlzLmE9Yix0aGlzLmooYSkpOlBTX1JkKHRoaXMuYix0aGlzLmEpfTt2YXIgUFNfVGQ9ZnVuY3Rpb24oYSl7dGhpcy5pPWE7dGhpcy5qPVBTX08oIkVtYWlsIik7dGhpcy5sPVBTX08oIlBhc3N3ZCIpO3RoaXMuYT1QU19PKCJFbWFpbC1oaWRkZW4iKTt0aGlzLmc9dGhpcy5hLnZhbHVlO3RoaXMuYj1QU19PKCJQYXNzd2QtaGlkZGVuIik7dGhpcy5jPVBTX08oImlkZW50aWZpZXItc2hvd24iKTt0aGlzLnM9UFNfc2ModGhpcy5jKVswXTt0aGlzLmY9UFNfTygicGFzc3dvcmQtc2hvd24iKTt0aGlzLnc9UFNfc2ModGhpcy5mKVswXTt0aGlzLmg9IiI7dGhpcy5vPW5ldyBQU19RKHRoaXMpO1BTX3FjKCJpZGVudGlmaWVyIj09dGhpcy5pLmE/dGhpcy5mOnRoaXMuYyk7UFNfbGModGhpcy5hLHtuYW1lOiJFbWFpbCJ9KTtQU19SKHRoaXMubyx0aGlzLmosImlucHV0Iix0aGlzLnUpO1BTX1IodGhpcy5vLHRoaXMuYSwiY2hhbmdlIix0aGlzLkQpfTsKUFNfVGQucHJvdG90eXBlLnU9ZnVuY3Rpb24oKXsiIiE9dGhpcy5iLnZhbHVlJmFtcDsmYW1wOyhQU196Yyh0aGlzLm8sdGhpcy5qLCJpbnB1dCIsdGhpcy51KSx0aGlzLmg9dGhpcy5iLnZhbHVlKX07UFNfVGQucHJvdG90eXBlLkQ9ZnVuY3Rpb24oKXt0aGlzLmEudmFsdWU9dGhpcy5nfTt2YXIgUFNfJD1mdW5jdGlvbihhLGIpe3RoaXMuYz1uZXcgUFNfU2QoMT09YT8icGFzc3dvcmQiOiJpZGVudGlmaWVyIixQU19lKHRoaXMuSmEsdGhpcykpO3RoaXMuJD1QU19QKCJtYWluLWNvbnRlbnQiKTt0aGlzLko9UFNfTygiZ2FpYV9sb2dpbmZvcm0iKTt0aGlzLlo9UFNfUCgic2xpZGUtb3V0Iik7dGhpcy5JPVBTX1AoInNsaWRlLWluIik7dGhpcy5iPVBTX08oIkVtYWlsIik7dGhpcy5mPVBTX08oIlBhc3N3ZCIpO3RoaXMubD1QU19PKCJuZXh0Iik7dGhpcy5sYT1QU19PKCJzaWduSW4iKTt0aGlzLmc9UFNfTygiYmFjay1hcnJvdyIpO3RoaXMuaj1QU19QKCJjaXJjbGUtbWFzayIpO3RoaXMuY2FudmFzPVBTX08oImNhbnZhcyIpO3RoaXMuWD1QU19PKCJpZGVudGlmaWVyLWNhcHRjaGEiKTt0aGlzLmg9UFNfTygiY2FwdGNoYS1pbWciKTt0aGlzLlk9UFNfTygiaWRlbnRpZmllci10b2tlbiIpO3RoaXMudz1QU19PKCJpZGVudGlmaWVyLWNhcHRjaGEtaW5wdXQiKTt0aGlzLmFhPQpQU19PKCJwcm9maWxlLWluZm9ybWF0aW9uIik7dGhpcy5zPVBTX1AoInNpZ25pbi1jYXJkIik7dGhpcy51PVBTX1AoImNhcmQtbWFzay13cmFwIik7dGhpcy5OYT0xMDA7dGhpcy5EPXRoaXMuSD0hMTt0aGlzLmk9MDt0aGlzLm89bmV3IFBTX1EodGhpcyk7UFNfUih0aGlzLm8sdGhpcy5KLCJzdWJtaXQiLHRoaXMuRmEpO1BTX1IodGhpcy5vLHdpbmRvdywicmVzaXplIix0aGlzLkhhKTtQU19DYyh0aGlzLmcsdGhpcy5FYSwhMSx0aGlzLHRoaXMubyk7dGhpcy5KLmFjdGlvbj1iO3RoaXMuSWE9bmV3IFBTX1RkKHRoaXMuYyk7MD09YT9QU19VZCh0aGlzLmIpOihQU19VZCh0aGlzLmYpLFBTX0IodGhpcy5nLCJzaGlmdC1mb3JtIikpfTtQU19hYSgiZ2FpYS5wYWdlcy5QYXNzd29yZFNlcGFyYXRpb25QYWdlIixQU18kKTsKUFNfJC5wcm90b3R5cGUuRmE9ZnVuY3Rpb24oYSl7ImlkZW50aWZpZXIiPT10aGlzLmMuYT8oYS5wcmV2ZW50RGVmYXVsdCgpLHRoaXMubC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiIiksdGhpcy5iLnNldEF0dHJpYnV0ZSgiZGlzYWJsZWQiLCIiKSxQU19WZCh0aGlzKSk6KHRoaXMubGEuc2V0QXR0cmlidXRlKCJkaXNhYmxlZCIsIiIpLHRoaXMubC5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwiIiksdGhpcy5mLnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCIiKSl9O1BTXyQucHJvdG90eXBlLkhhPWZ1bmN0aW9uKCl7aWYodGhpcy5hKXt2YXIgYT10aGlzLmE7YS5iLkcmYW1wOyZhbXA7YS5iLmIoKX19OwpQU18kLnByb3RvdHlwZS5FYT1mdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7UFNfV2QodGhpcyk7UFNfWGQodGhpcyk7dGhpcy5mLnZhbHVlPSIiO1BTX1BhKCJpZGVudGlmaWVyIikmYW1wOyZhbXA7UFNfUmQodGhpcy5jLmIsImlkZW50aWZpZXIiKTt0aGlzLmxhLnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTt0aGlzLmwucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpO3RoaXMuZi5yZW1vdmVBdHRyaWJ1dGUoInJlYWRvbmx5Iil9Owp2YXIgUFNfVmQ9ZnVuY3Rpb24oYSl7aWYoIWEuSCl7YS5IPSEwO3ZhciBiPW5ldyBQU19oO2IucGFyYW1ldGVycz17fTtiLnBhcmFtZXRlcnMuRW1haWw9YS5iLnZhbHVlO2IucGFyYW1ldGVycy5yZXF1ZXN0bG9jYXRpb249UFNfYS5sb2NhdGlvbi5ocmVmO3ZhciBjPWEuSi5oZCxjPWM/Yy52YWx1ZTpudWxsO251bGwhPWMmYW1wOyZhbXA7KGIucGFyYW1ldGVycy5oZD1jKTthLkQmYW1wOyZhbXA7KGIucGFyYW1ldGVyc1siaWRlbnRpZmllci1jYXB0Y2hhLWlucHV0Il09YS53LnZhbHVlLGIucGFyYW1ldGVycy5pZGVudGlmaWVydG9rZW49YS5ZLnZhbHVlKTt2YXIgZD0ianNfZGlzYWJsZWQiO3RyeXtkb2N1bWVudC5iZy5pbnZva2UoZnVuY3Rpb24oYSl7ZD1hfSl9Y2F0Y2goZSl7ZD0iIn1iLnBhcmFtZXRlcnMuYmdyZXNwb25zZT1kO2Iuc2VuZCgiL2FjY291bnRMb2dpbkluZm9YaHIiLFBTX2UoYS5HYSxhKSl9fSxQU19ZZD1mdW5jdGlvbihhLGIpe1BTX1dkKGEpO2EuZGlzcGxheU5hbWU9Yi5uYW1lO2EuTWE9CmIuZW1haWw7YS5PPWIucGhvdG9fdXJsO2EueGE9Yi5yZWNvdmVyeV91cmw7YS5hYSZhbXA7JmFtcDsoYS5hYS52YWx1ZT1iLmVuY29kZWRfcHJvZmlsZV9pbmZvcm1hdGlvbik7UFNfUGEoInBhc3N3b3JkIikmYW1wOyZhbXA7UFNfUmQoYS5jLmIsInBhc3N3b3JkIil9OwpQU18kLnByb3RvdHlwZS5HYT1mdW5jdGlvbihhKXt0aGlzLkg9ITE7dGhpcy5sLnJlbW92ZUF0dHJpYnV0ZSgiZGlzYWJsZWQiKTt0aGlzLmIucmVtb3ZlQXR0cmlidXRlKCJkaXNhYmxlZCIpO2lmKDIwMD09YS5zdGF0dXMpaWYoYT1QU19EYyhhLnRleHQpLCJTSE9XX0VSUk9SIj09YS5hY3Rpb24pUFNfWmQodGhpcyxhLmVycm9yX21zZyk7ZWxzZSBpZigiU1VCTUlUX0ZPUk0iPT1hLmFjdGlvbilQU19PKCJnYWlhX2xvZ2luZm9ybSIpLnN1Ym1pdCgpO2Vsc2UgaWYoIlJFRElSRUNUIj09YS5hY3Rpb24pe3ZhciBiPWEucmVkaXJlY3RVcmw7YT1QU19hLmxvY2F0aW9uO2lmKCEoYiBpbnN0YW5jZW9mIFBTX0Z8fGIgaW5zdGFuY2VvZiBQU19GKSl7dmFyIGI9Yi5OP2IuTSgpOlN0cmluZyhiKSxiPVBTXzBiLnRlc3QoYik/UFNfM2IoYik6ImFib3V0OmludmFsaWQjekNsb3N1cmV6IixjPW5ldyBQU19GO2MuYT1iO2I9Y31hLmhyZWY9UFNfX2IoYil9ZWxzZSJTSE9XX0NBUFRDSEEiPT0KYS5hY3Rpb24/KFBTX19kKHRoaXMsYSksUFNfWGQodGhpcykpOiJTSE9XX0NBUFRDSEFfQU5EX0VSUk9SIj09YS5hY3Rpb24/KFBTX19kKHRoaXMsYSksUFNfWmQodGhpcyxhLmVycm9yX21zZykpOlBTX1lkKHRoaXMsYSk7ZWxzZSA0MDAmbHQ7PWEuc3RhdHVzJmFtcDsmYW1wO1BTX1lkKHRoaXMse25hbWU6IiIsZW1haWw6dGhpcy5iLnZhbHVlLHBob3RvX3VybDoiIixyZWNvdmVyeV91cmw6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9SZWNvdmVyQWNjb3VudD9FbWFpbD0iK3RoaXMuYi52YWx1ZSxlbmNvZGVkX3Byb2ZpbGVfaW5mb3JtYXRpb246IiJ9KX07ClBTXyQucHJvdG90eXBlLkphPWZ1bmN0aW9uKCl7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5DYSk7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5BYSk7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5PYSk7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5EYSk7UFNfYS5jbGVhclRpbWVvdXQodGhpcy5CYSk7dGhpcy5hJmFtcDsmYW1wO3RoaXMuYS5mYSghMSk7dmFyIGE9dGhpcy5JYTsiaWRlbnRpZmllciI9PWEuaS5hPyhQU19xYyhhLmYpLGEuZz1hLmEudmFsdWU9IiIsYS5sLnZhbHVlPSIiLGEuYy5hcHBlbmRDaGlsZChhLnMpLGEuaD1hLmIudmFsdWUpOihhLmc9YS5hLnZhbHVlPWEuai52YWx1ZSxhLmghPT1hLmIudmFsdWUmYW1wOyZhbXA7KGEubC52YWx1ZT1hLmIudmFsdWUpLFBTX3FjKGEuYyksYS5mLmFwcGVuZENoaWxkKGEudykpOyJpZGVudGlmaWVyIj09dGhpcy5jLmE/UFNfMGQodGhpcyk6InBhc3N3b3JkIj09dGhpcy5jLmEmYW1wOyZhbXA7UFNfMWQodGhpcyl9Owp2YXIgUFNfMGQ9ZnVuY3Rpb24oYSl7UFNfMmQoYSwhMCk7UFNfM2QoYSwxMDAsMCk7UFNfNGQoYSwic2hpZnQtZm9ybSIsITEpO1BTX1hkKGEpO1BTX1VkKGEuYik7UFNfSWIoYS5nLCJzaGlmdC1mb3JtIik7InBhc3N3b3JkIj09YS5jLmMmYW1wOyZhbXA7KFBTX1RjKGEuaiwiMC4wMSIpLGEuQmE9UFNfMChmdW5jdGlvbigpe1BTX1UodGhpcy5qLCJiYWNrZ3JvdW5kLWltYWdlIiwiIik7UFNfVGModGhpcy5qLCIiKX0sNzUsYSksYS5EYT1QU18wKGZ1bmN0aW9uKCl7UFNfNWQodGhpcywhMSl9LDIwMCxhKSl9LFBTXzFkPWZ1bmN0aW9uKGEpe1BTXzVkKGEsITApO1BTXzNkKGEsMCxhLlNhKTtQU180ZChhLCJzaGlmdC1mb3JtIiwhMCk7UFNfNmQoYSk7YS5DYT1QU18wKGZ1bmN0aW9uKCl7UFNfWGQodGhpcyk7UFNfQih0aGlzLmcsInNoaWZ0LWZvcm0iKTtQU18yZCh0aGlzLCExKTt0aGlzLnMub2Zmc2V0V2lkdGh9LDIwMCxhKTthLkFhPVBTXzAoZnVuY3Rpb24oKXtQU19VZCh0aGlzLmYpfSw0MDAsCmEpfSxQU182ZD1mdW5jdGlvbihhKXt2YXIgYj0iaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1YZFVJcWRNa0NXQS9BQUFBQUFBQUFBSS9BQUFBQUFBQUFBQS80MjUycnNjYnY1TS9waG90by5qcGc/c3o9OTYiO2EuTyZhbXA7JmFtcDsoYj1hLk8rIj9zej0iK2EuY2FudmFzLndpZHRoLnRvU3RyaW5nKCkpO1BTX0ViKG5ldyBQU19BKGZ1bmN0aW9uKCl7dmFyIGE9UFNfTygicHJvZmlsZS1uYW1lIik7dGhpcy5LPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO3RoaXMuSy5zcmM9Yjt0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLmNsZWFyUmVjdCgwLDAsdGhpcy5jYW52YXMud2lkdGgsdGhpcy5jYW52YXMuaGVpZ2h0KTt0aGlzLmRpc3BsYXlOYW1lPyhQU192YyhhLHRoaXMuZGlzcGxheU5hbWUpLFBTX1koYSwhMCksUFNfNGQodGhpcywibm8tbmFtZSIsITEpKTooUFNfWShhLCExKSxQU180ZCh0aGlzLCJuby1uYW1lIiwhMCkpO1BTX3ZjKFBTX08oImVtYWlsLWRpc3BsYXkiKSwKdGhpcy5NYSk7dGhpcy54YSZhbXA7JmFtcDsoUFNfTygibGluay1mb3Jnb3QtcGFzc3dkIikuaHJlZj10aGlzLnhhKTt0aGlzLk9hPVBTXzAoZnVuY3Rpb24oKXt0aGlzLksuY29tcGxldGU/dGhpcy56YS5jYWxsKHRoaXMpOnRoaXMuby5qYSh0aGlzLkssImxvYWQiLHRoaXMuemEpfSx0aGlzLk5hLHRoaXMpfSx3aW5kb3csYSkpfSxQU180ZD1mdW5jdGlvbihhLGIsYyl7UFNfQyhhLnMsYixjKTtQU183ZChhLGIsYyl9LFBTXzdkPWZ1bmN0aW9uKGEsYixjKXtQU19DKGEudSxiLGMpO2EuJCZhbXA7JmFtcDtQU19DKGEuJCxiLGMpfSxQU18zZD1mdW5jdGlvbihhLGIsYyl7UFNfVShhLlosInRyYW5zaXRpb25EZWxheSIsYisibXMiKTtQU19VKGEuSSwidHJhbnNpdGlvbkRlbGF5IixjKyJtcyIpfSxQU18yZD1mdW5jdGlvbihhLGIpe1BTX0MoYS5aLCJoaWRlLWZvcm0iLCFiKTthLnMub2Zmc2V0V2lkdGh9LFBTXzVkPWZ1bmN0aW9uKGEsYil7UFNfQyhhLkksImhpZGUtZm9ybSIsIWIpO2Eucy5vZmZzZXRXaWR0aH0sClBTX1pkPWZ1bmN0aW9uKGEsYil7UFNfVWQoYS5iKTt2YXIgYz1QU19PKCJlcnJvcm1zZ18wX0VtYWlsIik7aWYoIklOR0UiPT1iKXt2YXIgZD1QU19PKCJpbmdlIikuY2xvbmVOb2RlKCEwKSxlPWMucGFyZW50Tm9kZTtlJmFtcDsmYW1wO2UucmVwbGFjZUNoaWxkKGQsYyk7UFNfbGMoZCx7aWQ6ImVycm9ybXNnXzBfRW1haWwifSk7UFNfWShkLCEwKTtpZih2b2lkIDAhPWQuZmlyc3RFbGVtZW50Q2hpbGQpYz1kLmZpcnN0RWxlbWVudENoaWxkO2Vsc2UgZm9yKGM9ZC5maXJzdENoaWxkO2MmYW1wOyZhbXA7MSE9Yy5ub2RlVHlwZTspYz1jLm5leHRTaWJsaW5nO2MuaHJlZj1jLmhyZWYrUFNfaihhLmIudmFsdWUpfWVsc2UgUFNfdmMoYyxiKyIgIik7UFNfNGQoYSwiaGFzLWVycm9yIiwhMCk7UFNfQihhLmIsImZvcm0tZXJyb3IiKTtjPWEuaTtkPVBTX08oImVycm9ybXNnXzBfRW1haWwiKTtlPWQuY2xvbmVOb2RlKCEwKTtQU19JYihlLCJlcnJvci1tc2ciKTt2YXIgZjthOntpZihQU19oYyZhbXA7JmFtcDshKFBTX3MmYW1wOyZhbXA7UFNfdigiOSIpJmFtcDsmYW1wOwohUFNfdigiMTAiKSZhbXA7JmFtcDtQU19hLlNWR0VsZW1lbnQmYW1wOyZhbXA7ZCBpbnN0YW5jZW9mIFBTX2EuU1ZHRWxlbWVudCkmYW1wOyZhbXA7KGY9ZC5wYXJlbnRFbGVtZW50KSlicmVhayBhO2Y9ZC5wYXJlbnROb2RlO2Y9UFNfZWEoZikmYW1wOyZhbXA7MT09Zi5ub2RlVHlwZT9mOm51bGx9Zi5hcHBlbmRDaGlsZChlKTtmPVBTX1goZSkuaGVpZ2h0O1BTX3JjKGUpO2Q9UFNfV2MoZCwibWFyZ2luIik7Zis9ZC50b3ArZC5ib3R0b207YS5pPWY7ZD1hLnU7Yjp7ZT1QU196YSgidHJhbnNmb3JtIik7aWYodm9pZCAwPT09ZC5zdHlsZVtlXSZhbXA7JmFtcDsoZT1QU19FYygpK1BTX0FhKGUpLHZvaWQgMCE9PWQuc3R5bGVbZV0pKXtlPVBTX0ZjKCkrIi10cmFuc2Zvcm0iO2JyZWFrIGJ9ZT0idHJhbnNmb3JtIn1lPShkPVBTX1coZCxlKXx8UFNfVyhkLCJ0cmFuc2Zvcm0iKSk/KGQ9ZC5tYXRjaChQU19aYykpP25ldyBQU19LKHBhcnNlRmxvYXQoZFsxXSkscGFyc2VGbG9hdChkWzJdKSk6bmV3IFBTX0soMCwwKTpuZXcgUFNfSygwLDApO2Q9YS51O2M9CmUueSsoYS5pLWMpO1BTXzFjKCkmYW1wOyZhbXA7KGM9UFNfMmMoKT8idHJhbnNsYXRlM2QoMHB4LCIrYysicHgsMHB4KSI6InRyYW5zbGF0ZSgwcHgsIitjKyJweCkiLFBTX1UoZCxQU18zYygpLGMpKX0sUFNfWGQ9ZnVuY3Rpb24oYSl7YS5pPTA7UFNfVShhLnUsInRyYW5zZm9ybSIsIiIpO1BTX3ZjKFBTX08oImVycm9ybXNnXzBfRW1haWwiKSwiIik7UFNfcmMoUFNfTygiZXJyb3Jtc2dfMF9QYXNzd2QiKSk7UFNfNGQoYSwiaGFzLWVycm9yIiwhMSk7UFNfSWIoYS5iLCJmb3JtLWVycm9yIik7UFNfSWIoYS5mLCJmb3JtLWVycm9yIil9OwpQU18kLnByb3RvdHlwZS56YT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuY2FudmFzLndpZHRoLzItdGhpcy5LLndpZHRoLzIsYj10aGlzLmNhbnZhcy5oZWlnaHQvMi10aGlzLksuaGVpZ2h0LzIsYz10aGlzLmNhbnZhcy5nZXRDb250ZXh0KCIyZCIpLGQ9MCxlPXRoaXMuY2FudmFzLndpZHRoLzIsZj10aGlzLmNhbnZhcy5oZWlnaHQvMixnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2cud2lkdGg9dGhpcy5jYW52YXMud2lkdGg7Zy5oZWlnaHQ9dGhpcy5jYW52YXMuaGVpZ2h0O3ZhciBoPWcuZ2V0Q29udGV4dCgiMmQiKSxtPXRoaXMuY2FudmFzLndpZHRoLzEyLGs9UFNfZShmdW5jdGlvbigpe2Muc2F2ZSgpO3dpbmRvdy5jaHJvbWU/KGguY2xlYXJSZWN0KDAsMCxnLndpZHRoLGcuaGVpZ2h0KSxoLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLW92ZXIiLGguZHJhd0ltYWdlKHRoaXMuSyxhLGIpLGguc2hhZG93Q29sb3I9IiNmZmYiLGguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPQoiZGVzdGluYXRpb24taW4iLGguYmVnaW5QYXRoKCksaC5hcmMoZSxmLGQsMCwyKk1hdGguUEksITEpLGguY2xvc2VQYXRoKCksaC5maWxsKCksYy5kcmF3SW1hZ2UoZywwLDApKTpjLmRyYXdJbWFnZSh0aGlzLkssYSxiKTtjLnJlc3RvcmUoKX0sdGhpcyksbD1QU19lKGZ1bmN0aW9uKCl7dmFyIGE9bmV3IFBTX0EobCk7ZCs9bTtpZihkJmx0Oz10aGlzLmNhbnZhcy53aWR0aCl7dmFyIGI9ZDtjLnNhdmUoKTt3aW5kb3cuY2hyb21lfHwoYy5iZWdpblBhdGgoKSxjLmFyYyhlLGYsYiwwLDIqTWF0aC5QSSwhMSksYy5jbGlwKCkpO2soKTtjLnJlc3RvcmUoKTtQU19FYihhKX1lbHNlIGlmKFBTX0JiKGEpLCJwYXNzd29yZCI9PXRoaXMuYy5hJmFtcDsmYW1wOyhQU19VKHRoaXMuaiwiYmFja2dyb3VuZC1pbWFnZSIsIm5vbmUiKSx0aGlzLmRpc3BsYXlOYW1lJmFtcDsmYW1wO3RoaXMuTykpaWYodGhpcy5hKXRoaXMuYS5mYSghMCk7ZWxzZSBpZigoYT1QU19QKCJwcm9maWxlLXRvb2x0aXAiKSkmYW1wOyZhbXA7dGhpcy5jYW52YXMpe2I9CnRoaXMuYT1uZXcgUFNfNjtiLmguYT10aGlzLmNhbnZhcztiLmIuRyZhbXA7JmFtcDtiLmIuYigpO2I9dGhpcy5hO1BTX2soIWIuRiwiTXVzdCBjYWxsIHNldFNob3dDbG9zZWJveCgpIGJlZm9yZSByZW5kZXJpbmciKTtiLnM9ITE7Yj10aGlzLmE7UFNfayghYi5GLCJNdXN0IGNhbGwgc2V0UG9zaXRpb24oKSBiZWZvcmUgcmVuZGVyaW5nIik7Yj1iLmg7UFNfZCh2b2lkIDApJmFtcDsmYW1wOyhiLnU9TWF0aC5tYXgodm9pZCAwLDE1KSk7UFNfZCgtMTUpJmFtcDsmYW1wOyhiLmg9LTE1KTtiPXRoaXMuYTthPWEuaW5uZXJIVE1MO1BTX2soUFNfYyhhKXx8YS5ub2RlVHlwZXx8YSBpbnN0YW5jZW9mIFBTXzV8fGEgaW5zdGFuY2VvZiBQU19ILCJDb250ZW50IG11c3QgYmUgYSBzdHJpbmcgb3IgSFRNTC4iKTtiLkg9YTtQU19FZChiLGEpO2E9dGhpcy5hO2lmKGEuRil0aHJvdyBFcnJvcigiQ29tcG9uZW50IGFscmVhZHkgcmVuZGVyZWQiKTthLmF8fGEucmEoKTthLmYuYS5ib2R5LmFwcGVuZENoaWxkKGEuYSk7YS5nJmFtcDsmYW1wOyFhLmcuRnx8CmEuZGEoKTt0aGlzLmEuZmEoITApfX0sdGhpcyk7bCgpfTsKdmFyIFBTX19kPWZ1bmN0aW9uKGEsYil7UFNfN2QoYSwiaGFzLWNhcHRjaGEiLCEwKTthLkQ9ITA7dmFyIGM9UFNfamMoImltZyIsIiIsYS5oKVswXTtjP2Muc3JjPWIuaW1nX3VybDooYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxjLnNldEF0dHJpYnV0ZSgic3JjIixiLmltZ191cmwpLGMuc2V0QXR0cmlidXRlKCJhbHQiLFBTX1FiKGEuaCkpLGEuaC5hcHBlbmRDaGlsZChjKSk7YS5ZLnNldEF0dHJpYnV0ZSgidmFsdWUiLFBTX2ooYi5pbWdfdG9rZW4pKTthLncudmFsdWU9IiI7UFNfWShhLlgsITApfSxQU19XZD1mdW5jdGlvbihhKXtQU183ZChhLCJoYXMtY2FwdGNoYSIsITEpOyJwYXNzd29yZCI9PWEuYy5hPyhhLkQ9ITEsUFNfcWMoYS5oKSxhLncudmFsdWU9IiIsUFNfWShhLlgsITEpKTpQU19yYyhQU19QKCJjYXB0Y2hhLWNvbnRhaW5lciIsYS5JKSl9LFBTX1VkPWZ1bmN0aW9uKGEpe1BTX1lhKCl8fFBTX3AoImlQYWQiKXx8UFNfcCgiaVBvZCIpfHxhLmZvY3VzKCl9Owo8L3NjcmlwdD4KICA8c2NyaXB0PgogIHBhc3N3b3JkU2VwYXJhdGlvblBhZ2UgPSBuZXcgZ2FpYS5wYWdlcy5QYXNzd29yZFNlcGFyYXRpb25QYWdlKAogIDAKICAsICdodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vU2VydmljZUxvZ2luQXV0aCcpOwogIDwvc2NyaXB0PjxpbnB1dCB0eXBlPSJ0ZXh0IiBzdHlsZT0iZGlzcGxheTpub25lIiBpZD0iaGlzdG9yeV9zdGF0ZTAiIG5hbWU9Imhpc3Rvcnlfc3RhdGUwIiAvPgo8c2NyaXB0PgogIChmdW5jdGlvbigpewogIHZhciBzaWduaW5JbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaWduSW4nKTsKICBnYWlhX29uTG9naW5TdWJtaXQgPSBmdW5jdGlvbigpIHsKICB0cnkgewogIGRvY3VtZW50LmJnLmludm9rZShmdW5jdGlvbihyZXNwb25zZSkgewogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZ3Jlc3BvbnNlJykudmFsdWUgPSByZXNwb25zZTsKICB9KTsKICB9IGNhdGNoIChlcnIpIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmdyZXNwb25zZScpLnZhbHVlID0gJyc7CiAgfQogIHJldHVybiB0cnVlOwogIH0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2FpYV9sb2dpbmZvcm0nKS5vbnN1Ym1pdCA9IGdhaWFfb25Mb2dpblN1Ym1pdDsKICB2YXIgc2lnbmluQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NpZ25JbicpOwogIGdhaWFfYXR0YWNoRXZlbnQod2luZG93LCAnbG9hZCcsIGZ1bmN0aW9uKCl7CiAgZ2FpYV9zY3JvbGxUb0VsZW1lbnQoc2lnbmluQnV0dG9uKTsKICB9KTsKICB9KSgpOwo8L3NjcmlwdD4KICAKCjwvYm9keT48L2h0bWw+" target="_blank">Source</a> <a class="screenshot" href="#" target="_blank">Screenshot</a> <a class="settings" href="data:text/plain;charset=utf-8;base64,ewogICAgImFjY2Vzc2liaWxpdHkuaW52ZXJ0IjogZmFsc2UsCiAgICAiYWNjZXNzaWJpbGl0eS5zY3JlZW5yZWFkZXIiOiBmYWxzZSwKICAgICJhaXJwbGFuZU1vZGUuZW5hYmxlZCI6IGZhbHNlLAogICAgImFpcnBsYW5lTW9kZS5zdGF0dXMiOiAiZGlzYWJsZWQiLAogICAgImFsYXJtLmVuYWJsZWQiOiBmYWxzZSwKICAgICJhbGFybS5yaW5ndG9uZSI6IHsKICAgICAgICAic2l6ZSI6IDM2NzYxLAogICAgICAgICJzbGljZSI6IG51bGwsCiAgICAgICAgInR5cGUiOiAiYXVkaW8vb2dnIgogICAgfSwKICAgICJhcG4uc2VsZWN0aW9ucyI6IG51bGwsCiAgICAiYXBwLXN1c3BlbmRpbmcuZW5hYmxlZCI6IHRydWUsCiAgICAiYXBwLXRoZW1lY29sb3IuZW5hYmxlZCI6IHRydWUsCiAgICAiYXBwLXRyYW5zaXRpb24uZW5hYmxlZCI6IHRydWUsCiAgICAiYXBwLmNhcmRzX3ZpZXcuc2NyZWVuc2hvdHMuZW5hYmxlZCI6IHRydWUsCiAgICAiYXBwLmxhdW5jaF9wYXRoLmJsYWNrbGlzdCI6IFtdLAogICAgImFwcC5yZXBvcnRDcmFzaGVzIjogImFzayIsCiAgICAiYXBwLnVwZGF0ZS5iYXR0ZXJ5LXRocmVzaG9sZC5wbHVnZ2VkIjogMjUsCiAgICAiYXBwLnVwZGF0ZS5iYXR0ZXJ5LXRocmVzaG9sZC51bnBsdWdnZWQiOiAyNSwKICAgICJhcHAudXBkYXRlLmNoYW5uZWwiOiAiZGVmYXVsdCIsCiAgICAiYXBwLnVwZGF0ZS5pbnRlcnZhbCI6IDg2NDAwLAogICAgImFwcC51cGRhdGUudXJsIjogImh0dHBzOi8vYXVzNC5tb3ppbGxhLm9yZy91cGRhdGUvMy8lUFJPRFVDVCUvJVZFUlNJT04lLyVCVUlMRF9JRCUvJVBST0RVQ1RfREVWSUNFJS8lTE9DQUxFJS8lQ0hBTk5FTCUvJU9TX1ZFUlNJT04lLyVESVNUUklCVVRJT04lLyVESVNUUklCVVRJT05fVkVSU0lPTiUvdXBkYXRlLnhtbCIsCiAgICAiYXBwc2VhcmNoLnVybCI6ICJodHRwczovL2FwcHNlYXJjaC5zZXJ2aWNlcy5tb3ppbGxhLmNvbS9wYXJ0bmVycy8xLjAve3Jlc291cmNlfS8iLAogICAgImFwei5mb3JjZS1lbmFibGUiOiB0cnVlLAogICAgImFwei5vdmVyc2Nyb2xsLmVuYWJsZWQiOiB0cnVlLAogICAgImF1ZGlvLnZvbHVtZS5hbGFybSI6IDAsCiAgICAiYXVkaW8udm9sdW1lLmJ0X3NjbyI6IDE1LAogICAgImF1ZGlvLnZvbHVtZS5jZW1heHZvbCI6IDExLAogICAgImF1ZGlvLnZvbHVtZS5jb250ZW50IjogMCwKICAgICJhdWRpby52b2x1bWUuZHRtZiI6IDE1LAogICAgImF1ZGlvLnZvbHVtZS5tYXN0ZXIiOiA1LAogICAgImF1ZGlvLnZvbHVtZS5ub3RpZmljYXRpb24iOiAwLAogICAgImF1ZGlvLnZvbHVtZS50ZWxlcGhvbnkiOiA1LAogICAgImF1ZGlvLnZvbHVtZS50dHMiOiAxNSwKICAgICJibHVldG9vdGguZGVidWdnaW5nLmVuYWJsZWQiOiBmYWxzZSwKICAgICJibHVldG9vdGguZGV2aWNlLmNvbm5lY3RlZCI6IG51bGwsCiAgICAiYmx1ZXRvb3RoLmVuYWJsZWQiOiBmYWxzZSwKICAgICJibHVldG9vdGguc3VzcGVuZGVkIjogZmFsc2UsCiAgICAiY2FtZXJhLnJlY29yZGluZy5wcmVmZXJyZWRTaXplcyI6IFtdLAogICAgImNhbWVyYS5zb3VuZC5lbmFibGVkIjogdHJ1ZSwKICAgICJjbGVhci5yZW1vdGUtd2luZG93cy5kYXRhIjogZmFsc2UsCiAgICAiY21hcy5lbmFibGVkIjogWwogICAgICAgIHRydWUsCiAgICAgICAgdHJ1ZQogICAgXSwKICAgICJjb250aW51b3VzLXRyYW5zaXRpb24uZW5hYmxlZCI6IGZhbHNlLAogICAgImRlYnVnLmNvbnNvbGUuZW5hYmxlZCI6IHRydWUsCiAgICAiZGVidWcuZnBzLmVuYWJsZWQiOiBmYWxzZSwKICAgICJkZWJ1Zy5nYWlhLmVuYWJsZWQiOiBmYWxzZSwKICAgICJkZWJ1Zy5sb2ctYW5pbWF0aW9ucy5lbmFibGVkIjogZmFsc2UsCiAgICAiZGVidWcub29wLmRpc2FibGVkIjogZmFsc2UsCiAgICAiZGVidWcucGFpbnQtZmxhc2hpbmcuZW5hYmxlZCI6IGZhbHNlLAogICAgImRlYnVnLnBlZm9ybWFuY2VkYXRhLnNoYXJlZCI6IGZhbHNlLAogICAgImRlYnVnLnBlcmZvcm1hbmNlX2RhdGEuc2hhcmVkIjogZmFsc2UsCiAgICAiZGVidWcudHRsLmVuYWJsZWQiOiBmYWxzZSwKICAgICJkZWJ1Z2dlci5yZW1vdGUtbW9kZSI6ICJhZGItb25seSIsCiAgICAiZGV2ZWxvcGVyLm1lbnUuZW5hYmxlZCI6IHRydWUsCiAgICAiZGV2aWNlLnN0b3JhZ2Uud3JpdGFibGUubmFtZSI6ICJzZGNhcmQiLAogICAgImRldmljZWluZm8uYnVpbGRfbnVtYmVyIjogImVuZy5jbHRibGQuMjAxNTA2MTQuMTk1NTMyIiwKICAgICJkZXZpY2VpbmZvLmZpcm13YXJlX3JldmlzaW9uIjogIiIsCiAgICAiZGV2aWNlaW5mby5oYXJkd2FyZSI6ICJxY29tIiwKICAgICJkZXZpY2VpbmZvLm1hYyI6ICIiLAogICAgImRldmljZWluZm8ub3MiOiAiMi4xLjAuMC1wcmVyZWxlYXNlIiwKICAgICJkZXZpY2VpbmZvLnBsYXRmb3JtX2J1aWxkX2lkIjogIjIwMTUwNjE0MTYxMjA1IiwKICAgICJkZXZpY2VpbmZvLnBsYXRmb3JtX3ZlcnNpb24iOiAiMzQuMCIsCiAgICAiZGV2aWNlaW5mby5wcmV2aW91c19vcyI6ICIyLjEuMC4wLXByZXJlbGVhc2UiLAogICAgImRldmljZWluZm8ucHJvZHVjdF9tb2RlbCI6ICJmbGFtZSIsCiAgICAiZGV2aWNlaW5mby5zb2Z0d2FyZSI6ICJCb290MkdlY2tvIDIuMS4wLjAtcHJlcmVsZWFzZSIsCiAgICAiZGV2dG9vbHMuZXZlbnRsb29wbGFnLnRocmVzaG9sZCI6IDEwMCwKICAgICJkZXZ0b29scy5vdmVybGF5IjogZmFsc2UsCiAgICAiZGV2dG9vbHMub3ZlcmxheS5zeXN0ZW0iOiBmYWxzZSwKICAgICJkZXZ0b29scy5yZW1vdGUud2lmaS5lbmFibGVkIjogZmFsc2UsCiAgICAiZGV2dG9vbHMucmVtb3RlLndpZmkudmlzaWJsZSI6IGZhbHNlLAogICAgImRpYWxlci5yaW5ndG9uZSI6IHsKICAgICAgICAic2l6ZSI6IDEyMjYwOCwKICAgICAgICAic2xpY2UiOiBudWxsLAogICAgICAgICJ0eXBlIjogImF1ZGlvL29nZyIKICAgIH0sCiAgICAiZGlhbGVyLnJpbmd0b25lLmRlZmF1bHQuaWQiOiAiYnVpbHRpbjpyaW5ndG9uZS9yaW5nZXJfZmlyZWZveCIsCiAgICAiZGlhbGVyLnJpbmd0b25lLmlkIjogImJ1aWx0aW46cmluZ3RvbmUvcmluZ2VyX2ZpcmVmb3giLAogICAgImRpYWxlci5yaW5ndG9uZS5uYW1lIjogewogICAgICAgICJsMTBuSUQiOiAicmluZ2VyX2ZpcmVmb3gyIgogICAgfSwKICAgICJkb20ubW1zLm9wZXJhdG9yU2l6ZUxpbWl0YXRpb24iOiAzMDcyMDAsCiAgICAiZG9tLm1vekFwcHMuc2lnbmVkX2FwcHNfaW5zdGFsbGFibGVfZnJvbSI6ICJodHRwczovL21hcmtldHBsYWNlLmZpcmVmb3guY29tLGh0dHBzOi8vbWFya2V0cGxhY2UuYWxsaXpvbS5vcmciLAogICAgImVkZ2VzZ2VzdHVyZS5lbmFibGVkIjogdHJ1ZSwKICAgICJmZWVkYmFjay51cmwiOiAiaHR0cHM6Ly9pbnB1dC5hbGxpem9tLm9yZy9hcGkvdjEvZmVlZGJhY2svIiwKICAgICJmaW5kbXlkZXZpY2UudWkuZW5hYmxlZCI6IHRydWUsCiAgICAiZnR1Lm1hbmlmZXN0VVJMIjogImFwcDovL2Z0dS5nYWlhbW9iaWxlLm9yZy9tYW5pZmVzdC53ZWJhcHAiLAogICAgImZ0dS5waW5nVVJMIjogImh0dHBzOi8vZnhvcy50ZWxlbWV0cnkubW96aWxsYS5vcmcvc3VibWl0L3RlbGVtZXRyeSIsCiAgICAiZ2FpYS5zeXN0ZW0uY2hlY2tGb3JVcGRhdGVzIjogZmFsc2UsCiAgICAiZ2FpYS51aS5oaWdobGlnaHQiOiAiI2IyZjJmZiIsCiAgICAiZ2FpYS51aS5pbmZvYmFja2dyb3VuZCI6ICIjMzQzZTQwIiwKICAgICJnYWlhLnVpLmluZm90ZXh0IjogIiM2ODY4NjgiLAogICAgImdhaWEudWkubWVudSI6ICIjZjk3YzE3IiwKICAgICJnYWlhLnVpLm1lbnV0ZXh0IjogIiNmZmZmZmYiLAogICAgImdhaWEudWkud2luZG93IjogIiNmZmZmZmYiLAogICAgImdhaWEudWkud2luZG93dGV4dCI6ICIjMDAwMDAwIiwKICAgICJnZWNrby51cGRhdGVTdGF0dXMiOiAibm8tdXBkYXRlcyIsCiAgICAiZ2VvbG9jYXRpb24uZGVidWdnaW5nLmVuYWJsZWQiOiBmYWxzZSwKICAgICJnZW9sb2NhdGlvbi5lbmFibGVkIjogdHJ1ZSwKICAgICJnZW9sb2NhdGlvbi5zdXNwZW5kZWQiOiBmYWxzZSwKICAgICJob21lZ2VzdHVyZS5lbmFibGVkIjogZmFsc2UsCiAgICAiaG9tZXNjcmVlbi5tYW5pZmVzdFVSTCI6ICJhcHA6Ly92ZXJ0aWNhbGhvbWUuZ2FpYW1vYmlsZS5vcmcvbWFuaWZlc3Qud2ViYXBwIiwKICAgICJodWQuYXBwbWVtb3J5IjogZmFsc2UsCiAgICAiaHVkLmRvbSI6IGZhbHNlLAogICAgImh1ZC5lcnJvcnMiOiB0cnVlLAogICAgImh1ZC5qYW5rIjogZmFsc2UsCiAgICAiaHVkLmpzb2JqZWN0cyI6IGZhbHNlLAogICAgImh1ZC5qc290aGVyIjogZmFsc2UsCiAgICAiaHVkLmpzc3RyaW5ncyI6IGZhbHNlLAogICAgImh1ZC5sb2dnaW5nIjogdHJ1ZSwKICAgICJodWQub3RoZXIiOiBmYWxzZSwKICAgICJodWQucmVmbG93cyI6IGZhbHNlLAogICAgImh1ZC5zZWN1cml0eSI6IHRydWUsCiAgICAiaHVkLnN0eWxlIjogZmFsc2UsCiAgICAiaHVkLnVzcyI6IHRydWUsCiAgICAiaHVkLndhcm5pbmdzIjogdHJ1ZSwKICAgICJpY2MuYXBwbGljYXRpb25zIjogIntcIjFcIjp7XCJpY2NJZFwiOlwiODk4ODY5MjAwMzEwMzE0NTIzMDFcIixcImVudHJpZXNcIjp7XCJ0aXRsZVwiOlwiXHU0ZTJkXHU4M2VmXHU5NmZiXHU0ZmUxXHU1MzQwXCIsXCJpdGVtc1wiOlt7XCJpZGVudGlmaWVyXCI6MSxcInRleHRcIjpcImVtb21lXHU3NDA2XHU4Y2ExXCJ9LHtcImlkZW50aWZpZXJcIjoyLFwidGV4dFwiOlwiZW1vbWVcdTUyYTBcdTUwM2NcIn1dLFwicHJlc2VudGF0aW9uVHlwZVwiOjB9fX0iLAogICAgImljYy5kYXRhIjogbnVsbCwKICAgICJpY2MuZGlzcGxheVRleHRUaW1lb3V0IjogNDAwMDAsCiAgICAiaWNjLmdvQmFja1RpbWVvdXQiOiA0MDAwLAogICAgImljYy5pbnB1dFRleHRUaW1lb3V0IjogNDAwMDAsCiAgICAiaWNjLnNlbGVjdFRpbWVvdXQiOiAxNTAwMDAsCiAgICAiaWNjLnRvbmVEZWZhdWx0VGltZW91dCI6IDUwMDAsCiAgICAiaWRlbnRpdHkuZnhhY2NvdW50cy5yZXNldC1wYXNzd29yZC51cmwiOiAiaHR0cHM6Ly9hY2NvdW50cy5maXJlZm94LmNvbS9yZXNldF9wYXNzd29yZCIsCiAgICAiaW4tYXBwLXNoZWV0LmVuYWJsZWQiOiBmYWxzZSwKICAgICJrZXlib2FyZC4zcmQtcGFydHktYXBwLmVuYWJsZWQiOiB0cnVlLAogICAgImtleWJvYXJkLmF1dG9jb3JyZWN0IjogZmFsc2UsCiAgICAia2V5Ym9hcmQuY2xpY2tzb3VuZCI6IGZhbHNlLAogICAgImtleWJvYXJkLmN1cnJlbnQiOiAiZW4iLAogICAgImtleWJvYXJkLmRlZmF1bHQtbGF5b3V0cyI6IHsKICAgICAgICAiYXBwOi8va2V5Ym9hcmQuZ2FpYW1vYmlsZS5vcmcvbWFuaWZlc3Qud2ViYXBwIjogewogICAgICAgICAgICAiZW4iOiB0cnVlLAogICAgICAgICAgICAibnVtYmVyIjogdHJ1ZQogICAgICAgIH0KICAgIH0sCiAgICAia2V5Ym9hcmQuZW5hYmxlZC1sYXlvdXRzIjogewogICAgICAgICJhcHA6Ly9rZXlib2FyZC5nYWlhbW9iaWxlLm9yZy9tYW5pZmVzdC53ZWJhcHAiOiB7CiAgICAgICAgICAgICJlbiI6IHRydWUsCiAgICAgICAgICAgICJudW1iZXIiOiB0cnVlCiAgICAgICAgfQogICAgfSwKICAgICJrZXlib2FyZC5mdHUuZW5hYmxlZCI6IGZhbHNlLAogICAgImtleWJvYXJkLmxhdW5jaC1vbi1ib290IjogdHJ1ZSwKICAgICJrZXlib2FyZC52aWJyYXRpb24iOiB0cnVlLAogICAgImtleWJvYXJkLndvcmRzdWdnZXN0aW9uIjogdHJ1ZSwKICAgICJsYW5ndWFnZS5jdXJyZW50IjogImVuLVVTIiwKICAgICJsYXllcnMuY29tcG9zZXIyZC5lbmFibGVkIjogdHJ1ZSwKICAgICJsYXllcnMuZHJhdy1ib3JkZXJzIjogZmFsc2UsCiAgICAibGF5ZXJzLmR1bXAiOiBmYWxzZSwKICAgICJsYXllcnMuZWZmZWN0LmNvbnRyYXN0IjogIjAuMCIsCiAgICAibGF5ZXJzLmVmZmVjdC5ncmF5c2NhbGUiOiBmYWxzZSwKICAgICJsYXllcnMuZWZmZWN0LmludmVydCI6IGZhbHNlLAogICAgImxheWVycy5lbmFibGUtdGlsZXMiOiB0cnVlLAogICAgImxheWVycy5sb3ctb3BhY2l0eSI6IHRydWUsCiAgICAibGF5ZXJzLmxvdy1wcmVjaXNpb24iOiB0cnVlLAogICAgImxheWVycy5zaW1wbGUtdGlsZXMiOiBmYWxzZSwKICAgICJsb2NhbGUuaG91cjEyIjogdHJ1ZSwKICAgICJsb2Nrc2NyZWVuLmVuYWJsZWQiOiB0cnVlLAogICAgImxvY2tzY3JlZW4ubG9ja2VkIjogZmFsc2UsCiAgICAibG9ja3NjcmVlbi5ub3RpZmljYXRpb25zLXByZXZpZXcuZW5hYmxlZCI6IHRydWUsCiAgICAibG9ja3NjcmVlbi5wYXNzY29kZS1sb2NrLmNvZGUiOiAiMDAwMCIsCiAgICAibG9ja3NjcmVlbi5wYXNzY29kZS1sb2NrLmVuYWJsZWQiOiBmYWxzZSwKICAgICJsb2Nrc2NyZWVuLnBhc3Njb2RlLWxvY2sudGltZW91dCI6IDAsCiAgICAibG9ja3NjcmVlbi51bmxvY2stc291bmQuZW5hYmxlZCI6IGZhbHNlLAogICAgIm1lZGlhLnJpbmd0b25lIjogewogICAgICAgICJzaXplIjogMTI2MTIsCiAgICAgICAgInNsaWNlIjogbnVsbCwKICAgICAgICAidHlwZSI6ICJhdWRpby9vZ2ciCiAgICB9LAogICAgIm1lc3NhZ2Uuc2VudC1zb3VuZC5lbmFibGVkIjogdHJ1ZSwKICAgICJuZmMuZGVidWdnaW5nLmVuYWJsZWQiOiBmYWxzZSwKICAgICJuZmMuZW5hYmxlZCI6IGZhbHNlLAogICAgIm5mYy5zdXNwZW5kZWQiOiBmYWxzZSwKICAgICJub3RpZmljYXRpb24ucmluZ3RvbmUiOiB7CiAgICAgICAgInNpemUiOiAxMjYxMiwKICAgICAgICAic2xpY2UiOiBudWxsLAogICAgICAgICJ0eXBlIjogImF1ZGlvL29nZyIKICAgIH0sCiAgICAibm90aWZpY2F0aW9uLnJpbmd0b25lLmRlZmF1bHQuaWQiOiAiYnVpbHRpbjphbGVydHRvbmUvbm90aWZpZXJfZmlyZWZveCIsCiAgICAibm90aWZpY2F0aW9uLnJpbmd0b25lLmlkIjogImJ1aWx0aW46YWxlcnR0b25lL25vdGlmaWVyX2ZpcmVmb3giLAogICAgIm5vdGlmaWNhdGlvbi5yaW5ndG9uZS5uYW1lIjogewogICAgICAgICJsMTBuSUQiOiAibm90aWZpZXJfZmlyZWZveDIiCiAgICB9LAogICAgIm5vdGlmaWNhdGlvbnMucmVzZW5kIjogdHJ1ZSwKICAgICJvcGVyYXRvcnZhcmlhbnQuMi4xLjAuMC1wcmVyZWxlYXNlLklDQzAuY3VzdG9taXphdGlvbiI6IHRydWUsCiAgICAib3BlcmF0b3J2YXJpYW50LmljY0lkIjogWwogICAgICAgICI4OTg4NjkyMDAzMTAzMTQ1MjMwMSIsCiAgICAgICAgbnVsbAogICAgXSwKICAgICJvcGVyYXRvcnZhcmlhbnQubWNjIjogWwogICAgICAgICI0NjYiLAogICAgICAgICIwMDAiCiAgICBdLAogICAgIm9wZXJhdG9ydmFyaWFudC5tbmMiOiBbCiAgICAgICAgIjkyIiwKICAgICAgICAiMDAiCiAgICBdLAogICAgInBob25lLmR0bWYudHlwZSI6ICJsb25nIiwKICAgICJwaG9uZS5yaW5nLmtleXBhZCI6IHRydWUsCiAgICAicG93ZXJzYXZlLmVuYWJsZWQiOiBmYWxzZSwKICAgICJwb3dlcnNhdmUudGhyZXNob2xkIjogLTEsCiAgICAicHJpdmFjeS5kb25vdHRyYWNraGVhZGVyLmVuYWJsZWQiOiBmYWxzZSwKICAgICJwcml2YWN5LmRvbm90dHJhY2toZWFkZXIudmFsdWUiOiAiLTEiLAogICAgInJpbC5jYWxsZXJJZCI6ICJDTElSX0RFRkFVTFQiLAogICAgInJpbC5jYWxsd2FpdGluZy5lbmFibGVkIjogbnVsbCwKICAgICJyaWwuY2VsbGJyb2FkY2FzdC5kaXNhYmxlZCI6IFsKICAgICAgICBmYWxzZSwKICAgICAgICBmYWxzZQogICAgXSwKICAgICJyaWwuY2VsbGJyb2FkY2FzdC5zZWFyY2hsaXN0IjogWwogICAgICAgICIiLAogICAgICAgICIiCiAgICBdLAogICAgInJpbC5jZi5lbmFibGVkIjogWwogICAgICAgIGZhbHNlLAogICAgICAgIGZhbHNlCiAgICBdLAogICAgInJpbC5kYXRhLmFwbiI6ICJpbnRlcm5ldCIsCiAgICAicmlsLmRhdGEuYXBuU2V0dGluZ3MiOiBbCiAgICAgICAgWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiYXBuIjogImludGVybmV0IiwKICAgICAgICAgICAgICAgICJjYXJyaWVyIjogIlx1NGUyZFx1ODNlZlx1OTZmYlx1NGZlMShDaHVuZ2h3YSkgKEludGVybmV0KSIsCiAgICAgICAgICAgICAgICAidHlwZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhcG4iOiAiZW1vbWUiLAogICAgICAgICAgICAgICAgImNhcnJpZXIiOiAiXHU0ZTJkXHU4M2VmXHU5NmZiXHU0ZmUxKENodW5naHdhKSAoTU1TKSIsCiAgICAgICAgICAgICAgICAibW1zYyI6ICJodHRwOi8vbW1zLmVtb21lLm5ldDo4MDAyIiwKICAgICAgICAgICAgICAgICJtbXNwb3J0IjogIjgwODAiLAogICAgICAgICAgICAgICAgIm1tc3Byb3h5IjogIjEwLjEuMS4xIiwKICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgICAgICAgICAibW1zIgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiYXBuIjogImludGVybmV0IiwKICAgICAgICAgICAgICAgICJjYXJyaWVyIjogIlx1NGUyZFx1ODNlZlx1OTZmYlx1NGZlMShDaHVuZ2h3YSkgKEludGVybmV0KSIsCiAgICAgICAgICAgICAgICAidHlwZXMiOiBbCiAgICAgICAgICAgICAgICAgICAgInN1cGwiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgIFtdCiAgICBdLAogICAgInJpbC5kYXRhLmF1dGh0eXBlIjogIm5vdERlZmluZWQiLAogICAgInJpbC5kYXRhLmNhcnJpZXIiOiAiXHU0ZTJkXHU4M2VmXHU5NmZiXHU0ZmUxKENodW5naHdhKSAoSW50ZXJuZXQpIiwKICAgICJyaWwuZGF0YS5jcC5hcG5zIjogIiIsCiAgICAicmlsLmRhdGEuZGVmYXVsdC5hcG5TZXR0aW5ncyI6IFsKICAgICAgICBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhcG4iOiAiaW50ZXJuZXQiLAogICAgICAgICAgICAgICAgImNhcnJpZXIiOiAiXHU0ZTJkXHU4M2VmXHU5NmZiXHU0ZmUxKENodW5naHdhKSAoSW50ZXJuZXQpIiwKICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImFwbiI6ICJlbW9tZSIsCiAgICAgICAgICAgICAgICAiY2FycmllciI6ICJcdTRlMmRcdTgzZWZcdTk2ZmJcdTRmZTEoQ2h1bmdod2EpIChNTVMpIiwKICAgICAgICAgICAgICAgICJtbXNjIjogImh0dHA6Ly9tbXMuZW1vbWUubmV0OjgwMDIiLAogICAgICAgICAgICAgICAgIm1tc3BvcnQiOiAiODA4MCIsCiAgICAgICAgICAgICAgICAibW1zcHJveHkiOiAiMTAuMS4xLjEiLAogICAgICAgICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgICAgICAgICJtbXMiCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJhcG4iOiAiaW50ZXJuZXQiLAogICAgICAgICAgICAgICAgImNhcnJpZXIiOiAiXHU0ZTJkXHU4M2VmXHU5NmZiXHU0ZmUxKENodW5naHdhKSAoSW50ZXJuZXQpIiwKICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgICAgICAgICAic3VwbCIKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgW10KICAgIF0sCiAgICAicmlsLmRhdGEuZGVmYXVsdC5hcG5zIjogewogICAgICAgICI0NjYiOiB7CiAgICAgICAgICAgICI5MiI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiYXBuIjogImludGVybmV0IiwKICAgICAgICAgICAgICAgICAgICAiY2FycmllciI6ICJcdTRlMmRcdTgzZWZcdTk2ZmJcdTRmZTEoQ2h1bmdod2EpIChJbnRlcm5ldCkiLAogICAgICAgICAgICAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQiLAogICAgICAgICAgICAgICAgICAgICAgICAic3VwbCIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcG4iOiAiZW1vbWUiLAogICAgICAgICAgICAgICAgICAgICJjYXJyaWVyIjogIlx1NGUyZFx1ODNlZlx1OTZmYlx1NGZlMShDaHVuZ2h3YSkgKE1NUykiLAogICAgICAgICAgICAgICAgICAgICJtbXNjIjogImh0dHA6Ly9tbXMuZW1vbWUubmV0OjgwMDIiLAogICAgICAgICAgICAgICAgICAgICJtbXNwb3J0IjogIjgwODAiLAogICAgICAgICAgICAgICAgICAgICJtbXNwcm94eSI6ICIxMC4xLjEuMSIsCiAgICAgICAgICAgICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgICAgICAgICAgICAibW1zIgogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgIH0KICAgIH0sCiAgICAicmlsLmRhdGEuZGVmYXVsdFNlcnZpY2VJZCI6IDAsCiAgICAicmlsLmRhdGEuZW5hYmxlZCI6IGZhbHNlLAogICAgInJpbC5kYXRhLmh0dHBQcm94eUhvc3QiOiAiIiwKICAgICJyaWwuZGF0YS5odHRwUHJveHlQb3J0IjogIiIsCiAgICAicmlsLmRhdGEubW1zYyI6ICIiLAogICAgInJpbC5kYXRhLm1tc3BvcnQiOiAwLAogICAgInJpbC5kYXRhLm1tc3Byb3h5IjogIiIsCiAgICAicmlsLmRhdGEucGFzc3dkIjogIiIsCiAgICAicmlsLmRhdGEucm9hbWluZ19lbmFibGVkIjogZmFsc2UsCiAgICAicmlsLmRhdGEuc3VzcGVuZGVkIjogZmFsc2UsCiAgICAicmlsLmRhdGEudXNlciI6ICIiLAogICAgInJpbC5kdW4uYXBuIjogIiIsCiAgICAicmlsLmR1bi5hdXRodHlwZSI6ICJub3REZWZpbmVkIiwKICAgICJyaWwuZHVuLmNhcnJpZXIiOiAiIiwKICAgICJyaWwuZHVuLmh0dHBQcm94eUhvc3QiOiAiIiwKICAgICJyaWwuZHVuLmh0dHBQcm94eVBvcnQiOiAiIiwKICAgICJyaWwuZHVuLnBhc3N3ZCI6ICIiLAogICAgInJpbC5kdW4udXNlciI6ICIiLAogICAgInJpbC5pY2NJbmZvLm1iZG4iOiBbCiAgICAgICAgIiIsCiAgICAgICAgIiIKICAgIF0sCiAgICAicmlsLmltcy5hcG4iOiAiIiwKICAgICJyaWwuaW1zLmF1dGh0eXBlIjogIm5vdERlZmluZWQiLAogICAgInJpbC5pbXMuY2FycmllciI6ICIiLAogICAgInJpbC5pbXMuaHR0cFByb3h5SG9zdCI6ICIiLAogICAgInJpbC5pbXMuaHR0cFByb3h5UG9ydCI6ICIiLAogICAgInJpbC5pbXMucGFzc3dkIjogIiIsCiAgICAicmlsLmltcy51c2VyIjogIiIsCiAgICAicmlsLm1tcy5hcG4iOiAiZW1vbWUiLAogICAgInJpbC5tbXMuYXV0aHR5cGUiOiAibm90RGVmaW5lZCIsCiAgICAicmlsLm1tcy5jYXJyaWVyIjogIlx1NGUyZFx1ODNlZlx1OTZmYlx1NGZlMShDaHVuZ2h3YSkgKE1NUykiLAogICAgInJpbC5tbXMuZGVmYXVsdFNlcnZpY2VJZCI6IDAsCiAgICAicmlsLm1tcy5odHRwUHJveHlIb3N0IjogIiIsCiAgICAicmlsLm1tcy5odHRwUHJveHlQb3J0IjogIiIsCiAgICAicmlsLm1tcy5tbXNjIjogImh0dHA6Ly9tbXMuZW1vbWUubmV0OjgwMDIiLAogICAgInJpbC5tbXMubW1zcG9ydCI6ICI4MDgwIiwKICAgICJyaWwubW1zLm1tc3Byb3h5IjogIjEwLjEuMS4xIiwKICAgICJyaWwubW1zLnBhc3N3ZCI6ICIiLAogICAgInJpbC5tbXMucmVxdWVzdFJlYWRSZXBvcnQuZW5hYmxlZCI6IGZhbHNlLAogICAgInJpbC5tbXMucmV0cmlldmFsX21vZGUiOiAiYXV0b21hdGljLWhvbWUiLAogICAgInJpbC5tbXMudXNlciI6ICIiLAogICAgInJpbC5yYWRpby5kaXNhYmxlZCI6IGZhbHNlLAogICAgInJpbC5yYWRpby5wcmVmZXJyZWROZXR3b3JrVHlwZSI6IFsKICAgICAgICAid2NkbWEvZ3NtIiwKICAgICAgICAiZ3NtIgogICAgXSwKICAgICJyaWwuc21zLmRlZmF1bHRTZXJ2aWNlSWQiOiAwLAogICAgInJpbC5zbXMucmVxdWVzdFN0YXR1c1JlcG9ydC5lbmFibGVkIjogZmFsc2UsCiAgICAicmlsLnNtcy5zdHJpY3Q3Qml0RW5jb2RpbmcuZW5hYmxlZCI6IGZhbHNlLAogICAgInJpbC5zdXBsLmFwbiI6ICJpbnRlcm5ldCIsCiAgICAicmlsLnN1cGwuYXV0aHR5cGUiOiAibm90RGVmaW5lZCIsCiAgICAicmlsLnN1cGwuY2FycmllciI6ICJcdTRlMmRcdTgzZWZcdTk2ZmJcdTRmZTEoQ2h1bmdod2EpIChJbnRlcm5ldCkiLAogICAgInJpbC5zdXBsLmh0dHBQcm94eUhvc3QiOiAiIiwKICAgICJyaWwuc3VwbC5odHRwUHJveHlQb3J0IjogIiIsCiAgICAicmlsLnN1cGwucGFzc3dkIjogIiIsCiAgICAicmlsLnN1cGwudXNlciI6ICIiLAogICAgInJpbC50ZWxlcGhvbnkuZGVmYXVsdFNlcnZpY2VJZCI6IDAsCiAgICAicmlsLnZvaWNlbWFpbC5kZWZhdWx0U2VydmljZUlkIjogMCwKICAgICJyb2NrZXRiYXIubmV3VGFiQXBwVVJMIjogImFwcDovL3NlYXJjaC5nYWlhbW9iaWxlLm9yZy9pbmRleC5odG1sIiwKICAgICJyb2NrZXRiYXIuc2VhcmNoQXBwVVJMIjogImFwcDovL3NlYXJjaC5nYWlhbW9iaWxlLm9yZy9pbmRleC5odG1sIiwKICAgICJzY3JlZW4uYXV0b21hdGljLWJyaWdodG5lc3MiOiBmYWxzZSwKICAgICJzY3JlZW4uYnJpZ2h0bmVzcyI6IDEsCiAgICAic2NyZWVuLnRpbWVvdXQiOiAwLAogICAgInNlYXJjaC5pY29uVXJsIjogewogICAgICAgICJzaXplIjogMTE3MywKICAgICAgICAic2xpY2UiOiBudWxsLAogICAgICAgICJ0eXBlIjogImltYWdlL3gtaWNvbiIKICAgIH0sCiAgICAic2VhcmNoLnN1Z2dlc3Rpb25zLmVuYWJsZWQiOiB0cnVlLAogICAgInNlYXJjaC5zdWdnZXN0aW9uc1VybFRlbXBsYXRlIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vY29tcGxldGUvc2VhcmNoP2NsaWVudD1maXJlZm94JnE9e3NlYXJjaFRlcm1zfSIsCiAgICAic2VhcmNoLnVybFRlbXBsYXRlIjogImh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoP3E9e3NlYXJjaFRlcm1zfSIsCiAgICAic29mdHdhcmUtYnV0dG9uLmVuYWJsZWQiOiBmYWxzZSwKICAgICJzdGF0dXNiYXIubmV0d29yay1hY3Rpdml0eS5kaXNhYmxlZCI6IGZhbHNlLAogICAgInN0YXR1c2Jhci5zaG93LWFtLXBtIjogZmFsc2UsCiAgICAic3VwcG9ydC5jYWxsc3VwcG9ydDEuaHJlZiI6ICIiLAogICAgInN1cHBvcnQuY2FsbHN1cHBvcnQxLnRpdGxlIjogIiIsCiAgICAic3VwcG9ydC5jYWxsc3VwcG9ydDIuaHJlZiI6ICIiLAogICAgInN1cHBvcnQuY2FsbHN1cHBvcnQyLnRpdGxlIjogIiIsCiAgICAic3VwcG9ydC5vbmxpbmVzdXBwb3J0LmhyZWYiOiAiIiwKICAgICJzdXBwb3J0Lm9ubGluZXN1cHBvcnQudGl0bGUiOiAiIiwKICAgICJ0ZWxlcGhvbnkuc3BlYWtlci5lbmFibGVkIjogZmFsc2UsCiAgICAidGV0aGVyaW5nLnVzYi5jb25uZWN0ZWRDbGllbnRzIjogMCwKICAgICJ0ZXRoZXJpbmcudXNiLmRoY3BzZXJ2ZXIuZW5kaXAiOiAiMTkyLjE2OC4wLjMwIiwKICAgICJ0ZXRoZXJpbmcudXNiLmRoY3BzZXJ2ZXIuc3RhcnRpcCI6ICIxOTIuMTY4LjAuMTAiLAogICAgInRldGhlcmluZy51c2IuZW5hYmxlZCI6IGZhbHNlLAogICAgInRldGhlcmluZy51c2IuaXAiOiAiMTkyLjE2OC4wLjEiLAogICAgInRldGhlcmluZy51c2IucHJlZml4IjogIjI0IiwKICAgICJ0ZXRoZXJpbmcud2lmaS5jb25uZWN0ZWRDbGllbnRzIjogMCwKICAgICJ0ZXRoZXJpbmcud2lmaS5kaGNwc2VydmVyLmVuZGlwIjogIjE5Mi4xNjguMS4zMCIsCiAgICAidGV0aGVyaW5nLndpZmkuZGhjcHNlcnZlci5zdGFydGlwIjogIjE5Mi4xNjguMS4xMCIsCiAgICAidGV0aGVyaW5nLndpZmkuZW5hYmxlZCI6IGZhbHNlLAogICAgInRldGhlcmluZy53aWZpLmlwIjogIjE5Mi4xNjguMS4xIiwKICAgICJ0ZXRoZXJpbmcud2lmaS5wcmVmaXgiOiAiMjQiLAogICAgInRldGhlcmluZy53aWZpLnNlY3VyaXR5LnBhc3N3b3JkIjogIiIsCiAgICAidGV0aGVyaW5nLndpZmkuc2VjdXJpdHkudHlwZSI6ICJ3cGEyLXBzayIsCiAgICAidGV0aGVyaW5nLndpZmkuc3NpZCI6ICJGaXJlZm94SG90c3BvdCIsCiAgICAidGhlbWUuc2VsZWN0ZWQiOiAiYXBwOi8vZGVmYXVsdF90aGVtZS5nYWlhbW9iaWxlLm9yZy9tYW5pZmVzdC53ZWJhcHAiLAogICAgInRpbWUuY2xvY2suYXV0b21hdGljLXVwZGF0ZS5hdmFpbGFibGUiOiB0cnVlLAogICAgInRpbWUuY2xvY2suYXV0b21hdGljLXVwZGF0ZS5lbmFibGVkIjogdHJ1ZSwKICAgICJ0aW1lLnRpbWV6b25lIjogIlVUQyswODowMCIsCiAgICAidGltZS50aW1lem9uZS5hdXRvbWF0aWMtdXBkYXRlLmF2YWlsYWJsZSI6IHRydWUsCiAgICAidGltZS50aW1lem9uZS5hdXRvbWF0aWMtdXBkYXRlLmVuYWJsZWQiOiB0cnVlLAogICAgInVpLnRvdWNoLnJhZGl1cy5ib3R0b21tbSI6IDIsCiAgICAidWkudG91Y2gucmFkaXVzLmxlZnRtbSI6IDMsCiAgICAidWkudG91Y2gucmFkaXVzLnJpZ2h0bW0iOiAzLAogICAgInVpLnRvdWNoLnJhZGl1cy50b3BtbSI6IDUsCiAgICAidW1zLmVuYWJsZWQiOiBmYWxzZSwKICAgICJ1bXMubW9kZSI6IDAsCiAgICAidW1zLnN0YXR1cyI6IDAsCiAgICAidW1zLnZvbHVtZS5leHRlcm5hbC5lbmFibGVkIjogdHJ1ZSwKICAgICJ1bXMudm9sdW1lLmV4dHNkY2FyZC5lbmFibGVkIjogdHJ1ZSwKICAgICJ1bXMudm9sdW1lLnNkY2FyZC5lbmFibGVkIjogdHJ1ZSwKICAgICJ1bXMudm9sdW1lLnNkY2FyZDEuZW5hYmxlZCI6IHRydWUsCiAgICAidXNiLnRyYW5zZmVyIjogIjAiLAogICAgInZpYnJhdGlvbi5lbmFibGVkIjogdHJ1ZSwKICAgICJ2b2x1bWUuZXh0ZXJuYWwudW5yZWNvZ25pc2VkIjogZmFsc2UsCiAgICAid2FsbHBhcGVyLmltYWdlIjogewogICAgICAgICJzaXplIjogMjI0NTgwLAogICAgICAgICJzbGljZSI6IG51bGwsCiAgICAgICAgInR5cGUiOiAiaW1hZ2UvcG5nIgogICAgfSwKICAgICJ3YWxscGFwZXIuaW1hZ2UudmFsaWQiOiB0cnVlLAogICAgIndhcC5wdXNoLmVuYWJsZWQiOiB0cnVlLAogICAgIndpZmkuY29ubmVjdF92aWFfc2V0dGluZ3MiOiBmYWxzZSwKICAgICJ3aWZpLmRlYnVnZ2luZy5lbmFibGVkIjogdHJ1ZSwKICAgICJ3aWZpLmRpc2FibGVkX2J5X3dha2Vsb2NrIjogZmFsc2UsCiAgICAid2lmaS5lbmFibGVkIjogdHJ1ZSwKICAgICJ3aWZpLm5vdGlmaWNhdGlvbiI6IGZhbHNlLAogICAgIndpZmkuc2NyZWVuX29mZl90aW1lb3V0IjogNjAwMDAwLAogICAgIndpZmkuc3VzcGVuZGVkIjogZmFsc2UKfQ==" target="_blank">Settings</a> </td>
          <td class="debug">
            <div class="screenshot"><a href="#"><img src="data:image/png;base64,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"/></a></div>
            <div class="log">Traceback (most recent call last):<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client_mozilla_b2g34_v2_1-0.2-py2.7.egg/marionette/marionette_test.py", line 174, in run<br/>    testMethod()<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/gaiatest/tests/functional/contacts/test_import_contacts_from_gmail.py", line 39, in test_import_contacts_from_gmail<br/>    gmail.gmail_login(email, password)<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/gaiatest/apps/contacts/regions/gmail.py", line 26, in gmail_login<br/>    self.marionette.find_element(*self._password_locator).tap()<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client_mozilla_b2g34_v2_1-0.2-py2.7.egg/marionette/marionette.py", line 1282, in find_element<br/>    response = self._send_message('findElement', 'value', **kwargs)<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client_mozilla_b2g34_v2_1-0.2-py2.7.egg/marionette/decorators.py", line 35, in _<br/>    return func(*args, **kwargs)<br/>  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client_mozilla_b2g34_v2_1-0.2-py2.7.egg/marionette/marionette.py", line 641, in _send_message<br/><span class="error">    self._handle_error(response)</span><br/><span class="error">  File "/var/lib/jenkins/JenkinsCI/B2G_Flame_2dot1_Kitkat/B2G_Gaia_2dot1/tests/python/gaia-ui-tests/.env/local/lib/python2.7/site-packages/marionette_client_mozilla_b2g34_v2_1-0.2-py2.7.egg/marionette/marionette.py", line 675, in _handle_error</span><br/><span class="error">    raise errors.NoSuchElementException(message=message, status=status, stacktrace=stacktrace)</span><br/><span class="error">NoSuchElementException: NoSuchElementException: Unable to locate element: Passwd</span><br/></div></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_cost_control_ftu.TestCostControlFTU</td>
          <td class="col-name">test_cost_control_ftu</td>
          <td class="col-duration">91.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_cost_control_reset_wifi.TestCostControlReset</td>
          <td class="col-name">test_cost_control_reset_wifi</td>
          <td class="col-duration">139.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_dialer_airplane_mode.TestDialerAirplaneMode</td>
          <td class="col-name">test_dialer_airplane_mode</td>
          <td class="col-duration">83.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_MMI.TestMMI</td>
          <td class="col-name">test_MMI_code_IMEI</td>
          <td class="col-duration">79.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_dialer_add_contact.TestDialerAddContact</td>
          <td class="col-name">test_dialer_add_contact</td>
          <td class="col-duration">90.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_dialer_find_contact.TestDialerFindContact</td>
          <td class="col-name">test_dialer_find_contact</td>
          <td class="col-duration">83.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_dialer_miss_call_from_known_contact_notification.TestReceiveCallFromKnownContactNotification</td>
          <td class="col-name">test_dialer_miss_call_from_known_contact_notification</td>
          <td class="col-duration">98.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_dialer_receive_call_with_contact_photo.TestReceiveCallWithContactPhoto</td>
          <td class="col-name">test_dialer_receive_call_with_contact_photo</td>
          <td class="col-duration">86.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_everythingme_search.TestEverythingMeSearch</td>
          <td class="col-name">test_launch_everything_me_search</td>
          <td class="col-duration">88.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_fmradio_add_remove_from_favorites.TestFMRadioAddRemoveFavorites</td>
          <td class="col-name">test_add_remove_from_favorites</td>
          <td class="col-duration">82.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_fmradio_find_stations.TestFMRadioFindStations</td>
          <td class="col-name">test_find_next_previous_station</td>
          <td class="col-duration">82.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_fmradio_turn_on_off.TestFMRadioTurnOnOff</td>
          <td class="col-name">test_turn_radio_on_off</td>
          <td class="col-duration">86.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_gallery_empty.TestGalleryEmpty</td>
          <td class="col-name">test_empty_gallery</td>
          <td class="col-duration">75.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_gallery_delete_image.TestGalleryDelete</td>
          <td class="col-name">test_gallery_delete_image</td>
          <td class="col-duration">80.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_gallery_edit_photo.TestGalleryEditPhoto</td>
          <td class="col-name">test_gallery_edit_photo</td>
          <td class="col-duration">84.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_gallery_crop_photo.TestGalleryCropPhoto</td>
          <td class="col-name">test_gallery_crop_photo</td>
          <td class="col-duration">82.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_homescreen_column_layout.TestHomescreenLayout</td>
          <td class="col-name">test_homescreen_column_layout</td>
          <td class="col-duration">86.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_homescreen_change_wallpaper.TestHomescreenChangeWallpaper</td>
          <td class="col-name">test_homescreen_change_wallpaper_from_gallery</td>
          <td class="col-duration">83.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_homescreen_edit_mode.TestEditMode</td>
          <td class="col-name">test_access_and_leave_edit_mode</td>
          <td class="col-duration">81.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_homescreen_launch_app.TestLaunchApp</td>
          <td class="col-name">test_launch_app</td>
          <td class="col-duration">92.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_keyboard.TestKeyboard</td>
          <td class="col-name">test_keyboard_basic</td>
          <td class="col-duration">113.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_number_keyboard.TestNumberKeyboard</td>
          <td class="col-name">test_number_keyboard</td>
          <td class="col-duration">79.5</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_keyboard_predictive_key.TestKeyboardPredictiveKey</td>
          <td class="col-name">test_keyboard_predictive_key</td>
          <td class="col-duration">98.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_email_keyboard.TestEmailKeyboard</td>
          <td class="col-name">test_basic_email_keyboard</td>
          <td class="col-duration">92.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_keyboard_bug_1073870.TestKeyboardBug1073870</td>
          <td class="col-name">test_keyboard_bug_1073870</td>
          <td class="col-duration">86.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_lockscreen_unlock_to_homescreen_with_passcode.TestLockScreen</td>
          <td class="col-name">test_unlock_to_homescreen_with_passcode</td>
          <td class="col-duration">79.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_lockscreen_unlock_to_emergency_call_screen.TestLockScreen</td>
          <td class="col-name">test_unlock_to_emergency_call_screen</td>
          <td class="col-duration">77.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_lockscreen_notification.TestLockScreen</td>
          <td class="col-name">test_lock_screen_notification</td>
          <td class="col-duration">77.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_lockscreen_wake_with_notification.TestLockScreenNotification</td>
          <td class="col-name">test_lock_screen_wake_with_notification</td>
          <td class="col-duration">78.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_add_to_an_existing_contact_from_messages.TestSmsAddToExistingContact</td>
          <td class="col-name">test_sms_add_number_to_existing_contact</td>
          <td class="col-duration">93.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_add_to_new_contact_from_messages.TestSmsCreateContact</td>
          <td class="col-name">test_sms_create_new_contact</td>
          <td class="col-duration">96.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sms_add_contact.TestSmsAddContact</td>
          <td class="col-name">test_sms_add_contact</td>
          <td class="col-duration">101.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sms_to_dialer.TestDialerFromMessage</td>
          <td class="col-name">test_dialer_from_message</td>
          <td class="col-duration">83.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sms_contact_match.TestContactMatch</td>
          <td class="col-name">test_contact_match</td>
          <td class="col-duration">89.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sms_contact_input_validation.TestContactValidation</td>
          <td class="col-name">test_sms_contact_validation</td>
          <td class="col-duration">95.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_sms_notification.TestSmsNotification</td>
          <td class="col-name">test_sms_notification</td>
          <td class="col-duration">84.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_mms_add_subject.TestMmsAddSubject</td>
          <td class="col-name">test_mms_add_subject</td>
          <td class="col-duration">81.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_inbox_to_settings.TestSettingsFromInbox</td>
          <td class="col-name">test_settings_from_inbox</td>
          <td class="col-duration">81.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_music_album_mp3.TestMusic</td>
          <td class="col-name">test_select_album_play</td>
          <td class="col-duration">83.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_music_empty.TestMusicEmpty</td>
          <td class="col-name">test_empty_music</td>
          <td class="col-duration">76.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_music_songs_3gp.TestPlay3GPMusic</td>
          <td class="col-name">test_select_songs_play_3gp_file</td>
          <td class="col-duration">84.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_persona_app.TestPersonaStandard</td>
          <td class="col-name">test_persona_standard_sign_in</td>
          <td class="col-duration">102.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_change_language.TestChangeLanguage</td>
          <td class="col-name">test_change_language_settings</td>
          <td class="col-duration">86.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_change_language_rtl.TestChangeLanguageRTL</td>
          <td class="col-name">test_change_language_settings_rtl</td>
          <td class="col-duration">84.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_gps.TestSettingsGPS</td>
          <td class="col-name">test_enable_gps_via_settings_app</td>
          <td class="col-duration">76.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_do_not_track.TestSettingsDoNotTrack</td>
          <td class="col-name">test_enable_do_not_track_via_settings_app</td>
          <td class="col-duration">82.4</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_wifi.TestSettingsWifi</td>
          <td class="col-name">test_connect_to_wifi_via_settings_app</td>
          <td class="col-duration">85.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_airplane_mode.TestAirplaneMode</td>
          <td class="col-name">test_toggle_airplane_mode</td>
          <td class="col-duration">123.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_media_storage.TestSettingsMediaStorage</td>
          <td class="col-name">test_settings_media_storage</td>
          <td class="col-duration">86.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_wallpaper.TestWallpaper</td>
          <td class="col-name">test_change_wallpaper</td>
          <td class="col-duration">84.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_passcode.TestSettingsPasscode</td>
          <td class="col-name">test_set_passcode_by_settings</td>
          <td class="col-duration">88.5</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_change_keyboard_language.TestChangeKeyboardLanguage</td>
          <td class="col-name">test_change_keyboard_language_settings</td>
          <td class="col-duration">89.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_device_info.TestSettingsDeviceInfo</td>
          <td class="col-name">test_that_device_info_is_populated</td>
          <td class="col-duration">81.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_settings_power_save_mode.TestPowerSaveMode</td>
          <td class="col-name">test_power_save_mode</td>
          <td class="col-duration">87.5</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_system_notification_bar.TestNotificationBar</td>
          <td class="col-name">test_notification_bar</td>
          <td class="col-duration">80.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_geolocation_prompt.TestGeolocationPrompt</td>
          <td class="col-name">test_geolocation_prompt</td>
          <td class="col-duration">78.6</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_quick_settings.TestQuickSettingsButton</td>
          <td class="col-name">test_quick_settings_button</td>
          <td class="col-duration">75.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_system_message.TestSystemMessage</td>
          <td class="col-name">test_app_launched_by_system_message</td>
          <td class="col-duration">77.3</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_system_message_pending.TestSystemMessage</td>
          <td class="col-name">test_pending_system_message</td>
          <td class="col-duration">76.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_inter_app_comm.TestInterAppComm</td>
          <td class="col-name">test_inter_app_comm</td>
          <td class="col-duration">79.0</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_audio_capture_prompt.TestPrivilegedAppAudioCapturePrompt</td>
          <td class="col-name">test_audio_capture_prompt</td>
          <td class="col-duration">76.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_video_capture_prompt.TestPrivilegedAppVideoCapturePrompt</td>
          <td class="col-name">test_video_capture_prompt</td>
          <td class="col-duration">76.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_contacts_prompt.TestPrivilegedAppContactsPrompt</td>
          <td class="col-name">test_contact_prompt</td>
          <td class="col-duration">80.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_device_music_prompt.TestPrivilegedAppDeviceMusicPrompt</td>
          <td class="col-name">test_get_music_prompt</td>
          <td class="col-duration">76.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_device_picture_prompt.TestPrivilegedAppDevicePicturePrompt</td>
          <td class="col-name">test_get_pictures_prompt</td>
          <td class="col-duration">77.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_device_sdcard_prompt.TestPrivilegedAppDeviceSDcardPrompt</td>
          <td class="col-name">test_get_sdcard_prompt</td>
          <td class="col-duration">75.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_device_video_prompt.TestPrivilegedAppDeviceVideoPrompt</td>
          <td class="col-name">test_get_videos_prompt</td>
          <td class="col-duration">77.7</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_privileged_app_geolocation_prompt.TestPrivilegedAppGeolocationPrompt</td>
          <td class="col-name">test_geolocation_prompt</td>
          <td class="col-duration">77.2</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_video_empty.TestVideoEmpty</td>
          <td class="col-name">test_empty_video</td>
          <td class="col-duration">74.5</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_play_ogv_video.TestPlayOgvVideo</td>
          <td class="col-name">test_play_ogv_video</td>
          <td class="col-duration">78.9</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_play_webm_video.TestPlayWebMVideo</td>
          <td class="col-name">test_play_webm_video</td>
          <td class="col-duration">81.8</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_play_mp4_video.TestPlayMP4Video</td>
          <td class="col-name">test_play_mp4_video</td>
          <td class="col-duration">81.5</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="passed results-table-row">
          <td class="col-result">Passed</td>
          <td class="col-class">test_play_ogg_video.TestPlayOGGVideo</td>
          <td class="col-name">test_play_ogg_video</td>
          <td class="col-duration">79.1</td>
          <td class="col-links"></td>
          <td class="debug"></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_dialer_set_up_conference_call.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">Cannot work on local CI service<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_setup_and_send_active_sync_email.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">Bug 1028192 - Problems with ActiveSync accounts<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_receive_active_sync_email.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">Bug 1028192 - Problems with ActiveSync accounts<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_ftu_skip_tour_desktopb2g.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">skip-if: device != "desktop"<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_settings_bluetooth.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">skip-if: device == "desktop" || device == "flame"<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_settings_cell_data.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">skip-if: device == "desktop" || device == "sp7710gaplus_gonk" || device == "flame"<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_settings_sim_manager.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">Disabled because run the device with 1 SIM only<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_browser_cell_data.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_browser_lan.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_browser_play_youtube_video.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_calendar_new_event_appears_on_all_calendar_views.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_camera_capture_video.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_camera_multiple_shots.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_cards_view_with_two_apps.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_clock_create_new_alarm.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_add_new_contact.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_edit_contact.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_sms_contact.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_add_photo_to_contact.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_cost_control_data_alert_mobile.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_dialer.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_call_log_all_calls.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_dialer_receive_call.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_dialer_receive_call_with_locked_screen.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_setup_basic_gmail.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_setup_and_send_imap_email.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_everythingme_launch_link.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_everythingme_add_collection_save_bookmark.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_fmradio_frequency_dialer.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_ftu_skip_tour.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_ftu_with_tour.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_gallery_view.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_gallery_flick.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_homescreen_delete_app.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_homescreen_move_app.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_lockscreen_unlock_to_homescreen.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_lockscreen_unlock_to_camera.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_lockscreen_unlock_to_camera_with_passcode.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_marketplace_launch.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_sms.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_sms_with_attachments.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_music_artist_mp3.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_settings_dsds_cell_data.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_power_button_long_press.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr>
        <tr class="skipped results-table-row">
          <td class="col-result">Skipped</td>
          <td class="col-class"></td>
          <td class="col-name">test_play_3gp_video.py</td>
          <td class="col-duration">0</td>
          <td class="col-links"></td>
          <td class="debug">
            <div class="log">filtered by type (b2g-smoketest)<br/></div></td></tr></tbody></table></body></html>