' + str + '
').dialog({
modal: true,
resizable: false,
title: title,
buttons: buttons
});
},
confirm: function (str , title , callback) {
$('
').dialog({
modal: true,
resizable: false,
title: title,
buttons: [
{
text: getlang('Aceptar'),
'class': 'ui-button-positive floatL',
click: function () {
callback();
$(this).dialog('close').remove();
}
},
{
text: getlang('Cancelar'),
'class': 'ui-button-negative floatR',
click: function () {
$(this).dialog('close').remove();
}
}
]
});
}
}
var Search =3D {
suggest: function(query){
$.getScript('http://api.bing.net/json.aspx?AppId=3D86DD2D338759CA64E6D=
11491823F0F459F727460&Version=3D2.2&Query=3D' + encodeURIComponent(query=
) + '&Sources=3DSpell&UILanguage=3Des&JsonType=3Dcallback&JsonCallback=3D=
Search.complete');
},
complete: function(data){
if(typeof data.SearchResponse.Spell !=3D=3D 'undefined'){
var suggest =3D data.SearchResponse.Spell.Results[0].Value,
link =3D $('#search-suggest').children('a').attr('href');
$('#search-suggest')
.show()
.children('a')
.html(suggest)
.attr('href', link + '&q=3D' + suggest);
/* parche para tags */
$('.search-suggest-tags')
.show()
.children('a')
.html(suggest)
.attr('href', '/tags/' + suggest);
}
}
};
var emoticons =3D {
=
name: [
'smile',
'wink',
'wassat',
'tongue',
'laughing',
'sad',
'angry',
'crying',
'evil',
'huh',
's',
'cool',
'red',
'grn',
'winky',
'drool',
//isenbeck
'isenbeck1',
'isenbeck2',
'isenbeck3',
=
'unsure',
'blaf',
'sad2',
'cry',
'bobo',
'grin',
'alabama',
'lpmqtp',
'idiot',
'8s',
'5',
'15',
'17',
'cold',
'hot',
'love',
'globo',
'zombie',
'pacman',
'metal',
'mario',
'i',
'exclamacion',
'pregunta',
'no',
'ok',
'wow',
'lol',
'papel',
'rip',
'koe',
'106',
'dolar',
'culo',
'car',
'mobe',
'fantasma',
'buenpost',
'getalife',
'bang',
'limoon',
'verde',
],
=
simbol: [
':)',
';)',
':roll:',
':P',
':D',
':(',
'X(',
':cry:',
':twisted:',
':|',
':?',
':cool:',
':oops:',
'^^',
':winky:',
':F',
//isenbeck
':isenbeck1:',
':isenbeck2:',
':isenbeck3:', =
':/',
':blaf:',
':noo:',
':crying:',
':bobo:',
':grin:',
':alaba:',
':lpmqtp:',
':idiot:',
':shrug:',
'8S',
':]',
':blind:',
':buaa:',
':cold:',
':hot:',
':love:',
':globo:',
':zombie:',
':man:',
':metal:',
':mario:',
':info:',
':exc:',
':q:',
':NO:',
':OK:',
':WOW:',
':LOL:',
':oo:',
':RIP:',
':alien:',
':trago:',
':money:',
':culo:',
':auto:',
':lala:',
':fantasma:',
':buenpost:',
':GET A LIFE:',
':headbang:',
':limon:',
':verde:',
],
=
html: '
\n%list%\n'+lang['ver_mas']+'
',
item: '
\n',
list: {},
init: function() {
=
//if(global_data.user =3D=3D=3D '14291162'){
$('#cont_comm, #ffreply').append( this.html.replace( '%list%' , this.=
createList( 19 ) ) );
/*}else{
$('#cont_comm, #ffreply').append( this.html.replace( '%list%' , this.=
createList( 16 ) ) );
}*/
=
this.list =3D $('#emoticonsList');
=
$('#emoticonsList img').click(function () {
emoticons.list.hide();
$('#body_comm').focus();
$.markItUp({replaceWith: ' ' + $(this).data("smile") + ' '});
});
},
=
more: function() {
var winpops =3D window.open("/emoticones.php","","width=3D180px,height=
=3D500px,scrollbars,resizable");
this.list.hide();
},
=
showMenu: function() {
if( $(this.list).is(':hidden') ) {
$(this.list).show();
}
},
=
createList: function( size ) {
=
var html =3D '';
=
if( !size || size =3D=3D=3D null ) {
size =3D this.name.length;
}
=
for( i=3D0,c=3Dsize; i
ul > .markItUpButton8')
}*/
=
};
/* Mi Taringa! */
var miLoadScript_loading =3D false;
function miLoadScript(url){
return;
/* Carga script mi.js y lo inicializa
url[string]
return[void]
*/
if(miLoadScript_loading)
return;
if(typeof mi =3D=3D=3D 'undefined'){
miLoadScript_loading =3D true;
$.ajax({
url: url,
cache: true,
dataType: 'script',
crossDomain: true,
success: function(){
//Solo cargo Uploadify cuando se utiliza KN3
if($('.my-shout-attach-image').length)
mi.initUploadfy();
},
complete: function(){
miLoadScript_loading =3D false;
}
});
}else{
//Solo cargo Uploadify cuando se utiliza KN3
if($('.my-shout-attach-image').length)
mi.initUploadfy();
}
}
function miToggleCompose(url){
/* Abre/Cierra box de creacion de shout rapido
url[string] =3D URL del script mi.js
return[void]
*/
if($('#compose-box').hasClass('noHideForce'))
return false;
$('.navitem').removeClass('active');
$('.navpanel').hide();
$('#compose-navitem').toggleClass('active');
$('#compose-box').toggle();
if(typeof url !=3D=3D 'undefined')
mi.initUploadfy();
}
/* FIN - Mi Taringa! */
function menuPopupAlert(id, value){
/* Muestra/Oculta el popup de cantidades del menu
id[string] =3D ID del menu (el ID de notificaciones, mensajes, etc..)
value[string] =3D Cantidad a mostrar (Puede ser 1,4K)
return[void]
*/
var el =3D $('#' + id).find('.bubble');
//Si no cambio nada, salgo
if($(el).find('a span').html() =3D=3D value)
return;
if(value =3D=3D 0){
$(el).animate({bottom: '+=3D5px'}, 100, null, function(){
$(this).animate({bottom: '-=3D5px'}, 100, null, function(){
$(this).slideUp(100);
});
});
}else{
$(el).find('a span').html(value);
$(el).slideDown(100, function(){
$(this).animate({bottom: '+=3D5px'}, 100, null, function(){
$(this).animate({bottom: '-=3D5px'}, 100)
});
});
}
}
/* Textlimit 1.1 (by RodolfoGS) */
$.fn.textlimit =3D function(opts){
opts =3D $.extend({suffix: ''}, opts || {});
return this.each(function(){
var width =3D parseInt($(this).data('width'));
if($(this).css('max-width') !=3D 'none' && parseInt($(this).css('max-w=
idth')) =3D=3D width)
width--;
var textOriginal =3D text =3D $.trim($(this).html());
while($(this).width() > width && text.length > 1){
text =3D text.substr(0, text.length - 1);
$(this).html(text + opts.suffix);
}
if(text.length =3D=3D 0)
$(this).html(textOriginal);
});
};
/* FIN - Textlimit 1.1 */
function supportLocalStorage(){
/* Determina si el navegador soporta localStorage
return[boolean] =3D true -> Soportado
false -> No soportado
*/
try{
return 'localStorage' in window && window['localStorage'] !=3D=3D null=
;
}catch(e){
return false;
}
}
/* ajaxCheck 1.0 (by RodolfoGS) */
var ajaxCheck =3D {
time: 60000,
init: function(){
/* Inicializador
return[void]
*/
//Compruebo que el usuario este logueado
if(!global_data['user'])
return false;
//Compruebo el soporte de localStorage
if(!supportLocalStorage())
return false;
//Inicializo data
this.data.init();
var self =3D this;
$('body').mousemove(function(){
self.setActivity();
});
},
add: function(param, value){
/* Agrega un parametro, utilizado para los pageviews
param[string] =3D Tipo de parametro
value[mixed] =3D Valor a guardar
*/
//Compruebo que el usuario este logueado
if(!global_data['user'])
return false;
//Compruebo el soporte de localStorage
if(!supportLocalStorage())
return false;
//Guardo que se acaba de hacer un checkeo
var mili =3D new Date();
mili =3D mili.getTime();
this.data.set('lastCheck', mili);
//Guardo el valor
this.data.set(param, value);
this.updateHtml(param);
},
setActivity: function(){
/* Seteo deteccion de actividad en el sitio
return[void]
*/
var mili =3D new Date();
mili =3D mili.getTime();
//Si la ultima vez que se guardo fue hace menos de un segundo, no guar=
do
if(mili - this.data.dataActual['lastActivity'] < 1000)
return;
//Si la ultima actividad fue hace mas de 60 segundos y el ultimo chequ=
eo fue tambien hace mas de 60 segundos, hago el ajax
if(mili - this.data.dataActual['lastActivity'] > this.time && mili - t=
his.data.dataActual['lastCheck'] > this.time){
this.data.set('lastActivity', mili);
this.ajax();
return;
}
//Seteo que hubo actividad
this.data.set('lastActivity', mili);
},
ajax: function(){
/* Consulto datos por ajax
return[void]
*/
return;
if(this.data.get('ajaxProcessing2') =3D=3D 1)
return;
this.data.set('ajaxProcessing2', 1);
//Seteo cuando se hizo el ultimo ajax
var mili =3D new Date();
mili =3D mili.getTime();
this.data.set('lastCheck', mili);
var self =3D this;
$.ajax({
type: 'POST',
url: '/ajax/user/update',
data: '',
dataType: 'json',
success: function(data){
switch(data['status']){
case 1:
data =3D data['data'];
if(self.data.dataActual['notifications'] !=3D data['notifications'=
]){
self.data.set('notifications', data['notifications']);
self.updateHtml('notifications');
}
if(self.data.dataActual['mps'] !=3D data['messages']){
self.data.set('mps', data['messages']);
self.updateHtml('mps');
}
if(self.data.dataActual['mi'] !=3D data['newsfeed']){
self.data.set('mi', data['newsfeed']);
self.updateHtml('mi');
}
break;
}
},
error: function(){},
complete: function(){
self.data.set('ajaxProcessing2', 0);
}
});
},
data: {
dataActual: {
'lastActivity': 0,
'lastCheck': 0,
'ajaxProcessing2': 0,
'notifications': 0,
'mps': 0,
'mi': 0
},
init: function(){
/* Inicializo el localStorage
return[void]
*/
//Igualo mi dataActual con localStorage
for(param in this.dataActual){
//Si el dato no existia en localStorage, lo guardo como viene por de=
fault
if(this.get(param) =3D=3D=3D null)
this.set(param, this.dataActual[param]);
//Obtengo el dato de localStorage
else
this.dataActual[param] =3D this.get(param);
}
//Timer para comprobar localStorage
var self =3D this;
setInterval(function(){
//Verifico si cambio algun contador
for(param in self.dataActual){
var value =3D self.get(param);
//Si cambio, lo guardo en mi dataActual y actualizo el html
if(value !=3D self.dataActual[param]){
self.dataActual[param] =3D value;
if(param =3D=3D 'notifications' || param =3D=3D 'mps' || param =3D=
=3D 'mi'){
ajaxCheck.updateHtml(param);
}
}
}
var mili =3D new Date();
mili =3D mili.getTime();
//Si pasaron mas de 60 segundos del ultimo check y hubo actividad ha=
ce menos de 60 segundos, hago el ajax
if(mili - self.dataActual['lastCheck'] > ajaxCheck.time && mili - se=
lf.dataActual['lastActivity'] < ajaxCheck.time){
ajaxCheck.ajax();
}
}, 1000);
},
get: function(param){
/* Obtiene un parametro de localStorage
param[string] =3D Parametro a obtener
return[mixed] =3D null -> El valor no existe
mixed -> Valor guardado
*/
return localStorage['ajaxCheck.' + param];
},
set: function(param, value){
/* Seteo los datos en el localStorage
param[string] =3D =
value[mixed] =3D El valor a guardar
return[void]
*/
//Guardo el parametro y su valor
this.dataActual[param] =3D localStorage['ajaxCheck.' + param] =3D val=
ue;
}
},
updateHtml: function(param){
switch(param){
case 'notifications':
menuPopupAlert('notifications-navitem', (parseInt(this.data.dataActu=
al['notifications']) >=3D 100) ? '+99' : this.data.dataActual['notificat=
ions']);
this.updateTitle();
break;
case 'mps':
menuPopupAlert('mensajes-navitem', (parseInt(this.data.dataActual['m=
ps']) >=3D 100) ? '+99' : this.data.dataActual['mps']);
break;
case 'mi':
menuPopupAlert('menu-section-mi', (parseInt(this.data.dataActual['mi=
']) >=3D 100) ? '+99' : this.data.dataActual['mi']);
this.updateTitle();
//Si esta en /mi
if(this.data.dataActual['mi'] && document.location.pathname =3D=3D '=
/mi'){
//Muestro box de nuevos shouts
$('.reload-ajax').css('display', 'block');
}
break;
}
},
updateTitle: function(){
/* Actualiza el contador del titulo
return[void]
*/
//Almaceno el titulo original
if(typeof this.titleOriginal =3D=3D=3D 'undefined')
this.titleOriginal =3D document.title;
//Si es 0, muestro el titulo original
if(this.data.dataActual['notifications'] + this.data.dataActual['mi'] =
=3D=3D 0){
document.title =3D this.titleOriginal;
}
//Muestro contador en el titulo
else{
var total =3D parseInt(this.data.dataActual['notifications']) + parse=
Int(this.data.dataActual['mi']);
if(total >=3D 100)
total =3D '+99';
document.title =3D '(' + total + ') ' + this.titleOriginal;
}
}
};
/* FIN - ajaxCheck 1.0 */
/* Autocomplete 1.1 */
(function($){$.fn.extend({autocompleteold:function(urlOrData,options){va=
r isUrl=3Dtypeof urlOrData=3D=3D"string";options=3D$.extend({},$.Autocom=
pleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,dela=
y:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?1=
0:150},options);options.highlight=3Doptions.highlight||function(value){r=
eturn value;};options.formatMatch=3Doptions.formatMatch||options.formatI=
tem;return this.each(function(){new $.Autocompleter(this,options);});},r=
esult:function(handler){return this.bind("result",handler);},search:func=
tion(handler){return this.trigger("search",[handler]);},flushCache:funct=
ion(){return this.trigger("flushCache");},setOptions:function(options){r=
eturn this.trigger("setOptions",[options]);},unautocomplete:function(){r=
eturn this.trigger("unautocomplete");}});$.Autocompleter=3Dfunction(inpu=
t,options){var KEY=3D{UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:=
188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8};var $input=3D$(input).attr("autoc=
omplete","off").addClass(options.inputClass);var timeout;var previousVal=
ue=3D"";var cache=3D$.Autocompleter.Cache(options);var hasFocus=3D0;var =
lastKeyPressCode;var config=3D{mouseDownOnSelect:false};var select=3D$.A=
utocompleter.Select(options,input,selectCurrent,config);var blockSubmit;=
$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(=
blockSubmit){blockSubmit=3Dfalse;return false;}});$input.bind(($.browser=
.opera?"keypress":"keydown")+".autocomplete",function(event){hasFocus=3D=
1;lastKeyPressCode=3Devent.keyCode;switch(event.keyCode){case KEY.UP:eve=
nt.preventDefault();if(select.visible()){select.prev();}else{onChange(0,=
true);}break;case KEY.DOWN:event.preventDefault();if(select.visible()){s=
elect.next();}else{onChange(0,true);}break;case KEY.PAGEUP:event.prevent=
Default();if(select.visible()){select.pageUp();}else{onChange(0,true);}b=
reak;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){selec=
t.pageDown();}else{onChange(0,true);}break;case options.multiple&&$.trim=
(options.multipleSeparator)=3D=3D","&&KEY.COMMA:case KEY.TAB:case KEY.RE=
TURN:if(selectCurrent()){event.preventDefault();blockSubmit=3Dtrue;retur=
n false;}break;case KEY.ESC:select.hide();break;default:clearTimeout(tim=
eout);timeout=3DsetTimeout(onChange,options.delay);break;}}).focus(funct=
ion(){hasFocus++;}).blur(function(){hasFocus=3D0;if(!config.mouseDownOnS=
elect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visib=
le()){onChange(0,true);}}).bind("search",function(){var fn=3D(arguments.=
length>1)?arguments[1]:null;function findValueCallback(q,data){var resul=
t;if(data&&data.length){for(var i=3D0;i1){var seperator=3Doptions.multipleSeparator.length;var cur=
sorAt=3D$(input).selection().start;var wordAt,progress=3D0;$.each(words,=
function(i,word){progress+=3Dword.length;if(cursorAt<=3Dprogress){wordAt=
=3Di;return false;}progress+=3Dseperator;});words[wordAt]=3Dv;v=3Dwords.=
join(options.multipleSeparator);}v+=3Doptions.multipleSeparator;}$input.=
val(v);hideResultsNow();$input.trigger("result",[selected.data,selected.=
value]);return true;}function onChange(crap,skipPrevCheck){if(lastKeyPre=
ssCode=3D=3DKEY.DEL){select.hide();return;}var currentValue=3D$input.val=
();if(!skipPrevCheck&¤tValue=3D=3DpreviousValue)return;previousVal=
ue=3DcurrentValue;currentValue=3DlastWord(currentValue);if(currentValue.=
length>=3Doptions.minChars){$input.addClass(options.loadingClass);if(!op=
tions.matchCase)currentValue=3DcurrentValue.toLowerCase();request(curren=
tValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};=
function trimWords(value){if(!value)return[""];if(!options.multiple)retu=
rn[$.trim(value)];return $.map(value.split(options.multipleSeparator),fu=
nction(word){return $.trim(value).length?$.trim(word):null;});}function =
lastWord(value){if(!options.multiple)return value;var words=3DtrimWords(=
value);if(words.length=3D=3D1)return words[0];var cursorAt=3D$(input).se=
lection().start;if(cursorAt=3D=3Dvalue.length){words=3DtrimWords(value)}=
else{words=3DtrimWords(value.replace(value.substring(cursorAt),""));}ret=
urn words[words.length-1];}function autoFill(q,sValue){if(options.autoFi=
ll&&(lastWord($input.val()).toLowerCase()=3D=3Dq.toLowerCase())&&lastKey=
PressCode!=3DKEY.BACKSPACE){$input.val($input.val()+sValue.substring(las=
tWord(previousValue).length));$(input).selection(previousValue.length,pr=
eviousValue.length+sValue.length);}};function hideResults(){clearTimeout=
(timeout);timeout=3DsetTimeout(hideResultsNow,200);};function hideResult=
sNow(){var wasVisible=3Dselect.visible();select.hide();clearTimeout(time=
out);stopLoading();if(options.mustMatch){$input.search(function(result){=
if(!result){if(options.multiple){var words=3DtrimWords($input.val()).sli=
ce(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?=
options.multipleSeparator:""));}else{$input.val("");$input.trigger("resu=
lt",null);}}});}};function receiveData(q,data){if(data&&data.length&&has=
Focus){stopLoading();select.display(data,q);autoFill(q,data[0].value);se=
lect.show();}else{hideResultsNow();}};function request(term,success,fail=
ure){if(!options.matchCase)term=3Dterm.toLowerCase();var data=3Dcache.lo=
ad(term);if(data&&data.length){success(term,data);}else if((typeof optio=
ns.url=3D=3D"string")&&(options.url.length>0)){var extraParams=3D{timest=
amp:+new Date()};$.each(options.extraParams,function(key,param){extraPar=
ams[key]=3Dtypeof param=3D=3D"function"?param():param;});$.ajax({mode:"a=
bort",port:"autocomplete"+input.name,dataType:options.dataType,url:optio=
ns.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),s=
uccess:function(data){var parsed=3Doptions.parse&&options.parse(data)||p=
arse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.=
emptyList();failure(term);}};function parse(data){var parsed=3D[];var ro=
ws=3Ddata.split("\n");for(var i=3D0;i]*)("+term.replace(/([\^\$\(\=
)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"$1");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=3D=
function(options){var data=3D{};var length=3D0;function matchSubset(s,su=
b){if(!options.matchCase)s=3Ds.toLowerCase();var i=3Ds.indexOf(sub);if(o=
ptions.matchContains=3D=3D"word"){i=3Ds.toLowerCase().search("\\b"+sub.t=
oLowerCase());}if(i=3D=3D-1)return false;return i=3D=3D0||options.matchC=
ontains;};function add(q,value){if(length>options.cacheLength){flush();}=
if(!data[q]){length++;}data[q]=3Dvalue;}function populate(){if(!options.=
data)return false;var stMatchSets=3D{},nullData=3D0;if(!options.url)opti=
ons.cacheLength=3D1;stMatchSets[""]=3D[];for(var i=3D0,ol=3Doptions.data=
.length;i0){var c=3Ddata[k];$.each(c,=
function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}return csub;=
}else if(data[q]){return data[q];}else if(options.matchSubset){for(var i=
=3Dq.length-1;i>=3Doptions.minChars;i--){var c=3Ddata[q.substr(0,i)];if(=
c){var csub=3D[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[=
csub.length]=3Dx;}});return csub;}}}return null;}};};$.Autocompleter.Sel=
ect=3Dfunction(options,input,select,config){var CLASSES=3D{ACTIVE:"ac_ov=
er"};var listItems,active=3D-1,data,term=3D"",needsInit=3Dtrue,element,l=
ist;function init(){if(!needsInit)return;element=3D$("
").hide().ad=
dClass(options.resultsClass).css("position","absolute").appendTo(documen=
t.body);list=3D$("").appendTo(element).mouseover(function(event){if=
(target(event).nodeName&&target(event).nodeName.toUpperCase()=3D=3D'LI')=
{active=3D$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));=
$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(ta=
rget(event)).addClass(CLASSES.ACTIVE);select();input.focus();return fals=
e;}).mousedown(function(){config.mouseDownOnSelect=3Dtrue;}).mouseup(fun=
ction(){config.mouseDownOnSelect=3Dfalse;});if(options.width>0)element.c=
ss("width",options.width);needsInit=3Dfalse;}function target(event){var =
element=3Devent.target;while(element&&element.tagName!=3D"LI")element=3D=
element.parentNode;if(!element)return[];return element;}function moveSel=
ect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);m=
ovePosition(step);var activeItem=3DlistItems.slice(active,active+1).addC=
lass(CLASSES.ACTIVE);if(options.scroll){var offset=3D0;listItems.slice(0=
,active).each(function(){offset+=3Dthis.offsetHeight;});if((offset+activ=
eItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrol=
lTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offs=
et=3DlistItems.size()){active=3D0;}}function limitNumberOfItems(availa=
ble){return options.max&&options.max").html(options.highlight(formatted,term=
)).addClass(i%2=3D=3D0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"=
ac_data",data[i]);}listItems=3Dlist.find("li");if(options.selectFirst){l=
istItems.slice(0,1).addClass(CLASSES.ACTIVE);active=3D0;}if($.fn.bgifram=
e)list.bgiframe();}return{display:function(d,q){init();data=3Dd;term=3Dq=
;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect=
(-1);},pageUp:function(){if(active!=3D0&&active-8<0){moveSelect(-active)=
;}else{moveSelect(-8);}},pageDown:function(){if(active!=3DlistItems.size=
()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}=
else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&=
&listItems.removeClass(CLASSES.ACTIVE);active=3D-1;},visible:function(){=
return element&&element.is(":visible");},current:function(){return this.=
visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst=
&&listItems[0]);},show:function(){var offset=3D$(input).offset();element=
.css({width:typeof options.width=3D=3D"string"||options.width>0?options.=
width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.lef=
t}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:opti=
ons.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.bo=
dy.style.maxHeight=3D=3D=3D"undefined"){var listHeight=3D0;listItems.eac=
h(function(){listHeight+=3Dthis.offsetHeight;});var scrollbarsVisible=3D=
listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?opti=
ons.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list=
.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css(=
"padding-right")));}}}},selected:function(){var selected=3DlistItems&&li=
stItems.filter("."+CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);return se=
lected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:funct=
ion(){list&&list.empty();},unbind:function(){element&&element.remove();}=
};};$.fn.selection=3Dfunction(start,end){if(start!=3D=3Dundefined){retur=
n this.each(function(){if(this.createTextRange){var selRange=3Dthis.crea=
teTextRange();if(end=3D=3D=3Dundefined||start=3D=3Dend){selRange.move("c=
haracter",start);selRange.select();}else{selRange.collapse(true);selRang=
e.moveStart("character",start);selRange.moveEnd("character",end);selRang=
e.select();}}else if(this.setSelectionRange){this.setSelectionRange(star=
t,end);}else if(this.selectionStart){this.selectionStart=3Dstart;this.se=
lectionEnd=3Dend;}});}var field=3Dthis[0];if(field.createTextRange){var =
range=3Ddocument.selection.createRange(),orig=3Dfield.value,teststring=3D=
"<->",textLength=3Drange.text.length;range.text=3Dteststring;var caretAt=
=3Dfield.value.indexOf(teststring);field.value=3Dorig;this.selection(car=
etAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}el=
se if(field.selectionStart!=3D=3Dundefined){return{start:field.selection=
Start,end:field.selectionEnd}}};})(jQuery);
// Autocomplete/suggest de menciones
(function($){
$.getCaret =3D function (element) {
if (element.selectionStart) {
return element.selectionStart;
} else if (document.selection) {
element.focus();
var a =3D document.selection.createRange();
if (a) {
var b =3D element.createTextRange(),
c =3D a.duplicate();
b.moveToBookmark(a.getBookmark());
c.setEndPoint('EndToStart', a);
return c.text.length;
}
}
return 0;
};
$.fn.mention =3D function (settings) {
getCandidates =3D function (text) {
var text =3D text.toLowerCase(),
length =3D text.length,
nameRegex =3D new RegExp( text , 'gi' ),
result =3D Array();
if (length >=3D settings.minlength) {
for (i=3D0, c=3DObject.keys(settings.list).length; i' ).replace(
/(^|\s)@([-_a-z0-9]{1,25})/ig ,
function ( $1 , $2 , $3 ) {
if( $.inArray( $3 , settings.nicks ) !=3D=3D -1 ) {
return $2+'@'+$3+' ';
} else {
return $2+'@'+$1;
}
}
);
highlighter.css('height',$(this).height()+'px').html( strip_tags( =
newHTML , ' ' ) );
=
}
)
.bind(
'blur',
function () {
setTimeout(
function(obj){
settings.callback.call(null, Array());
},
250
);
}
)
.bind(
'focus resize onload',
function () {
$(this).trigger('click');
}
);
});
};
})(jQuery);
/* LOCALSTORAGE 2 */
var ls =3D {
get: function(options) {
if(!this._depencencies()) {
return false;
}
if(!global_data.user) {
if(options.callback) {
options.callback();
}
return false;
}
return this._readLocal(options) || this._readServer(options);
},
_depencencies: function() {
return window.localStorage !=3D=3D null && window.jQuery !=3D=3D null;=
},
_readLocal: function(options) {
var name =3D options.object+'-'+options.action;
if(localStorage[name]) {
var obj =3D jQuery.parseJSON(localStorage[name]);
} else {
return false;
}
// valid object
if(!obj || obj =3D=3D null) {
return false;
}
// check users ids
if(options.user !=3D obj.user) {
return false;
}
// check expiration
if(+new Date > obj.expiration) {
return false;
}
if(options.callback) {
options.callback(obj);
return true;
} else {
return false;
}
},
_writeLocal: function(options, data) {
localStorage[options.object+'-'+options.action] =3D JSON.stringify(dat=
a);
},
_readServer: function(options) {
var name =3D options.object+'-'+options.action;
=
$.getJSON(
'/ajax/'+name+'.php?t=3D'+options.expiration,
function(response) {
ls._writeLocal(options, response);
if(options.callback) {
options.callback(response);
}
}
);
}
};
/* END LOCALSTORAGE 2 */
// fix for those who doesn't have a debugger in their browsers
if (window['console'] =3D=3D=3D null) {
window.console =3D { =
assert : function(){}, =
log : function(){}, =
warn : function(){}, =
error : function(){}, =
debug : function(){}, =
dir : function(){}, =
info : function(){} =
}; =
}
var MusicPlayerClient =3D {
_playerUrl: '/audioplayer',
checkPlayerState: function () {
return top !=3D self;
},
open: function (url) {
if (!this.checkPlayerState()) {
if (url) {
location.href =3D this._playerUrl + '#' + url.replace(document.locat=
ion.protocol + '//' + document.domain, '');
} else {
location.href =3D this._playerUrl + '#' + location.href.replace(docu=
ment.location.protocol + '//' + document.domain, '');
}
}
},
close: function () {
if (this.checkPlayerState()) {
top.location.href =3D self.location;
}
},
queue: function (tracklist, clear, url, autoload) {
if (!autoload) {
var autoload =3D false;
}
if (this.checkPlayerState()) {
// player is open, add to queue
parent.MusicPlayer.queue(tracklist, clear, url, autoload);
} else {
// player is closed, save and load player
createCookie("playerQueue", tracklist, 1);
if (autoload) {
createCookie("playerAutoload", $.param(autoload), 1);
}
if (!url) {
var url =3D false;
}
this.open(url);
}
},
ready: function () {
if (this.checkPlayerState()) {
// player is open
var tracklist =3D readCookie("playerQueue");
var autoload =3D readCookie("playerAutoload");
if (tracklist || autoload) {
// a song is pending for queue
this.queue(tracklist, true, '', autoload);
eraseCookie("playerQueue");
eraseCookie("playerAutoload");
}
// add queue class to play links
$("[data-play]").addClass("queue");
$(window).bind("keydown", function(e){ // bind refresh to iframe
if (e.keyCode =3D=3D 116 || (e.keyCode =3D=3D 82 && (e.metaKey || e.=
ctrlKey))) {
parent.MusicPlayer.refreshClient();
if (e.preventDefault) {
e.preventDefault();
}
return false;
}
});
}
// bind play links
$("[data-play]").live('click', function(e){
e.preventDefault();
MusicPlayerClient.queue($(this).attr("data-play"), $(this).hasClass('=
clearFirst'));
return false;
});
},
setAutoLoad: function () {
//no data set
if(!type || !param){
return false;
}
var data =3D type+"|"+param;
createCookie("auload", data, 1);
}
}
var camaraLibro =3D {
flagVar: false,
addPost: function(postId, modBy){
if(!this.flagVar){
$('#action-dialogs .calPost-dialog').dialog(nDialog_cfg);
$('.calPost-dialog').dialog( "option", "buttons", [
{
text: lang["Aceptar"],
"class": 'ui-button-positive box-shadow-soft floatL',
click: function() {
camaraLibro.flagVar =3D true;
camaraLibro.addPost(postId, modBy);
$(this).dialog("close");
}
},
{
text: lang['Cancelar'],
"class": 'ui-button-cancel floatR',
click: function() {$(this).dialog('close');}
}
]);
$('.calPost-dialog').dialog('open');
}else{
$.ajax({
type: 'POST',
url: '/lab/cal/addPost.php',
cache: false,
data: 'post=3D'+postId+'&modBy=3D'+modBy,
dataType: 'json',
success: function(r) {
$('#action-dialogs .calPost-dialog').dialog(nDialog_cfg);
$('.calPost-dialog').html(''+r.data+'
').dialog( "option", "b=
uttons", [
{
text: lang["Aceptar"],
"class": 'ui-button box-shadow-soft floatL',
click: function() {$(this).dialog('close');}
}
]);
$('.calPost-dialog').dialog('open');
}
});
camaraLibro.flagVar =3D false;
}
}
}
var music =3D {
objectVote: function (obType, obId, score, obj){
=
if( $(obj).hasClass('ui-state-disabled') ) {
return false;
}
$('#post-data-stats .votes-count > span')
.attr('data-val', function (i, val) {
var score =3D isNaN(val) ? 1 : parseInt(val)+1 ;
$(this).html(number_format(score));
return score;
});
$(obj)
.addClass('ui-button-positive')
.button('option', 'disabled', true);
=
$.ajax({
type: 'POST',
url: '/ajax/music/object-vote',
cache: false,
data: 'objectType=3D'+obType+'&objectId=3D'+obId+'&score=3D'+score
// no success callback, no error phylosophy
});
=
},
albumDelete: function(id, borrar){
if(borrar =3D=3D 1){
$('#action-dialogs .delete-dialog').dialog(nDialog_cfg);
$('.delete-dialog').dialog(
'option',
'buttons',
[
{
text: lang['Borrar'],
'class': 'ui-button-negative box-shadow-soft floatL',
click: function() {
music.albumDelete(id, 2);
}
},
{
text: lang['Cancelar'],
'class': 'ui-button box-shadow-soft floatR',
click: function() {
$(this).dialog('close');
}
}
]
)
.dialog('open');
}else{
$.ajax({
type: 'POST',
url: '/ajax/music/album-delete',
cache: false,
data: 'albumId=3D'+id,
dataType: 'json',
success: function(r) {
if(r.status =3D=3D 1){
$('.delete-dialog').dialog(
'option',
'buttons',
[
{
text: 'Aceptar',
'class': 'ui-button box-shadow-soft floatL',
click: function() {
location.href =3D '/musica';
}
}
]
)
.html(r.data)
.dialog('open');
}else{
$('.delete-dialog').dialog(
'option',
'buttons',
[
{
text: lang['Borrar'],
'class': 'ui-button-negative box-shadow-soft floatL',
click: function() {
music.albumDelete(id, 2);
}
},
{
text: lang['Cancelar'],
'class': 'ui-button box-shadow-soft floatR',
click: function() {
$(this).dialog('close');
}
}
]
)
.html(r.data)
.dialog('open');
}
}
});
}
},
updateLastComments: function(category){
if(category =3D=3D undefined){
category =3D '';
}
$('#lastCommentsBox-data').css('opacity', 0.4);
$.ajax({
type: 'POST',
url: '/ajax/music/comment-last',
cache: false,
data: 'category=3D'+category,
success: function(h){
$('#lastCommentsBox-data').html(h);
},
complete: function(){
$('#lastCommentsBox-data').css('opacity', 1);
}
});
}
}
/** top filters */
function toggleInterval(obj, hide, show) {
$(hide).hide();
$(hide + show).show();
$(obj)
.closest('ul').hide()
.prev().html($(obj).text());
}
var Pin =3D {
add: function (object, type, phrase) {
if ($(object).hasClass("ui-state-disabled")) {
return false;
}
$(".pin-add *").attr("disabled", "disabled").addClass("ui-state-disabl=
ed");
ajax(
"pin", "add", {type: type, phrase: $.trim(phrase)},
{
success: function (r) {
$("#pins .emptyData").hide();
$(".pin-add input[type=3Dtext]").val("");
$("#pins ul").append(tmpl("pin_item", r.data));
if ($("#pins ul li").length >=3D 10) {
$(".pin-add").hide();
}
},
error: function (r) {
if (r.data) {
mydialog.alert(r.data);
}
},
complete: function () {
$(".pin-add *").attr("disabled", false).removeClass("ui-state-disab=
led");
}
}
);
},
del: function (object, type, hash) {
$(object).parent("li").remove();
if (!$("#pins ul li").length) {
$("#pins .emptyData").show();
}
$(".pin-add").show();
ajax("pin", "delete", {type: type, hash: hash});
}
}
var DomCache =3D {
_db: {},
get: function(key) {
if (DomCache._db[key]) {
return DomCache._db[key];
}
DomCache.set(key);
return $(key)
},
set: function(key) {
DomCache._db[key] =3D $(key);
},
'delete': function(key) {
delete DomCache._db[key];
},
flush: function() {
DomCache._db =3D {};
}
}
var ExternalClient =3D {
_intervalDelay: 500,
_intervalHandler: null,
_lastUrl: null,
_ready: false,
updateUrl: true,
_domCache: function () {
=
},
ready: function() {
if (!ExternalClient._ready) {
// initialize
ExternalClient._ready =3D true;
// hashtag support
if (location.hash.indexOf("#!") =3D=3D=3D 0) {
// TODO
}
// core interval
ExternalClient._intervalHandler =3D setInterval(ExternalClient._inter=
val, ExternalClient._intervalDelay);
// window events
DomCache.get(ExternalClient.client).bind("error", function() {
var iframeDocument =3D DomCache.get(ExternalClient.client).contents(=
)[0],
iframeTitle =3D iframeDocument.title,
iframeLocation =3D iframeDocument.location.href;
if (!iframeTitle && iframeLocation) {
// retry on error (assume connection error when no title is present=
)
DomCache.get(ExternalClient.client).attr("src", iframeLocation);
}
});
}
},
_interval: function() {
try {
var iframeDocument =3D DomCache.get(ExternalClient.client).contents()=
[0];
iframeTitle =3D iframeDocument.title,
iframeLocation =3D iframeDocument.location.href,
rootLocation =3D document.location.protocol + "//" + ExternalClient.=
baseDomain;
// dont process if no title...
if (ExternalClient.updateUrl && document.title !=3D iframeTitle) {
// we have a new title
document.title =3D iframeTitle;
}
// set height
if (iframeDocument.body) {
// $(iframeDocument.body).attr("height", "auto"); // fix
var newHeight =3D $(iframeDocument).height();
}
DomCache.get(ExternalClient.client).height(newHeight);
// URL changes support
if (ExternalClient.updateUrl) {
var url =3D iframeLocation.substr(rootLocation.length).replace(/(?:\=
?|&)tauth=3D.*$/, '');
if (history && history.pushState) {
// html5 history support
url =3D ExternalClient.prefixUrl + url;
if (url !=3D ExternalClient._lastUrl) {
history.replaceState({path: url}, iframeTitle, url);
}
} else {
// hashtag fallback
if (url !=3D ExternalClient._lastUrl) {
location.href =3D location.href.split("#")[0] + "#!" + url;
}
}
}
ExternalClient._lastUrl =3D url;
} catch (e) {}
}
};
/** jQuery custom selectors */
/** Support for regular expressions in :contains, use :rcontains(regex) =
*/
jQuery.expr[":"].rcontains =3D function(object, index, meta) {
return !!jQuery.trim((object.textContent || object.innerText || jQuery(=
object).text() || "")).match(new RegExp(meta[3]));
};
/** Array prototyping */
/** Removes duplicates elements from array */
var array_unique =3D function(a) {
for (var i =3D 0; i < a.length; ++i) {
for (var j =3D i + 1; j < a.length; ++j) {
if (a[i] =3D=3D=3D a[j]) {
a.splice(j, 1);
}
}
}
return a;
};
/** Saves each element content that matches selector to a localStorage k=
ey merging with old content */
var saveListFromContext =3D function(s, k, l, f) {
if (typeof localStorage =3D=3D=3D "undefined") {
return;
}
lS =3D localStorage || {};
var a =3D lS[k] ? lS[k] : "",
o =3D a.split(","),
c =3D $(s),
f =3D f || function() {
return this.textContent || this.innerText || $(this).text() || "";
},
s, t;
for (var i =3D c.length - 1; i >=3D 0; --i) {
w =3D $.trim(f.apply(c[i]));
if (w && !a.match(new RegExp("(^|,)" + w + "(,|$)", "i"))) {
o.push(w);
a +=3D "," + w;
}
}
s =3D o.length;
if (l && s > l) {
o =3D o.splice(s - l);
}
lS[k] =3D o;
return true;
}
/** Shortcut for saving lists */
var saveListsFromContext =3D function() {
if (Feed.fetchId =3D=3D 'recent') {
saveListFromContext("a.hovercard", "mention", 500);
saveListFromContext("a:rcontains(^#)", "hashtag", 100, function() {
var m =3D $(this).attr("href").match(/(?:%23|#)([-_a-z0-9]+)/i);
if (m) {
return m[1];
}
return false;
});
}
}
/** Unique document ready (hope so) */
$(document).ready(function(){
/* Headers Taringa */
if(window.location.href.match('/comunidades/headerstaringa/')) {
$('.tema-content img').each(function(i, elem) {
$(this).on('load', function() {
var img =3D $(this);
if(img.width() =3D=3D 656 && img.height() =3D=3D 66) {
$('#header').css('background', 'url("'+img.attr('src')+'")');
return;
}
});
});
}
$('.slider-btn')
.unbind('click')
.bind('click', function (){
var slider =3D $('#slider-inner-cont'),
limit =3D -(slider.children('a').length - 3)*70,
pos =3D parseInt(slider.css('marginLeft')),
newpos =3D $(this).is('.slider-next') ? pos-70 : pos+70 ;
if(newpos <=3D 0 && newpos >=3D limit) {
slider.animate({'marginLeft':newpos});
}
});
$('#generos-vermas').click( function (event) {
event.preventDefault();
$('.music-tag:gt(10)').toggle();
$(this).text( $('.music-tag:visible').length > 10 ? 'Ver menos' : 'Ver=
m=C3=A1s' );
});
$('#invitebeta').submit( function (event) {
event.preventDefault();
=
var id =3D $(this).find('input[type=3Dtext]').val(),
invi =3D $('#inviLeft').text();
if($(this).hasClass('ui-state-disabled') || invi <=3D 0) {
return false;
}
$(this).addClass('ui-state-disabled');
$.ajax({
type: 'POST',
dataType: 'json',
url: '/ajax/codes/invite',
data: {id: id},
success: function (response) {
switch(response.status) {
case 1:
$('#inviLeft').text(response.data);
mydialog.alert('Has enviado una invitaci=C3=B3n a '+id,'Invitaci=C3=
=B3n enviada');
break;
case 0:
mydialog.alert(response.data);
break;
}
$('#invitebeta')
.removeClass('ui-state-disabled')
.find('input[type=3Dtext]').val('');
}
});
});
$("form[name=3Daskbeta]").submit(function(e) {
e.preventDefault();
var form =3D $(this),
params =3D form.serialize();
form.children("*").attr("disabled", true);
$.ajax({
type: form.attr("method"),
url: form.attr("action"),
data: params,
dataType: 'json',
success: function(r) {
var code =3D parseInt(r.status),
data =3D r.data;
if (code =3D=3D 1) {
location.href =3D location.href;
} else {
mydialog.alert(data);
}
},
error: function() {
mydialog.alert("Ocurrió un error al procesar lo solicitado, i=
ntentanlo nuevamente");
},
complete: function() {
form.children("*").attr("disabled", false);
}
});
return false;
});
// Hover navbar superior
$('.navitem.useritem').hover(
function () {
if($('#compose-box').hasClass('noHideForce'))
return false;
$(this).addClass('try-hover');
setTimeout(
function(){
if ($('.navitem.useritem.try-hover').length) {
$('.navitem').removeClass('active');
$('.navpanel').hide();
$('.navitem.useritem')
.removeClass('try-hover')
.addClass('hover')
.children('ul')
.show();
}
},
100
);
},
function () {
$(this)
.removeClass('try-hover hover')
.children('ul')
.hide();
}
);
// NAV PREV ART
$('#prevArt').click( function (event) {
event.preventDefault();
artNav(false);
})
// NAV NEXT ART
$('#nextArt').click( function (event) {
event.preventDefault();
artNav(true);
})
// limit textarea
$('input.sizeLimit, textarea.sizeLimit').sizeLimit({
size: 255,
sizeShow: 200
});
// tipsy comment votes title
$('.hastipsy[title]').tipsy({gravity: 's'});
$('.hastipsy-w[title]').tipsy({gravity: 'w'});
$('.hastipsy-e[title]').tipsy({gravity: 'e'});
// jQuery UI buttons
$('button:not(.btn), input:submit:not(.btn), .ui-button').button();
=
$('.autogrow').autoGrow();
// monitor / last_activity
// add avatars/hovercard of grouped users =
$('strong[data-users]').one(
'click',
function () {
var obj =3D $(this);
ajax(
'user',
'get',
{
ids: obj.attr('data-users')
},
{
success: function (r) {
if (r.data) {
var container =3D obj.closest('.user-data-target'),
html =3D '
' + r.data;
container.append(html);
}
}
}
);
}
);
=
=
//Buscador =
$('.btn_search').bind('click', function () {
if (typeof search_base =3D=3D 'undefined') {
search_base =3D lang['buscar_url'];
}
var val =3D encodeURIComponent($.trim($(this).siblings('input[type=3Dt=
ext]').val()));
val +=3D '&'+$("form[name=3Dfilters]").serialize();
if (val) {
location.href =3D search_base + '?q=3D' + val;
}
})
$('input.searchq').keyup(function(e){
if (e.keyCode =3D=3D=3D 13) {
$(this).siblings('.btn_search').click();
return;
}
});
$('#show-paises-lista, .show-paises-lista').click(function(){
$('#paises-lista li a img[data-lazy]').each(function(){
$(this).attr('src', $(this).attr('data-lazy'));
});
$('#paises-lista').toggle();
});
$("[data-country]").click(function(){
var pais =3D $(this).attr('data-country');
eraseCookie("pais_home");
createCookie("pais_home", pais, 1);
pais =3D readCookie("pais_home");
if (pais) {
location.reload();
}
});
=
=
var location_box_more =3D true;
$('.location-box-more').click(function(){
if (location_box_more) {
$('#comunidades-dir').css('height', '170%');
$(this).html(lang["ver_menos"]);
location_box_more =3D false;
}
else {
$('#comunidades-dir').css('height', '170px');
$(this).html(lang["ver_mas"]);
location_box_more =3D true;
}
});
=
=
// duplicate texts whenever needed
$('.searchq').bind(
'keyup',
function () {
var obj =3D this;
$('.searchq').each(
function () {
if (this !=3D obj) {
$(this).val($(obj).val());
}
}
);
}
);
// hover filter of tops box
$('div.time-tops-filter').hover(
function(){
$(this).children('ul.time-box').show();
},
function(){
$(this).children('ul.time-box').hide();
}
);
if(global_data.img) {
$('img.lazy').lazyload({placeHolder: global_data.img + 'images/space.g=
if', sensitivity: 300});
}
var ntoHideElements =3D new Array();
var ntoRemoveClassElements =3D new Array();
$('body').click(function(e){
if(!$(e.target).closest('.nohide').length){
$('.navitem').not('.noHideForce').removeClass('active');
$('.navpanel').not('.noHideForce').hide();
}
emoticons.list.hide();
});
$('#mensajes-box, #notifications-box').click(function(){
return true;
});
//Editor de posts comentarios
/*$('#myComment-text-box').focus(
function(event){
event.stopPropagation();
if($('#markItUpBody_comm').size()){
$('#markItUpBody_comm > div.markItUpContainer > div.markItUpHeader')=
.show();
$('#comment-button-text').show();
$('#myComment-text-box').addClass('comment-focus');
}else{
// ntoHideElements.push('#markItUpNbody_comm > div.markItUpContainer=
> div.markItUpHeader');
// ntoHideElements.push('#comment-button-text');
$('#body_comm').markItUp(mySettings_cmt);
$('#emoticons_comm').show();
$('#myComment-text-box').addClass('comment-active');
$('#markItUpBody_comm > div.markItUpContainer > div.markItUpHeader')=
.show();
$('#myComment-text-box').addClass('comment-focus');
$('#comment-button-text').show();
var commentTextBox =3D {'myComment-text-box' : 'comment-focus'};
ntoRemoveClassElements.push(commentTextBox);
}
}
);*/
$('#body_comm').markItUp(mySettings_cmt);
//Editor de posts comentarios de novatos
$('#myComment-text-box-novatos').click(
function(event){
event.stopPropagation();
if($('#markItUpBody_comm').size()){
$('#comment-button-text').show();
$('#myComment-text-box').addClass('comment-focus');
$('#body_comm').focus();
}else{
$('#myComment-text-box-novatos').addClass('comment-active');
$('#myComment-text-box-novatos').addClass('comment-focus');
$('#comment-button-text').show();
$('#body_comm').focus();
var commentTextBox =3D {'myComment-text-box' : 'comment-focus'};
ntoRemoveClassElements.push(commentTextBox);
}
}
);
=
// Dialogs global setup
nDialog_cfg =3D {
autoOpen: false,
width: 300,
modal: true,
resizable: false,
draggable: false,
buttons: [
{
text: "Ok",
click: function() {
$(this).dialog("close");
}
}
]
};
// hovercards
$('.hovercard').tooltip({
content: Hovercard.callback,
offset: [ 0, 10 ]
});
$('div.tooltip-c div.view-more a').live('click', function(){
$(this).closest('.tooltip-c.compact').hide().next('.tooltip-c.extended=
').show();
});
// hide from newsfeed
$('div.activity-element a.feed-hide').live(
'click',
function () {
var obj =3D $(this),
container =3D obj.closest('div.activity-element'),
id =3D container.attr('data-feed'),
unfollow =3D '';
if (obj.hasClass('feed-unfollow')) {
unfollow =3D container.attr('data-unfollow')
}
ajax(
'newsfeed',
'hide',
{
id: id,
unfollow: unfollow
}
);
container.fadeOut('fast');
}
);
// editor for posts
$('#markItUp.post').richedit({markItUpSettings: mySettings});
if (!readCookie('wysiwyg')) {
$('.markItUpButton15 a').trigger('mouseenter');
setTimeout(function(){
$('.markItUpButton15 a').trigger('mouseleave');
}, 5000);
}
$('a.following-button').mouseenter( function() {
var unfollow_button =3D $(this).children('.ui-button-text').children('=
.unfollow-button-text:not(.disabled)');
if(unfollow_button.length > 0){
unfollow_button.show();
$(this).children('.ui-button-text').children('.following-button-text'=
).hide();
}
}).mouseleave( function() {
var unfollow_button =3D $(this).children('.ui-button-text').children('=
.unfollow-button-text:not(.disabled)');
if(unfollow_button.length > 0){
unfollow_button.hide();
$(this).children('.ui-button-text').children('.following-button-text'=
).show();
}
});
//new profile
$('a.follow-perfil').mouseenter( function() {
var unfollow_button =3D $(this).children('.ui-button-text').children('=
.unfollow-button-text:not(.disabled)');
if(unfollow_button.length > 0){
unfollow_button.show();
$(this).children('.ui-button-text').children('.following-button-text'=
).hide();
}
}).mouseleave( function() {
var unfollow_button =3D $(this).children('.ui-button-text').children('=
.unfollow-button-text:not(.disabled)');
if(unfollow_button.length > 0){
unfollow_button.hide();
$(this).children('.ui-button-text').children('.following-button-text'=
).show();
}
});
// last activity delete
$('#last-activity-container div.list-element').hover(
function(){
$(this).children('i.remove').show();
$(this).children('span.time').hide();
},
function(){
$(this).children('i.remove').hide();
$(this).children('span.time').show();
}
);
// new last activity delete
$('#last-activity-container div.activity-element, #last-activity-contai=
ner div.shout-element').hover(
function(){
$(this).children('i.remove').show();
},
function(){
$(this).children('i.remove').hide();
}
);
$('.action-vote.pointer').live('click', function(){
if ( $(this).hasClass('ui-state-disabled') || !global_data.user_key ) =
{
return false;
}
var object =3D $(this),
parent =3D object.closest('div.s-action-list'),
nlabel =3D object.find('div.action-number span'),
id =3D parent.attr('data-id'),
owner =3D parent.attr('data-owner');
object.addClass('done ui-state-disabled');
object.find('i').addClass('s-like-color');
nlabel.html(parseInt(nlabel.html()) + 1);
ajax(
'shout',
'vote',
{
uuid: id,
owner: owner,
score: 1
},
{
}
);
});
// shout comment focus to input
$('.action-comment.pointer').live('click', function(){
if($('#body_comm').length){
$('#body_comm').focus();
}
});
function getShoutActivity(list, shoutId, shoutOwner, page) {
var data =3D {
id: shoutId,
owner: shoutOwner,
page: !page ? 1 : page
};
list.css('paddingBottom','30px').show().children('.activity-spinner').=
css('display', 'block');
$.ajax({
url: '/ajax/shout/activity-get',
type: 'post',
data: data,
dataType: 'json',
success: function(shouts) {
list.css('paddingBottom', '0px');
list.children('.activity-spinner').hide();
var len =3D shouts.length;
if(len > 0) {
var html =3D '';
for(i=3D0; i')
.data('item.autocomplete', item)
.append('' + item.caption + ' ')
.appendTo(ul);
};
}
$(window).scroll(function(){
if (window.pageYOffset >=3D 1500) {
$('#scroll-up:not(:visible)').fadeIn();
} else {
$('#scroll-up:visible').fadeOut();
}
});
$('#comments.in-shout .comment-content > img, .expandOnClick').live(
'click',
function() {
var originalWidth =3D $(this).css('width');
$(this).css({maxWidth: '520px', maxHeight: '600px'});
if (!$(this).hasClass('expandOnClick')) {
$(this).css('cursor', 'default');
}
if ($(this).css('width') !=3D originalWidth) {
return false;
}
}
);
hide_untrusted_swf();
$('img.playeroverlay.playHere').live(
'click',
function () {
var obj =3D $(this),
next =3D obj.next('div'),
player =3D next.children('iframe');
obj.hide();
next.show();
if (player) {
player.attr('src', player.attr('src') + '&autoplay=3D1');
}
return false;
}
);
$('.textlimit').textlimit({suffix: '...'});
emoticons.init();
ajaxCheck.init();
ajaxCheck.updateTitle(); //Utilizado para actualizar el titulo
$(".n2see img").error(function(){
$(this).remove();
if (!$(".n2see img").length) {
$(".n2see").remove();
}
});
/*ls.get({
object: 'user',
action: 'following',
expiration: 1000*60*60*6, // 6hs
user: +global_data.user,
callback: function(res) {
if(global_data.user) {
var nickList =3D [];
for(i=3D0,c=3DObject.keys(res.data).length; i=3D0?ui.value:0))
.show();
}
});
});
$("img.open-modal").click(function(){
var image =3D $(' ').css({
maxWidth: parseInt($(window).width()) - 75 + "px",
maxHeight: parseInt($(window).height()) - 75 + "px"
});
image.dialog({dialogClass:" chromeless", modal: true, width: "auto", h=
eight: "auto"})
});
$(function() {
if($.browser.msie && $.browser.version =3D=3D '7.0') {
var zIndexNumber =3D 1000;
$('#header div').each(function() {
$(this).css('zIndex', zIndexNumber);
zIndexNumber -=3D 10;
});
}
});
/*
NEW UI BUTTONS BINDINGS
*/
// FOLLOW OBJECT
$('.follow-buttons .btn')
.hover(
function() { // following -> unfollow
var btn =3D $(this);
if(!btn.is('.wait')) {
if(btn.is('.following')) {
btn.hide().siblings('.unfollowing').show();
}
}
},
function() { // unfollow -> following
var btn =3D $(this);
if(btn.is('.unfollowing') && !btn.is('.wait')) {
btn.hide().siblings('.following').show();
}
if(btn.is('.wait')) {
btn.removeClass('wait');
}
}
)
.live('click', function(event) {
event.preventDefault();
var btn =3D $(this),
dad =3D btn.parent(),
obj =3D btn.attr('obj'),
objId =3D btn.attr('objid');
if(btn.is('.not-following')) { // start following something
follow(true, {type: obj, obj:objId});
dad.children('.btn').hide();
dad.children('.following').addClass('wait').show();
}
if(btn.is('.unfollowing')) { // stop following something
follow(false, {type: obj, obj:objId});
btn.addClass('wait');
dad.children('.btn').hide();
dad.children('.not-following').show();
}
});
// JOIN COMMUNITY
$('.join-community .btn').click( function() {
var btn =3D $(this),
comid =3D btn.attr('comid');
if(btn.is('.join')) {
comm.joinCommunity(comid);
btn.hide().siblings().show();
} else if(btn.is('.leave')) {
comm.leaveCommunity(comid);
btn.hide().siblings().show(); =
}
});
// DROPDOWN BUTTON MENU
$('.dropdown-dropper').click( function(event) {
event.preventDefault();
$(this).addClass('active');
$(this).next('.dropdown-list').show();
});
$(document).click( function(event) {
if(!$(event.target).hasClass('dropdown-dropper active')) {
$('.musthide').hide();
$('.dropdown-dropper').removeClass('active');
}
});
/* END NEW UI BUTTONS BINDINGS */
// image search
var hoverDelay =3D {
interval : true,
obj : false,
timer : 0,
miDelay : function(){
this.interval =3D true;
var objImg =3D this.obj, inter =3D this.interval;
this.timer =3D setTimeout(function(objImg, inter){
return function(){
if (inter) {
var obj =3D objImg,
link =3D obj.attr("href"),
img =3D obj.children("img"),
title =3D $.trim(img.attr("alt").substr(0, 56)) + (img.attr("alt"=
).length > 56 ? "..." : ""),
imgSource =3D img.attr("src");
$(".image-search-preview").remove();
$('' + title + ' ')
.appendTo('body')
.children("img").animate({width:'+=3D50'}, 0)
.parent('a')
.css("width", $(".image-search-preview img").width())
.position({
my: "center",
at: "center",
of: obj
});
}
}
}(objImg, inter), 200);
},
stopDelay : function(){
if(this.interval){
clearTimeout(this.timer);
this.interval =3D false;
}
}
}
$(".images-result a").hover(function(){
hoverDelay.obj =3D $(this);
hoverDelay.stopDelay();
hoverDelay.miDelay();
});
$(".images-result a").live("mouseout", function(){
hoverDelay.stopDelay();
hoverDelay.interval =3D false;
});
$(".image-search-preview").live("mouseout", function(){
$(this).remove();
hoverDelay.stopDelay();
hoverDelay.interval =3D true;
});
/* Mi Init */
//Add input attach
$('.my-shout-attach-options a').live('click', function(){
var type =3D $(this).data('type');
if(type =3D=3D 'image' && $('.my-shout-attach-image').length){
return false;
}
mi.attach.input($(this).closest('.shout-box'), type);
});
//Remove attach
$('.my-shout-attach .remove-attach').live('click', function(){
mi.attach.remove($(this).closest('.shout-box'));
});
//Cancel upload attach
$('.my-shout-attach .cancel-attach').live('click', function(){
mi.attach.cancel($(this).closest('.shout-box'));
});
//Privacy options list
$('.privacy-shout .privacy').live('click', function(event){
var el_list =3D $(this).parent().next();
if($(el_list).is(':visible')){
$('body').click();
return;
}
$(el_list).show().position({
my: 'right top',
at: 'left top',
of: this,
offset: '0',
collision: 'none'
});
});
$('.privacy-shout + ul li a').live('click', function(){
$(this).closest('ul').find('li').removeClass('selected');
$(this).closest('li').addClass('selected');
$(this).closest('ul').prev().data('privacy', $(this).data('value'));
});
$('body').click(function(event){
if(!$(event.target).is('.privacy-shout .privacy'))
$('.privacy-shout').next().hide();
});
//Show list input image
$('.my-shout-attach-options .image a[data-type=3D"image"]').live('click=
', function(event){
var el =3D $(this).closest('.shout-box');
var el_list =3D $(el).find('.my-shout-attach-image');
if(!el_list.length){
return;
}else if($(el_list).is(':visible')){
$('body').click();
return;
}
$(el).find('.my-shout-attach-options a[data-type=3D"image"]').addClass=
('hover');
$(el_list).show().position({
my: 'center top',
at: 'center bottom',
of: this,
offset: '0 8',
collision: 'none'
});
$(el_list).find('.tail.up').position({
my: 'center bottom',
at: 'center top',
of: el_list,
offset: '0 1',
collision: 'none'
});
var width =3D $(el_list).find('a[data-method=3D"upload"]').parent().in=
nerWidth();
var height =3D $(el_list).find('a[data-method=3D"upload"]').parent().i=
nnerHeight();
$(el).find('object').attr({
'width': width,
'height': height
}).position({
my: 'center center',
at: 'center center',
of: $(el_list).find('a[data-method=3D"upload"]'),
offset: '0',
collision: 'none' =
});
});
//Hide list input image
$('body').click(function(event){
if(!$(event.target).is('.my-shout-attach-options .image a[data-type=3D=
"image"]')){
$('.shout-box object').css('top', '-1000px');
$('.my-shout-attach-image.select-list').hide();
$('.my-shout-attach-options a[data-type=3D"image"]').removeClass('hov=
er');
}
});
//Hover object uploader flash
$('.shout-box object').live({
mouseenter: function(){
var el =3D $(this).closest('.shout-box');
$(el).find('a[data-method=3D"upload"]').parent().addClass('hover');
},
mouseleave: function(){
var el =3D $(this).closest('.shout-box');
$(el).find('a[data-method=3D"upload"]').parent().removeClass('hover')=
;
}
});
//Show input url
$('.my-shout-attach-image a').live('click', function(){
if($(this).data('method') =3D=3D 'upload')
return false;
mi.attach.input($(this).closest('.shout-box'), 'image');
});
//Submit shout
$('.my-shout-add').live('click', function(event){
event.preventDefault();
mi.submit($(this).closest('.shout-box'));
});
/* FIN - Mi Init */
//Select list
$('.s-action-list i.select-list').live('click', function(event){
var el_list =3D $(this).next();
if($(el_list).is(':visible')){
$('body').click();
return;
}
$(el_list).css('position', 'relative').show().position({
my: 'right top',
at: 'left top',
of: this,
offset: '3 5',
collision: 'none'
}).css('position', 'absolute');
});
$('body').click(function(event){
if(!$(event.target).is('.s-action-list i.select-list'))
$('.s-action-list i.select-list + .select-list').hide();
});
$(window).keyup(function(e){
if ($.inArray(e.target.tagName.toLowerCase(), [ 'input', 'textarea', '=
select' ]) =3D=3D -1) {
if (!e.ctrlKey && !e.altKey) {
switch (e.which) {
case 80: // p
$.elemScroll('div.activity-element', 'p');
break;
case 78: // n
$.elemScroll('div.activity-element', 'n');
break;
case 67: // c
$('#my-shout-body-mi').focus();
break;
case 83: // s
$('form[name=3Dsearch-mi] input').focus();
break;
}
}
}
});
$('ul.mentionsuggest li').hover(
function () {
nav.hover =3D true;
$('.mentionsuggest li').removeClass('active');
$(this).addClass('active');
}, =
function () {
nav.hover =3D false;
$('.mentionsuggest li').removeClass('active');
}
);
/*ls.get({
object: 'user',
action: 'following',
expiration: 1000*60*60*6, // 6hs
user: +global_data.user,
callback: function(response) {
if(response) {
$('#my-shout-body-mi').mention({
key: '@',
minlength: 1,
list: response.data,
callback: function (list) {
var mentionParent =3D $(this).parent().next(),
mentionSuggest =3D mentionParent.find('.mentionsuggest');
mentionSuggest.html('');
if (list.length) {
var obj =3D $(this),
html =3D '';
for (i=3D0, c=3Dlist.length; i').insertAfter(formObject);
formObject
.bind("keydown", function(event) {
if ($.inArray(event.keyCode, [ 13, 38, 40 ]) =3D=3D=3D -1) {
return;
}
// enter/up/down arrows handler
var listItemObjects =3D listObject.children();
if (!listItemObjects.length) {
return;
}
var listItemSelectedObject =3D listItemObjects.filter(".selected"),
listItemToSelectObject;
if (event.keyCode =3D=3D=3D 13) {
if (!listItemSelectedObject.length) {
return;
}
var text =3D formObject.val(),
suggestText =3D listItemSelectedObject.attr("data-suggest"),
caret =3D formObject.data("caret"),
length =3D formObject.data("length"),
beforeText =3D text.substr(0, caret - length);
if(formObject.hasClass('searchq')) {
var newText =3D ($.inArray(beforeText[0], ['@','#']) > -1 ? before=
Text : '' ) + suggestText;
} else {
var newText =3D beforeText + suggestText + " " + text.substr(caret=
);
}
formObject.val(newText).trigger("suggested", { acceptText: suggestT=
ext });
} else {
if (event.keyCode =3D=3D=3D 40) {
if (!listItemSelectedObject.length || listItemObjects.filter(":las=
t").hasClass("selected")) {
// down and none or last one is checked, check first
listItemToSelectObject =3D listItemObjects.filter(":first");
} else {
// select next
listItemToSelectObject =3D listItemSelectedObject.next();
}
} else if (event.keyCode =3D=3D=3D 38) {
if (!listItemSelectedObject.length || listItemObjects.filter(":fir=
st").hasClass("selected")) {
// up and none or first one is checked, check last
listItemToSelectObject =3D listItemObjects.filter(":last");
} else {
// select prev
listItemToSelectObject =3D listItemSelectedObject.prev();
}
}
listItemObjects.removeClass("selected");
listItemToSelectObject.addClass("selected");
}
event.preventDefault();
return false;
})
.bind("keyup", function(event) {
// suggest
if ($.inArray(event.keyCode, [ 38, 40 ]) !=3D=3D -1) {
return;
}
listObject.hide().children().remove();
if (event.keyCode =3D=3D=3D 13) {
if(formObject.hasClass('searchq')) {
$(this).siblings('.btn_search').click();
}
return;
}
var value =3D formObject.val(),
caret =3D $.getCaret(this),
word =3D value.substr(0, caret).split(" ").pop(),
initial =3D word.split("").shift(),
wordSearch =3D word.substr(1),
source, template, view, label;
switch (initial) {
case "@":
if (formObject.hasClass("suggest-mention") && global_data.user) {
source =3D localStorage.mention || [];
template =3D '@$1 ';
}
break;
case "#":
if (formObject.hasClass("suggest-hashtag") && global_data.user) {
source =3D localStorage.hashtag || [];
template =3D '#$1 ';
}
break;
default:
if (formObject.hasClass("searchq")) {
$.ajax({
url: 'http://suggestqueries.google.com/complete/search?client=3D=
youtube&q=3D' + encodeURIComponent(word) + '&hl=3Des',
dataType: 'jsonp',
cache: true,
success: function (r) {
var template =3D '$1 ',
results =3D [], html =3D '',
len =3D r[1].length > 4 ? 4 : r[1].length;
for(i=3D0,c=3Dlen; i$1"))
$(view).appendTo(listObject);
}
});
if (count) {
listObject.show();
}
}
})
.bind("blur", function() {
setTimeout(function() {
listObject.hide();
}, 150);
})
.bind("focus", function() {
formObject.trigger("keyup");
});
});
});
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=google_service.js
Content-Type: text/javascript; charset=UTF-8; name=google_service.js
Content-Location: http://partner.googleadservices.com/gampad/google_service.js
Content-Transfer-Encoding: Quoted-Printable
(function(){var f=3Dnull;function i(a){this.t=3D{};this.tick=3Dfunction(=
a,c,d){d=3Dd?d:(new Date).getTime();this.t[a]=3D[d,c]};this.tick("start"=
,f,a)}var j=3Dnew i;window.GA_jstiming=3D{Timer:i,load:j};if(window.GA_j=
stiming){window.GA_jstiming.d=3D{};window.GA_jstiming.i=3D1;var k=3Dfunc=
tion(a,b,c){var d=3Da.t[b],e=3Da.t.start;if(d&&(e||c))return d=3Da.t[b][=
0],e=3Dvoid 0!=3Dc?c:e[0],d-e};window.GA_jstiming.report=3Dfunction(a,b,=
c){var d=3D"";a.h&&(d+=3D"&"+a.h);var e=3Da.t,h=3De.start,s=3D[],m=3D[],=
g;for(g in e)if("start"!=3Dg&&0!=3Dg.indexOf("_")){var n=3De[g][1];n?e[n=
]&&m.push(g+"."+k(a,g,e[n][0])):h&&s.push(g+"."+k(a,g))}delete e.start;i=
f(b)for(var t in b)d+=3D"&"+t+"=3D"+b[t];var a=3D[c?c:"{{SCHEME}}//csi.g=
static.com/csi","?v=3D3","&s=3D"+
(window.GA_jstiming.sn||"gam")+"&action=3D",a.name,m.length?"&it=3D"+m.j=
oin(","):"","",d,"&rt=3D",s.join(",")].join(""),b=3Dnew Image,u=3Dwindow=
.GA_jstiming.i++;window.GA_jstiming.d[u]=3Db;b.onload=3Db.onerror=3Dfunc=
tion(){delete window.GA_jstiming.d[u]};b.src=3Da;b=3Df;return a}};var l=3D=
this,o=3Dfunction(a,b){var c,d=3Db,e=3Da.split(".");c=3Dc||l;!(e[0]in c)=
&&c.execScript&&c.execScript("var "+e[0]);for(var h;e.length&&(h=3De.shi=
ft());)!e.length&&void 0!=3D=3Dd?c[h]=3Dd:c=3Dc[h]?c[h]:c[h]=3D{}},q=3Df=
unction(a){var b=3Dp;function c(){}c.prototype=3Db.prototype;a.k=3Db.pro=
totype;a.prototype=3Dnew c};var r=3D/^([\w-]+\.)*([\w-]{2,})(\:[0-9]+)?$=
/,v=3Dfunction(a,b){if(!a)return b;var c=3Da.match(r);return c?c[0]:b};v=
ar w,x=3D"false",y=3D!1,z=3Dw=3D/^true$/.test(x)?!0:/^false$/.test(x)?!1=
:y;var A=3Dfunction(){return v("","pubads.g.doubleclick.net")};var B;B||=
v("","pagead2.googlesyndication.com");var C=3Dfunction(a){this.c=3D[];th=
is.b=3D{};for(var b=3D0,c=3Darguments.length;b<\/script>');this.e=3D!0;window.GA_jstiming&&
window.GA_jstiming.Timer&&(window.GA_jstiming.load.name=3D"load",window.=
GA_jstiming.load.tick("start"))}};window.GS_googleServiceIds_||(window.G=
S_googleServiceIds_=3D{});})()
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=jsapi.js
Content-Type: text/javascript; charset=utf-8; name=jsapi.js
Content-Location: http://www.google.com/jsapi
Content-Transfer-Encoding: Quoted-Printable
if(!window['googleLT_']){window['googleLT_']=3D(new Date()).getTime();}i=
f (!window['google']) {
window['google'] =3D {};
}
if (!window['google']['loader']) {
window['google']['loader'] =3D {};
google.loader.ServiceBase =3D 'http://www.google.com/uds';
google.loader.GoogleApisBase =3D 'http://ajax.googleapis.com/ajax';
google.loader.ApiKey =3D 'notsupplied';
google.loader.KeyVerified =3D true;
google.loader.LoadFailure =3D false;
google.loader.Secure =3D false;
google.loader.GoogleLocale =3D 'www.google.com';
google.loader.ClientLocation =3D {"latitude":41.417,"longitude":2.167,"a=
ddress":{"city":"Barcelona","region":"CT","country":"Spain","country_cod=
e":"ES"}};
google.loader.AdditionalParams =3D '';
(function() {var d=3Dvoid 0,g=3D!0,h=3Dnull,j=3D!1,k=3DencodeURIComponen=
t,l=3Dwindow,m=3Ddocument;function n(a,b){return a.load=3Db}var p=3D"pus=
h",q=3D"replace",r=3D"charAt",t=3D"indexOf",u=3D"ServiceBase",v=3D"name"=
,w=3D"getTime",x=3D"length",y=3D"prototype",z=3D"setTimeout",A=3D"loader=
",B=3D"substring",C=3D"join",D=3D"toLowerCase";function E(a){return a in=
F?F[a]:F[a]=3D-1!=3Dnavigator.userAgent[D]()[t](a)}var F=3D{};function =
G(a,b){var c=3Dfunction(){};c.prototype=3Db[y];a.T=3Db[y];a.prototype=3D=
new c}
function H(a,b,c){var e=3DArray[y].slice.call(arguments,2)||[];return fu=
nction(){var c=3De.concat(Array[y].slice.call(arguments));return a.apply=
(b,c)}}function I(a){a=3DError(a);a.toString=3Dfunction(){return this.me=
ssage};return a}function J(a,b){for(var c=3Da.split(/\./),e=3Dl,f=3D0;f<=
c[x]-1;f++)e[c[f]]||(e[c[f]]=3D{}),e=3De[c[f]];e[c[c[x]-1]]=3Db}function=
K(a,b,c){a[b]=3Dc}if(!L)var L=3DJ;if(!M)var M=3DK;google[A].v=3D{};L("g=
oogle.loader.callbacks",google[A].v);var N=3D{},O=3D{};google[A].eval=3D=
{};L("google.loader.eval",google[A].eval);
n(google,function(a,b,c){function e(a){var b=3Da.split(".");if(2<\/script>"):(E("safari")||E("konqu=
eror"))&&l[z](T,10)),P[p](a)):Q(l,"load",a)};L("google.setOnLoadCallback=
",google.S);
function Q(a,b,c){if(a.addEventListener)a.addEventListener(b,c,j);else i=
f(a.attachEvent)a.attachEvent("on"+b,c);else{var e=3Da["on"+b];if(e!=3Dh=
)var f=3D[c,e],c=3Dfunction(){for(var a=3D0;a<\/script>'):"css"=3D=3Da&&m=
.write(' ')};
L("google.loader.writeLoadTag",google[A].d);google[A].P=3Dfunction(a){O=3D=
a};L("google.loader.rfm",google[A].P);google[A].R=3Dfunction(a){for(var =
b in a)"string"=3D=3Dtypeof b&&(b&&":"=3D=3Db[r](0)&&!N[b])&&(N[b]=3Dnew=
U(b[B](1),a[b]))};L("google.loader.rpl",google[A].R);google[A].Q=3Dfunc=
tion(a){if((a=3Da.specs)&&a[x])for(var b=3D0;bAnuncios Google ' +
' ' +
' ' +
' ' +
' ';
} else if (google_ads[0].type == "image") {
s += 'Anuncios Google ';
} else if (google_ads[0].type == "html") {
s += google_ads[0].snippet;
} else {
if (google_ads.length == 1) {
s += 'Anuncios Google ';
s +=''+google_ads[0].line1 + ' '+
''+google_ads[0].visible_url +' - '+google_ads[0].line2 + ' ' + google_ads[0].line3 +' ';
} else if (google_ads.length > 1) {
s += 'Anuncios Google ';
s +='';
if (google_ads[0].bidtype == "CPC") {
google_adnum = google_adnum + google_ads.length;
}
}
}
document.write(s);
return;
}
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=all.js
Content-Type: application/x-javascript; charset=utf-8; name=all.js
Content-Location: http://connect.facebook.net/es_LA/all.js
Content-Transfer-Encoding: Base64
LyoxMzQ2NTM2NDQ1LDE3MjY5OTY4MixKSVQgQ29uc3RydWN0aW9uOiB2NjIwODEx
LGVzX0xBKi8KCndpbmRvdy5GQiB8fCAoZnVuY3Rpb24od2luZG93KSB7CnZhciBk
b2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDsKdmFyIEVTNSA9IGZ1bmN0aW9uKCl7
Cl9fZCgiRVM1QXJyYXlQcm90b3R5cGUiLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxm
KXt2YXIgZz17fTtnLm1hcD1mdW5jdGlvbihoLGkpe2lmKHR5cGVvZiBoIT0nZnVu
Y3Rpb24nKXRocm93IG5ldyBUeXBlRXJyb3IoKTt2YXIgaixrPXRoaXMubGVuZ3Ro
LGw9bmV3IEFycmF5KGspO2ZvcihqPTA7ajxrOysrailpZihqIGluIHRoaXMpbFtq
XT1oLmNhbGwoaSx0aGlzW2pdLGosdGhpcyk7cmV0dXJuIGw7fTtnLmZvckVhY2g9
ZnVuY3Rpb24oaCxpKXtnLm1hcC5jYWxsKHRoaXMsaCxpKTt9O2cuZmlsdGVyPWZ1
bmN0aW9uKGgsaSl7aWYodHlwZW9mIGghPSdmdW5jdGlvbicpdGhyb3cgbmV3IFR5
cGVFcnJvcigpO3ZhciBqLGssbD10aGlzLmxlbmd0aCxtPVtdO2ZvcihqPTA7ajxs
OysrailpZihqIGluIHRoaXMpe2s9dGhpc1tqXTtpZihoLmNhbGwoaSxrLGosdGhp
cykpbS5wdXNoKGspO31yZXR1cm4gbTt9O2cuZXZlcnk9ZnVuY3Rpb24oaCxpKXtp
Zih0eXBlb2YgaCE9J2Z1bmN0aW9uJyl0aHJvdyBuZXcgVHlwZUVycm9yKCk7dmFy
IGo9bmV3IE9iamVjdCh0aGlzKSxrPWoubGVuZ3RoO2Zvcih2YXIgbD0wO2w8azts
KyspaWYobCBpbiBqKWlmKCFoLmNhbGwoaSxqW2xdLGwsaikpcmV0dXJuIGZhbHNl
O3JldHVybiB0cnVlO307Zy5zb21lPWZ1bmN0aW9uKGgsaSl7aWYodHlwZW9mIGgh
PSdmdW5jdGlvbicpdGhyb3cgbmV3IFR5cGVFcnJvcigpO3ZhciBqPW5ldyBPYmpl
Y3QodGhpcyksaz1qLmxlbmd0aDtmb3IodmFyIGw9MDtsPGs7bCsrKWlmKGwgaW4g
ailpZihoLmNhbGwoaSxqW2xdLGwsaikpcmV0dXJuIHRydWU7cmV0dXJuIGZhbHNl
O307Zy5pbmRleE9mPWZ1bmN0aW9uKGgsaSl7dmFyIGo9dGhpcy5sZW5ndGg7aXw9
MDtpZihpPDApaSs9ajtmb3IoO2k8ajtpKyspaWYoaSBpbiB0aGlzJiZ0aGlzW2ld
PT09aClyZXR1cm4gaTtyZXR1cm4gLTE7fTtlLmV4cG9ydHM9Zzt9KTsKX19kKCJF
UzVGdW5jdGlvblByb3RvdHlwZSIsW10sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3Zh
ciBnPXt9O2cuYmluZD1mdW5jdGlvbihoKXtpZih0eXBlb2YgdGhpcyE9J2Z1bmN0
aW9uJyl0aHJvdyBuZXcgVHlwZUVycm9yKCdCaW5kIG11c3QgYmUgY2FsbGVkIG9u
IGEgZnVuY3Rpb24nKTt2YXIgaT10aGlzLGo9QXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwoYXJndW1lbnRzLDEpO2Z1bmN0aW9uIGsoKXtyZXR1cm4gaS5hcHBseSho
LGouY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykp
KTt9ay5kaXNwbGF5TmFtZT0nYm91bmQ6JysoaS5kaXNwbGF5TmFtZXx8aS5uYW1l
fHwnKD8pJyk7ay50b1N0cmluZz1mdW5jdGlvbiBsKCl7cmV0dXJuICdib3VuZDog
JytpO307cmV0dXJuIGs7fTtlLmV4cG9ydHM9Zzt9KTsKX19kKCJFUzVTdHJpbmdQ
cm90b3R5cGUiLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz17fTtnLnRy
aW09ZnVuY3Rpb24oKXtpZih0aGlzPT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3Io
J1N0cmluZy5wcm90b3R5cGUudHJpbSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmlu
ZWQnKTtyZXR1cm4gU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLmNhbGwodGhpcywv
XlxzK3xccyskL2csJycpO307ZS5leHBvcnRzPWc7fSk7Cl9fZCgiRVM1QXJyYXki
LFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz17fTtnLmlzQXJyYXk9ZnVu
Y3Rpb24oaCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCho
KT09J1tvYmplY3QgQXJyYXldJzt9O2UuZXhwb3J0cz1nO30pOwpfX2QoIkVTNU9i
amVjdCIsW10sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPXt9O2cuY3JlYXRl
PWZ1bmN0aW9uKGgpe3ZhciBpPXR5cGVvZiBoO2lmKGkhPSdvYmplY3QnJiZpIT0n
ZnVuY3Rpb24nKXRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdCBwcm90b3R5cGUg
bWF5IG9ubHkgYmUgYSBPYmplY3Qgb3IgbnVsbCcpO3ZhciBqPW5ldyBGdW5jdGlv
bigpO2oucHJvdG90eXBlPWg7cmV0dXJuIG5ldyBqKCk7fTtnLmtleXM9ZnVuY3Rp
b24oaCl7dmFyIGk9dHlwZW9mIGg7aWYoaSE9J29iamVjdCcmJmkhPSdmdW5jdGlv
bid8fGg9PT1udWxsKXRocm93IG5ldyBUeXBlRXJyb3IoJ09iamVjdC5rZXlzIGNh
bGxlZCBvbiBub24tb2JqZWN0Jyk7dmFyIGo9W107Zm9yKHZhciBrIGluIGgpaWYo
T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGgsaykpai5wdXNo
KGspO3ZhciBsPSEoe3RvU3RyaW5nOnRydWV9KS5wcm9wZXJ0eUlzRW51bWVyYWJs
ZSgndG9TdHJpbmcnKSxtPVsndG9TdHJpbmcnLCd0b0xvY2FsZVN0cmluZycsJ3Zh
bHVlT2YnLCdoYXNPd25Qcm9wZXJ0eScsJ2lzUHJvdG90eXBlT2YnLCdwcm90b3R5
cGVJc0VudW1lcmFibGUnLCdjb25zdHJ1Y3RvciddO2lmKGwpZm9yKHZhciBuPTA7
bjxtLmxlbmd0aDtuKyspe3ZhciBvPW1bbl07aWYoT2JqZWN0LnByb3RvdHlwZS5o
YXNPd25Qcm9wZXJ0eS5jYWxsKGgsbykpai5wdXNoKG8pO31yZXR1cm4gajt9O2Uu
ZXhwb3J0cz1nO30pOwpfX2QoIkVTNURhdGUiLFtdLGZ1bmN0aW9uKGEsYixjLGQs
ZSxmKXt2YXIgZz17fTtnLm5vdz1mdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSgp
LmdldFRpbWUoKTt9O2UuZXhwb3J0cz1nO30pOwovKioKICogQHByb3ZpZGVzTW9k
dWxlIEpTT04zCiAqIEBvcHRpb24gcHJlc2VydmUtaGVhZGVyCiAqCiAqISBKU09O
IHYzLjIuMyB8IGh0dHA6Ly9iZXN0aWVqcy5naXRodWIuY29tL2pzb24zIHwgQ29w
eXJpZ2h0IDIwMTIsIEtpdCBDYW1icmlkZ2UgfCBodHRwOi8va2l0Lm1pdC1saWNl
bnNlLm9yZwogKi9fX2QoIkpTT04zIixbXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7
KGZ1bmN0aW9uKCl7dmFyIGc9e30udG9TdHJpbmcsaCxpLGosaz1lLmV4cG9ydHM9
e30sbD0neyJBIjpbMSx0cnVlLGZhbHNlLG51bGwsIlxcdTAwMDBcXGJcXG5cXGZc
XHJcXHQiXX0nLG0sbixvLHAscSxyLHMsdCx1LHYsdyx4LHkseixhYSxiYT1uZXcg
RGF0ZSgtMzUwOTgyNzMzNDU3MzI5MiksY2EsZGEsZWE7dHJ5e2JhPWJhLmdldFVU
Q0Z1bGxZZWFyKCk9PS0xMDkyNTImJmJhLmdldFVUQ01vbnRoKCk9PT0wJiZiYS5n
ZXRVVENEYXRlKCk9PTEmJmJhLmdldFVUQ0hvdXJzKCk9PTEwJiZiYS5nZXRVVENN
aW51dGVzKCk9PTM3JiZiYS5nZXRVVENTZWNvbmRzKCk9PTYmJmJhLmdldFVUQ01p
bGxpc2Vjb25kcygpPT03MDg7fWNhdGNoKGZhKXt9aWYoIWJhKXtjYT1NYXRoLmZs
b29yO2RhPVswLDMxLDU5LDkwLDEyMCwxNTEsMTgxLDIxMiwyNDMsMjczLDMwNCwz
MzRdO2VhPWZ1bmN0aW9uKGdhLGhhKXtyZXR1cm4gZGFbaGFdKzM2NSooZ2EtMTk3
MCkrY2EoKGdhLTE5NjkrKGhhPSsoaGE+MSkpKS80KS1jYSgoZ2EtMTkwMStoYSkv
MTAwKStjYSgoZ2EtMTYwMStoYSkvNDAwKTt9O31pZih0eXBlb2YgSlNPTj09Im9i
amVjdCImJkpTT04pe2suc3RyaW5naWZ5PUpTT04uc3RyaW5naWZ5O2sucGFyc2U9
SlNPTi5wYXJzZTt9aWYoKG09dHlwZW9mIGsuc3RyaW5naWZ5PT0iZnVuY3Rpb24i
JiYhZWEpKXsoYmE9ZnVuY3Rpb24oKXtyZXR1cm4gMTt9KS50b0pTT049YmE7dHJ5
e209ay5zdHJpbmdpZnkoMCk9PT0iMCImJmsuc3RyaW5naWZ5KG5ldyBOdW1iZXIo
KSk9PT0iMCImJmsuc3RyaW5naWZ5KG5ldyBTdHJpbmcoKSk9PSciIicmJmsuc3Ry
aW5naWZ5KGcpPT09aiYmay5zdHJpbmdpZnkoaik9PT1qJiZrLnN0cmluZ2lmeSgp
PT09aiYmay5zdHJpbmdpZnkoYmEpPT09IjEiJiZrLnN0cmluZ2lmeShbYmFdKT09
IlsxXSImJmsuc3RyaW5naWZ5KFtqXSk9PSJbbnVsbF0iJiZrLnN0cmluZ2lmeShu
dWxsKT09Im51bGwiJiZrLnN0cmluZ2lmeShbaixnLG51bGxdKT09IltudWxsLG51
bGwsbnVsbF0iJiZrLnN0cmluZ2lmeSh7cmVzdWx0OltiYSx0cnVlLGZhbHNlLG51
bGwsIlwwXGJcblxmXHJcdCJdfSk9PWwmJmsuc3RyaW5naWZ5KG51bGwsYmEpPT09
IjEiJiZrLnN0cmluZ2lmeShbMSwyXSxudWxsLDEpPT0iW1xuIDEsXG4gMlxuXSIm
Jmsuc3RyaW5naWZ5KG5ldyBEYXRlKC04LjY0ZSsxNSkpPT0nIi0yNzE4MjEtMDQt
MjBUMDA6MDA6MDAuMDAwWiInJiZrLnN0cmluZ2lmeShuZXcgRGF0ZSg4LjY0ZSsx
NSkpPT0nIisyNzU3NjAtMDktMTNUMDA6MDA6MDAuMDAwWiInJiZrLnN0cmluZ2lm
eShuZXcgRGF0ZSgtNjIxOTg3NTUyMDAwMDApKT09JyItMDAwMDAxLTAxLTAxVDAw
OjAwOjAwLjAwMFoiJyYmay5zdHJpbmdpZnkobmV3IERhdGUoLTEpKT09JyIxOTY5
LTEyLTMxVDIzOjU5OjU5Ljk5OVoiJzt9Y2F0Y2goZmEpe209ZmFsc2U7fX1pZih0
eXBlb2Ygay5wYXJzZT09ImZ1bmN0aW9uIil0cnl7aWYoay5wYXJzZSgiMCIpPT09
MCYmIWsucGFyc2UoZmFsc2UpKXtiYT1rLnBhcnNlKGwpO2lmKChyPWJhLkEubGVu
Z3RoPT01JiZiYS5BWzBdPT0xKSl7dHJ5e3I9IWsucGFyc2UoJyJcdCInKTt9Y2F0
Y2goZmEpe31pZihyKXRyeXtyPWsucGFyc2UoIjAxIikhPTE7fWNhdGNoKGZhKXt9
fX19Y2F0Y2goZmEpe3I9ZmFsc2U7fWJhPWw9bnVsbDtpZighbXx8IXIpe2lmKCEo
aD17fS5oYXNPd25Qcm9wZXJ0eSkpaD1mdW5jdGlvbihnYSl7dmFyIGhhPXt9LGlh
O2lmKChoYS5fX3Byb3RvX189bnVsbCxoYS5fX3Byb3RvX189e3RvU3RyaW5nOjF9
LGhhKS50b1N0cmluZyE9Zyl7aD1mdW5jdGlvbihqYSl7dmFyIGthPXRoaXMuX19w
cm90b19fLGxhPWphIGluICh0aGlzLl9fcHJvdG9fXz1udWxsLHRoaXMpO3RoaXMu
X19wcm90b19fPWthO3JldHVybiBsYTt9O31lbHNle2lhPWhhLmNvbnN0cnVjdG9y
O2g9ZnVuY3Rpb24oamEpe3ZhciBrYT0odGhpcy5jb25zdHJ1Y3Rvcnx8aWEpLnBy
b3RvdHlwZTtyZXR1cm4gamEgaW4gdGhpcyYmIShqYSBpbiBrYSYmdGhpc1tqYV09
PT1rYVtqYV0pO307fWhhPW51bGw7cmV0dXJuIGguY2FsbCh0aGlzLGdhKTt9O2k9
ZnVuY3Rpb24oZ2EsaGEpe3ZhciBpYT0wLGphLGthLGxhLG1hOyhqYT1mdW5jdGlv
bigpe3RoaXMudmFsdWVPZj0wO30pLnByb3RvdHlwZS52YWx1ZU9mPTA7a2E9bmV3
IGphKCk7Zm9yKGxhIGluIGthKWlmKGguY2FsbChrYSxsYSkpaWErKztqYT1rYT1u
dWxsO2lmKCFpYSl7a2E9WyJ2YWx1ZU9mIiwidG9TdHJpbmciLCJ0b0xvY2FsZVN0
cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaXNQcm90b3R5cGVPZiIsImhh
c093blByb3BlcnR5IiwiY29uc3RydWN0b3IiXTttYT1mdW5jdGlvbihuYSxvYSl7
dmFyIHBhPWcuY2FsbChuYSk9PSJbb2JqZWN0IEZ1bmN0aW9uXSIscWEscmE7Zm9y
KHFhIGluIG5hKWlmKCEocGEmJnFhPT0icHJvdG90eXBlIikmJmguY2FsbChuYSxx
YSkpb2EocWEpO2ZvcihyYT1rYS5sZW5ndGg7cWE9a2FbLS1yYV07aC5jYWxsKG5h
LHFhKSYmb2EocWEpKTt9O31lbHNlIGlmKGlhPT0yKXttYT1mdW5jdGlvbihuYSxv
YSl7dmFyIHBhPXt9LHFhPWcuY2FsbChuYSk9PSJbb2JqZWN0IEZ1bmN0aW9uXSIs
cmE7Zm9yKHJhIGluIG5hKWlmKCEocWEmJnJhPT0icHJvdG90eXBlIikmJiFoLmNh
bGwocGEscmEpJiYocGFbcmFdPTEpJiZoLmNhbGwobmEscmEpKW9hKHJhKTt9O31l
bHNlIG1hPWZ1bmN0aW9uKG5hLG9hKXt2YXIgcGE9Zy5jYWxsKG5hKT09IltvYmpl
Y3QgRnVuY3Rpb25dIixxYSxyYTtmb3IocWEgaW4gbmEpaWYoIShwYSYmcWE9PSJw
cm90b3R5cGUiKSYmaC5jYWxsKG5hLHFhKSYmIShyYT1xYT09PSJjb25zdHJ1Y3Rv
ciIpKW9hKHFhKTtpZihyYXx8aC5jYWxsKG5hLChxYT0iY29uc3RydWN0b3IiKSkp
b2EocWEpO307cmV0dXJuIG1hKGdhLGhhKTt9O2lmKCFtKXtuPXsiXFwiOiJcXFxc
IiwnIic6J1xcIicsIlxiIjoiXFxiIiwiXGYiOiJcXGYiLCJcbiI6IlxcbiIsIlxy
IjoiXFxyIiwiXHQiOiJcXHQifTtvPWZ1bmN0aW9uKGdhLGhhKXtyZXR1cm4gKCIw
MDAwMDAiKyhoYXx8MCkpLnNsaWNlKC1nYSk7fTtwPWZ1bmN0aW9uKGdhKXt2YXIg
aGE9JyInLGlhPTAsamE7Zm9yKDtqYT1nYS5jaGFyQXQoaWEpO2lhKyspaGErPSdc
XCJcYlxmXG5cclx0Jy5pbmRleE9mKGphKT4tMT9uW2phXTpqYTwiICI/IlxcdTAw
IitvKDIsamEuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpOmphO3JldHVybiBo
YSsnIic7fTtxPWZ1bmN0aW9uKGdhLGhhLGlhLGphLGthLGxhLG1hKXt2YXIgbmE9
aGFbZ2FdLG9hLHBhLHFhLHJhLHNhLHRhLHVhLHZhLHdhLHhhLHlhLHphLGFiLGJi
LGNiO2lmKHR5cGVvZiBuYT09Im9iamVjdCImJm5hKXtvYT1nLmNhbGwobmEpO2lm
KG9hPT0iW29iamVjdCBEYXRlXSImJiFoLmNhbGwobmEsInRvSlNPTiIpKXtpZihu
YT4tMS8wJiZuYTwxLzApe2lmKGVhKXtyYT1jYShuYS84NjQwMDAwMCk7Zm9yKHBh
PWNhKHJhLzM2NS4yNDI1KSsxOTcwLTE7ZWEocGErMSwwKTw9cmE7cGErKyk7Zm9y
KHFhPWNhKChyYS1lYShwYSwwKSkvMzAuNDIpO2VhKHBhLHFhKzEpPD1yYTtxYSsr
KTtyYT0xK3JhLWVhKHBhLHFhKTtzYT0obmElODY0MDAwMDArODY0MDAwMDApJTg2
NDAwMDAwO3RhPWNhKHNhLzM2MDAwMDApJTI0O3VhPWNhKHNhLzYwMDAwKSU2MDt2
YT1jYShzYS8xMDAwKSU2MDt3YT1zYSUxMDAwO31lbHNle3BhPW5hLmdldFVUQ0Z1
bGxZZWFyKCk7cWE9bmEuZ2V0VVRDTW9udGgoKTtyYT1uYS5nZXRVVENEYXRlKCk7
dGE9bmEuZ2V0VVRDSG91cnMoKTt1YT1uYS5nZXRVVENNaW51dGVzKCk7dmE9bmEu
Z2V0VVRDU2Vjb25kcygpO3dhPW5hLmdldFVUQ01pbGxpc2Vjb25kcygpO31uYT0o
cGE8PTB8fHBhPj0xMDAwMD8ocGE8MD8iLSI6IisiKStvKDYscGE8MD8tcGE6cGEp
Om8oNCxwYSkpKyItIitvKDIscWErMSkrIi0iK28oMixyYSkrIlQiK28oMix0YSkr
IjoiK28oMix1YSkrIjoiK28oMix2YSkrIi4iK28oMyx3YSkrIloiO31lbHNlIG5h
PW51bGw7fWVsc2UgaWYodHlwZW9mIG5hLnRvSlNPTj09ImZ1bmN0aW9uIiYmKChv
YSE9IltvYmplY3QgTnVtYmVyXSImJm9hIT0iW29iamVjdCBTdHJpbmddIiYmb2Eh
PSJbb2JqZWN0IEFycmF5XSIpfHxoLmNhbGwobmEsInRvSlNPTiIpKSluYT1uYS50
b0pTT04oZ2EpO31pZihpYSluYT1pYS5jYWxsKGhhLGdhLG5hKTtpZihuYT09PW51
bGwpcmV0dXJuICJudWxsIjtvYT1nLmNhbGwobmEpO2lmKG9hPT0iW29iamVjdCBC
b29sZWFuXSIpe3JldHVybiAiIituYTt9ZWxzZSBpZihvYT09IltvYmplY3QgTnVt
YmVyXSIpe3JldHVybiBuYT4tMS8wJiZuYTwxLzA/IiIrbmE6Im51bGwiO31lbHNl
IGlmKG9hPT0iW29iamVjdCBTdHJpbmddIilyZXR1cm4gcChuYSk7aWYodHlwZW9m
IG5hPT0ib2JqZWN0Iil7Zm9yKGFiPW1hLmxlbmd0aDthYi0tOylpZihtYVthYl09
PT1uYSl0aHJvdyBUeXBlRXJyb3IoKTttYS5wdXNoKG5hKTt4YT1bXTtiYj1sYTts
YSs9a2E7aWYob2E9PSJbb2JqZWN0IEFycmF5XSIpe2Zvcih6YT0wLGFiPW5hLmxl
bmd0aDt6YTxhYjtjYnx8KGNiPXRydWUpLHphKyspe3lhPXEoemEsbmEsaWEsamEs
a2EsbGEsbWEpO3hhLnB1c2goeWE9PT1qPyJudWxsIjp5YSk7fXJldHVybiBjYj8o
a2E/IltcbiIrbGEreGEuam9pbigiLFxuIitsYSkrIlxuIitiYisiXSI6KCJbIit4
YS5qb2luKCIsIikrIl0iKSk6IltdIjt9ZWxzZXtpKGphfHxuYSxmdW5jdGlvbihk
Yil7dmFyIGViPXEoZGIsbmEsaWEsamEsa2EsbGEsbWEpO2lmKGViIT09ail4YS5w
dXNoKHAoZGIpKyI6Iisoa2E/IiAiOiIiKStlYik7Y2J8fChjYj10cnVlKTt9KTty
ZXR1cm4gY2I/KGthPyJ7XG4iK2xhK3hhLmpvaW4oIixcbiIrbGEpKyJcbiIrYmIr
In0iOigieyIreGEuam9pbigiLCIpKyJ9IikpOiJ7fSI7fW1hLnBvcCgpO319O2su
c3RyaW5naWZ5PWZ1bmN0aW9uKGdhLGhhLGlhKXt2YXIgamEsa2EsbGEsbWEsbmEs
b2E7aWYodHlwZW9mIGhhPT0iZnVuY3Rpb24ifHx0eXBlb2YgaGE9PSJvYmplY3Qi
JiZoYSlpZihnLmNhbGwoaGEpPT0iW29iamVjdCBGdW5jdGlvbl0iKXtrYT1oYTt9
ZWxzZSBpZihnLmNhbGwoaGEpPT0iW29iamVjdCBBcnJheV0iKXtsYT17fTtmb3Io
bWE9MCxuYT1oYS5sZW5ndGg7bWE8bmE7b2E9aGFbbWErK10sKChnLmNhbGwob2Ep
PT0iW29iamVjdCBTdHJpbmddInx8Zy5jYWxsKG9hKT09IltvYmplY3QgTnVtYmVy
XSIpJiYobGFbb2FdPTEpKSk7fWlmKGlhKWlmKGcuY2FsbChpYSk9PSJbb2JqZWN0
IE51bWJlcl0iKXtpZigoaWEtPWlhJTEpPjApZm9yKGphPSIiLGlhPjEwJiYoaWE9
MTApO2phLmxlbmd0aDxpYTtqYSs9IiAiKTt9ZWxzZSBpZihnLmNhbGwoaWEpPT0i
W29iamVjdCBTdHJpbmddIilqYT1pYS5sZW5ndGg8PTEwP2lhOmlhLnNsaWNlKDAs
MTApO3JldHVybiBxKCIiLChvYT17fSxvYVsiIl09Z2Esb2EpLGthLGxhLGphLCIi
LFtdKTt9O31pZighcil7cz1TdHJpbmcuZnJvbUNoYXJDb2RlO3Q9eyJcXCI6Ilxc
IiwnIic6JyInLCIvIjoiLyIsYjoiXGIiLHQ6Ilx0IixuOiJcbiIsZjoiXGYiLHI6
IlxyIn07dT1mdW5jdGlvbigpe3o9YWE9bnVsbDt0aHJvdyBTeW50YXhFcnJvcigp
O307dj1mdW5jdGlvbigpe3ZhciBnYT1hYSxoYT1nYS5sZW5ndGgsaWEsamEsa2Es
bGEsbWE7d2hpbGUoejxoYSl7aWE9Z2EuY2hhckF0KHopO2lmKCJcdFxyXG4gIi5p
bmRleE9mKGlhKT4tMSl7eisrO31lbHNlIGlmKCJ7fVtdOiwiLmluZGV4T2YoaWEp
Pi0xKXt6Kys7cmV0dXJuIGlhO31lbHNlIGlmKGlhPT0nIicpe2ZvcihqYT0iQCIs
eisrO3o8aGE7KXtpYT1nYS5jaGFyQXQoeik7aWYoaWE8IiAiKXt1KCk7fWVsc2Ug
aWYoaWE9PSJcXCIpe2lhPWdhLmNoYXJBdCgrK3opO2lmKCdcXCIvYnRuZnInLmlu
ZGV4T2YoaWEpPi0xKXtqYSs9dFtpYV07eisrO31lbHNlIGlmKGlhPT0idSIpe2th
PSsrejtmb3IobGE9eis0O3o8bGE7eisrKXtpYT1nYS5jaGFyQXQoeik7aWYoIShp
YT49IjAiJiZpYTw9IjkifHxpYT49ImEiJiZpYTw9ImYifHxpYT49IkEiJiZpYTw9
IkYiKSl1KCk7fWphKz1zKCIweCIrZ2Euc2xpY2Uoa2EseikpO31lbHNlIHUoKTt9
ZWxzZXtpZihpYT09JyInKWJyZWFrO2phKz1pYTt6Kys7fX1pZihnYS5jaGFyQXQo
eik9PSciJyl7eisrO3JldHVybiBqYTt9dSgpO31lbHNle2thPXo7aWYoaWE9PSIt
Iil7bWE9dHJ1ZTtpYT1nYS5jaGFyQXQoKyt6KTt9aWYoaWE+PSIwIiYmaWE8PSI5
Iil7aWYoaWE9PSIwIiYmKGlhPWdhLmNoYXJBdCh6KzEpLGlhPj0iMCImJmlhPD0i
OSIpKXUoKTttYT1mYWxzZTtmb3IoO3o8aGEmJihpYT1nYS5jaGFyQXQoeiksaWE+
PSIwIiYmaWE8PSI5Iik7eisrKTtpZihnYS5jaGFyQXQoeik9PSIuIil7bGE9Kyt6
O2Zvcig7bGE8aGEmJihpYT1nYS5jaGFyQXQobGEpLGlhPj0iMCImJmlhPD0iOSIp
O2xhKyspO2lmKGxhPT16KXUoKTt6PWxhO31pYT1nYS5jaGFyQXQoeik7aWYoaWE9
PSJlInx8aWE9PSJFIil7aWE9Z2EuY2hhckF0KCsreik7aWYoaWE9PSIrInx8aWE9
PSItIil6Kys7Zm9yKGxhPXo7bGE8aGEmJihpYT1nYS5jaGFyQXQobGEpLGlhPj0i
MCImJmlhPD0iOSIpO2xhKyspO2lmKGxhPT16KXUoKTt6PWxhO31yZXR1cm4gK2dh
LnNsaWNlKGthLHopO31pZihtYSl1KCk7aWYoZ2Euc2xpY2Uoeix6KzQpPT0idHJ1
ZSIpe3orPTQ7cmV0dXJuIHRydWU7fWVsc2UgaWYoZ2Euc2xpY2Uoeix6KzUpPT0i
ZmFsc2UiKXt6Kz01O3JldHVybiBmYWxzZTt9ZWxzZSBpZihnYS5zbGljZSh6LHor
NCk9PSJudWxsIil7eis9NDtyZXR1cm4gbnVsbDt9dSgpO319cmV0dXJuICIkIjt9
O3c9ZnVuY3Rpb24oZ2Epe3ZhciBoYSxpYSxqYTtpZihnYT09IiQiKXUoKTtpZih0
eXBlb2YgZ2E9PSJzdHJpbmciKXtpZihnYS5jaGFyQXQoMCk9PSJAIilyZXR1cm4g
Z2Euc2xpY2UoMSk7aWYoZ2E9PSJbIil7aGE9W107Zm9yKDs7aWF8fChpYT10cnVl
KSl7Z2E9digpO2lmKGdhPT0iXSIpYnJlYWs7aWYoaWEpaWYoZ2E9PSIsIil7Z2E9
digpO2lmKGdhPT0iXSIpdSgpO31lbHNlIHUoKTtpZihnYT09IiwiKXUoKTtoYS5w
dXNoKHcoZ2EpKTt9cmV0dXJuIGhhO31lbHNlIGlmKGdhPT0ieyIpe2hhPXt9O2Zv
cig7O2lhfHwoaWE9dHJ1ZSkpe2dhPXYoKTtpZihnYT09In0iKWJyZWFrO2lmKGlh
KWlmKGdhPT0iLCIpe2dhPXYoKTtpZihnYT09In0iKXUoKTt9ZWxzZSB1KCk7aWYo
Z2E9PSIsInx8dHlwZW9mIGdhIT0ic3RyaW5nInx8Z2EuY2hhckF0KDApIT0iQCJ8
fHYoKSE9IjoiKXUoKTtoYVtnYS5zbGljZSgxKV09dyh2KCkpO31yZXR1cm4gaGE7
fXUoKTt9cmV0dXJuIGdhO307eT1mdW5jdGlvbihnYSxoYSxpYSl7dmFyIGphPXgo
Z2EsaGEsaWEpO2lmKGphPT09ail7ZGVsZXRlIGdhW2hhXTt9ZWxzZSBnYVtoYV09
amE7fTt4PWZ1bmN0aW9uKGdhLGhhLGlhKXt2YXIgamE9Z2FbaGFdLGthO2lmKHR5
cGVvZiBqYT09Im9iamVjdCImJmphKWlmKGcuY2FsbChqYSk9PSJbb2JqZWN0IEFy
cmF5XSIpe2ZvcihrYT1qYS5sZW5ndGg7a2EtLTspeShqYSxrYSxpYSk7fWVsc2Ug
aShqYSxmdW5jdGlvbihsYSl7eShqYSxsYSxpYSk7fSk7cmV0dXJuIGlhLmNhbGwo
Z2EsaGEsamEpO307ay5wYXJzZT1mdW5jdGlvbihnYSxoYSl7ej0wO2FhPWdhO3Zh
ciBpYT13KHYoKSk7aWYodigpIT0iJCIpdSgpO3o9YWE9bnVsbDtyZXR1cm4gaGEm
JmcuY2FsbChoYSk9PSJbb2JqZWN0IEZ1bmN0aW9uXSI/eCgoYmE9e30sYmFbIiJd
PWlhLGJhKSwiIixoYSk6aWE7fTt9fX0pLmNhbGwodGhpcyk7fSk7Cl9fZCgiRVM1
IixbIkVTNUFycmF5UHJvdG90eXBlIiwiRVM1RnVuY3Rpb25Qcm90b3R5cGUiLCJF
UzVTdHJpbmdQcm90b3R5cGUiLCJFUzVBcnJheSIsIkVTNU9iamVjdCIsIkVTNURh
dGUiLCJKU09OMyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1iKCdFUzVB
cnJheVByb3RvdHlwZScpLGg9YignRVM1RnVuY3Rpb25Qcm90b3R5cGUnKSxpPWIo
J0VTNVN0cmluZ1Byb3RvdHlwZScpLGo9YignRVM1QXJyYXknKSxrPWIoJ0VTNU9i
amVjdCcpLGw9YignRVM1RGF0ZScpLG09YignSlNPTjMnKSxuPUFycmF5LnByb3Rv
dHlwZS5zbGljZSxvPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscD17fSxxPXth
cnJheTpnLCdmdW5jdGlvbic6aCxzdHJpbmc6aSxPYmplY3Q6ayxBcnJheTpqLERh
dGU6bCxKU09OOm19O2Zvcih2YXIgciBpbiBxKXtpZighcS5oYXNPd25Qcm9wZXJ0
eShyKSljb250aW51ZTt2YXIgcz1xW3JdLHQ9cj09PXIudG9Mb3dlckNhc2UoKT93
aW5kb3dbci5yZXBsYWNlKC9eXHcvLGZ1bmN0aW9uKHgpe3JldHVybiB4LnRvVXBw
ZXJDYXNlKCk7fSldLnByb3RvdHlwZTp3aW5kb3dbcl07Zm9yKHZhciB1IGluIHMp
e2lmKCFzLmhhc093blByb3BlcnR5KHUpKWNvbnRpbnVlO2lmKCF0KXtwW3IrJy4n
K3VdPXNbdV07Y29udGludWU7fXZhciB2PXRbdV07cFtyKycuJyt1XT12JiYvXHtc
cytcW25hdGl2ZSBjb2RlXF1cc1x9Ly50ZXN0KHYpP3Y6c1t1XTt9fWZ1bmN0aW9u
IHcoeCx5LHope3ZhciBhYT1uLmNhbGwoYXJndW1lbnRzLDMpLGJhPXo/L1xzKC4q
KVxdLy5leGVjKG8uY2FsbCh4KS50b0xvd2VyQ2FzZSgpKVsxXTp4LGNhPXBbYmEr
Jy4nK3ldfHx4W3ldO2lmKHR5cGVvZiBjYT09PSdmdW5jdGlvbicpcmV0dXJuIGNh
LmFwcGx5KHgsYWEpO31lLmV4cG9ydHM9dzt9KTsKRVM1ID0gcmVxdWlyZSgnRVM1
Jyk7CnJldHVybiBFUzUuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsKfTsKOwp2YXIg
RkIgPSB7fTsKdmFyIF9fREVWX18gPSAwOwpmdW5jdGlvbiBiYWdvZmhvbGRpbmco
KSB7fTsKZnVuY3Rpb24gX19jKCkge19fZCgiVXJsTWFwQ29uZmlnIixbXSx7Ind3
dyI6Ind3dy5mYWNlYm9vay5jb20iLCJtIjoibS5mYWNlYm9vay5jb20iLCJjb25u
ZWN0IjoiY29ubmVjdC5mYWNlYm9vay5uZXQiLCJhcGlfaHR0cHMiOiJhcGkuZmFj
ZWJvb2suY29tIiwiYXBpX3JlYWRfaHR0cHMiOiJhcGktcmVhZC5mYWNlYm9vay5j
b20iLCJncmFwaF9odHRwcyI6ImdyYXBoLmZhY2Vib29rLmNvbSIsImZiY2RuX2h0
dHAiOiJzdGF0aWMuYWsuZmJjZG4ubmV0IiwiZmJjZG5faHR0cHMiOiJzLXN0YXRp
Yy5hay5mYmNkbi5uZXQiLCJjZG5faHR0cCI6InN0YXRpYy5hay5mYWNlYm9vay5j
b20iLCJjZG5faHR0cHMiOiJzLXN0YXRpYy5hay5mYWNlYm9vay5jb20ifSk7X19k
KCJTREtDb25maWciLFtdLHsieGZibWxVc2VMZWdhY3kiOnRydWUsIm1pZ3JhdGUi
OmZhbHNlLCJlcnJvckhhbmRsaW5nIjp7InJhdGUiOjJ9LCJhcGkiOnsibW9kZSI6
Indhcm4iLCJ3aGl0ZWxpc3QiOlsiQXJiaXRlciIsIkFyYml0ZXIuaW5mb3JtIiwi
Q2FudmFzIiwiQ2FudmFzLlByZWZldGNoZXIuYWRkU3RhdGljUmVzb3VyY2UiLCJD
YW52YXMuUHJlZmV0Y2hlci5zZXRDb2xsZWN0aW9uTW9kZSIsIkNhbnZhcy5nZXRQ
YWdlSW5mbyIsIkNhbnZhcy5oaWRlRmxhc2hFbGVtZW50IiwiQ2FudmFzLnNjcm9s
bFRvIiwiQ2FudmFzLnNldEF1dG9Hcm93IiwiQ2FudmFzLnNldEF1dG9SZXNpemUi
LCJDYW52YXMuc2V0RG9uZUxvYWRpbmciLCJDYW52YXMuc2V0U2l6ZSIsIkNhbnZh
cy5zZXRVcmxIYW5kbGVyIiwiQ2FudmFzLnNob3dGbGFzaEVsZW1lbnQiLCJDYW52
YXMuc3RhcnRUaW1lciIsIkNhbnZhcy5zdG9wVGltZXIiLCJEYXRhIiwiRGF0YS5x
dWVyeSIsIkRhdGEud2FpdE9uIiwiRG9tIiwiRG9tLmFkZENzc1J1bGVzIiwiRXZl
bnQiLCJFdmVudC5zdWJzY3JpYmUiLCJFdmVudC51bnN1YnNjcmliZSIsIkluc2ln
aHRzIiwiSW5zaWdodHMuaW1wcmVzc2lvbiIsIk11c2ljIiwiTXVzaWMuZmxhc2hD
YWxsYmFjayIsIk11c2ljLmluaXQiLCJNdXNpYy5zZW5kIiwiUGF5bWVudCIsIlBh
eW1lbnQuaW5pdCIsIlBheW1lbnQuc2V0U2l6ZSIsIlVBIiwiVUEubmF0aXZlQXBw
IiwiWEQiLCJYRC5vbk1lc3NhZ2UiLCJYRkJNTCIsIlhGQk1MLnBhcnNlIiwiYXBp
IiwiZ2V0QWNjZXNzVG9rZW4iLCJnZXRBdXRoUmVzcG9uc2UiLCJnZXRMb2dpblN0
YXR1cyIsImdldFVzZXJJRCIsImluaXQiLCJsb2dpbiIsImxvZ291dCIsInVpIl19
fSk7X19kKCJBcGlDbGllbnRDb25maWciLFtdLHsiRmxhc2hSZXF1ZXN0Ijp7InN3
ZlVybCI6Imh0dHBzOlwvXC9jb25uZWN0LmZhY2Vib29rLm5ldFwvcnNyYy5waHBc
L3YxXC95NVwvclwvU3JudlFKQlR4by0uc3dmIn19KTtfX2QoIlhEQ29uZmlnIixb
XSx7IlhkVXJsIjoiY29ubmVjdFwveGRfYXJiaXRlci5waHA/dmVyc2lvbj0xMSIs
IkZsYXNoIjp7InBhdGgiOiJodHRwczpcL1wvY29ubmVjdC5mYWNlYm9vay5uZXRc
L3JzcmMucGhwXC92MVwveXNcL3JcL1dPTi1UVkxDcERQLnN3ZiJ9LCJ1c2VDZG4i
OnRydWV9KTtfX2QoIkNhbnZhc1ByZWZldGNoZXJDb25maWciLFtdLHsiYmxhY2ts
aXN0IjpbMTQ0OTU5NjE1NTc2NDY2XSwic2FtcGxlUmF0ZSI6NTAwfSk7fQpmdW5j
dGlvbiBfX2QoKSB7IEZCLl9fZC5hcHBseShGQiwgYXJndW1lbnRzKTsgfQpmdW5j
dGlvbiByZXF1aXJlKCkgeyByZXR1cm4gRkIucmVxdWlyZS5hcHBseShudWxsLCBh
cmd1bWVudHMpOyB9CihmdW5jdGlvbigpIHsoZnVuY3Rpb24oYSl7aWYoYS5yZXF1
aXJlKXJldHVybjt2YXIgYj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGM9e30s
ZD17fSxlPXt9LGY9MCxnPTEsaD0yLGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Q
cm9wZXJ0eTtmdW5jdGlvbiBqKHUpe3ZhciB2PWNbdV0sdyx4LHk7aWYoIWNbdV0p
e3k9J1JlcXVpcmluZyB1bmtub3duIG1vZHVsZSAiJyt1KyciJzt0aHJvdyBuZXcg
RXJyb3IoeSk7fWlmKHYud2FpdGluZyYmdi5zcGVjaWFsJmgpbSgpO2lmKHYud2Fp
dGluZyl7eT0nUmVxdWlyaW5nIG1vZHVsZSAiJyt1KyciIHdpdGggdW5yZXNvbHZl
ZCBkZXBlbmRlbmNpZXMnO3Rocm93IG5ldyBFcnJvcih5KTt9aWYoIXYuZXhwb3J0
cyl7dmFyIHo9di5leHBvcnRzPXt9LGFhPXYuZmFjdG9yeTtpZih0eXBlb2YgYWE9
PT0nc3RyaW5nJyl7dmFyIGJhPScoJythYSsnKSc7YWE9KGV2YWwpKGJhKTt9aWYo
Yi5jYWxsKGFhKT09PSdbb2JqZWN0IEZ1bmN0aW9uXScpe3ZhciBjYT1bXSxkYT12
LmRlcGVuZGVuY2llcyxlYT1kYS5sZW5ndGg7aWYodi5zcGVjaWFsJmgpZWE9TWF0
aC5taW4oZWEsYWEubGVuZ3RoKTtmb3IoeD0wO3g8ZWE7eCsrKXt3PWRhW3hdO2Nh
LnB1c2godz09PSdtb2R1bGUnP3Y6KHc9PT0nZXhwb3J0cyc/ejpqKHcpKSk7fXZh
ciBmYT1hYS5hcHBseSh2LmNvbnRleHR8fGEsY2EpO2lmKGZhKXYuZXhwb3J0cz1m
YTt9ZWxzZSB2LmV4cG9ydHM9YWE7fWlmKHYucmVmY291bnQtLT09PTEpZGVsZXRl
IGNbdV07cmV0dXJuIHYuZXhwb3J0czt9ZnVuY3Rpb24gayh1LHYsdyx4LHkseil7
aWYodj09PXVuZGVmaW5lZCl7dj1bXTt3PXU7dT1vKCk7fWVsc2UgaWYodz09PXVu
ZGVmaW5lZCl7dz12O2lmKGIuY2FsbCh1KT09PSdbb2JqZWN0IEFycmF5XScpe3Y9
dTt1PW8oKTt9ZWxzZSB2PVtdO312YXIgYWE9Y1t1XTtpZihhYSl7aWYoeilhYS5y
ZWZjb3VudCs9ejtyZXR1cm47fWVsc2UgaWYoIXYmJiF3JiZ6KXtlW3VdPShlW3Vd
fHwwKSt6O3JldHVybjt9ZWxzZXthYT17aWQ6dX07YWEucmVmY291bnQ9KGVbdV18
fDApKyh6fHwwKTtkZWxldGUgZVt1XTt9YWEuZmFjdG9yeT13O2FhLmRlcGVuZGVu
Y2llcz12O2FhLmNvbnRleHQ9eTthYS5zcGVjaWFsPXg7Y1t1XT1hYTtwKHUpO31m
dW5jdGlvbiBsKHUsdix3KXtrKHUsdix1bmRlZmluZWQsZyx3LDEpO31mdW5jdGlv
biBtKCl7dmFyIHU9e30sdjtmb3IodiBpbiBkKWlmKGkuY2FsbChkLHYpKWlmKGNb
dl0mJiF1W3ZdJiZjW3ZdLnNwZWNpYWwmaCluKHt9LHYsdSk7fWZ1bmN0aW9uIG4o
dSx2LHcpe3dbdl09MTt2YXIgeD1kW3ZdLHk7aWYoIXgpcmV0dXJuO3Vbdl09MTtm
b3IoeSBpbiB4KWlmKGkuY2FsbCh4LHkpKXtpZighY1t5XS5zcGVjaWFsJmgpY29u
dGludWU7aWYodVt5XSl7ZGVsZXRlIHhbeV07Y1t5XS53YWl0aW5nLS07aWYoIWNb
eV0ud2FpdGluZylxKHkpO31lbHNlIG4odSx5LHcpO311W3ZdPTA7fWZ1bmN0aW9u
IG8oKXtyZXR1cm4gJ19fbW9kX18nK2YrKzt9ZnVuY3Rpb24gcCh1KXt2YXIgdj1j
W3VdLHc9MDtmb3IodmFyIHg9MDt4PHYuZGVwZW5kZW5jaWVzLmxlbmd0aDt4Kysp
e3ZhciB5PXYuZGVwZW5kZW5jaWVzW3hdO2lmKCFjW3ldfHxjW3ldLndhaXRpbmcp
e2RbeV18fChkW3ldPXt9KTtpZighZFt5XVt1XSl3Kys7ZFt5XVt1XT0xO319di53
YWl0aW5nPXc7aWYoIXcpcSh1KTt9ZnVuY3Rpb24gcSh1KXt2YXIgdj1jW3VdO2lm
KHYuc3BlY2lhbCZnKWoodSk7dmFyIHc9ZFt1XSx4PVtdO2lmKHcpe2RlbGV0ZSBk
W3VdO2Zvcih2YXIgeSBpbiB3KWlmKGkuY2FsbCh3LHkpKWlmKCEtLWNbeV0ud2Fp
dGluZyl4LnB1c2goeSk7fWZvcih2YXIgej0wO3o8eC5sZW5ndGg7eisrKXEoeFt6
XSk7fWZ1bmN0aW9uIHIodSx2KXtjW3VdPXtpZDp1fTtjW3VdLmV4cG9ydHM9djt9
cignbW9kdWxlJywwKTtyKCdleHBvcnRzJywwKTtyKCdkZWZpbmUnLGspO3IoJ2ds
b2JhbCcsYSk7cigncmVxdWlyZScsaik7cigncmVxdWlyZUR5bmFtaWMnLGopO3Io
J3JlcXVpcmVMYXp5JyxsKTtrLmFtZD17fTthLmRlZmluZT1rO2EucmVxdWlyZT1q
O2EucmVxdWlyZUR5bmFtaWM9ajthLnJlcXVpcmVMYXp5PWw7ai5fX2RlYnVnPXtt
b2R1bGVzOmMsZGVwczpkfTt2YXIgcz1mYWxzZSx0PWZ1bmN0aW9uKHUsdix3LHgp
e2sodSx2LHcseHx8aCk7aWYoY1t1XS53YWl0aW5nJiYhcylzPXNldFRpbWVvdXQo
ZnVuY3Rpb24oKXttKCk7cz1mYWxzZTt9LDkpO307YS5fX2Q9ZnVuY3Rpb24odSx2
LHcseCl7dj1bJ2dsb2JhbCcsJ3JlcXVpcmUnLCdyZXF1aXJlRHluYW1pYycsJ3Jl
cXVpcmVMYXp5JywnbW9kdWxlJywnZXhwb3J0cyddLmNvbmNhdCh2KTt0KHUsdix3
LHgpO307YS5fX2U9YS5fX2Q7fSkodGhpcyk7Cjt9KS5jYWxsKEZCKTsKX19kKCJn
dWlkIixbXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7ZnVuY3Rpb24gZygpe3JldHVy
biAnZicrKE1hdGgucmFuZG9tKCkqKDE8PDMwKSkudG9TdHJpbmcoMTYpLnJlcGxh
Y2UoJy4nLCcnKTt9ZS5leHBvcnRzPWc7fSk7Cl9fZCgiZG90QWNjZXNzIixbXSxm
dW5jdGlvbihhLGIsYyxkLGUsZil7ZnVuY3Rpb24gZyhoLGksail7dmFyIGs9aS5z
cGxpdCgnLicpO2Rve3ZhciBsPWsuc2hpZnQoKTtoPWhbbF18fGomJihoW2xdPXt9
KTt9d2hpbGUoay5sZW5ndGgmJmgpO3JldHVybiBoO31lLmV4cG9ydHM9Zzt9KTsK
X19kKCJjb3B5UHJvcGVydGllcyIsW10sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2Z1
bmN0aW9uIGcoaCxpLGosayxsLG0sbil7aD1ofHx7fTt2YXIgbz1baSxqLGssbCxt
XSxwPTAscTt3aGlsZShvW3BdKXtxPW9bcCsrXTtmb3IodmFyIHIgaW4gcSloW3Jd
PXFbcl07aWYocS5oYXNPd25Qcm9wZXJ0eSYmcS5oYXNPd25Qcm9wZXJ0eSgndG9T
dHJpbmcnKSYmKHR5cGVvZiBxLnRvU3RyaW5nIT0ndW5kZWZpbmVkJykmJihoLnRv
U3RyaW5nIT09cS50b1N0cmluZykpaC50b1N0cmluZz1xLnRvU3RyaW5nO31yZXR1
cm4gaDt9ZS5leHBvcnRzPWc7fSk7Cl9fZCgic2FmZUV2YWwiLFtdLGZ1bmN0aW9u
KGEsYixjLGQsZSxmKXtmdW5jdGlvbiBnKGgpe2lmKGg9PT1udWxsfHx0eXBlb2Yg
aD09PSd1bmRlZmluZWQnKXJldHVybjtpZih0eXBlb2YgaCE9PSdzdHJpbmcnKXJl
dHVybiBoO3JldHVybiBGdW5jdGlvbigncmV0dXJuIGV2YWwoIicraC5yZXBsYWNl
KC8iL2csJ1xcIicpKyciKTsnKSgpO31lLmV4cG9ydHM9Zzt9KTsKX19kKCJNYW5h
Z2VkRXJyb3IiLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXtmdW5jdGlvbiBnKGgs
aSl7RXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxoKTt0aGlz
Lm1lc3NhZ2U9aDt0aGlzLmlubmVyRXJyb3I9aTt9Zy5wcm90b3R5cGU9bmV3IEVy
cm9yKCk7Zy5wcm90b3R5cGUuY29uc3RydWN0b3I9ZztlLmV4cG9ydHM9Zzt9KTsK
X19kKCJBc3NlcnRpb25FcnJvciIsWyJNYW5hZ2VkRXJyb3IiXSxmdW5jdGlvbihh
LGIsYyxkLGUsZil7dmFyIGc9YignTWFuYWdlZEVycm9yJyk7ZnVuY3Rpb24gaChp
KXtnLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7
fWgucHJvdG90eXBlPW5ldyBnKCk7aC5wcm90b3R5cGUuY29uc3RydWN0b3I9aDtl
LmV4cG9ydHM9aDt9KTsKX19kKCJzcHJpbnRmIixbXSxmdW5jdGlvbihhLGIsYyxk
LGUsZil7ZnVuY3Rpb24gZyhoLGkpe2k9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNh
bGwoYXJndW1lbnRzLDEpO3ZhciBqPTA7cmV0dXJuIGgucmVwbGFjZSgvJXMvZyxm
dW5jdGlvbihrKXtyZXR1cm4gaVtqKytdO30pO31lLmV4cG9ydHM9Zzt9KTsKX19k
KCJBc3NlcnQiLFsiQXNzZXJ0aW9uRXJyb3IiLCJzcHJpbnRmIl0sZnVuY3Rpb24o
YSxiLGMsZCxlLGYpe3ZhciBnPWIoJ0Fzc2VydGlvbkVycm9yJyksaD1iKCdzcHJp
bnRmJyk7ZnVuY3Rpb24gaShxKXtyZXR1cm4gRVM1KHEsJ2JpbmQnLHRydWUsbnVs
bCxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpO31mdW5j
dGlvbiBqKHEscil7aWYoIXEpdGhyb3cgbmV3IGcocik7cmV0dXJuIHE7fWZ1bmN0
aW9uIGsocSxyLHMpe3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChyKSx1PS9ccyhcdyopLy5leGVjKHQpWzFdLnRvTG93ZXJDYXNlKCk7aih+RVM1
KHEsJ2luZGV4T2YnLHRydWUsdSksc3x8aCgnRXhwcmVzc2lvbiBpcyBvZiB0eXBl
ICVzLCBub3QgJXMnLHUscSkpO3JldHVybiByO31mdW5jdGlvbiBsKHEscixzKXtq
KHIgaW5zdGFuY2VvZiBxLHN8fCdFeHByZXNzaW9uIG5vdCBpbnN0YW5jZSBvZiB0
eXBlJyk7cmV0dXJuIHI7fXZhciBtPXtpc0luc3RhbmNlT2Y6bCxpc1RydWU6aix0
eXBlOmt9LG49WydBcnJheScsJ0Jvb2xlYW4nLCdEYXRlJywnRnVuY3Rpb24nLCdO
dWxsJywnTnVtYmVyJywnT2JqZWN0JywnUmVnZXhwJywnU3RyaW5nJywnVW5kZWZp
bmVkJ10sbz1uLmxlbmd0aDt3aGlsZShvLS0pe3ZhciBwPW5bb107bVsnaXMnK3Bd
PWkoayxwLnRvTG93ZXJDYXNlKCkpO31lLmV4cG9ydHM9bTt9KTsKX19kKCJ3cmFw
RnVuY3Rpb24iLFsiQXNzZXJ0Il0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBn
PWIoJ0Fzc2VydCcpLGg9e307ZnVuY3Rpb24gaShqLGssbCl7Zy5pc0Z1bmN0aW9u
KGopO2s9a3x8J2RlZmF1bHQnO3JldHVybiBmdW5jdGlvbigpe3ZhciBtPWsgaW4g
aD9oW2tdKGosbCk6ajtyZXR1cm4gbS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fTt9
aS5zZXRXcmFwcGVyPWZ1bmN0aW9uKGosayl7Zy5pc0Z1bmN0aW9uKGopO2s9a3x8
J2RlZmF1bHQnO2hba109ajt9O2UuZXhwb3J0cz1pO30pOwpfX2QoIlVzZXJBZ2Vu
dCIsW10sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWZhbHNlLGgsaSxqLGss
bCxtLG4sbyxwLHEscixzLHQsdTtmdW5jdGlvbiB2KCl7aWYoZylyZXR1cm47Zz10
cnVlO3ZhciB4PW5hdmlnYXRvci51c2VyQWdlbnQseT0vKD86TVNJRS4oXGQrXC5c
ZCspKXwoPzooPzpGaXJlZm94fEdyYW5QYXJhZGlzb3xJY2V3ZWFzZWwpLihcZCtc
LlxkKykpfCg/Ok9wZXJhKD86LitWZXJzaW9uLnwuKShcZCtcLlxkKykpfCg/OkFw
cGxlV2ViS2l0LihcZCsoPzpcLlxkKyk/KSkvLmV4ZWMoeCksej0vKE1hYyBPUyBY
KXwoV2luZG93cyl8KExpbnV4KS8uZXhlYyh4KTtyPS9cYihpUGhvbmV8aVBbYW9d
ZCkvLmV4ZWMoeCk7cz0vXGIoaVBbYW9dZCkvLmV4ZWMoeCk7cD0vQW5kcm9pZC9p
LmV4ZWMoeCk7dD0vRkJBTlwvXHcrOy9pLmV4ZWMoeCk7dT0vTW9iaWxlL2kuZXhl
Yyh4KTtxPSEhKC9XaW42NC8uZXhlYyh4KSk7aWYoeSl7aD15WzFdP3BhcnNlRmxv
YXQoeVsxXSk6TmFOO2lmKGgmJmRvY3VtZW50LmRvY3VtZW50TW9kZSloPWRvY3Vt
ZW50LmRvY3VtZW50TW9kZTtpPXlbMl0/cGFyc2VGbG9hdCh5WzJdKTpOYU47aj15
WzNdP3BhcnNlRmxvYXQoeVszXSk6TmFOO2s9eVs0XT9wYXJzZUZsb2F0KHlbNF0p
Ok5hTjtpZihrKXt5PS8oPzpDaHJvbWVcLyhcZCtcLlxkKykpLy5leGVjKHgpO2w9
eSYmeVsxXT9wYXJzZUZsb2F0KHlbMV0pOk5hTjt9ZWxzZSBsPU5hTjt9ZWxzZSBo
PWk9aj1sPWs9TmFOO2lmKHope2lmKHpbMV0pe3ZhciBhYT0vKD86TWFjIE9TIFgg
KFxkKyg/OlsuX11cZCspPykpLy5leGVjKHgpO209YWE/cGFyc2VGbG9hdChhYVsx
XS5yZXBsYWNlKCdfJywnLicpKTp0cnVlO31lbHNlIG09ZmFsc2U7bj0hIXpbMl07
bz0hIXpbM107fWVsc2UgbT1uPW89ZmFsc2U7fXZhciB3PXtpZTpmdW5jdGlvbigp
e3JldHVybiB2KCl8fGg7fSxpZTY0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuaWUoKSYm
cTt9LGZpcmVmb3g6ZnVuY3Rpb24oKXtyZXR1cm4gdigpfHxpO30sb3BlcmE6ZnVu
Y3Rpb24oKXtyZXR1cm4gdigpfHxqO30sc2FmYXJpOmZ1bmN0aW9uKCl7cmV0dXJu
IHYoKXx8azt9LGNocm9tZTpmdW5jdGlvbigpe3JldHVybiB2KCl8fGw7fSx3aW5k
b3dzOmZ1bmN0aW9uKCl7cmV0dXJuIHYoKXx8bjt9LG9zeDpmdW5jdGlvbigpe3Jl
dHVybiB2KCl8fG07fSxsaW51eDpmdW5jdGlvbigpe3JldHVybiB2KCl8fG87fSxp
cGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdigpfHxyO30sbW9iaWxlOmZ1bmN0aW9u
KCl7cmV0dXJuIHYoKXx8KHJ8fHN8fHB8fHUpO30sbmF0aXZlQXBwOmZ1bmN0aW9u
KCl7cmV0dXJuIHYoKXx8dDt9LGFuZHJvaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdigp
fHxwO30saXBhZDpmdW5jdGlvbigpe3JldHVybiB2KCl8fHM7fX07ZS5leHBvcnRz
PXc7fSk7Cl9fZCgiVXJsTWFwIixbIlVybE1hcENvbmZpZyJdLGZ1bmN0aW9uKGEs
YixjLGQsZSxmKXt2YXIgZz1jKCdVcmxNYXBDb25maWcnKSxoPXtyZXNvbHZlOmZ1
bmN0aW9uKGksail7dmFyIGs9dHlwZW9mIGo9PSd1bmRlZmluZWQnP2xvY2F0aW9u
LnByb3RvY29sLnJlcGxhY2UoJzonLCcnKTpqPydodHRwcyc6J2h0dHAnO2lmKGkg
aW4gZylyZXR1cm4gaysnOi8vJytnW2ldO2lmKHR5cGVvZiBqPT0ndW5kZWZpbmVk
JyYmaSsnXycrayBpbiBnKXJldHVybiBrKyc6Ly8nK2dbaSsnXycra107aWYoaiE9
PXRydWUmJmkrJ19odHRwJyBpbiBnKXJldHVybiAnaHR0cDovLycrZ1tpKydfaHR0
cCddO2lmKGohPT1mYWxzZSYmaSsnX2h0dHBzJyBpbiBnKXJldHVybiAnaHR0cHM6
Ly8nK2dbaSsnX2h0dHBzJ107fX07ZS5leHBvcnRzPWg7fSk7Cl9fZCgiUXVlcnlT
dHJpbmciLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz17ZW5jb2RlOmZ1
bmN0aW9uKGgpe3ZhciBpPVtdO0VTNShFUzUoJ09iamVjdCcsJ2tleXMnLGZhbHNl
LGgpLCdmb3JFYWNoJyx0cnVlLGZ1bmN0aW9uKGope3ZhciBrPWhbal07aWYodHlw
ZW9mIGs9PT0ndW5kZWZpbmVkJylyZXR1cm47aWYoaz09PW51bGwpe2kucHVzaChq
KTtyZXR1cm47fWkucHVzaChlbmNvZGVVUklDb21wb25lbnQoaikrJz0nK2VuY29k
ZVVSSUNvbXBvbmVudChrKSk7fSk7cmV0dXJuIGkuam9pbignJicpO30sZGVjb2Rl
OmZ1bmN0aW9uKGgpe3ZhciBpPXt9O2lmKGg9PT0nJylyZXR1cm4gaTt2YXIgaj1o
LnNwbGl0KCcmJyksaz1qLmxlbmd0aDt3aGlsZShrLS0pe3ZhciBsPWpba10uc3Bs
aXQoJz0nLDIpO2lbZGVjb2RlVVJJQ29tcG9uZW50KGxbMF0pXT1sLmxlbmd0aD09
PTI/ZGVjb2RlVVJJQ29tcG9uZW50KGxbMV0pOm51bGw7fXJldHVybiBpO30sYXBw
ZW5kVG9Vcmw6ZnVuY3Rpb24oaCxpKXtyZXR1cm4gaCsofkVTNShoLCdpbmRleE9m
Jyx0cnVlLCc/Jyk/JyYnOic/JykrKHR5cGVvZiBpPT09J3N0cmluZyc/aTpnLmVu
Y29kZShpKSk7fX07ZS5leHBvcnRzPWc7fSk7Cl9fZCgic2RrLlNjcmliZSIsWyJV
cmxNYXAiLCJRdWVyeVN0cmluZyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIg
Zz1iKCdVcmxNYXAnKSxoPWIoJ1F1ZXJ5U3RyaW5nJyk7ZnVuY3Rpb24gaShrLGwp
eyhuZXcgSW1hZ2UoKSkuc3JjPWguYXBwZW5kVG9VcmwoZy5yZXNvbHZlKCd3d3cn
LHRydWUpKycvY29tbW9uL3NjcmliZV9lbmRwb2ludC5waHAnLHtjOmssbTpFUzUo
J0pTT04nLCdzdHJpbmdpZnknLGZhbHNlLGwpfSk7fXZhciBqPXtsb2c6aX07ZS5l
eHBvcnRzPWo7fSk7Cl9fZCgiVHlwZSIsWyJjb3B5UHJvcGVydGllcyIsIkFzc2Vy
dCJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1iKCdjb3B5UHJvcGVydGll
cycpLGg9YignQXNzZXJ0Jyk7ZnVuY3Rpb24gaSgpe3ZhciBuPXRoaXMuX19taXhp
bnM7aWYobilmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyluW29dLmFwcGx5KHRo
aXMsYXJndW1lbnRzKTt9ZnVuY3Rpb24gaihuLG8scCxxKXtoLmlzRnVuY3Rpb24o
bik7aWYobyYmby5wcm90b3R5cGUgaW5zdGFuY2VvZiBpPT09ZmFsc2UpdGhyb3cg
bmV3IEVycm9yKCdwYXJlbnQgdHlwZSBkb2VzIG5vdCBpbmhlcml0IGZyb20gTWl4
aW5UYXJnZXQnKTtvPW98fGk7dmFyIHI9bmV3IEZ1bmN0aW9uKCk7ci5wcm90b3R5
cGU9by5wcm90b3R5cGU7bi5wcm90b3R5cGU9bmV3IHIoKTtnKG4ucHJvdG90eXBl
LHApO24ucHJvdG90eXBlLl9fbWl4aW5zPW8ucHJvdG90eXBlLl9fbWl4aW5zP0Fy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8ucHJvdG90eXBlLl9fbWl4aW5zKTpb
XTtpZihxKWsobixxKTtuLnByb3RvdHlwZS5wYXJlbnQ9ZnVuY3Rpb24oKXt0aGlz
LnBhcmVudD1vLnByb3RvdHlwZS5wYXJlbnQ7by5hcHBseSh0aGlzLGFyZ3VtZW50
cyk7fTtuLnByb3RvdHlwZS5wYXJlbnRDYWxsPWZ1bmN0aW9uKHMpe3JldHVybiBv
LnByb3RvdHlwZVtzXS5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywxKSk7fTtyZXR1cm4gbjt9ZnVuY3Rpb24gayhuLG8pe3Zh
ciBwPW4ucHJvdG90eXBlO2guaXNGdW5jdGlvbihuKTtoLmlzSW5zdGFuY2VPZihp
LHAsJ3RhcmdldCBkb2VzIG5vdCBpbmhlcml0IGZyb20gTWl4aW5UYXJnZXQnKTtp
ZihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykhPSdbb2JqZWN0IEFy
cmF5XScpbz1bb107Zm9yKHZhciBxPTA7cTxvLmxlbmd0aDtxKyspe3ZhciByPW9b
cV07aWYodHlwZW9mIHI9PSdmdW5jdGlvbicpe3AuX19taXhpbnMucHVzaChyKTty
PXIucHJvdG90eXBlO31FUzUoRVM1KCdPYmplY3QnLCdrZXlzJyxmYWxzZSxyKSwn
Zm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihzKXtwW3NdPXJbc107fSk7fX1mdW5jdGlv
biBsKG4sbyl7aC5pc09iamVjdChuKTtoLmlzRnVuY3Rpb24obyk7aWYobiBpbnN0
YW5jZW9mIG8pcmV0dXJuIHRydWU7aWYobiBpbnN0YW5jZW9mIGkpZm9yKHZhciBw
PTA7cDxuLl9fbWl4aW5zLmxlbmd0aDtwKyspaWYobi5fX21peGluc1twXT09byly
ZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2U7fXZhciBtPXtleHRlbmQ6aixtaXhpbjpr
LGluc3RhbmNlT2Y6bH07ZS5leHBvcnRzPW07fSk7Cl9fZCgiT2JzZXJ2YWJsZU1p
eGluIixbIkFzc2VydCJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1iKCdB
c3NlcnQnKTtmdW5jdGlvbiBoKCl7dGhpcy5fX29ic2VydmFibGVFdmVudHM9e307
fWgucHJvdG90eXBlPXtpbmZvcm06ZnVuY3Rpb24oaSl7Zy5pc1N0cmluZyhpKTt2
YXIgaj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSksaz10
aGlzLmdldFN1YnNjcmliZXJzKGkpO2Zvcih2YXIgbD0wO2w8ay5sZW5ndGg7bCsr
KXRyeXtrW2xdLmFwcGx5KHRoaXMsaik7fWNhdGNoKG0pe3NldFRpbWVvdXQoZnVu
Y3Rpb24oKXt0aHJvdyBtO30sMCk7fXJldHVybiB0aGlzO30sZ2V0U3Vic2NyaWJl
cnM6ZnVuY3Rpb24oaSl7Zy5pc1N0cmluZyhpKTtyZXR1cm4gdGhpcy5fX29ic2Vy
dmFibGVFdmVudHNbaV18fCh0aGlzLl9fb2JzZXJ2YWJsZUV2ZW50c1tpXT1bXSk7
fSxjbGVhclN1YnNjcmliZXJzOmZ1bmN0aW9uKGkpe2cuaXNTdHJpbmcoaSk7aWYo
aSl0aGlzLl9fb2JzZXJ2YWJsZUV2ZW50c1tpXT1bXTtyZXR1cm4gdGhpczt9LGNs
ZWFyQWxsU3Vic2NyaWJlcnM6ZnVuY3Rpb24oKXt0aGlzLl9fb2JzZXJ2YWJsZUV2
ZW50cz17fTtyZXR1cm4gdGhpczt9LHN1YnNjcmliZTpmdW5jdGlvbihpLGope2cu
aXNTdHJpbmcoaSk7Zy5pc0Z1bmN0aW9uKGopO3ZhciBrPXRoaXMuZ2V0U3Vic2Ny
aWJlcnMoaSk7ay5wdXNoKGopO3JldHVybiB0aGlzO30sdW5zdWJzY3JpYmU6ZnVu
Y3Rpb24oaSxqKXtnLmlzU3RyaW5nKGkpO2cuaXNGdW5jdGlvbihqKTt2YXIgaz10
aGlzLmdldFN1YnNjcmliZXJzKGkpO2Zvcih2YXIgbD0wO2w8ay5sZW5ndGg7bCsr
KWlmKGtbbF09PWope2suc3BsaWNlKGwsMSk7YnJlYWs7fXJldHVybiB0aGlzO319
O2UuZXhwb3J0cz1oO30pOwpfX2QoInNkay5Nb2RlbCIsWyJBc3NlcnQiLCJUeXBl
IiwiT2JzZXJ2YWJsZU1peGluIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBn
PWIoJ0Fzc2VydCcpLGg9YignVHlwZScpLGk9YignT2JzZXJ2YWJsZU1peGluJyks
aj1oLmV4dGVuZChmdW5jdGlvbihrKXtnLmlzT2JqZWN0KGspO3RoaXMucGFyZW50
KCk7dmFyIGw9e30sbT10aGlzO0VTNShFUzUoJ09iamVjdCcsJ2tleXMnLGZhbHNl
LGspLCdmb3JFYWNoJyx0cnVlLGZ1bmN0aW9uKG4pe2xbbl09a1tuXTttWydzZXQn
K25dPWZ1bmN0aW9uKG8pe2lmKG89PT1sW25dKXJldHVybiB0aGlzO2xbbl09bztt
LmluZm9ybShuKycuY2hhbmdlJyxvKTtyZXR1cm4gbTt9O21bJ2dldCcrbl09ZnVu
Y3Rpb24oKXtyZXR1cm4gbFtuXTt9O30pO30sbnVsbCxudWxsLGkpO2UuZXhwb3J0
cz1qO30pOwpfX2QoInNkay5SdW50aW1lIixbInNkay5Nb2RlbCIsImNvcHlQcm9w
ZXJ0aWVzIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIoJ3Nkay5Nb2Rl
bCcpLGg9YignY29weVByb3BlcnRpZXMnKSxpPXtVTktOT1dOOjAsUEFHRVRBQjox
LENBTlZBUzoyLFBMQVRGT1JNOjR9LGo9bmV3IGcoe0FjY2Vzc1Rva2VuOicnLFVz
ZXJJRDowLENsaWVudElEOicnLEluaXRpYWxpemVkOmZhbHNlLExvZ2luU3RhdHVz
Oid1bmtub3duJyxFbnZpcm9ubWVudDppLlVOS05PV059KTtoKGose0VOVklST05N
RU5UUzppLGlzRW52aXJvbm1lbnQ6ZnVuY3Rpb24oayl7dmFyIGw9dGhpcy5nZXRF
bnZpcm9ubWVudCgpO3JldHVybiAoa3xsKT09PWw7fX0pOyhmdW5jdGlvbigpe3Zh
ciBrPS9hcHBfcnVubmVyLy50ZXN0KHdpbmRvdy5uYW1lKT9pLlBBR0VUQUI6L2lm
cmFtZV9jYW52YXMvLnRlc3Qod2luZG93Lm5hbWUpP2kuQ0FOVkFTOmkuVU5LTk9X
TjtpZigoa3xpLlBBR0VUQUIpPT09aylrPWt8aS5DQU5WQVM7ai5zZXRFbnZpcm9u
bWVudChrKTt9KSgpO2UuZXhwb3J0cz1qO30pOwpfX2QoInNkay5FcnJvckhhbmRs
aW5nIixbIlVzZXJBZ2VudCIsInNkay5TY3JpYmUiLCJzZGsuUnVudGltZSIsIndy
YXBGdW5jdGlvbiIsIk1hbmFnZWRFcnJvciIsIlNES0NvbmZpZyJdLGZ1bmN0aW9u
KGEsYixjLGQsZSxmKXt2YXIgZz1iKCdVc2VyQWdlbnQnKSxoPWIoJ3Nkay5TY3Jp
YmUnKSxpPWMoJ1NES0NvbmZpZycpLGo9Yignc2RrLlJ1bnRpbWUnKSxrPWIoJ3dy
YXBGdW5jdGlvbicpLGw9YignTWFuYWdlZEVycm9yJyksbT1mYWxzZTtmdW5jdGlv
biBuKHQpe3ZhciB1PXQuX29yaWdpbmFsRXJyb3I7ZGVsZXRlIHQuX29yaWdpbmFs
RXJyb3I7aC5sb2coJ2pzc2RrX2Vycm9yJyx7YXBwSWQ6ai5nZXRDbGllbnRJRCgp
LGVycm9yOnQubmFtZXx8dC5tZXNzYWdlLGV4dHJhOnR9KTt0aHJvdyB1O31mdW5j
dGlvbiBvKHQpe3ZhciB1PXtsaW5lOnQubGluZU51bWJlcnx8dC5saW5lLG1lc3Nh
Z2U6dC5tZXNzYWdlLG5hbWU6dC5uYW1lLHNjcmlwdDp0LmZpbGVOYW1lfHx0LnNv
dXJjZVVSTHx8dC5zY3JpcHQsc3RhY2s6dC5zdGFja1RyYWNlfHx0LnN0YWNrfTt1
Ll9vcmlnaW5hbEVycm9yPXQ7aWYoZy5jaHJvbWUoKSYmLyhbXHc6XC5cL10rXC5q
cyk6KFxkKykvLnRlc3QodC5zdGFjaykpe3Uuc2NyaXB0PVJlZ0V4cC4kMTt1Lmxp
bmU9cGFyc2VJbnQoUmVnRXhwLiQyLDEwKTt9Zm9yKHZhciB2IGluIHUpKHVbdl09
PW51bGwmJmRlbGV0ZSB1W3ZdKTtyZXR1cm4gdTt9ZnVuY3Rpb24gcCh0LHUpe3Jl
dHVybiBmdW5jdGlvbigpe2lmKCFtKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1l
bnRzKTt0cnl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO31jYXRjaCh2
KXtpZih2IGluc3RhbmNlb2YgbCl0aHJvdyB2O3ZhciB3PW8odik7dy5lbnRyeT11
O3ZhciB4PUVTNShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMp
LCdtYXAnLHRydWUsZnVuY3Rpb24oeSl7dmFyIHo9T2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKHkpO3JldHVybiAoL15cW29iamVjdCAoU3RyaW5nfE51bWJl
cnxCb29sZWFufE9iamVjdHxEYXRlKVxdJC8pLnRlc3Qoeik/eTp5LnRvU3RyaW5n
KCk7fSk7dy5hcmdzPUVTNSgnSlNPTicsJ3N0cmluZ2lmeScsZmFsc2UseCkuc3Vi
c3RyaW5nKDAsMjAwKTtuKHcpO319O31mdW5jdGlvbiBxKHQpe3JldHVybiBmdW5j
dGlvbigpe3RyeXtyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fWNhdGNo
KHUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyB1O30sMCk7cmV0dXJuIGZh
bHNlO319O312YXIgcj1pLmVycm9ySGFuZGxpbmcucmF0ZTtpZihyJiZNYXRoLmZs
b29yKE1hdGgucmFuZG9tKCkqMTAwKSsxPHIpbT10cnVlO2lmKG0pay5zZXRXcmFw
cGVyKHAsJ2VudHJ5Jyk7dmFyIHM9e2d1YXJkOnAsdW5ndWFyZDpxfTtlLmV4cG9y
dHM9czt9KTsKX19kKCJHbG9iYWxDYWxsYmFjayIsWyJ3cmFwRnVuY3Rpb24iLCJk
b3RBY2Nlc3MiXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9Yignd3JhcEZ1
bmN0aW9uJyksaD1iKCdkb3RBY2Nlc3MnKSxpLGosaz0wLGw9e3NldFByZWZpeDpm
dW5jdGlvbihtKXtpPWgod2luZG93LG0sdHJ1ZSk7aj1tO30sY3JlYXRlOmZ1bmN0
aW9uKG0pe2lmKCFpKXRoaXMuc2V0UHJlZml4KCd3aW5kb3cuX19nbG9iYWxDYWxs
YmFja3MnKTt2YXIgbj0nX19nY2InKygrK2spO2lbbl09ZyhtLCdlbnRyeScsJ0ds
b2JhbENhbGxiYWNrJyk7cmV0dXJuIGorJy4nK247fSxyZW1vdmU6ZnVuY3Rpb24o
bSl7dmFyIG49bS5zdWJzdHJpbmcoai5sZW5ndGgrMSk7ZGVsZXRlIGlbbl07fX07
ZS5leHBvcnRzPWw7fSk7Cl9fZCgic2RrLkluc2lnaHRzIixbImd1aWQiLCJRdWVy
eVN0cmluZyIsInNkay5SdW50aW1lIiwiVXJsTWFwIl0sZnVuY3Rpb24oYSxiLGMs
ZCxlLGYpe3ZhciBnPWIoJ2d1aWQnKSxoPWIoJ1F1ZXJ5U3RyaW5nJyksaT1iKCdz
ZGsuUnVudGltZScpLGo9YignVXJsTWFwJyk7ZnVuY3Rpb24gayhtLG4pe3ZhciBv
PWkuZ2V0Q2xpZW50SUQoKTtpZighbS5hcGlfa2V5JiZvKW0uYXBpX2tleT1vO3Zh
ciBwPW5ldyBJbWFnZSgpO2lmKG4pcC5vbmxvYWQ9bjtwLnNyYz1oLmFwcGVuZFRv
VXJsKGoucmVzb2x2ZSgnd3d3Jyx0cnVlKSsnL2ltcHJlc3Npb24ucGhwLycrZygp
KycvJyxtKTt9dmFyIGw9e1RZUEU6e05PVElDRTonbm90aWNlJyxXQVJOSU5HOid3
YXJuJyxFUlJPUjonZXJyb3InfSxDQVRFR09SWTp7REVQUkVDQVRFRDonZGVwcmVj
YXRlZCcsQVBJRVJST1I6J2FwaWVycm9yJ30sbG9nOmZ1bmN0aW9uKG0sbixvKXtr
KHtsaWQ6MTEzLHBheWxvYWQ6RVM1KCdKU09OJywnc3RyaW5naWZ5JyxmYWxzZSx7
c291cmNlOidqc3NkaycsdHlwZTptLGNhdGVnb3J5Om4scGF5bG9hZDpvfSl9KTt9
LGltcHJlc3Npb246ZnVuY3Rpb24obSxuKXtrKG0sbik7fX07ZS5leHBvcnRzPWw7
fSk7Cl9fZCgiTG9nIixbInNwcmludGYiXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7
dmFyIGc9Yignc3ByaW50ZicpLGg9e0RFQlVHOjMsSU5GTzoyLFdBUk5JTkc6MSxF
UlJPUjowfTtmdW5jdGlvbiBpKGssbCl7dmFyIG09QXJyYXkucHJvdG90eXBlLnNs
aWNlLmNhbGwoYXJndW1lbnRzLDIpLG49Zy5hcHBseShudWxsLG0pLG89d2luZG93
LmNvbnNvbGU7aWYobyYmai5sZXZlbD49aylvW2wgaW4gbz9sOidsb2cnXShuKTt9
dmFyIGo9e2xldmVsOi0xLExldmVsOmgsZGVidWc6RVM1KGksJ2JpbmQnLHRydWUs
bnVsbCxoLkRFQlVHLCdkZWJ1ZycpLGluZm86RVM1KGksJ2JpbmQnLHRydWUsbnVs
bCxoLklORk8sJ2RlYnVnJyksd2FybjpFUzUoaSwnYmluZCcsdHJ1ZSxudWxsLGgu
V0FSTklORywnZGVidWcnKSxlcnJvcjpFUzUoaSwnYmluZCcsdHJ1ZSxudWxsLGgu
RVJST1IsJ2RlYnVnJyl9O2UuZXhwb3J0cz1qO30pOwpfX2QoIkZCIixbImd1aWQi
LCJkb3RBY2Nlc3MiLCJjb3B5UHJvcGVydGllcyIsInNhZmVFdmFsIiwid3JhcEZ1
bmN0aW9uIiwic2RrLkVycm9ySGFuZGxpbmciLCJHbG9iYWxDYWxsYmFjayIsInNk
ay5JbnNpZ2h0cyIsIkxvZyIsInNkay5TY3JpYmUiLCJzZGsuUnVudGltZSIsIlNE
S0NvbmZpZyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1jKCdTREtDb25m
aWcnKSxoPWIoJ2d1aWQnKSxpPWIoJ2RvdEFjY2VzcycpLGo9YignY29weVByb3Bl
cnRpZXMnKSxrPWIoJ3NhZmVFdmFsJyksbD1iKCd3cmFwRnVuY3Rpb24nKSxtPWIo
J3Nkay5FcnJvckhhbmRsaW5nJyksbj1iKCdHbG9iYWxDYWxsYmFjaycpLG89Yign
c2RrLkluc2lnaHRzJykscD1iKCdMb2cnKSxxPWIoJ3Nkay5TY3JpYmUnKSxyPWIo
J3Nkay5SdW50aW1lJykscyx0LHUsdj1pKGcsJ2FwaS5tb2RlJyksdz17fTtzPUZC
O3Q9d2luZG93LkZCPXt9O24uc2V0UHJlZml4KCdGQi5fY2FsbGJhY2tzJyk7aWYo
aShnLCdhcGkud2hpdGVsaXN0Lmxlbmd0aCcpKXt1PXt9O0VTNShnLmFwaS53aGl0
ZWxpc3QsJ2ZvckVhY2gnLHRydWUsZnVuY3Rpb24oZGEpe3VbZGFdPTE7fSk7fWZ1
bmN0aW9uIHgoZGEsZWEsZmEsZ2Epe3ZhciBoYTtpZigvXl8vLnRlc3QoZmEpKXto
YT0naGlkZSc7fWVsc2UgaWYodSYmIXVbZWFdKWhhPXY7c3dpdGNoKGhhKXtjYXNl
ICdoaWRlJzpyZXR1cm47Y2FzZSAnc3R1Yic6cmV0dXJuIGZ1bmN0aW9uKCl7cC53
YXJuKCdUaGUgbWV0aG9kIEZCLiVzIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUg
SlMgU0RLLicsZWEpO307YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbS5ndWFyZChmdW5j
dGlvbigpe2lmKGhhPT09J3dhcm4nKXtwLndhcm4oJ1RoZSBtZXRob2QgRkIuJXMg
aXMgbm90IG9mZmljaWFsbHkgc3VwcG9ydGVkIGJ5ICcrJ0ZhY2Vib29rIGFuZCBh
Y2Nlc3MgdG8gaXQgd2lsbCBzb29uIGJlIHJlbW92ZWQuJyxlYSk7aWYoIXcuaGFz
T3duUHJvcGVydHkoZWEpKXtvLmxvZyhvLlRZUEUuV0FSTklORyxvLkNBVEVHT1JZ
LkRFUFJFQ0FURUQsJ0ZCLicrZWEpO3EubG9nKCdqc3Nka19lcnJvcicse2FwcElk
OnMuX2FwaUtleSxlcnJvcjonUHJpdmF0ZSBtZXRob2QgdXNlZCcsZXh0cmE6e2Fy
Z3M6ZWF9fSk7d1tlYV09dHJ1ZTt9fXZhciBpYT1FUzUoQXJyYXkucHJvdG90eXBl
LnNsaWNlLmNhbGwoYXJndW1lbnRzKSwnbWFwJyx0cnVlLGZ1bmN0aW9uKHBhKXty
ZXR1cm4gdHlwZW9mIHBhPT09J2Z1bmN0aW9uJyYmL15mdW5jdGlvbi8udGVzdChw
YS50b1N0cmluZygpKT9tLnVuZ3VhcmQocGEpOnBhO30pLGphPWRhLmFwcGx5KGdh
LGlhKSxrYSxsYT10cnVlO2lmKGphJiZ0eXBlb2YgamE9PT0nb2JqZWN0Jyl7dmFy
IG1hPUZ1bmN0aW9uKCk7bWEucHJvdG90eXBlPWphO2thPW5ldyBtYSgpO2Zvcih2
YXIgbmEgaW4gamEpe3ZhciBvYT1qYVtuYV07aWYodHlwZW9mIG9hIT09J2Z1bmN0
aW9uJ3x8bmE9PT0nY29uc3RydWN0b3InKWNvbnRpbnVlO2xhPWZhbHNlO2thW25h
XT14KG9hLGVhKyc6JytuYSxuYSxqYSk7fX1pZighbGEpcmV0dXJuIGthO3JldHVy
biBsYT9qYTprYTt9LGVhKTt9fWZ1bmN0aW9uIHkoZGEsZWEpe3ZhciBmYT1kYT9p
KHMsZGEsdHJ1ZSk6cyxnYT1kYT9pKHQsZGEsdHJ1ZSk6dDtFUzUoRVM1KCdPYmpl
Y3QnLCdrZXlzJyxmYWxzZSxlYSksJ2ZvckVhY2gnLHRydWUsZnVuY3Rpb24oaGEp
e3ZhciBpYT1lYVtoYV07ZmFbaGFdPWlhO2lmKHR5cGVvZiBpYT09PSdmdW5jdGlv
bicpe3ZhciBqYT0oZGE/ZGErJy4nOicnKStoYSxrYT14KGlhLGphLGhhLGZhKTtp
ZihrYSlnYVtoYV09a2E7fX0pO312YXIgej0vaWZyYW1lX2NhbnZhc3xhcHBfcnVu
bmVyLy50ZXN0KHdpbmRvdy5uYW1lKSxhYT0vZGlhbG9nLy50ZXN0KHdpbmRvdy5u
YW1lKSxiYT0oZnVuY3Rpb24oKXtpZihsb2NhdGlvbi5wcm90b2NvbD09J2h0dHBz
OicmJih3aW5kb3c9PXRvcHx8ISh6fHxhYSkpKXJldHVybiB0cnVlO2lmKC9fZmJf
aHR0cHM/Ly50ZXN0KHdpbmRvdy5uYW1lKSlyZXR1cm4gRVM1KHdpbmRvdy5uYW1l
LCdpbmRleE9mJyx0cnVlLCdfZmJfaHR0cHMnKSE9LTE7fSkoKTtmdW5jdGlvbiBj
YShkYSxlYSxmYSxnYSl7Zm9yKHZhciBoYSBpbiBlYSlpZihmYXx8dHlwZW9mIGRh
W2hhXT09PSd1bmRlZmluZWQnKWRhW2hhXT1nYT9nYShlYVtoYV0pOmVhW2hhXTty
ZXR1cm4gZGE7fWoocyx7X2FwaUtleTpudWxsLF9hdXRoUmVzcG9uc2U6bnVsbCxf
bG9nZ2luZzp0cnVlLF9pbkNhbnZhczp6LF9odHRwczpiYSxvbmx5VXNlSHR0cHM6
ZnVuY3Rpb24oKXtyZXR1cm4gcy5faHR0cHM9PT10cnVlO30sb25seVVzZUh0dHA6
ZnVuY3Rpb24oKXtyZXR1cm4gcy5faHR0cHM9PT1mYWxzZSYmbG9jYXRpb24ucHJv
dG9jb2w9PSdodHRwOic7fSxfbG9jYWxlOm51bGwsX2xvY2FsZUlzUnRsOmZhbHNl
LGdldERvbWFpbjpmdW5jdGlvbihkYSxlYSl7dmFyIGZhPSFlYSYmKHdpbmRvdy5s
b2NhdGlvbi5wcm90b2NvbD09J2h0dHBzOid8fHMuX2h0dHBzKTtzd2l0Y2goZGEp
e2Nhc2UgJ2FwaSc6cmV0dXJuIHMuX2RvbWFpbi5hcGk7Y2FzZSAnYXBpX3JlYWQn
OnJldHVybiBzLl9kb21haW4uYXBpX3JlYWQ7Y2FzZSAnY2RuJzpyZXR1cm4gZmE/
cy5fZG9tYWluLmh0dHBzX2NkbjpzLl9kb21haW4uY2RuO2Nhc2UgJ2Nkbl9mb3Jl
aWduJzpyZXR1cm4gcy5fZG9tYWluLmNkbl9mb3JlaWduO2Nhc2UgJ2h0dHBzX2Nk
bic6cmV0dXJuIHMuX2RvbWFpbi5odHRwc19jZG47Y2FzZSAnZ3JhcGgnOnJldHVy
biBzLl9kb21haW4uZ3JhcGg7Y2FzZSAnc3RhdGljZmInOnJldHVybiBmYT9zLl9k
b21haW4uaHR0cHNfc3RhdGljZmI6cy5fZG9tYWluLnN0YXRpY2ZiO2Nhc2UgJ2h0
dHBzX3N0YXRpY2ZiJzpyZXR1cm4gcy5fZG9tYWluLmh0dHBzX3N0YXRpY2ZiO2Nh
c2UgJ3d3dyc6cmV0dXJuIGZhP3MuX2RvbWFpbi5odHRwc193d3c6cy5fZG9tYWlu
Lnd3dztjYXNlICdodHRwc193d3cnOnJldHVybiBzLl9kb21haW4uaHR0cHNfd3d3
O2Nhc2UgJ20nOnJldHVybiBmYT9zLl9kb21haW4uaHR0cHNfbTpzLl9kb21haW4u
bTtjYXNlICdodHRwc19tJzpyZXR1cm4gcy5fZG9tYWluLmh0dHBzX207fX0sY29w
eTpjYSxjcmVhdGU6ZnVuY3Rpb24oZGEsZWEpe3ZhciBmYT1kYS5zcGxpdCgnLicp
O2RhPWZhLnBvcCgpO3ZhciBnYT1mYS5sZW5ndGg/aShzLGZhLmpvaW4oJy4nKSx0
cnVlKTpzO3JldHVybiBkYSBpbiBnYT9nYVtkYV06Z2FbZGFdPShlYXx8e30pO30s
cHJvdmlkZTp5LGd1aWQ6aCxsb2c6ZnVuY3Rpb24oZGEpe2lmKHMuX2xvZ2dpbmcp
aWYod2luZG93LkRlYnVnJiZ3aW5kb3cuRGVidWcud3JpdGVsbil7d2luZG93LkRl
YnVnLndyaXRlbG4oZGEpO31lbHNlIGlmKHdpbmRvdy5jb25zb2xlKXdpbmRvdy5j
b25zb2xlLmxvZyhkYSk7aWYocy5FdmVudClzLkV2ZW50LmZpcmUoJ2ZiLmxvZycs
ZGEpO30sJDpmdW5jdGlvbihkYSl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGRhKTt9LGRvdEFjY2VzczppLFJ1bnRpbWU6cixndWFyZDptLmd1YXJkLHVu
Z3VhcmQ6bS51bmd1YXJkLHdyYXBGdW5jdGlvbjpsLHNhZmVFdmFsOmt9KTtpZih0
KWoodCx7cHJvdmlkZTpmdW5jdGlvbigpe3AuZXJyb3IoJ0ZCLnByb3ZpZGUgaXMg
bm8gbG9uZ2VyIHN1cHBvcnRlZCcpO2lmKCF3Lmhhc093blByb3BlcnR5KCdwcm92
aWRlJykpe28ubG9nKG8uVFlQRS5FUlJPUixvLkNBVEVHT1JZLkRFUFJFQ0FURUQs
J0ZCLnByb3ZpZGUnKTtxLmxvZygnanNzZGtfZXJyb3InLHthcHBJZDpzLl9hcGlL
ZXksZXJyb3I6J1ByaXZhdGUgbWV0aG9kIHVzZWQnLGV4dHJhOnthcmdzOidwcm92
aWRlJ319KTt3LnByb3ZpZGU9dHJ1ZTt9fX0pO2UuZXhwb3J0cz1zO30pOwpfX2Qo
ImZsYXR0ZW5PYmplY3QiLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXtmdW5jdGlv
biBnKGgpe3ZhciBpPXt9O2Zvcih2YXIgaiBpbiBoKWlmKGguaGFzT3duUHJvcGVy
dHkoaikpe3ZhciBrPWhbal07aWYobnVsbD09PWt8fHVuZGVmaW5lZD09PWspe2Nv
bnRpbnVlO31lbHNlIGlmKHR5cGVvZiBrPT0nc3RyaW5nJyl7aVtqXT1rO31lbHNl
IGlbal09RVM1KCdKU09OJywnc3RyaW5naWZ5JyxmYWxzZSxrKTt9cmV0dXJuIGk7
fWUuZXhwb3J0cz1nO30pOwpfX2QoIkNPUlNSZXF1ZXN0IixbIndyYXBGdW5jdGlv
biIsIlF1ZXJ5U3RyaW5nIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIo
J3dyYXBGdW5jdGlvbicpLGg9YignUXVlcnlTdHJpbmcnKTtmdW5jdGlvbiBpKGws
bSl7aWYoIXdpbmRvdy5YTUxIdHRwUmVxdWVzdClyZXR1cm4gbnVsbDt2YXIgbj1u
ZXcgWE1MSHR0cFJlcXVlc3QoKSxvPWZ1bmN0aW9uKCl7fTtpZignd2l0aENyZWRl
bnRpYWxzJyBpbiBuKXtuLm9wZW4obCxtLHRydWUpO24uc2V0UmVxdWVzdEhlYWRl
cignQ29udGVudC10eXBlJywnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNv
ZGVkJyk7fWVsc2UgaWYod2luZG93LlhEb21haW5SZXF1ZXN0KXtuPW5ldyBYRG9t
YWluUmVxdWVzdCgpO3RyeXtuLm9wZW4obCxtKTtuLm9ucHJvZ3Jlc3M9bi5vbnRp
bWVvdXQ9bzt9Y2F0Y2gocCl7cmV0dXJuIG51bGw7fX1lbHNlIHJldHVybiBudWxs
O3ZhciBxPXtzZW5kOmZ1bmN0aW9uKHQpe24uc2VuZCh0KTt9fSxyPWcoZnVuY3Rp
b24oKXtyPW87aWYoJ29ubG9hZCcgaW4gcSlxLm9ubG9hZChuKTt9LCdlbnRyeScs
J1hNTEh0dHBSZXF1ZXN0OmxvYWQnKSxzPWcoZnVuY3Rpb24oKXtzPW87aWYoJ29u
ZXJyb3InIGluIHEpcS5vbmVycm9yKG4pO30sJ2VudHJ5JywnWE1MSHR0cFJlcXVl
c3Q6ZXJyb3InKTtuLm9ubG9hZD1mdW5jdGlvbigpe3IoKTt9O24ub25lcnJvcj1m
dW5jdGlvbigpe3MoKTt9O24ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7
aWYobi5yZWFkeVN0YXRlPT00KWlmKG4uc3RhdHVzPT0yMDApe3IoKTt9ZWxzZSBz
KCk7fTtyZXR1cm4gcTt9ZnVuY3Rpb24gaihsLG0sbixvKXtuLnN1cHByZXNzX2h0
dHBfY29kZT0xO3ZhciBwPWguZW5jb2RlKG4pO2lmKG0hPSdwb3N0Jyl7bD1oLmFw
cGVuZFRvVXJsKGwscCk7cD0nJzt9dmFyIHE9aShtLGwpO2lmKCFxKXJldHVybiBm
YWxzZTtxLm9ubG9hZD1mdW5jdGlvbihyKXtvKEVTNSgnSlNPTicsJ3BhcnNlJyxm
YWxzZSxyLnJlc3BvbnNlVGV4dCkpO307cS5vbmVycm9yPWZ1bmN0aW9uKHIpe2lm
KHIucmVzcG9uc2VUZXh0KXtvKEVTNSgnSlNPTicsJ3BhcnNlJyxmYWxzZSxyLnJl
c3BvbnNlVGV4dCkpO31lbHNlIG8oe2Vycm9yOnt0eXBlOidodHRwJyxtZXNzYWdl
Oid1bmtub3duIGVycm9yJyxzdGF0dXM6ci5zdGF0dXN9fSk7fTtxLnNlbmQocCk7
cmV0dXJuIHRydWU7fXZhciBrPXtleGVjdXRlOmp9O2UuZXhwb3J0cz1rO30pOwpf
X2QoIkRPTVdyYXBwZXIiLFtdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZyxo
LGk9e3NldFJvb3Q6ZnVuY3Rpb24oail7Zz1qO30sZ2V0Um9vdDpmdW5jdGlvbigp
e3JldHVybiBnfHxkb2N1bWVudC5ib2R5O30sc2V0V2luZG93OmZ1bmN0aW9uKGop
e2g9ajt9LGdldFdpbmRvdzpmdW5jdGlvbigpe3JldHVybiBofHx3aW5kb3c7fX07
ZS5leHBvcnRzPWk7fSk7Cl9fZCgiRmxhc2giLFsiRE9NV3JhcHBlciIsIlF1ZXJ5
U3RyaW5nIiwiVXNlckFnZW50IiwiY29weVByb3BlcnRpZXMiLCJndWlkIl0sZnVu
Y3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIoJ0RPTVdyYXBwZXInKSxoPWIoJ1F1
ZXJ5U3RyaW5nJyksaT1iKCdVc2VyQWdlbnQnKSxqPWIoJ2NvcHlQcm9wZXJ0aWVz
Jyksaz1iKCdndWlkJyksbD17fSxtLG49Zy5nZXRXaW5kb3coKS5kb2N1bWVudDtm
dW5jdGlvbiBvKHQpe3ZhciB1PW4uZ2V0RWxlbWVudEJ5SWQodCk7aWYodSl1LnBh
cmVudE5vZGUucmVtb3ZlQ2hpbGQodSk7ZGVsZXRlIGxbdF07fWZ1bmN0aW9uIHAo
KXtmb3IodmFyIHQgaW4gbClpZihsLmhhc093blByb3BlcnR5KHQpKW8odCk7fWZ1
bmN0aW9uIHEodCl7cmV0dXJuIHQucmVwbGFjZSgvXGQrL2csZnVuY3Rpb24odSl7
cmV0dXJuICcwMDAnLnN1YnN0cmluZyh1Lmxlbmd0aCkrdTt9KTt9ZnVuY3Rpb24g
cih0KXtpZighbSl7aWYoaS5pZSgpPj05KXdpbmRvdy5hdHRhY2hFdmVudCgnb251
bmxvYWQnLHApO209dHJ1ZTt9bFt0XT10O312YXIgcz17ZW1iZWQ6ZnVuY3Rpb24o
dCx1LHYsdyl7dmFyIHg9aygpO3Q9ZW5jb2RlVVJJKHQpO3Y9aih7YWxsb3dzY3Jp
cHRhY2Nlc3M6J2Fsd2F5cycsZmxhc2h2YXJzOncsbW92aWU6dH0sdnx8e30pO2lm
KHR5cGVvZiB2LmZsYXNodmFycz09J29iamVjdCcpdi5mbGFzaHZhcnM9aC5lbmNv
ZGUodi5mbGFzaHZhcnMpO3ZhciB5PVtdO2Zvcih2YXIgeiBpbiB2KWlmKHYuaGFz
T3duUHJvcGVydHkoeikmJnZbel0peS5wdXNoKCc8cGFyYW0gbmFtZT0iJytlbmNv
ZGVVUkkoeikrJyIgdmFsdWU9IicrZW5jb2RlVVJJKHZbel0pKyciPicpO3ZhciBh
YT1uLmNyZWF0ZUVsZW1lbnQoJ2RpdicpLGJhPSc8b2JqZWN0ICcrKGkuaWUoKT8n
Y2xhc3NpZD0iY2xzaWQ6ZDI3Y2RiNmUtYWU2ZC0xMWNmLTk2YjgtNDQ0NTUzNTQw
MDAwIiAnOid0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCInKSsn
ZGF0YT0iJyt0KyciICcrJ2lkPSInK3grJyI+Jyt5LmpvaW4oJycpKyc8L29iamVj
dD4nO2FhLmlubmVySFRNTD1iYTt2YXIgY2E9dS5hcHBlbmRDaGlsZChhYS5maXJz
dENoaWxkKTtyKHgpO3JldHVybiBjYTt9LHJlbW92ZTpvLGdldFZlcnNpb246ZnVu
Y3Rpb24oKXt2YXIgdD0nU2hvY2t3YXZlIEZsYXNoJyx1PSdhcHBsaWNhdGlvbi94
LXNob2Nrd2F2ZS1mbGFzaCcsdj0nU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxh
c2gnLHc7aWYobmF2aWdhdG9yLnBsdWdpbnMmJnR5cGVvZiBuYXZpZ2F0b3IucGx1
Z2luc1t0XT09J29iamVjdCcpe3ZhciB4PW5hdmlnYXRvci5wbHVnaW5zW3RdLmRl
c2NyaXB0aW9uO2lmKHgmJm5hdmlnYXRvci5taW1lVHlwZXMmJm5hdmlnYXRvci5t
aW1lVHlwZXNbdV0mJm5hdmlnYXRvci5taW1lVHlwZXNbdV0uZW5hYmxlZFBsdWdp
bil3PXgubWF0Y2goL1xkKy9nKTt9aWYoIXcpdHJ5e3c9KG5ldyBBY3RpdmVYT2Jq
ZWN0KHYpKS5HZXRWYXJpYWJsZSgnJHZlcnNpb24nKS5tYXRjaCgvKFxkKyksKFxk
KyksKFxkKyksKFxkKykvKTt3PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHcs
MSk7fWNhdGNoKHkpe31yZXR1cm4gdzt9LGNoZWNrTWluVmVyc2lvbjpmdW5jdGlv
bih0KXt2YXIgdT1zLmdldFZlcnNpb24oKTtpZighdSlyZXR1cm4gZmFsc2U7cmV0
dXJuIHEodS5qb2luKCcuJykpPj1xKHQpO30saXNBdmFpbGFibGU6ZnVuY3Rpb24o
KXtyZXR1cm4gISFzLmdldFZlcnNpb24oKTt9fTtlLmV4cG9ydHM9czt9KTsKX19k
KCJRdWV1ZSIsWyJjb3B5UHJvcGVydGllcyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxm
KXt2YXIgZz1iKCdjb3B5UHJvcGVydGllcycpLGg9e307ZnVuY3Rpb24gaShsLG0p
e3JldHVybiBmdW5jdGlvbigpe20uYXBwbHkobCxhcmd1bWVudHMpO307fWZ1bmN0
aW9uIGooKXt2YXIgbD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVu
dHMpO2Zvcih2YXIgbT0wO208bC5sZW5ndGg7bSsrKWlmKHR5cGVvZiBsW21dIT0n
dW5kZWZpbmVkJylyZXR1cm4gbFttXTt9ZnVuY3Rpb24gayhsKXt0aGlzLl9vcHRz
PWcoe2ludGVydmFsOjAscHJvY2Vzc29yOm51bGx9LGwpO3RoaXMuX3F1ZXVlPVtd
O3RoaXMuX3N0b3BwZWQ9dHJ1ZTt9ZyhrLnByb3RvdHlwZSx7X2Rpc3BhdGNoOmZ1
bmN0aW9uKGwpe2lmKHRoaXMuX3N0b3BwZWR8fHRoaXMuX3F1ZXVlLmxlbmd0aD09
PTApcmV0dXJuO2lmKCF0aGlzLl9vcHRzLnByb2Nlc3Nvcil7dGhpcy5fc3RvcHBl
ZD10cnVlO3Rocm93IG5ldyBFcnJvcignTm8gcHJvY2Vzc29yIGF2YWlsYWJsZScp
O31pZih0aGlzLl9vcHRzLmludGVydmFsKXt0aGlzLl9vcHRzLnByb2Nlc3Nvci5j
YWxsKHRoaXMsdGhpcy5fcXVldWUuc2hpZnQoKSk7dGhpcy5fdGltZW91dD1zZXRU
aW1lb3V0KGkodGhpcyx0aGlzLl9kaXNwYXRjaCksdGhpcy5fb3B0cy5pbnRlcnZh
bCk7fWVsc2Ugd2hpbGUodGhpcy5fcXVldWUubGVuZ3RoKXRoaXMuX29wdHMucHJv
Y2Vzc29yLmNhbGwodGhpcyx0aGlzLl9xdWV1ZS5zaGlmdCgpKTt9LGVucXVldWU6
ZnVuY3Rpb24obCl7aWYodGhpcy5fb3B0cy5wcm9jZXNzb3ImJiF0aGlzLl9zdG9w
cGVkKXt0aGlzLl9vcHRzLnByb2Nlc3Nvci5jYWxsKHRoaXMsbCk7fWVsc2UgdGhp
cy5fcXVldWUucHVzaChsKTtyZXR1cm4gdGhpczt9LHN0YXJ0OmZ1bmN0aW9uKGwp
e2lmKGwpdGhpcy5fb3B0cy5wcm9jZXNzb3I9bDt0aGlzLl9zdG9wcGVkPWZhbHNl
O3RoaXMuX2Rpc3BhdGNoKCk7cmV0dXJuIHRoaXM7fSxkaXNwYXRjaDpmdW5jdGlv
bigpe3RoaXMuX2Rpc3BhdGNoKHRydWUpO30sc3RvcDpmdW5jdGlvbihsKXt0aGlz
Ll9zdG9wcGVkPXRydWU7aWYoaihsLGZhbHNlKSljbGVhclRpbWVvdXQodGhpcy5f
dGltZW91dCk7cmV0dXJuIHRoaXM7fSxtZXJnZTpmdW5jdGlvbihsLG0pe3RoaXMu
X3F1ZXVlW20/J3Vuc2hpZnQnOidwdXNoJ10uYXBwbHkodGhpcy5fcXVldWUsbC5f
cXVldWUpO2wuX3F1ZXVlPVtdO3RoaXMuX2Rpc3BhdGNoKCk7cmV0dXJuIHRoaXM7
fSxnZXRMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVldWUubGVuZ3Ro
O319KTtnKGsse2dldDpmdW5jdGlvbihsLG0pe3ZhciBuO2lmKGwgaW4gaCl7bj1o
W2xdO31lbHNlIG49aFtsXT1uZXcgayhtKTtyZXR1cm4gbjt9LGV4aXN0czpmdW5j
dGlvbihsKXtyZXR1cm4gbCBpbiBoO30scmVtb3ZlOmZ1bmN0aW9uKGwpe3JldHVy
biBkZWxldGUgaFtsXTt9fSk7ZS5leHBvcnRzPWs7fSk7Cl9fZCgiRmxhc2hSZXF1
ZXN0IixbIkRPTVdyYXBwZXIiLCJGbGFzaCIsIkdsb2JhbENhbGxiYWNrIiwiUXVl
cnlTdHJpbmciLCJRdWV1ZSJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1i
KCdET01XcmFwcGVyJyksaD1iKCdGbGFzaCcpLGk9YignR2xvYmFsQ2FsbGJhY2sn
KSxqPWIoJ1F1ZXJ5U3RyaW5nJyksaz1iKCdRdWV1ZScpLGwsbT17fSxuLG87ZnVu
Y3Rpb24gcCgpe2lmKCFuKXRocm93IG5ldyBFcnJvcignc3dmVXJsIGhhcyBub3Qg
YmVlbiBzZXQnKTt2YXIgcz1pLmNyZWF0ZShmdW5jdGlvbigpe2wuc3RhcnQoZnVu
Y3Rpb24odSl7dmFyIHY9by5leGVjdXRlKHUubWV0aG9kLHUudXJsLHUuYm9keSk7
aWYoIXYpdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBjcmVhdGUgcmVxdWVzdCcpO21b
dl09dS5jYWxsYmFjazt9KTt9KSx0PWkuY3JlYXRlKGZ1bmN0aW9uKHUsdix3KXt2
YXIgeDt0cnl7eD1FUzUoJ0pTT04nLCdwYXJzZScsZmFsc2UsZGVjb2RlVVJJQ29t
cG9uZW50KHcpKTt9Y2F0Y2goeSl7eD17ZXJyb3I6e3R5cGU6J1N5bnRheEVycm9y
JyxtZXNzYWdlOnkubWVzc2FnZSxzdGF0dXM6dixyYXc6d319O31tW3VdKHgpO2Rl
bGV0ZSBtW3VdO30pO289aC5lbWJlZChuLGcuZ2V0Um9vdCgpLG51bGwse2xvZzpm
YWxzZSxpbml0Q2FsbGJhY2s6cyxyZXF1ZXN0Q2FsbGJhY2s6dH0pO31mdW5jdGlv
biBxKHMsdCx1LHYpe3Uuc3VwcHJlc3NfaHR0cF9jb2RlPTE7aWYoIXUubWV0aG9k
KXUubWV0aG9kPXQ7dmFyIHc9ai5lbmNvZGUodSk7aWYodD09PSdnZXQnJiZzLmxl
bmd0aCt3Lmxlbmd0aDwyMDAwKXtzPWouYXBwZW5kVG9Vcmwocyx3KTt3PScnO31l
bHNlIHQ9J3Bvc3QnO2lmKCFsKXtpZighaC5pc0F2YWlsYWJsZSgpKXJldHVybiBm
YWxzZTtsPW5ldyBrKCk7cCgpO31sLmVucXVldWUoe21ldGhvZDp0LHVybDpzLGJv
ZHk6dyxjYWxsYmFjazp2fSk7cmV0dXJuIHRydWU7fXZhciByPXtzZXRTd2ZVcmw6
ZnVuY3Rpb24ocyl7bj1zO30sZXhlY3V0ZTpxfTtlLmV4cG9ydHM9cjt9KTsKX19k
KCJKU09OUFJlcXVlc3QiLFsiRE9NV3JhcHBlciIsIkdsb2JhbENhbGxiYWNrIiwi
UXVlcnlTdHJpbmciXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9YignRE9N
V3JhcHBlcicpLGg9YignR2xvYmFsQ2FsbGJhY2snKSxpPWIoJ1F1ZXJ5U3RyaW5n
Jyk7ZnVuY3Rpb24gaihsLG0sbixvKXt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdzY3JpcHQnKSxxPWZ1bmN0aW9uKHMpe3E9ZnVuY3Rpb24oKXt9O2gucmVt
b3ZlKG4uY2FsbGJhY2spO28ocyk7cC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHAp
O307bi5jYWxsYmFjaz1oLmNyZWF0ZShxKTtpZighbi5tZXRob2Qpbi5tZXRob2Q9
bTtsPWkuYXBwZW5kVG9VcmwobCxuKTtpZihsLmxlbmd0aD4yMDAwKXtoLnJlbW92
ZShuLmNhbGxiYWNrKTtyZXR1cm4gZmFsc2U7fXAub25lcnJvcj1mdW5jdGlvbigp
e3Eoe2Vycm9yOnt0eXBlOidodHRwJyxtZXNzYWdlOid1bmtub3duIGVycm9yJ319
KTt9O3ZhciByPWZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3Eoe2Vy
cm9yOnt0eXBlOidodHRwJyxtZXNzYWdlOid1bmtub3duIGVycm9yJ319KTt9LDAp
O307aWYocC5hZGRFdmVudExpc3RlbmVyKXtwLmFkZEV2ZW50TGlzdGVuZXIoJ2xv
YWQnLHIsZmFsc2UpO31lbHNlIHAub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9u
KCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdCh0aGlzLnJlYWR5U3RhdGUpKXIo
KTt9O3Auc3JjPWw7Zy5nZXRSb290KCkuYXBwZW5kQ2hpbGQocCk7cmV0dXJuIHRy
dWU7fXZhciBrPXtleGVjdXRlOmp9O2UuZXhwb3J0cz1rO30pOwpfX2QoIlVSTCIs
WyJjb3B5UHJvcGVydGllcyIsIlF1ZXJ5U3RyaW5nIiwiTG9nIl0sZnVuY3Rpb24o
YSxiLGMsZCxlLGYpe3ZhciBnPWIoJ2NvcHlQcm9wZXJ0aWVzJyksaD1iKCdRdWVy
eVN0cmluZycpLGk9YignTG9nJyksaj1uZXcgUmVnRXhwKCcoJysnKCgoXFx3Kyk6
KT8vLyknKycoLio/QCk/JysnKFtefi8/IzpdKyknKycoOihcXGQrKSk/JysnKT8n
KycoW15cXD8kI10rKT8nKycoXFw/KFteJCNdKykpPycrJygjKFteJF0rKSk/Jyks
az0vW1wwXFxdLyxsPS9bXlx3XC1cLiw7XC8/OkA9JiUjJH4rISonXFtcXSgpXSsv
ZyxtPS9eW2EtejAtOS5dW2EtejAtOVwtXC5dK1thLXowLTkuXSQvLG49L1wuZmFj
ZWJvb2tcLmNvbSQvO2Z1bmN0aW9uIG8ocCl7aWYodHlwZW9mIHAhPSdzdHJpbmcn
KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBwYXNzZWQgYXJndW1lbnQgd2FzIG9m
IGludmFsaWQgdHlwZS4nKTtpZihrLnRlc3QocCkpdGhyb3cgbmV3IFVSSUVycm9y
KCdUaGUgcGFzc2VkIGFyZ3VtZW50IGNvdWxkIG5vdCBiZSBwYXJzZWQgYXMgYSB1
cmwuJyk7aWYodGhpcyBpbnN0YW5jZW9mIG89PT1mYWxzZSlyZXR1cm4gbmV3IG8o
cCk7dmFyIHE9cC5yZXBsYWNlKGwsZnVuY3Rpb24ocyl7aS53YXJuKCdFc2NhcGlu
ZyB1bmVzY2FwZWQgY2hhcmFjdGVyIFxceCVzIGZyb20gIiVzIicscy5jaGFyQ29k
ZUF0KDApLnRvU3RyaW5nKDE2KSxwKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50
KHMpO30pLm1hdGNoKGopO2lmKCFwfHwhcSl0aHJvdyBuZXcgVVJJRXJyb3IoJ1Ro
ZSBwYXNzZWQgYXJndW1lbnQgY291bGQgbm90IGJlIHBhcnNlZCBhcyBhIHVybC4n
KTt2YXIgcj0hIWxvY2F0aW9uLmhvc3RuYW1lO3RoaXMuc2V0UHJvdG9jb2wocVs0
XXx8KHI/bG9jYXRpb24ucHJvdG9jb2wucmVwbGFjZSgvOi8sJycpOicnKSk7dGhp
cy5zZXREb21haW4ocVs2XXx8bG9jYXRpb24uaG9zdG5hbWUpO3RoaXMuc2V0UG9y
dChxWzhdfHwociYmIXFbNl0/bG9jYXRpb24ucG9ydDonJykpO3RoaXMuc2V0UGF0
aChxWzldfHwnJyk7dGhpcy5zZXRTZWFyY2gocVsxMV18fCcnKTt0aGlzLnNldEZy
YWdtZW50KHFbMTNdfHwnJyk7aWYodGhpcy5fcGF0aC5zdWJzdHJpbmcoMCwxKSE9
Jy8nKXRoaXMuX3BhdGg9Jy8nK3RoaXMuX3BhdGg7aWYodGhpcy5fZG9tYWluJiYh
bS50ZXN0KGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLl9kb21haW4udG9Mb3dlckNh
c2UoKSkpKXtpLmVycm9yKCdJbnZhbGlkIGNoYXJhY3RlcnMgZm91bmQgaW4gZG9t
YWluIG5hbWU6ICVzJyx0aGlzLl9kb21haW4pO3Rocm93IG5ldyBVUklFcnJvcign
RG9tYWluIGNvbnRhaW5lZCBpbnZhbGlkIGNoYXJhY3RlcnMuJyk7fX1nKG8ucHJv
dG90eXBlLHtjb25zdHJ1Y3RvcjpvLGdldFByb3RvY29sOmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMuX3Byb3RvY29sO30sc2V0UHJvdG9jb2w6ZnVuY3Rpb24ocCl7dGhp
cy5fcHJvdG9jb2w9cDtyZXR1cm4gdGhpczt9LGdldERvbWFpbjpmdW5jdGlvbigp
e3JldHVybiB0aGlzLl9kb21haW47fSxzZXREb21haW46ZnVuY3Rpb24ocCl7dGhp
cy5fZG9tYWluPXA7cmV0dXJuIHRoaXM7fSxnZXRQb3J0OmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMuX3BvcnQ7fSxzZXRQb3J0OmZ1bmN0aW9uKHApe3RoaXMuX3BvcnQ9
cDtyZXR1cm4gdGhpczt9LGdldFBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5f
cGF0aDt9LHNldFBhdGg6ZnVuY3Rpb24ocCl7dGhpcy5fcGF0aD1wO3JldHVybiB0
aGlzO30sZ2V0U2VhcmNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlYXJjaDt9
LHNldFNlYXJjaDpmdW5jdGlvbihwKXt0aGlzLl9zZWFyY2g9cDtyZXR1cm4gdGhp
czt9LGdldEZyYWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZyYWdtZW50
O30sc2V0RnJhZ21lbnQ6ZnVuY3Rpb24ocCl7dGhpcy5fZnJhZ21lbnQ9cDtyZXR1
cm4gdGhpczt9LGdldFBhcnNlZFNlYXJjaDpmdW5jdGlvbigpe3JldHVybiBoLmRl
Y29kZSh0aGlzLl9zZWFyY2gpO30sZ2V0UGFyc2VkRnJhZ21lbnQ6ZnVuY3Rpb24o
KXtyZXR1cm4gaC5kZWNvZGUodGhpcy5fZnJhZ21lbnQpO30saXNGYWNlYm9va1VS
TDpmdW5jdGlvbigpe3JldHVybiBuLnRlc3QodGhpcy5fZG9tYWluKTt9LHRvU3Ry
aW5nOmZ1bmN0aW9uKCl7cmV0dXJuICh0aGlzLl9wcm90b2NvbD90aGlzLl9wcm90
b2NvbCsnOic6JycpKyh0aGlzLl9kb21haW4/Jy8vJyt0aGlzLl9kb21haW46Jycp
Kyh0aGlzLl9wb3J0Pyc6Jyt0aGlzLl9wb3J0OicnKSt0aGlzLl9wYXRoKyh0aGlz
Ll9zZWFyY2g/Jz8nK3RoaXMuX3NlYXJjaDonJykrKHRoaXMuX2ZyYWdtZW50Pycj
Jyt0aGlzLl9mcmFnbWVudDonJyk7fSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJu
IHRoaXMudG9TdHJpbmcoKTt9fSk7ZyhvLHtnZXRDdXJyZW50OmZ1bmN0aW9uKCl7
cmV0dXJuIG5ldyBvKGxvY2F0aW9uLmhyZWYpO30sZ2V0UmVmZXJyZXI6ZnVuY3Rp
b24oKXtyZXR1cm4gZG9jdW1lbnQucmVmZXJyZXI/bmV3IG8oZG9jdW1lbnQucmVm
ZXJyZXIpOm51bGw7fX0pO2UuZXhwb3J0cz1vO30pOwpfX2QoIkFyZ3VtZW50RXJy
b3IiLFsiTWFuYWdlZEVycm9yIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBn
PWIoJ01hbmFnZWRFcnJvcicpO2Z1bmN0aW9uIGgoaSxqKXtnLnByb3RvdHlwZS5j
b25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fWgucHJvdG90eXBlPW5l
dyBnKCk7aC5wcm90b3R5cGUuY29uc3RydWN0b3I9aDtlLmV4cG9ydHM9aDt9KTsK
X19kKCJBcGlDbGllbnQiLFsiY29weVByb3BlcnRpZXMiLCJmbGF0dGVuT2JqZWN0
Iiwic3ByaW50ZiIsIkNPUlNSZXF1ZXN0IiwiRmxhc2hSZXF1ZXN0IiwiSlNPTlBS
ZXF1ZXN0IiwiTG9nIiwiVXJsTWFwIiwiVVJMIiwiQXJndW1lbnRFcnJvciIsIkFz
c2VydCIsIkFwaUNsaWVudENvbmZpZyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2
YXIgZz1iKCdjb3B5UHJvcGVydGllcycpLGg9YignZmxhdHRlbk9iamVjdCcpLGk9
Yignc3ByaW50ZicpLGo9YignQ09SU1JlcXVlc3QnKSxrPWIoJ0ZsYXNoUmVxdWVz
dCcpLGw9YignSlNPTlBSZXF1ZXN0JyksbT1iKCdMb2cnKSxuPWIoJ1VybE1hcCcp
LG89YignVVJMJykscD1iKCdBcmd1bWVudEVycm9yJykscT1iKCdBc3NlcnQnKSxy
PWMoJ0FwaUNsaWVudENvbmZpZycpLHMsdCx1LHYsdz17Z2V0OnRydWUscG9zdDp0
cnVlLCdkZWxldGUnOnRydWUscHV0OnRydWV9LHg9e2ZxbF9xdWVyeTp0cnVlLGZx
bF9tdWx0aXF1ZXJ5OnRydWUsZnJpZW5kc19nZXQ6dHJ1ZSxub3RpZmljYXRpb25z
X2dldDp0cnVlLHN0cmVhbV9nZXQ6dHJ1ZSx1c2Vyc19nZXRpbmZvOnRydWV9O2Z1
bmN0aW9uIHkoY2EsZGEsZWEsZmEpe2lmKCFlYS5hY2Nlc3NfdG9rZW4pZWEuYWNj
ZXNzX3Rva2VuPXM7ZWEucHJldHR5PTA7aWYodilnKGVhLHYpO2VhPWgoZWEpO2lm
KCFmYSl7bS53YXJuKCdObyBjYWxsYmFjayBwYXNzZWQgdG8gdGhlIEFwaUNsaWVu
dCBmb3IgJXMnLGNhKTtmYT1mdW5jdGlvbigpe307fXZhciBnYT17anNvbnA6bCxj
b3JzOmosZmxhc2g6a30saGE7aWYoZWEudHJhbnNwb3J0KXtoYT1bZWEudHJhbnNw
b3J0XTtkZWxldGUgZWEudHJhbnNwb3J0O31lbHNlIGhhPVsnanNvbnAnLCdjb3Jz
JywnZmxhc2gnXTt2YXIgaWE9ZnVuY3Rpb24obWEpe3ZhciBuYT1mYWxzZTtpZih0
JiZtYSYmdHlwZW9mIG1hPT0nb2JqZWN0Jyl7aWYobWEuZXJyb3Ipe2lmKG1hLmVy
cm9yPT0naW52YWxpZF90b2tlbid8fChtYS5lcnJvci50eXBlPT0nT0F1dGhFeGNl
cHRpb24nJiZtYS5lcnJvci5jb2RlPT0xOTApKW5hPXRydWU7fWVsc2UgaWYobWEu
ZXJyb3JfY29kZSlpZihtYS5lcnJvcl9jb2RlPT0nMTkwJyluYT10cnVlO2lmKG5h
KXQoKTt9ZmEobWEpO307Zm9yKHZhciBqYT0wO2phPGhhLmxlbmd0aDtqYSsrKXt2
YXIga2E9Z2FbaGFbamFdXSxsYT1nKHt9LGVhKTtpZihrYS5leGVjdXRlKGNhLGRh
LGxhLGlhKSlyZXR1cm47fWZhKHtlcnJvcjp7dHlwZTonbm8tdHJhbnNwb3J0Jyxt
ZXNzYWdlOidDb3VsZCBub3QgZmluZCBhIHVzYWJsZSB0cmFuc3BvcnQgZm9yIHJl
cXVlc3QnfX0pO31mdW5jdGlvbiB6KGNhKXtxLmlzU3RyaW5nKGNhLCdJbnZhbGlk
IHBhdGgnKTt2YXIgZGEsZWE9e307dHJ5e2RhPW5ldyBvKGNhKTt9Y2F0Y2goZmEp
e3Rocm93IG5ldyBwKGZhLm1lc3NhZ2UsZmEpO31FUzUoQXJyYXkucHJvdG90eXBl
LnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLCdmb3JFYWNoJyx0cnVlLGZ1bmN0aW9u
KGphKXtlYVt0eXBlb2YgamFdPWphO30pO3ZhciBnYT0oZWEuc3RyaW5nfHwnZ2V0
JykudG9Mb3dlckNhc2UoKSxoYT1nKGVhLm9iamVjdHx8e30sZGEuZ2V0UGFyc2Vk
U2VhcmNoKCkpLGlhPWVhWydmdW5jdGlvbiddO3EuaXNUcnVlKHdbZ2FdLGkoJ0lu
dmFsaWQgbWV0aG9kIHBhc3NlZCB0byBBcGlDbGllbnQ6ICVzJyxnYSkpO2hhLm1l
dGhvZD1nYTtkYT1uLnJlc29sdmUoJ2dyYXBoJykrZGEuZ2V0UGF0aCgpO3koZGEs
Z2E9PSdnZXQnPydnZXQnOidwb3N0JyxoYSxpYSk7fWZ1bmN0aW9uIGFhKGNhLGRh
KXtxLmlzT2JqZWN0KGNhKTtxLmlzU3RyaW5nKGNhLm1ldGhvZCwnbWV0aG9kIG1p
c3NpbmcnKTt2YXIgZWE9Y2EubWV0aG9kLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgn
LicsJ18nKTtjYS5mb3JtYXQ9J2pzb24tc3RyaW5ncyc7Y2EuYXBpX2tleT11O3Zh
ciBmYT1lYSBpbiB4PydhcGlfcmVhZCc6J2FwaScsZ2E9bi5yZXNvbHZlKGZhKSsn
L3Jlc3RzZXJ2ZXIucGhwJzt5KGdhLCdnZXQnLGNhLGRhKTt9dmFyIGJhPXtzZXRB
Y2Nlc3NUb2tlbjpmdW5jdGlvbihjYSl7cz1jYTt9LHNldEludmFsaWRBY2Nlc3NU
b2tlbkhhbmRsZXI6ZnVuY3Rpb24oY2Epe3Q9Y2E7fSxzZXRDbGllbnRJRDpmdW5j
dGlvbihjYSl7dT1jYTt9LHNldERlZmF1bHRQYXJhbXM6ZnVuY3Rpb24oY2Epe3Y9
Y2E7fSxyZXN0OmFhLGdyYXBoOnp9O2suc2V0U3dmVXJsKHIuRmxhc2hSZXF1ZXN0
LnN3ZlVybCk7ZS5leHBvcnRzPWJhO30pOwpfX2QoInNkay5hcGkiLFsiQXBpQ2xp
ZW50Iiwic2RrLlJ1bnRpbWUiXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9
YignQXBpQ2xpZW50JyksaD1iKCdzZGsuUnVudGltZScpLGk7aC5zdWJzY3JpYmUo
J0NsaWVudElELmNoYW5nZScsZnVuY3Rpb24oayl7Zy5zZXRDbGllbnRJRChrKTt9
KTtoLnN1YnNjcmliZSgnQWNjZXNzVG9rZW4uY2hhbmdlJyxmdW5jdGlvbihrKXtp
PWs7Zy5zZXRBY2Nlc3NUb2tlbihrKTt9KTtnLnNldERlZmF1bHRQYXJhbXMoe3Nk
azonam9leSd9KTtnLnNldEludmFsaWRBY2Nlc3NUb2tlbkhhbmRsZXIoZnVuY3Rp
b24oKXtpZihpPT09aC5nZXRBY2Nlc3NUb2tlbigpKWguc2V0QWNjZXNzVG9rZW4o
bnVsbCk7fSk7ZnVuY3Rpb24gaigpe2lmKHR5cGVvZiBhcmd1bWVudHNbMF09PT0n
c3RyaW5nJyl7Zy5ncmFwaC5hcHBseShnLGFyZ3VtZW50cyk7fWVsc2UgZy5yZXN0
LmFwcGx5KGcsYXJndW1lbnRzKTt9ZS5leHBvcnRzPWo7fSk7Cl9fZCgibGVnYWN5
OmZiLmFwaSIsWyJGQiIsInNkay5hcGkiXSxmdW5jdGlvbihhLGIsYyxkKXt2YXIg
ZT1iKCdGQicpLGY9Yignc2RrLmFwaScpO2UucHJvdmlkZSgnJyx7YXBpOmZ9KTt9
LDMpOwpfX2MoKTsKX19kKCJsZWdhY3k6ZmIucHJlbHVkZSIsWyJGQiJdLGZ1bmN0
aW9uKGEsYixjLGQpe3ZhciBlPWIoJ0ZCJyk7fSwzKTsKRkIucHJvdmlkZSgnQXJy
YXknLHttZXJnZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7
YysrKWlmKEVTNShhLCdpbmRleE9mJyx0cnVlLGJbY10pPDApYS5wdXNoKGJbY10p
O3JldHVybiBhO30sZm9yRWFjaDpmdW5jdGlvbihhLGIsYyl7aWYoIWEpcmV0dXJu
O2lmKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkoYSk9PT0nW29iamVj
dCBBcnJheV0nfHwoIShhIGluc3RhbmNlb2YgRnVuY3Rpb24pJiZ0eXBlb2YgYS5s
ZW5ndGg9PSdudW1iZXInKSl7aWYoYS5mb3JFYWNoKXtFUzUoYSwnZm9yRWFjaCcs
dHJ1ZSxiKTt9ZWxzZSBmb3IodmFyIGQ9MCxlPWEubGVuZ3RoO2Q8ZTtkKyspYihh
W2RdLGQsYSk7fWVsc2UgZm9yKHZhciBmIGluIGEpaWYoY3x8YS5oYXNPd25Qcm9w
ZXJ0eShmKSliKGFbZl0sZixhKTt9LHRvQXJyYXk6ZnVuY3Rpb24oYSl7Zm9yKHZh
ciBiPTAsYz1bXSxkPWEubGVuZ3RoO2I8ZDtiKyspY1tiXT1hW2JdO3JldHVybiBj
O319KTsKRkIucHJvdmlkZSgnRXZlbnRQcm92aWRlcicse3N1YnNjcmliZXJzOmZ1
bmN0aW9uKCl7aWYoIXRoaXMuX3N1YnNjcmliZXJzTWFwKXRoaXMuX3N1YnNjcmli
ZXJzTWFwPXt9O3JldHVybiB0aGlzLl9zdWJzY3JpYmVyc01hcDt9LHN1YnNjcmli
ZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuc3Vic2NyaWJlcnMoKTtpZighY1th
XSl7Y1thXT1bYl07fWVsc2UgY1thXS5wdXNoKGIpO30sdW5zdWJzY3JpYmU6ZnVu
Y3Rpb24oYSxiKXt2YXIgYz10aGlzLnN1YnNjcmliZXJzKClbYV07RVM1KEZCLkFy
cmF5LCdmb3JFYWNoJyx0cnVlLGMsZnVuY3Rpb24oZCxlKXtpZihkPT1iKWNbZV09
bnVsbDt9KTt9LG1vbml0b3I6ZnVuY3Rpb24oYSxiKXtpZighYigpKXt2YXIgYz10
aGlzLGQ9ZnVuY3Rpb24oKXtpZihiLmFwcGx5KGIsYXJndW1lbnRzKSljLnVuc3Vi
c2NyaWJlKGEsZCk7fTt0aGlzLnN1YnNjcmliZShhLGQpO319LGNsZWFyOmZ1bmN0
aW9uKGEpe2RlbGV0ZSB0aGlzLnN1YnNjcmliZXJzKClbYV07fSxmaXJlOmZ1bmN0
aW9uKCl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz
KSxiPWEuc2hpZnQoKSxjPXRoaXMuc3Vic2NyaWJlcnMoKVtiXTtpZihjKUVTNShj
LCdmb3JFYWNoJyx0cnVlLGZ1bmN0aW9uKGQpe2lmKGQpZC5hcHBseSh0aGlzLGEp
O30pO30sbGlzdGVuOmZ1bmN0aW9uKGEsZXZlbnQsYil7Yi53cmFwcGVyPUZCLndy
YXBGdW5jdGlvbihiLCdlbnRyeScsYSsnOicrZXZlbnQpO2lmKGEuYWRkRXZlbnRM
aXN0ZW5lcil7YS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LGIud3JhcHBlcixmYWxz
ZSk7fWVsc2UgaWYoYS5hdHRhY2hFdmVudClhLmF0dGFjaEV2ZW50KCdvbicrZXZl
bnQsYi53cmFwcGVyKTt9LHVubGlzdGVuOmZ1bmN0aW9uKGEsZXZlbnQsYil7aWYo
YS5yZW1vdmVFdmVudExpc3RlbmVyKXthLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZl
bnQsYi53cmFwcGVyLGZhbHNlKTt9ZWxzZSBpZihhLmRldGFjaEV2ZW50KWEuZGV0
YWNoRXZlbnQoJ29uJytldmVudCxiLndyYXBwZXIpO319KTtGQi5wcm92aWRlKCdF
dmVudCcsRkIuRXZlbnRQcm92aWRlcik7Cl9fZCgiSlNPTlJQQyIsWyJjb3B5UHJv
cGVydGllcyIsIkxvZyJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1iKCdj
b3B5UHJvcGVydGllcycpLGg9YignTG9nJyk7ZnVuY3Rpb24gaShqKXt0aGlzLl9j
b3VudGVyPTA7dGhpcy5fY2FsbGJhY2tzPXt9O3RoaXMucmVtb3RlPXt9O3RoaXMu
bG9jYWw9e307dGhpcy5fd3JpdGU9ajt9ZyhpLnByb3RvdHlwZSx7c3R1YjpmdW5j
dGlvbihqKXt0aGlzLnJlbW90ZVtqXT1FUzUoZnVuY3Rpb24oKXt2YXIgaz1BcnJh
eS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLGw9e2pzb25ycGM6JzIu
MCcsbWV0aG9kOmp9O2lmKHR5cGVvZiBrW2subGVuZ3RoLTFdPT0nZnVuY3Rpb24n
KXtsLmlkPSsrdGhpcy5fY291bnRlcjt0aGlzLl9jYWxsYmFja3NbbC5pZF09ay5w
b3AoKTt9bC5wYXJhbXM9azt0aGlzLl93cml0ZShFUzUoJ0pTT04nLCdzdHJpbmdp
ZnknLGZhbHNlLGwpLHttZXRob2Q6an0pO30sJ2JpbmQnLHRydWUsdGhpcyk7fSxy
ZWFkOmZ1bmN0aW9uKGosayl7dmFyIGw9RVM1KCdKU09OJywncGFyc2UnLGZhbHNl
LGopLG09bC5pZDtpZighbC5tZXRob2Qpe2lmKCF0aGlzLl9jYWxsYmFja3NbbV0p
e2gud2FybignQ291bGQgbm90IGZpbmQgY2FsbGJhY2sgJXMnLG0pO3JldHVybjt9
dmFyIG49dGhpcy5fY2FsbGJhY2tzW21dO2RlbGV0ZSB0aGlzLl9jYWxsYmFja3Nb
bV07ZGVsZXRlIGwuaWQ7ZGVsZXRlIGwuanNvbnJwYztuKGwpO3JldHVybjt9dmFy
IG89dGhpcyxwPXRoaXMubG9jYWxbbC5tZXRob2RdLHE7aWYobSl7cT1mdW5jdGlv
bih0LHUpe3ZhciB2PXtqc29ucnBjOicyLjAnLGlkOm19O3ZbdF09dTtzZXRUaW1l
b3V0KGZ1bmN0aW9uKCl7by5fd3JpdGUoRVM1KCdKU09OJywnc3RyaW5naWZ5Jyxm
YWxzZSx2KSxrKTt9LDApO307fWVsc2UgcT1mdW5jdGlvbigpe307aWYoIXApe2gu
ZXJyb3IoJ01ldGhvZCAiJXMiIGhhcyBub3QgYmVlbiBkZWZpbmVkJyxsLm1ldGhv
ZCk7cSgnZXJyb3InLHtjb2RlOi0zMjYwMSxtZXNzYWdlOidNZXRob2Qgbm90IGZv
dW5kJyxkYXRhOmwubWV0aG9kfSk7cmV0dXJuO31sLnBhcmFtcy5wdXNoKEVTNShx
LCdiaW5kJyx0cnVlLG51bGwsJ3Jlc3VsdCcpKTtsLnBhcmFtcy5wdXNoKEVTNShx
LCdiaW5kJyx0cnVlLG51bGwsJ2Vycm9yJykpO3RyeXt2YXIgcz1wLmFwcGx5KGt8
fG51bGwsbC5wYXJhbXMpO2lmKHR5cGVvZiBzIT09J3VuZGVmaW5lZCcpcSgncmVz
dWx0JyxzKTt9Y2F0Y2gocil7aC5lcnJvcignSW52b2thdGlvbiBvZiBSUEMgbWV0
aG9kICVzIHJlc3VsdGVkIGluIHRoZSBlcnJvcjogJXMnLGwubWV0aG9kLHIubWVz
c2FnZSk7cSgnZXJyb3InLHtjb2RlOi0zMjYwMyxtZXNzYWdlOidJbnRlcm5hbCBl
cnJvcicsZGF0YTpyLm1lc3NhZ2V9KTt9fX0pO2UuZXhwb3J0cz1pO30pOwpfX2Qo
InNkay5SUEMiLFsiQXNzZXJ0IiwiSlNPTlJQQyIsIlF1ZXVlIl0sZnVuY3Rpb24o
YSxiLGMsZCxlLGYpe3ZhciBnPWIoJ0Fzc2VydCcpLGg9YignSlNPTlJQQycpLGk9
YignUXVldWUnKSxqPW5ldyBpKCksaz1uZXcgaChmdW5jdGlvbihtKXtqLmVucXVl
dWUobSk7fSksbD17bG9jYWw6ay5sb2NhbCxyZW1vdGU6ay5yZW1vdGUsc3R1YjpF
UzUoay5zdHViLCdiaW5kJyx0cnVlLGspLHNldEluUXVldWU6ZnVuY3Rpb24obSl7
Zy5pc0luc3RhbmNlT2YoaSxtKTttLnN0YXJ0KGZ1bmN0aW9uKG4pe2sucmVhZChu
KTt9KTt9LGdldE91dFF1ZXVlOmZ1bmN0aW9uKCl7cmV0dXJuIGo7fX07ZS5leHBv
cnRzPWw7fSk7Cl9fZCgiaGFzQXJyYXlOYXR1cmUiLFtdLGZ1bmN0aW9uKGEsYixj
LGQsZSxmKXtmdW5jdGlvbiBnKGgpe3JldHVybiAoISFoJiYodHlwZW9mIGg9PSdv
YmplY3QnfHx0eXBlb2YgaD09J2Z1bmN0aW9uJykmJignbGVuZ3RoJyBpbiBoKSYm
ISgnc2V0SW50ZXJ2YWwnIGluIGgpJiYoT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKGgpPT09IltvYmplY3QgQXJyYXldInx8KCdjYWxsZWUnIGluIGgpfHwo
J2l0ZW0nIGluIGgpKSk7fWUuZXhwb3J0cz1nO30pOwpfX2QoImNyZWF0ZUFycmF5
RnJvbSIsWyJoYXNBcnJheU5hdHVyZSJdLGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2
YXIgZz1iKCdoYXNBcnJheU5hdHVyZScpO2Z1bmN0aW9uIGgoaSl7aWYoIWcoaSkp
cmV0dXJuIFtpXTtpZihpLml0ZW0pe3ZhciBqPWkubGVuZ3RoLGs9bmV3IEFycmF5
KGopO3doaWxlKGotLSlrW2pdPWlbal07cmV0dXJuIGs7fXJldHVybiBBcnJheS5w
cm90b3R5cGUuc2xpY2UuY2FsbChpKTt9ZS5leHBvcnRzPWg7fSk7Cl9fZCgic2Rr
LmNvbXB1dGVDb250ZW50U2l6ZSIsWyJET01XcmFwcGVyIiwiY3JlYXRlQXJyYXlG
cm9tIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIoJ0RPTVdyYXBwZXIn
KSxoPWIoJ2NyZWF0ZUFycmF5RnJvbScpO2Z1bmN0aW9uIGkoKXt2YXIgaj1nLmdl
dFdpbmRvdygpLmRvY3VtZW50LGs9ai5ib2R5LGw9ai5kb2N1bWVudEVsZW1lbnQs
bT0wLG49TWF0aC5tYXgoay5vZmZzZXRUb3AsMCksbz1NYXRoLm1heChsLm9mZnNl
dFRvcCwwKSxwPWsuc2Nyb2xsSGVpZ2h0K24scT1rLm9mZnNldEhlaWdodCtuLHI9
bC5zY3JvbGxIZWlnaHQrbyxzPWwub2Zmc2V0SGVpZ2h0K28sdD1NYXRoLm1heChw
LHEscixzKTtpZihrLm9mZnNldFdpZHRoPGsuc2Nyb2xsV2lkdGgpe209ay5zY3Jv
bGxXaWR0aCtrLm9mZnNldExlZnQ7fWVsc2UgRVM1KGgoay5jaGlsZE5vZGVzKSwn
Zm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbih1KXt2YXIgdj11Lm9mZnNldFdpZHRoK3Uu
b2Zmc2V0TGVmdDtpZih2Pm0pbT12O30pO2lmKGwuY2xpZW50TGVmdD4wKW0rPShs
LmNsaWVudExlZnQqMik7aWYobC5jbGllbnRUb3A+MCl0Kz0obC5jbGllbnRUb3Aq
Mik7cmV0dXJuIHtoZWlnaHQ6dCx3aWR0aDptfTt9ZS5leHBvcnRzPWk7fSk7Cl9f
ZCgic2RrLkNhbnZhcy5JZnJhbWVIYW5kbGluZyIsWyJzZGsuUnVudGltZSIsIkxv
ZyIsInNkay5SUEMiLCJzZGsuY29tcHV0ZUNvbnRlbnRTaXplIl0sZnVuY3Rpb24o
YSxiLGMsZCxlLGYpe3ZhciBnPWIoJ3Nkay5SdW50aW1lJyksaD1iKCdMb2cnKSxp
PWIoJ3Nkay5SUEMnKSxqPWIoJ3Nkay5jb21wdXRlQ29udGVudFNpemUnKSxrPW51
bGwsbDtmdW5jdGlvbiBtKHApe2lmKCFnLmdldEluaXRpYWxpemVkKCkmJmFyZ3Vt
ZW50cy5jYWxsZWUuY2FsbGVyIT1uKWgud2FybignRkIuaW5pdCBpcyByZXF1aXJl
ZCBmb3Igc2V0U2l6ZSB0byB0YWtlIGVmZmVjdCcpO2lmKHR5cGVvZiBwIT0nb2Jq
ZWN0JylwPXt9O3ZhciBxPTAscj0wO2lmKCFwLmhlaWdodCl7cC5oZWlnaHQ9aigp
LmhlaWdodDtxPTE2O3I9NDt9aWYoIXAuZnJhbWUpcC5mcmFtZT13aW5kb3cubmFt
ZXx8J2lmcmFtZV9jYW52YXMnO2lmKGwpe3ZhciBzPWwuaGVpZ2h0LHQ9cC5oZWln
aHQtcztpZih0PD1yJiZ0Pj0tcSlyZXR1cm4gZmFsc2U7fWw9cDtpLnJlbW90ZS5z
ZXRTaXplKHApO3JldHVybiB0cnVlO31mdW5jdGlvbiBuKHAscSl7aWYoIWcuZ2V0
SW5pdGlhbGl6ZWQoKSloLndhcm4oJ0ZCLmluaXQgaXMgcmVxdWlyZWQgZm9yIHNl
dEF1dG9Hcm93IHRvIHRha2UgZWZmZWN0Jyk7aWYocT09PXVuZGVmaW5lZCYmdHlw
ZW9mIHA9PT0nbnVtYmVyJyl7cT1wO3A9dHJ1ZTt9aWYocHx8cD09PXVuZGVmaW5l
ZCl7aWYoaz09PW51bGwpaz1zZXRJbnRlcnZhbChtLHF8fDEwMCk7bSgpO31lbHNl
IGlmKGshPT1udWxsKXtjbGVhckludGVydmFsKGspO2s9bnVsbDt9fWkuc3R1Yign
c2V0U2l6ZScpO3ZhciBvPXtzZXRTaXplOm0sc2V0QXV0b0dyb3c6bixzZXRBdXRv
UmVzaXplOmZ1bmN0aW9uKCl7aC5lcnJvcignRkIuc2V0QXV0b1Jlc2l6ZSgpIGlz
IG5vIGxvbmdlciBmdW5jdGlvbmFsIGFuZCB3aWxsIGJlICcrJ3JlbW92ZWQgb24g
U2VwdGVtYmVyIDV0aC4gVGhpcyBjb2RlIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9u
IHRoZW4uICcrJ1VzZSBGQi5zZXRBdXRvR3JvdygpIGluc3RlYWQuJyk7fX07ZS5l
eHBvcnRzPW87fSk7Cl9fZCgic2RrLkNhbnZhcy5FbnZpcm9ubWVudCIsWyJzZGsu
UnVudGltZSIsIkxvZyIsInNkay5SUEMiXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7
dmFyIGc9Yignc2RrLlJ1bnRpbWUnKSxoPWIoJ0xvZycpLGk9Yignc2RrLlJQQycp
O2Z1bmN0aW9uIGoobSl7aWYodHlwZW9mIG0hPT0nZnVuY3Rpb24nKXtoLmVycm9y
KCdGQi5DYW52YXMuZ2V0UGFnZUluZm8gY2FsbGVkIHdpdGhvdXQgYSBjYWxsYmFj
aycpO3JldHVybjt9aWYoIWcuZ2V0SW5pdGlhbGl6ZWQoKSloLndhcm4oJ0ZCLmlu
aXQgaXMgcmVxdWlyZWQgZm9yIGdldFBhZ2VJbmZvIHRvIHRha2UgZWZmZWN0Jyk7
aS5yZW1vdGUuZ2V0UGFnZUluZm8oZnVuY3Rpb24obil7bShuLnJlc3VsdCk7fSk7
fWZ1bmN0aW9uIGsobSxuKXtpZighZy5nZXRJbml0aWFsaXplZCgpKWgud2Fybign
RkIuaW5pdCBpcyByZXF1aXJlZCBmb3Igc2Nyb2xsVG8gdG8gdGFrZSBlZmZlY3Qn
KTtpLnJlbW90ZS5zY3JvbGxUbyh7eDptfHwwLHk6bnx8MH0pO31pLnN0dWIoJ2dl
dFBhZ2VJbmZvJyk7aS5zdHViKCdzY3JvbGxUbycpO3ZhciBsPXtnZXRQYWdlSW5m
bzpqLHNjcm9sbFRvOmt9O2UuZXhwb3J0cz1sO30pOwpfX2QoInNkay5DYW52YXMu
VHRpIixbInNkay5SUEMiLCJzZGsuUnVudGltZSJdLGZ1bmN0aW9uKGEsYixjLGQs
ZSxmKXt2YXIgZz1iKCdzZGsuUlBDJyksaD1iKCdzZGsuUnVudGltZScpO2Z1bmN0
aW9uIGkobixvKXt2YXIgcD17YXBwSWQ6aC5nZXRDbGllbnRJRCgpLHRpbWU6KG5l
dyBEYXRlKCkpLmdldFRpbWUoKSxuYW1lOm99LHE9W3BdO2lmKG4pcS5wdXNoKGZ1
bmN0aW9uKHIpe24oci5yZXN1bHQpO30pO2cucmVtb3RlLmxvZ1R0aU1lc3NhZ2Uu
YXBwbHkobnVsbCxxKTt9ZnVuY3Rpb24gaigpe2kobnVsbCwnU3RhcnRJZnJhbWVB
cHBUdGlUaW1lcicpO31mdW5jdGlvbiBrKG4pe2kobiwnU3RvcElmcmFtZUFwcFR0
aVRpbWVyJyk7fWZ1bmN0aW9uIGwobil7aShuLCdSZWNvcmRJZnJhbWVBcHBUdGkn
KTt9Zy5zdHViKCdsb2dUdGlNZXNzYWdlJyk7dmFyIG09e3NldERvbmVMb2FkaW5n
Omwsc3RhcnRUaW1lcjpqLHN0b3BUaW1lcjprfTtlLmV4cG9ydHM9bTt9KTsKX19k
KCJzZGsuQ2FudmFzLkZsYXNoIixbInNkay5hcGkiLCJzZGsuUlBDIiwiTG9nIiwi
c2RrLlJ1bnRpbWUiLCJjcmVhdGVBcnJheUZyb20iXSxmdW5jdGlvbihhLGIsYyxk
LGUsZil7dmFyIGc9Yignc2RrLmFwaScpLGg9Yignc2RrLlJQQycpLGk9YignTG9n
Jyksaj1iKCdzZGsuUnVudGltZScpLGs9YignY3JlYXRlQXJyYXlGcm9tJyksbD0n
Q0xTSUQ6RDI3Q0RCNkUtQUU2RC0xMUNGLTk2QjgtNDQ0NTUzNTQwMDAwJyxtPW51
bGw7ZnVuY3Rpb24gbihyKXtyLnN0eWxlLnZpc2liaWxpdHk9J2hpZGRlbic7fWZ1
bmN0aW9uIG8ocil7ci5zdHlsZS52aXNpYmlsaXR5PScnO31mdW5jdGlvbiBwKHIp
e2kuaW5mbygnaGlkZUZsYXNoQ2FsbGJhY2sgY2FsbGVkIHdpdGggJXMnLHIuc3Rh
dGUpO3ZhciBzPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
b2JqZWN0Jyk7RVM1KGsocyksJ2ZvckVhY2gnLHRydWUsZnVuY3Rpb24odCl7aWYo
dC50eXBlLnRvTG93ZXJDYXNlKCkhPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1m
bGFzaCImJighdC5jbGFzc2lkfHx0LmNsYXNzaWQudG9VcHBlckNhc2UoKSE9bCkp
cmV0dXJuO2Zvcih2YXIgdT0wO3U8dC5jaGlsZE5vZGVzLmxlbmd0aDt1Kyspe3Zh
ciB2PXQuY2hpbGROb2Rlc1t1XTtpZigvcGFyYW0vaS50ZXN0KHYubm9kZU5hbWUp
JiYvd21vZGUvaS50ZXN0KHYubmFtZSkmJi9vcGFxdWV8dHJhbnNwYXJlbnQvaS50
ZXN0KHYudmFsdWUpKXJldHVybjt9aWYobSl7aS5pbmZvKCdDYWxsaW5nIGRldmVs
b3BlciBzcGVjaWZpZWQgY2FsbGJhY2snKTt2YXIgdz17c3RhdGU6ci5zdGF0ZSxl
bGVtOnR9O20odyk7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHcuc3RhdGU9PSdv
cGVuZWQnKXtuKHQpO31lbHNlIG8odCk7fSwyMDApO31lbHNlIGlmKHIuc3RhdGU9
PSdvcGVuZWQnKXt0Ll9vbGRfdmlzaWJpbGl0eT10LnN0eWxlLnZpc2liaWxpdHk7
dC5zdHlsZS52aXNpYmlsaXR5PSdoaWRkZW4nO31lbHNlIGlmKHIuc3RhdGU9PSdj
bG9zZWQnKXt0LnN0eWxlLnZpc2liaWxpdHk9dC5fb2xkX3Zpc2liaWxpdHl8fCdh
dXRvJztkZWxldGUgdC5fb2xkX3Zpc2liaWxpdHk7fWlmKE1hdGgucmFuZG9tKCk8
PTEvMTAwMClnKGouZ2V0Q2xpZW50SUQoKSsnL29jY2x1ZGVzcG9wdXBzJywncG9z
dCcse30pO30pO31oLmxvY2FsLmhpZGVGbGFzaE9iamVjdHM9ZnVuY3Rpb24oKXtw
KHtzdGF0ZTonb3BlbmVkJ30pO307aC5sb2NhbC5zaG93Rmxhc2hPYmplY3RzPWZ1
bmN0aW9uKCl7cCh7c3RhdGU6J2Nsb3NlZCd9KTt9O3ZhciBxPXtfc2V0SGlkZUZs
YXNoQ2FsbGJhY2s6ZnVuY3Rpb24ocil7bT1yO30saGlkZUZsYXNoRWxlbWVudDpu
LHNob3dGbGFzaEVsZW1lbnQ6b307ZS5leHBvcnRzPXE7fSk7Cl9fZCgic2RrLkNh
bnZhcy5OYXZpZ2F0aW9uIixbInNkay5SUEMiLCJMb2ciLCJzZGsuUnVudGltZSJd
LGZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1iKCdzZGsuUlBDJyksaD1iKCdM
b2cnKSxpPWIoJ3Nkay5SdW50aW1lJyk7ZnVuY3Rpb24gaihuKXtpZih0eXBlb2Yg
biE9PSdzdHJpbmcnKXtoLmVycm9yKCdGQi5DYW52YXMuc2V0SGFzaCBtdXN0IGhh
dmUgYSBTdHJpbmcgYXMgYXJndW1lbnQnKTtyZXR1cm47fW49bi5yZXBsYWNlKC9b
e308XFtcXT4jJSJdLyxlbmNvZGVVUklDb21wb25lbnQpO2cucmVtb3RlLnNldEhh
c2gobik7fWZ1bmN0aW9uIGsobil7aWYodHlwZW9mIG4hPT0nZnVuY3Rpb24nKXto
LmVycm9yKCdGQi5DYW52YXMuZ2V0SGFzaCBjYWxsZWQgd2l0aG91dCBhIGNhbGxi
YWNrJyk7cmV0dXJuO31nLnJlbW90ZS5nZXRIYXNoKGZ1bmN0aW9uKG8pe24oby5y
ZXN1bHQpO30pO31mdW5jdGlvbiBsKG4pe2lmKCFpLmdldEluaXRpYWxpemVkKCkp
aC53YXJuKCdGQi5pbml0IGlzIHJlcXVpcmVkIGZvciBzZXRVcmxIYW5kbGVyIHRv
IHRha2UgZWZmZWN0Jyk7Zy5sb2NhbC5uYXZpZ2F0ZT1mdW5jdGlvbihvKXtoLmlu
Zm8oJ25hdmlnYXRlICVzJyxvKTtuKHtwYXRoOm99KTt9O2cucmVtb3RlLnNldE5h
dmlnYXRpb25FbmFibGVkKHRydWUpO31nLnN0dWIoJ3NldE5hdmlnYXRpb25FbmFi
bGVkJyk7Zy5zdHViKCdnZXRIYXNoJyk7Zy5zdHViKCdzZXRIYXNoJyk7dmFyIG09
e2dldEhhc2g6ayxzZXRIYXNoOmosc2V0VXJsSGFuZGxlcjpsfTtlLmV4cG9ydHM9
bTt9KTsKX19kKCJzZGsuQ2FudmFzIixbImNvcHlQcm9wZXJ0aWVzIiwic2RrLlJQ
QyIsInNkay5SdW50aW1lIiwic2RrLkNhbnZhcy5JZnJhbWVIYW5kbGluZyIsInNk
ay5DYW52YXMuRW52aXJvbm1lbnQiLCJzZGsuQ2FudmFzLlR0aSIsInNkay5DYW52
YXMuRmxhc2giLCJzZGsuQ2FudmFzLk5hdmlnYXRpb24iXSxmdW5jdGlvbihhLGIs
YyxkLGUsZil7dmFyIGc9YignY29weVByb3BlcnRpZXMnKSxoPWIoJ3Nkay5SUEMn
KSxpPWIoJ3Nkay5SdW50aW1lJyksaj1iKCdzZGsuQ2FudmFzLklmcmFtZUhhbmRs
aW5nJyksaz1iKCdzZGsuQ2FudmFzLkVudmlyb25tZW50JyksbD1iKCdzZGsuQ2Fu
dmFzLlR0aScpLG09Yignc2RrLkNhbnZhcy5GbGFzaCcpLG49Yignc2RrLkNhbnZh
cy5OYXZpZ2F0aW9uJyk7aC5zdHViKCdzaG93RGlhbG9nJyk7dmFyIG89e2lzVGFi
SWZyYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGkuaXNFbnZpcm9ubWVudChpLkVOVklS
T05NRU5UUy5QQUdFVEFCKTt9fTtnKG8saik7ZyhvLGspO2cobyxsKTtnKG8sbSk7
ZyhvLG4pO2UuZXhwb3J0cz1vO30pOwpfX2QoImxlZ2FjeTpmYi5jYW52YXMiLFsi
RkIiLCJzZGsuQ2FudmFzIl0sZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YignRkIn
KSxmPWIoJ3Nkay5DYW52YXMnKTtlLnByb3ZpZGUoJ0NhbnZhcycsZik7ZS5wcm92
aWRlKCdDYW52YXNJbnNpZ2h0cycse3NldERvbmVMb2FkaW5nOmYuc2V0RG9uZUxv
YWRpbmd9KTt9LDMpOwpfX2QoImxlZ2FjeTpmYi51YSIsWyJjb3B5UHJvcGVydGll
cyIsIkZCIiwiVXNlckFnZW50Il0sZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9Yign
Y29weVByb3BlcnRpZXMnKSxmPWIoJ0ZCJyksZz1iKCdVc2VyQWdlbnQnKSxoPWUo
e30sZyk7aC5tb2JpbGU9ZnVuY3Rpb24oKXtyZXR1cm4gIWYuX2luQ2FudmFzJiZn
Lm1vYmlsZSgpO307Zi5wcm92aWRlKCdVQScsaCk7fSwzKTsKX19kKCJpbnNlcnRJ
ZnJhbWUiLFsiZ3VpZCIsIkdsb2JhbENhbGxiYWNrIl0sZnVuY3Rpb24oYSxiLGMs
ZCxlLGYpe3ZhciBnPWIoJ2d1aWQnKSxoPWIoJ0dsb2JhbENhbGxiYWNrJyk7ZnVu
Y3Rpb24gaShqKXtqLmlkPWouaWR8fGcoKTtqLm5hbWU9ai5uYW1lfHxnKCk7dmFy
IGs9ZmFsc2UsbD1mYWxzZSxtPWZ1bmN0aW9uKCl7aWYoayYmIWwpe2w9dHJ1ZTtq
Lm9ubG9hZCYmai5vbmxvYWQoai5yb290LmZpcnN0Q2hpbGQpO2gucmVtb3ZlKG4p
O319LG49aC5jcmVhdGUobSk7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe3ZhciBv
PSgnPGlmcmFtZScrJyBpZD0iJytqLmlkKyciJysnIG5hbWU9Iicrai5uYW1lKyci
Jysoai50aXRsZT8nIHRpdGxlPSInK2oudGl0bGUrJyInOicnKSsoai5jbGFzc05h
bWU/JyBjbGFzcz0iJytqLmNsYXNzTmFtZSsnIic6JycpKycgc3R5bGU9ImJvcmRl
cjpub25lOycrKGoud2lkdGg/J3dpZHRoOicrai53aWR0aCsncHg7JzonJykrKGou
aGVpZ2h0PydoZWlnaHQ6JytqLmhlaWdodCsncHg7JzonJykrJyInKycgc3JjPSJq
YXZhc2NyaXB0OmZhbHNlOyInKycgZnJhbWVib3JkZXI9IjAiJysnIHNjcm9sbGlu
Zz0ibm8iJysnIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIicrJyBvbmxvYWQ9Iicr
bisnKCkiJysnPjwvaWZyYW1lPicpO2oucm9vdC5pbm5lckhUTUw9KCc8aWZyYW1l
IHNyYz0iamF2YXNjcmlwdDpmYWxzZSInKycgZnJhbWVib3JkZXI9IjAiJysnIHNj
cm9sbGluZz0ibm8iJysnIHN0eWxlPSJoZWlnaHQ6MXB4Ij48L2lmcmFtZT4nKTtr
PXRydWU7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtqLnJvb3QuaW5uZXJI
VE1MPW87ai5yb290LmZpcnN0Q2hpbGQuc3JjPWoudXJsO2oub25JbnNlcnQmJmou
b25JbnNlcnQoai5yb290LmZpcnN0Q2hpbGQpO30sMCk7fWVsc2V7dmFyIHA9ZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7cC5pZD1qLmlkO3AubmFtZT1q
Lm5hbWU7cC5vbmxvYWQ9bTtwLnNjcm9sbGluZz0nbm8nO3Auc3R5bGUuYm9yZGVy
PSdub25lJztwLnN0eWxlLm92ZXJmbG93PSdoaWRkZW4nO2lmKGoudGl0bGUpcC50
aXRsZT1qLnRpdGxlO2lmKGouY2xhc3NOYW1lKXAuY2xhc3NOYW1lPWouY2xhc3NO
YW1lO2lmKGouaGVpZ2h0IT09dW5kZWZpbmVkKXAuc3R5bGUuaGVpZ2h0PWouaGVp
Z2h0KydweCc7aWYoai53aWR0aCE9PXVuZGVmaW5lZClpZihqLndpZHRoPT0nMTAw
JScpe3Auc3R5bGUud2lkdGg9ai53aWR0aDt9ZWxzZSBwLnN0eWxlLndpZHRoPWou
d2lkdGgrJ3B4JztqLnJvb3QuYXBwZW5kQ2hpbGQocCk7az10cnVlO3Auc3JjPWou
dXJsO2oub25JbnNlcnQmJmoub25JbnNlcnQocCk7fX1lLmV4cG9ydHM9aTt9KTsK
X19kKCJsZWdhY3k6aW5zZXJ0SWZyYW1lIixbIkZCIiwiaW5zZXJ0SWZyYW1lIl0s
ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YignRkInKSxmPWIoJ2luc2VydElmcmFt
ZScpO2UucHJvdmlkZSgnQ29udGVudCcse2luc2VydElmcmFtZTpmfSk7fSwzKTsK
RkIucHJvdmlkZSgnQ29udGVudCcse19yb290Om51bGwsX2hpZGRlblJvb3Q6bnVs
bCxhcHBlbmQ6ZnVuY3Rpb24oYSxiKXtpZighYilpZighRkIuQ29udGVudC5fcm9v
dCl7RkIuQ29udGVudC5fcm9vdD1iPUZCLiQoJ2ZiLXJvb3QnKTtpZighYil7RkIu
bG9nKCdUaGUgImZiLXJvb3QiIGRpdiBoYXMgbm90IGJlZW4gY3JlYXRlZCwgYXV0
by1jcmVhdGluZycpO0ZCLkNvbnRlbnQuX3Jvb3Q9Yj1kb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTtiLmlkPSdmYi1yb290JztpZihGQi5VQS5pZSgpfHwhZG9j
dW1lbnQuYm9keSl7RkIuRG9tLnJlYWR5KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChiKTt9KTt9ZWxzZSBkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGIpO31iLmNsYXNzTmFtZSs9JyBmYl9yZXNldCc7fWVsc2UgYj1GQi5Db250
ZW50Ll9yb290O2lmKHR5cGVvZiBhPT0nc3RyaW5nJyl7dmFyIGM9ZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Yi5hcHBlbmRDaGlsZChjKS5pbm5lckhUTUw9
YTtyZXR1cm4gYzt9ZWxzZSByZXR1cm4gYi5hcHBlbmRDaGlsZChhKTt9LGFwcGVu
ZEhpZGRlbjpmdW5jdGlvbihhKXtpZighRkIuQ29udGVudC5faGlkZGVuUm9vdCl7
dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JyksYz1iLnN0eWxlO2Mu
cG9zaXRpb249J2Fic29sdXRlJztjLnRvcD0nLTEwMDAwcHgnO2Mud2lkdGg9Yy5o
ZWlnaHQ9MDtGQi5Db250ZW50Ll9oaWRkZW5Sb290PUZCLkNvbnRlbnQuYXBwZW5k
KGIpO31yZXR1cm4gRkIuQ29udGVudC5hcHBlbmQoYSxGQi5Db250ZW50Ll9oaWRk
ZW5Sb290KTt9LHN1Ym1pdFRvVGFyZ2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9ZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZm9ybScpO2MuYWN0aW9uPWEudXJsO2MudGFy
Z2V0PWEudGFyZ2V0O2MubWV0aG9kPShiKT8nR0VUJzonUE9TVCc7RkIuQ29udGVu
dC5hcHBlbmRIaWRkZW4oYyk7RVM1KEZCLkFycmF5LCdmb3JFYWNoJyx0cnVlLGEu
cGFyYW1zLGZ1bmN0aW9uKGQsZSl7aWYoZCE9PW51bGwmJmQhPT11bmRlZmluZWQp
e3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7Zi5uYW1lPWU7
Zi52YWx1ZT1kO2MuYXBwZW5kQ2hpbGQoZik7fX0pO2Muc3VibWl0KCk7Yy5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKGMpO319KTsKX19kKCJyZXNvbHZlV2luZG93Iixb
XSxmdW5jdGlvbihhLGIsYyxkLGUsZil7ZnVuY3Rpb24gZyhoKXt2YXIgaT13aW5k
b3csaj1oLnNwbGl0KCcuJyk7dHJ5e2Zvcih2YXIgbD0wO2w8ai5sZW5ndGg7bCsr
KXt2YXIgbT1qW2xdLG49L15mcmFtZXNcW1snIl0/KFthLXpBLVowLTlcLV9dKylb
JyJdP1xdJC8uZXhlYyhtKTtpZihuKXtpPWkuZnJhbWVzW25bMV1dO31lbHNlIGlm
KG09PT0nb3BlbmVyJ3x8bT09PSdwYXJlbnQnfHxtPT09J3RvcCcpe2k9aVttXTt9
ZWxzZSByZXR1cm4gbnVsbDt9fWNhdGNoKGspe3JldHVybiBudWxsO31yZXR1cm4g
aTt9ZS5leHBvcnRzPWc7fSk7Cl9fZCgiRE9NRXZlbnRMaXN0ZW5lciIsW10sZnVu
Y3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnLGg7aWYod2luZG93LmFkZEV2ZW50TGlz
dGVuZXIpe2c9ZnVuY3Rpb24oaixrLGwpe2ouYWRkRXZlbnRMaXN0ZW5lcihrLGws
ZmFsc2UpO307aD1mdW5jdGlvbihqLGssbCl7ai5yZW1vdmVFdmVudExpc3RlbmVy
KGssbCxmYWxzZSk7fTt9ZWxzZSBpZih3aW5kb3cuYXR0YWNoRXZlbnQpe2c9ZnVu
Y3Rpb24oaixrLGwpe2ouYXR0YWNoRXZlbnQoJ29uJytrLGwpO307aD1mdW5jdGlv
bihqLGssbCl7ai5kZXRhY2hFdmVudCgnb24nK2ssbCk7fTt9dmFyIGk9e2FkZDpm
dW5jdGlvbihqLGssbCl7ZyhqLGssbCk7cmV0dXJuIHtyZW1vdmU6ZnVuY3Rpb24o
KXtoKGosayxsKTtqPW51bGw7fX07fSxyZW1vdmU6aH07ZS5leHBvcnRzPWk7fSk7
Cl9fZCgiWERNIixbImNvcHlQcm9wZXJ0aWVzIiwiZ3VpZCIsIkRPTUV2ZW50TGlz
dGVuZXIiLCJET01XcmFwcGVyIiwiRmxhc2giLCJMb2ciLCJVc2VyQWdlbnQiXSxm
dW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9YignY29weVByb3BlcnRpZXMnKSxo
PWIoJ2d1aWQnKSxpPWIoJ0RPTUV2ZW50TGlzdGVuZXInKSxqPWIoJ0RPTVdyYXBw
ZXInKSxrPWIoJ0ZsYXNoJyksbD1iKCdMb2cnKSxtPWIoJ1VzZXJBZ2VudCcpLG49
e30sbz17dHJhbnNwb3J0czpbXX0scD1qLmdldFdpbmRvdygpO2Z1bmN0aW9uIHEo
cyl7dmFyIHQ9e30sdT1zLmxlbmd0aCx2PW8udHJhbnNwb3J0czt3aGlsZSh1LS0p
dFtzW3VdXT0xO3U9di5sZW5ndGg7d2hpbGUodS0tKXt2YXIgdz12W3VdLHg9blt3
XTtpZighdFt3XSYmeC5pc0F2YWlsYWJsZSgpKXJldHVybiB3O319dmFyIHI9e3Jl
Z2lzdGVyOmZ1bmN0aW9uKHMsdCl7bC5kZWJ1ZygnUmVnaXN0ZXJpbmcgJXMgYXMg
WERNIHByb3ZpZGVyJyxzKTtvLnRyYW5zcG9ydHMucHVzaChzKTtuW3NdPXQ7fSxj
cmVhdGU6ZnVuY3Rpb24ocyl7aWYoIXMud2hlblJlYWR5JiYhcy5vbk1lc3NhZ2Up
e2wuZXJyb3IoJ0FuIGluc3RhbmNlIHdpdGhvdXQgd2hlblJlYWR5IG9yIG9uTWVz
c2FnZSBtYWtlcyBubyBzZW5zZScpO3Rocm93IG5ldyBFcnJvcignQW4gaW5zdGFu
Y2Ugd2l0aG91dCB3aGVuUmVhZHkgb3IgJysnb25NZXNzYWdlIG1ha2VzIG5vIHNl
bnNlJyk7fWlmKCFzLmNoYW5uZWwpe2wud2FybignTWlzc2luZyBjaGFubmVsIG5h
bWUsIHNlbGVjdGluZyBhdCByYW5kb20nKTtzLmNoYW5uZWw9aCgpO31pZighcy53
aGVuUmVhZHkpcy53aGVuUmVhZHk9YmFnb2Zob2xkaW5nO2lmKCFzLm9uTWVzc2Fn
ZSlzLm9uTWVzc2FnZT1iYWdvZmhvbGRpbmc7dmFyIHQ9cy50cmFuc3BvcnR8fHEo
cy5ibGFja2xpc3R8fFtdKSx1PW5bdF07aWYodSYmdS5pc0F2YWlsYWJsZSgpKXts
LmRlYnVnKCclcyBpcyBhdmFpbGFibGUnLHQpO3UuaW5pdChzKTtyZXR1cm4gdDt9
fX07ci5yZWdpc3RlcignZnJhZ21lbnQnLChmdW5jdGlvbigpe3ZhciBzPWZhbHNl
LHQsdT1sb2NhdGlvbi5wcm90b2NvbCsnLy8nK2xvY2F0aW9uLmhvc3Q7ZnVuY3Rp
b24gdih3KXt2YXIgeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTt4
LnNyYz0namF2YXNjcmlwdDpmYWxzZSc7dmFyIHk9aS5hZGQoeCwnbG9hZCcsZnVu
Y3Rpb24oKXt5LnJlbW92ZSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt4LnBhcmVu
dE5vZGUucmVtb3ZlQ2hpbGQoeCk7fSw1MDAwKTt9KTt0LmFwcGVuZENoaWxkKHgp
O3guc3JjPXc7fXJldHVybiB7aXNBdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4g
dHJ1ZTt9LGluaXQ6ZnVuY3Rpb24odyl7bC5kZWJ1ZygnaW5pdCBmcmFnbWVudCcp
O3ZhciB4PXtzZW5kOmZ1bmN0aW9uKHkseixhYSxiYSl7bC5kZWJ1Zygnc2VuZGlu
ZyB0bzogJXMgKCVzKScseit3LmNoYW5uZWxQYXRoLGJhKTt2KHordy5jaGFubmVs
UGF0aCt5KycmeGRfcmVsPXBhcmVudC5wYXJlbnQmcmVsYXRpb249cGFyZW50LnBh
cmVudCZ4ZF9vcmlnaW49JytlbmNvZGVVUklDb21wb25lbnQodSkpO319O2lmKHMp
e3cud2hlblJlYWR5KHgpO3JldHVybjt9dD13LnJvb3Q7cz10cnVlO3cud2hlblJl
YWR5KHgpO319O30pKCkpO3IucmVnaXN0ZXIoJ2ZsYXNoJywoZnVuY3Rpb24oKXt2
YXIgcz1mYWxzZSx0LHU9e30sdj1mYWxzZSx3PTE1MDAwLHg7cmV0dXJuIHtpc0F2
YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBrLmNoZWNrTWluVmVyc2lvbignOC4w
LjI0Jyk7fSxpbml0OmZ1bmN0aW9uKHkpe2wuZGVidWcoJ2luaXQgZmxhc2g6ICcr
eS5jaGFubmVsKTt2YXIgej17c2VuZDpmdW5jdGlvbihjYSxkYSxlYSxmYSl7bC5k
ZWJ1Zygnc2VuZGluZyB0bzogJXMgKCVzKScsZGEsZmEpO3QucG9zdE1lc3NhZ2Uo
Y2EsZGEsZmEpO319O2lmKHMpe3kud2hlblJlYWR5KHopO3JldHVybjt9dmFyIGFh
PXkucm9vdC5hcHBlbmRDaGlsZChwLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpKSxiYT1oKCk7dVtiYV09ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoeCk7bC5p
bmZvKCd4ZG0uc3dmIGNhbGxlZCB0aGUgY2FsbGJhY2snKTtkZWxldGUgdVtiYV07
YmE9aCgpO3VbYmFdPWZ1bmN0aW9uKGNhLGRhKXtjYT1kZWNvZGVVUklDb21wb25l
bnQoY2EpO2wuZGVidWcoJ3JlY2VpdmVkIG1lc3NhZ2UgJXMgZnJvbSAlcycsY2Es
ZGEpO3kub25NZXNzYWdlKGNhLGRhKTt9O3QuaW5pdCh5LmNoYW5uZWwsJ0ZCX1hE
TV9DQUxMQkFDS1MuJytiYSk7eS53aGVuUmVhZHkoeik7fTtwLkZCX1hETV9DQUxM
QkFDS1M9dTt0PWsuZW1iZWQoeS5mbGFzaFVybCxhYSxudWxsLHtwcm90b2NvbDps
b2NhdGlvbi5wcm90b2NvbC5yZXBsYWNlKCc6JywnJyksaG9zdDpsb2NhdGlvbi5o
b3N0LGNhbGxiYWNrOidGQl9YRE1fQ0FMTEJBQ0tTLicrYmEsbG9nOnZ9KTt4PXNl
dFRpbWVvdXQoZnVuY3Rpb24oKXtsLndhcm4oJ1RoZSBGbGFzaCBjb21wb25lbnQg
ZGlkIG5vdCBsb2FkIHdpdGhpbiAlcyBtcyAtICcrJ3ZlcmlmeSB0aGF0IHRoZSBj
b250YWluZXIgaXMgbm90IHNldCB0byBoaWRkZW4gb3IgaW52aXNpYmxlICcrJ3Vz
aW5nIENTUyBhcyB0aGlzIHdpbGwgY2F1c2Ugc29tZSBicm93c2VycyB0byBub3Qg
bG9hZCAnKyd0aGUgY29tcG9uZW50cycsdyk7fSx3KTtzPXRydWU7fX07fSkoKSk7
ci5yZWdpc3RlcigncG9zdG1lc3NhZ2UnLChmdW5jdGlvbigpe3ZhciBzPWZhbHNl
O3JldHVybiB7aXNBdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gISFwLnBvc3RN
ZXNzYWdlO30saW5pdDpmdW5jdGlvbih0KXtsLmRlYnVnKCdpbml0IHBvc3RNZXNz
YWdlOiAnK3QuY2hhbm5lbCk7dmFyIHU9J19GQl8nK3QuY2hhbm5lbCx2PXtzZW5k
OmZ1bmN0aW9uKHcseCx5LHope2lmKHA9PT15KXtsLmVycm9yKCdJbnZhbGlkIHdp
bmRvd3JlZiwgZXF1YWwgdG8gd2luZG93IChzZWxmKScpO3Rocm93IG5ldyBFcnJv
cigpO31sLmRlYnVnKCdzZW5kaW5nIHRvOiAlcyAoJXMpJyx4LHopO3ZhciBhYT1m
dW5jdGlvbigpe3kucG9zdE1lc3NhZ2UoJ19GQl8nK3ordyx4KTt9O2lmKG0uaWUo
KT09OCl7c2V0VGltZW91dChhYSwwKTt9ZWxzZSBhYSgpO319O2lmKHMpe3Qud2hl
blJlYWR5KHYpO3JldHVybjt9aS5hZGQocCwnbWVzc2FnZScsZnVuY3Rpb24oZXZl
bnQpe3ZhciB3PWV2ZW50LmRhdGEseD1ldmVudC5vcmlnaW58fCduYXRpdmUnO2lm
KHR5cGVvZiB3IT0nc3RyaW5nJyl7bC53YXJuKCdSZWNlaXZlZCBtZXNzYWdlIG9m
IHR5cGUgJXMgZnJvbSAlcywgZXhwZWN0ZWQgYSBzdHJpbmcnLHR5cGVvZiB3LHgp
O3JldHVybjt9bC5kZWJ1ZygncmVjZWl2ZWQgbWVzc2FnZSAlcyBmcm9tICVzJyx3
LHgpO2lmKHcuc3Vic3RyaW5nKDAsdS5sZW5ndGgpPT11KXc9dy5zdWJzdHJpbmco
dS5sZW5ndGgpO3Qub25NZXNzYWdlKHcseCk7fSk7dC53aGVuUmVhZHkodik7cz10
cnVlO319O30pKCkpO2UuZXhwb3J0cz1yO30pOwpfX2QoInNkay5YRCIsWyJndWlk
IiwicmVzb2x2ZVdpbmRvdyIsIndyYXBGdW5jdGlvbiIsIkZCIiwiWERNIiwiTG9n
IiwiUXVlcnlTdHJpbmciLCJRdWV1ZSIsIlVSTCIsInNkay5SUEMiLCJzZGsuUnVu
dGltZSIsIlhEQ29uZmlnIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWMo
J1hEQ29uZmlnJyksaD1iKCdndWlkJyksaT1iKCdyZXNvbHZlV2luZG93Jyksaj1i
KCd3cmFwRnVuY3Rpb24nKSxrPWIoJ0ZCJyksbD1iKCdYRE0nKSxtPWIoJ0xvZycp
LG49YignUXVlcnlTdHJpbmcnKSxvPWIoJ1F1ZXVlJykscD1iKCdVUkwnKSxxPWIo
J3Nkay5SUEMnKSxyPWIoJ3Nkay5SdW50aW1lJykscz1uZXcgbygpLHQ9bmV3IG8o
KSx1PW5ldyBvKCksdix3LHg9aCgpLHk9aCgpLHo9bG9jYXRpb24ucHJvdG9jb2wr
Jy8vJytsb2NhdGlvbi5ob3N0LGFhLGJhPWZhbHNlLGNhPXt9LGRhPW5ldyBvKCk7
cS5zZXRJblF1ZXVlKGRhKTtmdW5jdGlvbiBlYShsYSl7bS5pbmZvKCdSZW1vdGUg
WEQgY2FuIHRhbGsgdG8gZmFjZWJvb2suY29tICglcyknLGxhKTtpZihsYT09J2Nh
bnZhcycpe3Iuc2V0RW52aXJvbm1lbnQoci5FTlZJUk9OTUVOVFMuQ0FOVkFTKTtr
Ll9pbkNhbnZhcz10cnVlO31lbHNle3Iuc2V0RW52aXJvbm1lbnQoci5FTlZJUk9O
TUVOVFMuUEFHRVRBQik7ay5DYW52YXMuX2lzVGFiSWZyYW1lPXRydWU7fX1mdW5j
dGlvbiBmYShsYSxtYSl7aWYoIW1hKXttLmVycm9yKCdObyBzZW5kZXJPcmlnaW4n
KTt0aHJvdyBuZXcgRXJyb3IoKTt9dmFyIG5hPS9eaHR0cHM/Ly5leGVjKG1hKVsw
XTtzd2l0Y2gobGEueGRfYWN0aW9uKXtjYXNlICdwcm94eV9yZWFkeSc6dmFyIG9h
LHBhO2lmKG5hPT0naHR0cHMnKXtvYT11O3BhPXc7fWVsc2V7b2E9dDtwYT12O31p
ZihsYS5yZWdpc3RlcmVkKXtlYShsYS5yZWdpc3RlcmVkKTtzPW9hLm1lcmdlKHMp
O31tLmluZm8oJ1Byb3h5IHJlYWR5LCBzdGFydGluZyBxdWV1ZSAlcyBjb250YWlu
aW5nICVzIG1lc3NhZ2VzJyxuYSsnUHJveHlRdWV1ZScsb2EuZ2V0TGVuZ3RoKCkp
O29hLnN0YXJ0KGZ1bmN0aW9uKHJhKXthYS5zZW5kKHR5cGVvZiByYT09PSdzdHJp
bmcnP3JhOm4uZW5jb2RlKHJhKSxtYSxwYS5jb250ZW50V2luZG93LHkrJ18nK25h
KTt9KTticmVhaztjYXNlICdwbHVnaW5fcmVhZHknOm0uaW5mbygnUGx1Z2luICVz
IHJlYWR5LCBwcm90b2NvbDogJXMnLGxhLm5hbWUsbmEpO2NhW2xhLm5hbWVdPXtw
cm90b2NvbDpuYX07aWYoby5leGlzdHMobGEubmFtZSkpe3ZhciBxYT1vLmdldChs
YS5uYW1lKTttLmRlYnVnKCdFbnF1ZXVpbmcgJXMgbWVzc2FnZXMgZm9yICVzIGlu
ICVzJyxxYS5nZXRMZW5ndGgoKSxsYS5uYW1lLG5hKydQcm94eVF1ZXVlJyk7KG5h
PT0naHR0cHMnP3U6dCkubWVyZ2UocWEpO31icmVhazt9aWYobGEuZGF0YSlnYShs
YS5kYXRhLG1hKTt9ZnVuY3Rpb24gZ2EobGEsbWEpe2lmKG1hJiZtYSE9PSduYXRp
dmUnJiYhcChtYSkuaXNGYWNlYm9va1VSTCgpKXJldHVybjtpZih0eXBlb2YgbGE9
PSdzdHJpbmcnKXtpZigvXkZCX1JQQzovLnRlc3QobGEpKXtkYS5lbnF1ZXVlKGxh
LnN1YnN0cmluZyg3KSk7cmV0dXJuO31pZihsYS5zdWJzdHJpbmcoMCwxKT09J3sn
KXt0cnl7bGE9RVM1KCdKU09OJywncGFyc2UnLGZhbHNlLGxhKTt9Y2F0Y2gobmEp
e20ud2FybignRmFpbGVkIHRvIGRlY29kZSAlcyBhcyBKU09OJyxsYSk7cmV0dXJu
O319ZWxzZSBsYT1uLmRlY29kZShsYSk7fWlmKCFtYSlpZihsYS54ZF9zaWc9PXgp
bWE9bGEueGRfb3JpZ2luO2lmKGxhLnhkX2FjdGlvbil7ZmEobGEsbWEpO3JldHVy
bjt9aWYobGEuYWNjZXNzX3Rva2VuKWsuX2h0dHBzPS9eaHR0cHMvLnRlc3Qoeik7
aWYobGEuY2Ipe3ZhciBvYT1rLlhELl9jYWxsYmFja3NbbGEuY2JdO2lmKCFrLlhE
Ll9mb3JldmVyW2xhLmNiXSlkZWxldGUgay5YRC5fY2FsbGJhY2tzW2xhLmNiXTtp
ZihvYSlvYShsYSk7fX12YXIgaGE9ZnVuY3Rpb24oKXt2YXIgbGE9ZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZm9ybSIpLG1hPWxhLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLG5hO21hLm5hbWU9aCgpO25hPW1hIT09
bGEuZWxlbWVudHNbbWEubmFtZV07bGE9bWE9bnVsbDtoYT1mdW5jdGlvbigpe3Jl
dHVybiBuYTt9O3JldHVybiBuYTt9O2Z1bmN0aW9uIGlhKGxhKXt2YXIgbWE9aGEo
KT9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCc8aWZyYW1lIG5hbWU9IicrbGEubmFt
ZSsnIi8+Jyk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7bWEubmFt
ZT1tYS5pZD1sYS5uYW1lO21hLnNyYz0iamF2YXNjcmlwdDpmYWxzZSI7bGEucm9v
dC5hcHBlbmRDaGlsZChtYSk7bWEuc3JjPWxhLnVybDtyZXR1cm4gbWE7fWZ1bmN0
aW9uIGphKGxhLG1hKXtpZihsYT09J2ZhY2Vib29rJyl7bWEucmVsYXRpb249J3Bh
cmVudC5wYXJlbnQnO3MuZW5xdWV1ZShtYSk7fWVsc2V7bWEucmVsYXRpb249J3Bh
cmVudC5mcmFtZXNbIicrbGErJyJdJzt2YXIgbmE9Y2FbbGFdO2lmKG5hKXttLmRl
YnVnKCdFbnF1ZXVpbmcgbWVzc2FnZSBmb3IgcGx1Z2luICVzIGluICVzJyxsYSxu
YS5wcm90b2NvbCsnUHJveHlRdWV1ZScpOyhuYS5wcm90b2NvbD09J2h0dHBzJz91
OnQpLmVucXVldWUobWEpO31lbHNle20uZGVidWcoJ0J1ZmZlcmluZyBtZXNzYWdl
IGZvciBwbHVnaW4gJXMnLGxhKTtvLmdldChsYSkuZW5xdWV1ZShtYSk7fX19cS5n
ZXRPdXRRdWV1ZSgpLnN0YXJ0KGZ1bmN0aW9uKGxhKXtqYSgnZmFjZWJvb2snLCdG
Ql9SUEM6JytsYSk7fSk7dmFyIGthPXtycGM6cSxfY2FsbGJhY2tzOnt9LF9mb3Jl
dmVyOnt9LF9jaGFubmVsOnksX29yaWdpbjp6LG9uTWVzc2FnZTpnYSxyZWN2Omdh
LGluaXQ6ZnVuY3Rpb24obGEsbWEpe2lmKGJhKXJldHVybjt2YXIgbmE9bGE/L1wv
XC8uKj8oXC9bXiNdKikvLmV4ZWMobGEpWzFdOmxvY2F0aW9uLnBhdGhuYW1lK2xv
Y2F0aW9uLnNlYXJjaDtuYSs9KH5FUzUobmEsJ2luZGV4T2YnLHRydWUsJz8nKT8n
Jic6Jz8nKSsnZmJfeGRfZnJhZ21lbnQjeGRfc2lnPScreCsnJic7dmFyIG9hPWsu
Q29udGVudC5hcHBlbmRIaWRkZW4oZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
JykpLHBhPWwuY3JlYXRlKHtyb290Om9hLGNoYW5uZWw6eSxjaGFubmVsUGF0aDon
LycrZy5YZFVybCsnIycsZmxhc2hVcmw6Zy5GbGFzaC5wYXRoLHdoZW5SZWFkeTpm
dW5jdGlvbihxYSl7YWE9cWE7dmFyIHJhPXtjaGFubmVsOnksb3JpZ2luOmxvY2F0
aW9uLnByb3RvY29sKycvLycrbG9jYXRpb24uaG9zdCxjaGFubmVsX3BhdGg6bmEs
dHJhbnNwb3J0OnBhLHhkX25hbWU6bWF9LHNhPWcuWGRVcmwrJyMnK24uZW5jb2Rl
KHJhKSx0YT1nLnVzZUNkbj9rLl9kb21haW4uc3RhdGljZmI6J2h0dHA6Ly93d3cu
ZmFjZWJvb2suY29tLycsdWE9Zy51c2VDZG4/ay5fZG9tYWluLmh0dHBzX3N0YXRp
Y2ZiOidodHRwczovL3d3dy5mYWNlYm9vay5jb20vJztpZighay5vbmx5VXNlSHR0
cHMoKSl2PWlhKHt1cmw6dGErc2EsbmFtZTonZmJfeGRtX2ZyYW1lX2h0dHAnLHJv
b3Q6b2F9KTt3PWlhKHt1cmw6dWErc2EsbmFtZTonZmJfeGRtX2ZyYW1lX2h0dHBz
Jyxyb290Om9hfSk7fSxvbk1lc3NhZ2U6aihnYSwnZW50cnknLCdYRDptZXNzYWdl
Jyl9KTtiYT10cnVlO30sc2VuZFRvRmFjZWJvb2s6amEsaW5mb3JtOmZ1bmN0aW9u
KGxhLG1hLG5hLG9hLHBhKXtqYSgnZmFjZWJvb2snLHttZXRob2Q6bGEscGFyYW1z
OkVTNSgnSlNPTicsJ3N0cmluZ2lmeScsZmFsc2UsbWF8fHt9KSxiZWhhdmlvcjpw
YXx8J3AnLHJlbGF0aW9uOm5hfSk7fSxoYW5kbGVyOmZ1bmN0aW9uKGxhLG1hLG5h
LG9hKXtvYT1vYXx8aCgpO2lmKG5hKWsuWEQuX2ZvcmV2ZXJbb2FdPXRydWU7ay5Y
RC5fY2FsbGJhY2tzW29hXT1sYTt2YXIgcGE9bG9jYXRpb24ucHJvdG9jb2w9PSdo
dHRwczonP2suX2RvbWFpbi5odHRwc19zdGF0aWNmYjprLl9kb21haW4uc3RhdGlj
ZmIscWE9Zy51c2VDZG4/cGE6bG9jYXRpb24ucHJvdG9jb2wrJy8vd3d3LmZhY2Vi
b29rLmNvbS8nO3JldHVybiBxYStnLlhkVXJsKycjJytuLmVuY29kZSh7Y2I6b2Es
b3JpZ2luOnorJy8nK3ksZG9tYWluOmxvY2F0aW9uLmhvc3RuYW1lLHJlbGF0aW9u
Om1hfHwnb3BlbmVyJ30pO319OyhmdW5jdGlvbigpe3ZhciBsYT1sb2NhdGlvbi5o
cmVmLm1hdGNoKC9bPyZdZmJfeGRfZnJhZ21lbnQjKC4qKSQvKTtpZihsYSl7ZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmRpc3BsYXk9J25vbmUnO3ZhciBt
YT1uLmRlY29kZShsYVsxXSksbmE9aShtYS54ZF9yZWwpO20uZGVidWcoJ1Bhc3Np
bmcgZnJhZ21lbnQgYmFzZWQgbWVzc2FnZTogJXMnLGxhWzFdKTtuYS5GQi5YRC5v
bk1lc3NhZ2UobWEpO2RvY3VtZW50Lm9wZW4oKTtkb2N1bWVudC5jbG9zZSgpO319
KSgpO2UuZXhwb3J0cz1rYTt9KTsKX19kKCJsZWdhY3k6ZmIuYXJiaXRlciIsWyJG
QiIsInNkay5YRCJdLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWIoJ0ZCJyksZj1i
KCdzZGsuWEQnKTtlLnByb3ZpZGUoJ0FyYml0ZXInLHtpbmZvcm06Zi5pbmZvcm19
KTt9LDMpOwpGQi5wcm92aWRlKCdTdHJpbmcnLHtmb3JtYXQ6ZnVuY3Rpb24oYSl7
aWYoIUZCLlN0cmluZy5mb3JtYXQuX2Zvcm1hdFJFKUZCLlN0cmluZy5mb3JtYXQu
X2Zvcm1hdFJFPS8oXHtbXlx9Xlx7XStcfSkvZzt2YXIgYj1hcmd1bWVudHM7cmV0
dXJuIGEucmVwbGFjZShGQi5TdHJpbmcuZm9ybWF0Ll9mb3JtYXRSRSxmdW5jdGlv
bihjLGQpe3ZhciBlPXBhcnNlSW50KGQuc3Vic3RyKDEpLDEwKSxmPWJbZSsxXTtp
ZihmPT09bnVsbHx8Zj09PXVuZGVmaW5lZClyZXR1cm4gJyc7cmV0dXJuIGYudG9T
dHJpbmcoKTt9KTt9LGVzY2FwZUhUTUw6ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Yi5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShhKSk7cmV0dXJuIGIuaW5uZXJIVE1MLnJlcGxhY2UoLyIv
ZywnJnF1b3Q7JykucmVwbGFjZSgvJy9nLCcmIzM5OycpO30scXVvdGU6ZnVuY3Rp
b24oYSl7dmFyIGI9L1siXFxceDAwLVx4MWZceDdmLVx4OWZdL2csYz17J1xiJzon
XFxiJywnXHQnOidcXHQnLCdcbic6J1xcbicsJ1xmJzonXFxmJywnXHInOidcXHIn
LCciJzonXFwiJywnXFwnOidcXFxcJ307cmV0dXJuIGIudGVzdChhKT8nIicrYS5y
ZXBsYWNlKGIsZnVuY3Rpb24oZCl7dmFyIGU9Y1tkXTtpZihlKXJldHVybiBlO2U9
ZC5jaGFyQ29kZUF0KCk7cmV0dXJuICdcXHUwMCcrTWF0aC5mbG9vcihlLzE2KS50
b1N0cmluZygxNikrKGUlMTYpLnRvU3RyaW5nKDE2KTt9KSsnIic6JyInK2ErJyIn
O319KTsKRkIucHJvdmlkZSgnRG9tJyx7Y29udGFpbnNDc3M6ZnVuY3Rpb24oYSxi
KXt2YXIgYz0nICcrYS5jbGFzc05hbWUrJyAnO3JldHVybiBFUzUoYywnaW5kZXhP
ZicsdHJ1ZSwnICcrYisnICcpPj0wO30sYWRkQ3NzOmZ1bmN0aW9uKGEsYil7aWYo
IUZCLkRvbS5jb250YWluc0NzcyhhLGIpKWEuY2xhc3NOYW1lPWEuY2xhc3NOYW1l
KycgJytiO30scmVtb3ZlQ3NzOmZ1bmN0aW9uKGEsYil7aWYoRkIuRG9tLmNvbnRh
aW5zQ3NzKGEsYikpe2EuY2xhc3NOYW1lPWEuY2xhc3NOYW1lLnJlcGxhY2UoYiwn
Jyk7RkIuRG9tLnJlbW92ZUNzcyhhLGIpO319LGdldEJ5Q2xhc3M6ZnVuY3Rpb24o
YSxiLGMpe2I9Ynx8ZG9jdW1lbnQuYm9keTtjPWN8fCcqJztpZihiLnF1ZXJ5U2Vs
ZWN0b3JBbGwpcmV0dXJuIEZCLkFycmF5LnRvQXJyYXkoYi5xdWVyeVNlbGVjdG9y
QWxsKGMrJy4nK2EpKTt2YXIgZD1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMpLGU9
W107Zm9yKHZhciBmPTAsZz1kLmxlbmd0aDtmPGc7ZisrKWlmKHRoaXMuY29udGFp
bnNDc3MoZFtmXSxhKSllW2UubGVuZ3RoXT1kW2ZdO3JldHVybiBlO30sZ2V0U3R5
bGU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1mYWxzZSxkPWEuc3R5bGU7aWYoYS5jdXJy
ZW50U3R5bGUpe2I9Yi5yZXBsYWNlKC8tKFx3KS9nLGZ1bmN0aW9uKGUsZil7cmV0
dXJuIGYudG9VcHBlckNhc2UoKTt9KTtjPWEuY3VycmVudFN0eWxlW2JdO31lbHNl
e2I9Yi5yZXBsYWNlKC9bQS1aXS9nLGZ1bmN0aW9uKGUpe3JldHVybiAnLScrZS50
b0xvd2VyQ2FzZSgpO30pO2lmKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKXtjPWRv
Y3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoYSxudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKGIpO2lmKGI9PSdiYWNrZ3JvdW5kLXBvc2l0aW9uLXknfHxi
PT0nYmFja2dyb3VuZC1wb3NpdGlvbi14JylpZihjPT0ndG9wJ3x8Yz09J2xlZnQn
KWM9JzBweCc7fX1pZihiPT0nb3BhY2l0eScpe2lmKGEuZmlsdGVycyYmYS5maWx0
ZXJzLmFscGhhKXJldHVybiBjO3JldHVybiBjKjEwMDt9cmV0dXJuIGM7fSxzZXRT
dHlsZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5zdHlsZTtpZihiPT0nb3BhY2l0
eScpe2lmKGM+PTEwMCljPTk5Ljk5OTtpZihjPDApYz0wO2Qub3BhY2l0eT1jLzEw
MDtkLk1vek9wYWNpdHk9Yy8xMDA7ZC5LaHRtbE9wYWNpdHk9Yy8xMDA7aWYoYS5m
aWx0ZXJzKWlmKGEuZmlsdGVycy5hbHBoYT09dW5kZWZpbmVkKXthLmZpbHRlcj0i
YWxwaGEob3BhY2l0eT0iK2MrIikiO31lbHNlIGEuZmlsdGVycy5hbHBoYS5vcGFj
aXR5PWM7fWVsc2UgZFtiXT1jO30sYWRkU2NyaXB0OmZ1bmN0aW9uKGEpe3ZhciBi
PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO2IudHlwZT0idGV4dC9q
YXZhc2NyaXB0IjtiLnNyYz1hO3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKGIpO30sYWRkQ3NzUnVsZXM6
ZnVuY3Rpb24oYSxiKXtpZighRkIuRG9tLl9jc3NSdWxlcylGQi5Eb20uX2Nzc1J1
bGVzPXt9O3ZhciBjPXRydWU7RVM1KGIsJ2ZvckVhY2gnLHRydWUsZnVuY3Rpb24o
Zil7aWYoIShmIGluIEZCLkRvbS5fY3NzUnVsZXMpKXtjPWZhbHNlO0ZCLkRvbS5f
Y3NzUnVsZXNbZl09dHJ1ZTt9fSk7aWYoYylyZXR1cm47aWYoIUZCLlVBLmllKCkp
e3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7ZC50eXBlPSd0
ZXh0L2Nzcyc7ZC50ZXh0Q29udGVudD1hO2RvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoZCk7fWVsc2UgdHJ5e2RvY3Vt
ZW50LmNyZWF0ZVN0eWxlU2hlZXQoKS5jc3NUZXh0PWE7fWNhdGNoKGUpe2lmKGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzBdKWRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmNz
c1RleHQrPWE7fX0sZ2V0Vmlld3BvcnRJbmZvOmZ1bmN0aW9uKCl7dmFyIGE9KGRv
Y3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuY29tcGF0TW9kZT09J0NT
UzFDb21wYXQnKT9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuYm9k
eTtyZXR1cm4ge3Njcm9sbFRvcDphLnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5z
Y3JvbGxUb3Asc2Nyb2xsTGVmdDphLnNjcm9sbExlZnR8fGRvY3VtZW50LmJvZHku
c2Nyb2xsTGVmdCx3aWR0aDpzZWxmLmlubmVyV2lkdGg/c2VsZi5pbm5lcldpZHRo
OmEuY2xpZW50V2lkdGgsaGVpZ2h0OnNlbGYuaW5uZXJIZWlnaHQ/c2VsZi5pbm5l
ckhlaWdodDphLmNsaWVudEhlaWdodH07fSxyZWFkeTpmdW5jdGlvbihhKXtpZihG
Qi5Eb20uX2lzUmVhZHkpe2EmJmEoKTt9ZWxzZSBGQi5FdmVudC5zdWJzY3JpYmUo
J2RvbS5yZWFkeScsYSk7fSxnZXRQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj0w
LGM9MDtkb3tiKz1hLm9mZnNldExlZnQ7Yys9YS5vZmZzZXRUb3A7fXdoaWxlKGE9
YS5vZmZzZXRQYXJlbnQpO3JldHVybiB7eDpiLHk6Y307fX0pOyhmdW5jdGlvbigp
e2Z1bmN0aW9uIGEoKXtGQi5Eb20uX2lzUmVhZHk9dHJ1ZTtGQi5FdmVudC5maXJl
KCdkb20ucmVhZHknKTtGQi5FdmVudC5jbGVhcignZG9tLnJlYWR5Jyk7fWlmKEZC
LkRvbS5faXNSZWFkeXx8ZG9jdW1lbnQucmVhZHlTdGF0ZT09J2NvbXBsZXRlJyly
ZXR1cm4gYSgpO2lmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpe2RvY3VtZW50
LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLGEsZmFsc2UpO31l
bHNlIGlmKGRvY3VtZW50LmF0dGFjaEV2ZW50KWRvY3VtZW50LmF0dGFjaEV2ZW50
KCdvbnJlYWR5c3RhdGVjaGFuZ2UnLGEpO2lmKEZCLlVBLmllKCkmJndpbmRvdz09
d2luZG93LnRvcCkoZnVuY3Rpb24oKXt0cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmRvU2Nyb2xsKCdsZWZ0Jyk7fWNhdGNoKGMpe3NldFRpbWVvdXQoYXJndW1l
bnRzLmNhbGxlZSwwKTtyZXR1cm47fWEoKTt9KSgpO3ZhciBiPXdpbmRvdy5vbmxv
YWQ7d2luZG93Lm9ubG9hZD1mdW5jdGlvbigpe2EoKTtpZihiKWlmKHR5cGVvZiBi
PT0nc3RyaW5nJyl7RkIuc2FmZUV2YWwoYik7fWVsc2UgYigpO307fSkoKTsKRkIu
cHJvdmlkZSgnSW50bCcsKGZ1bmN0aW9uKCl7dmFyIGE9KCdbJysnLiE/JysnXHUz
MDAyJysnXHVGRjAxJysnXHVGRjFGJysnXHUwOTY0JysnXHUyMDI2JysnXHUwRUFG
JysnXHUxODAxJysnXHUwRTJGJysnXHVGRjBFJysnXScpO2Z1bmN0aW9uIGIoZSl7
aWYodHlwZW9mIGUhPSdzdHJpbmcnKXJldHVybiBmYWxzZTtyZXR1cm4gZS5tYXRj
aChuZXcgUmVnRXhwKGErJ1snKycpIicrIiciKydcdTAwQkInKydcdTBGM0InKydc
dTBGM0QnKydcdTIwMTknKydcdTIwMUQnKydcdTIwM0EnKydcdTMwMDknKydcdTMw
MEInKydcdTMwMEQnKydcdTMwMEYnKydcdTMwMTEnKydcdTMwMTUnKydcdTMwMTcn
KydcdTMwMTknKydcdTMwMUInKydcdTMwMUUnKydcdTMwMUYnKydcdUZEM0YnKydc
dUZGMDcnKydcdUZGMDknKydcdUZGM0QnKydccycrJ10qJCcpKTt9ZnVuY3Rpb24g
YyhlLGYpe2lmKGYhPT11bmRlZmluZWQpaWYodHlwZW9mIGYhPSdvYmplY3QnKXtG
Qi5sb2coJ1RoZSBzZWNvbmQgYXJnIHRvIEZCLkludGwudHgoKSBtdXN0IGJlIGFu
IE9iamVjdCBmb3IgJysnRkIuSW50bC50eCgnK2UrJywgLi4uKScpO31lbHNle3Zh
ciBnO2Zvcih2YXIgaCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoaCkpe2lmKGIo
ZltoXSkpe2c9bmV3IFJlZ0V4cCgnXHsnK2grJ1x9JythKycqJywnZycpO31lbHNl
IGc9bmV3IFJlZ0V4cCgnXHsnK2grJ1x9JywnZycpO2U9ZS5yZXBsYWNlKGcsZlto
XSk7fX1yZXR1cm4gZTt9ZnVuY3Rpb24gZChlLGYpe2lmKCFGQi5JbnRsLl9zdHJp
bmdUYWJsZSlyZXR1cm4gbnVsbDtyZXR1cm4gYyhGQi5JbnRsLl9zdHJpbmdUYWJs
ZVtlXSxmKTt9ZC5fPWM7cmV0dXJuIHt0eDpkLF90eDpjfTt9KSgpKTsKRkIucHJv
dmlkZSgnJyx7Q2xhc3M6ZnVuY3Rpb24oYSxiLGMpe2lmKEZCLkNMQVNTRVNbYV0p
cmV0dXJuIEZCLkNMQVNTRVNbYV07dmFyIGQ9Ynx8ZnVuY3Rpb24oKXt9O2QucHJv
dG90eXBlPWM7ZC5wcm90b3R5cGUuYmluZD1mdW5jdGlvbihlKXtyZXR1cm4gRVM1
KGUsJ2JpbmQnLHRydWUsdGhpcyk7fTtkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1k
O0ZCLmNyZWF0ZShhLGQpO0ZCLkNMQVNTRVNbYV09ZDtyZXR1cm4gZDt9LHN1YmNs
YXNzOmZ1bmN0aW9uKGEsYixjLGQpe2lmKEZCLkNMQVNTRVNbYV0pcmV0dXJuIEZC
LkNMQVNTRVNbYV07dmFyIGU9RkIuY3JlYXRlKGIpO0ZCLmNvcHkoZCxlLnByb3Rv
dHlwZSk7ZC5fYmFzZT1lO2QuX2NhbGxCYXNlPWZ1bmN0aW9uKGYpe3ZhciBnPUFy
cmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZS5w
cm90b3R5cGVbZl0uYXBwbHkodGhpcyxnKTt9O3JldHVybiBGQi5DbGFzcyhhLGM/
YzpmdW5jdGlvbigpe2lmKGUuYXBwbHkpZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7
fSxkKTt9LENMQVNTRVM6e319KTtGQi5wcm92aWRlKCdUeXBlJyx7aXNUeXBlOmZ1
bmN0aW9uKGEsYil7d2hpbGUoYSlpZihhLmNvbnN0cnVjdG9yPT09Ynx8YT09PWIp
e3JldHVybiB0cnVlO31lbHNlIGE9YS5fYmFzZXx8YS5jb25zdHJ1Y3Rvci5wcm90
b3R5cGUuX2Jhc2U7cmV0dXJuIGZhbHNlO319KTsKRkIuQ2xhc3MoJ09iaicsbnVs
bCxGQi5jb3B5KHtzZXRQcm9wZXJ0eTpmdW5jdGlvbihhLGIpe2lmKEVTNSgnSlNP
TicsJ3N0cmluZ2lmeScsZmFsc2UsYikhPUVTNSgnSlNPTicsJ3N0cmluZ2lmeScs
ZmFsc2UsdGhpc1thXSkpe3RoaXNbYV09Yjt0aGlzLmZpcmUoYSxiKTt9fX0sRkIu
RXZlbnRQcm92aWRlcikpOwpfX2QoImxlZ2FjeTpmYi54ZCIsWyJGQiIsInNkay5Y
RCJdLGZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWIoJ0ZCJyksZj1iKCdzZGsuWEQn
KTtlLnByb3ZpZGUoJ1hEJyxmKTt9LDMpOwpGQi5zdWJjbGFzcygnRGlhbG9nJywn
T2JqJyxmdW5jdGlvbihhKXt0aGlzLmlkPWE7aWYoIUZCLkRpYWxvZy5fZGlhbG9n
cyl7RkIuRGlhbG9nLl9kaWFsb2dzPXt9O0ZCLkRpYWxvZy5fYWRkT3JpZW50YXRp
b25IYW5kbGVyKCk7fUZCLkRpYWxvZy5fZGlhbG9nc1thXT10aGlzO30se30pO0ZC
LnByb3ZpZGUoJ0RpYWxvZycse19kaWFsb2dzOm51bGwsX2xhc3RZT2Zmc2V0OjAs
X2xvYWRlckVsOm51bGwsX292ZXJsYXlFbDpudWxsLF9zdGFjazpbXSxfYWN0aXZl
Om51bGwsZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBGQi5EaWFsb2cuX2RpYWxvZ3Nb
YV07fSxfZmluZFJvb3Q6ZnVuY3Rpb24oYSl7d2hpbGUoYSl7aWYoRkIuRG9tLmNv
bnRhaW5zQ3NzKGEsJ2ZiX2RpYWxvZycpKXJldHVybiBhO2E9YS5wYXJlbnROb2Rl
O319LF9jcmVhdGVXV1dMb2FkZXI6ZnVuY3Rpb24oYSl7YT1wYXJzZUludChhLDEw
KTthPWE/YTo0NjA7cmV0dXJuIEZCLkRpYWxvZy5jcmVhdGUoe2NvbnRlbnQ6KCc8
ZGl2IGNsYXNzPSJkaWFsb2dfdGl0bGUiPicrJyAgPGEgaWQ9ImZiX2RpYWxvZ19s
b2FkZXJfY2xvc2UiPicrJyAgICA8ZGl2IGNsYXNzPSJmYl9kaWFsb2dfY2xvc2Vf
aWNvbiI+PC9kaXY+JysnICA8L2E+JysnICA8c3Bhbj5GYWNlYm9vazwvc3Bhbj4n
KycgIDxkaXYgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2Rpdj4nKyc8L2Rpdj4nKyc8
ZGl2IGNsYXNzPSJkaWFsb2dfY29udGVudCI+PC9kaXY+JysnPGRpdiBjbGFzcz0i
ZGlhbG9nX2Zvb3RlciI+PC9kaXY+Jyksd2lkdGg6YX0pO30sX2NyZWF0ZU1vYmls
ZUxvYWRlcjpmdW5jdGlvbigpe3ZhciBhPUZCLlVBLm5hdGl2ZUFwcCgpPycnOign
PHRhYmxlPicrJyAgPHRib2R5PicrJyAgICA8dHI+JysnICAgICAgPHRkIGNsYXNz
PSJoZWFkZXJfbGVmdCI+JysnICAgICAgICA8bGFiZWwgY2xhc3M9InRvdWNoYWJs
ZV9idXR0b24iPicrJyAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1
ZT0iJytGQi5JbnRsLnR4Ll8oIkNhbmNlbGFyIikrJyInKycgICAgICAgICAgICBp
ZD0iZmJfZGlhbG9nX2xvYWRlcl9jbG9zZSIvPicrJyAgICAgICAgPC9sYWJlbD4n
KycgICAgICA8L3RkPicrJyAgICAgIDx0ZCBjbGFzcz0iaGVhZGVyX2NlbnRlciI+
JysnICAgICAgICA8ZGl2PicrRkIuSW50bC50eC5fKCJDYXJnYW5kby4uLiIpKyc8
L2Rpdj4nKycgICAgICA8L3RkPicrJyAgICAgIDx0ZCBjbGFzcz0iaGVhZGVyX3Jp
Z2h0Ij4nKycgICAgICA8L3RkPicrJyAgICA8L3RyPicrJyAgPC90Ym9keT4nKyc8
L3RhYmxlPicpO3JldHVybiBGQi5EaWFsb2cuY3JlYXRlKHtjbGFzc2VzOidsb2Fk
aW5nJysoRkIuVUEuaXBhZCgpPycgY2VudGVyZWQnOicnKSxjb250ZW50OignPGRp
diBjbGFzcz0iZGlhbG9nX2hlYWRlciI+JythKyc8L2Rpdj4nKX0pO30sX3Jlc3Rv
cmVCb2R5UG9zaXRpb246ZnVuY3Rpb24oKXtpZighRkIuVUEuaXBhZCgpKXt2YXIg
YT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO0ZCLkRv
bS5yZW1vdmVDc3MoYSwnZmJfaGlkZGVuJyk7fX0sX3Nob3dJUGFkT3ZlcmxheTpm
dW5jdGlvbigpe2lmKCFGQi5VQS5pcGFkKCkpcmV0dXJuO2lmKCFGQi5EaWFsb2cu
X292ZXJsYXlFbCl7RkIuRGlhbG9nLl9vdmVybGF5RWw9ZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7RkIuRGlhbG9nLl9vdmVybGF5RWwuc2V0QXR0cmlidXRl
KCdpZCcsJ2ZiX2RpYWxvZ19pcGFkX292ZXJsYXknKTtGQi5Db250ZW50LmFwcGVu
ZChGQi5EaWFsb2cuX292ZXJsYXlFbCxudWxsKTt9RkIuRGlhbG9nLl9vdmVybGF5
RWwuY2xhc3NOYW1lPScnO30sX2hpZGVJUGFkT3ZlcmxheTpmdW5jdGlvbigpe2lm
KEZCLlVBLmlwYWQoKSlGQi5EaWFsb2cuX292ZXJsYXlFbC5jbGFzc05hbWU9J2hp
ZGRlbic7fSxzaG93TG9hZGVyOmZ1bmN0aW9uKGEsYil7RkIuRGlhbG9nLl9zaG93
SVBhZE92ZXJsYXkoKTtpZighRkIuRGlhbG9nLl9sb2FkZXJFbClGQi5EaWFsb2cu
X2xvYWRlckVsPUZCLkRpYWxvZy5fZmluZFJvb3QoRkIuVUEubW9iaWxlKCk/RkIu
RGlhbG9nLl9jcmVhdGVNb2JpbGVMb2FkZXIoKTpGQi5EaWFsb2cuX2NyZWF0ZVdX
V0xvYWRlcihiKSk7aWYoIWEpYT1mdW5jdGlvbigpe307dmFyIGM9RkIuJCgnZmJf
ZGlhbG9nX2xvYWRlcl9jbG9zZScpO0ZCLkRvbS5yZW1vdmVDc3MoYywnZmJfaGlk
ZGVuJyk7Yy5vbmNsaWNrPWZ1bmN0aW9uKCl7RkIuRGlhbG9nLl9oaWRlTG9hZGVy
KCk7RkIuRGlhbG9nLl9yZXN0b3JlQm9keVBvc2l0aW9uKCk7RkIuRGlhbG9nLl9o
aWRlSVBhZE92ZXJsYXkoKTthKCk7fTt2YXIgZD1GQi4kKCdmYl9kaWFsb2dfaXBh
ZF9vdmVybGF5Jyk7aWYoZClkLm9udG91Y2hzdGFydD1jLm9uY2xpY2s7RkIuRGlh
bG9nLl9tYWtlQWN0aXZlKEZCLkRpYWxvZy5fbG9hZGVyRWwpO30sX2hpZGVMb2Fk
ZXI6ZnVuY3Rpb24oKXtpZihGQi5EaWFsb2cuX2xvYWRlckVsJiZGQi5EaWFsb2cu
X2xvYWRlckVsPT1GQi5EaWFsb2cuX2FjdGl2ZSlGQi5EaWFsb2cuX2xvYWRlckVs
LnN0eWxlLnRvcD0nLTEwMDAwcHgnO30sX21ha2VBY3RpdmU6ZnVuY3Rpb24oYSl7
RkIuRGlhbG9nLl9zZXREaWFsb2dTaXplcygpO0ZCLkRpYWxvZy5fbG93ZXJBY3Rp
dmUoKTtGQi5EaWFsb2cuX2FjdGl2ZT1hO2lmKEZCLkNhbnZhcylGQi5DYW52YXMu
Z2V0UGFnZUluZm8oZnVuY3Rpb24oYil7RkIuRGlhbG9nLl9jZW50ZXJBY3RpdmUo
Yik7fSk7RkIuRGlhbG9nLl9jZW50ZXJBY3RpdmUoRkIuQ2FudmFzLl9wYWdlSW5m
byk7fSxfbG93ZXJBY3RpdmU6ZnVuY3Rpb24oKXtpZighRkIuRGlhbG9nLl9hY3Rp
dmUpcmV0dXJuO0ZCLkRpYWxvZy5fYWN0aXZlLnN0eWxlLnRvcD0nLTEwMDAwcHgn
O0ZCLkRpYWxvZy5fYWN0aXZlPW51bGw7fSxfcmVtb3ZlU3RhY2tlZDpmdW5jdGlv
bihhKXtGQi5EaWFsb2cuX3N0YWNrPUVTNShGQi5EaWFsb2cuX3N0YWNrLCdmaWx0
ZXInLHRydWUsZnVuY3Rpb24oYil7cmV0dXJuIGIhPWE7fSk7fSxfY2VudGVyQWN0
aXZlOmZ1bmN0aW9uKGEpe3ZhciBiPUZCLkRpYWxvZy5fYWN0aXZlO2lmKCFiKXJl
dHVybjt2YXIgYz1GQi5Eb20uZ2V0Vmlld3BvcnRJbmZvKCksZD1wYXJzZUludChi
Lm9mZnNldFdpZHRoLDEwKSxlPXBhcnNlSW50KGIub2Zmc2V0SGVpZ2h0LDEwKSxm
PWMuc2Nyb2xsTGVmdCsoYy53aWR0aC1kKS8yLGc9KGMuaGVpZ2h0LWUpLzIuNTtp
ZihmPGcpZz1mO3ZhciBoPWMuaGVpZ2h0LWUtZyxpPShjLmhlaWdodC1lKS8yO2lm
KGEpaT1hLnNjcm9sbFRvcC1hLm9mZnNldFRvcCsoYS5jbGllbnRIZWlnaHQtZSkv
MjtpZihpPGcpe2k9Zzt9ZWxzZSBpZihpPmgpaT1oO2krPWMuc2Nyb2xsVG9wO2lm
KEZCLlVBLm1vYmlsZSgpKXt2YXIgaj0xMDA7aWYoRkIuVUEuaXBhZCgpKXtqKz0o
Yy5oZWlnaHQtZSkvMjt9ZWxzZXt2YXIgaz1kb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgnYm9keScpWzBdO0ZCLkRvbS5hZGRDc3MoaywnZmJfaGlkZGVuJyk7
Zj0xMDAwMDtpPTEwMDAwO312YXIgbD1GQi5Eb20uZ2V0QnlDbGFzcygnZmJfZGlh
bG9nX3BhZGRpbmcnLGIpO2lmKGwubGVuZ3RoKWxbMF0uc3R5bGUuaGVpZ2h0PWor
J3B4Jzt9Yi5zdHlsZS5sZWZ0PShmPjA/ZjowKSsncHgnO2Iuc3R5bGUudG9wPShp
PjA/aTowKSsncHgnO30sX3NldERpYWxvZ1NpemVzOmZ1bmN0aW9uKCl7aWYoIUZC
LlVBLm1vYmlsZSgpfHxGQi5VQS5pcGFkKCkpcmV0dXJuO2Zvcih2YXIgYSBpbiBG
Qi5EaWFsb2cuX2RpYWxvZ3MpaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkp
e3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpO2Iuc3R5bGUud2lkdGg9
RkIuVUlTZXJ2ZXIuZ2V0RGVmYXVsdFNpemUoKS53aWR0aCsncHgnO2Iuc3R5bGUu
aGVpZ2h0PUZCLlVJU2VydmVyLmdldERlZmF1bHRTaXplKCkuaGVpZ2h0KydweCc7
fX0sX2hhbmRsZU9yaWVudGF0aW9uQ2hhbmdlOmZ1bmN0aW9uKGEpe2lmKEZCLlVB
LmFuZHJvaWQoKSYmc2NyZWVuLmF2YWlsV2lkdGg9PUZCLkRpYWxvZy5fYXZhaWxT
Y3JlZW5XaWR0aCl7d2luZG93LnNldFRpbWVvdXQoRkIuRGlhbG9nLl9oYW5kbGVP
cmllbnRhdGlvbkNoYW5nZSw1MCk7cmV0dXJuO31GQi5EaWFsb2cuX2F2YWlsU2Ny
ZWVuV2lkdGg9c2NyZWVuLmF2YWlsV2lkdGg7aWYoRkIuVUEuaXBhZCgpKXtGQi5E
aWFsb2cuX2NlbnRlckFjdGl2ZSgpO31lbHNlIGZvcih2YXIgYiBpbiBGQi5EaWFs
b2cuX2RpYWxvZ3MpaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYikpZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoYikuc3R5bGUud2lkdGg9RkIuVUlTZXJ2ZXIuZ2V0
RGVmYXVsdFNpemUoKS53aWR0aCsncHgnO30sX2FkZE9yaWVudGF0aW9uSGFuZGxl
cjpmdW5jdGlvbigpe2lmKCFGQi5VQS5tb2JpbGUoKSlyZXR1cm47dmFyIGE9Im9u
b3JpZW50YXRpb25jaGFuZ2UiIGluIHdpbmRvdz8nb3JpZW50YXRpb25jaGFuZ2Un
OidyZXNpemUnO0ZCLkRpYWxvZy5fYXZhaWxTY3JlZW5XaWR0aD1zY3JlZW4uYXZh
aWxXaWR0aDtGQi5FdmVudC5saXN0ZW4od2luZG93LGEsRkIuRGlhbG9nLl9oYW5k
bGVPcmllbnRhdGlvbkNoYW5nZSk7fSxjcmVhdGU6ZnVuY3Rpb24oYSl7YT1hfHx7
fTt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSxjPWRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLGQ9J2ZiX2RpYWxvZyc7aWYoYS5jbG9zZUlj
b24mJmEub25DbG9zZSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScp
O2UuY2xhc3NOYW1lPSdmYl9kaWFsb2dfY2xvc2VfaWNvbic7ZS5vbmNsaWNrPWEu
b25DbG9zZTtiLmFwcGVuZENoaWxkKGUpO31kKz0nICcrKGEuY2xhc3Nlc3x8Jycp
O2lmKEZCLlVBLmllKCkpe2QrPScgZmJfZGlhbG9nX2xlZ2FjeSc7RVM1KFsndmVy
dF9sZWZ0JywndmVydF9yaWdodCcsJ2hvcml6X3RvcCcsJ2hvcml6X2JvdHRvbScs
J3RvcF9sZWZ0JywndG9wX3JpZ2h0JywnYm90dG9tX2xlZnQnLCdib3R0b21fcmln
aHQnXSwnZm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihoKXt2YXIgaT1kb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzcGFuJyk7aS5jbGFzc05hbWU9J2ZiX2RpYWxvZ18nK2g7
Yi5hcHBlbmRDaGlsZChpKTt9KTt9ZWxzZSBkKz0oRkIuVUEubW9iaWxlKCkpPycg
ZmJfZGlhbG9nX21vYmlsZSc6JyBmYl9kaWFsb2dfYWR2YW5jZWQnO2lmKGEuY29u
dGVudClGQi5Db250ZW50LmFwcGVuZChhLmNvbnRlbnQsYyk7Yi5jbGFzc05hbWU9
ZDt2YXIgZj1wYXJzZUludChhLndpZHRoLDEwKTtpZighaXNOYU4oZikpYi5zdHls
ZS53aWR0aD1mKydweCc7Yy5jbGFzc05hbWU9J2ZiX2RpYWxvZ19jb250ZW50Jzti
LmFwcGVuZENoaWxkKGMpO2lmKEZCLlVBLm1vYmlsZSgpKXt2YXIgZz1kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTtnLmNsYXNzTmFtZT0nZmJfZGlhbG9nX3Bh
ZGRpbmcnO2IuYXBwZW5kQ2hpbGQoZyk7fUZCLkNvbnRlbnQuYXBwZW5kKGIpO2lm
KGEudmlzaWJsZSlGQi5EaWFsb2cuc2hvdyhiKTtyZXR1cm4gYzt9LHNob3c6ZnVu
Y3Rpb24oYSl7dmFyIGI9RkIuRGlhbG9nLl9maW5kUm9vdChhKTtpZihiKXtGQi5E
aWFsb2cuX3JlbW92ZVN0YWNrZWQoYik7RkIuRGlhbG9nLl9oaWRlTG9hZGVyKCk7
RkIuRGlhbG9nLl9tYWtlQWN0aXZlKGIpO0ZCLkRpYWxvZy5fc3RhY2sucHVzaChi
KTtpZignZmJDYWxsSUQnIGluIGEpRkIuRGlhbG9nLmdldChhLmZiQ2FsbElEKS5m
aXJlKCdpZnJhbWVfc2hvdycpO319LGhpZGU6ZnVuY3Rpb24oYSl7dmFyIGI9RkIu
RGlhbG9nLl9maW5kUm9vdChhKTtpZihiPT1GQi5EaWFsb2cuX2FjdGl2ZSl7RkIu
RGlhbG9nLl9sb3dlckFjdGl2ZSgpO0ZCLkRpYWxvZy5fcmVzdG9yZUJvZHlQb3Np
dGlvbigpO0ZCLkRpYWxvZy5faGlkZUlQYWRPdmVybGF5KCk7aWYoJ2ZiQ2FsbElE
JyBpbiBhKUZCLkRpYWxvZy5nZXQoYS5mYkNhbGxJRCkuZmlyZSgnaWZyYW1lX2hp
ZGUnKTt9fSxyZW1vdmU6ZnVuY3Rpb24oYSl7YT1GQi5EaWFsb2cuX2ZpbmRSb290
KGEpO2lmKGEpe3ZhciBiPUZCLkRpYWxvZy5fYWN0aXZlPT1hO0ZCLkRpYWxvZy5f
cmVtb3ZlU3RhY2tlZChhKTtpZihiKXtGQi5EaWFsb2cuX2hpZGVMb2FkZXIoKTtp
ZihGQi5EaWFsb2cuX3N0YWNrLmxlbmd0aD4wKXtGQi5EaWFsb2cuc2hvdyhGQi5E
aWFsb2cuX3N0YWNrLnBvcCgpKTt9ZWxzZXtGQi5EaWFsb2cuX2xvd2VyQWN0aXZl
KCk7RkIuRGlhbG9nLl9yZXN0b3JlQm9keVBvc2l0aW9uKCk7RkIuRGlhbG9nLl9o
aWRlSVBhZE92ZXJsYXkoKTt9fWVsc2UgaWYoRkIuRGlhbG9nLl9hY3RpdmU9PT1u
dWxsJiZGQi5EaWFsb2cuX3N0YWNrLmxlbmd0aD4wKUZCLkRpYWxvZy5zaG93KEZC
LkRpYWxvZy5fc3RhY2sucG9wKCkpO3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7YS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEpO30sMzAwMCk7fX0saXNBY3Rp
dmU6ZnVuY3Rpb24oYSl7dmFyIGI9RkIuRGlhbG9nLl9maW5kUm9vdChhKTtyZXR1
cm4gYiYmYj09PUZCLkRpYWxvZy5fYWN0aXZlO319KTsKRkIucHJvdmlkZSgnUVMn
LHtlbmNvZGU6ZnVuY3Rpb24oYSxiLGMpe2I9Yj09PXVuZGVmaW5lZD8nJic6Yjtj
PWM9PT1mYWxzZT9mdW5jdGlvbihlKXtyZXR1cm4gZTt9OmVuY29kZVVSSUNvbXBv
bmVudDt2YXIgZD1bXTtFUzUoRkIuQXJyYXksJ2ZvckVhY2gnLHRydWUsYSxmdW5j
dGlvbihlLGYpe2lmKGUhPT1udWxsJiZ0eXBlb2YgZSE9J3VuZGVmaW5lZCcpZC5w
dXNoKGMoZikrJz0nK2MoZSkpO30pO2Quc29ydCgpO3JldHVybiBkLmpvaW4oYik7
fSxkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGI9ZGVjb2RlVVJJQ29tcG9uZW50LGM9
e30sZD1hLnNwbGl0KCcmJyksZSxmO2ZvcihlPTA7ZTxkLmxlbmd0aDtlKyspe2Y9
ZFtlXS5zcGxpdCgnPScsMik7aWYoZiYmZlswXSljW2IoZlswXSldPWIoZlsxXXx8
JycpO31yZXR1cm4gYzt9fSk7Cl9fZCgibGVnYWN5OmZiLmpzb24iLFsiZmxhdHRl
bk9iamVjdCIsIkZCIiwiTWFuYWdlZEVycm9yIl0sZnVuY3Rpb24oYSxiLGMsZCl7
dmFyIGU9YignZmxhdHRlbk9iamVjdCcpLGY9YignRkInKSxnPWIoJ01hbmFnZWRF
cnJvcicpO2YucHJvdmlkZSgnSlNPTicse3N0cmluZ2lmeTpmdW5jdGlvbihoKXt0
cnl7cmV0dXJuIEVTNSgnSlNPTicsJ3N0cmluZ2lmeScsZmFsc2UsaCk7fWNhdGNo
KGkpe3Rocm93IG5ldyBnKGkubWVzc2FnZSxpKTt9fSxwYXJzZTpmdW5jdGlvbiho
KXt0cnl7cmV0dXJuIEVTNSgnSlNPTicsJ3BhcnNlJyxmYWxzZSxoKTt9Y2F0Y2go
aSl7dGhyb3cgbmV3IGcoaS5tZXNzYWdlLGkpO319LGZsYXR0ZW46ZX0pO30sMyk7
CkZCLnByb3ZpZGUoJycse3VpOmZ1bmN0aW9uKGEsYil7YT1GQi5jb3B5KHt9LGEp
O2lmKCFhLm1ldGhvZCl7RkIubG9nKCcibWV0aG9kIiBpcyBhIHJlcXVpcmVkIHBh
cmFtZXRlciBmb3IgRkIudWkoKS4nKTtyZXR1cm4gbnVsbDt9aWYoKGEubWV0aG9k
PT0ncGVybWlzc2lvbnMucmVxdWVzdCd8fGEubWV0aG9kPT0ncGVybWlzc2lvbnMu
b2F1dGgnKSYmKGEuZGlzcGxheT09J2lmcmFtZSd8fGEuZGlzcGxheT09J2RpYWxv
ZycpKXt2YXIgYz0nc2NvcGUnIGluIGE/YS5zY29wZTpGQi5fc2NvcGU7aWYoYyl7
dmFyIGQ9Yy5zcGxpdCgvXHN8LC9nKTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2Ur
Kyl7dmFyIGY9RVM1KGRbZV0sJ3RyaW0nLHRydWUpO2lmKGYmJiFGQi5pbml0U2l0
ZXZhcnMuaWZyYW1lUGVybWlzc2lvbnNbZl0pe2EuZGlzcGxheT0ncG9wdXAnO2Jy
ZWFrO319fX12YXIgZz1GQi5VSVNlcnZlci5wcmVwYXJlQ2FsbChhLGJ8fGZ1bmN0
aW9uKCl7fSk7aWYoIWcpcmV0dXJuIG51bGw7dmFyIGg9Zy5wYXJhbXMuZGlzcGxh
eTtpZihoPT09J2RpYWxvZycpe2g9J2lmcmFtZSc7fWVsc2UgaWYoaD09PSdub25l
JyloPSdoaWRkZW4nO3ZhciBpPUZCLlVJU2VydmVyW2hdO2lmKCFpKXtGQi5sb2co
JyJkaXNwbGF5IiBtdXN0IGJlIG9uZSBvZiAicG9wdXAiLCAnKyciZGlhbG9nIiwg
ImlmcmFtZSIsICJ0b3VjaCIsICJhc3luYyIsICJoaWRkZW4iLCBvciAibm9uZSIn
KTtyZXR1cm4gbnVsbDt9aShnKTtyZXR1cm4gZy5kaWFsb2c7fX0pO0ZCLnByb3Zp
ZGUoJ1VJU2VydmVyJyx7TWV0aG9kczp7fSxfbG9hZGVkTm9kZXM6e30sX2RlZmF1
bHRDYjp7fSxfcmVzdWx0VG9rZW46JyJ4eFJFU1VMVFRPS0VOeHgiJyxfZm9yY2VI
VFRQUzpmYWxzZSxnZW5lcmljVHJhbnNmb3JtOmZ1bmN0aW9uKGEpe2lmKGEucGFy
YW1zLmRpc3BsYXk9PSdkaWFsb2cnfHxhLnBhcmFtcy5kaXNwbGF5PT0naWZyYW1l
JylGQi5jb3B5KGEucGFyYW1zLHtkaXNwbGF5OidpZnJhbWUnLGNoYW5uZWw6RkIu
VUlTZXJ2ZXIuX3hkQ2hhbm5lbEhhbmRsZXIoYS5pZCwncGFyZW50LnBhcmVudCcp
fSx0cnVlKTtyZXR1cm4gYTt9LHByZXBhcmVDYWxsOmZ1bmN0aW9uKGEsYil7dmFy
IGM9YS5tZXRob2QudG9Mb3dlckNhc2UoKSxkPUZCLmNvcHkoe30sRkIuVUlTZXJ2
ZXIuTWV0aG9kc1tjXSksZT1GQi5ndWlkKCksZj0oZC5ub0h0dHBzIT09dHJ1ZSkm
JihGQi5faHR0cHN8fChjIT09J2F1dGguc3RhdHVzJyYmYyE9J2xvZ2luLnN0YXR1
cycpKTtGQi5VSVNlcnZlci5fZm9yY2VIVFRQUz1mO0ZCLmNvcHkoYSx7YXBpX2tl
eTpGQi5fYXBpS2V5LGFwcF9pZDpGQi5fYXBpS2V5LGxvY2FsZTpGQi5fbG9jYWxl
LHNkazonam9leScsYWNjZXNzX3Rva2VuOmYmJkZCLmdldEFjY2Vzc1Rva2VuKCl8
fHVuZGVmaW5lZH0pO2EuZGlzcGxheT1GQi5VSVNlcnZlci5nZXREaXNwbGF5TW9k
ZShkLGEpO2lmKCFkLnVybClkLnVybD0nZGlhbG9nLycrYzt2YXIgZz17Y2I6Yixp
ZDplLHNpemU6ZC5zaXplfHxGQi5VSVNlcnZlci5nZXREZWZhdWx0U2l6ZSgpLHVy
bDpGQi5nZXREb21haW4oZj8naHR0cHNfd3d3Jzond3d3JykrZC51cmwsZm9yY2VI
VFRQUzpmLHBhcmFtczphLG5hbWU6YyxkaWFsb2c6bmV3IEZCLkRpYWxvZyhlKX0s
aD1kLnRyYW5zZm9ybT9kLnRyYW5zZm9ybTpGQi5VSVNlcnZlci5nZW5lcmljVHJh
bnNmb3JtO2lmKGgpe2c9aChnKTtpZighZylyZXR1cm47fXZhciBpPWQuZ2V0WGRS
ZWxhdGlvbnx8RkIuVUlTZXJ2ZXIuZ2V0WGRSZWxhdGlvbixqPWkoZy5wYXJhbXMp
O2lmKCEoZy5pZCBpbiBGQi5VSVNlcnZlci5fZGVmYXVsdENiKSYmISgnbmV4dCcg
aW4gZy5wYXJhbXMpJiYhKCdyZWRpcmVjdF91cmknIGluIGcucGFyYW1zKSlnLnBh
cmFtcy5uZXh0PUZCLlVJU2VydmVyLl94ZFJlc3VsdChnLmNiLGcuaWQsaix0cnVl
KTtpZihqPT09J3BhcmVudCcpRkIuY29weShnLnBhcmFtcyx7Y2hhbm5lbF91cmw6
RkIuVUlTZXJ2ZXIuX3hkQ2hhbm5lbEhhbmRsZXIoZSwncGFyZW50LnBhcmVudCcp
fSx0cnVlKTtnPUZCLlVJU2VydmVyLnByZXBhcmVQYXJhbXMoZyk7cmV0dXJuIGc7
fSxwcmVwYXJlUGFyYW1zOmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyYW1zLm1ldGhv
ZDtpZihhLnBhcmFtcy5kaXNwbGF5IT09J2FzeW5jJylkZWxldGUgYS5wYXJhbXMu
bWV0aG9kO2lmKEZCLlRlbXBsYXRlVUkmJkZCLlRlbXBsYXRlVUkuc3VwcG9ydHNU
ZW1wbGF0ZShiLGEpKXtGQi5UZW1wbGF0ZVVJLnVzZUNhY2hlZFVJKGIsYSk7fWVs
c2V7YS5wYXJhbXM9RkIuSlNPTi5mbGF0dGVuKGEucGFyYW1zKTt2YXIgYz1GQi5R
Uy5lbmNvZGUoYS5wYXJhbXMpO2lmKCFGQi5VQS5uYXRpdmVBcHAoKSYmRkIuVUlT
ZXJ2ZXIudXJsVG9vTG9uZ0ZvcklFKGEudXJsKyc/JytjKSl7YS5wb3N0PXRydWU7
fWVsc2UgaWYoYylhLnVybCs9Jz8nK2M7fXJldHVybiBhO30sdXJsVG9vTG9uZ0Zv
cklFOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aD4yMDAwO30sZ2V0RGlzcGxh
eU1vZGU6ZnVuY3Rpb24oYSxiKXtpZihiLmRpc3BsYXk9PT0naGlkZGVuJ3x8Yi5k
aXNwbGF5PT09J25vbmUnKXJldHVybiBiLmRpc3BsYXk7dmFyIGM9RkIucmVxdWly
ZSgnU0RLQ29uZmlnJykudXNlQXN5bmM/RkIuX2luQ2FudmFzOkZCLkNhbnZhcy5p
c1RhYklmcmFtZSgpO2lmKGMmJiFiLmRpc3BsYXkpcmV0dXJuICdhc3luYyc7aWYo
RkIuVUEubW9iaWxlKCl8fGIuZGlzcGxheT09PSd0b3VjaCcpcmV0dXJuICd0b3Vj
aCc7aWYoIUZCLmdldEFjY2Vzc1Rva2VuKCkmJmIuZGlzcGxheT09J2RpYWxvZycm
JiFhLmxvZ2dlZE91dElmcmFtZSl7RkIubG9nKCciZGlhbG9nIiBtb2RlIGNhbiBv
bmx5IGJlIHVzZWQgd2hlbiB0aGUgdXNlciBpcyBjb25uZWN0ZWQuJyk7cmV0dXJu
ICdwb3B1cCc7fWlmKGEuY29ubmVjdERpc3BsYXkmJiFGQi5faW5DYW52YXMpcmV0
dXJuIGEuY29ubmVjdERpc3BsYXk7cmV0dXJuIGIuZGlzcGxheXx8KEZCLmdldEFj
Y2Vzc1Rva2VuKCk/J2RpYWxvZyc6J3BvcHVwJyk7fSxnZXRYZFJlbGF0aW9uOmZ1
bmN0aW9uKGEpe3ZhciBiPWEuZGlzcGxheTtpZihiPT09J3BvcHVwJ3x8Yj09PSd0
b3VjaCcpcmV0dXJuICdvcGVuZXInO2lmKGI9PT0nZGlhbG9nJ3x8Yj09PSdpZnJh
bWUnfHxiPT09J2hpZGRlbid8fGI9PT0nbm9uZScpcmV0dXJuICdwYXJlbnQnO2lm
KGI9PT0nYXN5bmMnKXJldHVybiAncGFyZW50LmZyYW1lc1snK3dpbmRvdy5uYW1l
KyddJzt9LHBvcHVwOmZ1bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiB3aW5kb3cuc2Ny
ZWVuWCE9J3VuZGVmaW5lZCc/d2luZG93LnNjcmVlblg6d2luZG93LnNjcmVlbkxl
ZnQsYz10eXBlb2Ygd2luZG93LnNjcmVlblkhPSd1bmRlZmluZWQnP3dpbmRvdy5z
Y3JlZW5ZOndpbmRvdy5zY3JlZW5Ub3AsZD10eXBlb2Ygd2luZG93Lm91dGVyV2lk
dGghPSd1bmRlZmluZWQnP3dpbmRvdy5vdXRlcldpZHRoOmRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudC5jbGllbnRXaWR0aCxlPXR5cGVvZiB3aW5kb3cub3V0ZXJIZWln
aHQhPSd1bmRlZmluZWQnP3dpbmRvdy5vdXRlckhlaWdodDooZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LmNsaWVudEhlaWdodC0yMiksZj1GQi5VQS5tb2JpbGUoKT9u
dWxsOmEuc2l6ZS53aWR0aCxnPUZCLlVBLm1vYmlsZSgpP251bGw6YS5zaXplLmhl
aWdodCxoPShiPDApP3dpbmRvdy5zY3JlZW4ud2lkdGgrYjpiLGk9cGFyc2VJbnQo
aCsoKGQtZikvMiksMTApLGo9cGFyc2VJbnQoYysoKGUtZykvMi41KSwxMCksaz1b
XTtpZihmIT09bnVsbClrLnB1c2goJ3dpZHRoPScrZik7aWYoZyE9PW51bGwpay5w
dXNoKCdoZWlnaHQ9JytnKTtrLnB1c2goJ2xlZnQ9JytpKTtrLnB1c2goJ3RvcD0n
K2opO2sucHVzaCgnc2Nyb2xsYmFycz0xJyk7aWYoYS5uYW1lPT0ncGVybWlzc2lv
bnMucmVxdWVzdCd8fGEubmFtZT09J3Blcm1pc3Npb25zLm9hdXRoJylrLnB1c2go
J2xvY2F0aW9uPTEsdG9vbGJhcj0wJyk7az1rLmpvaW4oJywnKTt2YXIgbDtpZihh
LnBvc3Qpe2w9d2luZG93Lm9wZW4oJ2Fib3V0OmJsYW5rJyxhLmlkLGspO2lmKGwp
e0ZCLlVJU2VydmVyLnNldExvYWRlZE5vZGUoYSxsLCdwb3B1cCcpO0ZCLkNvbnRl
bnQuc3VibWl0VG9UYXJnZXQoe3VybDphLnVybCx0YXJnZXQ6YS5pZCxwYXJhbXM6
YS5wYXJhbXN9KTt9fWVsc2V7bD13aW5kb3cub3BlbihhLnVybCxhLmlkLGspO2lm
KGwpRkIuVUlTZXJ2ZXIuc2V0TG9hZGVkTm9kZShhLGwsJ3BvcHVwJyk7fWlmKCFs
KXJldHVybjtpZihhLmlkIGluIEZCLlVJU2VydmVyLl9kZWZhdWx0Q2IpRkIuVUlT
ZXJ2ZXIuX3BvcHVwTW9uaXRvcigpO30sc2V0TG9hZGVkTm9kZTpmdW5jdGlvbihh
LGIsYyl7aWYoYS5wYXJhbXMmJmEucGFyYW1zLmRpc3BsYXkhPSdwb3B1cCcpYi5m
YkNhbGxJRD1hLmlkO2I9e25vZGU6Yix0eXBlOmMsZmJDYWxsSUQ6YS5pZH07RkIu
VUlTZXJ2ZXIuX2xvYWRlZE5vZGVzW2EuaWRdPWI7fSxnZXRMb2FkZWROb2RlOmZ1
bmN0aW9uKGEpe3ZhciBiPXR5cGVvZiBhPT0nb2JqZWN0Jz9hLmlkOmEsYz1GQi5V
SVNlcnZlci5fbG9hZGVkTm9kZXNbYl07cmV0dXJuIGM/Yy5ub2RlOm51bGw7fSxo
aWRkZW46ZnVuY3Rpb24oYSl7YS5jbGFzc05hbWU9J0ZCX1VJX0hpZGRlbic7YS5y
b290PUZCLkNvbnRlbnQuYXBwZW5kSGlkZGVuKCcnKTtGQi5VSVNlcnZlci5faW5z
ZXJ0SWZyYW1lKGEpO30saWZyYW1lOmZ1bmN0aW9uKGEpe2EuY2xhc3NOYW1lPSdG
Ql9VSV9EaWFsb2cnO3ZhciBiPWZ1bmN0aW9uKCl7RkIuVUlTZXJ2ZXIuX3RyaWdn
ZXJEZWZhdWx0KGEuaWQpO307YS5yb290PUZCLkRpYWxvZy5jcmVhdGUoe29uQ2xv
c2U6YixjbG9zZUljb246dHJ1ZSxjbGFzc2VzOihGQi5VQS5pcGFkKCk/J2NlbnRl
cmVkJzonJyl9KTtpZighYS5oaWRlTG9hZGVyKUZCLkRpYWxvZy5zaG93TG9hZGVy
KGIsYS5zaXplLndpZHRoKTtGQi5Eb20uYWRkQ3NzKGEucm9vdCwnZmJfZGlhbG9n
X2lmcmFtZScpO0ZCLlVJU2VydmVyLl9pbnNlcnRJZnJhbWUoYSk7fSx0b3VjaDpm
dW5jdGlvbihhKXtpZihhLnBhcmFtcyYmYS5wYXJhbXMuaW5faWZyYW1lKXtpZihh
LnVpX2NyZWF0ZWQpe0ZCLkRpYWxvZy5zaG93TG9hZGVyKGZ1bmN0aW9uKCl7RkIu
VUlTZXJ2ZXIuX3RyaWdnZXJEZWZhdWx0KGEuaWQpO30sMCk7fWVsc2UgRkIuVUlT
ZXJ2ZXIuaWZyYW1lKGEpO31lbHNlIGlmKEZCLlVBLm5hdGl2ZUFwcCgpJiYhYS51
aV9jcmVhdGVkKXthLmZyYW1lPWEuaWQ7RkIuTmF0aXZlLm9ucmVhZHkoZnVuY3Rp
b24oKXtGQi5VSVNlcnZlci5zZXRMb2FkZWROb2RlKGEsRkIuTmF0aXZlLm9wZW4o
YS51cmwrJyNjYj0nK2EuZnJhbWVOYW1lKSwnbmF0aXZlJyk7fSk7RkIuVUlTZXJ2
ZXIuX3BvcHVwTW9uaXRvcigpO31lbHNlIGlmKCFhLnVpX2NyZWF0ZWQpRkIuVUlT
ZXJ2ZXIucG9wdXAoYSk7fSxhc3luYzpmdW5jdGlvbihhKXtpZihGQi5pbml0U2l0
ZXZhcnMucnBjKXtGQi5YRC5ycGMucmVtb3RlLnNob3dEaWFsb2coYS5wYXJhbXMs
ZnVuY3Rpb24oYil7YS5jYihiLnJlc3VsdCk7fSk7fWVsc2V7YS5mcmFtZT13aW5k
b3cubmFtZTtkZWxldGUgYS51cmw7ZGVsZXRlIGEuc2l6ZTtGQi5BcmJpdGVyLmlu
Zm9ybSgnc2hvd0RpYWxvZycsYSk7fX0sZ2V0RGVmYXVsdFNpemU6ZnVuY3Rpb24o
KXtpZihGQi5VQS5tb2JpbGUoKSlpZihGQi5VQS5pcGFkKCkpe3JldHVybiB7d2lk
dGg6NTAwLGhlaWdodDo1OTB9O31lbHNlIGlmKEZCLlVBLmFuZHJvaWQoKSl7cmV0
dXJuIHt3aWR0aDpzY3JlZW4uYXZhaWxXaWR0aCxoZWlnaHQ6c2NyZWVuLmF2YWls
SGVpZ2h0fTt9ZWxzZXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aCxiPXdpbmRvdy5p
bm5lckhlaWdodCxjPWEvYj4xLjI7cmV0dXJuIHt3aWR0aDphLGhlaWdodDpNYXRo
Lm1heChiLChjP3NjcmVlbi53aWR0aDpzY3JlZW4uaGVpZ2h0KSl9O31yZXR1cm4g
e3dpZHRoOjU3NSxoZWlnaHQ6MjQwfTt9LF9pbnNlcnRJZnJhbWU6ZnVuY3Rpb24o
YSl7RkIuVUlTZXJ2ZXIuX2xvYWRlZE5vZGVzW2EuaWRdPWZhbHNlO3ZhciBiPWZ1
bmN0aW9uKGMpe2lmKGEuaWQgaW4gRkIuVUlTZXJ2ZXIuX2xvYWRlZE5vZGVzKUZC
LlVJU2VydmVyLnNldExvYWRlZE5vZGUoYSxjLCdpZnJhbWUnKTt9O2lmKGEucG9z
dCl7RkIuQ29udGVudC5pbnNlcnRJZnJhbWUoe3VybDonYWJvdXQ6YmxhbmsnLHJv
b3Q6YS5yb290LGNsYXNzTmFtZTphLmNsYXNzTmFtZSx3aWR0aDphLnNpemUud2lk
dGgsaGVpZ2h0OmEuc2l6ZS5oZWlnaHQsaWQ6YS5pZCxvbkluc2VydDpiLG9ubG9h
ZDpmdW5jdGlvbihjKXtGQi5Db250ZW50LnN1Ym1pdFRvVGFyZ2V0KHt1cmw6YS51
cmwsdGFyZ2V0OmMubmFtZSxwYXJhbXM6YS5wYXJhbXN9KTt9fSk7fWVsc2UgRkIu
Q29udGVudC5pbnNlcnRJZnJhbWUoe3VybDphLnVybCxyb290OmEucm9vdCxjbGFz
c05hbWU6YS5jbGFzc05hbWUsd2lkdGg6YS5zaXplLndpZHRoLGhlaWdodDphLnNp
emUuaGVpZ2h0LGlkOmEuaWQsbmFtZTphLmZyYW1lTmFtZSxvbkluc2VydDpifSk7
fSxfaGFuZGxlUmVzaXplTWVzc2FnZTpmdW5jdGlvbihhLGIpe3ZhciBjPUZCLlVJ
U2VydmVyLmdldExvYWRlZE5vZGUoYSk7aWYoIWMpcmV0dXJuO2lmKGIuaGVpZ2h0
KWMuc3R5bGUuaGVpZ2h0PWIuaGVpZ2h0KydweCc7aWYoYi53aWR0aCljLnN0eWxl
LndpZHRoPWIud2lkdGgrJ3B4JztGQi5BcmJpdGVyLmluZm9ybSgncmVzaXplLmFj
aycsYnx8e30sJ3BhcmVudC5mcmFtZXNbJytjLm5hbWUrJ10nKTtpZighRkIuRGlh
bG9nLmlzQWN0aXZlKGMpKUZCLkRpYWxvZy5zaG93KGMpO30sX3RyaWdnZXJEZWZh
dWx0OmZ1bmN0aW9uKGEpe0ZCLlVJU2VydmVyLl94ZFJlY3Yoe2ZyYW1lOmF9LEZC
LlVJU2VydmVyLl9kZWZhdWx0Q2JbYV18fGZ1bmN0aW9uKCl7fSk7fSxfcG9wdXBN
b25pdG9yOmZ1bmN0aW9uKCl7dmFyIGE7Zm9yKHZhciBiIGluIEZCLlVJU2VydmVy
Ll9sb2FkZWROb2RlcylpZihGQi5VSVNlcnZlci5fbG9hZGVkTm9kZXMuaGFzT3du
UHJvcGVydHkoYikmJmIgaW4gRkIuVUlTZXJ2ZXIuX2RlZmF1bHRDYil7dmFyIGM9
RkIuVUlTZXJ2ZXIuX2xvYWRlZE5vZGVzW2JdO2lmKGMudHlwZSE9J3BvcHVwJyYm
Yy50eXBlIT0nbmF0aXZlJyljb250aW51ZTt3aW49Yy5ub2RlO3RyeXtpZih3aW4u
Y2xvc2VkKXtGQi5VSVNlcnZlci5fdHJpZ2dlckRlZmF1bHQoYik7fWVsc2UgYT10
cnVlO31jYXRjaChkKXt9fWlmKGEmJiFGQi5VSVNlcnZlci5fcG9wdXBJbnRlcnZh
bCl7RkIuVUlTZXJ2ZXIuX3BvcHVwSW50ZXJ2YWw9d2luZG93LnNldEludGVydmFs
KEZCLlVJU2VydmVyLl9wb3B1cE1vbml0b3IsMTAwKTt9ZWxzZSBpZighYSYmRkIu
VUlTZXJ2ZXIuX3BvcHVwSW50ZXJ2YWwpe3dpbmRvdy5jbGVhckludGVydmFsKEZC
LlVJU2VydmVyLl9wb3B1cEludGVydmFsKTtGQi5VSVNlcnZlci5fcG9wdXBJbnRl
cnZhbD1udWxsO319LF94ZENoYW5uZWxIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFy
IGM9KEZCLlVJU2VydmVyLl9mb3JjZUhUVFBTJiZGQi5VQS5pZSgpIT09Nyk7cmV0
dXJuIEZCLlhELmhhbmRsZXIoZnVuY3Rpb24oZCl7dmFyIGU9RkIuVUlTZXJ2ZXIu
Z2V0TG9hZGVkTm9kZShhKTtpZighZSlyZXR1cm47aWYoZC50eXBlPT0ncmVzaXpl
Jyl7RkIuVUlTZXJ2ZXIuX2hhbmRsZVJlc2l6ZU1lc3NhZ2UoYSxkKTt9ZWxzZSBp
ZihkLnR5cGU9PSdoaWRlJyl7RkIuRGlhbG9nLmhpZGUoZSk7fWVsc2UgaWYoZC50
eXBlPT0ncmVuZGVyZWQnKXt2YXIgZj1GQi5EaWFsb2cuX2ZpbmRSb290KGUpO0ZC
LkRpYWxvZy5zaG93KGYpO31lbHNlIGlmKGQudHlwZT09J2ZpcmVldmVudCcpRkIu
RXZlbnQuZmlyZShkLmV2ZW50KTt9LGIsdHJ1ZSxudWxsLGMpO30sX3hkTmV4dEhh
bmRsZXI6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoZClGQi5VSVNlcnZlci5fZGVmYXVs
dENiW2JdPWE7cmV0dXJuIEZCLlhELmhhbmRsZXIoZnVuY3Rpb24oZSl7RkIuVUlT
ZXJ2ZXIuX3hkUmVjdihlLGEpO30sYykrJyZmcmFtZT0nK2I7fSxfeGRSZWN2OmZ1
bmN0aW9uKGEsYil7dmFyIGM9RkIuVUlTZXJ2ZXIuZ2V0TG9hZGVkTm9kZShhLmZy
YW1lKTtpZihjKXt0cnl7aWYoRkIuRG9tLmNvbnRhaW5zQ3NzKGMsJ0ZCX1VJX0hp
ZGRlbicpKXt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2MucGFyZW50Tm9k
ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGMucGFyZW50Tm9kZSk7fSwzMDAwKTt9
ZWxzZSBpZihGQi5Eb20uY29udGFpbnNDc3MoYywnRkJfVUlfRGlhbG9nJykpe0ZC
LkRpYWxvZy5yZW1vdmUoYyk7aWYoRkIuVGVtcGxhdGVVSSYmRkIuVUEubW9iaWxl
KCkpRkIuVGVtcGxhdGVVSS5wb3B1bGF0ZUNhY2hlKCk7fX1jYXRjaChkKXt9dHJ5
e2lmKGMuY2xvc2Upe2MuY2xvc2UoKTtGQi5VSVNlcnZlci5fcG9wdXBDb3VudC0t
O319Y2F0Y2goZSl7fX1kZWxldGUgRkIuVUlTZXJ2ZXIuX2xvYWRlZE5vZGVzW2Eu
ZnJhbWVdO2RlbGV0ZSBGQi5VSVNlcnZlci5fZGVmYXVsdENiW2EuZnJhbWVdO2Io
YSk7fSxfeGRSZXN1bHQ6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIChGQi5VSVNl
cnZlci5feGROZXh0SGFuZGxlcihmdW5jdGlvbihlKXthJiZhKGUucmVzdWx0JiZl
LnJlc3VsdCE9RkIuVUlTZXJ2ZXIuX3Jlc3VsdFRva2VuJiZFUzUoJ0pTT04nLCdw
YXJzZScsZmFsc2UsZS5yZXN1bHQpKTt9LGIsYyxkKSsnJnJlc3VsdD0nK2VuY29k
ZVVSSUNvbXBvbmVudChGQi5VSVNlcnZlci5fcmVzdWx0VG9rZW4pKTt9fSk7Cl9f
ZCgiQmFzZTY0IixbXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9J0FCQ0RF
RkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXow
MTIzNDU2Nzg5Ky8nO2Z1bmN0aW9uIGgobCl7bD0obC5jaGFyQ29kZUF0KDApPDwx
Nil8KGwuY2hhckNvZGVBdCgxKTw8OCl8bC5jaGFyQ29kZUF0KDIpO3JldHVybiBT
dHJpbmcuZnJvbUNoYXJDb2RlKGcuY2hhckNvZGVBdChsPj4+MTgpLGcuY2hhckNv
ZGVBdCgobD4+PjEyKSY2MyksZy5jaGFyQ29kZUF0KChsPj4+NikmNjMpLGcuY2hh
ckNvZGVBdChsJjYzKSk7fXZhciBpPSc+X19fPzQ1Njc4OTo7PD1fX19fX19fJysn
XDBcMVwyXDNcNFw1XDZcN1xiXHRcblwxM1xmXHJcMTZcMTdcMjBcMjFcMjJcMjNc
MjRcMjVcMjZcMjdcMzBcMzEnKydfX19fX19cMzJcMzNcMzRcMzVcMzZcMzcgISIj
JCUmXCcoKSorLC0uLzAxMjMnO2Z1bmN0aW9uIGoobCl7bD0oaS5jaGFyQ29kZUF0
KGwuY2hhckNvZGVBdCgwKS00Myk8PDE4KXwoaS5jaGFyQ29kZUF0KGwuY2hhckNv
ZGVBdCgxKS00Myk8PDEyKXwoaS5jaGFyQ29kZUF0KGwuY2hhckNvZGVBdCgyKS00
Myk8PDYpfGkuY2hhckNvZGVBdChsLmNoYXJDb2RlQXQoMyktNDMpO3JldHVybiBT
dHJpbmcuZnJvbUNoYXJDb2RlKGw+Pj4xNiwobD4+PjgpJjI1NSxsJjI1NSk7fXZh
ciBrPXtlbmNvZGU6ZnVuY3Rpb24obCl7bD11bmVzY2FwZShlbmNvZGVVUkkobCkp
O3ZhciBtPShsLmxlbmd0aCsyKSUzO2w9KGwrJ1wwXDAnLnNsaWNlKG0pKS5yZXBs
YWNlKC9bXHNcU117M30vZyxoKTtyZXR1cm4gbC5zbGljZSgwLGwubGVuZ3RoK20t
MikrJz09Jy5zbGljZShtKTt9LGRlY29kZTpmdW5jdGlvbihsKXtsPWwucmVwbGFj
ZSgvW15BLVphLXowLTkrXC9dL2csJycpO3ZhciBtPShsLmxlbmd0aCszKSYzO2w9
KGwrJ0FBQScuc2xpY2UobSkpLnJlcGxhY2UoLy4uLi4vZyxqKTtsPWwuc2xpY2Uo
MCxsLmxlbmd0aCttLTMpO3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVz
Y2FwZShsKSk7fWNhdGNoKG4pe3Rocm93IG5ldyBFcnJvcignTm90IHZhbGlkIFVU
Ri04Jyk7fX0sZW5jb2RlT2JqZWN0OmZ1bmN0aW9uKGwpe3JldHVybiBrLmVuY29k
ZShFUzUoJ0pTT04nLCdzdHJpbmdpZnknLGZhbHNlLGwpKTt9LGRlY29kZU9iamVj
dDpmdW5jdGlvbihsKXtyZXR1cm4gRVM1KCdKU09OJywncGFyc2UnLGZhbHNlLGsu
ZGVjb2RlKGwpKTt9LGVuY29kZU51bXM6ZnVuY3Rpb24obCl7cmV0dXJuIFN0cmlu
Zy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLEVTNShsLCdtYXAnLHRydWUsZnVu
Y3Rpb24obSl7cmV0dXJuIGcuY2hhckNvZGVBdCgobXwtKG0+NjMpKSYtKG0+MCkm
NjMpO30pKTt9fTtlLmV4cG9ydHM9azt9KTsKX19kKCJzZGsuU2lnbmVkUmVxdWVz
dCIsWyJCYXNlNjQiXSxmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9YignQmFz
ZTY0Jyk7ZnVuY3Rpb24gaChqKXtpZighailyZXR1cm4gbnVsbDt2YXIgaz1qLnNw
bGl0KCcuJywyKVsxXS5yZXBsYWNlKC9cLS9nLCcrJykucmVwbGFjZSgvXF8vZywn
LycpO3JldHVybiBnLmRlY29kZU9iamVjdChrKTt9dmFyIGk9e3BhcnNlOmh9O2Uu
ZXhwb3J0cz1pO30pOwpfX2QoImxlZ2FjeTpmYi5hdXRoIixbIkZCIiwic2RrLlJ1
bnRpbWUiLCJzZGsuU2lnbmVkUmVxdWVzdCIsIlVzZXJBZ2VudCIsInNkay5YRCIs
IkxvZyIsIlVybE1hcCIsImNvcHlQcm9wZXJ0aWVzIiwiZ3VpZCJdLGZ1bmN0aW9u
KGEsYixjLGQpe3ZhciBlPWIoJ0ZCJyksZj1iKCdzZGsuUnVudGltZScpLGc9Yign
c2RrLlNpZ25lZFJlcXVlc3QnKSxoPWIoJ1VzZXJBZ2VudCcpLGk9Yignc2RrLlhE
Jyksaj1iKCdMb2cnKSxrPWIoJ1VybE1hcCcpLGw9YignY29weVByb3BlcnRpZXMn
KSxtPWIoJ2d1aWQnKTtlLnByb3ZpZGUoJycse2dldExvZ2luU3RhdHVzOmZ1bmN0
aW9uKG4sbyl7aWYoIWYuZ2V0Q2xpZW50SUQoKSl7ai53YXJuKCdGQi5nZXRMb2dp
blN0YXR1cygpIGNhbGxlZCBiZWZvcmUgY2FsbGluZyBGQi5pbml0KCkuJyk7cmV0
dXJuO31pZihuKWlmKCFvJiZlLkF1dGguX2xvYWRTdGF0ZT09J2xvYWRlZCcpe24o
e3N0YXR1czpmLmdldExvZ2luU3RhdHVzKCksYXV0aFJlc3BvbnNlOmUuX2F1dGhS
ZXNwb25zZX0pO3JldHVybjt9ZWxzZSBlLkV2ZW50LnN1YnNjcmliZSgnRkIubG9n
aW5TdGF0dXMnLG4pO2lmKCFvJiZlLkF1dGguX2xvYWRTdGF0ZT09J2xvYWRpbmcn
KXJldHVybjtlLkF1dGguX2xvYWRTdGF0ZT0nbG9hZGluZyc7dmFyIHA9ZnVuY3Rp
b24ocSl7ZS5BdXRoLl9sb2FkU3RhdGU9J2xvYWRlZCc7ZS5FdmVudC5maXJlKCdG
Qi5sb2dpblN0YXR1cycscSk7ZS5FdmVudC5jbGVhcignRkIubG9naW5TdGF0dXMn
KTt9O2UuQXV0aC5mZXRjaExvZ2luU3RhdHVzKHApO30sZ2V0QXV0aFJlc3BvbnNl
OmZ1bmN0aW9uKCl7cmV0dXJuIGUuX2F1dGhSZXNwb25zZTt9LGdldEFjY2Vzc1Rv
a2VuOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZ2V0QWNjZXNzVG9rZW4oKXx8bnVsbDt9
LGdldFVzZXJJRDpmdW5jdGlvbigpe3JldHVybiBmLmdldFVzZXJJRCgpO30sbG9n
aW46ZnVuY3Rpb24obixvKXtpZihvJiZvLnBlcm1zJiYhby5zY29wZSl7by5zY29w
ZT1vLnBlcm1zO2RlbGV0ZSBvLnBlcm1zO2oud2FybignT0F1dGgyIHNwZWNpZmlj
YXRpb24gc3RhdGVzIHRoYXQgXCdwZXJtc1wnICcrJ3Nob3VsZCBub3cgYmUgY2Fs
bGVkIFwnc2NvcGVcJy4gIFBsZWFzZSB1cGRhdGUuJyk7fWUudWkobCh7bWV0aG9k
OidwZXJtaXNzaW9ucy5vYXV0aCcsZGlzcGxheTplLnJlcXVpcmUoJ1NES0NvbmZp
ZycpLnVzZUFzeW5jJiZlLl9pbkNhbnZhcz8nYXN5bmMnOidwb3B1cCcsZG9tYWlu
OmxvY2F0aW9uLmhvc3RuYW1lfSxvfHx7fSksbik7fSxsb2dvdXQ6ZnVuY3Rpb24o
bil7ZS51aSh7bWV0aG9kOidhdXRoLmxvZ291dCcsZGlzcGxheTonaGlkZGVuJ30s
bik7fX0pO2UucHJvdmlkZSgnQXV0aCcse19jYWxsYmFja3M6W10sX3hkU3RvcmVQ
YXRoOid4ZF9sb2NhbHN0b3JhZ2UvJyxmZXRjaExvZ2luU3RhdHVzOmZ1bmN0aW9u
KG4pe2lmKGgubW9iaWxlKCkmJndpbmRvdy5wb3N0TWVzc2FnZSYmd2luZG93Lmxv
Y2FsU3RvcmFnZSl7ZS5BdXRoLnN0YXRpY0F1dGhDaGVjayhuKTt9ZWxzZSBlLnVp
KHttZXRob2Q6J2xvZ2luLnN0YXR1cycsZGlzcGxheTonbm9uZScsZG9tYWluOmxv
Y2F0aW9uLmhvc3RuYW1lfSxuKTt9LHN0YXRpY0F1dGhDaGVjazpmdW5jdGlvbihu
KXt2YXIgbz1rLnJlc29sdmUoJ2NkbicsdHJ1ZSk7ZS5Db250ZW50Lmluc2VydElm
cmFtZSh7cm9vdDplLkNvbnRlbnQuYXBwZW5kSGlkZGVuKCcnKSxjbGFzc05hbWU6
J0ZCX1VJX0hpZGRlbicsdXJsOm8rJy8nK2UuQXV0aC5feGRTdG9yZVBhdGgsb25s
b2FkOmZ1bmN0aW9uKHApe3ZhciBxPWZyYW1lc1twLm5hbWVdLHI9bSgpLHM9ZmFs
c2UsdD1mdW5jdGlvbih1KXtpZighcyl7cz10cnVlO2UuQXV0aC5fc3RhdGljQXV0
aEhhbmRsZXIobix1KTt9fTtpLmhhbmRsZXIodCwncGFyZW50Jyx0cnVlLHIpO3Nl
dFRpbWVvdXQodCw1MDApO3EucG9zdE1lc3NhZ2UoRVM1KCdKU09OJywnc3RyaW5n
aWZ5JyxmYWxzZSx7bWV0aG9kOidnZXRJdGVtJyxwYXJhbXM6WydMb2dpbkluZm9f
JytmLmdldENsaWVudElEKCksdHJ1ZV0scmV0dXJuQ2I6cn0pLG8pO319KTt9LF9z
dGF0aWNBdXRoSGFuZGxlcjpmdW5jdGlvbihuLG8pe2lmKG8mJm8uZGF0YSYmby5k
YXRhLnN0YXR1cyYmby5kYXRhLnN0YXR1cz09J2Nvbm5lY3RlZCcpe3ZhciBwLHE9
by5kYXRhLnN0YXR1cztpZihvLmRhdGEuaHR0cHM9PTEpZS5faHR0cHM9dHJ1ZTt2
YXIgcj1vLmRhdGEuYXV0aFJlc3BvbnNlfHxudWxsO3A9ZS5BdXRoLnNldEF1dGhS
ZXNwb25zZShyLHEpO24mJm4ocCk7fWUudWkoe21ldGhvZDonbG9naW4uc3RhdHVz
JyxkaXNwbGF5Oidub25lJ30sbik7fSxzZXRBdXRoUmVzcG9uc2U6ZnVuY3Rpb24o
bixvKXt2YXIgcD1mLmdldFVzZXJJRCgpLHE9MDtpZihuKWlmKG4udXNlcklEKXtx
PW4udXNlcklEO31lbHNlIGlmKG4uc2lnbmVkUmVxdWVzdCl7dmFyIHI9Zy5wYXJz
ZShuLnNpZ25lZFJlcXVlc3QpO2lmKHImJnIudXNlcl9pZClxPXIudXNlcl9pZDt9
dmFyIHM9IXAmJm4sdD1wJiYhbix1PW4mJnAhPXEsdj1uIT1lLl9hdXRoUmVzcG9u
c2Usdz1vIT1mLmdldExvZ2luU3RhdHVzKCkseD17YXV0aFJlc3BvbnNlOm4sc3Rh
dHVzOm99O2Yuc2V0TG9naW5TdGF0dXMobyk7Zi5zZXRBY2Nlc3NUb2tlbihuJiZu
LmFjY2Vzc1Rva2VufHxudWxsKTtmLnNldFVzZXJJRChxKTtlLl9hdXRoUmVzcG9u
c2U9bjtpZih0fHx1KWUuRXZlbnQuZmlyZSgnYXV0aC5sb2dvdXQnLHgpO2lmKHN8
fHUpZS5FdmVudC5maXJlKCdhdXRoLmxvZ2luJyx4KTtpZih2KWUuRXZlbnQuZmly
ZSgnYXV0aC5hdXRoUmVzcG9uc2VDaGFuZ2UnLHgpO2lmKHcpZS5FdmVudC5maXJl
KCdhdXRoLnN0YXR1c0NoYW5nZScseCk7aWYoZS5BdXRoLl9yZWZyZXNoVGltZXIp
e2NsZWFyVGltZW91dChlLkF1dGguX3JlZnJlc2hUaW1lcik7ZGVsZXRlIGUuQXV0
aC5fcmVmcmVzaFRpbWVyO31pZihlLkF1dGguX2xvYWRTdGF0ZSYmbillLkF1dGgu
X3JlZnJlc2hUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5nZXRMb2dpblN0
YXR1cyhudWxsLHRydWUpO30sMTIwMDAwMCk7cmV0dXJuIHg7fSxfZ2V0Q29udGV4
dFR5cGU6ZnVuY3Rpb24oKXtpZihoLm5hdGl2ZUFwcCgpKXJldHVybiAzO2lmKGgu
bW9iaWxlKCkpcmV0dXJuIDI7aWYoZS5faW5DYW52YXMpcmV0dXJuIDU7cmV0dXJu
IDE7fSx4ZEhhbmRsZXI6ZnVuY3Rpb24obixvLHAscSxyKXtyZXR1cm4gZS5VSVNl
cnZlci5feGROZXh0SGFuZGxlcihlLkF1dGgueGRSZXNwb25zZVdyYXBwZXIobixx
LHIpLG8scCx0cnVlKTt9LHhkUmVzcG9uc2VXcmFwcGVyOmZ1bmN0aW9uKG4sbyxw
KXtyZXR1cm4gZnVuY3Rpb24ocSl7aWYocSYmcS5hY2Nlc3NfdG9rZW4pe3ZhciBy
PWcucGFyc2UocS5zaWduZWRfcmVxdWVzdCk7bz17YWNjZXNzVG9rZW46cS5hY2Nl
c3NfdG9rZW4sdXNlcklEOnIudXNlcl9pZCxleHBpcmVzSW46cGFyc2VJbnQocS5l
eHBpcmVzX2luLDEwKSxzaWduZWRSZXF1ZXN0OnEuc2lnbmVkX3JlcXVlc3R9O2lm
KGUuQ29va2llLmdldEVuYWJsZWQoKSl7dmFyIHM9by5leHBpcmVzSW49PT0wPzA6
KG5ldyBEYXRlKCkpLmdldFRpbWUoKStvLmV4cGlyZXNJbioxMDAwLHQ9ZS5Db29r
aWUuX2RvbWFpbjtpZighdCYmcS5iYXNlX2RvbWFpbil0PScuJytxLmJhc2VfZG9t
YWluO2UuQ29va2llLnNldFNpZ25lZFJlcXVlc3RDb29raWUocS5zaWduZWRfcmVx
dWVzdCxzLHQpO31lLkF1dGguc2V0QXV0aFJlc3BvbnNlKG8sJ2Nvbm5lY3RlZCcp
O31lbHNlIGlmKCFlLl9hdXRoUmVzcG9uc2UmJm8pe2UuQXV0aC5zZXRBdXRoUmVz
cG9uc2UobywnY29ubmVjdGVkJyk7fWVsc2UgaWYocD09PSdsb2dvdXQnfHxwPT09
J2xvZ2luX3N0YXR1cycpe3ZhciB1O2lmKHEuZXJyb3ImJnEuZXJyb3I9PT0nbm90
X2F1dGhvcml6ZWQnKXt1PSdub3RfYXV0aG9yaXplZCc7fWVsc2UgdT0ndW5rbm93
bic7ZS5BdXRoLnNldEF1dGhSZXNwb25zZShudWxsLHUpO2lmKGUuQ29va2llLmdl
dEVuYWJsZWQoKSllLkNvb2tpZS5jbGVhclNpZ25lZFJlcXVlc3RDb29raWUoKTt9
aWYocSYmcS5odHRwcz09MSYmIWUuX2h0dHBzKWUuX2h0dHBzPXRydWU7dmFyIHY9
e2F1dGhSZXNwb25zZTplLl9hdXRoUmVzcG9uc2Usc3RhdHVzOmYuZ2V0TG9naW5T
dGF0dXMoKX07biYmbih2KTt9O30scGFyc2VTaWduZWRSZXF1ZXN0OmcucGFyc2V9
KTt9LDMpOwpfX2QoInNkay5DYW52YXMuUHJlZmV0Y2hlciIsWyJzZGsuYXBpIiwi
Y3JlYXRlQXJyYXlGcm9tIiwic2RrLlJ1bnRpbWUiLCJDYW52YXNQcmVmZXRjaGVy
Q29uZmlnIl0sZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWIoJ3Nkay5hcGkn
KSxoPWIoJ2NyZWF0ZUFycmF5RnJvbScpLGk9YygnQ2FudmFzUHJlZmV0Y2hlckNv
bmZpZycpLGo9Yignc2RrLlJ1bnRpbWUnKSxrPXtBVVRPTUFUSUM6MCxNQU5VQUw6
MX0sbD1pLnNhbXBsZVJhdGUsbT1pLmJsYWNrbGlzdCxuPWsuQVVUT01BVElDLG89
W107ZnVuY3Rpb24gcCgpe3ZhciB1PXtvYmplY3Q6J2RhdGEnLGxpbms6J2hyZWYn
LHNjcmlwdDonc3JjJ307aWYobj09ay5BVVRPTUFUSUMpRVM1KEVTNSgnT2JqZWN0
Jywna2V5cycsZmFsc2UsdSksJ2ZvckVhY2gnLHRydWUsZnVuY3Rpb24odil7dmFy
IHc9dVt2XTtFUzUoaChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh2KSks
J2ZvckVhY2gnLHRydWUsZnVuY3Rpb24oeCl7aWYoeFt3XSlvLnB1c2goeFt3XSk7
fSk7fSk7aWYoby5sZW5ndGg9PT0wKXJldHVybjtnKGouZ2V0Q2xpZW50SUQoKSsn
L3N0YXRpY3Jlc291cmNlcycsJ3Bvc3QnLHt1cmxzOkVTNSgnSlNPTicsJ3N0cmlu
Z2lmeScsZmFsc2UsbyksaXNfaHR0cHM6bG9jYXRpb24ucHJvdG9jb2w9PT0naHR0
cHM6J30pO289W107fWZ1bmN0aW9uIHEoKXtpZighai5pc0Vudmlyb25tZW50KGou
RU5WSVJPTk1FTlRTLkNBTlZBUyl8fCFqLmdldENsaWVudElEKCl8fCFsKXJldHVy
bjtpZihNYXRoLnJhbmRvbSgpPjEvbHx8bT09JyonfHx+RVM1KG0sJ2luZGV4T2Yn
LHRydWUsai5nZXRDbGllbnRJRCgpKSlyZXR1cm47c2V0VGltZW91dChwLDMwMDAw
KTt9ZnVuY3Rpb24gcih1KXtuPXU7fWZ1bmN0aW9uIHModSl7by5wdXNoKHUpO312
YXIgdD17Q09MTEVDVF9BVVRPTUFUSUM6ay5BVVRPTUFUSUMsQ09MTEVDVF9NQU5V
QUw6ay5NQU5VQUwsYWRkU3RhdGljUmVzb3VyY2U6cyxzZXRDb2xsZWN0aW9uTW9k
ZTpyLF9tYXliZVNhbXBsZTpxfTtlLmV4cG9ydHM9dDt9KTsKX19kKCJsZWdhY3k6
ZmIuY2FudmFzLnByZWZldGNoZXIiLFsiRkIiLCJzZGsuQ2FudmFzLlByZWZldGNo
ZXIiXSxmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iKCdGQicpLGY9Yignc2RrLkNh
bnZhcy5QcmVmZXRjaGVyJyk7ZS5wcm92aWRlKCdDYW52YXMuUHJlZmV0Y2hlcics
Zik7fSwzKTsKRkIucHJvdmlkZSgnVUlTZXJ2ZXIuTW9iaWxlSWZyYW1hYmxlTWV0
aG9kJyx7dHJhbnNmb3JtOmZ1bmN0aW9uKGEpe2lmKGEucGFyYW1zLmRpc3BsYXk9
PT0ndG91Y2gnJiZhLnBhcmFtcy5hY2Nlc3NfdG9rZW4mJndpbmRvdy5wb3N0TWVz
c2FnZSl7YS5wYXJhbXMuY2hhbm5lbD1GQi5VSVNlcnZlci5feGRDaGFubmVsSGFu
ZGxlcihhLmlkLCdwYXJlbnQnKTtpZighRkIuVUEubmF0aXZlQXBwKCkpYS5wYXJh
bXMuaW5faWZyYW1lPTE7cmV0dXJuIGE7fWVsc2UgcmV0dXJuIEZCLlVJU2VydmVy
LmdlbmVyaWNUcmFuc2Zvcm0oYSk7fSxnZXRYZFJlbGF0aW9uOmZ1bmN0aW9uKGEp
e3ZhciBiPWEuZGlzcGxheTtpZihiPT09J3RvdWNoJyYmd2luZG93LnBvc3RNZXNz
YWdlJiZhLmluX2lmcmFtZSlyZXR1cm4gJ3BhcmVudCc7cmV0dXJuIEZCLlVJU2Vy
dmVyLmdldFhkUmVsYXRpb24oYSk7fX0pO0ZCLnByb3ZpZGUoJ1VJU2VydmVyLk1l
dGhvZHMnLHsnc3RyZWFtLnNoYXJlJzp7c2l6ZTp7d2lkdGg6NjcwLGhlaWdodDoz
NDB9LHVybDonc2hhcmVyLnBocCcsdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe2lmKCFh
LnBhcmFtcy51KWEucGFyYW1zLnU9d2luZG93LmxvY2F0aW9uLnRvU3RyaW5nKCk7
YS5wYXJhbXMuZGlzcGxheT0ncG9wdXAnO3JldHVybiBhO319LCdmYm1sLmRpYWxv
Zyc6e3NpemU6e3dpZHRoOjU3NSxoZWlnaHQ6MzAwfSx1cmw6J3JlbmRlcl9mYm1s
LnBocCcsbG9nZ2VkT3V0SWZyYW1lOnRydWUsdHJhbnNmb3JtOmZ1bmN0aW9uKGEp
e3JldHVybiBhO319LCdhdXRoLmxvZ2ludG9mYWNlYm9vayc6e3NpemU6e3dpZHRo
OjUzMCxoZWlnaHQ6Mjg3fSx1cmw6J2xvZ2luLnBocCcsdHJhbnNmb3JtOmZ1bmN0
aW9uKGEpe2EucGFyYW1zLnNraXBfYXBpX2xvZ2luPTE7dmFyIGI9RkIuVUlTZXJ2
ZXIuZ2V0WGRSZWxhdGlvbihhLnBhcmFtcyksYz1GQi5VSVNlcnZlci5feGRSZXN1
bHQoYS5jYixhLmlkLGIsdHJ1ZSk7YS5wYXJhbXMubmV4dD1GQi5nZXREb21haW4o
RkIuX2h0dHBzPydodHRwc193d3cnOid3d3cnKSsibG9naW4ucGhwPyIrRkIuUVMu
ZW5jb2RlKHthcGlfa2V5OkZCLl9hcGlLZXksbmV4dDpjLHNraXBfYXBpX2xvZ2lu
OjF9KTtyZXR1cm4gYTt9fSxhcHByZXF1ZXN0czp7dHJhbnNmb3JtOmZ1bmN0aW9u
KGEpe2E9RkIuVUlTZXJ2ZXIuTW9iaWxlSWZyYW1hYmxlTWV0aG9kLnRyYW5zZm9y
bShhKTthLnBhcmFtcy5mcmljdGlvbmxlc3M9RkIuRnJpY3Rpb25sZXNzJiZGQi5G
cmljdGlvbmxlc3MuX3VzZUZyaWN0aW9ubGVzcztpZihhLnBhcmFtcy5mcmljdGlv
bmxlc3Mpe2lmKEZCLkZyaWN0aW9ubGVzcy5pc0FsbG93ZWQoYS5wYXJhbXMudG8p
KXthLnBhcmFtcy5kaXNwbGF5PSdpZnJhbWUnO2EucGFyYW1zLmluX2lmcmFtZT10
cnVlO2EuaGlkZUxvYWRlcj10cnVlO31hLmNiPUZCLkZyaWN0aW9ubGVzcy5fcHJv
Y2Vzc1JlcXVlc3RSZXNwb25zZShhLmNiLGEuaGlkZUxvYWRlcik7fXJldHVybiBh
O30sZ2V0WGRSZWxhdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4gRkIuVUlTZXJ2ZXIu
TW9iaWxlSWZyYW1hYmxlTWV0aG9kLmdldFhkUmVsYXRpb24oYSk7fX0sZmVlZDpG
Qi5VSVNlcnZlci5Nb2JpbGVJZnJhbWFibGVNZXRob2QsJ3Blcm1pc3Npb25zLm9h
dXRoJzp7dXJsOidkaWFsb2cvb2F1dGgnLHNpemU6e3dpZHRoOihGQi5VQS5tb2Jp
bGUoKT9udWxsOjYyNyksaGVpZ2h0OihGQi5VQS5tb2JpbGUoKT9udWxsOjMyNil9
LHRyYW5zZm9ybTpmdW5jdGlvbihhKXtpZighRkIuX2FwaUtleSl7RkIubG9nKCdG
Qi5sb2dpbigpIGNhbGxlZCBiZWZvcmUgRkIuaW5pdCgpLicpO3JldHVybjt9aWYo
RkIuX2F1dGhSZXNwb25zZSYmIWEucGFyYW1zLnNjb3BlKXtGQi5sb2coJ0ZCLmxv
Z2luKCkgY2FsbGVkIHdoZW4gdXNlciBpcyBhbHJlYWR5IGNvbm5lY3RlZC4nKTth
LmNiJiZhLmNiKHtzdGF0dXM6RkIuUnVudGltZS5nZXRMb2dpblN0YXR1cygpLGF1
dGhSZXNwb25zZTpGQi5fYXV0aFJlc3BvbnNlfSk7cmV0dXJuO312YXIgYj1hLmNi
LGM9YS5pZDtkZWxldGUgYS5jYjtpZihhLnBhcmFtcy5kaXNwbGF5PT09J2FzeW5j
Jyl7RkIuY29weShhLnBhcmFtcyx7Y2xpZW50X2lkOkZCLl9hcGlLZXksb3JpZ2lu
OkZCLkF1dGguX2dldENvbnRleHRUeXBlKCkscmVzcG9uc2VfdHlwZTondG9rZW4s
c2lnbmVkX3JlcXVlc3QnLGRvbWFpbjpsb2NhdGlvbi5ob3N0bmFtZX0pO2EuY2I9
RkIuQXV0aC54ZFJlc3BvbnNlV3JhcHBlcihiLEZCLl9hdXRoUmVzcG9uc2UsJ3Bl
cm1pc3Npb25zLm9hdXRoJyk7fWVsc2UgRkIuY29weShhLnBhcmFtcyx7Y2xpZW50
X2lkOkZCLl9hcGlLZXkscmVkaXJlY3RfdXJpOkZCLlVSSS5yZXNvbHZlKEZCLkF1
dGgueGRIYW5kbGVyKGIsYywnb3BlbmVyJyxGQi5fYXV0aFJlc3BvbnNlLCdwZXJt
aXNzaW9ucy5vYXV0aCcpKSxvcmlnaW46RkIuQXV0aC5fZ2V0Q29udGV4dFR5cGUo
KSxyZXNwb25zZV90eXBlOid0b2tlbixzaWduZWRfcmVxdWVzdCcsZG9tYWluOmxv
Y2F0aW9uLmhvc3RuYW1lfSk7cmV0dXJuIGE7fX0sJ2F1dGgubG9nb3V0Jzp7dXJs
Oidsb2dvdXQucGhwJyx0cmFuc2Zvcm06ZnVuY3Rpb24oYSl7aWYoIUZCLl9hcGlL
ZXkpe0ZCLmxvZygnRkIubG9nb3V0KCkgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIEZC
LmluaXQoKS4nKTt9ZWxzZSBpZighRkIuX2F1dGhSZXNwb25zZSl7RkIubG9nKCdG
Qi5sb2dvdXQoKSBjYWxsZWQgd2l0aG91dCBhbiBhY2Nlc3MgdG9rZW4uJyk7fWVs
c2V7YS5wYXJhbXMubmV4dD1GQi5BdXRoLnhkSGFuZGxlcihhLmNiLGEuaWQsJ3Bh
cmVudCcsRkIuX2F1dGhSZXNwb25zZSwnbG9nb3V0Jyk7cmV0dXJuIGE7fX19LCds
b2dpbi5zdGF0dXMnOnt1cmw6J2RpYWxvZy9vYXV0aCcsdHJhbnNmb3JtOmZ1bmN0
aW9uKGEpe3ZhciBiPWEuY2IsYz1hLmlkO2RlbGV0ZSBhLmNiO0ZCLmNvcHkoYS5w
YXJhbXMse2NsaWVudF9pZDpGQi5fYXBpS2V5LHJlZGlyZWN0X3VyaTpGQi5BdXRo
LnhkSGFuZGxlcihiLGMsJ3BhcmVudCcsRkIuX2F1dGhSZXNwb25zZSwnbG9naW5f
c3RhdHVzJyksb3JpZ2luOkZCLkF1dGguX2dldENvbnRleHRUeXBlKCkscmVzcG9u
c2VfdHlwZTondG9rZW4sc2lnbmVkX3JlcXVlc3QsY29kZScsZG9tYWluOmxvY2F0
aW9uLmhvc3RuYW1lfSk7cmV0dXJuIGE7fX19KTsKRkIucHJvdmlkZSgnJyx7c2hh
cmU6ZnVuY3Rpb24oYSl7RkIubG9nKCdGQi5zaGFyZSgpIGhhcyBiZWVuIGRlcHJl
Y2F0ZWQuIFBsZWFzZSB1c2UgRkIudWkoKSBpbnN0ZWFkLicpO0ZCLnVpKHtkaXNw
bGF5Oidwb3B1cCcsbWV0aG9kOidzdHJlYW0uc2hhcmUnLHU6YX0pO30scHVibGlz
aDpmdW5jdGlvbihhLGIpe0ZCLmxvZygnRkIucHVibGlzaCgpIGhhcyBiZWVuIGRl
cHJlY2F0ZWQuIFBsZWFzZSB1c2UgRkIudWkoKSBpbnN0ZWFkLicpO2E9YXx8e307
RkIudWkoRkIuY29weSh7ZGlzcGxheToncG9wdXAnLG1ldGhvZDonc3RyZWFtLnB1
Ymxpc2gnLHByZXZpZXc6MX0sYXx8e30pLGIpO30sYWRkRnJpZW5kOmZ1bmN0aW9u
KGEsYil7RkIubG9nKCdGQi5hZGRGcmllbmQoKSBoYXMgYmVlbiBkZXByZWNhdGVk
LiBQbGVhc2UgdXNlIEZCLnVpKCkgaW5zdGVhZC4nKTtGQi51aSh7ZGlzcGxheTon
cG9wdXAnLGlkOmEsbWV0aG9kOidmcmllbmQuYWRkJ30sYik7fX0pO0ZCLlVJU2Vy
dmVyLk1ldGhvZHNbJ2F1dGgubG9naW4nXT1GQi5VSVNlcnZlci5NZXRob2RzWydw
ZXJtaXNzaW9ucy5yZXF1ZXN0J107Cl9fZCgicmVzb2x2ZVVSSSIsW10sZnVuY3Rp
b24oYSxiLGMsZCxlLGYpe2Z1bmN0aW9uIGcoaCl7aWYoIWgpcmV0dXJuIHdpbmRv
dy5sb2NhdGlvbi5ocmVmO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpO2kuaW5uZXJIVE1MPSc8YSBocmVmPSInK2gucmVwbGFjZSgvIi9nLCcmcXVv
dDsnKSsnIj48L2E+JztyZXR1cm4gaS5maXJzdENoaWxkLmhyZWY7fWUuZXhwb3J0
cz1nO30pOwpfX2QoImxlZ2FjeTpmYi51cmkiLFsiRkIiLCJyZXNvbHZlVVJJIl0s
ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YignRkInKSxmPWIoJ3Jlc29sdmVVUkkn
KTtlLnByb3ZpZGUoJ1VSSScse3Jlc29sdmU6Zn0pO30sMyk7CkZCLmNyZWF0ZSgn
WEZCTUwuSWZyYW1lUGx1Z2luVGFncycse3ByaXZhY3lfc2VsZWN0b3I6e30sc2Vu
ZF90b19tb2JpbGU6e30sc3Vic2NyaWJlOntocmVmOid1cmwnLGxheW91dDonc3Ry
aW5nJyxzaG93X2ZhY2VzOidib29sJ30sd2FudDp7aHJlZjondXJsJyxsYXlvdXQ6
J3N0cmluZycsc2hvd19mYWNlczonYm9vbCd9fSk7CkZCLkNsYXNzKCdYRkJNTC5J
ZnJhbWVQbHVnaW4nLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhtKXtyZXR1cm4g
ZnVuY3Rpb24obil7dmFyIG89YS5nZXRFbGVtZW50c0J5VGFnTmFtZShtKVswXTtu
LmhlaWdodCYmKG8uc3R5bGUuaGVpZ2h0PW4uaGVpZ2h0KydweCcpO24ud2lkdGgm
JihvLnN0eWxlLndpZHRoPW4ud2lkdGgrJ3B4Jyk7dmFyIHA9YS5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnc3BhbicpWzBdLHE9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
aWZyYW1lJylbMF0scj1xLnN0eWxlLmhlaWdodD09PXAuc3R5bGUuaGVpZ2h0JiZx
LnN0eWxlLndpZHRoPT09cC5zdHlsZS53aWR0aCxzPXI/J3JlbW92ZUNzcyc6J2Fk
ZENzcyc7RkIuRG9tW3NdKHEsJ2ZiX2lmcmFtZV93aWRnZXRfbGlmdCcpO307fWZ1
bmN0aW9uIGQobSl7RkIuRXZlbnQuZmlyZSgneGZibWwucmVzaXplJyx7d2lkdGg6
bS53aWR0aCxoZWlnaHQ6bS5oZWlnaHQscGx1Z2luSUQ6RkIuWEZCTUwuZ2V0QXR0
cihhLCdwbHVnaW4taWQnKX0pO312YXIgZT17c3RyaW5nOmZ1bmN0aW9uKG0pe3Jl
dHVybiBtO30sYm9vbDpmdW5jdGlvbihtKXtyZXR1cm4gKC9eKD86dHJ1ZXwxfHll
c3xvbikkL2kpLnRlc3QobSk7fSx1cmw6ZnVuY3Rpb24obSl7cmV0dXJuIEZCLlVS
SS5yZXNvbHZlKG0pO30scHg6ZnVuY3Rpb24obSl7cmV0dXJuICgvXihcZCspKD86
cHgpPyQvKS50ZXN0KG0pP3BhcnNlSW50KFJlZ0V4cC4kMSwxMCk6dW5kZWZpbmVk
O319O2Z1bmN0aW9uIGYobSxuKXtFUzUoRVM1KCdPYmplY3QnLCdrZXlzJyxmYWxz
ZSxtKSwnZm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihvKXt2YXIgcD1lW21bb11dO25b
b109cChGQi5YRkJNTC5nZXRBdHRyKGEsbykpO30pO312YXIgZz17c2tpbjonc3Ry
aW5nJyxmb250OidzdHJpbmcnLHdpZHRoOidweCcsaGVpZ2h0OidweCcscmVmOidz
dHJpbmcnLGNvbG9yX3NjaGVtZTonc3RyaW5nJ307RkIuRG9tLmFkZENzcyhhLCdm
Yl9pZnJhbWVfd2lkZ2V0Jyk7dGhpcy5zdWJzY3JpYmUoJ3hkLnJlc2l6ZScsYygn
c3BhbicpKTt0aGlzLnN1YnNjcmliZSgneGQucmVzaXplJyxjKCdpZnJhbWUnKSk7
dGhpcy5zdWJzY3JpYmUoJ3hkLnJlc2l6ZScsZCk7dGhpcy5zdWJzY3JpYmUoJ3hk
LnJlc2l6ZS5mbG93JyxjKCdzcGFuJykpO3RoaXMuc3Vic2NyaWJlKCd4ZC5yZXNp
emUuaWZyYW1lJyxjKCdpZnJhbWUnKSk7dGhpcy5zdWJzY3JpYmUoJ3hkLnJlc2l6
ZS5mbG93JyxkKTt2YXIgaD1GQi5nZXREb21haW4oJ3d3dycpKydwbHVnaW5zLycr
YisnPycsaT17fTtmKEZCLlhGQk1MLklmcmFtZVBsdWdpblRhZ3NbYl0saSk7Zihn
LGkpO2kuYXBwX2lkPUZCLl9hcGlLZXk7aS5sb2NhbGU9RkIuX2xvY2FsZTtpLnNk
az0nam9leSc7dmFyIGo9RVM1KGZ1bmN0aW9uKG0pe3RoaXMuZmlyZSgneGQuJytt
LnR5cGUsbSk7fSwnYmluZCcsdHJ1ZSx0aGlzKTtpLmNoYW5uZWw9RkIuWEQuaGFu
ZGxlcihqLCdwYXJlbnQucGFyZW50Jyx0cnVlKTt2YXIgaz1GQi5ndWlkKCk7dGhp
cy5zdWJzY3JpYmUoJ3hkLnZlcmlmeScsZnVuY3Rpb24obSl7RkIuWEQuc2VuZFRv
RmFjZWJvb2soayx7bWV0aG9kOid4ZC92ZXJpZnknLHBhcmFtczpFUzUoJ0pTT04n
LCdzdHJpbmdpZnknLGZhbHNlLG0udG9rZW4pLGJlaGF2aW9yOkZCLkFyYml0ZXIu
QkVIQVZJT1JfUEVSU0lTVEVOVH0pO30pO3ZhciBsPXt1cmw6aCtGQi5RUy5lbmNv
ZGUoaSksbmFtZTprLG9ubG9hZDpFUzUodGhpcy5maXJlLCdiaW5kJyx0cnVlLHRo
aXMsJ3JlbmRlcicpLHdpZHRoOmkud2lkdGh8fDQwMCxoZWlnaHQ6aS5oZWlnaHR8
fDQwMH07dGhpcy5wcm9jZXNzPWZ1bmN0aW9uKCl7YS5pbm5lckhUTUw9Jyc7dmFy
IG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO20uc3R5bGUuY3NzVGV4
dD0nd2lkdGg6IDBweDsgaGVpZ2h0OiAwcHgnO2wucm9vdD1hLmFwcGVuZENoaWxk
KG0pO0ZCLkNvbnRlbnQuaW5zZXJ0SWZyYW1lKGwpO307fSxGQi5jb3B5KHt9LEZC
LkV2ZW50UHJvdmlkZXIpKTsKRkIucHJvdmlkZSgnWEZCTUwnLHtfcmVuZGVyVGlt
ZW91dDozMDAwMCxfd2lkZ2V0UGlwZVRocmVzaG9sZDowLGdldEVsZW1lbnRzOmZ1
bmN0aW9uKGEsYixjKXt2YXIgZD1GQi5YRkJNTC5fZ2V0RG9tRWxlbWVudHMoYSxi
LGMpLGU9RkIuRG9tLmdldEJ5Q2xhc3MoYisnLScrYyxhLCdkaXYnKTtkPUZCLkFy
cmF5LnRvQXJyYXkoZCk7ZT1GQi5BcnJheS50b0FycmF5KGUpO2U9RVM1KGUsJ2Zp
bHRlcicsdHJ1ZSxmdW5jdGlvbihmKXtyZXR1cm4gIWYuaGFzQ2hpbGROb2Rlcygp
fHwoZi5jaGlsZE5vZGVzLmxlbmd0aD09PTEmJmYuY2hpbGROb2Rlc1swXS5ub2Rl
VHlwZT09PTMpO30pO3JldHVybiBGQi5BcnJheS5tZXJnZShkLGUpO30scGFyc2U6
ZnVuY3Rpb24oYSxiKXthPWF8fGRvY3VtZW50LmJvZHk7dmFyIGM9MSxkPWZ1bmN0
aW9uKCl7Yy0tO2lmKGM9PT0wKXtiJiZiKCk7RkIuRXZlbnQuZmlyZSgneGZibWwu
cmVuZGVyJyk7fX0sZT17fTtpZihGQi5YRkJNTC5fd2lkZ2V0UGlwZUlzRW5hYmxl
ZCgpKUVTNShGQi5YRkJNTC5fdGFnSW5mb3MsJ2ZvckVhY2gnLHRydWUsZnVuY3Rp
b24oZil7aWYoZi5zdXBwb3J0c1dpZGdldFBpcGUpe3ZhciBnPWYueG1sbnM/Zi54
bWxuczonZmInLGg9RkIuWEZCTUwuZ2V0RWxlbWVudHMoYSxnLGYubG9jYWxOYW1l
KTtlW2YubG9jYWxOYW1lXT1oO0ZCLlhGQk1MLl93aWRnZXRQaXBlRW5hYmxlZFRh
Z0NvdW50Kz1oLmxlbmd0aDt9fSk7RVM1KEZCLlhGQk1MLl90YWdJbmZvcywnZm9y
RWFjaCcsdHJ1ZSxmdW5jdGlvbihmKXtpZighZi54bWxucylmLnhtbG5zPSdmYic7
dmFyIGc7aWYoZVtmLmxvY2FsTmFtZV0hPT11bmRlZmluZWQpe2c9ZVtmLmxvY2Fs
TmFtZV07fWVsc2UgZz1GQi5YRkJNTC5nZXRFbGVtZW50cyhhLGYueG1sbnMsZi5s
b2NhbE5hbWUpO2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXtjKys7RkIuWEZC
TUwuX3Byb2Nlc3NFbGVtZW50KGdbaF0sZixkKTt9fSk7RkIuRXZlbnQuZmlyZSgn
eGZibWwucGFyc2UnKTt3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2lmKGM+
MClGQi5sb2coYysnIFhGQk1MIHRhZ3MgZmFpbGVkIHRvIHJlbmRlciBpbiAnK0ZC
LlhGQk1MLl9yZW5kZXJUaW1lb3V0Kydtcy4nKTt9LEZCLlhGQk1MLl9yZW5kZXJU
aW1lb3V0KTtkKCk7fSxyZWdpc3RlclRhZzpmdW5jdGlvbihhKXtGQi5YRkJNTC5f
dGFnSW5mb3MucHVzaChhKTt9LHNob3VsZFVzZVdpZGdldFBpcGU6ZnVuY3Rpb24o
KXtpZighRkIuWEZCTUwuX3dpZGdldFBpcGVJc0VuYWJsZWQoKSlyZXR1cm4gZmFs
c2U7dmFyIGE9RkIuWEZCTUwuX3dpZGdldFBpcGVFbmFibGVkVGFnQ291bnQ+dGhp
cy5fd2lkZ2V0UGlwZVRocmVzaG9sZDtyZXR1cm4gYTt9LGdldEJvb2xBdHRyOmZ1
bmN0aW9uKGEsYil7Yj1GQi5YRkJNTC5nZXRBdHRyKGEsYik7cmV0dXJuIChiJiZF
UzUoWyd0cnVlJywnMScsJ3llcycsJ29uJ10sJ2luZGV4T2YnLHRydWUsYi50b0xv
d2VyQ2FzZSgpKT4tMSk7fSxnZXRBdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIChh
LmdldEF0dHJpYnV0ZShiKXx8YS5nZXRBdHRyaWJ1dGUoYi5yZXBsYWNlKC9fL2cs
Jy0nKSl8fGEuZ2V0QXR0cmlidXRlKGIucmVwbGFjZSgvLS9nLCdfJykpfHxhLmdl
dEF0dHJpYnV0ZShiLnJlcGxhY2UoLy0vZywnJykpfHxhLmdldEF0dHJpYnV0ZShi
LnJlcGxhY2UoL18vZywnJykpfHxhLmdldEF0dHJpYnV0ZSgnZGF0YS0nK2IpfHxh
LmdldEF0dHJpYnV0ZSgnZGF0YS0nK2IucmVwbGFjZSgvXy9nLCctJykpfHxhLmdl
dEF0dHJpYnV0ZSgnZGF0YS0nK2IucmVwbGFjZSgvLS9nLCdfJykpfHxhLmdldEF0
dHJpYnV0ZSgnZGF0YS0nK2IucmVwbGFjZSgvLS9nLCcnKSl8fGEuZ2V0QXR0cmli
dXRlKCdkYXRhLScrYi5yZXBsYWNlKC9fL2csJycpKXx8bnVsbCk7fSxfcHJvY2Vz
c0VsZW1lbnQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuX2VsZW1lbnQ7aWYoZCl7
ZC5zdWJzY3JpYmUoJ3JlbmRlcicsYyk7ZC5wcm9jZXNzKCk7fWVsc2V7dmFyIGU9
Yi5sb2NhbE5hbWUucmVwbGFjZSgvLS9nLCdfJyksZj1mdW5jdGlvbigpe3ZhciBn
PUZCLlhGQk1MLklmcmFtZVBsdWdpblRhZ3NbZV0/RkIuWEZCTUwuSWZyYW1lUGx1
Z2luOkZCLmRvdEFjY2VzcyhGQixiLmNsYXNzTmFtZS5yZXBsYWNlKC9eRkJcLi8s
JycpKTtkPWEuX2VsZW1lbnQ9bmV3IGcoYSxlKTtkLnN1YnNjcmliZSgncmVuZGVy
JyxjKTtkLnByb2Nlc3MoKTt9O2lmKEZCLlhGQk1MLklmcmFtZVBsdWdpblRhZ3Nb
ZV18fEZCLkNMQVNTRVNbYi5jbGFzc05hbWUuc3Vic3RyKDMpXSl7ZigpO31lbHNl
IEZCLmxvZygnVGFnICcrYi5jbGFzc05hbWUrJyB3YXMgbm90IGZvdW5kLicpO319
LF9nZXREb21FbGVtZW50czpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YisnOicrYztp
ZihGQi5VQS5maXJlZm94KCkpe3JldHVybiBhLmdldEVsZW1lbnRzQnlUYWdOYW1l
TlMoZG9jdW1lbnQuYm9keS5uYW1lc3BhY2VVUkksZCk7fWVsc2UgaWYoRkIuVUEu
aWUoKTw5KXt0cnl7dmFyIGY9ZG9jdW1lbnQubmFtZXNwYWNlcztpZihmJiZmW2Jd
KXt2YXIgZz1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGMpO2lmKCFkb2N1bWVudC5h
ZGRFdmVudExpc3RlbmVyfHxnLmxlbmd0aD4wKXJldHVybiBnO319Y2F0Y2goZSl7
fXJldHVybiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lKGQpO31lbHNlIHJldHVybiBh
LmdldEVsZW1lbnRzQnlUYWdOYW1lKGQpO30sX3RhZ0luZm9zOlt7bG9jYWxOYW1l
OidhY3Rpdml0eScsY2xhc3NOYW1lOidGQi5YRkJNTC5BY3Rpdml0eSd9LHtsb2Nh
bE5hbWU6J2FjdGl2aXR5LWxvZycsY2xhc3NOYW1lOidGQi5YRkJNTC5BY3Rpdml0
eUxvZyd9LHtsb2NhbE5hbWU6J2FkZC1wcm9maWxlLXRhYicsY2xhc3NOYW1lOidG
Qi5YRkJNTC5BZGRQcm9maWxlVGFiJ30se2xvY2FsTmFtZTonYWRkLXRvLXRpbWVs
aW5lJyxjbGFzc05hbWU6J0ZCLlhGQk1MLkFkZFRvVGltZWxpbmUnfSx7bG9jYWxO
YW1lOidib29rbWFyaycsY2xhc3NOYW1lOidGQi5YRkJNTC5Cb29rbWFyayd9LHts
b2NhbE5hbWU6J2NvbW1lbnRzJyxjbGFzc05hbWU6J0ZCLlhGQk1MLkNvbW1lbnRz
J30se2xvY2FsTmFtZTonY29tbWVudHMtY291bnQnLGNsYXNzTmFtZTonRkIuWEZC
TUwuQ29tbWVudHNDb3VudCd9LHtsb2NhbE5hbWU6J2Nvbm5lY3QtYmFyJyxjbGFz
c05hbWU6J0ZCLlhGQk1MLkNvbm5lY3RCYXInfSx7bG9jYWxOYW1lOidjcmVhdGUt
ZXZlbnQtYnV0dG9uJyxjbGFzc05hbWU6J0ZCLlhGQk1MLkNyZWF0ZUV2ZW50QnV0
dG9uJ30se2xvY2FsTmFtZTonZmFuJyxjbGFzc05hbWU6J0ZCLlhGQk1MLkZhbid9
LHtsb2NhbE5hbWU6J2xpa2UnLGNsYXNzTmFtZTonRkIuWEZCTUwuTGlrZSd9LHts
b2NhbE5hbWU6J2xpa2UtYm94JyxjbGFzc05hbWU6J0ZCLlhGQk1MLkxpa2VCb3gn
fSx7bG9jYWxOYW1lOidsaXZlLXN0cmVhbScsY2xhc3NOYW1lOidGQi5YRkJNTC5M
aXZlU3RyZWFtJ30se2xvY2FsTmFtZTonbG9naW4nLGNsYXNzTmFtZTonRkIuWEZC
TUwuTG9naW4nfSx7bG9jYWxOYW1lOidsb2dpbi1idXR0b24nLGNsYXNzTmFtZTon
RkIuWEZCTUwuTG9naW5CdXR0b24nfSx7bG9jYWxOYW1lOidmYWNlcGlsZScsY2xh
c3NOYW1lOidGQi5YRkJNTC5GYWNlcGlsZSd9LHtsb2NhbE5hbWU6J2ZyaWVuZHBp
bGUnLGNsYXNzTmFtZTonRkIuWEZCTUwuRnJpZW5kcGlsZSd9LHtsb2NhbE5hbWU6
J25hbWUnLGNsYXNzTmFtZTonRkIuWEZCTUwuTmFtZSd9LHtsb2NhbE5hbWU6J3Bh
Z2UtZXZlbnRzJyxjbGFzc05hbWU6J0ZCLlhGQk1MLlBhZ2VFdmVudHMnfSx7bG9j
YWxOYW1lOidwcml2YWN5LXNlbGVjdG9yJ30se2xvY2FsTmFtZToncHJvZmlsZS1w
aWMnLGNsYXNzTmFtZTonRkIuWEZCTUwuUHJvZmlsZVBpYyd9LHtsb2NhbE5hbWU6
J3JlY29tbWVuZGF0aW9ucycsY2xhc3NOYW1lOidGQi5YRkJNTC5SZWNvbW1lbmRh
dGlvbnMnfSx7bG9jYWxOYW1lOidyZWNvbW1lbmRhdGlvbnMtYmFyJyxjbGFzc05h
bWU6J0ZCLlhGQk1MLlJlY29tbWVuZGF0aW9uc0Jhcid9LHtsb2NhbE5hbWU6J3Jl
Y3RhbmdsZScsY2xhc3NOYW1lOidGQi5YRkJNTC5SZWN0YW5nbGUnLHN1cHBvcnRz
V2lkZ2V0UGlwZTp0cnVlfSx7bG9jYWxOYW1lOidyZWdpc3RyYXRpb24nLGNsYXNz
TmFtZTonRkIuWEZCTUwuUmVnaXN0cmF0aW9uJ30se2xvY2FsTmFtZTonc2VuZCcs
Y2xhc3NOYW1lOidGQi5YRkJNTC5TZW5kJ30se2xvY2FsTmFtZTonc2VuZC10by1t
b2JpbGUnfSx7bG9jYWxOYW1lOidzaGFyZS1idXR0b24nLGNsYXNzTmFtZTonRkIu
WEZCTUwuU2hhcmVCdXR0b24nfSx7bG9jYWxOYW1lOidzb2NpYWwtY29udGV4dCcs
Y2xhc3NOYW1lOidGQi5YRkJNTC5Tb2NpYWxDb250ZXh0J30se2xvY2FsTmFtZTon
c3Vic2NyaWJlJ30se2xvY2FsTmFtZTond2FudCd9XSxfd2lkZ2V0UGlwZUVuYWJs
ZWRUYWdDb3VudDowLF93aWRnZXRQaXBlSXNFbmFibGVkOmZ1bmN0aW9uKCl7cmV0
dXJuIEZCLndpZGdldFBpcGVFbmFibGVkQXBwcyYmRkIud2lkZ2V0UGlwZUVuYWJs
ZWRBcHBzW0ZCLl9hcGlLZXldIT09dW5kZWZpbmVkO319KTsoZnVuY3Rpb24oKXt0
cnl7aWYoZG9jdW1lbnQubmFtZXNwYWNlcyYmIWRvY3VtZW50Lm5hbWVzcGFjZXMu
aXRlbS5mYilkb2N1bWVudC5uYW1lc3BhY2VzLmFkZCgnZmInKTt9Y2F0Y2goYSl7
fX0oKSk7CkZCLnByb3ZpZGUoJ1hGQk1MJyx7c2V0OmZ1bmN0aW9uKGEsYixjKXtG
Qi5sb2coJ0ZCLlhGQk1MLnNldCgpIGhhcyBiZWVuIGRlcHJlY2F0ZWQuJyk7YS5p
bm5lckhUTUw9YjtGQi5YRkJNTC5wYXJzZShhLGMpO319KTsKRkIuQ2xhc3MoJ1hG
Qk1MLkVsZW1lbnQnLGZ1bmN0aW9uKGEsYil7dGhpcy5kb209YTt9LEZCLmNvcHko
e2dldEF0dHJpYnV0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9RkIuWEZCTUwuZ2V0
QXR0cih0aGlzLmRvbSxhKTtyZXR1cm4gZD8oYz9jKGQpOmQpOmI7fSxfZ2V0Qm9v
bEF0dHJpYnV0ZTpmdW5jdGlvbihhLGIpe2lmKEZCLlhGQk1MLmdldEF0dHIodGhp
cy5kb20sYSk9PT1udWxsKXJldHVybiBiO3JldHVybiBGQi5YRkJNTC5nZXRCb29s
QXR0cih0aGlzLmRvbSxhKTt9LF9nZXRQeEF0dHJpYnV0ZTpmdW5jdGlvbihhLGIp
e3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZShhLGIsZnVuY3Rpb24oYyl7dmFyIGQ9
cGFyc2VJbnQoYy5yZXBsYWNlKCdweCcsJycpLDEwKTtpZihpc05hTihkKSl7cmV0
dXJuIGI7fWVsc2UgcmV0dXJuIGQ7fSk7fSxfZ2V0QXR0cmlidXRlRnJvbUxpc3Q6
ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZShhLGIsZnVu
Y3Rpb24oZCl7ZD1kLnRvTG93ZXJDYXNlKCk7aWYoRVM1KGMsJ2luZGV4T2YnLHRy
dWUsZCk+LTEpe3JldHVybiBkO31lbHNlIHJldHVybiBiO30pO30saXNWYWxpZDpm
dW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLmRvbTthO2E9YS5wYXJlbnROb2RlKWlm
KGE9PWRvY3VtZW50LmJvZHkpcmV0dXJuIHRydWU7fSxjbGVhcjpmdW5jdGlvbigp
e3RoaXMuZG9tLmlubmVySFRNTD0nJzt9fSxGQi5FdmVudFByb3ZpZGVyKSk7CkZC
LnN1YmNsYXNzKCdYRkJNTC5JZnJhbWVXaWRnZXQnLCdYRkJNTC5FbGVtZW50Jyxu
dWxsLHtfaWZyYW1lTmFtZTpudWxsLF9zaG93TG9hZGVyOnRydWUsX3JlZnJlc2hP
bkF1dGhDaGFuZ2U6ZmFsc2UsX2FsbG93UmVQcm9jZXNzOmZhbHNlLF9mZXRjaFBy
ZUNhY2hlZExvYWRlcjpmYWxzZSxfdmlzaWJsZUFmdGVyOidsb2FkJyxfd2lkZ2V0
UGlwZUVuYWJsZWQ6ZmFsc2UsX2JvcmRlclJlc2V0OmZhbHNlLGdldFVybEJpdHM6
ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ0luaGVyaXRpbmcgY2xhc3MgbmVl
ZHMgdG8gaW1wbGVtZW50IGdldFVybEJpdHMoKS4nKTt9LHNldHVwQW5kVmFsaWRh
dGU6ZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZTt9LG9uZVRpbWVTZXR1cDpmdW5jdGlv
bigpe30sZ2V0U2l6ZTpmdW5jdGlvbigpe30sZ2V0SWZyYW1lTmFtZTpmdW5jdGlv
bigpe2lmKHRoaXMuX3dpZGdldFBpcGVFbmFibGVkJiZGQi5YRkJNTC5zaG91bGRV
c2VXaWRnZXRQaXBlKCkpe3RoaXMuX2lmcmFtZU5hbWU9dGhpcy5nZW5lcmF0ZVdp
ZGdldFBpcGVJZnJhbWVOYW1lKCk7RkIuWEZCTUwuSWZyYW1lV2lkZ2V0LmFsbFdp
ZGdldFBpcGVJZnJhbWVzW3RoaXMuX2lmcmFtZU5hbWVdPXRoaXM7aWYoRkIuWEZC
TUwuSWZyYW1lV2lkZ2V0Lm1hc3RlcldpZGdldFBpcGVJZnJhbWU9PT1udWxsKUZC
LlhGQk1MLklmcmFtZVdpZGdldC5tYXN0ZXJXaWRnZXRQaXBlSWZyYW1lPXRoaXM7
fXJldHVybiB0aGlzLl9pZnJhbWVOYW1lO30sZ2V0SWZyYW1lVGl0bGU6ZnVuY3Rp
b24oKXt9LGdldENoYW5uZWxVcmw6ZnVuY3Rpb24oKXtpZighdGhpcy5fY2hhbm5l
bFVybCl7dmFyIGE9dGhpczt0aGlzLl9jaGFubmVsVXJsPUZCLlhELmhhbmRsZXIo
ZnVuY3Rpb24oYil7YS5maXJlKCd4ZC4nK2IudHlwZSxiKTt9LCdwYXJlbnQucGFy
ZW50Jyx0cnVlKTt9cmV0dXJuIHRoaXMuX2NoYW5uZWxVcmw7fSxnZXRJZnJhbWVO
b2RlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmdldEVsZW1lbnRzQnlUYWdO
YW1lKCdpZnJhbWUnKVswXTt9LGFyYml0ZXJJbmZvcm06ZnVuY3Rpb24oZXZlbnQs
YSxiKXtGQi5YRC5zZW5kVG9GYWNlYm9vayh0aGlzLmdldElmcmFtZU5hbWUoKSx7
bWV0aG9kOmV2ZW50LHBhcmFtczpFUzUoJ0pTT04nLCdzdHJpbmdpZnknLGZhbHNl
LGF8fHt9KSxiZWhhdmlvcjpifHxGQi5BcmJpdGVyLkJFSEFWSU9SX1BFUlNJU1RF
TlR9KTt9LF9hcmJpdGVySW5mb3JtOmZ1bmN0aW9uKGV2ZW50LGEsYil7dmFyIGM9
J3BhcmVudC5mcmFtZXNbIicrdGhpcy5nZXRJZnJhbWVOb2RlKCkubmFtZSsnIl0n
O0ZCLkFyYml0ZXIuaW5mb3JtKGV2ZW50LGEsYyxiKTt9LGdldERlZmF1bHRXZWJE
b21haW46ZnVuY3Rpb24oKXtyZXR1cm4gJ3d3dyc7fSxnZXREZWZhdWx0U3RhdGlj
RG9tYWluOmZ1bmN0aW9uKCl7cmV0dXJuICdjZG4nO30scHJvY2VzczpmdW5jdGlv
bihhKXtpZih0aGlzLl9kb25lKXtpZighdGhpcy5fYWxsb3dSZVByb2Nlc3MmJiFh
KXJldHVybjt0aGlzLmNsZWFyKCk7fWVsc2UgdGhpcy5fb25lVGltZVNldHVwKCk7
dGhpcy5fZG9uZT10cnVlO3RoaXMuX2lmcmFtZU5hbWU9dGhpcy5nZXRJZnJhbWVO
YW1lKCl8fHRoaXMuX2lmcmFtZU5hbWV8fEZCLmd1aWQoKTtpZighdGhpcy5zZXR1
cEFuZFZhbGlkYXRlKCkpe3RoaXMuZmlyZSgncmVuZGVyJyk7cmV0dXJuO31pZih0
aGlzLl9zaG93TG9hZGVyKXRoaXMuX2FkZExvYWRlcigpO0ZCLkRvbS5hZGRDc3Mo
dGhpcy5kb20sJ2ZiX2lmcmFtZV93aWRnZXQnKTtpZih0aGlzLl92aXNpYmxlQWZ0
ZXIhPSdpbW1lZGlhdGUnKXtGQi5Eb20uYWRkQ3NzKHRoaXMuZG9tLCdmYl9oaWRl
X2lmcmFtZXMnKTt9ZWxzZSB0aGlzLnN1YnNjcmliZSgnaWZyYW1lLm9ubG9hZCcs
RVM1KHRoaXMuZmlyZSwnYmluZCcsdHJ1ZSx0aGlzLCdyZW5kZXInKSk7dmFyIGI9
dGhpcy5nZXRTaXplKCl8fHt9LGM9dGhpcy5nZXRGdWxseVF1YWxpZmllZFVSTCgp
O2lmKGIud2lkdGg9PScxMDAlJylGQi5Eb20uYWRkQ3NzKHRoaXMuZG9tLCdmYl9p
ZnJhbWVfd2lkZ2V0X2ZsdWlkJyk7RkIuQ29udGVudC5pbnNlcnRJZnJhbWUoe3Vy
bDpjLHJvb3Q6dGhpcy5kb20uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3BhbicpKSxuYW1lOnRoaXMuX2lmcmFtZU5hbWUsdGl0bGU6dGhpcy5n
ZXRJZnJhbWVUaXRsZSgpLGNsYXNzTmFtZTpGQi5fbG9jYWxlSXNSdGw/J2ZiX3J0
bCc6J2ZiX2x0cicsaGVpZ2h0OmIuaGVpZ2h0LHdpZHRoOmIud2lkdGgsb25sb2Fk
OkVTNSh0aGlzLmZpcmUsJ2JpbmQnLHRydWUsdGhpcywnaWZyYW1lLm9ubG9hZCcp
fSk7dGhpcy5fcmVzaXplRmxvdyhiKTt0aGlzLmxvYWRlZD1mYWxzZTt0aGlzLnN1
YnNjcmliZSgnaWZyYW1lLm9ubG9hZCcsRVM1KGZ1bmN0aW9uKCl7dGhpcy5sb2Fk
ZWQ9dHJ1ZTt9LCdiaW5kJyx0cnVlLHRoaXMpKTt9LGdlbmVyYXRlV2lkZ2V0UGlw
ZUlmcmFtZU5hbWU6ZnVuY3Rpb24oKXtGQi5YRkJNTC5JZnJhbWVXaWRnZXQud2lk
Z2V0UGlwZUlmcmFtZUNvdW50Kys7cmV0dXJuICdmYl9pZnJhbWVfJytGQi5YRkJN
TC5JZnJhbWVXaWRnZXQud2lkZ2V0UGlwZUlmcmFtZUNvdW50O30sZ2V0RnVsbHlR
dWFsaWZpZWRVUkw6ZnVuY3Rpb24oKXtpZihGQi5YRkJNTC5zaG91bGRVc2VXaWRn
ZXRQaXBlKCkmJnRoaXMuX3dpZGdldFBpcGVFbmFibGVkKXJldHVybiB0aGlzLl9n
ZXRXaWRnZXRQaXBlU2hlbGwoKTt2YXIgYT10aGlzLl9nZXRVUkwoKTtpZighdGhp
cy5fZmV0Y2hQcmVDYWNoZWRMb2FkZXIpYSs9Jz8nK0ZCLlFTLmVuY29kZSh0aGlz
Ll9nZXRRUygpKTtpZihhLmxlbmd0aD4yMDAwKXthPSdhYm91dDpibGFuayc7dmFy
IGI9RVM1KGZ1bmN0aW9uKCl7dGhpcy5fcG9zdFJlcXVlc3QoKTt0aGlzLnVuc3Vi
c2NyaWJlKCdpZnJhbWUub25sb2FkJyxiKTt9LCdiaW5kJyx0cnVlLHRoaXMpO3Ro
aXMuc3Vic2NyaWJlKCdpZnJhbWUub25sb2FkJyxiKTt9cmV0dXJuIGE7fSxfZ2V0
V2lkZ2V0UGlwZVNoZWxsOmZ1bmN0aW9uKCl7cmV0dXJuIEZCLmdldERvbWFpbign
d3d3JykrJ2NvbW1vbi93aWRnZXRfcGlwZV9zaGVsbC5waHAnO30sX29uZVRpbWVT
ZXR1cDpmdW5jdGlvbigpe3RoaXMuc3Vic2NyaWJlKCd4ZC5yZXNpemUnLEVTNSh0
aGlzLl9oYW5kbGVSZXNpemVNc2csJ2JpbmQnLHRydWUsdGhpcykpO3RoaXMuc3Vi
c2NyaWJlKCd4ZC5yZXNpemUnLEVTNSh0aGlzLl9idWJibGVSZXNpemVFdmVudCwn
YmluZCcsdHJ1ZSx0aGlzKSk7dGhpcy5zdWJzY3JpYmUoJ3hkLnJlc2l6ZS5pZnJh
bWUnLEVTNSh0aGlzLl9yZXNpemVJZnJhbWUsJ2JpbmQnLHRydWUsdGhpcykpO3Ro
aXMuc3Vic2NyaWJlKCd4ZC5yZXNpemUuZmxvdycsRVM1KHRoaXMuX3Jlc2l6ZUZs
b3csJ2JpbmQnLHRydWUsdGhpcykpO3RoaXMuc3Vic2NyaWJlKCd4ZC5yZXNpemUu
ZmxvdycsRVM1KHRoaXMuX2J1YmJsZVJlc2l6ZUV2ZW50LCdiaW5kJyx0cnVlLHRo
aXMpKTtpZihGQi5nZXRMb2dpblN0YXR1cyl7dGhpcy5zdWJzY3JpYmUoJ3hkLnJl
ZnJlc2hMb2dpblN0YXR1cycsRVM1KEZCLmdldExvZ2luU3RhdHVzLCdiaW5kJyx0
cnVlLEZCLGZ1bmN0aW9uKCl7fSx0cnVlKSk7dGhpcy5zdWJzY3JpYmUoJ3hkLmxv
Z291dCcsRVM1KEZCLmxvZ291dCwnYmluZCcsdHJ1ZSxGQixmdW5jdGlvbigpe30p
KTt9aWYodGhpcy5fcmVmcmVzaE9uQXV0aENoYW5nZSl0aGlzLl9zZXR1cEF1dGhS
ZWZyZXNoKCk7aWYodGhpcy5fdmlzaWJsZUFmdGVyPT0nbG9hZCcpdGhpcy5zdWJz
Y3JpYmUoJ2lmcmFtZS5vbmxvYWQnLEVTNSh0aGlzLl9tYWtlVmlzaWJsZSwnYmlu
ZCcsdHJ1ZSx0aGlzKSk7dGhpcy5zdWJzY3JpYmUoJ3hkLnZlcmlmeScsRVM1KGZ1
bmN0aW9uKGEpe3RoaXMuYXJiaXRlckluZm9ybSgneGQvdmVyaWZ5JyxhLnRva2Vu
KTt9LCdiaW5kJyx0cnVlLHRoaXMpKTt0aGlzLm9uZVRpbWVTZXR1cCgpO30sX21h
a2VWaXNpYmxlOmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3ZlTG9hZGVyKCk7RkIuRG9t
LnJlbW92ZUNzcyh0aGlzLmRvbSwnZmJfaGlkZV9pZnJhbWVzJyk7dGhpcy5maXJl
KCdyZW5kZXInKTt9LF9zZXR1cEF1dGhSZWZyZXNoOmZ1bmN0aW9uKCl7RkIuZ2V0
TG9naW5TdGF0dXMoRVM1KGZ1bmN0aW9uKGEpe3ZhciBiPWEuc3RhdHVzO0ZCLkV2
ZW50LnN1YnNjcmliZSgnYXV0aC5zdGF0dXNDaGFuZ2UnLEVTNShmdW5jdGlvbihj
KXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuO2lmKGI9PSd1bmtub3duJ3x8Yy5z
dGF0dXM9PSd1bmtub3duJyl0aGlzLnByb2Nlc3ModHJ1ZSk7Yj1jLnN0YXR1czt9
LCdiaW5kJyx0cnVlLHRoaXMpKTt9LCdiaW5kJyx0cnVlLHRoaXMpKTt9LF9oYW5k
bGVSZXNpemVNc2c6ZnVuY3Rpb24oYSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVy
bjt0aGlzLl9yZXNpemVJZnJhbWUoYSk7dGhpcy5fcmVzaXplRmxvdyhhKTtpZigh
dGhpcy5fYm9yZGVyUmVzZXQpe3RoaXMuZ2V0SWZyYW1lTm9kZSgpLnN0eWxlLmJv
cmRlcj0nbm9uZSc7dGhpcy5fYm9yZGVyUmVzZXQ9dHJ1ZTt9dGhpcy5fbWFrZVZp
c2libGUoKTt9LF9idWJibGVSZXNpemVFdmVudDpmdW5jdGlvbihhKXt2YXIgYj17
aGVpZ2h0OmEuaGVpZ2h0LHdpZHRoOmEud2lkdGgscGx1Z2luSUQ6dGhpcy5nZXRB
dHRyaWJ1dGUoJ3BsdWdpbi1pZCcpfTtGQi5FdmVudC5maXJlKCd4ZmJtbC5yZXNp
emUnLGIpO30sX3Jlc2l6ZUlmcmFtZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmdl
dElmcmFtZU5vZGUoKTthLmhlaWdodCYmKGIuc3R5bGUuaGVpZ2h0PWEuaGVpZ2h0
KydweCcpO2Eud2lkdGgmJihiLnN0eWxlLndpZHRoPWEud2lkdGgrJ3B4Jyk7dGhp
cy5fdXBkYXRlSWZyYW1lWkluZGV4KCk7fSxfcmVzaXplRmxvdzpmdW5jdGlvbihh
KXt2YXIgYj10aGlzLmRvbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBd
O2EuaGVpZ2h0JiYoYi5zdHlsZS5oZWlnaHQ9YS5oZWlnaHQrJ3B4Jyk7YS53aWR0
aCYmKGIuc3R5bGUud2lkdGg9YS53aWR0aCsncHgnKTt0aGlzLl91cGRhdGVJZnJh
bWVaSW5kZXgoKTt9LF91cGRhdGVJZnJhbWVaSW5kZXg6ZnVuY3Rpb24oKXt2YXIg
YT10aGlzLmRvbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3BhbicpWzBdLGI9dGhp
cy5nZXRJZnJhbWVOb2RlKCksYz1iLnN0eWxlLmhlaWdodD09PWEuc3R5bGUuaGVp
Z2h0JiZiLnN0eWxlLndpZHRoPT09YS5zdHlsZS53aWR0aCxkPWM/J3JlbW92ZUNz
cyc6J2FkZENzcyc7RkIuRG9tW2RdKGIsJ2ZiX2lmcmFtZV93aWRnZXRfbGlmdCcp
O30sX2FkZExvYWRlcjpmdW5jdGlvbigpe2lmKCF0aGlzLl9sb2FkZXJEaXYpe0ZC
LkRvbS5hZGRDc3ModGhpcy5kb20sJ2ZiX2lmcmFtZV93aWRnZXRfbG9hZGVyJyk7
dGhpcy5fbG9hZGVyRGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3Ro
aXMuX2xvYWRlckRpdi5jbGFzc05hbWU9J0ZCX0xvYWRlcic7dGhpcy5kb20uYXBw
ZW5kQ2hpbGQodGhpcy5fbG9hZGVyRGl2KTt9fSxfcmVtb3ZlTG9hZGVyOmZ1bmN0
aW9uKCl7aWYodGhpcy5fbG9hZGVyRGl2KXtGQi5Eb20ucmVtb3ZlQ3NzKHRoaXMu
ZG9tLCdmYl9pZnJhbWVfd2lkZ2V0X2xvYWRlcicpO2lmKHRoaXMuX2xvYWRlckRp
di5wYXJlbnROb2RlKXRoaXMuX2xvYWRlckRpdi5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKHRoaXMuX2xvYWRlckRpdik7dGhpcy5fbG9hZGVyRGl2PW51bGw7fX0sX2dl
dFFTOmZ1bmN0aW9uKCl7cmV0dXJuIEZCLmNvcHkoe2FwaV9rZXk6RkIuX2FwaUtl
eSxsb2NhbGU6RkIuX2xvY2FsZSxzZGs6J2pvZXknLHJlZjp0aGlzLmdldEF0dHJp
YnV0ZSgncmVmJyl9LHRoaXMuZ2V0VXJsQml0cygpLnBhcmFtcyk7fSxfZ2V0VVJM
OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXREZWZhdWx0V2ViRG9tYWluKCksYj0n
JztpZih0aGlzLl9mZXRjaFByZUNhY2hlZExvYWRlcil7YT10aGlzLmdldERlZmF1
bHRTdGF0aWNEb21haW4oKTtiPSdzdGF0aWMvJzt9cmV0dXJuIEZCLmdldERvbWFp
bihhKSsncGx1Z2lucy8nK2IrdGhpcy5nZXRVcmxCaXRzKCkubmFtZSsnLnBocCc7
fSxfcG9zdFJlcXVlc3Q6ZnVuY3Rpb24oKXtGQi5Db250ZW50LnN1Ym1pdFRvVGFy
Z2V0KHt1cmw6dGhpcy5fZ2V0VVJMKCksdGFyZ2V0OnRoaXMuZ2V0SWZyYW1lTm9k
ZSgpLm5hbWUscGFyYW1zOnRoaXMuX2dldFFTKCl9KTt9fSk7RkIucHJvdmlkZSgn
WEZCTUwuSWZyYW1lV2lkZ2V0Jyx7d2lkZ2V0UGlwZUlmcmFtZUNvdW50OjAsbWFz
dGVyV2lkZ2V0UGlwZUlmcmFtZTpudWxsLGFsbFdpZGdldFBpcGVJZnJhbWVzOnt9
LGJhdGNoV2lkZ2V0UGlwZVJlcXVlc3RzOmZ1bmN0aW9uKCl7aWYoIUZCLlhGQk1M
LklmcmFtZVdpZGdldC5tYXN0ZXJXaWRnZXRQaXBlSWZyYW1lKXJldHVybjt2YXIg
YT1GQi5YRkJNTC5JZnJhbWVXaWRnZXQuX2dyb3VwV2lkZ2V0UGlwZURlc2NyaXB0
aW9ucygpLGI9e3dpZGdldF9waXBlOkVTNSgnSlNPTicsJ3N0cmluZ2lmeScsZmFs
c2UsYSksaHJlZjp3aW5kb3cubG9jYXRpb24sc2l0ZTpsb2NhdGlvbi5ob3N0bmFt
ZSxjaGFubmVsOkZCLlhGQk1MLklmcmFtZVdpZGdldC5tYXN0ZXJXaWRnZXRQaXBl
SWZyYW1lLmdldENoYW5uZWxVcmwoKSxhcGlfa2V5OkZCLl9hcGlLZXksbG9jYWxl
OkZCLl9sb2NhbGUsc2RrOidqb2V5J30sYz1GQi5ndWlkKCksZD1GQi5YRkJNTC5J
ZnJhbWVXaWRnZXQubWFzdGVyV2lkZ2V0UGlwZUlmcmFtZS5kb20sZT1kLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7RkIuQ29udGVu
dC5pbnNlcnRJZnJhbWUoe3VybDonYWJvdXQ6YmxhbmsnLHJvb3Q6ZSxuYW1lOmMs
Y2xhc3NOYW1lOidmYl9oaWRkZW4gZmJfaW52aXNpYmxlJyxvbmxvYWQ6ZnVuY3Rp
b24oKXtGQi5Db250ZW50LnN1Ym1pdFRvVGFyZ2V0KHt1cmw6RkIuX2RvbWFpbi53
d3crJ3BsdWdpbnMvcGlwZS8nLHRhcmdldDpjLHBhcmFtczpifSwxKTt9fSk7fSxf
Z3JvdXBXaWRnZXRQaXBlRGVzY3JpcHRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9e307
Zm9yKHZhciBiIGluIEZCLlhGQk1MLklmcmFtZVdpZGdldC5hbGxXaWRnZXRQaXBl
SWZyYW1lcyl7dmFyIGM9RkIuWEZCTUwuSWZyYW1lV2lkZ2V0LmFsbFdpZGdldFBp
cGVJZnJhbWVzW2JdLGQ9e3dpZGdldDpjLmdldFVybEJpdHMoKS5uYW1lLHBhcmFt
czpjLl9nZXRRUygpfTthW2JdPWQ7fXJldHVybiBhO319KTsKRkIuc3ViY2xhc3Mo
J1hGQk1MLkNyZWF0ZUV2ZW50QnV0dG9uJywnWEZCTUwuSWZyYW1lV2lkZ2V0Jyxu
dWxsLHtzZXR1cEFuZFZhbGlkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fYXR0cj17Y2hh
bm5lbDp0aGlzLmdldENoYW5uZWxVcmwoKSxhcGlfa2V5OkZCLl9hcGlLZXksZm9u
dDp0aGlzLmdldEF0dHJpYnV0ZSgnZm9udCcpLGNvbG9yc2NoZW1lOnRoaXMuZ2V0
QXR0cmlidXRlKCdjb2xvcnNjaGVtZScpLGhyZWY6dGhpcy5nZXRBdHRyaWJ1dGUo
J2hyZWYnKSxyZWY6dGhpcy5nZXRBdHRyaWJ1dGUoJ3JlZicpfTtyZXR1cm4gdHJ1
ZTt9LGdldFVybEJpdHM6ZnVuY3Rpb24oKXtyZXR1cm4ge25hbWU6J2NyZWF0ZV9l
dmVudF9idXR0b24nLHBhcmFtczp0aGlzLl9hdHRyfTt9fSk7CkZCLnN1YmNsYXNz
KCdXYWl0YWJsZScsJ09iaicsZnVuY3Rpb24oKXt9LHtzZXQ6ZnVuY3Rpb24oYSl7
dGhpcy5zZXRQcm9wZXJ0eSgndmFsdWUnLGEpO30sZXJyb3I6ZnVuY3Rpb24oYSl7
dGhpcy5maXJlKCJlcnJvciIsYSk7fSx3YWl0OmZ1bmN0aW9uKGEsYil7aWYoYil0
aGlzLnN1YnNjcmliZSgnZXJyb3InLEZCLnVuZ3VhcmQoYikpO3RoaXMubW9uaXRv
cigndmFsdWUnLEVTNSh0aGlzLCdiaW5kJyx0cnVlLGZ1bmN0aW9uKCl7aWYodGhp
cy52YWx1ZSE9PXVuZGVmaW5lZCl7RkIudW5ndWFyZChhKSh0aGlzLnZhbHVlKTty
ZXR1cm4gdHJ1ZTt9fSkpO319KTsKRkIuc3ViY2xhc3MoJ0RhdGEuUXVlcnknLCdX
YWl0YWJsZScsZnVuY3Rpb24oKXtpZighRkIuRGF0YS5RdWVyeS5fYylGQi5EYXRh
LlF1ZXJ5Ll9jPTE7dGhpcy5uYW1lPSd2XycrRkIuRGF0YS5RdWVyeS5fYysrO30s
e2hhc0RlcGVuZGVuY3k6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aCl0
aGlzLl9oYXNEZXBlbmRlbmN5PWE7cmV0dXJuIHRoaXMuX2hhc0RlcGVuZGVuY3k7
fSxwYXJzZTpmdW5jdGlvbihhKXt2YXIgYj1GQi5TdHJpbmcuZm9ybWF0LmFwcGx5
KG51bGwsYSksYz0oL15zZWxlY3QgKC4qPykgZnJvbSAoXHcrKVxzK3doZXJlICgu
KikkL2kpLmV4ZWMoYik7dGhpcy5maWVsZHM9dGhpcy5fdG9GaWVsZHMoY1sxXSk7
dGhpcy50YWJsZT1jWzJdO3RoaXMud2hlcmU9dGhpcy5fcGFyc2VXaGVyZShjWzNd
KTtmb3IodmFyIGQ9MTtkPGEubGVuZ3RoO2QrKylpZihGQi5UeXBlLmlzVHlwZShh
W2RdLEZCLkRhdGEuUXVlcnkpKWFbZF0uaGFzRGVwZW5kZW5jeSh0cnVlKTtyZXR1
cm4gdGhpczt9LHRvRnFsOmZ1bmN0aW9uKCl7dmFyIGE9J3NlbGVjdCAnK3RoaXMu
ZmllbGRzLmpvaW4oJywnKSsnIGZyb20gJyt0aGlzLnRhYmxlKycgd2hlcmUgJztz
d2l0Y2godGhpcy53aGVyZS50eXBlKXtjYXNlICd1bmtub3duJzphKz10aGlzLndo
ZXJlLnZhbHVlO2JyZWFrO2Nhc2UgJ2luZGV4JzphKz10aGlzLndoZXJlLmtleSsn
PScrdGhpcy5fZW5jb2RlKHRoaXMud2hlcmUudmFsdWUpO2JyZWFrO2Nhc2UgJ2lu
JzppZih0aGlzLndoZXJlLnZhbHVlLmxlbmd0aD09MSl7YSs9dGhpcy53aGVyZS5r
ZXkrJz0nK3RoaXMuX2VuY29kZSh0aGlzLndoZXJlLnZhbHVlWzBdKTt9ZWxzZSBh
Kz10aGlzLndoZXJlLmtleSsnIGluICgnK0VTNSh0aGlzLndoZXJlLnZhbHVlLCdt
YXAnLHRydWUsdGhpcy5fZW5jb2RlKS5qb2luKCcsJykrJyknO2JyZWFrO31yZXR1
cm4gYTt9LF9lbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZihhKT09J3N0
cmluZyc/RkIuU3RyaW5nLnF1b3RlKGEpOmE7fSx0b1N0cmluZzpmdW5jdGlvbigp
e3JldHVybiAnIycrdGhpcy5uYW1lO30sX3RvRmllbGRzOmZ1bmN0aW9uKGEpe3Jl
dHVybiBFUzUoYS5zcGxpdCgnLCcpLCdtYXAnLHRydWUsZnVuY3Rpb24oYil7cmV0
dXJuIEVTNShiLCd0cmltJyx0cnVlKTt9KTt9LF9wYXJzZVdoZXJlOmZ1bmN0aW9u
KHMpe3ZhciByZT0oL15ccyooXHcrKVxzKj1ccyooLiopXHMqJC9pKS5leGVjKHMp
LHJlc3VsdCx2YWx1ZSx0eXBlPSd1bmtub3duJztpZihyZSl7dmFsdWU9cmVbMl07
aWYoL14oWyInXSkoPzpcXD8uKSo/XDEkLy50ZXN0KHZhbHVlKSl7dmFsdWU9ZXZh
bCh2YWx1ZSk7dHlwZT0naW5kZXgnO31lbHNlIGlmKC9eXGQrXC4/XGQqJC8udGVz
dCh2YWx1ZSkpdHlwZT0naW5kZXgnO31pZih0eXBlPT0naW5kZXgnKXtyZXN1bHQ9
e3R5cGU6J2luZGV4JyxrZXk6cmVbMV0sdmFsdWU6dmFsdWV9O31lbHNlIHJlc3Vs
dD17dHlwZTondW5rbm93bicsdmFsdWU6c307cmV0dXJuIHJlc3VsdDt9fSk7CkZC
LnByb3ZpZGUoJ0RhdGEnLHtxdWVyeTpmdW5jdGlvbihhLGIpe3ZhciBjPW5ldyBG
Qi5EYXRhLlF1ZXJ5KCkucGFyc2UoYXJndW1lbnRzKTtGQi5EYXRhLnF1ZXVlLnB1
c2goYyk7RkIuRGF0YS5fd2FpdFRvUHJvY2VzcygpO3JldHVybiBjO30sd2FpdE9u
OmZ1bmN0aW9uKGEsYil7dmFyIGM9bmV3IEZCLldhaXRhYmxlKCksZD1hLmxlbmd0
aDtpZih0eXBlb2YoYik9PSdzdHJpbmcnKXt2YXIgZT1iO2I9ZnVuY3Rpb24oZil7
cmV0dXJuIEZCLnNhZmVFdmFsKGUpO307fUVTNShhLCdmb3JFYWNoJyx0cnVlLGZ1
bmN0aW9uKGYpe2YubW9uaXRvcigndmFsdWUnLGZ1bmN0aW9uKCl7dmFyIGc9ZmFs
c2U7aWYoRkIuRGF0YS5fZ2V0VmFsdWUoZikhPT11bmRlZmluZWQpe2QtLTtnPXRy
dWU7fWlmKGQ9PT0wKXt2YXIgaD1iKEVTNShhLCdtYXAnLHRydWUsRkIuRGF0YS5f
Z2V0VmFsdWUpKTtjLnNldChoIT09dW5kZWZpbmVkP2g6dHJ1ZSk7fXJldHVybiBn
O30pO30pO3JldHVybiBjO30scHJvY2VzczpmdW5jdGlvbihhKXtGQi5EYXRhLl9w
cm9jZXNzKGEpO30sX2dldFZhbHVlOmZ1bmN0aW9uKGEpe3JldHVybiBGQi5UeXBl
LmlzVHlwZShhLEZCLldhaXRhYmxlKT9hLnZhbHVlOmE7fSxfc2VsZWN0QnlJbmRl
eDpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uZXcgRkIuRGF0YS5RdWVyeSgpO2Uu
ZmllbGRzPWE7ZS50YWJsZT1iO2Uud2hlcmU9e3R5cGU6J2luZGV4JyxrZXk6Yyx2
YWx1ZTpkfTtGQi5EYXRhLnF1ZXVlLnB1c2goZSk7RkIuRGF0YS5fd2FpdFRvUHJv
Y2VzcygpO3JldHVybiBlO30sX3dhaXRUb1Byb2Nlc3M6ZnVuY3Rpb24oKXtpZihG
Qi5EYXRhLnRpbWVyPDApRkIuRGF0YS50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7RkIuRGF0YS5fcHJvY2VzcygpO30sMTApO30sX3Byb2Nlc3M6ZnVuY3Rpb24o
YSl7RkIuRGF0YS50aW1lcj0tMTt2YXIgYj17fSxjPUZCLkRhdGEucXVldWU7aWYo
IWMubGVuZ3RoKXJldHVybjtGQi5EYXRhLnF1ZXVlPVtdO2Zvcih2YXIgZD0wO2Q8
Yy5sZW5ndGg7ZCsrKXt2YXIgZT1jW2RdO2lmKGUud2hlcmUudHlwZT09J2luZGV4
JyYmIWUuaGFzRGVwZW5kZW5jeSgpKXtGQi5EYXRhLl9tZXJnZUluZGV4UXVlcnko
ZSxiKTt9ZWxzZSBiW2UubmFtZV09ZTt9dmFyIGY9e3E6e319O0ZCLmNvcHkoZi5x
LGIsdHJ1ZSxmdW5jdGlvbihnKXtyZXR1cm4gZy50b0ZxbCgpO30pO2lmKGEpZi5h
Y2Nlc3NfdG9rZW49YTtGQi5hcGkoJy9mcWwnLCdHRVQnLGYsZnVuY3Rpb24oZyl7
aWYoZy5lcnJvcil7RVM1KEVTNSgnT2JqZWN0Jywna2V5cycsZmFsc2UsYiksJ2Zv
ckVhY2gnLHRydWUsZnVuY3Rpb24oaCl7YltoXS5lcnJvcihuZXcgRXJyb3IoZy5l
cnJvci5tZXNzYWdlKSk7fSk7fWVsc2UgRVM1KGcuZGF0YSwnZm9yRWFjaCcsdHJ1
ZSxmdW5jdGlvbihoKXtiW2gubmFtZV0uc2V0KGguZnFsX3Jlc3VsdF9zZXQpO30p
O30pO30sX21lcmdlSW5kZXhRdWVyeTpmdW5jdGlvbihhLGIpe3ZhciBjPWEud2hl
cmUua2V5LGQ9YS53aGVyZS52YWx1ZSxlPSdpbmRleF8nK2EudGFibGUrJ18nK2Ms
Zj1iW2VdO2lmKCFmKXtmPWJbZV09bmV3IEZCLkRhdGEuUXVlcnkoKTtmLmZpZWxk
cz1bY107Zi50YWJsZT1hLnRhYmxlO2Yud2hlcmU9e3R5cGU6J2luJyxrZXk6Yyx2
YWx1ZTpbXX07fUZCLkFycmF5Lm1lcmdlKGYuZmllbGRzLGEuZmllbGRzKTtGQi5B
cnJheS5tZXJnZShmLndoZXJlLnZhbHVlLFtkXSk7Zi53YWl0KGZ1bmN0aW9uKGcp
e2Euc2V0KEVTNShnLCdmaWx0ZXInLHRydWUsZnVuY3Rpb24oaCl7cmV0dXJuIGhb
Y109PWQ7fSkpO30pO30sdGltZXI6LTEscXVldWU6W119KTsKRkIucHJvdmlkZSgn
RnJpY3Rpb25sZXNzJyx7X2FsbG93ZWRSZWNpcGllbnRzOnt9LF91c2VGcmljdGlv
bmxlc3M6ZmFsc2UsX3VwZGF0ZVJlY2lwaWVudHM6ZnVuY3Rpb24oKXtGQi5Gcmlj
dGlvbmxlc3MuX2FsbG93ZWRSZWNpcGllbnRzPXt9O0ZCLmFwaSgnL21lL2FwcHJl
cXVlc3Rmb3JtZXJyZWNpcGllbnRzJyxmdW5jdGlvbihhKXtpZighYXx8YS5lcnJv
cilyZXR1cm47RVM1KGEuZGF0YSwnZm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihiKXtG
Qi5GcmljdGlvbmxlc3MuX2FsbG93ZWRSZWNpcGllbnRzW2IucmVjaXBpZW50X2lk
XT10cnVlO30sZmFsc2UpO30pO30saW5pdDpmdW5jdGlvbigpe0ZCLkZyaWN0aW9u
bGVzcy5fdXNlRnJpY3Rpb25sZXNzPXRydWU7RkIuZ2V0TG9naW5TdGF0dXMoZnVu
Y3Rpb24oYSl7aWYoYS5zdGF0dXM9PSdjb25uZWN0ZWQnKUZCLkZyaWN0aW9ubGVz
cy5fdXBkYXRlUmVjaXBpZW50cygpO30pO0ZCLkV2ZW50LnN1YnNjcmliZSgnYXV0
aC5sb2dpbicsZnVuY3Rpb24oYSl7aWYoYS5hdXRoUmVzcG9uc2UpRkIuRnJpY3Rp
b25sZXNzLl91cGRhdGVSZWNpcGllbnRzKCk7fSk7fSxfcHJvY2Vzc1JlcXVlc3RS
ZXNwb25zZTpmdW5jdGlvbihhLGIpe3JldHVybiBmdW5jdGlvbihjKXt2YXIgZD1j
JiZjLnVwZGF0ZWRfZnJpY3Rpb25sZXNzO2lmKEZCLkZyaWN0aW9ubGVzcy5fdXNl
RnJpY3Rpb25sZXNzJiZkKUZCLkZyaWN0aW9ubGVzcy5fdXBkYXRlUmVjaXBpZW50
cygpO2lmKGMpe2lmKCFiJiZjLmZyaWN0aW9ubGVzcyl7RkIuRGlhbG9nLl9oaWRl
TG9hZGVyKCk7RkIuRGlhbG9nLl9yZXN0b3JlQm9keVBvc2l0aW9uKCk7RkIuRGlh
bG9nLl9oaWRlSVBhZE92ZXJsYXkoKTt9ZGVsZXRlIGMuZnJpY3Rpb25sZXNzO2Rl
bGV0ZSBjLnVwZGF0ZWRfZnJpY3Rpb25sZXNzO31hJiZhKGMpO307fSxpc0FsbG93
ZWQ6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIGZhbHNlO2lmKHR5cGVvZiBhPT09
J251bWJlcicpcmV0dXJuIEZCLkZyaWN0aW9ubGVzcy5fYWxsb3dlZFJlY2lwaWVu
dHNbYV07aWYodHlwZW9mIGE9PT0nc3RyaW5nJylhPWEuc3BsaXQoJywnKTthPUVT
NShhLCdtYXAnLHRydWUsZnVuY3Rpb24oZCl7cmV0dXJuIEVTNShkLCd0cmltJyx0
cnVlKTt9KTt2YXIgYj10cnVlLGM9ZmFsc2U7RVM1KGEsJ2ZvckVhY2gnLHRydWUs
ZnVuY3Rpb24oZCl7Yj1iJiZGQi5GcmljdGlvbmxlc3MuX2FsbG93ZWRSZWNpcGll
bnRzW2RdO2M9dHJ1ZTt9LGZhbHNlKTtyZXR1cm4gYiYmYzt9fSk7CkZCLnByb3Zp
ZGUoJ0Nvb2tpZScse19kb21haW46bnVsbCxfZW5hYmxlZDpmYWxzZSxzZXRFbmFi
bGVkOmZ1bmN0aW9uKGEpe0ZCLkNvb2tpZS5fZW5hYmxlZD0hIWE7aWYodHlwZW9m
IGE9PSdzdHJpbmcnKUZCLkNvb2tpZS5fZG9tYWluPWE7fSxnZXRFbmFibGVkOmZ1
bmN0aW9uKCl7cmV0dXJuIEZCLkNvb2tpZS5fZW5hYmxlZDt9LGxvYWRNZXRhOmZ1
bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY29va2llLm1hdGNoKCdcXGJmYm1fJytG
Qi5fYXBpS2V5Kyc9KFteO10qKVxcYicpLGI7aWYoYSl7Yj1GQi5RUy5kZWNvZGUo
YVsxXSk7aWYoIUZCLkNvb2tpZS5fZG9tYWluKUZCLkNvb2tpZS5fZG9tYWluPWIu
YmFzZV9kb21haW47fXJldHVybiBiO30sbG9hZFNpZ25lZFJlcXVlc3Q6ZnVuY3Rp
b24oKXt2YXIgYT1kb2N1bWVudC5jb29raWUubWF0Y2goJ1xcYmZic3JfJytGQi5f
YXBpS2V5Kyc9KFteO10qKVxcYicpO2lmKCFhKXJldHVybiBudWxsO3JldHVybiBh
WzFdO30sc2V0U2lnbmVkUmVxdWVzdENvb2tpZTpmdW5jdGlvbihhLGIsYyl7aWYo
IWEpdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBwYXNzZWQgdG8gRkIuQ29va2llLnNl
dFNpZ25lZFJlcXVlc3RDb29raWUgJysnd2FzIGVtcHR5LicpO2lmKCFGQi5Db29r
aWUuZ2V0RW5hYmxlZCgpKXJldHVybjtpZihjKXt2YXIgZD1GQi5RUy5lbmNvZGUo
e2Jhc2VfZG9tYWluOmN9KTtGQi5Db29raWUuc2V0UmF3KCdmYm1fJyxkLGIsYyk7
fUZCLkNvb2tpZS5fZG9tYWluPWM7RkIuQ29va2llLnNldFJhdygnZmJzcl8nLGEs
YixjKTt9LGNsZWFyU2lnbmVkUmVxdWVzdENvb2tpZTpmdW5jdGlvbigpe2lmKCFG
Qi5Db29raWUuZ2V0RW5hYmxlZCgpKXJldHVybjtGQi5Db29raWUuc2V0UmF3KCdm
YnNyXycsJycsMCxGQi5Db29raWUuX2RvbWFpbik7fSxzZXRSYXc6ZnVuY3Rpb24o
YSxiLGMsZCl7aWYoZCl7ZG9jdW1lbnQuY29va2llPWErRkIuX2FwaUtleSsnPTsg
ZXhwaXJlcz1XZWQsIDA0IEZlYiAyMDA0IDA4OjAwOjAwIEdNVDsnO2RvY3VtZW50
LmNvb2tpZT1hK0ZCLl9hcGlLZXkrJz07IGV4cGlyZXM9V2VkLCAwNCBGZWIgMjAw
NCAwODowMDowMCBHTVQ7JysnZG9tYWluPScrbG9jYXRpb24uaG9zdG5hbWUrJzsn
O312YXIgZT1uZXcgRGF0ZShjKS50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tp
ZT1hK0ZCLl9hcGlLZXkrJz0nK2IrKGImJmM9PT0wPycnOic7IGV4cGlyZXM9Jytl
KSsnOyBwYXRoPS8nKyhkPyc7IGRvbWFpbj0nK2Q6JycpO319KTsKRkIuRG9tLnJl
YWR5KGZ1bmN0aW9uKCl7RkIucmVxdWlyZSgnRE9NV3JhcHBlcicpLnNldFJvb3Qo
RkIuQ29udGVudC5hcHBlbmRIaWRkZW4oZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2JykpKTt9KTtGQi5yZXF1aXJlKCdMb2cnKS5sZXZlbD0xO0ZCLnByb3ZpZGUo
Jycse2luaXRTaXRldmFyczp7fSxpbml0OmZ1bmN0aW9uKGEpe2lmKEZCLl9pbml0
aWFsaXplZClGQi5sb2coJ0ZCLmluaXQgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQg
LSB0aGlzIGNvdWxkIGluZGljYXRlIGEgcHJvYmxlbScpO2lmKHR5cGVvZiBhPT09
J3N0cmluZycpe0ZCLmxvZygnRkIuaW5pdCBjYWxsZWQgd2l0aCBpbnZhbGlkIHBh
cmFtZXRlcnMnKTthPXthcGlLZXk6YX07fWE9RkIuY29weShhfHx7fSx7bG9nZ2lu
Zzp0cnVlLHN0YXR1czp0cnVlfSk7aWYoIWEubG9nZ2luZyYmRVM1KHdpbmRvdy5s
b2NhdGlvbi50b1N0cmluZygpLCdpbmRleE9mJyx0cnVlLCdmYl9kZWJ1Zz0xJyk8
MClGQi5fbG9nZ2luZz1mYWxzZTtpZignYXBwSWQnIGluIGF8fCdhcGlLZXknIGlu
IGEpe0ZCLl9hcGlLZXk9YS5hcHBJZHx8YS5hcGlLZXk7RkIuUnVudGltZS5zZXRD
bGllbnRJRChGQi5fYXBpS2V5KTt9aWYoJ3Njb3BlJyBpbiBhKUZCLl9zY29wZT1h
LnNjb3BlO2lmKCFGQi5faW5pdGlhbGl6ZWQpe0ZCLlhELmluaXQoYS5jaGFubmVs
VXJsP0ZCLlVSSS5yZXNvbHZlKGEuY2hhbm5lbFVybCk6bnVsbCxhLnhkUHJveHlO
YW1lKTtpZihGQi5VQS5tb2JpbGUoKSYmRkIuVGVtcGxhdGVVSSYmRkIuVGVtcGxh
dGVEYXRhJiZGQi5UZW1wbGF0ZURhdGEuX2VuYWJsZWQmJmEudXNlQ2FjaGVkRGlh
bG9ncyE9PWZhbHNlKXtGQi5UZW1wbGF0ZVVJLmluaXQoKTtGQi5FdmVudC5zdWJz
Y3JpYmUoJ2F1dGguc3RhdHVzQ2hhbmdlJyxGQi5UZW1wbGF0ZURhdGEudXBkYXRl
KTt9fWlmKEZCLl9hcGlLZXkpe0ZCLkNvb2tpZS5zZXRFbmFibGVkKGEuY29va2ll
KTtpZihhLmF1dGhSZXNwb25zZSl7RkIuQXV0aC5zZXRBdXRoUmVzcG9uc2UoYS5h
dXRoUmVzcG9uc2UsJ2Nvbm5lY3RlZCcpO31lbHNle3ZhciBiPUZCLkNvb2tpZS5s
b2FkU2lnbmVkUmVxdWVzdCgpO3RyeXt2YXIgZD1GQi5BdXRoLnBhcnNlU2lnbmVk
UmVxdWVzdChiKTtGQi5SdW50aW1lLnNldFVzZXJJRChkLnVzZXJfaWR8fDApO31j
YXRjaChjKXtGQi5Db29raWUuY2xlYXJTaWduZWRSZXF1ZXN0Q29va2llKCk7fUZC
LkNvb2tpZS5sb2FkTWV0YSgpO31pZihhLnN0YXR1cylGQi5nZXRMb2dpblN0YXR1
cygpO31pZihGQi5DYW52YXMmJkZCLl9pbkNhbnZhcyl7RkIuQ2FudmFzLl9zZXRI
aWRlRmxhc2hDYWxsYmFjayhhLmhpZGVGbGFzaENhbGxiYWNrKTtpZihGQi5DYW52
YXMuUHJlZmV0Y2hlcilGQi5DYW52YXMuUHJlZmV0Y2hlci5fbWF5YmVTYW1wbGUo
KTt9aWYoRkIuWEZCTUwmJmEueGZibWwpe2lmKEZCLlhGQk1MLklmcmFtZVdpZGdl
dClGQi5FdmVudC5zdWJzY3JpYmUoJ3hmYm1sLnBhcnNlJyxmdW5jdGlvbigpe0ZC
LlhGQk1MLklmcmFtZVdpZGdldC5iYXRjaFdpZGdldFBpcGVSZXF1ZXN0cygpO30p
O3dpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoRkIuaW5pdFNpdGV2YXJz
LnBhcnNlWEZCTUxCZWZvcmVEb21SZWFkeSl7RkIuWEZCTUwucGFyc2UoKTt2YXIg
ZT13aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtGQi5YRkJNTC5wYXJzZSgp
O30sMTAwKTtGQi5Eb20ucmVhZHkoZnVuY3Rpb24oKXt3aW5kb3cuY2xlYXJJbnRl
cnZhbChlKTtGQi5YRkJNTC5wYXJzZSgpO30pO31lbHNlIEZCLkRvbS5yZWFkeShG
Qi5YRkJNTC5wYXJzZSk7fSwwKTt9aWYoIUZCLl9pbml0aWFsaXplZCl7RkIuX2lu
aXRpYWxpemVkPXRydWU7RkIuUnVudGltZS5zZXRJbml0aWFsaXplZCh0cnVlKTtG
Qi5SdW50aW1lLnN1YnNjcmliZSgnQWNjZXNzVG9rZW4uY2hhbmdlJyxmdW5jdGlv
bihlKXtpZighZSYmRkIuUnVudGltZS5nZXRMb2dpblN0YXR1cygpPT09J2Nvbm5l
Y3RlZCcpRkIuZ2V0TG9naW5TdGF0dXMobnVsbCx0cnVlKTt9KTt9aWYoYS5mcmlj
dGlvbmxlc3NSZXF1ZXN0cylGQi5GcmljdGlvbmxlc3MuaW5pdCgpO319KTsKd2lu
ZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT0vKGNvbm5lY3QuZmFjZWJv
b2submV0fGZhY2Vib29rLmNvbVwvYXNzZXRzLnBocCkuKj8jKC4qKS87RVM1KEZC
LkFycmF5LnRvQXJyYXkoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Nj
cmlwdCcpKSwnZm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihiKXtpZihiLnNyYyl7dmFy
IGM9YS5leGVjKGIuc3JjKTtpZihjKXt2YXIgZD1GQi5RUy5kZWNvZGUoY1syXSk7
RVM1KEZCLkFycmF5LCdmb3JFYWNoJyx0cnVlLGQsZnVuY3Rpb24oZSxmKXtpZihl
PT0nMCcpZFtmXT0wO30pO0ZCLmluaXQoZCk7fX19KTtpZih3aW5kb3cuZmJBc3lu
Y0luaXQmJiF3aW5kb3cuZmJBc3luY0luaXQuaGFzUnVuKXt3aW5kb3cuZmJBc3lu
Y0luaXQuaGFzUnVuPXRydWU7d2luZG93LmZiQXN5bmNJbml0KCk7fX0sMCk7CkZC
LnByb3ZpZGUoJ05hdGl2ZScse05BVElWRV9SRUFEWV9FVkVOVDonZmJOYXRpdmVS
ZWFkeScsb25yZWFkeTpmdW5jdGlvbihhKXtpZighRkIuVUEubmF0aXZlQXBwKCkp
e0ZCLmxvZygnRkIuTmF0aXZlLm9ucmVhZHkgb25seSB3b3JrcyB3aGVuIHRoZSBw
YWdlIGlzIHJlbmRlcmVkICcrJ2luIGEgV2ViVmlldyBvZiB0aGUgbmF0aXZlIEZh
Y2Vib29rIGFwcC4gVGVzdCBpZiB0aGlzIGlzIHRoZSAnKydjYXNlIGNhbGxpbmcg
RkIuVUEubmF0aXZlQXBwKCknKTtyZXR1cm47fWlmKHdpbmRvdy5fX2ZiTmF0aXZl
JiYhdGhpcy5uYXRpdmVSZWFkeSlGQi5wcm92aWRlKCdOYXRpdmUnLHdpbmRvdy5f
X2ZiTmF0aXZlKTtpZih0aGlzLm5hdGl2ZVJlYWR5KXthKCk7fWVsc2V7dmFyIGI9
ZnVuY3Rpb24oYyl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoRkIuTmF0aXZl
Lk5BVElWRV9SRUFEWV9FVkVOVCxiKTtGQi5OYXRpdmUub25yZWFkeShhKTt9O3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKEZCLk5hdGl2ZS5OQVRJVkVfUkVBRFlfRVZF
TlQsYixmYWxzZSk7fX19KTsKRkIucHJvdmlkZSgnVUlTZXJ2ZXIuTWV0aG9kcycs
eydwYXkucHJvbXB0Jzp7dHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3ZhciBiPUZCLlhE
LmhhbmRsZXIoZnVuY3Rpb24oYyl7YS5jYihFUzUoJ0pTT04nLCdwYXJzZScsZmFs
c2UsYy5yZXNwb25zZSkpO30sJ3BhcmVudC5mcmFtZXNbJysod2luZG93Lm5hbWV8
fCdpZnJhbWVfY2FudmFzJykrJ10nKTthLnBhcmFtcy5jaGFubmVsPWI7RkIuQXJi
aXRlci5pbmZvcm0oJ1BheS5Qcm9tcHQnLGEucGFyYW1zKTtyZXR1cm4gZmFsc2U7
fX19KTtGQi5wcm92aWRlKCdVSVNlcnZlci5NZXRob2RzJyx7cGF5OntzaXplOnt3
aWR0aDo1NTUsaGVpZ2h0OjEyMH0sbm9IdHRwczp0cnVlLGNvbm5lY3REaXNwbGF5
Oidwb3B1cCcsdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe2lmKCFGQi5faW5DYW52YXMp
e2EucGFyYW1zLm9yZGVyX2luZm89RVM1KCdKU09OJywnc3RyaW5naWZ5JyxmYWxz
ZSxhLnBhcmFtcy5vcmRlcl9pbmZvKTtyZXR1cm4gYTt9dmFyIGI9RkIuWEQuaGFu
ZGxlcihmdW5jdGlvbihjKXthLmNiKGMucmVzcG9uc2U/RVM1KCdKU09OJywncGFy
c2UnLGZhbHNlLGMucmVzcG9uc2UpOm51bGwpO30sJ3BhcmVudC5mcmFtZXNbJyso
d2luZG93Lm5hbWV8fCdpZnJhbWVfY2FudmFzJykrJ10nKTthLnBhcmFtcy5jaGFu
bmVsPWI7YS5wYXJhbXMudWlzZXJ2ZXI9dHJ1ZTtGQi5BcmJpdGVyLmluZm9ybSgn
UGF5LlByb21wdCcsYS5wYXJhbXMpO3JldHVybiBmYWxzZTt9fX0pOwpGQi5wcm92
aWRlKCdIZWxwZXInLHtpc1VzZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGE8Mi4yZSsw
OXx8KGE+PTFlKzE0JiZhPD0xMDAwOTk5OTk5ODk5OTkpfHwoYT49OC45ZSsxMyYm
YTw9ODk5OTk5OTk5OTk5OTkpO30sZ2V0TG9nZ2VkSW5Vc2VyOmZ1bmN0aW9uKCl7
cmV0dXJuIEZCLmdldFVzZXJJRCgpO30sdXBwZXJDYXNlRmlyc3RDaGFyOmZ1bmN0
aW9uKGEpe2lmKGEubGVuZ3RoPjApe3JldHVybiBhLnN1YnN0cigwLDEpLnRvVXBw
ZXJDYXNlKCkrYS5zdWJzdHIoMSk7fWVsc2UgcmV0dXJuIGE7fSxnZXRQcm9maWxl
TGluazpmdW5jdGlvbihhLGIsYyl7Yz1jfHwoYT9GQi5nZXREb21haW4oJ3d3dycp
Kydwcm9maWxlLnBocD9pZD0nK2EudWlkOm51bGwpO2lmKGMpYj0nPGEgY2xhc3M9
ImZiX2xpbmsiIGhyZWY9IicrYysnIj4nK2IrJzwvYT4nO3JldHVybiBiO30saW52
b2tlSGFuZGxlcjpmdW5jdGlvbihhLGIsYyl7aWYoYSlpZih0eXBlb2YgYT09PSdz
dHJpbmcnKXtGQi5zYWZlRXZhbChhKTt9ZWxzZSBpZihhLmFwcGx5KWEuYXBwbHko
YixjfHxbXSk7fSxmaXJlRXZlbnQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iLl9hdHRy
LmhyZWY7Yi5maXJlKGEsYyk7RkIuRXZlbnQuZmlyZShhLGMsYik7fSxleGVjdXRl
RnVuY3Rpb25CeU5hbWU6ZnVuY3Rpb24oYSl7dmFyIGI9QXJyYXkucHJvdG90eXBl
LnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLGM9YS5zcGxpdCgiLiIpLGQ9Yy5wb3Ao
KSxlPXdpbmRvdztmb3IodmFyIGY9MDtmPGMubGVuZ3RoO2YrKyllPWVbY1tmXV07
cmV0dXJuIGVbZF0uYXBwbHkodGhpcyxiKTt9fSk7CkZCLnByb3ZpZGUoJ1RlbXBs
YXRlRGF0YScse19pbml0aWFsaXplZDpmYWxzZSxfdmVyc2lvbjowLF9yZXNwb25z
ZTpudWxsLF9sb2NhbFN0b3JhZ2VUaW1lb3V0OjYwKjYwKjI0LF9lbmFibGVkOnRy
dWUsZW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiBGQi5UZW1wbGF0ZURhdGEuX2Vu
YWJsZWQmJkZCLlRlbXBsYXRlRGF0YS5faW5pdGlhbGl6ZWQmJkZCLlRlbXBsYXRl
RGF0YS5zdXBwb3J0c0xvY2FsU3RvcmFnZSgpJiZGQi5SdW50aW1lLmdldExvZ2lu
U3RhdHVzKCk9PSdjb25uZWN0ZWQnJiZGQi5UZW1wbGF0ZURhdGEuZ2V0UmVzcG9u
c2UoKTt9LHN1cHBvcnRzTG9jYWxTdG9yYWdlOmZ1bmN0aW9uKCl7dHJ5e3JldHVy
biAnbG9jYWxTdG9yYWdlJyBpbiB3aW5kb3cmJndpbmRvdy5sb2NhbFN0b3JhZ2Uh
PT1udWxsO31jYXRjaChhKXtyZXR1cm4gZmFsc2U7fX0sX2lzU3RhbGU6ZnVuY3Rp
b24oYSl7aWYoIWF8fCFhLnZlcnNpb258fGEudmVyc2lvbiE9RkIuVGVtcGxhdGVE
YXRhLl92ZXJzaW9ufHxhLmN1cnJlbnRVc2VySUQhPUZCLmdldFVzZXJJRCgpKXJl
dHVybiB0cnVlO3ZhciBiPU1hdGgucm91bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUo
KSk7cmV0dXJuIChiLWEuc2V0QXQpLzEwMDA+RkIuVGVtcGxhdGVEYXRhLl9sb2Nh
bFN0b3JhZ2VUaW1lb3V0O30sZ2V0UmVzcG9uc2U6ZnVuY3Rpb24oKXt2YXIgYT1G
Qi5UZW1wbGF0ZURhdGE7dHJ5e2EuX3Jlc3BvbnNlPWEuX3Jlc3BvbnNlfHwoYS5z
dXBwb3J0c0xvY2FsU3RvcmFnZSgpJiZFUzUoJ0pTT04nLCdwYXJzZScsZmFsc2Us
bG9jYWxTdG9yYWdlLkZCX3RlbXBsYXRlRGF0YVJlc3BvbnNlfHwibnVsbCIpKTt9
Y2F0Y2goYil7YS5fcmVzcG9uc2U9bnVsbDt9aWYoYS5faXNTdGFsZShhLl9yZXNw
b25zZSkpYS5zYXZlUmVzcG9uc2UobnVsbCk7cmV0dXJuIGEuX3Jlc3BvbnNlO30s
c2F2ZVJlc3BvbnNlOmZ1bmN0aW9uKGEpe0ZCLlRlbXBsYXRlRGF0YS5fcmVzcG9u
c2U9YTtpZihGQi5UZW1wbGF0ZURhdGEuc3VwcG9ydHNMb2NhbFN0b3JhZ2UoKSls
b2NhbFN0b3JhZ2UuRkJfdGVtcGxhdGVEYXRhUmVzcG9uc2U9RVM1KCdKU09OJywn
c3RyaW5naWZ5JyxmYWxzZSxhKTt9LGdldERhdGE6ZnVuY3Rpb24oKXt2YXIgYT1G
Qi5UZW1wbGF0ZURhdGEuZ2V0UmVzcG9uc2UoKTtyZXR1cm4gYT9hLmRhdGE6e307
fSxpbml0OmZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybjtGQi5UZW1wbGF0ZURhdGEu
X2luaXRpYWxpemVkPXRydWU7RkIuVGVtcGxhdGVEYXRhLl92ZXJzaW9uPWE7aWYo
RkIuVGVtcGxhdGVEYXRhLnN1cHBvcnRzTG9jYWxTdG9yYWdlKCkmJiEoJ0ZCX3Rl
bXBsYXRlRGF0YVJlc3BvbnNlJyBpbiBsb2NhbFN0b3JhZ2UpKUZCLlRlbXBsYXRl
RGF0YS5jbGVhcigpO30sY2xlYXI6ZnVuY3Rpb24oKXtGQi5UZW1wbGF0ZURhdGEu
c2F2ZVJlc3BvbnNlKG51bGwpO30sdXBkYXRlOmZ1bmN0aW9uKGEpe3ZhciBiPUZC
LlJ1bnRpbWUuZ2V0TG9naW5TdGF0dXMoKTtpZihiIT0nY29ubmVjdGVkJylGQi5U
ZW1wbGF0ZURhdGEuY2xlYXIoKTtpZihiPT0nY29ubmVjdGVkJyYmIUZCLlRlbXBs
YXRlRGF0YS5nZXRSZXNwb25zZSgpKUZCLmFwaSh7bWV0aG9kOidkaWFsb2cudGVt
cGxhdGVfZGF0YSd9LGZ1bmN0aW9uKGMpe2lmKCdlcnJvcl9jb2RlJyBpbiBjKXJl
dHVybjt2YXIgZD17ZGF0YTpjLGN1cnJlbnRVc2VySUQ6RkIuZ2V0VXNlcklEKCks
c2V0QXQ6KG5ldyBEYXRlKCkpLmdldFRpbWUoKSx2ZXJzaW9uOkZCLlRlbXBsYXRl
RGF0YS5fdmVyc2lvbn07RkIuVGVtcGxhdGVEYXRhLnNhdmVSZXNwb25zZShkKTt9
KTt9fSk7CkZCLnN1YmNsYXNzKCdUZW1wbGF0ZVVJJywnT2JqJyxmdW5jdGlvbihh
LGIpe3RoaXMubWV0aG9kPWE7dmFyIGM9RkIuVUEubmF0aXZlQXBwKCk/MDoxLGQ9
e2Rpc3BsYXk6J3RvdWNoJyxwcmV2aWV3X3RlbXBsYXRlOjEsaW5faWZyYW1lOmMs
bG9jYWxlOkZCLl9sb2NhbGUsdjpGQi5UZW1wbGF0ZVVJLl92ZXJzaW9uLHVzZXJf
YWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudH07aWYod2luZG93LmRldmljZVBpeGVs
UmF0aW8pZC5tX3BpeGVsX3JhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO3Zh
ciBlPUZCLlFTLmVuY29kZShkKTt0aGlzLmNhY2hlZENhbGw9e3VybDpGQi5nZXRE
b21haW4oJ3N0YXRpY2ZiJykrJ2RpYWxvZy8nK2ErJz8nK2UsZnJhbWVOYW1lOkZC
Lmd1aWQoKSxpZDpGQi5ndWlkKCksc2l6ZTpGQi5VSVNlcnZlci5nZXREZWZhdWx0
U2l6ZSgpLGhpZGVMb2FkZXI6dHJ1ZX07RkIuWEQuaGFuZGxlcihFUzUodGhpcywn
YmluZCcsdHJ1ZSxmdW5jdGlvbihnKXtpZihnLnR5cGU9PSdnZXRQYXJhbXMnKXRo
aXMuc2V0UHJvcGVydHkoJ2dldFBhcmFtc0NiJyxnLnJldHVybkNiKTt9KSwncGFy
ZW50Jyx0cnVlLHRoaXMuY2FjaGVkQ2FsbC5mcmFtZU5hbWUpO2lmKGMpe0ZCLlVJ
U2VydmVyLmlmcmFtZSh0aGlzLmNhY2hlZENhbGwpO0ZCLkRpYWxvZy5oaWRlKHRo
aXMuY2FjaGVkQ2FsbC5yb290KTt9ZWxzZSBpZihiJiYhRkIuVGVtcGxhdGVVSS5f
cHJlbG9hZHNbdGhpcy5jYWNoZWRDYWxsLnVybF0pe3ZhciBmPWRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpO0ZCLlRlbXBsYXRlVUkuX3ByZWxvYWRzW3RoaXMu
Y2FjaGVkQ2FsbC51cmxdPXtjb250YWluZXI6Zn07RkIuQ29udGVudC5pbnNlcnRJ
ZnJhbWUoe3VybDp0aGlzLmNhY2hlZENhbGwudXJsLHJvb3Q6RkIuQ29udGVudC5h
cHBlbmRIaWRkZW4oZil9KTt9fSx7dXNlOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmNh
Y2hlZENhbGwucm9vdCl7RkIuVUlTZXJ2ZXIudG91Y2godGhpcy5jYWNoZWRDYWxs
KTt2YXIgYj1GQi5UZW1wbGF0ZVVJLl9wcmVsb2Fkc1t0aGlzLmNhY2hlZENhbGwu
dXJsXTtpZihiJiZiLmNvbnRhaW5lcil7Yi5jb250YWluZXIucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZChiLmNvbnRhaW5lcik7ZGVsZXRlIGIuY29udGFpbmVyO319YS51
aV9jcmVhdGVkPXRydWU7YS5yb290PXRoaXMuY2FjaGVkQ2FsbC5yb290O0ZCLlVJ
U2VydmVyLnNldExvYWRlZE5vZGUoYSxGQi5VSVNlcnZlci5nZXRMb2FkZWROb2Rl
KHRoaXMuY2FjaGVkQ2FsbC5pZCkpO2RlbGV0ZSBGQi5VSVNlcnZlci5fbG9hZGVk
Tm9kZXNbdGhpcy5jYWNoZWRDYWxsLmlkXTt2YXIgYz1GQi5EaWFsb2cuX2RpYWxv
Z3NbYS5pZF07RkIuRGlhbG9nLl9kaWFsb2dzW3RoaXMuY2FjaGVkQ2FsbC5pZF09
YztjLmlkPXRoaXMuY2FjaGVkQ2FsbC5pZDtkZWxldGUgRkIuRGlhbG9nLl9kaWFs
b2dzW2EuaWRdO0ZCLlVJU2VydmVyLmdldExvYWRlZE5vZGUoYSkuZmJDYWxsSUQ9
dGhpcy5jYWNoZWRDYWxsLmlkO3RoaXMuY2FjaGVkQ2FsbC5pZD1hLmlkO3ZhciBk
PXt9O0ZCLmNvcHkoZCxhLnBhcmFtcyk7RkIuY29weShkLEZCLlRlbXBsYXRlRGF0
YS5nZXREYXRhKClbdGhpcy5tZXRob2RdKTtkLmZyaWN0aW9ubGVzcz1GQi5UZW1w
bGF0ZVVJLmlzRnJpY3Rpb25sZXNzQXBwUmVxdWVzdCh0aGlzLm1ldGhvZCxkKTtk
LmNvbW1vbj1GQi5UZW1wbGF0ZURhdGEuZ2V0RGF0YSgpLmNvbW1vbjtkLm1ldGhv
ZD10aGlzLm1ldGhvZDt0aGlzLnNldFBhcmFtcyhkKTtpZihGQi5VQS5uYXRpdmVB
cHAoKSlGQi5VSVNlcnZlci5fcG9wdXBNb25pdG9yKCk7fSxzZXRQYXJhbXM6ZnVu
Y3Rpb24oYSl7dGhpcy5tb25pdG9yKCdnZXRQYXJhbXNDYicsRVM1KHRoaXMsJ2Jp
bmQnLHRydWUsZnVuY3Rpb24oKXtpZih0aGlzLmdldFBhcmFtc0NiKXt2YXIgYj1m
cmFtZXNbdGhpcy5jYWNoZWRDYWxsLmZyYW1lTmFtZV18fEZCLlVJU2VydmVyLmdl
dExvYWRlZE5vZGUodGhpcy5jYWNoZWRDYWxsKTtiLnBvc3RNZXNzYWdlKEVTNSgn
SlNPTicsJ3N0cmluZ2lmeScsZmFsc2Use3BhcmFtczphLGNiOnRoaXMuZ2V0UGFy
YW1zQ2J9KSwnKicpO3JldHVybiB0cnVlO319KSk7fX0pO0ZCLnByb3ZpZGUoJ1Rl
bXBsYXRlVUknLHtfdGltZXI6bnVsbCxfY2FjaGU6e30sX3ByZWxvYWRzOnt9LF92
ZXJzaW9uOjAsaW5pdDpmdW5jdGlvbigpe0ZCLlRlbXBsYXRlRGF0YS5pbml0KEZC
LlRlbXBsYXRlVUkuX3ZlcnNpb24pO0ZCLlRlbXBsYXRlVUkuaW5pdENhY2hlKCk7
fSx1c2VDYWNoZWRVSTpmdW5jdGlvbihhLGIpe3RyeXtGQi5UZW1wbGF0ZVVJLnBv
cHVsYXRlQ2FjaGUoKTtjYWNoZT1GQi5UZW1wbGF0ZVVJLl9jYWNoZVthXTtkZWxl
dGUgRkIuVGVtcGxhdGVVSS5fY2FjaGVbYV07Y2FjaGUudXNlKGIpO31jYXRjaChj
KXtGQi5UZW1wbGF0ZURhdGEuY2xlYXIoKTt9fSxwb3B1bGF0ZUNhY2hlOmZ1bmN0
aW9uKGEpe2lmKCFGQi5UZW1wbGF0ZURhdGEuZW5hYmxlZCgpfHwhRkIuVUEubW9i
aWxlKCkpcmV0dXJuO2NsZWFySW50ZXJ2YWwoRkIuVGVtcGxhdGVVSS5fdGltZXIp
O3ZhciBiPXtmZWVkOnRydWUsYXBwcmVxdWVzdHM6dHJ1ZX07Zm9yKHZhciBjIGlu
IGIpaWYoIShjIGluIEZCLlRlbXBsYXRlVUkuX2NhY2hlKSlGQi5UZW1wbGF0ZVVJ
Ll9jYWNoZVtjXT1uZXcgRkIuVGVtcGxhdGVVSShjLGEpO30saW5pdENhY2hlOmZ1
bmN0aW9uKCl7RkIuVGVtcGxhdGVVSS5fdGltZXI9c2V0SW50ZXJ2YWwoZnVuY3Rp
b24oKXtGQi5UZW1wbGF0ZVVJLnBvcHVsYXRlQ2FjaGUodHJ1ZSk7fSwyMDAwKTt9
LHN1cHBvcnRzVGVtcGxhdGU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gRkIuVGVtcGxh
dGVEYXRhLmVuYWJsZWQoKSYmRkIuVGVtcGxhdGVVSS5wYXJhbXNBbGxvd1RlbXBs
YXRlKGEsYi5wYXJhbXMpJiZiLnBhcmFtcy5kaXNwbGF5PT09J3RvdWNoJyYmRkIu
VUEubW9iaWxlKCk7fSxwYXJhbXNBbGxvd1RlbXBsYXRlOmZ1bmN0aW9uKGEsYil7
dmFyIGM9e2ZlZWQ6e3RvOjEsYXR0YWNobWVudDoxLHNvdXJjZToxfSxhcHByZXF1
ZXN0czp7fX07aWYoIShhIGluIGMpKXJldHVybiBmYWxzZTtmb3IodmFyIGQgaW4g
Y1thXSlpZihiW2RdKXJldHVybiBmYWxzZTtyZXR1cm4gIUZCLlRlbXBsYXRlVUku
d2lsbFdyaXRlT25HZXQoYSxiKTt9LGlzRnJpY3Rpb25sZXNzQXBwUmVxdWVzdDpm
dW5jdGlvbihhLGIpe3JldHVybiBhPT09J2FwcHJlcXVlc3RzJyYmRkIuRnJpY3Rp
b25sZXNzJiZGQi5GcmljdGlvbmxlc3MuX3VzZUZyaWN0aW9ubGVzczt9LHdpbGxX
cml0ZU9uR2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEZCLlRlbXBsYXRlVUkuaXNG
cmljdGlvbmxlc3NBcHBSZXF1ZXN0KGEsYikmJmIudG8mJkZCLkZyaWN0aW9ubGVz
cy5pc0FsbG93ZWQoYi50byk7fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuQWN0aXZp
dHknLCdYRkJNTC5JZnJhbWVXaWRnZXQnLG51bGwse192aXNpYmxlQWZ0ZXI6J2xv
YWQnLF9yZWZyZXNoT25BdXRoQ2hhbmdlOnRydWUsc2V0dXBBbmRWYWxpZGF0ZTpm
dW5jdGlvbigpe3RoaXMuX2F0dHI9e2JvcmRlcl9jb2xvcjp0aGlzLmdldEF0dHJp
YnV0ZSgnYm9yZGVyLWNvbG9yJyksY29sb3JzY2hlbWU6dGhpcy5nZXRBdHRyaWJ1
dGUoJ2NvbG9yLXNjaGVtZScpLGZpbHRlcjp0aGlzLmdldEF0dHJpYnV0ZSgnZmls
dGVyJyksYWN0aW9uOnRoaXMuZ2V0QXR0cmlidXRlKCdhY3Rpb24nKSxtYXhfYWdl
OnRoaXMuZ2V0QXR0cmlidXRlKCdtYXhfYWdlJyksZm9udDp0aGlzLmdldEF0dHJp
YnV0ZSgnZm9udCcpLGxpbmt0YXJnZXQ6dGhpcy5nZXRBdHRyaWJ1dGUoJ2xpbmt0
YXJnZXQnLCdfYmxhbmsnKSxoZWFkZXI6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgn
aGVhZGVyJyksaGVpZ2h0OnRoaXMuX2dldFB4QXR0cmlidXRlKCdoZWlnaHQnLDMw
MCkscmVjb21tZW5kYXRpb25zOnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUoJ3JlY29t
bWVuZGF0aW9ucycpLHNpdGU6dGhpcy5nZXRBdHRyaWJ1dGUoJ3NpdGUnLGxvY2F0
aW9uLmhvc3RuYW1lKSx3aWR0aDp0aGlzLl9nZXRQeEF0dHJpYnV0ZSgnd2lkdGgn
LDMwMCl9O3JldHVybiB0cnVlO30sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybiB7
d2lkdGg6dGhpcy5fYXR0ci53aWR0aCxoZWlnaHQ6dGhpcy5fYXR0ci5oZWlnaHR9
O30sZ2V0VXJsQml0czpmdW5jdGlvbigpe3JldHVybiB7bmFtZTonYWN0aXZpdHkn
LHBhcmFtczp0aGlzLl9hdHRyfTt9fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5BY3Rp
dml0eUxvZycsJ1hGQk1MLklmcmFtZVdpZGdldCcsbnVsbCx7c2V0dXBBbmRWYWxp
ZGF0ZTpmdW5jdGlvbigpe3RoaXMuX2F0dHI9e2NoYW5uZWw6dGhpcy5nZXRDaGFu
bmVsVXJsKCksYXBpX2tleTpGQi5fYXBpS2V5LGZvbnQ6dGhpcy5nZXRBdHRyaWJ1
dGUoJ2ZvbnQnKSxjb2xvcnNjaGVtZTp0aGlzLmdldEF0dHJpYnV0ZSgnY29sb3Jz
Y2hlbWUnKSxocmVmOnRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJykscmVmOnRoaXMu
Z2V0QXR0cmlidXRlKCdyZWYnKSxoZWFkZXI6dGhpcy5nZXRBdHRyaWJ1dGUoJ2hl
YWRlcicpLGhlaWdodDp0aGlzLl9nZXRQeEF0dHJpYnV0ZSgnaGVpZ2h0Jyksd2lk
dGg6dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ3dpZHRoJyl9O3JldHVybiB0cnVlO30s
Z2V0VXJsQml0czpmdW5jdGlvbigpe3JldHVybiB7bmFtZTonYWN0aXZpdHlfbG9n
JyxwYXJhbXM6dGhpcy5fYXR0cn07fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuQnV0
dG9uRWxlbWVudCcsJ1hGQk1MLkVsZW1lbnQnLG51bGwse19hbGxvd2VkU2l6ZXM6
WydpY29uJywnc21hbGwnLCdtZWRpdW0nLCdsYXJnZScsJ3hsYXJnZSddLG9uQ2xp
Y2s6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoJ0luaGVyaXRpbmcgY2xhc3Mg
bmVlZHMgdG8gaW1wbGVtZW50IG9uQ2xpY2soKS4nKTt9LHNldHVwQW5kVmFsaWRh
dGU6ZnVuY3Rpb24oKXtyZXR1cm4gdHJ1ZTt9LGdldEJ1dHRvbk1hcmt1cDpmdW5j
dGlvbigpe3JldHVybiB0aGlzLmdldE9yaWdpbmFsSFRNTCgpO30sZ2V0T3JpZ2lu
YWxIVE1MOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsSFRNTDt9LHBy
b2Nlc3M6ZnVuY3Rpb24oKXtpZighKCdfb3JpZ2luYWxIVE1MJyBpbiB0aGlzKSl0
aGlzLl9vcmlnaW5hbEhUTUw9RVM1KHRoaXMuZG9tLmlubmVySFRNTCwndHJpbScs
dHJ1ZSk7aWYoIXRoaXMuc2V0dXBBbmRWYWxpZGF0ZSgpKXt0aGlzLmZpcmUoJ3Jl
bmRlcicpO3JldHVybjt9dmFyIGE9dGhpcy5fZ2V0QXR0cmlidXRlRnJvbUxpc3Qo
J3NpemUnLCdtZWRpdW0nLHRoaXMuX2FsbG93ZWRTaXplcyksYj0nJyxjPScnO2lm
KGE9PSdpY29uJyl7Yj0nZmJfYnV0dG9uX3NpbXBsZSc7fWVsc2V7dmFyIGQ9RkIu
X2xvY2FsZUlzUnRsPydfcnRsJzonJztjPXRoaXMuZ2V0QnV0dG9uTWFya3VwKCk7
Yj0nZmJfYnV0dG9uJytkKycgZmJfYnV0dG9uXycrYStkO31pZihjIT09Jycpe3Ro
aXMuZG9tLmlubmVySFRNTD0oJzxhIGNsYXNzPSInK2IrJyI+JysnPHNwYW4gY2xh
c3M9ImZiX2J1dHRvbl90ZXh0Ij4nK2MrJzwvc3Bhbj4nKyc8L2E+Jyk7dGhpcy5k
b20uZmlyc3RDaGlsZC5vbmNsaWNrPUVTNSh0aGlzLm9uQ2xpY2ssJ2JpbmQnLHRy
dWUsdGhpcyk7fXRoaXMuZmlyZSgncmVuZGVyJyk7fX0pOwpGQi5zdWJjbGFzcygn
WEZCTUwuQWRkUHJvZmlsZVRhYicsJ1hGQk1MLkJ1dHRvbkVsZW1lbnQnLG51bGws
e2dldEJ1dHRvbk1hcmt1cDpmdW5jdGlvbigpe3JldHVybiBGQi5JbnRsLnR4Ll8o
IkFncmVnYXIgcGVzdGFcdTAwZjFhIGVuIHBlcmZpbCBlbiBGYWNlYm9vayIpO30s
b25DbGljazpmdW5jdGlvbigpe0ZCLnVpKHttZXRob2Q6J3Byb2ZpbGUuYWRkdGFi
J30sRVM1KHRoaXMsJ2JpbmQnLHRydWUsZnVuY3Rpb24oYSl7aWYoYS50YWJfYWRk
ZWQpRkIuSGVscGVyLmludm9rZUhhbmRsZXIodGhpcy5nZXRBdHRyaWJ1dGUoJ29u
LWFkZCcpLHRoaXMpO30pKTt9fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5GYWNlcGls
ZScsJ1hGQk1MLklmcmFtZVdpZGdldCcsbnVsbCx7X3Zpc2libGVBZnRlcjonbG9h
ZCcsc2V0dXBBbmRWYWxpZGF0ZTpmdW5jdGlvbigpe3RoaXMuX2F0dHI9e2NoYW5u
ZWw6dGhpcy5nZXRDaGFubmVsVXJsKCksY29sb3JzY2hlbWU6dGhpcy5nZXRBdHRy
aWJ1dGUoJ2NvbG9yc2NoZW1lJyksZm9udDp0aGlzLmdldEF0dHJpYnV0ZSgnZm9u
dCcpLGhyZWY6dGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSx3aWR0aDp0aGlzLl9n
ZXRQeEF0dHJpYnV0ZSgnd2lkdGgnKSxtYXhfcm93czp0aGlzLmdldEF0dHJpYnV0
ZSgnbWF4LXJvd3MnKSxhY3Rpb246dGhpcy5nZXRBdHRyaWJ1dGUoJ2FjdGlvbicp
LHNpemU6dGhpcy5nZXRBdHRyaWJ1dGUoJ3NpemUnKX07cmV0dXJuIHRydWU7fSxn
ZXRTaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5fYXR0ci5zaXplPT0nbGFyZ2UnKXJl
dHVybiB7d2lkdGg6dGhpcy5fYXR0ci53aWR0aCxoZWlnaHQ6OTB9O3JldHVybiB7
d2lkdGg6dGhpcy5fYXR0ci53aWR0aCxoZWlnaHQ6NzB9O30sZ2V0VXJsQml0czpm
dW5jdGlvbigpe3JldHVybiB7bmFtZTonZmFjZXBpbGUnLHBhcmFtczp0aGlzLl9h
dHRyfTt9fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5BZGRUb1RpbWVsaW5lJywnWEZC
TUwuRmFjZXBpbGUnLG51bGwse192aXNpYmxlQWZ0ZXI6J2xvYWQnLGdldFNpemU6
ZnVuY3Rpb24oKXtyZXR1cm4ge3dpZHRoOjMwMCxoZWlnaHQ6MjUwfTt9LGdldFVy
bEJpdHM6ZnVuY3Rpb24oKXtyZXR1cm4ge25hbWU6J2FkZF90b190aW1lbGluZScs
cGFyYW1zOnRoaXMuX2F0dHJ9O319KTsKRkIuc3ViY2xhc3MoJ1hGQk1MLkJvb2tt
YXJrJywnWEZCTUwuQnV0dG9uRWxlbWVudCcsbnVsbCx7Z2V0QnV0dG9uTWFya3Vw
OmZ1bmN0aW9uKCl7cmV0dXJuIEZCLkludGwudHguXygiQWdyZWdhciBtYXJjYWRv
ciBlbiBGYWNlYm9vayIpO30sb25DbGljazpmdW5jdGlvbigpe0ZCLnVpKHttZXRo
b2Q6J2Jvb2ttYXJrLmFkZCd9LEVTNSh0aGlzLCdiaW5kJyx0cnVlLGZ1bmN0aW9u
KGEpe2lmKGEuYm9va21hcmtlZClGQi5IZWxwZXIuaW52b2tlSGFuZGxlcih0aGlz
LmdldEF0dHJpYnV0ZSgnb24tYWRkJyksdGhpcyk7fSkpO319KTsKRkIuc3ViY2xh
c3MoJ1hGQk1MLkNvbW1lbnRzJywnWEZCTUwuSWZyYW1lV2lkZ2V0JyxudWxsLHtf
dmlzaWJsZUFmdGVyOidpbW1lZGlhdGUnLF9yZWZyZXNoT25BdXRoQ2hhbmdlOnRy
dWUsc2V0dXBBbmRWYWxpZGF0ZTpmdW5jdGlvbigpe3ZhciBhPXtjaGFubmVsX3Vy
bDp0aGlzLmdldENoYW5uZWxVcmwoKSxjb2xvcnNjaGVtZTp0aGlzLmdldEF0dHJp
YnV0ZSgnY29sb3JzY2hlbWUnKSxudW1wb3N0czp0aGlzLmdldEF0dHJpYnV0ZSgn
bnVtLXBvc3RzJywxMCksd2lkdGg6dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ3dpZHRo
Jyw1NTApLGhyZWY6dGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSxwZXJtYWxpbms6
dGhpcy5nZXRBdHRyaWJ1dGUoJ3Blcm1hbGluaycpLHB1Ymxpc2hfZmVlZDp0aGlz
LmdldEF0dHJpYnV0ZSgncHVibGlzaF9mZWVkJyksb3JkZXJfYnk6dGhpcy5nZXRB
dHRyaWJ1dGUoJ29yZGVyX2J5JyksbW9iaWxlOnRoaXMuX2dldEJvb2xBdHRyaWJ1
dGUoJ21vYmlsZScpfTtpZihGQi5pbml0U2l0ZXZhcnMuZW5hYmxlTW9iaWxlQ29t
bWVudHMmJkZCLlVBLm1vYmlsZSgpJiZhLm1vYmlsZSE9PWZhbHNlKXthLm1vYmls
ZT10cnVlO2RlbGV0ZSBhLndpZHRoO31pZighYS5ocmVmKXthLm1pZ3JhdGVkPXRo
aXMuZ2V0QXR0cmlidXRlKCdtaWdyYXRlZCcpO2EueGlkPXRoaXMuZ2V0QXR0cmli
dXRlKCd4aWQnKTthLnRpdGxlPXRoaXMuZ2V0QXR0cmlidXRlKCd0aXRsZScsZG9j
dW1lbnQudGl0bGUpO2EudXJsPXRoaXMuZ2V0QXR0cmlidXRlKCd1cmwnLGRvY3Vt
ZW50LlVSTCk7YS5xdWlldD10aGlzLmdldEF0dHJpYnV0ZSgncXVpZXQnKTthLnJl
dmVyc2U9dGhpcy5nZXRBdHRyaWJ1dGUoJ3JldmVyc2UnKTthLnNpbXBsZT10aGlz
LmdldEF0dHJpYnV0ZSgnc2ltcGxlJyk7YS5jc3M9dGhpcy5nZXRBdHRyaWJ1dGUo
J2NzcycpO2Eubm90aWZ5PXRoaXMuZ2V0QXR0cmlidXRlKCdub3RpZnknKTtpZigh
YS54aWQpe3ZhciBiPUVTNShkb2N1bWVudC5VUkwsJ2luZGV4T2YnLHRydWUsJyMn
KTtpZihiPjApe2EueGlkPWVuY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5VUkwu
c3Vic3RyaW5nKDAsYikpO31lbHNlIGEueGlkPWVuY29kZVVSSUNvbXBvbmVudChk
b2N1bWVudC5VUkwpO31pZihhLm1pZ3JhdGVkKWEuaHJlZj0naHR0cDovL3d3dy5m
YWNlYm9vay5jb20vcGx1Z2lucy9jb21tZW50c192MS5waHA/JysnYXBwX2lkPScr
RkIuX2FwaUtleSsnJnhpZD0nK2VuY29kZVVSSUNvbXBvbmVudChhLnhpZCkrJyZ1
cmw9JytlbmNvZGVVUklDb21wb25lbnQoYS51cmwpO31lbHNle3ZhciBjPXRoaXMu
Z2V0QXR0cmlidXRlKCdmYl9jb21tZW50X2lkJyk7aWYoIWMpe2M9RkIuUVMuZGVj
b2RlKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoRVM1KGRvY3VtZW50LlVSTCwnaW5k
ZXhPZicsdHJ1ZSwnPycpKzEpKS5mYl9jb21tZW50X2lkO2lmKGMmJkVTNShjLCdp
bmRleE9mJyx0cnVlLCcjJyk+MCljPWMuc3Vic3RyaW5nKDAsRVM1KGMsJ2luZGV4
T2YnLHRydWUsJyMnKSk7fWlmKGMpe2EuZmJfY29tbWVudF9pZD1jO3RoaXMuc3Vi
c2NyaWJlKCdyZW5kZXInLEVTNShmdW5jdGlvbigpe2lmKCF3aW5kb3cubG9jYXRp
b24uaGFzaCl3aW5kb3cubG9jYXRpb24uaGFzaD10aGlzLmdldElmcmFtZU5vZGUo
KS5pZDt9LCdiaW5kJyx0cnVlLHRoaXMpKTt9fXRoaXMuX2F0dHI9YTtyZXR1cm4g
dHJ1ZTt9LG9uZVRpbWVTZXR1cDpmdW5jdGlvbigpe3RoaXMuc3Vic2NyaWJlKCd4
ZC5hZGRDb21tZW50JyxFUzUodGhpcy5faGFuZGxlQ29tbWVudE1zZywnYmluZCcs
dHJ1ZSx0aGlzKSk7dGhpcy5zdWJzY3JpYmUoJ3hkLmNvbW1lbnRDcmVhdGVkJyxF
UzUodGhpcy5faGFuZGxlQ29tbWVudENyZWF0ZWRNc2csJ2JpbmQnLHRydWUsdGhp
cykpO3RoaXMuc3Vic2NyaWJlKCd4ZC5jb21tZW50UmVtb3ZlZCcsRVM1KHRoaXMu
X2hhbmRsZUNvbW1lbnRSZW1vdmVkTXNnLCdiaW5kJyx0cnVlLHRoaXMpKTt9LGdl
dFNpemU6ZnVuY3Rpb24oKXtpZih0aGlzLl9hdHRyLm1vYmlsZSlyZXR1cm4ge3dp
ZHRoOicxMDAlJyxoZWlnaHQ6MTYwfTtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0dHIu
d2lkdGgsaGVpZ2h0OjE2MH07fSxnZXRVcmxCaXRzOmZ1bmN0aW9uKCl7cmV0dXJu
IHtuYW1lOidjb21tZW50cycscGFyYW1zOnRoaXMuX2F0dHJ9O30sZ2V0RGVmYXVs
dFdlYkRvbWFpbjpmdW5jdGlvbigpe2lmKHRoaXMuX2F0dHIubW9iaWxlKXtyZXR1
cm4gJ2h0dHBzX20nO31lbHNlIHJldHVybiAnaHR0cHNfd3d3Jzt9LF9oYW5kbGVD
b21tZW50TXNnOmZ1bmN0aW9uKGEpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm47
RkIuRXZlbnQuZmlyZSgnY29tbWVudHMuYWRkJyx7cG9zdDphLnBvc3QsdXNlcjph
LnVzZXIsd2lkZ2V0OnRoaXN9KTt9LF9oYW5kbGVDb21tZW50Q3JlYXRlZE1zZzpm
dW5jdGlvbihhKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuO3ZhciBiPXtocmVm
OmEuaHJlZixjb21tZW50SUQ6YS5jb21tZW50SUQscGFyZW50Q29tbWVudElEOmEu
cGFyZW50Q29tbWVudElEfTtGQi5FdmVudC5maXJlKCdjb21tZW50LmNyZWF0ZScs
Yik7fSxfaGFuZGxlQ29tbWVudFJlbW92ZWRNc2c6ZnVuY3Rpb24oYSl7aWYoIXRo
aXMuaXNWYWxpZCgpKXJldHVybjt2YXIgYj17aHJlZjphLmhyZWYsY29tbWVudElE
OmEuY29tbWVudElEfTtGQi5FdmVudC5maXJlKCdjb21tZW50LnJlbW92ZScsYik7
fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuQ29tbWVudHNDb3VudCcsJ1hGQk1MLkVs
ZW1lbnQnLG51bGwse3Byb2Nlc3M6ZnVuY3Rpb24oKXt0aGlzLl9ocmVmPXRoaXMu
Z2V0QXR0cmlidXRlKCdocmVmJyx3aW5kb3cubG9jYXRpb24uaHJlZik7dGhpcy5f
Y291bnQ9RkIuRGF0YS5fc2VsZWN0QnlJbmRleChbJ2NvbW1lbnRzYm94X2NvdW50
J10sJ2xpbmtfc3RhdCcsJ3VybCcsdGhpcy5faHJlZik7RkIuRG9tLmFkZENzcyh0
aGlzLmRvbSwnZmJfY29tbWVudHNfY291bnRfemVybycpO3RoaXMuX2NvdW50Lndh
aXQoRVM1KGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fY291bnQudmFsdWVbMF0uY29t
bWVudHNib3hfY291bnQ7dGhpcy5kb20uaW5uZXJIVE1MPUZCLlN0cmluZy5mb3Jt
YXQoJzxzcGFuIGNsYXNzPSJmYl9jb21tZW50c19jb3VudCI+ezB9PC9zcGFuPics
YSk7aWYoYT4wKUZCLkRvbS5yZW1vdmVDc3ModGhpcy5kb20sJ2ZiX2NvbW1lbnRz
X2NvdW50X3plcm8nKTt0aGlzLmZpcmUoJ3JlbmRlcicpO30sJ2JpbmQnLHRydWUs
dGhpcykpO319KTsKRkIucHJvdmlkZSgnQW5pbScse2F0ZTpmdW5jdGlvbihhLGIs
YyxkKXtjPSFpc05hTihwYXJzZUZsb2F0KGMpKSYmYz49MD9jOjc1MDt2YXIgZT00
MCxmPXt9LGc9e30saD1udWxsLGk9YS5zdHlsZSxqPXNldEludGVydmFsKEVTNShm
dW5jdGlvbigpe2lmKCFoKWg9bmV3IERhdGUoKS5nZXRUaW1lKCk7dmFyIGs9MTtp
ZihjIT0wKWs9TWF0aC5taW4oKG5ldyBEYXRlKCkuZ2V0VGltZSgpLWgpL2MsMSk7
RVM1KEZCLkFycmF5LCdmb3JFYWNoJyx0cnVlLGIsRVM1KGZ1bmN0aW9uKGwsbSl7
aWYoIWZbbV0pe3ZhciBuPUZCLkRvbS5nZXRTdHlsZShhLG0pO2lmKG49PT1mYWxz
ZSlyZXR1cm47ZlttXT10aGlzLl9wYXJzZUNTUyhuKycnKTt9aWYoIWdbbV0pZ1tt
XT10aGlzLl9wYXJzZUNTUyhsLnRvU3RyaW5nKCkpO3ZhciBvPScnO0VTNShGQi5B
cnJheSwnZm9yRWFjaCcsdHJ1ZSxmW21dLGZ1bmN0aW9uKHAscSl7aWYoaXNOYU4o
Z1ttXVtxXS5udW1QYXJ0KSYmZ1ttXVtxXS50ZXh0UGFydD09Jz8nKXtvPXAubnVt
UGFydCtwLnRleHRQYXJ0O31lbHNlIGlmKGlzTmFOKHAubnVtUGFydCkpe289cC50
ZXh0UGFydDt9ZWxzZSBvKz0ocC5udW1QYXJ0K01hdGguY2VpbCgoZ1ttXVtxXS5u
dW1QYXJ0LXAubnVtUGFydCkqTWF0aC5zaW4oTWF0aC5QSS8yKmspKSkrZ1ttXVtx
XS50ZXh0UGFydCsnICc7fSk7RkIuRG9tLnNldFN0eWxlKGEsbSxvKTt9LCdiaW5k
Jyx0cnVlLHRoaXMpKTtpZihrPT0xKXtjbGVhckludGVydmFsKGopO2lmKGQpZChh
KTt9fSwnYmluZCcsdHJ1ZSx0aGlzKSxlKTt9LF9wYXJzZUNTUzpmdW5jdGlvbihh
KXt2YXIgYj1bXTtFUzUoYS5zcGxpdCgnICcpLCdmb3JFYWNoJyx0cnVlLGZ1bmN0
aW9uKGMpe3ZhciBkPXBhcnNlSW50KGMsMTApO2IucHVzaCh7bnVtUGFydDpkLHRl
eHRQYXJ0OmMucmVwbGFjZShkLCcnKX0pO30pO3JldHVybiBiO319KTsKX19kKCJs
ZWdhY3k6ZmIuaW5zaWdodHMiLFsiRkIiLCJzZGsuSW5zaWdodHMiXSxmdW5jdGlv
bihhLGIsYyxkKXt2YXIgZT1iKCdGQicpLGY9Yignc2RrLkluc2lnaHRzJyk7ZS5w
cm92aWRlKCdJbnNpZ2h0cycse2ltcHJlc3Npb246Zi5pbXByZXNzaW9ufSk7fSwz
KTsKRkIuc3ViY2xhc3MoJ1hGQk1MLkNvbm5lY3RCYXInLCdYRkJNTC5FbGVtZW50
JyxudWxsLHtfaW5pdGlhbEhlaWdodDpudWxsLF9pbml0VG9wTWFyZ2luOjAsX3Bp
Y0ZpZWxkTmFtZToncGljX3NxdWFyZScsX3BhZ2U6bnVsbCxfZGlzcGxheWVkOmZh
bHNlLF9ub3REaXNwbGF5ZWQ6ZmFsc2UsX2NvbnRhaW5lcjpudWxsLF9hbmltYXRp
b25TcGVlZDowLHByb2Nlc3M6ZnVuY3Rpb24oKXtGQi5nZXRMb2dpblN0YXR1cyhF
UzUodGhpcywnYmluZCcsdHJ1ZSxmdW5jdGlvbihhKXtGQi5FdmVudC5tb25pdG9y
KCdhdXRoLnN0YXR1c0NoYW5nZScsRVM1KHRoaXMsJ2JpbmQnLHRydWUsZnVuY3Rp
b24oKXtpZih0aGlzLmlzVmFsaWQoKSYmRkIuUnVudGltZS5nZXRMb2dpblN0YXR1
cygpPT0nY29ubmVjdGVkJyl7dGhpcy5fdWlkPUZCLkhlbHBlci5nZXRMb2dnZWRJ
blVzZXIoKTtGQi5hcGkoe21ldGhvZDonQ29ubmVjdC5zaG91bGRTaG93Q29ubmVj
dEJhcid9LEVTNSh0aGlzLCdiaW5kJyx0cnVlLGZ1bmN0aW9uKGIpe2lmKGIhPTIp
e3RoaXMuX2FuaW1hdGlvblNwZWVkPShiPT0wKT83NTA6MDt0aGlzLl9zaG93QmFy
KCk7fWVsc2UgdGhpcy5fbm9SZW5kZXIoKTt9KSk7fWVsc2UgdGhpcy5fbm9SZW5k
ZXIoKTtyZXR1cm4gZmFsc2U7fSkpO30pKTt9LF9zaG93QmFyOmZ1bmN0aW9uKCl7
dmFyIGE9RkIuRGF0YS5fc2VsZWN0QnlJbmRleChbJ2ZpcnN0X25hbWUnLCdwcm9m
aWxlX3VybCcsdGhpcy5fcGljRmllbGROYW1lXSwndXNlcicsJ3VpZCcsdGhpcy5f
dWlkKSxiPUZCLkRhdGEuX3NlbGVjdEJ5SW5kZXgoWydkaXNwbGF5X25hbWUnXSwn
YXBwbGljYXRpb24nLCdhcGlfa2V5JyxGQi5fYXBpS2V5KTtGQi5EYXRhLndhaXRP
bihbYSxiXSxFUzUoZnVuY3Rpb24oYyl7Y1swXVswXS5zaXRlX25hbWU9Y1sxXVsw
XS5kaXNwbGF5X25hbWU7aWYoIXRoaXMuX2Rpc3BsYXllZCl7dGhpcy5fZGlzcGxh
eWVkPXRydWU7dGhpcy5fbm90RGlzcGxheWVkPWZhbHNlO3RoaXMuX3JlbmRlckNv
bm5lY3RCYXIoY1swXVswXSk7dGhpcy5maXJlKCdyZW5kZXInKTtGQi5JbnNpZ2h0
cy5pbXByZXNzaW9uKHtsaWQ6MTA0LG5hbWU6J3dpZGdldF9sb2FkJ30pO3RoaXMu
ZmlyZSgnY29ubmVjdGJhci5vbmRpc3BsYXknKTtGQi5FdmVudC5maXJlKCdjb25u
ZWN0YmFyLm9uZGlzcGxheScsdGhpcyk7RkIuSGVscGVyLmludm9rZUhhbmRsZXIo
dGhpcy5nZXRBdHRyaWJ1dGUoJ29uLWRpc3BsYXknKSx0aGlzKTt9fSwnYmluZCcs
dHJ1ZSx0aGlzKSk7fSxfbm9SZW5kZXI6ZnVuY3Rpb24oKXtpZih0aGlzLl9kaXNw
bGF5ZWQpe3RoaXMuX2Rpc3BsYXllZD1mYWxzZTt0aGlzLl9jbG9zZUNvbm5lY3RC
YXIoKTt9aWYoIXRoaXMuX25vdERpc3BsYXllZCl7dGhpcy5fbm90RGlzcGxheWVk
PXRydWU7dGhpcy5maXJlKCdyZW5kZXInKTt0aGlzLmZpcmUoJ2Nvbm5lY3RiYXIu
b25ub3RkaXNwbGF5Jyk7RkIuRXZlbnQuZmlyZSgnY29ubmVjdGJhci5vbm5vdGRp
c3BsYXknLHRoaXMpO0ZCLkhlbHBlci5pbnZva2VIYW5kbGVyKHRoaXMuZ2V0QXR0
cmlidXRlKCdvbi1ub3QtZGlzcGxheScpLHRoaXMpO319LF9yZW5kZXJDb25uZWN0
QmFyOmZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Yi5jbGFzc05hbWU9
J2ZiX2Nvbm5lY3RfYmFyJztjLmNsYXNzTmFtZT0nZmJfcmVzZXQgZmJfY29ubmVj
dF9iYXJfY29udGFpbmVyJztjLmFwcGVuZENoaWxkKGIpO2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoYyk7dGhpcy5fY29udGFpbmVyPWM7dGhpcy5faW5pdGlhbEhl
aWdodD1NYXRoLnJvdW5kKHBhcnNlRmxvYXQoRkIuRG9tLmdldFN0eWxlKGMsJ2hl
aWdodCcpKStwYXJzZUZsb2F0KEZCLkRvbS5nZXRTdHlsZShjLCdib3JkZXJCb3R0
b21XaWR0aCcpKSk7Yi5pbm5lckhUTUw9RkIuU3RyaW5nLmZvcm1hdCgnPGRpdiBj
bGFzcz0iZmJfYnV0dG9ucyI+JysnPGEgaHJlZj0iIyIgY2xhc3M9ImZiX2Jhcl9j
bG9zZSI+JysnPGltZyBzcmM9InsxfSIgYWx0PSJ7Mn0iIHRpdGxlPSJ7Mn0iLz4n
Kyc8L2E+JysnPC9kaXY+JysnPGEgaHJlZj0iezd9IiBjbGFzcz0iZmJfcHJvZmls
ZSIgdGFyZ2V0PSJfYmxhbmsiPicrJzxpbWcgc3JjPSJ7M30iIGFsdD0iezR9IiB0
aXRsZT0iezR9Ii8+JysnPC9hPicrJ3s1fScrJyA8c3Bhbj4nKyc8YSBocmVmPSJ7
OH0iIGNsYXNzPSJmYl9sZWFybl9tb3JlIiB0YXJnZXQ9Il9ibGFuayI+ezZ9PC9h
PiAmbmRhc2g7ICcrJzxhIGhyZWY9IiMiIGNsYXNzPSJmYl9ub190aGFua3MiPnsw
fTwvYT4nKyc8L3NwYW4+JyxGQi5JbnRsLnR4Ll8oIk5vLCBncmFjaWFzIiksRkIu
Z2V0RG9tYWluKCdjZG4nKStGQi5YRkJNTC5Db25uZWN0QmFyLmltZ3MuYnV0dG9u
VXJsLEZCLkludGwudHguXygiQ2VycmFyIiksYVt0aGlzLl9waWNGaWVsZE5hbWVd
fHxGQi5nZXREb21haW4oJ2NkbicpK0ZCLlhGQk1MLkNvbm5lY3RCYXIuaW1ncy5t
aXNzaW5nUHJvZmlsZVVybCxGQi5TdHJpbmcuZXNjYXBlSFRNTChhLmZpcnN0X25h
bWUpLEZCLkludGwudHguXygiSG9sYSwge2ZpcnN0TmFtZX0uIFx1MDAzQ3N0cm9u
Zz57c2l0ZU5hbWV9XHUwMDNDXC9zdHJvbmc+IGVzdFx1MDBlMSB1c2FuZG8gRmFj
ZWJvb2sgcGFyYSBwZXJzb25hbGl6YXIgdHUgZXhwZXJpZW5jaWEuIix7Zmlyc3RO
YW1lOkZCLlN0cmluZy5lc2NhcGVIVE1MKGEuZmlyc3RfbmFtZSksc2l0ZU5hbWU6
RkIuU3RyaW5nLmVzY2FwZUhUTUwoYS5zaXRlX25hbWUpfSksRkIuSW50bC50eC5f
KCJNXHUwMGUxcyBpbmZvcm1hY2lcdTAwZjNuIiksYS5wcm9maWxlX3VybCxGQi5n
ZXREb21haW4oJ3d3dycpKydzaXRldG91ci9jb25uZWN0LnBocCcpO3ZhciBkPXRo
aXM7RVM1KEZCLkFycmF5LnRvQXJyYXkoYi5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
YScpKSwnZm9yRWFjaCcsdHJ1ZSxmdW5jdGlvbihnKXtnLm9uY2xpY2s9RVM1KGQu
X2NsaWNrSGFuZGxlciwnYmluZCcsdHJ1ZSxkKTt9KTt0aGlzLl9wYWdlPWRvY3Vt
ZW50LmJvZHk7dmFyIGU9MDtpZih0aGlzLl9wYWdlLnBhcmVudE5vZGUpe2U9TWF0
aC5yb3VuZCgocGFyc2VGbG9hdChGQi5Eb20uZ2V0U3R5bGUodGhpcy5fcGFnZS5w
YXJlbnROb2RlLCdoZWlnaHQnKSktcGFyc2VGbG9hdChGQi5Eb20uZ2V0U3R5bGUo
dGhpcy5fcGFnZSwnaGVpZ2h0JykpKS8yKTt9ZWxzZSBlPXBhcnNlSW50KEZCLkRv
bS5nZXRTdHlsZSh0aGlzLl9wYWdlLCdtYXJnaW5Ub3AnKSwxMCk7ZT1pc05hTihl
KT8wOmU7dGhpcy5faW5pdFRvcE1hcmdpbj1lO2lmKCF3aW5kb3cuWE1MSHR0cFJl
cXVlc3Qpe2MuY2xhc3NOYW1lKz0iIGZiX2Nvbm5lY3RfYmFyX2NvbnRhaW5lcl9p
ZTYiO31lbHNle2Muc3R5bGUudG9wPSgtMSp0aGlzLl9pbml0aWFsSGVpZ2h0KSsn
cHgnO0ZCLkFuaW0uYXRlKGMse3RvcDonMHB4J30sdGhpcy5fYW5pbWF0aW9uU3Bl
ZWQpO312YXIgZj17bWFyZ2luVG9wOnRoaXMuX2luaXRUb3BNYXJnaW4rdGhpcy5f
aW5pdGlhbEhlaWdodCsncHgnfTtpZihGQi5VQS5pZSgpKXtmLmJhY2tncm91bmRQ
b3NpdGlvblk9dGhpcy5faW5pdGlhbEhlaWdodCsncHgnO31lbHNlIGYuYmFja2dy
b3VuZFBvc2l0aW9uPSc/ICcrdGhpcy5faW5pdGlhbEhlaWdodCsncHgnO0ZCLkFu
aW0uYXRlKHRoaXMuX3BhZ2UsZix0aGlzLl9hbmltYXRpb25TcGVlZCk7fSxfY2xp
Y2tIYW5kbGVyOmZ1bmN0aW9uKGEpe2E9YXx8d2luZG93LmV2ZW50O3ZhciBiPWEu
dGFyZ2V0fHxhLnNyY0VsZW1lbnQ7d2hpbGUoYi5ub2RlTmFtZSE9J0EnKWI9Yi5w
YXJlbnROb2RlO3N3aXRjaChiLmNsYXNzTmFtZSl7Y2FzZSAnZmJfYmFyX2Nsb3Nl
JzpGQi5hcGkoe21ldGhvZDonQ29ubmVjdC5jb25uZWN0QmFyTWFya0Fja25vd2xl
ZGdlZCd9KTtGQi5JbnNpZ2h0cy5pbXByZXNzaW9uKHtsaWQ6MTA0LG5hbWU6J3dp
ZGdldF91c2VyX2Nsb3NlZCd9KTt0aGlzLl9jbG9zZUNvbm5lY3RCYXIoKTticmVh
aztjYXNlICdmYl9sZWFybl9tb3JlJzpjYXNlICdmYl9wcm9maWxlJzp3aW5kb3cu
b3BlbihiLmhyZWYpO2JyZWFrO2Nhc2UgJ2ZiX25vX3RoYW5rcyc6dGhpcy5fY2xv
c2VDb25uZWN0QmFyKCk7RkIuYXBpKHttZXRob2Q6J0Nvbm5lY3QuY29ubmVjdEJh
ck1hcmtBY2tub3dsZWRnZWQnfSk7RkIuSW5zaWdodHMuaW1wcmVzc2lvbih7bGlk
OjEwNCxuYW1lOid3aWRnZXRfdXNlcl9ub190aGFua3MnfSk7RkIuYXBpKHttZXRo
b2Q6J2F1dGgucmV2b2tlQXV0aG9yaXphdGlvbicsYmxvY2s6dHJ1ZX0sRVM1KHRo
aXMsJ2JpbmQnLHRydWUsZnVuY3Rpb24oKXt0aGlzLmZpcmUoJ2Nvbm5lY3RiYXIu
b25kZWF1dGgnKTtGQi5FdmVudC5maXJlKCdjb25uZWN0YmFyLm9uZGVhdXRoJyx0
aGlzKTtGQi5IZWxwZXIuaW52b2tlSGFuZGxlcih0aGlzLmdldEF0dHJpYnV0ZSgn
b24tZGVhdXRoJyksdGhpcyk7aWYodGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnYXV0
by1yZWZyZXNoJyx0cnVlKSl3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7fSkpO2Jy
ZWFrO31yZXR1cm4gZmFsc2U7fSxfY2xvc2VDb25uZWN0QmFyOmZ1bmN0aW9uKCl7
dGhpcy5fbm90RGlzcGxheWVkPXRydWU7dmFyIGE9e21hcmdpblRvcDp0aGlzLl9p
bml0VG9wTWFyZ2luKydweCd9O2lmKEZCLlVBLmllKCkpe2EuYmFja2dyb3VuZFBv
c2l0aW9uWT0nMHB4Jzt9ZWxzZSBhLmJhY2tncm91bmRQb3NpdGlvbj0nPyAwcHgn
O3ZhciBiPSh0aGlzLl9hbmltYXRpb25TcGVlZD09MCk/MDozMDA7RkIuQW5pbS5h
dGUodGhpcy5fcGFnZSxhLGIpO0ZCLkFuaW0uYXRlKHRoaXMuX2NvbnRhaW5lcix7
dG9wOigtMSp0aGlzLl9pbml0aWFsSGVpZ2h0KSsncHgnfSxiLGZ1bmN0aW9uKGMp
e2MucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjKTt9KTt0aGlzLmZpcmUoJ2Nvbm5l
Y3RiYXIub25jbG9zZScpO0ZCLkV2ZW50LmZpcmUoJ2Nvbm5lY3RiYXIub25jbG9z
ZScsdGhpcyk7RkIuSGVscGVyLmludm9rZUhhbmRsZXIodGhpcy5nZXRBdHRyaWJ1
dGUoJ29uLWNsb3NlJyksdGhpcyk7fX0pO0ZCLnByb3ZpZGUoJ1hGQk1MLkNvbm5l
Y3RCYXInLHtpbWdzOntidXR0b25Vcmw6J2ltYWdlcy9mYWNlYm9vay13aWRnZXRz
L2Nsb3NlX2J0bi5wbmcnLG1pc3NpbmdQcm9maWxlVXJsOidwaWNzL3Ffc2lsaG91
ZXR0ZS5naWYnfX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuRGVncmVlcycsJ1hGQk1M
LklmcmFtZVdpZGdldCcsbnVsbCx7X3Nob3dMb2FkZXI6ZmFsc2Usc2V0dXBBbmRW
YWxpZGF0ZTpmdW5jdGlvbigpe3RoaXMuX2F0dHI9e2FwaV9rZXk6RkIuX2FwaUtl
eSxjaGFubmVsX3VybDp0aGlzLmdldENoYW5uZWxVcmwoKSxmb250OnRoaXMuZ2V0
QXR0cmlidXRlKCdmb250JyksaHJlZjp0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicp
LGNvbG9yc2NoZW1lOnRoaXMuZ2V0QXR0cmlidXRlKCdjb2xvci1zY2hlbWUnKX07
cmV0dXJuIHRydWU7fSxnZXRTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHt3aWR0aDo1
MDAsaGVpZ2h0OjI1fTt9LGdldFVybEJpdHM6ZnVuY3Rpb24oKXtyZXR1cm4ge25h
bWU6J2RlZ3JlZXMnLHBhcmFtczp0aGlzLl9hdHRyfTt9fSk7RkIuWEZCTUwuX3Rh
Z0luZm9zLnB1c2goe2xvY2FsTmFtZTonZGVncmVlcycsY2xhc3NOYW1lOidGQi5Y
RkJNTC5EZWdyZWVzJ30pOwpGQi5zdWJjbGFzcygnWEZCTUwuRmFuJywnWEZCTUwu
SWZyYW1lV2lkZ2V0JyxudWxsLHtfdmlzaWJsZUFmdGVyOidsb2FkJyxzZXR1cEFu
ZFZhbGlkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fYXR0cj17YXBpX2tleTpGQi5fYXBp
S2V5LGNvbm5lY3Rpb25zOnRoaXMuZ2V0QXR0cmlidXRlKCdjb25uZWN0aW9ucycs
JzEwJyksY3NzOnRoaXMuZ2V0QXR0cmlidXRlKCdjc3MnKSxoZWlnaHQ6dGhpcy5f
Z2V0UHhBdHRyaWJ1dGUoJ2hlaWdodCcpLGlkOnRoaXMuZ2V0QXR0cmlidXRlKCdw
cm9maWxlLWlkJyksbG9nb2Jhcjp0aGlzLl9nZXRCb29sQXR0cmlidXRlKCdsb2dv
LWJhcicpLG5hbWU6dGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSxzdHJlYW06dGhp
cy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnc3RyZWFtJyx0cnVlKSx3aWR0aDp0aGlzLl9n
ZXRQeEF0dHJpYnV0ZSgnd2lkdGgnLDMwMCl9O2lmKCF0aGlzLl9hdHRyLmlkJiYh
dGhpcy5fYXR0ci5uYW1lKXtGQi5sb2coJzxmYjpmYW4+IHJlcXVpcmVzIG9uZSBv
ZiB0aGUgImlkIiBvciAibmFtZSIgYXR0cmlidXRlcy4nKTtyZXR1cm4gZmFsc2U7
fXZhciBhPXRoaXMuX2F0dHIuaGVpZ2h0O2lmKCFhKWlmKCghdGhpcy5fYXR0ci5j
b25uZWN0aW9uc3x8dGhpcy5fYXR0ci5jb25uZWN0aW9ucz09PScwJykmJiF0aGlz
Ll9hdHRyLnN0cmVhbSl7YT02NTt9ZWxzZSBpZighdGhpcy5fYXR0ci5jb25uZWN0
aW9uc3x8dGhpcy5fYXR0ci5jb25uZWN0aW9ucz09PScwJyl7YT0zNzU7fWVsc2Ug
aWYoIXRoaXMuX2F0dHIuc3RyZWFtKXthPTI1MDt9ZWxzZSBhPTU1MDtpZih0aGlz
Ll9hdHRyLmxvZ29iYXIpYSs9MjU7dGhpcy5fYXR0ci5oZWlnaHQ9YTtyZXR1cm4g
dHJ1ZTt9LGdldFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0
dHIud2lkdGgsaGVpZ2h0OnRoaXMuX2F0dHIuaGVpZ2h0fTt9LGdldFVybEJpdHM6
ZnVuY3Rpb24oKXtyZXR1cm4ge25hbWU6J2ZhbicscGFyYW1zOnRoaXMuX2F0dHJ9
O319KTsKRkIuc3ViY2xhc3MoJ1hGQk1MLkZyaWVuZHBpbGUnLCdYRkJNTC5GYWNl
cGlsZScsbnVsbCx7fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5FZGdlQ29tbWVudFdp
ZGdldCcsJ1hGQk1MLklmcmFtZVdpZGdldCcsZnVuY3Rpb24oYSl7dGhpcy5faWZy
YW1lV2lkdGg9YS53aWR0aCsxO3RoaXMuX2lmcmFtZUhlaWdodD1hLmhlaWdodDt0
aGlzLl9hdHRyPXttYXN0ZXJfZnJhbWVfbmFtZTphLm1hc3RlckZyYW1lTmFtZSxv
ZmZzZXRYOmEucmVsYXRpdmVXaWR0aE9mZnNldC1hLnBhZGRpbmdMZWZ0fTt0aGlz
LmRvbT1hLmNvbW1lbnROb2RlO3RoaXMuZG9tLnN0eWxlLnRvcD1hLnJlbGF0aXZl
SGVpZ2h0T2Zmc2V0KydweCc7dGhpcy5kb20uc3R5bGUubGVmdD1hLnJlbGF0aXZl
V2lkdGhPZmZzZXQrJ3B4Jzt0aGlzLmRvbS5zdHlsZS56SW5kZXg9RkIuWEZCTUwu
RWRnZUNvbW1lbnRXaWRnZXQuTmV4dFpJbmRleCsrO0ZCLkRvbS5hZGRDc3ModGhp
cy5kb20sJ2ZiX2VkZ2VfY29tbWVudF93aWRnZXQnKTt9LHtfdmlzaWJsZUFmdGVy
Oidsb2FkJyxfc2hvd0xvYWRlcjpmYWxzZSxnZXRTaXplOmZ1bmN0aW9uKCl7cmV0
dXJuIHt3aWR0aDp0aGlzLl9pZnJhbWVXaWR0aCxoZWlnaHQ6dGhpcy5faWZyYW1l
SGVpZ2h0fTt9LGdldFVybEJpdHM6ZnVuY3Rpb24oKXtyZXR1cm4ge25hbWU6J2Nv
bW1lbnRfd2lkZ2V0X3NoZWxsJyxwYXJhbXM6dGhpcy5fYXR0cn07fX0pO0ZCLnBy
b3ZpZGUoJ1hGQk1MLkVkZ2VDb21tZW50V2lkZ2V0Jyx7TmV4dFpJbmRleDoxMDAw
MH0pOwpGQi5zdWJjbGFzcygnWEZCTUwuRWRnZVdpZGdldCcsJ1hGQk1MLklmcmFt
ZVdpZGdldCcsbnVsbCx7X3Zpc2libGVBZnRlcjonaW1tZWRpYXRlJyxfc2hvd0xv
YWRlcjpmYWxzZSxfcm9vdFBhZGRpbmc6bnVsbCxzZXR1cEFuZFZhbGlkYXRlOmZ1
bmN0aW9uKCl7RkIuRG9tLmFkZENzcyh0aGlzLmRvbSwnZmJfZWRnZV93aWRnZXRf
d2l0aF9jb21tZW50Jyk7dGhpcy5fYXR0cj17Y2hhbm5lbF91cmw6dGhpcy5nZXRD
aGFubmVsVXJsKCksZGVidWc6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnZGVidWcn
KSxocmVmOnRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJyx3aW5kb3cubG9jYXRpb24u
aHJlZiksaXNfcGVybWFsaW5rOnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUoJ2lzLXBl
cm1hbGluaycpLG5vZGVfdHlwZTp0aGlzLmdldEF0dHJpYnV0ZSgnbm9kZS10eXBl
JywnbGluaycpLHdpZHRoOnRoaXMuX2dldFdpZGdldFdpZHRoKCksZm9udDp0aGlz
LmdldEF0dHJpYnV0ZSgnZm9udCcpLGxheW91dDp0aGlzLl9nZXRMYXlvdXQoKSxj
b2xvcnNjaGVtZTp0aGlzLmdldEF0dHJpYnV0ZSgnY29sb3Itc2NoZW1lJyksYWN0
aW9uOnRoaXMuZ2V0QXR0cmlidXRlKCdhY3Rpb24nKSxyZWY6dGhpcy5nZXRBdHRy
aWJ1dGUoJ3JlZicpLHNob3dfZmFjZXM6dGhpcy5fc2hvdWxkU2hvd0ZhY2VzKCks
bm9fcmVzaXplOnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUoJ25vX3Jlc2l6ZScpLHNl
bmQ6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnc2VuZCcpLHVybF9tYXA6dGhpcy5n
ZXRBdHRyaWJ1dGUoJ3VybF9tYXAnKSxleHRlbmRlZF9zb2NpYWxfY29udGV4dDp0
aGlzLl9nZXRCb29sQXR0cmlidXRlKCdleHRlbmRlZF9zb2NpYWxfY29udGV4dCcs
ZmFsc2UpfTt0aGlzLl9yb290UGFkZGluZz17bGVmdDpwYXJzZUZsb2F0KEZCLkRv
bS5nZXRTdHlsZSh0aGlzLmRvbSwncGFkZGluZ0xlZnQnKSksdG9wOnBhcnNlRmxv
YXQoRkIuRG9tLmdldFN0eWxlKHRoaXMuZG9tLCdwYWRkaW5nVG9wJykpfTtyZXR1
cm4gdHJ1ZTt9LG9uZVRpbWVTZXR1cDpmdW5jdGlvbigpe3RoaXMuc3Vic2NyaWJl
KCd4ZC5hdXRoUHJvbXB0ZWQnLEVTNSh0aGlzLl9vbkF1dGhQcm9tcHQsJ2JpbmQn
LHRydWUsdGhpcykpO3RoaXMuc3Vic2NyaWJlKCd4ZC5lZGdlQ3JlYXRlZCcsRVM1
KHRoaXMuX29uRWRnZUNyZWF0ZSwnYmluZCcsdHJ1ZSx0aGlzKSk7dGhpcy5zdWJz
Y3JpYmUoJ3hkLmVkZ2VSZW1vdmVkJyxFUzUodGhpcy5fb25FZGdlUmVtb3ZlLCdi
aW5kJyx0cnVlLHRoaXMpKTt0aGlzLnN1YnNjcmliZSgneGQucHJlc2VudEVkZ2VD
b21tZW50RGlhbG9nJyxFUzUodGhpcy5faGFuZGxlRWRnZUNvbW1lbnREaWFsb2dQ
cmVzZW50YXRpb24sJ2JpbmQnLHRydWUsdGhpcykpO3RoaXMuc3Vic2NyaWJlKCd4
ZC5kaXNtaXNzRWRnZUNvbW1lbnREaWFsb2cnLEVTNSh0aGlzLl9oYW5kbGVFZGdl
Q29tbWVudERpYWxvZ0Rpc21pc3NhbCwnYmluZCcsdHJ1ZSx0aGlzKSk7dGhpcy5z
dWJzY3JpYmUoJ3hkLmhpZGVFZGdlQ29tbWVudERpYWxvZycsRVM1KHRoaXMuX2hh
bmRsZUVkZ2VDb21tZW50RGlhbG9nSGlkZSwnYmluZCcsdHJ1ZSx0aGlzKSk7dGhp
cy5zdWJzY3JpYmUoJ3hkLnNob3dFZGdlQ29tbWVudERpYWxvZycsRVM1KHRoaXMu
X2hhbmRsZUVkZ2VDb21tZW50RGlhbG9nU2hvdywnYmluZCcsdHJ1ZSx0aGlzKSk7
fSxnZXRTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHt3aWR0aDp0aGlzLl9nZXRXaWRn
ZXRXaWR0aCgpLGhlaWdodDp0aGlzLl9nZXRXaWRnZXRIZWlnaHQoKX07fSxfZ2V0
V2lkZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fZ2V0TGF5b3V0KCks
Yj10aGlzLl9zaG91bGRTaG93RmFjZXMoKT8nc2hvdyc6J2hpZGUnLGM9dGhpcy5f
Z2V0Qm9vbEF0dHJpYnV0ZSgnc2VuZCcpLGQ9NjUrKGM/MjU6MCksZT17c3RhbmRh
cmQ6e3Nob3c6ODAsaGlkZTozNX0sYm94X2NvdW50OntzaG93OmQsaGlkZTpkfSxi
dXR0b25fY291bnQ6e3Nob3c6MjEsaGlkZToyMX0sc2ltcGxlOntzaG93OjIwLGhp
ZGU6MjB9fTtyZXR1cm4gZVthXVtiXTt9LF9nZXRXaWRnZXRXaWR0aDpmdW5jdGlv
bigpe3ZhciBhPXRoaXMuX2dldExheW91dCgpLGI9dGhpcy5fZ2V0Qm9vbEF0dHJp
YnV0ZSgnc2VuZCcpLGM9dGhpcy5fc2hvdWxkU2hvd0ZhY2VzKCk/J3Nob3cnOido
aWRlJyxkPSh0aGlzLmdldEF0dHJpYnV0ZSgnYWN0aW9uJyk9PT0ncmVjb21tZW5k
JyksZT0oZD8yNjU6MjI1KSsoYj82MDowKSxmPShkPzEzMDo5MCkrKGI/NjA6MCks
Zz10aGlzLmdldEF0dHJpYnV0ZSgnYWN0aW9uJyk9PT0ncmVjb21tZW5kJz8xMDA6
NTUsaD10aGlzLmdldEF0dHJpYnV0ZSgnYWN0aW9uJyk9PT0ncmVjb21tZW5kJz85
MDo1MCxpPXtzdGFuZGFyZDp7c2hvdzo0NTAsaGlkZTo0NTB9LGJveF9jb3VudDp7
c2hvdzpnLGhpZGU6Z30sYnV0dG9uX2NvdW50OntzaG93OmYsaGlkZTpmfSxzaW1w
bGU6e3Nob3c6aCxoaWRlOmh9fSxqPWlbYV1bY10saz10aGlzLl9nZXRQeEF0dHJp
YnV0ZSgnd2lkdGgnLGopLGw9e3N0YW5kYXJkOnttaW46ZSxtYXg6OTAwfSxib3hf
Y291bnQ6e21pbjpnLG1heDo5MDB9LGJ1dHRvbl9jb3VudDp7bWluOmYsbWF4Ojkw
MH0sc2ltcGxlOnttaW46NDksbWF4OjkwMH19O2lmKGs8bFthXS5taW4pe2s9bFth
XS5taW47fWVsc2UgaWYoaz5sW2FdLm1heClrPWxbYV0ubWF4O3JldHVybiBrO30s
X2dldExheW91dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9nZXRBdHRyaWJ1dGVG
cm9tTGlzdCgnbGF5b3V0Jywnc3RhbmRhcmQnLFsnc3RhbmRhcmQnLCdidXR0b25f
Y291bnQnLCdib3hfY291bnQnLCdzaW1wbGUnXSk7fSxfc2hvdWxkU2hvd0ZhY2Vz
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldExheW91dCgpPT09J3N0YW5kYXJk
JyYmdGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnc2hvdy1mYWNlcycsdHJ1ZSk7fSxf
aGFuZGxlRWRnZUNvbW1lbnREaWFsb2dQcmVzZW50YXRpb246ZnVuY3Rpb24oYSl7
aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybjt2YXIgYj1kb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJyk7dGhpcy5fY29tbWVudFNsYXZlPXRoaXMuX2NyZWF0ZUVk
Z2VDb21tZW50V2lkZ2V0KGEsYik7dGhpcy5kb20uYXBwZW5kQ2hpbGQoYik7dGhp
cy5fY29tbWVudFNsYXZlLnByb2Nlc3MoKTt0aGlzLl9jb21tZW50V2lkZ2V0Tm9k
ZT1iO30sX2NyZWF0ZUVkZ2VDb21tZW50V2lkZ2V0OmZ1bmN0aW9uKGEsYil7dmFy
IGM9e2NvbW1lbnROb2RlOmIsZXh0ZXJuYWxVcmw6YS5leHRlcm5hbFVSTCxtYXN0
ZXJGcmFtZU5hbWU6YS5tYXN0ZXJGcmFtZU5hbWUsbGF5b3V0OnRoaXMuX2dldExh
eW91dCgpLHJlbGF0aXZlSGVpZ2h0T2Zmc2V0OnRoaXMuX2dldEhlaWdodE9mZnNl
dChhKSxyZWxhdGl2ZVdpZHRoT2Zmc2V0OnRoaXMuX2dldFdpZHRoT2Zmc2V0KGEp
LGFuY2hvclRhcmdldFg6cGFyc2VGbG9hdChhWydxdWVyeVthbmNob3JUYXJnZXRY
XSddKSt0aGlzLl9yb290UGFkZGluZy5sZWZ0LGFuY2hvclRhcmdldFk6cGFyc2VG
bG9hdChhWydxdWVyeVthbmNob3JUYXJnZXRZXSddKSt0aGlzLl9yb290UGFkZGlu
Zy50b3Asd2lkdGg6cGFyc2VGbG9hdChhLndpZHRoKSxoZWlnaHQ6cGFyc2VGbG9h
dChhLmhlaWdodCkscGFkZGluZ0xlZnQ6dGhpcy5fcm9vdFBhZGRpbmcubGVmdH07
cmV0dXJuIG5ldyBGQi5YRkJNTC5FZGdlQ29tbWVudFdpZGdldChjKTt9LF9nZXRI
ZWlnaHRPZmZzZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYVsnYW5j
aG9yR2VvbWV0cnlbeV0nXSkrcGFyc2VGbG9hdChhWydhbmNob3JQb3NpdGlvblt5
XSddKSt0aGlzLl9yb290UGFkZGluZy50b3A7fSxfZ2V0V2lkdGhPZmZzZXQ6ZnVu
Y3Rpb24oYSl7dmFyIGI9cGFyc2VGbG9hdChhWydhbmNob3JQb3NpdGlvblt4XSdd
KSt0aGlzLl9yb290UGFkZGluZy5sZWZ0LGM9RkIuRG9tLmdldFBvc2l0aW9uKHRo
aXMuZG9tKS54LGQ9dGhpcy5kb20ub2Zmc2V0V2lkdGgsZT1GQi5Eb20uZ2V0Vmll
d3BvcnRJbmZvKCkud2lkdGgsZj1wYXJzZUZsb2F0KGEud2lkdGgpLGc9ZmFsc2U7
aWYoRkIuX2xvY2FsZUlzUnRsKXtnPWY8Yzt9ZWxzZSBpZigoYytmKT5lKWc9dHJ1
ZTtpZihnKWIrPXBhcnNlRmxvYXQoYVsnYW5jaG9yR2VvbWV0cnlbeF0nXSktZjty
ZXR1cm4gYjt9LF9nZXRDb21tb25FZGdlQ29tbWVudFdpZGdldE9wdHM6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4ge2NvbG9yc2NoZW1lOnRoaXMuX2F0dHIuY29sb3JzY2hl
bWUsY29tbWVudE5vZGU6Yixjb250cm9sbGVySUQ6YS5jb250cm9sbGVySUQsbm9k
ZUltYWdlVVJMOmEubm9kZUltYWdlVVJMLG5vZGVSZWY6dGhpcy5fYXR0ci5yZWYs
bm9kZVRpdGxlOmEubm9kZVRpdGxlLG5vZGVVUkw6YS5ub2RlVVJMLG5vZGVTdW1t
YXJ5OmEubm9kZVN1bW1hcnksd2lkdGg6cGFyc2VGbG9hdChhLndpZHRoKSxoZWln
aHQ6cGFyc2VGbG9hdChhLmhlaWdodCkscmVsYXRpdmVIZWlnaHRPZmZzZXQ6dGhp
cy5fZ2V0SGVpZ2h0T2Zmc2V0KGEpLHJlbGF0aXZlV2lkdGhPZmZzZXQ6dGhpcy5f
Z2V0V2lkdGhPZmZzZXQoYSksZXJyb3I6YS5lcnJvcixzaWRlcmVuZGVyOmEuc2lk
ZXJlbmRlcixleHRlbmRlZF9zb2NpYWxfY29udGV4dDphLmV4dGVuZGVkX3NvY2lh
bF9jb250ZXh0LGFuY2hvclRhcmdldFg6cGFyc2VGbG9hdChhWydxdWVyeVthbmNo
b3JUYXJnZXRYXSddKSt0aGlzLl9yb290UGFkZGluZy5sZWZ0LGFuY2hvclRhcmdl
dFk6cGFyc2VGbG9hdChhWydxdWVyeVthbmNob3JUYXJnZXRZXSddKSt0aGlzLl9y
b290UGFkZGluZy50b3B9O30sX2hhbmRsZUVkZ2VDb21tZW50RGlhbG9nRGlzbWlz
c2FsOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2NvbW1lbnRXaWRnZXROb2RlKXt0aGlz
LmRvbS5yZW1vdmVDaGlsZCh0aGlzLl9jb21tZW50V2lkZ2V0Tm9kZSk7ZGVsZXRl
IHRoaXMuX2NvbW1lbnRXaWRnZXROb2RlO319LF9oYW5kbGVFZGdlQ29tbWVudERp
YWxvZ0hpZGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9jb21tZW50V2lkZ2V0Tm9kZSl0
aGlzLl9jb21tZW50V2lkZ2V0Tm9kZS5zdHlsZS5kaXNwbGF5PSJub25lIjt9LF9o
YW5kbGVFZGdlQ29tbWVudERpYWxvZ1Nob3c6ZnVuY3Rpb24oKXtpZih0aGlzLl9j
b21tZW50V2lkZ2V0Tm9kZSl0aGlzLl9jb21tZW50V2lkZ2V0Tm9kZS5zdHlsZS5k
aXNwbGF5PSJibG9jayI7fSxfZmlyZUV2ZW50QW5kSW52b2tlSGFuZGxlcjpmdW5j
dGlvbihhLGIpe0ZCLkhlbHBlci5maXJlRXZlbnQoYSx0aGlzKTtGQi5IZWxwZXIu
aW52b2tlSGFuZGxlcih0aGlzLmdldEF0dHJpYnV0ZShiKSx0aGlzLFt0aGlzLl9h
dHRyLmhyZWZdKTt9LF9vbkVkZ2VDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9maXJl
RXZlbnRBbmRJbnZva2VIYW5kbGVyKCdlZGdlLmNyZWF0ZScsJ29uLWNyZWF0ZScp
O30sX29uRWRnZVJlbW92ZTpmdW5jdGlvbigpe3RoaXMuX2ZpcmVFdmVudEFuZElu
dm9rZUhhbmRsZXIoJ2VkZ2UucmVtb3ZlJywnb24tcmVtb3ZlJyk7fSxfb25BdXRo
UHJvbXB0OmZ1bmN0aW9uKCl7dGhpcy5fZmlyZUV2ZW50QW5kSW52b2tlSGFuZGxl
cignYXV0aC5wcm9tcHQnLCdvbi1wcm9tcHQnKTt9fSk7CkZCLnN1YmNsYXNzKCdY
RkJNTC5TZW5kQnV0dG9uRm9ybVdpZGdldCcsJ1hGQk1MLkVkZ2VDb21tZW50V2lk
Z2V0JyxmdW5jdGlvbihhKXt0aGlzLl9iYXNlKGEpO0ZCLkRvbS5hZGRDc3ModGhp
cy5kb20sJ2ZiX3NlbmRfYnV0dG9uX2Zvcm1fd2lkZ2V0Jyk7RkIuRG9tLmFkZENz
cyh0aGlzLmRvbSxhLmNvbG9yc2NoZW1lKTtGQi5Eb20uYWRkQ3NzKHRoaXMuZG9t
LCh0eXBlb2YgYS5zaWRlcmVuZGVyIT0ndW5kZWZpbmVkJyYmYS5zaWRlcmVuZGVy
KT8nc2lkZXJlbmRlcic6JycpO3RoaXMuX2F0dHIubm9kZUltYWdlVVJMPWEubm9k
ZUltYWdlVVJMO3RoaXMuX2F0dHIubm9kZVJlZj1hLm5vZGVSZWY7dGhpcy5fYXR0
ci5ub2RlVGl0bGU9YS5ub2RlVGl0bGU7dGhpcy5fYXR0ci5ub2RlVVJMPWEubm9k
ZVVSTDt0aGlzLl9hdHRyLm5vZGVTdW1tYXJ5PWEubm9kZVN1bW1hcnk7dGhpcy5f
YXR0ci5vZmZzZXRYPWEucmVsYXRpdmVXaWR0aE9mZnNldDt0aGlzLl9hdHRyLm9m
ZnNldFk9YS5yZWxhdGl2ZUhlaWdodE9mZnNldDt0aGlzLl9hdHRyLmFuY2hvclRh
cmdldFg9YS5hbmNob3JUYXJnZXRYO3RoaXMuX2F0dHIuYW5jaG9yVGFyZ2V0WT1h
LmFuY2hvclRhcmdldFk7dGhpcy5fYXR0ci5jaGFubmVsPXRoaXMuZ2V0Q2hhbm5l
bFVybCgpO3RoaXMuX2F0dHIuY29udHJvbGxlcklEPWEuY29udHJvbGxlcklEO3Ro
aXMuX2F0dHIuY29sb3JzY2hlbWU9YS5jb2xvcnNjaGVtZTt0aGlzLl9hdHRyLmVy
cm9yPWEuZXJyb3I7dGhpcy5fYXR0ci5zaWRlcmVuZGVyPWEuc2lkZXJlbmRlcjt0
aGlzLl9hdHRyLmV4dGVuZGVkX3NvY2lhbF9jb250ZXh0PWEuZXh0ZW5kZWRfc29j
aWFsX2NvbnRleHQ7fSx7X3Nob3dMb2FkZXI6dHJ1ZSxnZXRVcmxCaXRzOmZ1bmN0
aW9uKCl7cmV0dXJuIHtuYW1lOidzZW5kX2J1dHRvbl9mb3JtX3NoZWxsJyxwYXJh
bXM6dGhpcy5fYXR0cn07fSxvbmVUaW1lU2V0dXA6ZnVuY3Rpb24oKXt0aGlzLnN1
YnNjcmliZSgneGQubWVzc2FnZVNlbnQnLEVTNSh0aGlzLl9vbk1lc3NhZ2VTZW50
LCdiaW5kJyx0cnVlLHRoaXMpKTt9LF9vbk1lc3NhZ2VTZW50OmZ1bmN0aW9uKCl7
RkIuRXZlbnQuZmlyZSgnbWVzc2FnZS5zZW5kJyx0aGlzLl9hdHRyLm5vZGVVUkws
dGhpcyk7fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuU2VuZCcsJ1hGQk1MLkVkZ2VX
aWRnZXQnLG51bGwse3NldHVwQW5kVmFsaWRhdGU6ZnVuY3Rpb24oKXtGQi5Eb20u
YWRkQ3NzKHRoaXMuZG9tLCdmYl9lZGdlX3dpZGdldF93aXRoX2NvbW1lbnQnKTt0
aGlzLl9hdHRyPXtjaGFubmVsOnRoaXMuZ2V0Q2hhbm5lbFVybCgpLGFwaV9rZXk6
RkIuX2FwaUtleSxmb250OnRoaXMuZ2V0QXR0cmlidXRlKCdmb250JyksY29sb3Jz
Y2hlbWU6dGhpcy5nZXRBdHRyaWJ1dGUoJ2NvbG9yc2NoZW1lJywnbGlnaHQnKSxo
cmVmOnRoaXMuZ2V0QXR0cmlidXRlKCdocmVmJyx3aW5kb3cubG9jYXRpb24uaHJl
ZikscmVmOnRoaXMuZ2V0QXR0cmlidXRlKCdyZWYnKSxleHRlbmRlZF9zb2NpYWxf
Y29udGV4dDp0aGlzLmdldEF0dHJpYnV0ZSgnZXh0ZW5kZWRfc29jaWFsX2NvbnRl
eHQnLGZhbHNlKX07dGhpcy5fcm9vdFBhZGRpbmc9e2xlZnQ6cGFyc2VGbG9hdChG
Qi5Eb20uZ2V0U3R5bGUodGhpcy5kb20sJ3BhZGRpbmdMZWZ0JykpLHRvcDpwYXJz
ZUZsb2F0KEZCLkRvbS5nZXRTdHlsZSh0aGlzLmRvbSwncGFkZGluZ1RvcCcpKX07
cmV0dXJuIHRydWU7fSxnZXRVcmxCaXRzOmZ1bmN0aW9uKCl7cmV0dXJuIHtuYW1l
OidzZW5kJyxwYXJhbXM6dGhpcy5fYXR0cn07fSxfY3JlYXRlRWRnZUNvbW1lbnRX
aWRnZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9nZXRDb21tb25FZGdlQ29t
bWVudFdpZGdldE9wdHMoYSxiKTtyZXR1cm4gbmV3IEZCLlhGQk1MLlNlbmRCdXR0
b25Gb3JtV2lkZ2V0KGMpO30sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybiB7d2lk
dGg6RkIuWEZCTUwuU2VuZC5EaW1lbnNpb25zLndpZHRoLGhlaWdodDpGQi5YRkJN
TC5TZW5kLkRpbWVuc2lvbnMuaGVpZ2h0fTt9fSk7RkIucHJvdmlkZSgnWEZCTUwu
U2VuZCcse0RpbWVuc2lvbnM6e3dpZHRoOjgwLGhlaWdodDoyNX19KTsKRkIuc3Vi
Y2xhc3MoJ1hGQk1MLkxpa2UnLCdYRkJNTC5FZGdlV2lkZ2V0JyxudWxsLHtfd2lk
Z2V0UGlwZUVuYWJsZWQ6ZmFsc2UsZ2V0VXJsQml0czpmdW5jdGlvbigpe3JldHVy
biB7bmFtZTonbGlrZScscGFyYW1zOnRoaXMuX2F0dHJ9O30sX2NyZWF0ZUVkZ2VD
b21tZW50V2lkZ2V0OmZ1bmN0aW9uKGEsYil7aWYoJ3NlbmQnIGluIHRoaXMuX2F0
dHImJid3aWRnZXRfdHlwZScgaW4gYSYmYS53aWRnZXRfdHlwZT09J3NlbmQnKXt2
YXIgYz10aGlzLl9nZXRDb21tb25FZGdlQ29tbWVudFdpZGdldE9wdHMoYSxiKTty
ZXR1cm4gbmV3IEZCLlhGQk1MLlNlbmRCdXR0b25Gb3JtV2lkZ2V0KGMpO31lbHNl
IHJldHVybiB0aGlzLl9jYWxsQmFzZSgiX2NyZWF0ZUVkZ2VDb21tZW50V2lkZ2V0
IixhLGIpO30sZ2V0SWZyYW1lVGl0bGU6ZnVuY3Rpb24oKXtyZXR1cm4gJ0xpa2Ug
dGhpcyBjb250ZW50IG9uIEZhY2Vib29rLic7fX0pOwpGQi5zdWJjbGFzcygnWEZC
TUwuTGlrZUJveCcsJ1hGQk1MLkVkZ2VXaWRnZXQnLG51bGwse192aXNpYmxlQWZ0
ZXI6J2xvYWQnLHNldHVwQW5kVmFsaWRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9hdHRy
PXtjaGFubmVsOnRoaXMuZ2V0Q2hhbm5lbFVybCgpLGFwaV9rZXk6RkIuX2FwaUtl
eSxjb25uZWN0aW9uczp0aGlzLmdldEF0dHJpYnV0ZSgnY29ubmVjdGlvbnMnKSxj
c3M6dGhpcy5nZXRBdHRyaWJ1dGUoJ2NzcycpLGhlaWdodDp0aGlzLmdldEF0dHJp
YnV0ZSgnaGVpZ2h0JyksaWQ6dGhpcy5nZXRBdHRyaWJ1dGUoJ3Byb2ZpbGUtaWQn
KSxoZWFkZXI6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnaGVhZGVyJyx0cnVlKSxu
YW1lOnRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJyksc2hvd19mYWNlczp0aGlzLl9n
ZXRCb29sQXR0cmlidXRlKCdzaG93LWZhY2VzJyx0cnVlKSxzdHJlYW06dGhpcy5f
Z2V0Qm9vbEF0dHJpYnV0ZSgnc3RyZWFtJyx0cnVlKSx3aWR0aDp0aGlzLl9nZXRQ
eEF0dHJpYnV0ZSgnd2lkdGgnLDMwMCksaHJlZjp0aGlzLmdldEF0dHJpYnV0ZSgn
aHJlZicpLGNvbG9yc2NoZW1lOnRoaXMuZ2V0QXR0cmlidXRlKCdjb2xvcnNjaGVt
ZScsJ2xpZ2h0JyksYm9yZGVyX2NvbG9yOnRoaXMuZ2V0QXR0cmlidXRlKCdib3Jk
ZXJfY29sb3InKX07aWYodGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnZm9yY2Vfd2Fs
bCcsZmFsc2UpKXRoaXMuX2F0dHIuZm9yY2Vfd2FsbD10cnVlO2lmKHRoaXMuX2F0
dHIuY29ubmVjdGlvbnM9PT0nMCcpe3RoaXMuX2F0dHIuc2hvd19mYWNlcz1mYWxz
ZTt9ZWxzZSBpZih0aGlzLl9hdHRyLmNvbm5lY3Rpb25zKXRoaXMuX2F0dHIuc2hv
d19mYWNlcz10cnVlO2lmKCF0aGlzLl9hdHRyLmlkJiYhdGhpcy5fYXR0ci5uYW1l
JiYhdGhpcy5fYXR0ci5ocmVmKXtGQi5sb2coJzxmYjpsaWtlLWJveD4gcmVxdWly
ZXMgb25lIG9mIHRoZSAiaWQiIG9yICJuYW1lIiBhdHRyaWJ1dGVzLicpO3JldHVy
biBmYWxzZTt9dmFyIGE9dGhpcy5fYXR0ci5oZWlnaHQ7aWYoIWEpaWYoIXRoaXMu
X2F0dHIuc2hvd19mYWNlcyYmIXRoaXMuX2F0dHIuc3RyZWFtKXthPTYyO31lbHNl
e2E9OTU7aWYodGhpcy5fYXR0ci5zaG93X2ZhY2VzKWErPTE2MztpZih0aGlzLl9h
dHRyLnN0cmVhbSlhKz0zMDA7aWYodGhpcy5fYXR0ci5oZWFkZXImJnRoaXMuX2F0
dHIuaGVhZGVyIT09JzAnKWErPTMyO310aGlzLl9hdHRyLmhlaWdodD1hO3RoaXMu
c3Vic2NyaWJlKCd4ZC5saWtlYm94TGlrZWQnLEVTNSh0aGlzLl9vbkxpa2VkLCdi
aW5kJyx0cnVlLHRoaXMpKTt0aGlzLnN1YnNjcmliZSgneGQubGlrZWJveFVubGlr
ZWQnLEVTNSh0aGlzLl9vblVubGlrZWQsJ2JpbmQnLHRydWUsdGhpcykpO3JldHVy
biB0cnVlO30sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybiB7d2lkdGg6dGhpcy5f
YXR0ci53aWR0aCxoZWlnaHQ6dGhpcy5fYXR0ci5oZWlnaHR9O30sZ2V0VXJsQml0
czpmdW5jdGlvbigpe3JldHVybiB7bmFtZTonbGlrZWJveCcscGFyYW1zOnRoaXMu
X2F0dHJ9O30sX29uTGlrZWQ6ZnVuY3Rpb24oKXtGQi5IZWxwZXIuZmlyZUV2ZW50
KCdlZGdlLmNyZWF0ZScsdGhpcyk7fSxfb25Vbmxpa2VkOmZ1bmN0aW9uKCl7RkIu
SGVscGVyLmZpcmVFdmVudCgnZWRnZS5yZW1vdmUnLHRoaXMpO319KTsKRkIuc3Vi
Y2xhc3MoJ1hGQk1MLkxpdmVTdHJlYW0nLCdYRkJNTC5JZnJhbWVXaWRnZXQnLG51
bGwse192aXNpYmxlQWZ0ZXI6J2xvYWQnLHNldHVwQW5kVmFsaWRhdGU6ZnVuY3Rp
b24oKXt0aGlzLl9hdHRyPXthcHBfaWQ6dGhpcy5nZXRBdHRyaWJ1dGUoJ2V2ZW50
LWFwcC1pZCcpLGhyZWY6dGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnLHdpbmRvdy5s
b2NhdGlvbi5ocmVmKSxoZWlnaHQ6dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ2hlaWdo
dCcsNTAwKSxoaWRlRnJpZW5kc1RhYjp0aGlzLmdldEF0dHJpYnV0ZSgnaGlkZS1m
cmllbmRzLXRhYicpLHJlZGVzaWduZWQ6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgn
cmVkZXNpZ25lZC1zdHJlYW0nKSx3aWR0aDp0aGlzLl9nZXRQeEF0dHJpYnV0ZSgn
d2lkdGgnLDQwMCkseGlkOnRoaXMuZ2V0QXR0cmlidXRlKCd4aWQnLCdkZWZhdWx0
JyksYWx3YXlzX3Bvc3RfdG9fZnJpZW5kczp0aGlzLl9nZXRCb29sQXR0cmlidXRl
KCdhbHdheXMtcG9zdC10by1mcmllbmRzJyksdmlhX3VybDp0aGlzLmdldEF0dHJp
YnV0ZSgndmlhX3VybCcpfTtyZXR1cm4gdHJ1ZTt9LGdldFNpemU6ZnVuY3Rpb24o
KXtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0dHIud2lkdGgsaGVpZ2h0OnRoaXMuX2F0
dHIuaGVpZ2h0fTt9LGdldFVybEJpdHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9h
dHRyLnJlZGVzaWduZWQ/J2xpdmVfc3RyZWFtX2JveCc6J2xpdmVmZWVkJztpZih0
aGlzLl9nZXRCb29sQXR0cmlidXRlKCdtb2Rlcm4nLGZhbHNlKSlhPSdsaXZlX3N0
cmVhbSc7cmV0dXJuIHtuYW1lOmEscGFyYW1zOnRoaXMuX2F0dHJ9O319KTsKRkIu
c3ViY2xhc3MoJ1hGQk1MLkxvZ2luQnV0dG9uJywnWEZCTUwuSWZyYW1lV2lkZ2V0
JyxudWxsLHtfc2hvd0xvYWRlcjpmYWxzZSxzZXR1cEFuZFZhbGlkYXRlOmZ1bmN0
aW9uKCl7dmFyIGE9dGhpcy5nZXRBdHRyaWJ1dGUoJ3JlZ2lzdHJhdGlvbi11cmwn
KTt0aGlzLl9hdHRyPXtjaGFubmVsOnRoaXMuZ2V0Q2hhbm5lbFVybCgpLGNvbG9y
c2NoZW1lOnRoaXMuZ2V0QXR0cmlidXRlKCdjb2xvcnNjaGVtZScpLG1heF9yb3dz
OnRoaXMuZ2V0QXR0cmlidXRlKCdtYXgtcm93cycpLHdpZHRoOnRoaXMuX2dldFB4
QXR0cmlidXRlKCd3aWR0aCcpLHNob3dfZmFjZXM6dGhpcy5fZ2V0Qm9vbEF0dHJp
YnV0ZSgnc2hvdy1mYWNlcycpLHNob3dfbG9naW5fZmFjZTp0aGlzLl9nZXRCb29s
QXR0cmlidXRlKCdzaG93LWxvZ2luLWZhY2UnKSxzaXplOnRoaXMuZ2V0QXR0cmli
dXRlKCdzaXplJyksbG9naW5fdGV4dDp0aGlzLmRvbS50ZXh0Q29udGVudHx8dGhp
cy5kb20uaW5uZXJUZXh0LHJlZ2lzdHJhdGlvbl91cmw6YT9GQi5VUkkucmVzb2x2
ZShhKTpudWxsLG9uZV9jbGljazp0aGlzLmdldEF0dHJpYnV0ZSgnb25lLWNsaWNr
Jyksc2NvcGU6dGhpcy5nZXRBdHRyaWJ1dGUoJ3Njb3BlJyl8fHRoaXMuZ2V0QXR0
cmlidXRlKCdwZXJtcycpLGF1dG9fbG9nb3V0X2xpbms6dGhpcy5fZ2V0Qm9vbEF0
dHJpYnV0ZSgnYXV0by1sb2dvdXQtbGluaycpfTt0aGlzLmNsZWFyKCk7dmFyIGI9
dGhpcy5nZXRBdHRyaWJ1dGUoJ29uLWxvZ2luJyk7aWYoYil0aGlzLnN1YnNjcmli
ZSgneGQucmVmcmVzaExvZ2luU3RhdHVzJyxFUzUoZnVuY3Rpb24oKXtGQi5nZXRM
b2dpblN0YXR1cyhFUzUoZnVuY3Rpb24oYyl7RkIuSGVscGVyLmludm9rZUhhbmRs
ZXIoYix0aGlzLFtjXSk7fSwnYmluZCcsdHJ1ZSx0aGlzKSk7fSwnYmluZCcsdHJ1
ZSx0aGlzKSk7cmV0dXJuIHRydWU7fSxvbmVUaW1lU2V0dXA6ZnVuY3Rpb24oKXt2
YXIgYT1GQi5SdW50aW1lLmdldExvZ2luU3RhdHVzKCk7RkIuRXZlbnQuc3Vic2Ny
aWJlKCdhdXRoLnN0YXR1c0NoYW5nZScsRVM1KGZ1bmN0aW9uKGIpe2lmKGE9PSdj
b25uZWN0ZWQnfHxiLnN0YXR1cz09J2Nvbm5lY3RlZCcpdGhpcy5wcm9jZXNzKHRy
dWUpO2E9Yi5zdGF0dXM7fSwnYmluZCcsdHJ1ZSx0aGlzKSk7fSxnZXRTaXplOmZ1
bmN0aW9uKCl7cmV0dXJuIHt3aWR0aDp0aGlzLl9hdHRyLndpZHRoLGhlaWdodDo5
NH07fSxnZXRVcmxCaXRzOmZ1bmN0aW9uKCl7cmV0dXJuIHtuYW1lOidsb2dpbl9i
dXR0b24nLHBhcmFtczp0aGlzLl9hdHRyfTt9fSk7CkZCLnN1YmNsYXNzKCdYRkJN
TC5OYW1lJywnWEZCTUwuRWxlbWVudCcsbnVsbCx7cHJvY2VzczpmdW5jdGlvbigp
e0ZCLmNvcHkodGhpcyx7X3VpZDp0aGlzLmdldEF0dHJpYnV0ZSgndWlkJyksX2Zp
cnN0bmFtZW9ubHk6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnZmlyc3QtbmFtZS1v
bmx5JyksX2xhc3RuYW1lb25seTp0aGlzLl9nZXRCb29sQXR0cmlidXRlKCdsYXN0
LW5hbWUtb25seScpLF9wb3NzZXNzaXZlOnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUo
J3Bvc3Nlc3NpdmUnKSxfcmVmbGV4aXZlOnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUo
J3JlZmxleGl2ZScpLF9vYmplY3RpdmU6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgn
b2JqZWN0aXZlJyksX2xpbmtlZDp0aGlzLl9nZXRCb29sQXR0cmlidXRlKCdsaW5r
ZWQnLHRydWUpLF9zdWJqZWN0SWQ6dGhpcy5nZXRBdHRyaWJ1dGUoJ3N1YmplY3Qt
aWQnKX0pO2lmKCF0aGlzLl91aWQpe0ZCLmxvZygnInVpZCIgaXMgYSByZXF1aXJl
ZCBhdHRyaWJ1dGUgZm9yIDxmYjpuYW1lPicpO3RoaXMuZmlyZSgncmVuZGVyJyk7
cmV0dXJuO312YXIgYT1bXTtpZih0aGlzLl9maXJzdG5hbWVvbmx5KXthLnB1c2go
J2ZpcnN0X25hbWUnKTt9ZWxzZSBpZih0aGlzLl9sYXN0bmFtZW9ubHkpe2EucHVz
aCgnbGFzdF9uYW1lJyk7fWVsc2UgYS5wdXNoKCduYW1lJyk7aWYodGhpcy5fc3Vi
amVjdElkKXthLnB1c2goJ3NleCcpO2lmKHRoaXMuX3N1YmplY3RJZD09RkIuSGVs
cGVyLmdldExvZ2dlZEluVXNlcigpKXRoaXMuX3JlZmxleGl2ZT10cnVlO312YXIg
YjtGQi5FdmVudC5tb25pdG9yKCdhdXRoLnN0YXR1c0NoYW5nZScsRVM1KHRoaXMs
J2JpbmQnLHRydWUsZnVuY3Rpb24oKXtpZighdGhpcy5pc1ZhbGlkKCkpe3RoaXMu
ZmlyZSgncmVuZGVyJyk7cmV0dXJuIHRydWU7fWlmKCF0aGlzLl91aWR8fHRoaXMu
X3VpZD09J2xvZ2dlZGludXNlcicpdGhpcy5fdWlkPUZCLkhlbHBlci5nZXRMb2dn
ZWRJblVzZXIoKTtpZighdGhpcy5fdWlkKXJldHVybjtpZihGQi5IZWxwZXIuaXNV
c2VyKHRoaXMuX3VpZCkpe2I9RkIuRGF0YS5fc2VsZWN0QnlJbmRleChhLCd1c2Vy
JywndWlkJyx0aGlzLl91aWQpO31lbHNlIGI9RkIuRGF0YS5fc2VsZWN0QnlJbmRl
eChbJ25hbWUnLCdpZCddLCdwcm9maWxlJywnaWQnLHRoaXMuX3VpZCk7Yi53YWl0
KEVTNSh0aGlzLCdiaW5kJyx0cnVlLGZ1bmN0aW9uKGMpe2lmKHRoaXMuX3N1Ympl
Y3RJZD09dGhpcy5fdWlkKXt0aGlzLl9yZW5kZXJQcm9ub3VuKGNbMF0pO31lbHNl
IHRoaXMuX3JlbmRlck90aGVyKGNbMF0pO3RoaXMuZmlyZSgncmVuZGVyJyk7fSkp
O30pKTt9LF9yZW5kZXJQcm9ub3VuOmZ1bmN0aW9uKGEpe3ZhciBiPScnLGM9dGhp
cy5fb2JqZWN0aXZlO2lmKHRoaXMuX3N1YmplY3RJZCl7Yz10cnVlO2lmKHRoaXMu
X3N1YmplY3RJZD09PXRoaXMuX3VpZCl0aGlzLl9yZWZsZXhpdmU9dHJ1ZTt9aWYo
dGhpcy5fdWlkPT1GQi5Db25uZWN0LmdldF9sb2dnZWRJblVzZXIoKSYmdGhpcy5f
Z2V0Qm9vbEF0dHJpYnV0ZSgndXNlLXlvdScsdHJ1ZSkpe2lmKHRoaXMuX3Bvc3Nl
c3NpdmUpe2lmKHRoaXMuX3JlZmxleGl2ZSl7Yj0neW91ciBvd24nO31lbHNlIGI9
J3lvdXInO31lbHNlIGlmKHRoaXMuX3JlZmxleGl2ZSl7Yj0neW91cnNlbGYnO31l
bHNlIGI9J3lvdSc7fWVsc2Ugc3dpdGNoKGEuc2V4KXtjYXNlICdtYWxlJzppZih0
aGlzLl9wb3NzZXNzaXZlKXtiPXRoaXMuX3JlZmxleGl2ZT8naGlzIG93bic6J2hp
cyc7fWVsc2UgaWYodGhpcy5fcmVmbGV4aXZlKXtiPSdoaW1zZWxmJzt9ZWxzZSBp
ZihjKXtiPSdoaW0nO31lbHNlIGI9J2hlJzticmVhaztjYXNlICdmZW1hbGUnOmlm
KHRoaXMuX3Bvc3Nlc3NpdmUpe2I9dGhpcy5fcmVmbGV4aXZlPydoZXIgb3duJzon
aGVyJzt9ZWxzZSBpZih0aGlzLl9yZWZsZXhpdmUpe2I9J2hlcnNlbGYnO31lbHNl
IGlmKGMpe2I9J2hlcic7fWVsc2UgYj0nc2hlJzticmVhaztkZWZhdWx0OmlmKHRo
aXMuX2dldEJvb2xBdHRyaWJ1dGUoJ3VzZS10aGV5Jyx0cnVlKSl7aWYodGhpcy5f
cG9zc2Vzc2l2ZSl7aWYodGhpcy5fcmVmbGV4aXZlKXtiPSd0aGVpciBvd24nO31l
bHNlIGI9J3RoZWlyJzt9ZWxzZSBpZih0aGlzLl9yZWZsZXhpdmUpe2I9J3RoZW1z
ZWx2ZXMnO31lbHNlIGlmKGMpe2I9J3RoZW0nO31lbHNlIGI9J3RoZXknO31lbHNl
IGlmKHRoaXMuX3Bvc3Nlc3NpdmUpe2lmKHRoaXMuX3JlZmxleGl2ZSl7Yj0naGlz
L2hlciBvd24nO31lbHNlIGI9J2hpcy9oZXInO31lbHNlIGlmKHRoaXMuX3JlZmxl
eGl2ZSl7Yj0naGltc2VsZi9oZXJzZWxmJzt9ZWxzZSBpZihjKXtiPSdoaW0vaGVy
Jzt9ZWxzZSBiPSdoZS9zaGUnO2JyZWFrO31pZih0aGlzLl9nZXRCb29sQXR0cmli
dXRlKCdjYXBpdGFsaXplJyxmYWxzZSkpYj1GQi5IZWxwZXIudXBwZXJDYXNlRmly
c3RDaGFyKGIpO3RoaXMuZG9tLmlubmVySFRNTD1iO30sX3JlbmRlck90aGVyOmZ1
bmN0aW9uKGEpe3ZhciBiPScnLGM9Jyc7aWYodGhpcy5fdWlkPT1GQi5IZWxwZXIu
Z2V0TG9nZ2VkSW5Vc2VyKCkmJnRoaXMuX2dldEJvb2xBdHRyaWJ1dGUoJ3VzZS15
b3UnLHRydWUpKXtpZih0aGlzLl9yZWZsZXhpdmUpe2lmKHRoaXMuX3Bvc3Nlc3Np
dmUpe2I9J3lvdXIgb3duJzt9ZWxzZSBiPSd5b3Vyc2VsZic7fWVsc2UgaWYodGhp
cy5fcG9zc2Vzc2l2ZSl7Yj0neW91cic7fWVsc2UgYj0neW91Jzt9ZWxzZSBpZihh
KXtpZihudWxsPT09YS5maXJzdF9uYW1lKWEuZmlyc3RfbmFtZT0nJztpZihudWxs
PT09YS5sYXN0X25hbWUpYS5sYXN0X25hbWU9Jyc7aWYodGhpcy5fZmlyc3RuYW1l
b25seSYmYS5maXJzdF9uYW1lIT09dW5kZWZpbmVkKXtiPUZCLlN0cmluZy5lc2Nh
cGVIVE1MKGEuZmlyc3RfbmFtZSk7fWVsc2UgaWYodGhpcy5fbGFzdG5hbWVvbmx5
JiZhLmxhc3RfbmFtZSE9PXVuZGVmaW5lZCliPUZCLlN0cmluZy5lc2NhcGVIVE1M
KGEubGFzdF9uYW1lKTtpZighYiliPUZCLlN0cmluZy5lc2NhcGVIVE1MKGEubmFt
ZSk7aWYoYiE9PScnJiZ0aGlzLl9wb3NzZXNzaXZlKWIrPSdcJ3MnO31pZighYili
PUZCLlN0cmluZy5lc2NhcGVIVE1MKHRoaXMuZ2V0QXR0cmlidXRlKCdpZi1jYW50
LXNlZScsJ0ZhY2Vib29rIFVzZXInKSk7aWYoYil7aWYodGhpcy5fZ2V0Qm9vbEF0
dHJpYnV0ZSgnY2FwaXRhbGl6ZScsZmFsc2UpKWI9RkIuSGVscGVyLnVwcGVyQ2Fz
ZUZpcnN0Q2hhcihiKTtpZihhJiZ0aGlzLl9saW5rZWQpe2M9RkIuSGVscGVyLmdl
dFByb2ZpbGVMaW5rKGEsYix0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicsbnVsbCkp
O31lbHNlIGM9Yjt9dGhpcy5kb20uaW5uZXJIVE1MPWM7fX0pOwpGQi5zdWJjbGFz
cygnWEZCTUwuUGFnZUV2ZW50cycsJ1hGQk1MLklmcmFtZVdpZGdldCcsbnVsbCx7
c2V0dXBBbmRWYWxpZGF0ZTpmdW5jdGlvbigpe3RoaXMuX2F0dHI9e2NoYW5uZWw6
dGhpcy5nZXRDaGFubmVsVXJsKCksYXBpX2tleTpGQi5fYXBpS2V5LGZvbnQ6dGhp
cy5nZXRBdHRyaWJ1dGUoJ2ZvbnQnKSxjb2xvcnNjaGVtZTp0aGlzLmdldEF0dHJp
YnV0ZSgnY29sb3JzY2hlbWUnKSxocmVmOnRoaXMuZ2V0QXR0cmlidXRlKCdocmVm
Jyl9O3JldHVybiB0cnVlO30sZ2V0VXJsQml0czpmdW5jdGlvbigpe3JldHVybiB7
bmFtZToncGFnZV9ldmVudHMnLHBhcmFtczp0aGlzLl9hdHRyfTt9fSk7CkZCLnN1
YmNsYXNzKCdYRkJNTC5Qcm9maWxlUGljJywnWEZCTUwuRWxlbWVudCcsbnVsbCx7
cHJvY2VzczpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKCdzaXpl
JywndGh1bWInKSxiPUZCLlhGQk1MLlByb2ZpbGVQaWMuX3NpemVUb1BpY0ZpZWxk
TWFwW2FdLGM9dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ3dpZHRoJyksZD10aGlzLl9n
ZXRQeEF0dHJpYnV0ZSgnaGVpZ2h0JyksZT10aGlzLmRvbS5zdHlsZSxmPXRoaXMu
Z2V0QXR0cmlidXRlKCd1aWQnKTtpZih0aGlzLl9nZXRCb29sQXR0cmlidXRlKCdm
YWNlYm9vay1sb2dvJykpYis9J193aXRoX2xvZ28nO2lmKGMpe2M9YysncHgnO2Uu
d2lkdGg9Yzt9aWYoZCl7ZD1kKydweCc7ZS5oZWlnaHQ9ZDt9dmFyIGc9RVM1KHRo
aXMsJ2JpbmQnLHRydWUsZnVuY3Rpb24oaCl7dmFyIGk9aD9oWzBdOm51bGwsaj1p
P2lbYl06bnVsbDtpZighailqPUZCLmdldERvbWFpbignY2RuJykrRkIuWEZCTUwu
UHJvZmlsZVBpYy5fZGVmUGljTWFwW2JdO3ZhciBrPSgoYz8nd2lkdGg6JytjKyc7
JzonJykrKGQ/J2hlaWdodDonK2MrJzsnOicnKSksbD1GQi5TdHJpbmcuZm9ybWF0
KCc8aW1nIHNyYz0iezB9IiBhbHQ9InsxfSIgdGl0bGU9InsxfSIgc3R5bGU9Insy
fSIgY2xhc3M9InszfSIgLz4nLGosaT9GQi5TdHJpbmcuZXNjYXBlSFRNTChpLm5h
bWUpOicnLGssdGhpcy5kb20uY2xhc3NOYW1lKTtpZih0aGlzLl9nZXRCb29sQXR0
cmlidXRlKCdsaW5rZWQnLHRydWUpKWw9RkIuSGVscGVyLmdldFByb2ZpbGVMaW5r
KGksbCx0aGlzLmdldEF0dHJpYnV0ZSgnaHJlZicsbnVsbCkpO3RoaXMuZG9tLmlu
bmVySFRNTD1sO0ZCLkRvbS5hZGRDc3ModGhpcy5kb20sJ2ZiX3Byb2ZpbGVfcGlj
X3JlbmRlcmVkJyk7dGhpcy5maXJlKCdyZW5kZXInKTt9KTtGQi5FdmVudC5tb25p
dG9yKCdhdXRoLnN0YXR1c0NoYW5nZScsRVM1KHRoaXMsJ2JpbmQnLHRydWUsZnVu
Y3Rpb24oKXtpZighdGhpcy5pc1ZhbGlkKCkpe3RoaXMuZmlyZSgncmVuZGVyJyk7
cmV0dXJuIHRydWU7fWlmKHRoaXMuZ2V0QXR0cmlidXRlKCd1aWQnLG51bGwpPT0n
bG9nZ2VkaW51c2VyJylmPUZCLkhlbHBlci5nZXRMb2dnZWRJblVzZXIoKTtpZihG
Qi5SdW50aW1lLmdldExvZ2luU3RhdHVzKCkhPT0ndW5rbm93bicmJmYpe0ZCLkRh
dGEuX3NlbGVjdEJ5SW5kZXgoWyduYW1lJyxiXSxGQi5IZWxwZXIuaXNVc2VyKGYp
Pyd1c2VyJzoncHJvZmlsZScsRkIuSGVscGVyLmlzVXNlcihmKT8ndWlkJzonaWQn
LGYpLndhaXQoZyk7fWVsc2UgZygpO30pKTt9fSk7RkIucHJvdmlkZSgnWEZCTUwu
UHJvZmlsZVBpYycse19kZWZQaWNNYXA6e3BpYzoncGljcy9zX3NpbGhvdWV0dGUu
anBnJyxwaWNfYmlnOidwaWNzL2Rfc2lsaG91ZXR0ZS5naWYnLHBpY19iaWdfd2l0
aF9sb2dvOidwaWNzL2Rfc2lsaG91ZXR0ZV9sb2dvLmdpZicscGljX3NtYWxsOidw
aWNzL3Rfc2lsaG91ZXR0ZS5qcGcnLHBpY19zbWFsbF93aXRoX2xvZ286J3BpY3Mv
dF9zaWxob3VldHRlX2xvZ28uZ2lmJyxwaWNfc3F1YXJlOidwaWNzL3Ffc2lsaG91
ZXR0ZS5naWYnLHBpY19zcXVhcmVfd2l0aF9sb2dvOidwaWNzL3Ffc2lsaG91ZXR0
ZV9sb2dvLmdpZicscGljX3dpdGhfbG9nbzoncGljcy9zX3NpbGhvdWV0dGVfbG9n
by5naWYnfSxfc2l6ZVRvUGljRmllbGRNYXA6e246J3BpY19iaWcnLG5vcm1hbDon
cGljX2JpZycscToncGljX3NxdWFyZScsczoncGljJyxzbWFsbDoncGljJyxzcXVh
cmU6J3BpY19zcXVhcmUnLHQ6J3BpY19zbWFsbCcsdGh1bWI6J3BpY19zbWFsbCd9
fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5SZWNvbW1lbmRhdGlvbnMnLCdYRkJNTC5J
ZnJhbWVXaWRnZXQnLG51bGwse192aXNpYmxlQWZ0ZXI6J2xvYWQnLF9yZWZyZXNo
T25BdXRoQ2hhbmdlOnRydWUsc2V0dXBBbmRWYWxpZGF0ZTpmdW5jdGlvbigpe3Ro
aXMuX2F0dHI9e2JvcmRlcl9jb2xvcjp0aGlzLmdldEF0dHJpYnV0ZSgnYm9yZGVy
LWNvbG9yJyksY29sb3JzY2hlbWU6dGhpcy5nZXRBdHRyaWJ1dGUoJ2NvbG9yLXNj
aGVtZScpLGZpbHRlcjp0aGlzLmdldEF0dHJpYnV0ZSgnZmlsdGVyJyksZm9udDp0
aGlzLmdldEF0dHJpYnV0ZSgnZm9udCcpLGFjdGlvbjp0aGlzLmdldEF0dHJpYnV0
ZSgnYWN0aW9uJyksbGlua3RhcmdldDp0aGlzLmdldEF0dHJpYnV0ZSgnbGlua3Rh
cmdldCcsJ19ibGFuaycpLG1heF9hZ2U6dGhpcy5nZXRBdHRyaWJ1dGUoJ21heF9h
Z2UnKSxoZWFkZXI6dGhpcy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnaGVhZGVyJyksaGVp
Z2h0OnRoaXMuX2dldFB4QXR0cmlidXRlKCdoZWlnaHQnLDMwMCksc2l0ZTp0aGlz
LmdldEF0dHJpYnV0ZSgnc2l0ZScsbG9jYXRpb24uaG9zdG5hbWUpLHdpZHRoOnRo
aXMuX2dldFB4QXR0cmlidXRlKCd3aWR0aCcsMzAwKX07cmV0dXJuIHRydWU7fSxn
ZXRTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHt3aWR0aDp0aGlzLl9hdHRyLndpZHRo
LGhlaWdodDp0aGlzLl9hdHRyLmhlaWdodH07fSxnZXRVcmxCaXRzOmZ1bmN0aW9u
KCl7cmV0dXJuIHtuYW1lOidyZWNvbW1lbmRhdGlvbnMnLHBhcmFtczp0aGlzLl9h
dHRyfTt9fSk7CkZCLnN1YmNsYXNzKCdYRkJNTC5SZWNvbW1lbmRhdGlvbnNCYXIn
LCdYRkJNTC5JZnJhbWVXaWRnZXQnLG51bGwse2dldFVybEJpdHM6ZnVuY3Rpb24o
KXtyZXR1cm4ge25hbWU6J3JlY29tbWVuZGF0aW9uc19iYXInLHBhcmFtczp0aGlz
Ll9hdHRyfTt9LHNldHVwQW5kVmFsaWRhdGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiBh
KGosayl7dmFyIGw9MCxtPW51bGw7ZnVuY3Rpb24gbigpe2soKTttPW51bGw7bD0o
bmV3IERhdGUoKSkuZ2V0VGltZSgpO31yZXR1cm4gZnVuY3Rpb24oKXtpZighbSl7
dmFyIG89KG5ldyBEYXRlKCkpLmdldFRpbWUoKTtpZihvLWw8ail7bT13aW5kb3cu
c2V0VGltZW91dChuLGotKG8tbCkpO31lbHNlIG4oKTt9cmV0dXJuIHRydWU7fTt9
ZnVuY3Rpb24gYihqKXtpZihqLm1hdGNoKC9eXGQrKD86XC5cZCspPyUkLykpe3Zh
ciBrPU1hdGgubWluKE1hdGgubWF4KHBhcnNlSW50KGosMTApLDApLDEwMCk7aj1r
LzEwMDt9ZWxzZSBpZihqIT0nbWFudWFsJyYmaiE9J29udmlzaWJsZScpaj0nb252
aXNpYmxlJztyZXR1cm4gajt9ZnVuY3Rpb24gYyhqKXtyZXR1cm4gTWF0aC5tYXgo
cGFyc2VJbnQoaiwxMCl8fDMwLDEwKTt9ZnVuY3Rpb24gZChqKXtpZihqPT0nbGVm
dCd8fGo9PSdyaWdodCcpcmV0dXJuIGo7cmV0dXJuIEZCLl9sb2NhbGVJc1J0bD8n
bGVmdCc6J3JpZ2h0Jzt9dGhpcy5fYXR0cj17Y2hhbm5lbDp0aGlzLmdldENoYW5u
ZWxVcmwoKSxhcGlfa2V5OkZCLl9hcGlLZXksZm9udDp0aGlzLmdldEF0dHJpYnV0
ZSgnZm9udCcpLGNvbG9yc2NoZW1lOnRoaXMuZ2V0QXR0cmlidXRlKCdjb2xvcnNj
aGVtZScpLGhyZWY6RkIuVVJJLnJlc29sdmUodGhpcy5nZXRBdHRyaWJ1dGUoJ2hy
ZWYnKSksc2lkZTpkKHRoaXMuZ2V0QXR0cmlidXRlKCdzaWRlJykpLHNpdGU6dGhp
cy5nZXRBdHRyaWJ1dGUoJ3NpdGUnKSxhY3Rpb246dGhpcy5nZXRBdHRyaWJ1dGUo
J2FjdGlvbicpLHJlZjp0aGlzLmdldEF0dHJpYnV0ZSgncmVmJyksbWF4X2FnZTp0
aGlzLmdldEF0dHJpYnV0ZSgnbWF4X2FnZScpLHRyaWdnZXI6Yih0aGlzLmdldEF0
dHJpYnV0ZSgndHJpZ2dlcicsJycpKSxyZWFkX3RpbWU6Yyh0aGlzLmdldEF0dHJp
YnV0ZSgncmVhZF90aW1lJykpLG51bV9yZWNvbW1lbmRhdGlvbnM6cGFyc2VJbnQo
dGhpcy5nZXRBdHRyaWJ1dGUoJ251bV9yZWNvbW1lbmRhdGlvbnMnKSwxMCl8fDJ9
O0ZCLl9pblBsdWdpbj10cnVlO3RoaXMuX3Nob3dMb2FkZXI9ZmFsc2U7dGhpcy5z
dWJzY3JpYmUoJ2lmcmFtZS5vbmxvYWQnLEVTNShmdW5jdGlvbigpe3ZhciBqPXRo
aXMuZG9tLmNoaWxkcmVuWzBdO2ouY2xhc3NOYW1lPSdmYnBsdWdpbnJlY29tbWVu
ZGF0aW9uc2JhcicrdGhpcy5fYXR0ci5zaWRlO30sJ2JpbmQnLHRydWUsdGhpcykp
O3ZhciBlPUVTNShmdW5jdGlvbigpe0ZCLkV2ZW50LnVubGlzdGVuKHdpbmRvdywn
c2Nyb2xsJyxlKTtGQi5FdmVudC51bmxpc3Rlbihkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQsJ2NsaWNrJyxlKTtGQi5FdmVudC51bmxpc3Rlbihkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQsJ21vdXNlbW92ZScsZSk7d2luZG93LnNldFRpbWVvdXQoRVM1
KHRoaXMuYXJiaXRlckluZm9ybSwnYmluZCcsdHJ1ZSx0aGlzLCdwbGF0Zm9ybS9w
bHVnaW5zL3JlY29tbWVuZGF0aW9uc19iYXIvYWN0aW9uJyxudWxsLEZCLkFyYml0
ZXIuQkVIQVZJT1JfU1RBVEUpLHRoaXMuX2F0dHIucmVhZF90aW1lKjEwMDApO3Jl
dHVybiB0cnVlO30sJ2JpbmQnLHRydWUsdGhpcyk7RkIuRXZlbnQubGlzdGVuKHdp
bmRvdywnc2Nyb2xsJyxlKTtGQi5FdmVudC5saXN0ZW4oZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LCdjbGljaycsZSk7RkIuRXZlbnQubGlzdGVuKGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCwnbW91c2Vtb3ZlJyxlKTtpZih0aGlzLl9hdHRyLnRyaWdn
ZXI9PSJtYW51YWwiKXt2YXIgZj1FUzUoZnVuY3Rpb24oail7aWYoaj09dGhpcy5f
YXR0ci5ocmVmKXtGQi5FdmVudC51bnN1YnNjcmliZSgneGZibWwucmVjb21tZW5k
YXRpb25zYmFyLnJlYWQnLGYpO3RoaXMuYXJiaXRlckluZm9ybSgncGxhdGZvcm0v
cGx1Z2lucy9yZWNvbW1lbmRhdGlvbnNfYmFyL3RyaWdnZXInLG51bGwsRkIuQXJi
aXRlci5CRUhBVklPUl9TVEFURSk7fXJldHVybiB0cnVlO30sJ2JpbmQnLHRydWUs
dGhpcyk7RkIuRXZlbnQuc3Vic2NyaWJlKCd4ZmJtbC5yZWNvbW1lbmRhdGlvbnNi
YXIucmVhZCcsZik7fWVsc2V7dmFyIGc9YSg1MDAsRVM1KGZ1bmN0aW9uKCl7aWYo
dGhpcy5jYWxjdWxhdGVWaXNpYmlsaXR5KCkpe0ZCLkV2ZW50LnVubGlzdGVuKHdp
bmRvdywnc2Nyb2xsJyxnKTtGQi5FdmVudC51bmxpc3Rlbih3aW5kb3csJ3Jlc2l6
ZScsZyk7dGhpcy5hcmJpdGVySW5mb3JtKCdwbGF0Zm9ybS9wbHVnaW5zL3JlY29t
bWVuZGF0aW9uc19iYXIvdHJpZ2dlcicsbnVsbCxGQi5BcmJpdGVyLkJFSEFWSU9S
X1NUQVRFKTt9cmV0dXJuIHRydWU7fSwnYmluZCcsdHJ1ZSx0aGlzKSk7RkIuRXZl
bnQubGlzdGVuKHdpbmRvdywnc2Nyb2xsJyxnKTtGQi5FdmVudC5saXN0ZW4od2lu
ZG93LCdyZXNpemUnLGcpO2coKTt9dGhpcy52aXNpYmxlPWZhbHNlO3ZhciBoPWEo
NTAwLEVTNShmdW5jdGlvbigpe2lmKCF0aGlzLnZpc2libGUmJnRoaXMuY2FsY3Vs
YXRlVmlzaWJpbGl0eSgpKXt0aGlzLnZpc2libGU9dHJ1ZTt0aGlzLmFyYml0ZXJJ
bmZvcm0oJ3BsYXRmb3JtL3BsdWdpbnMvcmVjb21tZW5kYXRpb25zX2Jhci92aXNp
YmxlJyk7fWVsc2UgaWYodGhpcy52aXNpYmxlJiYhdGhpcy5jYWxjdWxhdGVWaXNp
YmlsaXR5KCkpe3RoaXMudmlzaWJsZT1mYWxzZTt0aGlzLmFyYml0ZXJJbmZvcm0o
J3BsYXRmb3JtL3BsdWdpbnMvcmVjb21tZW5kYXRpb25zX2Jhci9pbnZpc2libGUn
KTt9cmV0dXJuIHRydWU7fSwnYmluZCcsdHJ1ZSx0aGlzKSk7RkIuRXZlbnQubGlz
dGVuKHdpbmRvdywnc2Nyb2xsJyxoKTtGQi5FdmVudC5saXN0ZW4od2luZG93LCdy
ZXNpemUnLGgpO2goKTt0aGlzLmZvY3VzZWQ9dHJ1ZTt2YXIgaT1FUzUoZnVuY3Rp
b24oKXt0aGlzLmZvY3VzZWQ9IXRoaXMuZm9jdXNlZDtyZXR1cm4gdHJ1ZTt9LCdi
aW5kJyx0cnVlLHRoaXMpO0ZCLkV2ZW50Lmxpc3Rlbih3aW5kb3csJ2JsdXInLGkp
O0ZCLkV2ZW50Lmxpc3Rlbih3aW5kb3csJ2ZvY3VzJyxpKTt0aGlzLnJlc2l6ZV9y
dW5uaW5nPWZhbHNlO3RoaXMuYW5pbWF0ZT1mYWxzZTt0aGlzLnN1YnNjcmliZSgn
eGQuc2lnbmFsX2FuaW1hdGlvbicsRVM1KGZ1bmN0aW9uKCl7dGhpcy5hbmltYXRl
PXRydWU7fSwnYmluZCcsdHJ1ZSx0aGlzKSk7cmV0dXJuIHRydWU7fSxnZXRTaXpl
OmZ1bmN0aW9uKCl7cmV0dXJuIHtoZWlnaHQ6MjUsd2lkdGg6KHRoaXMuX2F0dHIu
YWN0aW9uPT0ncmVjb21tZW5kJz8xNDA6OTYpfTt9LGNhbGN1bGF0ZVZpc2liaWxp
dHk6ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xp
ZW50SGVpZ2h0O2lmKCF0aGlzLmZvY3VzZWQmJndpbmRvdy5jb25zb2xlJiZ3aW5k
b3cuY29uc29sZS5maXJlYnVnKXJldHVybiB0aGlzLnZpc2libGU7c3dpdGNoKHRo
aXMuX2F0dHIudHJpZ2dlcil7Y2FzZSAibWFudWFsIjpyZXR1cm4gZmFsc2U7Y2Fz
ZSAib252aXNpYmxlIjp2YXIgYj10aGlzLmRvbS5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS50b3A7cmV0dXJuIGI8PWE7ZGVmYXVsdDp2YXIgYz13aW5kb3cucGFnZVlP
ZmZzZXR8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLGQ9ZG9jdW1lbnQuZG9jdW1l
bnRFbGVtZW50LnNjcm9sbEhlaWdodDtyZXR1cm4gKGMrYSkvZD49dGhpcy5fYXR0
ci50cmlnZ2VyO319fSk7RkIuWEZCTUwuUmVjb21tZW5kYXRpb25zQmFyLm1hcmtS
ZWFkPWZ1bmN0aW9uKGEpe0ZCLkV2ZW50LmZpcmUoJ3hmYm1sLnJlY29tbWVuZGF0
aW9uc2Jhci5yZWFkJyxhfHx3aW5kb3cubG9jYXRpb24uaHJlZik7fTsKRkIuc3Vi
Y2xhc3MoJ1hGQk1MLlJlY3RhbmdsZScsJ1hGQk1MLklmcmFtZVdpZGdldCcsbnVs
bCx7X3dpZGdldFBpcGVFbmFibGVkOnRydWUsc2V0dXBBbmRWYWxpZGF0ZTpmdW5j
dGlvbigpe3RoaXMuX2F0dHI9e2NoYW5uZWw6dGhpcy5nZXRDaGFubmVsVXJsKCks
YXBpX2tleTpGQi5fYXBpS2V5LGNvbG9yOnRoaXMuZ2V0QXR0cmlidXRlKCdjb2xv
cicpLHJlbmRlcl90aW1lOnRoaXMuZ2V0QXR0cmlidXRlKCdyZW5kZXJfdGltZScp
LGhlaWdodDp0aGlzLl9nZXRQeEF0dHJpYnV0ZSgnaGVpZ2h0Jyw1MCksd2lkdGg6
dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ3dpZHRoJywyMDApfTtyZXR1cm4gdHJ1ZTt9
LGdldFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0dHIud2lk
dGgsaGVpZ2h0OnRoaXMuX2F0dHIuaGVpZ2h0fTt9LGdldFVybEJpdHM6ZnVuY3Rp
b24oKXtyZXR1cm4ge25hbWU6J3Rlc3RfcmVjdGFuZ2xlJyxwYXJhbXM6dGhpcy5f
YXR0cn07fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuUmVnaXN0cmF0aW9uJywnWEZC
TUwuSWZyYW1lV2lkZ2V0JyxudWxsLHtfdmlzaWJsZUFmdGVyOidpbW1lZGlhdGUn
LF9iYXNlSGVpZ2h0OjE2NyxfZmllbGRIZWlnaHQ6MjgsX3NraW5ueVdpZHRoOjUy
MCxfc2tpbm55QmFzZUhlaWdodDoxNzMsX3NraW5ueUZpZWxkSGVpZ2h0OjUyLHNl
dHVwQW5kVmFsaWRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9hdHRyPXthY3Rpb246dGhp
cy5nZXRBdHRyaWJ1dGUoJ2FjdGlvbicpLGJvcmRlcl9jb2xvcjp0aGlzLmdldEF0
dHJpYnV0ZSgnYm9yZGVyLWNvbG9yJyksY2hhbm5lbF91cmw6dGhpcy5nZXRDaGFu
bmVsVXJsKCksY2xpZW50X2lkOkZCLl9hcGlLZXksZmJfb25seTp0aGlzLl9nZXRC
b29sQXR0cmlidXRlKCdmYi1vbmx5JyxmYWxzZSksZmJfcmVnaXN0ZXI6dGhpcy5f
Z2V0Qm9vbEF0dHJpYnV0ZSgnZmItcmVnaXN0ZXInLGZhbHNlKSxmaWVsZHM6dGhp
cy5nZXRBdHRyaWJ1dGUoJ2ZpZWxkcycpLGhlaWdodDp0aGlzLl9nZXRQeEF0dHJp
YnV0ZSgnaGVpZ2h0JykscmVkaXJlY3RfdXJpOnRoaXMuZ2V0QXR0cmlidXRlKCdy
ZWRpcmVjdC11cmknLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxub19mb290ZXI6dGhp
cy5fZ2V0Qm9vbEF0dHJpYnV0ZSgnbm8tZm9vdGVyJyksbm9faGVhZGVyOnRoaXMu
X2dldEJvb2xBdHRyaWJ1dGUoJ25vLWhlYWRlcicpLG9udmFsaWRhdGU6dGhpcy5n
ZXRBdHRyaWJ1dGUoJ29udmFsaWRhdGUnKSx3aWR0aDp0aGlzLl9nZXRQeEF0dHJp
YnV0ZSgnd2lkdGgnLDYwMCksdGFyZ2V0OnRoaXMuZ2V0QXR0cmlidXRlKCd0YXJn
ZXQnKX07aWYodGhpcy5fYXR0ci5vbnZhbGlkYXRlKXRoaXMuc3Vic2NyaWJlKCd4
ZC52YWxpZGF0ZScsRVM1KHRoaXMsJ2JpbmQnLHRydWUsZnVuY3Rpb24oYSl7dmFy
IGI9RVM1KCdKU09OJywncGFyc2UnLGZhbHNlLGEudmFsdWUpLGM9RVM1KGZ1bmN0
aW9uKGUpe3RoaXMuYXJiaXRlckluZm9ybSgnUmVnaXN0cmF0aW9uLlZhbGlkYXRp
b24nLHtlcnJvcnM6ZSxpZDphLmlkfSk7fSwnYmluZCcsdHJ1ZSx0aGlzKSxkPUZC
LkhlbHBlci5leGVjdXRlRnVuY3Rpb25CeU5hbWUodGhpcy5fYXR0ci5vbnZhbGlk
YXRlLGIsYyk7aWYoZCljKGQpO30pKTt0aGlzLnN1YnNjcmliZSgneGQuYXV0aExv
Z2luJyxFUzUodGhpcy5fb25BdXRoTG9naW4sJ2JpbmQnLHRydWUsdGhpcykpO3Ro
aXMuc3Vic2NyaWJlKCd4ZC5hdXRoTG9nb3V0JyxFUzUodGhpcy5fb25BdXRoTG9n
b3V0LCdiaW5kJyx0cnVlLHRoaXMpKTtyZXR1cm4gdHJ1ZTt9LGdldFNpemU6ZnVu
Y3Rpb24oKXtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0dHIud2lkdGgsaGVpZ2h0OnRo
aXMuX2dldEhlaWdodCgpfTt9LF9nZXRIZWlnaHQ6ZnVuY3Rpb24oKXtpZih0aGlz
Ll9hdHRyLmhlaWdodClyZXR1cm4gdGhpcy5fYXR0ci5oZWlnaHQ7dmFyIGE7aWYo
IXRoaXMuX2F0dHIuZmllbGRzKXthPVsnbmFtZSddO31lbHNlIHRyeXthPUVTNSgn
SlNPTicsJ3BhcnNlJyxmYWxzZSx0aGlzLl9hdHRyLmZpZWxkcyk7fWNhdGNoKGIp
e2E9dGhpcy5fYXR0ci5maWVsZHMuc3BsaXQoLywvKTt9aWYodGhpcy5fYXR0ci53
aWR0aDx0aGlzLl9za2lubnlXaWR0aCl7cmV0dXJuIHRoaXMuX3NraW5ueUJhc2VI
ZWlnaHQrYS5sZW5ndGgqdGhpcy5fc2tpbm55RmllbGRIZWlnaHQ7fWVsc2UgcmV0
dXJuIHRoaXMuX2Jhc2VIZWlnaHQrYS5sZW5ndGgqdGhpcy5fZmllbGRIZWlnaHQ7
fSxnZXRVcmxCaXRzOmZ1bmN0aW9uKCl7cmV0dXJuIHtuYW1lOidyZWdpc3RyYXRp
b24nLHBhcmFtczp0aGlzLl9hdHRyfTt9LGdldERlZmF1bHRXZWJEb21haW46ZnVu
Y3Rpb24oKXtyZXR1cm4gJ2h0dHBzX3d3dyc7fSxfb25BdXRoTG9naW46ZnVuY3Rp
b24oKXtpZighRkIuZ2V0QXV0aFJlc3BvbnNlKCkpRkIuZ2V0TG9naW5TdGF0dXMo
KTtGQi5IZWxwZXIuZmlyZUV2ZW50KCdhdXRoLmxvZ2luJyx0aGlzKTt9LF9vbkF1
dGhMb2dvdXQ6ZnVuY3Rpb24oKXtpZighRkIuZ2V0QXV0aFJlc3BvbnNlKCkpRkIu
Z2V0TG9naW5TdGF0dXMoKTtGQi5IZWxwZXIuZmlyZUV2ZW50KCdhdXRoLmxvZ291
dCcsdGhpcyk7fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuU2hhcmVCdXR0b24nLCdY
RkJNTC5JZnJhbWVXaWRnZXQnLG51bGwse3NldHVwQW5kVmFsaWRhdGU6ZnVuY3Rp
b24oKXt0aGlzLl9hdHRyPXtjaGFubmVsOnRoaXMuZ2V0Q2hhbm5lbFVybCgpLGhy
ZWY6RkIuVVJJLnJlc29sdmUodGhpcy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSksdHlw
ZTp0aGlzLmdldEF0dHJpYnV0ZSgndHlwZScpfTtyZXR1cm4gdHJ1ZTt9LGdldFVy
bEJpdHM6ZnVuY3Rpb24oKXtyZXR1cm4ge25hbWU6J3NoYXJlX2J1dHRvbicscGFy
YW1zOnRoaXMuX2F0dHJ9O30sZ2V0U2l6ZTpmdW5jdGlvbigpe3JldHVybiB7aGVp
Z2h0OjYwLHdpZHRoOjIwMH07fX0pOwpGQi5zdWJjbGFzcygnWEZCTUwuU29jaWFs
Q29udGV4dCcsJ1hGQk1MLklmcmFtZVdpZGdldCcsbnVsbCx7c2V0dXBBbmRWYWxp
ZGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0QXR0cmlidXRlKCdzaXplJywn
c21hbGwnKTt0aGlzLl9hdHRyPXtjaGFubmVsOnRoaXMuZ2V0Q2hhbm5lbFVybCgp
LHdpZHRoOnRoaXMuX2dldFB4QXR0cmlidXRlKCd3aWR0aCcsNDAwKSxoZWlnaHQ6
dGhpcy5fZ2V0UHhBdHRyaWJ1dGUoJ2hlaWdodCcsMTAwKSxyZWY6dGhpcy5nZXRB
dHRyaWJ1dGUoJ3JlZicpLHNpemU6dGhpcy5nZXRBdHRyaWJ1dGUoJ3NpemUnKSxr
ZXl3b3Jkczp0aGlzLmdldEF0dHJpYnV0ZSgna2V5d29yZHMnKSx1cmxzOnRoaXMu
Z2V0QXR0cmlidXRlKCd1cmxzJyksb2JqZWN0X2lkOnRoaXMuZ2V0QXR0cmlidXRl
KCdvYmplY3RfaWQnKX07dGhpcy5zdWJzY3JpYmUoJ3hkLnNvY2lhbF9jb250ZXh0
X3N0YXRzJyxFUzUodGhpcy5fYnViYmxlU29jaWFsQ29udGV4dFN0YXRzLCdiaW5k
Jyx0cnVlLHRoaXMpKTtyZXR1cm4gdHJ1ZTt9LF9idWJibGVTb2NpYWxDb250ZXh0
U3RhdHM6ZnVuY3Rpb24oYSl7dmFyIGI9e3BsdWdpbklEOnRoaXMuZ2V0QXR0cmli
dXRlKCdwbHVnaW4taWQnKSxzb2NpYWxDb250ZXh0UGFnZUlEczpFUzUoJ0pTT04n
LCdwYXJzZScsZmFsc2UsYS5zb2NpYWxfY29udGV4dF9wYWdlX2lkcyl9O0ZCLkV2
ZW50LmZpcmUoJ3hmYm1sLnNvY2lhbF9jb250ZXh0X3N0YXRzJyxiKTt9LGdldFNp
emU6ZnVuY3Rpb24oKXtyZXR1cm4ge3dpZHRoOnRoaXMuX2F0dHIud2lkdGgsaGVp
Z2h0OnRoaXMuX2F0dHIuaGVpZ2h0fTt9LGdldFVybEJpdHM6ZnVuY3Rpb24oKXty
ZXR1cm4ge25hbWU6J3NvY2lhbF9jb250ZXh0JyxwYXJhbXM6dGhpcy5fYXR0cn07
fX0pOwp2b2lkKDApOwoKRkIucHJvdmlkZSgiIiwgeyJfZG9tYWluIjp7ImFwaSI6
Imh0dHBzOlwvXC9hcGkuZmFjZWJvb2suY29tXC8iLCJhcGlfcmVhZCI6Imh0dHBz
OlwvXC9hcGktcmVhZC5mYWNlYm9vay5jb21cLyIsImNkbiI6Imh0dHA6XC9cL3N0
YXRpYy5hay5mYmNkbi5uZXRcLyIsImNkbl9mb3JlaWduIjoiaHR0cDpcL1wvY29u
bmVjdC5mYWNlYm9vay5uZXRcLyIsImdyYXBoIjoiaHR0cHM6XC9cL2dyYXBoLmZh
Y2Vib29rLmNvbVwvIiwiaHR0cHNfY2RuIjoiaHR0cHM6XC9cL3Mtc3RhdGljLmFr
LmZiY2RuLm5ldFwvIiwiaHR0cHNfc3RhdGljZmIiOiJodHRwczpcL1wvcy1zdGF0
aWMuYWsuZmFjZWJvb2suY29tXC8iLCJodHRwc193d3ciOiJodHRwczpcL1wvd3d3
LmZhY2Vib29rLmNvbVwvIiwic3RhdGljZmIiOiJodHRwOlwvXC9zdGF0aWMuYWsu
ZmFjZWJvb2suY29tXC8iLCJ3d3ciOiJodHRwOlwvXC93d3cuZmFjZWJvb2suY29t
XC8iLCJtIjoiaHR0cDpcL1wvbS5mYWNlYm9vay5jb21cLyIsImh0dHBzX20iOiJo
dHRwczpcL1wvbS5mYWNlYm9vay5jb21cLyJ9LCJfbG9jYWxlIjoiZXNfTEEiLCJf
bG9jYWxlSXNSdGwiOmZhbHNlfSwgdHJ1ZSk7CkZCLnByb3ZpZGUoJ0F1dGgnLCB7
Il94ZFN0b3JlUGF0aCI6InhkX2xvY2Fsc3RvcmFnZVwvdjIifSwgdHJ1ZSk7CkZC
LnByb3ZpZGUoJycsIHsiaW5pdFNpdGV2YXJzIjp7InBhcnNlWEZCTUxCZWZvcmVE
b21SZWFkeSI6ZmFsc2UsImNvbXB1dGVDb250ZW50U2l6ZVZlcnNpb24iOjAsImVu
YWJsZU1vYmlsZSI6MSwiZW5hYmxlTW9iaWxlQ29tbWVudHMiOjEsImZvcmNlU2Vj
dXJlWGRQcm94eSI6MSwidXNlQXN5bmMiOjAsInJwYyI6MSwiaWZyYW1lUGVybWlz
c2lvbnMiOnsicmVhZF9zdHJlYW0iOmZhbHNlLCJtYW5hZ2VfbWFpbGJveCI6ZmFs
c2UsIm1hbmFnZV9mcmllbmRsaXN0cyI6ZmFsc2UsInJlYWRfbWFpbGJveCI6ZmFs
c2UsInB1Ymxpc2hfY2hlY2tpbnMiOnRydWUsInN0YXR1c191cGRhdGUiOnRydWUs
InBob3RvX3VwbG9hZCI6dHJ1ZSwidmlkZW9fdXBsb2FkIjp0cnVlLCJzbXMiOmZh
bHNlLCJjcmVhdGVfZXZlbnQiOnRydWUsInJzdnBfZXZlbnQiOnRydWUsIm9mZmxp
bmVfYWNjZXNzIjp0cnVlLCJlbWFpbCI6dHJ1ZSwieG1wcF9sb2dpbiI6ZmFsc2Us
ImNyZWF0ZV9ub3RlIjp0cnVlLCJzaGFyZV9pdGVtIjp0cnVlLCJleHBvcnRfc3Ry
ZWFtIjpmYWxzZSwicHVibGlzaF9zdHJlYW0iOnRydWUsInB1Ymxpc2hfbGlrZXMi
OnRydWUsImFkc19tYW5hZ2VtZW50IjpmYWxzZSwiY29udGFjdF9lbWFpbCI6dHJ1
ZSwiYWNjZXNzX3ByaXZhdGVfZGF0YSI6ZmFsc2UsInJlYWRfaW5zaWdodHMiOmZh
bHNlLCJyZWFkX3JlcXVlc3RzIjpmYWxzZSwicmVhZF9mcmllbmRsaXN0cyI6dHJ1
ZSwibWFuYWdlX3BhZ2VzIjpmYWxzZSwicGh5c2ljYWxfbG9naW4iOmZhbHNlLCJt
YW5hZ2VfZ3JvdXBzIjpmYWxzZSwicmVhZF9kZWFscyI6ZmFsc2V9fSwid2lkZ2V0
UGlwZUVuYWJsZWRBcHBzIjp7IjExMTQ3NjY1ODg2NDk3NiI6MSwiY2NhNjQ3NzI3
MmZjNWNiODA1Zjg1YTg0ZjIwZmNhMWQiOjEsIjE3OTE1MDE2NTQ3MjAxMCI6MX0s
IndpZGdldFBpcGVUYWdDb3VudFRocmVzaG9sZCI6NH0pOwpGQi5wcm92aWRlKCJU
ZW1wbGF0ZURhdGEiLCB7Il9lbmFibGVkIjowfSwgdHJ1ZSk7CkZCLnByb3ZpZGUo
IlRlbXBsYXRlVUkiLCB7Il92ZXJzaW9uIjoxOX0sIHRydWUpOwpGQi5wcm92aWRl
KCJYRkJNTC5Db25uZWN0QmFyIiwgeyJpbWdzIjp7ImJ1dHRvblVybCI6InJzcmMu
cGhwXC92MlwveVlcL3JcL2hfWTZ1MXdyWlBXLnBuZyIsIm1pc3NpbmdQcm9maWxl
VXJsIjoicnNyYy5waHBcL3YyXC95b1wvclwvVWxJcW1ISm4tU0suZ2lmIn19LCB0
cnVlKTsKRkIucHJvdmlkZSgiWEZCTUwuUHJvZmlsZVBpYyIsIHsiX2RlZlBpY01h
cCI6eyJwaWMiOiJyc3JjLnBocFwvdjFcL3loXC9yXC9DNXl0N0NxZjN6VS5qcGci
LCJwaWNfYmlnIjoicnNyYy5waHBcL3YyXC95TFwvclwvSHNUWlNEdzRhdnguZ2lm
IiwicGljX2JpZ193aXRoX2xvZ28iOiJyc3JjLnBocFwvdjJcL3k1XC9yXC9TUkRD
YWVDTDdoTS5naWYiLCJwaWNfc21hbGwiOiJyc3JjLnBocFwvdjFcL3lpXC9yXC9v
ZEE5c05MckU4Ni5qcGciLCJwaWNfc21hbGxfd2l0aF9sb2dvIjoicnNyYy5waHBc
L3YyXC95RFwvclwvazF4aVJYS25sR2QuZ2lmIiwicGljX3NxdWFyZSI6InJzcmMu
cGhwXC92MlwveW9cL3JcL1VsSXFtSEpuLVNLLmdpZiIsInBpY19zcXVhcmVfd2l0
aF9sb2dvIjoicnNyYy5waHBcL3YyXC95WFwvclwvOWRZSkJQREhYd1ouZ2lmIiwi
cGljX3dpdGhfbG9nbyI6InJzcmMucGhwXC92MlwveXVcL3JcL2ZQUFI5ZjJGSjN0
LmdpZiJ9fSwgdHJ1ZSk7CmlmIChGQi5Eb20gJiYgRkIuRG9tLmFkZENzc1J1bGVz
KSB7IEZCLkRvbS5hZGRDc3NSdWxlcygiLmZiX2hpZGRlbntwb3NpdGlvbjphYnNv
bHV0ZTt0b3A6LTEwMDAwcHg7ei1pbmRleDoxMDAwMX1cbi5mYl9pbnZpc2libGV7
ZGlzcGxheTpub25lfVxuLmZiX3Jlc2V0e2JhY2tncm91bmQ6bm9uZTtib3JkZXIt
c3BhY2luZzowO2JvcmRlcjowO2NvbG9yOiMwMDA7Y3Vyc29yOmF1dG87ZGlyZWN0
aW9uOmx0cjtmb250LWZhbWlseTpcImx1Y2lkYSBncmFuZGVcIiwgdGFob21hLCB2
ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZjtmb250LXNpemU6MTFweDtmb250LXN0
eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1h
bDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MTttYXJnaW46MDtv
dmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1k
ZWNvcmF0aW9uOm5vbmU7dGV4dC1pbmRlbnQ6MDt0ZXh0LXNoYWRvdzpub25lO3Rl
eHQtdHJhbnNmb3JtOm5vbmU7dmlzaWJpbGl0eTp2aXNpYmxlO3doaXRlLXNwYWNl
Om5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsfVxuLmZiX2xpbmsgaW1ne2JvcmRl
cjpub25lfVxuLmZiX2RpYWxvZ3tiYWNrZ3JvdW5kOnJnYmEoODIsIDgyLCA4Miwg
LjcpO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTAwMDBweDt6LWluZGV4OjEwMDAx
fVxuLmZiX2RpYWxvZ19hZHZhbmNlZHtwYWRkaW5nOjEwcHg7LW1vei1ib3JkZXIt
cmFkaXVzOjhweDstd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4fVxuLmZiX2RpYWxv
Z19jb250ZW50e2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfVxuLmZiX2RpYWxv
Z19jbG9zZV9pY29ue2JhY2tncm91bmQ6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5m
YmNkbi5uZXRcL3JzcmMucGhwXC92MlwveUFcL3hcL0lFOUpJSTZaMVlzLnBuZykg
bm8tcmVwZWF0IHNjcm9sbCAwIDAgdHJhbnNwYXJlbnQ7X2JhY2tncm91bmQtaW1h
Z2U6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhwXC92
MlwveTZcL3hcL3M4MTZlV0MtMnNsLmdpZik7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxh
eTpibG9jaztoZWlnaHQ6MTVweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxOHB4
O3RvcDoxN3B4O3dpZHRoOjE1cHg7dG9wOjhweFxcOTtyaWdodDo3cHhcXDl9XG4u
ZmJfZGlhbG9nX21vYmlsZSAuZmJfZGlhbG9nX2Nsb3NlX2ljb257dG9wOjVweDts
ZWZ0OjVweDtyaWdodDphdXRvfVxuLmZiX2RpYWxvZ19wYWRkaW5ne2JhY2tncm91
bmQtY29sb3I6dHJhbnNwYXJlbnQ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4
O3otaW5kZXg6LTF9XG4uZmJfZGlhbG9nX2Nsb3NlX2ljb246aG92ZXJ7YmFja2dy
b3VuZDp1cmwoaHR0cDpcL1wvc3RhdGljLmFrLmZiY2RuLm5ldFwvcnNyYy5waHBc
L3YyXC95QVwveFwvSUU5SklJNloxWXMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIDAg
LTE1cHggdHJhbnNwYXJlbnQ7X2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6XC9c
L3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhwXC92MlwveTZcL3hcL3M4MTZl
V0MtMnNsLmdpZil9XG4uZmJfZGlhbG9nX2Nsb3NlX2ljb246YWN0aXZle2JhY2tn
cm91bmQ6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhw
XC92MlwveUFcL3hcL0lFOUpJSTZaMVlzLnBuZykgbm8tcmVwZWF0IHNjcm9sbCAw
IC0zMHB4IHRyYW5zcGFyZW50O19iYWNrZ3JvdW5kLWltYWdlOnVybChodHRwOlwv
XC9zdGF0aWMuYWsuZmJjZG4ubmV0XC9yc3JjLnBocFwvdjJcL3k2XC94XC9zODE2
ZVdDLTJzbC5naWYpfVxuLmZiX2RpYWxvZ19sb2FkZXJ7YmFja2dyb3VuZC1jb2xv
cjojZjJmMmYyO2JvcmRlcjoxcHggc29saWQgIzYwNjA2MDtmb250LXNpemU6MjRw
eDtwYWRkaW5nOjIwcHh9XG4uZmJfZGlhbG9nX3RvcF9sZWZ0LFxuLmZiX2RpYWxv
Z190b3BfcmlnaHQsXG4uZmJfZGlhbG9nX2JvdHRvbV9sZWZ0LFxuLmZiX2RpYWxv
Z19ib3R0b21fcmlnaHR7aGVpZ2h0OjEwcHg7d2lkdGg6MTBweDtvdmVyZmxvdzpo
aWRkZW47cG9zaXRpb246YWJzb2x1dGV9XG4uZmJfZGlhbG9nX3RvcF9sZWZ0e2Jh
Y2tncm91bmQ6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMu
cGhwXC92MlwveVJcL3hcLzhZZVROSWxUWmptLnBuZykgbm8tcmVwZWF0IDAgMDts
ZWZ0Oi0xMHB4O3RvcDotMTBweH1cbi5mYl9kaWFsb2dfdG9wX3JpZ2h0e2JhY2tn
cm91bmQ6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhw
XC92MlwveVJcL3hcLzhZZVROSWxUWmptLnBuZykgbm8tcmVwZWF0IDAgLTEwcHg7
cmlnaHQ6LTEwcHg7dG9wOi0xMHB4fVxuLmZiX2RpYWxvZ19ib3R0b21fbGVmdHti
YWNrZ3JvdW5kOnVybChodHRwOlwvXC9zdGF0aWMuYWsuZmJjZG4ubmV0XC9yc3Jj
LnBocFwvdjJcL3lSXC94XC84WWVUTklsVFpqbS5wbmcpIG5vLXJlcGVhdCAwIC0y
MHB4O2JvdHRvbTotMTBweDtsZWZ0Oi0xMHB4fVxuLmZiX2RpYWxvZ19ib3R0b21f
cmlnaHR7YmFja2dyb3VuZDp1cmwoaHR0cDpcL1wvc3RhdGljLmFrLmZiY2RuLm5l
dFwvcnNyYy5waHBcL3YyXC95UlwveFwvOFllVE5JbFRaam0ucG5nKSBuby1yZXBl
YXQgMCAtMzBweDtyaWdodDotMTBweDtib3R0b206LTEwcHh9XG4uZmJfZGlhbG9n
X3ZlcnRfbGVmdCxcbi5mYl9kaWFsb2dfdmVydF9yaWdodCxcbi5mYl9kaWFsb2df
aG9yaXpfdG9wLFxuLmZiX2RpYWxvZ19ob3Jpel9ib3R0b217cG9zaXRpb246YWJz
b2x1dGU7YmFja2dyb3VuZDojNTI1MjUyO2ZpbHRlcjphbHBoYShvcGFjaXR5PTcw
KTtvcGFjaXR5Oi43fVxuLmZiX2RpYWxvZ192ZXJ0X2xlZnQsXG4uZmJfZGlhbG9n
X3ZlcnRfcmlnaHR7d2lkdGg6MTBweDtoZWlnaHQ6MTAwXHUwMDI1fVxuLmZiX2Rp
YWxvZ192ZXJ0X2xlZnR7bWFyZ2luLWxlZnQ6LTEwcHh9XG4uZmJfZGlhbG9nX3Zl
cnRfcmlnaHR7cmlnaHQ6MDttYXJnaW4tcmlnaHQ6LTEwcHh9XG4uZmJfZGlhbG9n
X2hvcml6X3RvcCxcbi5mYl9kaWFsb2dfaG9yaXpfYm90dG9te3dpZHRoOjEwMFx1
MDAyNTtoZWlnaHQ6MTBweH1cbi5mYl9kaWFsb2dfaG9yaXpfdG9we21hcmdpbi10
b3A6LTEwcHh9XG4uZmJfZGlhbG9nX2hvcml6X2JvdHRvbXtib3R0b206MDttYXJn
aW4tYm90dG9tOi0xMHB4fVxuLmZiX2RpYWxvZ19pZnJhbWV7bGluZS1oZWlnaHQ6
MH1cbi5mYl9kaWFsb2dfY29udGVudCAuZGlhbG9nX3RpdGxle2JhY2tncm91bmQ6
IzZkODRiNDtib3JkZXI6MXB4IHNvbGlkICMzYjU5OTg7Y29sb3I6I2ZmZjtmb250
LXNpemU6MTRweDtmb250LXdlaWdodDpib2xkO21hcmdpbjowfVxuLmZiX2RpYWxv
Z19jb250ZW50IC5kaWFsb2dfdGl0bGUgPiBzcGFue2JhY2tncm91bmQ6dXJsKGh0
dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhwXC92MlwveURcL3hc
L0NvdTduLW5xSzUyLmdpZilcbm5vLXJlcGVhdCA1cHggNTBcdTAwMjU7ZmxvYXQ6
bGVmdDtwYWRkaW5nOjVweCAwIDdweCAyNnB4fVxuYm9keS5mYl9oaWRkZW57LXdl
YmtpdC10cmFuc2Zvcm06bm9uZTtoZWlnaHQ6MTAwXHUwMDI1O21hcmdpbjowO2xl
ZnQ6LTEwMDAwcHg7b3ZlcmZsb3c6dmlzaWJsZTtwb3NpdGlvbjphYnNvbHV0ZTt0
b3A6LTEwMDAwcHg7d2lkdGg6MTAwXHUwMDI1XG59XG4uZmJfZGlhbG9nLmZiX2Rp
YWxvZ19tb2JpbGUubG9hZGluZ3tiYWNrZ3JvdW5kOnVybChodHRwOlwvXC9zdGF0
aWMuYWsuZmJjZG4ubmV0XC9yc3JjLnBocFwvdjJcL3ljXC94XC8zcmhTdjVWOGoz
by5naWYpXG53aGl0ZSBuby1yZXBlYXQgNTBcdTAwMjUgNTBcdTAwMjU7bWluLWhl
aWdodDoxMDBcdTAwMjU7bWluLXdpZHRoOjEwMFx1MDAyNTtvdmVyZmxvdzpoaWRk
ZW47cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7ei1pbmRleDoxMDAwMX1cbi5mYl9k
aWFsb2cuZmJfZGlhbG9nX21vYmlsZS5sb2FkaW5nLmNlbnRlcmVke21heC1oZWln
aHQ6NTkwcHg7bWluLWhlaWdodDo1OTBweDttYXgtd2lkdGg6NTAwcHg7bWluLXdp
ZHRoOjUwMHB4fVxuI2ZiLXJvb3QgI2ZiX2RpYWxvZ19pcGFkX292ZXJsYXl7YmFj
a2dyb3VuZDpyZ2JhKDAsIDAsIDAsIC40NSk7cG9zaXRpb246YWJzb2x1dGU7bGVm
dDowO3RvcDowO3dpZHRoOjEwMFx1MDAyNTttaW4taGVpZ2h0OjEwMFx1MDAyNTt6
LWluZGV4OjEwMDAwfVxuI2ZiLXJvb3QgI2ZiX2RpYWxvZ19pcGFkX292ZXJsYXku
aGlkZGVue2Rpc3BsYXk6bm9uZX1cbi5mYl9kaWFsb2cuZmJfZGlhbG9nX21vYmls
ZS5sb2FkaW5nIGlmcmFtZXt2aXNpYmlsaXR5OmhpZGRlbn1cbi5mYl9kaWFsb2df
Y29udGVudCAuZGlhbG9nX2hlYWRlcnstd2Via2l0LWJveC1zaGFkb3c6d2hpdGUg
MCAxcHggMXB4IC0xcHggaW5zZXQ7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50
KGxpbmVhciwgMCAwLCAwIDEwMFx1MDAyNSwgZnJvbSgjNzM4QUJBKSwgdG8oIzJD
NDk4NykpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkO2JvcmRlci1jb2xvcjojMWQ0
MDg4O2NvbG9yOiNmZmY7Zm9udDoxNHB4IEhlbHZldGljYSwgc2Fucy1zZXJpZjtm
b250LXdlaWdodDpib2xkO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC1zaGFk
b3c6cmdiYSgwLCAzMCwgODQsIC4yOTY4NzUpIDAgLTFweCAwO3ZlcnRpY2FsLWFs
aWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXB9XG4uZmJfZGlhbG9nX2NvbnRl
bnQgLmRpYWxvZ19oZWFkZXIgdGFibGV7LXdlYmtpdC1mb250LXNtb290aGluZzpz
dWJwaXhlbC1hbnRpYWxpYXNlZDtoZWlnaHQ6NDNweDt3aWR0aDoxMDBcdTAwMjVc
bn1cbi5mYl9kaWFsb2dfY29udGVudCAuZGlhbG9nX2hlYWRlciB0ZC5oZWFkZXJf
bGVmdHtmb250LXNpemU6MTJweDtwYWRkaW5nLWxlZnQ6NXB4O3ZlcnRpY2FsLWFs
aWduOm1pZGRsZTt3aWR0aDo2MHB4XG59XG4uZmJfZGlhbG9nX2NvbnRlbnQgLmRp
YWxvZ19oZWFkZXIgdGQuaGVhZGVyX3JpZ2h0e2ZvbnQtc2l6ZToxMnB4O3BhZGRp
bmctcmlnaHQ6NXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDo2MHB4XG59
XG4uZmJfZGlhbG9nX2NvbnRlbnQgLnRvdWNoYWJsZV9idXR0b257YmFja2dyb3Vu
ZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCAwLCAwIDEwMFx1MDAyNSwgZnJv
bSgjNDk2NkE2KSxcbmNvbG9yLXN0b3AoMC41LCAjMzU1NDkyKSwgdG8oIzJBNDg4
NykpO2JvcmRlcjoxcHggc29saWQgIzI5NDQ3ZTstd2Via2l0LWJhY2tncm91bmQt
Y2xpcDpwYWRkaW5nLWJveDstd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Oy13ZWJr
aXQtYm94LXNoYWRvdzpyZ2JhKDAsIDAsIDAsIC4xMTcxODgpIDAgMXB4IDFweCBp
bnNldCxcbnJnYmEoMjU1LCAyNTUsIDI1NSwgLjE2Nzk2OSkgMCAxcHggMDtkaXNw
bGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjNweDttYXgtd2lkdGg6ODVweDts
aW5lLWhlaWdodDoxOHB4O3BhZGRpbmc6NHB4IDEycHg7cG9zaXRpb246cmVsYXRp
dmV9XG4uZmJfZGlhbG9nX2NvbnRlbnQgLmRpYWxvZ19oZWFkZXIgLnRvdWNoYWJs
ZV9idXR0b24gaW5wdXR7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO2NvbG9y
OiNmZmY7Zm9udDoxMnB4IEhlbHZldGljYSwgc2Fucy1zZXJpZjtmb250LXdlaWdo
dDpib2xkO21hcmdpbjoycHggLTEycHg7cGFkZGluZzoycHggNnB4IDNweCA2cHg7
dGV4dC1zaGFkb3c6cmdiYSgwLCAzMCwgODQsIC4yOTY4NzUpIDAgLTFweCAwfVxu
LmZiX2RpYWxvZ19jb250ZW50IC5kaWFsb2dfaGVhZGVyIC5oZWFkZXJfY2VudGVy
e2NvbG9yOiNmZmY7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5l
LWhlaWdodDoxOHB4O3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1p
ZGRsZX1cbi5mYl9kaWFsb2dfY29udGVudCAuZGlhbG9nX2NvbnRlbnR7YmFja2dy
b3VuZDp1cmwoaHR0cDpcL1wvc3RhdGljLmFrLmZiY2RuLm5ldFwvcnNyYy5waHBc
L3YyXC95SlwveFwvaktFY1ZQWkZrLTIuZ2lmKSBuby1yZXBlYXQgNTBcdTAwMjUg
NTBcdTAwMjU7Ym9yZGVyOjFweCBzb2xpZCAjNTU1O2JvcmRlci1ib3R0b206MDti
b3JkZXItdG9wOjA7aGVpZ2h0OjE1MHB4fVxuLmZiX2RpYWxvZ19jb250ZW50IC5k
aWFsb2dfZm9vdGVye2JhY2tncm91bmQ6I2YyZjJmMjtib3JkZXI6MXB4IHNvbGlk
ICM1NTU7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2hlaWdodDo0MHB4fVxuI2ZiX2Rp
YWxvZ19sb2FkZXJfY2xvc2V7ZmxvYXQ6bGVmdH1cbi5mYl9kaWFsb2cuZmJfZGlh
bG9nX21vYmlsZSAuZmJfZGlhbG9nX2Nsb3NlX2J1dHRvbnt0ZXh0LXNoYWRvdzpy
Z2JhKDAsIDMwLCA4NCwgLjI5Njg3NSkgMCAtMXB4IDB9XG4uZmJfZGlhbG9nLmZi
X2RpYWxvZ19tb2JpbGUgLmZiX2RpYWxvZ19jbG9zZV9pY29ue3Zpc2liaWxpdHk6
aGlkZGVufVxuLmZiX2lmcmFtZV93aWRnZXR7cG9zaXRpb246cmVsYXRpdmU7ZGlz
cGxheTotbW96LWlubGluZS1ibG9jaztkaXNwbGF5OmlubGluZS1ibG9ja31cbi5m
Yl9pZnJhbWVfd2lkZ2V0IGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZX1cbi5mYl9p
ZnJhbWVfd2lkZ2V0X2xpZnR7ei1pbmRleDoxfVxuLmZiX2lmcmFtZV93aWRnZXQg
c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0
aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbTt0ZXh0LWFsaWduOmp1c3RpZnl9XG4uZmJf
aGlkZV9pZnJhbWVzIGlmcmFtZXtwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi0xMDAw
MHB4fVxuLmZiX2lmcmFtZV93aWRnZXRfbG9hZGVye3Bvc2l0aW9uOnJlbGF0aXZl
O2Rpc3BsYXk6aW5saW5lLWJsb2NrfVxuLmZiX2lmcmFtZV93aWRnZXRfZmx1aWR7
ZGlzcGxheTppbmxpbmV9XG4uZmJfaWZyYW1lX3dpZGdldF9sb2FkZXIgaWZyYW1l
e21pbi1oZWlnaHQ6MzJweDt6LWluZGV4OjI7em9vbToxfVxuLmZiX2lmcmFtZV93
aWRnZXRfbG9hZGVyIC5GQl9Mb2FkZXJ7YmFja2dyb3VuZDp1cmwoaHR0cDpcL1wv
c3RhdGljLmFrLmZiY2RuLm5ldFwvcnNyYy5waHBcL3YyXC95SlwveFwvaktFY1ZQ
WkZrLTIuZ2lmKSBuby1yZXBlYXQ7aGVpZ2h0OjMycHg7d2lkdGg6MzJweDttYXJn
aW4tbGVmdDotMTZweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwXHUwMDI1O3ot
aW5kZXg6NH1cbi5mYl9idXR0b25fc2ltcGxlLFxuLmZiX2J1dHRvbl9zaW1wbGVf
cnRse2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5mYmNk
bi5uZXRcL3JzcmMucGhwXC92MlwveUhcL3hcL2VJcGJuVktJOWxSLnBuZyk7YmFj
a2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2N1cnNvcjpwb2ludGVyO291dGxpbmU6
bm9uZTt0ZXh0LWRlY29yYXRpb246bm9uZX1cbi5mYl9idXR0b25fc2ltcGxlX3J0
bHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IDB9XG4uZmJfYnV0dG9uX3NpbXBs
ZSAuZmJfYnV0dG9uX3RleHR7bWFyZ2luOjAgMCAwIDIwcHg7cGFkZGluZy1ib3R0
b206MXB4fVxuLmZiX2J1dHRvbl9zaW1wbGVfcnRsIC5mYl9idXR0b25fdGV4dHtt
YXJnaW46MCAxMHB4IDAgMH1cbmEuZmJfYnV0dG9uX3NpbXBsZTpob3ZlciAuZmJf
YnV0dG9uX3RleHQsXG5hLmZiX2J1dHRvbl9zaW1wbGVfcnRsOmhvdmVyIC5mYl9i
dXR0b25fdGV4dCxcbi5mYl9idXR0b25fc2ltcGxlOmhvdmVyIC5mYl9idXR0b25f
dGV4dCxcbi5mYl9idXR0b25fc2ltcGxlX3J0bDpob3ZlciAuZmJfYnV0dG9uX3Rl
eHR7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1cbi5mYl9idXR0b24sXG4uZmJf
YnV0dG9uX3J0bHtiYWNrZ3JvdW5kOiMyOTQ0N2UgdXJsKGh0dHA6XC9cL3N0YXRp
Yy5hay5mYmNkbi5uZXRcL3JzcmMucGhwXC92MlwveWxcL3hcL0ZHRmJjODBkVUtq
LnBuZyk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2N1cnNvcjpwb2ludGVy
O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MCAwIDAgMXB4O3RleHQtZGVj
b3JhdGlvbjpub25lO291dGxpbmU6bm9uZX1cbi5mYl9idXR0b24gLmZiX2J1dHRv
bl90ZXh0LFxuLmZiX2J1dHRvbl9ydGwgLmZiX2J1dHRvbl90ZXh0e2JhY2tncm91
bmQ6IzVmNzhhYiB1cmwoaHR0cDpcL1wvc3RhdGljLmFrLmZiY2RuLm5ldFwvcnNy
Yy5waHBcL3YyXC95bFwveFwvRkdGYmM4MGRVS2oucG5nKTtib3JkZXItdG9wOnNv
bGlkIDFweCAjODc5YWMwO2JvcmRlci1ib3R0b206c29saWQgMXB4ICMxYTM1NmU7
Y29sb3I6I2ZmZjtkaXNwbGF5OmJsb2NrO2ZvbnQtZmFtaWx5OlwibHVjaWRhIGdy
YW5kZVwiLHRhaG9tYSx2ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7Zm9udC13ZWln
aHQ6Ym9sZDtwYWRkaW5nOjJweCA2cHggM3B4IDZweDttYXJnaW46MXB4IDFweCAw
IDIxcHg7dGV4dC1zaGFkb3c6bm9uZX1cbmEuZmJfYnV0dG9uLFxuYS5mYl9idXR0
b25fcnRsLFxuLmZiX2J1dHRvbixcbi5mYl9idXR0b25fcnRse3RleHQtZGVjb3Jh
dGlvbjpub25lfVxuYS5mYl9idXR0b246YWN0aXZlIC5mYl9idXR0b25fdGV4dCxc
bmEuZmJfYnV0dG9uX3J0bDphY3RpdmUgLmZiX2J1dHRvbl90ZXh0LFxuLmZiX2J1
dHRvbjphY3RpdmUgLmZiX2J1dHRvbl90ZXh0LFxuLmZiX2J1dHRvbl9ydGw6YWN0
aXZlIC5mYl9idXR0b25fdGV4dHtib3JkZXItYm90dG9tOnNvbGlkIDFweCAjMjk0
NDdlO2JvcmRlci10b3A6c29saWQgMXB4ICM0NTYxOWQ7YmFja2dyb3VuZDojNGY2
YWEzO3RleHQtc2hhZG93Om5vbmV9XG4uZmJfYnV0dG9uX3hsYXJnZSxcbi5mYl9i
dXR0b25feGxhcmdlX3J0bHtiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTYwcHg7
Zm9udC1zaXplOjI0cHg7bGluZS1oZWlnaHQ6MzBweH1cbi5mYl9idXR0b25feGxh
cmdlIC5mYl9idXR0b25fdGV4dHtwYWRkaW5nOjNweCA4cHggM3B4IDEycHg7bWFy
Z2luLWxlZnQ6MzhweH1cbmEuZmJfYnV0dG9uX3hsYXJnZTphY3RpdmV7YmFja2dy
b3VuZC1wb3NpdGlvbjpsZWZ0IC05OXB4fVxuLmZiX2J1dHRvbl94bGFyZ2VfcnRs
e2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTI2OHB4fVxuLmZiX2J1dHRvbl94
bGFyZ2VfcnRsIC5mYl9idXR0b25fdGV4dHtwYWRkaW5nOjNweCA4cHggM3B4IDEy
cHg7bWFyZ2luLXJpZ2h0OjM5cHh9XG5hLmZiX2J1dHRvbl94bGFyZ2VfcnRsOmFj
dGl2ZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zMDdweH1cbi5mYl9idXR0
b25fbGFyZ2UsXG4uZmJfYnV0dG9uX2xhcmdlX3J0bHtiYWNrZ3JvdW5kLXBvc2l0
aW9uOmxlZnQgLTEzOHB4O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHh9
XG4uZmJfYnV0dG9uX2xhcmdlIC5mYl9idXR0b25fdGV4dHttYXJnaW4tbGVmdDoy
NHB4O3BhZGRpbmc6MnB4IDZweCA0cHggNnB4fVxuYS5mYl9idXR0b25fbGFyZ2U6
YWN0aXZle2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMTYzcHh9XG4uZmJfYnV0
dG9uX2xhcmdlX3J0bHtiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zNDZweH1c
bi5mYl9idXR0b25fbGFyZ2VfcnRsIC5mYl9idXR0b25fdGV4dHttYXJnaW4tcmln
aHQ6MjVweH1cbmEuZmJfYnV0dG9uX2xhcmdlX3J0bDphY3RpdmV7YmFja2dyb3Vu
ZC1wb3NpdGlvbjpyaWdodCAtMzcxcHh9XG4uZmJfYnV0dG9uX21lZGl1bSxcbi5m
Yl9idXR0b25fbWVkaXVtX3J0bHtiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTE4
OHB4O2ZvbnQtc2l6ZToxMXB4O2xpbmUtaGVpZ2h0OjE0cHh9XG5hLmZiX2J1dHRv
bl9tZWRpdW06YWN0aXZle2JhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjEwcHh9
XG4uZmJfYnV0dG9uX21lZGl1bV9ydGx7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdo
dCAtMzk2cHh9XG4uZmJfYnV0dG9uX3RleHRfcnRsLFxuLmZiX2J1dHRvbl9tZWRp
dW1fcnRsIC5mYl9idXR0b25fdGV4dHtwYWRkaW5nOjJweCA2cHggM3B4IDZweDtt
YXJnaW4tcmlnaHQ6MjJweH1cbmEuZmJfYnV0dG9uX21lZGl1bV9ydGw6YWN0aXZl
e2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTQxOHB4fVxuLmZiX2J1dHRvbl9z
bWFsbCxcbi5mYl9idXR0b25fc21hbGxfcnRse2JhY2tncm91bmQtcG9zaXRpb246
bGVmdCAtMjMycHg7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MTBweH1cbi5m
Yl9idXR0b25fc21hbGwgLmZiX2J1dHRvbl90ZXh0e3BhZGRpbmc6MnB4IDZweCAz
cHg7bWFyZ2luLWxlZnQ6MTdweH1cbmEuZmJfYnV0dG9uX3NtYWxsOmFjdGl2ZSxc
bi5mYl9idXR0b25fc21hbGw6YWN0aXZle2JhY2tncm91bmQtcG9zaXRpb246bGVm
dCAtMjUwcHh9XG4uZmJfYnV0dG9uX3NtYWxsX3J0bHtiYWNrZ3JvdW5kLXBvc2l0
aW9uOnJpZ2h0IC00NDBweH1cbi5mYl9idXR0b25fc21hbGxfcnRsIC5mYl9idXR0
b25fdGV4dHtwYWRkaW5nOjJweCA2cHg7bWFyZ2luLXJpZ2h0OjE4cHh9XG5hLmZi
X2J1dHRvbl9zbWFsbF9ydGw6YWN0aXZle2JhY2tncm91bmQtcG9zaXRpb246cmln
aHQgLTQ1OHB4fVxuLmZiX3NoYXJlX2NvdW50X3dyYXBwZXJ7cG9zaXRpb246cmVs
YXRpdmU7ZmxvYXQ6bGVmdH1cbi5mYl9zaGFyZV9jb3VudHtiYWNrZ3JvdW5kOiNi
MGI5ZWMgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDtjb2xvcjojMzMzO2ZvbnQtZmFt
aWx5OlwibHVjaWRhIGdyYW5kZVwiLCB0YWhvbWEsIHZlcmRhbmEsIGFyaWFsLCBz
YW5zLXNlcmlmO3RleHQtYWxpZ246Y2VudGVyfVxuLmZiX3NoYXJlX2NvdW50X2lu
bmVye2JhY2tncm91bmQ6I2U4ZWJmMjtkaXNwbGF5OmJsb2NrfVxuLmZiX3NoYXJl
X2NvdW50X3JpZ2h0e21hcmdpbi1sZWZ0Oi0xcHg7ZGlzcGxheTppbmxpbmUtYmxv
Y2t9XG4uZmJfc2hhcmVfY291bnRfcmlnaHQgLmZiX3NoYXJlX2NvdW50X2lubmVy
e2JvcmRlci10b3A6c29saWQgMXB4ICNlOGViZjI7Ym9yZGVyLWJvdHRvbTpzb2xp
ZCAxcHggI2IwYjllYzttYXJnaW46MXB4IDFweCAwIDFweDtmb250LXNpemU6MTBw
eDtsaW5lLWhlaWdodDoxMHB4O3BhZGRpbmc6MnB4IDZweCAzcHg7Zm9udC13ZWln
aHQ6Ym9sZH1cbi5mYl9zaGFyZV9jb3VudF90b3B7ZGlzcGxheTpibG9jaztsZXR0
ZXItc3BhY2luZzotMXB4O2xpbmUtaGVpZ2h0OjM0cHg7bWFyZ2luLWJvdHRvbTo3
cHg7Zm9udC1zaXplOjIycHg7Ym9yZGVyOnNvbGlkIDFweCAjYjBiOWVjfVxuLmZi
X3NoYXJlX2NvdW50X251Yl90b3B7Ym9yZGVyOm5vbmU7ZGlzcGxheTpibG9jaztw
b3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjdweDt0b3A6MzVweDttYXJnaW46MDtwYWRk
aW5nOjA7d2lkdGg6NnB4O2hlaWdodDo3cHg7YmFja2dyb3VuZC1yZXBlYXQ6bm8t
cmVwZWF0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6XC9cL3N0YXRpYy5hay5m
YmNkbi5uZXRcL3JzcmMucGhwXC92MlwveVBcL3hcL2JTT0h0S2JDR1lJLnBuZyl9
XG4uZmJfc2hhcmVfY291bnRfbnViX3JpZ2h0e2JvcmRlcjpub25lO2Rpc3BsYXk6
aW5saW5lLWJsb2NrO3BhZGRpbmc6MDt3aWR0aDo1cHg7aGVpZ2h0OjEwcHg7YmFj
a2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtaW1hZ2U6dXJsKGh0
dHA6XC9cL3N0YXRpYy5hay5mYmNkbi5uZXRcL3JzcmMucGhwXC92MlwveUxcL3hc
L2lfb0lWVEtNWXNMLnBuZyk7dmVydGljYWwtYWxpZ246dG9wO2JhY2tncm91bmQt
cG9zaXRpb246cmlnaHQgNXB4O3otaW5kZXg6MTA7bGVmdDoycHg7bWFyZ2luOjAg
MnB4IDAgMDtwb3NpdGlvbjpyZWxhdGl2ZX1cbi5mYl9zaGFyZV9ub19jb3VudHtk
aXNwbGF5Om5vbmV9XG4uZmJfc2hhcmVfc2l6ZV9TbWFsbCAuZmJfc2hhcmVfY291
bnRfcmlnaHQgLmZiX3NoYXJlX2NvdW50X2lubmVye2ZvbnQtc2l6ZToxMHB4fVxu
LmZiX3NoYXJlX3NpemVfTWVkaXVtIC5mYl9zaGFyZV9jb3VudF9yaWdodCAuZmJf
c2hhcmVfY291bnRfaW5uZXJ7Zm9udC1zaXplOjExcHg7cGFkZGluZzoycHggNnB4
IDNweDtsZXR0ZXItc3BhY2luZzotMXB4O2xpbmUtaGVpZ2h0OjE0cHh9XG4uZmJf
c2hhcmVfc2l6ZV9MYXJnZSAuZmJfc2hhcmVfY291bnRfcmlnaHQgLmZiX3NoYXJl
X2NvdW50X2lubmVye2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjE2cHg7cGFk
ZGluZzoycHggNnB4IDRweDtmb250LXdlaWdodDpub3JtYWw7bGV0dGVyLXNwYWNp
bmc6LTFweH1cbi5mYl9zaGFyZV9jb3VudF9oaWRkZW4gLmZiX3NoYXJlX2NvdW50
X251Yl90b3AsXG4uZmJfc2hhcmVfY291bnRfaGlkZGVuIC5mYl9zaGFyZV9jb3Vu
dF90b3AsXG4uZmJfc2hhcmVfY291bnRfaGlkZGVuIC5mYl9zaGFyZV9jb3VudF9u
dWJfcmlnaHQsXG4uZmJfc2hhcmVfY291bnRfaGlkZGVuIC5mYl9zaGFyZV9jb3Vu
dF9yaWdodHt2aXNpYmlsaXR5OmhpZGRlbn1cbi5mYl9jb25uZWN0X2Jhcl9jb250
YWluZXIgZGl2LFxuLmZiX2Nvbm5lY3RfYmFyX2NvbnRhaW5lciBzcGFuLFxuLmZi
X2Nvbm5lY3RfYmFyX2NvbnRhaW5lciBhLFxuLmZiX2Nvbm5lY3RfYmFyX2NvbnRh
aW5lciBpbWcsXG4uZmJfY29ubmVjdF9iYXJfY29udGFpbmVyIHN0cm9uZ3tiYWNr
Z3JvdW5kOm5vbmU7Ym9yZGVyLXNwYWNpbmc6MDtib3JkZXI6MDtkaXJlY3Rpb246
bHRyO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7bGV0dGVy
LXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjE7bWFyZ2luOjA7b3ZlcmZsb3c6
dmlzaWJsZTtwYWRkaW5nOjA7dGV4dC1hbGlnbjpsZWZ0O3RleHQtZGVjb3JhdGlv
bjpub25lO3RleHQtaW5kZW50OjA7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5z
Zm9ybTpub25lO3Zpc2liaWxpdHk6dmlzaWJsZTt3aGl0ZS1zcGFjZTpub3JtYWw7
d29yZC1zcGFjaW5nOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1cbi5m
Yl9jb25uZWN0X2Jhcl9jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7bGVmdDowICFp
bXBvcnRhbnQ7cmlnaHQ6MCAhaW1wb3J0YW50O2hlaWdodDo0MnB4ICFpbXBvcnRh
bnQ7cGFkZGluZzowIDI1cHggIWltcG9ydGFudDttYXJnaW46MCAhaW1wb3J0YW50
O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50O2JvcmRlci1ib3R0b206
MXB4IHNvbGlkICMzMzMgIWltcG9ydGFudDtiYWNrZ3JvdW5kOiMzYjU5OTggIWlt
cG9ydGFudDt6LWluZGV4Ojk5OTk5OTk5ICFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlk
ZGVuICFpbXBvcnRhbnR9XG4uZmJfY29ubmVjdF9iYXJfY29udGFpbmVyX2llNntw
b3NpdGlvbjphYnNvbHV0ZTt0b3A6ZXhwcmVzc2lvbihkb2N1bWVudC5jb21wYXRN
b2RlPT1cIkNTUzFDb21wYXRcIj8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNj
cm9sbFRvcCtcInB4XCI6Ym9keS5zY3JvbGxUb3ArXCJweFwiKX1cbi5mYl9jb25u
ZWN0X2Jhcntwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46YXV0bztoZWlnaHQ6MTAw
XHUwMDI1O3dpZHRoOjEwMFx1MDAyNTtwYWRkaW5nOjZweCAwIDAgMCAhaW1wb3J0
YW50O2JhY2tncm91bmQ6bm9uZTtjb2xvcjojZmZmICFpbXBvcnRhbnQ7Zm9udC1m
YW1pbHk6XCJsdWNpZGEgZ3JhbmRlXCIsIHRhaG9tYSwgdmVyZGFuYSwgYXJpYWws
IHNhbnMtc2VyaWYgIWltcG9ydGFudDtmb250LXNpemU6MTNweCAhaW1wb3J0YW50
O2ZvbnQtc3R5bGU6bm9ybWFsICFpbXBvcnRhbnQ7Zm9udC12YXJpYW50Om5vcm1h
bCAhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50O2xldHRl
ci1zcGFjaW5nOm5vcm1hbCAhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjEgIWltcG9y
dGFudDt0ZXh0LWRlY29yYXRpb246bm9uZSAhaW1wb3J0YW50O3RleHQtaW5kZW50
OjAgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7dGV4dC10
cmFuc2Zvcm06bm9uZSAhaW1wb3J0YW50O3doaXRlLXNwYWNlOm5vcm1hbCAhaW1w
b3J0YW50O3dvcmQtc3BhY2luZzpub3JtYWwgIWltcG9ydGFudH1cbi5mYl9jb25u
ZWN0X2JhciBhOmhvdmVye2NvbG9yOiNmZmZ9XG4uZmJfY29ubmVjdF9iYXIgLmZi
X3Byb2ZpbGUgaW1ne2hlaWdodDozMHB4O3dpZHRoOjMwcHg7dmVydGljYWwtYWxp
Z246bWlkZGxlO21hcmdpbjowIDZweCA1cHggMH1cbi5mYl9jb25uZWN0X2JhciBk
aXYgYSxcbi5mYl9jb25uZWN0X2JhciBzcGFuLFxuLmZiX2Nvbm5lY3RfYmFyIHNw
YW4gYXtjb2xvcjojYmFjNmRhO2ZvbnQtc2l6ZToxMXB4O3RleHQtZGVjb3JhdGlv
bjpub25lfVxuLmZiX2Nvbm5lY3RfYmFyIC5mYl9idXR0b25ze2Zsb2F0OnJpZ2h0
O21hcmdpbi10b3A6N3B4fVxuLmZiX2VkZ2Vfd2lkZ2V0X3dpdGhfY29tbWVudHtw
b3NpdGlvbjpyZWxhdGl2ZTsqei1pbmRleDoxMDAwfVxuLmZiX2VkZ2Vfd2lkZ2V0
X3dpdGhfY29tbWVudCBzcGFuLmZiX2VkZ2VfY29tbWVudF93aWRnZXR7cG9zaXRp
b246YWJzb2x1dGV9XG4uZmJfZWRnZV93aWRnZXRfd2l0aF9jb21tZW50IHNwYW4u
ZmJfc2VuZF9idXR0b25fZm9ybV93aWRnZXR7ei1pbmRleDoxfVxuLmZiX2VkZ2Vf
d2lkZ2V0X3dpdGhfY29tbWVudCBzcGFuLmZiX3NlbmRfYnV0dG9uX2Zvcm1fd2lk
Z2V0IC5GQl9Mb2FkZXJ7bGVmdDowO3RvcDoxcHg7bWFyZ2luLXRvcDo2cHg7bWFy
Z2luLWxlZnQ6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwXHUwMDI1IDUwXHUwMDI1
O2JhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MTUwcHg7d2lkdGg6Mzk0cHg7
Ym9yZGVyOjFweCAjNjY2IHNvbGlkO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICMy
ODNlNmM7ei1pbmRleDoxfVxuLmZiX2VkZ2Vfd2lkZ2V0X3dpdGhfY29tbWVudCBz
cGFuLmZiX3NlbmRfYnV0dG9uX2Zvcm1fd2lkZ2V0LmRhcmsgLkZCX0xvYWRlcnti
YWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2Nj
Y31cbi5mYl9lZGdlX3dpZGdldF93aXRoX2NvbW1lbnQgc3Bhbi5mYl9zZW5kX2J1
dHRvbl9mb3JtX3dpZGdldC5zaWRlcmVuZGVyXG4uRkJfTG9hZGVye21hcmdpbi10
b3A6MH1cbi5mYnBsdWdpbnJlY29tbWVuZGF0aW9uc2JhcmxlZnQsXG4uZmJwbHVn
aW5yZWNvbW1lbmRhdGlvbnNiYXJyaWdodHtwb3NpdGlvbjpmaXhlZCAhaW1wb3J0
YW50O2JvdHRvbTowO3otaW5kZXg6OTk5fVxuXC8qIFx1MDA0MG5vZmxpcCAqXC9c
bi5mYnBsdWdpbnJlY29tbWVuZGF0aW9uc2JhcmxlZnR7bGVmdDoxMHB4fVxuXC8q
IFx1MDA0MG5vZmxpcCAqXC9cbi5mYnBsdWdpbnJlY29tbWVuZGF0aW9uc2JhcnJp
Z2h0e3JpZ2h0OjEwcHh9XG4iLCBbImZiLmNzcy5iYXNlIiwiZmIuY3NzLmRpYWxv
ZyIsImZiLmNzcy5pZnJhbWV3aWRnZXQiLCJmYi5jc3MuYnV0dG9uIiwiZmIuY3Nz
LnNoYXJlYnV0dG9uIiwiZmIuY3NzLmNvbm5lY3RiYXJ3aWRnZXQiLCJmYi5jc3Mu
ZWRnZWNvbW1lbnR3aWRnZXQiLCJmYi5jc3Muc2VuZGJ1dHRvbmZvcm13aWRnZXQi
LCJmYi5jc3MucGx1Z2luLnJlY29tbWVuZGF0aW9uc2JhciJdKTsgfQp9KSh3aW5k
b3cuaW5EYXBJRiA/IHBhcmVudC53aW5kb3cgOiB3aW5kb3cpOwo=
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=2920788207.css
Content-Type: text/css; name=2920788207.css
Content-Location: http://o1.t26.net/ads/v5/2920788207.css
Content-Transfer-Encoding: 8bit
.footerAds
.byGoogle.footerAds .footerAds {
border-bottom: 1px dotted #CCC;
margin-bottom: 15px;
}
.byGoogle.footerAds li {
padding: 3px;
}
.byGoogle.footerAds a.titleUrl {
font-size: 14px;
display:block;
color:#ff6600;
margin-bottom:6px;
text-decoration:underline;
margin-right: 10px;
}
.byGoogle.footerAds a.titleUrl,.byGoogle.footerAds a.titleUrl b,.byGoogle.footerAds .urlAds .url {
font-family: 'Courier New', Courier, monospace;
}
.byGoogle.footerAds a.titleUrl:hover {
color:#c92bad;
}
.byGoogle.footerAds .urlAds .url {
color: #5916a4;
cursor: pointer;
}
.byGoogle.footerAds span.desc {
color:#444;
}
.adsBy {
font-size: 12px;
text-align: left;
font-weight: normal;
color: #666;
}
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=big2v5.gif
Content-Type: image/gif; name=big2v5.gif
Content-Location: http://o1.t26.net/images/big2v5.gif
Content-Transfer-Encoding: Base64
R0lGODlhEQBpA/f/AP+ZAP+1AP//mf//EJmZmYzeWoyMjHt7e///xe/v7///72O1
MbW1taWlpc5ChP8AAFqtMdbm/8zMzPf392ZmZt2lAHvOUv//zK2trYzeY7VCc/9m
ZnPFQv/63vdCjPRSUvfehPfWe//OpfeEhGulzkJ7vfdjpeZSlITWWvfW7yEhIf//
1u86Oq59AM7e78XFxffm997g3b29vffmpe9anO+9vbXO7/ecnPfvtfcxMf//9//v
1ubm5v+1e//37//31vdzc9bW1t6jM//mxf//5vfWa1qcxfdCQv/FlP/Fe+YpKYSE
hJy15u/O72YAAL0ZGdZChL2MAP+MCP+UUvfelPfmlP+lc1paWjGEnP+ZZnOUxf/3
tffUXPcpKe/OUomw1pS9zv/eSoixxf8QEABSe//WIea1Ot6E1tZzY+/WtQDFnAB7
Y60QEO/WjPfWnOa15v/evWulteaxTs4pKTFjpfe1jEqMrf+1awCtjNqtRv+oT7XW
lP9aWtOHCBBrjEJ7pd5KjO/IQjMzM++9AP/WMf+EOjqUpf/OEADetf+lY+9jWsXm
tYwZGQCUc2uMvezDdrU6Mc4pCO+lc5y93u+Ua+/FMd46OkrO7/9rc/fFhM5rGf+U
Ge/F5hl7GcxmAJTF9//3kOYAAP97MV+9X3ulzvdaOt69c/+1WoQQEADWrffOtffm
5tZjUv+cOu/FWt6U1u+9nO+tGcyZAM5rOmvWa5S13v/vnP/mY+al3jOZM9Zzzlqc
tdZzQu+thMxmM4TmhEKlQnNzczprnPe9IXut5uZKSv/v9+Z7Sv/WreaMUtaNSuaU
GdatGe+9KQDvvaXFhP+cKe/Wzq293pnKdZStzv//bf/vc//me861c/OMWt6UY/e9
EOate8WUMea1GfdrUji97v9rCK3ehL2lQnutSubOhEqEGYStYwA6xcUZCObeta3F
nP/FpdaEOs5SSlqMKf8pAN7FWt6ca6UAAM5KMQiE3pyMQr2UGeaUQmNjQkJCQv/m
AP/////MAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/
eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlk
Ij8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9
IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0x
NzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw
dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29t
L3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv
MS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhv
dG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6
RUU0RDZCRDVFNkExMTFFMUIzMzZGMDlGMTVDMkFCNjgiIHhtcE1NOkRvY3VtZW50
SUQ9InhtcC5kaWQ6RUU0RDZCRDZFNkExMTFFMUIzMzZGMDlGMTVDMkFCNjgiPiA8
eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFRTRE
NkJEM0U2QTExMUUxQjMzNkYwOUYxNUMyQUI2OCIgc3RSZWY6ZG9jdW1lbnRJRD0i
eG1wLmRpZDpFRTRENkJENEU2QTExMUUxQjMzNkYwOUYxNUMyQUI2OCIvPiA8L3Jk
ZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0
IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb
2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayr
qqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7
enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxL
SklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwb
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
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=space.gif
Content-Type: image/gif; name=space.gif
Content-Location: http://o1.t26.net/images/space.gif
Content-Transfer-Encoding: Base64
R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=show_ads.js
Content-Type: text/javascript; charset=UTF-8; name=show_ads.js
Content-Location: http://pagead2.googlesyndication.com/pagead/show_ads.js
Content-Transfer-Encoding: Quoted-Printable
(function(){var f=3D!0,h=3Dnull,i=3D!1,aa=3Dfunction(a,b,c){return a.cal=
l.apply(a.bind,arguments)},ba=3Dfunction(a,b,c){if(!a)throw Error();if(2=
/g,fa=3D/\"/g,l=3D{"\x00":"\\0","\b":"\\b","\f":"\\f","\n":"\\n=
","\r":"\\r","\t":"\\t","\x0B":"\\x0B",'"':'\\"',"\\":"\\\\"},p=3D{"'":"=
\\'"};var q=3Dwindow,s,ga=3Dh,t=3Ddocument.getElementsByTagName("script"=
);t&&t.length&&(ga=3Dt[t.length-1].parentNode);s=3Dga;var u=3Dfunction(a=
){a=3DparseFloat(a);return isNaN(a)||1a?0:a},ha=3D/^([\w-]+\.)*([\=
w-]{2,})(\:[0-9]+)?$/,ia=3Dfunction(a){return!a?"pagead2.googlesyndicati=
on.com":(a=3Da.match(ha))?a[0]:"pagead2.googlesyndication.com"};var v=3D=
function(){return ia("")};v();var x=3Dfunction(a){return!!a&&"function"=3D=
=3Dtypeof a&&!!a.call},ja=3Dfunction(a,b){if(!(2>arguments.length))for(v=
ar c=3D1,d=3Darguments.length;cMath.random())){var c=3DMath.r=
andom();if(c");b=3D"border:none;height:"+c+"px;margin:0;padding:0;position:rel=
ative;visibility:visible;width:"+b+"px";return['',d.join(" ")," "].join("")};var ta=3D/^true$/.test("f=
alse")?f:i;var L=3Dfunction(a,b,c){c||(c=3Dta?"https":"http");return[c,"=
://",a,b].join("")};var va=3Dfunction(){},M=3Dfunction(a,b,c){switch(typ=
eof b){case "string":wa(b,c);break;case "number":c.push(isFinite(b)&&!is=
NaN(b)?b:"null");break;case "boolean":c.push(b);break;case "undefined":c=
.push("null");break;case "object":if(b=3D=3Dh){c.push("null");break}if(b=
instanceof Array){var d=3Db.length;c.push("[");for(var e=3D"",g=3D0;gb?e+=3D"000":256>b?e+=3D=
"00":4096>b&&(e+=3D"0");return N[a]=3De+b.toString(16)}));b.push('"')};v=
ar O=3D"google_ad_block google_ad_channel google_ad_client google_ad_for=
mat google_ad_height google_ad_host google_ad_host_channel google_ad_hos=
t_tier_id google_ad_output google_ad_override google_ad_region google_ad=
_section google_ad_slot google_ad_type google_ad_width google_adtest goo=
gle_allow_expandable_ads google_alternate_ad_url google_alternate_color =
google_analytics_domain_name google_analytics_uacct google_bid google_ci=
ty google_color_bg google_color_border google_color_line google_color_li=
nk google_color_text google_color_url google_container_id google_content=
s google_country google_cpm google_ctr_threshold google_cust_age google_=
cust_ch google_cust_gender google_cust_id google_cust_interests google_c=
ust_job google_cust_l google_cust_lh google_cust_u_url google_disable_vi=
deo_autoplay google_ed google_eids google_enable_ose google_encoding goo=
gle_font_face google_font_size google_frame_id google_gl google_hints go=
ogle_image_size google_kw google_kw_type google_language google_loeid go=
ogle_max_num_ads google_max_radlink_len google_mtl google_num_radlinks g=
oogle_num_radlinks_per_unit google_num_slots_to_rotate google_only_ads_w=
ith_video google_only_pyv_ads google_only_userchoice_ads google_override=
_format google_page_url google_previous_watch google_previous_searches g=
oogle_referrer_url google_region google_reuse_colors google_rl_dest_url =
google_rl_filtering google_rl_mode google_rt google_safe google_scs goog=
le_skip google_tag_info google_targeting google_tdsma google_tfs google_=
tl google_ui_features google_ui_version google_video_doc_id google_video=
_product_type google_with_pyv_ads google_yt_pt google_yt_up".split(" ");=
var P=3Dfunction(a){this.a=3Da;a.google_iframe_oncopy||(a.google_iframe_=
oncopy=3D{handlers:{},log:[],shouldLog:0.01>Math.random()?f:i});this.e=3D=
a.google_iframe_oncopy;a.setTimeout(j(this.k,this),3E4)},ya;var Q=3D"var=
i=3Dthis.id,s=3Dwindow.google_iframe_oncopy,H=3Ds&&s.handlers,h=3DH&&H[=
i],w=3Dthis.contentWindow,d;try{d=3Dw.document}catch(e){}if(h&&d&&(!d.bo=
dy||!d.body.firstChild)){if(h.call){i+=3D'.call';setTimeout(h,0)}else if=
(h.match){i+=3D'.nav';w.location.replace(h)}s.log&&s.log.push(i)}";
/[&<>\"]/.test(Q)&&(-1!=3DQ.indexOf("&")&&(Q=3DQ.replace(ca,"&")),-1=
!=3DQ.indexOf("<")&&(Q=3DQ.replace(da,"<")),-1!=3DQ.indexOf(">")&&(Q=3D=
Q.replace(ea,">")),-1!=3DQ.indexOf('"')&&(Q=3DQ.replace(fa,"""))=
);ya=3DQ;P.prototype.set=3Dfunction(a,b){this.e.handlers[a]=3Db;this.a.a=
ddEventListener&&this.a.addEventListener("load",j(this.j,this,a),i)};P.p=
rototype.j=3Dfunction(a){var a=3Dthis.a.document.getElementById(a),b=3Da=
.contentWindow.document;if(a.onload&&b&&(!b.body||!b.body.firstChild))a.=
onload()};
P.prototype.k=3Dfunction(){if(this.e.shouldLog){var a=3Dthis.e.log,b=3Dt=
his.a.document;if(a.length){b=3D["/pagead/gen_204?id=3Diframecopy&log=3D=
",y(a.join("-")),"&url=3D",y(b.URL.substring(0,512)),"&ref=3D",y(b.refer=
rer.substring(0,512))].join("");a.length=3D0;a=3Dthis.a;b=3DL(ia(""),b);=
a.google_image_requests||(a.google_image_requests=3D[]);var c=3Da.docume=
nt.createElement("img");c.src=3Db;a.google_image_requests.push(c)}}};var=
za=3Dfunction(){var a=3D"script";return["<",a,' src=3D"',L(v(),"/pagead=
/js/r20120822/r20120730/show_ads_impl.js",""),'">',a,">"].join("")},Aa=
=3Dfunction(){var a=3D"script";return["<",a,' src=3D"',L(v(),"/pagead/ex=
pansion_embed.js"),'">',a,">"].join("")},Ba=3Dfunction(a){var b;if(!(b=
=3D"expt"!=3Da.google_expand_experiment))a:{var c=3Da.document;try{if(a.=
google_allow_expandable_ads=3D=3D=3D
i||!c.body||a.google_ad_output&&"html"!=3Da.google_ad_output||isNaN(a.go=
ogle_ad_height)||isNaN(a.google_ad_width)||c.domain!=3Da.location.hostna=
me){b=3Df;break a}}catch(d){b=3Df;break a}b=3Di}return b?i:f},Ca=3Dfunct=
ion(a,b,c,d){return function(){var e=3Di;d&&F().al(3E4);try{if(A(a.docum=
ent.getElementById(b).contentWindow)){var g=3Da.document.getElementById(=
b).contentWindow,o=3Dg.document;if(!o.body||!o.body.firstChild)o.open(),=
g.google_async_iframe_close=3Df,o.write(c)}else{var H=3Da.document.getEl=
ementById(b).contentWindow,
Y;g=3Dc;g=3DString(g);if(g.quote)Y=3Dg.quote();else{for(var o=3D['"'],I=3D=
0;Iua)w=3DJ;else{var n=3DJ;if(n in=
p)w=3Dp[n];else if(n in l)w=3Dp[n]=3Dl[n];else{var m=3Dn,r=3Dn.charCode=
At(0);if(31r)m=3Dn;else{if(256>r){if(m=3D"\\x",16>r||256r&&(m+=3D"0");m+=3Dr.toString(16).toUpperCase()}=
w=3Dp[n]=3Dm}}Z=3Dw}Za[$a]=3DZ}o.push('"');Y=3Do.join("")}H.location.rep=
lace("javascript:"+Y)}e=3Df}catch(kb){H=3Dka().google_jobrunner,
na(H)&&H.rl()}e&&(new P(a)).set(b,Ca(a,b,c,i))}},Da=3Dfunction(){var a=3D=
R.google_adk_experiment;if("control"=3D=3Da)return"control";if("expt"=3D=
=3Da){var a=3Dwindow.google_ad_output,b=3Dwindow.google_ad_format;if(!b&=
&("html"=3D=3Da||a=3D=3Dh))b=3Dwindow.google_ad_width+"x"+window.google_=
ad_height;b=3Db&&(!window.google_ad_slot||window.google_override_format)=
?b.toLowerCase():"";window.google_ad_format=3Db;a=3D[q.google_ad_slot,q.=
google_ad_format,q.google_ad_type,q.google_ad_width,q.google_ad_height];=
if(s){if(s){for(var b=3D[],c=3D0,
d=3Ds;d&&25>c;d=3Dd.parentNode,++c)b.push(9!=3Dd.nodeType&&d.id||"");b=3D=
b.join()}else b=3D"";b&&a.push(b)}b=3D0;if(a)if(a=3Da.join(":"),b=3Da.le=
ngth,0=3D=3Db)b=3D0;else{c=3D305419896;for(d=3D0;d=
>2)+a.charCodeAt(d)&4294967295;b=3D0<",_script$$inline_94,"=
>",Ua,"google_show_ads_impl=3Dtrue;google_unique_id=3D",R.google_unique_=
id,';google_async_iframe_id=3D"',W,'";google_start_time=3D',k,";",ib?'go=
ogle_top_experiment=3D"'+ib+'";':"",db?'google_adk_sa=3D"'+db+'";':"",jb=
?'google_expand_experiment=3D"'+jb+'";':"","google_bpp=3D",hb>k?hb-k:1,"=
;",_script$$inline_94,">",lb,za(),""].join("");(R.docume=
nt.getElementById(W)?
oa:pa)(Ca(R,W,mb,f))}else window.q=3Dk,!("object"=3D=3Dtypeof Expandable=
AdSlotFactory&&"function"=3D=3Dtypeof ExpandableAdSlotFactory.createIfra=
me)&&Ba(window)&&document.write(Aa()),document.write(za());})();
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=ar.png
Content-Type: image/png; name=ar.png
Content-Location: http://o1.t26.net/images/flags/ar.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAABGdBTUEAAK/INwWK
6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGMSURBVHja
Yow8/v/LHwYI+Mfw7xcQ/2EACvz68+/Pv38//gBFQAjE+POPjYkBIIBYPv1hSFWE
qP7//z/jv/9ABsO/f////mf8+4/5LwPT33//wVwQyj32BSCAWH78Yfj9j+H97/8g
pf8ZQBJAS/7///MPjEBcKFuYnZHh1z+AAGKpl32jKSYM1PMfaMt/kDYgBBoJAmA+
hAkkWRkZRLXfAAQQizrvP2E2BrBisFog/X3v3y+bgYYycXv+53D7DwOMjAxmwgwA
AcQE8S5UDEL/2PPv3/3/f+/9/7b9PzIA+e0fQACxIKtmgOhgs2P48QYYTv85nJHV
MwId9u8fQACxXPv4T4v3/6+/IB0w57r+53L5B5L+/+8rVPW/fwxsLP+PvvkLEEAs
WbeFSpkZXn4HhgMDPED+wkPpHzSUgEEnwcnQeUQQIIBYmP79Y2RgEmWHBuhfYMiC
dDICGX9A4Qt0NwM4TkB+APoCIIAYjbd+ffcLGpE/QAio+h9ILSjOwegPGAHjExj/
bAwAAQYA9gFw522GQWAAAAAASUVORK5CYII=
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=homero_tux.jpg
Content-Type: text/html; name=homero_tux.jpg
Content-Location: http://bp0.blogger.com/_wGi3N5qUOWA/SEdBlK7TUSI/AAAAAAAAAKY/R_2ybw7qENY/s400/homero_tux.jpg
Content-Transfer-Encoding: Base64
/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1
c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gNzAK/9sAQwAKBwcIBwYKCAgI
CwoKCw4YEA4NDQ4dFRYRGCMfJSQiHyIhJis3LyYpNCkhIjBBMTQ5Oz4+PiUuRElD
PEg3PT47/9sAQwEKCwsODQ4cEBAcOygiKDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7
Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7/8AAEQgAgACAAwEiAAIRAQMRAf/E
AB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQE
AAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBka
JSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SF
hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY
2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgME
BQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKB
CBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNU
VVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip
qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/a
AAwDAQACEQMRAD8A9mooooAKKKKACiiqlxfLHJ5EKGaf+4p4X6ntUTqRgryY0m9i
HWNbtdFhjacSyzTtsgtoF3yzN1wq/Tkk4A7kVyE/jrxNdXclvo/hqC5eJtkii63+
W391nwsYb1AdiK2LTTbnUfFOo32ou6fZkS1txGCqhSodyCeTksASP7ntWvb6Jpdr
CsMNnGkaDCqOg/CsnVqP4Y/e7foyuVdWc3F4t8WWVu1xrXgqXyEGXk0+7jnYD/rn
nJ/A1teHPF+ieK4Gk0m8WV0H7yFxtkj+qn+Y4q7/AGZZfwQ+WfVGKn9DXFat4NNj
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
WkmnJ2LVClF3UUerUUUVzmx//9k=
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=inimage-min.gz.js
Content-Type: application/x-javascript; name=inimage-min.gz.js
Content-Location: http://ads.adsinimages.com/js/inimage-min.gz.js
Content-Transfer-Encoding: Base64
dmFyIGNvbW1vbnM9e307CihmdW5jdGlvbigpe2Z1bmN0aW9uIHAoYSl7cD1hLnN0
b3BQcm9wYWdhdGlvbj9mdW5jdGlvbihhKXthLnN0b3BQcm9wYWdhdGlvbigpfTpm
dW5jdGlvbihhKXthLmNhbmNlbEJ1YmJsZT0hMH07cmV0dXJuIHAoYSl9ZnVuY3Rp
b24gbyhhKXtvPWEuY3VycmVudFRhcmdldD9mdW5jdGlvbihhKXtyZXR1cm4gYS5j
dXJyZW50VGFyZ2V0fTpmdW5jdGlvbihhKXtyZXR1cm4gYS5zcmNFbGVtZW50fTty
ZXR1cm4gbyhhKX1mdW5jdGlvbiBBKGEsYil7QT1iLnF1ZXJ5U2VsZWN0b3JBbGw/
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi5xdWVyeVNlbGVjdG9yQWxsKCIuIithKX06
Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lP2Z1bmN0aW9uKGEsYil7cmV0dXJuIGIu
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKX06ZnVuY3Rpb24oYSxiKXtmb3IodmFy
IGU9W10sZz1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIiksaD0wO2g8Zy5sZW5n
dGg7aCsrKWdbaF0uY2xhc3NOYW1lJiYoIiAiK2dbaF0uY2xhc3NOYW1lKwoiICIp
LnJlcGxhY2UoL1tcdFxuXS9nLCIgIikuaW5kZXhPZigiICIrYSsiICIpPj0wJiZl
LnB1c2goZ1toXSk7cmV0dXJuIGV9O3JldHVybiBBKGEsYil9ZnVuY3Rpb24gRChh
LGIsYyl7RD1hLmFkZEV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe3JldHVy
biBhLmFkZEV2ZW50TGlzdGVuZXIoYixjLCExKX06ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBhLmF0dGFjaEV2ZW50KCJvbiIrYixjKX07cmV0dXJuIEQoYSxiLGMpfWZ1
bmN0aW9uIHooYSxiKXtpZihiLnZpc2l0KGEpKWZvcih2YXIgYz1hLmZpcnN0Q2hp
bGQ7YzspYi52aXNpdChjKSYmeihjLGIpLGM9Yy5uZXh0U2libGluZ31mdW5jdGlv
biBIKGEsYil7aWYoYSlmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrKylpZihhW2Nd
PT1iKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHUoYSxiLGMpe3U9Yy5kb2N1
bWVudEVsZW1lbnQuY29udGFpbnM/ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSE9PWIm
JihhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6CiEwKX06Yy5kb2N1bWVudEVsZW1l
bnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/ZnVuY3Rpb24oYSxiKXtyZXR1cm4h
IShhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjE2KX06ZnVuY3Rpb24oKXty
ZXR1cm4hMX07cmV0dXJuIHUoYSxiLGMpfWZ1bmN0aW9uIHEoYSxiKXtxPSJnZXRC
b3VuZGluZ0NsaWVudFJlY3QiaW4gYi5kb2N1bWVudEVsZW1lbnQ/ZnVuY3Rpb24o
YSxiKXt2YXIgZTtpZighYXx8IWEub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtp
ZihhPT09YS5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGNvbW1vbnMub2Zmc2V0
LmJvZHlPZmZzZXQoYSxiKTt0cnl7ZT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
fWNhdGNoKGcpe312YXIgaD1hLm93bmVyRG9jdW1lbnQsaz1oLmRvY3VtZW50RWxl
bWVudDtpZighZXx8IXUoayxhLGIpKXJldHVybiBlfHx7dG9wOjAsbGVmdDowfTt2
YXIgZj1oLmJvZHksaD1oJiZ0eXBlb2YgaD09PSJvYmplY3QiJiYic2V0SW50ZXJ2
YWwiaW4KaD9oOmgubm9kZVR5cGU9PT05P2guZGVmYXVsdFZpZXd8fGgucGFyZW50
V2luZG93OiExO3JldHVybnt0b3A6ZS50b3ArKGgucGFnZVlPZmZzZXR8fGsuc2Ny
b2xsVG9wfHxmLnNjcm9sbFRvcCktKGsuY2xpZW50VG9wfHxmLmNsaWVudFRvcHx8
MCksbGVmdDplLmxlZnQrKGgucGFnZVhPZmZzZXR8fGsuc2Nyb2xsTGVmdHx8Zi5z
Y3JvbGxMZWZ0KS0oay5jbGllbnRMZWZ0fHxmLmNsaWVudExlZnR8fDApfX06ZnVu
Y3Rpb24oYSxiKXtpZighYXx8IWEub3duZXJEb2N1bWVudClyZXR1cm4gbnVsbDtp
ZihhPT09YS5vd25lckRvY3VtZW50LmJvZHkpcmV0dXJuIGNvbW1vbnMub2Zmc2V0
LmJvZHlPZmZzZXQoYSxiKTtjb21tb25zLm9mZnNldC5pbml0aWFsaXplKGIpO3Zh
ciBlLGc9YS5vZmZzZXRQYXJlbnQsaD1hLm93bmVyRG9jdW1lbnQsaz1oLmRvY3Vt
ZW50RWxlbWVudCxmPWguYm9keTtlPShoPWguZGVmYXVsdFZpZXcpP2guZ2V0Q29t
cHV0ZWRTdHlsZShhLG51bGwpOmEuY3VycmVudFN0eWxlOwpmb3IodmFyIGo9YS5v
ZmZzZXRUb3AsbT1hLm9mZnNldExlZnQ7KGE9YS5wYXJlbnROb2RlKSYmYSE9PWYm
JmEhPT1rOyl7aWYob2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZS5wb3Np
dGlvbj09PSJmaXhlZCIpYnJlYWs7ZT1oP2guZ2V0Q29tcHV0ZWRTdHlsZShhLG51
bGwpOmEuY3VycmVudFN0eWxlO2otPWEuc2Nyb2xsVG9wO20tPWEuc2Nyb2xsTGVm
dDtpZihhPT09Zyl7ais9YS5vZmZzZXRUb3A7bSs9YS5vZmZzZXRMZWZ0O2c9L150
KD86YWJsZXxkfGgpJC9pO2lmKG9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYoIW9m
ZnNldC5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxsc3x8IWcudGVzdChhLm5v
ZGVOYW1lKSkpais9cGFyc2VGbG9hdChlLmJvcmRlclRvcFdpZHRoKXx8MCxtKz1w
YXJzZUZsb2F0KGUuYm9yZGVyTGVmdFdpZHRoKXx8MDtnPWEub2Zmc2V0UGFyZW50
fW9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJmUu
b3ZlcmZsb3chPT0KInZpc2libGUiJiYoais9cGFyc2VGbG9hdChlLmJvcmRlclRv
cFdpZHRoKXx8MCxtKz1wYXJzZUZsb2F0KGUuYm9yZGVyTGVmdFdpZHRoKXx8MCl9
aWYoZS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGUucG9zaXRpb249PT0ic3RhdGlj
IilqKz1mLm9mZnNldFRvcCxtKz1mLm9mZnNldExlZnQ7b2Zmc2V0LnN1cHBvcnRz
Rml4ZWRQb3NpdGlvbiYmZS5wb3NpdGlvbj09PSJmaXhlZCImJihqKz1NYXRoLm1h
eChrLnNjcm9sbFRvcCxmLnNjcm9sbFRvcCksbSs9TWF0aC5tYXgoay5zY3JvbGxM
ZWZ0LGYuc2Nyb2xsTGVmdCkpO3JldHVybnt0b3A6aixsZWZ0Om19fTtyZXR1cm4g
cShhLGIpfWZ1bmN0aW9uIHQoYSxiKXt0PWEuaW5uZXJXaWR0aD9mdW5jdGlvbihh
KXtyZXR1cm4gYS5pbm5lcldpZHRofTpmdW5jdGlvbihhLGIpe3JldHVybiBiLmJv
ZHkub2Zmc2V0V2lkdGh9O3JldHVybiB0KGEsYil9ZnVuY3Rpb24gdihhLGIpe3Y9
YS5pbm5lckhlaWdodD9mdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhlaWdodH06
CmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuYm9keS5vZmZzZXRIZWlnaHR9O3JldHVy
biB2KGEsYil9ZnVuY3Rpb24gdyhhLGIpe3c9YS5wYWdlWU9mZnNldD9mdW5jdGlv
bihhKXtyZXR1cm4gYS5wYWdlWU9mZnNldH06ZnVuY3Rpb24oYSxiKXtyZXR1cm4g
Yi5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfTtyZXR1cm4gdyhhLGIpfWZ1bmN0
aW9uIHIoYSxiKXtyPWEucGFnZVhPZmZzZXQ/ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
cGFnZVhPZmZzZXR9OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuZG9jdW1lbnRFbGVt
ZW50LnNjcm9sbExlZnR9O3JldHVybiByKGEsYil9ZnVuY3Rpb24gQihhKXtCPWEu
dGV4dENvbnRlbnQ/ZnVuY3Rpb24oYSl7cmV0dXJuIGEudGV4dENvbnRlbnR9OmZ1
bmN0aW9uKGEpe3JldHVybiBhLmlubmVyVGV4dH07cmV0dXJuIEIoYSl9ZnVuY3Rp
b24gQyhhKXtDPWEuY29udGVudERvY3VtZW50P2Z1bmN0aW9uKGEpe3JldHVybiBh
LmNvbnRlbnREb2N1bWVudH06ZnVuY3Rpb24oYSl7cmV0dXJuKGE9CmEuY29udGVu
dFdpbmRvdyk/YS5kb2N1bWVudDpudWxsfTtyZXR1cm4gQyhhKX1mdW5jdGlvbiBJ
KGEpe0k9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJDaHJvbWUiKSE9LTE/
ZnVuY3Rpb24oYSl7cmV0dXJuIGEub2Zmc2V0SGVpZ2h0fTpmdW5jdGlvbihhKXty
ZXR1cm4gYS5vZmZzZXRIZWlnaHQtYS5jbGllbnRIZWlnaHQ8MD9hLnNjcm9sbEhl
aWdodCsoYS5vZmZzZXRIZWlnaHQtYS5jbGllbnRIZWlnaHQpOmEub2Zmc2V0SGVp
Z2h0fTtyZXR1cm4gSShhKX1mdW5jdGlvbiBFKGEsYixjKXtFPWEuYWRkRXZlbnRM
aXN0ZW5lcj9mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyKGIs
YywhMSl9OmZ1bmN0aW9uKGEsYixjKXthLmRldGFjaEV2ZW50KCJvbiIrYixjKX07
RShhLGIsYyl9ZnVuY3Rpb24gcyhhLGIpe3M9bmF2aWdhdG9yLmFwcE5hbWU9PSJN
aWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiP2Z1bmN0aW9uKGEsYil7Yi5zdHls
ZS5jc3NUZXh0PWF9OgpmdW5jdGlvbihhLGIpe3JldHVybiBiLnNldEF0dHJpYnV0
ZSgic3R5bGUiLGEpfTtyZXR1cm4gcyhiLGEpfWZ1bmN0aW9uIEYoYSxiKXtpZihh
LnJlYWR5U3RhdGUhPT0iY29tcGxldGUiKXt0cnl7YS5kb2N1bWVudEVsZW1lbnQu
ZG9TY3JvbGwoImxlZnQiKX1jYXRjaChjKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7
RihhLGIpfSwxKTtyZXR1cm59YigpfX1mdW5jdGlvbiB4KCl7eD1uYXZpZ2F0b3Iu
YXBwTmFtZT09Ik1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciI/ZnVuY3Rpb24o
KXt0cnl7dmFyIGE9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNo
b2Nrd2F2ZUZsYXNoLjYiKTt0cnl7YS5BbGxvd1NjcmlwdEFjY2Vzcz0iYWx3YXlz
In1jYXRjaChiKXtyZXR1cm4iNiJ9fWNhdGNoKGMpe31yZXR1cm4obmV3IEFjdGl2
ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikpLkdldFZh
cmlhYmxlKCIkdmVyc2lvbiIpLnJlcGxhY2UoL1xEKy9nLCIsIikubWF0Y2goL14s
PyguKyksPyQvKVsxXS5zcGxpdCgiLCIpWzBdfToKZnVuY3Rpb24oKXt0cnl7aWYo
bmF2aWdhdG9yLm1pbWVUeXBlc1siYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxh
c2giXS5lbmFibGVkUGx1Z2luKXJldHVybihuYXZpZ2F0b3IucGx1Z2luc1siU2hv
Y2t3YXZlIEZsYXNoIDIuMCJdfHxuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZl
IEZsYXNoIl0pLmRlc2NyaXB0aW9uLnJlcGxhY2UoL1xEKy9nLCIsIikubWF0Y2go
L14sPyguKyksPyQvKVsxXS5zcGxpdCgiLCIpWzBdfWNhdGNoKGEpe31yZXR1cm4i
MCJ9O3JldHVybiB4KCl9Y29tbW9ucy5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rp
b24oYSl7dmFyIGI9YS5ib2R5LGE9YS5jcmVhdGVFbGVtZW50KCJkaXYiKSxjLGQs
ZSxnPXBhcnNlRmxvYXQoYi5zdHlsZS5tYXJnaW5Ub3ApfHwwO2Euc3R5bGUucG9z
aXRpb249ImFic29sdXRlIjthLnN0eWxlLnRvcD0wO2Euc3R5bGUubGVmdD0wO2Eu
c3R5bGUubWFyZ2luPTA7YS5zdHlsZS5ib3JkZXI9MDthLnN0eWxlLndpZHRoPSIx
cHgiOwphLnN0eWxlLmhlaWdodD0iMXB4IjthLnN0eWxlLnZpc2liaWxpdHk9Imhp
ZGRlbiI7YS5pbm5lckhUTUw9IjxkaXYgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRl
O3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFk
ZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4Oyc+PGRpdj48L2Rpdj48L2Rpdj48
dGFibGUgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJn
aW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDto
ZWlnaHQ6MXB4OycgY2VsbHBhZGRpbmc9JzAnIGNlbGxzcGFjaW5nPScwJz48dHI+
PHRkPjwvdGQ+PC90cj48L3RhYmxlPiI7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0
Q2hpbGQpO2M9YS5maXJzdENoaWxkO2Q9Yy5maXJzdENoaWxkO2U9Yy5uZXh0U2li
bGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5kb2VzTm90QWRkQm9yZGVy
PWQub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENl
bGxzPQplLm9mZnNldFRvcD09PTU7ZC5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiO2Qu
c3R5bGUudG9wPSIyMHB4Ijt0aGlzLnN1cHBvcnRzRml4ZWRQb3NpdGlvbj1kLm9m
ZnNldFRvcD09PTIwfHxkLm9mZnNldFRvcD09PTE1O2Quc3R5bGUucG9zaXRpb249
ZC5zdHlsZS50b3A9IiI7Yy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtjLnN0eWxl
LnBvc2l0aW9uPSJyZWxhdGl2ZSI7dGhpcy5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVy
Zmxvd05vdFZpc2libGU9ZC5vZmZzZXRUb3A9PT0tNTt0aGlzLmRvZXNOb3RJbmNs
dWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PWIub2Zmc2V0VG9wIT09ZztiLnJlbW92ZUNo
aWxkKGEpO2I9YT1jPWQ9ZT1udWxsO2NvbW1vbnMub2Zmc2V0LmluaXRpYWxpemU9
ZnVuY3Rpb24oKXt9fSxib2R5T2Zmc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5v
ZmZzZXRUb3AsZD1hLm9mZnNldExlZnQ7Y29tbW9ucy5vZmZzZXQuaW5pdGlhbGl6
ZShiKTtPZmZzZXQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQmJgoo
Yys9cGFyc2VGbG9hdChhLnN0eWxlLm1hcmdpblRvcCl8fDAsZCs9cGFyc2VGbG9h
dChhLnN0eWxlLm1hcmdpbkxlZnQpfHwwKTtyZXR1cm57dG9wOmMsbGVmdDpkfX19
O2NvbW1vbnMuY29udGFpbnNUb2tlbj1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBk
PTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWFbZF0uc3BsaXQoYyk7aWYoSChlLGIp
KXJldHVybiEwfXJldHVybiExfTtjb21tb25zLnJlbW92ZUhhbmRsZXI9RTtjb21t
b25zLmludm9rZUNhbGxiYWNrPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rp
b24oYSl7YT13aW5kb3cuZXZlbnR8fGE7aWYoYS50eXBlPT1iKXJldHVybiBjKGEp
fShhKX07Y29tbW9ucy5zZXRQb3NpdGlvbklGcmFtZT1mdW5jdGlvbihhLGIsYyxk
LGUsZyxoKXtpZihhKXt2YXIgaz1oLmJvZHkuY2xpZW50V2lkdGgsZj1hLm9mZnNl
dFdpZHRoLGE9YS5vZmZzZXRIZWlnaHQ7Yi5zdHlsZS50b3A9aC5ib2R5LmNsaWVu
dEhlaWdodC1nPj1jP2crYSsicHgiOgpnLWMtYSsicHgiO2Iuc3R5bGUubGVmdD1r
LWU+PWQ/ZSsicHgiOmUtZCtmKyJweCJ9fTtjb21tb25zLnJlU2l6ZVdpZHRoPWZ1
bmN0aW9uKGEpe3JldHVybiBhLnNjcm9sbFdpZHRofTtjb21tb25zLnJlU2l6ZUhl
aWdodD1JO2NvbW1vbnMuZ2V0SUZyYW1lQ29udGVudD1DO2NvbW1vbnMuZ2V0VGV4
dENvbnRlbnQ9Qjtjb21tb25zLmdldE9mZnNldD1xO2NvbW1vbnMuY29udGFpbnM9
SDtjb21tb25zLndhbGtEb21FbGVtZW50PXo7Y29tbW9ucy5hZGRIYW5kbGVyPUQ7
Y29tbW9ucy5zdG9wQnViYmxpbmc9cDtjb21tb25zLmdldEV2ZW50VGFyZ2V0PW87
Y29tbW9ucy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPUE7Y29tbW9ucy5nZXRXaW5k
b3dXaWR0aD10O2NvbW1vbnMuZ2V0V2luZG93SGVpZ2h0PXY7Y29tbW9ucy5nZXRX
aW5kb3dTY3JvbGxUb3A9dztjb21tb25zLmdldFdpbmRvd1Njcm9sbExlZnQ9cjtj
b21tb25zLmdldEVsZW1lbnRzPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSwKZT1b
XTtiJiYoZT1iLnNwbGl0KCIsIikpO2I9W107YSYmKGI9YS5zcGxpdCgiLCIpKTtm
b3IoYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgZz1jLmdldEVsZW1lbnRCeUlkKGVb
YV0pO2chPW51bGwmJmQucHVzaChnKX1mb3IoYT0wO2E8Yi5sZW5ndGg7YSsrKXtl
PWNvbW1vbnMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShiW2FdLGMpO2ZvcihnPTA7
ZzxlLmxlbmd0aDtnKyspZVtnXSE9bnVsbCYmZC5wdXNoKGVbZ10pfXJldHVybiBk
fTtjb21tb25zLmdldEVsZW1lbnRzV2l0aEJvZHk9ZnVuY3Rpb24oYSxiLGMpe3Zh
ciBkPWNvbW1vbnMuZ2V0RWxlbWVudHMoYSxiLGMpO2QubGVuZ3RoPT0wJiYhYSYm
IWImJmQucHVzaChjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0pO3Jl
dHVybiBkfTtjb21tb25zLnNldFN0eWxlPXM7Y29tbW9ucy5nZXRSZWxhdGVkVGFy
Z2V0PWZ1bmN0aW9uKGEpe289YS5yZWxhdGVkVGFyZ2V0P2Z1bmN0aW9uKGEpe3Jl
dHVybiBhLnJlbGF0ZWRUYXJnZXR9OgpmdW5jdGlvbihhKXtyZXR1cm4gYS50b0Vs
ZW1lbnR9O3JldHVybiBvKGEpfTtjb21tb25zLnJlYWR5PWZ1bmN0aW9uKGEsYixj
KXsoYi5yZWFkeVN0YXRlPT09ImNvbXBsZXRlInx8Yi5yZWFkeVN0YXRlPT09Imlu
dGVyYWN0aXZlIiYmIWIuYXR0YWNoRXZlbnQpJiZjKCk7aWYoYi5hdHRhY2hFdmVu
dCl7Yi5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigp
e2IucmVhZHlTdGF0ZSE9PSJjb21wbGV0ZSImJmMoKX0pO3ZhciBkPSExO3RyeXtk
PWEuZnJhbWVFbGVtZW50PT1udWxsfWNhdGNoKGUpe31iLmRvY3VtZW50RWxlbWVu
dC5kb1Njcm9sbCYmZCYmRihiLGMpfWVsc2UgYi5hZGRFdmVudExpc3RlbmVyJiYh
Yi5hdHRhY2hFdmVudCYmYi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9h
ZGVkIixjLCExKX07Y29tbW9ucy5iaW5kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1
bmN0aW9uKCl7cmV0dXJuIGIuYXBwbHkoYSxhcmd1bWVudHMpfX07Y29tbW9ucy5z
ZXREb2N1bWVudFRvV29ya1dpdGg9CmZ1bmN0aW9uKCl7Zm9yKHZhciBhPWRvY3Vt
ZW50LGI9d2luZG93LGM9MTtiLmluRGFwSUY7KWE9ZXZhbChnZXRSZWN1cnNpdmVQ
YXJlbnQoImRvY3VtZW50IixjKSksYj1ldmFsKGdldFJlY3Vyc2l2ZVBhcmVudCgi
d2luZG93IixjKSksYysrO3JldHVybntpbkRvYzphLGluV2luOmJ9fTtjb21tb25z
LmdldERvY3VtZW50SGVpZ2h0PWZ1bmN0aW9uKGEpe3JldHVybiBNYXRoLm1heChN
YXRoLm1heChhLmJvZHkuc2Nyb2xsSGVpZ2h0LGEuZG9jdW1lbnRFbGVtZW50LnNj
cm9sbEhlaWdodCksTWF0aC5tYXgoYS5ib2R5Lm9mZnNldEhlaWdodCxhLmRvY3Vt
ZW50RWxlbWVudC5vZmZzZXRIZWlnaHQpLE1hdGgubWF4KGEuYm9keS5jbGllbnRI
ZWlnaHQsYS5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSl9O2NvbW1vbnMu
Z2V0Rmxhc2hWZXJzaW9uPXg7Y29tbW9ucy5jcmVhdGVFbGVtZW50PWZ1bmN0aW9u
KGEsYixjKXt2YXIgYT1hLmNyZWF0ZUVsZW1lbnQoYiksZDtmb3IoZCBpbiBjKWI9
CmQsYS5zZXRBdHRyaWJ1dGUoYixjW2JdKTtyZXR1cm4gYX07Y29tbW9ucy5hcHBl
bmRUcmFja2VkVXJscz1mdW5jdGlvbihhLGIpe2lmKGImJmIubGVuZ3RoPjApe3Zh
ciBjPWNvbW1vbnMuY3JlYXRlRWxlbWVudChhLCJkaXYiKTtjLnNldEF0dHJpYnV0
ZSgiY2xhc3MiLCJ0cmFja2VkVXJscyIpO2Zvcih2YXIgZD0iIixlPTA7ZTxiLmxl
bmd0aDtlKyspe3ZhciBnPWNvbW1vbnMuY3JlYXRlRWxlbWVudChhLCJpbWciLHt3
aWR0aDoiMXB4IixoZWlnaHQ6IjFweCIsc3JjOmJbZV19KTtkKz1nLm91dGVySFRN
TH1jLmlubmVySFRNTD1kO2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVsw
XS5hcHBlbmRDaGlsZChjKX19O2NvbW1vbnMuY3JlYXRlRmxhc2hFbGVtZW50PWZ1
bmN0aW9uKGEsYixjLGQsZSl7YT1jb21tb25zLmNyZWF0ZUVsZW1lbnQoYSwiZGl2
Iix7fSk7YS5pbm5lckhUTUw9IjxvYmplY3Qgd2lkdGg9JyIrZCsiJyBjbGFzc2lk
PSdjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAnIGhl
aWdodD0nIisKZSsiJyBib3JkZXI9JzAnIGNvZGViYXNlPSdodHRwOi8vd3d3LmFk
b2JlLmNvbS9nby9nZXRmbGFzaHBsYXllcic+PHBhcmFtIHZhbHVlPSdhbHdheXMn
IG5hbWU9J2FsbG93c2NyaXB0YWNjZXNzJz48cGFyYW0gdmFsdWU9J3RydWUnIG5h
bWU9J2FsbG93RnVsbFNjcmVlbic+PHBhcmFtIHZhbHVlPSciK2IrIicgbmFtZT0n
bW92aWUnPjxwYXJhbSB2YWx1ZT0nYXV0b2hpZ2gnIG5hbWU9J3F1YWxpdHknPjxw
YXJhbSB2YWx1ZT0ndHJ1ZScgbmFtZT0nTE9PUCc+PHBhcmFtIHZhbHVlPSd0cmFu
c3BhcmVudCcgbmFtZT0nd21vZGUnPjxwYXJhbSB2YWx1ZT0nY2xpY2tUYWc9Iitj
KyInIG5hbWU9J2ZsYXNodmFycyc+PGVtYmVkIHdpZHRoPSciK2QrIicgYWxsb3dz
Y3JpcHRhY2Nlc3M9J2Fsd2F5cycgc3JjPSciK2IrIicgcGx1Z2luc3BhZ2U9J2h0
dHA6Ly93d3cuYWRvYmUuY29tL2dvL2dldGZsYXNocGxheWVyJyBoZWlnaHQ9JyIr
ZSsiJyBsb29wPSd0cnVlJyBib3JkZXI9JzAnIHdtb2RlPSd0cmFuc3BhcmVudCcg
YWxsb3dmdWxsc2NyZWVuPSd0cnVlJyBmbGFzaHZhcnM9J2NsaWNrVGFnPSIrCmMr
IicgdHlwZT0nYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnIHF1YWxpdHk9
J2F1dG9oaWdoJz48L2VtYmVkPjwvb2JqZWN0PiI7cmV0dXJuIGF9fSkoKTtpZigh
Y29tbW9ucyl0aHJvdyBFcnJvcigiY29tbW9ucyBoYXMgbm90IGJlZW4gbG9hZGVk
Iik7dmFyIGluaW1hZ2U9e307CihmdW5jdGlvbigpe2Z1bmN0aW9uIHAoYSxiLGMp
e3JldHVybiBjPyc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIG9y
aWdpbmFsUmVmZXJlcj0iJytsb2NhdGlvbi5ob3N0bmFtZSsnIjt2YXIga3c9Iicr
Y29tbW9ucy5nZXRUZXh0Q29udGVudChiKSsnIjt2YXIgcm5kPShuZXcgU3RyaW5n
KE1hdGgucmFuZG9tKCkpKS5zdWJzdHJpbmcoMiw4KSsoKChuZXcgRGF0ZSgpKS5n
ZXRUaW1lKCkpJjI2MjE0Myk7dmFyIGNzPWRvY3VtZW50LmNoYXJzZXR8fGRvY3Vt
ZW50LmNoYXJhY3RlclNldDt2YXIgdXJsQ2xpY2s9IicrYysnIjsgdmFyIHVybEFy
cmF5ID0gdXJsQ2xpY2suc3BsaXQoIj8iKTsgdmFyIHByZWZpeCA9IHVybEFycmF5
WzBdOyB2YXIgc3VmZml4ID0gZW5jb2RlVVJJQ29tcG9uZW50KCI/IiArIHVybEFy
cmF5WzFdKTsgdmFyIHVybD0iaHR0cDovL2Fkcy51cy5lLXBsYW5uaW5nLm5ldC9l
Yi8zLycrdFthXSsnP289aiZybmQ9IitybmQrIiZjcnM9IitjcysgIiZrd190cD0n
Kwpjb21tb25zLmdldFRleHRDb250ZW50KGIpKyciO2RvY3VtZW50LndyaXRlKCI8
c2NyIiArICJpcHQgc3JjPSIrZW5jb2RlVVJJKHVybCkrIiYzcGN0PSIgKyBwcmVm
aXggKyBzdWZmaXgrIj48L3NjciIgKyAiaXB0PiIpOzxcL3NjcmlwdD4nOic8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIG9yaWdpbmFsUmVmZXJlcj0i
Jytsb2NhdGlvbi5ob3N0bmFtZSsnIjt2YXIga3c9IicrY29tbW9ucy5nZXRUZXh0
Q29udGVudChiKSsnIjt2YXIgcm5kPShuZXcgU3RyaW5nKE1hdGgucmFuZG9tKCkp
KS5zdWJzdHJpbmcoMiw4KSsoKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkpJjI2MjE0
Myk7dmFyIGNzPWRvY3VtZW50LmNoYXJzZXR8fGRvY3VtZW50LmNoYXJhY3RlclNl
dDt2YXIgdXJsPSJodHRwOi8vYWRzLnVzLmUtcGxhbm5pbmcubmV0L2ViLzMvJyt0
W2FdKyc/bz1qJnJuZD0iK3JuZCsiJmNycz0iK2NzKyAiJmt3X3RwPScrY29tbW9u
cy5nZXRUZXh0Q29udGVudChiKSsnIjtkb2N1bWVudC53cml0ZSgiPHNjciIgKyAi
aXB0IHNyYz0iK2VuY29kZVVSSSh1cmwpKyI+PC9zY3IiICsgImlwdD4iKTs8XC9z
Y3JpcHQ+J30KZnVuY3Rpb24gbyhhKXtyZXR1cm4gYS5zcmMubWF0Y2goaW5pbWFn
ZS5SRUdFWFBfVFlQRVMpIT1udWxsJiZhLm9mZnNldFdpZHRoPmluaW1hZ2UuTUlO
X1dJRFRIJiZhLm9mZnNldFdpZHRoPGluaW1hZ2UuTUFYX1dJRFRIJiZhLm9mZnNl
dEhlaWdodDxpbmltYWdlLk1BWF9IRUlHSFQmJmEub2Zmc2V0SGVpZ2h0PmluaW1h
Z2UuTUlOX0hFSUdIVH1mdW5jdGlvbiBBKGEpe2lmKCFhKWE9d2luZG93LmV2ZW50
O2Zvcih2YXIgYj1jb21tb25zLmdldEV2ZW50VGFyZ2V0KGEpLnBhcmVudE5vZGUu
cGFyZW50Tm9kZSxjPSExLGY9MDtmPGluaW1hZ2UuaW5BZHMubGVuZ3RoJiYhYztm
KyspaW5pbWFnZS5pbkFkc1tmXS5nZXRBZCgpPT1iJiYoaW5pbWFnZS5pbkFkc1tm
XS5pbnZhbGlkYXRlKCksaW5pbWFnZS5pbkFkcy5zcGxpY2UoZiwxKSxjPSEwKTti
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYik7Y29tbW9ucy5zdG9wQnViYmxpbmco
YSl9ZnVuY3Rpb24gRCgpe3ZhciBhPWluaW1hZ2UuaW5BZHMubGVuZ3RoPgowO2lm
KGEpe2ZvcihhPTA7YTxpbmltYWdlLmluQWRzLmxlbmd0aDthKyspe2Zvcih2YXIg
Yj1pbmltYWdlLmluQWRzW2FdLGM9bnVsbCxmPWIuZ2V0SW1hZ2UoKTtmOyljPWYs
Zj1jLnBhcmVudE5vZGU7aW5pbWFnZS5pbkRvYyE9YyYmKGIuYWQucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChiLmdldEFkKCkpLGIuaW52YWxpZGF0ZSgpLGluaW1hZ2Uu
aW5BZHMuc3BsaWNlKGEsMSkpfWlmKGE9aW5pbWFnZS5pbkFkcy5sZW5ndGg+MClm
b3IoYT0wO2E8aW5pbWFnZS5pbkFkcy5sZW5ndGg7YSsrKWluaW1hZ2UuaW5BZHNb
YV0ucmVhc2lnblBvc2l0aW9uKCl9fWZ1bmN0aW9uIHooKXtjb21tb25zLmFkZEhh
bmRsZXIod2luZG93LCJyZXNpemUiLGZ1bmN0aW9uKCl7aWYoY29tbW9ucy5nZXRX
aW5kb3dXaWR0aChpbmltYWdlLmluV2luLGluaW1hZ2UuaW5Eb2MpIT1pbmltYWdl
LndpbmRvd1dpZHRofHxjb21tb25zLmdldFdpbmRvd0hlaWdodChpbmltYWdlLmlu
V2luLGluaW1hZ2UuaW5Eb2MpIT0KaW5pbWFnZS53aW5kb3dIZWlnaHQpe2Zvcih2
YXIgYT0wO2E8aW5pbWFnZS5pbkFkcy5sZW5ndGg7YSsrKWluaW1hZ2UuaW5BZHNb
YV0uaW52aXNpYmxlKCk7aW5pbWFnZS50aW1lb3V0JiZjbGVhclRpbWVvdXQoaW5p
bWFnZS50aW1lb3V0KTtpbmltYWdlLnRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlv
bigpe2Zvcih2YXIgYT0wO2E8aW5pbWFnZS5pbkFkcy5sZW5ndGg7YSsrKWluaW1h
Z2UuaW5BZHNbYV0uZ2V0QWQoKS5zdHlsZS5kaXNwbGF5PT0ibm9uZSImJmluaW1h
Z2UuaW5BZHNbYV0udmlzaWJsZSgpfSwyRTMpfWluaW1hZ2Uud2luZG93V2lkdGg9
Y29tbW9ucy5nZXRXaW5kb3dXaWR0aChpbmltYWdlLmluV2luLGluaW1hZ2UuaW5E
b2MpO2luaW1hZ2Uud2luZG93SGVpZ2h0PWNvbW1vbnMuZ2V0V2luZG93SGVpZ2h0
KGluaW1hZ2UuaW5XaW4saW5pbWFnZS5pbkRvYyl9KX1mdW5jdGlvbiBIKGEsYixj
KXt0cnl7YSYmdHlwZW9mIGE9PSJzdHJpbmciJiZiPyhuZXcgRihhLGIsCmMpKS5z
ZXRBZHMoaW5pbWFnZS5jaG9zZW5JbWdzKTphJiZ0eXBlb2YgYT09Im9iamVjdCIm
JmImJihuZXcgeChuZXcgRigiREVGQVVMVCIsYikpKS5zZXRBZHMoYSxpbmltYWdl
LmNob3NlbkltZ3MpLHNldEludGVydmFsKEQsMUUzKSx6KCl9Y2F0Y2goZil7fX12
YXIgdSxxPXtUQUdfMjM0eDYwOiIwIixUQUdfNzI4eDkwOiIxMDE5NzdfMTI1MjI0
IixUQUdfNDY4eDYwOiIxMDE5NzdfMTI1MjI1In0sdD17VEFHXzIzNHg2MDoiYTUw
OC9mODAxYmY1ZmM5MDM4NDkwIixUQUdfMzAweDEwMDoiYTUwOC84NmFmMDYyZTFl
MTE4ZmEyIixUQUdfMTgweDE1MDoiYTUwOC81MGM2ZWEzM2U3MGM0ZDUxIixUQUdf
NDY4eDYwOiJhNTA4L2NlZDI3NGFkNTQ1ODdhNjgiLFRBR183Mjh4OTA6ImE1MDgv
ZTk0ZTE5MWUwOTkwMTFjMCIsVEFHXzcyMHgzMDA6ImE1MDgvYTI0YTkyZGI0ZjA3
OWMzOSJ9LHY9e1JJR0hUTUVESUE6ZnVuY3Rpb24oYSl7aWYoYSYmKGE9YS5zcGxp
dCgiVEFHXyIpLGEubGVuZ3RoPgoxKSlyZXR1cm4nPFNDUklQVCBUWVBFPSJ0ZXh0
L2phdmFzY3JpcHQiIFNSQz0iaHR0cDovL2FkLmZveG5ldHdvcmtzLmNvbS9zdD9h
ZF90eXBlPWFkJmFkX3NpemU9JythWzFdKycmc2VjdGlvbj0xNzg3NDkzIj48XC9T
Q1JJUFQ+J30sUklHSFRNRURJQUNQQzpmdW5jdGlvbihhKXtpZihhJiYoYT1hLnNw
bGl0KCJUQUdfIiksYS5sZW5ndGg+MSkpcmV0dXJuJzxTQ1JJUFQgVFlQRT0idGV4
dC9qYXZhc2NyaXB0IiBTUkM9Imh0dHA6Ly9hZC55aWVsZG1hbmFnZXIuY29tL3N0
P2FkX3R5cGU9YWQmYWRfc2l6ZT0nK2FbMV0rIiZzZWN0aW9uPSIraW5pbWFnZS5v
cHRpb25zLnJteFNlY3Rpb25JZCsnIj48XC9TQ1JJUFQ+J30sRVBMQU5OSU5HOnAs
RVBMQU5OSU5HQ1BDOnAsVExWTUVESUE6ZnVuY3Rpb24oYSl7aWYoYSl7dmFyIGI9
YS5zcGxpdCgiVEFHXyIpO2lmKGIubGVuZ3RoPjEpcmV0dXJuJzxTQ1JJUFQgVFlQ
RT0idGV4dC9qYXZhc2NyaXB0IiBTUkM9Imh0dHA6Ly90YWcudGx2bWVkaWEuY29t
L3RhZ3MuanM/aWQ9JysKcVthXSsiJmFkX3R5cGU9YmFubmVyJmFkX3NpemU9Iiti
WzFdKyciPjxcL3NjcmlwdD4nfX0sTUFSSU1FRElBOmZ1bmN0aW9uKGEpe2lmKGEm
JihhPWEuc3BsaXQoIlRBR18iKSxhLmxlbmd0aD4xKSlyZXR1cm4nPFNDUklQVCBU
WVBFPSJ0ZXh0L2phdmFzY3JpcHQiIFNSQz0iaHR0cDovL2FkLnlpZWxkbWFuYWdl
ci5jb20vc3Q/YWRfdHlwZT1hZCZhZF9zaXplPScrYVsxXSsiJnNlY3Rpb249Mjk1
OTg4MCZwdWJfdXJsPSIrbG9jYXRpb24uaG9zdG5hbWUrJyI+PFwvU0NSSVBUPid9
LERFRkFVTFQ6ZnVuY3Rpb24oYSl7aWYoYSYmKGE9YS5zcGxpdCgiVEFHXyIpLGEu
bGVuZ3RoPjEpKXJldHVybic8U0NSSVBUIFRZUEU9InRleHQvamF2YXNjcmlwdCIg
U1JDPSJodHRwOi8vYWQueWllbGRtYW5hZ2VyLmNvbS9zdD9hZF90eXBlPWFkJmFk
X3NpemU9JythWzFdKycmc2VjdGlvbj0yNzQ0NTIyIj48XC9TQ1JJUFQ+J319LHc9
W10scj17aWxsZWdhbEFyZ3VtZW50Ont9LG51bGxQb2ludGVyQXJndW1lbnQ6e319
LApCPWZ1bmN0aW9uKGEpe3RoaXMudXJsPWEubGluazt0aGlzLnRpdGxlPWEudGl0
bGU7dGhpcy5tZXNzYWdlPWEuZGVzYzt0aGlzLmRpdj1pbmltYWdlLmluRG9jLmNy
ZWF0ZUVsZW1lbnQoImRpdiIpO2NvbW1vbnMuc2V0U3R5bGUodGhpcy5kaXYsImJh
Y2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7YmFja2dyb3Vu
ZC1jbGlwOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjog
dHJhbnNwYXJlbnQgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOiBub25lICFp
bXBvcnRhbnQ7YmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94ICFpbXBvcnRh
bnQ7YmFja2dyb3VuZC1wb3NpdGlvbjogMCUgMCUgIWltcG9ydGFudDtiYWNrZ3Jv
dW5kLXJlcGVhdDogcmVwZWF0ICFpbXBvcnRhbnQ7Y29sb3I6IHdoaXRlICFpbXBv
cnRhbnQ7Y3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7ZGlzcGxheTogYmxvY2sg
IWltcG9ydGFudDtmb250LWZhbWlseTogQXJpYWwsIHZlcmRhbmEsIHNhbnMtc2Vy
aWYgIWltcG9ydGFudDtmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtoZWlnaHQ6
IGF1dG8gIWltcG9ydGFudDtsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7bWFyZ2luLWJv
dHRvbTogMHB4ICFpbXBvcnRhbnQ7bWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0YW50
O21hcmdpbi1yaWdodDogMjRweCAhaW1wb3J0YW50O21hcmdpbi10b3A6IDBweCAh
aW1wb3J0YW50O292ZXJmbG93LXg6IHZpc2libGUgIWltcG9ydGFudDtvdmVyZmxv
dy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206IDBweCAhaW1w
b3J0YW50O3BhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdo
dDogMHB4ICFpbXBvcnRhbnQ7cGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O3Bv
c2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDt0ZXh0LWFsaWduOiBsZWZ0ICFpbXBv
cnRhbnQ7dG9wOiBhdXRvICFpbXBvcnRhbnQ7ei1pbmRleDogYXV0byAhaW1wb3J0
YW50O3dpZHRoOiA5NSUgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzogMCAwIDAgdHJh
bnNwYXJlbnQgIWltcG9ydGFudDsgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9y
dGFudDsgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDsgZm9udC1zdHJl
dGNoOiBub3JtYWwgIWltcG9ydGFudDsiLAoiaW5pbWFnZSIsaW5pbWFnZS5pbldp
bik7dGhpcy5kaXYuaW5uZXJIVE1MPSc8YSBzdHlsZT0iYmFja2dyb3VuZC1hdHRh
Y2htZW50OiBzY3JvbGwgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jbGlwOiBib3Jk
ZXItYm94ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50
ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsg
YmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmctYm94ICFpbXBvcnRhbnQ7IGJhY2tn
cm91bmQtcG9zaXRpb246IDAlIDAlICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVw
ZWF0OiByZXBlYXQgIWltcG9ydGFudDsgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7
IGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50OyBkaXNwbGF5OiBpbmxpbmUgIWlt
cG9ydGFudDsgZm9udC1mYW1pbHk6IEFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNlcmlm
ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OyBoZWlnaHQ6
IGF1dG8gIWltcG9ydGFudDsgbGVmdDogYXV0byAhaW1wb3J0YW50OyBtYXJnaW4t
Ym90dG9tOiAwcHggIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6IDBweCAhaW1wb3J0
YW50OyBtYXJnaW4tcmlnaHQ6IDBweCAhaW1wb3J0YW50OyBtYXJnaW4tdG9wOiAw
cHggIWltcG9ydGFudDsgb3ZlcmZsb3cteDogdmlzaWJsZSAhaW1wb3J0YW50OyBv
dmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiAw
cHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFudDsgcGFk
ZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOiAwcHggIWlt
cG9ydGFudDsgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50OyB0ZXh0LWFsaWdu
OiBsZWZ0ICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0
YW50OyB0b3A6IGF1dG8gIWltcG9ydGFudDsgd2lkdGg6IGF1dG8gIWltcG9ydGFu
dDsgei1pbmRleDogYXV0byAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzogMCAwIDAg
dHJhbnNwYXJlbnQgIWltcG9ydGFudDsgIHRleHQtdHJhbnNmb3JtOiBub25lICFp
bXBvcnRhbnQ7ICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50OyAgZm9u
dC1zdHJldGNoOiBub3JtYWwgIWltcG9ydGFudDsiIGhyZWY9IicrCnRoaXMudXJs
KyciIHRhcmdldD0iX2JsYW5rIj4nO3RoaXMudGl0bGUmJih0aGlzLmRpdi5pbm5l
ckhUTUwrPSc8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3Jv
bGwgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94ICFpbXBv
cnRhbnQ7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7
IGJhY2tncm91bmQtaW1hZ2U6IG5vbmUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1v
cmlnaW46IHBhZGRpbmctYm94ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcG9zaXRp
b246IDAlIDAlICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQg
IWltcG9ydGFudDsgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7IGN1cnNvcjogcG9p
bnRlciAhaW1wb3J0YW50OyBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyBmb250
LWZhbWlseTogQXJpYWwsIHZlcmRhbmEsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsg
Zm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OiBib2xkICFp
bXBvcnRhbnQ7IGhlaWdodDogYXV0byAhaW1wb3J0YW50OyBsZWZ0OiBhdXRvICFp
bXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1i
b3R0b206IDBweCAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRh
bnQ7IG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6IDBw
eCAhaW1wb3J0YW50OyBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7IG92
ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDsgcGFkZGluZy1ib3R0b206IDBw
eCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50OyBwYWRk
aW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDsgcGFkZGluZy10b3A6IDBweCAhaW1w
b3J0YW50OyBwb3NpdGlvbjogc3RhdGljICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246
IGxlZnQgIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWlt
cG9ydGFudDsgdG9wOiBhdXRvICFpbXBvcnRhbnQ7IHdpZHRoOiBhdXRvICFpbXBv
cnRhbnQ7IHotaW5kZXg6IGF1dG8gIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IDAg
MCAwIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7ICB0ZXh0LXRyYW5zZm9ybTogbm9u
ZSAhaW1wb3J0YW50OyAgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDsg
IGZvbnQtc3RyZXRjaDogbm9ybWFsICFpbXBvcnRhbnQ7Ij4nKwp0aGlzLnRpdGxl
KyI8L3NwYW4+Iik7dGhpcy5tZXNzYWdlJiYodGhpcy5kaXYuaW5uZXJIVE1MKz0n
PHNwYW4gc3R5bGU9ImJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBv
cnRhbnQ7IGJhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveCAhaW1wb3J0YW50OyBi
YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBiYWNrZ3Jv
dW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtb3JpZ2luOiBw
YWRkaW5nLWJveCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAw
JSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0ICFpbXBvcnRh
bnQ7IGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50OyBjdXJzb3I6IHBvaW50ZXIgIWlt
cG9ydGFudDsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgZm9udC1mYW1pbHk6
IEFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7IGZvbnQtc2l6
ZTogMTNweCAhaW1wb3J0YW50OyBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgbGVm
dDogYXV0byAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogMThweCAhaW1wb3J0YW50
OyBtYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6IDBw
eCAhaW1wb3J0YW50OyBtYXJnaW4tcmlnaHQ6IDBweCAhaW1wb3J0YW50OyBtYXJn
aW4tdG9wOiAwcHggIWltcG9ydGFudDsgb3ZlcmZsb3cteDogdmlzaWJsZSAhaW1w
b3J0YW50OyBvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7IHBhZGRpbmct
Ym90dG9tOiAwcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OiAwcHggIWltcG9y
dGFudDsgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9w
OiAwcHggIWltcG9ydGFudDsgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50OyB0
ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjogbm9u
ZSAhaW1wb3J0YW50OyB0b3A6IGF1dG8gIWltcG9ydGFudDsgd2lkdGg6IGF1dG8g
IWltcG9ydGFudDsgei1pbmRleDogYXV0byAhaW1wb3J0YW50OyB0ZXh0LXNoYWRv
dzogMCAwIDAgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgIHRleHQtdHJhbnNmb3Jt
OiBub25lICFpbXBvcnRhbnQ7ICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0
YW50OyAgZm9udC1zdHJldGNoOiBub3JtYWwgIWltcG9ydGFudDsiPicrCnRoaXMu
bWVzc2FnZSsiPC9zcGFuPiIpO3RoaXMuZGl2LmlubmVySFRNTCs9IjwvYT4ifTtC
LnByb3RvdHlwZS5jbGlja2FibGVDb250ZW50PWZ1bmN0aW9uKGEpe3JldHVybiBh
LmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdfTt2YXIg
Qz1mdW5jdGlvbihhKXt0aGlzLndpZHRoPWEud2lkdGgrInB4Ijt0aGlzLmhlaWdo
dD1hLmhlaWdodCsicHgiO3RoaXMudXJsPWEubGluazt0aGlzLnNyYz1hLnNyYzt0
aGlzLmRpdj1jb21tb25zLmNyZWF0ZUZsYXNoRWxlbWVudChpbmltYWdlLmluRG9j
LHRoaXMuc3JjLGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLnVybCksdGhpcy53aWR0
aCx0aGlzLmhlaWdodCl9O0MucHJvdG90eXBlLmNsaWNrYWJsZUNvbnRlbnQ9ZnVu
Y3Rpb24oYSl7cmV0dXJuIGEuY2hpbGROb2Rlc1swXS5jaGlsZE5vZGVzWzFdLmNo
aWxkTm9kZXNbMF19O3ZhciBJPWZ1bmN0aW9uKGEpe3RoaXMud2lkdGg9YS53aWR0
aCsicHgiO3RoaXMuaGVpZ2h0PQphLmhlaWdodCsicHgiO3RoaXMudXJsPWEubGlu
azt0aGlzLnNyYz1hLnNyYzt2YXIgYT1jb21tb25zLmNyZWF0ZUVsZW1lbnQoaW5p
bWFnZS5pbkRvYywiYSIse2hyZWY6dGhpcy51cmwsdGFyZ2V0OiJfYmxhbmsifSks
Yj1jb21tb25zLmNyZWF0ZUVsZW1lbnQoaW5pbWFnZS5pbkRvYywiaW1nIix7d2lk
dGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHQsc3JjOnRoaXMuc3JjfSk7
YS5pbm5lckhUTUw9Yi5vdXRlckhUTUw7dGhpcy5kaXY9YX07SS5wcm90b3R5cGUu
Y2xpY2thYmxlQ29udGVudD1mdW5jdGlvbihhKXtyZXR1cm4gYS5jaGlsZE5vZGVz
WzBdLmNoaWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXX07dmFyIEU9ZnVuY3Rpb24o
YSl7dGhpcy53aWR0aD1hLndpZHRoKyJweCI7dGhpcy5oZWlnaHQ9YS5oZWlnaHQr
InB4Ijt0aGlzLnVybD1hLmxpbms7dGhpcy5zcmM9YS5zcmM7dGhpcy5kaXY9aW5p
bWFnZS5pbkRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTtjb21tb25zLnNldFN0eWxl
KHRoaXMuZGl2LAoiYmFja2dyb3VuZC1hdHRhY2htZW50OiBzY3JvbGwgIWltcG9y
dGFudDtiYWNrZ3JvdW5kLWNsaXA6IGJvcmRlci1ib3ggIWltcG9ydGFudDtiYWNr
Z3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O2JhY2tncm91bmQt
aW1hZ2U6IG5vbmUgIWltcG9ydGFudDtiYWNrZ3JvdW5kLW9yaWdpbjogcGFkZGlu
Zy1ib3ggIWltcG9ydGFudDtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJSAhaW1w
b3J0YW50O2JhY2tncm91bmQtcmVwZWF0OiByZXBlYXQgIWltcG9ydGFudDtjb2xv
cjogd2hpdGUgIWltcG9ydGFudDtjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtk
aXNwbGF5OiBibG9jayAhaW1wb3J0YW50O2ZvbnQtZmFtaWx5OiBBcmlhbCwgdmVy
ZGFuYSwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O2ZvbnQtc2l6ZTogMTNweCAhaW1w
b3J0YW50O2hlaWdodDogYXV0byAhaW1wb3J0YW50O2xlZnQ6IGF1dG8gIWltcG9y
dGFudDttYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDttYXJnaW4tbGVmdDog
MHB4ICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7bWFy
Z2luLXRvcDogMHB4ICFpbXBvcnRhbnQ7b3ZlcmZsb3cteDogdmlzaWJsZSAhaW1w
b3J0YW50O292ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDtwYWRkaW5nLWJv
dHRvbTogMHB4ICFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OiAwcHggIWltcG9ydGFu
dDtwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtwYWRkaW5nLXRvcDogMHB4
ICFpbXBvcnRhbnQ7cG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O3RleHQtYWxp
Z246IGxlZnQgIWltcG9ydGFudDt0b3A6IGF1dG8gIWltcG9ydGFudDt6LWluZGV4
OiBhdXRvICFpbXBvcnRhbnQ7d2lkdGg6IDk1JSAhaW1wb3J0YW50O3RleHQtc2hh
ZG93OiAwIDAgMCB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB0ZXh0LXRyYW5zZm9y
bTogbm9uZSAhaW1wb3J0YW50OyBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0
YW50OyBmb250LXN0cmV0Y2g6IG5vcm1hbCAhaW1wb3J0YW50OyIsCiJpbmltYWdl
IixpbmltYWdlLmluV2luKTt2YXIgYT1jb21tb25zLmNyZWF0ZUVsZW1lbnQoaW5p
bWFnZS5pbkRvYywiaWZyYW1lIix7d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhp
cy5oZWlnaHR9KSxiPXRoaXMuc3JjLnJlcGxhY2UoLycvZywnIicpO2NvbW1vbnMu
YWRkSGFuZGxlcihhLCJsb2FkIixmdW5jdGlvbihhKXthPWNvbW1vbnMuZ2V0RXZl
bnRUYXJnZXQoYSk7aWZyYW1lRG9jPWNvbW1vbnMuZ2V0SUZyYW1lQ29udGVudChh
KTtpZnJhbWVEb2Mub3BlbigpO2lmcmFtZURvYy53cml0ZShiKTtpZnJhbWVEb2Mu
Y2xvc2UoKX0pO3RoaXMuZGl2PWE7YS5zdHlsZS5kaXNwbGF5PSJibG9jayI7YS5z
dHlsZS5iYWNrZ3JvdW5kPSJ0cmFuc3BhcmVudCI7YS5zdHlsZS5vdmVyZmxvdz0i
aGlkZGVuIjthLmZyYW1lQm9yZGVyPTA7YS5hbGxvd1RyYW5zcGFyZW5jeT0hMH07
RS5wcm90b3R5cGUuY2xpY2thYmxlQ29udGVudD1mdW5jdGlvbihhKXtyZXR1cm4g
YS5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMV19Owp2YXIgcz1mdW5jdGlvbihh
LGIsYyl7dGhpcy5wcnVuZT1hO3RoaXMucHJlZGljYXRlPWI7dGhpcy5vcHRpb25z
PWM7dGhpcy5pbWFnZXM9W119O3MucHJvdG90eXBlLnZpc2l0PWZ1bmN0aW9uKGEp
e3JldHVybiBjb21tb25zLmNvbnRhaW5zKHRoaXMucHJ1bmUsYS5ub2RlTmFtZSk/
ITE6dGhpcy5pbWFnZXMubGVuZ3RoPj10aGlzLm9wdGlvbnMuY2FudElNRz8hMTph
Lm5vZGVOYW1lPT0iSU1HIiYmdGhpcy5wcmVkaWNhdGUoYSk/KGNvbW1vbnMuY29u
dGFpbnModGhpcy5pbWFnZXMsYSl8fHRoaXMuaW1hZ2VzLnB1c2goYSksITApOmEu
bm9kZU5hbWUhPSJJTUciPyEwOiExfTt2YXIgRj1mdW5jdGlvbihiLGMsZCl7dGhp
cy5zaXplTWFuYWdlcj1uZXcgYTtpZihiJiZ2W2JdKXRoaXMuc2l6ZU1hbmFnZXIu
cmVjb25maWd1cmUoKTtlbHNlIGlmKGImJiF2W2JdJiZ2LkRFRkFVTFQpdGhpcy5z
aXplTWFuYWdlci5yZWNvbmZpZ3VyZSgpO2Vsc2UgdGhyb3cgci5pbGxlZ2FsQXJn
dW1lbnQ7CnRoaXMuZXZlbnRBdHRhY2hlcj1uZXcgZTt0aGlzLmtleXdvcmQ9Yzt0
aGlzLnVybENsaWNrPWQ7dGhpcy50eXBlPWJ9O0YucHJvdG90eXBlLnNldEFkcz1m
dW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPGEubGVuZ3RoO2IrKyl7dmFyIGU9YVti
XSxmPXRoaXMuc2l6ZU1hbmFnZXIuZ2V0Q29uZmlndXJhdGlvbihlKTtmJiYoZT1u
ZXcgZChuZXcgYyhmLGUsdGhpcy5rZXl3b3JkLHRoaXMudXJsQ2xpY2ssdGhpcy50
eXBlKSksdy5wdXNoKGUpLGluaW1hZ2UuaW5Eb2MuYm9keS5hcHBlbmRDaGlsZChl
LmdldEFkKCkpLHRoaXMuZXZlbnRBdHRhY2hlci5hZGRDbG9zZUFkKGUuZ2V0QWQo
KS5jaGlsZE5vZGVzWzBdLmNoaWxkTm9kZXNbMF0pLHRoaXMuZXZlbnRBdHRhY2hl
ci5hZGRTdG9wQnViYmxpbmcoZS5nZXRBZCgpLmNoaWxkTm9kZXNbMF0uY2hpbGRO
b2Rlc1syXSkpfX07dmFyIHg9ZnVuY3Rpb24oYSl7dGhpcy5kZWZhdWx0QWRzUHJv
Y2Vzc29yPWE7dGhpcy5ldmVudEF0dGFjaGVyPQpuZXcgZX07eC5wcm90b3R5cGUu
c2V0QWRzPWZ1bmN0aW9uKGEsYyl7aWYoYSlpZih0aGlzLmFyZUFkcyhhKSlmb3Io
dmFyIGU9MCxmPTA7ZjxjLmxlbmd0aDtmKyspe2U+PWEubGVuZ3RoJiYoZT0wKTt2
YXIgaj1uZXcgZChuZXcgYig3MCxjW2ZdLHRoaXMuZ2V0QWQoYVtlXSkpKTt3LnB1
c2goaik7aW5pbWFnZS5pbkRvYy5ib2R5LmFwcGVuZENoaWxkKGouZ2V0QWQoKSk7
Y29tbW9ucy5hcHBlbmRUcmFja2VkVXJscyhpbmltYWdlLmluRG9jLGFbZV0udHJh
Y2spO3RoaXMuZXZlbnRBdHRhY2hlci5hZGRDbGlja0JveChqKTt0aGlzLmV2ZW50
QXR0YWNoZXIuYWRkQ2xvc2VBZChqLmNsb3NhYmxlQm94KCkpO3RoaXMuZXZlbnRB
dHRhY2hlci5hZGRTdG9wQnViYmxpbmcoai5jbGlja2FibGVDb250ZW50KCkpO3Ro
aXMuZXZlbnRBdHRhY2hlci5hZGRTdG9wQnViYmxpbmcoai5jbGlja2FibGVGb290
ZXIoKSk7ZSsrfWVsc2UgdGhpcy5kZWZhdWx0QWRzUHJvY2Vzc29yLnNldEFkcyhj
KX07CngucHJvdG90eXBlLmdldEFkPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7c3dp
dGNoKGEudHlwZSl7Y2FzZSAiRiI6Yj1uZXcgQyhhKTticmVhaztjYXNlICJIIjpi
PW5ldyBFKGEpO2JyZWFrO2Nhc2UgIkkiOmI9bmV3IEkoYSk7YnJlYWs7Y2FzZSAi
VCI6Yj1uZXcgQihhKTticmVhaztkZWZhdWx0OmI9bmV3IEIoYSl9cmV0dXJuIGJ9
O3gucHJvdG90eXBlLmFyZUFkcz1mdW5jdGlvbihhKXtyZXR1cm4gYT9hLmxlbmd0
aD4wOiExfTt2YXIgYT1mdW5jdGlvbigpe3RoaXMuc2l6ZV90YWdzPVt7d2lkdGhy
YW5nZToiMjUwLTQ3OSIsaGVpZ2h0cmFuZ2U6IjIwMC04MDAiLGNvbmZpZzoiVEFH
XzIzNHg2MCIsaGVpZ2h0OiI5NSJ9LHt3aWR0aHJhbmdlOiI0ODAtNzQ5IixoZWln
aHRyYW5nZToiMjAwLTgwMCIsY29uZmlnOiJUQUdfNDY4eDYwIixoZWlnaHQ6Ijk1
In0se3dpZHRocmFuZ2U6Ijc1MC04MDAiLGhlaWdodHJhbmdlOiIyMDAtMzk5Iixj
b25maWc6IlRBR180Njh4NjAiLGhlaWdodDoiOTUifSwKe3dpZHRocmFuZ2U6Ijc1
MC04MDAiLGhlaWdodHJhbmdlOiI0MDAtODAwIixjb25maWc6IlRBR183Mjh4OTAi
LGhlaWdodDoiMTM1In1dO3RoaXMucmVjb25maWd1cmUoKX07YS5wcm90b3R5cGUu
Z2V0Q29uZmlndXJhdGlvbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MDtiPHRoaXMu
bWFwLmxlbmd0aDtiKyspe2lmKGEud2lkdGg8dGhpcy5tYXBbYl0ubWluV3x8YS53
aWR0aDw9dGhpcy5tYXBbYl0ubWF4VyYmYS5oZWlnaHQ8dGhpcy5tYXBbYl0ubWlu
SClicmVhaztpZihhLndpZHRoPD10aGlzLm1hcFtiXS5tYXhXJiZhLmhlaWdodDw9
dGhpcy5tYXBbYl0ubWF4SClyZXR1cm57aGVpZ2h0OnRoaXMubWFwW2JdLmhlaWdo
dCxjb25maWc6dGhpcy5tYXBbYl0uY29uZmlnLHR5cGU6dGhpcy50eXBlfX1yZXR1
cm4gbnVsbH07YS5wcm90b3R5cGUudmFsaWRhdGVXaWR0aD1mdW5jdGlvbihhLGIs
Yyl7aWYodGhpcy5tYXAubGVuZ3RoPT0wJiZhIT0yNTApcmV0dXJuITE7ZWxzZSBp
Zih0aGlzLm1hcC5sZW5ndGg+CjAmJmEhPXRoaXMubWFwW2MtMV0ubWF4VysxJiYh
KGE9PXRoaXMubWFwW2MtMV0ubWluVyYmYj09dGhpcy5tYXBbYy0xXS5tYXhXKSly
ZXR1cm4hMTtpZihjPT10aGlzLnNpemVfdGFncy5sZW5ndGgmJmIhPTgwMClyZXR1
cm4hMTtyZXR1cm4hMH07YS5wcm90b3R5cGUudmFsaWRhdGVIZWlnaHQ9ZnVuY3Rp
b24oYSxiLGMsZixkKXtpZih0aGlzLm1hcC5sZW5ndGg9PTAmJmMhPTIwMClyZXR1
cm4hMTtlbHNlIGlmKHRoaXMubWFwLmxlbmd0aD4wKWlmKCEoYT09dGhpcy5tYXBb
ZC0xXS5taW5XJiZiPT10aGlzLm1hcFtkLTFdLm1heFcpJiZjIT0yMDApcmV0dXJu
ITE7ZWxzZSBpZighKGE9PXRoaXMubWFwW2QtMV0ubWluVyYmYj09dGhpcy5tYXBb
ZC0xXS5tYXhXKSYmdGhpcy5tYXBbZC0xXS5tYXhIIT04MDApcmV0dXJuITE7ZWxz
ZSBpZihhPT10aGlzLm1hcFtkLTFdLm1pblcmJmI9PXRoaXMubWFwW2QtMV0ubWF4
VyYmYyE9dGhpcy5tYXBbZC0xXS5tYXhIKzEpcmV0dXJuITE7aWYoZD09CnRoaXMu
c2l6ZV90YWdzLmxlbmd0aCYmZiE9ODAwKXJldHVybiExO3JldHVybiEwfTthLnBy
b3RvdHlwZS5yZWNvbmZpZ3VyZT1mdW5jdGlvbigpe3RoaXMubWFwPVtdO2Zvcih2
YXIgYT0wO2E8dGhpcy5zaXplX3RhZ3MubGVuZ3RoO2ErKyl7dmFyIGI9dGhpcy5z
aXplX3RhZ3NbYV07dGhpcy52YWxpZGF0ZUV4aXN0U2l6ZVRhZyhiKTt2YXIgYz1i
LndpZHRocmFuZ2Uuc3BsaXQoIi0iKSxmPWIuaGVpZ2h0cmFuZ2Uuc3BsaXQoIi0i
KTt0aGlzLnZhbGlkYXRlU2l6ZVRhZ0FycmF5c0NvbXBsZXRlKGMsZik7dGhpcy52
YWxpZGF0ZUFyZURpZ2l0cyhjLGYpO3ZhciBkPXBhcnNlSW50KGNbMF0pLGM9cGFy
c2VJbnQoY1sxXSksZT1wYXJzZUludChmWzBdKSxmPXBhcnNlSW50KGZbMV0pO3Ro
aXMudmFsaWRhdGVSYW5nZXMoZCxjLGUsZixhKTt0aGlzLm1hcC5wdXNoKHttaW5X
OmQsbWF4VzpjLG1pbkg6ZSxtYXhIOmYsaGVpZ2h0OmIuaGVpZ2h0LGNvbmZpZzpi
LmNvbmZpZ30pfX07YS5wcm90b3R5cGUudmFsaWRhdGVFeGlzdFNpemVUYWc9CmZ1
bmN0aW9uKGEpe2lmKCFhLndpZHRocmFuZ2V8fCFhLmhlaWdodHJhbmdlKXRocm93
IHIuaWxsZWdhbEFyZ3VtZW50O307YS5wcm90b3R5cGUudmFsaWRhdGVTaXplVGFn
QXJyYXlzQ29tcGxldGU9ZnVuY3Rpb24oYSxiKXtpZihhLmxlbmd0aCE9Mnx8Yi5s
ZW5ndGghPTIpdGhyb3cgci5pbGxlZ2FsQXJndW1lbnQ7fTthLnByb3RvdHlwZS52
YWxpZGF0ZUFyZURpZ2l0cz1mdW5jdGlvbihhLGIpe3ZhciBjPS9cRC9nO2lmKGMu
ZXhlYyhhWzBdKSE9bnVsbHx8Yy5leGVjKGFbMV0pIT1udWxsfHxjLmV4ZWMoYlsw
XSkhPW51bGx8fGMuZXhlYyhiWzFdKSl0aHJvdyByLmlsbGVnYWxBcmd1bWVudDt9
O2EucHJvdG90eXBlLnZhbGlkYXRlUmFuZ2VzPWZ1bmN0aW9uKGEsYixjLGYsZCl7
aWYoIXRoaXMudmFsaWRhdGVXaWR0aChhLGIsZCl8fCF0aGlzLnZhbGlkYXRlSGVp
Z2h0KGEsYixjLGYsZCkpdGhyb3cgci5pbGxlZ2FsQXJndW1lbnQ7fTthLnByb3Rv
dHlwZS5nZXRNYXBCeVNpemU9ZnVuY3Rpb24oYSl7dmFyIGI9CntUQUdfMjM0eDYw
OntpZDoiMSIsaW1hZ2VzOltdfSxUQUdfNDY4eDYwOntpZDoiMiIsaW1hZ2VzOltd
fSxUQUdfNzI4eDkwOntpZDoiMyIsaW1hZ2VzOltdfX07Zm9yKGk9MDtpPGEubGVu
Z3RoO2krKyl7dmFyIGM9YVtpXSxmPXRoaXMuZ2V0Q29uZmlndXJhdGlvbihjKTtm
JiZiW2YuY29uZmlnXS5pbWFnZXMucHVzaChjKX1yZXR1cm4gYn07dmFyIGI9ZnVu
Y3Rpb24oYSxiLGMpe3RoaXMud2lkdGg9Yi53aWR0aC04O3RoaXMuaGVpZ2h0PWE7
dGhpcy5pbWFnZT1iO3RoaXMuYWQ9Y307Yi5wcm90b3R5cGUuZ2V0Q29udGVudD1m
dW5jdGlvbigpe3JldHVybiB0aGlzLmFkLmRpdn07Yi5wcm90b3R5cGUuZ2V0VXJs
PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWQudXJsfTtiLnByb3RvdHlwZS5jbGlj
a2FibGVDb250ZW50PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkLmNsaWNrYWJs
ZUNvbnRlbnQoYSl9O3ZhciBjPWZ1bmN0aW9uKGEsYixjLGYsZCl7dGhpcy53aWR0
aD1iLndpZHRoLQo4O3RoaXMuaGVpZ2h0PWEuaGVpZ2h0O3RoaXMuaW1hZ2U9Yjt0
aGlzLmtleXdvcmQ9Yzt0aGlzLnVybENsaWNrPWY7dGhpcy5jb25maWd1cmF0aW9u
PWE7dGhpcy50eXBlPWR9O2MucHJvdG90eXBlLmdldENvbnRlbnQ9ZnVuY3Rpb24o
KXt2YXIgYT1pbmltYWdlLmluRG9jLmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpO2Eu
c3R5bGUuZGlzcGxheT0iYmxvY2siO2Euc3R5bGUuYmFja2dyb3VuZD0idHJhbnNw
YXJlbnQiO2Euc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7YS5mcmFtZUJvcmRlcj0w
O2EuYWxsb3dUcmFuc3BhcmVuY3k9ITA7YS53aWR0aD10aGlzLndpZHRoKyJweCI7
YS5oZWlnaHQ9dGhpcy5oZWlnaHQtMzUrInB4IjthLnNyYz0iamF2YXNjcmlwdDoo
ZnVuY3Rpb24oKXtyZXR1cm4gJzxodG1sPjxtZXRhIGh0dHAtZXF1aXY9XFwnQ29u
dGVudC1UeXBlXFwnIGNvbnRlbnQ9XFwndGV4dC9odG1sXFwnIGNoYXJzZXQ9XFwn
VVRGLThcXCc+PC9tZXRhPjxoZWFkPjxzdHlsZT4gaHRtbCB7IG92ZXJmbG93Omhp
ZGRlbjsgfSBib2R5IHsgbWFyZ2luOiAwIGF1dG87dGV4dC1hbGlnbjogY2VudGVy
O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGZsb2F0OmxlZnQ7IHBhZGRp
bmc6MDsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6IisKKHRoaXMuaGVpZ2h0LTM1
KSsicHg7d2lkdGg6Iit0aGlzLndpZHRoKyJweDt9IC5jb250ZW5pZG97bWFyZ2lu
OjB9PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBjbGFzcz1cXCdjb250ZW5pZG9c
XCcgaWQ9XFwnYmFubmVyXFwnPiIrdlt0aGlzLnR5cGVdKHRoaXMuY29uZmlndXJh
dGlvbi5jb25maWcsdGhpcy5rZXl3b3JkLHRoaXMudXJsQ2xpY2spKyI8L2Rpdj48
L2JvZHk+PC9odG1sPid9KSgpIjtjb21tb25zLmFkZEhhbmRsZXIoYSwibG9hZCIs
Y29tbW9ucy5iaW5kKHRoaXMsdGhpcy5sb2FkKSk7cmV0dXJuIGF9O2MucHJvdG90
eXBlLmxvYWQ9ZnVuY3Rpb24oYSl7dmFyIGE9Y29tbW9ucy5nZXRJRnJhbWVDb250
ZW50KGNvbW1vbnMuZ2V0RXZlbnRUYXJnZXQoYSkpLGI9YS5nZXRFbGVtZW50QnlJ
ZCgiYmFubmVyIiksYz0hMTtpZighYyYmYilmb3IodmFyIGY9MDtmPGIuY2hpbGRy
ZW4ubGVuZ3RoO2YrKyliLmNoaWxkcmVuW2ZdLm5vZGVOYW1lIT0iU0NSSVBUIiYm
KGM9ITApOwpjfHxhLndyaXRlKCc8aHRtbD48bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbCIgY2hhcnNldD0iVVRGLTgiPjwv
bWV0YT48c3R5bGU+IGh0bWwgeyBvdmVyZmxvdzpoaWRkZW47IH0gYm9keSB7IG1h
cmdpbjogMCBhdXRvO3RleHQtYWxpZ246IGNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9y
OnRyYW5zcGFyZW50OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IG92ZXJmbG93Omhp
ZGRlbjsgaGVpZ2h0OicrKHRoaXMuaGVpZ2h0LTM1KSsicHg7d2lkdGg6Iit0aGlz
LndpZHRoKydweDt9IC5jb250ZW5pZG97bWFyZ2luOjB9PC9zdHlsZT48L2hlYWQ+
PGJvZHk+PGRpdiBjbGFzcz0iY29udGVuaWRvIiBpZD0iYmFubmVyIj4nK3YuREVG
QVVMVCh0aGlzLmNvbmZpZ3VyYXRpb24uY29uZmlnLHRoaXMua2V5d29yZCx0aGlz
LnVybENsaWNrKSsiPC9kaXY+PC9ib2R5PjwvaHRtbD4iKX07dmFyIGQ9ZnVuY3Rp
b24oYSl7dGhpcy5hZEZyYW1lQ29udGFpbmVyPWE7CnRoaXMuY3JlYXRlQmFubmVy
KCl9O2QucHJvdG90eXBlLmNyZWF0ZUhlYWRlckJhbm5lcj1mdW5jdGlvbigpe3Zh
ciBhPWluaW1hZ2UuaW5Eb2MuY3JlYXRlRWxlbWVudCgiZGl2Iik7Y29tbW9ucy5z
ZXRTdHlsZShhLCJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IHNjcm9sbCAhaW1wb3J0
YW50O2JhY2tncm91bmQtY2xpcDogYm9yZGVyLWJveCAhaW1wb3J0YW50O2JhY2tn
cm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7d2lkdGg6IDE0cHgg
IWltcG9ydGFudDtoZWlnaHQ6IDE0cHggIWltcG9ydGFudDtiYWNrZ3JvdW5kLWlt
YWdlOiB1cmwoaHR0cDovL2NmLmFkcy5rb250ZXh0dWEuY29tL3N0YXRpYy9pbWdz
L2luaW1hZ2UtY2xvc2UucG5nKSAhaW1wb3J0YW50O2JhY2tncm91bmQtb3JpZ2lu
OiBwYWRkaW5nLWJveCAhaW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246IDAl
IDAlICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCAhaW1w
b3J0YW50O2NvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O2N1cnNvcjogcG9pbnRlciAh
aW1wb3J0YW50O2Rpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7ZmxvYXQ6IHJpZ2h0
ICFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6IEFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNl
cmlmICFpbXBvcnRhbnQ7Zm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7bGVmdDog
YXV0byAhaW1wb3J0YW50O21hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O21h
cmdpbi1sZWZ0OiAwcHggIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6IDBweCAhaW1w
b3J0YW50O21hcmdpbi10b3A6IDNweCAhaW1wb3J0YW50O292ZXJmbG93LXg6IHZp
c2libGUgIWltcG9ydGFudDtvdmVyZmxvdy15OiB2aXNpYmxlICFpbXBvcnRhbnQ7
cGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDogMHB4
ICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7cGFkZGlu
Zy10b3A6IDBweCAhaW1wb3J0YW50O3Bvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFu
dDt0ZXh0LWluZGVudDogLTk5OTlweCAhaW1wb3J0YW50O3RvcDogYXV0byAhaW1w
b3J0YW50O3otaW5kZXg6IGF1dG8gIWltcG9ydGFudDt0ZXh0LXNoYWRvdzogMCAw
IDAgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgdGV4dC10cmFuc2Zvcm06IG5vbmUg
IWltcG9ydGFudDsgZm9udC12YXJpYW50OiBub3JtYWwgIWltcG9ydGFudDsgZm9u
dC1zdHJldGNoOiBub3JtYWwgIWltcG9ydGFudDsiKTsKYS5pbm5lckhUTUw9Ingi
O3JldHVybiBhfTtkLnByb3RvdHlwZS5jcmVhdGVGb290ZXJCYW5uZXI9ZnVuY3Rp
b24oKXt2YXIgYT1pbmltYWdlLmluRG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Eu
aW5uZXJIVE1MPSc8YSBocmVmPSJodHRwOi8vd3d3LmFkc2luaW1hZ2VzLmNvbSIg
dGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJsaW5lLWhlaWdodDogMThweCAhaW1wb3J0
YW50O2JhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7IGJh
Y2tncm91bmQtY2xpcDogYm9yZGVyLWJveCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5k
LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWltYWdl
OiBub25lICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJv
eCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSAwJSAhaW1wb3J0
YW50OyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0ICFpbXBvcnRhbnQ7IGJvdHRv
bTogLTJweCAhaW1wb3J0YW50OyBjb2xvcjogIzlFRiAhaW1wb3J0YW50OyBjdXJz
b3I6IHBvaW50ZXIgIWltcG9ydGFudDsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFu
dDsgZm9udC1mYW1pbHk6IEFyaWFsLCB2ZXJkYW5hLCBzYW5zLXNlcmlmICFpbXBv
cnRhbnQ7IGZvbnQtc2l6ZTogMTBweCAhaW1wb3J0YW50OyBsZWZ0OiBhdXRvICFp
bXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50OyBtYXJnaW4t
bGVmdDogMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDogMHB4ICFpbXBvcnRh
bnQ7IG1hcmdpbi10b3A6IDBweCAhaW1wb3J0YW50OyBvdmVyZmxvdy14OiB2aXNp
YmxlICFpbXBvcnRhbnQ7IG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDsg
cGFkZGluZy1ib3R0b206IDBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6IDBw
eCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDsgcGFk
ZGluZy10b3A6IDBweCAhaW1wb3J0YW50OyBwb3NpdGlvbjogYWJzb2x1dGUgIWlt
cG9ydGFudDsgcmlnaHQ6IDRweCAhaW1wb3J0YW50OyB0ZXh0LWRlY29yYXRpb246
IG5vbmUgIWltcG9ydGFudDsgdG9wOiBhdXRvICFpbXBvcnRhbnQ7IHotaW5kZXg6
IGF1dG8gIWltcG9ydGFudDsgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgaGVpZ2h0
OiBhdXRvICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiAwIDAgMCB0cmFuc3BhcmVu
dCAhaW1wb3J0YW50OyAgdGV4dC10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsg
IGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7ICBmb250LXN0cmV0Y2g6
IG5vcm1hbCAhaW1wb3J0YW50OyI+YWRzaW5pbWFnZXMuY29tPC9hPic7CnJldHVy
biBhfTtkLnByb3RvdHlwZS5jcmVhdGVDb250YWluZXJCYW5uZXI9ZnVuY3Rpb24o
KXt2YXIgYT1pbmltYWdlLmluRG9jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGI9ImJh
Y2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsICFpbXBvcnRhbnQ7YmFja2dyb3Vu
ZC1jbGlwOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjog
dHJhbnNwYXJlbnQgIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0
cDovL2NmLmFkcy5rb250ZXh0dWEuY29tL3N0YXRpYy9pbWdzL2luaW1hZ2UtYmcu
cG5nKSAhaW1wb3J0YW50O2JhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nLWJveCAh
aW1wb3J0YW50O2JhY2tncm91bmQtcG9zaXRpb246IDAlIDAlICFpbXBvcnRhbnQ7
YmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14ICFpbXBvcnRhbnQ7Y29sb3I6IHdo
aXRlICFpbXBvcnRhbnQ7Y3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7ZGlzcGxh
eTogYmxvY2sgIWltcG9ydGFudDtmb250LWZhbWlseTogQXJpYWwsIHZlcmRhbmEs
IHNhbnMtc2VyaWYgIWltcG9ydGFudDtmb250LXNpemU6IDEzcHggIWltcG9ydGFu
dDttYXJnaW4tYm90dG9tOiAwcHggIWltcG9ydGFudDttYXJnaW4tbGVmdDogMHB4
ICFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OiAwcHggIWltcG9ydGFudDttYXJnaW4t
dG9wOiAwcHggIWltcG9ydGFudDtvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFu
dDtvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTog
MnB4ICFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OiA0cHggIWltcG9ydGFudDtwYWRk
aW5nLXJpZ2h0OiA0cHggIWltcG9ydGFudDtwYWRkaW5nLXRvcDogMnB4ICFpbXBv
cnRhbnQ7cG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7ei1pbmRleDogMTAw
MDAgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzogMCAwIDAgdHJhbnNwYXJlbnQgIWlt
cG9ydGFudDt0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O2ZvbnQtdmFy
aWFudDogbm9ybWFsICFpbXBvcnRhbnQ7Zm9udC1zdHJldGNoOiBub3JtYWwgIWlt
cG9ydGFudDsiKwp0aGlzLmdldFBvc2l0aW9uQWQoKSsiO2hlaWdodDoiK3RoaXMu
YWRGcmFtZUNvbnRhaW5lci5oZWlnaHQrInB4O3dpZHRoOiIrdGhpcy5hZEZyYW1l
Q29udGFpbmVyLndpZHRoKyJweDsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRh
bnQ7Ijtjb21tb25zLnNldFN0eWxlKGEsYiwiaW5pbWFnZSIsaW5pbWFnZS5pbldp
bik7cmV0dXJuIGF9O2QucHJvdG90eXBlLmdldE9mZnNldEFkPWZ1bmN0aW9uKCl7
dmFyIGE9Y29tbW9ucy5nZXRPZmZzZXQodGhpcy5hZEZyYW1lQ29udGFpbmVyLmlt
YWdlLGluaW1hZ2UuaW5Eb2MpO3JldHVybntsOmEubGVmdCsicHgiLHQ6YS50b3Ar
dGhpcy5hZEZyYW1lQ29udGFpbmVyLmltYWdlLmhlaWdodC10aGlzLmFkRnJhbWVD
b250YWluZXIuaGVpZ2h0LTQrInB4In19O2QucHJvdG90eXBlLmdldFBvc2l0aW9u
QWQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmdldE9mZnNldEFkKCk7cmV0dXJuImxl
ZnQ6IithLmwrIjt0b3A6IithLnQrIjsifTtkLnByb3RvdHlwZS5nZXRJbWFnZT0K
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZEZyYW1lQ29udGFpbmVyLmltYWdlfTtk
LnByb3RvdHlwZS5nZXRBZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRpdn07ZC5w
cm90b3R5cGUuaW52YWxpZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRGcmFtZUNvbnRh
aW5lcj10aGlzLmRpdj10aGlzLmFkRnJhbWVDb250YWluZXIuaW1hZ2U9bnVsbH07
ZC5wcm90b3R5cGUucmVhc2lnblBvc2l0aW9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhp
cy5nZXRPZmZzZXRBZCgpO3RoaXMuZGl2LmZpcnN0Q2hpbGQuc3R5bGUubGVmdD1h
Lmw7dGhpcy5kaXYuZmlyc3RDaGlsZC5zdHlsZS50b3A9YS50fTtkLnByb3RvdHlw
ZS5pbnZpc2libGU9ZnVuY3Rpb24oKXt0aGlzLmRpdi5zdHlsZS5kaXNwbGF5PSJu
b25lIn07ZC5wcm90b3R5cGUudmlzaWJsZT1mdW5jdGlvbigpe3RoaXMuZGl2LnN0
eWxlLmRpc3BsYXk9ImJsb2NrIn07ZC5wcm90b3R5cGUuY3JlYXRlQmFubmVyPWZ1
bmN0aW9uKCl7dGhpcy5kaXY9aW5pbWFnZS5pbkRvYy5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKdmFyIGE9dGhpcy5jcmVhdGVDb250YWluZXJCYW5uZXIoKTthLmFwcGVu
ZENoaWxkKHRoaXMuY3JlYXRlSGVhZGVyQmFubmVyKCkpO2EuYXBwZW5kQ2hpbGQo
dGhpcy5hZEZyYW1lQ29udGFpbmVyLmdldENvbnRlbnQoKSk7YS5hcHBlbmRDaGls
ZCh0aGlzLmNyZWF0ZUZvb3RlckJhbm5lcigpKTt0aGlzLmRpdi5hcHBlbmRDaGls
ZChhKX07ZC5wcm90b3R5cGUuY2xpY2thYmxlQm94PWZ1bmN0aW9uKCl7cmV0dXJu
IHRoaXMuZ2V0QWQoKS5jaGlsZE5vZGVzWzBdfTtkLnByb3RvdHlwZS5jbG9zYWJs
ZUJveD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEFkKCkuY2hpbGROb2Rlc1sw
XS5jaGlsZE5vZGVzWzBdfTtkLnByb3RvdHlwZS5jbGlja2FibGVDb250ZW50PWZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRGcmFtZUNvbnRhaW5lci5jbGlja2FibGVD
b250ZW50KHRoaXMuZ2V0QWQoKSl9O2QucHJvdG90eXBlLmNsaWNrYWJsZUZvb3Rl
cj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEFkKCkuY2hpbGROb2Rlc1swXS5j
aGlsZE5vZGVzWzJdfTsKZC5wcm90b3R5cGUuY2xpY2tCb3g9ZnVuY3Rpb24oYSl7
aWYoIWEpYT13aW5kb3cuZXZlbnQ7d2luZG93Lm9wZW4odGhpcy5hZEZyYW1lQ29u
dGFpbmVyLmdldFVybCgpKTtjb21tb25zLnN0b3BCdWJibGluZyhhKX07dmFyIGU9
ZnVuY3Rpb24oKXt9O2UucHJvdG90eXBlLmFkZENsaWNrQm94PWZ1bmN0aW9uKGEp
e2NvbW1vbnMuYWRkSGFuZGxlcihhLmNsaWNrYWJsZUJveCgpLCJjbGljayIsY29t
bW9ucy5iaW5kKGEsYS5jbGlja0JveCkpfTtlLnByb3RvdHlwZS5hZGRDbG9zZUFk
PWZ1bmN0aW9uKGEpe2NvbW1vbnMuYWRkSGFuZGxlcihhLCJjbGljayIsQSl9O2Uu
cHJvdG90eXBlLmFkZFN0b3BCdWJibGluZz1mdW5jdGlvbihhKXtjb21tb25zLmFk
ZEhhbmRsZXIoYSwiY2xpY2siLGNvbW1vbnMuc3RvcEJ1YmJsaW5nKX07aW5pbWFn
ZS5wcm9jZXNzSW1hZ2VzPWZ1bmN0aW9uKCl7dmFyIGE9Y29tbW9ucy5zZXREb2N1
bWVudFRvV29ya1dpdGgoKTtpbmltYWdlLmluRG9jPWEuaW5Eb2M7CmluaW1hZ2Uu
aW5XaW49YS5pbldpbjtjb21tb25zLnJlYWR5KGluaW1hZ2UuaW5XaW4saW5pbWFn
ZS5pbkRvYyxjb21tb25zLmJpbmQodGhpcyxmdW5jdGlvbigpe2luaW1hZ2Uud2lu
ZG93V2lkdGg9Y29tbW9ucy5nZXRXaW5kb3dXaWR0aChpbmltYWdlLmluV2luLGlu
aW1hZ2UuaW5Eb2MpO2luaW1hZ2Uud2luZG93SGVpZ2h0PWNvbW1vbnMuZ2V0V2lu
ZG93SGVpZ2h0KGluaW1hZ2UuaW5XaW4saW5pbWFnZS5pbkRvYyk7dmFyIGE9Y29t
bW9ucy5nZXRFbGVtZW50c1dpdGhCb2R5KGluaW1hZ2Uub3B0aW9ucy5mcm9tQ2xh
c3MsaW5pbWFnZS5vcHRpb25zLmZyb21JZCxpbmltYWdlLmluRG9jKTtpbmltYWdl
LmNob3NlbkltZ3M9dGhpcy5oaWdobGlnaHRJbWdzT24oYSxpbmltYWdlLm9wdGlv
bnMpO3ZhciBhPXRoaXMuc2l6ZU1hbmFnZXIuZ2V0TWFwQnlTaXplKGluaW1hZ2Uu
Y2hvc2VuSW1ncyksYjtmb3IoYiBpbiBhKXt2YXIgYz1hW2JdO2MuaW1hZ2VzLmxl
bmd0aD4wJiZ0aGlzLmdldEFkcyhjKX19KSl9OwppbmltYWdlLnByb2Nlc3NBZHM9
SDtpbmltYWdlLm9wdGlvbnM9e2NhbnRJTUc6MzAsZnJvbUlkOiIiLGZyb21DbGFz
czoiIixoYXNoOiIiLHNlY3Rpb246IiIsZG9tYWluOiIiLHJteElkOiIifTtpbmlt
YWdlLmNob3NlbkltZ3M9W107aW5pbWFnZS5pbkFkcz13O2luaW1hZ2UuUFJVTkU9
WyJTQ1JJUFQiXTtpbmltYWdlLlJFR0VYUF9UWVBFUz1SZWdFeHAoIi5qcGd8LnBu
Z3wuanBlZyIsImlnIik7aW5pbWFnZS5NSU5fV0lEVEg9MjUwO2luaW1hZ2UuTUlO
X0hFSUdIVD0yMDA7aW5pbWFnZS5NQVhfV0lEVEg9ODAwO2luaW1hZ2UuTUFYX0hF
SUdIVD04MDA7aW5pbWFnZS5jbG9zZUFkPUE7aW5pbWFnZS50aW1lb3V0PW51bGw7
aW5pbWFnZS53aW5kb3dXaWR0aD1udWxsO2luaW1hZ2Uud2luZG93SGVpZ2h0PW51
bGw7aW5pbWFnZS5jbGlja0JveD1mdW5jdGlvbihhKXtpZighYSlhPXdpbmRvdy5l
dmVudDt3aW5kb3cub3Blbihjb21tb25zLmdldEV2ZW50VGFyZ2V0KGEpLmZpcnN0
Q2hpbGQubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYi
KSk7CmNvbW1vbnMuc3RvcEJ1YmJsaW5nKGEpfTtpbmltYWdlLmluRG9jPW51bGw7
aW5pbWFnZS5pbldpbj1udWxsO2luaW1hZ2UuaGlnaGxpZ2h0SW1nc09uPWZ1bmN0
aW9uKGEsYil7Zm9yKHZhciBjPWEubGVuZ3RoLGY9bmV3IHMoaW5pbWFnZS5QUlVO
RSxvLGIpLGQ9MDtkPGM7ZCsrKWNvbW1vbnMud2Fsa0RvbUVsZW1lbnQoYVtkXSxm
KTtyZXR1cm4gZi5pbWFnZXN9O2luaW1hZ2UuVGFnQWRzUHJvY2Vzc29yPUY7aW5p
bWFnZS5UZXh0QWRzUHJvY2Vzc29yPXg7aW5pbWFnZS5zaXplTWFuYWdlcj1uZXcg
YTtpbmltYWdlLkhPU1RfU0VSVkVSX0lNQUdFUz0iYWRzZXJ2ZXIua29udGV4dHVh
LmNvbS9hZFNlcnZlIjtpbmltYWdlLmdldEFkcz1mdW5jdGlvbihhKXt2YXIgYj0i
bUNhbGxiYWNrQWRTZXJ2ZXIiK2EuaWQ7aW5pbWFnZS5pbldpbltiXT1mdW5jdGlv
bihhLGMsZil7SChhLGMsZik7d2luZG93W2JdPXZvaWQgMH07dmFyIGM9IiI7aW5p
bWFnZS5vcHRpb25zLnNlY3Rpb24mJihjPQoiJnM9IitpbmltYWdlLm9wdGlvbnMu
c2VjdGlvbik7dmFyIGY9IiI7aW5pbWFnZS5vcHRpb25zLmRvbWFpbiYmKGY9IiZk
PSIraW5pbWFnZS5vcHRpb25zLmRvbWFpbik7dmFyIGQ9aW5pbWFnZS5pbkRvYy5j
cmVhdGVFbGVtZW50KCJzY3JpcHQiKTtkLnNyYz0iaHR0cDovLyIraW5pbWFnZS5I
T1NUX1NFUlZFUl9JTUFHRVMrIj9hZGNvdW50PSIrYS5pbWFnZXMubGVuZ3RoKyIm
dD0iK2luaW1hZ2Uub3B0aW9ucy5oYXNoKyImYz0iK2luaW1hZ2Uub3B0aW9ucy5j
YXRlZ29yeStjKyImdHlwZT1uJmZ2PSIrY29tbW9ucy5nZXRGbGFzaFZlcnNpb24o
KSsiJmlzPSIrYS5pZCsiJmNhbGxiYWNrPSIrYitmO2luaW1hZ2UuaW5Eb2MuYm9k
eS5hcHBlbmRDaGlsZChkKX19KSgpOwo=
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=13338.js
Content-Type: application/x-javascript; charset=utf-8; name=13338.js
Content-Location: http://cf.ads.kontextua.com/container/tags/13338.js
Content-Transfer-Encoding: Base64
ZG9jdW1lbnQud3JpdGUoJzxzY3InICsgJ2lwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iaHR0cDovL2NmLmFkcy5rb250ZXh0dWEuY29tL3N0YXRpYy9qcy9t
aW4taW5pbWFnZS5qcyI+PC9zY3InICsgJ2lwdD4nKTtkb2N1bWVudC53cml0ZSgn
PHNjcicgKyAnaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+ZnVuY3Rpb24gaW50
ZXh0dWFsX2luaW1hZ2VfcHJvY2VzcygpIHtpZih3aW5kb3dbImluaW1hZ2UiXSkg
e2NsZWFySW50ZXJ2YWwoaW50ZXh0dWFsX2luaW1hZ2VfaW50ZXJ2YWwpO2luaW1h
Z2Uub3B0aW9ucyA9IHtkb21haW46IDg2NSxzZWN0aW9uOiAxMzMzOCxoYXNoOiAi
RUE5OUg1LW1PMEpGbW1mVkZjN2FoOHdlM1VrPSIsY2FudElNRzogMSxmcm9tQ2xh
c3M6ICIiLGZyb21JZDogIiIsY2F0ZWdvcnk6ICI3Niw4Myw3MSw3NSwxMTIsNjcs
ODAsODYsNjIsNzksNzQsNjUsNjksODIsODQsNzMsNzgsNzIsODEsNzcsODUiLHJt
eFNlY3Rpb25JZDogMzA1OTQ2M307aW5pbWFnZS5wcm9jZXNzSW1hZ2VzKCk7fX12
YXIgaW50ZXh0dWFsX2luaW1hZ2VfaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChpbnRl
eHR1YWxfaW5pbWFnZV9wcm9jZXNzLCAxMDApOyBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCkge2NsZWFySW50ZXJ2YWwoaW50ZXh0dWFsX2luaW1hZ2VfaW50ZXJ2YWwpO30s
IDE1MDAwKTs8L3NjcicgKyAnaXB0PicpO2RvY3VtZW50LndyaXRlKCc8c2NyJyAr
ICdpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9jZi5hZHMu
a29udGV4dHVhLmNvbS9zdGF0aWMvanMvbWluLWludGV4dHVhbHYyLmpzIj48L3Nj
cicgKyAnaXB0PicpO2RvY3VtZW50LndyaXRlKCc8c2NyJyArICdpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij5mdW5jdGlvbiBpbnRleHR1YWxfcHJvY2VzcygpIHsg
aWYod2luZG93WyJpbnRleHR1YWwiXSkgeyBjbGVhckludGVydmFsKGludGV4dHVh
bF9pbnRlcnZhbCk7d2luZG93WyJpbnRleHR1YWwiXS5vcHRpb25zID0ge3Byb2R1
Y3Q6ICJJTlRFWFQiLGRvbWFpbjogODY1LHNlY3Rpb246IDEzMzM4LGhhc2g6ICJF
QTk5SDUtbU8wSkZtbWZWRmM3YWg4d2UzVWs9IixsYW5ndWFnZTogIkVTIixjYW50
S1c6IDMsbWF4S3dzUlQ6IDgsZnJvbUNsYXNzOiAiIixmcm9tSWQ6ICIiLGV4Q2xh
c3M6ICJjdXN0b21BZCxieUdvb2dsZSIsZXhJZDogIiIsbG9nbzogImh0dHA6Ly93
d3cuaW50ZXh0dWFsLm5ldC9sb2dvcy9sb2dvdGFyaW5nYS5wbmciLGNvbG9yU3R5
bGU6ICIwMDAwRkYiLHVuZGVybGluZVN0eWxlOiAibm9ybWFsIixuYW1lUlQ6IG51
bGwscm14U2VjdGlvbklkOiAzMDU5NDY0LHJteFNlY3Rpb25JZFJUOiBudWxsfTt2
YXIgc2NyaXB0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlw
dCIpO3NjcmlwdEVsZW1lbnQudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO3Njcmlw
dEVsZW1lbnQuc3JjID0gImh0dHA6Ly9jZi5hZHMua29udGV4dHVhLmNvbS90YWdz
L3YyL2ludGV4dHVhbC8xMzMzOC5qcyI7dmFyIHNjcmlwdHM9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTt2YXIgdGhpc19zY3JpcHQgPSBu
dWxsOyBmb3IodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKyl7aWYo
c2NyaXB0c1tpXS5zcmMgPT0gImh0dHA6Ly9jZi5hZHMua29udGV4dHVhLmNvbS9z
dGF0aWMvanMvbWluLWludGV4dHVhbHYyLmpzIikge3RoaXNfc2NyaXB0ID0gc2Ny
aXB0c1tpICsgMV07fX10aGlzX3NjcmlwdC5wYXJlbnROb2RlLmluc2VydEJlZm9y
ZShzY3JpcHRFbGVtZW50LCB0aGlzX3NjcmlwdCk7fX12YXIgaW50ZXh0dWFsX2lu
dGVydmFsID0gc2V0SW50ZXJ2YWwoaW50ZXh0dWFsX3Byb2Nlc3MsIDEwMCk7c2V0
VGltZW91dChmdW5jdGlvbigpIHtjbGVhckludGVydmFsKGludGV4dHVhbF9pbnRl
cnZhbCk7fSwgMTUwMDApOzwvc2NyJyArICdpcHQ+Jyk7
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=plusone.js
Content-Type: application/javascript; charset=utf-8; name=plusone.js
Content-Location: https://apis.google.com/js/plusone.js
Content-Transfer-Encoding: Base64
dmFyIGdhcGk9d2luZG93LmdhcGk9d2luZG93LmdhcGl8fHt9O2dhcGkuX2JzPW5l
dyBEYXRlKCkuZ2V0VGltZSgpOyhmdW5jdGlvbigpe3ZhciBlPXZvaWQgMCxmPXdp
bmRvdyxpPSJwdXNoIixqPSJyZXBsYWNlIixrPSJsZW5ndGgiO3ZhciBsPWYscD1k
b2N1bWVudCxxPWwubG9jYXRpb24sdT1mdW5jdGlvbigpe30sdj0vXFtuYXRpdmUg
Y29kZVxdLyx3PWZ1bmN0aW9uKGEsYixkKXtyZXR1cm4gYVtiXT1hW2JdfHxkfSx4
PWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8dGhpc1trXTtiKyspaWYodGhpc1ti
XT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9LHk9ZnVuY3Rpb24oKXt2YXIgYTtpZigo
YT1PYmplY3QuY3JlYXRlKSYmdi50ZXN0KGEpKWE9YShudWxsKTtlbHNle2E9e307
Zm9yKHZhciBiIGluIGEpYVtiXT1lfXJldHVybiBhfSx6PXcobCwiZ2FwaSIse30p
O3ZhciBBO0E9dyhsLCJfX19qc2wiLHkoKSk7dyhBLCJJIiwwKTt3KEEsImhlbCIs
MTApO3ZhciBCPWZ1bmN0aW9uKCl7dmFyIGE9cS5ocmVmLGI7aWYoQS5kcG8pYj1B
Lmg7ZWxzZXtiPUEuaDt2YXIgZD1SZWdFeHAoIihbI10uKiZ8WyNdKWpzaD0oW14m
I10qKSIsImciKSxnPVJlZ0V4cCgiKFs/I10uKiZ8Wz8jXSlqc2g9KFteJiNdKiki
LCJnIik7aWYoYT1hJiYoZC5leGVjKGEpfHxnLmV4ZWMoYSkpKXRyeXtiPWRlY29k
ZVVSSUNvbXBvbmVudChhWzJdKX1jYXRjaChjKXt9fXJldHVybiBifSxDPWZ1bmN0
aW9uKGEpe3JldHVybiB3KHcoQSwiSCIseSgpKSxhLHkoKSl9O3ZhciBJPXcoQSwi
cGVyZiIseSgpKSxKPXcoSSwiZyIseSgpKTt3KEksImkiLHkoKSk7dmFyIEs9dyhJ
LCJyIixbXSk7eSgpO3koKTt2YXIgTD1mdW5jdGlvbihhLGIpe0pbYV09Ynx8KG5l
dyBEYXRlKS5nZXRUaW1lKCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBLP0soYSxlLGUp
OktbaV0oW2EsZSxlXSl9O3ZhciBNPXkoKSxOPVtdLFI7Uj17YToiY2FsbGJhY2si
LGY6InN5bmMiLGI6ImNvbmZpZyIsYzoiX2MiLGQ6ImgiLGk6InBsYXRmb3JtIixn
OiJqc2wiLFRJTUVPVVQ6InRpbWVvdXQiLGU6Im9udGltZW91dCJ9O05baV0oW1Iu
ZyxmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gYSlpZihPYmplY3QucHJvdG90eXBl
Lmhhc093blByb3BlcnR5LmNhbGwoYSxiKSl7dmFyIGQ9YVtiXTsib2JqZWN0Ij09
dHlwZW9mIGQ/QVtiXT13KEEsYixbXSkuY29uY2F0KGQpOncoQSxiLGQpfWlmKGE9
YS51KWI9dyhBLCJ1cyIsW10pLGJbaV0oYSksKGQ9L15odHRwczooLiopJC8uZXhl
YyhhKSkmJmJbaV0oImh0dHA6IitkWzFdKSx3KEEsInUiLGEpfV0pO3ZhciBUPWRl
Y29kZVVSSSgiJTczY3JpcHQiKTtNLm09ZnVuY3Rpb24oYSl7dmFyIGI9QS5tc3x8
Imh0dHBzOi8vYXBpcy5nb29nbGUuY29tIixhPWFbMF0sZDtpZighKGQ9IWEpKWQ9
MDw9YS5pbmRleE9mKCIuLiIpO2lmKGQpdGhyb3ciQmFkIGhpbnQiO3JldHVybiBi
KyIvIithW2pdKC9eXC8vLCIiKX07CnZhciBVPWZ1bmN0aW9uKGEpe3JldHVybiBh
LmpvaW4oIiwiKVtqXSgvXC4vZywiXyIpW2pdKC8tL2csIl8iKX0sVj1mdW5jdGlv
bihhLGIpe2Zvcih2YXIgZD1bXSxnPTA7ZzxhW2tdOysrZyl7dmFyIGM9YVtnXTtj
JiYwPnguY2FsbChiLGMpJiZkW2ldKGMpfXJldHVybiBkfSxXPS9bQCInPD4jXD8m
JV0vLFg9L15odHRwcz86XC9cL1teXC9cPyNdK1wuZ29vZ2xlXC5jb20oOlxkKyk/
XC9bXlw/I10rJC8sYWE9L1wvY2I9L2csWT1mdW5jdGlvbihhKXt2YXIgYj1wLmNy
ZWF0ZUVsZW1lbnQoVCk7Yi5zZXRBdHRyaWJ1dGUoInNyYyIsYSk7Yi5hc3luYz0i
dHJ1ZSI7YT1wLmdldEVsZW1lbnRzQnlUYWdOYW1lKFQpWzBdO2EucGFyZW50Tm9k
ZS5pbnNlcnRCZWZvcmUoYixhKX0sJD1mdW5jdGlvbihhLGIpe3ZhciBkPWJ8fHt9
OyJmdW5jdGlvbiI9PXR5cGVvZiBiJiYoZD17fSxkW1IuYV09Yik7dmFyIGc9ZCxj
PWcmJmdbUi5jXTtpZihjKWZvcih2YXIgaD0wO2g8TltrXTtoKyspe3ZhciBtPQpO
W2hdWzBdLHI9TltoXVsxXTtyJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3Bl
cnR5LmNhbGwoYyxtKSYmcihjW21dLGEsZyl9aWYoIShnPWRbUi5kXSkpaWYoZz1C
KCksIWcpdGhyb3ciQmFkIGhpbnQiO3ZhciBzPWcsTz1kW1IuYV0sRD1kW1IuYl0s
Yz1kW1IuVElNRU9VVF0sRT1kW1IuZV0sUD1udWxsLFE9ITE7aWYoYyYmIUV8fCFj
JiZFKXRocm93IlRpbWVvdXQgcmVxdWlyZXMgYm90aCB0aGUgdGltZW91dCBwYXJh
bWV0ZXIgYW5kIG9udGltZW91dCBwYXJhbWV0ZXIgdG8gYmUgc2V0Ijt2YXIgZz13
KEMocyksInIiLFtdKS5zb3J0KCksRj13KEMocyksIkwiLFtdKS5zb3J0KCksUz1m
dW5jdGlvbihhKXtpZihRKXJldHVybiAwO2wuY2xlYXJUaW1lb3V0KFApO0ZbaV0u
YXBwbHkoRix0KTt2YXIgYj0oKHp8fHt9KS5jb25maWd8fHt9KS51cGRhdGU7Yj9i
KEQpOkQmJncoQSwiY3UiLFtdKVtpXShEKTthJiZaKGZ1bmN0aW9uKCl7dmFyIGI7
Yj1zPT09QigpP3coeiwiXyIseSgpKToKeSgpO2I9dyhDKHMpLCJfIixiKTthKGIp
fSk7TyYmTygpO3JldHVybiAxfTswPGMmJihQPWwuc2V0VGltZW91dChmdW5jdGlv
bigpe1E9dHJ1ZTtFKCl9LGMpKTtpZihhKXtjPWEuc3BsaXQoIjoiKS5zb3J0KCk7
aD1bXTttPWU7Zm9yKHI9MDtyPGNba107cisrKXt2YXIgRz1jW3JdO0chPW0mJmhb
aV0oRyk7bT1HfWM9aH1lbHNlIGM9W107dmFyIHQ9VihjLEYpO2lmKCF0W2tdKXJl
dHVybiBTKCk7dmFyIHQ9VihjLGcpLG49dyhBLCJDUCIsW10pLG89bltrXTtuW29d
PWZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiAwO3ZhciBiPWZ1bmN0aW9uKCl7bltv
XT1udWxsO3JldHVybiBTKGEpfTtpZihvPjAmJm5bby0xXSluW29dPWI7ZWxzZSBm
b3IoYigpO2I9blsrK29dOylpZighYigpKWJyZWFrfTtpZighdFtrXSlyZXR1cm4g
bltvXSh1KTt2YXIgSD0ibG9hZGVkXyIrQS5JKys7eltIXT1mdW5jdGlvbihhKXtu
W29dKGEpO3pbSF09bnVsbH07Yz1zLnNwbGl0KCI7Iik7Yz0oaD1NW2Muc2hpZnQo
KV0pJiYKaChjKTtpZighYyl0aHJvdyJCYWQgaGludDoiK3M7aD1jPWNbal0oIl9f
ZmVhdHVyZXNfXyIsVSh0KSlbal0oL1wvJC8sIiIpKyhnW2tdPyIvZWQ9MS9leG09
IitVKGcpOiIiKSsoIi9jYj1nYXBpLiIrSCk7bT1oLm1hdGNoKGFhKTtpZighbXx8
ISgxPT09bVtrXSYmWC50ZXN0KGgpJiYhVy50ZXN0KGgpKSl0aHJvdyJCYWQgVVJM
ICIrYztnW2ldLmFwcGx5KGcsdCk7ZFtSLmZdfHxsLl9fX2dhcGlzeW5jPyhkPWMs
ImxvYWRpbmciIT1wLnJlYWR5U3RhdGU/WShkKTpwLndyaXRlKCI8IitUKycgc3Jj
PSInK2VuY29kZVVSSShkKSsnIj48LycrVCsiPiIpKTpZKGMpfTt2YXIgWj1mdW5j
dGlvbihhKXtpZihBLmhlZSYmMDxBLmhlbCl0cnl7cmV0dXJuIGEoKX1jYXRjaChi
KXtBLmhlbC0tLCQoImRlYnVnX2Vycm9yIixmdW5jdGlvbigpe2YuX19fanNsLmhl
Zm4oYil9KX1lbHNlIHJldHVybiBhKCl9O3oubG9hZD1mdW5jdGlvbihhLGIpe3Jl
dHVybiBaKGZ1bmN0aW9uKCl7cmV0dXJuICQoYSxiKX0pfTtMKCJiczAiLGYuZ2Fw
aS5fYnMpO0woImJzMSIpO2RlbGV0ZSBmLmdhcGkuX2JzO30pKCk7CmdhcGkubG9h
ZCgicGx1c29uZS11bnN1cHBvcnRlZCIse2NhbGxiYWNrOndpbmRvd1siZ2FwaV9v
bmxvYWQiXSxfYzp7ImpzbCI6eyJ1IjoiaHR0cHM6Ly9hcGlzLmdvb2dsZS5jb20v
anMvcGx1c29uZS5qcyIsImRwbyI6ZmFsc2UsImhlZSI6ZmFsc2UsImNpIjp7InNl
cnZpY2VzIjp7fSwiaW5saW5lIjp7ImNzcyI6Mn0sImxleHBzIjpbMzQsNjksNzEs
NjUsMzYsNzYsNzcsNDAsMTUsNDUsMTcsNTEsNjEsNjAsMzBdLCJvYXV0aC1mbG93
Ijp7fSwicmVwb3J0Ijp7fSwiaWZyYW1lcyI6eyJhZGRpdG5vdyI6eyJ1cmwiOiJo
dHRwczovL2FwaXMuZ29vZ2xlLmNvbS9hZGRpdG5vdy9hZGRpdG5vdy5odG1sP2Jz
dj1wciJ9LCJwbHVzIjp7Im1ldGhvZHMiOlsib25hdXRoIl0sInVybCI6Ijpzb2Np
YWxob3N0Oi91LzpzZXNzaW9uX2luZGV4Oi9fL3BhZ2VzL2JhZGdlP2Jzdj1wciJ9
LCI6c29jaWFsaG9zdDoiOiJodHRwczovL3BsdXNvbmUuZ29vZ2xlLmNvbSIsInBs
dXNfY2lyY2xlIjp7InBhcmFtcyI6eyJ1cmwiOiIifSwidXJsIjoiOnNvY2lhbGhv
c3Q6LzpzZXNzaW9uX3ByZWZpeDpfL3dpZGdldC9wbHVzL2NpcmNsZT9ic3Y9cHIi
fSwiZXZ3aWRnZXQiOnsicGFyYW1zIjp7InVybCI6IiJ9LCJ1cmwiOiI6c29jaWFs
aG9zdDovOnNlc3Npb25fcHJlZml4Ol8vZXZlbnRzL3dpZGdldD9ic3Y9cHIifSwi
OnNpZ251cGhvc3Q6IjoiaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20iLCJwbHVzb25l
Ijp7InByZWxvYWRVcmwiOlsiaHR0cHM6Ly9zc2wuZ3N0YXRpYy5jb20vczIvb3ov
aW1hZ2VzL3N0YXJzL3BvL1B1Ymxpc2hlci9zcHJpdGU0LWE2N2Y3NDE4NDNmZmM0
MjIwNTU0YzM0YmQwMWJiMGJiLnBuZyJdLCJwYXJhbXMiOnsiY291bnQiOiIiLCJ1
cmwiOiIiLCJzaXplIjoiIn0sInVybCI6Ijpzb2NpYWxob3N0Oi86c2Vzc2lvbl9w
cmVmaXg6Xy8rMS9mYXN0YnV0dG9uP2Jzdj1wciJ9LCJwbHVzX3NoYXJlIjp7InBh
cmFtcyI6eyJ1cmwiOiIifSwidXJsIjoiOnNvY2lhbGhvc3Q6LzpzZXNzaW9uX3By
ZWZpeDpfLysxL3NoYXJlYnV0dG9uP3BsdXNTaGFyZT10cnVlJmJzdj1wciJ9fSwi
aXNQbHVzVXNlciI6ZmFsc2UsImRlYnVnIjp7Imhvc3QiOiJodHRwczovL3BsdXNv
bmUuZ29vZ2xlLmNvbSIsInJlcG9ydEV4Y2VwdGlvblJhdGUiOjAsInJldGhyb3dF
eGNlcHRpb24iOmZhbHNlfSwiY3NpIjp7InJhdGUiOjB9LCJnb29nbGVhcGlzLmNv
bmZpZyI6eyJtb2JpbGVzaWdudXB1cmwiOiJodHRwczovL20uZ29vZ2xlLmNvbS9h
cHAvcGx1cy9vb2I/In19LCJoIjoibTsvXy9hcHBzLXN0YXRpYy9fL2pzL2dhcGkv
X19mZWF0dXJlc19fL3J0PWovdmVyPVMzRjUzdUtwNjY0LmVzLi9zdj0xL2FtPSFt
M2hZREV1VU8zaVluQkkyQXcvZD0xL3JzPUFJdFJTVE5kS2N4eHNqcHhLcFg2djFh
elcwSWhiSkhMaUEiLCJmcCI6IjFmOGQ2MGRkMjlkNTdkMDFiNzA0NTRmMTZhMjhh
ZGU1OWQ0YWNhNDUifSwiZnAiOiIxZjhkNjBkZDI5ZDU3ZDAxYjcwNDU0ZjE2YTI4
YWRlNTlkNGFjYTQ1In19KTs=
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=like.htm
Content-Type: text/html; charset=utf-8; name=like.htm
Content-Location: http://www.facebook.com/plugins/like.php?app_id=247552835288789&href=http://www.taringa.net/posts/info/3950754/Activar-el-Control-ActiveX-en-IE.html&send=false&layout=button_count&width=120&show_faces=false&action=like&colorscheme=light&font&height=21
Content-Transfer-Encoding: Quoted-Printable
Facebook
=
16 <=
span class=3D"pluginCountTextDisconnected">15
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://static.ak.fbcdn.net/rsrc.php/v2/yI/x/1dQf_ATK831.png
Content-Transfer-Encoding: Base64
iVBORw0KGgoAAAANSUhEUgAAAA8AAAA8CAMAAACO5hB7AAAA7VBMVEX+/f8AAAA7
WZk/XZv///82WJn+/v67u7tzirY6WJg6WZlYcql1i7g5V5g7WZlFYp9NaaM2VZdX
cqlfd6w8WppJZaBthbXAwMA4VpeNoMVEYZ5TbqZVcak6WJm0v9iqt9Ned66kpKSM
ncNKaKRqgbJbdKrP1+bS2ehmfrBTbaY8Wpk3VZetudROaaOrt9P7+/1xh7V0ibZL
Z6FWcah0ire3w9pbdKl2i7jb4OxshLWFmcH7/P2+yd5pgrM5WJhfeKxDYJ4zUpU0
U5U+XJvDzODk6PHx8/je4+6bq8s3Vpc+W5q4w9rCyt/s7/W2wNz9u+mpAAAABHRS
TlMAAMfHMihwAAAAAPVJREFUeF6t0eWqAzEQgNG0ncn61t3turu72/s/TjvZ7tCk
7IVCP8iPwzAhEJHSEiKVDlV323knTQ6jdg8Ojxx2u9wBOM+zg/H+2mAzYJfuofvo
hrGfX17h7X30Gfvr+wJ+1zdqvL9VhJ2gFJJdZ1rtDPaeHJecLXied3wCp81Clpyr
TLu8ur65reTImQZVLjYfGhmyllhllkHLSqDF5ElE3kzY5YiryfzfRVf7cVVlwqzY
oA4bAOiwCUR2NDXn5n7i/Zz5vmX+F4cae1I3Spznh60bpUREnxaRkiqkSb2uxLbt
/+0vzhHtH3Jrdr8Qfz4iEpdsAoODIEza5Vp0AAAAAElFTkSuQmCC
------------WAJdekyCPUCHPgfU2DhFrW
Content-Disposition: inline; filename=like.htm
Content-Type: text/html; charset=utf-8; name=like.htm
Content-Location: http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.taringa.net%2Fposts%2Finfo%2F3950754%2FActivar-el-Control-ActiveX-en-IE.html&send=false&layout=box_count&width=80&show_faces=false&action=like&colorscheme=light&font&height=68&appId=263212030385421
Content-Transfer-Encoding: Quoted-Printable
Facebook
=
div>
------------WAJdekyCPUCHPgfU2DhFrW--
3 comentarios