Content-Type: multipart/related; start=; boundary=----------s15lAfYPyVf0N6breeEJW5 Content-Location: http://www.guardian.co.uk/commentisfree/2009/aug/31/lebanon-gay-rights Subject: =?utf-8?Q?Beirut:=20city=20of=20projected=20fantasies=20|=20Diamond=20Walid=20|=20Comment=20is=20free=20|=20guardian.co.uk?= MIME-Version: 1.0 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=lebanon-gay-rights.htm Content-Type: text/html; charset=UTF-8; name=lebanon-gay-rights.htm Content-ID: Content-Location: http://www.guardian.co.uk/commentisfree/2009/aug/31/lebanon-gay-rights Content-Transfer-Encoding: Base64 ICAgICAgICAgICAgDQogICAgDQoNCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8v VzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iDQogICAgICAgICJodHRwOi8v d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4NCjxo dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFu Zz0iZW4iIGxhbmc9ImVuIj4NCg0KPGhlYWQ+DQoJCQkJCQkgICAgPHNjcmlwdCB0 eXBlPSJ0ZXh0L2phdmFzY3JpcHQiID4NCgkgICAgCQkJCQlkb2N1bWVudC5kb21h aW4gPSAiZ3VhcmRpYW4uY28udWsiOw0KCQkJCTwvc2NyaXB0Pg0KCQkJICAgIAkJ ICAgIDx0aXRsZT4JCQlCZWlydXQ6IGNpdHkgb2YgcHJvamVjdGVkIGZhbnRhc2ll cyB8IERpYW1vbmQgV2FsaWQgfA0KCQkJCUNvbW1lbnQgaXMgZnJlZSB8DQoJCQkJ Z3VhcmRpYW4uY28udWsNCgk8L3RpdGxlPg0KDQogICAgDQoNCgkJPCEtLS0tLS0g T0FTIFNFVFVQIGJlZ2luIC0tLS0tLT4NCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPg0KCQkvLzwhW0NEQVRBWw0KCQlpZiAoZmFsc2UpIHsNCg0KCQkJ T0FTX3VybCA9ICdodHRwOi8vb2FzLmd1YXJkaWFuLmNvLnVrL1JlYWxNZWRpYS9h ZHMvJzsNCgkJCU9BU19zaXRlcGFnZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFt ZSArIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArICIvb2FzLmh0bWwiOw0KCQkJ T0FTX2xpc3Rwb3MgPSAnVG9wLFJpZ2h0MSxQb3NpdGlvbjQnOw0KDQoJCQkJCQlP QVNfcXVlcnkgPSAnaz1nYXktcmlnaHRzJms9d29ybGQmaz1taWRkbGVlYXN0Jms9 bGViYW5vbiZjZj1nbG9iYWwrJTI4dGVtcCtjb21tZXJjaWFsJTI5JnBpZD0mY3Q9 YXJ0aWNsZSZwdD1hcnRpY2xlJnB0PWJsb2cmJzsNCgkJCU9BU190YXJnZXQgPSAn X2JsYW5rJzsNCg0KCQkJT0FTX3JuID0gJzAwMTIzNDU2Nzg5MCc7IE9BU19ybnMg PSAnMTIzNDU2Nzg5MCc7DQoJCQlPQVNfcm4gPSBuZXcgU3RyaW5nIChNYXRoLnJh bmRvbSgpKTsgT0FTX3JucyA9IE9BU19ybi5zdWJzdHJpbmcgKDIsIDExKTsNCg0K CQkJZnVuY3Rpb24gT0FTX05PUk1BTChwb3MpIHsNCgkJCQlkb2N1bWVudC53cml0 ZSgnPEEgSFJFRj0iJyArIE9BU191cmwgKyAnY2xpY2tfbnguYWRzLycgKyBPQVNf c2l0ZXBhZ2UgKyAnLzEnICsgT0FTX3JucyArICdAJyArIHBvcyArICchJyArIHBv cyArICc/JyArIE9BU19xdWVyeSArICciIFRBUkdFVD0nICsgT0FTX3RhcmdldCAr ICc+Jyk7DQoJCQkJZG9jdW1lbnQud3JpdGUoJzxJTUcgU1JDPSInICsgT0FTX3Vy bCArICdhZHN0cmVhbV9ueC5hZHMvJyArIE9BU19zaXRlcGFnZSArICcvMScgKyBP QVNfcm5zICsgJ0AnICsgcG9zICsgJyEnICsgcG9zICsgJz8nICsgT0FTX3F1ZXJ5 ICsgJyIgQk9SREVSPTA+PC9BPicpOw0KCQkJfQ0KDQoJCQlPQVNfdmVyc2lvbiA9 IDExOw0KCQkJaWYgKChuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01vemls bGEvMycpICE9IC0xKSB8fCAobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdN b3ppbGxhLzQuMCBXZWJUVicpICE9IC0xKSkgT0FTX3ZlcnNpb24gPSAxMDsNCgkJ CWlmIChPQVNfdmVyc2lvbiA+PSAxMSkgZG9jdW1lbnQud3JpdGUoJzxTQ1InICsg J0lQVCBMQU5HVUFHRT1KYXZhU2NyaXB0MS4xIFNSQz0iJyArIE9BU191cmwgKyAn YWRzdHJlYW1fbWp4LmFkcy8nICsgT0FTX3NpdGVwYWdlICsgJy8xJyArIE9BU19y bnMgKyAnQCcgKyBPQVNfbGlzdHBvcyArICc/JyArIE9BU19xdWVyeSArICciPjxc L1NDUklQVD4nKTsNCg0KCQkJZnVuY3Rpb24gT0FTX0FEKHBvcykgew0KCQkJCWlm IChPQVNfdmVyc2lvbiA+PSAxMSkgT0FTX1JJQ0gocG9zKTsNCgkJCQllbHNlIE9B U19OT1JNQUwocG9zKTsNCgkJCX0NCgkJfQ0KCQkvL11dPg0KCQk8L3NjcmlwdD4N CgkJPCEtLS0tLS0gT0FTIFNFVFVQIGVuZCAtLS0tLS0+DQoNCiAgICAJICAgIA0K DQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoNCiAgICAgICAgDQoNCg0KPG1ldGEgaHR0 cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz ZXQ9dXRmLTgiIC8+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVN0eWxlLVR5 cGUiIGNvbnRlbnQ9InRleHQvY3NzIiAvPg0KCQkJPG1ldGEgbmFtZT0iZGVzY3Jp cHRpb24iIGNvbnRlbnQ9IkRpYW1vbmQgV2FsaWQ6IFZpc2l0b3JzIHRvIExlYmFu b24gdGFsayBhYm91dCBhIGdheSBjdWx0dXJlIGJ1dCB3aGF0IG1vc3Qgb2YgdGhl bSBzZWUgaXMganVzdCBnYXkgY29uc3VtZXJpc20iIC8+DQoJCQkNCgkJCTxtZXRh IG5hbWU9IkRDLmRhdGUuaXNzdWVkIiBjb250ZW50PSIyMDA5LTA4LTMxIj4NCgkJ DQo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iTGViYW5vbixHYXkgcmln aHRzLE1pZGRsZSBFYXN0LFdvcmxkIG5ld3MsQ29tbWVudCBpcyBmcmVlIiAvPg0K CTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgaHJlZj0iL2Zhdmljb24uaWNvIiB0 eXBlPSJpbWFnZS94LWljb24iIC8+DQoNCg0KDQoNCiAgICA8c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCI+DQovLzwhW0NEQVRBWw0KCWlmICghY29tbW9uU3Rh dGljUm9vdCkgewkNCgkJdmFyIGNvbW1vblN0YXRpY1Jvb3QgPSAiaHR0cDovL3N0 YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24vIjsNCgl9DQoJaWYg KCFzZWN0aW9uU3RhdGljUm9vdCkgewkNCgkJdmFyIHNlY3Rpb25TdGF0aWNSb290 ID0gImh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9zdGF0aWMvODY2NjkvY29tbWVu dGlzZnJlZS8iOw0KCX0NCglpZiAoIXN0YXRpY0hvc3QpIHsJDQoJCXZhciBzdGF0 aWNIb3N0PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrLyI7DQoJfQ0KCWlmICgh c2l0ZVByZWZpeFVybCkgew0KCQl2YXIgc2l0ZVByZWZpeFVybCA9ICJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrIjsNCgl9DQovL11dPg0KPC9zY3JpcHQ+DQoJICAJ CTxsaW5rIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIHRpdGxlPSJObyBsYXlv dXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28u dWsvc3RhdGljLzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9uby1sYXlvdXQuY3Nz IiBtZWRpYT0ic2NyZWVuIiBjbGFzcz0iY29udHJhc3QiIGlkPSJuby1sYXlvdXQt c2hlZXQiIC8+DQoNCgkJCQkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0 ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84 NjY2OS9jb21tb24vc3R5bGVzL3dpZGUvYXJ0aWNsZS10b3AuY3NzIiBtZWRpYT0i c2NyZWVuIiAvPg0KCQkJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0 L2NzcyIgaHJlZj0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84NjY2 OS9jb21tb24vc3R5bGVzL3dpZGUvcHJpbnQuY3NzIiBtZWRpYT0icHJpbnQiIGNs YXNzPSJjb250cmFzdCIgLz4NCgkJCQ0KCQk8bGluayByZWw9InN0eWxlc2hlZXQi IHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsv c3RhdGljLzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9oaWdoLWNvbnRyYXN0LWNv bW1vbi5jc3MiIG1lZGlhPSJzY3JlZW4iIC8+DQoNCgkJPGxpbmsgcmVsPSJzdHls ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3N0YXRpYy5ndWlt LmNvLnVrL3N0YXRpYy84NjY2OS96b25lcy9jb21tZW50L3N0eWxlcy93aWRlL2hp Z2gtY29udHJhc3Qtc2VjdGlvbi5jc3MiIG1lZGlhPSJzY3JlZW4iIGNsYXNzPSJj b250cmFzdCIgLz4NCgkJDQoJCQk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9 InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGlj Lzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9iYXNlLXR5cG9ncmFwaHkuY3NzIiBt ZWRpYT0ic2NyZWVuIiAvPg0KDQoJCQ0KCQk8bGluayByZWw9InN0eWxlc2hlZXQi IHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsv c3RhdGljLzg2NjY5L2NvbW1lbnRpc2ZyZWUvc3R5bGVzL3dpZGUvaGlnaC1jb250 cmFzdC1zZWN0aW9uLmNzcyIgbWVkaWE9InNjcmVlbiIgY2xhc3M9ImNvbnRyYXN0 IiAvPg0KDQoJCQkNCg0KCQk8IS0tW2lmIGllIDddPg0KCQkgICAgPGxpbmsgcmVs PSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovL3N0YXRp Yy5ndWltLmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24vc3R5bGVzL3dpZGUvaWU3 LmNzcyIgbWVkaWE9InNjcmVlbiIgY2xhc3M9ImllIiAvPg0KCQk8IVtlbmRpZl0t LT4NCgkJDQoJCTwhLS1baWYgaWUgOF0+DQoJCQk8bGluayByZWw9InN0eWxlc2hl ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28u dWsvc3RhdGljLzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9pZTguY3NzIiBtZWRp YT0ic2NyZWVuIiBjbGFzcz0iaWUiIC8+DQoJCTwhW2VuZGlmXS0tPg0KCQkNCgkJ PCEtLVtpZiBsdGUgSUUgNl0+DQoJCQk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5 cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3Rh dGljLzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9pZS5jc3MiIG1lZGlhPSJzY3Jl ZW4iIGNsYXNzPSJpZSIgLz4NCiAgICAJCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg dHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9z dGF0aWMvODY2Njkvem9uZXMvY29tbWVudC9zdHlsZXMvd2lkZS96b25lLW5hdmln YXRpb24taWUuY3NzIiBtZWRpYT0ic2NyZWVuIiBjbGFzcz0iY29udHJhc3QiIC8+ DQoJCTwhW2VuZGlmXS0tPgkJDQoJCQ0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIg dHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHA6Ly9jb21iby5ndWltLmNvLnVrLzg2 NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9hdHRlbnRpb24tZGF0YStjb21tb24vc3R5 bGVzL3dpZGUvYm9va3Nob3ArY29tbW9uL3N0eWxlcy93aWRlL2dvb2dsZS1hZHMr Y29tbW9uL3N0eWxlcy93aWRlL2tpY2tlcitjb21tb24vc3R5bGVzL3dpZGUvbGF0 ZXN0LWNpZi1wb3N0cy1wcm9tbytjb21tb24vc3R5bGVzL3dpZGUvbmFtZWQtdHJh aWxibG9jaytjb21tb24vc3R5bGVzL3dpZGUvcGFnZS10b29sYm94LmNzcyIgbWVk aWE9InNjcmVlbiIgLz4NCg0KICAgIAk8bGluayByZWw9InN0eWxlc2hlZXQiIHR5 cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3Rh dGljLzg2NjY5L2NvbW1vbi9zdHlsZXMvd2lkZS9hcnRpY2xlLXBhZ2UtdHlwb2dy YXBoeS5jc3MiIG1lZGlhPSJzY3JlZW4iIC8+DQogICAgPHNjcmlwdCB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPg0KCS8vPCFbQ0RBVEFbDQoJZnVuY3Rpb24gaW5zZXJ0 U3R5bGVTaGVldChocmVmKSB7DQoJCXZhciBzdHlsZU9iamVjdCA9IGRvY3VtZW50 LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTsNCgkJc3R5bGVPYmplY3Quc2V0QXR0cmli dXRlKCdocmVmJywgY29tbW9uU3RhdGljUm9vdCArIGhyZWYpOw0KCQlzdHlsZU9i amVjdC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9jc3MnKTsNCgkJc3R5bGVP YmplY3Quc2V0QXR0cmlidXRlKCdtZWRpYScsICdzY3JlZW4nKTsNCgkJc3R5bGVP YmplY3Quc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpOw0KCQl2YXIg aGVhZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07 DQoJCWhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVPYmplY3QpOw0KCX0NCglpbnNlcnRT dHlsZVNoZWV0KCdzdHlsZXMvd2lkZS9qcy1vbi5jc3MnKTsNCgkvL11dPg0KPC9z Y3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRw Oi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi9leHRlcm5h bC1zY3JpcHRzL2pxdWVyeS0xLjQuMS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3N0YXRpYy5ndWlt LmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24vZXh0ZXJuYWwtc2NyaXB0cy9qcXVl cnktbGlicmFyaWVzL2pxdWVyeS5jb29raWUuanMiPjwvc2NyaXB0Pg0KPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KIHZhciBqUSA9IGpRdWVyeS5ub0Nv bmZsaWN0KCk7DQo8L3NjcmlwdD4gDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh c2NyaXB0IiBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9zdGF0aWMvODY2 NjkvY29tbW9uL3NjcmlwdHMvZ3UuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPg0KCS8vPCFbQ0RBVEFbDQoJZnVuY3Rpb24gaW5p dCgpIHsNCgkJbmV3IFNlYXJjaEZvcm0odHJ1ZSwgJ2h0dHA6Ly9icm93c2UuZ3Vh cmRpYW4uY28udWsnLCBudWxsLCAnaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93 ZWJzZWFyY2gnICk7DQoJCQ0KCQl1cmxTdGFjay5jbGVhclVybFN0YWNrKCk7DQoJ CXZhciBzaWduT3V0TGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWdu LW91dCIpOw0KCQlpZiAoc2lnbk91dExpbmspIHsNCgkJCXNpZ25PdXRMaW5rLm9u Y2xpY2sgPSBzaWduT3V0Ow0KCQl9DQoJfQ0KDQoJdmFyIHRoaXJkUGFydHlSZWZl cnJhbENvb2tpZVNlcnZpY2UgPSBuZXcgZ3VhcmRpYW4ucjIuVGhpcmRQYXJ0eVJl ZmVycmFsQ29va2llU2VydmljZSgpOw0KCXRoaXJkUGFydHlSZWZlcnJhbENvb2tp ZVNlcnZpY2Uuc2V0VGhpcmRQYXJ0eVJlZmVycmFsQ29va2llKCk7DQoJCQ0KCXZh ciB1cmxTdGFjayA9IG5ldyBVcmxTdGFjaygiLmd1YXJkaWFuLmNvLnVrIik7CQ0K CXZhciBjb21tdW5pdGllc1NpdGUgPSBmYWxzZTsNCgkNCgkJCQ0KCWd1YXJkaWFu LnIyLnNpZ25Jbkxpc3RlbmVycyA9IG5ldyBndWFyZGlhbi5yMi5TaWduSW5MaXN0 ZW5lcnMoKTsNCiAgICAoZnVuY3Rpb24gKCkgewkNCgkJdmFyIHNpZ25JblZpZXcg PSBuZXcgZ3VhcmRpYW4ucjIuU2lnbkluVmlldygiaHR0cDovL3N0YXRpYy5ndWlt LmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24vc2NyaXB0cy9tZDUuanMiLCBjb21t dW5pdGllc1NpdGUpOw0KCQl2YXIgb2JmdXNjYXRpb25TZXJ2aWNlID0gbmV3IGd1 YXJkaWFuLnIyLk9iZnVzY2F0aW9uU2VydmljZSgpOw0KCQlndWFyZGlhbi5yMi5z aWduSW5Db250cm9sbGVyID0gbmV3IGd1YXJkaWFuLnIyLlNpZ25JbkNvbnRyb2xs ZXIoc2lnbkluVmlldywgZ3VhcmRpYW4ucjIuc2lnbkluTGlzdGVuZXJzLCBvYmZ1 c2NhdGlvblNlcnZpY2UsICIvdG9vbHMvc2lnbmluIik7DQoJCQ0KCX0pICgpOw0K CQ0KCShmdW5jdGlvbiAoKSB7DQoJCXZhciBwcm9maWxlTGlua1ZpZXcgPSBuZXcg Z3VhcmRpYW4ucjIuUHJvZmlsZUxpbmtWaWV3KCk7DQoJCXByb2ZpbGVMaW5rQ29u dHJvbGxlciA9IG5ldyBndWFyZGlhbi5yMi5Qcm9maWxlTGlua0NvbnRyb2xsZXIo cHJvZmlsZUxpbmtWaWV3LCAiaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vy cy8iKTsNCgl9KSAoKTsNCg0KCWFkZFNhZmVMb2FkRXZlbnQoaW5pdCk7DQoJLy9d XT4NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy Yz0iaHR0cDovL2NvbWJvLmd1aW0uY28udWsvODY2NjkvY29tbW9uL3NjcmlwdHMv c2hhcmVDb3VudHMuanMiPjwvc2NyaXB0Pg0KDQoJCQk8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KCS8vCTwhW0NE QVRBWw0KCWlmICh0cnVlKSB7DQoJCWluc2VydFN0eWxlU2hlZXQoJ3N0eWxlcy93 aWRlL3BsdWNrLW9uLmNzcycpOw0KCX0NCgkvLyBdXT4NCgk8L3NjcmlwdD4NCgkN CjwvaGVhZD4NCg0KDQoNCjxib2R5IGNsYXNzPSIJYXJ0aWNsZSAgIj4NCgk8ZGl2 IGlkPSJ3cmFwcGVyIj4NCg0KCQoJCSAgICAgICAgDQoNCgkJPHNjcmlwdCBpZD0i b21uaXR1cmVHZW5lcmF0b3JTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+ DQoJLy88IVtDREFUQVsNCglpZih0cnVlKSB7DQoJCXZhciBzX2FjY291bnQ9Imd1 YXJkaWFuZ3UtYmxvZ3MsZ3VhcmRpYW5ndS1uZXR3b3JrLGd1YXJkaWFuZ3UtY29t bWVudGlzZnJlZSI7IAkJDQoJCXdyaXRlU2NyaXB0KCdodHRwOi8vc3RhdGljLmd1 aW0uY28udWsvc3RhdGljLzg2MzIwL2NvbW1vbi9zY3JpcHRzL29tbml0dXJlLUgu MjAuMy5qcycsIGZhbHNlLCBmdW5jdGlvbigpe30pOw0KCX0NCgkvL11dPg0KCTwv c2NyaXB0Pg0KCQ0KCQ0KCTxzY3JpcHQgaWQ9Im9tbml0dXJlU2NyaXB0IiB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkNCgkvLzwhW0NEQVRBWw0KCWlmKHRydWUp IHsNCgkJaWYgKGZhbHNlKSB7DQoJCSAgICBzLnBhZ2VOYW1lID0gZG9jdW1lbnQu dGl0bGU7DQoJCX0gZWxzZSB7DQoJCQlzLnBhZ2VOYW1lPSJCZWlydXQ6IGNpdHkg b2YgcHJvamVjdGVkIGZhbnRhc2llcyB8IERpYW1vbmQgV2FsaWQ6QXJ0aWNsZTox MjY5NTk3IjsNCgkJfQ0KCQlzLmNoYW5uZWwgPSAiQ29tbWVudCBpcyBmcmVlIjsN CgkJcy5wYWdlVHlwZT0iIjsNCgkJcy5zZXJ2ZXI9JzY1JzsgDQoJCXMucHJvcDI9 J0dVSUQ6KG5vbmUpJzsNCg0KCQkJCQlzWydwcm9wMyddPSJHVS5jby51ayI7DQoJ CQkJCXNbJ3Byb3A0J109IkxlYmFub24gKE5ld3MpLEdheSByaWdodHMgKE5ld3Mp LE1pZGRsZSBFYXN0IChOZXdzKSxXb3JsZCBuZXdzIjsNCgkJCQkJc1sncHJvcDYn XT0iRGlhbW9uZCBXYWxpZCI7DQoJCQkJCXNbJ3Byb3A3J109IjA5LUF1Zy0zMSI7 DQoJCQkJCXNbJ3Byb3A4J109IjEyNjk1OTciOw0KCQkJCQlzWydwcm9wOSddPSJB cnRpY2xlIjsNCgkJCQkJc1sncHJvcDEwJ109IkNvbW1lbnQiOw0KCQkJCQlzWydw cm9wMTEnXT0iQ29tbWVudCBpcyBmcmVlIjsNCgkJCQkJc1sncHJvcDEzJ109IiI7 DQoJCQkJCXNbJ3Byb3AyNSddPSJDb21tZW50IGlzIGZyZWUiOw0KCQkJCQlzWydw cm9wMzAnXT0iY29udGVudCI7DQoJCQ0KCQlzLmhpZXIyPSJHVS9Db21tZW50IGlz IGZyZWUvYmxvZy9Db21tZW50IGlzIGZyZWUiOw0KCQlzLmV2ZW50cz0iIjsNCgkJ cy5lVmFyMjM9IiI7DQoJCQkJDQoJCXZhciBzX2NvZGU9cy50KCk7aWYoc19jb2Rl KWRvY3VtZW50LndyaXRlKHNfY29kZSk7DQoJfQ0KCS8vXV0+DQoJPC9zY3JpcHQ+ DQoJPG5vc2NyaXB0IGlkPSJvbW5pdHVyZU5vU2NyaXB0Ij4NCgkJPGRpdj48aW1n IGFsdD0iIiBzcmM9J2h0dHA6Ly9oaXRzLmd1YXJkaWFuLmNvLnVrL2Ivc3MvZ3Vh cmRpYW5ndS1ibG9ncyxndWFyZGlhbmd1LW5ldHdvcmssZ3VhcmRpYW5ndS1jb21t ZW50aXNmcmVlLzEvSC4yMC4zLzU1NTQyP25zPWd1YXJkaWFuJnBhZ2VOYW1lPUJl aXJ1dCUzQStjaXR5K29mK3Byb2plY3RlZCtmYW50YXNpZXMrJTdDK0RpYW1vbmQr V2FsaWQlM0FBcnRpY2xlJTNBMTI2OTU5NyZjaD1Db21tZW50K2lzK2ZyZWUmYzM9 R1UuY28udWsmYzQ9TGViYW5vbislMjhOZXdzJTI5JTJDR2F5K3JpZ2h0cyslMjhO ZXdzJTI5JTJDTWlkZGxlK0Vhc3QrJTI4TmV3cyUyOSUyQ1dvcmxkK25ld3MmYzY9 RGlhbW9uZCtXYWxpZCZjNz0wOS1BdWctMzEmYzg9MTI2OTU5NyZjOT1BcnRpY2xl JmMxMD1Db21tZW50JmMxMT1Db21tZW50K2lzK2ZyZWUmYzEzPSZjMjU9Q29tbWVu dCtpcytmcmVlJmMzMD1jb250ZW50JmgyPUdVJTJGQ29tbWVudCtpcytmcmVlJTJG YmxvZyUyRkNvbW1lbnQraXMrZnJlZSZjMj1HVUlEOihub25lKScgd2lkdGg9IjEi IGhlaWdodD0iMSIgLz48L2Rpdj4NCgk8L25vc2NyaXB0Pg0KDQoKPGRpdiBpZD0i dmlkZW8tc2V0dGluZ3MiPg0KICAgIDxkaXYgY2xhc3M9ImNvb2tpZWQiPg0KICAg ICAgICA8cCBjbGFzcz0ib24iPjxhIGNsYXNzPSJhdXRvcGxheS1vZmYiIGhyZWY9 IiNza2lwbGlua3MiPlR1cm4gYXV0b3BsYXkgb2ZmPC9hPjwvcD4NCiAgICAgICAg PHAgY2xhc3M9Im9mZiI+PGEgY2xhc3M9ImF1dG9wbGF5LW9uIiBocmVmPSIjc2tp cGxpbmtzIj5UdXJuIGF1dG9wbGF5IG9uPC9hPjwvcD4NCiAgICA8L2Rpdj4NCiAg ICA8ZGl2IGNsYXNzPSJub3QtY29va2llZCI+DQogICAgICAgIDxwPlBsZWFzZSBh Y3RpdmF0ZSBjb29raWVzIGluIG9yZGVyIHRvIHR1cm4gYXV0b3BsYXkgb2ZmPC9w Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgaWQ9InNraXBsaW5rcyI+DQoJ PHVsPg0KCQk8bGk+PGEgaHJlZj0iI2JveCIgYWNjZXNza2V5PSJzIj5KdW1wIHRv IGNvbnRlbnQgW3NdPC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSIjc3RhcnQt b2YtY29tbWVudHMiIGFjY2Vzc2tleT0iYyI+SnVtcCB0byBjb21tZW50cyBbY108 L2E+PC9saT4NCgkJCQk8bGk+PGEgaHJlZj0iI2dsb2JhbC1uYXYiIGFjY2Vzc2tl eT0iMCI+SnVtcCB0byBzaXRlIG5hdmlnYXRpb24gWzBdPC9hPjwvbGk+DQoJCTxs aT48YSBocmVmPSIjd2ViLXNlYXJjaC1maWVsZCIgYWNjZXNza2V5PSI0Ij5KdW1w IHRvIHNlYXJjaCBbNF08L2E+PC9saT4NCgkJPGxpPjxhIGhyZWY9Imh0dHA6Ly9n dWFyZGlhbi5jby51ay9Vc2Vycy9oZWxwL2FydGljbGUvMCwsOTMzOTA5LDAwLmh0 bWwiIGFjY2Vzc2tleT0iOCI+VGVybXMgYW5kIGNvbmRpdGlvbnMgWzhdPC9hPjwv bGk+DQoJPC91bD4NCjwvZGl2PgoJPGRpdiBpZD0iaGVhZGVyIj4KCQkKCQkJCgkJ ICAgIAkJCTxkaXYgaWQ9InN1Yi1oZWFkZXIiPg0KCQkJDQoNCg0KDQogPHVsIGNs YXNzPSJ1c2VyLWRldGFpbHMiPg0KDQoJPGxpIGlkPSJzaWduLWluIiBjbGFzcz0i Zmlyc3QiPjxhIGNsYXNzPSJzYW1lLXBhZ2UtbG9naW4tcmVxdWlyZWQiIGhyZWY9 Ii9Vc2Vycy9zaWduaW4vdHIvMSwsLTEsMDAuaHRtbCIgPlNpZ24gaW48L2E+PC9s aT4NCgk8bGkgaWQ9InJlZ2lzdGVyIj48YSBocmVmPSIvVXNlcnMvcmVnaXN0ZXIv MSwsLTEsMDAuaHRtbCIgIGNsYXNzPSJyZWdpc3Rlci1yZXF1aXJlZCI+UmVnaXN0 ZXI8L2E+PC9saT4NCgkJPGxpIGlkPSJtb2JpbGUiPjxhIGhyZWY9Imh0dHA6Ly9t Lmd1YXJkaWFuLmNvLnVrLz9pZD0xMDIyMDImc3Rvcnk9aHR0cDovL3d3dy5ndWFy ZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMDkvYXVnLzMxL2xlYmFub24tZ2F5 LXJpZ2h0cyIgPk1vYmlsZSB2ZXJzaW9uPC9hPjwvbGk+DQoJDQo8bGkgaWQ9Imxh cmdlciIgIGNsYXNzPSJmaXJzdCI+VGV4dCA8YSBocmVmPSIvaGVscC9hY2Nlc3Np YmlsaXR5IiA+bGFyZ2VyPC9hPjwvbGk+PGxpIGlkPSJzbWFsbGVyIj48YSBocmVm PSIvaGVscC9hY2Nlc3NpYmlsaXR5IiAgPnNtYWxsZXI8L2E+PC9saT4NCjwvdWw+ DQoJCQkNCgkNCgkJDQoJCTxkaXYgaWQ9InRvcHNsb3QiIGNsYXNzPSJoaWRlLW9u LXBvcHVwIj4NCg0KCQkNCg0KCQkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPg0KCQkJLy88IVtDREFUQVsNCgkJCQlpZiAodHJ1ZSkgew0KCQkJCQlpZiAo ZmFsc2UpIHsNCgkJCQkgICAgICAgIAkNCgkJICAgICAgICBPQVNfQUQoJ1RvcCcp Ow0KICAgCQkJCQl9IGVsc2Ugew0KCQkJCQkJDQoJCQ0KCQkNCgkgICAgICAgIA0K ICAgICAgIAkNCiAgICAgICAgICAgICAgICANCiAgICAgICAgDQogICAgICAgIA0K CQkJCQkJdmFyIHNyYyA9ICdodHRwOi8vYWRzLmd1YXJkaWFuLmNvLnVrL2pzLm5n L3NwYWNlZGVzYz10b3BzbG90JmFtcDtjb21mb2xkZXI9Z2xvYmFsJTI4dGVtcGNv bW1lcmNpYWwlMjkmYW1wO2tleXdvcmRzPSUyQ0xlYmFub24lMkIlMjhOZXdzJTI5 JTJDR2F5JTJCcmlnaHRzJTJCJTI4TmV3cyUyOSUyQ01pZGRsZSUyQkVhc3QlMkIl MjhOZXdzJTI5JTJDV29ybGQlMkJuZXdzJTJDJmFtcDtzaXRlPUNvbW1lbnRpc2Zy ZWUmYW1wO2JhbmR3aWR0aD1zYXRlbGxpdGUmYW1wO3VybD0lMjUyRmNvbW1lbnRp c2ZyZWUlMjUyRjIwMDklMjUyRmF1ZyUyNTJGMzElMjUyRmxlYmFub24tZ2F5LXJp Z2h0cyZhbXA7cmFuZD0zNzk5MTgwMjcmYW1wO3Nlcmllcz0mYW1wO3N5c3RlbT1i bG9nJmFtcDt0aWxlPTQ0MTYwNjYmYW1wO2Jsb2NrVmlkZW9BZHM9ZmFsc2UmYW1w O3BhcnRuZXJpZD0mYW1wOyc7DQoJCQkJCXdyaXRlU2NyaXB0KHNyYywgZmFsc2Us IGZ1bmN0aW9uKCl7fSk7DQoJCQkJCQkJfQ0KCQkJCX0NCgkJCS8vXV0+DQoJCQk8 L3NjcmlwdD4NCgkJDQoNCgkJPC9kaXY+DQoNCiAgICAJCTwvZGl2Pg0KCQ0KCQkK CQkJCQkgICAgDQoJPGRpdiBpZD0iZ3VhcmRpYW4tbG9nbyI+DQoJCQkJCTxhIGhy ZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsiID48aW1nIHNyYz0iaHR0cDov L3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84NjY2OS96b25lcy9jb21tZW50L2lt YWdlcy9sb2dvLmdpZiIgaGVpZ2h0PSIyMiIgd2lkdGg9IjE0MCIgYWx0PSJndWFy ZGlhbi5jby51ayBob21lIiAvPjwvYT4NCgkJCQk8L2Rpdj4NCgkJCQkJDQoJCQkK CQkJCQk8Zm9ybSBpZD0ic2VhcmNoIiBhY3Rpb249Imh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvd2Vic2VhcmNoIiBtZXRob2Q9ImdldCIgb25zdWJtaXQ9InJldHVy biBTZWFyY2hGb3JtKHRydWUsICdodHRwOi8vYnJvd3NlLmd1YXJkaWFuLmNvLnVr L3NlYXJjaD9zZWFyY2g9JywnaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9zZWFy Y2gvdXNlcnMnKTsiPg0KCTxmaWVsZHNldCBpZD0id2ViLXNlYXJjaCI+DQoJDQoJ CTxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idGV4dCBzZWFyY2gtZmllbGQiIG5h bWU9IndlYi1zZWFyY2gtZmllbGQiIGlkPSJ3ZWItc2VhcmNoLWZpZWxkIiB2YWx1 ZT0iU2VhcmNoIiBvbmNsaWNrPSJpZih0aGlzLnZhbHVlPT0nU2VhcmNoJyl0aGlz LnZhbHVlPScnO2Vsc2UgdGhpcy5zZWxlY3QoKTsiIC8+DQoJCQ0KCQkJPGxhYmVs IGZvcj0ic2l0ZXNlYXJjaC1yYWRpbyI+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMu Z3VpbS5jby51ay9zdGF0aWMvODY2NjkvY29tbW9uL2ltYWdlcy9zcGFjZXIuZ2lm IiB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBhbHQ9IkxvY2F0aW9uIiAvPjwvbGFiZWw+ DQoJCTxzZWxlY3QgbmFtZT0ic2l0ZXNlYXJjaC1yYWRpbyI+DQoJCQk8b3B0aW9u IHZhbHVlPSJndWFyZGlhbiIgaWQ9InNlYXJjaC1ndWFyZGlhbiI+Z3VhcmRpYW4u Y28udWs8L29wdGlvbj4NCgkJCQ0KCQkJCQkJCTxvcHRpb24gdmFsdWU9IkNvbW1l bnQraXMrZnJlZSIgaWQ9InNlYXJjaC1zZWN0aW9uIj5Db21tZW50IGlzIGZyZWU8 L29wdGlvbj4NCgkJCQkJCTxvcHRpb24gdmFsdWU9IndlYiIgaWQ9InNlYXJjaC13 ZWIiPldlYjwvb3B0aW9uPg0KCQk8L3NlbGVjdD4NCgkJDQoJCTxpbnB1dCB0eXBl PSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQgc2l0ZXNlYXJjaC1zdWJtaXQiIHZhbHVl PSJTZWFyY2giIG5hbWU9ImdvLWd1YXJkaWFuIiBpZD0iZ28tZ3VhcmRpYW4iIC8+ DQoJCQ0KCTwvZmllbGRzZXQ+DQo8L2Zvcm0+DQoJCQkJCgkJCQkKCQk8ZGl2IGlk PSJ6b25lcy1uYXYiPgoJCQkJCQkgICAgDQoNCgk8ZGl2IGlkPSJnbG9iYWwtbmF2 Ij4NCgkJPHVsPg0KCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxs aSBjbGFzcz0iZmlyc3QgbmV3cyI+DQoJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrIiA+TmV3czwvYT4NCgkJCQkJPC9saT4NCgkJCQkJCQkN CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxsaSBjbGFzcz0ic3BvcnQiPg0KCQkJ CQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9zcG9ydCIgPlNw b3J0PC9hPg0KCQkJCQk8L2xpPg0KCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJPGxpIGNsYXNzPSJjb21tZW50Ij4NCgkJCQkJCTxhIGhyZWY9Imh0dHA6 Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZSIgPkNvbW1lbnQ8L2E+ DQoJCQkJCTwvbGk+DQoJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8 bGkgY2xhc3M9ImN1bHR1cmUiPg0KCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5n dWFyZGlhbi5jby51ay9jdWx0dXJlIiA+Q3VsdHVyZTwvYT4NCgkJCQkJPC9saT4N CgkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxsaSBjbGFzcz0iYnVz aW5lc3MiPg0KCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51 ay9idXNpbmVzcyIgPkJ1c2luZXNzPC9hPg0KCQkJCQk8L2xpPg0KCQkJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGxpIGNsYXNzPSJtb25leSI+DQoJCQkJ CQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL21vbmV5IiA+TW9u ZXk8L2E+DQoJCQkJCTwvbGk+DQoJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQk8bGkgY2xhc3M9ImxpZmUtYW5kLXN0eWxlIj4NCgkJCQkJCTxhIGhyZWY9 Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvbGlmZWFuZHN0eWxlIiA+TGlmZSAm YW1wOyBzdHlsZTwvYT4NCgkJCQkJPC9saT4NCgkJCQkJCQkNCgkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCTxsaSBjbGFzcz0idHJhdmVsIj4NCgkJCQkJCTxhIGhyZWY9 Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdHJhdmVsIiA+VHJhdmVsPC9hPg0K CQkJCQk8L2xpPg0KCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGxp IGNsYXNzPSJlbnZpcm9ubWVudCI+DQoJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL2Vudmlyb25tZW50IiA+RW52aXJvbm1lbnQ8L2E+DQoJ CQkJCTwvbGk+DQoJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGkg Y2xhc3M9ImN1bHR1cmUiPg0KCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFy ZGlhbi5jby51ay90di1hbmQtcmFkaW8iID5UVjwvYT4NCgkJCQkJPC9saT4NCgkJ CQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGxpIGNsYXNzPSJi bG9ncyI+DQoJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L3RvbmUvYmxvZyIgPkJsb2dzPC9hPg0KCQkJCQk8L2xpPg0KCQkJCQkJCQ0KCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGkgY2xhc3M9InZpZGVvIj4NCgkJ CQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvbXVsdGltZWRp YSIgPlZpZGVvPC9hPg0KCQkJCQk8L2xpPg0KCQkJCQkJCQ0KCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCQk8bGkgY2xhc3M9ImNvbW11bml0eSI+DQoJCQkJCQk8 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW11bml0eSIgPkNv bW11bml0eTwvYT4NCgkJCQkJPC9saT4NCgkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCQk8bGkgY2xhc3M9Imxhc3Qgam9icyI+DQoJCQkJ CQk8YSBocmVmPSJodHRwOi8vam9icy5ndWFyZGlhbi5jby51ay8iID5Kb2JzPC9h Pg0KCQkJCQk8L2xpPg0KCQkJCQkJCQkJPC91bD4NCgk8L2Rpdj4NCg0KDQoJCQkJ CQkJCQkJCQkJCSAgICANCgkNCgkgICAgICAgICAgICANCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICANCg0KDQo8ZGl2IGNsYXNzPSJjcnVtYi13cmFwcGVyIj4N Cg0KICAgICAgICAgICAgPHVsIGNsYXNzPSJjcnVtYi1uYXYiPg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxsaSBpZD0iY3J1bWIxIj4NCiAgICAgICAgICAg ICAgICAgICAgPGEgaHJlZj0iL2NvbW1lbnRpc2ZyZWUiID5Db21tZW50IGlzIGZy ZWU8L2E+DQogICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAg ICAgPC91bD4NCiAgICANCiAgICANCjwvZGl2Pg0KDQoJCQkJCQkJPC9kaXY+CgkJ CQkKCQkJCQoJPC9kaXY+Cg0KDQoNCjxkaXYgaWQ9ImJveCI+DQoNCiAJICAgIA0K DQoNCg0KICAgICAgICAKCgoKCjxkaXYgaWQ9ImFydGljbGUtaGVhZGVyIj4KCiAg ICAgICAgICAgICAgICANCg0KDQogICAgCiAgICAgICAgCSAgICANCg0KDQoNCg0K DQoJCQ0KCQkJCQkJCQ0KDQogICAgICAgIA0KDQoKICAgICAgICAgICAgICAgIA0K DQoNCg0KDQogICAgICAgIA0KDQoNCg0KCSAgICANCg0KDQoNCiAgCSAgIAkgICAg ICAgIA0KICAgCSAgIAkgICAJICAgCQ0KICAgICAgCSAgICAgICANCiAgCSAgIAkg ICAgICAgIA0KICAgCSAgCSAgIAkJDQoJDQoJCQ0KICAgICAgICANCiAgICAgICAg ICAgIA0KDQogCQogICAgIAkKIAkKCSAJCiAJIAk8ZGl2IGlkPSJtYWluLWFydGlj bGUtaW5mbyI+CiAJCQoJCQkJCQoJCQkJCgkJCTxoMT5CZWlydXQ6IGNpdHkgb2Yg cHJvamVjdGVkIGZhbnRhc2llczwvaDE+CgkJCQkKCQkJCQkKCQkJCQk8cCBpZD0i c3RhbmQtZmlyc3QiIGNsYXNzPSJzdGFuZC1maXJzdC1hbG9uZSI+VmlzaXRvcnMg dG8gTGViYW5vbiB0YWxrIGFib3V0IGEgZ2F5IGN1bHR1cmUgYnV0IHdoYXQgbW9z dCBvZiB0aGVtIHNlZSBpcyBqdXN0IGdheSBjb25zdW1lcmlzbTwvcD4KCQkKCQkJ CQogIAk8L2Rpdj4KICAJCiAgCSAgCTx1bCBpZD0iY29udGVudC1hY3Rpb25zIiBj bGFzcz0ic2hhcmUtbGlua3MiPgogICAgICAgIAkJDQogICAgPGxpIGNsYXNzPSJ0 aGlyZC1wYXJ0eS10b29sIGRpZ2ciPgogICAgICAgIDxhIHRpdGxlPSJEaWdnIHRo aXMgYXJ0aWNsZSIgaWQ9InNoYXJlLWxpbmstZGlnZyIgaHJlZj0iaHR0cDovL2Rp Z2cuY29tL3N1Ym1pdD91cmw9aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51 ayUyRmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdh eS1yaWdodHMmdGl0bGU9QmVpcnV0JTNBK2NpdHkrb2YrcHJvamVjdGVkK2ZhbnRh c2llcyslN0MrRGlhbW9uZCtXYWxpZCI+CiAgICAgICAgCTxpbWcgc3JjPSJodHRw Oi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi9zdHlsZXMv d2lkZS9pbWFnZXMvaWNvbl9kaWdnLmdpZiIgYWx0PSJEaWdnIGl0IiAvPgogICAg ICAgIDwvYT4KICAgIDwvbGk+CgkJCTxsaSBjbGFzcz0idGhpcmQtcGFydHktdG9v bCBidXp6Ij4KCQkJPGEgdGl0bGU9IkJ1enogdXAiIGlkPSJzaGFyZS1saW5rLWJ1 enoiIGhyZWY9Imh0dHA6Ly91ay5idXp6LnlhaG9vLmNvbS9idXp6P3B1Ymxpc2hl cnVybj10aGVfZ3VhcmRpYW42NjUmdGFyZ2V0VXJsPWh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvY29tbWVudGlzZnJlZS8yMDA5L2F1Zy8zMS9sZWJhbm9uLWdheS1y aWdodHMmc3VtbWFyeT0lM0NzdHJvbmclM0VEaWFtb25kK1dhbGlkJTNBKyUzQyUy RnN0cm9uZyUzRVZpc2l0b3JzK3RvK0xlYmFub24rdGFsaythYm91dCthK2dheStj dWx0dXJlK2J1dCt3aGF0K21vc3Qrb2YrdGhlbStzZWUraXMranVzdCtnYXkrY29u c3VtZXJpc20maGVhZGxpbmU9CQkJQmVpcnV0OiBjaXR5IG9mIHByb2plY3RlZCBm YW50YXNpZXMgfCBEaWFtb25kIFdhbGlkIHwNCgkJCQlDb21tZW50IGlzIGZyZWUg fA0KCQkJCWd1YXJkaWFuLmNvLnVrDQoJIj4KICAgIAkgICAgCTxpbWcgc3JjPSJo dHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi9zdHls ZXMvd2lkZS9pbWFnZXMvaWNvbl9idXp6LmdpZiIgYWx0PSJCdXp6IHVwIiAvPgoJ ICAgIAk8L2E+CQoJCTwvbGk+CgkJPGxpIGNsYXNzPSJ0aGlyZC1wYXJ0eS10b29s IGZhY2Vib29rIGVkZ2UiPgoJCTxhIHRpdGxlPSJTaGFyZSBvbiBGYWNlYm9vayIg aWQ9InNoYXJlLWxpbmstZmFjZWJvb2siIGhyZWY9Imh0dHA6Ly93d3cuZmFjZWJv b2suY29tL3NoYXJlLnBocD91PWh0dHAlM0ElMkYlMkZ3d3cuZ3VhcmRpYW4uY28u dWslMkZjb21tZW50aXNmcmVlJTJGMjAwOSUyRmF1ZyUyRjMxJTJGbGViYW5vbi1n YXktcmlnaHRzIj4KICAgICAgICAJPGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3Vp bS5jby51ay9zdGF0aWMvODY2NjkvY29tbW9uL3N0eWxlcy93aWRlL2ltYWdlcy9p Y29uX2ZhY2Vib29rLmdpZiIgYWx0PSJTaGFyZSBvbiBmYWNlYm9vayIgLz4KCQk8 L2E+Cgk8L2xpPgoJPGxpIGNsYXNzPSJ0d2VldCBiMyI+CgkJPGEgdGl0bGU9IlR3 ZWV0IHRoaXMiIGhyZWY9Imh0dHA6Ly90d2l0dGVyLmNvbS9ob21lP3N0YXR1cz1o dHRwJTNBJTJGJTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVudGlzZnJlZSUy RjIwMDklMkZhdWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyIgaWQ9InNoYXJl LWxpbmstdHdpdHRlciI+CgkJCQkJCQlUd2VldCB0aGlzCgkJCQkJPC9hPgoJPC9s aT4KCQoJCiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJiMyI+CiAgICAg ICAgICAgIAogICAgICAgICAgICAJICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJwbHVjay1pbml0LWJsb2NrIiBpZD0iY29tbWVudC1pbmZv LXJlbGF0ZWQiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93 d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZS8yMDA5L2F1Zy8zMS9sZWJh bm9uLWdheS1yaWdodHMjc3RhcnQtb2YtY29tbWVudHMiIGNsYXNzPSJjb21tZW50 LWNvdW50LWluZm8gY29tbWVudC1pY29uIj5Db21tZW50cyAoPHNwYW4gY2xhc3M9 ImNvbW1lbnQtY291bnQiPiZoZWxsaXA7PC9zcGFuPik8L2E+CiAgICAgICAgICAg ICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICAKICAgICAgICAK ICAgIDwvdWw+IAoJCQoJCSAgICA8L2Rpdj4KDQoNCjxkaXYgaWQ9ImNvbnRlbnQi Pg0KDQogICAgDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgDQoN CgkgICAgDQoNCiAgICAgICAgDQoNCg0KDQoNCg0KICAgIA0KPHVsIGNsYXNzPSJh cnRpY2xlLWF0dHJpYnV0ZXMgbm8tcGljIj4NCgkgICAgICAgIAkJPGxpIGNsYXNz PSJieWxpbmUiPg0KCQkJIAkJCQkJCQkJICAgICAgICAgICAgICAgIAkgICAgICAg IAkgICAgICAgIAkgICAgICAgICAgICA8YSBocmVmPWh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvcHJvZmlsZS9kaWFtb25kLXdhbGlkID5EaWFtb25kIFdhbGlkPC9h Pg0KCQkJCTwvbGk+DQoJDQoNCgkJICAgCQ0KICAgICAgICAgICAgICAgICAgICAg IAkNCiAgICAgICAgICA8bGkgY2xhc3M9InB1YmxpY2F0aW9uIj4gICAgICAgIA0K CQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay8iID5ndWFyZGlh bi5jby51azwvYT4sCQkJDQoJCQkJICAgICAgICAgICAgTW9uZGF5IDMxIEF1Z3Vz dCAyMDA5IDE0LjAwIEJTVAkgICAgICAgIAkgICAgICAgIA0KICAgICAgICA8L2xp PiANCgkJDQoJDQoJCQ0KCQkNCgk8L3VsPg0KDQogICAgCSAgICANCg0KDQoNCg0K DQoJCQ0KCQkJCQkJCQ0KDQogICAgICAgIA0KDQoNCg0KDQoNCjxkaXYgaWQ9ImFy dGljbGUtd3JhcHBlciI+DQoNCg0KDQoNCgkNCgkJCTxwPkJlaXJ1dCBoYXMgYmVl biBsYWJlbGxlZCB0aGUgUGFyaXMsIHNvbWV0aW1lcyB0aGUgU3dpdHplcmxhbmQs IG9mIHRoZSBNaWRkbGUgRWFzdC4gQWNjb3JkaW5nIHRvIG9uZSByZWNlbnQgPGEg aHJlZj0iaHR0cDovL3RyYXZlbC5ueXRpbWVzLmNvbS8yMDA5LzA4LzAyL3RyYXZl bC8wMmdheWJlaXJ1dC5odG1sP3BhZ2V3YW50ZWQ9MSZhbXA7ZW1jPWV0YTEiIHRp dGxlPSJOZXcgWW9yayBUaW1lcyI+TmV3IFlvcmsgVGltZXMgYXJ0aWNsZTwvYT4s IGl0IGlzIG5vdyB0aGUgcmVnaW9uJ3MgPGEgaHJlZj0iaHR0cDovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9Qcm92aW5jZXRvd24sX01hc3NhY2h1c2V0dHMiIHRpdGxl PSIiPlByb3ZpbmNldG93bjwvYT4gKHRoZSBDYXBlIENvZCByZXNvcnQgZmF2b3Vy ZWQgYnkgZ2F5IHZpc2l0b3JzKS4gVGhpcyBldmVyLWNoYW5naW5nIGNpdHkgc2Vl bXMgdG8gaGF2ZSBiZWNvbWUgYSBtaXJyb3Igd2hlcmUgcGVvcGxlIHByb2plY3Qg dGhlaXIgb3duIGZhbnRhc2llcy48L3A+PHA+Q29tcGFyaW5nIEJlaXJ1dCB3aXRo IGFub3RoZXIgY2l0eSwgd2hldGhlciBQYXJpcywgUm9tZSBvciBQcm92aW5jZXRv d24gaXMgYSBkZW5pYWwgb2YgaXRzIHVuaXF1ZW5lc3MuIEJlaXJ1dCdzIGdheSBj dWx0dXJlIGlzIGFsc28gdW5pcXVlIGFuZCBzcGVjaWZpYy4gQXMgYSBnYXkgbWFu IHdobyBoYXMgbGl2ZWQgaW4gdGhlIGNpdHkgZm9yIG1vcmUgdGhhbiAzMCB5ZWFy cywgSSBrbm93IHRoYXQgbm90aW9ucyBzdWNoIGFzICJnYXkiLCAic3RyYWlnaHQi LCAicHVibGljIGRpc3BsYXlzIG9mIGFmZmVjdGlvbiIgYW5kICJob21vcGhvYmlh IiBjYW4gdGFrZSBvbiBjb21wbGV0ZWx5IGRpZmZlcmVudCBmb3JtcyBhbmQgbWVh bmluZ3MgaW4gdGhpcyBwYXJ0IG9mIHRoZSB3b3JsZC4gWWV0IHRoZXJlIHdhcyBu byBtZW50aW9uIG9mIHRoZXNlIG51YW5jZXMgaW4gdGhlIE5ldyBZb3JrIFRpbWVz IGFydGljbGUsIG9idmlvdXNseSBidWlsdCBvbiBhIHNlcmllcyBvZiBkZW5pYWxz LjwvcD48cD4iV2hlbiBJIGdvIG91dCBmcm9tIEJhcmRvIFthIGdheS1mcmllbmRs eSByZXN0YXVyYW50XSBJIGFsd2F5cyBmZWVsIGF0IGVhc2UgaHVnZ2luZyBteSBm cmllbmRzIOKAkyBvZiBjb3Vyc2UgaW4gYSBkZWNlbnQgd2F5IOKAkyBpbiBmcm9u dCBvZiB0aGUgcG9saWNlLiBUaGlzIGlzIHRoZSBraW5kIG9mIGNoYW5nZSBJIGFt IHRhbGtpbmcgYWJvdXQsIiBSYWVkIGlzIHF1b3RlZCBhcyBzYXlpbmcuICBObyBt ZW50aW9uIG9mIHRoZSBmYWN0IHRoYXQgTGViYW5vbiwgbGlrZSBhbGwgY291bnRy aWVzIG9mIHRoZSByZWdpb24sIGlzIGEgcGxhY2Ugd2hlcmUgbWVuIG9mdGVuIHRv dWNoLCBraXNzIGFuZCBob2xkIGVhY2ggb3RoZXIncyBoYW5kcyBpbiBwdWJsaWMs IHdoZXRoZXIgZ2F5LCBzdHJhaWdodCwgcG9saWNlbWVuIG9yIG5vdCAod2hlcmVh cyBpbiBOZXcgWW9yaywgaG9sZGluZyBoYW5kcyBjYW4gYXBwYXJlbnRseSA8YSBo cmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tLzIwMDgvMTIvMDkvbnlyZWdpb24v MDlhc3NhdWx0Lmh0bWw/X3I9MSZhbXA7cmVmPW55cmVnaW9uIiB0aXRsZT0iIj5j b3N0IHlvdSB5b3VyIGxpZmU8L2E+KS4gT3IgdGhlIGZhY3QgdGhhdCBMZWJhbmVz ZSBoZXRlcm9zZXh1YWwgY291cGxlcyBkbyBub3QgbmVjZXNzYXJpbHkgc2hvdyBt b3JlIHB1YmxpYyBhZmZlY3Rpb24gdGhhbiBnYXkgb25lcywgYWxzbyBmb3IgcmVh c29ucyBvZiAiZGVjZW5jeSIuIElmIGFueSAiY2hhbmdlIiBoYXMgcmVjZW50bHkg b2NjdXJyZWQsIGl0IGlzIG9ubHkgaW4gdGhlIGZhbnRhc2llcyBvZiBzb21lLjwv cD48cD5SZWFkaW5nIHRoaXMgYXJ0aWNsZSwgaXQgc2VlbXMgYXMgdGhvdWdoIGdh eSBjdWx0dXJlIGluIExlYmFub24gd2FzIG5vbi1leGlzdGVudCB1bnRpbCB0aGUg Y2x1YnMgaXQgbWVudGlvbnMgb3BlbmVkIG9yIHRoZSA8YSBocmVmPSJodHRwOi8v YmVpcnV0LndvbGZiYXJzLmNvbS9hcHBsaWNhdGlvbi5odG1sIiB0aXRsZT0iTXIg QmVhciBBcmFiaWEiPk1yIEJlYXIgQXJhYmlhPC9hPiBlbGVjdGlvbiB0b29rIHBs YWNlLiBJbiByZWFsaXR5LCBvbmUgY291bGQgZ28gYmFjayB0byB0aGUgPGEgaHJl Zj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9QaG9lbmljaWEiIHRpdGxl PSIiPlBob2VuaWNpYW5zPC9hPiB0byBmaW5kIHNhbWUtc2V4IHJlbGF0aW9ucyBh biBpbnRlZ3JhbCBwYXJ0IG9mIGxvY2FsIGN1bHR1cmUuIEluIG1vcmUgcmVjZW50 IHllYXJzLCBhbmQgZXZlbiBkdXJpbmcgdGhlIGNpdmlsIHdhciAoMTk3NS05MCks IGdheSBtZW4gYW5kIHdvbWVuIGhhdmUgZ2F0aGVyZWQgYW5kIHBhcnRpZWQgaW4g bWFueSBwdWJsaWMgcGxhY2VzLCBtb3JlIG9yIGxlc3MgdmlzaWJsZSBidXQgbm9u ZXRoZWxlc3MgdmlicmFudC48L3A+PHA+VGhlIGF1dGhvciBub3Qgb25seSBkZW5p ZXMgbG9jYWwgZ2F5IGN1bHR1cmUgaXRzIGhpc3RvcnksIGJ1dCBhbHNvIGl0cyBy ZWFsIHNwYWNlLiBNb3N0IG9mIHRoZSB2ZW51ZXMgY2l0ZWQgaW4gdGhlIGFydGlj bGUgYXJlIGhhbmdvdXRzIGZvciB0aGUgQmVpcnV0aSBtb25leWVkIMOpbGl0ZS4g SW4gc29tZSwgeW91IHdpbGwgbm90IGJlIGFkbWl0dGVkIGlmIHlvdSBkb24ndCBj b21lIHdpdGggYW4gZXhwZW5zaXZlIGNhciBvciB3ZWFyIGNlcnRhaW4gZmFzaGlv biBicmFuZHMuIFRoYW5rZnVsbHksIHRoZSB2YXN0IG1ham9yaXR5IG9mIHRoZSBM ZWJhbmVzZSBkb24ndCBiZWxvbmcgdG8gdGhpcyBvYm5veGlvdXMgY3Jvd2QuIFRo ZSBsZXNzIGFmZmx1ZW50IGdheSBwb3B1bGF0aW9uIG1lZXRzIGluIGRpZmZlcmVu dCBwbGFjZXMsIGRvZXNuJ3QgdGFsayBhYm91dCBpdHMgZXNjYXBhZGVzIGluIHRo ZSBNYXJhaXMgb3IgU29obywgZG9lc24ndCBhbHdheXMgc3BlYWsgRW5nbGlzaCBv ciBGcmVuY2ggb3Igd2F0Y2ggU2V4IGFuZCB0aGUgQ2l0eS4gSW4gZmFjdCwgaXQg c2VlbXMgdG8gaGF2ZSBpdHMgb3duIHdvcmxkLCBtdWNoIGxhcmdlciBhbmQgbW9y ZSBvcGVuIHRoYW4gdGhlIG9uZSBkZXNjcmliZWQgaW4gdGhlIGFydGljbGUuPC9w PjxwPlRoZSBzdG9yeSBvZiBQYXJhZGlzZSBCZWFjaCBpcyBhIHRlbGxpbmcgZXhh bXBsZS4gVGhpcyBsYXJnZSBwdWJsaWMgYmVhY2ggaW4gdGhlIGNpdHkgb2YgPGEg aHJlZj0iaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CeWJsb3MiIHRpdGxl PSIiPkJ5YmxvczwvYT4gd2FzICB2ZXJ5IHBvcHVsYXIgd2l0aCB3b3JraW5nLWNs YXNzIGdheSBtZW4gZnJvbSBkaWZmZXJlbnQgY2l0aWVzIGFuZCByZWxpZ2lvbnMu IEEgY29sb3VyZnVsIHBsYWNlIHdoZXJlIGdheSBtZW4gbWluZ2xlZCBhbmQgZmxp cnRlZCBtb3JlIGZyZWVseSB0aGFuIGVsc2V3aGVyZS4gVW50aWwgdGhlIGRheSB0 aGUgYmVhY2ggd2FzIHByaXZhdGlzZWQgYW5kIHR1cm5lZCBpbnRvIGEgbHV4dXJ5 IHJlc29ydCwgd2l0aCBhIHN0cmljdCBhZG1pdHRhbmNlIHBvbGljeS4gSG93ZXZl ciwgYSBzbWFsbCBzdHJpcCBvZiBsYW5kIHdhcyBzdGlsbCBsZWZ0IHVuc29sZCBh bmQgZnJlcXVlbnRlZCBieSB0aGUgd29ya2luZy1jbGFzcyBnYXlzLiBUaGUgc2ln aHQgd2FzIGFtdXNpbmc6IHRoZSByZXNvcnQncyBzdGlmZiBhbmQgYm91cmdlb2lz IGNyb3dkcyDigJMgZ2F5IGFuZCBzdHJhaWdodCBhbGlrZSDigJMgZXllaW5nIHdp dGggdXR0ZXIgc2hvY2sgdGhlaXIgZmxhbWJveWFudCBuZWlnaGJvdXJzLiBUb2Rh eSB0aGVyZSBhcmUgbm8gbW9yZSBwdWJsaWMgZ2F5IGJlYWNoZXMgbGVmdCBpbiBM ZWJhbm9uLjwvcD48cD5UaGUgYXJ0aWNsZSBhbHNvIGRlbmllcyBvdGhlciBBcmFi IGNvdW50cmllcyB0aGVpciBvd24gZ2F5IGN1bHR1cmVzLiBNYW55IHdlc3Rlcm4g am91cm5hbGlzdHMgc3VtIHVwIEFyYWIgZ2F5IHJlYWxpdGllcyB3aXRoIHNlbnRl bmNlcyBsaWtlOiAiU2F1ZGkgQXJhYmlhOiBob21vc2V4dWFsaXR5IHB1bmlzaGFi bGUgYnkgZGVhdGgiLCAiSXJhcTogZ2F5IG1lbiBraWxsZWQuIiBGdWxsIHN0b3Au IEJ1dCBnYXkgbWVuIGFyZSBhbHNvIGtpbGxlZCBpbiAiY2l2aWxpc2VkIiB3ZXN0 ZXJuIGNvdW50cmllcy4gV2hpbGUgaG9tb3Bob2JpYSBpcyBjZXJ0YWlubHkgYSBw cm9ibGVtIGluIEFyYWIgY291bnRyaWVzLCBsaWtlIGFueXdoZXJlIGVsc2UsIGl0 IG5ldmVyIG92ZXJzaGFkb3dzIHRoZSB0aHJpdmluZyBhbmQgbGl2ZWx5IGxvY2Fs IGdheSBjdWx0dXJlcy4gWWV0IG5vIG9uZSB0YWxrcyBhYm91dCB0aGVzZSBjdWx0 dXJlcy4gIkNhaXJvOiBiYWQiLCAiRGFtYXNjdXM6IGJhZCIsIHdlJ3JlIHRvbGQg YnkgUmljYXJkbywgdGhlIFNwYW5pYXJkIGluIHRoZSBhcnRpY2xlLiBFdmVuIER1 YnlhIGFuZCBoaXMgIkF4aXMgb2YgRXZpbCIgd291bGQgZW52eSBzdWNoICBlbG9x dWVuY2UuPC9wPjxwPkhvdyBpcm9uaWMgdGhhdCBtYW55IExlYmFuZXNlIGdheSBt ZW4sIGluY2x1ZGluZyBteXNlbGYsIGFjdHVhbGx5IGZlZWwgbW9yZSBjb21mb3J0 YWJsZSBpbiBwbGFjZXMgbGlrZSBEYW1hc2N1cyBvciBBbW1hbiBhbmQgZ28gdGhl cmUgb2Z0ZW4gaW4gb3JkZXIgdG8gZXNjYXBlIHRoZSBCZWlydXRpIGFnaXRhdGlv bi4gVGhlcmUgbWlnaHQgYmUgbm8gS3lsaWUgTWlub2d1ZSBuaWdodHMgdGhlcmUs IGJ1dCBvbiB0aGUgb3RoZXIgaGFuZCB0aGVyZSBpcyBhIGxvdCBsZXNzIHNub2Ji ZXJ5IGFuZCBsZXNzIGZ1c3MgYWJvdXQgaG9tb3NleHVhbGl0eS4gTXkgZnJpZW5k IEFsaSByZWNlbnRseSB3ZW50IHRvIEpvcmRhbiB0byBiZSB3ZWRkZWQgdG8gaGlz IGJveWZyaWVuZCBieSBhIE11c2xpbSBjbGVyaWMgYW5kIHRoZW4gc3BlbnQgaGlz IGhvbmV5bW9vbiBpbiBEYW1hc2N1cy4gVGhlIGFkdmFudGFnZSBvZiBzdWNoIHRy aXBzIGFsc28gY29tZXMgaW4gZmluZGluZyBhbiBhbm9ueW1pdHkgb25lIGlzIGRl bmllZCBhdCBob21lLjwvcD48cD5CdXQgZXZlbiBBbW1hbiBzZWVtcyB0byBoYXZl IGl0cyAiZ2xvYmFsaXNlZCIgPGEgaHJlZj0iaHR0cDovL3d3dy55b3V0dWJlLmNv bS93YXRjaD92PW1ja0NXd2swWnVJJmFtcDtldXJsPWh0dHAlM0ElMkYlMkZ3d3cl MkV0b3dsZXJvYWQlMkVjb20lMkYyMDA5JTJGMDclMkZnYXklMkRtaWRkbGUlMkRl YXN0JTJEcmVwb3J0cyUyRG9uJTJEbXklMkRrYWxpJTJEZmlyc3QlMkRnYXklMkRt YWdhemluZSUyRGluJTJEam9yZGFuJTJFaHRtbCZhbXA7ZmVhdHVyZT1wbGF5ZXJf ZW1iZWRkZWQiIHRpdGxlPSIiPmdheSBjcm93ZDwvYT4uIFdhdGNoaW5nIFVnbHkg QmV0dHkgYW5kIHdlYXJpbmcgRCZhbXA7RyBpcyB3aGF0IGdheSBjdWx0dXJlIGlz IGFib3V0LCB0aGVzZSBwZW9wbGUgc2VlbSB0byBzYXksIGFsb25nIHdpdGggdGhl IE5ZVCBhcnRpY2xlIGFuZCBtYW55IGdheSBtZW4gYWNyb3NzIHRoZSBnbG9iYWwg dmlsbGFnZS4gSSBjYW4gc3RpbGwgcmVtZW1iZXIgaG93IGRpc2NvdmVyaW5nIFN0 ZXZlbiwgdGhlIGdheSBjaGFyYWN0ZXIgaW4gRHluYXN0eSwgZHVyaW5nIG15IGNo aWxkaG9vZCBpbiB0aGUgMTk4MHMsIG9wZW5lZCBhIHdob2xlIG5ldyBwZXJzcGVj dGl2ZSBmb3IgbWUuIEl0IGlzIGFub3RoZXIgbWF0dGVyIGFsdG9nZXRoZXIgdG8g ZXF1YXRlIHRoaXMgbWFzcyBjb25zdW1wdGlvbiB3aXRoIGdheSBjdWx0dXJlLCBv ciBldmVuIHdpdGggZ2F5IHJpZ2h0cyBhZHZvY2FjeS4gSnVzdCBhcyBCZWlydXQn cyBvbGQgbmVpZ2hib3VyaG9vZHMgYXJlIGJlaW5nIGdlbnRyaWZpZWQsIGl0cyAi c3VwZXJiIGFyY2hpdGVjdHVyZSIgKHNpYykgYmVpbmcgdG9ybiBkb3duIHRvIG1h a2Ugd2F5IGZvciBzb3VsbGVzcywgc3VydmVpbGxhbmNlLWNhbWVyYS1lcXVpcHBl ZCBza3lzY3JhcGVycywgaXRzIGxvY2FsIGdheSBjdWx0dXJlIGlzIGZhY2luZyB0 aGUgY2hhbGxlbmdlIG9mIE1jRG9uYWxkaXNhdGlvbi48L3A+PHA+SG93IGxvbmcg YmVmb3JlIHdyaXRlcnMgc3RhcnQgZGVzY3JpYmluZyBCZWlydXQgYXMgYSBuZXcg QmFuZ2tvayDigJMgcmF0aGVyIHRoYW4gYSBQcm92aW5jZXRvd24/V2lsbCBzZXgg dG91cmlzbSBhZHZhbmNlIGl0cyBwb3B1bGF0aW9uJ3MgZ2F5IHJpZ2h0cyBvciBz b2NpYWwgd2VsbGJlaW5nPyBJbiB0aGUgbWVhbnRpbWUsIEJlaXJ1dCBpcyBjZXJ0 YWlubHkgdHVybmluZyBiYWNrIGludG8gdGhlIHBsYXlncm91bmQgb2YgbXVsdGlu YXRpb25hbCBjb21wYW5pZXMsIHJlZ2lvbmFsIGludGVyZXN0cyBhbmQgZ3JlZWR5 IGVudHJlcHJlbmV1cnMgKCJJIGNhbiBzZWUgYSBmdXR1cmUgZm9yIHVzIGhlcmUi LCBvbmUgYnVzaW5lc3NtYW4gc2F5cyBpbiB0aGUgYXJ0aWNsZSkuPC9wPjxwPlRo ZSBOWVQgYXJ0aWNsZSBmYWxscyBpbnRvIHRoZSBjYXRlZ29yeSBvZiB0aGUgaW5m b21lcmNpYWwsIHRhaWxvci1tYWRlIGZvciBhIGNlcnRhaW4gY2xpZW50ZWxlLCBh bmQgaXQgaGFzIGV2ZXJ5IHJpZ2h0IHRvLiBIb3dldmVyLCBpdCBpcyB0eXBpY2Fs IG9mIG11Y2ggcmVwb3J0aW5nIGFib3V0IHRoZSBBcmFiIHdvcmxkLCBwZXJwZXR1 YXRpbmcgdGlyZWQgc3RlcmVvdHlwZXM6IEFyYWJzIGFyZSBob21vcGhvYmVzLCBl eGNlcHQgZm9yIHRoZSAid2VzdGVybmlzZWQiIG9uZXMsIEFyYWJzIGFyZSAic2V4 eSBzYXZhZ2VzIi4gSW4gZG9pbmcgc28sIG5vdCBvbmx5IGlzIGl0IGV4dGVuZGlu ZyB0aGUgY3VsdHVyYWwgZ2FwIGZ1cnRoZXIsIGJ1dCBpdCBpcyBhbHNvIGV4cG9z aW5nIGEgbXVjaCB3aWRlciBkaXZpZGU6IHRoZSBvbmUgYmV0d2VlbiB0aGUgaGF2 ZXMgYW5kIHRoZSBoYXZlLW5vdHMuPC9wPg0KCQ0KCQkJCQkNCjwvZGl2Pg0KDQog ICAgDQogICAgICAgICAgICAgICAgDQo8L2Rpdj4NCg0KCQkNCjxkaXYgaWQ9InJl bGF0ZWQiPg0KCQkNCgkJCQkJCQ0KCQkgICAgCQkNCg0KDQoNCg0KDQoJPHVsIGlk PSJhcnRpY2xlLXRvb2xib3gtc2lkZSI+DQoJDQoNCgkJCQkJCQk8bGkgY2xhc3M9 InByaW50YWJsZSI+PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9j b21tZW50aXNmcmVlLzIwMDkvYXVnLzMxL2xlYmFub24tZ2F5LXJpZ2h0cy9wcmlu dCIgcmVsPSJub2ZvbGxvdyIgaWQ9InByaW50bGluayIgY2xhc3M9InByaW50YWJs ZSByb2xsb3ZlciIgdGl0bGU9IkxpbmsgdG8gYSBwcmludGVyLWZyaWVuZGx5IHZl cnNpb24iID48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRp Yy84NjY2OS9jb21tb24vaW1hZ2VzL2ljb25fcHJpbnQuZ2lmIiBhbHQ9IlByaW50 IHRoaXMiIGNsYXNzPSJ0cmFpbC1pY29uIiAvPjxzcGFuPlByaW50YWJsZSB2ZXJz aW9uPC9zcGFuPjwvYT48L2xpPg0KCQkNCgkJCTxsaT48YSBjbGFzcz0icm9sbG92 ZXIgc2VuZC1lbWFpbCIgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9l bWFpbC8zNTIzNDE4NzEiICB0aXRsZT0iT3BlbnMgYW4gZW1haWwgZm9ybSIgPjxp bWcgc3JjPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2Nv bW1vbi9pbWFnZXMvaWNvbl9lbWFpbC1mcmllbmQuZ2lmIiBhbHQ9IiIgY2xhc3M9 InRyYWlsLWljb24iIC8+PHNwYW4+U2VuZCB0byBhIGZyaWVuZDwvc3Bhbj48L2E+ PC9saT4NCgkJDQoJCQk8bGk+PGEgY2xhc3M9InJvbGxvdmVyIHNlbmQtc2hhcmUi ICAgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9zaGFyZS8zNTIzNDE4 NzEiIHRpdGxlPSJPcGVucyBhIHNoYXJlIHRoaXMgcGFnZSBpbiBhIG5ldyB3aW5k b3ciID48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84 NjY2OS9jb21tb24vaW1hZ2VzL2ljb25fc2hhcmUuZ2lmIiBhbHQ9IiIgY2xhc3M9 InRyYWlsLWljb24iIC8+PHNwYW4+U2hhcmU8L3NwYW4+PC9hPjwvbGk+DQoJCQ0K CQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMv Y2xpcHBpbmdzL2FkZD9yMlBhZ2VJZD0xMjY5NTk3IiBpZD0iY2xpcHBhYmxlIiB0 aXRsZT0iU2VuZHMgdGhpcyBwYWdlIHRvIHlvdXIgY2xpcHBpbmdzIGZpbGUiIGNs YXNzPSJyb2xsb3ZlciBhbmNob3ItYmFzZWQtbG9naW4tcmVxdWlyZWQgcGFja2Fn ZS1yZXF1aXJlZC1ZQ0xEIiA+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5j by51ay9zdGF0aWMvODY2NjkvY29tbW9uL2ltYWdlcy9pY29uX2NsaXAuZ2lmIiBh bHQ9IiIgY2xhc3M9InRyYWlsLWljb24iIC8+PHNwYW4+Q2xpcDwvc3Bhbj48L2E+ PC9saT4NCgkJDQoJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay9jb250YWN0dXMvMzUyMzQxODcxIiAgY2xhc3M9InJvbGxvdmVyIGNvbnRh Y3QtbGluayIgdGl0bGU9IkRpc3BsYXlzIGNvbnRhY3QgZGF0YSBmb3IgZ3VhcmRp YW4uY28udWsiPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3Rh dGljLzg2NjY5L2NvbW1vbi9pbWFnZXMvaWNvbl9lbWFpbC11cy5naWYiIGFsdD0i IiBjbGFzcz0idHJhaWwtaWNvbiIgLz48c3Bhbj5Db250YWN0IHVzPC9zcGFuPjwv YT48L2xpPg0KCQkNCgkJDQoJCQk8bGkgY2xhc3M9InJlc2l6ZSI+DQoJCQkNCgkJ CTxpbWcgc3JjPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5 L2NvbW1vbi9pbWFnZXMvaWNvbl9mb250LmdpZiIgYWx0PSIiIGNsYXNzPSJ0cmFp bC1pY29uIiAvPg0KCQkJPGEgaHJlZj0iL2hlbHAvYWNjZXNzaWJpbGl0eSIgaWQ9 Imxhcmdlci1zaWRlYmFyIiB0aXRsZT0iSW5jcmVhc2UgdGV4dCBzaXplIj5sYXJn ZXI8L2E+IHwgDQoJCQk8YSBocmVmPSIvaGVscC9hY2Nlc3NpYmlsaXR5IiBpZD0i c21hbGxlci1zaWRlYmFyIiB0aXRsZT0iRGVjcmVhc2UgdGV4dCBzaXplIj5zbWFs bGVyPC9hPgkJPC9saT4NCgkNCgkJCQkNCiAgICANCiAgICANCjwvdWw+DQoNCgkg ICAgDQoNCg0KPGRpdiBjbGFzcz0idG9vbGJveC1wb3B1cCIgaWQ9InNlbmQtZW1h aWwtYm94Ij4NCgk8ZGl2IGNsYXNzPSJzZW5kLWlubmVyIj4NCgkJPGRpdiBjbGFz cz0ic2hhcmUtdG9wIj4NCgkJCTxoMz5FbWFpbDwvaDM+DQoJCQk8c3Bhbj48YSBj bGFzcz0iY2xvc2UtdG9vbGJveC1zZW5kLWVtYWlsIiBocmVmPSIjc2VuZC1lbWFp bCI+Q2xvc2U8L2E+PC9zcGFuPg0KCQk8L2Rpdj4NCgkJPGRpdj4NCgkJDQoJCQkJ ICAgICAgICAJICAgICAgIAkJICAgICAgICANCgkgICAgICAgIAkJCTxmb3JtIG1l dGhvZD0icG9zdCIgbmFtZT0iZW1haWx0aGlzIiBpZD0iZW1haWx0aGlzIiBhY3Rp b249Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvZW1haWwvMzUyMzQxODcxIj4N CgkJCQk8ZmllbGRzZXQ+DQoJCQkJCTxkaXY+DQoJCQkJCQk8bGFiZWwgZm9yPSJ0 byI+UmVjaXBpZW50J3MgZW1haWwgYWRkcmVzczwvbGFiZWw+DQoJCQkJCTwvZGl2 Pg0KCQkJCQk8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idG8iIG1heGxlbmd0aD0i NjQiIHZhbHVlPSIiIC8+DQoJCQkJCQkJCQk8L2ZpZWxkc2V0Pg0KCQkJCTxmaWVs ZHNldD4NCgkJCQkJPGRpdj4NCgkJCQkJCTxsYWJlbCBmb3I9Im5hbWUiPllvdXIg Zmlyc3QgbmFtZTwvbGFiZWw+DQoJCQkJCTwvZGl2Pg0KCQkJCSAgIDxpbnB1dCB0 eXBlPSJ0ZXh0IiBuYW1lPSJmaXJzdE5hbWUiIG1heGxlbmd0aD0iNjQiIHZhbHVl PSIiIC8+DQoJCQkJPC9maWVsZHNldD4NCgkJCQk8ZmllbGRzZXQ+DQoJCQkJCTxk aXY+DQoJCQkJCQk8bGFiZWwgZm9yPSJuYW1lIj5Zb3VyIHN1cm5hbWU8L2xhYmVs Pg0KCQkJCQk8L2Rpdj4NCgkJCQkgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0i c3VybmFtZSIgbWF4bGVuZ3RoPSI2NCIgdmFsdWU9IiIgLz4NCgkJCQkgICAJCQkJ PC9maWVsZHNldD4NCgkJCQk8ZmllbGRzZXQ+DQoJCQkJCTxkaXY+DQoJCQkJCQk8 bGFiZWwgZm9yPSJub3RlIj5BZGQgYSBub3RlIChvcHRpb25hbCk8L2xhYmVsPg0K CQkJCQkJPGJyIC8+PHNwYW4gaWQ9Indhcm5pbmctc2lkZSI+PC9zcGFuPg0KCQkJ CQk8L2Rpdj4NCgkJCQkgICA8dGV4dGFyZWEgbmFtZT0ibm90ZSIgY29scz0iMjUi IHJvd3M9IjUiIG9ua2V5dXA9ImZvcm1DaGVja2VyU2lkZSh0aGlzLDI1MCkiPjwv dGV4dGFyZWE+DQoJCQkJPC9maWVsZHNldD4NCgkJCQk8ZGl2IGNsYXNzPSJpbnB1 dHJvdyI+DQoJCQkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZW5kIiAv Pg0KCQkJCTwvZGl2Pg0KCQkJCTxwIGNsYXNzPSJpcF9sb2dnZWQiPllvdXIgSVAg YWRkcmVzcyB3aWxsIGJlIGxvZ2dlZDwvcD4NCgkJCTwvZm9ybT4NCgkJPC9kaXY+ DQoJPC9kaXY+DQo8L2Rpdj4NCgkgICAgDQoNCg0KPGRpdiBjbGFzcz0idG9vbGJv eC1wb3B1cCIgaWQ9InNlbmQtc2hhcmUtYm94Ij4NCiAgICA8ZGl2IGNsYXNzPSJz ZW5kLWlubmVyIj4NCiAgICA8ZGl2IGNsYXNzPSJzaGFyZS10b3AiPg0KICAgICAg ICAgICAgPGgzPlNoYXJlPC9oMz4NCiAgICAgICAgICAgIDxzcGFuPjxhIGNsYXNz PSJjbG9zZS10b29sYm94LXNlbmQtc2hhcmUiIGhyZWY9IiNzZW5kLXNoYXJlLWJv eCI+Q2xvc2U8L2E+PC9zcGFuPg0KICAgIDwvZGl2Pg0KICAgPHVsPg0KICAgICAg ICA8bGk+PGEgY2xhc3M9ImRpZ2ciIGhyZWY9Imh0dHA6Ly9kaWdnLmNvbS9zdWJt aXQ/cGhhc2U9MiZhbXA7dXJsPWh0dHAlM0ElMkYlMkZ3d3cuZ3VhcmRpYW4uY28u dWslMkZjb21tZW50aXNmcmVlJTJGMjAwOSUyRmF1ZyUyRjMxJTJGbGViYW5vbi1n YXktcmlnaHRzJmFtcDt0aXRsZT1CZWlydXQlM0ErY2l0eStvZitwcm9qZWN0ZWQr ZmFudGFzaWVzIiBuYW1lPSJsaWQ9e3NoYXJlfXtEaWdnfSI+RGlnZzwvYT48L2xp Pg0KICAgICAgPGxpPg0KICAgICAgICA8YSBjbGFzcz0icmVkZGl0IiBocmVmPSJo dHRwOi8vcmVkZGl0LmNvbS9zdWJtaXQ/dXJsPWh0dHAlM0ElMkYlMkZ3d3cuZ3Vh cmRpYW4uY28udWslMkZjb21tZW50aXNmcmVlJTJGMjAwOSUyRmF1ZyUyRjMxJTJG bGViYW5vbi1nYXktcmlnaHRzJmFtcDt0aXRsZT1CZWlydXQlM0ErY2l0eStvZitw cm9qZWN0ZWQrZmFudGFzaWVzIiBuYW1lPSJsaWQ9e3NoYXJlfXtyZWRkaXR9Ij5y ZWRkaXQ8L2E+DQogICAgICA8L2xpPg0KICAgICAgIDxsaT4NCiAgICAgICAgPGEg Y2xhc3M9Imdvb2dsZSIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tL2Jvb2tt YXJrcy9tYXJrP29wPWVkaXQmYW1wO2JrbWs9aHR0cCUzQSUyRiUyRnd3dy5ndWFy ZGlhbi5jby51ayUyRmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJGMzElMkZs ZWJhbm9uLWdheS1yaWdodHMmYW1wO3RpdGxlPUJlaXJ1dCUzQStjaXR5K29mK3By b2plY3RlZCtmYW50YXNpZXMiIG5hbWU9ImxpZD17c2hhcmV9e0dvb2dsZSBCb29r bWFya3N9Ij5Hb29nbGUgQm9va21hcmtzPC9hPg0KICAgICAgPC9saT4NCiAgICAg ICAgPGxpPg0KICAgICAgICAgICAgPGEgY2xhc3M9InR3aXR0ZXIiIGhyZWY9Imh0 dHA6Ly90d2l0dGVyLmNvbS9ob21lP3N0YXR1cz1odHRwJTNBJTJGJTJGd3d3Lmd1 YXJkaWFuLmNvLnVrJTJGY29tbWVudGlzZnJlZSUyRjIwMDklMkZhdWclMkYzMSUy RmxlYmFub24tZ2F5LXJpZ2h0cyIgbmFtZT0ibGlkPXtzaGFyZX17VHdpdHRlcn0i PlR3aXR0ZXI8L2E+DQogICAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAg IDxhIGNsYXNzPSJkZWxpY2lvdXMiIGhyZWY9Imh0dHA6Ly9kZWwuaWNpby51cy9w b3N0P3VybD1odHRwJTNBJTJGJTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVu dGlzZnJlZSUyRjIwMDklMkZhdWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyZh bXA7dGl0bGU9QmVpcnV0JTNBK2NpdHkrb2YrcHJvamVjdGVkK2ZhbnRhc2llcyIg bmFtZT0ibGlkPXtzaGFyZX17ZGVsLmljaW8udXN9Ij5kZWwuaWNpby51czwvYT4N CiAgICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDxhIGNsYXNzPSJzdHVt YmxldXBvbiIgaHJlZj0iaHR0cDovL3d3dy5zdHVtYmxldXBvbi5jb20vc3VibWl0 P3VybD1odHRwJTNBJTJGJTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVudGlz ZnJlZSUyRjIwMDklMkZhdWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyZhbXA7 dGl0bGU9QmVpcnV0JTNBK2NpdHkrb2YrcHJvamVjdGVkK2ZhbnRhc2llcyIgPlN0 dW1ibGVVcG9uPC9hPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAg PGEgY2xhc3M9Im5ld3N2aW5lIiBocmVmPSJodHRwOi8vd3d3Lm5ld3N2aW5lLmNv bS9fdG9vbHMvc2VlZCZhbXA7c2F2ZT9wb3BvZmY9MCZhbXA7dT1odHRwJTNBJTJG JTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVudGlzZnJlZSUyRjIwMDklMkZh dWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyZhbXA7aD1CZWlydXQlM0ErY2l0 eStvZitwcm9qZWN0ZWQrZmFudGFzaWVzIiA+TmV3c3ZpbmU8L2E+DQogICAgICA8 L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8YSBjbGFzcz0ibGl2ZWpvdXJuYWwi IGhyZWY9Imh0dHA6Ly93d3cubGl2ZWpvdXJuYWwuY29tL3VwZGF0ZS5ibWw/c3Vi amVjdD1odHRwJTNBJTJGJTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVudGlz ZnJlZSUyRjIwMDklMkZhdWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyIgbmFt ZT0ibGlkPXtzaGFyZX17bGl2ZWpvdXJuYWx9Ij5saXZlam91cm5hbDwvYT4NCiAg ICAgIDwvbGk+DQogICAgICA8bGk+DQogICAgICAgIDxhIGNsYXNzPSJmYWNlYm9v ayIgaHJlZj0iaHR0cDovL3d3dy5mYWNlYm9vay5jb20vc2hhcmUucGhwP3U9aHR0 cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51ayUyRmNvbW1lbnRpc2ZyZWUlMkYy MDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdheS1yaWdodHMiIG5hbWU9ImxpZD17 c2hhcmV9e0ZhY2Vib29rfSI+RmFjZWJvb2s8L2E+DQogICAgICA8L2xpPg0KICAg ICAgICA8bGk+DQogICAgICAgICAgICA8YSBjbGFzcz0ibWl4eCIgaHJlZj0iaHR0 cDovL3d3dy5taXh4LmNvbS9zdWJtaXQ/cGFnZV91cmw9aHR0cCUzQSUyRiUyRnd3 dy5ndWFyZGlhbi5jby51ayUyRmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJG MzElMkZsZWJhbm9uLWdheS1yaWdodHMiIG5hbWU9ImxpZD17c2hhcmV9e01peHh9 Ij5NaXh4IGl0ITwvYT4NCiAgICAgICAgPC9saT4NCiAgIDwvdWw+DQogICA8ZGl2 IGNsYXNzPSJjbGVhciI+PC9kaXY+DQogICA8L2Rpdj4NCjwvZGl2Pg0KCSAgICAN Cg0KPGRpdiBjbGFzcz0idG9vbGJveC1wb3B1cCIgaWQ9ImNvbnRhY3QtbGluay1i b3giPg0KCTxkaXYgY2xhc3M9InNlbmQtaW5uZXIiPg0KCQk8ZGl2IGNsYXNzPSJz aGFyZS10b3AiPg0KCQkJPGgzPkNvbnRhY3QgdXM8L2gzPg0KICAgICAgICAgICAg PHNwYW4+PGEgY2xhc3M9ImNsb3NlLXRvb2xib3gtY29udGFjdC1saW5rIiBocmVm PSIjY29udGFjdCI+Q2xvc2U8L2E+PC9zcGFuPg0KCQk8L2Rpdj4NCgkJDQoJCTxk aXYgY2xhc3M9ImNvbCBmaXJzdCI+DQoJCQkgICAgDQoNCgkJDQoNCgkNCgkNCgkJ CQkJDQoJCQk8dWw+DQoJCQkJPGxpPg0KCQkJCQkgICAgICAgICAgICAgICAgICAg ICAgICBSZXBvcnQgZXJyb3JzIG9yIGluYWNjdXJhY2llczogPGEgaHJlZj0ibWFp bHRvOnVzZXJoZWxwQGd1YXJkaWFuLmNvLnVrIj51c2VyaGVscEBndWFyZGlhbi5j by51azwvYT4NCiAgICAgICAgICAgICAgICAgICAgCQkJCTwvbGk+DQoJCQkJPGxp Pg0KCQkJCQkJCQkJCQlMZXR0ZXJzIGZvciBwdWJsaWNhdGlvbiBzaG91bGQgYmUg c2VudCB0bzogPGEgaHJlZj0ibWFpbHRvOmxldHRlcnNAZ3VhcmRpYW4uY28udWsi PmxldHRlcnNAZ3VhcmRpYW4uY28udWs8L2E+DQoJCQkJCQkJCQk8L2xpPg0KCQkJ PC91bD4NCgkJPC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNvbCI+DQoJCQk8dWw+DQoJ CQkJPGxpPg0KCQkJCQlJZiB5b3UgbmVlZCBoZWxwIHVzaW5nIHRoZSBzaXRlOiA8 YSBocmVmPSJtYWlsdG86dXNlcmhlbHBAZ3VhcmRpYW4uY28udWsiPnVzZXJoZWxw QGd1YXJkaWFuLmNvLnVrPC9hPg0KCQkJCTwvbGk+DQoJCQkJPGxpPg0KCQkJCQlD YWxsIHRoZSBtYWluIEd1YXJkaWFuIGFuZCBPYnNlcnZlciBzd2l0Y2hib2FyZDog PGJyIC8+PHNwYW4+KzQ0ICgwKTIwIDMzNTMgMjAwMDwvc3Bhbj4NCgkJCQk8L2xp Pg0KCQkJCTxsaT4NCgkJCQkJPHVsPg0KCQkJCQkJPGxpPg0KCQkJCQkJCTxhIGhy ZWY9Imh0dHA6Ly9hZGluZm8tZ3VhcmRpYW4uY28udWsvIj5BZHZlcnRpc2luZyBn dWlkZTwvYT4NCgkJCQkJCTwvbGk+DQoJCQkJCQk8bGk+DQoJCQkJCQkJPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9zeW5kaWNhdGlvbi8iPkxpY2Vu c2UvYnV5IG91ciBjb250ZW50PC9hPg0KCQkJCQkJPC9saT4NCgkJCQkJPC91bD4N CgkJCQk8L2xpPg0KCQkJPC91bD4NCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4N CgkgICAgCSAgICANCg0KDQoNCg0KDQoJCQ0KCQkJCQkJCQ0KDQogICAgICAgIA0K DQoNCgkJICAgIAoKCiAgICAgICAgICAgIAoJPGRpdiBjbGFzcz0icmVsYXRlZGxp bmtzIiBjbGFzcz0iY2Fwc3VsZSI+CgkJCgkJCQkJCQkKCQkJCQk8aDMgY2xhc3M9 J2ZpcnN0Jz48YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3dvcmxk IiA+V29ybGQgbmV3czwvYT48L2gzPgoJCQkJCQoJCQkJCQk8dWwgY2xhc3M9InJl bGF0ZWRsaW5rcy1rZXl3b3JkcyI+CgkJCQkJCTxsaT4KCQkJCQkJCQkJCQkJCQkJ CQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93b3JsZC9sZWJh bm9uIiAgcmVsPSJ0YWciPkxlYmFub248L2E+ICZtaWRkb3Q7CQkJCQkJCQkJCQkJ CQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9 Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvd29ybGQvZ2F5LXJpZ2h0cyIgIHJl bD0idGFnIj5HYXkgcmlnaHRzPC9hPiAmbWlkZG90OwkJCQkJCQkJCQkJCQkJCTwv bGk+CgkJCQkJCQkJPGxpPgoJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3dvcmxkL21pZGRsZWVhc3QiICByZWw9InRh ZyI+TWlkZGxlIEVhc3Q8L2E+IAkJCQkJCQkJCQkJCQkJCTwvbGk+CgkJCQk8L3Vs PgoJCQkJCgkJCgkJCQkJCgkJCgkJCQkJCQkKCQkJCTxkaXYgaWQ9InRvbmVzIiBj bGFzcz0ibW9yZS1vZiI+CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ PGgzIGNsYXNzPSJmaXJzdCI+PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay90b25lL2NvbW1lbnQiID5Nb3JlIAkJCWNvbW1lbnQKCTwvYT48L2gzPgoJ CQkJCQkJCQkJCQkJCQk8L2Rpdj4KCQkJCQoJCQkJCQoJCQkJCQkJCgkKCQo8L2Rp dj4KCg0KCQkgICAgCSAgICANCg0KDQoNCg0KDQoJCQ0KCQkJCQkJCQ0KDQogICAg ICAgIAkJDQoJCQ0KCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJ CQ0KCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgIA0KICAgIA0KCQ0KCQkN CgkJCQkJCQkJDQoJICAgIAoKCiAgICAgICAgICAgIAoJPGRpdiBjbGFzcz0icmVs YXRlZGxpbmtzIiBjbGFzcz0iY2Fwc3VsZSI+CgkJCTxoMyBjbGFzcz0iY29tYmlu ZXItbW9yZS1vbiBmaXJzdCI+TW9yZSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZSIgPkNvbW1lbnQgaXMgZnJlZTwv YT4gb248L2gzPgoJCQoJCQkJCQkJCgkJCQkJPGgzIGNsYXNzPSdmaXJzdCc+V29y bGQgbmV3czwvaDM+CgkJCQkJCgkJCQkJCTx1bCBjbGFzcz0icmVsYXRlZGxpbmtz LWtleXdvcmRzIj4KCQkJCQkJPGxpPgoJCQkJCQkJCQkJCQkJCQkJCQk8YSBocmVm PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvY29tbWVu dGlzZnJlZSt3b3JsZC9sZWJhbm9uIiAgcmVsPSJ0YWciPkxlYmFub248L2E+ICZt aWRkb3Q7CQkJCQkJCQkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJ CQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29t bWVudGlzZnJlZS9jb21tZW50aXNmcmVlK3dvcmxkL2dheS1yaWdodHMiICByZWw9 InRhZyI+R2F5IHJpZ2h0czwvYT4gJm1pZGRvdDsJCQkJCQkJCQkJCQkJCQk8L2xp PgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cDov L3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlL2NvbW1lbnRpc2ZyZWUr d29ybGQvbWlkZGxlZWFzdCIgIHJlbD0idGFnIj5NaWRkbGUgRWFzdDwvYT4gCQkJ CQkJCQkJCQkJCQkJPC9saT4KCQkJCTwvdWw+CgkJCQkKCQkKCQkJCQkKCQkKCQkJ CQoJCQkJCQkJCgkKCQo8L2Rpdj4KCg0KDQoJCQkJCQkJCQkNCgkJCQkJCQkgICAg ICAgIA0KDQoJCQ0KDQoJCQkJDQoJCQkgICAgCQ0KCQkJICAgIA0KDQoNCgkNCgkJ DQoJCQ0KCQkNCgkJPGRpdiBjbGFzcz0icmVsYXRlZC1jb250ZW50Ij4NCgkJCQkN CgkJCQ0KCQkJCQkJPGRpdiBjbGFzcz0icmVsYXRlZC1pdGVtIG11bHRpIGxhc3Qi Pg0KCQkJDQoJCQkJCQkJCQkJCQkJCQk8cCBjbGFzcz0ic3RyYXAiPlJlbGF0ZWQ8 L3A+DQoJCQkJCQkJCQkJCQkJCQkJCQkJPGg1IGNsYXNzPSJkYXRlIj4NCgkJCQky MiBPY3QgMjAwOTwvaDU+DQoJCQkJCQkJCQkJPHAgY2xhc3M9Imxpbmt0ZXh0Ij4N CgkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28u dWsvY29tbWVudGlzZnJlZS8yMDA5L29jdC8yMi9zeXJpYS10dXJrZXktc2F1ZGkt YXJhYmlhIiA+DQoJCQkJCQkgICAgDQoNCgkJDQoNCg0KCQkJCQkJV2hvIGFyZSBT eXJpYSdzIHJlYWwgZnJpZW5kcz8gfCBJYW4gQmxhY2s8L2E+DQoJCQkJPC9wPiAN CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8aDUgY2xhc3M9ImRhdGUiPg0KCQkJ CTIxIFNlcCAyMDA3PC9oNT4NCgkJCQkJCQkJCQk8cCBjbGFzcz0ibGlua3RleHQi Pg0KCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay93b3JsZC8yMDA3L3NlcC8yMS9zeXJpYS5sZWJhbm9uMSIgPg0KCQkJCQkJ ICAgIA0KDQoJCQ0KDQoNCgkJCQkJCUJlaXJ1dCBtb3VybnMgbXVyZGVyZWQgTGVi YW5lc2UgTVAgR2hhbmVtPC9hPg0KCQkJCTwvcD4gDQoJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkJPGg1IGNsYXNzPSJkYXRlIj4NCgkJCQkyMCBTZXAgMjAwNzwvaDU+ DQoJCQkJCQkJCQkJPHAgY2xhc3M9Imxpbmt0ZXh0Ij4NCgkJCQkJCQkJCQkJCQkJ CTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJl ZS8yMDA3L3NlcC8yMC90aGVsZWJhbmVzZWxhYnlyaW50aCIgPg0KCQkJCQkJICAg IA0KDQoJCQ0KDQoNCgkJCQkJCVRoZSBMZWJhbmVzZSBsYWJ5cmludGggPC9hPg0K CQkJCTwvcD4gDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPGg1IGNsYXNzPSJk YXRlIj4NCgkJCQkxMiBNYXIgMjAwNzwvaDU+DQoJCQkJCQkJCQkJPHAgY2xhc3M9 Imxpbmt0ZXh0Ij4NCgkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZS8yMDA3L21hci8xMi9ibGluZGVk Ynl0aGVyaWdodCIgPg0KCQkJCQkJICAgIA0KDQoJCQ0KDQoNCgkJCQkJCUJsaW5k ZWQgYnkgdGhlIHJpZ2h0PC9hPg0KCQkJCTwvcD4gDQoJCQkJCQkJPC9kaXY+DQoN CgkJCQ0KCQk8L2Rpdj4NCgkJDQoJCQkJDQoJDQoNCg0KCQkJDQoJCQkJCTwvZGl2 Pg0KDQoNCg0KCQ0KCQkNCiAgICAJCQ0KDQoNCg0KDQoNCgk8dWwgaWQ9ImFydGlj bGUtdG9vbGJveCI+DQoNCg0KCQkJCQkJCTxsaSBjbGFzcz0icHJpbnRhYmxlIj48 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUv MjAwOS9hdWcvMzEvbGViYW5vbi1nYXktcmlnaHRzL3ByaW50IiByZWw9Im5vZm9s bG93IiBpZD0icHJpbnRsaW5rIiBjbGFzcz0icHJpbnRhYmxlIHJvbGxvdmVyIiB0 aXRsZT0iTGluayB0byBhIHByaW50ZXItZnJpZW5kbHkgdmVyc2lvbiIgPjxpbWcg c3JjPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1v bi9pbWFnZXMvaWNvbl9wcmludC5naWYiIGFsdD0iUHJpbnQgdGhpcyIgY2xhc3M9 InRyYWlsLWljb24iIC8+PHNwYW4+UHJpbnRhYmxlIHZlcnNpb248L3NwYW4+PC9h PjwvbGk+DQoJCQ0KCQkJPGxpPjxhIGNsYXNzPSJyb2xsb3ZlciBzZW5kLWVtYWls IiBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2VtYWlsLzM1MjM0MTg3 MSIgIHRpdGxlPSJPcGVucyBhbiBlbWFpbCBmb3JtIiA+PGltZyBzcmM9Imh0dHA6 Ly9zdGF0aWMuZ3VpbS5jby51ay9zdGF0aWMvODY2NjkvY29tbW9uL2ltYWdlcy9p Y29uX2VtYWlsLWZyaWVuZC5naWYiIGFsdD0iIiBjbGFzcz0idHJhaWwtaWNvbiIg Lz48c3Bhbj5TZW5kIHRvIGEgZnJpZW5kPC9zcGFuPjwvYT48L2xpPg0KCQkNCgkJ CTxsaT48YSBjbGFzcz0icm9sbG92ZXIgc2VuZC1zaGFyZSIgICBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3NoYXJlLzM1MjM0MTg3MSIgdGl0bGU9Ik9w ZW5zIGEgc2hhcmUgdGhpcyBwYWdlIGluIGEgbmV3IHdpbmRvdyIgPjxpbWcgc3Jj PSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi9p bWFnZXMvaWNvbl9zaGFyZS5naWYiIGFsdD0iIiBjbGFzcz0idHJhaWwtaWNvbiIg Lz48c3Bhbj5TaGFyZTwvc3Bhbj48L2E+PC9saT4NCgkJDQoJCQk8bGk+PGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9jbGlwcGluZ3MvYWRk P3IyUGFnZUlkPTEyNjk1OTciIGlkPSJjbGlwcGFibGUiIHRpdGxlPSJTZW5kcyB0 aGlzIHBhZ2UgdG8geW91ciBjbGlwcGluZ3MgZmlsZSIgY2xhc3M9InJvbGxvdmVy IGFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCBwYWNrYWdlLXJlcXVpcmVkLVlD TEQiID48aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84 NjY2OS9jb21tb24vaW1hZ2VzL2ljb25fY2xpcC5naWYiIGFsdD0iIiBjbGFzcz0i dHJhaWwtaWNvbiIgLz48c3Bhbj5DbGlwPC9zcGFuPjwvYT48L2xpPg0KCQkNCgkJ CTxsaT48YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbnRhY3R1 cy8zNTIzNDE4NzEiICBjbGFzcz0icm9sbG92ZXIgY29udGFjdC1saW5rIiB0aXRs ZT0iRGlzcGxheXMgY29udGFjdCBkYXRhIGZvciBndWFyZGlhbi5jby51ayI+PGlt ZyBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9zdGF0aWMvODY2NjkvY29t bW9uL2ltYWdlcy9pY29uX2VtYWlsLXVzLmdpZiIgYWx0PSIiIGNsYXNzPSJ0cmFp bC1pY29uIiAvPjxzcGFuPkNvbnRhY3QgdXM8L3NwYW4+PC9hPjwvbGk+DQoJCQ0K CQkJPGxpIGNsYXNzPSJhcnRpY2xlLWhpc3RvcnkiPjxhIGhyZWY9IiMiIHRpdGxl PSJWaWV3IHRoZSBoaXN0b3J5IG9mIHRoaXMgYXJ0aWNsZSIgY2xhc3M9InJvbGxv dmVyIGhpc3RvcnktbGluayIgPjxpbWcgc3JjPSJodHRwOi8vc3RhdGljLmd1aW0u Y28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi9pbWFnZXMvaWNvbl9oaXN0b3J5Lmdp ZiIgYWx0PSIiIGNsYXNzPSJ0cmFpbC1pY29uIiAvPjxzcGFuPkFydGljbGUgaGlz dG9yeTwvc3Bhbj48L2E+PC9saT4NCgkJDQoJDQoJCQkJDQogICAgDQogICAgDQo8 L3VsPg0KDQoJICAgIA0KDQoNCjxkaXYgY2xhc3M9InRvb2xib3gtcG9wdXAiIGlk PSJzZW5kLWVtYWlsLWJveCI+DQoJPGRpdiBjbGFzcz0ic2VuZC1pbm5lciI+DQoJ CTxkaXYgY2xhc3M9InNoYXJlLXRvcCI+DQoJCQk8aDM+RW1haWw8L2gzPg0KCQkJ PHNwYW4+PGEgY2xhc3M9ImNsb3NlLXRvb2xib3gtc2VuZC1lbWFpbCIgaHJlZj0i I3NlbmQtZW1haWwiPkNsb3NlPC9hPjwvc3Bhbj4NCgkJPC9kaXY+DQoJCTxkaXY+ DQoJCQ0KCQkJCSAgICAgICAgCSAgICAgICAJCSAgICAgICAgDQoJICAgICAgICAJ CQk8Zm9ybSBtZXRob2Q9InBvc3QiIG5hbWU9ImVtYWlsdGhpcyIgaWQ9ImVtYWls dGhpcyIgYWN0aW9uPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2VtYWlsLzM1 MjM0MTg3MSI+DQoJCQkJPGZpZWxkc2V0Pg0KCQkJCQk8ZGl2Pg0KCQkJCQkJPGxh YmVsIGZvcj0idG8iPlJlY2lwaWVudCdzIGVtYWlsIGFkZHJlc3M8L2xhYmVsPg0K CQkJCQk8L2Rpdj4NCgkJCQkJPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InRvIiBt YXhsZW5ndGg9IjY0IiB2YWx1ZT0iIiAvPg0KCQkJCQkJCQkJPC9maWVsZHNldD4N CgkJCQk8ZmllbGRzZXQ+DQoJCQkJCTxkaXY+DQoJCQkJCQk8bGFiZWwgZm9yPSJu YW1lIj5Zb3VyIGZpcnN0IG5hbWU8L2xhYmVsPg0KCQkJCQk8L2Rpdj4NCgkJCQkg ICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iZmlyc3ROYW1lIiBtYXhsZW5ndGg9 IjY0IiB2YWx1ZT0iIiAvPg0KCQkJCTwvZmllbGRzZXQ+DQoJCQkJPGZpZWxkc2V0 Pg0KCQkJCQk8ZGl2Pg0KCQkJCQkJPGxhYmVsIGZvcj0ibmFtZSI+WW91ciBzdXJu YW1lPC9sYWJlbD4NCgkJCQkJPC9kaXY+DQoJCQkJICAgPGlucHV0IHR5cGU9InRl eHQiIG5hbWU9InN1cm5hbWUiIG1heGxlbmd0aD0iNjQiIHZhbHVlPSIiIC8+DQoJ CQkJICAgCQkJCTwvZmllbGRzZXQ+DQoJCQkJPGZpZWxkc2V0Pg0KCQkJCQk8ZGl2 Pg0KCQkJCQkJPGxhYmVsIGZvcj0ibm90ZSI+QWRkIGEgbm90ZSAob3B0aW9uYWwp PC9sYWJlbD4NCgkJCQkJCTxiciAvPjxzcGFuIGlkPSJ3YXJuaW5nLXNpZGUiPjwv c3Bhbj4NCgkJCQkJPC9kaXY+DQoJCQkJICAgPHRleHRhcmVhIG5hbWU9Im5vdGUi IGNvbHM9IjI1IiByb3dzPSI1IiBvbmtleXVwPSJmb3JtQ2hlY2tlclNpZGUodGhp cywyNTApIj48L3RleHRhcmVhPg0KCQkJCTwvZmllbGRzZXQ+DQoJCQkJPGRpdiBj bGFzcz0iaW5wdXRyb3ciPg0KCQkJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1 ZT0iU2VuZCIgLz4NCgkJCQk8L2Rpdj4NCgkJCQk8cCBjbGFzcz0iaXBfbG9nZ2Vk Ij5Zb3VyIElQIGFkZHJlc3Mgd2lsbCBiZSBsb2dnZWQ8L3A+DQoJCQk8L2Zvcm0+ DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KPC9kaXY+DQoJICAgIA0KDQoNCjxkaXYgY2xh c3M9InRvb2xib3gtcG9wdXAiIGlkPSJzZW5kLXNoYXJlLWJveCI+DQogICAgPGRp diBjbGFzcz0ic2VuZC1pbm5lciI+DQogICAgPGRpdiBjbGFzcz0ic2hhcmUtdG9w Ij4NCiAgICAgICAgICAgIDxoMz5TaGFyZTwvaDM+DQogICAgICAgICAgICA8c3Bh bj48YSBjbGFzcz0iY2xvc2UtdG9vbGJveC1zZW5kLXNoYXJlIiBocmVmPSIjc2Vu ZC1zaGFyZS1ib3giPkNsb3NlPC9hPjwvc3Bhbj4NCiAgICA8L2Rpdj4NCiAgIDx1 bD4NCiAgICAgICAgPGxpPjxhIGNsYXNzPSJkaWdnIiBocmVmPSJodHRwOi8vZGln Zy5jb20vc3VibWl0P3BoYXNlPTImYW1wO3VybD1odHRwJTNBJTJGJTJGd3d3Lmd1 YXJkaWFuLmNvLnVrJTJGY29tbWVudGlzZnJlZSUyRjIwMDklMkZhdWclMkYzMSUy RmxlYmFub24tZ2F5LXJpZ2h0cyZhbXA7dGl0bGU9QmVpcnV0JTNBK2NpdHkrb2Yr cHJvamVjdGVkK2ZhbnRhc2llcyIgbmFtZT0ibGlkPXtzaGFyZX17RGlnZ30iPkRp Z2c8L2E+PC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPGEgY2xhc3M9InJlZGRp dCIgaHJlZj0iaHR0cDovL3JlZGRpdC5jb20vc3VibWl0P3VybD1odHRwJTNBJTJG JTJGd3d3Lmd1YXJkaWFuLmNvLnVrJTJGY29tbWVudGlzZnJlZSUyRjIwMDklMkZh dWclMkYzMSUyRmxlYmFub24tZ2F5LXJpZ2h0cyZhbXA7dGl0bGU9QmVpcnV0JTNB K2NpdHkrb2YrcHJvamVjdGVkK2ZhbnRhc2llcyIgbmFtZT0ibGlkPXtzaGFyZX17 cmVkZGl0fSI+cmVkZGl0PC9hPg0KICAgICAgPC9saT4NCiAgICAgICA8bGk+DQog ICAgICAgIDxhIGNsYXNzPSJnb29nbGUiIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xl LmNvbS9ib29rbWFya3MvbWFyaz9vcD1lZGl0JmFtcDtia21rPWh0dHAlM0ElMkYl MkZ3d3cuZ3VhcmRpYW4uY28udWslMkZjb21tZW50aXNmcmVlJTJGMjAwOSUyRmF1 ZyUyRjMxJTJGbGViYW5vbi1nYXktcmlnaHRzJmFtcDt0aXRsZT1CZWlydXQlM0Er Y2l0eStvZitwcm9qZWN0ZWQrZmFudGFzaWVzIiBuYW1lPSJsaWQ9e3NoYXJlfXtH b29nbGUgQm9va21hcmtzfSI+R29vZ2xlIEJvb2ttYXJrczwvYT4NCiAgICAgIDwv bGk+DQogICAgICAgIDxsaT4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJ0d2l0dGVy IiBocmVmPSJodHRwOi8vdHdpdHRlci5jb20vaG9tZT9zdGF0dXM9aHR0cCUzQSUy RiUyRnd3dy5ndWFyZGlhbi5jby51ayUyRmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJG YXVnJTJGMzElMkZsZWJhbm9uLWdheS1yaWdodHMiIG5hbWU9ImxpZD17c2hhcmV9 e1R3aXR0ZXJ9Ij5Ud2l0dGVyPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgPGxp Pg0KICAgICAgICA8YSBjbGFzcz0iZGVsaWNpb3VzIiBocmVmPSJodHRwOi8vZGVs LmljaW8udXMvcG9zdD91cmw9aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51 ayUyRmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdh eS1yaWdodHMmYW1wO3RpdGxlPUJlaXJ1dCUzQStjaXR5K29mK3Byb2plY3RlZCtm YW50YXNpZXMiIG5hbWU9ImxpZD17c2hhcmV9e2RlbC5pY2lvLnVzfSI+ZGVsLmlj aW8udXM8L2E+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8YSBj bGFzcz0ic3R1bWJsZXVwb24iIGhyZWY9Imh0dHA6Ly93d3cuc3R1bWJsZXVwb24u Y29tL3N1Ym1pdD91cmw9aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51ayUy RmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdheS1y aWdodHMmYW1wO3RpdGxlPUJlaXJ1dCUzQStjaXR5K29mK3Byb2plY3RlZCtmYW50 YXNpZXMiID5TdHVtYmxlVXBvbjwvYT4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+ DQogICAgICAgIDxhIGNsYXNzPSJuZXdzdmluZSIgaHJlZj0iaHR0cDovL3d3dy5u ZXdzdmluZS5jb20vX3Rvb2xzL3NlZWQmYW1wO3NhdmU/cG9wb2ZmPTAmYW1wO3U9 aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51ayUyRmNvbW1lbnRpc2ZyZWUl MkYyMDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdheS1yaWdodHMmYW1wO2g9QmVp cnV0JTNBK2NpdHkrb2YrcHJvamVjdGVkK2ZhbnRhc2llcyIgPk5ld3N2aW5lPC9h Pg0KICAgICAgPC9saT4NCiAgICAgIDxsaT4NCiAgICAgICAgPGEgY2xhc3M9Imxp dmVqb3VybmFsIiBocmVmPSJodHRwOi8vd3d3LmxpdmVqb3VybmFsLmNvbS91cGRh dGUuYm1sP3N1YmplY3Q9aHR0cCUzQSUyRiUyRnd3dy5ndWFyZGlhbi5jby51ayUy RmNvbW1lbnRpc2ZyZWUlMkYyMDA5JTJGYXVnJTJGMzElMkZsZWJhbm9uLWdheS1y aWdodHMiIG5hbWU9ImxpZD17c2hhcmV9e2xpdmVqb3VybmFsfSI+bGl2ZWpvdXJu YWw8L2E+DQogICAgICA8L2xpPg0KICAgICAgPGxpPg0KICAgICAgICA8YSBjbGFz cz0iZmFjZWJvb2siIGhyZWY9Imh0dHA6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJl LnBocD91PWh0dHAlM0ElMkYlMkZ3d3cuZ3VhcmRpYW4uY28udWslMkZjb21tZW50 aXNmcmVlJTJGMjAwOSUyRmF1ZyUyRjMxJTJGbGViYW5vbi1nYXktcmlnaHRzIiBu YW1lPSJsaWQ9e3NoYXJlfXtGYWNlYm9va30iPkZhY2Vib29rPC9hPg0KICAgICAg PC9saT4NCiAgICAgICAgPGxpPg0KICAgICAgICAgICAgPGEgY2xhc3M9Im1peHgi IGhyZWY9Imh0dHA6Ly93d3cubWl4eC5jb20vc3VibWl0P3BhZ2VfdXJsPWh0dHAl M0ElMkYlMkZ3d3cuZ3VhcmRpYW4uY28udWslMkZjb21tZW50aXNmcmVlJTJGMjAw OSUyRmF1ZyUyRjMxJTJGbGViYW5vbi1nYXktcmlnaHRzIiBuYW1lPSJsaWQ9e3No YXJlfXtNaXh4fSI+TWl4eCBpdCE8L2E+DQogICAgICAgIDwvbGk+DQogICA8L3Vs Pg0KICAgPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KICAgPC9kaXY+DQo8L2Rp dj4NCgkgICAgDQoNCjxkaXYgY2xhc3M9InRvb2xib3gtcG9wdXAiIGlkPSJjb250 YWN0LWxpbmstYm94Ij4NCgk8ZGl2IGNsYXNzPSJzZW5kLWlubmVyIj4NCgkJPGRp diBjbGFzcz0ic2hhcmUtdG9wIj4NCgkJCTxoMz5Db250YWN0IHVzPC9oMz4NCiAg ICAgICAgICAgIDxzcGFuPjxhIGNsYXNzPSJjbG9zZS10b29sYm94LWNvbnRhY3Qt bGluayIgaHJlZj0iI2NvbnRhY3QiPkNsb3NlPC9hPjwvc3Bhbj4NCgkJPC9kaXY+ DQoJCQ0KCQk8ZGl2IGNsYXNzPSJjb2wgZmlyc3QiPg0KCQkJICAgIA0KDQoJCQ0K DQoJDQoJDQoJCQkJCQ0KCQkJPHVsPg0KCQkJCTxsaT4NCgkJCQkJICAgICAgICAg ICAgICAgICAgICAgICAgUmVwb3J0IGVycm9ycyBvciBpbmFjY3VyYWNpZXM6IDxh IGhyZWY9Im1haWx0bzp1c2VyaGVscEBndWFyZGlhbi5jby51ayI+dXNlcmhlbHBA Z3VhcmRpYW4uY28udWs8L2E+DQogICAgICAgICAgICAgICAgICAgIAkJCQk8L2xp Pg0KCQkJCTxsaT4NCgkJCQkJCQkJCQkJTGV0dGVycyBmb3IgcHVibGljYXRpb24g c2hvdWxkIGJlIHNlbnQgdG86IDxhIGhyZWY9Im1haWx0bzpsZXR0ZXJzQGd1YXJk aWFuLmNvLnVrIj5sZXR0ZXJzQGd1YXJkaWFuLmNvLnVrPC9hPg0KCQkJCQkJCQkJ PC9saT4NCgkJCTwvdWw+DQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJjb2wiPg0K CQkJPHVsPg0KCQkJCTxsaT4NCgkJCQkJSWYgeW91IG5lZWQgaGVscCB1c2luZyB0 aGUgc2l0ZTogPGEgaHJlZj0ibWFpbHRvOnVzZXJoZWxwQGd1YXJkaWFuLmNvLnVr Ij51c2VyaGVscEBndWFyZGlhbi5jby51azwvYT4NCgkJCQk8L2xpPg0KCQkJCTxs aT4NCgkJCQkJQ2FsbCB0aGUgbWFpbiBHdWFyZGlhbiBhbmQgT2JzZXJ2ZXIgc3dp dGNoYm9hcmQ6IDxiciAvPjxzcGFuPis0NCAoMCkyMCAzMzUzIDIwMDA8L3NwYW4+ DQoJCQkJPC9saT4NCgkJCQk8bGk+DQoJCQkJCTx1bD4NCgkJCQkJCTxsaT4NCgkJ CQkJCQk8YSBocmVmPSJodHRwOi8vYWRpbmZvLWd1YXJkaWFuLmNvLnVrLyI+QWR2 ZXJ0aXNpbmcgZ3VpZGU8L2E+DQoJCQkJCQk8L2xpPg0KCQkJCQkJPGxpPg0KCQkJ CQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvc3luZGljYXRp b24vIj5MaWNlbnNlL2J1eSBvdXIgY29udGVudDwvYT4NCgkJCQkJCTwvbGk+DQoJ CQkJCTwvdWw+DQoJCQkJPC9saT4NCgkJCTwvdWw+DQoJCTwvZGl2Pg0KCTwvZGl2 Pg0KPC9kaXY+DQoJICAgIDxkaXYgY2xhc3M9InRvb2xib3gtcG9wdXAiIGlkPSJo aXN0b3J5LWxpbmstYm94IiBzdHlsZT0id2lkdGg6IDQ2MHB4Ij4NCgk8ZGl2IGNs YXNzPSJzZW5kLWlubmVyIj4NCgkJPGRpdiBjbGFzcz0ic2hhcmUtdG9wIj4NCgkJ CTxoMz5BYm91dCB0aGlzIGFydGljbGU8L2gzPg0KICAgICAgICAgICAgPHNwYW4+ PGEgY2xhc3M9ImNsb3NlLXRvb2xib3gtaGlzdG9yeS1saW5rIiBocmVmPSIjaGlz dG9yeS1saW5rLWJveCI+Q2xvc2U8L2E+PC9zcGFuPg0KCQk8L2Rpdj4NCgkJICAg ICAgICAJICAgICAgICAJCQkNCgkJCQkJICAgCSAgIAkgICANCgkJCQkJCQkJCQ0K CQkJCQkJCQkJDQoNCiAJCQk8ZGl2IGNsYXNzPSJzZWN0aW9uIj4NCgkJCQk8aDE+ QmVpcnV0OiBjaXR5IG9mIHByb2plY3RlZCBmYW50YXNpZXMgfCBEaWFtb25kIFdh bGlkPC9oMT4NCgkJICAgCQkgICAgCQkJCQkJCQkJVGhpcyBhcnRpY2xlIHdhcyBw dWJsaXNoZWQgb24NCgkJCQkJICAgCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvIiA+Z3VhcmRpYW4uY28udWs8L2E+DQoJCQkJCSAgIAlhdCAxNC4w MCBCU1Qgb24gTW9uZGF5IDMxIEF1Z3VzdCAyMDA5LiANCgkJCQkJICAgCQ0KCQkJ CQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQo8L2Rpdj4NCg0KDQoNCiAgCSAgICAJICAg IA0KDQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoNCiAgICAgICAgCQkNCgkJDQoJCQkJ CQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAg ICAgICAgICAgICAgICAgICAgDQogICAgDQoJDQoJCQ0KCQkJCQkJCQkJCQ0KDQoJ CTxkaXYgaWQ9ImFkdmVydGlzZXItY29udGFpbmVyIj4NCgkJCSAgICANCg0KCTxz Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCg0KZ29vZ2xlX2FkX2NsaWVu dCA9ICdjYS1ndWFyZGlhbl9qcyc7DQpnb29nbGVfYWRfY2hhbm5lbCA9ICdDb21t ZW50aXNmcmVlJzsNCjwvc2NyaXB0Pg0KDQogICAgCSAgICANCg0KDQoNCg0KDQoJ CQ0KCQkJCQkJCQ0KDQogICAgICAgIA0KDQoNCjxzY3JpcHQ+DQoNCmdvb2dsZV9t YXhfbnVtX2FkcyA9ICczJzsNCg0KPC9zY3JpcHQ+DQoJCSAgICA8ZGl2IGlkPSJn b29nbGUtYWRzLWNvbnRhaW5lciIgY2xhc3M9IiBjb21wb25lbnQgIGNhcHN1bGUg YWR2ZXJ0aXNlci1saW5rcyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2Rpdj4N CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCi8vPCFbQ0RBVEFbDQoJ aWYgKHRydWUpIHsNCgkJCSAgd3JpdGVTY3JpcHQoImh0dHA6Ly9wYWdlYWQyLmdv b2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanMiLCBmYWxzZSwg ZnVuY3Rpb24oKXt9KTsNCgl9DQovLyBdXT4NCjwvc2NyaXB0Pg0KDQoNCgk8L2Rp dj4NCgkNCgkJCQkJCQkJCQ0KCQkJCQkJCSAgICAgICAgDQoNCg0KCQkJICAgIA0K DQo8ZGl2IGlkPSJwbHVjay1hZGRyZXNzZWQtY29tbWVudC1jb250YWluZXIiIGNs YXNzPSJwbHVjay1pbml0LWJsb2NrIHBsdWNrLWNvbW1lbnRzLWNvbnRhaW5lciI+ DQo8aDIgaWQ9InBsdWNrLWFkZHJlc3NlZC1jb21tZW50LWF1dGhvci1pbmZvIiBz dHlsZT0iZGlzcGxheTpub25lOyI+DQoJPHNwYW4gaWQ9InBsdWNrLWFkZHJlc3Nl ZC1jb21tZW50LWF1dGhvciI+PC9zcGFuPidzIGNvbW1lbnQNCjwvaDI+DQoNCjxk aXYgaWQ9InBsdWNrLWFkZHJlc3NlZC1jb21tZW50IiBjbGFzcz0icGx1Y2stY29t bWVudC1ibG9jayI+PC9kaXY+DQo8L2Rpdj4NCg0KCQk8c2NyaXB0IHR5cGU9InRl eHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KCS8vCTwhW0NE QVRBWw0KCWlmICh0cnVlKSB7DQoJCWluc2VydFN0eWxlU2hlZXQoJ3N0eWxlcy93 aWRlL3BsdWNrLW9uLmNzcycpOw0KCX0NCgkvLyBdXT4NCgk8L3NjcmlwdD4NCgkN CgkJCSAgICAJICAgIA0KDQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoNCiAgICAgICAg CQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQkJDQoJ CQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgDQogICAgDQoJDQoJCQ0KCQkJ CQkJCQkKPGRpdiBpZD0icGx1Y2stY29udGFpbmVyIiBjbGFzcz0icGx1Y2stY29t bWVudHMtY29udGFpbmVyIj4KCgk8aDIgaWQ9InN0YXJ0LW9mLWNvbW1lbnRzIj5D b21tZW50cyBpbiBjaHJvbm9sb2dpY2FsIG9yZGVyIDxzcGFuIGNsYXNzPSJjb21t ZW50LWNvdW50LWluZm8iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4oVG90YWwgPHNw YW4gY2xhc3M9ImNvbW1lbnQtY291bnQiPmNvbW1lbnQ8L3NwYW4+KTwvc3Bhbj48 L2gyPgoKCTxkaXYgaWQ9InBvc3QtY29tbWVudC1kaXYtdG9wIiBjbGFzcz0icGx1 Y2stY29tbWVudC1hZGRDb21tZW50IGhlYWRlciI+CgkJICAgICAgICAJCQkJQ29t bWVudHMgYXJlIG5vdyBjbG9zZWQgZm9yIHRoaXMgZW50cnkuCgkJCQkJPGRpdiBj bGFzcz0icGx1Y2stY29tbWVudC1sZWdlbmQiPgoJPHVsPgoJCTxsaT48aW1nIHNy Yz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24v aW1hZ2VzL2NvbW11bml0aWVzL2ljb25zX3N0YWZmXzE2LmdpZiIgYWx0PSJUaGlz IHN5bWJvbCBpbmRpY2F0ZXMgdGhhdCB0aGF0IHBlcnNvbiBpcyBUaGUgR3VhcmRp YW4ncyBzdGFmZiIgdGl0bGU9IlRoaXMgc3ltYm9sIGluZGljYXRlcyB0aGF0IHRo YXQgcGVyc29uIGlzIFRoZSBHdWFyZGlhbidzIHN0YWZmIiAvPlN0YWZmPC9saT4K CQk8bGk+PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9zdGF0aWMv ODY2NjkvY29tbW9uL2ltYWdlcy9jb21tdW5pdGllcy9pY29uc19jb250cmlidXRv cl8xNi5naWYiIGFsdD0iVGhpcyBzeW1ib2wgaW5kaWNhdGVzIHRoYXQgdGhhdCBw ZXJzb24gaXMgYSBjb250cmlidXRvciIgdGl0bGU9IlRoaXMgc3ltYm9sIGluZGlj YXRlcyB0aGF0IHRoYXQgcGVyc29uIGlzIGEgY29udHJpYnV0b3IiIC8+Q29udHJp YnV0b3I8L2xpPgoJPC91bD4KPC9kaXY+DQoJPC9kaXY+Cgo8L2Rpdj4NCgkJCQkJ CQkJCQ0KCQkJCQkJCSAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0K CQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAgICA8c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPiBzZXJ2ZXJV cmw9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvRGlyZWN0 L1Byb2Nlc3MiOyBjb21tZW50c1NpZ25VcFVybD0iaHR0cDovL3VzZXJzLmd1YXJk aWFuLmNvLnVrL3NpZ251cC90ci8xLCwtNzIwLDAwLmh0bWwiOyBjb250ZW50SWQg PSAiMzUyMzQxODcxIjsgY29yZUNvbnRlbnRDb21tZW50Q291bnQgPSAzNiA7IDwv c2NyaXB0PiA8c2NyaXB0IHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL21p Y3JvYXBwcy9zZXJ2ZXItc2lkZS1wbHVjay9qYXZhc2NyaXB0L3BsdWNrLXY1Lmpz IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiA+ PC9zY3JpcHQ+ICA8ZGl2IGlkPSJwb3N0LWNvbW1lbnQtZGl2LXRvcCIgY2xhc3M9 InBsdWNrLWNvbW1lbnQtYWRkQ29tbWVudCBoZWFkZXIiPiA8ZGl2IGlkPSJhYnVz ZS1ib3gtd3JhcHBlciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPiA8ZGl2IGlkPSJh YnVzZS1ib3giPiA8cCBpZD0iYWJ1c2UtYm94LWNsb3NlIj48YSBocmVmPSJqYXZh c2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJDbG9zZSI+Q2xvc2U8L2E+PC9wPiA8ZGl2 PiA8aDI+QWJ1c2UgcmVwb3J0PC9oMj4gPC9kaXY+IDxkaXYgaWQ9ImFidXNlLWJv eC1lZGl0LWFyZWEiPiA8cD48bGFiZWwgZm9yPSJhYnVzZS1yZWFzb24iPlBsZWFz ZSBjaG9vc2UgYSBwcm9ibGVtOjwvbGFiZWw+PC9wPiA8c2VsZWN0IGlkPSJhYnVz ZS1yZWFzb24iPiA8b3B0aW9uIHZhbHVlPSIiIHNlbGVjdGVkPkNob29zZSBvbmU8 L29wdGlvbj4gPG9wdGlvbiB2YWx1ZT0iUGVyc29uYWwgYWJ1c2UiPlBlcnNvbmFs IGFidXNlPC9vcHRpb24+IDxvcHRpb24gdmFsdWU9Ik9mZiB0b3BpYyI+T2ZmIHRv cGljPC9vcHRpb24+IDxvcHRpb24gdmFsdWU9IkxlZ2FsIGlzc3VlIj5MZWdhbCBp c3N1ZTwvb3B0aW9uPiA8b3B0aW9uIHZhbHVlPSJUcm9sbGluZyI+VHJvbGxpbmc8 L29wdGlvbj4gPG9wdGlvbiB2YWx1ZT0iSGF0ZSBzcGVlY2giPkhhdGUgc3BlZWNo PC9vcHRpb24+IDxvcHRpb24gdmFsdWU9Ik9mZmVuc2l2ZS9UaHJlYXRlbmluZyBs YW5ndWFnZSI+T2ZmZW5zaXZlL1RocmVhdGVuaW5nIGxhbmd1YWdlPC9vcHRpb24+ IDxvcHRpb24gdmFsdWU9IkNvcHlyaWdodCI+Q29weXJpZ2h0PC9vcHRpb24+IDxv cHRpb24gdmFsdWU9IlNwYW0iPlNwYW08L29wdGlvbj4gPG9wdGlvbiB2YWx1ZT0i T3RoZXIiPk90aGVyPC9vcHRpb24+IDwvc2VsZWN0PiA8cD48bGFiZWwgZm9yPSJh YnVzZS1kZXNjcmlwdGlvbiI+Q29tbWVudDogPHNwYW4gaWQ9ImFidXNlLWRlc2Ny aXB0aW9uLW9wdGlvbmFsIj4ob3B0aW9uYWwpPC9zcGFuPjwvbGFiZWw+PC9wPiA8 dGV4dGFyZWEgcm93cz0iNCIgY29scz0iNTAiIGlkPSJhYnVzZS1kZXNjcmlwdGlv biI+PC90ZXh0YXJlYT4gPHA+WW91IGhhdmUgPHNwYW4gaWQ9ImFidXNlLWNoYXJz LWxlZnQiPjUwMDA8L3NwYW4+IGNoYXJhY3RlcnMgbGVmdDwvcD4gPGRpdiBpZD0i YWJ1c2UtbG9naW4taW5mbyI+IDxwPkxvZ2dlZCBpbiBhcyA8c3Ryb25nIGlkPSJh YnVzZS11c2VyLW5hbWUiPjwvc3Ryb25nPjwvcD4gPC9kaXY+IDxkaXYgaWQ9ImFi dXNlLWVtYWlsLWluZm8iPiA8cD48bGFiZWwgZm9yPSJhYnVzZS1lbWFpbCI+WW91 ciBlbWFpbCBhZGRyZXNzOiA8c3Bhbj4ob3B0aW9uYWwpPC9zcGFuPjwvbGFiZWw+ PC9wPiA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImFidXNlLWVtYWlsIiAvPiA8L2Rp dj4gPHAgaWQ9ImFidXNlLXN1Ym1pdC1jb250YWluZXIiPiA8aW5wdXQgdHlwZT0i YnV0dG9uIiBkaXNhYmxlZD0idHJ1ZSIgaWQ9ImFidXNlLXN1Ym1pdCIgdmFsdWU9 IlJlcG9ydCIvPiA8L3A+IDwvZGl2PiA8ZGl2IGlkPSJhYnVzZS1wcm9ncmVzcy1h cmVhIj4gPHA+TG9hZGluZy4uLi4uLi4uLi4uLi4uLjwvcD4gPC9kaXY+IDxkaXYg aWQ9ImFidXNlLWNsb3NlLWNvbmZpcm1hdGlvbi1hcmVhIj4gPHA+Q2xvc2luZyB0 aGlzIHdpbmRvdyB3aXRob3V0IHByZXNzaW5nICJSZXBvcnQiIHdpbGwgcmVzdWx0 IGluIHlvdXIgd29yZHMgYmVpbmcgbG9zdC4gPGJyLz4gQXJlIHlvdSBzdXJlPyA8 aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iWWVzLCBjbG9zZSIgaWQ9ImFidXNl LWNsb3NlLWNvbmZpcm0iLz4gPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik5v LCByZXR1cm4gdG8gdGV4dCIgaWQ9ImFidXNlLWNsb3NlLWNhbmNlbCIvPiA8L3A+ IDwvZGl2PiA8ZGl2IGlkPSJhYnVzZS10aGFuay15b3UtYXJlYSI+IDxwPlRoYW5r IHlvdSA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iQ2xvc2UiIGlkPSJhYnVz ZS1jbG9zZS10aGFuay15b3UiLz4gPC9wPiA8L2Rpdj4gPGRpdiBpZD0iYWJ1c2Ut cGx1Y2stZXJyb3ItYXJlYSI+IDxwPlNvcnJ5LCBzb21ldGhpbmcgaGFzIGdvbmUg d3JvbmcgYW5kIHRoaXMgYWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQuIDxzcGFu PlBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9zcGFuPjwvcD4gPC9kaXY+IDwvZGl2 PiA8L2Rpdj4gPC9kaXY+IDxkaXYgaWQ9InBsdWNrLWNvbW1lbnQtYmxvY2siIGNs YXNzPSJwbHVjay1jb21tZW50LWJsb2NrIGpzLWhpdGJveC10cmFja2VkIHBsdWNr LWNvbW1lbnRzLWNvbnRhaW5lciI+IDxkaXY+ICAgIDx1bCBjbGFzcz0icGx1Y2st Y29udGVudCIgaWQ9ImNvbW1lbnQtMSI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVu dCI+IDwhLS08bGk+KDM2NTg5NzApIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNr LWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJk aWFuLmNvLnVrL3VzZXJzL1JhdmluZ0RhdmUiIGNsYXNzPSJhdXRob3ItcHJvZmls ZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5j by51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvc3RvcmUvMC8wL2MwYzY4YmEzLTg0 YzAtNDg5Ny1hMDdhLTkyZjAzOTU4MDdhNi5TbWFsbC5qcGciIGhlaWdodD0iNjAi IHdpZHRoPSI2MCIgYWx0PSJSYXZpbmdEYXZlIj4gPC9hPiA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL1JhdmluZ0RhdmUiPiBSYXZpbmdE YXZlIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4zMSBBdWcgMjAw OSwgMjoyMVBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10aWVyIj4g PGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9hPiA8L3Nw YW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkgY29tbWVudC1ibG9j a2VkIj4gVGhpcyBjb21tZW50IGhhcyBiZWVuIHJlbW92ZWQgYnkgYSBtb2RlcmF0 b3IuIFJlcGxpZXMgbWF5IGFsc28gYmUgZGVsZXRlZC4gPC9kaXY+IDwvbGk+ICA8 L3VsPiAgPHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0yIj4g PGxpIGNsYXNzPSJwbHVjay1jb21tZW50Ij4gPCEtLTxsaT4oMzcwMzE0NykgPC9s aT4tLT4gPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxh IGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvbG92ZW15bW9k IiBjbGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRw Oi8vc2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2Vz L25vLXVzZXItaW1hZ2UuZ2lmIiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0i bG92ZW15bW9kIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrL3VzZXJzL2xvdmVteW1vZCI+IGxvdmVteW1vZCA8L2E+IDwvaDM+IDxwIGNs YXNzPSJwb3N0ZWQtdGltZSI+MzEgQXVnIDIwMDksIDI6MjFQTTwvcD4gPC9kaXY+ IDxzcGFuIGNsYXNzPSJhdXRob3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIg dGl0bGU9IlN0YW5kYXJkIj4gIDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1 Y2stY29tbWVudC1ib2R5Ij4gPHA+aG93IGRvZXMgb25lIGRpZmZlcmVudGlhdGUg YmV0d2VlbiBjdWx0dXJlIGFuZCBjb25zdW1hcmlzbSB0b2RheT88L3A+IDwvZGl2 PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlk PSJDb21tZW50S2V5OjQzOGZhYWEwLTAwN2QtNDZmZS05MWUzLWVhODQ4OGM5Yzdk MyI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xl LWNvbW1lbnQtQ29tbWVudEtleTo0MzhmYWFhMC0wMDdkLTQ2ZmUtOTFlMy1lYTg0 ODhjOWM3ZDMiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29t bWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29t bWVuZGF0aW9uKCdDb21tZW50S2V5OjQzOGZhYWEwLTAwN2QtNDZmZS05MWUzLWVh ODQ4OGM5YzdkMycpIiBjbGFzcz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAg PC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50 S2V5OjQzOGZhYWEwLTAwN2QtNDZmZS05MWUzLWVhODQ4OGM5YzdkMyIgY2xhc3M9 ImhpZ2gtcmVjb21tZW5kZWQiID4oNik8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9 ImFidXNlLXJlcG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRp dGxlPSJSZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBh YnVzZSA8L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNo b3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3Mv YWRkP2NvbW1lbnRJZD00MzhmYWFhMC0wMDdkLTQ2ZmUtOTFlMy1lYTg0ODhjOWM3 ZDMmY29tbWVudGVyVXNlck5hbWU9bG92ZW15bW9kJnIyQ29udGVudElkRm9yU1NQ PTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQuIj5D bGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3Nob3dh bGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6NDM4ZmFhYTAtMDA3ZC00NmZlLTkx ZTMtZWE4NDg4YzljN2QzIiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29tbWVu dC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xhc3M9 InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTMiPiA8bGkgY2xhc3M9InBsdWNr LWNvbW1lbnQiPiA8IS0tPGxpPigzNjU4OTcwKSA8L2xpPi0tPiA8ZGl2IGNsYXNz PSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3 dy5ndWFyZGlhbi5jby51ay91c2Vycy9SYXZpbmdEYXZlIiBjbGFzcz0iYXV0aG9y LXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8vc2l0ZWxpZmUuZ3Vh cmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0b3JlLzAvMC9jMGM2 OGJhMy04NGMwLTQ4OTctYTA3YS05MmYwMzk1ODA3YTYuU21hbGwuanBnIiBoZWln aHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iUmF2aW5nRGF2ZSI+IDwvYT4gPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9SYXZpbmdEYXZlIj4g UmF2aW5nRGF2ZSA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+MzEg QXVnIDIwMDksIDI6MjhQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRob3It dGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IkZlYXR1cmVkIj4gIDwv YT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4gPHA+ SSB3YXMgZ29pbmcgdG8gc2F5IHRoYXQgbXkgaW1wcmVzc2lvbiBvZiBnYXlzIGlu IHRoZSBtdXNsaW0gd29ybGQgaXMgcmF0aGVyIGNvbmRpdGlvbmVkIGJ5IHRoZSBz bml2ZWxsaW5nIHdoaW5pbmcgYW5kIHNlbGYgb3BwcmVzc2lvbiByZXZlYWxlZCBp biB0aGUgZmlsbSAiQSBKaWhhZCBGb3IgTG92ZSIgaW4gd2hpY2ggaG9tb3NleHVh bCBtdXNsaW1zIGFyZSBzbyBjb3dlZCBhbmQgc28gZnVsbCBvZiBzZWxmIGxvYXRo aW5nIHRoYXQgdGhleSBkbyBub3QgZGVzZXJ2ZSB0aGUgdGVybSAnZ2F5JyB0byBi ZSB1c2VkIHRvIGRlc2NyaWJlIHRoZW0uPC9wPjxwPlRoZSB0ZXJtICJHYXkiIGlz IHVzZWQgb25seSB0byBkZXNjcmliZSBhIHNlbGYtYXdhcmUgYW5kIHNlbGYgY29u c2Npb3VzIGhvbW9zZXh1YWwsIHByZXBhcmVkIHRvIGZpZ2h0IGJhY2sgYWdhaW5z dCBvcHByZXNzaW9uLjwvcD48cD5BbmQgYnkgdGhhdCBjcml0ZXJpYSB2ZXJ5IGZl dyBob21vc2V4dWFsIG11c2xpbXMgYXJlICdnYXknPC9wPiA8L2Rpdj4gPC9saT4g PGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0iQ29tbWVu dEtleTo4OGMyNjNiZi05ZDczLTRjYjMtODU5ZS02Y2VmNWJhMzU0MjIiPiA8bGkg Y2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50 LUNvbW1lbnRLZXk6ODhjMjYzYmYtOWQ3My00Y2IzLTg1OWUtNmNlZjViYTM1NDIy IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1lbmQgdGhp cyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1lbmRhdGlv bignQ29tbWVudEtleTo4OGMyNjNiZi05ZDczLTRjYjMtODU5ZS02Y2VmNWJhMzU0 MjInKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwvYT4gICA8 c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtleTo4OGMy NjNiZi05ZDczLTRjYjMtODU5ZS02Y2VmNWJhMzU0MjIiIGNsYXNzPSJoaWdoLXJl Y29tbWVuZGVkIiA+KDgpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1y ZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVw b3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9h PiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2Vk LWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21t ZW50SWQ9ODhjMjYzYmYtOWQ3My00Y2IzLTg1OWUtNmNlZjViYTM1NDIyJmNvbW1l bnRlclVzZXJOYW1lPVJhdmluZ0RhdmUmcjJDb250ZW50SWRGb3JTU1A9MzUyMzQx ODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+ IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1l bnRzPXRydWUjQ29tbWVudEtleTo4OGMyNjNiZi05ZDczLTRjYjMtODU5ZS02Y2Vm NWJhMzU0MjIiIG5hbWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGlu azwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2st Y29udGVudCIgaWQ9ImNvbW1lbnQtNCI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVu dCI+IDwhLS08bGk+KDM3MDMxNDcpIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNr LWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJk aWFuLmNvLnVrL3VzZXJzL2xvdmVteW1vZCIgY2xhc3M9ImF1dGhvci1wcm9maWxl LXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNv LnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9uby11c2VyLWltYWdlLmdpZiIgaGVp Z2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9ImxvdmVteW1vZCI+IDwvYT4gPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9sb3ZlbXltb2QiPiBs b3ZlbXltb2QgPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjMxIEF1 ZyAyMDA5LCAyOjM2UE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRp ZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJTdGFuZGFyZCI+ICA8L2E+ IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSBjb21tZW50 LWJsb2NrZWQiPiBUaGlzIGNvbW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBieSBhIG1v ZGVyYXRvci4gUmVwbGllcyBtYXkgYWxzbyBiZSBkZWxldGVkLiA8L2Rpdj4gPC9s aT4gIDwvdWw+ICA8dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50 LTUiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigxNTk3Nzk2 KSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxo Mz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9Lb29y dXNoIiBjbGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJo dHRwOi8vc2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1h Z2VzL25vLXVzZXItaW1hZ2UuZ2lmIiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFs dD0iS29vcnVzaCI+IDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay91c2Vycy9Lb29ydXNoIj4gS29vcnVzaCA8L2E+IDwvaDM+IDxwIGNsYXNz PSJwb3N0ZWQtdGltZSI+MzEgQXVnIDIwMDksIDI6NDBQTTwvcD4gPC9kaXY+IDxz cGFuIGNsYXNzPSJhdXRob3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0 bGU9IkZlYXR1cmVkIj4gIDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2st Y29tbWVudC1ib2R5Ij4gPHA+UmF2aW5nRGF2ZTo8YnIgLz4iUmVtZW1iZXIgdGhh dCB1bmRlciBGcmFuY28gaW4gU3BhaW4sIGhlIGRpZG4ndCBpbnRlcmZlcmUgd2l0 aCB0aGUgY3J1aXNpbmcgZ3JvdW5kcy4gQXMgbG9uZyBhcyB5b3UgbWFycmllZCwg ZGlkIHlvdXIgaGV0ZXJvc2V4dWFsIGR1dHksIHRoZW4geW91IGNvdWxkIGdvIGRv d24gdG8gdGhlIHBhcmtzIGF0IG5pZ2h0IGFuZCBnZXQgYSBiaXQgb2YgZGljay4i PC9wPjxwPlRoYW5rcyBmb3Igc2hhcmluZyB5b3VyIGhvbW9zZXh1YWwgZXhwZXJp ZW5jZXMgd2l0aCB1cyBhbmQgeW91ciBoZWFydC13YXJtaW5nIHJvc2UtdGludGVk IG5vc3RhbGdpYyByZWNvbGxlY3Rpb24gb2YgZmFzY2lzdC1lcmEgU3BhaW4uIFRy dWx5IGlsbHVtaW5hdGluZyBhbmQgaW5zcGlyaW5nIHRvIGFsbCB0aG9zZSBjb25z dW1lciBvYnNlc3NlZCBnYXlzIHRoZSB3b3JsZCBvdmVyLiBUaGFuayB5b3Ugc28g bXVjaC48L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQt dG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjU0ZGFjZWRhLTNlNWUtNDNlOS04 MWU1LWI3NmJiNjY1ZjI1NCI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8YSBp ZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtleTo1NGRhY2VkYS0zZTVl LTQzZTktODFlNS1iNzZiYjY2NWYyNTQiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgw KSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1 cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50S2V5OjU0ZGFjZWRhLTNl NWUtNDNlOS04MWU1LWI3NmJiNjY1ZjI1NCcpIiBjbGFzcz0icmVjb21tZW5kIj4g ICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUtY29t bWVudC1uby1Db21tZW50S2V5OjU0ZGFjZWRhLTNlNWUtNDNlOS04MWU1LWI3NmJi NjY1ZjI1NCIgY2xhc3M9ImhpZ2gtcmVjb21tZW5kZWQiID4oMTcpPC9zcGFuPiAg PC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNj cmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0 LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlw Ij48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIv dXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9NTRkYWNlZGEtM2U1ZS00M2U5 LTgxZTUtYjc2YmI2NjVmMjU0JmNvbW1lbnRlclVzZXJOYW1lPUtvb3J1c2gmcjJD b250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRo aXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48 YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTo1NGRhY2Vk YS0zZTVlLTQzZTktODFlNS1iNzZiYjY2NWYyNTQiIG5hbWU9IiIgdGl0bGU9Ikxp bmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91 bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQtNiI+IDxs aSBjbGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDI4MjU5ODcpIDwvbGk+ LS0+IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBo cmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0Fya2FzaGEiIGNs YXNzPSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9z aXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvbm8t dXNlci1pbWFnZS5naWYiIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJBcmth c2hhIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzL0Fya2FzaGEiPiBBcmthc2hhIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3Rl ZC10aW1lIj4zMSBBdWcgMjAwOSwgMjo0OFBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xh c3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iVHJ1 c3RlZCI+ICA8L2E+IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQt Ym9keSI+IDxibG9ja3F1b3RlPjxwPkRpYW1vbmQgV2FsaWQsIGdldCB5b3VyIGFj dCB0b2dldGhlciBhbmQgZmlnaHQgYmFjazwvcD48L2Jsb2NrcXVvdGU+PHA+V2hh dCBhcmUgPGk+eW91PC9pPiBkb2luZyBhYm91dCB0aGUgc2l0dWF0aW9uPzwvcD4g PC9kaXY+IDwvbGk+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIgPiA8 dWwgaWQ9IkNvbW1lbnRLZXk6ZDkyMGY2MTktZGM4OC00MWM5LWJhNGYtMjVlYWE2 OWRhOTRiIj4gPGxpIGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVjay1z aW5nbGUtY29tbWVudC1Db21tZW50S2V5OmQ5MjBmNjE5LWRjODgtNDFjOS1iYTRm LTI1ZWFhNjlkYTk0YiIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0i UmVjb21tZW5kIHRoaXMgY29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNsaWNr UmVjb21tZW5kYXRpb24oJ0NvbW1lbnRLZXk6ZDkyMGY2MTktZGM4OC00MWM5LWJh NGYtMjVlYWE2OWRhOTRiJykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29tbWVu ZD8gICA8L2E+ICAgPHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5vLUNv bW1lbnRLZXk6ZDkyMGY2MTktZGM4OC00MWM5LWJhNGYtMjVlYWE2OWRhOTRiIiBj bGFzcz0iaGlnaC1yZWNvbW1lbmRlZCIgPig0KTwvc3Bhbj4gIDwvbGk+IDxsaSBj bGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgw KSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+UmVw b3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9 ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBw aW5ncy9hZGQ/Y29tbWVudElkPWQ5MjBmNjE5LWRjODgtNDFjOS1iYTRmLTI1ZWFh NjlkYTk0YiZjb21tZW50ZXJVc2VyTmFtZT1Bcmthc2hhJnIyQ29udGVudElkRm9y U1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQu Ij5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3No b3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6ZDkyMGY2MTktZGM4OC00MWM5 LWJhNGYtMjVlYWE2OWRhOTRiIiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29t bWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xh c3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTciPiA8bGkgY2xhc3M9InBs dWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzNjU4OTcwKSA8L2xpPi0tPiA8ZGl2IGNs YXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDov L3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9SYXZpbmdEYXZlIiBjbGFzcz0iYXV0 aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8vc2l0ZWxpZmUu Z3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0b3JlLzAvMC9j MGM2OGJhMy04NGMwLTQ4OTctYTA3YS05MmYwMzk1ODA3YTYuU21hbGwuanBnIiBo ZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iUmF2aW5nRGF2ZSI+IDwvYT4gPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9SYXZpbmdEYXZl Ij4gUmF2aW5nRGF2ZSA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+ MzEgQXVnIDIwMDksIDI6NTJQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRo b3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IkZlYXR1cmVkIj4g IDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4g PHA+S29vcnVzaDwvcD48cD5JIGFzc3VtZSB5b3UgYXJlIHVuYWJsZSB0byByZWFk IGFuZCBkZWFsIHdpdGggYSByZWxhdGl2ZWx5IHNvcGhpc3RpY2F0ZWQgYXJndW1l bnQgYW5kIGNoZXcgZ3VtIGF0IHRoZSBzYW1lIHRpbWU/IEhvdyBlbHNlIGRvIEkg ZXhwbGFpbiB5b3VyIGJhcmJlZCBjb21tZW50PzwvcD48cD5JIGFtIGZhciB0b28g eW91bmcgdG8gcmVtZW1iZXIgRnJhbmNvLCBqdXN0IGFzIEkgYW0gZmFyIHRvbyB5 b3VuZyB0byByZW1lbWJlciBwcmUtZGVjcmltaW5hbGlzYXRpb24gaGVyZSBpbiB0 aGUgVUsgYmFjayBpbiAxOTY3LiBIb3dldmVyLCBJIGhhdmUgdGFsa2VkIHRvIG9s ZGVyIGFuZCB5b3VuZ2VyIHNwYW5pc2ggYW5kIGVuZ2xpc2ggaG9tb3NleHVhbHMg d2hvIGRvIHJlbWVtYmVyIHRoYXQgZXJhIHZlcnkgd2VsbC48L3A+PHA+TXkgcG9p bnQgaXMgdGhhdCwgKGFuZCBpdCdzIG5vdCBhIGRpZmZpY3VsdCBvbmUgdG8gdW5k ZXJzdGFuZCwgc28gcGF5IGF0dGVudGlvbikgdGhlIGFyZ3VtZW50IE1yIGRpYW1v bmQgd2FsaWQgdXNlcyBpcyB0aGF0IHdlc3Rlcm4gZ2F5cyBzaG91bGQgbm90IGJl IGFycm9nYW50IGFib3V0IHRoZSBhY2hpZXZlbWVudHMgb2YgdGhlIFdlc3QgY29t cGFyZWQgdG8gdGhlIHplcm8gYWNoaWV2ZW1lbnRzIG1hZGUgaW4gdGhlIEFyYWIv TXVzbGltIHdvcmxkLCBiZWNhdXNlIGhvbW9zZXh1YWxzIGluIHRoZSBhcmFiL211 c2xpbSB3b3JsZCBhcmUgZnJlZSB0byBnbyBjcnVpc2luZyBvbiB0aGUgYmVhY2hl cyBhbmQsIGFzIGxvbmcgYXMgdGhleSBhcmUgZGlzY3JlZXQsIGNhbiBsaXZlIGEg c29ydCBvZiBmcmVlIGhvbW9zZXh1YWwgbGlmZXN0eWxlLjwvcD48cD5NeSBwb2lu dCBhYm91dCBGcmFuY28gbWF0Y2hlcyBteSBjb21tZW50IGFib3V0IHByZS1kZWNy aW1pbmFsaXNlZCBFbmdsYW5kLCBuYW1lbHkgdGhhdCB0aGUgYXJhYi9tdXNsaW0g d29ybGQgaXMgc3RpbGwgYXQgdGhhdCBzdGFnZSBub3cuPC9wPjxwPkNsZWFyZXI/ PC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xz IiA+IDx1bCBpZD0iQ29tbWVudEtleTphN2QwM2ZlOS00MzM0LTQzNmMtYWE1Yi1i NTZhOGU4MzgxYzUiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBs dWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6YTdkMDNmZTktNDMzNC00MzZj LWFhNWItYjU2YThlODM4MWM1IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRp dGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9u Q2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTphN2QwM2ZlOS00MzM0LTQz NmMtYWE1Yi1iNTZhOGU4MzgxYzUnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVj b21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQt bm8tQ29tbWVudEtleTphN2QwM2ZlOS00MzM0LTQzNmMtYWE1Yi1iNTZhOGU4Mzgx YzUiIGNsYXNzPSJoaWdoLXJlY29tbWVuZGVkIiA+KDExKTwvc3Bhbj4gIDwvbGk+ IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6 dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVz ZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEg Y2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJz L2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPWE3ZDAzZmU5LTQzMzQtNDM2Yy1hYTVi LWI1NmE4ZTgzODFjNSZjb21tZW50ZXJVc2VyTmFtZT1SYXZpbmdEYXZlJnIyQ29u dGVudElkRm9yU1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlz IGNvbW1lbnQuIj5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEg aHJlZj0iP3Nob3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6YTdkMDNmZTkt NDMzNC00MzZjLWFhNWItYjU2YThlODM4MWM1IiBuYW1lPSIiIHRpdGxlPSJMaW5r IHRoaXMgY29tbWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ ICA8dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTgiPiA8bGkg Y2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzNjU4OTcwKSA8L2xpPi0t PiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9SYXZpbmdEYXZlIiBj bGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8v c2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0 b3JlLzAvMC9jMGM2OGJhMy04NGMwLTQ4OTctYTA3YS05MmYwMzk1ODA3YTYuU21h bGwuanBnIiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iUmF2aW5nRGF2ZSI+ IDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9S YXZpbmdEYXZlIj4gUmF2aW5nRGF2ZSA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0 ZWQtdGltZSI+MzEgQXVnIDIwMDksIDI6NTVQTTwvcD4gPC9kaXY+IDxzcGFuIGNs YXNzPSJhdXRob3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IkZl YXR1cmVkIj4gIDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVu dC1ib2R5Ij4gPHA+QXJrYXNoYTwvcD48cD48aT48Yj5EaWFtb25kIFdhbGlkLCBn ZXQgeW91ciBhY3QgdG9nZXRoZXIgYW5kIGZpZ2h0IGJhY2s8L2I+PC9pPjwvcD48 cD5XaGF0IGFyZSB5b3UgZG9pbmcgYWJvdXQgdGhlIHNpdHVhdGlvbj88L3A+PHA+ V2hhdCB0aGUgZmVjayBkbyB5b3UgZXhwZWN0IE1FIHRvIGRvIGFib3V0IHRoZSBz aXR1YXRpb24/IEkgbGl2ZSBpbiBMb25kb24uIFRoZSBwb2ludCBpcyB0aGF0IGFu eSBzb2NpYWwgY2hhbmdlIGhhcyB0byBjb21lIGZyb20gZ2F5cyBpbiB0aGUgbXVz bGltL2FyYWIgd29ybGQgZmlnaHRpbmcgZm9yIHRoZW1zZWx2ZXMsIG5vdCBsb29r aW5nIGZvciBnYXlzIGluIHRoZSBXZXN0IHRvIGRvIGl0IGFsbCBmb3IgdGhlbSE8 L3A+PHA+QW5kIEksIGxpa2UgbWFueSBvdGhlciBicmF2ZSBnYXlzIGhlcmUgaW4g dGhlIFVLLCBoYXZlIGRvbmUgb3V0IGJpdCB0byBmaWdodCBmb3IgZ2F5IGVxdWFs aXR5LCBnb2luZyBvbiBtYXJjaGVzLCBjYW1wYWlnbmluZyBldGMgZXRjLjwvcD48 cD5Bcmthc2hhLCB3aGF0IHRoZSBoZWxsIGFyZSBZT1UgZG9pbmc/PC9wPiA8L2Rp dj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBp ZD0iQ29tbWVudEtleTpmNjhiMDA4ZS03YjU3LTQ1ODMtYTYxOS0wYjc1MmQ1MzI2 YzUiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmds ZS1jb21tZW50LUNvbW1lbnRLZXk6ZjY4YjAwOGUtN2I1Ny00NTgzLWE2MTktMGI3 NTJkNTMyNmM1IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNv bW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNv bW1lbmRhdGlvbignQ29tbWVudEtleTpmNjhiMDA4ZS03YjU3LTQ1ODMtYTYxOS0w Yjc1MmQ1MzI2YzUnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAg IDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVu dEtleTpmNjhiMDA4ZS03YjU3LTQ1ODMtYTYxOS0wYjc1MmQ1MzI2YzUiIGNsYXNz PSJoaWdoLXJlY29tbWVuZGVkIiA+KDUpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNz PSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0 aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQg YWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5j aG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdz L2FkZD9jb21tZW50SWQ9ZjY4YjAwOGUtN2I1Ny00NTgzLWE2MTktMGI3NTJkNTMy NmM1JmNvbW1lbnRlclVzZXJOYW1lPVJhdmluZ0RhdmUmcjJDb250ZW50SWRGb3JT U1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4i PkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hv d2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTpmNjhiMDA4ZS03YjU3LTQ1ODMt YTYxOS0wYjc1MmQ1MzI2YzUiIG5hbWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21t ZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFz cz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQtOSI+IDxsaSBjbGFzcz0icGx1 Y2stY29tbWVudCI+IDwhLS08bGk+KDE1OTc3OTYpIDwvbGk+LS0+IDxkaXYgY2xh c3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0tvb3J1c2giIGNsYXNzPSJhdXRob3It cHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFy ZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvbm8tdXNlci1pbWFnZS5n aWYiIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJLb29ydXNoIj4gPC9hPiA8 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0tvb3J1c2gi PiBLb29ydXNoIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4zMSBB dWcgMjAwOSwgMjo1OVBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10 aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9h PiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkgY29tbWVu dC1ibG9ja2VkIj4gVGhpcyBjb21tZW50IGhhcyBiZWVuIHJlbW92ZWQgYnkgYSBt b2RlcmF0b3IuIFJlcGxpZXMgbWF5IGFsc28gYmUgZGVsZXRlZC4gPC9kaXY+IDwv bGk+ICA8L3VsPiAgPHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVu dC0xMCI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDI5OTgz ODQpIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4g PGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0F1 cmljIiBjbGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJo dHRwOi8vc2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1h Z2VzL3N0b3JlLzMvMTMvNzM4Yjk3NDAtMWMwMS00MmExLWJkMTYtZWE0YWExYmRi MmZhLlNtYWxsLmpwZyIgaGVpZ2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9IkF1cmlj Ij4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJz L0F1cmljIj4gQXVyaWMgPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUi PjMxIEF1ZyAyMDA5LCAzOjA5UE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0 aG9yLXRpZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ ICA8L2E+IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+ IDxwPldvdywgdGhlcmUgd2FzIG1lIGltYWdpbmluZyBCZWlydXQgYXMgYSBraW5k IG9mIGAxOTcwcyBCZWxmYXN0LW9uLXRoZSBNZWRgLCAgd2l0aCBiZWFyZGVkIHJv Y2tldC1maXJpbmcgSGV6Ym9sbGFoIGhpZGluZyBpbiBydWJibGUgYW5kIGJhdHRs aW5nIGl0IG91dCBhZ2FpbnN0IGNhbW91ZmxhZ2Utc3VpdGVkIENocmlzdGlhbiBQ aGFsYW5naXN0cywgYXMgSXNyYWVsaSBoZWxpY29wdGVyIGd1bnNoaXBzIGNydWlz ZSBiZW5pZ25seSBvdmVyaGVhZCBsb29raW5nIGRvd24gdGhyb3VnaCB0aGUgZmxh bWVzLjwvcD48cD5BY3R1YWxseSBpdCBzZWVtcyBtb3JlIGxpa2UgYFNvaG8gb24g U2VhYCB3aXRoIG11c2N1bGFyIFZpbGxhZ2UtcGVvcGxlIGxvb2stYWxpa2UgZ3V5 cyBleWVpbmcgZWFjaCBvdGhlciB1cC48L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xh c3M9InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjQ3 ZTI2NjFlLWViMDktNDA3Zi1iM2FjLTkxMTQ4NjQwZGVlYyI+IDxsaSBjbGFzcz0i cmVjb21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVu dEtleTo0N2UyNjYxZS1lYjA5LTQwN2YtYjNhYy05MTE0ODY0MGRlZWMiIGhyZWY9 ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1l bnQuIiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21t ZW50S2V5OjQ3ZTI2NjFlLWViMDktNDA3Zi1iM2FjLTkxMTQ4NjQwZGVlYycpIiBj bGFzcz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlk PSJwbHVjay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50S2V5OjQ3ZTI2NjFlLWVi MDktNDA3Zi1iM2FjLTkxMTQ4NjQwZGVlYyIgY2xhc3M9ImhpZ2gtcmVjb21tZW5k ZWQiID4oMTIpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQi PiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFi dXNlIiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9s aT4gPGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2lu LXJlcXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9 NDdlMjY2MWUtZWIwOS00MDdmLWIzYWMtOTExNDg2NDBkZWVjJmNvbW1lbnRlclVz ZXJOYW1lPUF1cmljJnIyQ29udGVudElkRm9yU1NQPTM1MjM0MTg3MSIgbmFtZT0i IiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQuIj5DbGlwPC9hPiB8IDwvbGk+IDxs aSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3Nob3dhbGxjb21tZW50cz10cnVlI0Nv bW1lbnRLZXk6NDdlMjY2MWUtZWIwOS00MDdmLWIzYWMtOTExNDg2NDBkZWVjIiBu YW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29tbWVudC4iPkxpbms8L2E+PC9saT4g PC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlk PSJjb21tZW50LTExIj4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50Ij4gPCEtLTxs aT4oMzA4NDQ0MikgPC9saT4tLT4gPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1h dXRob3IiPiA8aDM+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv dXNlcnMvR2lnb2xvIiBjbGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxp bWcgc3JjPSJodHRwOi8vc2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0Nv bnRlbnQvaW1hZ2VzL3N0b3JlLzE1LzE0L2RmYzFiYzAzLWFjMGEtNGU0Ni1hZWIx LTU0MmU1NDljMDQ2Yy5TbWFsbC5qcGciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIg YWx0PSJHaWdvbG8iPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4u Y28udWsvdXNlcnMvR2lnb2xvIj4gR2lnb2xvIDwvYT4gPC9oMz4gPHAgY2xhc3M9 InBvc3RlZC10aW1lIj4zMSBBdWcgMjAwOSwgMzoyOVBNPC9wPiA8L2Rpdj4gPHNw YW4gY2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRs ZT0iRmVhdHVyZWQiPiAgPC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1j b21tZW50LWJvZHkiPiA8cD5BdXJpYywgSSBrbm93IHdoYXQgeW91IG1lYW4uPC9w PjxwPldoZXJlIGVsc2UgYnV0IG9uIENJRiBjb3VsZCB3ZSByZWFkIGFib3V0IHRo ZSBidWdnZXJzIG9mIEJlaXJ1dD8gPC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNz PSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0iQ29tbWVudEtleTpmMDU3 ZGQxNi0wMjIxLTQzMTUtYTZhZC1iMjRhYWZhNDI4YzkiPiA8bGkgY2xhc3M9InJl Y29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRL ZXk6ZjA1N2RkMTYtMDIyMS00MzE1LWE2YWQtYjI0YWFmYTQyOGM5IiBocmVmPSJq YXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50 LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVu dEtleTpmMDU3ZGQxNi0wMjIxLTQzMTUtYTZhZC1iMjRhYWZhNDI4YzknKSIgY2xh c3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0i cGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtleTpmMDU3ZGQxNi0wMjIx LTQzMTUtYTZhZC1iMjRhYWZhNDI4YzkiIGNsYXNzPSJoaWdoLXJlY29tbWVuZGVk IiA+KDUpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAg PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNl IiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4g PGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJl cXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9ZjA1 N2RkMTYtMDIyMS00MzE1LWE2YWQtYjI0YWFmYTQyOGM5JmNvbW1lbnRlclVzZXJO YW1lPUdpZ29sbyZyMkNvbnRlbnRJZEZvclNTUD0zNTIzNDE4NzEiIG5hbWU9IiIg dGl0bGU9IkNsaXAgdGhpcyBjb21tZW50LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkg Y2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9zaG93YWxsY29tbWVudHM9dHJ1ZSNDb21t ZW50S2V5OmYwNTdkZDE2LTAyMjEtNDMxNS1hNmFkLWIyNGFhZmE0MjhjOSIgbmFt ZT0iIiB0aXRsZT0iTGluayB0aGlzIGNvbW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwv dWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0i Y29tbWVudC0xMiI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+ KDI0MTMyMjcpIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0 aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzL2R1YmR1YmR1YiIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8 aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9D b250ZW50L2ltYWdlcy9zdG9yZS8wLzEwLzQwNmE5OGIyLTk5N2QtNDljZi1hYTgy LTI2YjU3ZTI1M2EyZi5TbWFsbC5qcGciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIg YWx0PSJkdWJkdWJkdWIiPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvdXNlcnMvZHViZHViZHViIj4gZHViZHViZHViIDwvYT4gPC9oMz4g PHAgY2xhc3M9InBvc3RlZC10aW1lIj4zMSBBdWcgMjAwOSwgMzozNlBNPC9wPiA8 L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxv dmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNz PSJwbHVjay1jb21tZW50LWJvZHkiPiA8cD5Hb29kIGFydGljbGUgYnV0IG1heWJl IHRoZSB3cml0ZXIgY29uZnVzZXMgY3VsdHVyZSB3aXRoIGxpZmVzdHlsZT88L3A+ PHA+VGhlIG9ubHkgInVuaXZlcnNhbCIgZ2F5ICJjdWx0dXJlIiBpcyB0aGUgY29u c3VtZXJpc3Qgb25lLCBleHBvcnRlZCBmcm9tIHRoZSBVUy4gIEl0J3Mgbm90IGEg Y3VsdHVyZSBvZiBjb3Vyc2UsIGl0J3MganVzdCBhIGxpZmVzdHlsZSwgYW5kIGEg cHJldHR5IG1pbmdpbmcgb25lIGF0IHRoYXQsIHdoaWNoIGdheSBtZW4gdXNlIGFz IG11Y2ggb3IgYXMgbGl0dGxlIGFzIHRoZXkgbGlrZSAob3IgY2FuIGFmZm9yZCku ICBDdWx0dXJlJ3MgYmlnZ2VyLjwvcD4gPC9kaXY+IDwvbGk+IDxsaSBjbGFzcz0i cGx1Y2stY29tbWVudC10b29scyIgPiA8dWwgaWQ9IkNvbW1lbnRLZXk6NjliOTk0 MjItZTUxOS00OTM5LWExMDctNDc2Y2EyNzE3ZGE4Ij4gPGxpIGNsYXNzPSJyZWNv bWVuZGVkIj4gIDxhIGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1Db21tZW50S2V5 OjY5Yjk5NDIyLWU1MTktNDkzOS1hMTA3LTQ3NmNhMjcxN2RhOCIgaHJlZj0iamF2 YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVjb21tZW5kIHRoaXMgY29tbWVudC4i IG9uY2xpY2s9InJldHVybiBvbkNsaWNrUmVjb21tZW5kYXRpb24oJ0NvbW1lbnRL ZXk6NjliOTk0MjItZTUxOS00OTM5LWExMDctNDc2Y2EyNzE3ZGE4JykiIGNsYXNz PSJyZWNvbW1lbmQiPiAgIFJlY29tbWVuZD8gICA8L2E+ICAgPHNwYW4gaWQ9InBs dWNrLXNpbmdsZS1jb21tZW50LW5vLUNvbW1lbnRLZXk6NjliOTk0MjItZTUxOS00 OTM5LWExMDctNDc2Y2EyNzE3ZGE4IiBjbGFzcz0iaGlnaC1yZWNvbW1lbmRlZCIg Pig5KTwvc3Bhbj4gIDwvbGk+IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxh IGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIg Y2xhc3M9InJlcG9ydC1hYnVzZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxs aSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1 aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPTY5Yjk5 NDIyLWU1MTktNDkzOS1hMTA3LTQ3NmNhMjcxN2RhOCZjb21tZW50ZXJVc2VyTmFt ZT1kdWJkdWJkdWImcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIi IHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxp IGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29t bWVudEtleTo2OWI5OTQyMi1lNTE5LTQ5MzktYTEwNy00NzZjYTI3MTdkYTgiIG5h bWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8 L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9 ImNvbW1lbnQtMTMiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxp PigzODEzMjAzKSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1 dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91 c2Vycy9NaWtlU0YxMyIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8 aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9D b250ZW50L2ltYWdlcy9uby11c2VyLWltYWdlLmdpZiIgaGVpZ2h0PSI2MCIgd2lk dGg9IjYwIiBhbHQ9Ik1pa2VTRjEzIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL01pa2VTRjEzIj4gTWlrZVNGMTMgPC9hPiA8 L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjMxIEF1ZyAyMDA5LCA0OjA0UE08 L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRpZXIiPiA8YSBjbGFzcz0i cm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ICA8L2E+IDwvc3Bhbj4gIDxkaXYg Y2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxwPkkgdGhpbmsgUmF2aW5nRGF2 ZSBpcyBtaXNzaW5nIHRoZSBwb2ludCBvZiB0aGUgYXJ0aWNsZS4gVGhlIGF1dGhv ciBpcyB0cnlpbmcgdG8gY29ycmVjdCBzdGVyZW90eXBlcywgbm90IGNsYWltIEJl aXJ1dCBpcyBhIGJhc3Rpb24gb2YgZ2F5IGxpYmVydHkuIEksIGZvciBvbmUsIGFt IGdsYWQgSSByZWFkIHRoaXMgYW5kIG5vdCB0aGUgTllUIHBpZWNlLiBJJ20gZ2xh ZCB0byBnZXQgYSBsb2NhbCBhbmQgaW5mb3JtZWQgdm9pY2UsIGFuZCBpZiBoZSBj YW4ndCBwdXQgdXAgYSBwaWN0dXJlLCB0byBtZSB0aGF0IHNwZWFrcyBsb3VkZXIg dGhhbiBxdW90ZXMgb2Ygd2VzdGVybmVycyBhYm91dCBUViB2aWV3aW5nIGhhYml0 cy4gVGhlIHNub2JiZXJ5IFdhbGlkIG1lbnRpb25zIGhhcHBlbnMgZXZlcnl3aGVy ZSwgc28gZG9uJ3QgdGFrZSBoaXMgY29uZGVtbmF0aW9uIHNvIHBlcnNvbmFsbHku PC9wPjxwPldhbGlkIGlzIHJpZ2h0IG9uIHRhcmdldCB0byBkZXNjcnkgc3RlcmVv dHlwZXMgaW4gd2VzdGVybiByZXBvcnRpbmcsIGJlY2F1c2UgaXQgaXMgZnVsbCBv ZiB0aGVtLiBBc2sgYW55IExHQlQgcGVyc29uOiBkbyB5b3Ugc2VlIGFueXRoaW5n IGxpa2UgeW91ciBsaWZlIHBvcnRyYXllZCBpbiB0aGUgbWVkaWE/IEkgcmFyZWx5 IGRvLCBhbmQgSSBsaXZlIGluIHRoZSBDYXN0cm8uIEJ1dCBJIHdvdWxkbid0IHdv cnJ5IHRvbyBtdWNoIGFib3V0IHRoYXQgTWNEb25hbGRpemF0aW9uOiBpdCdzIHBy ZXR0eSBzdXBlcmZpY2lhbCBhbmQgdWx0aW1hdGVseSBoYXMgbGl0dGxlIGltcGFj dCBvbiBvdXIgbGl2ZXMuIFZpb2xlbmNlIGlzIG1vcmUgdGhlIGlzc3VlLiBSYXRo ZXIgdGhhbiBtdXJkZXJzIGJlaW5nICJvZGQiIGluIHdlc3Rlcm4gY3VsdHVyZXMs IGJlIGF3YXJlIHRoYXQgdGhlcmUgd2FzIG9uZSBMR0JUIG11cmRlciBldmVyeSBu aW5lIGRheXMgaW4gdGhlIFVTIGxhc3QgeWVhciAoPGEgaHJlZj0iaHR0cDovL3d3 dy5nYXlhbWVyaWNhbmhlcm9lcy5pbmZvLykuIj5odHRwOi8vd3d3LmdheWFtZXJp Y2FuaGVyb2VzLmluZm8vKS48L2E+IFJhdGhlciB0aGFuIGJhc2luZyB0aGUgbWlk ZGxlIGVhc3Qgb3IgdGhlIHdlc3QsIGxldCdzIGZpbmQgdGhlIGNvbW1vbiBncm91 bmQgaGVyZS48L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1l bnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5OmUxZjM2YmU2LTlkMzEtNDIz OS1iYmEwLTA5MjM0ZWQwODE1YyI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8 YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtleTplMWYzNmJlNi05 ZDMxLTQyMzktYmJhMC0wOTIzNGVkMDgxNWMiIGhyZWY9ImphdmFzY3JpcHQ6dm9p ZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJy ZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50S2V5OmUxZjM2YmU2 LTlkMzEtNDIzOS1iYmEwLTA5MjM0ZWQwODE1YycpIiBjbGFzcz0icmVjb21tZW5k Ij4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUt Y29tbWVudC1uby1Db21tZW50S2V5OmUxZjM2YmU2LTlkMzEtNDIzOS1iYmEwLTA5 MjM0ZWQwODE1YyIgY2xhc3M9ImhpZ2gtcmVjb21tZW5kZWQiID4oMTMpPC9zcGFu PiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2 YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVw b3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJj bGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVm PSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9ZTFmMzZiZTYtOWQzMS00 MjM5LWJiYTAtMDkyMzRlZDA4MTVjJmNvbW1lbnRlclVzZXJOYW1lPU1pa2VTRjEz JnIyQ29udGVudElkRm9yU1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xp cCB0aGlzIGNvbW1lbnQuIj5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGlu ayI+PGEgaHJlZj0iP3Nob3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6ZTFm MzZiZTYtOWQzMS00MjM5LWJiYTAtMDkyMzRlZDA4MTVjIiBuYW1lPSIiIHRpdGxl PSJMaW5rIHRoaXMgY29tbWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4g IDwvdWw+ICA8dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTE0 Ij4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50Ij4gPCEtLTxsaT4oMjgwNzkyMykg PC9saT4tLT4gPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+ IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvS3J1c3R5 dGhlS2xvd24iIGNsYXNzPSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBz cmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVu dC9pbWFnZXMvc3RvcmUvNi8zL2Q2YzBmN2NiLTgzMzgtNDZhMy1iM2NkLTU5ODMw MGQwN2M0Yy5TbWFsbC5qcGciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJL cnVzdHl0aGVLbG93biI+IDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlh bi5jby51ay91c2Vycy9LcnVzdHl0aGVLbG93biI+IEtydXN0eXRoZUtsb3duIDwv YT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4zMSBBdWcgMjAwOSwgNTox OFBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xh c3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9hPiA8L3NwYW4+ICA8 ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8cD5CdXQgd2hhdCBleGFj dGx5IGlzICdnYXkgY3VsdHVyZSc/IElzIG50byB0aGUgbm90aW9uIHRoYXQgb25l J3MgJ2N1bHR1cmUnIGlzIGRlZmluZWQgYnkgb25lJ3Mgc2V4dWFsIHByZWZlcmVu Y2VzIGp1c3QgYW5vdGhlciBsYXRlIDIwdGggY2VudHVyeSBpbnZlbnRpb24gb2Yg IFdlc3Rlcm4gaWRlbnRpdHkgcG9saXRpY3Mgd2hpY2ggaXMgYWxpZW4gdG8gdGhl IEFyYWIgd29ybGQ/PC9wPjxwPlRoYXQsIGluIGFueSBjYXNlLCBpcyB0aGUgdGhl c2lzIG9mIFBhbGVzdGluaWFuIHdyaXRlciBKb3NlcGggTWFzc2FkLCB3aG8gaGFz IHdyaXR0ZW4gZXh0ZW5zaXZlbHkgb24gdGhlIHN1YmplY3QuPC9wPiA8L2Rpdj4g PC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0i Q29tbWVudEtleTo2NWY4YjE2Ni01MWY2LTQzN2YtYjU0ZS0xYWMyNDFhNGM4ZTEi PiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1j b21tZW50LUNvbW1lbnRLZXk6NjVmOGIxNjYtNTFmNi00MzdmLWI1NGUtMWFjMjQx YTRjOGUxIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1l bmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1l bmRhdGlvbignQ29tbWVudEtleTo2NWY4YjE2Ni01MWY2LTQzN2YtYjU0ZS0xYWMy NDFhNGM4ZTEnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwv YT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtl eTo2NWY4YjE2Ni01MWY2LTQzN2YtYjU0ZS0xYWMyNDFhNGM4ZTEiIGNsYXNzPSJu b3JtYWwtcmVjb21tZW5kZWQiPigxKTwvc3Bhbj4gIDwvbGk+IDxsaSBjbGFzcz0i YWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0 bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+UmVwb3J0IGFi dXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9ImFuY2hv ci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBwaW5ncy9h ZGQ/Y29tbWVudElkPTY1ZjhiMTY2LTUxZjYtNDM3Zi1iNTRlLTFhYzI0MWE0Yzhl MSZjb21tZW50ZXJVc2VyTmFtZT1LcnVzdHl0aGVLbG93biZyMkNvbnRlbnRJZEZv clNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50 LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9z aG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OjY1ZjhiMTY2LTUxZjYtNDM3 Zi1iNTRlLTFhYzI0MWE0YzhlMSIgbmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNv bW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNs YXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0xNSI+IDxsaSBjbGFzcz0i cGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDM2MTQ0MDUpIDwvbGk+LS0+IDxkaXYg Y2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL1p1Z3p1ZyIgY2xhc3M9ImF1dGhv ci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1 YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9zdG9yZS8xMy8xNC9j ZGI5ZDQxYS02YjBkLTQ4MjMtOGVkMy1jMTJkZjVlMTQzZmUuU21hbGwucG5nIiBo ZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iWnVnenVnIj4gPC9hPiA8YSBocmVm PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL1p1Z3p1ZyI+IFp1Z3p1 ZyA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+MzEgQXVnIDIwMDks IDU6MjVQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRob3ItdGllciI+IDxh IGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IkZlYXR1cmVkIj4gIDwvYT4gPC9zcGFu PiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4gPHA+VGhpcyBpcyBh IHZlcnkgaW50ZXJlc3RpbmcgdG9waWMgYmVpbmcgYnJvdWdodCB1cC48L3A+PHA+ TGlrZSBtYW55IHdlc3Rlcm5lcnMsIEkgYWxzbyB0aG91Z2h0IHRoYXQgaG9tb3Nl eHVhbHMgd2VyZSBzdG9uZWQgaW4gdGhlIHN0cmVldHMsIGx5bmNoZWQsIG9yIGlu Y3JlZGlibHkgZGlzY3JpbWluYXRlZCBhZ2FpbnN0IGluIGV2ZXJ5IE1pZGRsZSBF YXN0ZXJuIGFuZCBNdXNsaW0gY291bnRyeS4gVGhpcyBmZWVsaW5nIHdhcyByZWlu Zm9yY2VkIGJ5IE11c2xpbSBmcmllbmRzIG9mIG1pbmUgaW4gdGhlIFN0YXRlcyB3 aG8gdG9sZCBtZSB0aGF0IElzbGFtIGZyb3ducyB1cG9uICJzb2RvbXkuIiBIb3dl dmVyLCBhZnRlciBsaXZpbmcgaW4gdGhlIE1pZGRsZSBFYXN0IGZvciBidXNpbmVz cyBwdXJwb3NlcyBmb3IgYSBmZXcgeWVhcnMgSSBtZXQgcXVpdGUgYSBmZXcgaG9t b3NleHVhbHMuIFNvbWUgd2VyZSAicmljaCIgc29tZSB3ZXJlICJwb29yIiBidXQg dGhlcmUgZGlkIHNlZW0gdG8gYmUgcXVpdGUgYSBmZXcgdmVudWVzIGZvciB0aGVt IGFuZCBhbiBlbnRpcmUgY3VsdHVyZSBmb3IgdGhlbSBhcyB3ZWxsLiBUaGlzIGRp ZG50IG1lYW4gdGhhdCBob21vcGhvYmlhIGRpZG4ndCBleGlzdCwgaXQgZGlkLCBi dXQgaXQgd2FzIG1vcmUgY29uc3RyYWluZWQgdG8gcGVvcGxlIGJhZCBtb3V0aGlu ZyBob21vc2V4dWFscyByYXRoZXIgdGhhbiBwaHlzaWNhbGx5IGFidXNpbmcgdGhl bSBvciBldmVuIGRpc2NyaW1pbmF0aW5nIGFnYWluc3QgdGhlbS48L3A+PHA+T25l IGV4YW1wbGUsIGlzIHdoZW4gYSBmcmllbmQgb2Ygb3VycyB3aG8gd2FzIG9wZW5s eSBob21vc2V4dWFsIHNhdCB3aXRoIHVzLiBObyBvbmUgc2VlbWVkIHRvIGhhdmUg YSBwcm9ibGVtIHdpdGggaGltLiBIb3dldmVyLCB3aGVuIGhlIGxlZnQgbXkgRWd5 cHRpYW4gZnJpZW5kcyBqb2tlZCB0aGF0IGhlIHdhcyBhICJob21vLCIgcmF0aGVy IHRoYW4gY29uZGVtbiBoaW0gZm9yIGhpcyBhY3Rpb25zIG9yIGV2ZW4gcmVmdXNl IHRvIGJlIGhpcyBmcmllbmQuIE1pbmQgeW91LCB0aGlzIGdyb3VwIG9mIHBlb3Bs ZSB3ZXJlIGRldm91dCBNdXNsaW1zIGFuZCBhIGRldm91dCBDb3B0LiBJIGhhZCBz aW1pbGFyIGV4cGVyaWVuY2VzIGluIE1vcm9jY28sIFR1bmlzaWEsIExlYmFub24s IFN5cmlhLCBhbmQgSm9yZGFuIChvaCBhbmQgZXZlbiBpbiBQYWtpc3RhbikuPC9w PiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+ IDx1bCBpZD0iQ29tbWVudEtleTphYWM4ODJkMC0yMWIzLTQ1N2ItYjM1Yi1iNTUy Y2UwNmYyY2IiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNr LXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6YWFjODgyZDAtMjFiMy00NTdiLWIz NWItYjU1MmNlMDZmMmNiIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxl PSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xp Y2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTphYWM4ODJkMC0yMWIzLTQ1N2It YjM1Yi1iNTUyY2UwNmYyY2InKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21t ZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8t Q29tbWVudEtleTphYWM4ODJkMC0yMWIzLTQ1N2ItYjM1Yi1iNTUyY2UwNmYyY2Ii IGNsYXNzPSJoaWdoLXJlY29tbWVuZGVkIiA+KDgpPC9zcGFuPiAgPC9saT4gPGxp IGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lk KDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFidXNlIj5S ZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48YSBjbGFz cz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNlcnMvY2xp cHBpbmdzL2FkZD9jb21tZW50SWQ9YWFjODgyZDAtMjFiMy00NTdiLWIzNWItYjU1 MmNlMDZmMmNiJmNvbW1lbnRlclVzZXJOYW1lPVp1Z3p1ZyZyMkNvbnRlbnRJZEZv clNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50 LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9z aG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OmFhYzg4MmQwLTIxYjMtNDU3 Yi1iMzViLWI1NTJjZTA2ZjJjYiIgbmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNv bW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNs YXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0xNiI+IDxsaSBjbGFzcz0i cGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDI4MjU5ODcpIDwvbGk+LS0+IDxkaXYg Y2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0Fya2FzaGEiIGNsYXNzPSJhdXRo b3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5n dWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvbm8tdXNlci1pbWFn ZS5naWYiIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJBcmthc2hhIj4gPC9h PiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0Fya2Fz aGEiPiBBcmthc2hhIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4z MSBBdWcgMjAwOSwgNToyN1BNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhv ci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iVHJ1c3RlZCI+ICA8 L2E+IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxi bG9ja3F1b3RlPjxwPldoYXQgdGhlIGZlY2sgZG8geW91IGV4cGVjdCBNRSB0byBk byBhYm91dCB0aGUgc2l0dWF0aW9uPyBJIGxpdmUgaW4gTG9uZG9uLiBUaGUgcG9p bnQgaXMgdGhhdCBhbnkgc29jaWFsIGNoYW5nZSBoYXMgdG8gY29tZSBmcm9tIGdh eXMgaW4gdGhlIG11c2xpbS9hcmFiIHdvcmxkIGZpZ2h0aW5nIGZvciB0aGVtc2Vs dmVzLCBub3QgbG9va2luZyBmb3IgZ2F5cyBpbiB0aGUgV2VzdCB0byBkbyBpdCBh bGwgZm9yIHRoZW0hPC9wPjwvYmxvY2txdW90ZT48cD5PaCwgTE9MLjwvcD48cD5T byB5b3UsIGZyb20gdGhlIHNhZmV0eSBvZiBMb25kb24sIGFyZSB0ZWxsaW5nIDxp Pm90aGVyIHBlb3BsZTwvaT4gdG8gcHV0IHRoZW1zZWx2ZXMgYXQgcmlzay48L3A+ PHA+WW91J3JlIGEgcGllY2Ugb2Ygd29yaywgeW91IGtub3cgdGhhdD88L3A+IDwv ZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVs IGlkPSJDb21tZW50S2V5OmZmNGQwODAwLWYzOTEtNGQ5Ni1hYjBlLTAyNTdkMjZh YzZjMiI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2lu Z2xlLWNvbW1lbnQtQ29tbWVudEtleTpmZjRkMDgwMC1mMzkxLTRkOTYtYWIwZS0w MjU3ZDI2YWM2YzIiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJl Y29tbWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1Jl Y29tbWVuZGF0aW9uKCdDb21tZW50S2V5OmZmNGQwODAwLWYzOTEtNGQ5Ni1hYjBl LTAyNTdkMjZhYzZjMicpIiBjbGFzcz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1uby1Db21t ZW50S2V5OmZmNGQwODAwLWYzOTEtNGQ5Ni1hYjBlLTAyNTdkMjZhYzZjMiIgY2xh c3M9ImhpZ2gtcmVjb21tZW5kZWQiID4oNyk8L3NwYW4+ICA8L2xpPiA8bGkgY2xh c3M9ImFidXNlLXJlcG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCki IHRpdGxlPSJSZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9y dCBhYnVzZSA8L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJh bmNob3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGlu Z3MvYWRkP2NvbW1lbnRJZD1mZjRkMDgwMC1mMzkxLTRkOTYtYWIwZS0wMjU3ZDI2 YWM2YzImY29tbWVudGVyVXNlck5hbWU9QXJrYXNoYSZyMkNvbnRlbnRJZEZvclNT UD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50LiI+ Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9zaG93 YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OmZmNGQwODAwLWYzOTEtNGQ5Ni1h YjBlLTAyNTdkMjZhYzZjMiIgbmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNvbW1l bnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNsYXNz PSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0xNyI+IDxsaSBjbGFzcz0icGx1 Y2stY29tbWVudCI+IDwhLS08bGk+KDMxOTQzNjgpIDwvbGk+LS0+IDxkaXYgY2xh c3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL1BoaWxpcEhhbGwiIGNsYXNzPSJhdXRo b3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5n dWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvc3RvcmUvMTMvMi81 ZDU4YmIxMS0zYmY5LTRiOWYtYTI4Ni01NTBlMDIxODFlMWQuU21hbGwucG5nIiBo ZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iUGhpbGlwSGFsbCI+IDwvYT4gPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9QaGlsaXBIYWxs Ij4gUGhpbGlwSGFsbCA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+ MzEgQXVnIDIwMDksIDU6MjlQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRo b3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IlN0YW5kYXJkIj4g IDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4g PHA+SSBoYWQgYSBmcmllbmQgY2FsbGVkIEdhcnkuIEkgbWV0IGhpbSBpbiBNYWRy aWQuIEl0IHdhcyB0aGUgbGF0ZSBlaWdodGllcy4gSGUgd2FzIGNoYXJtaW5nIGFu ZCB2ZXJ5IGZpdCwgYnV0IGJlbGlldmVkIGluIG1hY3JvYmlvdGljcy4gTWFjcm9i aW90aWNzIHRvIG1lIGlzIGEgZm9ybSBvZiB0d2lzdGVkIHhlbm9waG9iaWEgYWdh aW5zdCB0b21hdG9lcy4gIkxvbmcgbGl2ZSB0aGUgdG9tYXRvLCBJIHNheS4iIC0g Li4uYW5kIGZ1Y2sgdGhlIHR1cm5pcCwgb3IgIm5hYm8iLCBhcyB0aGV5IGFyZSBj YWxsZWQgaW4gU3BhaW4uPC9wPjxwPkdhcnkgaHVuZyBvdXQgd2l0aCBhIGNvb2wg Y3Jvd2QuIEl0IHdhcyB0aGUgdGltZSBvZiAiTGEgTWFyY2hhIiBpbiBNYWRyaWQs IGFuZCBNYWRyaWQgd2FzIGEgdmVyeSBnb29kIHBsYWNlIHRvIGJlIGluIDE5ODYu IEkgdGhpbmsgU2FkZSBsaXZlZCB0aGVyZSBhbmQgd2FzIHNheWluZyB2ZXJ5IHN0 cmFuZ2UgdGhpbmdzIGFib3V0IGhlciAibWFzdGVyZnVsIGxvdmVyIiwgdGhhdCBk aWRuJ3QgcXVpdGUgYW1vdW50IHRvIHNhZG9tYXNvY2hpc20sIGJ1dCBoZXIgZXhw b3N0dWxhdGlvbnMgd2VyZSB0aGUgYW50aXRoZXNpcyBvZiB0aGUgaWRlYXMgb2Yg YSBmb3JtaWRhYmxlIHlvdW5nIHdvbWFuIEkgbWV0IGluIE1hZHJpZC4gU2hlIHdh cyBzbyBvYm5veGlvdXMgdG8gc29tZSBtZW4gdGhhdCB0aGUgbWFjaG8gYmFyYmVy IHdobyBjdXQgaGVyIGhhaXIgZGVjaWRlZCB0byBzbmlwIG9mZiBoZXIgZWFybG9i ZS4gU2hlIGNvdWxkbid0IHVuZGVyc3RhbmQgd2h5IC0gYnV0IEkgY291bGQuPC9w PjxwPk9uIHRoZSBvdGhlciBoYW5kLCBkZXNwaXRlIHRoZSBzd2luZ2luZyBmZWVs IG9mIHRoZSB0b3duLCAobm90IHF1aXRlIFBhcmlzIGluIHRoZSB0d2VudGllcywg YnV0IHRoYW5rIEdvZCBmb3IgdGhhdCkgdGhlIFNwYW5pc2ggd2VyZSBhd2Z1bGx5 IHBhcm9jaGlhbC4gT25lIHNvbGl0YXJ5IGJsYWNrIG1hbiB3YWxrcyBkb3duIHRo ZSByb2FkIGxhdGUgYXQgbmlnaHQgYW5kIGEgVGF4aSAod2hpdGUgd2l0aCBhIHJl ZCBzdHJpcGUgLSBzbyBiZWxvdmVkIG9mIEFsbW9kYXZhcikgc2xvd3MgZG93bjo8 L3A+PHA+Ik5lZ3JvIGRlc2dyYWNpYWRvLCBiYXN0YXJkbyByZWdyZXNhdGUgYSB0 dSBwYWlzLiI8L3A+PHA+SGUgc2hvdXRzLCBhbmQgaGUgcHJvYmFibHkgYmVjYW1l IHRoZSBuZXN0IGNvYWNoIG9mIHRoZSBTcGFuaXNoIG5hdGlvbmFsIHRlYW0uPC9w PjxwPkJ1dCBpbiBhbnkgZXZlbnQsIEdhcnkgd2FzIEdheSBhbmQgaW4gdGhvc2Ug ZGF5cyB3ZSB3ZXJlIGFsbCBwYXJ0IGdheSwgd2VyZW4ndCB3ZSwgYWNjb3JkaW5n IHRvIEdhcnkgb25lLWluLWZvdXIgbWVuIHdlcmUgZ2F5LCBhbmQgc28gSSB0aG91 Z2h0IHdlbGwsIGJlIGZyaWVuZHMsIGRvbid0IGJlIHByZWp1ZGljZWQsIHdpdGgg Z2FyeS4gSSB3YXMuPC9wPjxwPkhlIHRvb2sgbWUgcm91bmQgTWFkcmlkLiAiQ2li ZWxlcywgaGUgc2FpZCwgaXMgYSBnYXkgcGljayB1cCBwb2ludC4iICJUaGUgUmV0 aXJvLCBoZSBzYWlkOiBpcyBhIEdheSBwaWNrIHVwIHBvaW50LiIgIlBsYXphIEVz cGFueWEsIGhlIHNhaWQgYSBnYXkgcGljayB1cCBwb2ludCAoaW4gZmFjdCBpdCBp cyB0aGUgc3ltYm9saWMgY2VudHJlIG9mIGZhc2Npc20gaW4gU3BhaW4pIHVudGls IG15IHdob2xlIG1hcCBvZiBNYWRyaWQgYmVjYW1lIEdhcnkncyBnYXkgbWFwLjwv cD48cD4iSG93IHdvdWxkIHlvdSBkZXNjcmliZSB5b3VyIHNleHVhbGl0eSIsIGhl IGFza2VkIG1lOiAiV2VsbCwgdG8gc29tZSBleHRlbnQsIEkgc3VwcG9zZSBJIGFt IHBvbHltb3JwaG91c2x5IHBlcnZlcnNlLiIgLSBJIHdhcyB0YWtpbmcgdGhlIHBp c3MuICJBaGEhIiBIZSBzYWlkLiAiVGhhdCBtZWFucyB5b3UgYXJlIGdheS4gVGhl IG9ubHkgcGxhY2UgdGhleSBtZW50aW9uIHRoYXQgd29yZCBpcyBpbiB0aGUgZ2F5 IGxpdGVyYXR1cmUuIjwvcD48cD4iV2VsbCBhY3R1YWxseSwgSSBzYWlkLCAobXkg cHJldGVudGlvdXNuZXNzIHN0aWxsIGdvbmdzIGJhY2sgdG8gbWUgb3ZlciB0aGUg eWVhcnMpIEkgcmVhZCBpdCBpbiBGcmV1ZCwgbm90IHRoZSBnYXkgbGl0ZXJhdHVy ZS48L3A+PHA+QnV0IHdoYXQgc2hvY2tlZCBtZSB3YXMgdGhpcyBvdmVybGF5aW5n IG9mIG1hcHMuIEdheSBCcmlndG9uLCBHYXkgTGViYW5ub24sIEdheSBNYW5jaGVz dGVyLCBHYXkgQ2liZWxlcy4gVGhlIGFsbCBlbWJyYWNpbmcgZ2F5IG1hcCBvZiB0 aGUgd29ybGQuIEl0J3MgcXVpdGUgc3VycHJpc2luZyB0byB0aG9zZSBvZiB1cyB3 aG8gYXJlIG9yIHdlcmUgb3V0c2lkZXJzLjwvcD48cD5HYXJ5J3MgZmxhdG1hdGUg d2FzIGNhbGxlZCBTdXNhbi4gU2hlIHdhcyBhIHByZXRlbnRpb3VzIHdhbm5hYmUg QXVzdHJhbGlhbiBmaWxtIGRpcmVjdG9yIHdobyB3b3JlIHNraSBwYW50cy48L3A+ PHA+U2hlIGNhbWUgaG9tZSBvbmUgZGF5IGFuZCBHYXJ5IGNhcmVmdWxseSBjbG9z ZWQgdGhlIGRvb3IuIFRoZW4gc2FpZDogIkknbGwgc2hvdyB5b3Ugc29tZSB5b2dh LiIgIkFscmlnaHQsIGxldCdzIHNlZS4gSSBjb21lIGZyb20gYSBmYW1pbHkgb2Yg WW9nYSB0ZWFjaGVycyBhbmQgZXhwZXJ0cy4iPC9wPjxwPkFuZCBoZSBnb3QgaW50 byBhIHZhcmlldHkgb2YgWW9nYSBwb3NpdGlvbnMsIGdyb2FuaW5nIGxvdWRseSBh cyBoZSBkaWQgc28uPC9wPjxwPkRlc3BpdGUgdGhpcyBmZWludCBvbiBoaXMgcGFy dCwgU3VzYW4gd2FzIG5vdCBwdXQgb2ZmLiBJIHN0YXJ0ZWQgZ29pbmcgb3V0IHdp dGggU3VzYW4gYW5kIGRyb3BwZWQgR2FyeSBhcyBhIGZyaWVuZCBhZnRlciB0aGF0 IGluY2lkZW50LiBCdXQgc2hlIHdhcyB0b28gZnJlY2tseSBhbmQgQW5nbG8tU2F4 b24uIEkgY291bGRuJ3QgdGFrZSBpdC4gVG9vIGNsb3NlIHRvIGhvbWUuIFdoZW4g SSBnb3QgYmFjayB0byBMb25kb24gSSBnb3QgcmlkIG9mIGhlci4gSSBwYWxtZWQg aGVyIG9mIG9uIHRvIG15IGJyb3RoZXIncyBzdXBlcmNvb2wgTG9uZG9uIGNyb3dk IC0gdGhlIG9uZXMgdGhhdCBsZWFkIHlvdSBhbGwgLSBHdWFyZGlhbiBwbG9ua3Mg LSBieSB0aGUgbm9zZS48L3A+PHA+QW4gc28gRGVzIHBpY2tlZCB1cCB3aXRoIGhl ci4gVGhlIGdyZWF0LCBiZWF1dGlmdWwgRGVzLCB3aG8gbm93IGxvb2tzIGxpa2Ug dGhlIGhlcm8gb2YgUmVkIER3YXJmLCBidXQgb25jZSB3YXMgdGhlIGtpbmcgb2Yg TG9uZG9uLCBhbmQgSSBhc2sgbXlzZWxmIHdoeSBoZSBkaWQgc28uIFdhcyBpdCBi cm90aGVybHkgY3VyaW9zaXR5PyAgSW4gYW55IGV2ZW50IGhlIHF1aWNrbHkgZHVt cGVkIGhlciBhbmQgc2FpZCAtICJQaGlsLCB5b3Ugd2VyZSB3ZWxsIHNob3Qgb2Yg aGVyIG1hdGUuIjwvcD48cD5UdXJuZWQgb3V0IHNoZSBoYXRlZCBtZSBiZWNhdXNl IHNoZSBhZG9yZWQgYWJzdHJhY3QgYXJ0IGFuZCB3YXMgaW5jcmVkaWJseSBpcnJp dGF0ZWQgYnkgdGhlIGZhY3QgdGhhdCBJIGhhZCBzYWlkIGFic3RyYWN0IGFydCB3 YXMgZnVuZGVkIGJ5IHRoZSBDSUEuIFdlbGwsIGl0IHdhcywgd2Fzbid0IGl0Pzwv cD48cD5TaGUgY2FtZSBhbGwgdGhlIHdheSBiYWNrIHRvIE1hZHJpZCB0byBoYXRl IG1lIGFuZCBzbyBJIHRvb2sgaGVyIHRvIHRoZSBSZXRpcm8gZm9yIGEgY29mZmVl LiBIb3QsIGJsYWNrLCBzdWdhci4gIllvdSBhcmUgdHJ5aW5nIHRvIHB1dCBtZSBp biBhIGdvb2QgbW9vZCwgc2hlIHNhaWQuIEkga25vdyB5b3UgYXJlLiBJcyBpdCB0 aGUgaGVhdCB0aGUgc3dlZXRuZXNzIG9yIHRoZSBjYWZmZWluZT8iICJHdWlsdHkg YXMgY2hhcmdlZC4gTm93IGZ1Y2sgb2ZmIGJhY2sgdG8gQXVzdHJhbGlhLiI8L3A+ PHA+QnV0IEdhcnkuIFdlbGwgSSB3ZW50IHRvIE1leGljbywgbWV0IGEgTWV4aWNh biwgbWFycmllZCBoZXIgYW5kIHRoZW4gb24gYSB0cmlwIHRvIE1hZHJpZCBtZXQg dGhlIGdpcmwgc2FucyBlYXJsb2JlIGF0IHRoZSBiYWdnYWdlIGNvbGxlY3Rpb24g cG9pbnQgaW4gVGVybWluYWwgMiAoIGEgcGxhY2UgZnVsbCBvZiBtZW1vcmllcyBm b3IgbWUpLjwvcD48cD4iTXkgd2lmZSwgSSBzYWlkIi4gIlJlYWxseSwgc2hlIHNh aWQ/IjwvcD48cD5PYnZpb3VzbHkgR2FyeSBoYWQgbWFkZSB1cCBzb21lIHN0b3J5 IGFib3V0IG91ciBzd2VldCBwYXJ0aW5nLCB3aGVuIEkgb3VyIGZyaWVuZHNoaXAg ZGllZCBpdHMgbmF0dXJhbCBkZWF0aC4gIlllcywgcmVhbGx5LCIgSSBzYWlkLiBC dXQgb2YgY291cnNlIEkgZGlkbid0IGV4cGVjdCBoZXIgdG8gYmVsaWV2ZSBtZS48 L3A+PHA+U28gSSBoYXZlIHRob3VnaHQgb2YgR2FyeSBhbmQgd29uZGVyIHdoYXQg aGUgaXMgdXAgdG8uIEhlIHdhcyBteSBmcmllbmQgYW5kIGhlIGRpZCBvcGVuIG15 IGV5ZXMgdG8gYSBsb3Qgb2YgdGhpbmdzIGFuZCBJIHRoYW5rIGhpbSBmb3IgdGhh dC48L3A+PHA+U28gSSBhbSBub3Qgc3VycHJpc2VkIExlYmFub24gaXMgZ2F5IGFu ZCBTaGFrZXNwZWFyZSBpcyBnYXkgKDEydGggbmlnaHQgaXMgYSB3b25kZXJmdWwg cGxheSkuIEkga25vdyB0aGF0IHRoZXJlIGlzIGEgbGF5ZXJpbmcgZWZmZWN0IG9u IHJlYWxpdHkgYW5kIHRoYXQgdGhlcmUgYXJlIG1hcHMgdXBvbiBtYXBzLCBhbmQg dGhhdCB0aGF0J3MgYWxyaWdodC48L3A+PHA+QnV0IHlvdXIgbWFwIGFpbid0IG1p bmUuPC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRv b2xzIiA+IDx1bCBpZD0iQ29tbWVudEtleToyOWNkZjlmYS02MWFiLTQ3NTktYjVl YS0yOWQ3OTA0YmM5NmIiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9 InBsdWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6MjljZGY5ZmEtNjFhYi00 NzU5LWI1ZWEtMjlkNzkwNGJjOTZiIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCki IHRpdGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJu IG9uQ2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleToyOWNkZjlmYS02MWFi LTQ3NTktYjVlYS0yOWQ3OTA0YmM5NmInKSIgY2xhc3M9InJlY29tbWVuZCI+ICAg UmVjb21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1l bnQtbm8tQ29tbWVudEtleToyOWNkZjlmYS02MWFiLTQ3NTktYjVlYS0yOWQ3OTA0 YmM5NmIiIGNsYXNzPSJub3JtYWwtcmVjb21tZW5kZWQiPigxKTwvc3Bhbj4gIDwv bGk+IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3Jp cHQ6dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1h YnVzZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+ PGEgY2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3Vz ZXJzL2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPTI5Y2RmOWZhLTYxYWItNDc1OS1i NWVhLTI5ZDc5MDRiYzk2YiZjb21tZW50ZXJVc2VyTmFtZT1QaGlsaXBIYWxsJnIy Q29udGVudElkRm9yU1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0 aGlzIGNvbW1lbnQuIj5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+ PGEgaHJlZj0iP3Nob3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6MjljZGY5 ZmEtNjFhYi00NzU5LWI1ZWEtMjlkNzkwNGJjOTZiIiBuYW1lPSIiIHRpdGxlPSJM aW5rIHRoaXMgY29tbWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwv dWw+ICA8dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTE4Ij4g PGxpIGNsYXNzPSJwbHVjay1jb21tZW50Ij4gPCEtLTxsaT4oMzE5NDM2OCkgPC9s aT4tLT4gPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxh IGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvUGhpbGlwSGFs bCIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0 cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdl cy9zdG9yZS8xMy8yLzVkNThiYjExLTNiZjktNGI5Zi1hMjg2LTU1MGUwMjE4MWUx ZC5TbWFsbC5wbmciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJQaGlsaXBI YWxsIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzL1BoaWxpcEhhbGwiPiBQaGlsaXBIYWxsIDwvYT4gPC9oMz4gPHAgY2xhc3M9 InBvc3RlZC10aW1lIj4zMSBBdWcgMjAwOSwgNTo1N1BNPC9wPiA8L2Rpdj4gPHNw YW4gY2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRs ZT0iU3RhbmRhcmQiPiAgPC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1j b21tZW50LWJvZHkiPiA8cD5Zb3Ugc2VlITwvcD48cD5UaGVyZSBpcyBmcmVlZG9t IGluIHBvc3RpbmcgLSBidXQgdGhlcmUgaXMgc3RyaWN0dXJlIGluIGEgYmxvZy4g QSBibG9nIGNvcnNldHMgeW91ciB3cml0aW5nLjwvcD4gPC9kaXY+IDwvbGk+IDxs aSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIgPiA8dWwgaWQ9IkNvbW1lbnRL ZXk6MDg4MTRhZjktMjc3MC00NWZmLWI1ZDItMzg3NDAwZDk1MDgwIj4gPGxpIGNs YXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1D b21tZW50S2V5OjA4ODE0YWY5LTI3NzAtNDVmZi1iNWQyLTM4NzQwMGQ5NTA4MCIg aHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVjb21tZW5kIHRoaXMg Y29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNsaWNrUmVjb21tZW5kYXRpb24o J0NvbW1lbnRLZXk6MDg4MTRhZjktMjc3MC00NWZmLWI1ZDItMzg3NDAwZDk1MDgw JykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29tbWVuZD8gICA8L2E+ICAgPHNw YW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5vLUNvbW1lbnRLZXk6MDg4MTRh ZjktMjc3MC00NWZmLWI1ZDItMzg3NDAwZDk1MDgwIiBjbGFzcz0ibm9ybWFsLXJl Y29tbWVuZGVkIj4oMSk8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9ImFidXNlLXJl cG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZXBv cnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBhYnVzZSA8L2E+ ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNob3ItYmFzZWQt bG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3MvYWRkP2NvbW1l bnRJZD0wODgxNGFmOS0yNzcwLTQ1ZmYtYjVkMi0zODc0MDBkOTUwODAmY29tbWVu dGVyVXNlck5hbWU9UGhpbGlwSGFsbCZyMkNvbnRlbnRJZEZvclNTUD0zNTIzNDE4 NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50LiI+Q2xpcDwvYT4g fCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9zaG93YWxsY29tbWVu dHM9dHJ1ZSNDb21tZW50S2V5OjA4ODE0YWY5LTI3NzAtNDVmZi1iNWQyLTM4NzQw MGQ5NTA4MCIgbmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNvbW1lbnQuIj5MaW5r PC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNsYXNzPSJwbHVjay1j b250ZW50IiBpZD0iY29tbWVudC0xOSI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVu dCI+IDwhLS08bGk+KDMxOTQzNjgpIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNr LWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJk aWFuLmNvLnVrL3VzZXJzL1BoaWxpcEhhbGwiIGNsYXNzPSJhdXRob3ItcHJvZmls ZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5j by51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvc3RvcmUvMTMvMi81ZDU4YmIxMS0z YmY5LTRiOWYtYTI4Ni01NTBlMDIxODFlMWQuU21hbGwucG5nIiBoZWlnaHQ9IjYw IiB3aWR0aD0iNjAiIGFsdD0iUGhpbGlwSGFsbCI+IDwvYT4gPGEgaHJlZj0iaHR0 cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9QaGlsaXBIYWxsIj4gUGhpbGlw SGFsbCA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+MzEgQXVnIDIw MDksIDY6MDBQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRob3ItdGllciI+ IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IlN0YW5kYXJkIj4gIDwvYT4gPC9z cGFuPiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4gPHA+V2VsbCwg bm90IHlvdXIgb3duIGJsb2csIHlvdSBjYW4gYmUgZnJlZSB0aGVyZSwgYnV0IG5v dCBvbiBhIGNoZWVzeSBqb3VybmFsZWVzeSB0eXBlIGJsb2cuPC9wPiA8L2Rpdj4g PC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0i Q29tbWVudEtleTozMzVjMTQ5ZS05OGZiLTQwMjItYTEyNi0wYWNlNzNlZGVjYmMi PiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1j b21tZW50LUNvbW1lbnRLZXk6MzM1YzE0OWUtOThmYi00MDIyLWExMjYtMGFjZTcz ZWRlY2JjIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1l bmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1l bmRhdGlvbignQ29tbWVudEtleTozMzVjMTQ5ZS05OGZiLTQwMjItYTEyNi0wYWNl NzNlZGVjYmMnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwv YT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtl eTozMzVjMTQ5ZS05OGZiLTQwMjItYTEyNi0wYWNlNzNlZGVjYmMiIGNsYXNzPSJu b3JtYWwtcmVjb21tZW5kZWQiPigxKTwvc3Bhbj4gIDwvbGk+IDxsaSBjbGFzcz0i YWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0 bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+UmVwb3J0IGFi dXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9ImFuY2hv ci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBwaW5ncy9h ZGQ/Y29tbWVudElkPTMzNWMxNDllLTk4ZmItNDAyMi1hMTI2LTBhY2U3M2VkZWNi YyZjb21tZW50ZXJVc2VyTmFtZT1QaGlsaXBIYWxsJnIyQ29udGVudElkRm9yU1NQ PTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQuIj5D bGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3Nob3dh bGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6MzM1YzE0OWUtOThmYi00MDIyLWEx MjYtMGFjZTczZWRlY2JjIiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29tbWVu dC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xhc3M9 InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTIwIj4gPGxpIGNsYXNzPSJwbHVj ay1jb21tZW50Ij4gPCEtLTxsaT4oMzE5NDM2OCkgPC9saT4tLT4gPGRpdiBjbGFz cz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxhIGhyZWY9Imh0dHA6Ly93 d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvUGhpbGlwSGFsbCIgY2xhc3M9ImF1dGhv ci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1 YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9zdG9yZS8xMy8yLzVk NThiYjExLTNiZjktNGI5Zi1hMjg2LTU1MGUwMjE4MWUxZC5TbWFsbC5wbmciIGhl aWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJQaGlsaXBIYWxsIj4gPC9hPiA8YSBo cmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL1BoaWxpcEhhbGwi PiBQaGlsaXBIYWxsIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4z MSBBdWcgMjAwOSwgNjowMVBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhv ci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iU3RhbmRhcmQiPiAg PC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8 cD5HcmVhdCBibG9nLCBCVFc8L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBs dWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjA1ZGY2MzU5 LTdmYzMtNGMyZi05YmM1LTJhMTM0YTRkNzhhZiI+IDxsaSBjbGFzcz0icmVjb21l bmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtleTow NWRmNjM1OS03ZmMzLTRjMmYtOWJjNS0yYTEzNGE0ZDc4YWYiIGhyZWY9ImphdmFz Y3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQuIiBv bmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50S2V5 OjA1ZGY2MzU5LTdmYzMtNGMyZi05YmM1LTJhMTM0YTRkNzhhZicpIiBjbGFzcz0i cmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVj ay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50S2V5OjA1ZGY2MzU5LTdmYzMtNGMy Zi05YmM1LTJhMTM0YTRkNzhhZiIgY2xhc3M9Im5vcm1hbC1yZWNvbW1lbmRlZCI+ KDEpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEg aHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBj bGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxp IGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVp cmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9MDVkZjYz NTktN2ZjMy00YzJmLTliYzUtMmExMzRhNGQ3OGFmJmNvbW1lbnRlclVzZXJOYW1l PVBoaWxpcEhhbGwmcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIi IHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxp IGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29t bWVudEtleTowNWRmNjM1OS03ZmMzLTRjMmYtOWJjNS0yYTEzNGE0ZDc4YWYiIG5h bWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8 L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9 ImNvbW1lbnQtMjEiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxp PigyNDY3NjA2KSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1 dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91 c2Vycy9JZXVhbiIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1n IHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250 ZW50L2ltYWdlcy9zdG9yZS83LzMvMTdkMzEyNzgtMDRhYS00OTMxLTgzMzctMzhi ZTJjZjRkZjA0LlNtYWxsLnBuZyIgaGVpZ2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9 IklldWFuIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L3VzZXJzL0lldWFuIj4gSWV1YW4gPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVk LXRpbWUiPjMxIEF1ZyAyMDA5LCA2OjAzUE08L3A+IDwvZGl2PiA8c3BhbiBjbGFz cz0iYXV0aG9yLXRpZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0 dXJlZCI+ICA8L2E+IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQt Ym9keSI+IDxwPkknbSBub3QgZ2F5IG1heXNlbGYsIGJ1dCB0aGUgZ2F5IHNjZW5l IGluIEFsZXBwbyAoU3lyaWEpIGEgZmV3IHllYXJzIGFnbyByZWFsbHkgc3Vwcmlz ZWQgbWUgaW4gaXRzIG9wZW5uZXNzIC0gYWxtb3N0IHRoZSBzYW1lIGFzIFNjYW5k aW5hdmlhICh3aGVyZSBJIGhhcHBlbmVkIHRvIGJlIGxpdmluZyB3aGVuIEkgdmlz aXRlZCBBbGVwcG8pLjwvcD48cD4iTW9zdCBvZiB0aGUgdmVudWVzIGNpdGVkIGlu IHRoZSBhcnRpY2xlIGFyZSBoYW5nb3V0cyBmb3IgdGhlIEJlaXJ1dGkgbW9uZXll ZCAmIzIzMztsaXRlLiBJbiBzb21lLCB5b3Ugd2lsbCBub3QgYmUgYWRtaXR0ZWQg aWYgeW91IGRvbid0IGNvbWUgd2l0aCBhbiBleHBlbnNpdmUgY2FyIG9yIHdlYXIg Y2VydGFpbiBmYXNoaW9uIGJyYW5kcy4gVGhhbmtmdWxseSwgdGhlIHZhc3QgbWFq b3JpdHkgb2YgdGhlIExlYmFuZXNlIGRvbid0IGJlbG9uZyB0byB0aGlzIG9ibm94 aW91cyBjcm93ZC4iPC9wPjxwPlNhbWUgdGhyb3VnaG91dCB0aGUgQXJhYiB3b3Js ZCwgd2hhdGV2ZXIgdGhleSBtYXkgb3IgbWF5IG5vdCBiZSwgQXJhYnMgaGF2ZSB0 byBiZSB0aGUgYmlnZ2VzdCBzbm9icyBpbiB0aGUgd29ybGQsIGFuZCB3aGVuIHRo ZXJlJ3MgYmVlbiBhIEZyZW5jaCBpbmZsdWVuY2UgaXQgZ2V0cyBldmVuIHdvcnNl IChJIGxpdmUgaW4gTW9yb2NjbywgSSBrbm93IHdoYXQgSSdtIHRhbGtpbmcgYWJv dXQgaW4gdGhpcyBjYXNlISkuIE1ha2VzIG5vIGRpZmZlcmVuY2UgaWYgdGhleSBh cmUgZ2F5IG9yIG5vdCwgU1RBVFVTIC0gdXN1YWxseSBkZWZpbmVkIGJ5IGZhbWls eSBuYW1lLCBjb25uZWN0aW9ucyBhbmQgbW9uZXkgaW4gdGhlIGJhbmsgKGFuZCBv c3RlbnRhdGlvdXNseSBkaXNwbGF5ZWQpIGlzIHRoZSBPTkxZIHRoaW5nIHdoaWNo IG1hdHRlcnMgaW4gQXJhYiBzb2NpZXR5IChpbiBteSBldmVyIGdyb3dpbmcgZXhw ZXJpZW5jZSkuPC9wPjxwPkFuZCB0YWxraW5nIG9mIE1vcm9jY28sIHlvdXIgcmVt YXJrcyBjb3VsZCBqdXN0IGFzIGVhc2lseSBhcHBseSB0aGVyZSwgdGhvJyAob2Yg Y291cnNlKSBob21vc2V4dWFsaXR5IGlzIGlsbGVnYWwgaGVyZS4uLiBob3dldmVy IHRoZSBsYXcgKGZvciBldmVyeXRoaW5nKSBpcyBzb21ldGhpbmcgb2YgYSBteXRo aWNhbCBiZWFzdCBoZXJlOiBtdWNoIGRpc2N1c3NlZCwgcmFyZWx5IHNlZW4uIEFu ZCB0aGVyZSBkbyBzZWVtIHRvIGJlIGEgbG90IG9mIG1hbGUgb25seSBneW1zIHdp dGggbXVzY3VsYXIgbWFsZSBwaW4tdXBzIGluIHRoZSB3aW5kb3dzLjwvcD48cD5G b3IgdGF4IHJlYXNvbnMgdGhlc2UgYXJlIG9mdGVuICdBc3NvY2lhdGlvbnMnICh0 aGV5IGhhdmUgYSBtZW1iZXJzaGlwIGxpc3QpLCB3aGljaCBpbiBGcmVuY2ggZ2V0 cyBzaG9ydGVuZWQgdG8gJ0Fzcy4nLCBzbyBub3QgZmFyIGZyb20gbXkgYXBhcnRt ZW50IGlzIGFuIGV4ZXJjaXNlIGd5bSB3aGljaCBwcm91ZGx5IGFubm91bmNlcyBp biBmb290IGhpZ2ggbGV0dGVycyBvbiBpdHMgd2luZG93cyB0aGF0IGl0IGlzIGFu OjwvcD48cD4nRXhlcmNpc2UgQXNzLUNsdWInPC9wPjxwPkFsd2F5cyBnaXZlcyBt ZSBhIGNodWNrbGUuIChQcm9iYWJseSBxdWl0ZSBhbiBhY2N1cmF0ZSBkZXNjcmlw dGlvbiBvZiB3aGF0IGl0ICdyZWFsbHknIGlzISk8L3A+IDwvZGl2PiA8L2xpPiA8 bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50 S2V5OmJkMmEwNWNhLTYyN2ItNDIyYS1iZDRlLWM3MzAxODYzZGI0ZiI+IDxsaSBj bGFzcz0icmVjb21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQt Q29tbWVudEtleTpiZDJhMDVjYS02MjdiLTQyMmEtYmQ0ZS1jNzMwMTg2M2RiNGYi IGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlz IGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9u KCdDb21tZW50S2V5OmJkMmEwNWNhLTYyN2ItNDIyYS1iZDRlLWM3MzAxODYzZGI0 ZicpIiBjbGFzcz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxz cGFuIGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50S2V5OmJkMmEw NWNhLTYyN2ItNDIyYS1iZDRlLWM3MzAxODYzZGI0ZiIgY2xhc3M9ImhpZ2gtcmVj b21tZW5kZWQiID4oOCk8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9ImFidXNlLXJl cG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZXBv cnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBhYnVzZSA8L2E+ ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNob3ItYmFzZWQt bG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3MvYWRkP2NvbW1l bnRJZD1iZDJhMDVjYS02MjdiLTQyMmEtYmQ0ZS1jNzMwMTg2M2RiNGYmY29tbWVu dGVyVXNlck5hbWU9SWV1YW4mcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBu YW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9s aT4gPGxpIGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRy dWUjQ29tbWVudEtleTpiZDJhMDVjYS02MjdiLTQyMmEtYmQ0ZS1jNzMwMTg2M2Ri NGYiIG5hbWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48 L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVu dCIgaWQ9ImNvbW1lbnQtMjIiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8 IS0tPGxpPigyNTk0MDg5KSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21t ZW50LWF1dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay91c2Vycy9lbGV1dGhlcmlhIiBjbGFzcz0iYXV0aG9yLXByb2ZpbGUtcGlj dHVyZSI+IDxpbWcgc3JjPSJodHRwOi8vc2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsv dmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0b3JlLzkvMTIvNjkwY2IxYWUtNWE5Ni00 ZjI2LWFjNzgtNGJmMWM5ZmZjN2Y5LlNtYWxsLnBuZyIgaGVpZ2h0PSI2MCIgd2lk dGg9IjYwIiBhbHQ9ImVsZXV0aGVyaWEiPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93 d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvZWxldXRoZXJpYSI+IGVsZXV0aGVyaWEg PC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjMxIEF1ZyAyMDA5LCA4 OjAyUE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRpZXIiPiA8YSBj bGFzcz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ICA8L2E+IDwvc3Bhbj4g IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxibG9ja3F1b3RlPjxw PkFjY29yZGluZyB0byBvbmUgcmVjZW50IE5ldyBZb3JrIFRpbWVzIGFydGljbGUs IGl0IGlzIG5vdyB0aGUgcmVnaW9uJ3MgUHJvdmluY2V0b3duIFsuLi5dLjwvcD48 cD5Db21wYXJpbmcgQmVpcnV0IHdpdGggYW5vdGhlciBjaXR5LCB3aGV0aGVyIFBh cmlzLCBSb21lIG9yIFByb3ZpbmNldG93biBpcyBhIGRlbmlhbCBvZiBpdHMgdW5p cXVlbmVzcy48L3A+PC9ibG9ja3F1b3RlPjxwPllvdSB3cml0ZSBhcyBpZiBhIGZp Z3VyZSBvZiBzcGVlY2ggd2VyZSBiZWluZyB1c2VkIHRvIGJsZWFjaCBhbGwgdGhl IExlYmFuZXNlIFdBU1Bpc2ggd2hpdGUgYW5kIHN0YW1wIG91dCB0aGVpciBsYW5n dWFnZS4gUHJvdmluY2V0b3duIGNhbiBiZSB0aGUgQmVpcnV0IG9mIHRoZSBVUywg Zm9yIGFsbCBJIGNhcmUuIEVkaW5idXJnaCBpcyB0aGUgQXRoZW5zIG9mIHRoZSBO b3J0aCwgQnJpZ2h0b24gaXMgTG9uZG9uLWJ5LXRoZS1zZWEsIGFuZCBzbyB3aGF0 PzwvcD48cD5JIGRpZG4ndCByZWFkIHRoZSBhcnRpY2xlIHlvdSBsaW5rZWQgdG8u IEkgcmVzZW50IGhhdmluZyB0byByZWdpc3RlciBsaWtlIHRoYXQgZm9yIHNvbWV0 aGluZyBmcmVlLCBhbmQgYmUgZW5jdW1iZXJlZCB3aXRoIHBhc3N3b3JkcyBldGMu IEkgc3VzcGVjdCB0aGUgYXJ0aWNsZSBpcyBqdXN0IGEgdHJhdmVsIGFydGljbGUg aW4gYSBjb2xvdXIgc3VwcGxlbWVudCwgYnV0IHlvdSB3cml0ZSAod2l0aCBzb21l IGdlc3R1cmVzIGFzIG9uZSB3aG8ncyByZWFkIHNvbWUgbGl0ZXJhcnkgdGhlb3J5 KSBhcyB0aG91Z2ggaXQgd2VyZSBhbiBvcmllbnRhbGlzdCwgY29sb25pYWxpc2lu ZyBlc3NlbnRpYWxpc20gLSBvciBzb21ldGhpbmcuPC9wPjxwPkl0J3MgYXMgaWYg SSB3ZXJlIHRvIGF0dGFjayBKdWRpdGggQ2hhbG1lcnMgZm9yIHNheWluZyAiTG9u ZG9uIGlzIGEgZ3JlYXQgcGxhY2UgZm9yIGhpc3RvcnkgYW5kIHBhZ2VhbnRyeSIg YmVjYXVzZSBzaGUgZGlkbid0IHRhbGsgYWJvdXQgY3VycnkgaG91c2VzIGluIEJy aWNrIExhbmUgb3IgZXJ1dnMgaW4gRmluY2hsZXkgb3IgZm9ybWVyIGRvY2tlcnMg aW4gVGhhbWVzbWVhZCBvciBhIGxhY2sgb2YgcGFnZWFudHJ5IG9yIHdoYXRldmVy LjwvcD48cD5Zb3Ugd3JvdGUgbGFzdCB5ZWFyICg8YSBocmVmPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvMjAwOC9vY3QvMTAvY3JvYXRp YS5nYXlyaWdodHMiPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv Y29tbWVudGlzZnJlZS8yMDA4L29jdC8xMC9jcm9hdGlhLmdheXJpZ2h0cyI+aHR0 cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMDgvb2N0LzEw L2Nyb2F0aWEuZ2F5cmlnaHRzPC9hPjwvYT4pIGFib3V0IENyb2F0aWE6PC9wPjxi bG9ja3F1b3RlPjxwPmFuIGF0bW9zcGhlcmUgb2YgZmVhciByZWlnbnMgYW1vbmcg dGhlIGdheSBjb21tdW5pdHk8L3A+PC9ibG9ja3F1b3RlPjxwPmEgYmxhbmtldCBn ZW5lcmFsaXNhdGlvbiB3aGljaCBpc24ndCB0aGF0IG11Y2ggZGlmZmVyZW50IGZy b20gd2hhdCB5b3UncmUgYWNjdXNpbmcgdGhlIE5ZVCBvZiE8L3A+PHA+V2h5IG5v dCB3cml0ZSBhbiBhcnRpY2xlIHRlbGxpbmcgdXMgd2hhdCBkYXktdG8tZGF5IGxp ZmUgaXMgbGlrZSBmb3IgeW91IGFuZCB5b3VyIGZyaWVuZHMgYXMgZ2F5IG1lbj8g SXQgd291bGQgYmUgbW9yZSBpbnRlcmVzdGluZyBhbmQgbGVzcyBjb250ZW50aW91 cy4gSSByZWFsbHkgaGF2ZW4ndCBjb21lIGF3YXkgZnJvbSB5b3VyIGFydGljbGUg d2l0aCBhbnkgc2Vuc2Ugb2Ygd2hhdCBnYXkgbGlmZSBpcyBsaWtlIGluIEJlaXJ1 dCwgZXhjZXB0IHRoYXQgaXQncyBub3QgYXMgdGhlIE5ZVCBkZXNjcmliZXMgaXQu PC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xz IiA+IDx1bCBpZD0iQ29tbWVudEtleTo5YWZkYzE4ZS1lMjgyLTQ1MzMtODg2Yy05 OWU5ZTBhYWRkYTYiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBs dWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6OWFmZGMxOGUtZTI4Mi00NTMz LTg4NmMtOTllOWUwYWFkZGE2IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRp dGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9u Q2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTo5YWZkYzE4ZS1lMjgyLTQ1 MzMtODg2Yy05OWU5ZTBhYWRkYTYnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVj b21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQt bm8tQ29tbWVudEtleTo5YWZkYzE4ZS1lMjgyLTQ1MzMtODg2Yy05OWU5ZTBhYWRk YTYiIGNsYXNzPSJoaWdoLXJlY29tbWVuZGVkIiA+KDQpPC9zcGFuPiAgPC9saT4g PGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2 b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFidXNl Ij5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48YSBj bGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNlcnMv Y2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9OWFmZGMxOGUtZTI4Mi00NTMzLTg4NmMt OTllOWUwYWFkZGE2JmNvbW1lbnRlclVzZXJOYW1lPWVsZXV0aGVyaWEmcjJDb250 ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMg Y29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48YSBo cmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTo5YWZkYzE4ZS1l MjgyLTQ1MzMtODg2Yy05OWU5ZTBhYWRkYTYiIG5hbWU9IiIgdGl0bGU9Ikxpbmsg dGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4g IDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQtMjMiPiA8bGkg Y2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzNjE0NDA1KSA8L2xpPi0t PiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9adWd6dWciIGNsYXNz PSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRl bGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvc3RvcmUv MTMvMTQvY2RiOWQ0MWEtNmIwZC00ODIzLThlZDMtYzEyZGY1ZTE0M2ZlLlNtYWxs LnBuZyIgaGVpZ2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9Ilp1Z3p1ZyI+IDwvYT4g PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9adWd6dWci PiBadWd6dWcgPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjMxIEF1 ZyAyMDA5LCA4OjA2UE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRp ZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ICA8L2E+ IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxwPllv dSBicmluZyB1cCBhbm90aGVyIGdvb2QgcG9pbnQgTGV1YW4uPC9wPjxwPjxpPnRo ZSBsYXcgKGZvciBldmVyeXRoaW5nKSBpcyBzb21ldGhpbmcgb2YgYSBteXRoaWNh bCBiZWFzdCBoZXJlOiBtdWNoIGRpc2N1c3NlZCwgcmFyZWx5IHNlZW4uIDwvaT48 L3A+PHA+SSB0aGluayB0aGlzIHN1bXMgdXAgdGhlIHNpdHVhdGlvbiBpbiBtYW55 IGNvdW50cmllcyBhcm91bmQgdGhlIHdvcmxkIGVzcGVjaWFsbHkgbWFueSBvZiB0 aGUgY291bnRyaWVzIGluIHRoZSBNaWRkbGUgRWFzdC48L3A+PHA+U3VyZSB0b25z IG9mIHRoaW5ncyBhcmUgaWxsZWdhbCBpbiB0aGUgTWlkZGxlIEVhc3QgYnV0IGVu Zm9yY2VtZW50IG9ubHkgY29tZXMgY3Jhc2hpbmcgZG93biB3aGVuIHRoZSBvZmZl bmRlciBoYXMgb2ZmZW5kZWQgdGhlIHN0YXRlIGFwcGFyYXR1cyAob3IgaWYgeW91 ciBpbmNyZWRpYmx5IHVubHVja3kpLiBNb3JhbGl0eSBwb2xpY2Ugc2VlbSB0byBv bmx5IGV4aXN0IGluIFNhdWRpIEFyYWJpYSBhbmQgSXJhbiwgd2hpbGUgdGhlIHJl c3Qgb2YgdGhlIE1pZGRsZSBFYXN0IGZpbmRzIHN1Y2ggYSBjb25jZXB0IHRvIGJl IGFsaWVuLjwvcD48cD5UaGlzIGNvdWxkIGhhdmUgdG8gZG8gd2l0aCBpbmVmZmlj aWVudCBidXJlYXVjcmFjaWVzIGFuZCB0aGUgZmFjdCB0aGF0IHRoZSBjb25jZXB0 IG9mICJydWxlIG9mIGxhdyIgd2Fzbid0IGhpc3RvcmljYWxseSByZWxlZ2F0ZWQg c29sZWx5IHRvIHRoZSBzdGF0ZS4gVmlsbGFnZSBjb3VuY2lscywgcmVsaWdpb3Vz IGxlYWRlcnMsIGFuZCBuZWlnaGJvcnMgb2Z0ZW4gc2V0dGxlZCBtaW5vciAoYW5k IHNvbWV0aW1lcyBtYWpvcikgZGlzcHV0ZXMgcmF0aGVyIHRoYW4gdGhlIGRlZmFj dG8gcnVsZXJzIG9mIHRoZSBhcmVhLiBUaGUgZW50aXJlIGNvbmNlcHQgb2YgZmls aW5nIGEgY29tcGxhaW50IHRvIGEgZ292ZXJubWVudCBvZmZpY2UgaXMgbmV3IHRv IHRoZSBhcmVhIHdoZW4gaXQgY2FuIGJlIGVhc2lseSB0YWtlbiBjYXJlIG9mIGJ5 IGp1c3QgaGF2aW5nIHRyYWRpdGlvbmFsIHZlbnVlcyBzb2x2ZSB0aGUgcHJvYmxl bS48L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQtdG9v bHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjBjMWIxM2ZhLTg4MmYtNDc4ZS1hMTFk LTAyZDZjNjBiOGE2NyI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8YSBpZD0i cGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtleTowYzFiMTNmYS04ODJmLTQ3 OGUtYTExZC0wMmQ2YzYwYjhhNjciIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIg dGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1cm4g b25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50S2V5OjBjMWIxM2ZhLTg4MmYt NDc4ZS1hMTFkLTAyZDZjNjBiOGE2NycpIiBjbGFzcz0icmVjb21tZW5kIj4gICBS ZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUtY29tbWVu dC1uby1Db21tZW50S2V5OjBjMWIxM2ZhLTg4MmYtNDc4ZS1hMTFkLTAyZDZjNjBi OGE2NyIgY2xhc3M9ImhpZ2gtcmVjb21tZW5kZWQiID4oMik8L3NwYW4+ICA8L2xp PiA8bGkgY2xhc3M9ImFidXNlLXJlcG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0 OnZvaWQoMCkiIHRpdGxlPSJSZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1 c2UiPlJlcG9ydCBhYnVzZSA8L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxh IGNsYXNzPSJhbmNob3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vy cy9jbGlwcGluZ3MvYWRkP2NvbW1lbnRJZD0wYzFiMTNmYS04ODJmLTQ3OGUtYTEx ZC0wMmQ2YzYwYjhhNjcmY29tbWVudGVyVXNlck5hbWU9WnVnenVnJnIyQ29udGVu dElkRm9yU1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNv bW1lbnQuIj5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJl Zj0iP3Nob3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6MGMxYjEzZmEtODgy Zi00NzhlLWExMWQtMDJkNmM2MGI4YTY3IiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRo aXMgY29tbWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8 dWwgY2xhc3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTI0Ij4gPGxpIGNs YXNzPSJwbHVjay1jb21tZW50Ij4gPCEtLTxsaT4oMjcwNzE5MikgPC9saT4tLT4g PGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxhIGhyZWY9 Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvc21hbGx0b3duYm95IiBj bGFzcz0iYXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8v c2l0ZWxpZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0 b3JlLzUvNC82NWEwYWFiNi1iZTkyLTRiMWItODRkNS05NTZiMzgwMGE5MjAuU21h bGwuZ2lmIiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0ic21hbGx0b3duYm95 Ij4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJz L3NtYWxsdG93bmJveSI+IHNtYWxsdG93bmJveSA8L2E+IDwvaDM+IDxwIGNsYXNz PSJwb3N0ZWQtdGltZSI+MzEgQXVnIDIwMDksIDg6MDlQTTwvcD4gPC9kaXY+IDxz cGFuIGNsYXNzPSJhdXRob3ItdGllciI+IDxhIGNsYXNzPSJyb2xsb3ZlciIgdGl0 bGU9IkZlYXR1cmVkIj4gIDwvYT4gPC9zcGFuPiAgPGRpdiBjbGFzcz0icGx1Y2st Y29tbWVudC1ib2R5Ij4gPHA+SSB0aGluayBXYWxpZCBtaXNzZWQgdGhlIHBvaW50 IG9mIHRoZSBvcmlnaW5hbCBOWVQgYXJ0aWNsZSwgd2hpY2ggZGlkIG5vdCBkaXNw dXRlIHRoZSBmYWN0IHRoYXQgdGhlcmUncyBiZWVuIGEgZ2F5ICJzY2VuZSIgaW4g dGhlIExldmFudCBzaW5jZSBiaWJsaWNhbCB0aW1lcywgYnV0IHJhdGhlciB0byBy ZXBvcnQgKGFuZCBxdWlldGx5IGNoZWVyKSB0aGUgZmFjdCB0aGF0IEJlaXJ1dCdz IGdheSBzb2NpYWwgaW5mcmFzdHJ1Y3R1cmUgd2FzIGJlY29taW5nIGEgYSBiaXQg bW9yZSBvcGVuIGFuZCBkZWVwbHkgcm9vdGVkLjwvcD48cD5BbnlvbmUgZmFtaWxp YXIgd2l0aCB0aGUgTWlkZGxlIEVhc3QgYW5kIE11c2xpbSBjdWx0dXJlIGNhbiB0 ZWxsIHlvdSB0aGF0IGhvbW9zZXh1YWxpdHkgaXMgcHJldHR5IGNvbW1vbiwgYXMg aXQgaXMgaW4gYW55IHNvY2lldHkgd2l0aCBzdWNoIHNldmVyZSBpbmVxdWFsaXR5 IGFuZCBzZWdyZWdhdGlvbiBhbW9uZyB0aGUgc2V4ZXMuICBJIGhhdmUgYW4gb3Bl bmx5IGdheSBmcmllbmQgd2hvIGxpdmVzIHdpdGggaGlzIFBhbGVzdGluaWFuIGxv dmVyIGluIFNhdWRpIEFyYWJpYS4gIEkgaW1hZ2luZSB0aGUgc2V4IG92ZXIgdGhl cmUgbXVzdCBwcmV0dHkgaG90IHdoZW4gdGhlIHJpc2sgb2YgZXhwb3N1cmUgaXMg dGhlIGRlYXRoIHBlbmFsdHkuICBUYWxrIGFib3V0IGxhIHBldGl0ZSBtb3J0ITwv cD4gPC9kaXY+IDwvbGk+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIg PiA8dWwgaWQ9IkNvbW1lbnRLZXk6ZDgxNmU1NDAtYjVhYi00MmNhLTg2ZTItZDU1 Mzc0NjM4ZjI1Ij4gPGxpIGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVj ay1zaW5nbGUtY29tbWVudC1Db21tZW50S2V5OmQ4MTZlNTQwLWI1YWItNDJjYS04 NmUyLWQ1NTM3NDYzOGYyNSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRs ZT0iUmVjb21tZW5kIHRoaXMgY29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNs aWNrUmVjb21tZW5kYXRpb24oJ0NvbW1lbnRLZXk6ZDgxNmU1NDAtYjVhYi00MmNh LTg2ZTItZDU1Mzc0NjM4ZjI1JykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29t bWVuZD8gICA8L2E+ICAgPHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5v LUNvbW1lbnRLZXk6ZDgxNmU1NDAtYjVhYi00MmNhLTg2ZTItZDU1Mzc0NjM4ZjI1 IiBjbGFzcz0iaGlnaC1yZWNvbW1lbmRlZCIgPig1KTwvc3Bhbj4gIDwvbGk+IDxs aSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9p ZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+ UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xh c3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2Ns aXBwaW5ncy9hZGQ/Y29tbWVudElkPWQ4MTZlNTQwLWI1YWItNDJjYS04NmUyLWQ1 NTM3NDYzOGYyNSZjb21tZW50ZXJVc2VyTmFtZT1zbWFsbHRvd25ib3kmcjJDb250 ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMg Y29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48YSBo cmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTpkODE2ZTU0MC1i NWFiLTQyY2EtODZlMi1kNTUzNzQ2MzhmMjUiIG5hbWU9IiIgdGl0bGU9Ikxpbmsg dGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4g IDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQtMjUiPiA8bGkg Y2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzNTE2MDQ4KSA8L2xpPi0t PiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9IYXZlYXR5ZSIgY2xh c3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3Np dGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9uby11 c2VyLWltYWdlLmdpZiIgaGVpZ2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9IkhhdmVh dHllIj4gPC9hPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzL0hhdmVhdHllIj4gSGF2ZWF0eWUgPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9z dGVkLXRpbWUiPjMxIEF1ZyAyMDA5LCAxMDoxN1BNPC9wPiA8L2Rpdj4gPHNwYW4g Y2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0i RmVhdHVyZWQiPiAgPC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21t ZW50LWJvZHkiPiA8cD5sb3ZlbXltb2QgLSAiaG93IGRvZXMgb25lIGRpZmZlcmVu dGlhdGUgYmV0d2VlbiBjdWx0dXJlIGFuZCBjb25zdW1hcmlzbSB0b2RheT8iIEl0 IGlzIHN0aWxsIHBvc3NpYmxlLCBidXQgaXQgaXMgYmVjb21pbmcgaW5jcmVhc2lu Z2x5IGRpZmZpY3VsdC4gQW5kIHRoaXMgaXMgY2VydGFpbmx5IHRoZSBjYXNlIHdp dGggd2hhdCBoYXMgYmVlbiBjYWxsZWQgZ2F5LWN1bHR1cmUsIGJ1dCBpcyByZWFs bHkgbm93IG5vIG1vcmUgdGhhbiBnYXktY29uc3VtZXJpc20uIFdobyBuZWVkcyBp dD8NPC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRv b2xzIiA+IDx1bCBpZD0iQ29tbWVudEtleTpiODhjYWI4Ni0yMjgwLTQ4ZTQtOGZk Mi03M2JlNTczMGU4ZjEiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9 InBsdWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6Yjg4Y2FiODYtMjI4MC00 OGU0LThmZDItNzNiZTU3MzBlOGYxIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCki IHRpdGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJu IG9uQ2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTpiODhjYWI4Ni0yMjgw LTQ4ZTQtOGZkMi03M2JlNTczMGU4ZjEnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAg UmVjb21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1l bnQtbm8tQ29tbWVudEtleTpiODhjYWI4Ni0yMjgwLTQ4ZTQtOGZkMi03M2JlNTcz MGU4ZjEiIGNsYXNzPSJub3JtYWwtcmVjb21tZW5kZWQiPigwKTwvc3Bhbj4gIDwv bGk+IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3Jp cHQ6dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1h YnVzZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+ PGEgY2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3Vz ZXJzL2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPWI4OGNhYjg2LTIyODAtNDhlNC04 ZmQyLTczYmU1NzMwZThmMSZjb21tZW50ZXJVc2VyTmFtZT1IYXZlYXR5ZSZyMkNv bnRlbnRJZEZvclNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhp cyBjb21tZW50LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxh IGhyZWY9Ij9zaG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OmI4OGNhYjg2 LTIyODAtNDhlNC04ZmQyLTczYmU1NzMwZThmMSIgbmFtZT0iIiB0aXRsZT0iTGlu ayB0aGlzIGNvbW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3Vs PiAgPHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0yNiI+IDxs aSBjbGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDMwODQwNjcpIDwvbGk+ LS0+IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBo cmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL01vdmVBbnlNb3Vu dGFpbiIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0i aHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2lt YWdlcy9zdG9yZS83LzEvYjdjYzRmZjctZDc1Ni00NjA2LWIxY2UtNTliM2E4MWQ1 Y2ZhLlNtYWxsLnBuZyIgaGVpZ2h0PSI2MCIgd2lkdGg9IjYwIiBhbHQ9Ik1vdmVB bnlNb3VudGFpbiI+IDwvYT4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay91c2Vycy9Nb3ZlQW55TW91bnRhaW4iPiBNb3ZlQW55TW91bnRhaW4gPC9h PiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjEgU2VwIDIwMDksIDEyOjI0 QU08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRpZXIiPiA8YSBjbGFz cz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ICA8L2E+IDwvc3Bhbj4gIDxk aXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxibG9ja3F1b3RlPjxwPlRo ZSBhcnRpY2xlIGFsc28gZGVuaWVzIG90aGVyIEFyYWIgY291bnRyaWVzIHRoZWly IG93biBnYXkgY3VsdHVyZXMuIC4uLiBUaGVyZSBtaWdodCBiZSBubyBLeWxpZSBN aW5vZ3VlIG5pZ2h0cyB0aGVyZSwgYnV0IG9uIHRoZSBvdGhlciBoYW5kIHRoZXJl IGlzIGEgbG90IGxlc3Mgc25vYmJlcnkgYW5kIGxlc3MgZnVzcyBhYm91dCBob21v c2V4dWFsaXR5LiAuLi4gSSBjYW4gc3RpbGwgcmVtZW1iZXIgaG93IGRpc2NvdmVy aW5nIFN0ZXZlbiwgdGhlIGdheSBjaGFyYWN0ZXIgaW4gRHluYXN0eSwgZHVyaW5n IG15IGNoaWxkaG9vZCBpbiB0aGUgMTk4MHMsIG9wZW5lZCBhIHdob2xlIG5ldyBw ZXJzcGVjdGl2ZSBmb3IgbWUuPC9wPjwvYmxvY2txdW90ZT48cD5TbyAuLi4gR2F5 IEFyYWIgY3VsdHVyZSBpcyBhYm91dCBLeWxpZSBNaW5vZ3VlIGFuZCBHYXkgQW1l cmljYW4gVFYgY2hhcmFjdGVyIGluIGZhYnVsb3VzIHNvYXAgb3BlcmFzIGxpa2Ug RHluYXN0eT88L3A+PGJsb2NrcXVvdGU+PHA+TWFueSB3ZXN0ZXJuIGpvdXJuYWxp c3RzIHN1bSB1cCBBcmFiIGdheSByZWFsaXRpZXMgd2l0aCBzZW50ZW5jZXMgbGlr ZTogIlNhdWRpIEFyYWJpYTogaG9tb3NleHVhbGl0eSBwdW5pc2hhYmxlIGJ5IGRl YXRoIiwgIklyYXE6IGdheSBtZW4ga2lsbGVkLiIgRnVsbCBzdG9wLiBCdXQgZ2F5 IG1lbiBhcmUgYWxzbyBraWxsZWQgaW4gImNpdmlsaXNlZCIgd2VzdGVybiBjb3Vu dHJpZXMuPC9wPjwvYmxvY2txdW90ZT48cD5ZZXMgYnV0IG5vdCBieSB0aGUgU3Rh dGUuICBOb3QgZXZlbiB0aGF0IG9mdGVuIGJ5IHBvbGljZW1lbi4gIFRoZSB3b3Jr IG9mIGEgdGlueSBtaW5vcml0eSBvZiBleHRyZW1pc3RzIGlzIG5vdCBxdWl0ZSB0 aGUgc2FtZSBhcyB0aGUgU2F1ZGkgU3RhdGUgZXhlY3V0aW9uZXIgYW5kIHRoZSBT aGlhIGRlYXRoIHNxdWFkcyBvZiBJcmFxIGl0IGlzPzwvcD48YmxvY2txdW90ZT48 cD5XaGlsZSBob21vcGhvYmlhIGlzIGNlcnRhaW5seSBhIHByb2JsZW0gaW4gQXJh YiBjb3VudHJpZXMsIGxpa2UgYW55d2hlcmUgZWxzZSwgaXQgbmV2ZXIgb3ZlcnNo YWRvd3MgdGhlIHRocml2aW5nIGFuZCBsaXZlbHkgbG9jYWwgZ2F5IGN1bHR1cmVz LjwvcD48L2Jsb2NrcXVvdGU+PHA+WWVhaC4gIEkgYW0gc3VyZSBTYXVkaSBBcmFi aWEncyBHYXkgc2NlbmUgaXMgZnVsbCBvbi48L3A+PGJsb2NrcXVvdGU+PHA+SG93 IGxvbmcgYmVmb3JlIHdyaXRlcnMgc3RhcnQgZGVzY3JpYmluZyBCZWlydXQgYXMg YSBuZXcgQmFuZ2tvayAmIzgyMTE7IHJhdGhlciB0aGFuIGEgUHJvdmluY2V0b3du P1dpbGwgc2V4IHRvdXJpc20gYWR2YW5jZSBpdHMgcG9wdWxhdGlvbidzIGdheSBy aWdodHMgb3Igc29jaWFsIHdlbGxiZWluZz88L3A+PC9ibG9ja3F1b3RlPjxwPlNv IHRoZSBwcm9ibGVtIGlzIHRoYXQgZm9yZWlnbiBHYXlzIG1pZ2h0IHR1cm4gdXAg YW5kIHRoYXQgd291bGQgYmUgYmFkIGJlY2F1c2UgLi4uID8NPC9wPiA8L2Rpdj4g PC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0i Q29tbWVudEtleTo0NjBiMjAxMC02ZTFkLTQxOTMtYWRlMC0xZGM4NjY0ZGU4ZDYi PiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1j b21tZW50LUNvbW1lbnRLZXk6NDYwYjIwMTAtNmUxZC00MTkzLWFkZTAtMWRjODY2 NGRlOGQ2IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1l bmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1l bmRhdGlvbignQ29tbWVudEtleTo0NjBiMjAxMC02ZTFkLTQxOTMtYWRlMC0xZGM4 NjY0ZGU4ZDYnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwv YT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtl eTo0NjBiMjAxMC02ZTFkLTQxOTMtYWRlMC0xZGM4NjY0ZGU4ZDYiIGNsYXNzPSJo aWdoLXJlY29tbWVuZGVkIiA+KDQpPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJh YnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRs ZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1 c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9y LWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2Fk ZD9jb21tZW50SWQ9NDYwYjIwMTAtNmUxZC00MTkzLWFkZTAtMWRjODY2NGRlOGQ2 JmNvbW1lbnRlclVzZXJOYW1lPU1vdmVBbnlNb3VudGFpbiZyMkNvbnRlbnRJZEZv clNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50 LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9z aG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OjQ2MGIyMDEwLTZlMWQtNDE5 My1hZGUwLTFkYzg2NjRkZThkNiIgbmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNv bW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNs YXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0yNyI+IDxsaSBjbGFzcz0i cGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDE0NTU2MjApIDwvbGk+LS0+IDxkaXYg Y2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0lzYW51emkiIGNsYXNzPSJhdXRo b3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5n dWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFnZXMvbm8tdXNlci1pbWFn ZS5naWYiIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJJc2FudXppIj4gPC9h PiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0lzYW51 emkiPiBJc2FudXppIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4x IFNlcCAyMDA5LCAxMjo0N0FNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhv ci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAg PC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8 cD5JIGRvbnQgYmVsaWV2ZSBpdCE8L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9 InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5Ojg4YmQx NzgzLWNiZmYtNGM0Mi05ZGU3LTZjNDkyNjFmNDY0NSI+IDxsaSBjbGFzcz0icmVj b21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtl eTo4OGJkMTc4My1jYmZmLTRjNDItOWRlNy02YzQ5MjYxZjQ2NDUiIGhyZWY9Imph dmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQu IiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50 S2V5Ojg4YmQxNzgzLWNiZmYtNGM0Mi05ZGU3LTZjNDkyNjFmNDY0NScpIiBjbGFz cz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJw bHVjay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50S2V5Ojg4YmQxNzgzLWNiZmYt NGM0Mi05ZGU3LTZjNDkyNjFmNDY0NSIgY2xhc3M9Im5vcm1hbC1yZWNvbW1lbmRl ZCI+KDApPC9zcGFuPiAgPC9saT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAg PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNl IiBjbGFzcz0icmVwb3J0LWFidXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4g PGxpIGNsYXNzPSJjbGlwIj48YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJl cXVpcmVkIiBocmVmPSIvdXNlcnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9ODhi ZDE3ODMtY2JmZi00YzQyLTlkZTctNmM0OTI2MWY0NjQ1JmNvbW1lbnRlclVzZXJO YW1lPUlzYW51emkmcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIi IHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxp IGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29t bWVudEtleTo4OGJkMTc4My1jYmZmLTRjNDItOWRlNy02YzQ5MjYxZjQ2NDUiIG5h bWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8 L3VsPiA8L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9 ImNvbW1lbnQtMjgiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxp PigyODE1OTAzKSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1 dGhvciI+IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91 c2Vycy9CcmFzaWxNZXJjb3N1bCIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1 cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3Zl cjEuMC9Db250ZW50L2ltYWdlcy9zdG9yZS8xMC8yL2FhYWE5M2ViLTViMjQtNDBk Yy1iMjJiLWViODc0ZjE2NzAxOC5TbWFsbC5qcGciIGhlaWdodD0iNjAiIHdpZHRo PSI2MCIgYWx0PSJCcmFzaWxNZXJjb3N1bCI+IDwvYT4gPGEgaHJlZj0iaHR0cDov L3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9CcmFzaWxNZXJjb3N1bCI+IEJyYXNp bE1lcmNvc3VsIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4xIFNl cCAyMDA5LCA1OjEwQU08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRp ZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJGZWF0dXJlZCI+ICA8L2E+ IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxwPk9I IGMmIzE4MDttb24gLCB0aGUgdW5pdmVyc2FsIGdheSBjdWx0dXJlIGlzIGZvciBt ZW4gdG8gaGF2ZSBzZXggd2l0aCBtZW4gLjwvcD48cD5Gb3JnZXQgd2VzdGVybiBm YXNoaW9uIHZpY3RpbXMsIHRoZXkgYWxsIHdlYXIgdGhlaXIgYnJhbmRzIHRvIGdl dCBwcmVmZXJhYmx5IG5ha2VkIHdpdGggb3RoZXIgbWVuIHJlZ2FyZGxlc3Mgb2Yg d2hhdCBicmFuZCBpcyB3b3JuIC48L3A+PHA+V2hhdCBpcyB1bml2ZXJzYXFsIGZv ciBnYXkgbWVuIGlzIHNleCB3aXRoIG90aGVyIG1lbiBhbmQgdGhhdCBpcyBmaW5l IGFzIGl0IGlzLjwvcD48cD5BbGwgb3RoZXIgc3ViLXN0eWxlcyBhcmUganVzdCBk aXN0cmFjdGlvbiBmcm9tIHRoZSByZWFsIHRoaW5nIC48L3A+PHA+U2V4IHdpdGgg b3RoZXIgbWVuLCByZWdhcmRsZXNzbHkgb2Ygd2hhdCB3YXMgb3Igd2lsbCBiZSB3 b3JuIC48L3A+PHA+VW5sZXNzIHRoZXkgYXJlIGxlYXRoZXIgZHJhZ3MgLjwvcD4g PC9kaXY+IDwvbGk+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIgPiA8 dWwgaWQ9IkNvbW1lbnRLZXk6YzRmNTVmNDMtNmIxMS00MGYyLWE2ODctOTg1ODRh YzA4ZDY5Ij4gPGxpIGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVjay1z aW5nbGUtY29tbWVudC1Db21tZW50S2V5OmM0ZjU1ZjQzLTZiMTEtNDBmMi1hNjg3 LTk4NTg0YWMwOGQ2OSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0i UmVjb21tZW5kIHRoaXMgY29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNsaWNr UmVjb21tZW5kYXRpb24oJ0NvbW1lbnRLZXk6YzRmNTVmNDMtNmIxMS00MGYyLWE2 ODctOTg1ODRhYzA4ZDY5JykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29tbWVu ZD8gICA8L2E+ICAgPHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5vLUNv bW1lbnRLZXk6YzRmNTVmNDMtNmIxMS00MGYyLWE2ODctOTg1ODRhYzA4ZDY5IiBj bGFzcz0iaGlnaC1yZWNvbW1lbmRlZCIgPig0KTwvc3Bhbj4gIDwvbGk+IDxsaSBj bGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgw KSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+UmVw b3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9 ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBw aW5ncy9hZGQ/Y29tbWVudElkPWM0ZjU1ZjQzLTZiMTEtNDBmMi1hNjg3LTk4NTg0 YWMwOGQ2OSZjb21tZW50ZXJVc2VyTmFtZT1CcmFzaWxNZXJjb3N1bCZyMkNvbnRl bnRJZEZvclNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBj b21tZW50LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhy ZWY9Ij9zaG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OmM0ZjU1ZjQzLTZi MTEtNDBmMi1hNjg3LTk4NTg0YWMwOGQ2OSIgbmFtZT0iIiB0aXRsZT0iTGluayB0 aGlzIGNvbW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAg PHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0yOSI+IDxsaSBj bGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDI4MzkxNDQpIDwvbGk+LS0+ IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVm PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL2FidXJhcyIgY2xhc3M9 ImF1dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVs aWZlLmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9zdG9yZS8x NS8xNC80ZjgzZWU0Mi04NzM4LTRlMmItYmU2ZC1lYmFiMzYwNTU4MTAuU21hbGwu Z2lmIiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iYWJ1cmFzIj4gPC9hPiA8 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL2FidXJhcyI+ IGFidXJhcyA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+MSBTZXAg MjAwOSwgOToxOUFNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10aWVy Ij4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9hPiA8 L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8YmxvY2tx dW90ZT48cD5NeSBmcmllbmQgQWxpIHJlY2VudGx5IHdlbnQgdG8gSm9yZGFuIHRv IGJlIHdlZGRlZCB0byBoaXMgYm95ZnJpZW5kIGJ5IGEgTXVzbGltIGNsZXJpYzwv cD48L2Jsb2NrcXVvdGU+PHA+TmFoLCBOYWguLi4gbm90IGhhdmluZyB0aGF0IC4u Li48L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQtdG9v bHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjBlYzMwNjQwLTVlODgtNGZiZS1iMDcx LTYyNDBkZTU1YzBlMyI+IDxsaSBjbGFzcz0icmVjb21lbmRlZCI+ICA8YSBpZD0i cGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtleTowZWMzMDY0MC01ZTg4LTRm YmUtYjA3MS02MjQwZGU1NWMwZTMiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIg dGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQuIiBvbmNsaWNrPSJyZXR1cm4g b25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50S2V5OjBlYzMwNjQwLTVlODgt NGZiZS1iMDcxLTYyNDBkZTU1YzBlMycpIiBjbGFzcz0icmVjb21tZW5kIj4gICBS ZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJwbHVjay1zaW5nbGUtY29tbWVu dC1uby1Db21tZW50S2V5OjBlYzMwNjQwLTVlODgtNGZiZS1iMDcxLTYyNDBkZTU1 YzBlMyIgY2xhc3M9Im5vcm1hbC1yZWNvbW1lbmRlZCI+KDApPC9zcGFuPiAgPC9s aT4gPGxpIGNsYXNzPSJhYnVzZS1yZXBvcnQiPiAgPGEgaHJlZj0iamF2YXNjcmlw dDp2b2lkKDApIiB0aXRsZT0iUmVwb3J0IGFidXNlIiBjbGFzcz0icmVwb3J0LWFi dXNlIj5SZXBvcnQgYWJ1c2UgPC9hPiAgPC9saT4gPGxpIGNsYXNzPSJjbGlwIj48 YSBjbGFzcz0iYW5jaG9yLWJhc2VkLWxvZ2luLXJlcXVpcmVkIiBocmVmPSIvdXNl cnMvY2xpcHBpbmdzL2FkZD9jb21tZW50SWQ9MGVjMzA2NDAtNWU4OC00ZmJlLWIw NzEtNjI0MGRlNTVjMGUzJmNvbW1lbnRlclVzZXJOYW1lPWFidXJhcyZyMkNvbnRl bnRJZEZvclNTUD0zNTIzNDE4NzEiIG5hbWU9IiIgdGl0bGU9IkNsaXAgdGhpcyBj b21tZW50LiI+Q2xpcDwvYT4gfCA8L2xpPiA8bGkgY2xhc3M9ImxpbmsiPjxhIGhy ZWY9Ij9zaG93YWxsY29tbWVudHM9dHJ1ZSNDb21tZW50S2V5OjBlYzMwNjQwLTVl ODgtNGZiZS1iMDcxLTYyNDBkZTU1YzBlMyIgbmFtZT0iIiB0aXRsZT0iTGluayB0 aGlzIGNvbW1lbnQuIj5MaW5rPC9hPjwvbGk+IDwvdWw+IDwvbGk+ICA8L3VsPiAg PHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBpZD0iY29tbWVudC0zMCI+IDxsaSBj bGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08bGk+KDI0Njc2MDYpIDwvbGk+LS0+ IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYXV0aG9yIj4gPGgzPiA8YSBocmVm PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0lldWFuIiBjbGFzcz0i YXV0aG9yLXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8vc2l0ZWxp ZmUuZ3VhcmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0b3JlLzcv My8xN2QzMTI3OC0wNGFhLTQ5MzEtODMzNy0zOGJlMmNmNGRmMDQuU21hbGwucG5n IiBoZWlnaHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iSWV1YW4iPiA8L2E+IDxhIGhy ZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvSWV1YW4iPiBJZXVh biA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGltZSI+MSBTZXAgMjAwOSwg MTI6MjdQTTwvcD4gPC9kaXY+IDxzcGFuIGNsYXNzPSJhdXRob3ItdGllciI+IDxh IGNsYXNzPSJyb2xsb3ZlciIgdGl0bGU9IkZlYXR1cmVkIj4gIDwvYT4gPC9zcGFu PiAgPGRpdiBjbGFzcz0icGx1Y2stY29tbWVudC1ib2R5Ij4gPHA+TW92ZUFueU1v dW50YWluIHF1b3RlZDogIkhvdyBsb25nIGJlZm9yZSB3cml0ZXJzIHN0YXJ0IGRl c2NyaWJpbmcgQmVpcnV0IGFzIGEgbmV3IEJhbmdrb2siPC9wPjxwPk1hcnJha2Vj aCBpcyB0b2RheSByZWZlcnJlZCB0byBhcyAndGhlIEFyYWIgd29ybGQncyBQaHVr ZXQvUGF0dGF5YS9CYW5na2lrJyBib3RoIHdpdGhpbiBhbmQgd2l0aG91dCB0aGUg QXJhYiB3b3JsZC4gSW4gZmFjdCwgSSBoYXZlIGhlYXJkIE1vcm9jY28gaW4gaXRz IGVudGlyZXR5IHJlZmVycmVkIHRvIGJ5IEFyYWJzIGFzICd0aGUgQXJhYiB3b3Js ZCdzIFRoYWlsYW5kJyBvbiBtb3JlIHRoYW4gb25lIG9jY2Fzc2lvbiAoYW5kIHlv dSBjYW4gYmV0IHRoZXkgZmxvY2sgaGVyZSBpbiB0aGVpciB0ZW5zIG9mIHRob3Vz YW5kcywgcGFydGljdWxhcmx5IGZyb20gdGhlIG1vcmUgJ2NvbnZlcnN2YXRpdmUn IGNvdW50cmllcyBvZiB0aGUgUGVyc2lhbiBHdWxmJiMxNzY7LjwvcD48cD4oVGhp cyBhY3R1YWxseSBoYXMgdmVyeSBiYWQgZWZmZWN0cyBvbiB0aGUgY291bnRyeSwg YnV0IGl0IGlzIG5vdCBmYXIgZnJvbSB0aGUgdHJ1dGguLi4uIGFuZCBpdCBhcHBs aWVzIGJvdGggdG8gaGV0cm8tIGFuZCBob21vc2V4dWFsLSBwbGVhc3VyZXMpLjwv cD48cD5adWd6dWcgc2FpZDogIlN1cmUgdG9ucyBvZiB0aGluZ3MgYXJlIGlsbGVn YWwgaW4gdGhlIE1pZGRsZSBFYXN0IGJ1dCBlbmZvcmNlbWVudCBvbmx5IGNvbWVz IGNyYXNoaW5nIGRvd24gd2hlbiB0aGUgb2ZmZW5kZXIgaGFzIG9mZmVuZGVkIHRo ZSBzdGF0ZSBhcHBhcmF0dXMgKG9yIGlmIHlvdXIgaW5jcmVkaWJseSB1bmx1Y2t5 KS4iPC9wPjxwPkV4YWN0bHkuIE1pZGRsZSBFYXN0ZXJuIHNvY2lldGllcyBzZWVt IHRvIGJlIHRoZSBtb3N0IGFuYXJjaGlzdGljIChhdCB0aGUgbGV2ZWwgb2YgdGhl IGNpdGl6ZW4pIGluIHRoZSB3b3JsZC4gJ0Rpc2NyZXRpb24nIGlzIHRoZSB3YXRj aHdvcmQuLi4gRnVubmlseSBlbm91Z2gsIHRob3VnaCBJIGxpdmUgaW4gYSBjb3Vu dHJ5IHdoaWNoIGhhcyBqdXN0IHBhc3NlZCBmcm9tIGEgc3RhZ2Ugb2YgYWJzb2x1 dGUgZGljdGF0b3JzaGlwLCBJIGhhdmUgTVVDSCBtb3JlIGxhdGl0dWRlIGluIGFj dGlvbiB3aGVuIGl0IGNvbWVzIHRvIG15IHBlcnNvbmFsIGJlaGF2aW91ciB0aGFu IGluIFdlc3Rlcm4gRXVyb3BlLiBPZiBjb3Vyc2UsIEkgbG92ZSBpdCB0aGF0IGV2 ZW4gdGhvdWdoICdsZWdhbGx5JyBzbW9raW5nIGhhcyBub3cgYmVlbiBiYW5uZWQg aW4gYmFycyBhbmQgY2FmJiMyMzM7cywgTk9CT0RZIGhhcyB0YWtlbiBhbnkgbm90 aWNlIGF0IGFsbCBhbmQgbm8gcG9saWNlbWFuIHdvdWxkIGRhcmUgZ2V0IHBlb3Bs ZSB0byBwdXQgdGhlcmUgY2lnYXJldHRlcyBvdXQuIE9uIHRoZSBvdGhlciBoYW5k LCB3aGVuIHBlb3BsZSB0YWtlIHRoZSBzYW1lIGF0dGl0dWRlIHRvIHJlZCB0cmFm ZmljIGxpZ2h0cyBhbmQgSSdtIGNyb3NzaW5nIHRoZSByb2FkIChhbmQgaGVuY2Ug aGF2ZSB0byBsZWFwIG91dCBvZiB0aGUgd2F5IG9mIHNvbWUgTWVyYyB3aGljaCBj YW4ndCBiZSBib3RoZXJlZCB0byBzdG9wKSBJIGdldCBhIGJpdCBuYXJreS48L3A+ PHA+c28sIHdob2xlc2FsZSBsYXdicmVha2luZyBoYXMgYm90aCBpdHMgZ29vZCBh bmQgYmFkIHNpZGVzLiBCdXQgY2VydGFpbmx5IEkga25vdyBvZiBzZXZlcmFsIGdh eSBjb3VwbGVzIGxpdmluZyB0b2dldGhlciAoRXVyb3BlYW4vRXVyb3BlYW4sIEV1 cm9wZWFuL01vcm9jY2FuLCBNb3JvY2Nhbi9Nb3JvY2NhbiksIHNvbWUgb2Ygd2hv bSBoYXZlIGJlZW4gdG9nZXRoZXIgZm9yIGRlY2FkZXMgd290aG91dCBhbnkgcHJv YmxlbS48L3A+PHA+QW5kIGlmIHRoZXkgc2hvdWxkIGJlIGhhc3NsZWQgKE5FVkVS IGhlYXJkIG9mIGl0LCB0aG8nKSB0aGVuIGEgMTAwIGRoIChhYm91dCAmIzE2Mzs2 KSBub3RlIHdvdWxkIHRha2UgY2FyZSBvZiB0aGF0ITwvcD48cD5hYnVyYXMgd2Fz IHNrZXB0aWNhbCBhYm91dDogIkFsaSByZWNlbnRseSB3ZW50IHRvIEpvcmRhbiB0 byBiZSB3ZWRkZWQgdG8gaGlzIGJveWZyaWVuZCBieSBhIE11c2xpbSBjbGVyaWMi LjxiciAvPldlbGwsIHByb3N0aXR1dGlvbiBpcyBsZWdhbCBpbiBKb3JkYW4sIHNv IHBlcmhhcHMgaXQgaXMgcG9zc2libGUuPC9wPjxwPkluY2lkZW50YWxseSwgaXQg d2FzIGluIE11c2xpbSBNb3JvY2NvIHRoYXQgdGhlIGZpcnN0IHNleCBjaGFuZ2Ug KG1hbGUgLSZndDsgZmVtYWxlKSBvcGVyYXRpb25zIHdlcmUgcGlvbmVlcmVkIChi eSBhIE11c2xpbSBNb3JvY2NhbiBzdXJnZW9uLCB3aG8gbWF5IGhhdmUgYmVlbiBn YXkgaGltc2VsZiwgdGhvJyBvcGluaW9ucyBkaWZmZXIpLCBpbiB0aGUgdmVyeSBz dHJlZXQgd2hlcmUgd2UgaGF2ZSBvdXIgQ2FzYWJsYW5jYSBvZmZpY2UuIFRoZSBN dXNsaW0gd29ybGQgKE1vcm9jY28gZXNwZWNpYWxseSkgY29udGludWVzIHRvIHN1 cnByaXNlLjwvcD4gPC9kaXY+IDwvbGk+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVu dC10b29scyIgPiA8dWwgaWQ9IkNvbW1lbnRLZXk6YzNhYmFmYjgtZTA3OS00NWU4 LTgyZjUtZjNjOTA5YTVjOTQ2Ij4gPGxpIGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxh IGlkPSJwbHVjay1zaW5nbGUtY29tbWVudC1Db21tZW50S2V5OmMzYWJhZmI4LWUw NzktNDVlOC04MmY1LWYzYzkwOWE1Yzk0NiIgaHJlZj0iamF2YXNjcmlwdDp2b2lk KDApIiB0aXRsZT0iUmVjb21tZW5kIHRoaXMgY29tbWVudC4iIG9uY2xpY2s9InJl dHVybiBvbkNsaWNrUmVjb21tZW5kYXRpb24oJ0NvbW1lbnRLZXk6YzNhYmFmYjgt ZTA3OS00NWU4LTgyZjUtZjNjOTA5YTVjOTQ2JykiIGNsYXNzPSJyZWNvbW1lbmQi PiAgIFJlY29tbWVuZD8gICA8L2E+ICAgPHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1j b21tZW50LW5vLUNvbW1lbnRLZXk6YzNhYmFmYjgtZTA3OS00NWU4LTgyZjUtZjNj OTA5YTVjOTQ2IiBjbGFzcz0ibm9ybWFsLXJlY29tbWVuZGVkIj4oMSk8L3NwYW4+ ICA8L2xpPiA8bGkgY2xhc3M9ImFidXNlLXJlcG9ydCI+ICA8YSBocmVmPSJqYXZh c2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBv cnQtYWJ1c2UiPlJlcG9ydCBhYnVzZSA8L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNs aXAiPjxhIGNsYXNzPSJhbmNob3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9 Ii91c2Vycy9jbGlwcGluZ3MvYWRkP2NvbW1lbnRJZD1jM2FiYWZiOC1lMDc5LTQ1 ZTgtODJmNS1mM2M5MDlhNWM5NDYmY29tbWVudGVyVXNlck5hbWU9SWV1YW4mcjJD b250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRo aXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48 YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTpjM2FiYWZi OC1lMDc5LTQ1ZTgtODJmNS1mM2M5MDlhNWM5NDYiIG5hbWU9IiIgdGl0bGU9Ikxp bmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91 bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQtMzEiPiA8 bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzODM4Mzg3KSA8L2xp Pi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxoMz4gPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9IYW5uYWhXcmln aHQiIGNsYXNzPSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBzcmM9Imh0 dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVudC9pbWFn ZXMvc3RvcmUvMS8wLzYxNGIxZTZkLWM0MjEtNDk5OC1iMGJmLWUwYjY2NDlhZTE1 Zi5TbWFsbC5wbmciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJIYW5uYWhX cmlnaHQiPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv dXNlcnMvSGFubmFoV3JpZ2h0Ij4gSGFubmFoV3JpZ2h0IDwvYT4gPC9oMz4gPHAg Y2xhc3M9InBvc3RlZC10aW1lIj4xIFNlcCAyMDA5LCAyOjM4UE08L3A+IDwvZGl2 PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRpZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIi IHRpdGxlPSJTdGFmZiI+ICA8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNv LnVrL21pY3JvYXBwcy9zZXJ2ZXItc2lkZS1wbHVjay9pbWFnZXMvaWNvbnNfY29u dHJpYnV0b3JfMjguZ2lmIiB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHRpdGxlPSJD b250cmlidXRvciIgYWx0PSJDb250cmlidXRvciIgLz4gPHNwYW4+Q29udHJpYnV0 b3I8L3NwYW4+ICA8L2E+IDwvc3Bhbj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1l bnQtYm9keSI+IDxibG9ja3F1b3RlPjxwPlRvZGF5IHRoZXJlIGFyZSBubyBtb3Jl IHB1YmxpYyBnYXkgYmVhY2hlcyBsZWZ0IGluIExlYmFub24uPC9wPjwvYmxvY2tx dW90ZT48cD5JbiBmYWlybmVzcywgdGhlcmUgYXJlIGhhcmRseSBhbnkgcHVibGlj IGJlYWNoZXMgbGVmdC48L3A+PHA+QSBjb3VwbGUgb2YgbW9udGhzIGFnbyBpbiBC ZWlydXQgSSBtZXQgYSBndXkgd2hvIGdhdmUgY291bnNlbGxpbmcgdG8gZ2F5L2Jp L2N1cmlvdXMgbWVuIGFuZCB3b21lbi4gQWNjb3JkaW5nIHRvIGhpbSwgdGhlcmUg aXMgYSByZWxhdGl2ZWx5IG9wZW4gImdheSBjdWx0dXJlIiAobWVhbmluZyB0aGUg Z2F5IGNvbnN1bWVyaXNtIGRlc2NyaWJlZCBpbiB0aGUgYXJ0aWNsZSAtIGdheSBj bHVicywgcGVvcGxlIGRyZXNzaW5nIGluIGEgc3RlcmVvdHlwaWNhbGx5ICdnYXkn IHdheSkgYnV0IG1hbnkgcGVvcGxlIGFsc28gZmluZCB0aGVpciBmYW1pbGllcyB3 aWxsIG5vdCBhY2NlcHQgd2hvIHRoZXkgYXJlIChhbmQgbWFueSB3b3VsZCBub3Qg Y29tZSBvdXQgdG8gdGhlaXIgcGFyZW50cykgYXMgaXQgaXMgc2VlbiBhcyBicmlu Z2luZyBzaGFtZSBvbiB0aGUgZmFtaWx5LiBQYXJ0bHkgYSBnZW5lcmF0aW9uIGdh cCwgSSBndWVzcywgbm90IGFsbCB0aGF0IGRpZmZlcmVudCB0byB0aGUgVUsuPC9w PjxwPkRpYW1vbmQsIHNpbmNlIHlvdXIgYXJ0aWNsZSBkZWFscyBvbmx5IHdpdGgg YXR0aXR1ZGVzIHRvd2FyZCBhbmQgbGlmZXN0eWxlcyBvZiBnYXkgbWVuLCB3aGF0 IGNhbiB5b3UgdGVsbCB1cyBhYm91dCBsZXNiaWFuaXNtIGluIEJlaXJ1dD8gSXMg aXQgYXMgYWNjZXB0YWJsZSB0byBiZSBhIGdheSB3b21hbiBhcyBhIGdheSBtYW4/ PGJyIC8+PC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50 LXRvb2xzIiA+IDx1bCBpZD0iQ29tbWVudEtleTpkYzBjYWVkOS1lMmRjLTQ2ZGMt ODc5NS1iZDhkMWUzMDkyYjUiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEg aWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6ZGMwY2FlZDktZTJk Yy00NmRjLTg3OTUtYmQ4ZDFlMzA5MmI1IiBocmVmPSJqYXZhc2NyaXB0OnZvaWQo MCkiIHRpdGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0 dXJuIG9uQ2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTpkYzBjYWVkOS1l MmRjLTQ2ZGMtODc5NS1iZDhkMWUzMDkyYjUnKSIgY2xhc3M9InJlY29tbWVuZCI+ ICAgUmVjb21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNv bW1lbnQtbm8tQ29tbWVudEtleTpkYzBjYWVkOS1lMmRjLTQ2ZGMtODc5NS1iZDhk MWUzMDkyYjUiIGNsYXNzPSJub3JtYWwtcmVjb21tZW5kZWQiPigwKTwvc3Bhbj4g IDwvbGk+IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFz Y3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9y dC1hYnVzZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xp cCI+PGEgY2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0i L3VzZXJzL2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPWRjMGNhZWQ5LWUyZGMtNDZk Yy04Nzk1LWJkOGQxZTMwOTJiNSZjb21tZW50ZXJVc2VyTmFtZT1IYW5uYWhXcmln aHQmcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJD bGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJs aW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleTpk YzBjYWVkOS1lMmRjLTQ2ZGMtODc5NS1iZDhkMWUzMDkyYjUiIG5hbWU9IiIgdGl0 bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xp PiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1lbnQt MzIiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzODU2NjMz KSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+IDxo Mz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9EaWFt b25kV2FsaWQiIGNsYXNzPSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGltZyBz cmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29udGVu dC9pbWFnZXMvbm8tdXNlci1pbWFnZS5naWYiIGhlaWdodD0iNjAiIHdpZHRoPSI2 MCIgYWx0PSJEaWFtb25kV2FsaWQiPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvdXNlcnMvRGlhbW9uZFdhbGlkIj4gRGlhbW9uZFdhbGlk IDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4xIFNlcCAyMDA5LCA1 OjQyUE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9yLXRpZXIiPiA8YSBj bGFzcz0icm9sbG92ZXIiIHRpdGxlPSJTdGFmZiI+ICA8aW1nIHNyYz0iaHR0cDov L3N0YXRpYy5ndWltLmNvLnVrL21pY3JvYXBwcy9zZXJ2ZXItc2lkZS1wbHVjay9p bWFnZXMvaWNvbnNfY29udHJpYnV0b3JfMjguZ2lmIiB3aWR0aD0iMjgiIGhlaWdo dD0iMjgiIHRpdGxlPSJDb250cmlidXRvciIgYWx0PSJDb250cmlidXRvciIgLz4g PHNwYW4+Q29udHJpYnV0b3I8L3NwYW4+ICA8L2E+IDwvc3Bhbj4gIDxkaXYgY2xh c3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxwPlRoYW5rIHlvdSBhbGwgZm9yIHlv dXIgY29tbWVudHMuIEFuZCBhIHNwZWNpYWwgdGhhbmtzIHRvIFJhdmluZ0RhdmUg d2hvIGNlcnRhaW5seSBqdXN0aWZpZXMgbXkgYXJ0aWNsZS4gSXQgaXMgYmVjYXVz ZSBvZiBwZW9wbGUgd2hvIHRoaW5rIGxpa2UgaGltIHRoYXQgSSBib3RoZXIgdG8g d3JpdGUgaW4gdGhlIGZpcnN0IHBsYWNlLiBJdCBpcyBoYXJkIHRvIHJlcGx5IHRv IHRoZSByYWNpc3QgYW5kIHN1cHJlbWFjaXN0IGxhbmd1YWdlIGhlIHVzZXMgYnV0 IGhlIG9ubHkgZGVtb25zdHJhdGVzIHRoYXQgYmVpbmcgZ2F5IGFuZCBwcmV0ZW5k aW5nIHRvIGZpZ2h0IGZvciBnYXkgcmlnaHRzIGhhcyBuZXZlciBiZWVuIGEgdmFj Y2luZSBhZ2FpbnN0IHByZWp1ZGljZSBhbmQgaW50b2xlcmFuY2Ugb2YgYWxsIGtp bmRzLjwvcD48cD5JIGFtIGFjdHVhbGx5IHZlcnkgdmlzaWJsZSBpbiBCZWlydXQg ZHVyaW5nIHRoZSBkYXkgYW5kIHByb3VkIG9mIHdobyBJIGFtIGF0IGV2ZXJ5IHNp bmdsZSBtb21lbnQsIGFuZCBJIHNvbWV0aW1lcyBwYXkgdGhlIHByaWNlIGZvciBp dC5UaGUgcmVhc29ucyBJIHVzZSBhIHBlbi1uYW1lIGhhdmUgbm90aGluZyB0byBk byB3aXRoIHRoaXMgdGhvdWdoLiBJIGJlbGlldmUgdGhhdCBob21vcGhvYmlhIHNo b3VsZCBiZSB0YWNrbGVkIGF0IGVhY2ggbW9tZW50IG9mIHRoZSBkYXkgKG5vdCBv bmx5IG9uIGdheSBwcmlkZSBkYXlzKSwgYW5kIGluIGV2ZXJ5IHBhcnQgb2YgdGhl IHdvcmxkLiBXaGF0IHdlc3Rlcm4gZ2F5IHJpZ2h0cyBncm91cHMgaGF2ZSBhY2hp ZXZlZCBjYW4gY2VydGFpbmx5IGJlIGFuIGluc3BpcmF0aW9uLCBidXQgaXQgc2hv dWxkIG5vdCBiZSBjb3B5LXBhc3RlZCB1bnRvIHRoZSBNaWRkbGUgRWFzdC4gSXQg anVzdCBkb2VzbnQgd29yay4gRm9yIGV4YW1wbGU6ICBpbiB0aGUgV2VzdCwgZ2F5 cyBkZW1hbmQgdGhlIHJpZ2h0IGZvciBtb3JlIHB1YmxpYyBkaXNwbGF5cyBvZiBh ZmZlY3Rpb24uIEl0IHdvdWxkIGJlIG5vbnNlbnNlIHRvIGRlbWFuZCB0aGUgc2Ft ZSBoZXJlLiBPdGhlciBkZW1hbmRzIHNob3VsZCBiZSBtYWRlLjwvcD48cD5VbmZv cnR1bmF0ZWx5LCBMZWJhbmVzZSBhbmQgTWlkZGxlLUVhc3Rlcm4gZ2F5IHJpZ2h0 cyBncm91cHMgZmFpbCB0byB1bmRlcnN0YW5kIHRoaXMuIFRoZWlyIG1lbWJlcnMg b2Z0ZW4gY29tZSBmcm9tIGFmZmx1ZW50IGJhY2tncm91bmRzIGFuZCBhcmUgZGlz Y29ubmVjdGVkIGZyb20gbG9jYWwgcmVhbGl0eS4gVGhleSBvcmdhbmlzZSBwb21w b3VzIGNvbmZlcmVuY2VzIHVzaW5nIGEgcHJldGVudGlvdXMgamFyZ29uIHRoYXQg b25seSB0aGUgaGFwcHkgZmV3IGNhbiB1bmRlcnN0YW5kLiBUaGV5IHVzZSBzeW1i b2xzIGFuZCBjb25jZXB0cyB0aGF0IHRoZSBhdmVyYWdlIGdheSBMZWJhbmVzZSBo YXMgbm8gY2x1ZSBhYm91dC4gVGhlaXIgYWR2b2NhY3kgc29tZXRpbWVzIGxvb2tz IGxpa2UganVzdCBhbiBhZGRpdGlvbmFsIGV4Y3VzZSBmb3Igc25vYmJlcnkgYW5k IGFycm9nYW5jZS48L3A+PHA+SSBjYW4gb25seSBzZWUgaG93IG1hbnkgbWlzY29u Y2VwdGlvbnMgdGhlcmUgc3RpbGwgYXJlIGFib3V0IHRoZSBNaWRkbGUgRWFzdC4g WnVnenVnIHNhaWQgaXQgaGltc2VsZjogTGlrZSBtYW55IHdlc3Rlcm5lcnMsIEkg YWxzbyB0aG91Z2h0IHRoYXQgaG9tb3NleHVhbHMgd2VyZSBzdG9uZWQgaW4gdGhl IHN0cmVldHMsIGx5bmNoZWQsIG9yIGluY3JlZGlibHkgZGlzY3JpbWluYXRlZCBh Z2FpbnN0IGluIGV2ZXJ5IE1pZGRsZSBFYXN0ZXJuIGFuZCBNdXNsaW0gY291bnRy eS4gSSBhbSBub3QgdHJ5aW5nIHRvIHNheSB0aGF0IGl0IGlzIGdheSBoZWF2ZW4g aGVyZSBhcyB0aGVyZSBhcmUgc3RpbGwgbWFueSBjYXNlcyBvZiBkaXNjcmltaW5h dGlvbiBhbmQgdmlvbGVuY2UuIEkgYW0gb25seSB0cnlpbmcgdG8gY29ycmVjdCB0 aGUgb3ZlcndoZWxtaW5nbHkgYmlhc2VkIHJlcG9ydGluZy4gVGhpcyBpcyB3aHkg SSBtZW50aW9uZWQgdGhlIGhhdGUgY3JpbWUgd2hpY2ggb2NjdXJyZWQgaW4gTllD LiBJIGFtIG5vdCB0cnlpbmcgdG8gZW5nYWdlIGluIGEgd2hpY2ggY3VsdHVyZSBp cyBiZXR0ZXIgZGViYXRlLCBqdXN0IHRvIHBvaW50IG91dCB0aGUgYWJzdXJkaXRp ZXMgYW5kIHBhcnRpYWxpdHkgb2Ygc29tZSBqb3VybmFsaXN0cy48L3A+PHA+RGVz cGl0ZSB3aGF0IE1vdmluZ01vdW50YWluIGJlbGlldmVzLCB5ZXMsIFNhdWRpIEFy YWJpYSBkb2VzIGhhdmUgYSB0aHJpdmluZyBnYXkgc2NlbmUsIGV2ZW4gdGhvdWdo IGl0IGRvZXMgbm90IHJlc2VtYmxlIHRoZSBvbmVzIGZvdW5kIGluIHRoZSB3ZXN0 LjwvcD48cD5BbmQgdGhhbmsgeW91IEVsZXV0aGVyaWEgZm9yIHN1Z2dlc3Rpbmcg SSBzaG91bGQgd3JpdGUgc29tZXRoaW5nIGFib3V0IG15IGRheS10by1kYXkgbGlm ZSB3aXRoIG15IGZyaWVuZHMsIHRoaXMgY291bGQgYmUgbXkgbmV4dCBhcnRpY2xl LjwvcD48cD5BcyBmb3IgbGVzYmlhbnMgaW4gTGViYW5vbiwgSGFubmFoV3JpZ2h0 LCB0aGlzIGlzIGNlcnRhaW5seSBhIHN1YmplY3QgdG8gYmUgZXhwbG9yZWQuIFVu Zm9ydHVuYXRlbHkgSSBoYXZlIHZlcnkgbGl0dGxlIGV4cGVyaWVuY2UgaW4gdGhp cyBhcmVhLCBhbmQgSSBtb3N0bHkgd3JpdGUgb3V0IG9mIG15IG93biBwZXJzb25h bCBleHBlcmllbmNlcy4gTGVzYmlhbmlzbSBpcyBnZW5lcmFsbHkgcGVyY2VpdmVk IGFzIGxlc3MgdGhyZWF0ZW5pbmcgYnkgYWxsIHNvY2lldGllcywgZm9yIG9idmlv dXMgcmVhc29ucyBvZiBtYWNoaXNtby4gSW4gd2VzdGVybiBjb3VudHJpZXMgdGhl cmUgc2VlbXMgdG8gYmUgYSBkb3VibGUgc3RhbmRhcmQgYXQgdGhlIG1vbWVudDog IGxlc2JpYW4gYWZmZWN0aW9uIHNlZW1zIHRvIGJlIG11Y2ggdHJlbmRpZXIgYW5k IG1vcmUgYWNjZXB0ZWQgdGhhbiBpdHMgbWFzY3VsaW5lIGNvdW50ZXJwYXJ0LiBJ biBNaWRkbGUgRWFzdGVybiBtZWRpYSwgdGhlIHNhbWUgbGVzYmlhbiB2aXNpYmls aXR5IGlzIGFsc28gb24gdGhlIHJpc2UuPC9wPjxwPkJlaXJ1dCBpcyBuZWl0aGVy IGEgYDE5NzBzIEJlbGZhc3Qtb24tdGhlIE1lZGAgbm9yIGEgYFNvaG8gb24gU2Vh YC4gSnVzdCBkb250IGJlbGlldmUgZXZlcnl0aGluZyB5b3UgcmVhZCBpbiB0aGUg bWVkaWEuIERvbnQgZXZlbiBiZWxpZXZlIG1lLiBSZXNlYXJjaC4gVHJhdmVsLiBE cmF3IHlvdXIgb3duIGNvbmNsdXNpb25zLjxiciAvPjwvcD4gPC9kaXY+IDwvbGk+ IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIgPiA8dWwgaWQ9IkNvbW1l bnRLZXk6MzQ3YTYzYTMtODI2Ni00MmFhLTkwMGMtNjc5NGNjYzU3NTcxIj4gPGxp IGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVjay1zaW5nbGUtY29tbWVu dC1Db21tZW50S2V5OjM0N2E2M2EzLTgyNjYtNDJhYS05MDBjLTY3OTRjY2M1NzU3 MSIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVjb21tZW5kIHRo aXMgY29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNsaWNrUmVjb21tZW5kYXRp b24oJ0NvbW1lbnRLZXk6MzQ3YTYzYTMtODI2Ni00MmFhLTkwMGMtNjc5NGNjYzU3 NTcxJykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29tbWVuZD8gICA8L2E+ICAg PHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5vLUNvbW1lbnRLZXk6MzQ3 YTYzYTMtODI2Ni00MmFhLTkwMGMtNjc5NGNjYzU3NTcxIiBjbGFzcz0ibm9ybWFs LXJlY29tbWVuZGVkIj4oMSk8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9ImFidXNl LXJlcG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJS ZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBhYnVzZSA8 L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNob3ItYmFz ZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3MvYWRkP2Nv bW1lbnRJZD0zNDdhNjNhMy04MjY2LTQyYWEtOTAwYy02Nzk0Y2NjNTc1NzEmY29t bWVudGVyVXNlck5hbWU9RGlhbW9uZFdhbGlkJnIyQ29udGVudElkRm9yU1NQPTM1 MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQuIj5DbGlw PC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3Nob3dhbGxj b21tZW50cz10cnVlI0NvbW1lbnRLZXk6MzQ3YTYzYTMtODI2Ni00MmFhLTkwMGMt Njc5NGNjYzU3NTcxIiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29tbWVudC4i Pkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xhc3M9InBs dWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTMzIj4gPGxpIGNsYXNzPSJwbHVjay1j b21tZW50Ij4gPCEtLTxsaT4oMzgzODM4NykgPC9saT4tLT4gPGRpdiBjbGFzcz0i cGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxhIGhyZWY9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvdXNlcnMvSGFubmFoV3JpZ2h0IiBjbGFzcz0iYXV0aG9y LXByb2ZpbGUtcGljdHVyZSI+IDxpbWcgc3JjPSJodHRwOi8vc2l0ZWxpZmUuZ3Vh cmRpYW4uY28udWsvdmVyMS4wL0NvbnRlbnQvaW1hZ2VzL3N0b3JlLzEvMC82MTRi MWU2ZC1jNDIxLTQ5OTgtYjBiZi1lMGI2NjQ5YWUxNWYuU21hbGwucG5nIiBoZWln aHQ9IjYwIiB3aWR0aD0iNjAiIGFsdD0iSGFubmFoV3JpZ2h0Ij4gPC9hPiA8YSBo cmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL0hhbm5haFdyaWdo dCI+IEhhbm5haFdyaWdodCA8L2E+IDwvaDM+IDxwIGNsYXNzPSJwb3N0ZWQtdGlt ZSI+MSBTZXAgMjAwOSwgOToxN1BNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1 dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iU3RhZmYiPiAg PGltZyBzcmM9Imh0dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9taWNyb2FwcHMvc2Vy dmVyLXNpZGUtcGx1Y2svaW1hZ2VzL2ljb25zX2NvbnRyaWJ1dG9yXzI4LmdpZiIg d2lkdGg9IjI4IiBoZWlnaHQ9IjI4IiB0aXRsZT0iQ29udHJpYnV0b3IiIGFsdD0i Q29udHJpYnV0b3IiIC8+IDxzcGFuPkNvbnRyaWJ1dG9yPC9zcGFuPiAgPC9hPiA8 L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8cD5IaSBE aWFtb25kLCB0aGFua3MgZm9yIHJlc3BvbmRpbmcuPC9wPjxwPkkgd29uZGVyIGlm IGl0IGlzIHRoZSBjYXNlIHRoYXQgbGVzYmlhbmlzbSBpcyBtb3JlIGFjY2VwdGVk IGluIHRoZSBXZXN0LiBJdCBzZWVtcyB0byBtZSB0aGF0IGZhdXggbGVzYmlhbmlz bSBpcyBwcm9tb3RlZCBvbiB0aGUgZ3JvdW5kcyB0aGF0IG1hbnkgbWVuIGZpbmQg aXQgdGl0aWxhdGluZywgYnV0IEknbSBub3Qgc3VyZSBJJ2QgY2FsbCB0aGF0ICJh Y2NlcHRhbmNlIi4gQW5kIHdoaWxlIGl0IG1heSBub3QgdGhyZWF0ZW4gdHJhZGl0 aW9uYWwgbm90aW9ucyBvZiBtYXNjdWxpbml0eSBpbiB0aGUgc2FtZSB3YXkgdGhh dCBnYXkgbWFsZSBzZXh1YWwgYWN0aXZpdHkgbWlnaHQsIG1hbnkgcGVvcGxlIGRv IGZpbmQgaXQgdGhyZWF0ZW5pbmcgYmVjYXVzZSBpdCBjaGFsbGVuZ2VzIHRoZSBu b3Rpb24gdGhhdCBhbGwgd29tZW4gbmVlZCBhIG1hbiwgYW5kIHRoZSBpZGVhIG9m IG1hbGUgZW50aXRsZW1lbnQgdG8gd29tZW4ncyBib2RpZXMuIFBsdXMsIHdoaWxl IHRoZXJlIGFyZSBtYW55IGhpZ2ggcHJvZmlsZSBnYXkgbWFsZSBjZWxlYnJpdGll cyBpbiB0aGUgVUsgKGZvciBleGFtcGxlKSB3aG8gYXJlIGFjY2VwdGVkIGJlY2F1 c2UgdGhleSBjb25mb3JtIHRvIGEgbmFycm93IHN0ZXJlb3R5cGUgb2Ygd2hhdCBn YXkgbWVuIGFyZSBsaWtlIGFuZCB0aGF0IHdlIGhhdmUgYmVjb21lIGNvbWZvcnRh YmxlIHdpdGggdGhhdCBzdGVyZW90eXBlIChJJ20gdGhpbmtpbmcgb2YgR3JhaGFt IE5vcnRvbiBhbmQgaGlzIGlsaykgdGhlcmUgYXJlbid0IHJlYWxseSBhbnkgbGVz YmlhbiBlcXVpdmFsZW50cy4gSSdtIG5vdCBzdXJlIGlmIHRoYXQncyBnb29kIG9y IGJhZC4uLiBpdCdzIGFsbCByZWxhdGl2ZSBJIGd1ZXNzLjwvcD48cD5Bbnl3YXks IGdvb2QgYXJ0aWNsZSwgaXQncyBuaWNlIHRvIHNlZSBzb21ldGhpbmcgb24gYSBk aWZmZXJlbnQgdG9waWMgdG8gd2hhdCB3ZSdyZSB1c2VkIHRvLjwvcD4gPC9kaXY+ IDwvbGk+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudC10b29scyIgPiA8dWwgaWQ9 IkNvbW1lbnRLZXk6MTljMTQxZDQtOThjNi00ZmE2LWFmYTAtZTE5ZjNjNWUzY2Vi Ij4gPGxpIGNsYXNzPSJyZWNvbWVuZGVkIj4gIDxhIGlkPSJwbHVjay1zaW5nbGUt Y29tbWVudC1Db21tZW50S2V5OjE5YzE0MWQ0LTk4YzYtNGZhNi1hZmEwLWUxOWYz YzVlM2NlYiIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiB0aXRsZT0iUmVjb21t ZW5kIHRoaXMgY29tbWVudC4iIG9uY2xpY2s9InJldHVybiBvbkNsaWNrUmVjb21t ZW5kYXRpb24oJ0NvbW1lbnRLZXk6MTljMTQxZDQtOThjNi00ZmE2LWFmYTAtZTE5 ZjNjNWUzY2ViJykiIGNsYXNzPSJyZWNvbW1lbmQiPiAgIFJlY29tbWVuZD8gICA8 L2E+ICAgPHNwYW4gaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LW5vLUNvbW1lbnRL ZXk6MTljMTQxZDQtOThjNi00ZmE2LWFmYTAtZTE5ZjNjNWUzY2ViIiBjbGFzcz0i bm9ybWFsLXJlY29tbWVuZGVkIj4oMSk8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9 ImFidXNlLXJlcG9ydCI+ICA8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRp dGxlPSJSZXBvcnQgYWJ1c2UiIGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBh YnVzZSA8L2E+ICA8L2xpPiA8bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNo b3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3Mv YWRkP2NvbW1lbnRJZD0xOWMxNDFkNC05OGM2LTRmYTYtYWZhMC1lMTlmM2M1ZTNj ZWImY29tbWVudGVyVXNlck5hbWU9SGFubmFoV3JpZ2h0JnIyQ29udGVudElkRm9y U1NQPTM1MjM0MTg3MSIgbmFtZT0iIiB0aXRsZT0iQ2xpcCB0aGlzIGNvbW1lbnQu Ij5DbGlwPC9hPiB8IDwvbGk+IDxsaSBjbGFzcz0ibGluayI+PGEgaHJlZj0iP3No b3dhbGxjb21tZW50cz10cnVlI0NvbW1lbnRLZXk6MTljMTQxZDQtOThjNi00ZmE2 LWFmYTAtZTE5ZjNjNWUzY2ViIiBuYW1lPSIiIHRpdGxlPSJMaW5rIHRoaXMgY29t bWVudC4iPkxpbms8L2E+PC9saT4gPC91bD4gPC9saT4gIDwvdWw+ICA8dWwgY2xh c3M9InBsdWNrLWNvbnRlbnQiIGlkPSJjb21tZW50LTM0Ij4gPGxpIGNsYXNzPSJw bHVjay1jb21tZW50Ij4gPCEtLTxsaT4oMjU5NDA4OSkgPC9saT4tLT4gPGRpdiBj bGFzcz0icGx1Y2stY29tbWVudC1hdXRob3IiPiA8aDM+IDxhIGhyZWY9Imh0dHA6 Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvZWxldXRoZXJpYSIgY2xhc3M9ImF1 dGhvci1wcm9maWxlLXBpY3R1cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZl Lmd1YXJkaWFuLmNvLnVrL3ZlcjEuMC9Db250ZW50L2ltYWdlcy9zdG9yZS85LzEy LzY5MGNiMWFlLTVhOTYtNGYyNi1hYzc4LTRiZjFjOWZmYzdmOS5TbWFsbC5wbmci IGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0PSJlbGV1dGhlcmlhIj4gPC9hPiA8 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VzZXJzL2VsZXV0aGVy aWEiPiBlbGV1dGhlcmlhIDwvYT4gPC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1l Ij4xIFNlcCAyMDA5LCAxMDoxNlBNPC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1 dGhvci10aWVyIj4gPGEgY2xhc3M9InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQi PiAgPC9hPiA8L3NwYW4+ICA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHki PiA8cD5IaSBEaWFtb25kLDwvcD48cD5OaWNlIHRoYXQgeW91IHRha2UgdGhlIHRy b3VibGUgdG8gcmVwbHkgLSB0b28gbWFueSBHdWFyZGlhbiBjb250cmlidXRvcnMg anVzdCB0YWtlIHRoZSBtb25leSBhbmQgcnVuLi4uPC9wPjxwPkkgYWxzbyBmb3Vu ZCBtb3JlIGxpZ2h0IHRoYW4gaGVhdCBpbiB5b3VyIHJlcGx5IHRoYW4gSSBkaWQg aW4geW91ciBhcnRpY2xlLCBhbmQgSSBub3cgZmVlbCBhIGxpdHRsZSBlbWJhcnJh c3NlZCBhdCBnZXR0aW5nIHNvIHRldGNoeSB3aXRoIHlvdSBsYXN0IG5pZ2h0LiA6 LSk8L3A+PHA+YmVzdCB3aXNoZXM8L3A+IDwvZGl2PiA8L2xpPiA8bGkgY2xhc3M9 InBsdWNrLWNvbW1lbnQtdG9vbHMiID4gPHVsIGlkPSJDb21tZW50S2V5OjYyZWFh ODExLTc4Y2UtNDA2Ny04MTRiLWE4NTVkZmY3OTg2ZCI+IDxsaSBjbGFzcz0icmVj b21lbmRlZCI+ICA8YSBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtQ29tbWVudEtl eTo2MmVhYTgxMS03OGNlLTQwNjctODE0Yi1hODU1ZGZmNzk4NmQiIGhyZWY9Imph dmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlY29tbWVuZCB0aGlzIGNvbW1lbnQu IiBvbmNsaWNrPSJyZXR1cm4gb25DbGlja1JlY29tbWVuZGF0aW9uKCdDb21tZW50 S2V5OjYyZWFhODExLTc4Y2UtNDA2Ny04MTRiLWE4NTVkZmY3OTg2ZCcpIiBjbGFz cz0icmVjb21tZW5kIj4gICBSZWNvbW1lbmQ/ICAgPC9hPiAgIDxzcGFuIGlkPSJw bHVjay1zaW5nbGUtY29tbWVudC1uby1Db21tZW50S2V5OjYyZWFhODExLTc4Y2Ut NDA2Ny04MTRiLWE4NTVkZmY3OTg2ZCIgY2xhc3M9ImhpZ2gtcmVjb21tZW5kZWQi ID4oMik8L3NwYW4+ICA8L2xpPiA8bGkgY2xhc3M9ImFidXNlLXJlcG9ydCI+ICA8 YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZXBvcnQgYWJ1c2Ui IGNsYXNzPSJyZXBvcnQtYWJ1c2UiPlJlcG9ydCBhYnVzZSA8L2E+ICA8L2xpPiA8 bGkgY2xhc3M9ImNsaXAiPjxhIGNsYXNzPSJhbmNob3ItYmFzZWQtbG9naW4tcmVx dWlyZWQiIGhyZWY9Ii91c2Vycy9jbGlwcGluZ3MvYWRkP2NvbW1lbnRJZD02MmVh YTgxMS03OGNlLTQwNjctODE0Yi1hODU1ZGZmNzk4NmQmY29tbWVudGVyVXNlck5h bWU9ZWxldXRoZXJpYSZyMkNvbnRlbnRJZEZvclNTUD0zNTIzNDE4NzEiIG5hbWU9 IiIgdGl0bGU9IkNsaXAgdGhpcyBjb21tZW50LiI+Q2xpcDwvYT4gfCA8L2xpPiA8 bGkgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Ij9zaG93YWxsY29tbWVudHM9dHJ1ZSND b21tZW50S2V5OjYyZWFhODExLTc4Y2UtNDA2Ny04MTRiLWE4NTVkZmY3OTg2ZCIg bmFtZT0iIiB0aXRsZT0iTGluayB0aGlzIGNvbW1lbnQuIj5MaW5rPC9hPjwvbGk+ IDwvdWw+IDwvbGk+ICA8L3VsPiAgPHVsIGNsYXNzPSJwbHVjay1jb250ZW50IiBp ZD0iY29tbWVudC0zNSI+IDxsaSBjbGFzcz0icGx1Y2stY29tbWVudCI+IDwhLS08 bGk+KDM4NTY2MzMpIDwvbGk+LS0+IDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQt YXV0aG9yIj4gPGgzPiA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L3VzZXJzL0RpYW1vbmRXYWxpZCIgY2xhc3M9ImF1dGhvci1wcm9maWxlLXBpY3R1 cmUiPiA8aW1nIHNyYz0iaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFuLmNvLnVrL3Zl cjEuMC9Db250ZW50L2ltYWdlcy9uby11c2VyLWltYWdlLmdpZiIgaGVpZ2h0PSI2 MCIgd2lkdGg9IjYwIiBhbHQ9IkRpYW1vbmRXYWxpZCI+IDwvYT4gPGEgaHJlZj0i aHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9EaWFtb25kV2FsaWQiPiBE aWFtb25kV2FsaWQgPC9hPiA8L2gzPiA8cCBjbGFzcz0icG9zdGVkLXRpbWUiPjEg U2VwIDIwMDksIDExOjM4UE08L3A+IDwvZGl2PiA8c3BhbiBjbGFzcz0iYXV0aG9y LXRpZXIiPiA8YSBjbGFzcz0icm9sbG92ZXIiIHRpdGxlPSJTdGFmZiI+ICA8aW1n IHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL21pY3JvYXBwcy9zZXJ2ZXIt c2lkZS1wbHVjay9pbWFnZXMvaWNvbnNfY29udHJpYnV0b3JfMjguZ2lmIiB3aWR0 aD0iMjgiIGhlaWdodD0iMjgiIHRpdGxlPSJDb250cmlidXRvciIgYWx0PSJDb250 cmlidXRvciIgLz4gPHNwYW4+Q29udHJpYnV0b3I8L3NwYW4+ICA8L2E+IDwvc3Bh bj4gIDxkaXYgY2xhc3M9InBsdWNrLWNvbW1lbnQtYm9keSI+IDxwPk5vIG9mZmVu c2UgYXQgYWxsIEVsZXV0aGVyaWEsIEkgYWN0dWFsbHkgZm91bmQgeW91ciBwb3N0 IHRvIGJlIHZlcnkgc3BvbnRhbmVvdXMgYW5kIGhvbmVzdC4gWW91IHdlcmUgcmln aHQgYWJvdXQgbWVudGlvbmluZyB0aGUgQ3JvYXRpYSBhcnRpY2xlLiBJdCBnYXZl IGEgZ3JpbSBpbWFnZSBvZiB0aGF0IGNvdW50cnkgYnV0IGZvciBhIHZlcnkgZ29v ZCByZWFzb246IHRoZSBhdG1vc3BoZXJlIGZvciBnYXlzIHRoZXJlIGlzIGluZGVl ZCBhbGFybWluZy4gSSB3YW50ZWQgMS50byBhbGVydCB0aGUgcGFzc2l2ZSBDcm9h dGlhbiBhdXRob3JpdGllcyBhbmQgcHVzaCB0aGVtIHRvIGRvIHNvbWV0aGluZyAy LnRvIGJhbGFuY2UgdGhlIG5haXZlIHBvc3RjYXJkIGltYWdlIGFib3V0IENyb2F0 aWEgd2UgZmluZCBldmVyeXdoZXJlLiBXaGljaCBkb2Vzbid0IG1lYW4gdGhhdCB0 aGVyZSBhcmVuJ3QgYW55IG9wZW4tbWluZGVkIGFuZCB3YXJtIHBlb3BsZSB0aGVy ZSBhdCBhbGwuPC9wPiA8L2Rpdj4gPC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21t ZW50LXRvb2xzIiA+IDx1bCBpZD0iQ29tbWVudEtleTpjOTg0YWE1Ni00ZTJiLTQ0 YWMtOWQ0Ny03NzUzMGM4ZmYwYTAiPiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAg PGEgaWQ9InBsdWNrLXNpbmdsZS1jb21tZW50LUNvbW1lbnRLZXk6Yzk4NGFhNTYt NGUyYi00NGFjLTlkNDctNzc1MzBjOGZmMGEwIiBocmVmPSJqYXZhc2NyaXB0OnZv aWQoMCkiIHRpdGxlPSJSZWNvbW1lbmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0i cmV0dXJuIG9uQ2xpY2tSZWNvbW1lbmRhdGlvbignQ29tbWVudEtleTpjOTg0YWE1 Ni00ZTJiLTQ0YWMtOWQ0Ny03NzUzMGM4ZmYwYTAnKSIgY2xhc3M9InJlY29tbWVu ZCI+ICAgUmVjb21tZW5kPyAgIDwvYT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xl LWNvbW1lbnQtbm8tQ29tbWVudEtleTpjOTg0YWE1Ni00ZTJiLTQ0YWMtOWQ0Ny03 NzUzMGM4ZmYwYTAiIGNsYXNzPSJub3JtYWwtcmVjb21tZW5kZWQiPigxKTwvc3Bh bj4gIDwvbGk+IDxsaSBjbGFzcz0iYWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9Imph dmFzY3JpcHQ6dm9pZCgwKSIgdGl0bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJl cG9ydC1hYnVzZSI+UmVwb3J0IGFidXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0i Y2xpcCI+PGEgY2xhc3M9ImFuY2hvci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJl Zj0iL3VzZXJzL2NsaXBwaW5ncy9hZGQ/Y29tbWVudElkPWM5ODRhYTU2LTRlMmIt NDRhYy05ZDQ3LTc3NTMwYzhmZjBhMCZjb21tZW50ZXJVc2VyTmFtZT1EaWFtb25k V2FsaWQmcjJDb250ZW50SWRGb3JTU1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxl PSJDbGlwIHRoaXMgY29tbWVudC4iPkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNz PSJsaW5rIj48YSBocmVmPSI/c2hvd2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtl eTpjOTg0YWE1Ni00ZTJiLTQ0YWMtOWQ0Ny03NzUzMGM4ZmYwYTAiIG5hbWU9IiIg dGl0bGU9IkxpbmsgdGhpcyBjb21tZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8 L2xpPiAgPC91bD4gIDx1bCBjbGFzcz0icGx1Y2stY29udGVudCIgaWQ9ImNvbW1l bnQtMzYiPiA8bGkgY2xhc3M9InBsdWNrLWNvbW1lbnQiPiA8IS0tPGxpPigzODIz MzAzKSA8L2xpPi0tPiA8ZGl2IGNsYXNzPSJwbHVjay1jb21tZW50LWF1dGhvciI+ IDxoMz4gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2Vycy9K b2ludXBzaWduaW4iIGNsYXNzPSJhdXRob3ItcHJvZmlsZS1waWN0dXJlIj4gPGlt ZyBzcmM9Imh0dHA6Ly9zaXRlbGlmZS5ndWFyZGlhbi5jby51ay92ZXIxLjAvQ29u dGVudC9pbWFnZXMvc3RvcmUvMC80L2UwY2FjOWZmLTFkM2UtNDZjMS05NGMxLWQw YTkwODE4NWM3OC5TbWFsbC5qcGciIGhlaWdodD0iNjAiIHdpZHRoPSI2MCIgYWx0 PSJKb2ludXBzaWduaW4iPiA8L2E+IDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvdXNlcnMvSm9pbnVwc2lnbmluIj4gSm9pbnVwc2lnbmluIDwvYT4g PC9oMz4gPHAgY2xhc3M9InBvc3RlZC10aW1lIj4yIFNlcCAyMDA5LCAxMTowMUFN PC9wPiA8L2Rpdj4gPHNwYW4gY2xhc3M9ImF1dGhvci10aWVyIj4gPGEgY2xhc3M9 InJvbGxvdmVyIiB0aXRsZT0iRmVhdHVyZWQiPiAgPC9hPiA8L3NwYW4+ICA8ZGl2 IGNsYXNzPSJwbHVjay1jb21tZW50LWJvZHkiPiA8cD5Ob3IgZG9lcyB5b3VyIGFy dGljbGUgc3RhdGUgdGhlIExFR0FMIHBvc2l0aW9uIG9mIGhvbW9zZXh1YWxpdHkg aW4gTGViYW5vbiwgd2hpY2ggcmVtYWlucyBpbGxlZ2FsLjwvcD48cD5TdXJlbHkg dGhlIE5ZVCBhcnRpY2xlIHdhcyBhaW1lZCBhdCB0aGVpciByZWFkZXJzIHdpdGgg YSB2aWV3IG9mIGdheSBCZWlydXQgZm9yIGV4YWN0bHkgdGhvc2UgaW50ZXJuYXRp b25hbCBmYXNoaW9uIGdheXMgeW91IGRvbid0IGxpa2U/IEknZCBiZSBnbGFkIHRo ZXkgZGlkIG5vdCBtZW50aW9uIHBsYWNlcyB5b3UgbGlrZSwgc2luY2UgeW91IGRv bid0IHdhbnQgdGhlbSB0aGVyZS48L3A+PHA+WW91IHNheSAiSXJhcTogZ2F5IG1l biBraWxsZWQuIiBGdWxsIHN0b3AuIEJ1dCBnYXkgbWVuIGFyZSBhbHNvIGtpbGxl ZCBpbiAiY2l2aWxpc2VkIiB3ZXN0ZXJuIGNvdW50cmllcy4gWWVzIGJ1dCBub3Qg YnV0IGl0cyBub3Qgc3RhdGUgbXVyZGVyIGFzIGl0IGlzIGluIElyYW4uPC9wPjxw PldoZW4gbmV3cyBvZiBnYXkgbWVuIGtpbGxlZCBpbiBJcmFuIHdhcyBpbiB0aGUg bWVkaWEsIEkgZGlkIG15IG93biByZXNlYXJjaC4gIEkgdGFsa2VkIHRvIGEgeW91 bmcgZ2F5IG1hbiBpbiBUZWhyYW4gb24gZ2F5ZGFyLCBoZSBzYWlkIGxpZmUgd2Fz IGdvb2QgaGUgcGFydGllZCBhIGxvdC4gV2FzIGhlIGJlaW5nIGZvb2xpc2g/IG5h aXZlIG9yIGlzIFRlaHJhbiBmZWUgYW5kIGxpYmVyYWw/PC9wPjxwPk9mIGNvdXJz ZSBtYW55IGN1bHR1cmVzIGhhdmUgdG9sZXJhdGVkIG9yIGFjY2VwdGVkIGhvbW9z ZXh1YWxpdHkgZm9yIGNlbnR1cmllcywgYW5kIGZvciBtYW55IG91dCBhbmQgb3V0 IGRpc3BsYXlzIGFuZCBnYXkgY3VsdHVyZSBhcyBkZXZlbG9wZWQgaW4gdGhlIHdl c3QgYXJlIGNvbnNpZGVyZWQgdW5hY2NlcHRhYmxlLjwvcD48cD5JbmRlZWQgdGhl IGlzIGEgdHJlbmQgYW1vbmdzdCBnYXkgbWVuIGluIHRoZSB3ZXN0IHRvIGtub2Nr IGFuZCBjb21wbGFpbiBhYm91dCB0aGUgZ2F5IHNjZW5lIHdoaWNoIHBlb3BsZSBm b3VnaHQgc28gbG9uZyB0byBiZSBhbGxvd2VkIHRvIGhhdmUuPC9wPiA8L2Rpdj4g PC9saT4gPGxpIGNsYXNzPSJwbHVjay1jb21tZW50LXRvb2xzIiA+IDx1bCBpZD0i Q29tbWVudEtleToyZWEzMWE5YS0zMzBhLTQwNjktYmUxMC1lMzFjYWM1NGQxOWUi PiA8bGkgY2xhc3M9InJlY29tZW5kZWQiPiAgPGEgaWQ9InBsdWNrLXNpbmdsZS1j b21tZW50LUNvbW1lbnRLZXk6MmVhMzFhOWEtMzMwYS00MDY5LWJlMTAtZTMxY2Fj NTRkMTllIiBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJSZWNvbW1l bmQgdGhpcyBjb21tZW50LiIgb25jbGljaz0icmV0dXJuIG9uQ2xpY2tSZWNvbW1l bmRhdGlvbignQ29tbWVudEtleToyZWEzMWE5YS0zMzBhLTQwNjktYmUxMC1lMzFj YWM1NGQxOWUnKSIgY2xhc3M9InJlY29tbWVuZCI+ICAgUmVjb21tZW5kPyAgIDwv YT4gICA8c3BhbiBpZD0icGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tQ29tbWVudEtl eToyZWEzMWE5YS0zMzBhLTQwNjktYmUxMC1lMzFjYWM1NGQxOWUiIGNsYXNzPSJu b3JtYWwtcmVjb21tZW5kZWQiPigxKTwvc3Bhbj4gIDwvbGk+IDxsaSBjbGFzcz0i YWJ1c2UtcmVwb3J0Ij4gIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgdGl0 bGU9IlJlcG9ydCBhYnVzZSIgY2xhc3M9InJlcG9ydC1hYnVzZSI+UmVwb3J0IGFi dXNlIDwvYT4gIDwvbGk+IDxsaSBjbGFzcz0iY2xpcCI+PGEgY2xhc3M9ImFuY2hv ci1iYXNlZC1sb2dpbi1yZXF1aXJlZCIgaHJlZj0iL3VzZXJzL2NsaXBwaW5ncy9h ZGQ/Y29tbWVudElkPTJlYTMxYTlhLTMzMGEtNDA2OS1iZTEwLWUzMWNhYzU0ZDE5 ZSZjb21tZW50ZXJVc2VyTmFtZT1Kb2ludXBzaWduaW4mcjJDb250ZW50SWRGb3JT U1A9MzUyMzQxODcxIiBuYW1lPSIiIHRpdGxlPSJDbGlwIHRoaXMgY29tbWVudC4i PkNsaXA8L2E+IHwgPC9saT4gPGxpIGNsYXNzPSJsaW5rIj48YSBocmVmPSI/c2hv d2FsbGNvbW1lbnRzPXRydWUjQ29tbWVudEtleToyZWEzMWE5YS0zMzBhLTQwNjkt YmUxMC1lMzFjYWM1NGQxOWUiIG5hbWU9IiIgdGl0bGU9IkxpbmsgdGhpcyBjb21t ZW50LiI+TGluazwvYT48L2xpPiA8L3VsPiA8L2xpPiAgPC91bD4gICA8c3BhbiBp ZD0iZW5kLW9mLWNvbW1lbnRzIj48L3NwYW4+IDwvZGl2PiA8L2Rpdj4gPGRpdiBp ZD0icGx1Y2stc2hvdy1hbGwtY29tbWVudHMiIGNsYXNzPSJwbHVjay1jb21tZW50 cy1jb250YWluZXIiPiAgPC9kaXY+IA0KCQkJCQkJCQkJDQoJCQkJCQkJICAgICAg ICAJCQ0KCQkNCgkJCQkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJDQoJCQkJCQkN CgkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICANCiAgICANCgkNCgkJDQoJ CQkJCQkJCQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFn ZT0iamF2YXNjcmlwdCI+DQoJLy8JPCFbQ0RBVEFbDQoJaWYgKHRydWUpIHsNCgkJ aW5zZXJ0U3R5bGVTaGVldCgnc3R5bGVzL3dpZGUvcGx1Y2stb24uY3NzJyk7DQoJ fQ0KCS8vIF1dPg0KCTwvc2NyaXB0Pg0KCQ0KCgo8IS0tIFNFUlZFUi1TSURFIFBM VUNLIENvbW1lbnQgU3VibWlzc2lvbiBib3ggU1RBUlQgLS0+Cgk8cCBpZD0iY29t bWVudHMtY2xvc2VkIj5Db21tZW50cyBhcmUgbm93IGNsb3NlZCBmb3IgdGhpcyBl bnRyeS48L3A+CjwhLS0gU0VSVkVSLVNJREUgUExVQ0sgQ29tbWVudCBTdWJtaXNz aW9uIGJveCBFTkQgLS0+DQoJCQkJCQkJCQkNCgkJCQkJCQkgICAgICAgIA0KDQoJ DQo8ZGl2IGNsYXNzPSJwbHVjay1vZmYtZXJyb3IiPg0KPGgyPkNvbW1lbnRzPC9o Mj4NCjxwPlNvcnJ5LCBjb21tZW50aW5nIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhp cyB0aW1lLiA8c3Bhbj5QbGVhc2UgdHJ5IGFnYWluIGxhdGVyLjwvc3Bhbj48L3A+ DQo8L2Rpdj4NCjxkaXYgaWQ9InBsdWNrLWVycm9yLWFyZWEiIHN0eWxlPSJkaXNw bGF5Om5vbmUiPg0KPHA+QXBvbG9naWVzLCBzb21ldGhpbmcgaGFzIGdvbmUgd3Jv bmcgYW5kIHRoaXMgYWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQuIDxzcGFuPlBs ZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9zcGFuPjwvcD4NCjwvZGl2Pg0KDQo8ZGl2 IHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCiAgICA8ZGl2IGlkPSJjb21tZW50LWJv eC13cmFwcGVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQoJPGRpdiBpZD0iY29t bWVudC1ib3gtcGx1Y2siPg0KCQk8ZGl2IGNsYXNzPSJjb21tZW50LWF1dGhvciI+ DQoJCQk8dWw+DQoJCQkJPGxpIGNsYXNzPSJjb21tZW50LWF1dGhvci1pbWciPjxp bWcgaWQ9InVzZXItaW1hZ2UiIHdpZHRoPSIzMCIgaGVpZ2h0PSIzMCIvPjwvbGk+ DQoJCQkJPGxpIGNsYXNzPSJjb21tZW50LWF1dGhvci1uYW1lIj5Mb2dnZWQgaW4g YXMgPHN0cm9uZyBpZD0idXNlci1uYW1lIj48L3N0cm9uZz4NCgkJCQkJCQkJCQkJ CQkJCTxhIGlkPSJzaWduLW91dC1saW5rIiBocmVmPSIjIiB0aXRsZT0iY2xpY2sg aGVyZSB0byBsb2cgb3V0Ij5jbGljayBoZXJlIHRvIGxvZyBvdXQ8L2E+DQoJCQkJ CSAJCQkJCQkJCTwvbGk+DQoJCQkJPGxpIGNsYXNzPSJhdXRob3Itcm9sZSI+PC9s aT4NCgkJCTwvdWw+DQoJCTwvZGl2Pg0KCQk8ZGl2IGlkPSJjb21tZW50LWJveC1l ZGl0Ij4NCgkJCTxkaXYgaWQ9ImJsb2NrcXVvdGUtYnV0dG9uIj4NCgkJCQk8aW5w dXQgaWQ9ImFkZC1ibG9ja3F1b3RlcyIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmxv Y2txdW90ZSIgLz4NCgkJCQk8aW5wdXQgaWQ9ImFkZC1ib2xkcyIgdHlwZT0iYnV0 dG9uIiB2YWx1ZT0iYm9sZCIgLz4NCgkJCQk8aW5wdXQgaWQ9ImFkZC1pdGFsaWNz IiB0eXBlPSJidXR0b24iIHZhbHVlPSJpdGFsaWMiIC8+DQoJCQkJPGlucHV0IGlk PSJhZGQtbGlua3MiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImxpbmsiIC8+DQoJCQkJ PHA+WW91IGhhdmUgPHNwYW4gaWQ9ImNoYXJzLWxlZnQiPjwvc3Bhbj4mbmJzcDtj aGFyYWN0ZXJzIGxlZnQ8L3A+DQoJCQk8L2Rpdj4NCgkJCTxmaWVsZHNldD4NCgkJ CQk8dGV4dGFyZWEgcm93cz0iMTYiIGNvbHM9IjUwIiBpZD0iY29tbWVudC1ib2R5 IiBuYW1lPSJjb21tZW50LWJvZHkiPjwvdGV4dGFyZWE+DQoJCQk8L2ZpZWxkc2V0 Pg0KCQkJCQkJPGRpdiBpZD0ic3VibWl0Ij4NCgkJCQk8cCBjbGFzcz0ibXNnIj5Q bGVhc2UgcmVhZCBvdXIgPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51 ay90YWxrcG9saWN5IiBpZD0iY29tbXVuaXR5LXN0YW5kYXJkcy1saW5rIj5jb21t dW5pdHkgc3RhbmRhcmRzPC9hPi48L3A+DQoJCQkJPHA+PGlucHV0IHR5cGU9InN1 Ym1pdCIgZGlzYWJsZWQ9InRydWUiIHZhbHVlPSJQb3N0IHlvdXIgY29tbWVudCIg aWQ9InN1Ym1pdC1jb21tZW50IiBuYW1lPSJzdWJtaXQtY29tbWVudCIvPjwvcD4N CgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgkJPGRpdiBpZD0iY29tbWVudC1ib3gtcHJv Z3Jlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCgkJCTxwPkxvYWRpbmcuLi4u Li4uLi4uLi4uLi48L3A+DQoJCTwvZGl2Pg0KCQk8ZGl2IGlkPSJjb21tZW50LWNs b3NlLWNvbmZpcm1hdGlvbi1hcmVhIj4NCgkJCTxwPkNsb3NpbmcgdGhpcyB3aW5k b3cgd2l0aG91dCBwcmVzc2luZyAiUG9zdCB5b3VyIGNvbW1lbnQiIHdpbGwgcmVz dWx0IGluIHlvdXIgd29yZHMgYmVpbmcgbG9zdC4NCgkJCQk8YnIvPiBBcmUgeW91 IHN1cmU/DQoJCQkJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlllcywgY2xv c2UiIGlkPSJjb21tZW50LWNsb3NlLWNvbmZpcm0iLz4NCgkJCQk8aW5wdXQgdHlw ZT0iYnV0dG9uIiB2YWx1ZT0iTm8sIHJldHVybiB0byB0ZXh0IiBpZD0iY29tbWVu dC1jbG9zZS1jYW5jZWwiLz4NCgkJCTwvcD4NCgkJPC9kaXY+DQoJCTxkaXYgaWQ9 ImNvbW1lbnQtcHJlbW9kZXJhdGlvbi1hcmVhIj4NCgkJCTxwPlRoYW5rIHlvdSBm b3IgeW91ciBjb21tZW50LiBUaGlzIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgbW9k ZXJhdGlvbi4NCgkJCTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJDbG9zZSIg aWQ9ImNvbW1lbnQtcHJlbW9kZXJhdGlvbi1jbG9zZSIvPg0KCQkJPC9wPg0KCQk8 L2Rpdj4NCgkJPGRpdiBpZD0iY29tbWVudC10aGFuay15b3UtYXJlYSI+DQoJCQk8 cD5Zb3VyIGNvbW1lbnQgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHBvc3RlZC48L3A+ DQoJCQk8aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iY29tbWVudC1hZ2FpbiIgdmFs dWU9IkNvbW1lbnQgYWdhaW4iPg0KCQk8L2Rpdj4NCgkJPGRpdiBpZD0iY29tbWVu dC1wbHVjay1lcnJvci1hcmVhIj4NCgkJCTxwPlNvcnJ5LCBzb21ldGhpbmcgaGFz IGdvbmUgd3JvbmcgYW5kIHRoaXMgYWN0aW9uIGNhbm5vdCBiZSBjb21wbGV0ZWQu IDxzcGFuPlBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9zcGFuPjwvcD4NCgkJPC9k aXY+DQoJPC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdiBpZD0iYWJ1c2UtYm94 LXdyYXBwZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCgk8ZGl2IGlkPSJhYnVz ZS1ib3giPg0KCQk8cCBpZD0iYWJ1c2UtYm94LWNsb3NlIj48YSBocmVmPSJqYXZh c2NyaXB0OnZvaWQoMCkiIHRpdGxlPSJDbG9zZSI+Q2xvc2U8L2E+PC9wPg0KDQoJ CTxkaXY+DQoJCQk8aDI+QWJ1c2UgcmVwb3J0PC9oMj4NCgkJPC9kaXY+DQoJCTxk aXYgaWQ9ImFidXNlLWJveC1lZGl0LWFyZWEiPg0KDQoJCQk8cD48bGFiZWwgZm9y PSJhYnVzZS1yZWFzb24iPlBsZWFzZSBjaG9vc2UgYSBwcm9ibGVtOjwvbGFiZWw+ PC9wPg0KCQkJPHNlbGVjdCBpZD0iYWJ1c2UtcmVhc29uIj4NCgkJCQk8b3B0aW9u IHZhbHVlPSIiIHNlbGVjdGVkPkNob29zZSBvbmU8L29wdGlvbj4NCgkJCQk8b3B0 aW9uIHZhbHVlPSJQZXJzb25hbCBhYnVzZSI+UGVyc29uYWwgYWJ1c2U8L29wdGlv bj4NCgkJCQk8b3B0aW9uIHZhbHVlPSJPZmYgdG9waWMiPk9mZiB0b3BpYzwvb3B0 aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IkxlZ2FsIGlzc3VlIj5MZWdhbCBpc3N1 ZTwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IlRyb2xsaW5nIj5Ucm9sbGlu Zzwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IkhhdGUgc3BlZWNoIj5IYXRl IHNwZWVjaDwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9Ik9mZmVuc2l2ZS9U aHJlYXRlbmluZyBsYW5ndWFnZSI+T2ZmZW5zaXZlL1RocmVhdGVuaW5nIGxhbmd1 YWdlPC9vcHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iQ29weXJpZ2h0Ij5Db3B5 cmlnaHQ8L29wdGlvbj4NCgkJCQk8b3B0aW9uIHZhbHVlPSJTcGFtIj5TcGFtPC9v cHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iT3RoZXIiPk90aGVyPC9vcHRpb24+ DQoJCQk8L3NlbGVjdD4NCg0KCQkJPHA+PGxhYmVsIGZvcj0iYWJ1c2UtZGVzY3Jp cHRpb24iPkNvbW1lbnQ6IDxzcGFuIGlkPSJhYnVzZS1kZXNjcmlwdGlvbi1vcHRp b25hbCI+KG9wdGlvbmFsKTwvc3Bhbj48L2xhYmVsPjwvcD4NCgkJCTx0ZXh0YXJl YSByb3dzPSI0IiBjb2xzPSI1MCIgaWQ9ImFidXNlLWRlc2NyaXB0aW9uIj48L3Rl eHRhcmVhPg0KCQkJPHA+WW91IGhhdmUgPHNwYW4gaWQ9ImFidXNlLWNoYXJzLWxl ZnQiPjUwMDA8L3NwYW4+IGNoYXJhY3RlcnMgbGVmdDwvcD4NCg0KCQkJPGRpdiBp ZD0iYWJ1c2UtbG9naW4taW5mbyI+DQoJCQkJPHA+TG9nZ2VkIGluIGFzIDxzdHJv bmcgaWQ9ImFidXNlLXVzZXItbmFtZSI+PC9zdHJvbmc+PC9wPg0KCQkJPC9kaXY+ DQoJCQk8ZGl2IGlkPSJhYnVzZS1lbWFpbC1pbmZvIj4NCgkJCQk8cD48bGFiZWwg Zm9yPSJhYnVzZS1lbWFpbCI+WW91ciBlbWFpbCBhZGRyZXNzOiA8c3Bhbj4ob3B0 aW9uYWwpPC9zcGFuPjwvbGFiZWw+PC9wPg0KCQkJCTxpbnB1dCB0eXBlPSJ0ZXh0 IiBpZD0iYWJ1c2UtZW1haWwiIC8+DQoJCQk8L2Rpdj4NCgkJCTxwIGlkPSJhYnVz ZS1zdWJtaXQtY29udGFpbmVyIj4NCgkJCQk8aW5wdXQgdHlwZT0iYnV0dG9uIiBk aXNhYmxlZD0idHJ1ZSIgaWQ9ImFidXNlLXN1Ym1pdCIgdmFsdWU9IlJlcG9ydCIv Pg0KCQkJPC9wPg0KCQk8L2Rpdj4NCgkJPGRpdiBpZD0iYWJ1c2UtcHJvZ3Jlc3Mt YXJlYSI+DQoJCQk8cD5Mb2FkaW5nLi4uLi4uLi4uLi4uLi4uPC9wPg0KCQk8L2Rp dj4NCgkJPGRpdiBpZD0iYWJ1c2UtY2xvc2UtY29uZmlybWF0aW9uLWFyZWEiPg0K CQkJPHA+Q2xvc2luZyB0aGlzIHdpbmRvdyB3aXRob3V0IHByZXNzaW5nICJSZXBv cnQiIHdpbGwgcmVzdWx0IGluIHlvdXIgd29yZHMgYmVpbmcgbG9zdC4NCgkJCQk8 YnIvPiBBcmUgeW91IHN1cmU/DQoJCQkJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFs dWU9IlllcywgY2xvc2UiIGlkPSJhYnVzZS1jbG9zZS1jb25maXJtIi8+DQoJCQkJ PGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9Ik5vLCByZXR1cm4gdG8gdGV4dCIg aWQ9ImFidXNlLWNsb3NlLWNhbmNlbCIvPg0KCQkJPC9wPg0KCQk8L2Rpdj4NCgkJ PGRpdiBpZD0iYWJ1c2UtdGhhbmsteW91LWFyZWEiPg0KCQkJPHA+VGhhbmsgeW91 DQoJCQkJPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkNsb3NlIiBpZD0iYWJ1 c2UtY2xvc2UtdGhhbmsteW91Ii8+DQoJCQk8L3A+DQoJCTwvZGl2Pg0KCQk8ZGl2 IGlkPSJhYnVzZS1wbHVjay1lcnJvci1hcmVhIj4NCgkJCTxwPlNvcnJ5LCBzb21l dGhpbmcgaGFzIGdvbmUgd3JvbmcgYW5kIHRoaXMgYWN0aW9uIGNhbm5vdCBiZSBj b21wbGV0ZWQuIDxzcGFuPlBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuPC9zcGFuPjwv cD4NCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4NCgkNCjwvZGl2Pg0KDQoJPGRp diBpZD0icHJvbW8iID4NCgkJCQk8IS0tIHRoaXMgaXMgdGhlIHRoaXJkIGNvbHVt biAtLT4NCgkNCiAgICAgIAkgICAgCSAgICANCg0KDQoNCg0KDQoJCQ0KCQkJCQkJ CQ0KDQogICAgICAgIAkJDQoJCQ0KCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJ CQkNCgkJCQkJCQ0KCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgIA0KICAg IA0KCQ0KCQkNCgkJCQkJCQkJDQoJDQoJCQ0KCQk8ZGl2IGlkPSJyaWdodHNsb3Qx IiBjbGFzcz0iaGlkZS1vbi1wb3B1cCI+DQoNCgkJDQoNCgkJCTxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkJCS8vPCFbQ0RBVEFbDQoJCQkJaWYgKHRy dWUpIHsNCgkJCQkJaWYgKGZhbHNlKSB7DQoJCQkJICAgICAgICAJDQoJCSAgICAg ICAgT0FTX0FEKCdSaWdodDEnKTsNCiAgIAkJCQkJfSBlbHNlIHsNCgkJCQkJCQ0K CQkNCgkJDQoJICAgICAgICANCiAgICAgICAJDQogICAgICAgICAgICAgICAgDQog ICAgICAgIA0KICAgICAgICANCgkJCQkJCXZhciBzcmMgPSAnaHR0cDovL2Fkcy5n dWFyZGlhbi5jby51ay9qcy5uZy9zcGFjZWRlc2M9cmlnaHRzbG90MSZhbXA7Y29t Zm9sZGVyPWdsb2JhbCUyOHRlbXBjb21tZXJjaWFsJTI5JmFtcDtrZXl3b3Jkcz0l MkNMZWJhbm9uJTJCJTI4TmV3cyUyOSUyQ0dheSUyQnJpZ2h0cyUyQiUyOE5ld3Ml MjklMkNNaWRkbGUlMkJFYXN0JTJCJTI4TmV3cyUyOSUyQ1dvcmxkJTJCbmV3cyUy QyZhbXA7c2l0ZT1Db21tZW50aXNmcmVlJmFtcDtiYW5kd2lkdGg9c2F0ZWxsaXRl JmFtcDt1cmw9JTI1MkZjb21tZW50aXNmcmVlJTI1MkYyMDA5JTI1MkZhdWclMjUy RjMxJTI1MkZsZWJhbm9uLWdheS1yaWdodHMmYW1wO3JhbmQ9MTcyMDc0MDI5JmFt cDtzZXJpZXM9JmFtcDtzeXN0ZW09YmxvZyZhbXA7dGlsZT00NDE2MDY2JmFtcDti bG9ja1ZpZGVvQWRzPWZhbHNlJmFtcDtwYXJ0bmVyaWQ9JmFtcDsnOw0KCQkJCQl3 cml0ZVNjcmlwdChzcmMsIGZhbHNlLCBmdW5jdGlvbigpe30pOw0KCQkJCQkJCX0N CgkJCQl9DQoJCQkvL11dPg0KCQkJPC9zY3JpcHQ+DQoJCQ0KDQoJCTwvZGl2Pg0K DQogICAgDQoJCQkJCQkJCQkNCgkJCQkJCQkgICAgICAgIAkJDQoJCQ0KCQkJCQkJ CQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQkJCQkgICAg PCEtLVtpZiAhSUVdPiBHVUVSUiAoNTEpIDIwMTAtMDMtMDcgMTA6MTY6NDUsODIz IDwhW2VuZGlmXS0tPg0KCQkJCQkJCQkJDQoJCQkJCQkJICAgICAgICAJCQ0KCQkN CgkJCQkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkJ CQkJICAgICAgICAgICAgICAgICAgICANCiAgICANCgkNCgkJDQoJCQkJCQkJCQ0K CQkNCg0KDQoJICAgIA0KDQoNCg0KDQo8ZGl2IGNsYXNzPSJwcm9tby1jb21wb25l bnQgZm91ci1jb2wgYXR0ZW50aW9uLWRhdGEgY29tbWVudCI+DQogICAgPGRpdiBj bGFzcz0iaGQiPg0KICAgIAk8aDM+TGF0ZXN0IGZyb20gY29tbWVudCBpcyBmcmVl PC9oMz4NCiAgICA8L2Rpdj4NCgkNCgk8ZGl2IGNsYXNzPSJiZCI+DQoJCTxkaXYg aWQ9ImF0dC10b2dnbGUiPg0KCQkJPHVsIGNsYXNzPSJ0YWJzIj4NCgkJCQkJPGxp ICA+DQoJCTxhIGhyZWY9IiNhdHQtbW9zdC12aWV3ZWQiIGNsYXNzPSJhY3RpdmUi Pk1vc3Qgdmlld2VkPC9hPg0KCTwvbGk+DQoJCQkJCTxsaSAgPg0KCQk8YSBocmVm PSIjYXR0LWxhdGVzdCIgY2xhc3M9ImluYWN0aXZlIj5MYXRlc3Q8L2E+DQoJPC9s aT4NCgkJCQkJPGxpICA+DQoJCTxhIGhyZWY9IiNhdHQtbW9zdC1jb21tZW50ZWQi IGNsYXNzPSJpbmFjdGl2ZSI+TW9zdCBjb21tZW50ZWQ8L2E+DQoJPC9saT4NCgkJ CTwvdWw+DQoJCQkgDQoJCQk8ZGl2IGlkPSJhdHQtcGFuZXMiPg0KCQkJCTxkaXYg aWQ9ImF0dC1tb3N0LXZpZXdlZCIgY2xhc3M9ImF0dC10YWJzIGF0dC10b2dnbGUt cGFuZSI+DQoJCQkJCSAgICAJCQ0KCQkJCQ0KDQoNCgkJCTxkaXYgY2xhc3M9ImNh cHN1bGUiIGlkPSJtb3N0LXZpZXdlZCIgPg0KCQkJDQogICAgPGRpdiBpZD0ibW9z dCIgY2xhc3M9InRhYnMtY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8cD5M YXN0IDI0IGhvdXJzPC9wPg0KICAgICAgICAgICAgICAgIA0KDQoNCg0KDQoNCgkJ DQoJPG9sPg0KCQkJCQ0KCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGkg Y2xhc3M9ImZpcnN0Ij4NCgkJCQkJPHNwYW4gY2xhc3M9InJhbmsiPjEuPC9zcGFu Pg0KCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1l bnRpc2ZyZWUvMjAxMC9tYXIvMDMvcmFjaXN0LXF1ZXN0aW9uLWJyb3duLWFuc3dl ci1jdXJpb3VzIiA+SXQgbWF5IG5vdCBiZSByYWNpc3QsIGJ1dCBpdCdzIGEgcXVl c3Rpb24gSSdtIHRpcmVkIG9mIGhlYXJpbmcgfCBBcmlhbmUgU2hlcmluZTwvYT4J CQkJPC9saT4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxsaT4NCgkJCQkJPHNw YW4gY2xhc3M9InJhbmsiPjIuPC9zcGFuPg0KCQkJCQk8YSBocmVmPSJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDYvam9u LXZlbmFibGVzLWphbWVzLWJ1bGdlci1lZGl0b3JpYWwiID5Kb24gVmVuYWJsZXM6 IFJhZ2Ugd2l0aG91dCByZWFzb24gfCBFZGl0b3JpYWw8L2E+CQkJCTwvbGk+DQoJ CQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGk+DQoJCQkJCTxzcGFuIGNsYXNzPSJy YW5rIj4zLjwvc3Bhbj4NCgkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlh bi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA3L2FzaWFuLW5ldHdvcmst Ni1tdXNpYy1jbG9zdXJlIiA+V2h5IHdlIHNob3VsZCBjZWxlYnJhdGUgdGhlIGVu ZCBvZiBBc2lhbiBOZXR3b3JrIHwgQ2F0aGVyaW5lIEJlbm5ldHQ8L2E+CQkJCTwv bGk+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGk+DQoJCQkJCTxzcGFuIGNs YXNzPSJyYW5rIj40Ljwvc3Bhbj4NCgkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5n dWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA1L3JldHVybi1m cm9tLWluZGlhLXRvLWJyaXRhaW4iID5BIHBhc3NhZ2UgdG8gd29ybGQgcG93ZXIg fCBSYW5kZWVwIFJhbWVzaDwvYT4JCQkJPC9saT4NCgkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCTxsaT4NCgkJCQkJPHNwYW4gY2xhc3M9InJhbmsiPjUuPC9zcGFuPg0K CQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRp c2ZyZWUvMjAxMC9tYXIvMDcvZGF2aWQtbWl0Y2hlbGwtbG9yZC1hc2hjcm9mdC1i YmMiID5JZiB5b3UgdGhpbmsgQXNoY3JvZnQgaXMgYSBzY2FuZGFsLCB3aGF0IGFi b3V0IHRoZSBhdHRhY2tzIG9uIHRoZSBCQkM/IHwgRGF2aWQgTWl0Y2hlbGw8L2E+ CQkJCTwvbGk+DQoJCQkJCQkNCgkJCQ0KCQkJCQkJCTxsaSBjbGFzcz0ibW9yZS1t b3N0LXZpZXdlZCI+DQoJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay9jb21tZW50aXNmcmVlL21vc3R2aWV3ZWQiPk1vcmUgdG9wIHN0b3JpZXM8 L2E+DQoJCQk8L2xpPg0KCQkJPC9vbD4NCg0KDQogICAgICAgIA0KICAgICAgICAg ICAgPC9kaXY+DQo8L2Rpdj4NCg0KDQoJCQkJPC9kaXY+DQoJCQkNCgkJCQk8ZGl2 IGlkPSJhdHQtbGF0ZXN0IiBjbGFzcz0iYXR0LXRhYnMgYXR0LXRvZ2dsZS1wYW5l IGluaXRpYWxseS1vZmYiPg0KCQkJCQkgICAgDQoNCg0KDQogICAgICAgIA0KICAg ICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICA8b2w+DQogICAgICAgIA0KICAg ICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxsaSBjbGFzcz0iZmlyc3QiPg0KICAgICAgICAgICAgICAg ICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAkJDQoJICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L2NvbW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDcvYW5kcmV3LXJhd25zbGV5LWRhdmlk LWNhbWVyb24iICBjbGFzcz0ibGluay10ZXh0Ij5HZXQgZG93bndpbmQgb2YgYSBz ZW5pb3IgVG9yeSBhbmQgeW91J2xsIHNtZWxsIHRoZSBhbnhpb3VzIHN3ZWF0PC9h Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAN CiAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAg DQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAg ICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAJCQ0KCSAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5n dWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA3L2FzaWFuLW5l dHdvcmstNi1tdXNpYy1jbG9zdXJlIiAgY2xhc3M9ImxpbmstdGV4dCI+V2h5IHdl IHNob3VsZCBjZWxlYnJhdGUgdGhlIGVuZCBvZiBBc2lhbiBOZXR3b3JrPC9hPg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAg ICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQog ICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAg ICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAJCQ0KCSAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFy ZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA3L3dpbGwtaHV0dG9u LWJhcm9uZXNzLWFzaHRvbi1ldXJvcGUiICBjbGFzcz0ibGluay10ZXh0Ij5BIHVu aXF1ZSBjaGFuY2UgdG8gaG9sZCBFdXJvcGUgdG9nZXRoZXIgbXVzdCBub3QgYmUg d2FzdGVkPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICANCiAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAg ICAgICAgICAgDQogICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxsaT4NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAJCQ0KCSAgICAgICAgPGEgaHJlZj0iaHR0 cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA3 L2JhcmJhcmEtZWxsZW4tam9lLWdsZW50b24tYXdvbCIgIGNsYXNzPSJsaW5rLXRl eHQiPldoZW4gSm9lIEdsZW50b24gd2VudCBBd29sLCBzbyBkaWQgY29tcGFzc2lv bjwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQogICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAg ICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+ DQogICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCQkNCgkgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93 d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZS8yMDEwL21hci8wNy9uaWNr LWNvaGVuLWd1cmtoYXMtcmVzZXR0bGVtZW50IiAgY2xhc3M9ImxpbmstdGV4dCI+ QSBoYXBweSBlbmRpbmcgZm9yIHRoZSBHdXJraGFzPyBUaGluayBhZ2FpbjwvYT4N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQog ICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIA0K ICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICANCiAg ICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAg ICAgICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0K ICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICANCiAg ICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgICAg ICAgICAgICAgIA0KICAgICAgICANCiAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6 Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZS9hbGwiPkFsbCB0b2Rh eSdzIHN0b3JpZXM8L2E+PC9saT4NCg0KICAgIDwvb2w+DQoNCgkJCQk8L2Rpdj4N CgkNCgkJCQkJCQkJCTxkaXYgaWQ9ImF0dC1tb3N0LWNvbW1lbnRlZCIgY2xhc3M9 ImF0dC10YWJzIGF0dC10b2dnbGUtcGFuZSBpbml0aWFsbHktb2ZmIj4NCgkJCQkJ CSAgICANCjxwPkxhc3QgMjQgaG91cnM8L3A+DQo8b2w+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9InJhbmsiPjEu PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCQkN CgkgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29t bWVudGlzZnJlZS8yMDEwL21hci8wNS9yZXR1cm4tZnJvbS1pbmRpYS10by1icml0 YWluIiAgY2xhc3M9ImxpbmstdGV4dCI+QSBwYXNzYWdlIHRvIHdvcmxkIHBvd2Vy IHwgUmFuZGVlcCBSYW1lc2g8L2E+DQogICAgICgyMTMgY29tbWVudHMpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJyYW5rIj4yLjwvc3Bhbj4N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJDQoJICAgICAg ICA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2Zy ZWUvMjAxMC9tYXIvMDcvZGF2aWQtbWl0Y2hlbGwtbG9yZC1hc2hjcm9mdC1iYmMi ICBjbGFzcz0ibGluay10ZXh0Ij5JZiB5b3UgdGhpbmsgQXNoY3JvZnQgaXMgYSBz Y2FuZGFsLCB3aGF0IGFib3V0IHRoZSBhdHRhY2tzIG9uIHRoZSBCQkM/IHwgRGF2 aWQgTWl0Y2hlbGw8L2E+DQogICAgICgxOTIpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PGxpPjxzcGFuIGNsYXNzPSJyYW5rIj4zLjwvc3Bhbj4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAkJDQoJICAgICAgICA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDcv YW5kcmV3LXJhd25zbGV5LWRhdmlkLWNhbWVyb24iICBjbGFzcz0ibGluay10ZXh0 Ij5HZXQgZG93bndpbmQgb2YgYSBzZW5pb3IgVG9yeSBhbmQgeW91J2xsIHNtZWxs IHRoZSBhbnhpb3VzIHN3ZWF0IHwgQW5kcmV3IFJhd25zbGV5PC9hPg0KICAgICAo NzYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJyYW5rIj40 Ljwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJ DQoJICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2Nv bW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDcvY2Fyb2wtdm9yZGVybWFuLXBvbGl0aWNz LXF1ZXN0aW9uLXRpbWUiICBjbGFzcz0ibGluay10ZXh0Ij5DYXJvbCBWb3JkZXJt YW4sIGlmIHlvdSBmYW5jeSBwb2xpdGljcywgZ2V0IGVsZWN0ZWQgZmlyc3QgfCBH YWJ5IEhpbnNsaWZmPC9hPg0KICAgICAoNTkpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PGxpPjxzcGFuIGNsYXNzPSJyYW5rIj41Ljwvc3Bhbj4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAkJDQoJICAgICAgICA8YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDcv bG9yZC1hc2hjcm9mdC1ub24tZG9tLXRheCIgIGNsYXNzPSJsaW5rLXRleHQiPlRo ZSBBc2hjcm9mdCBmYWxsb3V0OiBTbyBtdWNoIGZvciBDYW1lcm9uJ3MgcGxlZGdl IG9mIGNoYW5nZTwvYT4NCiAgICAgKDU3KQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvbGk+DQogICAgICAgICAgICA8L29sPgoNCg0KCQkJCQk8L2Rpdj4N CgkJCQkJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4NCgkJCQkJ CQkJCQ0KCQkJCQkJCSAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0K CQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAg ICAgDQogICAgDQoJDQoJCQ0KCQkJCQkJCQkNCgkNCgkJCQ0KCTxkaXYgY2xhc3M9 ImNhcHN1bGUgcmVhZGVyLW9mZmVycyBzcG9uc29yZWQtZmVhdHVyZXMgY29tbWVy Y2lhbCI+DQoJCTx1bD4NCgkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCTxoMz5C ZXN0c2VsbGVycyBmcm9tIHRoZSBHdWFyZGlhbiBzaG9wPC9oMz4NCgkJCQkJCQkJ DQoJCQkJPGxpPg0KCQkJCQkJCQkJCQk8aW1nIHNyYz0iaHR0cDovL3JvZmZlcnMu Z3VpbS5jby51ay9tYWxsL0dPVHJ1ZWJlbGxVS0x0ZC9jdXN0b21lcmltYWdlcy9w cm9kdWN0cy90X1RSVVRFWDEuanBnIiBhbHQ9IklvbiBUYXBlIEV4cHJlc3MgVGFw ZS10by1EaWdpdGFsIiAvPg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8aDU+PGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbm9mZmVycy5jby51ay9tYWxsL3Byb2R1 Y3RwYWdlLmNmbS9HdWFyZGlhbk9mZmVycy9UUlVURVgxLzExOTI2OCI+SW9uIFRh cGUgRXhwcmVzcyBUYXBlLXRvLURpZ2l0YWw8L2E+PC9oNT4NCgkJCQkJCQkJCQkN CgkJCQkJCQkJCQkJPHA+Q29udmVydCB5b3VyIGF1ZGlvIHRhcGVzIGludG8gZGln aXRhbCBmaWxlcyAoTVAzKSBvbiB5b3VyIGNvbXB1dGVyIHdoaWNoIGNhbiB0aGVu IGJlIHN0b3JlZCwgdHJhbnNmZXJyZWQgb24gdG8geW91ciBpUG9kIG9yIGJ1cm5l ZCB0byBDRC4gU2F2ZSDCozEwIG9mZiBSUlAKCjwvcD4NCgkJCQkJCQkJCQkNCgkJ CQkJCQkJCQkJPHAgY2xhc3M9InByaWNlIj5Gcm9tOiAmcG91bmQ7MzkuOTU8L3A+ DQoJCQkJCQkJCQk8L2xpPg0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9ImxpbmtzIj4N CgkJCQkJCQkJCTx1bCBjbGFzcz0icmVhZGVyLW9mZmVycy1saW5rcyI+DQoJCQkJ CQkJCQkJCQkJCQkJCQkJCQk8bGkgY2xhc3M9ImZpcnN0Ij48YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFub2ZmZXJzLmNvLnVrLyI+VmlzaXQgdGhlIEd1YXJkaWFu IHJlYWRlciBvZmZlcnMgc2hvcDwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFu ZWNvc3RvcmUuY28udWsvIj5HcmVlbiAmYW1wOyBldGhpY2FsIHNob3BwaW5nIGF0 IEd1YXJkaWFuIGVjb3N0b3JlPC9hPjwvbGk+DQoJCQkJIAkJCQkJCQkJCQkJCQkJ PC91bD4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQ0KCQk8L3VsPg0KCTwvZGl2Pg0K CQ0KDQoJCQkJCQkJCQkNCgkJCQkJCQkgICAgICAgIAkJDQoJCQ0KCQkJCQkJCQkJ CQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQkJCQkgICAgICAg ICAgICAgICAgICAgIA0KICAgIA0KCQ0KCQkNCgkJCQkJCQkJCQkNCgo8ZGl2IGNs YXNzPSJsYXRlc3QtY2lmLXBvc3RzLXByb21vIHByb21vLWNvbXBvbmVudCI+Cgk8 ZGl2IGNsYXNzPSJoZCI+CgkJPGgzIGlkPSJjcC1zY290dC1wcm9tbyI+PGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlIj5jb21t ZW50IGlzIGZyZWUmaGVsbGlwOzwvYT48L2gzPgoJPC9kaXY+Cgk8ZGl2IGNsYXNz PSJiZCI+CgkJPGg0PkxhdGVzdCBwb3N0czwvaDQ+CgkJICAgIAkgICAgDQoJCQ0K CQ0KCTxkaXYgY2xhc3M9ImxhdGVzdC1jb250ZW50Ij4NCg0KDQoJPHVsIGlkPSJj aWYtYXV0by10cmFpbC1ibG9jayI+DQoJCQkJPGxpPg0KCQkJDQoJCQkJCQkNCgkJ CQkgICAgICAgIA0KCSAgICAgICAgCSAgICAgICAgCTxkaXYgY2xhc3M9ImJ5bGlu ZSI+DQoJICAgICAgICAJCQkJCQk8YSBjbGFzcz0iY29udGFpbmVyIiBocmVmPSJo dHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvY2lmYW1lcmlj YS8yMDEwL21hci8wNy91c2Vjb25vbXktZWNvbm9taWNzIiA+PGltZyBzcmM9Imh0 dHA6Ly9zdGF0aWMuZ3VpbS5jby51ay9zeXMtaW1hZ2VzL0d1YXJkaWFuL1BpeC9w aWN0dXJlcy8yMDA4LzEyLzExLzEyMjg5OTg0ODk3NDgvam9obi5qcGciIHdpZHRo PSI2MCIgaGVpZ2h0PSI2MCIgYWx0PSJKb2huIFNwcmluZ2ZvcmQiIC8+PC9hPg0K CQkJCQkgICAgICAgIAkgICAgICAgIA0KCSAgICAgICAgPGRpdiBjbGFzcz0idHJh aWwtdGV4dCI+DQoJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZGF0ZSI+ICAgICAgICAJ MWhyIDE2bWluIGFnbw0KICAgIDwvc3Bhbj4NCgkJCQkJPGgzPg0KCQkJCQkJPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlL2Np ZmFtZXJpY2EvMjAxMC9tYXIvMDcvdXNlY29ub215LWVjb25vbWljcyIgPlJlZm9y bSB0YWtlcyBvbiBhIG5hdGlvbmFsIGFnZW5kYTwvYT4NCgkJCQkJPC9oMz4NCgkJ CQkJCQkJPHA+PHN0cm9uZz5Kb2huIFNwcmluZ2ZvcmQ6PC9zdHJvbmc+IFdpdGgg Z2xvYmFsIGNvLW9wZXJhdGlvbiBmYWRpbmcgYXdheSwgdGhlcmUgYXJlIGRpc3R1 cmJpbmcgZ2FwcyBpbiB0aGUgYXBwcm9hY2ggdG8gZmluYW5jaWFsIHJlZm9ybSBp biBFdXJvcGUgYW5kIHRoZSBVUzwvcD4NCgkJCQkJDQoJCQkJCQkJCQkJDQoJCQkJ DQoJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1 YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvY2lmYW1lcmljYS8yMDEwL21hci8w Ny91c2Vjb25vbXktZWNvbm9taWNzI3N0YXJ0LW9mLWNvbW1lbnRzIiAgY2xhc3M9 ImNvbW1lbnQtY291bnQtaW5mbyBwbHVjay1pbml0LWlubGluZSBjb21tZW50LWNv dW50LWlkLTM2MDA5MDAwMyBwbHVjay1jb21tZW50YWJsZSI+CTxzcGFuIGNsYXNz PSJsaW5rLWNvbW1lbnQtY291bnQiPjwvc3Bhbj48c3BhbiBjbGFzcz0ibGluay1j b21tZW50LWNvdW50LXdvcmRzIj48L3NwYW4+DQo8L2E+DQoJCQkJCQkJCQkJCSAg ICAgICAgPC9kaXY+DQoJICAgICAgICAJICAgICAgICAJPC9kaXY+DQoJICAgICAg ICAJICAgIDwvbGk+DQoJCQkJPGxpPg0KCQkJDQoJCQkJCQkNCgkJCQkgICAgICAg IA0KCSAgICAgICAgCSAgICAgICAgCTxkaXYgY2xhc3M9ImJ5bGluZSI+DQoJICAg ICAgICAJCQkJCQk8YSBjbGFzcz0iY29udGFpbmVyIiBocmVmPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL2NvbW1lbnRpc2ZyZWUvMjAxMC9tYXIvMDcvY2Fyb2wt dm9yZGVybWFuLXBvbGl0aWNzLXF1ZXN0aW9uLXRpbWUiID48aW1nIHNyYz0iaHR0 cDovL3N0YXRpYy5ndWltLmNvLnVrL3N5cy1pbWFnZXMvR3VhcmRpYW4vUGl4L3Bp Y3R1cmVzLzIwMDgvMDkvMjgvZ2FieV9oaW5zbGlmZl8xNDB4MTQwLmpwZyIgd2lk dGg9IjYwIiBoZWlnaHQ9IjYwIiBhbHQ9IkdhYnkgSGluc2xpZmYiIC8+PC9hPg0K CQkJCQkgICAgICAgIAkgICAgICAgIA0KCSAgICAgICAgPGRpdiBjbGFzcz0idHJh aWwtdGV4dCI+DQoJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZGF0ZSI+ICAgICAgICAJ MTBociAxbWluIGFnbw0KICAgIDwvc3Bhbj4NCgkJCQkJPGgzPg0KCQkJCQkJPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIw MTAvbWFyLzA3L2Nhcm9sLXZvcmRlcm1hbi1wb2xpdGljcy1xdWVzdGlvbi10aW1l IiA+Q2Fyb2wsIGlmIHlvdSBmYW5jeSBwb2xpdGljcyDigJMgZ2V0IGVsZWN0ZWQg Zmlyc3Q8L2E+DQoJCQkJCTwvaDM+DQoJCQkJCQkJCTxzdHJvbmc+R2FiYnkgSGlu c2xpZmY6PC9zdHJvbmc+IENhcm9sIFZvcmRlcm1hbidzIHBlcmZvcm1hbmNlIG9u IFF1ZXN0aW9uIFRpbWUgcHJvdmVzIHRoYXQgY2VsZWJyaXRpZXMgY2FuJ3QgYmVj b21lIHBvbGl0aWNpYW5zIG92ZXJuaWdodA0KCQkJCQkNCgkJCQkJCQkJCQkNCgkJ CQkNCgkJCQkJDQoJCQkJCQkJCQkJDQoJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZS8yMDEwL21hci8wNy9jYXJvbC12 b3JkZXJtYW4tcG9saXRpY3MtcXVlc3Rpb24tdGltZSNzdGFydC1vZi1jb21tZW50 cyIgIGNsYXNzPSJjb21tZW50LWNvdW50LWluZm8gcGx1Y2staW5pdC1pbmxpbmUg Y29tbWVudC1jb3VudC1pZC0zNjAwOTU1MTggcGx1Y2stY29tbWVudGFibGUiPgk8 c3BhbiBjbGFzcz0ibGluay1jb21tZW50LWNvdW50Ij48L3NwYW4+PHNwYW4gY2xh c3M9ImxpbmstY29tbWVudC1jb3VudC13b3JkcyI+PC9zcGFuPg0KPC9hPg0KCQkJ CQkJCQkJCQkgICAgICAgIDwvZGl2Pg0KCSAgICAgICAgCSAgICAgICAgCTwvZGl2 Pg0KCSAgICAgICAgCSAgICA8L2xpPg0KCQk8L3VsPg0KDQoJDQoJPC9kaXY+DQoN Cg0KCQkgICAgDQoNCg0KCQ0KCQ0KICAgIA0KDQoNCgkNCgkJDQoNCgkJDQoJCQk8 ZGl2IGNsYXNzPSJsYXRlc3QtY29tbWVudCI+DQoJDQoJCQkJCQkJCQkJCQkJPGgz PkNvbW1lbnQgZnJvbSB0aGUgcGFwZXI8L2gzPg0KCQkJCQkJCQkJDQoJPHVsIGNs YXNzPSJ0cmkgdHJhaWwgdHJhaWxibG9jayI+DQoJCQkJCQkJCQk8bGkgY2xhc3M9 Im5vcm1hbCBsaXZlIGZpcnN0IG9kZCI+DQoJCQkJCTxkaXYgY2xhc3M9Imxpbmt0 ZXh0Ij4NCgkJCQkJCTxwPg0KCQkJCQkJCQkJCQkJCQkJTWFyaW5hIEh5ZGU6DQoJ CQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv Y29tbWVudGlzZnJlZS8yMDEwL21hci8wNi9hc2hjcm9mdC1tcC1leHBlbnNlcy11 bmVsZWN0ZWQtaW5mbHVlbmNlIiA+SWYgaXQgaGVscHMsIHRoaW5rIG9mIEFzaGNy b2Z0IGFzIGEgZ2lnYW50aWMgZHVjayBob3VzZTwvYT4NCgkJCQkJCTwvcD4NCgkJ CQkJPC9kaXY+DQoJCQkJCQkJCQk8L2xpPg0KCQkJCQkJCQkJCQkJPGxpIGNsYXNz PSJub3JtYWwgbGl2ZSAgIj4NCgkJCQkJPGRpdiBjbGFzcz0ibGlua3RleHQiPg0K CQkJCQkJPHA+DQoJCQkJCQkJCQkJCQkJCQlQb2xseSBUb3luYmVlOg0KCQkJCQkJ CQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2NvbW1l bnRpc2ZyZWUvMjAxMC9tYXIvMDYvY29uc2VydmF0aXZlcy1icm9rZW4tYnJpdGFp bi1jcmltZS1zb2NpZXR5IiA+QnJpdGFpbiBtYXkgYmUgYnJva2VuLCBidXQgbm90 IGluIHRoZSB3YXkgVG9yaWVzIGNsYWltPC9hPg0KCQkJCQkJPC9wPg0KCQkJCQk8 L2Rpdj4NCgkJCQkJCQkJCTwvbGk+DQoJCQkJCQkJCQkJCQk8bGkgY2xhc3M9Im5v cm1hbCBsaXZlICBvZGQiPg0KCQkJCQk8ZGl2IGNsYXNzPSJsaW5rdGV4dCI+DQoJ CQkJCQk8cD4NCgkJCQkJCQkJCQkJCQkJCUFuZHJldyBNYXJ0aW46DQoJCQkJCQkJ CQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVu dGlzZnJlZS8yMDEwL21hci8wNS9tYXJrZXRpc2F0aW9uLXR5cmFubnktb2YtY2hv aWNlIiA+VGVhYmFnIGluPyBEb24ndCBhc2sgbWU8L2E+DQoJCQkJCQk8L3A+DQoJ CQkJCTwvZGl2Pg0KCQkJCQkJCQkJPC9saT4NCgkJCQkJDQoJCQkJCQ0KCQkJCQkJ CQkJCQkJCQkNCgk8L3VsPg0KDQoJCQk8L2Rpdj4NCgkNCg0KCTwvZGl2Pgo8L2Rp dj4NCgkJCQkJCQkJCQ0KCQkJCQkJCSAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJ CQkJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAgICAgICAg ICAgICAgICAgICAgDQogICAgDQoJDQoJCQ0KCQkJCQkJCQkKCgo8ZGl2IGlkPSJz ZWN0aW9uLWNsYXNzaWZpZWRzIiBjbGFzcz0ic3BvbnNvcmVkLWZlYXR1cmVzIGNv bW1lcmNpYWwgY2Fwc3VsZSI+CgoJCQkJICAgIAkJCQk8aDM+U2VjdGlvbiBjbGFz c2lmaWVkPC9oMz4gICAgICAgICAgICAJCQoJCTwhLS0gc2NyaXB0IHNyYz0iaHR0 cDovL2Fkcy5ndWNvZGUuY28udWsvanMubmcvc3BhY2VkZXNjPXNlY3Rpb25DbGFz c2lmaWVkMSZjb21mb2xkZXI9TmV0d29ya2Zyb250JmtleXdvcmQ9JTJDJnNpdGU9 TmV0d29ya2Zyb250JmNvdW50cnk9KG5vbmUpJnJlZ2lvbj0obm9uZSkmY2l0eT0o bm9uZSkmYmFuZHdpZHRoPShub25lKSZ1cmw9JTI1MkYmcmFuZD0yMjIyMjIyJnN5 c3RlbT1uZXR3b3JrZnJvbnQmdGlsZT04ODg4ODg4ODg4Ii8gLS0+CgkJPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCQlmdW5jdGlvbiBzaG93U3BvbnNv cmVkU2VjdGlvbigpIHsKCQkJCXZhciBzZWN0aW9uQ2xhc3NpZmllZHNDb21wb25l bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2VjdGlvbi1jbGFzc2lmaWVk cycpOwoJCQkJaWYoc2VjdGlvbkNsYXNzaWZpZWRzQ29tcG9uZW50KSB7CgkJCQkJ c2VjdGlvbkNsYXNzaWZpZWRzQ29tcG9uZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxv Y2snOwoJCQkJfQoJCQl9CgkJPC9zY3JpcHQ+Cgo8IS0tQkVGT1JFMS0tPgoJCQkJ ICAgICAgIAkJICAgICAgICAgICAgDQogICAgICAgCQ0KICAgICAgICAgICAgICAg IA0KICAgICAgICANCiAgICAgICAgDQogICAgICAgICAgICA8c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYWRzLmd1YXJkaWFuLmNvLnVr L2pzLm5nL3NwYWNlZGVzYz1zZWN0aW9uY2xhc3NpZmllZCZhbXA7Y29tZm9sZGVy PWdsb2JhbCUyOHRlbXBjb21tZXJjaWFsJTI5JmFtcDtrZXl3b3Jkcz0lMkNMZWJh bm9uJTJCJTI4TmV3cyUyOSUyQ0dheSUyQnJpZ2h0cyUyQiUyOE5ld3MlMjklMkNN aWRkbGUlMkJFYXN0JTJCJTI4TmV3cyUyOSUyQ1dvcmxkJTJCbmV3cyUyQyZhbXA7 c2l0ZT1Db21tZW50aXNmcmVlJmFtcDtiYW5kd2lkdGg9c2F0ZWxsaXRlJmFtcDt1 cmw9JTI1MkZjb21tZW50aXNmcmVlJTI1MkYyMDA5JTI1MkZhdWclMjUyRjMxJTI1 MkZsZWJhbm9uLWdheS1yaWdodHMmYW1wO3JhbmQ9LTE1ODA1OTgyMTQmYW1wO3N5 c3RlbT1ibG9nJmFtcDtibG9ja1ZpZGVvQWRzPWZhbHNlJmFtcDtwYXJ0bmVyaWQ9 JmFtcDsiPjwvc2NyaXB0Pg0KICAgIDwhLS1BRlRFUjEtLT4KPC9kaXY+Cg0KCQkJ CQkJCQkJDQoJCQkJCQkJICAgICAgICAJCQ0KCQkNCgkJCQkJCQkJCQkJCQkJCQkJ DQoJCQkJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkJCQkJICAgICAgICAgICAgICAg ICAgICANCiAgICANCgkNCgkJDQoJCQkJCQkJCQ0KCQkJPGRpdiBjbGFzcz0iY2Fw c3VsZSIgaWQ9Imd1LW5vdyI+DQoJCTxoMz5MYXRlc3QgbmV3cyBvbiBndWFyZGlh bi5jby51azwvaDM+DQoJDQoNCgkJPHAgaWQ9Imd1LW5vdy1sYXN0LXVwZGF0ZWQi Pg0KCQkJICAgIA0KCSAgICAgICAgICAgICAgICANCgkJPC9wPg0KCQk8dWw+DQoJ CQkJCQkJPGxpPg0KCQkJCQk8aDM+PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlh bi5jby51ay8iID5OZXdzPC9hPjwvaDM+DQoJCQkJCTxoND48YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2Zvb3RiYWxsLzIwMTAvbWFyLzA3L2FsZXgt ZmVyZ3Vzb24tbWFuY2hlc3Rlci11bml0ZWQtYnV5b3V0IiA+RmVyZ3Vzb24gJ2Jh Y2tpbmcgYmlkIGZvciBNYW4gVXRkJywgc2F5IGZpbmFuY2llcnM8L2E+PC9oND4N CgkJCQk8L2xpPg0KCQkJCQkJCTxsaT4NCgkJCQkJPGgzPjxhIGhyZWY9Imh0dHA6 Ly93d3cuZ3VhcmRpYW4uY28udWsvc3BvcnQiID5TcG9ydDwvYT48L2gzPg0KCQkJ CQk8aDQ+PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9mb290YmFs bC8yMDEwL21hci8wNy9wb3J0c21vdXRoLWhhdmFudC13YXRlcmxvb3ZpbGxlLWdy b3VuZHNoYXJlIiA+UG9ydHNtb3V0aCBmYW5zIHJlYWR5IGZvciBQbGFuIEI8L2E+ PC9oND4NCgkJCQk8L2xpPg0KCQkJCQkJCTxsaT4NCgkJCQkJPGgzPjxhIGhyZWY9 Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlzZnJlZSIgPkNvbW1l bnQgaXMgZnJlZTwvYT48L2gzPg0KCQkJCQk8aDQ+PGEgaHJlZj0iaHR0cDovL3d3 dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlLzIwMTAvbWFyLzA3L2FuZHJl dy1yYXduc2xleS1kYXZpZC1jYW1lcm9uIiA+R2V0IGRvd253aW5kIG9mIGEgc2Vu aW9yIFRvcnkgYW5kIHlvdSdsbCBzbWVsbCB0aGUgYW54aW91cyBzd2VhdDwvYT48 L2g0Pg0KCQkJCTwvbGk+DQoJCQkJCTwvdWw+DQoJPC9kaXY+DQoNCgkJCQkJCQkJ CQ0KCQkJCQkJCSAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJ CQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAg DQogICAgDQoJDQoJCQ0KCQkJCQkJCQkKCgkgICAgCQ0KCQ0KCQ0KCQkNCgkJCSAg ICAKICAgICAgICANCg0KDQoNCgkJCQ0KCQ0KCQkJCQ0KICAgIDxkaXYgY2xhc3M9 InByb21vLWNvbXBvbmVudCBib29rc2hvcC1ib29rcy1wcm9tbyBib29rc2hvcC1i b29rcyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCQkJ CTxkaXYgY2xhc3M9ImhkIj4NCgkJCQkJCTxoMz4JCQ0KCSAgICAgICAgRnJlZSBQ JmFtcDtQIGF0IHRoZSBHdWFyZGlhbiBib29rc2hvcA0KICAgIDwvaDM+DQoJCQkJ CTwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmQi Pg0KCQkJPHVsIGNsYXNzPSJib29rcyI+DQoJCQkJCQkJCQk8bGkgY2xhc3M9InR3 by1jb2wiPg0KCQkJCQkJPGRpdiBjbGFzcz0iYm9vay1jb3ZlciI+DQoJCQkJCQkJ CQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuYm9va3Nob3AuY28u dWsvQmVydGVTaG9wV2ViL3ZpZXdQcm9kdWN0LmRvP0lTQk49OTc4MTg0NzkyMDg4 MSI+DQoJCQkJCQkJCQk8aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVr Ly90aGlyZHBhcnR5L2Jvb2tzaG9wL2hiQS85NzgxODQ3OTIwODgxLmpwZyIgYWx0 PSJNdXNpYyBJbnN0aW5jdCIgaGVpZ2h0PSIxMDAiIC8+DQoJCQkJCQkJCTwvYT4N CgkJCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCTxkaXYgY2xhc3M9ImJvb2stdGV4 dCI+DQoJCQkJCQkJCQkJCQkJCQk8dWw+DQoJCQkJCQkJCQk8bGk+PGEgaHJlZj0i aHR0cDovL3d3dy5ndWFyZGlhbmJvb2tzaG9wLmNvLnVrL0JlcnRlU2hvcFdlYi92 aWV3UHJvZHVjdC5kbz9JU0JOPTk3ODE4NDc5MjA4ODEiID5NdXNpYyBJbnN0aW5j dDwvYT48L2xpPg0KCQkJCQkJCQkJPGxpIGNsYXNzPSJib29rLXByaWNlIj7CozIw LjAwIHdpdGggZnJlZSBVSyBkZWxpdmVyeTwvbGk+DQoJCQkJCQkJCTwvdWw+DQoJ CQkJCQkJCQkJCQkJPC9kaXY+DQoJCQkJCTwvbGk+DQoJCQkJCQkJCQk8bGkgY2xh c3M9InR3by1jb2wgZWRnZSI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJib29rLWNvdmVy Ij4NCgkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW5i b29rc2hvcC5jby51ay9CZXJ0ZVNob3BXZWIvdmlld1Byb2R1Y3QuZG8/SVNCTj05 NzgxODQ2MTQwOTA3Ij4NCgkJCQkJCQkJCTxpbWcgc3JjPSJodHRwOi8vc3RhdGlj Lmd1aW0uY28udWsvL3RoaXJkcGFydHkvYm9va3Nob3AvaGJBLzk3ODE4NDYxNDA5 MDcuanBnIiBhbHQ9IlJ1bGUgb2YgTGF3IiBoZWlnaHQ9IjEwMCIgLz4NCgkJCQkJ CQkJPC9hPg0KCQkJCQkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0i Ym9vay10ZXh0Ij4NCgkJCQkJCQkJCQkJCQkJCTx1bD4NCgkJCQkJCQkJCTxsaT48 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuYm9va3Nob3AuY28udWsvQmVydGVT aG9wV2ViL3ZpZXdQcm9kdWN0LmRvP0lTQk49OTc4MTg0NjE0MDkwNyIgPlJ1bGUg b2YgTGF3PC9hPjwvbGk+DQoJCQkJCQkJCQk8bGkgY2xhc3M9ImJvb2stcHJpY2Ui PsKjMjAuMDAgd2l0aCBmcmVlIFVLIGRlbGl2ZXJ5PC9saT4NCgkJCQkJCQkJPC91 bD4NCgkJCQkJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJPC9saT4NCgkJCQkJCQk8L3Vs Pg0KCQkJCQkJCTx1bCBjbGFzcz0idmVydGljYWwtbGlua3MiPg0KCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCQk8bGk+DQoJCQkJCQkJCQkJCQkJCQkJCTxhIGhy ZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW5ib29rc2hvcC5jby51ay9CZXJ0ZVNob3BX ZWIvY3VzdG9tUGFnZS5kbz9DTVNGcmFnbWVudD1CZXN0U2VsbGVycy5qc3AmYW1w O3RpdGxlPUJlc3RzZWxsZXJzJTIwLSUyMEd1YXJkaWFuJTIwQm9va3Nob3AiIHN0 eWxlPSJkaXNwbGF5OiBpbmxpbmU7Ij5Ccm93c2UgdGhlIGJlc3RzZWxsZXJzIGxp c3RzPC9hPg0KCQkJCQkJCQkJCQkJCQkJPC9saT4NCgkJCQkJCQkJCQkJCQkJCTwv dWw+DQoJCQkJCTwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIA0KDQoNCgkJCQkJCQkJ CQ0KCQkJCQkJCSAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJ CQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAg DQogICAgDQoJDQoJCQ0KCQkJCQkJCQkKCjxkaXYgaWQ9InNwb25zb3JlZC1mZWF0 dXJlcyIgY2xhc3M9ImNhcHN1bGUgc3BvbnNvcmVkLWZlYXR1cmVzIGNvbW1lcmNp YWwgIj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgoJCS8vPCFb Q0RBVEFbCgkJZnVuY3Rpb24gc2hvd1Nwb25zb3JlZEZlYXR1cmVzKCkgewoJCQl2 YXIgc3BvbnNvcmVkRmVhdHVyZUNvbXBvbmVudCA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdzcG9uc29yZWQtZmVhdHVyZXMnKTsKCQkJaWYoc3BvbnNvcmVkRmVh dHVyZUNvbXBvbmVudCkgewoJCQkJc3BvbnNvcmVkRmVhdHVyZUNvbXBvbmVudC5z dHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKCQkJfQoJCX0KCQkvL11dPgoKCTwvc2Ny aXB0PgoKCTx1bCBjbGFzcz0idHJhaWwgdHJhaWxibG9jayB0cmkiPgoJCTxsaSBj bGFzcz0ibWFqb3ItaGVhZGluZyI+CgkJCTxoMz5TcG9uc29yZWQgZmVhdHVyZXM8 L2gzPgoJCTwvbGk+CgoJCTxsaSBjbGFzcz0ibm9ybWFsIGltYWdlIG9kZCI+CgkJ CQkJCQkJICAgICAgIAkJICAgICAgICAgICAgDQogICAgICAgCQ0KICAgICAgICAg ICAgICAgIA0KICAgICAgICANCiAgICAgICAgDQogICAgICAgICAgICA8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYWRzLmd1YXJkaWFu LmNvLnVrL2pzLm5nL3NwYWNlZGVzYz1zcG9uc29yZWRmZWF0dXJlMSZhbXA7Y29t Zm9sZGVyPWdsb2JhbCUyOHRlbXBjb21tZXJjaWFsJTI5JmFtcDtrZXl3b3Jkcz0l MkNMZWJhbm9uJTJCJTI4TmV3cyUyOSUyQ0dheSUyQnJpZ2h0cyUyQiUyOE5ld3Ml MjklMkNNaWRkbGUlMkJFYXN0JTJCJTI4TmV3cyUyOSUyQ1dvcmxkJTJCbmV3cyUy QyZhbXA7c2l0ZT1Db21tZW50aXNmcmVlJmFtcDtiYW5kd2lkdGg9c2F0ZWxsaXRl JmFtcDt1cmw9JTI1MkZjb21tZW50aXNmcmVlJTI1MkYyMDA5JTI1MkZhdWclMjUy RjMxJTI1MkZsZWJhbm9uLWdheS1yaWdodHMmYW1wO3JhbmQ9LTE2NjMwNTkzMTkm YW1wO3N5c3RlbT1ibG9nJmFtcDtibG9ja1ZpZGVvQWRzPWZhbHNlJmFtcDtwYXJ0 bmVyaWQ9JmFtcDsiPjwvc2NyaXB0Pg0KICAgIAkJPC9saT4KCgkJPGxpIGNsYXNz PSJub3JtYWwgaW1hZ2UiPgoJCQkJCQkJCSAgICAgICAJCSAgICAgICAgICAgIA0K ICAgICAgIAkNCiAgICAgICAgICAgICAgICANCiAgICAgICAgDQogICAgICAgIA0K ICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRw Oi8vYWRzLmd1YXJkaWFuLmNvLnVrL2pzLm5nL3NwYWNlZGVzYz1zcG9uc29yZWRm ZWF0dXJlMiZhbXA7Y29tZm9sZGVyPWdsb2JhbCUyOHRlbXBjb21tZXJjaWFsJTI5 JmFtcDtrZXl3b3Jkcz0lMkNMZWJhbm9uJTJCJTI4TmV3cyUyOSUyQ0dheSUyQnJp Z2h0cyUyQiUyOE5ld3MlMjklMkNNaWRkbGUlMkJFYXN0JTJCJTI4TmV3cyUyOSUy Q1dvcmxkJTJCbmV3cyUyQyZhbXA7c2l0ZT1Db21tZW50aXNmcmVlJmFtcDtiYW5k d2lkdGg9c2F0ZWxsaXRlJmFtcDt1cmw9JTI1MkZjb21tZW50aXNmcmVlJTI1MkYy MDA5JTI1MkZhdWclMjUyRjMxJTI1MkZsZWJhbm9uLWdheS1yaWdodHMmYW1wO3Jh bmQ9MTEwNTQzMTY2OSZhbXA7c3lzdGVtPWJsb2cmYW1wO2Jsb2NrVmlkZW9BZHM9 ZmFsc2UmYW1wO3BhcnRuZXJpZD0mYW1wOyI+PC9zY3JpcHQ+DQogICAgCQk8L2xp PgoJPC91bD4KCjwvZGl2PgoKCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkgICAgICAg IAkJDQoJCQ0KCQkJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkNCgkJCQkJCQ0K CQkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgIA0KICAgIA0KCQ0KCQkNCgkJ CQkJCQkJCQkKCQkKCQkKCQoKCgkKCgkgICAgCSAgICAJPGRpdiBpZD0iZ2xvYmFs LWpvYnMiIGNsYXNzPSJjYXBzdWxlIGpvYnNib3ggY29tbWVudCAKCQkJCQljb21w b25lbnQKCQkKCQkJCSI+CgoKCQoKCgkKCQkJCQk8aDM+PGEgaHJlZj0iaHR0cDov L2pvYnMuZ3VhcmRpYW4uY28udWs/SU5UQ01QPUlMQ05FV1RYVDE4MCIgPjxpbWcg c3JjPSJodHRwOi8vc3RhdGljLmd1aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1v bi9pbWFnZXMvZ3VhcmRpYW5qb2JzLmdpZiIgYWx0PSJHdWFyZGlhbiBKb2JzIiAv PjwvYT48L2gzPgoJCSAgICAKCQoKCgkKCgoJICAgIA0KDQoNCg0KCTx1bCBjbGFz cz0idGFicyBqYXZhc2NyaXB0LW9uIj4gDQoJCQ0KCQkJDQoJCQkJCQkJCQkJCQ0K CQkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJPGxpICBpZD0iZ2xvYmFsLWpvYnMt MS1saW5rIj4NCgkJPGEgaHJlZj0iI2dsb2JhbC1qb2JzLTEiIGNsYXNzPSJhY3Rp dmUiPlVLPC9hPg0KCTwvbGk+DQoJCQkJDQoJCQ0KCQkJDQoJCQkJCQkJCQkJCQ0K CQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJPGxpICBpZD0iZ2xvYmFsLWpvYnMtMi1s aW5rIj4NCgkJPGEgaHJlZj0iI2dsb2JhbC1qb2JzLTIiIGNsYXNzPSJpbmFjdGl2 ZSI+VVNBPC9hPg0KCTwvbGk+DQoJCQkJDQoJCQk8L3VsPg0KDQoJPGRpdiBjbGFz cz0icGFuZS13cmFwcGVyIj4NCgkJCTxkaXYgaWQ9Imdsb2JhbC1qb2JzLTEiIGNs YXNzPSJnbG9iYWwtam9icy1wYW5lIHRhYi10b2dnbGUtcGFuZSI+DQoJCQkNCgkJ CQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJPGgzIGNsYXNzPSJqcy1oaWRlciI+VUs8 L2gzPg0KCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkgICAgDQoJCQkJDQoJDQoJ PGRpdiBjbGFzcz0iY2Fwc3VsZSBqb2JzYm94Ij4NCgkJDQoJDQoJDQoJCTxmb3Jt IGFjdGlvbj0iaHR0cDovL2pvYnMuZ3VhcmRpYW4uY28udWsvc2VhcmNoam9icy8i IG9uc3VibWl0PSJyZXR1cm4gZG9TZWFyY2hBbGxTdWJtaXRVSyggdGhpcyApOyI+ DQoJCTxmaWVsZHNldD4NCgkJICAgIAkJCSAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0 IiBjbGFzcz0idGV4dCBwbGFpbi1zZWFyY2giIGlkPSJmcmVldGV4dC1zZWFyY2hh bGxqb2JzIg0KCQkJICAgICAgCQkJICAgICAgbmFtZT0iZnJlZXRleHQiDQoJCQkg ICAgICAJCQkgICAgICB2YWx1ZT0iU2VhcmNoIGFsbCBqb2JzIiBvbkZvY3VzPSJ0 aGlzLnZhbHVlPScnOyIgLz4NCgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9ImtleXdvcmQiIGlkPSJrZXl3b3JkLXNlYXJjaGFsbGpvYnMiIHZhbHVlPSIi IC8+DQoJCQk8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiBuYW1l PSJnbyIgdmFsdWU9IkdvIiAvPg0KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFt ZT0iZ3VzcmMiIHZhbHVlPSJndV9qb2JzX2JveF9Db21tZW50IGlzIGZyZWUiIC8+ DQoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsaW5rIiB2YWx1ZT0iQ29t bWVudCBpcyBmcmVlX2pieF9nbyIgLz4NCgkJCQkJPC9maWVsZHNldD4NCgk8L2Zv cm0+CQkNCgkJDQoJCQkJCTxwIGNsYXNzPSJmaW5kLWEtam9iIj4NCgkJCQkJCQkJ CQkJCTxhIGhyZWY9Imh0dHA6Ly9qb2JzLmd1YXJkaWFuLmNvLnVrLz9ndXNyYz1n dV9qb2JzX2JveF9Db21tZW50IGlzIGZyZWUmbGluaz1Db21tZW50IGlzIGZyZWVf amJ4X2Jyc2VzZWMmSU5UQ01QPUlMQ05FV1RYVDE4MCIgPkJyb3dzZSBhbGwgam9i czwvYT4NCgkJCTwvcD4NCgkJCQkNCgkJDQoJCQ0KCQkJCQkJCQkJCQkJCQkJCQkJ CTx1bCAgY2xhc3M9ImpvYnMiPg0KCQkJCQkJCQkJCQkJCQkJPGxpIGNsYXNzPSJv ZGQiPjxoND4NCgkJCQkJCQk8YSAgaHJlZj0iaHR0cDovL2pvYnMuZ3VhcmRpYW4u Y28udWsvam9iLzk2NzkwNy9oZWFkLW9mLWludGVybmF0aW9uYWwtcHJvZ3JhbW1l cy1hbmQtcGFydG5lcnNoaXBzP1JTU1NlYXJjaD0wJmd1c3JjPWd1X2pvYnNfYm94 X0NvbW1lbnQgaXMgZnJlZSZsaW5rPUNvbW1lbnQgaXMgZnJlZV9qYnhfdmFjJklO VENNUD1JTENORVdUWFQxODAiID5IZWFkIG9mIEludGVybmF0aW9uYWwgUHJvZ3Jh bW1lcyAmIFBhcnRuZXJzaGlwczwvYT48L2g0Pg0KCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCTxwPjxzcGFuIGNsYXNzPSJlbXBsb3llciI+dHBwIG5vdCBmb3IgcHJvZml0 Ljwvc3Bhbj48L3A+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHA+PHNwYW4gY2xh c3M9ImxvY2F0aW9uIj5sb25kb24uPC9zcGFuPjwvcD4NCgkJCQkJCQkJCQkJCQkJ CQkJCQkJCQk8cD48c3BhbiBjbGFzcz0id2FnZSI+wqM0MDAwMCAtIMKjNDUwMDAg cGVyIGFubnVtLjwvc3Bhbj48L3A+DQoJCQkJCQkJCQkJCQkJPC9saT4NCgkJCQkJ CQkJCQkJPGxpPjxoND4NCgkJCQkJCQk8YSAgaHJlZj0iaHR0cDovL2pvYnMuZ3Vh cmRpYW4uY28udWsvam9iLzk2Njg0MS9wcm9ncmFtbWUtbGVhZGVycmVzZWFyY2gt ZmVsbG93LS10cmFkZS1yZWYtaWVkZzAyMTA/UlNTU2VhcmNoPTAmZ3VzcmM9Z3Vf am9ic19ib3hfQ29tbWVudCBpcyBmcmVlJmxpbms9Q29tbWVudCBpcyBmcmVlX2pi eF92YWMmSU5UQ01QPUlMQ05FV1RYVDE4MCIgPklFREcvMDIvMTA8L2E+PC9oND4N CgkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8cD48c3BhbiBjbGFzcz0iZW1wbG95ZXIi Pm92ZXJzZWFzIGRldmVsb3BtZW50IGluc3RpdHV0ZS48L3NwYW4+PC9wPg0KCQkJ CQkJCQkJCQkJCQkJCQkJCQkJCTxwPjxzcGFuIGNsYXNzPSJsb2NhdGlvbiI+Y2Vu dHJhbCBsb25kb24uPC9zcGFuPjwvcD4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8 cD48c3BhbiBjbGFzcz0id2FnZSI+wqM0Niw1MDkgLSDCozU3LDIwMSBwZXIgYW5u dW0uPC9zcGFuPjwvcD4NCgkJCQkJCQkJCQkJCQk8L2xpPg0KCQkJCQkJCQkJCQk8 bGkgY2xhc3M9Im9kZCI+PGg0Pg0KCQkJCQkJCTxhICBocmVmPSJodHRwOi8vam9i cy5ndWFyZGlhbi5jby51ay9qb2IvOTY2ODM3L3Jlc2VhcmNoLWZlbGxvdy0tYnVz aW5lc3MtYW5kLWRldmVsb3BtZW50LXJlZi1pZWRnMDExMD9SU1NTZWFyY2g9MCZn dXNyYz1ndV9qb2JzX2JveF9Db21tZW50IGlzIGZyZWUmbGluaz1Db21tZW50IGlz IGZyZWVfamJ4X3ZhYyZJTlRDTVA9SUxDTkVXVFhUMTgwIiA+SUVERy8wMS8xMDwv YT48L2g0Pg0KCQkJCQkJCQkJCQkJCQkJCQkJCQkJCTxwPjxzcGFuIGNsYXNzPSJl bXBsb3llciI+b3ZlcnNlYXMgZGV2ZWxvcG1lbnQgaW5zdGl0dXRlLjwvc3Bhbj48 L3A+DQoJCQkJCQkJCQkJCQkJCQkJCQkJCQkJPHA+PHNwYW4gY2xhc3M9ImxvY2F0 aW9uIj5jZW50cmFsIGxvbmRvbi48L3NwYW4+PC9wPg0KCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCTxwPjxzcGFuIGNsYXNzPSJ3YWdlIj7CozM2LDczNiAtIMKjNTcsMjAx IHBlciBhbm51bSBkZXBlbmRlbnQgdXBvbiBncmFkZS48L3NwYW4+PC9wPg0KCQkJ CQkJCQkJCQkJCTwvbGk+DQoJCQkJCQkJCQkJCQk8L3VsPgkJCQkJCQ0KCTxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgkvLzwhW0NEQVRBWw0KCQkNCgkJ ZnVuY3Rpb24gZG9TZWFyY2hBbGxTdWJtaXRVSyggZm9ybSApIHsNCgkJCXZhciBq b2JzU2VjdGlvblRvU2VhcmNoID0gJyc7DQoJCQl2YXIgZnJlZVRleHQgPSAnJzsN CgkJCXZhciBzZWFyY2hUZXh0RmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCggJ2ZyZWV0ZXh0LXNlYXJjaGFsbGpvYnMnICk7DQoJCQl2YXIga2V5d29yZEVs ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ2tleXdvcmQtc2VhcmNoYWxs am9icycgKTsNCgkJCQkgICAgDQoJCQl2YXIgaXNTZWN0aW9uU2VhcmNoID0gZnVu Y3Rpb24oKSB7IHJldHVybiBqb2JzU2VjdGlvblRvU2VhcmNoICE9ICcnOyB9DQoJ CQkNCgkJCXZhciB0ZXh0SXNNb2RpZmllZCA9IGZ1bmN0aW9uKCkgeyANCgkJCQlp ZiggaXNTZWN0aW9uU2VhcmNoKCkgKSB7DQoJCQkJCXJldHVybiAoIHNlYXJjaFRl eHRGaWVsZC52YWx1ZSAhPSAnU2VhcmNoIGFsbCAnICsgZnJlZVRleHQgKyAnIGpv YnMnICk7DQoJCQkJfQ0KCQkJCQkNCgkJCQlyZXR1cm4gKCBzZWFyY2hUZXh0Rmll bGQudmFsdWUgIT0gJ1NlYXJjaCBhbGwgam9icycgKTsNCgkJCX0NCgkJCQ0KCQkJ aWYoICF0ZXh0SXNNb2RpZmllZCgpICkgew0KCQkJCWtleXdvcmRFbGVtLnZhbHVl ID0gJyc7DQoJCQkJDQoJCQkJaWYoIGlzU2VjdGlvblNlYXJjaCgpICkgew0KCQkJ CQkJCQkJICAgICAgICBmb3JtLmFjdGlvbiA9ICdodHRwOi8vam9icy5ndWFyZGlh bi5jby51ay9qb2JzL251bGwnOw0KICAgIAkJCQkJCQkJCXJldHVybiB0cnVlOw0K CQkJCX0NCg0KCQkJCWZvcm0uYWN0aW9uID0gJ2h0dHA6Ly9qb2JzLmd1YXJkaWFu LmNvLnVrLyc7CQkJCQkNCgkJCQlyZXR1cm4gdHJ1ZTsJCQkJCQ0KCQkJfQ0KDQoJ CQlrZXl3b3JkRWxlbS52YWx1ZSA9IHNlYXJjaFRleHRGaWVsZC52YWx1ZTsNCgkJ CXJldHVybiB0cnVlOw0KCQl9DQoJCQkJCQkJCQkJCQ0KCS8vXV0+DQo8L3Njcmlw dD4JCQ0KCTwvZGl2Pg0KCQ0KCQ0KDQoJCQkJCQkNCgkJPC9kaXY+DQoJCQk8ZGl2 IGlkPSJnbG9iYWwtam9icy0yIiBjbGFzcz0iZ2xvYmFsLWpvYnMtcGFuZSB0YWIt dG9nZ2xlLXBhbmUgaW5pdGlhbGx5LW9mZiI+DQoJCQkNCgkJCQkJCQ0KCQkJCQkJ CQkJCQkJCQ0KCQkJPGgzIGNsYXNzPSJqcy1oaWRlciI+VVNBPC9oMz4NCgkJCQkJ CQ0KCQkJCQkJCQkJDQoJCQkJCQkJICAgIA0KCQkJCQ0KCQ0KCTxkaXYgY2xhc3M9 ImNhcHN1bGUgam9ic2JveCI+DQoJCQ0KCQ0KCQ0KCQk8Zm9ybSBhY3Rpb249Imh0 dHA6Ly93d3cuZ3VhcmRpYW5qb2JzLmNvbSIgb25zdWJtaXQ9InJldHVybiBkb1Nl YXJjaEFsbFN1Ym1pdFVTQSggdGhpcyApOyI+DQoJCTxmaWVsZHNldD4NCgkJICAg IAkJCSAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0idGV4dCBwbGFpbi1z ZWFyY2giIGlkPSJmcmVldGV4dC1zZWFyY2hhbGxqb2JzIg0KCQkJICAgICAgCQkJ ICAgICAgbmFtZT0icSINCgkJCSAgICAgIAkJCSAgICAgIHZhbHVlPSJTZWFyY2gg YWxsIGpvYnMiIG9uRm9jdXM9InRoaXMudmFsdWU9Jyc7IiAvPg0KCQkJCQkJPGlu cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ia2V5d29yZCIgaWQ9ImtleXdvcmQtc2Vh cmNoYWxsam9icyIgdmFsdWU9IiIgLz4NCgkJCTxpbnB1dCB0eXBlPSJzdWJtaXQi IGNsYXNzPSJzdWJtaXQiIG5hbWU9ImdvIiB2YWx1ZT0iR28iIC8+DQoJCQk8aW5w dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJndXNyYyIgdmFsdWU9Imd1X2pvYnNfYm94 X0NvbW1lbnQgaXMgZnJlZSIgLz4NCgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5h bWU9ImxpbmsiIHZhbHVlPSJDb21tZW50IGlzIGZyZWVfamJ4X2dvIiAvPg0KCQkJ CQk8L2ZpZWxkc2V0Pg0KCTwvZm9ybT4JCQ0KCQkNCgkJCQkJPHAgY2xhc3M9ImZp bmQtYS1qb2IiPg0KCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cDovL2pvYnMuZ3Vh cmRpYW4uY28udWsvP2d1c3JjPWd1X2pvYnNfYm94X0NvbW1lbnQgaXMgZnJlZSZs aW5rPUNvbW1lbnQgaXMgZnJlZV9qYnhfYnJzZXNlYyZJTlRDTVA9SUxDTkVXVFhU MTgwIiA+QnJvd3NlIGFsbCBqb2JzPC9hPg0KCQkJPC9wPg0KCQkJCQ0KCQkNCgkJ DQoJCQkJCQkJCTx0ZXh0YXJlYSBpZD0iam9icy1ib3gtdXNhLXRleHRhcmVhIiBz dHlsZT0iZGlzcGxheTpub25lOyI+CgkKCXtmb3IgcmVzdWx0IGluIHJlc3VsdHN9 CgkJPGxpPgoJCQk8aDQ+CgkJCQk8YSBocmVmPSIke3Jlc3VsdC51cmx9Ij4ke3Jl c3VsdC5qb2J0aXRsZX08L2E+CgkJCTwvaDQ+CgkJCTxwPgoJCQkJPHNwYW4gY2xh c3M9ImRlc2NyaXB0aW9uIj4keyByZXN1bHQuc25pcHBldCB9PC9zcGFuPgoJCQkJ PHNwYW4gY2xhc3M9ImxvY2F0aW9uIj4keyByZXN1bHQuc3RhdGUgfTwvc3Bhbj4K CQkJPC9wPgkKCQk8L2xpPgoJey9mb3J9CgkKPC90ZXh0YXJlYT4JCQk8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQkJLy88IVtDREFUQVsNCgkJCQkJ aWYgKHRydWUpIHsNCgkJCQkJdmFyIHVzZXJpcCA9ICc4MS44NS4yMjQuMjYnOw0K CQkJCQl2YXIgY291bnRyeSA9ICdsYm4nOw0KCQkJCQl2YXIgaXNVU0EgPSAoY291 bnRyeS50b0xvd2VyQ2FzZSgpID09ICd1c2EnKSA/IHRydWUgOiBmYWxzZTsNCgkJ CQkJdmFyIGpvYnNCb3hWaWV3ID0gbmV3IGd1YXJkaWFuLnIyLkpvYnNCb3hWaWV3 KCdqb2JzLWJveC11c2EnLCAnam9icy1ib3gtdXNhLXRleHRhcmVhJyk7DQoJCQkJ CXZhciBqb2JzQm94U2VydmljZSA9IG5ldyBndWFyZGlhbi5yMi5Kb2JzQm94U2Vy dmljZSgnJywgdXNlcmlwKTsgLyogY2F0ZWdvcnksIGxvY2F0aW9uICovDQoJCQkJ CXZhciBqb2JzQm94Q29udHJvbGxlciA9IG5ldyBndWFyZGlhbi5yMi5Kb2JzQm94 Q29udHJvbGxlcihqb2JzQm94Vmlldywgam9ic0JveFNlcnZpY2UsIGlzVVNBKTsg Ly92aWV3LCBzZXJ2aWNlLCBsb2NhdGlvbklzVVNBDQoJCQkJCX0NCgkJCQkvL11d Pg0KCQkJPC9zY3JpcHQ+DQoJCQkNCgkJCQkJCQkJCQkJCQkJPHVsIGlkPSJqb2Jz LWJveC11c2EiICBjbGFzcz0iam9icyI+DQoJCQkJCQkJCQk8bGkgY2xhc3M9Imph dmFzY3JpcHQtb24iPkxvYWRpbmcgam9icy4uLjwvbGk+DQoJCQkJCQkJPC91bD4J CQkJCQkJPHAgY2xhc3M9ImF0dHJpYnV0aW9uIGphdmFzY3JpcHQtb24iPjxhIGhy ZWY9Imh0dHA6Ly93d3cuaW5kZWVkLmNvbS8iPmpvYnM8L2E+IGJ5IDxhIHRpdGxl PSJKb2IgU2VhcmNoIiBocmVmPSJodHRwOi8vd3d3LmluZGVlZC5jb20vIj48aW1n IGFsdD0iSW5kZWVkIGpvYiBzZWFyY2giIHNyYz0iaHR0cDovL3N0YXRpYy5ndWlt LmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24vaW1hZ2VzL2ljb25fdXNqb2JzLmdp ZiIgd2lkdGg9IjU0IiBoZWlnaHQ9IjE5IiAvPjwvYT48L3A+DQoJCQkJCQkNCgk8 c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJLy88IVtDREFUQVsNCgkJ DQoJCWZ1bmN0aW9uIGRvU2VhcmNoQWxsU3VibWl0VVNBKCBmb3JtICkgew0KCQkJ dmFyIGpvYnNTZWN0aW9uVG9TZWFyY2ggPSAnJzsNCgkJCXZhciBmcmVlVGV4dCA9 ICcnOw0KCQkJdmFyIHNlYXJjaFRleHRGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCAnZnJlZXRleHQtc2VhcmNoYWxsam9icycgKTsNCgkJCXZhciBrZXl3 b3JkRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCAna2V5d29yZC1zZWFy Y2hhbGxqb2JzJyApOw0KCQkJCSAgICANCgkJCXZhciBpc1NlY3Rpb25TZWFyY2gg PSBmdW5jdGlvbigpIHsgcmV0dXJuIGpvYnNTZWN0aW9uVG9TZWFyY2ggIT0gJyc7 IH0NCgkJCQ0KCQkJdmFyIHRleHRJc01vZGlmaWVkID0gZnVuY3Rpb24oKSB7IA0K CQkJCWlmKCBpc1NlY3Rpb25TZWFyY2goKSApIHsNCgkJCQkJcmV0dXJuICggc2Vh cmNoVGV4dEZpZWxkLnZhbHVlICE9ICdTZWFyY2ggYWxsICcgKyBmcmVlVGV4dCAr ICcgam9icycgKTsNCgkJCQl9DQoJCQkJCQ0KCQkJCXJldHVybiAoIHNlYXJjaFRl eHRGaWVsZC52YWx1ZSAhPSAnU2VhcmNoIGFsbCBqb2JzJyApOw0KCQkJfQ0KCQkJ DQoJCQlpZiggIXRleHRJc01vZGlmaWVkKCkgKSB7DQoJCQkJa2V5d29yZEVsZW0u dmFsdWUgPSAnJzsNCgkJCQkNCgkJCQlpZiggaXNTZWN0aW9uU2VhcmNoKCkgKSB7 DQoJCQkJCQkJCQkgICAgCWZvcm0uYWN0aW9uID0gJ2h0dHA6Ly93d3cuZ3VhcmRp YW5qb2JzLmNvbSc7DQoJCQkJICAgIAkJCQkJcmV0dXJuIHRydWU7DQoJCQkJfQ0K DQoJCQkJZm9ybS5hY3Rpb24gPSAnaHR0cDovL3d3dy5ndWFyZGlhbmpvYnMuY29t JzsJCQkJCQ0KCQkJCXJldHVybiB0cnVlOwkJCQkJDQoJCQl9DQoNCgkJCWtleXdv cmRFbGVtLnZhbHVlID0gc2VhcmNoVGV4dEZpZWxkLnZhbHVlOw0KCQkJcmV0dXJu IHRydWU7DQoJCX0NCgkJCQkJCQkJCQkJDQoJLy9dXT4NCjwvc2NyaXB0PgkJDQoJ PC9kaXY+DQoJDQoJDQoNCgkJCQkJCQ0KCQk8L2Rpdj4NCgkJPC9kaXY+DQoJDQoN Cg0KCgoJPC9kaXY+CgoKCg0KCQkJCQkJCQkJDQoJCQkJCQkJICAgICAgICANCg0K ICAgICAgCSAgICAJICAgIA0KDQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoNCiAgICAg ICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQkJ DQoJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgDQogICAgDQoJDQoJCQ0K CQkJCQkJCQkJICAgIAkgICAgDQoNCg0KDQoNCg0KCQkNCgkJCQkJCQkNCg0KICAg ICAgICAJCQ0KCQkNCgkJCQkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJDQoJCQkJ CQkNCgkJCQkJCQkJCQkJICAgICAgICAgICAgICAgICAgICANCiAgICANCgkNCgkJ DQoJCQkJCQkJCQ0KCQ0KCQkNCgkJPGRpdiBpZD0iaW50cnVzaXZlIiBjbGFzcz0i aGlkZS1vbi1wb3B1cCI+DQoNCgkJDQoNCgkJCTxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0Ij4NCgkJCS8vPCFbQ0RBVEFbDQoJCQkJaWYgKHRydWUpIHsNCgkJ CQkJaWYgKGZhbHNlKSB7DQoJCQkJICAgICAgICAJDQoJCQ0KCSAgICB2YXIgdGhl c2VDb29raWVzID0gZG9jdW1lbnQuY29va2llOw0KCSAgICB2YXIgcG9zID0gdGhl c2VDb29raWVzLmluZGV4T2YoJ0dVREhUTUxBZHM9Jyk7DQoNCgkgICAgaWYgCShw b3MgPT0gLTEpIHsNCiAgICAgICAgICAgIHZhciBzZWNvbmRzID0gMTgwOw0KICAg ICAgICAgICAgdmFyIGV4cGlyZVRpbWUgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAg ICAgdmFyIGN1cnJlbnR0aW1laW5taWxscyA9IGV4cGlyZVRpbWUuZ2V0VGltZSgp Ow0KICAgICAgICAgICAgZXhwaXJlVGltZS5zZXRUaW1lKGN1cnJlbnR0aW1laW5t aWxscyArIHNlY29uZHMgKiAxMDAwICk7DQogICAgICAgICAgICBkb2N1bWVudC5j b29raWUgPSAnR1VESFRNTEFkcz1EdW1teTsgZXhwaXJlcz0nICsgZXhwaXJlVGlt ZS50b0dNVFN0cmluZygpICsgJyA7IHBhdGg9LyA7IGRvbWFpbj0uZ3VhcmRpYW4u Y28udWsnOw0KICAgICAgICAgICAgT0FTX0FEKCdQb3NpdGlvbjQnKTsNCiAgICAg ICAgfQ0KICAgCQkJCQl9IGVsc2Ugew0KCQkJCQkJDQoJCQ0KCQkNCgkgICAgICAg IA0KICAgICAgIAkNCiAgICAgICAgICAgICAgICANCiAgICAgICAgDQogICAgICAg IA0KCQkJCQkJYnVpbGRJbnRydXNpdmVBZCgnaHR0cDovL2Fkcy5ndWFyZGlhbi5j by51aycsICdzYXRlbGxpdGUnLCAnMTYxOTAzODk1NCcsICdnbG9iYWwlMjh0ZW1w Y29tbWVyY2lhbCUyOScsICclMkNMZWJhbm9uJTJCJTI4TmV3cyUyOSUyQ0dheSUy QnJpZ2h0cyUyQiUyOE5ld3MlMjklMkNNaWRkbGUlMkJFYXN0JTJCJTI4TmV3cyUy OSUyQ1dvcmxkJTJCbmV3cyUyQycsICclMjUyRmNvbW1lbnRpc2ZyZWUlMjUyRjIw MDklMjUyRmF1ZyUyNTJGMzElMjUyRmxlYmFub24tZ2F5LXJpZ2h0cycsICdDb21t ZW50aXNmcmVlJywgJ2Jsb2cnLCAnZmFsc2UnLCAnNDQxNjA2NicsICcnKTsNCgkJ CQkJCQkJfQ0KCQkJCX0NCgkJCS8vXV0+DQoJCQk8L3NjcmlwdD4NCgkJDQoNCgkJ PC9kaXY+DQoNCiAgICANCgkJCQkJCQkJCQ0KCQkJCQkJCSAgICAgICAgDQoNCg0K CQkJCQkJCQkJDQoJCQkJCQkJICAgICAgICANCg0KICAgICAgCSAgICAgIAkNCiAg ICAgIAkgICAgICAJCSAgICAJICAgIA0KDQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoN CiAgICAgICAgCQkNCgkJDQoJCQkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQ0K CQkJCQkJDQoJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgDQogICAgDQoJ DQoJCQ0KCQkJCQkJCQkJCQ0KDQoNCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj cmlwdCI+DQoNCmdvb2dsZV9hZF9jbGllbnQgPSAnY2EtZ3VhcmRpYW5fanMnOw0K Z29vZ2xlX2FkX2NoYW5uZWwgPSAnQ29tbWVudGlzZnJlZSc7DQo8L3NjcmlwdD4N Cg0KICAgIAkgICAgDQoNCg0KDQoNCg0KCQkNCgkJCQkJCQkNCg0KICAgICAgICAN Cg0KDQo8c2NyaXB0Pg0KDQpnb29nbGVfbWF4X251bV9hZHMgPSAnMyc7DQoNCjwv c2NyaXB0Pg0KCQkgICAgPGRpdiBpZD0iZ29vZ2xlLWFkcy1jb250YWluZXIiIGNs YXNzPSIgY29tcG9uZW50ICBjYXBzdWxlIGFkdmVydGlzZXItbGlua3MiIHN0eWxl PSJkaXNwbGF5OiBub25lOyI+PC9kaXY+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2 YXNjcmlwdCI+DQovLzwhW0NEQVRBWw0KCWlmICh0cnVlKSB7DQoJCQkgIHdyaXRl U2NyaXB0KCJodHRwOi8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFn ZWFkL3Nob3dfYWRzLmpzIiwgZmFsc2UsIGZ1bmN0aW9uKCl7fSk7DQoJfQ0KLy8g XV0+DQo8L3NjcmlwdD4NCg0KDQoNCgkJCQkJCQkJCQ0KCQkJCQkJCSAgICAgICAg DQoNCiAgICAgIAkNCgk8L2Rpdj4NCg0KCQkJICAgIA0KCSAgICANCg0KDQoJDQoJ CQ0KCQkNCgkJDQoJCTxkaXYgY2xhc3M9InJlbGF0ZWQtY29udGVudCI+DQoJCQkJ CQkJPGgzIGNsYXNzPSJmaXJzdCIgaWQ9InJlbGF0ZWRJbmZvcm1hdGlvbiI+UmVs YXRlZCBpbmZvcm1hdGlvbjwvaDM+DQoJCQkJPGRpdiBpZD0ia2V5d29yZC1ydWxl LXdyYXBwZXIiPg0KCQkJCQkgICAgCgoKICAgICAgICAgICAgCgk8ZGl2IGNsYXNz PSJyZWxhdGVkbGlua3MiIGNsYXNzPSJjYXBzdWxlIj4KCQkKCQkJCQkJCQoJCQkJ CTxoMyBjbGFzcz0nZmlyc3QnPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4u Y28udWsvd29ybGQiID5Xb3JsZCBuZXdzPC9hPjwvaDM+CgkJCQkJCgkJCQkJCTx1 bCBjbGFzcz0icmVsYXRlZGxpbmtzLWtleXdvcmRzIj4KCQkJCQkJPGxpPgoJCQkJ CQkJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L3dvcmxkL2xlYmFub24iICByZWw9InRhZyI+TGViYW5vbjwvYT4gJm1pZGRvdDsJ CQkJCQkJCQkJCQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJCQkJCQkJ CQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93b3JsZC9nYXkt cmlnaHRzIiAgcmVsPSJ0YWciPkdheSByaWdodHM8L2E+ICZtaWRkb3Q7CQkJCQkJ CQkJCQkJCQkJPC9saT4KCQkJCQkJCQk8bGk+CgkJCQkJCQkJCQkJCQkJCQkJCTxh IGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvd29ybGQvbWlkZGxlZWFz dCIgIHJlbD0idGFnIj5NaWRkbGUgRWFzdDwvYT4gCQkJCQkJCQkJCQkJCQkJPC9s aT4KCQkJCTwvdWw+CgkJCQkKCQkKCQoJCjwvZGl2PgoKDQoJCQkJCSAgICAJICAg IA0KDQoNCg0KDQoNCgkJDQoJCQkJCQkJDQoNCiAgICAgICAgCQkNCgkJDQoJCQkJ CQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJCQkJCSAg ICAgICAgICAgICAgICAgICAgDQogICAgDQoJDQoJCQ0KCQkJCQkJCQkNCgkgICAg CgoKICAgICAgICAgICAgCgk8ZGl2IGNsYXNzPSJyZWxhdGVkbGlua3MiIGNsYXNz PSJjYXBzdWxlIj4KCQkJPGgzIGNsYXNzPSJjb21iaW5lci1tb3JlLW9uIGZpcnN0 Ij5Nb3JlIGZyb20gPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9j b21tZW50aXNmcmVlIiA+Q29tbWVudCBpcyBmcmVlPC9hPiBvbjwvaDM+CgkJCgkJ CQkJCQkKCQkJCQk8aDMgY2xhc3M9J2ZpcnN0Jz5Xb3JsZCBuZXdzPC9oMz4KCQkJ CQkKCQkJCQkJPHVsIGNsYXNzPSJyZWxhdGVkbGlua3Mta2V5d29yZHMiPgoJCQkJ CQk8bGk+CgkJCQkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3Vh cmRpYW4uY28udWsvY29tbWVudGlzZnJlZS9jb21tZW50aXNmcmVlK3dvcmxkL2xl YmFub24iICByZWw9InRhZyI+TGViYW5vbjwvYT4gJm1pZGRvdDsJCQkJCQkJCQkJ CQkJCQk8L2xpPgoJCQkJCQkJCTxsaT4KCQkJCQkJCQkJCQkJCQkJCQkJPGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVlL2NvbW1l bnRpc2ZyZWUrd29ybGQvZ2F5LXJpZ2h0cyIgIHJlbD0idGFnIj5HYXkgcmlnaHRz PC9hPiAmbWlkZG90OwkJCQkJCQkJCQkJCQkJCTwvbGk+CgkJCQkJCQkJPGxpPgoJ CQkJCQkJCQkJCQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrL2NvbW1lbnRpc2ZyZWUvY29tbWVudGlzZnJlZSt3b3JsZC9taWRkbGVlYXN0 IiAgcmVsPSJ0YWciPk1pZGRsZSBFYXN0PC9hPiAJCQkJCQkJCQkJCQkJCQk8L2xp PgoJCQkJPC91bD4KCQkJCQoJCQoJCQkJCQoJCQoJCQkJCgkJCQkJCQkKCQoJCjwv ZGl2PgoKDQoNCgkJCQkJCQkJCQ0KCQkJCQkJCSAgICAgICAgDQoNCgkJCQkJCQkJ CTwvZGl2Pg0KCQkJCQ0KCQkJDQoJCQkJCQk8ZGl2IGNsYXNzPSJyZWxhdGVkLWl0 ZW0iPg0KCQkJDQoJCQkJCQkJCQkJCQkJCQkJCQkJCQk8cCBjbGFzcz0idGh1bWIi Pg0KCQkJCQkJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28u dWsvd29ybGQvZ2FsbGVyeS8yMDA5L2F1Zy8xNy9pc3JhZWwtbWlkZGxlZWFzdCIg b25jbGljaz0icmV0dXJuIG9wZW5HYWxsZXJ5UG9wdXAoJ2h0dHA6Ly93d3cuZ3Vh cmRpYW4uY28udWsvd29ybGQvZ2FsbGVyeS8yMDA5L2F1Zy8xNy9pc3JhZWwtbWlk ZGxlZWFzdCcsIDc5Nik7IiAgPg0KCQkJCQkJCQkJCQkJPGltZyBzcmM9Imh0dHA6 Ly9zdGF0aWMuZ3VpbS5jby51ay9zeXMtaW1hZ2VzL0d1YXJkaWFuL1BpeC9waWN0 dXJlcy8yMDA5LzgvMTQvMTI1MDI2MjAzODIyMS9BLVBhbGVzdGluaWFuLXlvdXRo LXN0YW5kLTAwMy5qcGciIGFsdD0iQSBQYWxlc3RpbmlhbiB5b3V0aCBzdGFuZHMg aW4gZnJvbnQgb2YgYSBidXJuaW5nIHZlaGljbGUgZHVyaW5nIGNsYXNoZXMgaW4g R2F6YSBDaXR5LCAyMDA3LiIgLz48L2E+DQoJCQkJCTwvcD4NCgkJCQkJCQkJPHAg Y2xhc3M9Imxpbmt0ZXh0ICI+DQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJ PGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93b3JsZC9nYWxsZXJ5 LzIwMDkvYXVnLzE3L2lzcmFlbC1taWRkbGVlYXN0IiBvbmNsaWNrPSJyZXR1cm4g b3BlbkdhbGxlcnlQb3B1cCgnaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93b3Js ZC9nYWxsZXJ5LzIwMDkvYXVnLzE3L2lzcmFlbC1taWRkbGVlYXN0JywgNzk2KTsi ICA+VGhlIEFyYWItSXNyYWVsaSBjb25mbGljdDwvYT4NCgkJCQkJCTxwIGNsYXNz PSJ0cmFpbHRleHQiPgkNCgkJCQkJCQkgICAgDQoNCgkJDQoNCg0KCQkJCQkJCQkJ CSAgICAgICAgICAgICAgICAgICAgCQk8c3BhbiBjbGFzcz0iZGF0ZSI+MTcgQXVn IDIwMDk6IDwvc3Bhbj4NCgkJICAgICAgICAgICAgICAgICAgICAJCQkJCQkJCSA8 cD5BIGJyaWVmIGhpc3Rvcnkgb2YgdGhlIGtleSBldmVudHMgYW5kIHBlb3BsZSB0 aGF0IHNoYXBlZCB0aGUgQXJhYi1Jc3JhZWxpIGNvbmZsaWN0PC9wPg0KCQkJCQkg CTwvcD4NCgkJCQkJIAkJCQkJCSAJCQkJCQkJPGRpdiBjbGFzcz0icmVsYXRlZC1m b290ZXIiPgkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ii9pbnBpY3R1 cmVzIiA+TW9yZSBnYWxsZXJpZXM8L2E+DQoJCQkJCQkJCQkJCQkJPC9kaXY+CQ0K CQkJCQkJCQkJCQkJDQoJCQkJCQkJCQk8L3A+CQkJCQ0KCQkJCQkJCTwvZGl2Pg0K DQoJCQkJCQk8ZGl2IGNsYXNzPSJyZWxhdGVkLWl0ZW0gbXVsdGkiPg0KCQkJDQoJ CQkJCQkJCQkJCQkJPGg1IGNsYXNzPSJkYXRlIj4NCgkJCQkyOCBKdWwgMjAwNjwv aDU+DQoJCQkJCQkJCQkJPHAgY2xhc3M9Imxpbmt0ZXh0Ij4NCgkJCQkJCQkJCQkJ CQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY29tbWVudGlz ZnJlZS8yMDA2L2p1bC8yOC9pc3JhZWwuc3lyaWEiID4NCgkJCQkJCSAgICANCg0K CQkNCg0KDQoJCQkJCQlKb25hdGhhbiBTdGVlbGU6IE9ubHkgSGl6YnVsbGFoIGNh biBkZWZlbmQgYWdhaW5zdCBhbiBJc3JhZWxpIGludmFzaW9uPC9hPg0KCQkJCTwv cD4gDQoJCQkJCQkJCQkJCQkJCQkJCQk8aDUgY2xhc3M9ImRhdGUiPg0KCQkJCTI1 IEp1bCAyMDA2PC9oNT4NCgkJCQkJCQkJCQk8cCBjbGFzcz0ibGlua3RleHQiPg0K CQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51 ay93b3JsZC8yMDA2L2p1bC8yNS9zeXJpYS5pc3JhZWxhbmR0aGVwYWxlc3Rpbmlh bnMxIiA+DQoJCQkJCQkgICAgDQoNCgkJDQoNCg0KCQkJCQkJSXNyYWVsIHNheXMg YW55IGRlYWwgbXVzdCBpbmNsdWRlIGJsb2NrICBvbiBTeXJpYSBzdXBwbHlpbmcg YXJtcyB0byBIaXpidWxsYWg8L2E+DQoJCQkJPC9wPiANCgkJCQkJCQkJCQkJCQkJ CQkJCTxoNSBjbGFzcz0iZGF0ZSI+DQoJCQkJMTIgSnVsIDIwMDY8L2g1Pg0KCQkJ CQkJCQkJCTxwIGNsYXNzPSJsaW5rdGV4dCI+DQoJCQkJCQkJCQkJCQkJCQk8YSBo cmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3dvcmxkLzIwMDYvanVsLzEy L2lzcmFlbGFuZHRoZXBhbGVzdGluaWFucy5sZWJhbm9uIiA+DQoJCQkJCQkgICAg DQoNCgkJDQoNCg0KCQkJCQkJSXNyYWVsaXMgaW52YWRlIExlYmFub24gYWZ0ZXIg c29sZGllcnMgYXJlIHNlaXplZDwvYT4NCgkJCQk8L3A+IA0KCQkJCQkJCQkJCQkJ CQkJCQkJPGg1IGNsYXNzPSJkYXRlIj4NCgkJCQk2IE1hciAyMDAwPC9oNT4NCgkJ CQkJCQkJCQk8cCBjbGFzcz0ibGlua3RleHQiPg0KCQkJCQkJCQkJCQkJCQkJPGEg aHJlZj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay93b3JsZC8yMDAwL21hci8w Ni9pc3JhZWxhbmR0aGVwYWxlc3RpbmlhbnMubGViYW5vbiIgPg0KCQkJCQkJICAg IA0KDQoJCQ0KDQoNCgkJCQkJCUJhcmFrJ3MgY2FiaW5ldCB2b3RlcyB0byBsZWF2 ZSBMZWJhbm9uIGJ5IEp1bHk8L2E+DQoJCQkJPC9wPiANCgkJCQkJCQk8L2Rpdj4N Cg0KCQkJCQkJPGRpdiBjbGFzcz0icmVsYXRlZC1pdGVtIGxhc3QiPg0KCQkJDQoJ CQkJCQkJCQkJCQkJCQkJCQkJCQk8cCBjbGFzcz0idGh1bWIiPg0KCQkJCQkJCQkJ CQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvbmV3cy92aWRl by8yMDA4L2phbi8yNS9iZWlydXQuYm9tYiIgdGl0bGU9IlZpZGVvIHdpbGwgc3Rh cnQgYXV0b21hdGljYWxseSBvbiB0aGlzIHBhZ2UiICA+DQoJCQkJCQkJCQkJCQk8 aW1nIHNyYz0iaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N5cy1pbWFnZXMvR3Vh cmRpYW4vUGl4L3BpY3R1cmVzLzIwMDgvMDEvMjUvYmVpcnV0X2Nhcl90aHVtYi5q cGciIGFsdD0iYmVpcnV0IiAvPjwvYT4NCgkJCQkJPC9wPg0KCQkJCQkJCQk8cCBj bGFzcz0ibGlua3RleHQgIj4NCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8 YSBocmVmPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL25ld3MvdmlkZW8vMjAw OC9qYW4vMjUvYmVpcnV0LmJvbWIiIHRpdGxlPSJWaWRlbyB3aWxsIHN0YXJ0IGF1 dG9tYXRpY2FsbHkgb24gdGhpcyBwYWdlIiAgPkJlaXJ1dCBib21iIGtpbGxzIGZp dmU8L2E+DQoJCQkJCQk8cCBjbGFzcz0idHJhaWx0ZXh0Ij4JDQoJCQkJCQkJICAg IA0KDQoJCQ0KDQoNCgkJCQkJCQkJCQkgICAgICAgICAgICAgICAgICAgIAkJPHNw YW4gY2xhc3M9ImRhdGUiPjI1IEphbiAyMDA4OiA8L3NwYW4+DQoJCSAgICAgICAg ICAgICAgICAgICAgCQkJCQkJCQkgQW4gZXhwbG9zaW9uIGluIGEgQ2hyaXN0aWFu IHN1YnVyYiBvZiBlYXN0IEJlaXJ1dCBraWxsZWQgYXQgbGVhc3QgZml2ZSBwZW9w bGUgaW5jbHVkaW5nIGEgcHJvbWluZW50IHBvbGljZSBvZmZpY2VyDQoJCQkJCSAJ PC9wPg0KCQkJCQkgCQkJCQkJIAkJCQkJCQk8ZGl2IGNsYXNzPSJyZWxhdGVkLWZv b3RlciI+CQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJPGEgaHJlZj0iL3ZpZGVvIiA+ TW9yZSB2aWRlbzwvYT4NCgkJCQkJCQkJCQkJCQk8L2Rpdj4JDQoJCQkJCQkJCQkJ CQkNCgkJCQkJCQkJCTwvcD4JCQkJDQoJCQkJCQkJPC9kaXY+DQoNCgkJCQ0KCQk8 L2Rpdj4NCgkJDQoJCQkJDQoJDQoNCg0KCQkNCg0KDQoJCQkgICAgDQoJICAgIA0K CQ0KCSAgICAgICAgICAgIA0KDQoNCjxkaXYgaWQ9ImZvb3RlciIgY2xhc3M9ImNv bW1lbnQgZm9vdGVyIGI0Ij4NCiAgICA8dWwgaWQ9ImZvb3Rlci1saW5rcyI+CQkJ DQogICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc3luZGljYXRpb24uZ3VhcmRp YW4uY28udWsvIiA+TGljZW5zZS9idXkgb3VyIGNvbnRlbnQ8L2E+IHwgPC9saT4N CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9Vc2Vycy9oZWxwL2FydGljbGUvMCwsOTMz OTA1LDAwLmh0bWwiID5Qcml2YWN5IHBvbGljeTwvYT4gfCA8L2xpPg0KICAgICAg ICA8bGk+PGEgaHJlZj0iL1VzZXJzL2hlbHAvYXJ0aWNsZS8wLCw5MzM5MDksMDAu aHRtbCIgPlRlcm1zICZhbXA7IGNvbmRpdGlvbnM8L2E+IHwgPC9saT4NCiAgICAg ICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9hZGluZm8tZ3VhcmRpYW4uY28udWsvIiA+ QWR2ZXJ0aXNpbmcgZ3VpZGU8L2E+IHwgPC9saT4NCiAgICAgICAgPGxpPjxhIGhy ZWY9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvaGVscC9hY2Nlc3NpYmlsaXR5 IiA+QWNjZXNzaWJpbGl0eTwvYT4gfCA8L2xpPg0KICAgICAgICA8bGk+PGEgaHJl Zj0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9pbmRleC9zdWJqZWN0cy9hIiA+ QS1aIGluZGV4PC9hPiB8IDwvbGk+DQogICAgICAgIDxsaT48YSBocmVmPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2hlbHAvaW5zaWRlZ3VhcmRpYW4iID5JbnNp ZGUgZ3VhcmRpYW4uY28udWsgYmxvZzwvYT4gfCA8L2xpPg0KICAgICAgICA8bGk+ PGEgaHJlZj0iL0d1YXJkaWFuL2luZm9ybWF0aW9uLzAsLDcxMTg1MywwMC5odG1s IiA+QWJvdXQgZ3VhcmRpYW4uY28udWs8L2E+IHwgPC9saT4NCiAgICAgICAgPGxp PjxhIGhyZWY9Imh0dHA6Ly9kYXRpbmcuZ3VhcmRpYW4uY28udWsvcy8iID5Kb2lu IG91ciBkYXRpbmcgc2l0ZSB0b2RheTwvYT48L2xpPg0KICAgIDwvdWw+DQogICAg DQogICAgICAgIA0KICAgIDx1bCBpZD0iY29weXJpZ2h0LWxpbmtzIj4JCQ0KICAg ICAgICA8bGk+Z3VhcmRpYW4uY28udWsgJmNvcHk7IEd1YXJkaWFuIE5ld3MgYW5k IE1lZGlhIExpbWl0ZWQgMjAxMDwvbGk+DQogICAgICAgICAgICA8L3VsPg0KCQkJ DQoJPCEtLSBlbmQgZm9vdGVyTGlua3MgLS0+DQoJCQkgICAgDQoNCg0KDQoJDQoN Cgk8Zm9ybSBpZD0ic2VjdGlvbi1zZWxlY3RvciIgbWV0aG9kPSJwb3N0IiBhY3Rp b249Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvcmVkaXJlY3QvMSwsLDAwLmh0 bWwiPg0KDQoJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJCQkNCgkJCQkJ CTxmaWVsZHNldD4NCgkJCQkJCQkJCQkJCQkJCQkJCQkJCQk8bGFiZWwgZm9yPSJn by10byI+R28gdG86IDwvbGFiZWw+CQ0KCQkJCQkJCQkJCQkJCQk8c2VsZWN0IGlk PSJnby10byIgbmFtZT0iVXJsIj4NCg0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4u Y28udWsiPmd1YXJkaWFuLmNvLnVrIGhvbWU8L29wdGlvbj4NCgkJCQkJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8 b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3VrIj5VSyBu ZXdzPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0K CQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3 dy5ndWFyZGlhbi5jby51ay93b3JsZCI+V29ybGQgbmV3czwvb3B0aW9uPg0KCQkJ CQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly9jb21tZW50aXNmcmVlLmd1YXJk aWFuLmNvLnVrL2luZGV4Lmh0bWw/Z3VzcmM9Z3BkIj5Db21tZW50IGlzIGZyZWUg YmxvZzwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkN CgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93 d3cuZ3VhcmRpYW4uY28udWsvbmV3cy9ibG9nIj5OZXdzYmxvZzwvb3B0aW9uPg0K CQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJ CQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28u dWsvc3BvcnQvYmxvZyI+U3BvcnQgYmxvZzwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJ CQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxv cHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY3VsdHVyZS9j dWx0dXJlYmxvZ3Mvcm91bmR1cCI+QXJ0cyAmYW1wOyBFbnRlcnRhaW5tZW50IGJs b2c8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJ CQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL2F1ZGlvIj5BdWRpbyAmYW1wOyBwb2RjYXN0czwvb3B0 aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJ CQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRp YW4uY28udWsvaW5waWN0dXJlcyI+SW4gcGljdHVyZXM8L29wdGlvbj4NCgkJCQkJ CQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJ CQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Zp ZGVvIj5WaWRlbzwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkN CgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0K CQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vYnJvd3NlLmd1 YXJkaWFuLmNvLnVrL3NlYXJjaCI+QXJjaGl2ZSBzZWFyY2g8L29wdGlvbj4NCgkJ CQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJ CQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVr L2N1bHR1cmUiPkFydHMgJmFtcDsgZW50ZXJ0YWlubWVudDwvb3B0aW9uPg0KCQkJ CQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv Ym9va3MiPkJvb2tzPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJ CQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0i aHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9idXNpbmVzcyI+QnVzaW5lc3M8L29w dGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJk aWFuLmNvLnVrL2VkdWNhdGlvbiI+RWR1Y2F0aW9uR3VhcmRpYW4uY28udWs8L29w dGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJk aWFuLmNvLnVrL2Vudmlyb25tZW50Ij5FbnZpcm9ubWVudDwvb3B0aW9uPg0KCQkJ CQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv ZmlsbSI+RmlsbTwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkN CgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0 dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvZm9vdGJhbGwiPkZvb3RiYWxsPC9vcHRp b24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJ CQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL2pvYnMuZ3VhcmRp YW4uY28udWsvIj5Kb2JzPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJ CQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1 ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9rYXRpbmUiPkthdGluZSBhcHBl YWw8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJ CQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL2xpZmVhbmRzdHlsZSI+TGlmZSAmYW1wOyBzdHlsZTwv b3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJ DQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3Vh cmRpYW4uY28udWsvbWVkaWEiPk1lZGlhR3VhcmRpYW4uY28udWs8L29wdGlvbj4N CgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJ CQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrL21vbmV5Ij5Nb25leTwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFs dWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvbXVzaWMiPk11c2ljPC9vcHRp b24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJ CQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL29ic2VydmVyLmd1 YXJkaWFuLmNvLnVrIj5UaGUgT2JzZXJ2ZXI8L29wdGlvbj4NCgkJCQkJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8 b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3BvbGl0aWNz Ij5Qb2xpdGljczwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkN CgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0 dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvc2NpZW5jZSI+U2NpZW5jZTwvb3B0aW9u Pg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJ CQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4u Y28udWsvbGlmZWFuZHN0eWxlL3Nob3BwaW5nIj5TaG9wcGluZzwvb3B0aW9uPg0K CQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJ CQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28u dWsvc29jaWV0eSI+U29jaWV0eUd1YXJkaWFuLmNvLnVrPC9vcHRpb24+DQoJCQkJ CQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJ CQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9z cG9ydCI+U3BvcnQ8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJ DQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJo dHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2luZGV4L3RhbGsvMCwsLDAwLmh0bWw/ Z3VzcmM9Z3BkIj5UYWxrPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJ CQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1 ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay90ZWNobm9sb2d5Ij5UZWNobm9s b2d5PC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0K CQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3 dy5ndWFyZGlhbi5jby51ay90cmF2ZWwiPlRyYXZlbDwvb3B0aW9uPg0KCQkJCQkJ CQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJ CQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuaXZlYmVlbnRoZXJlLmNvLnVr Lz9ndXNyYz1ncGQiPkJlZW4gdGhlcmU8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJ CQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFs dWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvc3Vic2NyaXB0aW9uLXNlcnZp Y2VzIj5TdWJzY3JpcHRpb24gc2VydmljZXM8L29wdGlvbj4NCgkJCQkJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8 b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2VtYWlsc2Vy dmljZXMvMCwsMTM2ODQ2MCwwMC5odG1sIj5FbWFpbCBzZXJ2aWNlczwvb3B0aW9u Pg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJ CQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4u Y28udWsvaW5kZXgvc3ViamVjdHMvYSI+U3BlY2lhbCByZXBvcnRzPC9vcHRpb24+ DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJ CQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay90aGVndWFyZGlhbiI+VGhlIEd1YXJkaWFuPC9vcHRpb24+DQoJCQkJCQkJ CQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJ CQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91ay9z ZXJpZXMvbm9ydGhlcm5lciI+VGhlIE5vcnRoZXJuZXI8L29wdGlvbj4NCgkJCQkJ CQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJ CQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL25l d3Mvc2VyaWVzL3dyYXAiPlRoZSBXcmFwPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJ CQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJ CQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZh bHVlPSJodHRwOi8vYWRpbmZvLWd1YXJkaWFuLmNvLnVrLz9ndXNyYz1ncGQiPkFk dmVydGlzaW5nIGd1aWRlPC9vcHRpb24+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJ CQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1 ZT0iaHR0cDovL3d3dy5vZ2VudGVycHJpc2VzLmNvLnVrLz9ndXNyYz1ncGQiPkNv bXBhcmUgZmluYW5jZSBwcm9kdWN0czwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJ CQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRp b24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvY3Jvc3N3b3JkLzAs LCwwMC5odG1sP2d1c3JjPWdwZCI+Q3Jvc3N3b3JkPC9vcHRpb24+DQoJCQkJCQkJ CQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJCQkJCQkJ CQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9mZWVk YmFjay8wLCwsMDAuaHRtbD9ndXNyYz1ncGQiPkZlZWRiYWNrPC9vcHRpb24+DQoJ CQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJ CQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbmdhcmRl bmNlbnRyZS5jby51ay8/Z3VzcmM9Z3BkIj5HYXJkZW4gY2VudHJlPC9vcHRpb24+ DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJ CQkJCQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5j by51ay9wcmVzc29mZmljZS8wLCwsMDAuaHRtbD9ndXNyYz1ncGQiPkdOTSBQcmVz cyBPZmZpY2U8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJ CQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRw Oi8vd3d3Lmd1YXJkaWFuLmNvLnVrL2dyYWR1YXRlLzAsLDE3Nzc1NDUsMDAuaHRt bCI+R3JhZHVhdGU8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJ DQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJo dHRwOi8vd3d3Lmd1YXJkaWFuYm9va3Nob3AuY28udWsvQmVydGVTaG9wV2ViL2hv bWUuZG8/Z3VzcmM9Z3BkIj5Cb29rc2hvcDwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJ CQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxv cHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW5lY29zdG9yZS5jby51ay9n dWFyZGlhbi9kZWZhdWx0LmFzcHg/Z3VzcmM9Z3BkIj5HdWFyZGlhbiBFY29zdG9y ZTwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJ CQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvbmV3cy9ndWFyZGlhbmZpbG1zIj5HdWFyZGlhbiBGaWxt czwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJ CQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cu Z3VhcmRpYW4uY28udWsvaGVhZGxpbmVzZXJ2aWNlLzAsLCwwMC5odG1sP2d1c3Jj PWdwZCI+SGVhZGxpbmUgc2VydmljZTwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJ CQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRp b24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvZ3VfY29udGFjdHMv MCwsMTgwNzY3LDAwLmh0bWwiPkhlbHAgLyBjb250YWN0czwvb3B0aW9uPg0KCQkJ CQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJ CQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsv aW5mb3JtYXRpb24vMCwsLDAwLmh0bWw/Z3VzcmM9Z3BkIj5JbmZvcm1hdGlvbjwv b3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJ DQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3Vh cmRpYW4uY28udWsvdmFsdWVzLzAsLCwwMC5odG1sP2d1c3JjPWdwZCI+TGl2aW5n IG91ciB2YWx1ZXM8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJ DQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJo dHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL25ld3Nyb29tLzAsLCwwMC5odG1sP2d1 c3JjPWdwZCI+TmV3c3Jvb208L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJ CQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZh bHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL25vdGVzYW5kcXVlcmllcy8w LCwsMDAuaHRtbD9ndXNyYz1ncGQiPk5vdGVzICZhbXA7IFF1ZXJpZXM8L29wdGlv bj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJ CQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFu LmNvLnVrL3Byb21vdGlvbnMiPlByb21vdGlvbnM8L29wdGlvbj4NCgkJCQkJCQkJ CQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJ CQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lmd1YXJkaWFub2ZmZXJzLmNvLnVr L21hbGwvR3VhcmRpYW5PZmZlcnMvP2d1c3JjPWdwZCI+UmVhZGVyIE9mZmVyczwv b3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJ DQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3Vh cmRpYW4uY28udWsvdGhlZ3VhcmRpYW4vcGFnZS9yZWFkZXJzZWRpdG9yIj5SZWFk ZXJzJyBlZGl0b3I8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJ DQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJo dHRwOi8vZGF0aW5nLmd1YXJkaWFuLmNvLnVrL3MvP2d1c3JjPWdwZCI+U291bG1h dGVzIGRhdGluZzwvb3B0aW9uPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkN CgkJCQkNCgkJCQkJDQoJCQkJCQkJCQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0 dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvc3R5bGVndWlkZSI+U3R5bGUgZ3VpZGU8 L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJ CQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vc3luZGlj YXRpb24uZ3VhcmRpYW4uY28udWsvP2d1c3JjPWdwZCI+U3luZGljYXRpb24gc2Vy dmljZXM8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJ DQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrL3RyYXZlbC9ib29rYXRyaXAiPlRyYXZlbCBvZmZl cnM8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJ CQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3 Lmd1YXJkaWFuLmNvLnVrL1RWLzAsLCwwMC5odG1sP2d1c3JjPWdwZCI+VFYgbGlz dGluZ3M8L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJ DQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8v d3d3Lmd1YXJkaWFuLmNvLnVrL3dlYXRoZXIiPldlYXRoZXI8L29wdGlvbj4NCgkJ CQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJ CQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3LmdubWNhcmVlcnMuY28u dWsvZmUvdHBsX0d1YXJkaWFuTmV3czAxLmFzcCI+V29ya2luZyBmb3IgdXM8L29w dGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0K CQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQkNCgkJCQkNCgkJCQkJDQoJCQkJCQkJ CQkJCQkJCQkJCTxvcHRpb24gdmFsdWU9Imh0dHA6Ly93d3cuZ3VhcmRpYW53ZWVr bHkuY28udWsvP2d1c3JjPWdwZCI+R3VhcmRpYW4gV2Vla2x5PC9vcHRpb24+DQoJ CQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQ0KCQkJCQkNCgkJCQkJCQkJ CQkJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iaHR0cDovL3d3dy5ndWFyZGlhbi5jby51 ay9wdWJsaWMvMCwsLDAwLmh0bWw/Z3VzcmM9Z3BkIj5QdWJsaWM8L29wdGlvbj4N CgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJ CQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3LmxlYXJudGhpbmdz LmNvLnVrLyI+TGVhcm48L29wdGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJ CQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVl PSJodHRwOi8vd3d3Lmd1YXJkaWFuLmJhY2tpc3N1ZW5ld3NwYXBlcnMuY28udWsv ZGVmYXVsdC5hc3B4P2d1c3JjPWdwZCI+R3VhcmRpYW4gYmFjayBpc3N1ZXM8L29w dGlvbj4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJCQk8b3B0aW9uIHZhbHVlPSJodHRwOi8vd3d3Lm9ic2Vy dmVyLmJhY2tpc3N1ZW5ld3NwYXBlcnMuY28udWsvZGVmYXVsdC5hc3B4P2d1c3Jj PWdwZCI+T2JzZXJ2ZXIgYmFjayBpc3N1ZXM8L29wdGlvbj4NCgkJCQkJCQkJCQ0K CQkJCQkJCQkJCQkJCQkJDQoJCQkJDQoJCQkJCQ0KCQkJCQkJCQkJCQkJCQkJCQk8 b3B0aW9uIHZhbHVlPSJodHRwOi8vZ3VhcmRpYW5wcm9mZXNzaW9uYWwuY28udWsv P2d1c3JjPWdwZCI+R3VhcmRpYW4gUHJvZmVzc2lvbmFsPC9vcHRpb24+DQoJCQkJ CQkJCQkNCgkJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8L3NlbGVjdD4N CgkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyIgLz4NCgkJPC9maWVs ZHNldD4NCgk8L2Zvcm0+DQoNCgk8L2Rpdj4NCg0KICAgIAkgICAgDQoNCg0KDQoN Cg0KCQkNCgkJCQkJCQkNCg0KICAgICAgICANCg0KDQoNCjwvZGl2Pg0KCSAgICAN Cg0KCQkNCg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3Vh Z2U9ImphdmFzY3JpcHQiPg0KCXZhciBjb21tZW50UmVjb21tZW5kaW5nQ2xvc2Vk ID0gIHRydWUgPC9zY3JpcHQ+DQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz Y3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCi8vCTwhW0NEQVRBWw0KaWYg KHRydWUpIHsNCglzZXJ2ZXJVcmwgPSAiaHR0cDovL3NpdGVsaWZlLmd1YXJkaWFu LmNvLnVrL3ZlcjEuMC9EaXJlY3QvUHJvY2VzcyI7DQoNCiAgICB3cml0ZVNjcmlw dCgnaHR0cDovL3N0YXRpYy5ndWltLmNvLnVrL3N0YXRpYy84NjY2OS9jb21tb24v c2NyaXB0cy9zZXJ2ZXJzaWRlcGx1Y2suanMnLCBmYWxzZSwgZnVuY3Rpb24oKXt9 KTsNCn0NCi8vIF1dPg0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2 YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KLy8JPCFbQ0RBVEFbDQpp Zih0cnVlKSB7DQoJZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4ucjIuc2VydmVyU2lk ZVBsdWNrIik7DQoNCgljb250ZXh0SW5zdGFuY2UgPSBmdW5jdGlvbiAoKSB7DQoJ CXZhciBwcm9maWxlUGFnZVVzZXIgPSB7DQoJCQlpZCA6ICIiLA0KCQkJbmFtZSA6 ICIiLA0KCQkJcGFnZVVybCA6ICJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzLyINCgkJfTsNCgkJDQogIAkJdmFyIGxvZ2dlZE9uVXNlciA9IHsNCiAgIAkJ CWlkIDogIiIsDQogICAJCQluYW1lIDogIiINCiAgCQl9Ow0KDQoJCXZhciBhcnRp Y2xlSW5mbyA9IHsNCgkJCWFydGljbGVJZCA6ICIzNTIzNDE4NzEiLCANCgkJCXBh Z2VVcmwgOiAiaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9jb21tZW50aXNmcmVl LzIwMDkvYXVnLzMxL2xlYmFub24tZ2F5LXJpZ2h0cyIsIA0KCQkJcGFnZVRpdGxl IDogIkJlaXJ1dDogY2l0eSBvZiBwcm9qZWN0ZWQgZmFudGFzaWVzIiwgDQoJCQlz ZWN0aW9uS2V5V29yZElkIDogIjEwNTI4IiwNCgkJCXNlY3Rpb25OYW1lIDogIkNv bW1lbnQgaXMgZnJlZSIsDQoJCQljb21tZW50aW5nQ2xvc2VkIDogIHRydWUgLCAN CgkJCWNvbW1lbnRSZWNvbW1lbmRpbmdDbG9zZWQ6ICB0cnVlICwNCgkJCXByZW1v ZGVyYXRpb24gOiAgZmFsc2UgLA0KCQkJaXNDaGFsa2JvYXJkIDogZmFsc2UNCgkJ fTsNCgkJDQoJCXZhciBjaGFsa2JvYXJkSW5mbyA9IHsNCgkJCWFydGljbGVJZCA6 ICIiLCANCgkJCXBhZ2VVcmwgOiAiaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay9j b21tZW50aXNmcmVlLzIwMDkvYXVnLzMxL2xlYmFub24tZ2F5LXJpZ2h0cyIsIA0K CQkJcGFnZVRpdGxlIDogIkNoYWxrYm9hcmQiLCANCgkJCXNlY3Rpb25LZXlXb3Jk SWQgOiAiMTA1MjgiLA0KCQkJc2VjdGlvbk5hbWUgOiAiQ29tbWVudCBpcyBmcmVl IiwNCgkJCWNvbW1lbnRpbmdDbG9zZWQgOiBmYWxzZSwgDQoJCQljb21tZW50UmVj b21tZW5kaW5nQ2xvc2VkOiBmYWxzZSwNCgkJCXByZW1vZGVyYXRpb24gOiBmYWxz ZSwNCgkJCWlzQ2hhbGtib2FyZCA6IHRydWUNCgkJfTsNCgkJDQoJCXZhciBmaWxt SW5mbyA9IHsNCgkJCWZpbG1LZXkgOiAnRmlsbTonDQoJCX07DQoJDQoJCQkJCQkN CgkJdmFyIGVudiA9IHsNCgkJCXBhZ2VJZCA6ICIxMjY5NTk3IiwNCgkJCWNvbW1l bnRzU2lnblVwVXJsIDogJ2h0dHA6Ly91c2Vycy5ndWFyZGlhbi5jby51ay9zaWdu dXAvdHIvMSwsLTcyMCwwMC5odG1sJywNCgkJCWNvb2tpZURvbWFpbiA6ICcuZ3Vh cmRpYW4uY28udWsnLA0KCQkJc3RhdGljUm9vdCA6ICdodHRwOi8vc3RhdGljLmd1 aW0uY28udWsvc3RhdGljLzg2NjY5L2NvbW1vbi8nLA0KCQkJdXNlclByb2ZpbGVV cmxQcmVmaXggOiAiaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91c2VycyIsDQoJ CQlhZGRDbGlwcGluZ3NVcmwgOiAiaHR0cDovL3d3dy5ndWFyZGlhbi5jby51ay91 c2Vycy9jbGlwcGluZ3MvYWRkIiwNCgkJCWNvbW1lbnREYXRhVXJsIDogImh0dHA6 Ly93d3cuZ3VhcmRpYW4uY28udWsvZXh0ZXJuYWwvY29tbWVudGRhdGEva2V5d29y ZHMiLAkJCQ0KCQkJdG9wS2V5d29yZHNVcmwgOiAiaHR0cDovL3d3dy5ndWFyZGlh bi5jby51ay9leHRlcm5hbC91c2Vycy90b3BrZXl3b3JkcyIsDQoJCQljb21tZW50 Q291bnRzU2VydmljZVVybCA6ICJodHRwOi8vd3d3Lmd1YXJkaWFuLmNvLnVrL3Vz ZXJzL3BsdWNrL2dldENvbW1lbnRDb3VudHMuanMiLA0KCQkJdXNlclByb2ZpbGVT ZXJ2aWNlVXJsIDogImh0dHA6Ly93d3cuZ3VhcmRpYW4uY28udWsvdXNlcnMvcGx1 Y2svZ2V0VXNlclByb2ZpbGUuanMiDQoJCX07CQ0KCQkNCgkJdmFyIHBhcmFtZXRl cnMgPSB7DQoJCQljb21tZW50UGFnZSA6ICAxICwNCgkJCXNjcm9sbFRvQ29tbWVu dHMgOiAgIGZhbHNlICwNCgkJCXNob3dBbGxDb21tZW50cyA6ICBudWxsICwNCgkJ CWNvbW1lbnRJZCA6ICBudWxsICwNCgkJCWdvVG9MYXN0Q29tbWVudCA6ICBmYWxz ZSAsDQoJCQlzaG93Q29tbWVudEJveCA6ICBmYWxzZSAsDQoJCQlpc0VkaXRQcm9m aWxlUGFnZSA6ICggZmFsc2UgKSwNCgkJCXNlYXJjaFN0cmluZyA6ICggbnVsbCAp DQoJCX07DQoJCQ0KCQkJCWlmKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPT09ICcj YWxsY29tbWVudHMnKSB7DQoJCQlwYXJhbWV0ZXJzLnNob3dBbGxDb21tZW50cyA9 IHRydWU7DQoJCX0gDQoJCQ0KCQl2YXIgc2VydmVyRGF0YSA9IHsNCgkJCWFydGlj bGVJbmZvIDogYXJ0aWNsZUluZm8sDQoJCQljaGFsa2JvYXJkSW5mbyA6IGNoYWxr Ym9hcmRJbmZvLA0KCQkJZmlsbUluZm8gOiBmaWxtSW5mbywNCgkJCWVudiA6IGVu diwNCgkJCXByb2ZpbGVQYWdlVXNlciA6IHByb2ZpbGVQYWdlVXNlciwNCgkJCXBh cmFtZXRlcnMgOiBwYXJhbWV0ZXJzLA0KCQkJbG9nZ2VkT25Vc2VyIDogbG9nZ2Vk T25Vc2VyIA0KCQl9Ow0KCQkNCgkJdmFyIGN0eCA9IG5ldyBndWFyZGlhbi5yMi5z ZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tBcHBsaWNhdGlvbkNvbnRleHQoc2VydmVyRGF0 YSk7DQoNCgkJcmV0dXJuIGZ1bmN0aW9uKCl7DQoJCQlyZXR1cm4gY3R4Ow0KCQl9 Ow0KCX0oKTsNCgkNCglndWFyZGlhbi5yMi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tB cHBsaWNhdGlvbkNvbnRleHQuZ2V0SW5zdGFuY2UgPSBjb250ZXh0SW5zdGFuY2U7 DQp9DQovLyBdXT4NCjwvc2NyaXB0Pg0KCQ0KCQkJPHNjcmlwdCB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCgkJLy8JPCFbQ0RB VEFbDQoJCQkgaWYodHJ1ZSkgew0KCQkJIAl2YXIgY3R4UHJvdmlkZXIgPSBndWFy ZGlhbi5yMi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tBcHBsaWNhdGlvbkNvbnRleHQ7 DQoJCQkJY3R4UHJvdmlkZXIuZ2V0SW5zdGFuY2UoKS5idWlsZENvbnRyb2xsZXJz KCJQbHVja0NvbW1lbnRDb3VudENvbnRyb2xsZXIsIFBsdWNrQ29tbWVudENvbnRy b2xsZXIsIFBsdWNrQ29tbWVudEJveENvbnRyb2xsZXIiKQ0KCQkgICAgfQ0KCQkv LyBdXT4NCgkJPC9zY3JpcHQ+CQkNCgkNCgkgICAgDQoNCg0KCSAgICANCgk8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJLy88IVtDREFUQVsNCgkNCglp Zih0cnVlKSB7DQoJCXdyaXRlU2NyaXB0KCJodHRwOi8vc3RhdGljLmd1aW0uY28u dWsvc3RhdGljLzg2NjY5L2NvbW1vbi9zY3JpcHRzL3NvcGh1c1RocmVlLXRyYWNr aW5nLmpzIiwgZmFsc2UsIGZ1bmN0aW9uKCl7fSk7DQoJfQ0KDQoJLy8gXV0+DQoJ PC9zY3JpcHQ+DQoNCg0KDQoNCg0KCQ0KPC9ib2R5Pg0KPC9odG1sPg0K ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://www.guardian.co.uk/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABML AAATCwAAAAAAAAAAAAB/TAC7oHf///////////9/TAB/TAB/TAB/TAB/TADl28z/ ///////l28x/TAB/TAB/TACQZCL28+7///////+ylGahfEShfEShfESqiFX28+7/ //////////9/TAB/TAB/TAB/TACIWBHUw6r///////////////////////////// //////////9/TAB/TAB/TAB/TAC7oHf///////////////////////////////// ///////l28x/TAB/TAB/TAB/TADdz7v///////////////////////////////// ///28+6ZcDN/TAB/TAB/TAB/TAC7oHf////////Uw6q7oHe7oHe7oHe7oHe7oHeq iFWIWBF/TAB/TAB/TAB/TAB/TACIWBHl28z////Uw6q7oHe7oHe7oHehfER/TAB/ TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAC7oHf////////////////////////28+6q iFV/TAB/TAB/TAB/TAB/TAB/TAChfET////////////Mt5mIWBHu593////////2 8+6QZCJ/TAB/TAB/TAB/TAB/TADMt5n///////////+hfER/TAC7oHf///////// //+7oHd/TAB/TAB/TAB/TAB/TADdz7v///////////+hfER/TAC7oHf///////// //+7oHd/TAB/TAB/TAB/TAB/TADMt5n///////////+hfER/TADDq4j///////// //+qiFV/TAB/TAB/TAB/TAB/TAChfET////////////Uw6qIWBHu593///////// ///u5927oHd/TAB/TAB/TAB/TAB/TACqiFX28+7///////////////////////// //////+7oHd/TAB/TAB/TAB/TAB/TAB/TAB/TAChfES7oHe7oHeylGaZcDOIWBGh fES7oHehfER/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/TAB/ TAB/TAB/TAB/TAB/TAAAAMHTAADB0wAAwdMAAMHTAADB0wAAwdMAAMHTAADB0wAA wdMAAMHTAADB0wAAwdMAAMHTAADB0wAAwdMAAMHTCg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_userinfo.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAHKLoP///3qSpnyUqJezyevv8oymvJSvxYiit4Kbr+3x9IOd soCZrX2VqYaftZGswoulu3+XrISdsuzx9JWwx3uTp5Wxx5m1zMjW4cXS3cDN15Kt w5Ksw5Srv8PQ2o6ovoqkupeyyZ+zxI+pv+rv8oqjuoqjuYmjurXE0KS1wp650ZSr voiht9jf5X6Wq4KbsNLa4X+Xq5izypGtwpmvwYSdsZm1y4CZroOZrczV3q++zJSu xZ62y3qTp5Wsv36XrJCqwJOuxJCrwYehtpy4z5q2zoagtfX3+YqkuY2ovsDM142n vpWxyJq3zeXr74aftJOoud7k6Zu4z4Kar4yjtPL194CYrYeht42ovY6ov5axx9Da 4n6Vqo+qwJGswZOvxZCrwIumvImjuJm0y5KuxJu3zoWftMPQ232VqgAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAe0gAEAg4SFhYILZlclBlle ZBQEY0VSKoNTNQ4IIAYjD0EUIRdNRINWCQsOKxkTChg8FgQ2ZYM/DC8SHgG7ARg7 sReDDRE3CQW8AQoPX0wygwPDDCTIE10zB1qDFQNoMUrIGVhAHAeDAttcVBoFBWc+ EEtgG+YCPQMuUDooIkNiEElC6AnAkQOZExomDHwQ2ALZriMdToShl8Ihry0skNCD YXFXlScI6EXpuEuCEQCCDKkcFCAQADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_textsize.gif Content-Transfer-Encoding: Base64 R0lGODlhDQANALMAAP///0RERObm5qioqGlpac3NzVBQUHZ2do+Pj9ra2vPz88HB wYKCgpubm7S0tF1dXSH5BAAAAAAALAAAAAANAA0AAARBEEhpAplYrsBFnghTDR81 HFa5CUP3IVfCkZgS0E+KOUEiNa4Jg0OcTWyIgrJQuUh4PpBLcDB4Jq1Aw0YsSFDE QwQAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_rss.gif Content-Transfer-Encoding: Base64 R0lGODlhDgAOAPcAAP///+l1AOmOAP+JAP/CM/+5I+mCAP368/n29OiOAPK0Tel/ AOx2APGRMfKySf++LOmEAOl9AP+0GumKAOmIAOyVAOyPAOmBAP338f+uEfuaAO6P Iffq3fGUM/fEY/uKAP6oAdqrZeyUAPPf0PmDAO+NAPLNof7CMfWqFf+fANObXezC kviJAPn39Pvo3Prn0/KKAO7Cmv+kAP+NAPGXAPaqFfHGc+6wd++nEuzHlfTj0ux5 APeXJPChVP6+LPuPAPbn2/epPO3DiPLWqfDm3fmUAPubAOaqU/69KumSKPChCPGT APPq3/++KvN+AOl5AN6+k/ijAPPn3fHk3PGoEvDFnfOeANueWt15APbCevugAPZ/ APa3V+e/ff+jAPGxNf+IAO6/jvuvGPK5c/6eAPnZnvuEAPnFV/mZAPrs3dusZv6y Gv6YAPKUM/rs1dxuAPqqDep5AP7s3uPAp/CnE/+qBu6LAPN/APbGkPTLjPKrXPGD AOl7AP+zGvrt3/qtWf22IO7UqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAOAA4AAAjMAA8oqJAggYCDCCsoOOAA hY1AQ8qcOUGgIoEaDiwg6QKgIwA3Hnw8eNDEwoQCX9SEgMKkYx5ABQpMoCBhDQ46 YqjkaAFASB8JFCBkUNLRTxY4RxAA4JIBgoE6VnQQ6WgiygoAL0AYuCDDixYRKpSO oSEFQJALC1IYWUJGwxUAHNCEAYBnQYQiaQDIYVNiCgA7egBUicAniUcYP0YAwPIH QIwnO/YAAeDiw4wNPVjwmHMjTpstd96QGECaNBgzTjpgaMAggOvXrhk0wBAQADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=no-layout.css Content-Type: text/css; name=no-layout.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/no-layout.css Content-Transfer-Encoding: 8bit /* ---------- reset-guardian.css starts here ---------- */ body, html { background-color: white; } * { padding: 0; margin: 0; border-collapse: collapse; background-repeat: no-repeat; } body { width: 960px; margin: auto; color: #333; padding-left: 10px; font-size: 12px; font-family: arial, sans-serif; line-height: 1.25; position: relative; } a img, fieldset { border: 0; } ul, ol { list-style-type: none; } a { text-decoration: none; color: #005689; } a:hover { text-decoration: underline } a:focus, a:active { outline: none; background-color: #005689; color: #fff; } /* ---------- reset-guardian.css ends here ----------- */ /* ---------- skip-links.css starts here ---------- */ #skiplinks ul, #skiplinks li { margin: 0; padding: 0; } #skiplinks li { list-style-type: none; display: inline; } #skiplinks a, #video-settings a { font-weight: bold; position: absolute; top: 30px; left: 8px; overflow: hidden; width: 0; height: 0; font-size: 1.2em; z-index: 1002; } /* Only show skiplinks on focus */ #skiplinks a:active, #skiplinks a:focus, #video-settings a:active, #video-settings a:focus { position: absolute; width: auto; height: auto; border: 0; margin: 0; padding: 8px; background: #333; color: #fff; z-index: 10000; } #video-settings .not-cookied p { position: absolute; left: -100em; } /* ---------- skip-links.css ends here ----------- */ /* ---------- dialog-box.css starts here ---------- */ #abuse-box-wrapper, #signin-div-wrapper, div.dialog-box-wrapper { display:block; z-index:100; background:transparent url(images/white-bg.png) top left repeat; position:fixed; width:100%; height: 100%; } #abuse-box, div.dialog-box { border: 1px solid #333; z-index:800; background-color: #fff; color: #000; top:100px; width: 288px; padding: 10px 10px 10px 10px; position:fixed; } #abuse-box { font-size: 0.75em; } body.popup-comments #abuse-box { font-size: 1em; } body.popup-comments #abuse-box h2 { font-family: georgia, serif; } #wrapper #abuse-box { font-size: 1em; } div.dialog-box.scrollable { position: absolute; } #comment-box-pluck .post-comment-header { float: left; width: 420px; } #comment-box-pluck .post-comment-header h1 { margin-bottom: 20px; } #comment-box-pluck #close-comment-box, #abuse-box-wrapper #abuse-box-close, #signin-div #login-close { float: right; width: 80px; text-align: right; } #comment-box-pluck #close-comment-box a, #abuse-box-wrapper #abuse-box-close a, #login-close-link { background: #fff url(images/close_button.gif) top right no-repeat; padding: 0 18px 0 0; } .comment-author { clear: both; } .comment-author ul { overflow: hidden; } .comment-author .comment-author-img { float:left; width: 35px; } .comment-author .comment-author-name { float: left; width: auto; } .comment-author .comment-author-name a { display: block; } .comment-author .author-role { float: right; width: 35px; } .premoderation-warning { color:red; font-weight:bold; margin-top:5px; } .user-premoderation-warning { display: none; } #comment-box-edit, #comment-box-progress, #comment-close-confirmation-area, #comment-premoderation-area, #comment-thank-you-area { clear: both; } #comment-box-edit, #abuse-box-edit-area { margin: 20px 0 0 0; } #abuse-box-edit-area { border-top:1px dotted #ccc ; } #comment-box-edit fieldset { margin: 0; clear: both; } #comment-box-edit #blockquote-button { float:left; margin-bottom: 3px; width: 100%; } #blockquote-button input { float: left; background-color: #ededed; border: 1px solid #333; color: #333; font-size: 0.915em; margin-right: 5px; } #blockquote-button p { text-align: right; float: right; padding-top: 2px; position: relative; } #comment-box-pluck #comment-box-edit { margin-top: 17px; } #comment-box-pluck #comment-box-edit #blockquote-button { margin-bottom: 1px; width: 449px; } #comment-box-pluck #blockquote-button input { background-color: #e8e8e8; border-style: outset; border-top-color: #fff; border-left-color: #fff; border-right-color: #666; border-bottom-color: #666; margin-right: 3px; } #comment-box-pluck #blockquote-button input#add-bolds { font-weight: bold; } #comment-box-pluck #blockquote-button input#add-italics { font-style: italic; } #comment-box-pluck #blockquote-button input#add-links { color: #005689; } #comment-box-pluck #blockquote-button p { margin-top: 0; padding-top: 0; top: 2px; } #comment-body, #comment-box-progress, #abuse-progress-area, #abuse-description, #pluck-loading-dialog { font-size: 1em; font-family: arial, sans-serif; } #abuse-description { width:100%; } #comment-body { width: 447px; } #comment-box-progress, #abuse-progress-area, #abuse-thank-you-area, #abuse-close-confirmation-area, #comment-close-confirmation-area, #abuse-pluck-error-area { border-top: 1px dotted #ccc; border-bottom: 1px dotted #ccc; margin-top: 20px; } #comment-box-progress, #abuse-progress-area { background: url(images/pluck-loading-bar.gif) center center no-repeat; } #comment-box-progress p, #abuse-progress-area p, #abuse-thank-you-area p, #abuse-close-confirmation-area p, #comment-close-confirmation-area p, #pluck-loading-dialog p { margin: 70px 0 50px 0; text-align: center; } #pluck-loading-dialog { border-top-width: 1px; border-top-style: dotted; padding: 70px 0; } #pluck-loading-dialog p { padding-bottom: 10px; text-align: left; font-weight: bold; width: 300px; margin: 0 auto; } #pluck-loading-dialog p span { height: 10px; display: block; background: url(images/pluck-loading-bar.gif) top no-repeat; border: 1px solid; overflow: hidden; } #comment-box-pluck #comment-box-progress p { margin: 155px 0 124px; } #comment-box-pluck #comment-premoderation-area p { margin: 122px 0 135px; } #comment-box-pluck #comment-close-confirmation-area p { margin: 96px 0 79px; } #comment-box-pluck #comment-thank-you-area p { margin: 137px 0 142px; } #comment-box-pluck #comment-pluck-error-area p { margin: 113px 0 101px; } #abuse-box #abuse-progress-area p { margin: 148px 0 116px; } #abuse-box #abuse-close-confirmation-area p { margin: 80px 0; } #abuse-box #abuse-thank-you-area p { margin: 104px 0 123px; } #submit { text-align: right; margin: 20px 0; } #comment-box-pluck #submit { margin: 10px 0; } #comment-box-pluck #submit .msg { float: left; } #submit #submit-comment { border-top-width: 2px; border-bottom-width: 1px; } #abuse-box #abuse-box-edit-area p { margin: 10px 0; } #abuse-box label { font-weight: bold; } #abuse-box label span { font-weight: normal; } #abuse-close-confirmation-area p input, #comment-close-confirmation-area p input, #abuse-thank-you-area p input { display: block; margin: 15px auto; } #abuse-box { width: 300px; height: 320px; } #abuse-box h2 { font-size: 1.3em; font-weight: bold; border: none; margin-top: 0; } #abuse-box-wrapper #abuse-email-info, #abuse-box-wrapper #abuse-login-info { float: left; width: 200px; } #abuse-box-wrapper #abuse-email-info { clear: both; } #abuse-box-wrapper #abuse-submit-container { float: right; width: 96px; text-align: right; } #abuse-box-wrapper #abuse-submit { margin-top: 25px; } body.pluck-user-profile div#user-profile div#abuse-box span { display: inline; float: none; margin-right: 0; width: auto; } body.pluck-user-profile div#user-profile span#report-abuse-box-link-container { position: absolute; right: 0; top: 35px; background-image: url(images/pluck/report-abuse.gif); padding-left: 18px; width: auto; } /* Inline login pop up styles */ #signin-div { position: fixed; z-index:800; width: 368px; padding: 0; } #inline-login { width: 368px; background-color: #fff; font-size: 12px; color: #333; } #signin-div #login-close { font-weight: bold; padding: 10px 10px 0; } #inline-login form { padding: 0 10px 10px; clear: both; } #inline-login h1 { font-size: 1em; font-weight: bold; font-family: arial, sans-serif; padding: 10px 0 0 10px; width: auto; } #inline-login legend { text-indent: -9999px; } #inline-login span.row label { display: block; margin-right: 5px; width: 103px; } #inline-login span.row { width: 100%; overflow: hidden; display: block; } #inline-login span.row label, #inline-login span.row input { float: left; } #inline-login span.row input { width: 200px; } #inline-login #inline-email-label, #inline-login #inline-remember-label { padding-bottom: 14px; } #inline-login #inline-remember-label { margin-top: 5px; } #inline-login #forgot-password { margin-left: 107px; font-size: 0.916em; clear: left; } #inline-login input#inline-remember { margin-top: 6px; width: auto; } .dialog-button, div.ReportAbuse_Comment input { float: right; font-family: arial, sans-serif; font-size: 1em; margin-top: 20px; margin-left: 10px; padding: 1px 4px; cursor: pointer; } #inline-login input#popUpSignIn, div.ReportAbuse_Comment input { font-weight: bold; background-color: #005689; color: #fff; border-width: 1px; border-color: #005689; } #inline-login input#cancelSignIn { border: 1px solid; background-color: #eee; } /* ---------- dialog-box.css ends here ----------- */ /* ---------- header.css starts here ---------- */ #header { padding-top: 8px; background-color: #fff; border-color: #999; } div#sub-header { padding: 3px; border-color: #bebebe; } ul.user-details { background-image: url(images/icon_userinfo.gif); margin-bottom: 10px; padding-top: 2px; padding-right: 5px; padding-bottom: 3px; padding-left: 19px; width: 675px; } ul.user-details li { border-left-color: #bebebe; border-left-width: 1px; border-left-style: solid; padding-left: 5px; padding-right: 5px; display: inline; } ul.user-details li#larger { padding-left: 30px; background-image: url(images/icon_textsize.gif); background-position: 12px 0; } #topslot { border-bottom-color: #bebebe; border-bottom-width: 1px; border-bottom-style: solid; clear: both; float: left; min-height: 0; padding-bottom: 10px; width: 940px; } #topslot, #topslot a { text-align: center; line-height: 0; } #header #guardian-logo, #header #observer-logo { line-height: 1; border: 0; display: block; float: left; margin-top: 10px; margin-bottom: 15px; } #search { float: right; padding-top: 10px; width: 600px; } #web-search { clear: right; position: relative; width: auto; float: right; } #web-search-field, #sitesearch-text { width: 140px; } #search #web-search #go-guardian { min-width: 4em; } #section-selector { text-align: right; position: absolute; right: 0; top: 8px; width: 300px; } #section-selector input { min-width: 2.1em; } /* ---------- header.css ends here ----------- */ /* ---------- zone-navigation-base.css starts here ---------- */ /* Navigation section ----------------------------------------------------------------------------------------*/ #zones-nav { width: 940px; display: block; clear: both; line-height: 1; font-family: georgia, serif; font-weight: normal; font-size: 1.333em; /* 16px */ } #zones-nav #global-nav { margin-bottom: 10px; clear: both; width: 100%; overflow: hidden; } #zones-nav #global-nav ul { margin: 0; padding: 0; float: left; } #zones-nav #global-nav ul li { float: left; padding: 0; margin: 0; width: auto; display: block; white-space: nowrap; } #zones-nav #global-nav ul li a, #zones-nav .local-nav li.heading-crumb { display: block; padding: 4px 5px 4px 5px; margin: 0; width: auto; } #zones-nav #global-nav ul li a, #zones-nav #global-nav ul a:hover { text-decoration: none; } #zones-nav .local-nav li.heading-crumb, #zones-nav .local-nav li.heading-crumb:hover { background-color: #fff; color: #333; } /* First and Last items */ #zones-nav #global-nav ul li.first a { padding-left: 5px; } #zones-nav #global-nav ul li.last a { border: none; } /* TAKEN FROM color.css Zones Navigation --------------------------------------------------------------------------------*/ #zones-nav #global-nav ul li a { border-right: 1px solid #bebebe; } /* Global link colours */ #header #wrapper #zones-nav #global-nav li a { color: #333; background-color: #fff; } #header #wrapper #zones-nav #global-nav li a:focus, #header #wrapper #zones-nav #global-nav li a:active, #header #wrapper #zones-nav #global-nav li:hover, #header #wrapper #zones-nav #global-nav li a:hover { color: #fff; background-color: #333; } #global-nav li.news a { color:#d61d00; } #global-nav li.news a:focus, #global-nav li.news a:active, #global-nav li.news:hover, #global-nav li.news a:hover { color: #fff; background-color:#d61d00; } #global-nav li.sport a { color:#008000; } #global-nav li.sport a:focus, #global-nav li.sport a:active, #global-nav li.sport:hover, #global-nav li.sport a:hover { color: #fff; background-color:#008000; } #global-nav li.comment a { color:#0061a6; } #global-nav li.comment a:focus, #global-nav li.comment a:active, #global-nav li.comment:hover, #global-nav li.comment a:hover { color: #fff; background-color:#0061a6; } #global-nav li.culture a { color:#d1008b; } #global-nav li.culture a:focus, #global-nav li.culture a:active, #global-nav li.culture:hover, #global-nav li.culture a:hover { color: #fff; background-color:#d1008b; } #global-nav li.business a { color:#3246ab; } #global-nav li.business a:focus, #global-nav li.business a:active, #global-nav li.business:hover, #global-nav li.business a:hover { color: #fff; background-color:#3246ab; } #global-nav li.money a { color:#8f1ab6; } #global-nav li.money a:focus, #global-nav li.money a:active, #global-nav li.money:hover, #global-nav li.money a:hover { color: #fff; background-color:#8f1ab6; } #global-nav li.life-style a, #global-nav li.life-and-style a { color:#ad532f; } #global-nav li.life-style a:focus, #global-nav li.life-style a:active, #global-nav li.life-style:hover, #global-nav li.life-style a:hover, #global-nav li.life-and-style a:focus, #global-nav li.life-and-style a:active, #global-nav li.life-and-style:hover, #global-nav li.life-and-style a:hover { color: #fff; background-color:#ad532f; } #global-nav li.travel a { color:#066ec9; } #global-nav li.travel a:focus, #global-nav li.travel a:active, #global-nav li.travel:hover, #global-nav li.travel a:hover { color: #fff; background-color:#066ec9; } #global-nav li.environment a { color:#4a7801; } #global-nav li.environment a:focus, #global-nav li.environment a:active, #global-nav li.environment:hover, #global-nav li.environment a:hover { color: #fff; background-color:#4a7801; } #global-nav li a { color:#333; } #global-nav li a:focus, #global-nav li a:active, #global-nav li:hover, #global-nav li a:hover { color: #fff; background-color:#333; } /* ---------------------------------------------------------------------------------- */ /* ---------- zone-navigation-base.css ends here ----------- */ /* ---------- star-rating.css starts here ---------- */ div.rating-container, #promo div.rating-container { height: 13px; margin-bottom: 4px; width: 68px; } body.front div.rating-container { position: relative; margin-bottom: 11px; } body.network #wrapper div.rating-container { position: relative; top: -3px; margin-bottom: 7px; } ul#auto-trail-block div.rating-container, ul#main-trailblock div.rating-container { position: relative; top: -6px; margin-bottom: 2px; } body.three-five-four-grid .rating-container { position: relative; top: -10px; } body.three-five-four-grid .slot-machine .rating-container { top: 0; } /* ---------- star-rating.css ends here ----------- */ /* ---------- toolbox-item.css starts here ---------- */ /* ---------- pop-up.css starts here ---------- */ /* send-to-a-friend */ p.ip_logged { color: #666666; margin-top: 6px; text-align: center; } /* Pop up box */ .toolbox-popup { display: none; position: relative; top: 30px; left: 0; background-color: #fff; z-index: 999; /*margin-bottom: 200px;*/ /* Big margin needed to prevent cropping of popups in Safari. SU */ } .toolbox-popup div.send-inner { z-index: 999; position: absolute; /* top: 0; left: 0;*/ background: #fff; width: 442px; border: 9px solid #cdcdcd; padding-bottom: 10px; } .article-history .toolbox-popup { border-top: 1px solid #ccc; display: block; top: 0; margin: 10px 0 0 0; clear: both; position: static; } .toolbox-popup h3 { border: 0; float: left; width: 200px; margin: 5px 0 7px 10px; font-family: arial, sans-serif; font-weight: bold; } .toolbox-popup .share-top { float:left; margin-bottom: 10px; background: #e5e4e5; width: 442px; } .toolbox-popup .share-top span { float: right; width: 200px; margin: 5px 10px 0 0; font-size: 1.0em; text-align: right; } .share-top span { display: none; } .toolbox-popup .share-top span a { font-weight: bold; color: #333; } .toolbox-popup .share-top span a:focus, .toolbox-popup .share-top span a:hover, .toolbox-popup .share-top span a:active { background-color: #005689; color: white; } .toolbox-popup ul li { list-style-type: none; } /* contact us styles */ .toolbox-popup div.col { float: left; margin-left: 10px; margin-right: 10px; width: 201px; } .toolbox-popup div.col li { border-top-width: 1px; border-top-style: dotted; font-weight: bold; padding-bottom: 5px; padding-top: 5px; } .toolbox-popup div.col li a, .toolbox-popup div.col li span { font-weight: normal; } .toolbox-popup div.col li ul { padding-left: 0; } .toolbox-popup div.col li ul li { border-top: 0; padding-bottom: 0; padding-top: 0; } /* end contact us styles */ /* Share styles */ #send-share-box div.col li ul { padding-left: 0; } #send-share-box .send-inner ul li { float:left; width: 206px; margin-left: 10px; } #send-share-box ul li { border-top-width: 1px; border-top-style: dotted; padding-top: 5px; margin-bottom: 5px; } #send-share-box ul li a { padding-left: 20px; } .toolbox-popup a.delicious { background-image: url(${absolute.path}/images/icon_delicious.gif); } .toolbox-popup a.reddit { background-image: url(${absolute.path}/images/icon_reddit.gif); } .toolbox-popup a.google { background-image: url(${absolute.path}/images/icon_google.gif); } .toolbox-popup a.yahoo { background-image: url(${absolute.path}/images/icon_yahoo.gif); } .toolbox-popup a.facebook { background-image: url(${absolute.path}/images/icon_facebook.gif); } .toolbox-popup a.digg { background-image: url(${absolute.path}/images/icon_digg.gif); } .toolbox-popup a.stumbleupon { background-image: url(${absolute.path}/images/icon_stumbleupon.gif); } .toolbox-popup a.mixx { background-image: url(${absolute.path}/images/icon_mixx.gif); } .toolbox-popup a.twitter { background-image: url(${absolute.path}/images/icon_twitter.gif); } .toolbox-popup a.newsvine { background-image: url(${absolute.path}/images/icon_newsvine.gif); } .toolbox-popup a.livejournal { background-image: url(${absolute.path}/images/icon_livejournal.gif); } .toolbox-popup a.blinklist { background-image: url(${absolute.path}/images/icon_blinklist.gif); } /* end share styles */ /* email styles*/ .toolbox-popup fieldset { padding-bottom: 10px; clear: both; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } .toolbox-popup fieldset div { float: left; width: 190px; text-align: right; margin-right: 10px; } .toolbox-popup label { width: 190px; } .toolbox-popup div.inputrow { clear: left; margin-left: 200px; } .toolbox-popup input[type=text], .toolbox-popup textarea { width: 220px; } /* end email styles*/ /* ---------- pop-up.css ends here ----------- */ /* This stuff is necessary for the non-javascript page popups. */ * { background-repeat:no-repeat; } html { font-size: 100% } body { font-family: arial, sans-serif; font-size: 0.75em; } a { color: #005689; text-decoration: none } a:hover { text-decoration: underline } a:focus, a:active { outline: none; background-color: #005689; color: #fff; } h1 { font-family: georgia, serif; font-size: 2em; font-weight: normal } fieldset { border: none; } label { width: 200px; display: -moz-inline-box;/* because ff is a bit crap some times */ display: inline-block; } .toolbox-popup { display: block; } .toolbox-popup ul { margin-top: 0; margin-bottom: 0; padding-left: 0; } /* ---------- toolbox-item.css ends here ----------- */ /* ---------- color.css starts here ---------- */ #p.ip_logged, div#content blockquote { color: #666; } #videoPaneNoscriptReplacement, div#velocityerrors li, h1.badge-name { color: #fff; } #section-classifieds h4 { color: #005689; } #gu-now #gu-now-last-updated { color: #494949; } div.numbered-list span.count { color: #444; } div.numbered-list div.strap, div.numbered-list div.trailtext { color: #999; } body, html, #section-tools a, #footer, ul.tips h3, .directory #box #content p, ul.tips li strong, #nav ul li span, .copyright, #section-contents ul li ul li p.description, .commercial #promo .capsule, ul.credit li p.description, body.directory .count, #promo #finance-guides, body.video-series div#latest-series ul li h2, body.series-index div.trail-text span.date, body.contributor div.trail-text span.date, body.keyword-page div.trail-text span.date, body.interactive div.navigation ul#main-trailblock li div.strap, body.audio-canonical .more-podcasts li h5, body.audio-canonical .more-podcasts li .trail-text .date, body.audio div#more-in-audio-series h2, #article-header #strap, #wrapper #results-trailblock h2, body.quiz div#quiz-answers ul.weighted-responses li em, #global-jobs, #article-header #biography h2 { background-color: white; color: #333; } body.audio-canonical #subscribe-feeds { background-color: #EDEDED; border-color: #BCBCBC; } body.audio div#more-in-series { border-bottom-color: #e5e5e5; } body.audio .more-podcasts { border-bottom-color: #fff; } body.audio #related div.relatedlinks h3 { border-color: #999; } body.clippings .meta-data .annotation p, body.clippings .meta-data p.clipped-on, #article-header h2 { color: #999; } #promo h4, #promo h4 label, #promo #reader-offers h4, div#wrapper div.strap { color: #333; background-color: transparent; } a, div#league-position a, body.sport div.ventures-slot-machine a { color:#005689; } #find-job-container a:focus, #find-job-container a:active, div#promo div.latest-cif-posts a:focus, div#promo div.latest-cif-posts a:active { outline: none; background-color: #005689; color: #fff; } body.sport #wrapper #section-contents #onsite #sponsored-features li .linktext a { color: #0a246a; } #find-job-container a, div#promo div.latest-cif-posts a { color: #005689; } a:focus, a:active { outline: none; background-color: #005689; color: #fff; } /* I've had to hard code colours for the promo front template, as Andy wants blue, but the section colour is red. Couldn't think of any other way to do it. This will need fixed at some point. SU 19/09/2008 */ body.front div#box div#content div#feature-pick div#main-trailblock h2, body.front div#wrapper div#box div#promo-a h2, body.audio-front div#wrapper div#box div#promo-a div.latest h2, body.front div#wrapper div#box div#promo-a div#more ul.trailblock li.major-heading h2, body.cartoon-front div#wrapper #box ul#editor-zone-1 li.major-heading h2, body.promo-front div#wrapper #box #editor-zone-3 li.major-heading h2, body.multimedia-front div#wrapper #box #editor-zone-3 li.major-heading h2, body.cartoon-front div#wrapper #box div#latest-trails h2, body.audio-front div#wrapper div#footer, body.video-front div#wrapper div#footer, body.cartoon-front div#wrapper div#footer, body.video-front div#wrapper div#promo div, body.audio-front div#wrapper div#promo div, body.cartoon-front div#wrapper div#promo div, body.multimedia-front div#wrapper div#promo div, body.multimedia-front div#wrapper div#footer, body.promo-front div#wrapper div#promo div, body.promo-front div#wrapper div#footer, body.promo-front div#wrapper #content div.single-tag h2 { border-color: #0061A6; } * { background-repeat: no-repeat; } #section-contents li, #box h2, #related #book-index h2, #article-header #biography h2, .bio, body.article #content h3, #promo #finance-guides table tbody td, #promo #finance-guides table tbody th, #promo div#finance-guides, #book-index img.paper-thumb, body.most-popular div.most-top-ten, #sign-off, .trailblock .featured-trailblock ul.sublinks li, { border-color: #ccc; } #article-header h2 { border: none } #stand-first, p.drop:first-letter, span.drop, body.blog-post #stand-first { color: #666; } body.directory #box h2 { background-image: none } div.level-3, #box h2, #gallery-series-navigation h3 { background-position: bottom left; } #section-contents li li { background-image: none; } .count, .page-number, li.horizontal, ol.az-trips li p, body.video-front .video-duration, #calendar td.not-this-month, #readers-tips ul.tips p.credit, body.keyword-page p#more-daylife { color: #999; } ul.toolset li a { background-position: left center; padding-left: 20px; display: block; background-color: transparent; } #promo h2, #promo h3, #booking fieldset.section, #booking fieldset.section span, #also-on ul.viewer li, #related h5, div#sub-header, #related #fact-box h2, body.article #box #content h2, body.article #box #content h3, body.article #related h3, body.poll #related h3, body.quiz form.quiz ol li.question-container, body.quiz form.quiz ol, body.competition div#box div#related h3, #related-articles ul li, .services, ol.timeline li, body.video-series div#box div#content ul.trailblock, #book-index ul li, body.series-index ul.auto-trail-block li p.date, body.series-index #content ul.auto-trail-block li h3.series-index-article, body.cartoon div#related ul.keywords li.series p, body.cartoon #wrapper #box div.linktext h3, #related ul#article-toolbox-side li.resize, #section-contents ul#article-toolbox-side li.resize, body.article ul#article-toolbox, body.gallery ul#article-toolbox, #content ul#article-toolbox, body.audio-canonical #view-notes, body.audio-canonical #full-contents h2, body.audio div#more-in-audio-series .description, body.audio .more-podcasts h5.group-title, #box #content #our-blogs li h3, div#readers-tips li p.tip-header, div#readers-tips li.last, body.article div.related-item div.related-bottom-links, table.team-matches tr, table.league-position tr, div.jobsbox p.find-a-job, div.ventures-slot-machine p, div#secondary-trailblocks ul.default-trailblock li .trail-caption, body.sport #wrapper #content #results-trailblock li.vertical, #section-contents #most ol, div#most div.most-pane li, #box #content #most p.more-on, .video-front div#content div#video-player ul.article-attributes, body.books div#section-contents div.best-sellers ol li, div.terms-and-conditions h4, form.competition ul.first, body.web-search div#box h2, body.web-search div#box h3, #user-reviews .Reviews_UserImage, #user-reviews .Reviews_TableRight, body.people div#article-content, body.people div#box div#people-tabs, body.people div#related ul li.vertical, body.people #wrapper #content ul#auto-trail-block li.wide div.media-above h3, table.in-article h2, table.in-article th, table.in-article td, table.in-article tfoot div.source, table.stand-alone th, table.stand-alone td, table.stand-alone tfoot div.source, body.film div#content div#main-trailblock ul#film-info li, body.film div#related div#user-rating-side h2, div#advertiser-container ul.results li, p#about-daylife, body.front div#wrapper div#promo div#global-jobs div.jobsbox, body.video-front div#more ul.trailblock li, body.audio-front div#more ul.trailblock li, body.front div#box div#content div#feature-pick div#main-trailblock div#content-header h2, body.video-series div#box div#content div#main-trailblock div#content-header h2, div#pluck-container div#progress-bar div, div#pluck-container div#progress-bar, #pluck-loading-dialog, body.other ul#main-trailblock div.linktext h3, body.front div#our-blogs p.more-on, body.clippings div.clipping-contents, body.pluck-user-profile div#pluck-recent-activity-container div#pluck-latest-comments ul li.first, body.pluck-user-profile div#user-profile table td, body.pluck-user-profile div#user-profile table th, body.audio-front div#feature-pick div#content-header ul.audio-page, body.front div#content div.recent-blogs ul li, body.front div#content div.recent-blogs ul li, body#interactive-front div#related div.relatedlinks h3, #league-position table th, #league-position table td, #league-position table thead tr, table.stand-alone caption, div#box div#sponsored-jobs li.image div.job-button { border-color: #999; } body.comments div#content div#pluck-comment-container div.pluck-comment-block ul li { border-color: #999; } div#pluck-container div#progress-bar span { background-color: #9CD6F5; } body.audio-canonical #section-contents .keyword-list h2 { border-bottom-color: #999; } #related-info .section ul li, body.article #related-info ul.keylinks li, body.article #related-info ul.tips li, div#content ul.auto-trail-block li h2, div#section-contents ul.tips li, div#section-contents ul li, body.clippings div#section-contents ul, #section-contents ol.most-read li, div #box div#content ul li h2, #related-info .section ul li, body.article #related-info ul.keylinks li, body.article #related-info ul.tips li, .article #related h3, ul.child-keyword li, .index .breakdown, .all-places .breakdown, .weather-country .breakdown, .weather-continent .breakdown, .index .country, #wrapper div#section-contents ul#editor-zone-3 li, #wrapper div#section-contents ul#editor-zone-4 li, #wrapper #box #content ul#editor-zone-5 li.vertical, div#pickable-rss-rule-slot div.rss_wrapper ul li, ul.trailblock li.wide div.trail-caption { border-color: #999; } ol.alphabet, body.directory-place .index, #content ul.auto-trail-block li, #content ul.auto-trail-block li div.trail-caption, #keyword-trailblock li, ul.pagination, #content ul#main-trailblock li.normal, #related p.shower, body.front #wrapper #box #content div.cols ul li.major-heading h2, div.text { border-color: #999; } #related .ed-zone li, #edited-offers a.caption, #content ul.tri li, ol.az-trips li, .capsule ul.tri li, ul.trailblock li.portrait .linktext h3, #section-contents ul li, #content .reader-tips ul.tips li, .trail-block-page #content ul#main-trailblock li, ul.no-pic, body.gallery #sponsor-picture, #content li.col h2, #content li.col h3, body.vss #content ul.credit, div#solo-trailblock h3, body.cartoon-index div#recent-trailblock ul li h3, body#interactive-front #contact .sponsored-features li.first { border-color: #999; } /*border different for promo column - but not when on front*/ .front #promo h4 { border-color: #999; } /*border different for promo column*/ #promo h4, .commercial #wrapper #promo .sponsored-features, .commercial #wrapper #promo li, #promo .capsule ul.tri li, body div#wrapper div#promo .slot p.linktext { border-color: #333; } #promo div.capsule, body.travel #wrapper div#edited-offers li.major-heading h3, body.commercial #wrapper #promo div.capsule, body.cartoon-index div#wrapper div#footer ul#footer-links, body.cartoon-index div#wrapper div#box ul#main-trailblock, body.cartoon-index #wrapper div#box #recent-trailblock h2, body.cartoon-index #wrapper div#box div#related ul#editor-zone-1 li.major-heading h2, body.web-search div#footer, body.web-search div#results, body.contributor #wrapper #footer #footer-links, body.style-guide #wrapper #promo div.capsule, body#table-full-width-content div#wrapper div#promo div.capsule { border-color: #d3d3d3; } body.front div#wrapper div#promo div.capsule { background-color: transparent; } body.front #promo { background-color: transparent; } body.education #page-header, #header, #also-on { color: inherit; background-color: white } table#calendar { color: #333; background-color: #ededed; } table#calendar tr.month-nav th, table#calendar, table#calendar td { border-color: #c3c3c3; } /* = gallery -------------------------------------------------------------------------------*/ body.gallery #topslot { background-color: #dedede; } body.cartoon #topslot { background-color: transparent; } /* =related (article links etc) -------------------------------------------------------------------------------*/ #relatedlinks { position: relative; } /* header topslot --------------------------------------------------------------------------------*/ #topslot, #sub-header, div#local-info, ul.user-details li { border-color: #bebebe; } /* ******** REMOVED ******** = Navigation #nav -------------------------------------------------------------------------------*/ ul.credit, #related-info ul.tips p.credit, #header #nav ul, .explainer, span.credit, #big-picture-holder p.caption { color: #999/*another grey - look into AB */ } h1 span.date { color: #888; /*another grey - look into AB -we don't want to do this too often */ } /* =tertiary section navigation ------------------------------------------------------------------------------*/ span.pullout, div.page-heading p.linktext, p.trailstrap, div.strap, ul.commercial-links li, ul.pagination, p span.caption, body.video-front .trail-video-section, #last-updated, span.caption, div.image p.caption { color: #666; } #last-updated .date { color: #333; } #content .regionplaceholder p, body.front #edited-offers ul li, #edited-offers a.caption, body.directory-place #content .countries p.first, #book-index ul li ul, #book-index ul li ul li, div#section-contents ul.find-that-job li.header, div#promo ul.find-that-job li.header, #wrapper ul#more-news li.col ul li, #wrapper ul#more-news h3, body.sport #wrapper #content div#main-trailblock ul#more-news .major-heading h2 { border-color: #999; } body.competition form.competition, body.competition p.closed, #promo div.capsule, .commercial #wrapper #promo .sponsored-features { background-color: #f3f3f3; } a.webfeedlink { background-image: url(images/icon_rss.gif); background-position: 0 50%; display: block; height: 14px; padding-left: 18px; padding-top: 1px; } /* styling for beta -------------------------------------------------------------------------*/ #wrapper h2.beta { font-size: 6em; position: fixed; right: 10px; top: 10px; color: red } div.temp p { color: #fff; } body.video #content #videos-third-column h2, body.video #videos-third-column ul li { border-color: #999; } body.video-front #nav a.current { color: #005689; } body.video #content li.date, body.video #content li.credit { color: #666; } div #box div#content div.latest ul li.News h2 { border-color: #04669c; } div#section-contents div#find-job-container, div#promo #most-viewed div.most-pane { background-color: #fff; } body.video div#wrapper div#find-job-container, body.interactive div#wrapper div#find-job-container, body.quiz div#wrapper div#find-job-container { float: left; margin-right: 20px; background-color: #fff; } /* poll colours */ body.poll option.select-label { color: #999; } body.poll th { border-top-color: #d3d3d3; } table.poll-results td.total-responses { color: #999; } span.poll-result-bg { background-color: #b6b6b6; } span.poll-result-figure { background-color: #fff; border-left-color: #fff; } /* end poll colours */ /* mini weather in fronts starts */ div.temp p { border-color: #fff; } /* mini weather in fronts ends */ /* beautiful boss starts */ body.beautiful-boss div#promo, body.beautiful-boss div#box { border-bottom-color: white; } body.beautiful-boss div#wrapper { background-image: url(images/beautiful-boss-bg-inner.gif); } body.beautiful-boss div#article-header, body.beautiful-boss div#beautiful-boss-trail h2.first, body.beautiful-boss div#content h2.first, body.beautiful-boss div#recent li, div#beautiful-boss-trail div#main-trailblock li.image { background-color: white; } div#beautiful-boss-trail { border-bottom-color: white; } div.hero-panel h2, div.hero-panel div.trailtext { background: #fff; color: black; opacity: 0.8; } body.beautiful-boss div#related { border-top-color: white; } /* beautiful boss ends */ /* Video, Audio and Gallery fronts forced to be News colour instead of Global colour */ body.video-front div#content, body.video-front div#content h2, body.video-series div#box div#content ul li h2, body.video-front div#content #editors-heading h2, body.video-front div#box div#content div.latest li h2, body.video-front div#wrapper div#box div#more li.major-heading h2, body.video-front #footer, body.audio-front div#wrapper div#box div#more li.major-heading h2, body.audio-front div#wrapper div#box div#promo-a h2, body.audio-front div#wrapper div#box div#audio-pick h2, body.audio-front div#wrapper div#content-header, body.audio-front #footer, body.content-index div#wrapper div#box div#content ul#main-trailblock li.major-heading h2, body.content-index div#content h3.first, body.content-index div#wrapper div#box div#related div.capsule ul li.major-heading h2, body.content-index div#box div#content h2.first, body.content-index div#wrapper div#footer, body.front div#box div#feature-pick h2, body.front div#box div.latest-from-section h2 { border-color:#D61D00; } /* Video Front sections start*/ #wrapper #box ul li.News h2, #wrapper #box ul li.News h3 { border-color: #d61d00; } #wrapper #box ul li.Sport h2, #wrapper #box ul li.Sport h3 { border-color: #008000; } #wrapper #box ul li.Politics h2, #wrapper #box ul li.Politics h3 { border-color: #d61d00; } #wrapper #box ul li.Travel h2, #wrapper #box ul li.Travel h3 { border-color: #6bbde9; } #wrapper #box ul li.Science h2, #wrapper #box ul li.Science h3 { border-color: #d61d00; } #wrapper #box ul li.Media h2, #wrapper #box ul li.Media h3 { border-color: #d61d00; } /* vivid front section accents */ #wrapper #box ul li.news h2, #wrapper #box ul li.news h3 { border-color: #d61d00; } #wrapper #box ul li.sport h2, #wrapper #box ul li.sport h3 { border-color: #008000; } #wrapper #box ul li.Politics h2, #wrapper #box ul li.Politics h3 { border-color: #da0034; } #wrapper #box ul li.Science h2, #wrapper #box ul li.Science h3 { border-color: #2bbafe; } #wrapper #box ul li.travel h2, #wrapper #box ul li.travel h3 { border-color: #65c5fb; } #wrapper #box #our-blogs h2, #wrapper #box ul li.blogs h3 { border-color: #ce2e20; } #wrapper #box ul li.lifestyle h2, #wrapper #box ul li.lifestyle h3 { border-color: #ffd200; } #wrapper #box ul li.arts h2, #wrapper #box ul li.arts h3 { border-color: #f8298b; } #wrapper #box ul li.media-professional h2, #wrapper #box ul li.media-professional h3, #wrapper #box ul li.Media h2, #wrapper #box ul li.Media h3 { border-color: #ff8400; } #wrapper #box ul li.business-money h2, #wrapper #box ul li.business-money h3 { border-color: #8388e4; } #wrapper #box ul li.comment h2, #wrapper #box ul li.comment h3 { border-color: #0061a6; } #wrapper #box ul li.jobs h2, #wrapper #box ul li.jobs h3 { border-color: #a6d1e2; } #wrapper #box ul li.news h2, #wrapper #box ul li.news h3 { border-color: #ce2e20; } #wrapper #box ul li.shops-services h2, #wrapper #box ul li.shops-services h3 { border-color: #266f9b; } #wrapper #box ol.most-read li.first h2, #wrapper #box ol.most-read li.first h3 { border-color: #266f9b; } #wrapper #box ul li.culture h2, #wrapper #box ul li.culture h3 { border-color: #d1008b; } #wrapper #box ul li.business h2, #wrapper #box ul li.business h3 { border-color: #4a64d9; } #wrapper #box ul li.money h2, #wrapper #box ul li.money h3 { border-color: #8f1ab6; } #wrapper #box ul li.life-style-1 h2, #wrapper #box ul li.life-style-1 h3 { border-color: #ffc202; } #wrapper #box ul li.life-style-2 h2, #wrapper #box ul li.life-style-2 h3 { border-color: #c93900; } #wrapper #box ul li.travel-1 h2, #wrapper #box ul li.travel-1 h3 { border-color: #65c5fb; } #wrapper #box ul li.travel-2 h2, #wrapper #box ul li.travel-2 h3 { border-color: #066ec9; } #wrapper #box ul li.environment-1 h2, #wrapper #box ul li.environment-1 h3 { border-color: #7bbb00; } #wrapper #box ul li.environment-2 h2, #wrapper #box ul li.environment-2 h3 { border-color: #4a7801; } #wrapper #box ul li.red h2, #wrapper #box ul li.red h3 { border-color: #de4a33; } #wrapper #box ul li.blue h2, #wrapper #box ul li.blue h3 { border-color: #4c90c1; } #wrapper #box ul li.yellow h2, #wrapper #box ul li.yellow h3 { border-color: #ffb93e; } #wrapper #box ul li.black h2, #wrapper #box ul li.black h3 { border-color: #000; } #wrapper #box div#content ul li.arts-culture h2, #wrapper #box div#content ul li.arts-culture h3 { border-color: #f8298b; } /* end of vivid front section accents */ /* commercial borders for Zones start */ body.video-front div#promo div.capsule, body.audio-front div#promo div.capsule { border-color: #666; } /* Pluck comments */ .pluck-comment-block .pluck-content { border-color: #666; } /* commercial borders for Zones end */ /* zones in pickables start */ #box div.pickabletag li h2, #box div#content div.pickabletag ul li h2 { border-color: #d61d00; } #box div.pickabletag li h2.sport, #box div#content div.pickabletag ul li h2.sport { border-color: #008000; } #box div.pickabletag li h2.comment, #box div#content div.pickabletag ul li h2.comment, body.show-all-comments div#post-comment-div-bottom .pluck-comment-post { border-color: #0061a6; } #box div.pickabletag li h2.culture, #box div#content div.pickabletag ul li h2.culture { border-color: #d1008b; } #box div.pickabletag li h2.business, #box div#content div.pickabletag ul li h2.business { border-color: #4a64d9; } #box div.pickabletag li h2.money, #box div#content div.pickabletag ul li h2.money { border-color: #8f1ab6; } #box div.pickabletag li h2.lifeandstyle, #box div#content div.pickabletag ul li h2.lifeandstyle { border-color: #ffc202; } #box div.pickabletag li h2.travel, #box div#content div.pickabletag ul li h2.travel { border-color: #65c5fb; } #box div.pickabletag li h2.environment, #box div#content div.pickabletag ul li h2.environment { border-color: #7bbb00; } /* zones in pickables end */ /* Promo --------------------------------------*/ #promo a:focus, #promo a:active, body.front .commercial a:focus, body.front .commercial a:active { background-color: #005689; color: #fff; } body.sport #onsite .commercial a:focus, body.sport #onsite .commercial a:active { background-color: #008000; } /* End Promo */ /*lightbox special case*/ body.gallery div.lightbox ol li a:hover { background-color: #005689; color: #fff; } body.gallery div#box div#overlay a { color: #00c7ff; } body.quiz div#quiz-answers em, body.quiz p.quiz-error, body.competition p.competition-error, body.competition p.closed { color: #FF0000; } body.quiz #related div.relatedlinks h3 { border-color: #999; } /* for tabs that don't toggle panes on/off */ body.subject-index #index-toggle-nav a, body.contributor-index #index-toggle-nav a, body.people #index-toggle-nav a { background-color: #fff; border-bottom: 1px solid #fff; color: #000; } body.subject-index #index-toggle-nav a.inactive, body.subject-index #index-toggle-nav a.inactive b, body.contributor-index #index-toggle-nav a.inactive, body.contributor-index #index-toggle-nav a.inactive b, body.people #index-toggle-nav a.inactive, body.people #index-toggle-nav a.inactive b { border-bottom-color: #ccc; color: #444; } /* Olympics */ #latest-results-and-reports h2 { background-color: #fff; } #latest-results-and-reports div.col table.stand-alone thead tr, #latest-results-and-reports div.col table.stand-alone thead tr th { background-color: #a6d0a2; } #latest-results-and-reports div.col table.stand-alone tr, #latest-results-and-reports div.col table.stand-alone tr td { background-color: #fff; } #latest-results-and-reports div.col table.stand-alone tbody tr:hover { background-color: #fff3a5; } body.front div#latest-results-and-reports table.stand-alone caption, body.front table.stand-alone caption h1, body.front table.stand-alone caption p { color: #333; } body.olympics #content table.stand-alone tfoot { border-color: #fff; } body.medal-page div#content table img { border-color: #ccc; } body.fixtures-and-results-discipline div#content { border-color: #989898; } body.olympics #article-header h2 { color: #333; } div#promo div.capsule table.stand-alone thead tr, div#promo div.capsule table.stand-alone thead tr th { background-color: #a6d0a2; } div#promo div.capsule table.stand-alone tr, div#promo div.capsule table.stand-alone tr td { background-color: #f3f3f3; } body.date div#box div#article-header h2 { color:#999; } /* Olympics ends */ /* Blog calendar component */ div#blogs-calendar table tbody tr.active { background-color: #005689; } div#blogs-calendar table tbody tr.active a { color: #FFF; } div#blogs-calendar table tbody tr.has-links:hover { background-color: #CCC; } div#blogs-calendar div.capsule { background-color: white; } div#blogs-calendar table#calendar { background-color: transparent; } body.front div#content div#feature-pick #content-header, div#box div#content div#latest-trails ul.cartoon-latest li .series, body.front div#content div#feature-pick ul.article-attributes, body.video-series div#content div#content-header ul.article-attributes, div#content div#feature-pick div#content-header.video-page ul h3, div#blogs-calendar table tbody td, div#blogs-calendar table thead th, div#content ul#blog-posts-excerpts div.blog-excerpt h2, #most-viewed div.pane-wrapper, #most-commented div.pane-wrapper { border-color: #999; } /* End blog calendar */ /* Real clear politics component div#promo div.rcpwidget-300, div#section-contents div.rcpwidget-300 { background-color: #f3f3f3; border-top-color: #d3d3d3; } body.front div#section-contents div.rcpwidget-300 { background-color: #fff; } End real clear politics component */ div#wrapper div#intrusive, body.front div#content div.recent-blogs h2, body.front div#content div.recent-blogs p.more-on { background-color: #fff; } div#main-offers #commercial-partners ul li div.trailtext { color: #333; } /* boss-tag colours */ body.boss-tag div.col1, body.boss-tag ul#main-trailblock, body.boss-tag #wrapper #box #content .col1 #paginated-tag-content h3, body.boss-tag #wrapper #box #content .col1 #paginated-tag-content p, body.boss-tag div#article-header, body.reuters #stock-search-form { background-color: #fff; } body.boss-tag div#wrapper div#content div#main-trailblock, body.boss-tag div#wrapper div#box div#content #article-header, body.boss-tag div#wrapper div#box div#content #paginated-tag-content h3, body.boss-tag div#wrapper div#box div#content .pickabletag { background-color: #fff; } body.boss-tag div#section-pickable-tag-combiner li, div#related div.capsule h4, body.video #wrapper #box #related h3 { border-top-color: #999; } table.ftse100 th span, body.boss-tag #box #content div#related div.recent-blogs ul.tips li.tips-package ul.credit li.blog-date, body.boss-tag #box #content div#related div.recent-blogs ul.tips li.tips-package ul.credit li.blog-contributor { color: #999; } body.boss-tag #box #content #related ul.tips li.tips-package ul.credit li, .keyword-page #section-contents ul.tips ul.credit li { color: #333; } body.boss-tag #also-on { border-top-color: #fff; } body.boss-tag div#wrapper div#content div#main-trailblock li, body.boss-tag div#paginated-tag-content p { border-top-color: #999; } body.boss-tag #wrapper #box #content .col1 ul#main-trailblock li.normal, body.keyword-page div#wrapper #paginated-tag-content h3 { border-bottom-color: #fff; } p.more-on, table.marketindex td.timetillclose { color: #999; } table.ftse100, table.ftse100 tbody th, table.ftse100 td, table.marketindex { border-top-color: #c3c3c3; } body.reuters div#movers-chart { border-bottom-color: #c3c3c3; } table.marketindex td.netchange { color: #fff; } body.reuters .stock-toggle-pane, body.reuters p#reuters-blurb { border-color: #bebebe; } body.style-guide div#wrapper div#promo div.capsule { background-color: #f3f3f3; } /* related information component */ div.related-content, body#film-front .news #main-trailblock { border-bottom-color: #fff; } div#readers-tips h3, div#more-in-series h3, .related-content h3#relatedInformation, body.cartoon .related-content h3.first { background-color: #fff; } div.related-item div.related-footer, div.related-content div.multi h5, #box .related-content div.relatedlinks h3, .related-content div.relatedlinks h3, .related-content h3.first, body.cartoon .related-content h3.first, .related-content div.related-item p.noTrailPicture, body.cartoon div.relatedlinks h3 { border-color: #999; } div.series-navigation { color: #333; } body.country-tag #wrapper #content ul#main-trailblock li.first div.media-above, body.country-tag #wrapper #content ul#auto-trail-block li.first div.media-above, body#blog-front div#promo div#global-jobs div.jobsbox { border-color: #999; } body#visual-folder-list div#box div#sub-header { border-color: #ccc; } body#visual-folder-list ul#columnist-list li { border-color: #333; } #best-buy-container .all-deals, .newspaper-thumbnail { border-color: #999; } body#careers-front div#wrapper div#promo div#global-jobs div.jobsbox { background-color: #fff; border-color: #d3d3d3; } body#careers-front div#wrapper div#promo div#global-jobs { background-color: #f3f3f3; border-bottom-color: #fff; } /* ---------- color.css ends here ----------- */ #zones-nav, #topslot { width: 960px; } div#inner-wrapper, body #wrapper, body #wrapper li.pixie div.trail-text, body #content .trailblock li.pixie div.caption { background-image: none; background-color: transparent; } .component h2, #page-header, #promo h2, #promo-a h2, #related h2, #section-contents h2, #content h2, #footer, #google-ads-container h3, .sponsored-features h3, #global-jobs h3, #more-in-series h2, #pluck-container h2, #pickable-content-combiner h3, .pickabletagrelationship h3, #recent-trailblock h2, #editor-zone-3 h2, #finance-guides h4, #previous-polls h3, .latest-cif-posts h3, .capsule h3, .row-combiner h3, .binary-poll h3, .heading-vertical-links h2, .more-on h3 { border-top: 10px solid; border-color: inherit; margin-top: 60px; font-family: georgia, serif; } .trail-caption h3, .our-blogs-pane h4, .pixie h3, .pixie p.strap { font-family: georgia, serif; } #page-header { margin-top: 0; } .section-heading, #masthead { position: relative; } .section-heading a.feed, #weather-header { position: absolute; top: 0; right: 0; } .component li, .trailblock li, .att-tabs ol li, #manual-trailblock li, .relatedlinks li, .relatedlinks h3, .related-item, .related-item h5, #secondary-trailblocks li, #third-trailblocks li, .ventures-slot-machine, #cif-picks div.full, #cif-picks div.reduced, .pickabletag li, #pickable-content-combiner li, .pickabletagrelationship li, .pickabletagrelationship h4, #keyword-internal-links li, #cif-auto-trail-block li, #google-ads-container li, #more-trails-tabbed .trails li, #global-jobs .global-jobs-pane h3, .latest li, #more-in-series li, .child-keyword li, #previous-polls li, ul.pluck-comment, div#pluck-pagination-top, div#pluck-pagination-bottom, div#post-comment-div-top, div#post-comment-div-bottom { border-top: 3px solid #ccc; margin-top: 30px; padding-top: 2px; } li.major-heading, #main-trailblock .news li.first { border-top: none; margin-top: 0; } a.comment-icon { padding-left: 20px; background-position: 0 center; } .rating-container img, img.mask { position: absolute; } img.mask { left: 0; } li.pixie .trail-text, .toolbox-popup, #article-toolbox, #ticker-controls, .slot-overlay, .component-overlay { display: none; } .link-text img, .link-image img { margin-top: 5px; } #weather-header, #local-info { clear: left; margin-left: 5px; } #local-info p, #weather-header p, #footer li, .pagination li, #article-toolbox-side li, #content-actions li, #content-actions li div, .article-attributes li, .gallery-navigation li, body a.webfeedlink { display: inline; } .audio-front .article-attributes li { display: block; } .network #search, .network #web-search { float: none; } #section-selector fieldset { float: right; } #search, .network #search, .network #web-search { padding-top: 0; } label { width: auto; } #article-toolbox-side li { margin-right: 10px; } #article-toolbox-side li span { margin-left: 5px; } .article #content, #video-player, .audio #content, .competition #content, #article-header, .article-attributes { padding-bottom: 33px; border-bottom: 3px solid #ccc; } .article-attributes { margin-bottom: 30px; } .article-attributes .contributor-pic-small { float: left; margin-top: 3px; } #article-wrapper p { margin-bottom: 20px; } #stand-first { color: #666; } ul#ticker li { list-style-position: inside; margin-top: 15px; list-style-type: disc; padding-right: 15px; } #ticker li { list-style-type: none; display: none; line-height: 1.25; font-weight: normal; height: 1em; /* height required to trigger hasLayout for opacity fade in JS */ } #ticker li.first { display: list-item; } /* extra colour stuff */ .environment h2, .environment h3 { border-color: #7bbb00; } ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: text/css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/base.css Content-Transfer-Encoding: 8bit /* ---------- skip-links.css starts here ---------- */ #skiplinks ul, #skiplinks li { margin: 0; padding: 0; } #skiplinks li { list-style-type: none; display: inline; } #skiplinks a, #video-settings a { font-weight: bold; position: absolute; top: 30px; left: 8px; overflow: hidden; width: 0; height: 0; font-size: 1.2em; z-index: 1002; } /* Only show skiplinks on focus */ #skiplinks a:active, #skiplinks a:focus, #video-settings a:active, #video-settings a:focus { position: absolute; width: auto; height: auto; border: 0; margin: 0; padding: 8px; background: #333; color: #fff; z-index: 10000; } #video-settings .not-cookied p { position: absolute; left: -100em; } /* ---------- skip-links.css ends here ----------- */ /* ---------- velocity-errors.css starts here ---------- */ div#velocityerrors { position: fixed; top: 60px; left: 20px; width: 50%; z-index: 4; } div#velocityerrors li { background-color: red; border: 1px solid black; color: white; font-size: 14px; font-family: monospace; padding: 5px; margin-bottom: 10px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } .component-overlay, .slot-overlay { background-color: #ededed; border: 3px solid #0090e3; color: #fff; display: none; font-size: 12px; opacity: 0.9; position: absolute; z-index: 3; } .slot-overlay { border-color: #f57064; } .component-overlay-inner { background-color: #005689; padding: 5px; } .slot-overlay-inner { background-color: #ce2e20; padding: 5px; } .component-overlay span, .slot-overlay span { font-weight: bold; word-wrap: break-word; } .slot-overlay-inner h2 { font-size: 14px !important; font-family: arial, sans-serif !important; border: none !important; color: #fff !important; margin: 0 0 5px 0 !important; } .slot-overlay-inner p.component-list, .slot-overlay-inner p a { display: block; margin-top: 5px; margin-bottom: 5px; } .slot-overlay-inner li { margin: 0 0 0 20px !important; font-style: italic; list-style-type: disc; border: none !important; overflow: visible !important; float: none !important; } .slot-overlay a { color: white; text-decoration: underline; } .overlay-checkbox p { display:none; } .overlay-wrapper { position: relative; clear: both; } /* ---------- velocity-errors.css ends here ----------- */ /* ---------- zone-navigation-base.css starts here ---------- */ /* Navigation section ----------------------------------------------------------------------------------------*/ #zones-nav { width: 940px; display: block; clear: both; line-height: 1; font-family: georgia, serif; font-weight: normal; font-size: 1.333em; /* 16px */ } #zones-nav #global-nav { margin-bottom: 10px; clear: both; width: 100%; overflow: hidden; } #zones-nav #global-nav ul { margin: 0; padding: 0; float: left; } #zones-nav #global-nav ul li { float: left; padding: 0; margin: 0; width: auto; display: block; white-space: nowrap; } #zones-nav #global-nav ul li a, #zones-nav .local-nav li.heading-crumb { display: block; padding: 4px 5px 4px 5px; margin: 0; width: auto; } #zones-nav #global-nav ul li a, #zones-nav #global-nav ul a:hover { text-decoration: none; } #zones-nav .local-nav li.heading-crumb, #zones-nav .local-nav li.heading-crumb:hover { background-color: #fff; color: #333; } /* First and Last items */ #zones-nav #global-nav ul li.first a { padding-left: 5px; } #zones-nav #global-nav ul li.last a { border: none; } /* TAKEN FROM color.css Zones Navigation --------------------------------------------------------------------------------*/ #zones-nav #global-nav ul li a { border-right: 1px solid #bebebe; } /* Global link colours */ #header #wrapper #zones-nav #global-nav li a { color: #333; background-color: #fff; } #header #wrapper #zones-nav #global-nav li a:focus, #header #wrapper #zones-nav #global-nav li a:active, #header #wrapper #zones-nav #global-nav li:hover, #header #wrapper #zones-nav #global-nav li a:hover { color: #fff; background-color: #333; } #global-nav li.news a { color:#d61d00; } #global-nav li.news a:focus, #global-nav li.news a:active, #global-nav li.news:hover, #global-nav li.news a:hover { color: #fff; background-color:#d61d00; } #global-nav li.sport a { color:#008000; } #global-nav li.sport a:focus, #global-nav li.sport a:active, #global-nav li.sport:hover, #global-nav li.sport a:hover { color: #fff; background-color:#008000; } #global-nav li.comment a { color:#0061a6; } #global-nav li.comment a:focus, #global-nav li.comment a:active, #global-nav li.comment:hover, #global-nav li.comment a:hover { color: #fff; background-color:#0061a6; } #global-nav li.culture a { color:#d1008b; } #global-nav li.culture a:focus, #global-nav li.culture a:active, #global-nav li.culture:hover, #global-nav li.culture a:hover { color: #fff; background-color:#d1008b; } #global-nav li.business a { color:#3246ab; } #global-nav li.business a:focus, #global-nav li.business a:active, #global-nav li.business:hover, #global-nav li.business a:hover { color: #fff; background-color:#3246ab; } #global-nav li.money a { color:#8f1ab6; } #global-nav li.money a:focus, #global-nav li.money a:active, #global-nav li.money:hover, #global-nav li.money a:hover { color: #fff; background-color:#8f1ab6; } #global-nav li.life-style a, #global-nav li.life-and-style a { color:#ad532f; } #global-nav li.life-style a:focus, #global-nav li.life-style a:active, #global-nav li.life-style:hover, #global-nav li.life-style a:hover, #global-nav li.life-and-style a:focus, #global-nav li.life-and-style a:active, #global-nav li.life-and-style:hover, #global-nav li.life-and-style a:hover { color: #fff; background-color:#ad532f; } #global-nav li.travel a { color:#066ec9; } #global-nav li.travel a:focus, #global-nav li.travel a:active, #global-nav li.travel:hover, #global-nav li.travel a:hover { color: #fff; background-color:#066ec9; } #global-nav li.environment a { color:#4a7801; } #global-nav li.environment a:focus, #global-nav li.environment a:active, #global-nav li.environment:hover, #global-nav li.environment a:hover { color: #fff; background-color:#4a7801; } #global-nav li a { color:#333; } #global-nav li a:focus, #global-nav li a:active, #global-nav li:hover, #global-nav li a:hover { color: #fff; background-color:#333; } /* ---------------------------------------------------------------------------------- */ /* ---------- zone-navigation-base.css ends here ----------- */ /* ---------- footer.css starts here ---------- */ #footer { float: none; clear: both; width: 100%; border-top-width: 10px; border-top-style: solid; padding-top: 4px; padding-bottom: 20px; } ul#footer-links, ul#copyright-links { line-height: 1.3; background-color: #fff; } ul#copyright-links { margin-top: 3px; } ul#footer-links li, ul#copyright-links li { display: inline; font-size: 11px; } /* ---------- footer.css ends here ----------- */ /* ---------- star-rating.css starts here ---------- */ div.rating-container, #promo div.rating-container { height: 13px; margin-bottom: 4px; width: 68px; } body.front div.rating-container { position: relative; margin-bottom: 11px; } body.network #wrapper div.rating-container { position: relative; top: -3px; margin-bottom: 7px; } ul#auto-trail-block div.rating-container, ul#main-trailblock div.rating-container { position: relative; top: -6px; margin-bottom: 2px; } body.three-five-four-grid .rating-container { position: relative; top: -10px; } body.three-five-four-grid .slot-machine .rating-container { top: 0; } /* ---------- star-rating.css ends here ----------- */ /* ---------- tabs.css starts here ---------- */ #wrapper .tabs li { width: auto; /* needed a more specific selector just for IE */ } .tabs { float: right; margin: 0 !important; position: relative; top: 1px; } .pane-wrapper { clear: right; } .tabs li { border: 0 !important; clear: none !important; float: left !important; margin-right: 3px !important; margin-bottom: 0 !important; width: auto !important; } .tabs li a { background-color: #999 !important; color: white !important; border-top-width: 1px; border-left-width: 1px; border-right-width: 1px; border-style: solid; border-color: #999; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-radius-topleft: 4px; border-radius-topright: 4px; border-bottom: 1px solid #999; display: block; text-decoration: none; padding: 3px 7px; } .tabs li a:hover { background-color: #666 !important; border-color: #666 !important; color: white; } .tabs li a.active { background-color: white !important; border-bottom: 1px solid white; color: #333 !important; cursor: default; } .tabs li a.active:hover { background-color: white !important; border-color: #999 !important; border-bottom: 1px solid white !important; } /* ---------- tabs.css ends here ----------- */ body, html { background-color: white; } * { padding: 0; margin: 0; border-collapse: collapse; } img[align] { float: left; } #wrapper { width: 940px; margin: auto; padding: 0 0 0 10px; /* set top zero padding to ensure gridlines never show through */ position: relative; } body div#wrapper div#header { padding-top: 8px; } #section-classifieds, #sponsored-features, #sponsored-jobs { display: none; } div.page-heading p.linktext { margin-bottom: 30px } .splash { margin-bottom: 10px; } div#box div#page-header p.snap { margin-bottom: 0; } /* Header ----------------------------------------------------------------------------------------*/ #header #guardian-logo, #header #observer-logo { float: left; border: 0; display: block; margin: 10px 0 15px 0; /* space between logo and nav is 20px */ } #header #observer-logo { border-left: 1px solid #bebebe; margin-left: 5px; padding-left: 7px; } #header #guardian-logo a { display: block; } #header #guardian-logo div, #header #guardian-logo a { padding: 0; margin: 0; } /* RSS Feeds */ a.feed { margin-left: 5px; } a.feed, body.keyword-page a.feed, body.most-viewed a.feed, body.most-commented a.feed, body.most-clipped a.feed { left: 480px; position: absolute; width: 140px; display: block; top: 0.8em; } a.feed { float: right; margin-right: 3px; position: relative; top: 0; left: 0; width: auto; } /*------------------------------------------------------------------------------------------*/ /* Section headings ------------------------------------------------------------------------------------------*/ #heading { background-color: #fff; clear: both; float: left; min-height: 3.5em; padding-bottom: 25px; margin-bottom: 0; width: 940px; } h1#section-heading, h2#section-heading { margin: 0; display: inline; width: auto; float: left; } span#section-heading { display: block; } div#heading.badged { position: relative; } div#heading.badged h1#section-heading { float: none; } div#heading.badged a.feed { position: absolute; left: 0; } /*----------------------------------------------------------------------------------------*/ span.embed span.caption { margin-top: 5px; } #section-contents p, #promo h4, ul.tips h4, #section-contents p.description, #promo h5, #fact-box h2, #content li.trail-strap h2, div.image p.caption, span.caption { margin: 0; } ul, ol, #section-contents ul.tips li p, legend, #stand-first, #section-tools h2, #promo .tips h3, #promo .capsule p { margin: 0 } #section-contents p.description, #promo h4, #content .narrow, #edited-offers li a.caption, ul.trailblock li.portrait .linktext { padding-top: 3px; } #section-contents p.description, #content ul.trail h2, #content ul#main-trailblock li.major-heading { padding-bottom: 0; } #section-contents ul.tips ul.credit li, #section-contents li li, #content ul li.wide, #content h2, div.col h2, h1, .first h3, #content ul li.first, #content ul.auto-trail-block li.first { margin-top: 0; } .all-places #content .index .first, #promo h3, ul.trail img, ul.trail li.variant img, #content ul.trail h2, ul.trail li p, #content ul.pagination li, #content ul.trailblock li.major-heading, #content ul.trailblock li.major-heading h2, .sponsored-features ul.tri li.normal, #content #keyword-trailblock li.wide { margin-top: 0; } #content ul li .trailtext, #content ul li .trail-text, #section-tools, .all-places .breakdown, #promo div.auctions img, #global-jobs form, #promo .deal img, #promo .reader img, #promo .tips h4, #promo .jobs h4, #promo .capsule form, #promo .results h4, ul.pagination, #content ul#main-trailblock li li div.trailtext, #more-trails { margin-top: 10px; } #promo ul.tri li.image, #promo ul.tri li.normal { margin-left: 20px; } ul.tri li.major-heading { margin-left: 0; } #promo ul.tri li.odd { margin-left: 0; } /* Topslot - ad ------------------------------------------------------------------*/ #topslot { border-bottom: 1px solid; clear: both; min-height: 0; padding-bottom: 10px; width: 940px; float: left; } #topslot iframe, #topslot table { margin: auto; display: block } #section-contents p.description { margin-top: 6px; } .tips li a.more { padding-bottom: 3px; } a img, #section-contents ul.tips ul.credit li, fieldset { border: none; } ul, ol, #content li.horizontal { list-style-type: none; } #content li.trail-strap h3, #promo #reader-offers h4, #reader-offers ul li, #promo div.sponsored-features ul.tri li.normal, #content ul.pagination { margin-bottom: 10px; } #promo h2, #content ul.trail h2 { border-top-width: 1px; border-top-style: solid; } #promo div.sponsored-features ul.tri li.normal { border-top: 0; } #content ul.sublinks li, #content ul.sublinks li.trailtext, #content li.vertical { margin: 0; } #content ul.sublinks li.audio a, #content li.image ul.sublinks li.audio a { display: inline; } li.li-split { margin-top: 15px; border-top: 1px solid #999999!important; } li.thumb ul.sublinks img { width: auto; } li.thumb ul.sublinks img { padding-right: 4px; } body.network ul.more-news li.vertical img { padding-right: 5px; } body.all-authors div#wrapper div#box #section-contents ul.trailblock li.normal { margin-top: 15em; margin-left: 0; } body.all-authors div#wrapper div#box #section-contents ul.trailblock li.first { margin-top: 0; } div#other-blogs div.pictureurl { margin-bottom: 4px; } /* Minimum heights all have their height set in ie.css ----------------------------------------------------------------------------------------*/ body.offers-place #promo { margin-top: 78px; } body.offers-place #content ul.pagination { margin-bottom: 0; } body.offers-place div#content ul.page-n li.first { padding-top: 20px; } body.offers-place #wrapper #content ul.auto-trail-block li { padding-right: 160px } /* this is used in articles and keyword pages as well */ #article-header { padding-bottom: 20px; position: relative; min-height: 68px; } .offers-place #article-header { padding-bottom: 10px; } /* end that bit */ #article-sub-header { min-height: 60px; } /* Horizontal grid ----------------------------------------------------------------------------------------*/ #content, #promo, .offers-place ul.horizontal { float: left; } #article-header { clear: left; } #wrapper #article-header #editor-zone-3 li { width: auto; float: left; } #wrapper #article-header #editor-zone-3 li.image { border-top-width: 0; } div.user-tools { border-bottom: 1px solid; } body.trail-block-page.commercial #content { margin-left: 0; margin-right: 0 } body.trail-block-page.commercial #related { margin-left: 0; } body.double-spread #content, body.full-width #box, body.full-width #content { width: auto; float: none } body.travel #header { border-bottom: none; position: relative; } ul.after, #box { width: 620px; } body #wrapper div#promo div.jobsbox .jobsbox { margin-right: 0; } div.jobsbox p.find-a-job { border-top-width: 1px; border-top-style: solid; padding-top: 5px; } #wrapper div#promo div.jobsbox form { padding-top: 2px; margin-bottom: 15px; } div#promo div.jobsbox li { border-top: 0; } div.jobsbox ul.jobs { padding-bottom: 15px; } div.jobsbox ul#jobs-box-usa { padding-bottom: 0; } div.jobsbox p.attribution { border-top-style: dotted; border-top-width: 1px; border-top-color: #CCCCCC; padding-bottom: 14px; padding-top: 4px; } div#promo p.attribution { width: 280px; } p.attribution a { float: left; display: inline; margin-right: 4px; } p.attribution a img { position: relative; float: right; margin-right: 210px; top: -15px; left: 45px; } body.network div.jobsbox p.find-a-job { top: 0; } /* styles for body class trailblock-page, refact */ body.trail-block-page #box #content ul.alternative li.normal { width: auto; float: none; margin-left: 0; border-top-width: 1px; border-top-style: dotted; clear: both } body.trail-block-page #box #content ul.alternative li.normal.wide { border-top: none; padding-top: 0 } body.trail-block-page #box #content ul.alternative li.normal img { float: left; margin-right: 10px; margin-top: 1em } body.trail-block-page #box #content ul.alternative li.normal div.trailtext p { margin-top: 1em } body.trail-block-page #box #content ul.alternative li.wide img { margin-right: 0; margin-top: 0 } body.trail-block-page #box #content ul.alternative li.normal h3 { margin-top: 0 } /* styles for body class trailblock-page, refact */ #promo, body.triplet #content { margin-left: 0; } #section-contents, #promo, #section-selector, #sitesearch, #web-search, #banner-ad, #promo .editorial ul, ul.pagination li.last, #mpu { float: right; } #content .narrow, #content ul li div.trailText img, .trailtext img.image-in-trail, body.triplet #content, .col, #box, div#sub-header ul.links, ol.odd, #promo .editorial ul.top-stories, #promo .editorial ul.top-stories, ul.pagination li.first, .auto-trail-block .trail-text img, .auto-trail-block .trailtext a.mask, ul.editable-area .trailtext a.mask { float: left; } ul.trailblock li.portrait img { float: right; margin-left: 20px; margin-bottom: 20px } #section-contents, #content p span.pullout, ul.trailblock li.portrait h3, ul.trailblock li.portrait .trailtext, ul.trailblock li.portrait .linktext { width: 140px; } #section-contents h2, #content h2, .auto-trail-block li h2, .triplet .capsule h2, #keyword-nonplace-combiner h3, .commercial #promo .capsule h2, #onsite h2, #onsite h3, .network div#main-offers div.ed-zone h2, .network div.also-offers h3, #related #book-index h2, body#feature-trailblock #box h2, #related #biography h2, body.contributor #box #supporting-info h2, #article-header #biography h2, body.audio div#more-in-audio-series h2, #related h2 { border-top-width: 10px; border-top-style: solid; margin: 0 0 14px 0; padding-top: 3px; } ul.auto-trail-block { clear: left } #content .narrow { margin-right: 10px; width: 128px; } #content li.trail-strap h2 { padding-top: 4px; margin-top: 14px; } #content li.trail-strap h3 /*this is a heading underneath a trail-strap h2 */ { margin-top: -2px; } #content ul li, #content ul.horizontal, ul.tips li p .description, .cols li, .commercial #promo .capsule, #section-contents .capsule { margin-bottom: 17px; /* was top watch out for breakage*/ } #main-trailblock.component { margin-bottom: 0; } #content div.tag-tag ul li, #content ul.tips li { margin-bottom: 0; } .double-spread .capsule ul.tri li.major-heading { margin-bottom: 0; } #content ul li, #content ul.horizontal { overflow: hidden; } #content ul li div.trailText img { margin-right: 10px; margin-top: 2px; } #wrapper ul li.major-heading h2, body.travel div#edited-offers ul li.major-heading h3, body.other #box #content h2.first, body.other #box #content li.major-heading h2, body.configurable #box #content li.major-heading h2 { border-top-width: 10px; border-top-style: solid; } body.configurable #box #content li.major-heading h2 { margin-bottom: 0; } #wrapper li.major-heading { float: none; width: auto; clear: both; border-top-style: none } #content li.vertical { list-style-position: inside; float: none; clear: both; width: auto; } #content li.horizontal { width: auto; float: none } #content li.vertical, #content li.horizontal { margin-top: 3px } #section-contents li h3, #section-contents ul ul, #sitesearch, h1, #promo div.capsule form, #section-contents ul.keywords li, div.page-heading h1, ul.trail li li, #promo .sponsored-features li.major-heading, .sponsored-features ul.tri li.normal, #content #keyword-trailblock li.wide, #main-trailblock li.major-heading, .triplet #wrapper li.major-heading, .double-spread #box #content li.major-heading { margin-bottom: 0; } .trailtext img.image-in-trail, .auto-trail-block .trail-text a.small img, .auto-trail-block .trailtext a.small img, .trailblock .trailtext a.small img.mask { margin: 2px 10px 2px 0; } #reader-offers h4, #content ul.horizontal, #box #content ul.auto-trail-block li, .explainer { clear: both; } #content li.horizontal div, #content li.vertical div, #content ul li ul.subject-list li, #content li.horizontal, ul.directory li, ul.user-details li, ul.commercial-links li, ul.pagination li, .auto-trail-block .trail-text p, .auto-trail-block .trailtext p { display: inline } #content ul li ul { padding-bottom: 10px; } /*images live on the baseline, line-height is overcome here*/ /*only problem is the impact of trail straps the gap between them and the h3 element will differ and needs to be addressed*/ .odd li.image .trail-caption h3 { margin-top: -4px; } ul.no-pic { padding-bottom: 8px; margin-bottom: 2px; } .contributor-pic-small { margin-top: 2px; } li#contrib-shift { position: absolute; left: 70px; top: 5px; } #section-contents ul.keywords li, div.first ul.pagination { border-bottom: 0; } li.copyright { padding-top: 2px; } #promo, #box { margin-bottom: 28px; } #section-contents ul.tips ul.credit li, ul, ol, fieldset, legend, #header, ul.trail img, .commercial #promo .capsule { padding: 0; } #content h2, div.col h2, body.publication #related h2 { border-top-width: 10px; border-top-style: solid; clear: left; } #promo .sponsored-features ul li.major-heading h2, #related #keyword-continued h3 ul.auto-trail-block li.wide, #related #keyword-continued .linktext h3, #related ul.trail li.image, #section-contents ul.trail li.image, #related .ed-zone li.major-heading, .commercial #promo .capsule, .trail-block-page #related li h3 { border-top: none } body.network div#wrapper div.commercial div#main-offers div.commercial p.slotfooter { margin: 0; padding-bottom: 0; } /* three equal columns --------------------------------------------------------------------------------*/ body.triplet #content, .col, #print-logo, #sitesearch, #promo, #section-selector, #web-search, #content ul li.wide, ul.trail li.wide, .regionplaceholder { width: 300px; } body.offers-place #wrapper #content ul.alternative li.wide div.trail-caption { width: 300px; float: left; } body.offers-place #wrapper #content ul.alternative li.wide { width: auto; width: 620px; } #edited-offers a { float: left; width: 130px; margin-right: 20px } #edited-offers a.caption { margin-right: 0; border-top: 1px dotted } #edited-offers li { margin-bottom: 20px; overflow: hidden } .col, #reader-offers li.even { margin-left: 20px; } #box { clear: left; } #also-on { clear: both; border-top: 1px solid white; } legend { position: relative; } /* Above the navigation ------------------------------------------------------------------------------*/ #print-logo { clear: left; margin: 36px 12px 4px 0; } #print-logo { margin-bottom: -3px; } div#sub-header ul.links, .other #related .capsule, #related .capsule { clear: left; } ul.pagination li.last { text-align: right; } #also-on { overflow: hidden; } #mpu, #mpu1, #promo div#rightslot1 { line-height: 0; padding: 0; } #also-on { width: 940px; background-color: white; position: relative; } #promo .capsule { overflow: hidden; } div#sub-header { padding: 3px 3px 3px 0; } div#sub-header ul.links { width: 180px; } #section-selector { position: absolute; top: 8px; right: 3px; } #section-selector input, div.jobsbox input.submit { min-width: 2.1em; } #header #section-selector #go-to { width: 200px; } ul.user-details { margin-bottom:10px; width: 675px; padding-top: 2px; padding-right: 5px; padding-bottom: 3px; padding-left: 19px; } ul.user-details li { border-left: 1px solid; padding-right: 5px; padding-left: 5px; } ul.user-details li.first { border: none; } ul.user-details li#larger { padding-top: 0; padding-right: 5px; padding-bottom: 3px; padding-left: 30px; } ul.user-details li#larger a { padding-left: 4px; } ul.user-details li#mobile { border-left: none; } #promo h2 { padding-top: 10px; } #promo h3, #content ul li.wide, #related #keyword-continued li.image, #section-contens #keyword-continued-continued li.image, #content ul#main-trailblock li.major-heading, #related .ed-zone li.major-heading, #content ul.auto-trail-block li.first { padding-top: 0; } body.tag-content ul#editor-zone-4 li { padding: 2px 0 6px 0; } #content ul.auto-trail-block li.first { margin-top: 0; } #promo .capsule h3 { margin-bottom: 18px; } #promo div.capsule, .commercial #wrapper #promo .sponsored-features { border-top-width: 10px; border-top-style: solid; padding: 1px 10px 15px 10px; } .sponsored-jobs { border-top-width: 10px; border-top-style: solid; } #sitesearch input { vertical-align: baseline; } #radio-buttons input.radio { position: relative; top: 1px; } input.text { width: 90px } /* Supporting column ------------------------------------------------------------------------------*/ body.keyword-page #section-contents ul.tips li.tips-package { padding-bottom: 13px; } .child-keyword li, #section-contents ul.keywords li, #keyword-continued li.normal, #keyword-continued-continued li.normal, .commercial #promo .ed-zone li, #section-contents ul.tips li, #related #book-index li, #latestnews li, ul.all-articles li, div#section-contents ul.feed-latest li { padding: 2px 0 6px 0; } #keyword-continued li.normal { padding-top: 2px; } div#promo h4.first, div.first ul.trail { border: 0; padding-top: 0; margin-top: 0; } /* if javascript is off, then: ------------------------------------------------------------------------------*/ .shower, ul.controller li, #cookie { display: none; } #print-toolbox, #wrapper iframe.ad-loader { visibility: hidden } .javascript-on { display: none; } /* Forms ------------------------------------------------------------------------------*/ #web-search { clear: right; position: relative; width: auto; } #search { float: right; padding-top: 10px; width: 600px; } #search #web-search #go-guardian { min-width: 4em; } #web-search select option { padding-right: 20px; } #radio-buttons { position: absolute; bottom: -2.5em; right: 15px; /*but not so much in IE*/ } #radio-buttons label { margin: 0 8px 0 0; } #web-search-field, #sitesearch-text { width: 140px; } #freetext { width: 145px; /* the jobs box search field */ } #freetext-searchalljobs { width: 220px; /* the jobs box search field */ } /* The zoomed image styling --------------------------------------------------------------------------*/ #content ul.tri li.image { border: 0; } #content ul.tri li.major-heading, ul.trail li.first, .sponsored-features li.major-heading, .sponsored-features li.trailtext, .sponsored-features ul.tri li.odd, #section-contents ul.tri li, .triplet .major-heading { margin-left: 0; /*this rule compensates for the above rule and make's sure that editable trailblocks thats appear in related divs do not have a margin of 20*/ } #content ul.trail li.variant h2 { border-top: none; margin-top: 0.5em; } ul.trail li.last, ul.trail li li { margin-right: 0 } ul.trail li li, .triplet .image div.pictureurl img { float: none; } /* #promo section -----------------------------------------------------------------------------------------------*/ #promo .editorial li { margin-bottom: 5px } #promo .editorial ul, #promo div#other-blogs ul li.normal, #promo div#other-blogs div.pictureurl img { width: 130px; } #promo .deal ul li, #promo .reader ul li, #promo div.auctions ul li, #reader-offers li, .sponsored-features ul.tri li { width: 130px; float: left; } #content .sponsored-jobs ul.tri li.image { float: left; width: 140px; } #content .sponsored-jobs ul.tri li.image.last { margin-right: 0; } #promo .deal .right, #promo .reader .right, #promo div.auctions .right { width: 130px; float: right; } #promo div.reader, #promo div.auctions, body.front #wrapper #section-contents .first .capsule li.major-heading, #promo div#rightslot1 img { border-top: none; margin-top: 0; } #promo .tips p.description { margin-bottom: 15px; } .capsule form { clear: left } ul.vertical-links { border-top-width: 1px; border-top-style: dotted; margin-top: 5px; padding-top: 5px; } .clipping-picture { clear: left; float: left; margin: 3px 10px 10px 0; } #section-contents div.capsule.todayspaper ul li.image, div#topstories ul#latestnews li.first { border: 0; } #topstories.p { margin: -16px 0 16px 0; } .newspaper-thumbnail { padding-top: 5px; padding-bottom: 7px; padding-left: 10px; padding-right: 10px; border-style: solid; border-width: 1px; } div#promo div.single li { float: none; width: auto; } div#promo .slot p.linktext, div#promo div.single li.odd { border-top-width: 1px; border-top-style: dotted; } div#promo div.single li.odd div.linktext { padding-bottom: 5px; } div#promo div.single li div.pictureurl { float: left; margin-right: 10px; } div#promo .services { width: 130px; float: left; margin-bottom: 10px } div#promo .services.first { margin-right: 20px } div#promo p.services .services.first { margin-right: 20px } div#promo div.slot p.linktext { margin-bottom: 10px; padding-top: 3px; } #promo ul.sublinks { clear: both; padding-top: 3px; } /* Dotted borders --------------------------------------------------------------------------*/ .keywords li, .child-keyword li, #promo h4, #related-info .trail ul li, #section-contents li, body.other #box #content h2, #related #keyword-continued .minor-heading h2, body.front #content ul li.major-heading h2, #related .ed-zone li, ul.trailblock li.portrait h3, .front #content .reader-tips ul li, .front #content .cols ul.auctions li.even, ul.trailblock li.portrait .linktext, ul.trailblock li.portrait .linktext h3, body.front li.more-auctions, ul.services li, p.services, #promo ul.sublinks, #promo li.link, .bio, ul.all-articles li, #top-table .trail-text, #top-table form, ul.trailblock li.wide div.trail-caption, ul.trailblock li.normal, #content ul.auto-trail-block li, .directory-place .index p, ul.pagination, div#other-blogs ul li.image { border-top-width: 1px; border-top-style: dotted; } #wrapper #box #content ul li div.media-above div.linktext h3, #wrapper #box #content ul li div.media-above div.linktext h2, body.keyword-page #content ul li.wide div.media-above { border: none; } #section-contents div.todayspaper ul.sublinks li { padding: 2px 0 6px; } body.front #main-trailblock li.portrait div.linktext, body.front div#wrapper div#promo div#edited-offers.capsule, div#section-contents ul.trail li.image, #promo div#sponsored-features ul.trail li.image, body.front div.commercial div#sponsored-features ul.trail li.image, #content ul.auto-trail-block li.wide, div.slot p.services, .sponsored-features ul.tri li #section-contents div.todayspaper ul.sublinks li.first, #content ul.auto-trail-block li.first.wide, div#section-contents ul.vertical-links li.vertical, #promo ul.find-that-job li h4, #content ul li.wide { border-top: none; } #related #fact-box h2, ul.pagination, ul.no-pic, #article-header #strap, li.breakpoint, .series-navigation { border-bottom: 1px dotted; } /* jobs boxes */ div#content div#sponsored-jobs li.image div.job-button, div#sponsored-jobs-promo li.image div.job-button { background: #fff url(images/140x140-border-mask.gif) left top no-repeat; height: 140px; width: 140px; padding-top: 10px; } div#promo div#sponsored-jobs ul.tri li.normal { width: 130px; padding-top: 5px; border: 0; float: left; background-image: url(images/130x130-border-mask_promo.gif); background-repeat: no-repeat; } div#promo div#sponsored-jobs ul.tri li.normal div.job-button { margin-bottom: 10px; } div#promo div#sponsored-jobs ul.tri li.normal div.job-text, div#promo div#sponsored-jobs ul.tri li.normal div.job-text ul li, div#content div#sponsored-jobs ul.tri li.normal div.job-text, div#content div#sponsored-jobs ul.tri li.normal div.job-text ul li { margin: 0; width: auto; } /* video display noscript replacement div */ #videoPaneNoscriptReplacement { width: 480px; height: 360px; background-color: black; } div.commercial a, body.commercial div.image, div.pictureurl a, .image a.mask, body.commercial div.image a, li.image a { width: auto; position: relative; display: block } li.image p a, body.network li.image ul.sublinks li.bullet a { display: inline } li.image div.trailtext { position: static } div.mask, img.mask { position: absolute; top: 0; left: 0; } .sponsored-features li.odd { clear: left } #reader-offers li.even { clear: none } #reader-offers li.last, #reader-offers p.more a { float: none; margin-right: 0; } #section-classifieds { padding-bottom: 10px; } #section-classifieds .pictureurl { float: left; margin-right: 20px; } /* Pagination --------------------------------------------------------------------------*/ ul.pagination { padding: 3px 0; } #content ul.pagination, #content ul.pagination li { margin-bottom: 0; } #wrapper #box ul.pagination li.first, #wrapper #box ul.pagination li.last { width: 47px; } ul.pagination li { padding: 0 0.2em; } #more-article { padding-bottom: 2.5em } #print-logo { display: none; } /* GU Now styles -----------------------------------------------------------------------------*/ #gu-now ul h3 { border-top: 1px dotted #999; margin-bottom: 0; padding-bottom: 0; padding-top: 3px; } #promo #gu-now ul h4 { border: none; margin-top: 0; padding-top: 0; padding-bottom: 3px; } #gu-now #gu-now-last-updated { padding-bottom: 3px; } div#gu-now { clear: left; } body.cif div#gu-now { clear: none; } /* Advert widths and heights ----------------------------------------------------------------------------*/ #mpu { position: relative; z-index: 1000 } #keyword-trailblock li.normal, #content #keyword-trailblock li.wide { margin-bottom: 20px; } body.trailblock-page ul.alternative #content li { width: 460px; margin-left: 0; } /* front -------------------------------------------------------------------------------*/ div.heading { clear: both; } #wrapper #content div.heading ul * { float: none; width: auto; height: auto } div.cols { float: left; width: 140px; margin-left: 20px;/*see ie.css*/ margin-bottom: 20px /*see ie.css*/ } div.commercial div.first { margin-left: 0; } li.breakpoint { margin-bottom: 23px; } #box h3 { padding-top: 1px } div#main-offers div.ed-zone ul /* On this site component */ { margin-bottom: 20px; } div#main-offers div.ed-zone h2 { margin-bottom: 8px; } div#main-offers div.ed-zone li { padding-bottom: 2px; padding-top: 2px; border-top-width: 0; } div#main-offers div.ed-zone li.first { margin-bottom: 0; } ol.az-trips { width: 300px; } ol.az-trips { float: left; } #radio-buttons.simple-search { left: 70px; right: auto; } div#tools-header { display: none } #sponsored-features img { width: 130px; height: 78px; } #promo div.sponsored-features li.image.first { margin-right: 20px; margin-left: 0 } div#promo div#finance-guides li.info { margin-top: 10px; } body.article form#stock-search-form p { padding-left: 0; } body.keyword-page form#stock-search-form p#stock-search-input input#query, body.reuters form#stock-search-form p#stock-search-input input#query, body.money form#stock-search-form p#stock-search-input input#query { width: 130px; } #wrapper div#stock-search-narrow p#stock-search-label { padding-bottom: 10px; } div#stock-search-narrow p#stock-search-label, div#stock-search-narrow p#browse-all-stocks { margin-top: 15px; } div#stock-search-narrow p#stock-search-label { border-top-width: 1px; border-top-style: dotted; padding-bottom: 5px; margin-top: 5px; } div#stock-search-narrow p#stock-search-submit { margin-top: 5px; } div#stock-search-narrow p#stock-search-input { margin-bottom: 5px; } body.reuters div#related h3, body.reuters div#related li.major-heading h3, body.reuters div#related div#stock-search-narrow h3, body.money div#stock-search-narrow h3 { border: 0; margin: 0; padding: 3px 0 20px 0; } body.reuters div#related li.major-heading h3, form#stock-search-form { padding-bottom: 15px; } body.reuters div#content h2#stock-search-results-header { padding-bottom: 20px; margin-bottom: 0; } body.reuters ul#stock-search-results-list li { border-top-width: 1px; border-top-style: dotted; padding-top: 5px; padding-bottom: 9px; margin-bottom: 0; margin-top: 0; } li#main-audio, div#audio-player { position: relative; } #audio-player { width: 458px; border: 1px solid #d2d2d2; background-color: #ededed; margin-top: 8px; overflow: visible; } a.subscribe-audio { padding-left: 20px; background: url(images/icon_audio_feed.gif) left top no-repeat; } a.subscribe-rss { padding-left: 20px; background: url(images/icon_rss.gif) left top no-repeat; } #subscribe-feeds { margin: 10px 0 10px 0; } #subscribe-feeds li { display: inline; margin-right: 5px; } #box #content ul#audio-pick li.first { border-top-width: 1px; border-top-style: solid; } /* RTFA -----------------------------------------------------------------------------*/ div.page { display: none; } body.third-party-toolkit div#wrapper div#header { padding-top: 2.75em; } /* This is for the 3rdparty toolkit don't do anything like this without talking to a tech lead -----------------------------------------------------------------------------*/ body.third-party-toolkit #wrapper { padding-left: 0; } div#wrapper.third-party { width: 300px; padding: 0; margin: 0; } /* Content icons in trails sitewide */ body.keyword-page ul.auto-trail-block .trail-icon, body.contributor ul.auto-trail-block .trail-icon, body.series-index ul.auto-trail-block .trail-icon, div.most-top-ten div.trailtext img.trail-icon { margin-right: 4px; } div.most-top-ten div.trailtext img.trail-icon { margin-bottom: 0; } /* Find that job commercial component starts */ abbr { border: none; } ul.find-that-job li p { padding-left: 3px; padding-bottom: 8px; } ul.find-that-job li h4 { padding: 4px 0; margin-bottom: 10px; border-top: none; } div#find-job-container { overflow: hidden; display: inline; float: left; } div#section-contents ul.find-that-job li, div#promo ul.find-that-job li { width: 60px; display: inline; float: left; border-top: none; } div#promo div#find-job-container { background-color: #f3f3f3; padding-bottom: 25px; width: 280px; } div#promo ul.find-that-job { padding: 0; } div#section-contents div#find-job-container { padding-bottom: 20px; width: 300px; } div#section-contents ul.find-that-job li.header, div#promo ul.find-that-job li.header { border-top-width: 1px; border-top-style: solid; width: 300px; } div#promo ul.find-that-job li.header { margin-bottom: 15px; } div#section-contents ul.find-that-job li.first, div#promo ul.find-that-job li.first { margin: 0 0; clear: left; } div#section-contents ul.find-that-job li.normal { margin-left: 20px; } div#promo ul.find-that-job li.normal { margin-left: 13px; } /* Find that job commercial component ends */ div#flash-player { margin-top: 8px; margin-bottom: 3px; } #audio-player div#flash-player { margin: 0; } div#promo div { margin-bottom: 10px; } div#promo div.overlay-wrapper { margin-bottom: 0; } div#promo div#global-jobs div { margin-bottom: 0; } div#promo div#global-jobs>div { padding-bottom: 10px; } div#promo div#intrusive { display: inline; } div#promo div#intrusive img.ad-placeholder { display: none; } div#content blockquote { margin-right: 40px; margin-bottom: 10px; margin-left: 40px; } /* Ads ----------------------------------------------------------------------------------*/ #mpu1 img.ad-placeholder, #rightslot1 img.ad-placeholder { margin-bottom: 0; } #mpu1 { background-color: #fff; } div#promo div#rightslot1, div#promo div#mpu1 { margin-bottom: 0; } /* related sidebar starts */ div#section-contents div.relatedlinks h3.first div#related div.relatedlinks h3.first { border-top-style: solid; } /* related sidebar ends */ /* new commercial component starts */ div.slot-machine-two ul { float: left; width: 280px; } div.slot-machine-two li { width:130px; float: left; overflow: hidden; } div.slot-machine-two li p { clear: both; } div#reader-offers div.slot-machine-two ul li.first { clear: both; width: 280px; border-top: 1px dotted #999; padding-top: 5px; margin-bottom: 10px; } div#promo div.slot-machine-two ul li.first { border-top: medium none; padding-top: 0pt; margin-bottom: 15px; } div#promo div#reader-offers div.slot-machine-two ul li.first { border-top: 1px dotted #999; padding-top: 5px; margin-bottom: 10px; } div#promo div.slot-machine-two ul.footer-heading li.last { float: left; } div#reader-offers div.slot-machine-two { clear: both; border-top: none; padding: 0; margin-bottom: 0; } div.slot-machine-two ul li.first, div.slot-machine-two ul li.last { clear: both; width: 280px; } div.slot-machine-two li.odd { margin-right: 20px; } div.slot-machine-two li image.mask { padding: 0; } div#promo div.garden-centre li img { margin-bottom: 5px; } div#promo div.garden-centre li.first h3 { padding: 0; margin: 0; } div#promo div.slot-machine-two ul.footer-heading { margin-top: 10px; padding-top: 5px; } /* Shopping Reader offers */ div.reader-offers { margin-bottom: 10px; } body.front div.reader-offers ul.readers-offer-front li img { width: 140px; height: 95px; } div#promo div.reader-offers li img { float: left; margin-right: 15px; margin-bottom: 3px; width: 130px; height: 88px; } div#promo div.reader-offers div.links { padding-top: 10px; clear: both; } div#promo div.reader-offers ul.reader-offers-links { padding-top: 5px; border-top: 1px dotted #999; list-style-type: none; } div#promo div.reader-offers ul.reader-offers-links li { background-image: url(images/icon_bullet.gif); background-position: 0 50%; text-indent: 17px; padding-top: 0; } .hidden { display: none; } ul.alternative div.video-container { float: left; } .pluck-off-error { display: none; } body.other div#promo div#most-viewed-blog-1 { margin-top: 0; } /* ad slot in bottom promo */ body.front div#promo div.advertiser-links { margin-right: 0; clear: right; } /* ad slot in bottom promo ends */ div.numbered-list span.count { display: inline; padding-right: 0.2em; } div.numbered-list div.strap { display: inline; } div.numbered-list li { padding-bottom: 4px; padding-top: 2px; } /* sub and sup styling starts */ sup, sub { vertical-align: 0; position: relative; } sup { bottom: 0.8ex; } sub { top: 0.6ex; } /* sub and sup styling ends */ p.ip_logged { margin-top: 6px; } div#wrapper div#box img.image-badge { border-bottom-width: 3px; border-bottom-style: solid; } body.series-index div#wrapper div#box img.image-badge, body.special div#wrapper div#box img.image-badge, body.keyword-page div#wrapper div#box img.image-badge { border-bottom: none; } h3.combiner-more-on { margin-bottom: 10px; } ins { text-decoration: none; font-style: italic; } div#promo div#global-jobs h3 { margin-bottom: 0; } ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_bullet.gif Content-Transfer-Encoding: Base64 R0lGODlhDgAMAKIGAMzMzP///93d3dHR0e3t7eXl5f///wAAACH5BAEAAAYALAAA AAAOAAwAAAMsaLrcQWIMQYIrIOtiF9EgQDBCqAnMYGZDugLtUq6o945LgIWcA0mU TmM4TAAAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_gallery.gif Content-Transfer-Encoding: Base64 R0lGODlhDQAMALMEADMzM+Li4qioqP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAAANAAwAAAQlkMhJq70g35nBJl0YgmJg BmIXCKyApusAuCmwZjTc5vDZkTVNBAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_video.gif Content-Transfer-Encoding: Base64 R0lGODlhDgAMALMCADMzM////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAOAAwAAAQfUMhJq70Yg83B9RQYdt1E nh4ZrCu6sa0rz5yw2a4ZAQA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_multimedia.gif Content-Transfer-Encoding: Base64 R0lGODlhDgAMAKIEAJKSktvb28PDw5ycnP///wAAAAAAAAAAACH5BAEAAAQALAAA AAAOAAwAAAMoSEqw/iC0ByWtYF4mpVYZF43OGAWoVQZCyn6g+1JnOsCgIAz3xmS4 BAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/article-bg-lines.gif Content-Transfer-Encoding: Base64 R0lGODlhgQIDAIAAAP///+fn5yH5BAAHAP8ALAAAAACBAgMAAAIvhI+py+0Po5y0 2ouz3rz7D4biSJbm6QToyrbuC8fyTNf2Pav4zvf+DwwKh0RToAAAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/horizontal-related-content.gif Content-Transfer-Encoding: Base64 R0lGODlhbAIZAPcAAM7Ozv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABsAhkAAAj/AAMIHEiwoMGDCBMqXMiw ocOHEB0CiEixosWLGDNWnKixo8ePIEFyDEmypMmTKFOqXDlypcuXMAW2jEmzZsiZ NnPq3Mmz50OcPoMKBSq06E6iRpMqXcp0IdKmUEs+jUrV49SqWLNqJXl1q1eGXb+K PRh2rNmzX8uiFat2rde2buPKDQp3LtW6dqHizcu378m9fo0CDjyUsOHDLgcjPro4 bePHkDMqjhxzMuWXli9rtpt5M8rOnk2CDk3acWmlo09bVc16cerWGF/Dtih7tu2e tW//1M0zN+/fmIHn9C0cIfHiyG8mr7wc5vHm0GlHZzld5fPq2J1m/7tddPfvNK8v OBefnDz47eaLpxe+/vz09r/h85bvfnz91fc10s/Pnr9k/7EBKGCAA1K0n20HFghb ggsqGBGDlwUEADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/no-user-image.gif Content-Transfer-Encoding: Base64 R0lGODlhPAA8AMQAAOzs7Li5usbHyPX19fr6+sLCw9na2tDQ0fDx8cvMzN7e3+Lj 472+v+fn6NTV1f///7S1tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAA8ADwAAAX/ICSOZGmeaKqubOu+cCzP dG3feK7vfM8GgqAg4LMdEI+kEnEoxgQDpVQ5EDhbh6lW2bymsttw11sqhM+PArkE QIcB65HAfbbGF/TwIg6J5rUDfH9hcQGDW4KHU4mKSnxtjQ9wcQ6RDw58AQSNBER8 Bo0GfCOQf5OjEAFIeQieqKkNdA2uryIHfoBjtSUJCgC/AAoJu8TFxsfIMb2lSsHD xAEGuGcDBrRxBpuDBKJxDKuNCAxkBdqWBGpOAuaWDwR2PeXtU+g9AdPzSQPXN3j5 Wnt0zPm3Bd4NZgSb5TCTcEs6GwoablGAA5/EB4FsMLi4ZVyNBBy1PKMBKqSUbjT8 KplMEpAGwpCnZrzkGFPGzIs1Y9yUmBPGzoY9X/xMGNTFUIJFWxz9lxRCCAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_twitter.gif Content-Transfer-Encoding: Base64 R0lGODlhDgAQANUAAP///4Pc/f7+/vj4+Pv+/4Tc/ff396jl/fn5+fz8/IXc/fr9 /5bg/fX19eb2/v3+//39/evr6+/v7/Pz8+zs7PHx8djy/ubm5vv7+7zq/vj9/9Tx /rTn/cDr/vX7/+L1/vDw8LDm/ej3/uf3/6nl/Yve/dby/q/m/fb8/9Xx/pjg/Y7e /fb29ujo6JPf/aHi/Yjd/ez4/9ny/u3t7fT09Nvz/r3q/u75/wAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAOABAAAAaPQIAgQcQAjsijAAJAEQCD JDIB2ChUHgRCCgWQAoGaACFYJgQAA+AANhHehAeArGYHCni8ayRo1MGAgBkAEn93 CogKKx8CEYYpC5ELchcDhhZSFxVzABxgIU9JZAMCMoAlDKkvMQIsEAMPJ4GANoQA DRgEHTCBBZgRRyBRGiIOxjcAMxNIExQVDQPRNC0UAEEAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=article-top.css Content-Type: text/css; name=article-top.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/article-top.css Content-Transfer-Encoding: 8bit /* ---------- screen.css starts here ---------- */ @import "base.css"; /* ---------- rules.css starts here ---------- */ /* ---------- most-viewed.css starts here ---------- */ div#most-viewed { margin-bottom: 10px; } #most-viewed div.pane-wrapper, #most-commented div.pane-wrapper { border-top-width: 1px; border-top-style: solid; } #most-viewed div.most-pane { margin-top: 0; padding-top: 2px; padding-bottom: 5px; } #most-viewed div.most-pane ol li { width: 240px; margin-right: 10px; margin-left: 10px; } #most-viewed div.most-pane ol li.more-most-viewed { padding-left: 0; } div#wrapper #most-viewed div.tab-toggle-pane ol li { padding-top: 3px; padding-bottom: 8px; } div#wrapper #most-viewed div.tab-toggle-pane ol li.first { border-top-style: none; padding-top: 6px; } div#promo div#most, div#promo div.pane-wrapper, div#promo #most-viewed div.most-pane { margin-bottom: 0; } #promo #most .meta { overflow: auto; margin-left: 10px; margin-bottom: 5px; } #promo #most .meta, #promo #most-viewed ol li.more-most-viewed { width: 260px; } #most .meta p.more-on { border-top-width: 1px; border-top-style: dotted; padding-top: 5px; float: left; width: 35%; } body.most-viewed #content h3 { font-weight: normal; } div#most div.most-pane li { border-top: 1px dotted #999; clear: both; padding-bottom: 8px; padding-top: 5px; } div#most div.most-pane li span.rank { float: left; padding-right: 4px; } /* ---------- most-viewed.css ends here ----------- */ /* ---------- rss-feed.css starts here ---------- */ div#pickable-rss-rule-slot div.rss_wrapper { margin-bottom: 20px; border-top-style: solid; border-top-width: 1px; clear: both; } div#pickable-rss-rule-slot div.rss_wrapper h3 { padding-top: 3px; margin-bottom: 10px; font-size: 1em; font-family: arial, sans-serif; } div#pickable-rss-rule-slot div.rss_wrapper ul li, div.rss-feed div.rss_wrapper ul li, div.rss-trailblock li { border-top-style: dotted; border-top-width: 1px; padding-top: 5px; padding-bottom: 5px; } div#pickable-rss-rule-slot div.rss_wrapper ul li a { font-weight: bold; } div#pickable-rss-rule-slot div.rss_wrapper ul li.footer a { font-weight: normal; } div#promo div.rss-feed, div.rss-trailblock div.ft p { padding-bottom: 0; } div#promo div.rss_wrapper ul li.footer { margin-top: 15px; } /* new component styles for old style templates */ div.rss-trailblock { background-color: #F3F3F3; border-top: 10px solid #D3D3D3; padding-left: 10px; padding-right: 10px; margin-bottom: 20px; overflow: hidden; } #promo div.rss-trailblock div.hd { margin-bottom: 0; } #promo div.rss-trailblock h2 { border-top: none; padding-top: 3px; padding-bottom: 18px; font-weight: bold; } /* ---------- rss-feed.css ends here ----------- */ /* these are used across multiple components, they're not connected to a single one */ /* ---------- grid-columns.css starts here ---------- */ /* The grid is based on 60px columns Column widths are worked out as 60px + 80px for each subsequent column e.g. 4 col = 60px + (80px * 3) = 300px */ .eleven-col, .ten-col, .nine-col, .eight-col, .seven-col, .six-col, .five-col, .four-col, .three-col, .two-col, .one-col { float: left; overflow: hidden !important; margin-right: 20px; } .twelve-col { clear: both; position: relative; width: 940px; } .eleven-col { width: 860px; } .ten-col { width: 780px; } .nine-col { width: 700px; } .eight-col { width: 620px; } .seven-col { width: 540px; } .six-col { width: 460px !important; } .five-col { width: 380px; } .four-col { width: 300px; } .three-col { width: 220px; } .two-col { width: 140px !important; } .one-col { width: 60px; } /* 'last' classname is deprecated for purpose of removing right margin, please use 'edge' instead */ .last, .edge { margin-right: 0; } /* ---------- grid-columns.css ends here ----------- */ /* ---------- component.css starts here ---------- */ /* ---------- classes.css starts here ---------- */ /* site-wide border styles */ .b1 { border-top-width: 10px; border-top-style: solid; } .b2, .b3, .b4 { border-top-color: #999; padding: 3px 0 6px 0; } .b2, .b4 /* b4 uses zone colour */ { border-top-width: 1px; border-top-style: solid; } .b3 { border-top-style: dotted; border-top-width: 1px; } .b5 /* uses zone colour */ { border-top-width: 3px; border-top-style: solid; } /* site-wide text styles */ .t1, .t2, .t3, .t4, .t5, .t6 { font-family: georgia, serif; font-weight: normal; } .t1 { font-size: 24px; line-height: 27px; } .t2 { font-size: 18px; line-height: 21px; } .t3 { font-size: 16px; line-height: 19px; } .t4 { font-size: 16px; line-height: 19px; font-weight: bold; } .t5, .t6 { font-size: 14px; line-height: 17px; } .t5 { font-weight: bold; } .t7 { font-family: arial, sans-serif; font-size: 12px; line-height: 15px; font-weight: bold; } /* site-wide list styles */ .l1, .l1d li { border-top-style: dotted; border-top-width: 1px; border-top-color: #999; padding: 2px 0 6px 0; } .l2, .l2d li { margin-bottom: 13px; } /* ---------- classes.css ends here ----------- */ /* ---------- placeholder.css starts here ---------- */ .placeholder-instructions { background-color: #ddd; padding: 10px; margin: 0; margin-bottom: 20px; clear: left; } /* ---------- placeholder.css ends here ----------- */ h2, h3 { font-family: georgia, serif; font-weight: normal; } h2 { font-size: 14px; font-weight: bold; line-height: 1.25; } h3 { font-size: 16px; padding-top: 1px; display: block; } .three-five-four-grid h3 { font-size: 18px; line-height: 1.17; } p, .strap { font-family: arial, sans-serif; } .strap { font-weight: bold; margin-top: 3px; } .component { display: inline-block; margin-bottom: 20px; background-color: #fff; } .component .hd h2 { font-weight: bold; } .hd { padding-top: 4px; padding-bottom: 15px; border-top: 10px solid; } .bd .first { margin-bottom: 20px; } .ft { border-top: 1px dotted #999; clear: both; margin-top: 5px; padding-top: 2px; } .comment-count-info { background-position: 0 3px; padding: 2px 0 2px 16px; } /* ---------- slot-machine.css starts here ---------- */ .slot-machine, .slot-machine-two { clear: left; } .slot-machine h2 { width: 100%; overflow: hidden; } .slot-machine li { margin-top: 5px; padding-bottom: 10px; } .slot-machine h3 { border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: dotted; border-color: #ccc; font-family: arial, sans-serif; font-size: 12px; font-weight: bold; padding-top: 1px; padding-bottom: 7px; } .slot-machine img { margin-top: 5px; margin-bottom: 1px; vertical-align: bottom; } .slot-machine p.strap, .slot-machine h4, .slot-machine-two p.strap { margin-bottom: 3px; margin-top: 3px; font-weight: bold; font-size: 12px; } /* specific to the horizontally displayed slot machine */ .slot-machine-two li { float: left; width: 140px; } .slot-machine-two li.odd { margin-right: 20px; } .slot-machine-two li.hd { width: 100%; margin-top: 0; border-top: 3px solid #999; } .slot-machine-two li.hd h3 { font-size: 20px; } .slot-machine-two .footer-heading { clear: both; margin-top: 20px; float: left; width: 100% } .slot-machine-two .footer-heading li { float: none; border-top: 1px dotted #999; padding-top: 3px; padding-bottom: 3px; width: 100% } /* ---------- slot-machine.css ends here ----------- */ /* ---------- section-heading.css starts here ---------- */ .section-heading { margin-bottom: 25px; position: relative; } .section-heading a.feed { background-image: url(images/icon_rss.gif); background-position: 0 0; padding-left: 18px; padding-top: 1px; position: absolute; right: 3px; top: 0; width: auto; left: auto; } /* ---------- section-heading.css ends here ----------- */ /* ---------- mpu.css starts here ---------- */ #mpu1 iframe, #mpu1 img, #mpu1 object, #mpu1 embed, #mpu1 div, #rightslot1 iframe, #rightslot1 img, #rightslot1 object, #rightslot1 embed, #rightslot1 div { margin-bottom: 10px; } #intrusive { display: inline; } #intrusive img.ad-placeholder { display: none; } /* ---------- mpu.css ends here ----------- */ /* ---------- jobs-box-front.css starts here ---------- */ div#section-contents div.jobsbox { margin-bottom: 0; padding-bottom: 20px; width: 300px; } div#section-contents div.jobsbox ul.jobs, div#section-contents div.jobsbox ul.jobs h4, div#global-jobs h4 { font-family: arial, sans-serif; font-size: 12px; font-weight: normal; } div#global-jobs #find-job-container h4 { font-weight: bold; } div.jobsbox ul.jobs li, div#section-contents div.jobsbox ul.jobs li, p.find-a-job { padding-bottom: 10px; padding-top: 3px; } div#section-contents div.jobsbox ul.media-jobs li { padding-bottom: 6px; } div#section-contents div.jobsbox { background: white; } div#section-contents div.jobsbox h3 { padding-top: 5px; } div.jobsbox form, div#section-contents div.jobsbox form { padding-bottom: 5px; } .jobs li { border-top-style: dotted; border-top-width: 1px; border-top-color: #999; } div.jobsbox p.find-a-job { border-top-width: 1px; border-top-style: solid; border-top-color: #999; } div.jobsbox p.find-a-job a { font-weight: bold; } /* ---------- jobs-box-front.css ends here ----------- */ /* ---------- heading-vertical-links.css starts here ---------- */ .heading-vertical-links li, .heading-vertical-links h4 { font-family: arial, san-serif; font-size: 12px; } .heading-vertical-links li.major-heading { border-top-width: 10px; border-top-style: solid; padding-bottom: 15px; } .heading-vertical-links h2 { border-top: none !important; font-weight: bold; margin-bottom: 0 !important; } .heading-vertical-links li { border-top-style: dotted; border-top-width: 1px; clear: both; overflow: hidden; padding-top: 3px; padding-bottom: 7px; width: 140px; } .heading-vertical-links li.first, .heading-vertical-links li.sub-header { border-top-style: solid; } .heading-vertical-links li.sub-header { border-top-color: #999; font-weight: bold; } .heading-vertical-links span.count { float: left; font-weight: bold; margin-right: 10px; } .heading-vertical-links.numbered div.trail-caption { float: left; width: 115px; } .heading-vertical-links li.heading { border-top-style: solid; border-top-color: #999; } .heading-vertical-links li.picture { border-top: none; padding-top: 0; } /* ---------- heading-vertical-links.css ends here ----------- */ /* ---------- sponsored-features.css starts here ---------- */ /* I've added the body class selector here because when component.css (which imports this file) was added site-wide, any component with a sponsored-features class name was being made invisible by the display: none. This usually gets turned on by ad-fed javascript, but it turns out that the classname is used all over the place in many ways and needs to be cleaned up before this is made more generic again phaine 9/11/09 */ .three-five-four-grid .sponsored-features { border-top-style: solid; border-top-width: 10px; display: none; } .three-five-four-grid .sponsored-features h3 { font-weight: bold; font-size: 14px; padding-bottom: 0; margin-bottom: 0; } .three-five-four-grid .sponsored-features ul li.image { width: 140px; float: left; } .three-five-four-grid .sponsored-features li.odd { clear: left; margin-right: 20px; } /* ---------- sponsored-features.css ends here ----------- */ /* ---------- component.css ends here ----------- */ /* ---------- promo-component.css starts here ---------- */ .promo-component { border-top-style: solid; border-top-width: 10px; border-top-color: #D3D3D3 !important; float: none !important; margin-bottom: 10px; overflow: hidden; padding-top: 1px; padding-right: 10px; padding-left: 10px; padding-bottom: 15px; background-color: #F3F3F3 !important; width: 280px !important; } .promo-component h3 { font-weight: bold !important; font-family: georgia, serif !important; font-size: 14px !important; margin-bottom: 0 !important; } .promo-component .hd, .promo-component .bd, #promo #global-jobs .hd /* this is here for the jobs box which is too complex to refactor at this stage */ { border-top: none !important; margin-bottom: 0 !important; } .promo-component .bd .first { margin-bottom: 0; } .promo-component .two-col, .promo-component .two-col li { width: 130px !important; } /* ---------- promo-component.css ends here ----------- */ /* ---------- tag-badging.css starts here ---------- */ div#wrapper div#badge-full, div#wrapper div#badge-medium, div#wrapper div#badge-small { position: relative; } div#wrapper div#badge-full div.feeds, div#wrapper div#badge-medium div.feeds, div#wrapper div#badge-small div.feeds { position: absolute; bottom: 7px; left: 0; padding-right: 70px; background-image: url(images/white-bg-fade.png); background-position: right bottom; background-repeat: no-repeat; } div#wrapper div#box div#content div#article-header div#badge-full div.feeds a, div#wrapper div#box div#content div#article-header div#badge-medium div.feeds a, div#wrapper div#box div#content div#article-header div#badge-small div.feeds a, div#wrapper div#badge-full div.feeds a, div#wrapper div#badge-medium div.feeds a, div#wrapper div#badge-small div.feeds a { margin: 0; left: 0; top: auto; right: auto; bottom: 0; padding-top: 3px; padding-left: 21px; padding-right: 10px; padding-bottom: 3px; float: left; background-color: #fff; background-position: 3px; } div#wrapper div#badge-full div.feeds a:focus, div#wrapper div#badge-full div.feeds a:active, div#wrapper div#badge-medium div.feeds a:focus, div#wrapper div#badge-medium div.feeds a:active, div#wrapper div#badge-small div.feeds a:focus, div#wrapper div#badge-small div.feeds a:active { background-color: #005689; color: #fff; } div#wrapper h1#section-heading div#badge-full div.feeds a { font-size: 0.5em; font-family: arial, sans-serif; line-height: 1.2; } /* ---------- tag-badging.css ends here ----------- */ /* ---------- rules.css ends here ----------- */ /* ---------- icons.css starts here ---------- */ /* ---------- minimum-set-icons.css starts here ---------- */ ul.user-details { background-image: url(images/icon_userinfo.gif); } li#larger { background-position: 12px 0; background-image: url(images/icon_textsize.gif); } div#promo div#finance-guides li.info { background-image: url(images/i_icon.gif); background-position: left; text-indent: 17px; } #promo li.bullet { background-image: url(images/icon_bullet.gif); } /* ---------- minimum-set-icons.css ends here ----------- */ @media all { li.print a { background-image: url(images/printer.gif) } li.email a { background-image: url(images/mail.gif) } li.save a { background-image: url(images/printer.gif) } p.jump-related { background-image: url(images/jump_related_arrow.gif); background-position: 0 5px; height: 22px; } #related #fact-box, #related #article-trailblock h2.blog, #related #article-trailblock h2.pictures, #related #article-trailblock h2.audio, #related #article-trailblock h2.interactive { background-position: 0 3px; } #related #article-trailblock h2.blog { background-image: url(images/icon_textdoc.gif); } #related #article-trailblock h2.pictures { background-image: url(images/icon_gallery.gif); } #related #article-trailblock h2.audio { background-image: url(images/icon_audio.gif); } #related #article-trailblock h2.interactive { background-image: url(images/icon_textdoc.gif); } #related div.more-videos h2 { background-image: url(images/icon_video.gif); } ul#article-toolbox li a { background-position: 3px 0; } body.cif ul#article-toolbox li a.printable { background-image: url(images/icon_print.gif); } body.cif ul#article-toolbox li a#sharelink { background-image: url(images/icon_share.gif) } body.cif ul#article-toolbox li a#clippable { background-image: url(images/icon_clip.gif) } body.cif ul#article-toolbox li a#sendlink { background-image: url(images/icon_email-friend.gif) } body.cif ul#article-toolbox li a#contactlink { background-image: url(images/icon_email-us.gif) } body.cif ul#article-toolbox li a#historylink { background-image: url(images/icon_history.gif) } body.cif #content ul#article-toolbox li a.save { background-image: url(images/icon_save_for_later.gif) } .comment-count-info { background-position: left center ; padding: 0 0 2px 16px; margin-top: 0; display: block; clear: both; } #comment-info-related a.comment-count-info { padding: 0 0 2px 20px; } #pluck-container a.comment-count-info, #pluck-container span.comment-count-info { background-image: none; padding-left: 0px; } div.full a.comment-count-info { padding-top: 4px; } body.cif-combiner div.full a.comment-count-info { border-top: none; padding-top: 0; } #content a.shower, #content a.read-full-article { background-image: url(images/icon_triangle_right.gif); padding: 3px 0 2px 20px; background-position: -1px 0; } #content a.shower.open, #content a.showerstyle.open { background-image: url(images/icon_triangle_down.gif); } a.shower, a.showerstyle { background-image: url(images/icon_triangle12_right.gif); padding: 3px 0 2px 14px; background-position: 0 3px; } a.shower.open, a.showerstyle.open { background-image: url(images/icon_triangle12_down.gif); } a.close { padding: 0px 20px 3px 0px; background-position: right top; background-image: url(images/icon_close.gif); } a.feed { background-image: url(images/icon_rss.gif); padding-left: 18px; background-position: 0 0; padding-top: 1px } /* Bullet images and icons ------------------------------------------------------------------------------*/ body.network #content ul.sublinks li.bullet, body.vss #content ul.sublinks li.bullet, li.bullet, li.factsheet, body.article div#article-wrapper li { background-position: 0 1px; text-indent: 17px; } body.article div#article-wrapper li { background-position: 0 3px; } .video-front div#content div#video-player ul li.bullet, .video-series div#content div#video-player ul li.bullet, body.trailerpark ul#video-trailblock li.bullet, ul.sublinks li.bullet, body.front div#content div#feature-pick li.bullet, body.article div#article-wrapper li { background-image: url(images/icon_bullet.gif); } body.audio-popup div#box div#popup-content div#audio-player div.bullet li { background-image: url(images/icon_bullet.gif); background-position: 0 2px; } body.article div#article-wrapper ul.pagination li, body.article div#article-wrapper div.factbox ol li { text-indent: 0; background-image: none; } ul.sublinks li.audio, body.network #wrapper #box div.more-news ul li.audio { background-image: url(images/icon_audio.gif); } ul.sublinks li.video, body.network #wrapper #box div.more-news ul li.video { background-image: url(images/icon_video.gif); } ul.sublinks li.graphic { background-image: url(images/icon_graphic.gif); } ul.sublinks li.interactive, body.network #wrapper #box div.more-news ul li.interactive { background-image: url(images/icon_multimedia.gif); } ul.sublinks li.gallery, ul.sublinks li.audioslideshow, body.network #wrapper #box div.more-news ul li.gallery, body.network #wrapper #box div.more-news ul li.audioslideshow { background-image: url(images/icon_gallery.gif); } body.network ul#reader-offers li.bullet { text-indent: 0; background-image: none; } li.factsheet { background-image: url(images/icon_factsheet.gif); } p.bullet { background-image: url(images/icon_bullet.gif); background-position: 0px 1px; clear: left; text-indent: 17px; } #top-table form { background-image: url(images/knife-fork60.gif); background-position: 100% 5px; } div#abuse-component span#report-abuse-box-link-container { margin-top: 5px; background-image: url(images/pluck/report-abuse.gif); padding-left: 18px; width: auto; } } body.network #wrapper #box div.more-news ul li.icon { text-indent: 20px; background-position: 0 2px; } /* ---------- icons.css ends here ----------- */ /* ---------- dialog-box.css starts here ---------- */ #abuse-box-wrapper, #signin-div-wrapper, div.dialog-box-wrapper { display:block; z-index:100; background:transparent url(images/white-bg.png) top left repeat; position:fixed; width:100%; height: 100%; } #abuse-box, div.dialog-box { border: 1px solid #333; z-index:800; background-color: #fff; color: #000; top:100px; width: 288px; padding: 10px 10px 10px 10px; position:fixed; } #abuse-box { font-size: 0.75em; } body.popup-comments #abuse-box { font-size: 1em; } body.popup-comments #abuse-box h2 { font-family: georgia, serif; } #wrapper #abuse-box { font-size: 1em; } div.dialog-box.scrollable { position: absolute; } #comment-box-pluck .post-comment-header { float: left; width: 420px; } #comment-box-pluck .post-comment-header h1 { margin-bottom: 20px; } #comment-box-pluck #close-comment-box, #abuse-box-wrapper #abuse-box-close, #signin-div #login-close { float: right; width: 80px; text-align: right; } #comment-box-pluck #close-comment-box a, #abuse-box-wrapper #abuse-box-close a, #login-close-link { background: #fff url(images/close_button.gif) top right no-repeat; padding: 0 18px 0 0; } .comment-author { clear: both; } .comment-author ul { overflow: hidden; } .comment-author .comment-author-img { float:left; width: 35px; } .comment-author .comment-author-name { float: left; width: auto; } .comment-author .comment-author-name a { display: block; } .comment-author .author-role { float: right; width: 35px; } .premoderation-warning { color:red; font-weight:bold; margin-top:5px; } .user-premoderation-warning { display: none; } #comment-box-edit, #comment-box-progress, #comment-close-confirmation-area, #comment-premoderation-area, #comment-thank-you-area { clear: both; } #comment-box-edit, #abuse-box-edit-area { margin: 20px 0 0 0; } #abuse-box-edit-area { border-top:1px dotted #ccc ; } #comment-box-edit fieldset { margin: 0; clear: both; } #comment-box-edit #blockquote-button { float:left; margin-bottom: 3px; width: 100%; } #blockquote-button input { float: left; background-color: #ededed; border: 1px solid #333; color: #333; font-size: 0.915em; margin-right: 5px; } #blockquote-button p { text-align: right; float: right; padding-top: 2px; position: relative; } #comment-box-pluck #comment-box-edit { margin-top: 17px; } #comment-box-pluck #comment-box-edit #blockquote-button { margin-bottom: 1px; width: 449px; } #comment-box-pluck #blockquote-button input { background-color: #e8e8e8; border-style: outset; border-top-color: #fff; border-left-color: #fff; border-right-color: #666; border-bottom-color: #666; margin-right: 3px; } #comment-box-pluck #blockquote-button input#add-bolds { font-weight: bold; } #comment-box-pluck #blockquote-button input#add-italics { font-style: italic; } #comment-box-pluck #blockquote-button input#add-links { color: #005689; } #comment-box-pluck #blockquote-button p { margin-top: 0; padding-top: 0; top: 2px; } #comment-body, #comment-box-progress, #abuse-progress-area, #abuse-description, #pluck-loading-dialog { font-size: 1em; font-family: arial, sans-serif; } #abuse-description { width:100%; } #comment-body { width: 447px; } #comment-box-progress, #abuse-progress-area, #abuse-thank-you-area, #abuse-close-confirmation-area, #comment-close-confirmation-area, #abuse-pluck-error-area { border-top: 1px dotted #ccc; border-bottom: 1px dotted #ccc; margin-top: 20px; } #comment-box-progress, #abuse-progress-area { background: url(images/pluck-loading-bar.gif) center center no-repeat; } #comment-box-progress p, #abuse-progress-area p, #abuse-thank-you-area p, #abuse-close-confirmation-area p, #comment-close-confirmation-area p, #pluck-loading-dialog p { margin: 70px 0 50px 0; text-align: center; } #pluck-loading-dialog { border-top-width: 1px; border-top-style: dotted; padding: 70px 0; } #pluck-loading-dialog p { padding-bottom: 10px; text-align: left; font-weight: bold; width: 300px; margin: 0 auto; } #pluck-loading-dialog p span { height: 10px; display: block; background: url(images/pluck-loading-bar.gif) top no-repeat; border: 1px solid; overflow: hidden; } #comment-box-pluck #comment-box-progress p { margin: 155px 0 124px; } #comment-box-pluck #comment-premoderation-area p { margin: 122px 0 135px; } #comment-box-pluck #comment-close-confirmation-area p { margin: 96px 0 79px; } #comment-box-pluck #comment-thank-you-area p { margin: 137px 0 142px; } #comment-box-pluck #comment-pluck-error-area p { margin: 113px 0 101px; } #abuse-box #abuse-progress-area p { margin: 148px 0 116px; } #abuse-box #abuse-close-confirmation-area p { margin: 80px 0; } #abuse-box #abuse-thank-you-area p { margin: 104px 0 123px; } #submit { text-align: right; margin: 20px 0; } #comment-box-pluck #submit { margin: 10px 0; } #comment-box-pluck #submit .msg { float: left; } #submit #submit-comment { border-top-width: 2px; border-bottom-width: 1px; } #abuse-box #abuse-box-edit-area p { margin: 10px 0; } #abuse-box label { font-weight: bold; } #abuse-box label span { font-weight: normal; } #abuse-close-confirmation-area p input, #comment-close-confirmation-area p input, #abuse-thank-you-area p input { display: block; margin: 15px auto; } #abuse-box { width: 300px; height: 320px; } #abuse-box h2 { font-size: 1.3em; font-weight: bold; border: none; margin-top: 0; } #abuse-box-wrapper #abuse-email-info, #abuse-box-wrapper #abuse-login-info { float: left; width: 200px; } #abuse-box-wrapper #abuse-email-info { clear: both; } #abuse-box-wrapper #abuse-submit-container { float: right; width: 96px; text-align: right; } #abuse-box-wrapper #abuse-submit { margin-top: 25px; } body.pluck-user-profile div#user-profile div#abuse-box span { display: inline; float: none; margin-right: 0; width: auto; } body.pluck-user-profile div#user-profile span#report-abuse-box-link-container { position: absolute; right: 0; top: 35px; background-image: url(images/pluck/report-abuse.gif); padding-left: 18px; width: auto; } /* Inline login pop up styles */ #signin-div { position: fixed; z-index:800; width: 368px; padding: 0; } #inline-login { width: 368px; background-color: #fff; font-size: 12px; color: #333; } #signin-div #login-close { font-weight: bold; padding: 10px 10px 0; } #inline-login form { padding: 0 10px 10px; clear: both; } #inline-login h1 { font-size: 1em; font-weight: bold; font-family: arial, sans-serif; padding: 10px 0 0 10px; width: auto; } #inline-login legend { text-indent: -9999px; } #inline-login span.row label { display: block; margin-right: 5px; width: 103px; } #inline-login span.row { width: 100%; overflow: hidden; display: block; } #inline-login span.row label, #inline-login span.row input { float: left; } #inline-login span.row input { width: 200px; } #inline-login #inline-email-label, #inline-login #inline-remember-label { padding-bottom: 14px; } #inline-login #inline-remember-label { margin-top: 5px; } #inline-login #forgot-password { margin-left: 107px; font-size: 0.916em; clear: left; } #inline-login input#inline-remember { margin-top: 6px; width: auto; } .dialog-button, div.ReportAbuse_Comment input { float: right; font-family: arial, sans-serif; font-size: 1em; margin-top: 20px; margin-left: 10px; padding: 1px 4px; cursor: pointer; } #inline-login input#popUpSignIn, div.ReportAbuse_Comment input { font-weight: bold; background-color: #005689; color: #fff; border-width: 1px; border-color: #005689; } #inline-login input#cancelSignIn { border: 1px solid; background-color: #eee; } /* ---------- dialog-box.css ends here ----------- */ /* ---------- screen.css ends here ----------- */ /* ---------- article.css starts here ---------- */ /* ---------- film-script.css starts here ---------- */ span.film-script, span.film-description, span.film-title { font-family: Courier, "Courier New", serif; display: block; line-height: 1.25; } span.film-title { text-align: center; margin-bottom: 50px; margin-top: 100px; } span.film-script { width: 300px; } span.film-script strong, span.film-script { margin-left: 80px; } span.film-description strong, span.film-title strong, span.film-script strong { display: block; } /* ---------- film-script.css ends here ----------- */ /* ---------- tri-trailblock.css starts here ---------- */ /* alternative tri trailblock layout ----------------------------------------------------------------------*/ ul.alternative { overflow: hidden; } ul.alternative li.wide img, #content ul.alternative li.normal, #content ul.alternative li.wide { float: left; } ul.alternative li.wide div.trail-caption, #content ul.alternative li.normal { width: 140px; } #content ul.alternative li.wide { clear: both; width: 460px; } ul.alternative li.wide div.trail-caption, #content ul.alternative li.normal { margin-left: 20px; } #content ul.alternative li.odd, #box #content ul.alternative li.wide { margin-left: 0; } ul.alternative li.wide div.trail-caption { float: right; } #box #content ul.alternative li.image { border-top: none; } /* end alternative trailblock layout */ /* full-width tri trailblock layout ----------------------------------------------------------------------*/ ul.tri { overflow: hidden; } body.full-width #content #main-trailblock li { width: 220px } #content #main-trailblock li li { width: auto } #content ul.tri li { float: left; } ul.tri li, ul.tri li a { width: 140px; overflow: hidden !important; } ul.tri li { margin-left: 20px; } ul.tri li.first { margin-left: 0; clear: left; } /* end tri trailblock layout */ ol.odd { margin-right: 20px } #content div.commercial-trail li .link-text { line-height: 1.14285; } div.text { border-top-width: 1px; border-top-style: dotted; padding-top: 3px; margin-bottom: 25px; } /* ---------- tri-trailblock.css ends here ----------- */ /* ---------- article-page.css starts here ---------- */ /* CSS for pages with body class article */ body.article div#content p.caption { margin-top: 0; } #wrapper { background-image: url(images/article-bg-lines.gif); background-repeat: repeat-y; } body.article h2.related-information { background-image: none; border-top-width: 1px; border-top-style: dotted; } body.article div.more-on-bmj { float: right; width: 140px; } body.article div.more-on-bmj li { border-top-width: 1px; border-top-style: dotted; padding-top: 3px; padding-bottom: 7px; } body.article div#wrapper div#box div#related div.more-on-bmj ul li.first { border-top-width: 1px; border-top-color: #FFC202; border-top-style: solid; font-weight: bold; margin-top: 30px; margin-bottom: 20px; } div.bmj-condition-nav { border-bottom: 1px solid #999999; margin-bottom: 10px; } div.bmj-condition-nav .tabs { float: none; overflow: hidden; } body.article div#also-on { border-top-width: 10px; border-top-style: solid; width: 620px; } body.article #content p, #content #article-wrapper ul { margin-bottom: 13px; } body.article #compare-and-buy-money-supermarket .link { margin-left: 0; } body.reuters #article-header { padding-left: 0; } body.article #content { width: 460px; margin-bottom: 10px; } body.article #content p { padding-right: 0; } a.open span.remaining { display: none } body.article #box { margin-bottom: 0; } body.article #box #content h2, body.article #box #content h3 { padding: 2px 0; margin: 20px 0 10px 0; } body.article #box #content h2, body.article #box #content h3 { border-top: 1px dotted #999; } body.article #box #content h2, body.article #box #content h3 { border-bottom: 1px dotted; } body.article .tips li.last a.more { display: block; } div#content p#credit { margin-bottom: 0; } /* byline tools */ div#history-link-box { position: relative; top: -26px; } div#history .section, div#history-link-box .section { margin: 0 5px 0px 5px; } div.sponsored-features li.normal { border-top-width: 1px; border-top-style: dotted; margin-left: 0; padding-top: 3px; width: 280px; } div.sponsored-features li.image { border-top: none; width: 130px; } div.sponsored-features li.image.odd { margin-left: 20px; } body.article div#related div.sponsored-features li { margin-left: 0; width: 140px; } body.article div#wrapper #box ul.pagination li.first, body.article div#wrapper #box ul.pagination li.last { width: 140px } body.article ul.pagination { clear: both; font-size: 12px; } div#stock-search { border-top-width: 1px; border-top-style: dotted; margin-top: 10px; } div#stock-search form#stock-search-form { margin-top: 5px; } /* readers tips */ div#readers-tips { width: 620px; float: left; margin-bottom: 10px; background-image:url(images/simplesite-inner-bg.gif); background-repeat:repeat-y; } div#readers-tips h3 { border-top-width: 10px; border-top-style: solid; padding-bottom: 14px; padding-top: 3px; } div#readers-tips.empty { background-image: none; } div#readers-tips li { width: 300px; float: left; margin-bottom: 10px; } div#readers-tips li.odd { padding-right: 20px; } div#readers-tips li p.tip-header { margin-bottom: 10px; padding-top: 3px; border-top-width: 1px; border-top-style: dotted; } div#readers-tips li.last { float: right; border-top-width: 1px; border-top-style: dotted; padding-top: 3px; } div#readers-tips li.last a { display: inline; } /* football summary */ /* Hide the top border for every match report except for football, because it has a summary at the top of the article */ body.match-report .article-attributes { border-top: none; } body.match-report #tabs, body.cricket-match #tabs { border-bottom: 1px solid #999; } body.match-report .tabs li a { font-size: 12px; } body.match-report #article-header h1#heading-alone { margin-bottom: 0; min-height: 0; } body.match-report #article-header h1#heading-alone, body.match-report #article-header #stand-first { padding-bottom: 45px; } body.football .article-attributes { border-top-width: 1px; border-top-style: solid; } body.match-report #related { margin-top: 5px; } body.match-report #box #content #match-stats-summary h2 { margin-top: 0; border-top: 0; } #tabs:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } #match-stats-summary { clear: both; } #match-stats-summary table { border-collapse: collapse; margin-bottom: 12px; } #match-stats-summary table td, #match-stats-summary table th, #match-stats-summary table caption { vertical-align: top; } #match-stats-summary table caption { padding-bottom: 7px; } #match-stats-summary table th { padding-right: 30px; } #match-stats-summary table td li { display: inline; color: #999; } /* footer */ body.article #wrapper #footer { padding-top: 10px; border-top: none; } body.article #wrapper #footer #footer-links { border-top-width: 10px; border-top-style: solid; padding-top: 4px; } /* big image holder -----------------------------------------------------------------------------*/ #big-picture-holder { display: none; } #show-big-picture-link.mask img.mask, #show-big-picture-link.mask div.mask { bottom: 0; right: 0; left: auto; top: auto; } #show-big-picture-link img { vertical-align: bottom; } #big-picture-holder p.toolbox { margin-bottom: 10px; margin-top: 2px; } /* History by line --------------------------------------------------------------------------------------------------*/ div#history-link-box { position: absolute; top: -20px; display: none; } #article-wrapper { position: relative; } div#article-wrapper span.embed span.caption { padding-bottom: 10px; width: 460px; } .pluck-init-block, .pluck-init-inline { display: none; } div#article-wrapper ul li { margin-bottom: 0; } #promo div.jobsbox form { margin-bottom: 15px; } #promo div.jobsbox p.find-a-job { padding-bottom: 0; } #highlights { float: left; } /* ---------- article-page.css ends here ----------- */ /* ---------- related-content.css starts here ---------- */ /* NOTE: section-contents relates to the audio template */ /* GALLERY and VIDEO page related content is at the bottom of this file */ div.related-content { background-image: url(images/horizontal-related-content.gif); background-repeat: repeat-y; background-position: top left; border-bottom-width: 20px; border-bottom-style: solid; clear: left; width: 620px; overflow: hidden; } .related-content h3#relatedInformation, #more-in-series h3, #box .related-content h3.first { border-top-width: 10px; border-top-style: solid; padding-bottom: 14px; padding-top: 3px; } #box .related-content div.relatedlinks h3, .related-content div.relatedlinks h3 { border-top-width: 1px; border-top-style: dotted; padding-bottom: 0; padding-top: 2px; margin-top: 9px; } #box .related-content div.relatedlinks h3.first, .related-content div.relatedlinks h3.first { margin-top: 0; } div.related-content div#keyword-rule-wrapper, div.related-content div.related-item { float: left; width: 140px; margin-right: 20px; } div.related-content div.last { margin-right: 0; } /**** relatedlinks 1st column ****/ div.relatedlinks { margin-bottom: 17px; } div.relatedlinks .relatedlinks-keywords li { display: inline; } div.relatedlinks .relatedlinks-keywords li a span { position: absolute; top: -100em; } div.relatedlinks p.webfeed { border-top-width: 1px; border-top-style: dotted; padding-top: 9px; } div.relatedlinks p.webfeed a { padding-left: 16px; } /**** end relatedlinks 1st column ****/ /**** related-item other columns ****/ div.related-item div.trailtext p { display: inline; } div.related-item p.noTrailPicture { padding-top: 3px; border-top-width: 1px; border-top-style: dotted; } div.related-item p.strap { border-top-width: 1px; border-top-style: solid; padding-top: 3px; padding-bottom: 5px; } div.related-content div.multi p.linktext { margin-bottom: 8px; } div.related-content div.multi h5 { padding-top: 3px; border-top-width: 1px; border-top-style: dotted; } div.related-item div.related-footer { border-top-width: 1px; border-top-style: dotted; margin-top: 8px; padding-top: 3px; } /**** end related-item other columns ****/ /**** related information in the right hand column ****/ div#related { float: right; width: 140px; } div#related div.related-content { background-image: none; } div#related div.related-content, div#related div.relatedlinks, div#related ul#article-toolbox-side, div#related div#previous-polls, div#section-contents div.related-content { clear: none; width: 140px; float: right; } div#related div.relatedlinks h3, div#section-contents .related-content div.relatedlinks h3, body.cartoon #box div.navigation div.relatedlinks h3 { padding-top: 2px; margin-top: 9px; } div#related div.relatedlinks h3, div#related div#blog-keywords ul, div#section-contents .related-content div.relatedlinks h3, body.cartoon div.navigation div.relatedlinks h3 { border-top-width: 1px; border-top-style: dotted; } div#related div.relatedlinks h3.first, div#related div#relatedlinks h3.first, div#related div.relatedlinks .more-of, div#section-contents .related-content div.relatedlinks h3.first { border-top-width: 1px; border-top-style: solid; } div#related h2.strap { padding-left: 5px; border: none; } div#related p.jump-related { padding-left: 20px; } div#related .more-of h3.first, div#related div.relatedlinks h3.first { margin-top: 0; } div#related div.relatedlinks h3.blog-more-on, div#related div.relatedlinks .more-of, div#box div#related div.relatedlinks .front-link, div#section-contents div.relatedlinks .more-of, div#section-contents div.relatedlinks h3.blog-more-on, div#section-contents div.relatedlinks .front-link { margin-top: 17px; } div#related div.relatedlinks .more-of h3.first, div#section-contents .related-content, div#section-contents .related-content ul.relatedlinks-keywords li { border: none; } /* tools ad slot */ #related #tools a { margin-bottom: 15px; display: block; } #related #tools img.ad-placeholder { display: none; } /**** end related information in the right hand column ****/ /**** gallery pages ****/ body.gallery .related-content { width: 140px; } body.gallery #box .related-content div.relatedlinks h3.first { border-top-style: solid; } body.gallery div.related-content { border-bottom: none; } body.gallery #relatedlinks p.jump-related { display: none; } /**** end gallery pages ****/ /**** video pages ****/ body.video #related { float: left; margin-left: 0; margin-right: 20px; clear: both; } body.video #related h3 { padding-top: 2px; border-top-style: dotted; border-top-width: 1px; margin-top: 9px; } body.video #related h3.first { margin-top: 0; } body.video #related ul.relatedlinks-keywords, body.audio #related ul.relatedlinks-keywords { margin-bottom: 0; } body.video h2#video-home-link { margin-top: 17px; margin-bottom: 16px; } /**** end video pages ****/ /**** quiz pages ****/ body.quiz #related ul, body.table #related ul#article-toolbox-side { margin-bottom: 12px; } /**** end quiz pages ****/ /* ---------- related-content.css ends here ----------- */ /* ---------- series-component.css starts here ---------- */ /* more in series navigation at the top */ .series-navigation { overflow: hidden; } .relative-series-navigation { float: right; } .series-navigation { padding-bottom: 9px; margin-bottom: 5px; border-bottom-style: solid; margin-top: 2px; } .series-navigation h4 { float: left; } /* more in series component at the bottom */ div#more-in-series { float: left; margin-bottom: 20px; background-color: #fff; } div#more-in-series, div#more-in-series ul, div#more-in-series p.link-to-index { width: 620px; } div#more-in-series ul { background-image: url(images/simplesite-inner-bg.gif); background-repeat: repeat-y; margin-top: 3px; } div#more-in-series ul, div#more-in-series ul li, div#more-in-series p.link-to-index { float: left; } div#more-in-series ul li { width: 300px; margin-right: 20px; border-top: 1px dotted #999; padding: 3px 0 5px 0; } div#more-in-series ul li.series { margin-right: 0; float: right; clear: right; } div#more-in-series ul li.no-description { margin-right: 20px; float: left; } div#more-in-series ul li h4 { font-family: arial, sans-serif; font-weight: bold; } div#more-in-series p.link-to-index { clear: both; border-top: 1px solid #ccc; padding-top: 3px; background-color: #fff; margin-top: 10px; } /* ---------- series-component.css ends here ----------- */ /* ---------- league-position.css starts here ---------- */ #box #content div#league-position h2 { border-top-style: solid; border-top-width: 10px; } div#league-position table { width: 100%; border-collapse: collapse; } div#league-position tfoot td { text-align: left; padding-left: 0; } div#league-position thead tr { border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: solid; } div#league-position thead th { background-color: #d8d8d8; } div#league-position td, div#league-position th { text-align: right; } div#league-position tr.odd { background-color: #fff; } div#league-position table.full tr.odd { background-color: #f5f5f5; } div#league-position table.full thead th { background-color: #cccccc; } div#league-position tr { background-color: #eaeaea; } div#league-position tr.highlighted td { background-color: #d4d4d4; } div#league-position .position { width: 24px; } div#league-position .team { text-align: left; width: 104px; } div#league-position .played { width: 21px; } div#league-position .won { width: 21px; } div#league-position .drawn { width: 21px; } div#league-position .lost { width: 21px; } div#league-position .points { width: 24px; } div#league-position td, div#league-position th { padding-top: 2px; padding-right: 3px; padding-bottom: 9px; padding-left: 3px; } div#league-position td#more-stats-link { padding-top: 4px; } div#league-position .points { font-weight: bold; padding-right: 5px; } /* Full width table used on table pages */ div#wrapper div#box div#content h2.latest-table-date { margin-bottom: 0; } div#wrapper div#box div#content div#league-position h3 { border-top: 1px solid #999; font-size: 1em; font-family:arial,sans-serif; margin-bottom: 10px; } div#wrapper div#box div#content div#league-position h3.first { border-top: none; padding-top: 0; } div#league-position table.full { margin-bottom: 24px; } div#league-position table.without-heading { margin-top: 26px; } div#league-position table.full thead tr { border-top: 1px solid #999; } div#league-position table.full tfoot tr { border-bottom: none; } div#league-position table.full tr { border-top: none; } div#league-position table.full .position { width: 30px; text-align: center; padding-left: 0; padding-right: 0; } div#league-position table.full .team { width: 155px; padding-left: 0; padding-right: 0; } div#league-position table.full .played, div#league-position table.full .won, div#league-position table.full .drawn, div#league-position table.full .lost { padding-left: 0; width: 30px; padding-right: 5px; } div#league-position table.full td.points { width: 25px; padding-left: 0; } #league-position table th, #league-position table td { border-right-width: 1px; border-right-style: solid; } #league-position table th.last, #league-position table td.last, #league-position table tr#more-stats-link td { border-right: none; } /* ---------- league-position.css ends here ----------- */ /* ---------- pluck-comment-additionals.css starts here ---------- */ /* STYLES FOR ALL PLUCK RELATED PAGES ******************************************************************************** DO NOT REFERENCE ANY BACKGROUND IMAGES FROM THIS STYLESHEET. THIS FILE DOESN'T USE THE DYNAMIC URL WHICH IS GENERATED IN THE MERGE AS PLUCK REQUIRES A STATIC URL. THEREFORE, ANY OF THE IMAGES IN THE STATIC DIRECTORY WHICH ARE REFERENCED FROM HERE WON'T BE FOUND WHEN THE PAGE LOADS. SEE TWIKI PAGE http://twiki.gudev.gnl/twiki/bin/view/Main/PluckWidgetStyleSheet SU 18/09/2008 ********************************************************************************* */ /* SET CONTAINERS TO DISPLAY NONE, IN CASE PLUCK IS SWITCHED OFF */ .pluck-init-block, .pluck-init-inline {display: none;} /* PLUCK COMMENTS */ .featured-comment li { background-color: #FFFF9F; } .pluck-comments-container { clear: both; width:620px; } .pluck-comment-block { clear: both; float: left; margin-top: 3px; } .pluck-comment-block .pluck-comment, .pluck-comments-container .pluck-comment-post { float:left; width: 460px; padding-bottom: 3px; } #open-comment-box-top { margin-bottom: 3px; } #pluck-container h2 span { font-weight: normal; font-size: 0.856em; } #pluck-container h2 span.comment-count-info { font-weight: normal; font-size: 0.9em; font-family: arial, sans-serif; } #pluck-container h2 span span { font-size: 1em; } .pluck-comment-block .pluck-comment-author { width: 80%; float: left; display: block; overflow: hidden; padding-top: 2px; } #box .pluck-comment-block .pluck-comment-author h3 { font-size: 1em; font-family: arial, sans-serif; font-weight: normal; padding-top: 0; } .pluck-comment-block .pluck-comment-tools, .pluck-comments-container .pluck-comment-legend { float: right; width: 140px; color: #333; } .pluck-comment-block .pluck-content { border-top-width: 1px; border-top-style: solid; clear: both; margin: 4px 0 0 0; padding: 0; } #pluck-container ul.first { margin-top: 0; } .pluck-comment-block .pluck-comment, .pluck-comment-block .pluck-comment-tools { margin: 0; padding-bottom: 15px; } .pluck-comments-container #post-comment-div-top { padding-bottom: 26px; } .pluck-comments-container .pluck-comment-addComment { overflow: hidden; clear: both; } div#pluck-container div.pluck-all-comments { padding: 4px 0; } .pluck-comments-container .header .pluck-comment-post, .pluck-comments-container .header .pluck-comment-legend { border-top-width: 1px; border-top-style: solid; padding: 4px 0 0 0; } .pluck-comments-container .footer, .pluck-comments-container .footer .pluck-all-comments, div#post-comment-div-top div.pluck-all-comments, body.pluck-user-profile div#pluck-comments p.num-comments { border-top-width: 1px; border-top-style: solid; } .pluck-comments-container .footer .pluck-all-comments { border-bottom: 1px solid; } .pluck-comments-container .pluck-all-comments p { display: inline; } .pluck-comments-container .footer .pluck-all-comments p { margin: 0; } .pluck-comments-container .footer .pluck-comment-post { margin: 5px 0 0 0; } .pluck-comment-block .pluck-comment-author a.author-profile-picture { display: block; float: left; margin-right: 5px; padding-top: 3px; } .pluck-comment-block .pluck-comment-author p.posted-time { font-size: 1em; color: #999; } .pluck-comment-block span.author-tier { float: right; width: 15%; display: block; text-align: right; margin-top: 5px; } .pluck-comment-block .pluck-comment-author li { color: #A5A4A4; } .pluck-comment-block .pluck-comment-author a, .pluck-comment-block .pluck-comment-author a:link, .pluck-comment-block .pluck-comment-author a:visited, .pluck-comment-block .pluck-comment-author a:hover, .pluck-comment-block .pluck-comment-author a:active, .pluck-comments-container .pluck-all-comments a, .pluck-comments-container .pluck-all-comments a:link, .pluck-comments-container .pluck-all-comments a:visited, .pluck-comments-container .pluck-all-comments a:hover, .pluck-comments-container .pluck-all-comments a:active { font-weight: bold; } .pluck-comment-block .pluck-comment-body { padding: 0 25px 0 0; color: #333; clear: both; } .comment-clipping .comment-blocked, .pluck-comment-block .pluck-comment-body.comment-blocked, .pluck-comment-block .comment-blocked, #cif-search-results .comment-blocked { color: #999; } .pluck-comment-block .pluck-comment-tools ul { margin: 2px 0 0 0; } .pluck-comments-container .pluck-comment-legend ul { margin-top: 0; } .pluck-comments-container .pluck-comment-legend li { margin: 0 0 4px; } .pluck-comments-container .pluck-comment-legend li img { margin: 0 5px 0 0; vertical-align: middle; } .pluck-comment-block .pluck-comment-tools li span { color: #333; } .pluck-comment-block .pluck-comment-tools .high-recommended { } .pluck-comment-block .pluck-comment-tools li { border-bottom: 1px dotted #999; padding: 0 0 3px 0; } .pluck-comment-block .pluck-comment-tools .clip, .pluck-comment-block .pluck-comment-tools .link { display: inline; border: none; } .pluck-comment-block .pluck-comment-tools .abuse-report { margin: 3px 0; } #comment-box-pluck { background-color: #edf1f5; color: #000; width: 450px; margin-top: -4px; padding: 10px 5px 1px; clear: both; } #post-comment-div-bottom #comment-box-pluck { margin-top: -5px; } /* SIDEBAR TOOLS */ .pluck-comment-block .author-tier a.rollover span { display: none; position: absolute; left: 2px; top: -36px; width: 6.2em; text-align: center; color: #fff; float:none; margin-left: 5px; } .pluck-comment-block .author-tier a.rollover, .pluck-comment-block .author-tier a.rollover:link, .pluck-comment-block .author-tier a.rollover:visited, .pluck-comment-block .author-tier a.rollover:hover, .pluck-comment-block .author-tier a.rollover:active { position: relative; display:block; margin-right: 8px; text-indent: 0; } .pluck-comment-block .author-tier a.rollover:hover span, .pluck-comment-block .author-tier a.rollover:focus span, .pluck-comment-block .author-tier a.rollover:active span { display: block; background-color: #005689; background-image: url(images/triangle-rollover.gif); background-position: bottom center; z-index: 999; height: 2em; width: 6.2em; padding: 3px 0; } /*USER PROFILE PAGE*/ body.pluck-user-profile div#user-profile { float: left; overflow: hidden; width: 460px; margin-bottom: 40px; } body.pluck-user-profile div#related { float: right; width: 140px; } body.pluck-user-profile img#top-pluck-logo { float: right; margin-bottom: 51px; } body.pluck-user-profile div#user-profile div#pluck-profile { overflow: hidden; width: 100%; margin-bottom: 30px; } body.comments div#comments-header h1, body.pluck-user-profile div#pluck-profile h1 { margin-bottom: 40px; line-height: 1; } body.pluck-user-profile div#pluck-profile h1 { float: left; width: 100%; line-height: 1.25; } div#pluck-recent-activity-container { overflow: hidden; clear: both; width: 100%; border-top-width: 10px; border-top-style: solid; padding-bottom: 40px; } div#pluck-recent-activity-container div#pluck-latest-comments { padding-bottom: 40px; } div#pluck-recent-activity-container h3 { margin-bottom: 20px; } div#pluck-recent-activity-container h4 { border-top-width: 1px; border-top-style: solid; font-family: arial, sans-serif; font-weight: bold; padding: 2px 0 5px 0; width: 460px; } div#pluck-recent-activity-container h6 { font-family: arial, sans-serif; display: inline; font-size: 1em; } div#pluck-recent-activity-container ul li { border-bottom: 1px dotted; margin-bottom: 0; padding: 2px 0 4px 0; width: 460px; } div#pluck-recent-activity-container ul li span { color: #999; } div#pluck-recent-activity-container a.all-comments { padding-top: 2px; display: block; } div#abuse-component { padding-bottom: 30px; border-top-width: 1px; border-top-style: solid; width: 140px; overflow: hidden; clear: both; } div#wrapper div#editors-msg { border-top: none; margin-bottom: 40px; overflow: hidden; width: 140px; float: right; } div#wrapper div#editors-msg ul { border-top-style: solid; border-top-width: 1px; } div#wrapper div#editors-msg div.linktext, div#wrapper div#editors-msg h2 { font-family: arial, sans-serif; font-size: 1em; margin-bottom: 5px; border-bottom: 1px dotted; } div#wrapper div#section-contents ul, div#wrapper div#section-contents h2 { margin-bottom: 5px; } div#wrapper div#editors-msg div.linktext { font-weight: bold; padding: 2px 0 5px 0; } div#wrapper div#editors-msg ul { margin-bottom: 0; } div#wrapper div#editors-msg ul li { margin-bottom: 0; border-top: none; width: 140px; } body.pluck-user-profile div#pluck-profile span a { display: block; } body.pluck-user-profile div#pluck-profile p { border-top-width: 1px; border-top-style: solid; } body.pluck-user-profile div#user-profile span { float: left; margin-right: 20px; width: 60px; display: block; } body.pluck-user-profile div#pluck-profile p, body.pluck-user-profile div#user-profile table { float: left; width: 380px; display: block; border-bottom: 1px dotted; } body.pluck-user-profile div#user-profile table { border-collapse: collapse; } body.pluck-user-profile div#user-profile table, body.pluck-user-profile div#pluck-profile p.no-profile-data { border-bottom: none; } body.pluck-user-profile div#user-profile th { width: 100px; text-align: left; } body.pluck-user-profile div#user-profile td { width: 280px; } body.pluck-user-profile div#user-profile th, body.pluck-user-profile div#user-profile td { border-top-width: 1px; border-top-style: dotted; padding: 4px 0; vertical-align: top; } body.pluck-user-profile div#user-profile tr.first th, body.pluck-user-profile div#user-profile tr.first td { border-top-width: 1px; border-top-style: solid; } body.pluck-user-profile div.editor-zone-1, body.pluck-user-profile div#user-profile .pluck-logo { float: right; width: 140px; } body.pluck-user-profile div#user-profile div.editor-zone-1 h2 { font-weight: bold; font-size: 1em; font-family: arial, sans-serif; line-height: 1; padding: 5px 0 15px 0; border-top-width: 1px; border-top-style: solid; border-bottom: 1px dotted; margin-bottom: 2px; } body.pluck-user-profile div#user-profile div.editor-zone-1 li.normal { border-top-width: 0; width: 140px; } body.pluck-user-profile div#user-profile div.editor-zone-1 li.major-heading { margin-bottom: 0; } /* ---- Styles for comments on user profile page ---- */ body.pluck-user-profile .pluck-init-block, body.pluck-user-profile #pluck-comment-container { clear: both; } body.pluck-user-profile #content { width: 620px; } body.pluck-user-profile div#pluck-comments { clear: both; } body.pluck-user-profile div#pluck-comments-header h2 { padding-bottom: 20px; width: 620px; } body.pluck-user-profile div#pluck-comments-header h2, body.pluck-user-profile div#wrapper div#footer { border-top: 10px solid #CCC; } body.pluck-user-profile div#wrapper div#content div#pluck-comments ul li { margin-bottom: 0; border-top-width: 1px; border-top-style: solid; clear: both; overflow: visible; } body.pluck-user-profile div#wrapper div#content div#pluck-comments ul li .clipping-data ul li.section { border-top-width: 1px; border-top-style: dotted; } body.pluck-user-profile div#wrapper div#content div#pluck-comments ul li .clipping-data ul li.section li, body.pluck-user-profile div#wrapper div#content div#pluck-comments ul li .clipping-data ul li.first-section { border-top: none } body.pluck-user-profile div#pluck-recent-activity-container ul li.first, body.pluck-user-profile div#wrapper div#content div#pluck-comments ul li.first { border-top-width: 1px; border-top-style: dotted; /* To include dotted line when no pagination present. */ } body.pluck-user-profile div#user-profile img#user-tier-icon { vertical-align: middle; } body.pluck-user-profile img#pluck-logo-bottom { float: right; margin-bottom: 5px; display: block; clear: both; } div.pluck-comment-block div.pluck-comment h3 { font-size: 1.333em; margin: 3px 0 10px 0; } div.pluck-comment-block div.pluck-comment p, .pluck-comments-container .pluck-comment p, .pluck-comments-container .pluck-comment blockquote, div.pluck-comment-block div.pluck-comment blockquote p, input#open-comment-box-bottom { margin-bottom: 10px; } .pluck-comments-container .pluck-comment blockquote, div.pluck-comment-block div.pluck-comment blockquote { color: #666; margin-left: 40px; margin-right: 40px; } div#content #pluck-comment-container .pluck-comment blockquote { margin-left: 0; margin-right: 0; } div.pluck-comment-block div.pluck-comment p.recommended { color: #999; margin: 0; } #post-comment-div-top, #post-comment-div-bottom { width: 100%; } /* ---- End styles for comments on user profile page ----*/ /* ---- EDIT YOUR PROFILE STYLES ---- Classnames, IDs and HTML can't be edited. Using a Pluck widget. Doh :( */ body.PersonaProfile_Body div.Persona_Main div.PersonaStyle_ItemContainer div#ProfileEdit_SectionDescription_Link p, body.PersonaProfile_Body div.Persona_Main tr.ProfileEdit_TableMessageAccessRow, div#personaDest div.PersonaTabs_Container { display: none; } div#ProfileEdit_SectionDescription_Link { padding: 0 0 16px 0; } div.Persona_Main, div.Persona_Main textarea { font-family: arial, sans-serif; } div.Persona_Main textarea div.Persona_Main table.ProfileEdit_Table td.ProfileEdit_TableFieldName { width: 20%; } td.ProfileEdit_Textarea { font-size: 1.48em; } td.ProfileEdit_TableField { font-size: 11px; } td.ProfileEdit_TableField img { border: none !important; } tr.ProfileEdit_TableAboutMeRow textarea.ProfileEdit_Textarea { font-size: 13px; } div.Persona_Main table.ProfileEdit_Table td.ProfileEdit_TableField { width: 80%; } body.PersonaProfile_Body div.Persona_Main div.PersonaStyle_ItemContainer { border: none; } body.PersonaProfile_Body div.Persona_Main div.PersonaStyle_ItemContainer div.PersonaStyle_SectionHead { background-color: #FFF; border-top: 10px solid #999; padding: 3px 0 16px 0; font-weight: bold; font-size: 1.166em; font-family: georgia, sans-serif; line-height: 1.2; } div.Persona_Main input[type="radio"] { margin-right: 3px; vertical-align: top; } /* ---- END EDIT YOUR PROFILE STYLES ---- */ div#comment-thank-you-area, div#comment-premoderation-area, div#comment-pluck-error-area { display: block; border-top: 1px dotted #CCC; border-bottom: 1px dotted #CCC; margin-top: 20px; text-align: center; } div#comment-pluck-error-area p, div#abuse-pluck-error-area p { background-image: url(images/pluck/error-icon.gif); background-position: center 0; background-repeat: no-repeat; padding: 20px 96px 0; color: #CD0000; font-weight: bold; } div#abuse-pluck-error-area p { padding: 19px 45px 0; text-align: center; margin: 96px 0 104px; } div#comment-pluck-error-area p span, div#abuse-pluck-error-area p span { display: block; margin-top: 15px; } input#comment-premoderation-close { margin-top: 15px; } #personaprofileiframe { height: 1000px; } td.ProfileEdit_Caption { display: none; } td.ProfileEdit_TableField td.ProfileEdit_Caption { display: table-cell; } /* Comments */ body.article .pluck-comments-container .footer { border-top: 0; } /* end comments*/ /* Pluck pagination styles */ div#pluck-pagination-top, div#pluck-pagination-bottom { overflow: hidden; clear: both; padding: 3px 0; margin-bottom: 0; width: 620px; } div#pluck-pagination-bottom, div#pluck-pagination-top { border-top-width: 1px; border-top-style: dotted; border-bottom: 1px dotted; } body.show-all-comments div#post-comment-div-bottom .pluck-comment-post { border-top-width: 1px; border-top-style: solid; padding-top: 3px; } div#pluck-pagination-top { border-bottom: none; } body.pluck-user-profile div#pluck-pagination-top { border-bottom: none; margin-bottom: 0; } div#post-comment-div-bottom, div#pluck-pagination-bottom { margin-bottom: 20px; } body.article div#pluck-pagination-bottom { margin-top: 5px; } ul.pluck-pagination li.prev, ul.pluck-pagination li.next { display: block; width: 25%; } ul.pluck-pagination li.prev { float: left; } ul.pluck-pagination li.next { float: right; text-align: right; } ul.pluck-pagination li.pages { display: block; float: left; width: 50%; text-align: center; } ul.pluck-pagination li.pages ul li.first, ul.pluck-pagination li.pages ul li.last, ul.pluck-pagination li.pages ul li { display: inline; } ul.pluck-pagination li.pages ul li.current { font-weight: bold; } ul.pluck-pagination li.pages ul li { padding: 0 3px; } ul.pluck-pagination li.pages ul li a { font-weight: normal; } ul.pluck-pagination li.pages ul li.last { padding: 0 3px 0 10px; } ul.pluck-pagination li.pages ul li.first { padding: 0 10px 0 3px; } #pluck-pagination-top ul li, #pluck-pagination-top ul li ul, #pluck-pagination-bottom ul li, #pluck-pagination-bottom ul li ul { margin-bottom: 0; padding-bottom: 0; } /* End pagination styles */ /* comment keywords */ .pluck-comment-block .comment-keywords { float: right; width: 140px; margin-left: 20px; margin-top: 9px; } div#top-keywords { border-top-width: 1px; border-top-style: solid; float: right; width: 380px; } body.pluck-user-profile div#top-keywords h3 { font-family: arial, sans-serif; font-size: 1em; padding-bottom: 5px; padding-top: 2px; } body.pluck-user-profile div#top-keywords h5 { font-family: arial, sans-serif; display: inline; font-weight: bold; font-size: 1em; } ul#top-keywords-list { border-top-width: 1px; border-top-style: dotted; padding-top: 4px; } div#top-keywords ul#top-keywords-list li ul { padding: 0; } ul#top-keywords-list li { display: inline; } /* end comment keywords */ /* Pluck Error message */ .javascript-off-error, .pluck-off-error { clear: both; position: relative; background-color: #fff; width: 100%; } #pluck-container h2, #pluck-addressed-comment-container h2, .javascript-off-error h2, .pluck-off-error h2 { border-top-width: 10px; border-top-style: solid; font-weight: bold; margin: 20px 0; padding: 4px 0 0 0; font-family: arial, sans-serif; font-size: 1.166em; } body.article #pluck-container h2 { font-family: georgia, serif; } body.article #pluck-container h2 span { font-family: arial, sans-serif; } .javascript-off-error h2, .pluck-off-error h2 { padding-bottom: 10px; border-bottom: 1px dotted; margin-bottom: 5px; } .javascript-off-error p, .pluck-off-error p { background-image: url(images/pluck/error-icon.gif); background-position: 0 0; background-repeat: no-repeat; padding-left: 20px; } #wrapper #content .javascript-off-error p span, #wrapper #content .pluck-off-error p span { display: block; width: 100%; background-color: #fff; } #reviewsiframe { height: 250px !important; } #reviewsiframe, body.ReviewFrame_Body { width: 460px !important; } .ReviewFrame_Body img, .ReviewFrame_Body #Reviews_ProsEntry, .ReviewFrame_Body #Reviews_ConsEntry, .ReviewFrame_Body div.Pluck_FooterLink { display: none; } .ReviewFrame_Body div.Reviews_AddHeading { border-top: 10px solid #D1008B; padding-top: 2px; padding-bottom: 0; font-family: georgia, serif; margin-bottom: -6px; } .ReviewFrame_Body form span { display: none; } .ReviewFrame_Body div.Reviews_AddTextarea { padding: 0; font-size: 12px; font-family: arial,sans-serif; } .ReviewFrame_Body div.SiteLife_Login { display: none; } .ReviewFrame_Body div#Reviews_HeadlineEntry { margin-bottom: 14px; } .ReviewFrame_Body div.Reviews_AddTextarea input, .ReviewFrame_Body div.Reviews_AddTextarea textarea { width: 456px !important; border: 1px solid #999 !important; } .ReviewFrame_Body div.Reviews_AddTextarea textarea { height: 210px; resize: none; } .ReviewFrame_Body .Reviews_Submit input { float: right; } div#pluck-container div#progress-bar { padding: 70px 0 70px 140px; border-top-width: 1px; border-top-style: dotted; } div#pluck-container div#progress-bar div { height: 10px; border: 1px solid; width: 300px; overflow: hidden; } div#pluck-container div#progress-bar span { display: block; height: 100%; width: 0%; } div#pluck-container div#progress-bar p { font-weight: bold; } body.comments div#comments-header { overflow: hidden; } body.comments div#comments-header h1 { float: left; display: inline; } body.comments div#comments-header img#top-pluck-logo { margin-bottom: 0; } body.comments div#top-keywords { width: 460px; float: none; margin-bottom: 30px; } body.comments div.pluck-comment-block div.pluck-comment h3 { margin: 0; } body.comments div#pluck-comments div.pluck-comment p.comment-date { margin-bottom: 4px; } #wrapper a.comment-feed { position: relative; margin-bottom: -36px; top: -36px; } body.popup-comments div#pluck-container { margin-bottom: 50px; } /* SSP microapp styling - should be removed when they figure out how to do it */ div.moderated { background-image: url(http://sitelife.guardian.co.uk/ver1.0/Content/images/no-user-image.gif); background-position: 0 5px; background-repeat: no-repeat; border-top-style: solid; border-top-width: 1px; clear: both; padding-left: 70px; padding-bottom: 20px; margin-bottom: 20px; } div.moderated p { margin-top: 10px; } .pluck-comments-container .no-comments { background-color: #ededed; border-top-style: solid; border-top-width: 1px; padding: 20px 10px; font-weight: bold; } #pluck-show-all-comments { border-top-style: solid; border-top-width: 1px; margin-top: 10px; margin-bottom: 20px; padding: 4px 0; } #post-area { margin-bottom: 20px; } /* SSP microapp styling end */ /* ---------- pluck-comment-additionals.css ends here ----------- */ /* ---------- table.css starts here ---------- */ /* ---------- minimum-table.css starts here ---------- */ #content table.stand-alone caption h1, #content table.stand-alone caption p, #content table.in-article caption h1, #content table.in-article caption p { border: none; } #content table.stand-alone caption p, #content table.in-article caption p { padding: 0 0.5em; } table.stand-alone td, table.stand-alone th, table.in-article td, table.in-article th { text-align: left; padding: 0.5em; } table.stand-alone td { padding-top: 3px; padding-bottom: 9px; } table.stand-alone th, table.in-article th { border-bottom-width: 1px; border-bottom-style: solid; font-weight: normal; } table.stand-alone th, table.stand-alone td, table.in-article th, table.in-article td { border-right-width: 1px; border-right-style: solid; } table.stand-alone tfoot td, table.stand-alone th.last, table.stand-alone td.last, table.in-article tfoot td, table.in-article th.last, table.in-article td.last { border-right: none; } /* ---------- minimum-table.css ends here ----------- */ /* Table only styling */ table.stand-alone, table.in-article { border-collapse: collapse; } table.sortable thead, table.in-article thead, td { vertical-align: top; cursor: pointer; } table.sortable thead div, table.in-article thead div { clear: both; display: block; margin-bottom: 1.85em; } /* please excuse this id, it is used for sorting the table - sorttable.js */ table.sortable thead th.sorttable_sorted_reverse div, table.sortable thead th.sorttable_sorted div { margin-bottom: 0; } table.sortable thead span#sorttable_sortfwdind { font-size: 1.5em; } table.sortable th { padding-bottom: 0; } table .centre { text-align: center; } table .left { text-align: left; } table .right { text-align: right; } table .bold { font-weight: bold; } #content table.stand-alone tfoot p, #content table.stand-alone tfoot td, #content table.in-article tfoot p, #content table.in-article tfoot td { padding: 0; margin: 0; } table.stand-alone tfoot div.notes, table.stand-alone tfoot div.source, table.in-article tfoot div.notes, table.in-article tfoot div.source { padding: 4px 5px 7px 5px; border-top-width: 1px; border-top-style: dotted; } table.in-article tfoot div.footer, table.stand-alone tfoot div.footer { padding-bottom: 4px; } /* Stand-alone tables are normal and wide width each supported by a template */ table.stand-alone { width: 100%; font-size: 0.857em; } table.stand-alone caption h1 { font-weight: normal; font-size: 1.5em; padding: 0.3em 0.3em 0.1em 0.3em; } /* In-article tables only exist in articles, and are normal and half width */ #content table.in-article { position: relative; z-index: 10; font-size: 0.857em; margin-bottom: 20px; } #content .inline table.in-article { float: left; } #content .inline table.in-article caption, .inline table.in-article { width: 220px; } .inline table.in-article { margin-right: 20px; } #content table.in-article th, #content table.in-article td { padding: 2px 5px 7px 5px; } #box #content table.in-article th.sorttable_sorted_reverse, #box #content table.in-article th.sorttable_sorted { padding-bottom: 0; } #content table.in-article caption p { padding: 0; margin: 0; } #content table.in-article caption p { margin: 0 5px; } #box #content table.in-article caption h2 { border: 0; margin: 0 5px 0 5px; } #box #content table.in-article caption, #box #content table.stand-alone caption { text-align: left; padding-bottom: 16px; border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: solid; } #box #content table.stand-alone caption { padding-bottom: 7px; } table.in-article tfoot .footer { border: 0; font-size: 0.92em; } table.stand-alone tfoot .footer { font-size: 0.8em } #content table.in-article thead div { margin-bottom: 0; } #content .block table.in-article caption, .block table.in-article { width: 100%; } table.in-article tbody tr td.left { vertical-align: top; } /* End Table only styling */ /* ---------- table.css ends here ----------- */ /* ---------- blogs-additionals.css starts here ---------- */ body.blog-post div#article-header div#page-header h1, body.blog-post div#article-header div#page-header { padding-bottom: 0; margin-bottom: 0; } body.blog-post div#article-wrapper { border-top-width: 1px; border-top-style: solid; padding-top: 5px; } body.blog-index #content { float: none; } body.blog-post div#box div#article-header div#page-header, body.blog-index div#box div#page-header.badge-wrapper, body.blog-index #article-header, body.blog-post h1#heading-alone { padding-bottom: 0; } body.blog-post h1#heading-alone { font-size: 2em; } body.blog-post div#wrapper div#box div.badge h1, body.blog-index div#wrapper div#box div.badge h1 { margin: 0; padding: 0; } body.blog-post div#wrapper div.badge-wrapper div.badge, body.blog-index div#wrapper div.badge-wrapper div.badge { overflow: visible; margin-bottom: 2px; } body.blog-post div#wrapper div#box div.badge-wrapper div.badge h1, body.blog-index div#wrapper div#box div.badge-wrapper div.badge h1, body.blog-post div#wrapper div.badge-wrapper div.badge img, body.blog-index div#wrapper div.badge-wrapper div.badge img { position: static; vertical-align: text-bottom; } body.blog-index div#wrapper div.badge-wrapper div.badge a.feed { position: absolute; top: 105px; } body.blog-post div#wrapper div.badge-wrapper { border-bottom: none; } body.blog-index ul#blog-posts-excerpts div.blog-excerpt { float: left; width: 460px; } div.blog-excerpt .inline { float: left; margin: 0 20px 10px 0; } div.blog-excerpt .inline span.caption { display: block; } ul#blog-posts-excerpts div.blog-excerpt h2 { font-family: arial, sans-serif; font-size: 1.165em; font-weight: bold; padding-top: 2px; padding-bottom: 2px; border-top-style: dotted; border-bottom-style: dotted; border-top-width: 1px; border-bottom-width: 1px; } body.blog-index #content ul#blog-posts-excerpts span.inline { width: auto; } div#box #content h2#blog-trailblock-header { border-top: none; border-bottom: 3px solid; margin:0; padding-top: 0; padding-bottom: 45px; font-size: 1.75em; font-weight: normal; } body.blog-post h1#heading-alone, body.blog-index #content ul#blog-posts-excerpts li { margin-bottom: 50px; } body.blog-index #content ul#blog-posts-excerpts li.date-posted { margin-bottom: 0; } body.blog-index div#content blockquote { margin-top: 20px; margin-bottom: 20px; font-size: 14px; line-height: 1.36; } body.blog-index ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption a.continue-reading { display: block; font-size: 12px; margin-bottom: 10px; margin-top: 5px; } body.blog-index #box #content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext p, body.blog-index #box #content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext { font-size: 14px; } body.blog-index #box #content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext p { margin-bottom: 14px; } body.tag-archive #box #content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext p { margin-bottom: 0; } body.blog-index #box #content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext a.comment-count-info { font-size: 12px; line-height: 1.25; } body.blog-index div#box div#content ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption div.trailtext p.caption { font-size: 12px; line-height: 1.25; } body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-image-caption { float: left; margin-bottom: 10px; } body.blog-index ul#blog-posts-excerpts li div.blog-excerpt div.trail-caption { margin-top: 0; } body.blog-index div#content ul#blog-posts-excerpts div.blog-excerpt p.date { font-family: arial, sans-serif; font-weight: bold; border-top-width: 3px; border-top-style: solid; margin-top: 0; padding-top: 3px; margin-bottom: 14px; width: 620px; } body.blog-index #content ul#blog-posts-excerpts li.first div.blog-excerpt p.date { border-top: none; } div#wrapper div#box div.blog-byline { float: right; width: 140px; padding-top: 5px; } body.blog-post div#wrapper div#box div.blog-byline { padding-bottom: 30px; } div#wrapper div#box div.blog-byline span.timestamp { white-space: nowrap; display: inline; } div#wrapper div#box div.blog-byline span { display: block; } div#wrapper div#box div.blog-byline span.pub-badge { margin-top: 30px; border-top-style: solid; border-top-width: 1px; display: block; } body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-excerpt div.media-below { margin-bottom: 10px; } body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-excerpt div.linktext h3 { padding-bottom: 3px; font-size: 21px; line-height: 1.185em; font-family: Georgia, sans-serif; } body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-excerpt div.linktext h3, div#wrapper div#box div.blog-byline { border-top-width: 1px; border-top-style: solid; } body.blog-index div#wrapper ul#blog-posts-excerpts #article-wrapper p { margin-bottom: 20px; } body.blog-index div#content ul#blog-posts-excerpts li div.blog-excerpt p.caption { font-size: 1em; font-weight: normal; line-height: 1.25; margin: 0; padding: 0; color: #999; clear: both; } body.blog-index div#wrapper ul#blog-posts-excerpts a.comment-count-info { border-top: 1px dotted #999; margin-top: 20px; padding-top: 4px; } body.blog-index #box ul.pagination { text-align: center; } body.blog-index #box ul.pagination li.first, body.blog-index #box ul.pagination li.last { width: auto; } body.blog-index #wrapper { background-image:url(images/article-bg-lines.gif); background-repeat:repeat-y; } body.blog-index #wrapper #footer { padding-top: 30px; border-top: none; } body.blog-index #wrapper #footer #footer-links { border-top-width: 10px; border-top-style: solid; padding-top: 4px; } body.blog-index div#content ul#blog-posts-excerpts div.blog-excerpt blockquote p { font-size: 1em; } body.blog-index div#promo div#katine-edzone-1 ul.tri li.image { margin-left: 0; } /* ---------- blogs-additionals.css ends here ----------- */ /* ---------- medals-capsule.css starts here ---------- */ div#promo div.capsule table.stand-alone { width: 280px; } div#promo div.capsule table.stand-alone th, div#promo div.capsule table.stand-alone td { padding: 3px 6px; } div#promo div.capsule table.stand-alone th.centre, div#promo div.capsule table.stand-alone td.centre { text-align: center; } div#promo div.capsule table.stand-alone th.left, div#promo div.capsule table.stand-alone td.left { text-align: left; } div#promo div.capsule table.stand-alone th.right, div#promo div.capsule table.stand-alone td.right { text-align: right; } div#promo div.capsule table.stand-alone span, div#promo div.capsule table.stand-alone caption { display: none; } div#promo div.capsule table.stand-alone thead tr th div { margin-bottom: 0; } div#promo div.capsule table.stand-alone thead tr, div#promo div.capsule table.stand-alone thead tr th { border-top-width: 1px; border-top-style: solid; border-bottom: 1px solid; border-right: none; padding-right: 0; padding-bottom: 0; } div#promo div.capsule table.stand-alone thead tr th.last { padding-right: 3px; } div#promo div.capsule table.stand-alone tr, div#promo div.capsule table.stand-alone tr td { border-bottom: 1px dotted; border-right: none; } div#promo div.capsule table.stand-alone tfoot tr, div#promo div.capsule table.stand-alone tfoot tr td { border-top-width: 1px; border-top-style: solid; border-bottom: none; } div#promo div.capsule table.stand-alone tfoot tr td div, div#content table.stand-alone tfoot tr td div { border-top: none; } div#promo div.capsule table.stand-alone tfoot tr td { padding: 0; margin: 0; } div#promo div.capsule table.stand-alone tfoot tr td div { border-top: none; padding: 0; margin-top: 3px; margin-bottom: 0; } /* ---------- medals-capsule.css ends here ----------- */ /* ---------- blog-post-about.css starts here ---------- */ .about-this-blog { margin-bottom: 20px; } .about-this-blog #badge-small { margin-bottom: 0; } .about-this-blog #badge-small h1 { line-height: 0; font-size: 0; } .about-this-blog p { padding-top: 5px; padding-bottom: 9px; } .about-this-blog p.more-from-blog { border-top-width: 1px; border-top-style: dotted; } #promo #auto-single-tag { margin-bottom: 0; } #auto-single-tag h2 { font-size: 1em; font-weight: bold; padding-bottom: 10px; padding-top: 3px; font-family: arial, sans-serif; } #auto-single-tag div.trail-caption, #auto-single-tag div.linktext { margin-bottom: 0; } #auto-single-tag li { padding-bottom: 9px; } /* ---------- blog-post-about.css ends here ----------- */ /* ---------- blog-contributor-profile.css starts here ---------- */ div#promo .blog-contributor { margin-bottom: 20px; } .blog-contributor #badge-small { margin: 0; } .blog-contributor #badge-small h1 { line-height: 0; font-size: 0; } div#promo .blog-contributor h3 { margin-bottom: 10px; font-size: 1em; font-family: arial, sans-serif; } .blog-contributor li { padding-top: 3px; padding-bottom: 4px; border-top-style: dotted; border-top-width: 1px; } .blog-contributor li.first { border-top: none; } /* ---------- blog-contributor-profile.css ends here ----------- */ /* ---------- blog-navigation.css starts here ---------- */ div#box ul.blog-navigation li { display: inline; } div#box ul.blog-navigation li.blog-home { position: relative; left: 38%; } div#box ul.blog-navigation li.blog-next { float: right; } div#box ul.blog-navigation li.blog-previous { float: left; } div#box div#article-header ul#blog-nav-top { border-bottom: 1px solid; padding-bottom: 14px; overflow: hidden; } div#box ul#blog-nav-bottom { border-top-width: 1px; border-top-style: dotted; margin-bottom: 20px; overflow: hidden; clear: both; width: 100%; padding-top: 2px; } /* if audio has the blog nav then it needs some other styles */ body.audio div#wrapper div.badge-wrapper { border-bottom: none; } body.audio div#wrapper div#box div.badge h1 { margin-bottom: 2px; } body.audio div#box div#page-header.badge-wrapper { padding-bottom: 0; margin-bottom: 0; } body.audio div#box div.badge h1 img { vertical-align: text-bottom; } /* ---------- blog-navigation.css ends here ----------- */ /* ---------- autorefresh-navigation.css starts here ---------- */ div#helper { background-color: #ededed; margin-bottom: 10px; padding: 4px 4px 4px 26px; background-position: 6px 6px; } div#helper { background-image: url(images/icon_autorefresh_off.gif); } div#helper.image-loading { background-image: url(images/icon_autorefresh_on.gif); } /* ---------- autorefresh-navigation.css ends here ----------- */ /* I am in the process of creating a generic css for our content types, and will be merging our article css across as I go. Come and talk to me if you want to add some here, at least until I'm finished. - Annabel 20/07/08*/ /* ---------- content-type.css starts here ---------- */ /* Imports required for all content types */ /* ---------- content-type-heading.css starts here ---------- */ /* * Content type heading and standfirst */ #zones-nav { padding-bottom: 6px; } #article-header { background-color: #fff; padding-bottom: 0; padding-left: 0; } #article-header #main-article-info { float: left; } #article-header #strap-below { margin-bottom: 1px; } #article-header #strap { font-size: 1em; font-weight: bold; margin-top: 2px; margin-bottom: 5px; border-bottom-width: 1px; border-bottom-style: solid; padding-bottom: 9px; border-top: 0; line-height: 1.25; } #wrapper #article-header h1 { margin-bottom: 2px; line-height: 1.154; font-size: 2.166em; border-top: 0; font-weight: normal; } #article-header h1#heading-alone { min-height: 91px; } #wrapper #article-header h1.long-headline { margin-bottom: 35px; } #article-header h1, #article-header h2, #article-header p, #article-header #main-article-info { width: 460px; } #article-header #stand-first { font-size: 1.333em; font-family: arial, sans-serif; color: #666; } #article-header .stand-first-alone { padding-bottom: 34px; } #article-header .rating-container { margin-top: 5px; margin-bottom: 37px; /* has to be margin to hide the background of the stars */ } /* ---------- content-type-heading.css ends here ----------- */ /* ---------- content-type-attributes.css starts here ---------- */ /* * Article attributes, byline, credit etc */ ul.article-attributes { border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: solid; font-size: 12px; line-height: 1.25; margin-top: 0; margin-bottom: 10px; padding-top: 2px; padding-bottom: 12px; position: relative; overflow: hidden; min-height: 66px; } #content ul.article-attributes li { font-weight: normal; margin-bottom: 0; } #content ul.article-attributes li.byline, #content ul.article-attributes li.history { display: block; } ul.article-attributes li.byline a, ul.article-attributes li.byline span { font-weight: bold; } /* cartoon specific styles */ body.cartoon ul.no-pic { border-bottom: none; border-top: none; } body.cartoon ul.article-attributes { padding-top: 3px; padding-bottom: 10px; } /* end Cartoon specific styles */ /* ---------- content-type-attributes.css ends here ----------- */ /* ---------- packages-and-manual-trailblock.css starts here ---------- */ #manual-trailblock { clear: both; width: 140px; margin-bottom: 20px; border-top-width: 1px; border-top-style: solid; } #box #manual-trailblock h3 { padding-top: 0; } #manual-trailblock ul { margin: 0; padding-top: 0; padding-left: 0; padding-right: 0; padding-bottom: 3px; } #manual-trailblock ul li { margin-left: 5px; margin-right: 5px; margin-bottom: 0; padding-top: 2px; padding-bottom: 9px; border-top-width: 1px; border-top-style: dotted; } div#manual-trailblock ul li div.strap { border-bottom: 1px dotted #999; padding-bottom: 5px; } div#manual-trailblock ul li.picture div.strap { border-bottom: none; padding-bottom: 0; } #manual-trailblock ul li.picture { padding-top: 0; } div.navigation #manual-trailblock ul li { margin-bottom: 0; } body.article #related #manual-trailblock ul li h3, #manual-trailblock ul li h3, #manual-trailblock ul li h2, div#content div#manual-trailblock ul li h2, body.audio-canonical #related div#manual-trailblock h2, #manual-trailblock ul li div.strap, body.video div#related div#manual-trailblock h2 { font-family: arial, sans-serif; font-size: 1em; font-weight: bold; border-top: none; border-bottom: none; margin: 0; padding: 0; } #manual-trailblock img.trail-icon { margin-right: 0; vertical-align: baseline; } #manual-trailblock img#interactive { padding-right: 2px; padding-left: 2px; } #manual-trailblock ul li.picture p, #manual-trailblock ul li.picture h3, body.article #related #manual-trailblock ul li.picture h3, #manual-trailblock li.playable div.trail-caption, #manual-trailblock li.picture div.trail-caption div.trailtext, #manual-trailblock li.picture ul.sublinks li.bullet, #manual-trailblock li.picture div.strap { margin-left: 5px; margin-right: 5px; } #manual-trailblock ul li.picture, #manual-trailblock ul li.picture p.thumbnail, #manual-trailblock li.playable { margin: 0; border-top: none; } #manual-trailblock ul li.picture { overflow: visible; } #manual-trailblock ul li.first-trail { padding-top: 0; } #manual-trailblock ul li.heading { border-top-width: 1px; border-top-style: solid; } #manual-trailblock ul li.first, #manual-trailblock ul li h3, #manual-trailblock ul li h2 { border-top: none; } #manual-trailblock ul li.first { padding-bottom: 9px; } #manual-trailblock ul li div.strap { padding-top: 2px; margin-bottom: 3px; } body div#manual-trailblock ul.sublinks, #manual-trailblock ul.sublinks li.last { padding-bottom: 0; margin: 0; } #manual-trailblock ul.sublinks { margin-top: 9px; } #manual-trailblock ul.sublinks li.bullet { background-image: url(images/icon_bullet_sublink.gif); background-position: 0 3px; margin-left: 0; } /* gallery pages */ body.gallery #manual-trailblock { clear: none; } body.gallery #manual-trailblock li.first { padding-bottom: 9px; } body.gallery #manual-trailblock li.picture { border: none; } body.gallery #manual-trailblock ul { padding-bottom: 3px; } /* end gallery pages */ /* video pages */ body.video #wrapper #box #related #manual-trailblock h3 { border: none; margin-top: 0; } body.video #manual-trailblock ul li.first { padding-top: 3px; } /* end video pages */ /* ---------- packages-and-manual-trailblock.css ends here ----------- */ /* ---------- embed-element.css starts here ---------- */ #content span.inline, #content span.pullout { display: block; float: left; width: 220px; margin: 0 20px 10px 0; } #content span.embed { float: none; width: auto; margin: 0; } #content span.wide { display: block; float: none; width: 460px; } #content span.pullout span.credit, #content span.caption { display: block } #content div.inbody-microapp { float: left; width: 140px; margin: 0 20px 10px 0; } /* ---------- embed-element.css ends here ----------- */ /* ---------- bmj-search-form.css starts here ---------- */ #bmj-search-form { position: absolute; top: 0; right: 0; z-index: 1; } #bmj-search-form, #bmj-search-form p { width: auto; } #bmj-search-form p { color: #666; } #bmj-search-form p, #bmj-search-form form { margin-bottom: 5px; } #bmj-search-form form label { position: absolute; left: -999em; } #bmj-search-form form #web-search-field { width: 140px; } /* ---------- bmj-search-form.css ends here ----------- */ /* ---------- content-actions.css starts here ---------- */ /* buzz and digg links */ ul#content-actions { float: right; width: 140px; margin-top: 2px; } #content #content-actions li, #content-actions li div.comment-info-related { margin-bottom: 0; } .share-links .third-party-tool { float: left; margin-right: 8px; } .share-links .third-party-tool.edge { margin-right: 0; } .share-links .tweet { border-top: 1px dotted #999; clear: left; float: none; } .share-links .third-party-tool a { display: inline-block; height: 16px; padding-bottom: 2px; } .share-links .third-party-tool a:hover { text-decoration: none; } .share-links .third-party-tool a:hover span { text-decoration: underline; } .share-links .tweet a { background-image: url(images/icon_twitter.gif); background-repeat: no-repeat; padding-left: 20px; } .share-links .share-count { display: inline-block; padding-right: 3px; padding-top: 1px; vertical-align: top; } #content-actions .tweet .share-count { vertical-align: bottom; } body.video ul#content-actions { position: absolute; right: 0; } body.blog-post ul#content-actions { margin-top: 5px; } /* ---------- content-actions.css ends here ----------- */ /* End imports required for all content types */ /* I think paragraph styles should go in here, even if they relate to specific content types. Hopefully we will get to a point where we can refactor it - A */ body.article #content span.inline, body.competition #content span.inline { width: auto; } #content span.inline img { padding-top: 5px; } body.article #content span.wide, body.competition #content span.wide { margin: 0; } body.article #content span.wide span.caption, body.competition #content span.wide span.caption { margin-bottom: 13px; } body.competition #content p { margin-bottom: 10px; } body.quiz div#box div#related h3.front-link, body.audio div#box div.relatedlinks h3.front-link { border-top-width: 1px; border-top-style: solid; } /* This is related to increasing font size on our content types */ div#content { font-size: 1.166em; /* 14px */ line-height: 1.357; /* 19px at default font size */ } .video-series div#content, div#content.video-content, div.video-content ul.article-attributes { font-size: 1em; } div#content p.caption { font-size: 0.857em; font-weight: normal; line-height: 1.25; margin-top: 0; } /* Needed to make the cartoons byline info float properly */ #content div#content-info ul.article-attributes li, #content div#content-info ul.article-attributes { float: left; } #content div#content-info ul.article-attributes li#contrib-shift { position: relative; left: 10px; width: 350px; } #content div#content-info ul.article-attributes li.byline, #content div#content-info ul.article-attributes li.publication { float: none; } /* ---------- content-type.css ends here ----------- */ /* ---------- article.css ends here ----------- */ ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=print.css Content-Type: text/css; name=print.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/print.css Content-Transfer-Encoding: 8bit @import "base.css"; /* Very basic content type pieces */ /* ---------- content-type-heading.css starts here ---------- */ /* * Content type heading and standfirst */ #zones-nav { padding-bottom: 6px; } #article-header { background-color: #fff; padding-bottom: 0; padding-left: 0; } #article-header #main-article-info { float: left; } #article-header #strap-below { margin-bottom: 1px; } #article-header #strap { font-size: 1em; font-weight: bold; margin-top: 2px; margin-bottom: 5px; border-bottom-width: 1px; border-bottom-style: solid; padding-bottom: 9px; border-top: 0; line-height: 1.25; } #wrapper #article-header h1 { margin-bottom: 2px; line-height: 1.154; font-size: 2.166em; border-top: 0; font-weight: normal; } #article-header h1#heading-alone { min-height: 91px; } #wrapper #article-header h1.long-headline { margin-bottom: 35px; } #article-header h1, #article-header h2, #article-header p, #article-header #main-article-info { width: 460px; } #article-header #stand-first { font-size: 1.333em; font-family: arial, sans-serif; color: #666; } #article-header .stand-first-alone { padding-bottom: 34px; } #article-header .rating-container { margin-top: 5px; margin-bottom: 37px; /* has to be margin to hide the background of the stars */ } /* ---------- content-type-heading.css ends here ----------- */ /* ---------- content-type-attributes.css starts here ---------- */ /* * Article attributes, byline, credit etc */ ul.article-attributes { border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: solid; font-size: 12px; line-height: 1.25; margin-top: 0; margin-bottom: 10px; padding-top: 2px; padding-bottom: 12px; position: relative; overflow: hidden; min-height: 66px; } #content ul.article-attributes li { font-weight: normal; margin-bottom: 0; } #content ul.article-attributes li.byline, #content ul.article-attributes li.history { display: block; } ul.article-attributes li.byline a, ul.article-attributes li.byline span { font-weight: bold; } /* cartoon specific styles */ body.cartoon ul.no-pic { border-bottom: none; border-top: none; } body.cartoon ul.article-attributes { padding-top: 3px; padding-bottom: 10px; } /* end Cartoon specific styles */ /* ---------- content-type-attributes.css ends here ----------- */ /* Specific content types styles*/ /* ---------- article-page.css starts here ---------- */ /* CSS for pages with body class article */ body.article div#content p.caption { margin-top: 0; } #wrapper { background-image: url(images/article-bg-lines.gif); background-repeat: repeat-y; } body.article h2.related-information { background-image: none; border-top-width: 1px; border-top-style: dotted; } body.article div.more-on-bmj { float: right; width: 140px; } body.article div.more-on-bmj li { border-top-width: 1px; border-top-style: dotted; padding-top: 3px; padding-bottom: 7px; } body.article div#wrapper div#box div#related div.more-on-bmj ul li.first { border-top-width: 1px; border-top-color: #FFC202; border-top-style: solid; font-weight: bold; margin-top: 30px; margin-bottom: 20px; } div.bmj-condition-nav { border-bottom: 1px solid #999999; margin-bottom: 10px; } div.bmj-condition-nav .tabs { float: none; overflow: hidden; } body.article div#also-on { border-top-width: 10px; border-top-style: solid; width: 620px; } body.article #content p, #content #article-wrapper ul { margin-bottom: 13px; } body.article #compare-and-buy-money-supermarket .link { margin-left: 0; } body.reuters #article-header { padding-left: 0; } body.article #content { width: 460px; margin-bottom: 10px; } body.article #content p { padding-right: 0; } a.open span.remaining { display: none } body.article #box { margin-bottom: 0; } body.article #box #content h2, body.article #box #content h3 { padding: 2px 0; margin: 20px 0 10px 0; } body.article #box #content h2, body.article #box #content h3 { border-top: 1px dotted #999; } body.article #box #content h2, body.article #box #content h3 { border-bottom: 1px dotted; } body.article .tips li.last a.more { display: block; } div#content p#credit { margin-bottom: 0; } /* byline tools */ div#history-link-box { position: relative; top: -26px; } div#history .section, div#history-link-box .section { margin: 0 5px 0px 5px; } div.sponsored-features li.normal { border-top-width: 1px; border-top-style: dotted; margin-left: 0; padding-top: 3px; width: 280px; } div.sponsored-features li.image { border-top: none; width: 130px; } div.sponsored-features li.image.odd { margin-left: 20px; } body.article div#related div.sponsored-features li { margin-left: 0; width: 140px; } body.article div#wrapper #box ul.pagination li.first, body.article div#wrapper #box ul.pagination li.last { width: 140px } body.article ul.pagination { clear: both; font-size: 12px; } div#stock-search { border-top-width: 1px; border-top-style: dotted; margin-top: 10px; } div#stock-search form#stock-search-form { margin-top: 5px; } /* readers tips */ div#readers-tips { width: 620px; float: left; margin-bottom: 10px; background-image:url(images/simplesite-inner-bg.gif); background-repeat:repeat-y; } div#readers-tips h3 { border-top-width: 10px; border-top-style: solid; padding-bottom: 14px; padding-top: 3px; } div#readers-tips.empty { background-image: none; } div#readers-tips li { width: 300px; float: left; margin-bottom: 10px; } div#readers-tips li.odd { padding-right: 20px; } div#readers-tips li p.tip-header { margin-bottom: 10px; padding-top: 3px; border-top-width: 1px; border-top-style: dotted; } div#readers-tips li.last { float: right; border-top-width: 1px; border-top-style: dotted; padding-top: 3px; } div#readers-tips li.last a { display: inline; } /* football summary */ /* Hide the top border for every match report except for football, because it has a summary at the top of the article */ body.match-report .article-attributes { border-top: none; } body.match-report #tabs, body.cricket-match #tabs { border-bottom: 1px solid #999; } body.match-report .tabs li a { font-size: 12px; } body.match-report #article-header h1#heading-alone { margin-bottom: 0; min-height: 0; } body.match-report #article-header h1#heading-alone, body.match-report #article-header #stand-first { padding-bottom: 45px; } body.football .article-attributes { border-top-width: 1px; border-top-style: solid; } body.match-report #related { margin-top: 5px; } body.match-report #box #content #match-stats-summary h2 { margin-top: 0; border-top: 0; } #tabs:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } #match-stats-summary { clear: both; } #match-stats-summary table { border-collapse: collapse; margin-bottom: 12px; } #match-stats-summary table td, #match-stats-summary table th, #match-stats-summary table caption { vertical-align: top; } #match-stats-summary table caption { padding-bottom: 7px; } #match-stats-summary table th { padding-right: 30px; } #match-stats-summary table td li { display: inline; color: #999; } /* footer */ body.article #wrapper #footer { padding-top: 10px; border-top: none; } body.article #wrapper #footer #footer-links { border-top-width: 10px; border-top-style: solid; padding-top: 4px; } /* big image holder -----------------------------------------------------------------------------*/ #big-picture-holder { display: none; } #show-big-picture-link.mask img.mask, #show-big-picture-link.mask div.mask { bottom: 0; right: 0; left: auto; top: auto; } #show-big-picture-link img { vertical-align: bottom; } #big-picture-holder p.toolbox { margin-bottom: 10px; margin-top: 2px; } /* History by line --------------------------------------------------------------------------------------------------*/ div#history-link-box { position: absolute; top: -20px; display: none; } #article-wrapper { position: relative; } div#article-wrapper span.embed span.caption { padding-bottom: 10px; width: 460px; } .pluck-init-block, .pluck-init-inline { display: none; } div#article-wrapper ul li { margin-bottom: 0; } #promo div.jobsbox form { margin-bottom: 15px; } #promo div.jobsbox p.find-a-job { padding-bottom: 0; } #highlights { float: left; } /* ---------- article-page.css ends here ----------- */ /* ---------- table.css starts here ---------- */ /* ---------- minimum-table.css starts here ---------- */ #content table.stand-alone caption h1, #content table.stand-alone caption p, #content table.in-article caption h1, #content table.in-article caption p { border: none; } #content table.stand-alone caption p, #content table.in-article caption p { padding: 0 0.5em; } table.stand-alone td, table.stand-alone th, table.in-article td, table.in-article th { text-align: left; padding: 0.5em; } table.stand-alone td { padding-top: 3px; padding-bottom: 9px; } table.stand-alone th, table.in-article th { border-bottom-width: 1px; border-bottom-style: solid; font-weight: normal; } table.stand-alone th, table.stand-alone td, table.in-article th, table.in-article td { border-right-width: 1px; border-right-style: solid; } table.stand-alone tfoot td, table.stand-alone th.last, table.stand-alone td.last, table.in-article tfoot td, table.in-article th.last, table.in-article td.last { border-right: none; } /* ---------- minimum-table.css ends here ----------- */ /* Table only styling */ table.stand-alone, table.in-article { border-collapse: collapse; } table.sortable thead, table.in-article thead, td { vertical-align: top; cursor: pointer; } table.sortable thead div, table.in-article thead div { clear: both; display: block; margin-bottom: 1.85em; } /* please excuse this id, it is used for sorting the table - sorttable.js */ table.sortable thead th.sorttable_sorted_reverse div, table.sortable thead th.sorttable_sorted div { margin-bottom: 0; } table.sortable thead span#sorttable_sortfwdind { font-size: 1.5em; } table.sortable th { padding-bottom: 0; } table .centre { text-align: center; } table .left { text-align: left; } table .right { text-align: right; } table .bold { font-weight: bold; } #content table.stand-alone tfoot p, #content table.stand-alone tfoot td, #content table.in-article tfoot p, #content table.in-article tfoot td { padding: 0; margin: 0; } table.stand-alone tfoot div.notes, table.stand-alone tfoot div.source, table.in-article tfoot div.notes, table.in-article tfoot div.source { padding: 4px 5px 7px 5px; border-top-width: 1px; border-top-style: dotted; } table.in-article tfoot div.footer, table.stand-alone tfoot div.footer { padding-bottom: 4px; } /* Stand-alone tables are normal and wide width each supported by a template */ table.stand-alone { width: 100%; font-size: 0.857em; } table.stand-alone caption h1 { font-weight: normal; font-size: 1.5em; padding: 0.3em 0.3em 0.1em 0.3em; } /* In-article tables only exist in articles, and are normal and half width */ #content table.in-article { position: relative; z-index: 10; font-size: 0.857em; margin-bottom: 20px; } #content .inline table.in-article { float: left; } #content .inline table.in-article caption, .inline table.in-article { width: 220px; } .inline table.in-article { margin-right: 20px; } #content table.in-article th, #content table.in-article td { padding: 2px 5px 7px 5px; } #box #content table.in-article th.sorttable_sorted_reverse, #box #content table.in-article th.sorttable_sorted { padding-bottom: 0; } #content table.in-article caption p { padding: 0; margin: 0; } #content table.in-article caption p { margin: 0 5px; } #box #content table.in-article caption h2 { border: 0; margin: 0 5px 0 5px; } #box #content table.in-article caption, #box #content table.stand-alone caption { text-align: left; padding-bottom: 16px; border-top-width: 1px; border-top-style: solid; border-bottom-width: 1px; border-bottom-style: solid; } #box #content table.stand-alone caption { padding-bottom: 7px; } table.in-article tfoot .footer { border: 0; font-size: 0.92em; } table.stand-alone tfoot .footer { font-size: 0.8em } #content table.in-article thead div { margin-bottom: 0; } #content .block table.in-article caption, .block table.in-article { width: 100%; } table.in-article tbody tr td.left { vertical-align: top; } /* End Table only styling */ /* ---------- table.css ends here ----------- */ /* ---------- competition-content-type.css starts here ---------- */ /* Competition only styles */ body.competition #content { width: 460px; } body.competition div.about-competition { overflow: hidden; } body.competition p.closed img, body.competition img.alert { float: left; vertical-align: middle; display: block; padding: 0 5px 3px 0; width: 1.25em; height: 1.25em; } body.competition p.closed { margin-top: 10px; padding: 10px 10px 10px 10px; width: 440px; } form.competition p.competition-error { margin: 0 10px 20px 10px; } #content form.competition h2 { padding: 2px 0 8px 10px; margin: 0; clear: both; border-top: none; } #content form.competition ul li.question-container fieldset ul li { margin-bottom: 8px; } #content form.competition ul li.question-container fieldset ul li.last { margin-bottom: 0; } #content form.competition ul li.question-container { padding-top: 5px; margin-bottom: 10px; width: 440px } form.competition input#submit { margin: 8px 0 10px 10px; float: none; } form.competition ul li.question-container, form.competition ul li.question-container.first { border-top-width: 1px; border-top-style: dotted; } form.competition ul { margin: 0 10px; } form.competition ul.first { border-bottom: 1px dotted; } form.competition ul li ul { margin: 0 0; } form.competition { margin-top: 10px; } form.competition input, form.competition select { float: left; } form.competition fieldset { border: none; width: 210px; } form.competition input[type="text"] { width: 210px; } form.competition input[type="checkbox"], form.competition input[type="radio"] { margin: 2px 8px 0 0; } form.competition select { width: 214px; } form.competition textarea { width: 99%; } form.competition ul li.question-container fieldset, form.competition ul li.question-container fieldset ul { float: left; } form.competition ul li.question-container fieldset ul label { float: left; width: 180px; vertical-align: middle; } form.competition ul li.question-container p.question { width: 210px; float: left; padding: 0 16px 0 0; } form.competition ul li.textarea p { width: 440px; margin-bottom: 8px; } div.terms-and-conditions h4 { border-bottom: 1px dotted; border-top-width: 1px; border-top-style: dotted; margin: 20px 0pt 10px; padding: 2px 0pt; clear: both; } form.competition option { padding-left: 2px; padding-right: 5px; } body.competition #related ul#article-toolbox-side { margin-bottom: 4px; } body.competition #related ul.relatedlinks-keywords { margin-bottom: 1px; } body.blog-post div#content { border-top: 1px solid; padding-top: 5px; } /* ---------- competition-content-type.css ends here ----------- */ /* ---------- quiz-content-type.css starts here ---------- */ body.quiz #content { width: 460px; } form.quiz ol li.question-container { padding: 4px 0 16px 0; overflow: hidden; clear: both; width: 100%; } form.quiz ol li.question-heading { border-top-style: solid; border-top-width: 1px; margin-bottom: 15px; font-weight: bold; } form.quiz ol li.question-container p.question { margin-bottom: 7px; } div#quiz-answers ul li img, form.quiz ol.first li.question-container img.q-picture, form.quiz ol.first li.question-container img.answer-picture-small { float: left; margin-right: 10px; margin-bottom: 10px; } form.quiz ol.first li.question-container img.answer-picture-small { padding-bottom: 5px; margin-bottom: 0; } form.quiz ol li.question-container ol.big-picture { width: 100%; margin-top: 20px; clear: both; } form.quiz ol li.question-container ol.video { margin-top: 20px; } form.quiz ol li.question-container img.q-picture-small { vertical-align: top; margin-right: 5px; float: left; margin-right: 20px; } form.quiz ol li.question-container ol li { overflow: hidden; margin-bottom: 5px; } form.quiz ol.first li.question-container ol.audio li, form.quiz ol.first li.question-container ol.audio li.multi-audio { margin-bottom: 5px; } form.quiz ol.first li.question-container.first ol li, form.quiz ol li.question-container ol.picture li { margin-bottom: 8px; } form.quiz ol.first { border-bottom-width: 1px; border-bottom-style: dotted; } body.quiz span.number { display: block; padding-right: 5px; float: left; } form.quiz ol li.question-container ol li input { float: left; margin: 2px 10px 0 0; } form.quiz ol li.question-container ol li label { display: block; width: 90% } form.quiz ol li.question-container ol li.multi-audio label { display: inline; } form.quiz ol li.question-container ol.picture li label { float: left; } p.question { margin-bottom: 20px; display: block; } form.quiz input#submit { margin-top: 8px; text-align: center; } div#content form.quiz ol.first li.credit { margin-top: 10px; } div#quiz-results ul li { display: inline; } div#content div#quiz-answers ul li ul.weighted-responses { padding-bottom: 0; } div#content p#credit { font-size: 0.9em; color: #666; margin-bottom: 20px; } div#content div#quiz-answers ul li ul.weighted-responses li, div#quiz-results { margin: 5px 0; } div#quiz-results img { float: left; margin-right: 10px; } div#quiz-results ul { clear: both; margin-top: 16px; padding-top: 5px; } div#quiz-results img, div#quiz-results p#score { margin-bottom: 16px; } p.quiz-error { margin: 10px 0; } div#content div#quiz-answers ul li { padding: 5px 0 20px 0; margin-bottom: 0; width: 100%; } div#content div#quiz-answers ul li div { float: left; width: 420px; } div#content form.quiz ol.first li.first, form.quiz ol.first li.question-container.first { border-top: none; } div#content form.quiz ol.first li.credit, form.quiz ol li.question-container, div#quiz-results ul, div#content div#quiz-answers ul li { border-top-width: 1px; border-top-style: dotted; } div#content div#quiz-answers ul li, form.quiz span.number, form.quiz p.question, div#quiz-answers ul.weighted-responses li em, div#quiz-answers ul.weighted-responses li em span.weight { font-weight: bold; } div#quiz-answers ul li span, p.quiz-error { font-weight: normal; } body.quiz div#quiz-answers em { font-style: normal; } div#content div#quiz-answers ul li ul.weighted-responses li { border-top: 0; padding: 0; font-weight: normal; } div#quiz-answers ul.weighted-responses li span.weight { display: block; float: left; margin-right: 10px; } a#show-answers-link { cursor: pointer; } form.quiz ol li.question-container ol li.multi-audio { margin-bottom: 5px; } form.quiz ol li.question-container ol.video img.answer-picture, form.quiz ol li.question-container ol li img.answer-picture, form.quiz ol li.question-container ol.audio img.answer-picture-small { float: left; margin-right: 10px; margin-bottom: 10px; } form.quiz ol li.question-container ol.audio img.answer-picture { margin-bottom: 5px; } ol.first li.question-container li.multi-audio span { margin: 8px 10px 0 0; } div#content form.quiz li.multi-audio div#flash-player { margin: 0; margin-bottom: 10px; } body.quiz div#content ol.first li.question-container div.video { margin-top: 5px; } body.quiz div#content div#flash-player { margin: 8px 0 20px 0; } body.quiz #related .relatedlinks .front-link { font-weight: normal; } body.quiz div#related { margin-left: 0; } /* ---------- quiz-content-type.css ends here ----------- */ /* ---------- poll-content-type.css starts here ---------- */ body.poll div#content { width: 460px; } body.poll div#article-header { padding-left: 0; } body.poll #content h2 { border-top-width: 1px; border-top-style: dotted; border-bottom-width: 1px; border-bottom-style: dotted; font-family: arial, sans-serif; border-color: #999; font-size: 1em; padding-top: 2px; padding-bottom: 9px; } body.poll div#content p.caption { margin-bottom: 20px; } div#previous-polls { border-top-width: 1px; border-top-style: solid; margin-bottom: 8px; } body.poll div#previous-polls h3 { font-family: arial, sans-serif; font-weight: bold; font-size: 1em; padding-bottom: 9px; border-top: none; margin-top: 1px; } div#previous-polls li { border-top: 1px dotted #999; padding-top: 2px; padding-bottom: 9px; } form.poll, div#results-container { overflow: hidden; margin-top: 20px; } div#results-container { margin-bottom: 20px; } form.poll p.vote { margin: 0; padding-top: 10px; border-top: 1px dotted #999; } form.poll p.vote input#submit { width: 60px; text-align: center; margin-bottom: 20px; margin-top: 0; } form.poll ol.picture { padding-left: 145px; } form.poll ol ol { padding-top: 5px; } form.poll ol ol li { padding-bottom: 10px; } body.poll li.question-container { clear: left; } table.poll-results.picture { width: 315px; } form.poll ol.picture li.question-container, form.poll p.question.picture, form.poll p.picture { margin-left: 145px; } body.poll p.q-picture { float: left; clear: left; margin-right: 5px; } body.poll option { padding-right: 20px; } body.poll p.question, body.poll #content table.poll-results th p { font-weight: bold; padding-top: 2px; padding-bottom: 9px; margin: 0; border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #999; border-top-width: 1px; border-top-style: solid; text-align: left; } /* poll results */ body.poll div.results-table { clear: left; overflow: hidden; } table.poll-results { border-collapse: collapse; width: 460px; margin-bottom: 5px; } table.poll-results td { border-bottom: 1px dotted #999; padding-top: 5px; padding-bottom: 5px; padding-left: 1px; vertical-align: top; } body.poll span.zero { padding-left: 5px; } table.poll-results td.result span.container { position: relative; } table.poll-results span.large { position: absolute; right: 0; } body.poll div#show-results-before-voting { margin-bottom: 20px; } body.poll span.container { display: block; } body.poll span.container img { position: absolute; top: 0; } span.poll-result-bg { display: block; float: left; text-align: right; } span.poll-result-figure { border-left: 5px solid; display: block; float: left; padding-top: 1px; } table.poll-results td.result-text { width: 220px; padding-left: 20px; } table.picture td.result-text { width: 150px; } body.poll p#results-message { border-top: 1px dotted #999; margin-top: 25px; padding-top: 5px; } body.poll div.factbox h5, body.poll div#wrapper div.factbox ol { font-size: 1em; } body.poll div#content p { margin-bottom: 13px; } body.poll div#content p.poll-update-delay, body.poll div#content p.total-responses, body.poll div#content p.time-remaining, body.poll div#content p.poll-closed { margin: 0; } body.poll #content .question-container p { margin-bottom: 0; } p.poll-update-delay { color: #999; } body.blogpost ul#content-actions { margin-top: 5px; } /* ---------- poll-content-type.css ends here ----------- */ /* Print me */ /* ---------- print-adjust.css starts here ---------- */ /* Hide this when printing ------------------------------------------------------------------*/ #topslot, #promo, #skiplinks, #sub-header form, #sub-header ul, #search, #zones, #major-section, #minor-section, #also-on, ul.toolset, #related-info, #related, .related-content, div.related-content, div.relatedlinks, #booking, #content .shower, #section-selector, #global-nav, .crumb-wrapper, #sub-nav-bar, div#zones-nav .crumb-wrapper, div#nav, #related p.jump-related, #wrapper #box ul#article-toolbox, div#content ul#article-toolbox, div#content ul#article-toolbox-side, #wrapper #box #content ul.article-attributes li.history, div.series-navigation, div#readers-tips, div.gallery-navigation, div.article-trailblock, #more-in-series, #content .embed-media, div#footer ul#footer-links, form #submit, div.toolbox-popup, iframe, div.video, #toolsAndInfo, ul#blog-nav-top, body.third-party #footer div, div#wrapper a.comment-count-info, div#katine-promo, ul#content-actions, div#bmj-search-form { display: none; } /* General print styles ------------------------------------------------------------------*/ html, body { padding: 8px 0 1.5cm 8px; margin: 0; } body #wrapper { margin: 0; line-height: 1.5; background: none; font-size: 1em; } h1 { font-size: 22pt; font-weight: normal; } div#box h2#stand-first { font-weight: normal; font-size: 12pt; } li.publication { padding-bottom: 5px; } div#box ul.article-attributes { padding-bottom: 10px; height: auto; } div#box ul.article-attributes a { text-decoration: none; } body #wrapper, #wrapper #box #content, #article-header, #article-header #main-article-info, body.article #article-header #main-article-info, #article-header #main-article-info h1, #article-header #main-article-info #stand-first, #article-header #main-article-info #strap, ul.article-attributes { width: 16.5cm; } #wrapper #box #content { left: 0; margin-top: 0; padding-left: 0; } body #wrapper, div.image p.caption { font-family: georgia, serif; } #article-header, #article-sub-header { padding-top: 0; margin-top: -10pt; } p#partners { padding-bottom: 10px; width: 260pt; overflow: hidden; } p#partners img { float: right; } ul.article-attributes { padding-top: 0; margin-bottom: 10pt; padding-bottom: 20pt; } ul.multi-pub { height: 85px; } #wrapper #box, #sub-header, #header, #topslot { padding: 0; overflow: visible; clear: both; } #box { width: auto; } #topslot, #topslot img, #header #sub-header #topslot { float: left; overflow:hidden; } #wrapper #box #related, #wrapper #box #promo, #head { overflow: auto; } #wrapper #more-in-series h3 { border-top-width: 1px; } a:link, a:visited, a { color: black; background-color: white; } #footer-links a { color: #08c; text-decoration:underline; } /* Content type styles ---------------------------------------------------------------*/ body.article div#content { margin-left: 0; } body.article #footer, #footer { border: none; } body.article div#box { margin-top: 0; } div.rating-container { font-size: 1em; } #content ul.article-attributes li.resize { clear: both; border-top: 1px dotted #333; margin-top: 5px; padding-top: 5px; display: block; font-size: 0.75em; position: relative; top: -5px; } body.article div.factbox { margin-bottom: 20px; } #content ul.article-attributes li.resize a { text-decoration: underline; color: #005689; } #content ul.article-attributes li.resize a:hover { text-decoration: none; } #content ul.article-attributes li.resize img { position: relative; top: 5px; } #content ul.article-attributes li.resize a:focus, #content ul.article-attributes li.resize a:active { background-color: #005689; color: white; } * html #wrapper { height: 1pt; position: relative } * html p.drop:first-letter { height: 1px } body.article #content > p.drop:first-letter { font-size: 49pt; } body.article #content > p.q:first-letter { font-size: 40pt; } #content p span.pullout { left: -3.8cm } #footer { clear: both } #content #more-article { display: block } #wrapper #header { border-bottom: 0; } #logo img { margin-top: 2px; } /* Competitions */ #content form.competition ul li.question-container { width: auto; } form.competition ul li.question-container p.question { width: 50%; } /* End competitions*/ /* quiz */ form.quiz ol { float: left; } form.quiz ol li { clear: both; } form.quiz ol li.question-container ol.picture li label { float: none; } form.quiz ol li.question-container ol li span { margin-bottom: 8px; } form.quiz ol li.question-container ol li label { display: inline; } form.quiz ol li.question-container ol li input { margin-top: 0; } /* end quiz */ /* Polls */ span.poll-result-figure { border-left: 0; } span.poll-result-bg { border: 1px solid #000; float: none; position: absolute; } span.poll-result-figure { margin-left: 5px; float: none; position: absolute; } table.poll-results span.large { left: 0; } /* End Polls*/ /* Tables */ table { font-family:arial,sans-serif; } table.in-article, table.stand-alone { line-height: 1.2em; } table.in-article tr, table.stand-alone tr { border-top-width: 1px; border-top-style: solid; } table.in-article thead, table.stand-alone thead { border-bottom-width: 1px; border-bottom-style: solid; border-top-width: 1px; border-top-style: solid; } table.in-article, table.stand-alone { border: none; } table.in-article tfoot .footer, table.stand-alone tfoot .footer { border-top: none; font-size: 11px; } /* end Tables */ /* Keyword page -----------------------------------------------------------------------------------------------*/ body.keyword-page #related { float: right; margin-left: 20px; margin-bottom: 20px } body.keyword-page #content { width: 460px; margin-left: 0; } body.keyword-page #content { line-height: 1.2; } * html body.article #related { margin-left: -22cm; margin-left: -614px; margin-top: -14px; } * html body.article #content { margin-left: 80px; } div.image p.caption { color: #666; } /* Contributor page */ body.contributor #content { margin-left:160px; } body.contributor #related { float:left; margin-left:-620px; padding:0 !important; } body.contributor #section-contents { float:left; } body.contributor #section-contents { float:left; } /* Network Front -----------------------------------------------------------------------------------------------*/ body.network div#wrapper { line-height: 130%; font-family: Georgia, "Times New Roman", Times, serif; } body.network div#wrapper fieldset, body.network div#wrapper input, body.network div#wrapper #mpu1, body.network div#wrapper #mpu2, body.network div#wrapper .jobs, body.network div#wrapper #editor-zone-3, body.network div#wrapper #nav, body.network div#wrapper .ticker-strap, body.network div#wrapper .news-ticker-element-hidden, body.network div#wrapper .news-ticker-element-visible, body.network div#wrapper #jobsbox, body.network div#wrapper .user-details { display: none; } body.network div#wrapper #topslot, body.network div#wrapper ul#nav, body.network div#wrapper div.commercial { width: 100%; } body.network div#wrapper div.news li.col, body.network div#wrapper div.zones li.col { width: 40%; } body.network h1, body.network h2 { border-top: 1px solid #000; } body.network div#wrapper #highlights { width: 100%; } body.network div#wrapper #highlights li, body.network div#wrapper #highlights div, body.network div#wrapper #highlights p, body.network div#wrapper #highlights img { display:inline; } body.network div#wrapper #highlights div { width: 138px; } body.network div#wrapper .more-news { clear: both; float: left; margin-bottom: 10px; width: 100%; } div#tabs { display:none; } body div#wrapper div#box div.badge img { position: static; } body.content-wide #google-ads-container h3, body.content-wide #google-ads-container ul.results { display: none; } body.content-wide #content-info, body.cartoon #content-info { clear: left; } body.cartoon h1#heading-alone { padding-bottom: 0; } div#wrapper div#box img.image-badge { border-bottom: none; } #article-header #main-article-info, #content { float: none; } /* ---------- print-adjust.css ends here ----------- */ ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=high-contrast-common.css Content-Type: text/css; name=high-contrast-common.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/high-contrast-common.css Content-Transfer-Encoding: 8bit /* ---------- large-type.css starts here ---------- */ @media all { body.article .large-type #content, body.other .large-type #content { width: 480px; } body.keyword-page .large-type #content, .large-type #section-contents, body.other .large-type #content { border-left: 1px solid; padding-left: 10px; } body.article .large-type #article-header { padding-left: 10px; width: auto; } .large-type #content .narrow { width: 200px; } .large-type #content .narrow p { font-size: 0.8em; } .large-type #box { width: 940px; } .large-type #section-contents { float: none; width: auto; clear: both; } body.front .large-type #section-contents { width: auto; clear: none; } body.directory .large-type #content, body.directory .large-type div.countries .directory, body.directory .large-type div.countries { width: auto; float: none; clear: both; } body.article .large-type #related, body.other .large-type #related { width: 380px; } body.article .large-type #related { border-left: 1px solid; padding-left: 10px; } /*begin keyword ------------------------------------------------*/ body.keyword-page .large-type #content { margin-left: 320px; width: 600px; } body.keyword-page .large-type #related { margin-left: -920px; width: 300px; } * html body.keyword-page .large-type #content /*only seen in IE pc */ { margin-left: 160px; } .large-type #content ul#main-trailblock li, .large-type #content ul#main-trailblock li.major-heading h2 { width: auto } .large-type #content .breakdown .country ul { width: 100%; clear: left; float: left; margin-top: 0; } .large-type #content .breakdown .country ul li { width: 100%; } /*underhigh contrast mode this gets the tips to look good why is the pc ie ignoring the text sizes? * html body.keyword-page #section-contents { font-size: 0.350em } */ /*end keyword ------------------------------------------------ */ /* World regains ------------------------------------------------------------------------------------------*/ .directory-continent .large-type div.directory ol li { width: 400px; } .large-type div.directory ol { width: 840px; float: right; } body.triplet .large-type #content, .large-type .col { float: left; width: 440px; margin-left: 0 } body.front .large-type #highlights ul.trail li, body.keyword-page .large-type #highlights ul.trail li { width: 280px; } .large-type #related-info div.section { padding-left: 320px } * html .large-type #related-info h3 { width: 300px; left: -300px; } .large-type #related-info { width: 920px; margin-left: 0 } .large-type #promo, .large-type #promo div.capsule { width: 920px; float: left } .large-type #promo .deal ul li, .large-type #promo .reader ul li, .large-type #promo div.auctions ul li, .large-type #promo .deal .right, .large-type #promo .reader .right, .large-type #promo div.auctions .right { width: 880px; float: left; } .large-type #promo .deal ul li, .large-type #promo .reader ul li, .large-type #promo div.auctions ul li, .large-type #reader-offers li, .large-type .sponsored-features ul.tri li, .large-type .sponsored-features ul.tri li div.trailtext, body.keyword-page .large-type .sponsored-features ul.tri li, body.keyword-page .large-type .sponsored-features ul.tri li div.trailtext { width: auto; float: none; margin-left: 0 } .large-type #promo .editorial-pick-small img, .large-type #promo .editorial-pick-large img { float: left; margin: 0; } .large-type #promo .editorial-pick-small p, .large-type #promo .editorial-pick-large p { width: 880px; } /*this is to make sure the promo capsule s turn up on the high contrast mode*/ * html .large-type #promo .capsule { height: 1px; overflow: visible; } .large-type #radio-buttons { position: static; right: 0; } * html body #wrapper.large-type /*ie only*/ { font-size: 0.7em } /* Document header area ------------------------------------------------------------------------------------------*/ .large-type #header #web-search, .large-type #header #section-selector fieldset, .large-type #header #section-selector, .large-type #sitesearch { float: none; width: auto; clear: both; width: 98%; text-align:left; } /* Alternate trail layout --------------------------------------------------------------------------*/ .large-type #content ul.alternative div.trail-caption { width: auto; margin-left: 0; float: none; border-top: none; clear: none; } .large-type ul.trailblock li.normal img { margin: 10px 20px 0 0; float: left } body.triplet .large-type ul.tri img, body.late-offers-front .large-type ul.tri img { float: none; } .large-type #content ul.trailblock li.normal { float: none; width: auto; margin-left: 0; margin-top: 20px; clear: left; border-top: 1px dotted } .large-type #content ul.alternative li.wide { clear: left; float: left; width: 460px; margin-left: 0; } /* rss feed ------------------------------------------------------------------------------*/ body.keyword-page .large-type a.feed, body.other .large-type a.feed { left: 620px; } body.keyword-page .large-type #article-header, body.other .large-type #article-header { padding-right: 320px } /* Front ---------------------------------------------------------------------------*/ body.front #content .large-type li.portrait { width: auto; float: none; clear: both; } body.front .large-type #box #content #main-trailblock li.portrait div.trailtext, body.front .large-type #box #content #main-trailblock li.portrait div.linktext, body.front .large-type #box #content #main-trailblock li.portrait, body.front .large-type ul.trailblock li.portrait .linktext h3 { float: none; width: auto!important; } body.front .large-type div.cols, body.front .large-type ul.column, body.front .large-type ul.trailblock li, body.front .large-type ul.column li, body.front .large-type #main-trailblock ul.column, body.front .large-type #also-on-travel ul.column, body.front .large-type #content div.reader-tips ul.tips li { width: 340px; overflow: visible; } body.front .large-type div.reader-tips, body.front .large-type div.cols li, body.front .large-type ul.column li, body.front .large-type ul.tips { width: auto!important; } body.front .large-type #mpu { height: 250px; position: static; } body.offers-front .large-type #box #content ul.auto-trail-block li ul.sublist li { width: 380px } body.offers-front .large-type #box #content ul.auto-trail-block li ul.sublist { float: left; width: 920px; } body.front div#wrapper.large-type, body.article div#wrapper.large-type { background-image: none; } body.front div#wrapper.large-type .news { padding-top: 1em; } body.front div#wrapper.large-type #content div#main-trailblock li.col { width: 620px; } body.front div#wrapper.large-type #reader-offers { width: 920px; } body.front div#wrapper.large-type div.commercial, body.front div#wrapper.large-type div#also-on { clear: both; float: none; width: auto; } body.front div#wrapper.large-type #box div.commercial { overflow: visible; } body.front div#wrapper.large-type div.also-offers li { float: none; width: auto; } body.front div#wrapper.large-type ul li.open-pix { height: auto; } body.front div#wrapper.large-type li.pixie img { height: 260px; } body.front div#wrapper.large-type div.also-offers li.image, body.front div#wrapper.large-type div.also-offers li.image img { position: static; } body.front div#wrapper.large-type .sponsored-features li, body.front div#wrapper.large-type div#main-offers { width: auto; } body.front div#wrapper.large-type ul#offers li.col ul { margin-left: 0; } body.front div#wrapper.large-type ul#offers li { width: auto; } body.front div#wrapper.large-type #content div#main-trailblock .col, body.front div#wrapper.large-type #content div#main-trailblock li, body.front div#wrapper.large-type #content div#main-trailblock .more-news ul { width: 620px; } body.front div#wrapper.large-type #highlights li img { height: auto; width: 100%; } .offers-place .large-type #content #main-trailblock, .offers-place .large-type #content #main-trailblock li, .offers-place .large-type #content li.wide, body.front div#wrapper.large-type div.commercial *, body.front div#wrapper.large-type div#highlights { width: auto } body.front div#wrapper.large-type div#highlights { float: right; } body.network div#wrapper.large-type div#highlights { width: 140px; } div#wrapper.large-type #highlights ul.featured-trailblock { width: 280px; overflow: hidden; } body.front div#wrapper.large-type #onsite, body.front div#wrapper.large-type #section-contents #onsite div.capsule { float: right; width: 100%; } body#person-profile div.large-type #related { width: 280px; } body#person-profile div.large-type #content { width: 640px; } } /* ---------- large-type.css ends here ----------- */ /* ---------- color.css starts here ---------- */ #p.ip_logged, div#content blockquote { color: #666; } #videoPaneNoscriptReplacement, div#velocityerrors li, h1.badge-name { color: #fff; } #section-classifieds h4 { color: #005689; } #gu-now #gu-now-last-updated { color: #494949; } div.numbered-list span.count { color: #444; } div.numbered-list div.strap, div.numbered-list div.trailtext { color: #999; } body, html, #section-tools a, #footer, ul.tips h3, .directory #box #content p, ul.tips li strong, #nav ul li span, .copyright, #section-contents ul li ul li p.description, .commercial #promo .capsule, ul.credit li p.description, body.directory .count, #promo #finance-guides, body.video-series div#latest-series ul li h2, body.series-index div.trail-text span.date, body.contributor div.trail-text span.date, body.keyword-page div.trail-text span.date, body.interactive div.navigation ul#main-trailblock li div.strap, body.audio-canonical .more-podcasts li h5, body.audio-canonical .more-podcasts li .trail-text .date, body.audio div#more-in-audio-series h2, #article-header #strap, #wrapper #results-trailblock h2, body.quiz div#quiz-answers ul.weighted-responses li em, #global-jobs, #article-header #biography h2 { background-color: white; color: #333; } body.audio-canonical #subscribe-feeds { background-color: #EDEDED; border-color: #BCBCBC; } body.audio div#more-in-series { border-bottom-color: #e5e5e5; } body.audio .more-podcasts { border-bottom-color: #fff; } body.audio #related div.relatedlinks h3 { border-color: #999; } body.clippings .meta-data .annotation p, body.clippings .meta-data p.clipped-on, #article-header h2 { color: #999; } #promo h4, #promo h4 label, #promo #reader-offers h4, div#wrapper div.strap { color: #333; background-color: transparent; } a, div#league-position a, body.sport div.ventures-slot-machine a { color:#005689; } #find-job-container a:focus, #find-job-container a:active, div#promo div.latest-cif-posts a:focus, div#promo div.latest-cif-posts a:active { outline: none; background-color: #005689; color: #fff; } body.sport #wrapper #section-contents #onsite #sponsored-features li .linktext a { color: #0a246a; } #find-job-container a, div#promo div.latest-cif-posts a { color: #005689; } a:focus, a:active { outline: none; background-color: #005689; color: #fff; } /* I've had to hard code colours for the promo front template, as Andy wants blue, but the section colour is red. Couldn't think of any other way to do it. This will need fixed at some point. SU 19/09/2008 */ body.front div#box div#content div#feature-pick div#main-trailblock h2, body.front div#wrapper div#box div#promo-a h2, body.audio-front div#wrapper div#box div#promo-a div.latest h2, body.front div#wrapper div#box div#promo-a div#more ul.trailblock li.major-heading h2, body.cartoon-front div#wrapper #box ul#editor-zone-1 li.major-heading h2, body.promo-front div#wrapper #box #editor-zone-3 li.major-heading h2, body.multimedia-front div#wrapper #box #editor-zone-3 li.major-heading h2, body.cartoon-front div#wrapper #box div#latest-trails h2, body.audio-front div#wrapper div#footer, body.video-front div#wrapper div#footer, body.cartoon-front div#wrapper div#footer, body.video-front div#wrapper div#promo div, body.audio-front div#wrapper div#promo div, body.cartoon-front div#wrapper div#promo div, body.multimedia-front div#wrapper div#promo div, body.multimedia-front div#wrapper div#footer, body.promo-front div#wrapper div#promo div, body.promo-front div#wrapper div#footer, body.promo-front div#wrapper #content div.single-tag h2 { border-color: #0061A6; } * { background-repeat: no-repeat; } #section-contents li, #box h2, #related #book-index h2, #article-header #biography h2, .bio, body.article #content h3, #promo #finance-guides table tbody td, #promo #finance-guides table tbody th, #promo div#finance-guides, #book-index img.paper-thumb, body.most-popular div.most-top-ten, #sign-off, .trailblock .featured-trailblock ul.sublinks li, { border-color: #ccc; } #article-header h2 { border: none } #stand-first, p.drop:first-letter, span.drop, body.blog-post #stand-first { color: #666; } body.directory #box h2 { background-image: none } div.level-3, #box h2, #gallery-series-navigation h3 { background-position: bottom left; } #section-contents li li { background-image: none; } .count, .page-number, li.horizontal, ol.az-trips li p, body.video-front .video-duration, #calendar td.not-this-month, #readers-tips ul.tips p.credit, body.keyword-page p#more-daylife { color: #999; } ul.toolset li a { background-position: left center; padding-left: 20px; display: block; background-color: transparent; } #promo h2, #promo h3, #booking fieldset.section, #booking fieldset.section span, #also-on ul.viewer li, #related h5, div#sub-header, #related #fact-box h2, body.article #box #content h2, body.article #box #content h3, body.article #related h3, body.poll #related h3, body.quiz form.quiz ol li.question-container, body.quiz form.quiz ol, body.competition div#box div#related h3, #related-articles ul li, .services, ol.timeline li, body.video-series div#box div#content ul.trailblock, #book-index ul li, body.series-index ul.auto-trail-block li p.date, body.series-index #content ul.auto-trail-block li h3.series-index-article, body.cartoon div#related ul.keywords li.series p, body.cartoon #wrapper #box div.linktext h3, #related ul#article-toolbox-side li.resize, #section-contents ul#article-toolbox-side li.resize, body.article ul#article-toolbox, body.gallery ul#article-toolbox, #content ul#article-toolbox, body.audio-canonical #view-notes, body.audio-canonical #full-contents h2, body.audio div#more-in-audio-series .description, body.audio .more-podcasts h5.group-title, #box #content #our-blogs li h3, div#readers-tips li p.tip-header, div#readers-tips li.last, body.article div.related-item div.related-bottom-links, table.team-matches tr, table.league-position tr, div.jobsbox p.find-a-job, div.ventures-slot-machine p, div#secondary-trailblocks ul.default-trailblock li .trail-caption, body.sport #wrapper #content #results-trailblock li.vertical, #section-contents #most ol, div#most div.most-pane li, #box #content #most p.more-on, .video-front div#content div#video-player ul.article-attributes, body.books div#section-contents div.best-sellers ol li, div.terms-and-conditions h4, form.competition ul.first, body.web-search div#box h2, body.web-search div#box h3, #user-reviews .Reviews_UserImage, #user-reviews .Reviews_TableRight, body.people div#article-content, body.people div#box div#people-tabs, body.people div#related ul li.vertical, body.people #wrapper #content ul#auto-trail-block li.wide div.media-above h3, table.in-article h2, table.in-article th, table.in-article td, table.in-article tfoot div.source, table.stand-alone th, table.stand-alone td, table.stand-alone tfoot div.source, body.film div#content div#main-trailblock ul#film-info li, body.film div#related div#user-rating-side h2, div#advertiser-container ul.results li, p#about-daylife, body.front div#wrapper div#promo div#global-jobs div.jobsbox, body.video-front div#more ul.trailblock li, body.audio-front div#more ul.trailblock li, body.front div#box div#content div#feature-pick div#main-trailblock div#content-header h2, body.video-series div#box div#content div#main-trailblock div#content-header h2, div#pluck-container div#progress-bar div, div#pluck-container div#progress-bar, #pluck-loading-dialog, body.other ul#main-trailblock div.linktext h3, body.front div#our-blogs p.more-on, body.clippings div.clipping-contents, body.pluck-user-profile div#pluck-recent-activity-container div#pluck-latest-comments ul li.first, body.pluck-user-profile div#user-profile table td, body.pluck-user-profile div#user-profile table th, body.audio-front div#feature-pick div#content-header ul.audio-page, body.front div#content div.recent-blogs ul li, body.front div#content div.recent-blogs ul li, body#interactive-front div#related div.relatedlinks h3, #league-position table th, #league-position table td, #league-position table thead tr, table.stand-alone caption, div#box div#sponsored-jobs li.image div.job-button { border-color: #999; } body.comments div#content div#pluck-comment-container div.pluck-comment-block ul li { border-color: #999; } div#pluck-container div#progress-bar span { background-color: #9CD6F5; } body.audio-canonical #section-contents .keyword-list h2 { border-bottom-color: #999; } #related-info .section ul li, body.article #related-info ul.keylinks li, body.article #related-info ul.tips li, div#content ul.auto-trail-block li h2, div#section-contents ul.tips li, div#section-contents ul li, body.clippings div#section-contents ul, #section-contents ol.most-read li, div #box div#content ul li h2, #related-info .section ul li, body.article #related-info ul.keylinks li, body.article #related-info ul.tips li, .article #related h3, ul.child-keyword li, .index .breakdown, .all-places .breakdown, .weather-country .breakdown, .weather-continent .breakdown, .index .country, #wrapper div#section-contents ul#editor-zone-3 li, #wrapper div#section-contents ul#editor-zone-4 li, #wrapper #box #content ul#editor-zone-5 li.vertical, div#pickable-rss-rule-slot div.rss_wrapper ul li, ul.trailblock li.wide div.trail-caption { border-color: #999; } ol.alphabet, body.directory-place .index, #content ul.auto-trail-block li, #content ul.auto-trail-block li div.trail-caption, #keyword-trailblock li, ul.pagination, #content ul#main-trailblock li.normal, #related p.shower, body.front #wrapper #box #content div.cols ul li.major-heading h2, div.text { border-color: #999; } #related .ed-zone li, #edited-offers a.caption, #content ul.tri li, ol.az-trips li, .capsule ul.tri li, ul.trailblock li.portrait .linktext h3, #section-contents ul li, #content .reader-tips ul.tips li, .trail-block-page #content ul#main-trailblock li, ul.no-pic, body.gallery #sponsor-picture, #content li.col h2, #content li.col h3, body.vss #content ul.credit, div#solo-trailblock h3, body.cartoon-index div#recent-trailblock ul li h3, body#interactive-front #contact .sponsored-features li.first { border-color: #999; } /*border different for promo column - but not when on front*/ .front #promo h4 { border-color: #999; } /*border different for promo column*/ #promo h4, .commercial #wrapper #promo .sponsored-features, .commercial #wrapper #promo li, #promo .capsule ul.tri li, body div#wrapper div#promo .slot p.linktext { border-color: #333; } #promo div.capsule, body.travel #wrapper div#edited-offers li.major-heading h3, body.commercial #wrapper #promo div.capsule, body.cartoon-index div#wrapper div#footer ul#footer-links, body.cartoon-index div#wrapper div#box ul#main-trailblock, body.cartoon-index #wrapper div#box #recent-trailblock h2, body.cartoon-index #wrapper div#box div#related ul#editor-zone-1 li.major-heading h2, body.web-search div#footer, body.web-search div#results, body.contributor #wrapper #footer #footer-links, body.style-guide #wrapper #promo div.capsule, body#table-full-width-content div#wrapper div#promo div.capsule { border-color: #d3d3d3; } body.front div#wrapper div#promo div.capsule { background-color: transparent; } body.front #promo { background-color: transparent; } body.education #page-header, #header, #also-on { color: inherit; background-color: white } table#calendar { color: #333; background-color: #ededed; } table#calendar tr.month-nav th, table#calendar, table#calendar td { border-color: #c3c3c3; } /* = gallery -------------------------------------------------------------------------------*/ body.gallery #topslot { background-color: #dedede; } body.cartoon #topslot { background-color: transparent; } /* =related (article links etc) -------------------------------------------------------------------------------*/ #relatedlinks { position: relative; } /* header topslot --------------------------------------------------------------------------------*/ #topslot, #sub-header, div#local-info, ul.user-details li { border-color: #bebebe; } /* ******** REMOVED ******** = Navigation #nav -------------------------------------------------------------------------------*/ ul.credit, #related-info ul.tips p.credit, #header #nav ul, .explainer, span.credit, #big-picture-holder p.caption { color: #999/*another grey - look into AB */ } h1 span.date { color: #888; /*another grey - look into AB -we don't want to do this too often */ } /* =tertiary section navigation ------------------------------------------------------------------------------*/ span.pullout, div.page-heading p.linktext, p.trailstrap, div.strap, ul.commercial-links li, ul.pagination, p span.caption, body.video-front .trail-video-section, #last-updated, span.caption, div.image p.caption { color: #666; } #last-updated .date { color: #333; } #content .regionplaceholder p, body.front #edited-offers ul li, #edited-offers a.caption, body.directory-place #content .countries p.first, #book-index ul li ul, #book-index ul li ul li, div#section-contents ul.find-that-job li.header, div#promo ul.find-that-job li.header, #wrapper ul#more-news li.col ul li, #wrapper ul#more-news h3, body.sport #wrapper #content div#main-trailblock ul#more-news .major-heading h2 { border-color: #999; } body.competition form.competition, body.competition p.closed, #promo div.capsule, .commercial #wrapper #promo .sponsored-features { background-color: #f3f3f3; } a.webfeedlink { background-image: url(images/icon_rss.gif); background-position: 0 50%; display: block; height: 14px; padding-left: 18px; padding-top: 1px; } /* styling for beta -------------------------------------------------------------------------*/ #wrapper h2.beta { font-size: 6em; position: fixed; right: 10px; top: 10px; color: red } div.temp p { color: #fff; } body.video #content #videos-third-column h2, body.video #videos-third-column ul li { border-color: #999; } body.video-front #nav a.current { color: #005689; } body.video #content li.date, body.video #content li.credit { color: #666; } div #box div#content div.latest ul li.News h2 { border-color: #04669c; } div#section-contents div#find-job-container, div#promo #most-viewed div.most-pane { background-color: #fff; } body.video div#wrapper div#find-job-container, body.interactive div#wrapper div#find-job-container, body.quiz div#wrapper div#find-job-container { float: left; margin-right: 20px; background-color: #fff; } /* poll colours */ body.poll option.select-label { color: #999; } body.poll th { border-top-color: #d3d3d3; } table.poll-results td.total-responses { color: #999; } span.poll-result-bg { background-color: #b6b6b6; } span.poll-result-figure { background-color: #fff; border-left-color: #fff; } /* end poll colours */ /* mini weather in fronts starts */ div.temp p { border-color: #fff; } /* mini weather in fronts ends */ /* beautiful boss starts */ body.beautiful-boss div#promo, body.beautiful-boss div#box { border-bottom-color: white; } body.beautiful-boss div#wrapper { background-image: url(images/beautiful-boss-bg-inner.gif); } body.beautiful-boss div#article-header, body.beautiful-boss div#beautiful-boss-trail h2.first, body.beautiful-boss div#content h2.first, body.beautiful-boss div#recent li, div#beautiful-boss-trail div#main-trailblock li.image { background-color: white; } div#beautiful-boss-trail { border-bottom-color: white; } div.hero-panel h2, div.hero-panel div.trailtext { background: #fff; color: black; opacity: 0.8; } body.beautiful-boss div#related { border-top-color: white; } /* beautiful boss ends */ /* Video, Audio and Gallery fronts forced to be News colour instead of Global colour */ body.video-front div#content, body.video-front div#content h2, body.video-series div#box div#content ul li h2, body.video-front div#content #editors-heading h2, body.video-front div#box div#content div.latest li h2, body.video-front div#wrapper div#box div#more li.major-heading h2, body.video-front #footer, body.audio-front div#wrapper div#box div#more li.major-heading h2, body.audio-front div#wrapper div#box div#promo-a h2, body.audio-front div#wrapper div#box div#audio-pick h2, body.audio-front div#wrapper div#content-header, body.audio-front #footer, body.content-index div#wrapper div#box div#content ul#main-trailblock li.major-heading h2, body.content-index div#content h3.first, body.content-index div#wrapper div#box div#related div.capsule ul li.major-heading h2, body.content-index div#box div#content h2.first, body.content-index div#wrapper div#footer, body.front div#box div#feature-pick h2, body.front div#box div.latest-from-section h2 { border-color:#D61D00; } /* Video Front sections start*/ #wrapper #box ul li.News h2, #wrapper #box ul li.News h3 { border-color: #d61d00; } #wrapper #box ul li.Sport h2, #wrapper #box ul li.Sport h3 { border-color: #008000; } #wrapper #box ul li.Politics h2, #wrapper #box ul li.Politics h3 { border-color: #d61d00; } #wrapper #box ul li.Travel h2, #wrapper #box ul li.Travel h3 { border-color: #6bbde9; } #wrapper #box ul li.Science h2, #wrapper #box ul li.Science h3 { border-color: #d61d00; } #wrapper #box ul li.Media h2, #wrapper #box ul li.Media h3 { border-color: #d61d00; } /* vivid front section accents */ #wrapper #box ul li.news h2, #wrapper #box ul li.news h3 { border-color: #d61d00; } #wrapper #box ul li.sport h2, #wrapper #box ul li.sport h3 { border-color: #008000; } #wrapper #box ul li.Politics h2, #wrapper #box ul li.Politics h3 { border-color: #da0034; } #wrapper #box ul li.Science h2, #wrapper #box ul li.Science h3 { border-color: #2bbafe; } #wrapper #box ul li.travel h2, #wrapper #box ul li.travel h3 { border-color: #65c5fb; } #wrapper #box #our-blogs h2, #wrapper #box ul li.blogs h3 { border-color: #ce2e20; } #wrapper #box ul li.lifestyle h2, #wrapper #box ul li.lifestyle h3 { border-color: #ffd200; } #wrapper #box ul li.arts h2, #wrapper #box ul li.arts h3 { border-color: #f8298b; } #wrapper #box ul li.media-professional h2, #wrapper #box ul li.media-professional h3, #wrapper #box ul li.Media h2, #wrapper #box ul li.Media h3 { border-color: #ff8400; } #wrapper #box ul li.business-money h2, #wrapper #box ul li.business-money h3 { border-color: #8388e4; } #wrapper #box ul li.comment h2, #wrapper #box ul li.comment h3 { border-color: #0061a6; } #wrapper #box ul li.jobs h2, #wrapper #box ul li.jobs h3 { border-color: #a6d1e2; } #wrapper #box ul li.news h2, #wrapper #box ul li.news h3 { border-color: #ce2e20; } #wrapper #box ul li.shops-services h2, #wrapper #box ul li.shops-services h3 { border-color: #266f9b; } #wrapper #box ol.most-read li.first h2, #wrapper #box ol.most-read li.first h3 { border-color: #266f9b; } #wrapper #box ul li.culture h2, #wrapper #box ul li.culture h3 { border-color: #d1008b; } #wrapper #box ul li.business h2, #wrapper #box ul li.business h3 { border-color: #4a64d9; } #wrapper #box ul li.money h2, #wrapper #box ul li.money h3 { border-color: #8f1ab6; } #wrapper #box ul li.life-style-1 h2, #wrapper #box ul li.life-style-1 h3 { border-color: #ffc202; } #wrapper #box ul li.life-style-2 h2, #wrapper #box ul li.life-style-2 h3 { border-color: #c93900; } #wrapper #box ul li.travel-1 h2, #wrapper #box ul li.travel-1 h3 { border-color: #65c5fb; } #wrapper #box ul li.travel-2 h2, #wrapper #box ul li.travel-2 h3 { border-color: #066ec9; } #wrapper #box ul li.environment-1 h2, #wrapper #box ul li.environment-1 h3 { border-color: #7bbb00; } #wrapper #box ul li.environment-2 h2, #wrapper #box ul li.environment-2 h3 { border-color: #4a7801; } #wrapper #box ul li.red h2, #wrapper #box ul li.red h3 { border-color: #de4a33; } #wrapper #box ul li.blue h2, #wrapper #box ul li.blue h3 { border-color: #4c90c1; } #wrapper #box ul li.yellow h2, #wrapper #box ul li.yellow h3 { border-color: #ffb93e; } #wrapper #box ul li.black h2, #wrapper #box ul li.black h3 { border-color: #000; } #wrapper #box div#content ul li.arts-culture h2, #wrapper #box div#content ul li.arts-culture h3 { border-color: #f8298b; } /* end of vivid front section accents */ /* commercial borders for Zones start */ body.video-front div#promo div.capsule, body.audio-front div#promo div.capsule { border-color: #666; } /* Pluck comments */ .pluck-comment-block .pluck-content { border-color: #666; } /* commercial borders for Zones end */ /* zones in pickables start */ #box div.pickabletag li h2, #box div#content div.pickabletag ul li h2 { border-color: #d61d00; } #box div.pickabletag li h2.sport, #box div#content div.pickabletag ul li h2.sport { border-color: #008000; } #box div.pickabletag li h2.comment, #box div#content div.pickabletag ul li h2.comment, body.show-all-comments div#post-comment-div-bottom .pluck-comment-post { border-color: #0061a6; } #box div.pickabletag li h2.culture, #box div#content div.pickabletag ul li h2.culture { border-color: #d1008b; } #box div.pickabletag li h2.business, #box div#content div.pickabletag ul li h2.business { border-color: #4a64d9; } #box div.pickabletag li h2.money, #box div#content div.pickabletag ul li h2.money { border-color: #8f1ab6; } #box div.pickabletag li h2.lifeandstyle, #box div#content div.pickabletag ul li h2.lifeandstyle { border-color: #ffc202; } #box div.pickabletag li h2.travel, #box div#content div.pickabletag ul li h2.travel { border-color: #65c5fb; } #box div.pickabletag li h2.environment, #box div#content div.pickabletag ul li h2.environment { border-color: #7bbb00; } /* zones in pickables end */ /* Promo --------------------------------------*/ #promo a:focus, #promo a:active, body.front .commercial a:focus, body.front .commercial a:active { background-color: #005689; color: #fff; } body.sport #onsite .commercial a:focus, body.sport #onsite .commercial a:active { background-color: #008000; } /* End Promo */ /*lightbox special case*/ body.gallery div.lightbox ol li a:hover { background-color: #005689; color: #fff; } body.gallery div#box div#overlay a { color: #00c7ff; } body.quiz div#quiz-answers em, body.quiz p.quiz-error, body.competition p.competition-error, body.competition p.closed { color: #FF0000; } body.quiz #related div.relatedlinks h3 { border-color: #999; } /* for tabs that don't toggle panes on/off */ body.subject-index #index-toggle-nav a, body.contributor-index #index-toggle-nav a, body.people #index-toggle-nav a { background-color: #fff; border-bottom: 1px solid #fff; color: #000; } body.subject-index #index-toggle-nav a.inactive, body.subject-index #index-toggle-nav a.inactive b, body.contributor-index #index-toggle-nav a.inactive, body.contributor-index #index-toggle-nav a.inactive b, body.people #index-toggle-nav a.inactive, body.people #index-toggle-nav a.inactive b { border-bottom-color: #ccc; color: #444; } /* Olympics */ #latest-results-and-reports h2 { background-color: #fff; } #latest-results-and-reports div.col table.stand-alone thead tr, #latest-results-and-reports div.col table.stand-alone thead tr th { background-color: #a6d0a2; } #latest-results-and-reports div.col table.stand-alone tr, #latest-results-and-reports div.col table.stand-alone tr td { background-color: #fff; } #latest-results-and-reports div.col table.stand-alone tbody tr:hover { background-color: #fff3a5; } body.front div#latest-results-and-reports table.stand-alone caption, body.front table.stand-alone caption h1, body.front table.stand-alone caption p { color: #333; } body.olympics #content table.stand-alone tfoot { border-color: #fff; } body.medal-page div#content table img { border-color: #ccc; } body.fixtures-and-results-discipline div#content { border-color: #989898; } body.olympics #article-header h2 { color: #333; } div#promo div.capsule table.stand-alone thead tr, div#promo div.capsule table.stand-alone thead tr th { background-color: #a6d0a2; } div#promo div.capsule table.stand-alone tr, div#promo div.capsule table.stand-alone tr td { background-color: #f3f3f3; } body.date div#box div#article-header h2 { color:#999; } /* Olympics ends */ /* Blog calendar component */ div#blogs-calendar table tbody tr.active { background-color: #005689; } div#blogs-calendar table tbody tr.active a { color: #FFF; } div#blogs-calendar table tbody tr.has-links:hover { background-color: #CCC; } div#blogs-calendar div.capsule { background-color: white; } div#blogs-calendar table#calendar { background-color: transparent; } body.front div#content div#feature-pick #content-header, div#box div#content div#latest-trails ul.cartoon-latest li .series, body.front div#content div#feature-pick ul.article-attributes, body.video-series div#content div#content-header ul.article-attributes, div#content div#feature-pick div#content-header.video-page ul h3, div#blogs-calendar table tbody td, div#blogs-calendar table thead th, div#content ul#blog-posts-excerpts div.blog-excerpt h2, #most-viewed div.pane-wrapper, #most-commented div.pane-wrapper { border-color: #999; } /* End blog calendar */ /* Real clear politics component div#promo div.rcpwidget-300, div#section-contents div.rcpwidget-300 { background-color: #f3f3f3; border-top-color: #d3d3d3; } body.front div#section-contents div.rcpwidget-300 { background-color: #fff; } End real clear politics component */ div#wrapper div#intrusive, body.front div#content div.recent-blogs h2, body.front div#content div.recent-blogs p.more-on { background-color: #fff; } div#main-offers #commercial-partners ul li div.trailtext { color: #333; } /* boss-tag colours */ body.boss-tag div.col1, body.boss-tag ul#main-trailblock, body.boss-tag #wrapper #box #content .col1 #paginated-tag-content h3, body.boss-tag #wrapper #box #content .col1 #paginated-tag-content p, body.boss-tag div#article-header, body.reuters #stock-search-form { background-color: #fff; } body.boss-tag div#wrapper div#content div#main-trailblock, body.boss-tag div#wrapper div#box div#content #article-header, body.boss-tag div#wrapper div#box div#content #paginated-tag-content h3, body.boss-tag div#wrapper div#box div#content .pickabletag { background-color: #fff; } body.boss-tag div#section-pickable-tag-combiner li, div#related div.capsule h4, body.video #wrapper #box #related h3 { border-top-color: #999; } table.ftse100 th span, body.boss-tag #box #content div#related div.recent-blogs ul.tips li.tips-package ul.credit li.blog-date, body.boss-tag #box #content div#related div.recent-blogs ul.tips li.tips-package ul.credit li.blog-contributor { color: #999; } body.boss-tag #box #content #related ul.tips li.tips-package ul.credit li, .keyword-page #section-contents ul.tips ul.credit li { color: #333; } body.boss-tag #also-on { border-top-color: #fff; } body.boss-tag div#wrapper div#content div#main-trailblock li, body.boss-tag div#paginated-tag-content p { border-top-color: #999; } body.boss-tag #wrapper #box #content .col1 ul#main-trailblock li.normal, body.keyword-page div#wrapper #paginated-tag-content h3 { border-bottom-color: #fff; } p.more-on, table.marketindex td.timetillclose { color: #999; } table.ftse100, table.ftse100 tbody th, table.ftse100 td, table.marketindex { border-top-color: #c3c3c3; } body.reuters div#movers-chart { border-bottom-color: #c3c3c3; } table.marketindex td.netchange { color: #fff; } body.reuters .stock-toggle-pane, body.reuters p#reuters-blurb { border-color: #bebebe; } body.style-guide div#wrapper div#promo div.capsule { background-color: #f3f3f3; } /* related information component */ div.related-content, body#film-front .news #main-trailblock { border-bottom-color: #fff; } div#readers-tips h3, div#more-in-series h3, .related-content h3#relatedInformation, body.cartoon .related-content h3.first { background-color: #fff; } div.related-item div.related-footer, div.related-content div.multi h5, #box .related-content div.relatedlinks h3, .related-content div.relatedlinks h3, .related-content h3.first, body.cartoon .related-content h3.first, .related-content div.related-item p.noTrailPicture, body.cartoon div.relatedlinks h3 { border-color: #999; } div.series-navigation { color: #333; } body.country-tag #wrapper #content ul#main-trailblock li.first div.media-above, body.country-tag #wrapper #content ul#auto-trail-block li.first div.media-above, body#blog-front div#promo div#global-jobs div.jobsbox { border-color: #999; } body#visual-folder-list div#box div#sub-header { border-color: #ccc; } body#visual-folder-list ul#columnist-list li { border-color: #333; } #best-buy-container .all-deals, .newspaper-thumbnail { border-color: #999; } body#careers-front div#wrapper div#promo div#global-jobs div.jobsbox { background-color: #fff; border-color: #d3d3d3; } body#careers-front div#wrapper div#promo div#global-jobs { background-color: #f3f3f3; border-bottom-color: #fff; } /* ---------- color.css ends here ----------- */ /* ---------- table-color.css starts here ---------- */ /* Border colours */ table.in-article h2, table.in-article th, table.in-article td, table.in-article tfoot div.source, table.stand-alone th, table.stand-alone td, table.stand-alone caption, table.stand-alone tfoot div.source { border-color: #999 } /* END border colours */ /* Table styling */ table.stand-alone caption, table.in-article caption { background-color: #ccc; } table.in-article thead, table.stand-alone thead, table.stand-alone thead tr { background-color: #d8d8d8; } table.sortable thead th:hover, table.sortable thead td:hover { color: #fff; background-color: #333; } table.in-article tbody tr:hover, table.stand-alone tbody tr:hover, #league-position table tr:hover { background-color: #fff3a5; } /* End Table styling */ /* background of packages and manual tb on canonical pages */ table.in-article tr, table.stand-alone tr table.team-matches tr { background-color: #F5F5F5; } table.in-article tr.odd, table.stand-alone tfoot, table.stand-alone tr.odd, table.in-article tfoot tr, div#manual-trailblock { background-color: #EDEDED; } table.in-article tfoot .source, table.in-article tfoot .notes, table.stand-alone tfoot .source, table.stand-alone tfoot .notes { border-color: #999; } table.stand-alone tfoot, table.stand-alone tr { background-color: #f5f5f5; } /* ---------- table-color.css ends here ----------- */ ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/png Content-Location: http://static.guim.co.uk/static/86669/zones/comment/styles/wide/images/crumb_1.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAA4QAAAAzCAYAAADPacZrAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAI6xJREFUeNrsXX2MbVdV3/vOnel7xc6d R1NobalVeIWQNrQqEUmtlT8wFP4wajTQDxFDbIj/isZWIPoPMSGQmBgjiBKD4EcI IdRgQhQTFE2MSQFNGiBWUAIIzasKpR/vLu/M3HPu2uuste9Ze9Y++5yZvcow8+49 Z5/9ffZvffyWn/3Sh8FJAvJXVLz3kWJAdY/0VK8t//gh/Z9hVU5MpD6V+k/Zd7H+ sBIfqSto2qacY4mV7T2PivadZZ1K9nduSeg/dT9onpGyZ1iOp2Kf1D57iD1Gux7A atxS50ahvQEK7JOm/THGPUmoU8n3Q9E5U+pdqTz7mM2lIeak9lxnuI+ljM/hfNp2 Xj/8/ui6LefToJzDe+m13Gfbvl995nHbImVwdfC0/qQNuI2x8mP9JPVZO67kee13 68+Dsps6o/uaui9XP7/+kxfdG1/xgq+95MbnXSfWcV2297PVr2V0rvgpAcKih9mE l0fWA41lX0zkkD3Kw/opPiSqgX/Kyz33XD3NYLpUXQ2fWxQE5V4PluMz9Xlf8vA9 ofUwJcXw2MRbnWPcMAovMNwrrdsQgIn1/KMgqAt24Oh/FNCIIKgPkGLO2sDUZWtb cB0oMOQA7vqaoH0IkHWAlNQ3uO+2KDk886wYiG2g3d//6h1wbm/++z/0wuve0un7 nn3U3DNzVapUqVKlSpUqVapUOfPSASaua6g5vKYFH4eAhTOPHH1OQBSn/Dj8m1xz VPb6x5PnUfDVlr/+3QFtGBgx5TTXeAJgGyAW9MNaAQjkM4xam2s8bjMG2LTduD24 XUwd22vXvx7408/66/avePMXvvrNFwJpp1bmqTdaaCOsNCQwhPZMuF7b6midnIG7 A8i1stSgqfrCSINqNZ6Q8gytFcDI/XgQF7mEfrIYT3cGy9+2BlX7UikLgOFzS1kx UsIAYu8Zr9kzhGebuvpqPSBi7nkWVn+j8pO8O6zakPIes/KYELT9Y7RkmT6bW0Gg X5/O2dyT9AyL+TLQXhlYmDDYo66NDfBi2gi4HRg00rYL1rXgmvXzIOK2eVwvvi+p dc0zYJIbJ9xezuJ2VA4FcrQdDShEn3v0HHo9tXzGLH2beoP73H/+j/vAZ748v/uW 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 AABJRU5ErkJggg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=high-contrast-section.css Content-Type: text/css; name=high-contrast-section.css Content-Location: http://static.guim.co.uk/static/86669/zones/comment/styles/wide/high-contrast-section.css Content-Transfer-Encoding: 8bit /* ---------- accent.css starts here ---------- */ body.keyword-page div#wrapper div#box div#content h2.first, body.keyword-page div#box div#content div.book-index h2, body.keyword-page #related .capsule h3, #wrapper #box #content div.factbox .amazon-header { border-color: #0061a6; } body.keyword-page div#wrapper div.factbox li.major-heading, body.other div.factbox li.major-heading { border-color: #0061a6 !important; } body.front #content h2, body.front #content h1, body.front #wrapper div#section-contents li.major-heading h2, body.front #wrapper div#section-contents li.major-heading h3, body.front #wrapper div#more-trails div.sponsored-features, body.front #wrapper div#section-contents div.ventures-slot-machine h3, body.front div#section-contents #onsite h2, body.front #onsite .hd, body.front #elsewhere .hd, body.front #main-offers .hd, body #wrapper div#box div#sponsored-jobs, body.front #promo div#edited-offers li.major-heading h3, body.front #promo div.capsule, body.front #content div.first h1 { border-color: #0061a6; } body.video-series #box h2, body.video-series div#wrapper #box #videos-third-column li.major-heading h2, body.video-series div#wrapper #box #videos-third-column div#latest-series ul li h2, body.video-series div#wrapper div#video-series-header { border-color: #0061a6; } body.video #wrapper #box #related h3.first { border-color: #0061a6; } body.poll div#related div.article-trailblock li.first h2, body.poll div#related div.article-trailblock h2.major-heading, body.poll div#previous-polls { border-color: #0061a6; } body.cartoon #box .main-picture, body.cartoon div.series-navigation, body.cartoon #wrapper ul#footer-links, body.cartoon .related-content h3.first, body.cartoon div.relatedlinks h3.first, body.cartoon div#manual-trailblock { border-color: #0061a6; } body.content-wide #content-info { border-color: #0061a6; } body.quiz div#content, body.quiz div#related h2#keywords, body.quiz div#box div#related h3.front-link, body.quiz div#content ol li.question-heading { border-color: #0061a6; } body.audio-canonical div.keyword-list, body.audio-canonical div.resources, body.audio-canonical #section-contents li.package-headline h4, body.audio-front h2, body.audio-front .latest h2, body.audio-front #audio-pick h2, body.audio-canonical #article-header h2.series-title, body.audio-canonical ul.article-attributes, body.audio-canonical #section-contents h2, body.audio div#more-in-audio-series h2, body.audio .more-podcasts li h5, body.audio-canonical #wrapper #footer #footer-links, body.audio-canonical #wrapper #footer ul#copyright-links, body.audio-canonical #box div.relatedlinks h3.first, body.audio div#box div.relatedlinks h3.front-link { border-color: #0061a6; } body.series-index div#content h2.first, body.series-index div#content ul#auto-trail-block li.latest h2, body.series-index div#wrapper div#box div#related div.capsule h2.series-desc, body.series-index div#wrapper #box div#content li.major-heading h2 { border-color: #0061a6; } body.blog-post div#article-wrapper, body.blog-post p#blog-timestamp, body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-excerpt div.linktext h3, body.blog-index div#wrapper ul#blog-posts-excerpts div.blog-byline, body.blog-post div#wrapper div#box div.blog-byline, body.blog-post div#wrapper div#box div.blog-byline span.pub-badge, body.blog-index #content ul#blog-posts-excerpts h2, body.blog-index #wrapper #footer #footer-links, body.blog-index #content ul#blog-posts-excerpts li.date-posted div.blog-excerpt p.date, body#blog-front div#content h2, div#box div#article-header ul#blog-nav-top { border-color: #0061a6; } body.competition div#content, body.competition div#related h2#keywords { border-color: #0061a6; } body.fixtures-and-results #wrapper #content, body.fixtures-and-results #wrapper #footer ul#footer-links, body.fixtures-and-results #content h2, body.in-this-section #wrapper #footer ul#footer-links, body.matches-by-date #wrapper #footer #footer-links, body.matches-by-date #content, body.matches-by-date table, body.sport #box, body.sport #wrapper #content li.major-heading h2, body.sport #wrapper #section-contents div#sponsored-features h3, body.sport #wrapper div#box div#content #secondary-trailblocks .col li h2, body.football-tournament #league-position h2, body.cricket-match #box #content h2, body.olympics div#wrapper h2 { border-color: #0061a6; } #user-rating h2, #user-rating-side, #user-rating div.Ratings_Container, #user-reviews .sign-in, #user-rating form, #user-reviews h2, body#community-homepage div#promo div#quote-of-the-day h2 { border-color: #0061a6; } body.film div#page-header h2, body.film div#secondary-trailblock h2.major-heading, body.film div#secondary-trailblock h3, body.film div#related div#user-rating h2, body.film div#related form#cinema-search h4, body.film-index div#box, body.cinema div#content form#cinema-search h4, body.film div#footer ul#footer-links { border-color: #0061a6; } body.clippings div#box h2.clipping-user, body.clippings div#related, body.clippings div#content { border-color: #0061a6; } body.life-and-style div#content div#secondary-trailblocks div.col h2, body.life-and-style div#content div#third-trailblocks div.col h2 { border-color: #0061a6; } body.table div#content, body.table div#related h2#keywords { border-color: #0061a6; } body.beautiful-boss div#box div#related div#recent h2.first, body.beautiful-boss div#wrapper div#box div#content ul li p.strap, body.beautiful-boss div#wrapper div#related div#comment h2, body.beautiful-boss div#wrapper div#box h2, body.beautiful-boss div#content, body.beautiful-boss #related .pickablecontenttype h2, body.beautiful-boss #related .tag-tag h2, body.beautiful-boss div#multimediaHeader, body.beautiful-boss div#wrapper div#box ul.trailblock li.major-heading h3 { border-color: #0061a6; } body.publication div#box div#content ul.timeline li h2, body.publication #related h2 { border-color: #0061a6; } body.gallery div.article-trailblock, body.gallery div.relatedlinks h3.first, body.gallery div#current-gallery h2, body.gallery div.gallery-navigation ul li.current img, body.gallery #box .related-content div.relatedlinks h3.first, body.gallery #manual-trailblock { border-color: #0061a6; } body.culture div#main-trailblock div.strap, body.culture div#main-trailblock div.strap, body.culture div#content div#secondary-trailblocks div.col h2, body.culture div#content div#third-trailblocks div.col h2 { border-color: #0061a6; } body.stage div#wrapper div#additionals div#sponsored-features li.major-heading, body.stage div#wrapper div#box div#second-trailblock li.major-heading h2 { border-color: #0061a6; } body#jobs div#content ul.trail li, body#jobs div#content div.recent-blogs h2, body#jobs div#content div.sponsored-jobs { border-color: #0061a6; } body#major-event-front div#content ul#main-trailblock h2, body#major-event-front div#badge-interactive { border-color: #0061a6; } body.media-front div#content div#sponsored-jobs, body.media-front div#promo div#mpu1, body#society div#content div#sponsored-jobs, body#society div#promo div#mpu1, body#education div#content div#sponsored-jobs, body#education div#promo div#mpu1 { border-color: #0061a6; } body.clearing div#wrapper div#box div#content div#more-trails h2 { border-color: #0061a6; } body.article #related h2, body.article div#advertiser-container .advertiser-links h3, body.article #wrapper #footer #footer-links, body.article #wrapper #footer ul#copyright-links, body.article #readers-tips h3, body.article #more-in-series h3, body.article div#related div.relatedlinks h3.first { border-color: #0061a6; } body.other #box #content #section-contents h2, body.other #box #content h2.first, body.other #league-position h2, body#feature-trailblock div#wrapper div#content div#main-trailblock h2, body#feature-trailblock div#wrapper #second-content h2, body#feature-trailblock div#wrapper h2, body#feature-trailblock div#footer ul#footer-links, body#feature-trailblock div#multimediaHeader, body#feature-trailblock div#wrapper div#promo div.highlights div.capsule li.major-heading, body#feature-trailblock div#wrapper .promo-horizontal div.component, body#feature-trailblock div#wrapper .promo-horizontal #mini { border-color: #0061a6; } body.directory-place #content .index h2, body.directory-place #content .regionplaceholder h2, body.directory-place #content .countries h2, body.directory-front #box div#article-header { border-color: #0061a6; } body.boss-tag #related h2, body.boss-tag div#content div#related div.tag-tag h3, body.boss-tag div#content div.tag-tag h2 { border-color: #0061a6; } body.subject-index div#wrapper div#header, body.subject-index div#wrapper div#box div#section-contents ul#main-trailblock li.major-heading h2, body.contributor-index div#wrapper div#header, body.contributor-index div#wrapper div#box div#section-contents ul#main-trailblock li.major-heading h2 { border-color: #0061a6; } body.tag-content div#wrapper div#video-trailblock li#editors-heading h2, body.tag-content div#wrapper div#box div#content h3.first { border-color: #0061a6; } body.triplet #box div.col h2 { border-color: #0061a6; } body.in-this-section #wrapper #footer #copyright-links { border-color: #0061a6; } body.news #wrapper #section-contents div#sponsored-features h3, body.news div#onsite div.capsule h3, body#uk div#box, body#uk p.ticker-strap, body#uk #newsticker, body#world div#box, body#world p.ticker-strap, body#world #newsticker, body.der-freitag #newsticker, body.der-freitag div#box, body#uk.configurable div#section-contents div#sponsored-features, body.configurable #wrapper div#section-contents div#global-jobs, body#world.configurable div#section-contents div#sponsored-features { border-color: #0061a6; } body.observer #wrapper #section-contents div#sponsored-features h3 { border-color: #0061a6; } body.markets-index #content #market-data-header h2 { border-color: #0061a6; } body.interactive #box div.relatedlinks h3.first, body#interactive-front div#related div.relatedlinks h3.front-link, body.interactive-wide div#wrapper div#box div#content-subSection-container ul li.major-heading h2, body.interactive-wide div#footer ul#footer-links, body.interactive div#badge-full { border-color: #0061a6; } body.books div#wrapper div#section-contents div.sponsored-features ul.trail li.major-heading h3 { border-color: #0061a6; } body.art-and-design div#heading { border-color: #0061a6; } body.business-front div#second-trailblock div#money-trails h2 { border-color: #0061a6; } body.people div#article-header { border-color: #0061a6; } body.vss #box div#content div ul li.major-heading h2 { border-color: #0061a6; } #related h2, #related h3, #related-info, #related-info div.section, #related-info div.section h2, #related #keyword-combiner h3, #related h4, #related p.jump-related, #related ul.auto-trail-block h2, #related #article-trailblock h2, #related-info h2, div#related div.relatedlinks h3.first, div.related-item p.strap, #wrapper #related .pickablecontenttype h2, #wrapper #related .tag-tag h2, #wrapper #related div#keyword-internal-links ul.keywords li.major-heading h2, #wrapper #related div#keyword-external-links ul.keywords li.major-heading h2, #wrapper #related div.capsule h3, div#related div.relatedlinks .more-of, #related div#book-index h2, div#box div#related div.relatedlinks h3.first, .related-content h3#relatedInformation, div#related div#manual-trailblock, div#section-contents div#manual-trailblock { border-color: #0061a6; } h1, h2, h3, h4, #article-header, #article-header #strap, div.directory, #section-contents h2, #section-contents ul.been-there li, .directory-front #content h2, div#wrapper #box ul.trail li.major-heading h2, .late-offers-front #box #content li.minor-heading h2, .double-spread #content h2, .commercial #wrapper #promo .capsule h2, .directory ol.alphabet, .offers-place #content h2.first, div.series-navigation, div#box div.series-navigation, ul.article-attributes, div#second-trailblock, div.trailblock.offerblock h3#offers-heading, #article-toolbox-side, div#box div#content div#second-trailblock ul#money-trails h2, div#box div#content div#second-trailblock div#most h2, div#box div#content div.recent-blogs h2, ul.package, #aristotle, div.tag-tag h3, div#stock-search-narrow, .listings-search-minimal, div#content div.sponsored-features h3, div#wrapper div#box div#section-contents div.other-services li.major-heading h3, #promo #league-position, #sign-off p.more-galleries, #sign-off ul h2, #content div.hideable h2, div.factbox, body.article #box #content #factbox h2, div#wrapper div.badge-wrapper, #content .col1 .pickabletag h2, #wrapper .blog-related-links ul li.major-heading h2, div#box #content h2#blog-trailblock-header, div#box div#blogs-calendar h2, div#article-header div.editor-zone-3 ul li.sport h2, div#pickable-rss-rule-slot div.rss_wrapper, #promo div.component-badge h3, div#promo div.rcpwidget-300, div#section-contents div.rcpwidget-300, div#wrapper div#editors-msg ul, div#map-container h3, body #footer, div#beautiful-boss-trail div#main-trailblock h2.first, div#wrapper div#box img.image-badge, div.twitter-container, #blog-most-commented h2 { border-color: #0061a6; } /* pluck colours */ body.pluck-user-profile div#user-profile tr.first th, body.pluck-user-profile div#user-profile tr.first td, body.pluck-user-profile div#content div#abuse-component, body.pluck-user-profile div#content div#top-keywords, body.pluck-user-profile div#content div#pluck-recent-activity-container, body.pluck-user-profile div#pluck-recent-activity-container h4, body.pluck-user-profile div#wrapper div#footer, body.pluck-user-profile div#content div#pluck-profile p, body.pluck-user-profile div#content div#pluck-comments p.num-comments { border-color: #0061a6; } .pluck-comments-container #post-comment-div-top, .pluck-comments-container #post-comment-div-bottom, .pluck-comments-container .header .pluck-comment-post, .pluck-comments-container .header .pluck-comment-legend, .pluck-comments-container .footer .pluck-all-comments, #pluck-container #pluck-comments h2, #pluck-container h2, #pluck-container .footer, div#pluck-container div.pluck-all-comments, div#pluck-show-all-comments, div#chalkboard-description { border-color: #0061a6; } #pluck-addressed-comment-container #pluck-comments h2, #pluck-addressed-comment-container h2, #pluck-addressed-comment-container .header .pluck-comment-post, #pluck-addressed-comment-container .header .pluck-comment-legend, #pluck-addressed-comment-container .header .pluck-all-comments p, #pluck-addressed-comment-container .footer .pluck-all-comments p { border-color: #0061a6; } /* end pluck colours */ body.reuters #wrapper #box #content h2#stock-search-results-header, body.reuters div#related div#stock-search-narrow h3 { border-color: #0061a6; } body.weather div#heading, body.weather-city div#box div.capsule h2, body.weather-country div#content h2, body.weather-continent div#article-sub-header, body.weather-continent #content div#ed-zone-1, body.weather-continent #content ol.alphabet h2 { border-color: #0061a6; } body.business-front div#newsticker { border-color: #0061a6; } #pluck-comments .pluck-content, #pluck-addressed-comment-container ul, div#pluck-pagination-bottom, div#pluck-pagination-top, #user-rating-side div.Ratings_Container, #user-rating-side div.Ratings_Container div.Ratings_YourRating, div.rcpwidget-300 table td, #binary-poll h3, body.pluck-user-profile div#content *, table.in-article caption { border-color: #999999; } body.poll span.leader, div.rating-container, body#forums div.Forums_ContainerHead, body#forums div.ForumList_GroupHeading { background-color: #0061a6; } body#blog-front div#cif-cartoon span { background: #0061a6; color: white; } .front div#promo div.jobsbox, body.table div#promo div#global-jobs, body.table #promo div#edited-offers li.major-heading h3, body.table #promo div.capsule, body#blog-front div#promo div.capsule, #auto-single-tag h2, body#careers-front div#promo div#global-jobs { border-color: #0061a6; } body.travel #wrapper div.first h2, body.travel #wrapper #box #content div.first h2, body #wrapper div#section-contents, div#page-header { border-color: #0061a6; } body.most-clipped div#content ul#main-trailblock li.major-heading h2, body.most-viewed div#content ul#main-trailblock li.major-heading h2, body.most-popular div#content ul#main-trailblock li.major-heading h2, body.table div#promo div#global-jobs div div.jobsbox { border-color: #ccc; } body.most-commented div#content div#most-commented-header h2, body.most-viewed div#content div#most-viewed-header h2 { border-color: #0061a6; } table.in-article caption, table.stand-alone caption, table.team-matches caption { border-color: #0061a6; } body #content table caption { border-color: #333333; } table.in-article caption, table.stand-alone caption, table.in-article th { border-bottom-color: #999; } div#pix-grid li a span, div#pix-grid li a.link-text { background-color: #0061a6; } /* politics pages */ body#person-profile #wrapper #box h2, body#person-profile #footer-links, body#constituency #wrapper #box h2, body#constituency #footer-links { border-color: #0061a6; } /* politics pages */ body.country-tag div#section-contents div#pickable-combiner h2, body.country-tag div#section-contents div#weather h2, body.country-tag div#main div#multimediaHeader h2 { border-color: #0061a6; } body#careers-front div#content li.major-heading, body#careers-front div#content div.strap, body#careers-front div#footer ul#footer-links, body#careers-front div#wrapper div#page-header { border-color: #0061a6; } body#careers-front div#wrapper div#promo div#global-jobs { border-top-color: #0061a6; } body.money #box #content div.slot-machine-two li.major-heading h2 { border-color: #0061a6; } body.contributor div #box, body.contributor #supporting-content h2, body.contributor #content h2 { border-color: #0061a6; } #section-contents #promo #google-ads-container { border-top-color: #0061a6; } body.configurable div.heading div#page-heading h1, .pickablecontenttype h3 { border-top-color: #0061a6; } #attention-data { border-top-color: #0061a6; } body#tv-and-radio div#section-contents div#sponsored-features { border-top-color: #0061a6; } /* new grid accent colours */ .component, li.major-heading, .hd, .b1, .b4 { border-color: #0061a6; } /* background colours */ .rating-container, .pix-grid li a span, .pixies li.pixie.mini .caption, li.pixie.big .caption { background-color: #0061a6; } /* ---------- accent.css ends here ----------- */ /* ---------- zone-navigation.css starts here ---------- */ @media all { .crumb-wrapper { clear: both; background-color: #ededed; width: 100%; overflow: hidden; border-bottom: 10px solid #fff; } .crumb-wrapper ul, .crumb-wrapper ul li { float: left; } .crumb-wrapper li a { font-size: 16px; border-right: 1px solid #bebebe; padding: 4px 5px; display: block; } .crumb-wrapper li a:hover, .crumb-wrapper li a { text-decoration: none; } .crumb-wrapper li.last a, .crumb-wrapper ul.crumb-nav li a { border: 0; } .crumb-wrapper ul.crumb-nav #crumb2, .crumb-wrapper ul.crumb-nav #crumb3 { margin-left: -20px; } .crumb-wrapper ul.crumb-nav #crumb2 a, .crumb-wrapper ul.crumb-nav #crumb3 a { padding-left: 25px; } /* set up layering */ .crumb-wrapper ul.crumb-nav li, .crumb-wrapper ul.crumb-nav li a { color: #fff; position: relative; z-index: 3; } .crumb-wrapper ul.crumb-nav #crumb2, .crumb-wrapper ul.crumb-nav #crumb2 a { z-index: 2; } .crumb-wrapper ul.crumb-nav #crumb3, .crumb-wrapper ul.crumb-nav #crumb3 a { z-index: 1; position: relative; } /* background image for crumbs */ .crumb-wrapper #crumb1 a, .crumb-wrapper #crumb2 a, .crumb-wrapper #crumb3 a { background-color: transparent; background-position: right center; margin-right: 0; padding-right: 15px; } .crumb-wrapper #crumb1 a { background-image: url(images/crumb_1.png); } .crumb-wrapper.global #crumb1 a { background-image: url(../../../global/styles/wide/images/crumb_1.png); } .crumb-wrapper #crumb2 a { background-image: url(images/crumb_2.png); } .crumb-wrapper #crumb3 a { background-image: url(images/crumb_3.png); } .crumb-wrapper #crumb1 a:hover, .crumb-wrapper #crumb2 a:hover, .crumb-wrapper #crumb3 a:hover { background-image: url(../../../common/crumb_over.png); color: #fff; } /* local crumb nav */ .crumb-wrapper ul.local-nav li a:focus, .crumb-wrapper ul.local-nav li a:hover, .crumb-wrapper ul.local-nav li a:active { background-color: #0061a6; color: #fff; } .crumb-wrapper.global ul.local-nav li a:focus, .crumb-wrapper.global ul.local-nav li a:hover, .crumb-wrapper.global ul.local-nav li a:active { background-color: #4f4f4f; } .crumb-wrapper ul.related-to-crumb2 li a:focus, .crumb-wrapper ul.related-to-crumb2 li a:hover, .crumb-wrapper ul.related-to-crumb2 li a:active { background-color: #003a64; } .crumb-wrapper ul.related-to-crumb3 li a:focus, .crumb-wrapper ul.related-to-crumb3 li a:hover, .crumb-wrapper ul.related-to-crumb3 li a:active { background-color: #004e85; } .crumb-wrapper ul.local-nav li.first { margin-left: -20px; z-index: 0; position: relative; } .crumb-wrapper ul.local-nav li.first a { padding-left: 25px; } /* hot topics override - zone nav in page footer */ .crumb-wrapper.global ul.crumb-nav li a, .crumb-wrapper.global ul.local-nav li a:hover { color: #fff; } } /* ---------- zone-navigation.css ends here ----------- */ ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=base-typography.css Content-Type: text/css; name=base-typography.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/base-typography.css Content-Transfer-Encoding: 8bit body, html { font-size: 100%; } body, html, .col h3, div.linktext h3, .trail-block-page #related h3, .tips h4, .series-navigation h4, ol.alphabet a, #strap, #promo h5, #promo h4, #related h5, #related #article-trailblock h2, #related #keyword-continued .minor-heading h2, #related-info h3, #related-info h4, #related-info h5, #related-info h5.date, #relatedlinks h3, #gallery-series-navigation h3, #gallery-series-navigation h4, #fact-box h2, #content li.trail-strap h2, #section-contents li h3, #onsite #related-keywords h3, #header #section-heading, #header #guardian-logo, ul#keyword-continued .linktext h3 { font-family: arial, sans-serif; } h1, h2, h3, h4, h5, h6, ol.alphabet, #content li.trail-strap h3, #content .auto-trailblock h3, #content ul.trailblock li h3 { font-family: georgia, serif; font-weight: normal; } #content > p.drop:first-letter, strong.drop:first-letter, span.drop, #article-header h2 { font-weight: normal; } #promo h5, #related h5, #related #article-trailblock h2, #related-info h3, #related-info h4, #related-info h5, #relatedlinks h3, #gallery-series-navigation h3, #gallery-series-navigation h4, #fact-box h2, #content li.trail-strap h2, .trail-block-page #related h3, #onsite #related-keywords h3 { font-weight: bold; } #wrapper { font-size: 12px; line-height: 1.25;/* 15px at default font size 15/12 */ } h1, #article-header h2 { font-size: 2.2em;/* 26px */ line-height: 1.2; } #page-header h1 { line-height: 1.1; } #article-header #biography h2 { font-size: 1.25em; font-weight: bold; } body.other #content div.trailtext p, body.other .auto-trail-block .trail-text, body.front #content .commercial li.first, .sponsored-features ul.trail .trailtext { line-height: 1.25;/* 15px at default font size 15/12 */ } h2, h3, h4, h5, h6, #related-info h2, #content div.directory h2, #content ul li.major-heading h2, #promo h3, h2.major-heading { font-size: 1.166em; /* 14px */ } #content h2.directory-place, #content ul li h2, #content ul li h3, #content li.trail-strap h3 { font-size: 1.333em; /* 16px */ font-weight: normal; } div#box div#page-header p.snap { font-family: arial, sans-serif; font-size: 1em; line-height: 1.25; } .major-heading, #keyword-trailblock li h3 { line-height: 1.224;/* 19px at default font size */ } #header { font-size: 1em;/* 12px */ } #header #guardian-logo div, #header #guardian-logo a { line-height: 1; } /* Zones nav CSS removed from here */ body .col h3, h4, #section-contents li, ul.trail ul, #section-contents a, #section-contents span, #section-contents li h3, #section-contents ul.credit, span.count, #promo .capsule, #related .capsule, #relatedlinks h3, #gallery-series-navigation h3, ul#keyword-continued .linktext h3, #related #keyword-continued .minor-heading h2, #section-contents ul li ul li p, .trail-block-page #wrapper #related h3, #section-contents ul li ul li p a.more, #related-info .section p a.more, #section-contents ul li ul li p { font-size: 1em; /* 12px */ } body.keyword-page #section-contents div.recent-blogs ul.credit a { font-size: 1.11em; /* 12px */ } #section-contents ul li ul li p.description, body.keyword-page #section-contents div.recent-blogs ul.credit li, div.image p.caption, span.caption { line-height: 1.25;/* 15px at default font size 15/12 */ } #content .narrow p, #footer-links, #content .trail-strap, #related p.shower, a.more, #copyright-links { font-size: 0.92em; /* 11px */ line-height: 1.181; /* 13px */ } div.image p.caption, span.caption { font-size: 0.858em; /* 12px */ } #stand-first { font-size: 1.335em; /* 16px*/ line-height: 1.25; /* 20px at default font size */ } #topslot { line-height: 0; } #topslot, #topslot a { text-align: center; } a { text-decoration: none; } a:hover { text-decoration: underline } li.li-split, body #content h3, body .col h3, ul.tips h4, ul.tips h3, #content .narrow p, #byline, #content div.directory h2, #promo h3, #wrapper ul li.major-heading h2, body.other #box #content h2.first, #promo #reader-offers h4, #content #sponsored-jobs ul.trailblock h3, div#other-blogs div.linktext { font-weight: bold; } #content #sponsored-jobs ul.trailblock li.major-heading h3 { font-size: 1.165em; } h1, #promo div.auctions ul li h5, ul.pagination li, #content .reader-tips ul.credit li.date { font-weight: normal; } #content > p.drop:first-letter, span.drop { font-size: 5.2em; line-height: 0.7; } #content > p.drop:first-letter { line-height: 0.8; } #content > p.q:first-letter, span.q { font-size: 4.3em; line-height: 0.97; } strong.q { font-size: 5em; } #section-contents h2, #content h2, .auto-trail-block li h2, .triplet .capsule h2, #keyword-nonplace-combiner h3, .commercial #promo .capsule h2, #onsite h2, #onsite h3, .network div#main-offers div.ed-zone h2, .network div.also-offers h3, #related #book-index h2, body.keyword-page div#box div#content .book-index h2, #related #biography h2, #article-header #biography h2, body.audio div#more-in-audio-series h2, body.contributor #box #supporting-info h2, #related h2 { font-weight: bold; } #content li.vertical, #content li.horizontal { line-height: 1.25; } #section-selector { font-size: 1em; text-align: right; } #sitesearch, #footer, ul.pagination li.first { text-align: left; } ul.jobs h4, span.employer, ul.auctions, span.location { text-transform: capitalize } div.jobsbox p.find-a-job a { font-weight: bold; } ul.find-that-job li h4 { font-family: Arial, sans-serif; font-weight: bold; } div#content div#sponsored-jobs li.image div.job-button, div#promo div#sponsored-jobs ul.tri li.normal, #videoPaneNoscriptReplacement, ul.pagination { text-align: center; } #promo div#sponsored-jobs div.job-text div.linktext { text-align: left; } /* video display noscript replacement div */ #videoPaneNoscriptReplacement { font-size: 1.33em; } ul.pagination li { font-weight: bold; } ul.pagination li.first a, ul.pagination li.last a, ul.pagination li.last a, ul.pagination li a { font-weight: normal } #gu-now ul h3 { font-family: arial, sans-serif; } #gu-now ul h3, #promo #gu-now ul h4 { font-size: 1em; } table#stock-quote-table th { font-weight: bold; } table#stock-quote-table td, table#stock-quote-table th { text-align: right; } div#weather div.temp p { text-align: center; } table#stock-quote-table td.name, table#stock-quote-table th.name { text-align: left; } p.reuters-source small { font-size: 0.9em; } body.reuters div#related h3, body.reuters div#related li.major-heading h3, body.reuters div#related div#stock-search-narrow h3, body.money div#stock-search-narrow h3 { font-size: 1.165em; line-height: 1.15; } ul#audio-pick li.firstdiv.linktext h3 { font-size: 1.44em; } body div#wrapper div#box div.badge h1, body div#wrapper div.badge h1 { font-size: 2.2em; } div#weather h3, #wrapper #section-contents h2, #wrapper div#promo h3, .content-type, #promo div#aristotle .capsuleform h2.blank, div#reader-offers div.slot-machine-two ul li.first { font-weight: bold; } /* this is a dumb fix to solve the problem of unclosed b tags turning up in the jobs feed affecting the rest of the page */ div#weather div.temp p, #section-contents b, div#promo b, div#footer b, .content-type span { font-weight: normal; } #mpu1 { font-size: 0; } div#promo div.slot-machine-two ul li.first { font-family: georgia, serif; font-size: 1.116em; } div#promo div#reader-offers div.slot-machine-two ul li.first { font-family: arial, sans serif; font-size: 1em; } body.front div.reader-offers ul.reader-offers-front li p.price, div#promo div.reader-offers ul li p.price { font-weight: bold; } div#promo div.reader-offers h5 { font-size: 12px; font-weight: normal; } div#promo div.latest-cif-posts h3#cp-scott-promo a { font-family: georgia, serif; font-size: 1.34em; text-decoration: none; } div#promo div.latest-cif-posts h4, body.front div#promo div.advertiser-links h4, div.numbered-list span.count { font-weight: bold; } div#promo div.latest-cif-posts h3 { font-family: arial, sans-serif; font-size: 1em; } div.rating-container { font-size: 9px; /* this is to force the star ratings into a certain fixed size. Remove this and we see borders on the star container in certain cases */ } div#velocityerrors li { font-family: monaco, monospace; font-size: 14px; } p.ip_logged { text-align: center; } /******* component-badge.css ********/ #promo div.component-badge h3 { font-family: arial, sans-serif; font-size: 1em; } /******* content-type-trailblock.css ********/ body.article div#article-vertical h2, body.cartoon #content .article-trailblock ul.trail li h2.strap { font-size: 1em; } body.article div#article-vertical h2, li.package-headline h4, body.cartoon .article-trailblock li.first h4, body.cartoon #content .article-trailblock ul.trail li h2.strap { font-family: arial, sans-serif; font-weight: bold; } /******* front.css ********/ body.front #content .first ul#main-trailblock li.wide .trailtext { font-family: georgia, serif; } .trail-block-page #related h3 { font-family: arial, sans-serif; font-weight: bold; } body.front #content .first ul#main-trailblock li.wide .trailtext .splash, body.front #content .first ul#main-trailblock li.wide .linktext h3 { font-size: 1.5em;/* 18px */ } body.front #content h1 { font-size: 1.166em; /* 14px */ } body.front #content .first ul#main-trailblock li.portrait .trailtext .splash, body.front #content .first ul#main-trailblock li.portrait .linktext h3 { font-size: 1.333em; /* 16px */ font-weight: normal; } body.front div#box div#page-header p.snap { color: #cc0000; } body.front div#box div#page-header h1 { font-size: 1.168em; } .front #content ul.trailblock li h2, body.front #wrapper .commercial ul li.first, body.front #wrapper #promo ul li { font-size: 1em; /* 12px */ } .front #content ul li.major-heading h2 { font-size: 1.166em; } body.front #content .first ul#main-trailblock li.wide .linktext h3, body.front #content h1, span.video-duration { font-weight: bold; } body.front #content div.news div.caption h2 { font-size: 1.333em; } div#most h2, .network div#most h2 { font-size: 1.166em; } body.network #content div.tabs-container h3.js-hider, div.tabs-container h3.js-hider { font-size: 1em; font-family: arial, sans-serif; } body.front li.strapped div.strap { font-weight: bold; } /******* keyword-page.css ********/ div#wrapper div#box div#section-contents div.other-services li.major-heading h3 { font-family: georgia, serif; font-size: 1.166em; font-weight: bold; } .keyword-page #related .capsule h3 { font-family: georgia, serif; } .keyword-page #related .capsule h3 { font-size: 1.166em; /* 14px */ } .keyword-page #related .capsule h3, body.keyword-page #content li.image-sibling { font-weight: normal; } body.keyword-page #related .capsule h3, body.keyword-page #section-contents .capsule h3, body.keyword-page #related li.major-heading h2 { font-weight: bold; } .keyword-page div#box div#content #section-contents ul.tips ul.credit li { color: #333; font-size: 1em; } .keyword-page #section-contents ul.tips ul.credit li.first { font-size: 0.9em; } div#related div.capsule h4 { font-size: 1em; font-family: arial, sans-serif; font-weight: bold; } p.more-on, table.ftse100 th span, table.marketindex td.timetillclose { color: #999; } table.ftse100 tbody td, table.ftse100 thead th.price, table.ftse100 thead th.change { text-align: right; } table.ftse100 tbody th { font-weight: normal; } table.marketindex th.indexname, table.ftse100 thead th.company, table.ftse100 tbody th { text-align: left; } table.marketindex td.netchange { color: #fff; text-align: center; } div#wrapper div#promo div.related-content-type h4, div.related-content-type li div span { font-weight: bold; } div.related-content-type li div span { text-align: right; } body.reuters p#reuters-blurb { font-size: 0.84em; } body.tag-content ul#main-trailblock li.standfirst p { font-family: arial, sans-serif; font-size: 1.1em; } body.tag-content ul#main-trailblock li#editors-heading h2 { font-size: 1.166em; font-weight: bold; } body.tag-content ul#main-trailblock li.video-title p { font-family: georgia, serif; font-size: 1.66em; } body.tag-content div#paginated-tag-content ul li a.link-text, body.boss-tag span.byline, body.beautiful-boss span.byline, body.keyword-page #paginated-tag-content h3, body.keyword-page div.latest-in-folder h4 { font-weight: bold; } ul.related-matches li.last { font-size: 0.92em; } body.keyword-page div.latest-in-folder h4 { font-family: arial, sans-serif; } body.keyword-page #buzz-quotes blockquote { font-family: georgia, serif; font-size: 1.25em; } body.keyword-page #latest-media ul h3 { font-family: arial, sans-serif; font-weight: bold; font-size: 1em; } /******* related-content.css ********/ .related-content h3#relatedInformation, #more-in-series h3, #box .related-content h3.first { font-family: georgia, serif; font-size: 1.166em; } #box .related-content div.relatedlinks h3, .related-content div.relatedlinks h3 { font-family: arial, sans-serif; font-size: 1em; } .related-content h3#relatedInformation, #more-in-series h3, #box .related-content h3.first, #box .related-content div.relatedlinks h3, .related-content div.relatedlinks h3, div.related-item p.linktext, div.related-item p.strap, div.related-item span.date, div#related div.relatedlinks h3, div#section-contents .related-content div.relatedlinks h3, body.cartoon div.navigation div.relatedlinks h3 { font-weight: bold; } div.related-item p.strap { font-family: arial, sans-serif; } div.related-item h4, div.related-item h5, div#related div.relatedlinks h3, div#section-contents .related-content div.relatedlinks h3, body.cartoon div.navigation div.relatedlinks h3 { font-family: arial, sans-serif; font-size: 1em; } div.related-content .multi p.linktext, div#related div.related-item h5, div#related div.relatedlinks .more-of h3 { font-weight: normal; } /******* tri-trailblock.css ********/ #content div.commercial-trail li .link-text { font-family: georgia, serif; font-size: 1.333em; } ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=high-contrast-section.css Content-Type: text/css; name=high-contrast-section.css Content-Location: http://static.guim.co.uk/static/86669/commentisfree/styles/wide/high-contrast-section.css Content-Transfer-Encoding: 8bit /* ---------- accent.css starts here ---------- */ @media all{ /*front heading link colour set */ body.front #content .first ul#main-trailblock li.wide h3 a, body.front #content #main-zone .first li.wide h3 a { color: #005689; /* $frontLink */ background-color: white; /* $frontLinkReverse */ } body.front #content .first ul#main-trailblock li.wide h3 a:focus, body.front #content .first ul#main-trailblock li.wide h3 a:active, #badge a, #badge { color: white;/* $frontLink */ background-color: #005689; /* $frontLinkReverse */ } } /* ---------- accent.css ends here ----------- */ /* colours for cif front */ body.front div#wrapper { background-image: url(images/cif-background-lines.gif); background-position: center; background-repeat: repeat-y; } body.video div#wrapper { background-image: none; } body#cif-front div#heading { position: relative; } body.front a#cp-scott { position: absolute; bottom: 0; right: 0; } div#cif-cartoon span { background: #0061a6; color: white; } div#cif-picks div.full, div#cif-hot-topics h3, div#pickable-tag-combiner h3 { border-top-color: #a1a1a1; border-bottom-color: #737373; } div#pickable-tag-combiner h3 { padding-top: 3px; padding-bottom: 5px; } div#cif-picks div.reduced { border-top-color: #737373; } div#cif-picks h4 { border-bottom-color: #737373; } body.article div.article-trailblock { background-color: #e7e7e7; } body.video div#related { background-color: #fff; } p#all-stories-link { border-top-color: #999; } div#also-on span.date, div#related span.date { border-top-color: #817f81; } div#also-on h3, div#related h3, body.cif div#also-on div.latest-news ul li h3 { border-top-color: #4d4b4e; } div#also-on { border-top-color: white; border-bottom-color: white; } div#promo { border-bottom-color: white; } body.cif-combiner div#main-trailblock h2, body.cif-combiner div#cif-recent-header h2 { border-color: #0061a6; } div#promo h3#cp-scott-promo a { color: #005689; } ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline Content-Type: image/gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide//images/cp-scott-promo.gif Content-Transfer-Encoding: Base64 R0lGODlhGAE7APf/APPz8/T09Pb29iAgICIiIiEhIR4eHiYmJikpKR8fHxwcHBoa GvX19SMjIycnJygoKCQkJCUlJYmJiRsbG+bm5h0dHRcXF35+fl5eXiwsLOHh4RkZ GRgYGDAwMKSkpGNjYzExMRYWFhUVFYeHhyoqKtbW1tnZ2cTExOTk5JaWlvDw8MbG xkZGRtfX1+fn5xISEtTU1M7Oztzc3EJCQo+Pj5OTk+Pj442NjZWVlS0tLYyMjCsr K8rKysvLy1hYWJqamu7u7vLy8hQUFA4ODl9fX1paWlBQUMnJyefb2////3Jycqqq qhMTE8zMzGRkZNLS0r+/vzY2Nt/f39jY2I6OjpmZmaGhoWxsbPf39/Py8ujo6IKC gtDQ0NPT0zg4ODIyMkxMTOzs7C8vLzw8PG1tbdXV1c/Pz8XFxUtLS6+vr4ODg1VV VYGBgXt7e4uLi93d3dra2nV1devr6+Li4oWFhbu7u3l5eXFxcby8vGpqaggICMDA wE9PT+Xl5bOzs/Px8ZCQkMLCwmZmZnp6evn5+VJSUoiIiH9/fzo6OmBgYLCwsKWl pbW1teDg4ICAgJ+fn6ioqG5ubm9vb52dnYSEhLa2ti4uLmtra05OTkpKSqampu/v 76mpqVVKSri4uElJSXZ2dkNDQz8/P1ZWVmlpadvb27m5uaysrN7e3piYmOrq6vPw 8Hh4eIqKiunp6eXPz2hoaDQ0NPLu7kRERNHR0ZeXl5KSklxcXO3o6GFhYUBAQDk5 OXBwcL29vfTt7XNzc7e3t0hISDU1NfTw8JGRkbKysnR0dPHx8QwMDPj4+DMzM5SU lAUFBXd3d/Tu7rq6umdnZ62trWJiYsHBwYaGhjs7O5ubm/r6+s/JyfTy8lNTU56e nnx8fBAQEAEBAcfHxz4+PoaDg6KiosjIyAoKCtjW1j09PdnOzurn56GcnDg1NWRX V7GsrPbx8RQREfPn57mzs3V0dL28vCcmJlJQUH99fXBsbFlZWfLx8ePf3/Tr6+Tj 4+Hg4I2JiZ2amvPz8yH5BAEAAP8ALAAAAAAYATsAAAj/AP8JHEiwoMGDCBMqXMiw ocOHECNKnEix4j8AATIyECAACxaOHzmKZMAgAICTKE2etMiypcuXMGPKnOkQo8aO qhp5OrHk1AkuJ2iZKPHGVRCVKAHQXMq0qdOnUBueDCCAkIozZ2LYcvKhyhJIiiD5 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 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=page-toolbox.css Content-Type: text/css; name=page-toolbox.css Content-Location: http://combo.guim.co.uk/86669/common/styles/wide/attention-data+common/styles/wide/bookshop+common/styles/wide/google-ads+common/styles/wide/kicker+common/styles/wide/latest-cif-posts-promo+common/styles/wide/named-trailblock+common/styles/wide/page-toolbox.css Content-Transfer-Encoding: 8bit /* 86669/common/styles/wide/attention-data.css */ .attention-data #att-panes { clear: right; } .attention-data div#att-panes li.first { margin-bottom: 0; } .attention-data #att-panes, .attention-data ol li { border-top-width: 1px; border-top-style: solid; border-top-color: #999; background-color: white; } .attention-data #att-panes p { color: #e7613f; margin-top: 7px; margin-bottom: 7px; padding-left: 5px; } .attention-data #att-panes #att-most-commented p { padding-left: 10px; } .attention-data ol { padding-left: 5px; padding-right: 5px; padding-bottom: 5px; } .attention-data #att-most-commented ol { padding-left: 10px; padding-right: 10px; } .attention-data ol li { padding-top: 5px; padding-bottom: 5px; border-top-style: dotted; padding-left: 20px; } .attention-data div.att-toggle-pane ol li span { display: block; float: left; margin-left: -20px; text-indent: 0; } .attention-data ol li.more-most-viewed { padding-left: 0; width: auto; } .attention-data div#att-latest li { padding-left: 0; clear: left; } .attention-data div#att-latest li.first { border-top: 0; } .attention-data div#att-latest a img { float: left; margin-right: 10px; margin-bottom: 5px; } #promo .attention-data .capsule { border: none; background-color: white; } .attention-data #most-viewed, #promo div.att-toggle { margin-bottom: 0; } div#promo .attention-data { clear: left; border-color: #d3d3d3; margin-bottom: 20px; } #promo .attention-data .capsule { padding-bottom: 0; } /* new grid overrides */ .three-five-four-grid .attention-data { border-top: none; padding: 0; background-color: #ededed; } .three-five-four-grid .attention-data .hd { padding-bottom: 5px; } .three-five-four-grid .attention-data h3 { font-weight: normal; font-size: 20px; margin-bottom: 0; } .three-five-four-grid #att-panes { clear: right; } .local div#wrapper div#promo .attention-data div.capsule { border-top: none; } /* 86669/common/styles/wide/bookshop.css */ .bookshop-books ul { overflow: hidden; } .bookshop-books li { border-top: none !important; margin-bottom: 0 !important; } .bookshop-books .book-text { margin-bottom: 10px; } .bookshop-books .book-cover { background-color: white; border: 1px solid #ccc; height: 115px; margin-bottom: 5px; padding-top: 15px; text-align: center; width: 138px; -moz-border-radius: 7px; -webkit-border-radius: 7px; border-radius: 7px; } .bookshop-books h2 { border-top: none !important; margin-bottom: 0 !important; padding-top: 0 !important; } .bookshop-books-promo .book-cover { width: 128px; border-color: white; } /* 86669/common/styles/wide/google-ads.css */ #google-ads-container { border-top-style: solid; border-top-width: 10px; background-color: #fff; padding: 0; margin-bottom: 20px; } #google-ads-container h3 { border-top: none !important; font-weight: bold; font-size: 14px; margin-bottom: 0 !important; padding-top: 6px; padding-bottom: 15px; } #google-ads-container h4 { font-family: arial, sans-serif; font-size: 12px; font-weight: bold; margin: 0 !important; padding: 0 !important; border: none; } #google-ads-container li { padding-bottom: 9px; padding-top: 4px; border-top-style: dotted; border-top-width: 1px; border-top-color: #999; } /* 86669/common/styles/wide/kicker.css */ #content .date, #content span.publication-kicker, #content span.sponsored-flag, span.sponsored-flag { font-weight: bold; } #content span.sponsored-flag, span.sponsored-flag { color: #825f21; } /* 86669/common/styles/wide/latest-cif-posts-promo.css */ .latest-cif-posts-promo div.byline a.container { display: block; height: 56px; margin-bottom: 2px; margin-right: 10px; overflow: hidden; float: left; } .latest-cif-posts-promo div.byline a img { margin-top: -2px; } .latest-cif-posts-promo h3#cp-scott-promo a { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/cp-scott-promo.gif); background-position: bottom right; background-repeat: no-repeat; border-bottom: 1px solid #999; display: block; height: 59px; width: 280px; } .latest-cif-posts-promo div.latest-comment ul { width: 280px; } .latest-cif-posts-promo h4 { border-top: none !important; font-weight: bold; padding-bottom: 10px; } .latest-cif-posts-promo li.normal { margin-left: 0; margin-right: 0; } .latest-cif-posts-promo li { border-top-width: 1px; border-top-style: dotted; padding-top: 6px; margin-bottom: 4px; width: 280px; } .latest-cif-posts-promo div.linktext { margin-bottom: 0; } .latest-cif-posts-promo div.latest-comment { border-top: 1px solid #999; } .latest-cif-posts-promo h3 { margin-bottom: 0 !important; } .latest-cif-posts-promo div.latest-comment h3, .latest-cif-posts-promo div.latest-comment li { padding-top: 4px !important; margin-bottom: 4px !important; margin-left: 0 !important; width: 280px !important; } .latest-cif-posts-promo span { background-color: transparent !important; float: none; } .latest-cif-posts-promo div.latest-content h3, .latest-cif-posts-promo div.latest-comment h3 { font-family: arial, sans-serif !important; font-size: 12px !important; font-weight: bold; } .latest-cif-posts-promo .hd { padding-bottom: 0; } /* 86669/common/styles/wide/named-trailblock.css */ /*four-col*/ div.named-trailblock, div#promo div.named-trailblock { margin-right: 0; } #promo .named-trailblock div { margin-bottom: 0; } /*two-col*/ .component.named-trailblock .hd h3, .component.named-trailblock .bd .major-heading h3 { border-top: 0; padding-top: 0; font-family: georgia, serif; font-weight: bold; } #wrapper .component.named-trailblock .bd li.major-heading { border-top-width: 10px; border-top-style: solid; } .component.named-trailblock .bd .two-col { margin-bottom: 0; margin-right: 0; } .component.named-trailblock .hd { padding-bottom: 0; } .named-trailblock ul li.odd { margin-right: 0; clear: none; } /* 86669/common/styles/wide/page-toolbox.css */ /* ---------- pop-up.css starts here ---------- */ /* send-to-a-friend */ p.ip_logged { color: #666666; margin-top: 6px; text-align: center; } /* Pop up box */ .toolbox-popup { display: none; position: relative; top: 30px; left: 0; background-color: #fff; z-index: 999; /*margin-bottom: 200px;*/ /* Big margin needed to prevent cropping of popups in Safari. SU */ } .toolbox-popup div.send-inner { z-index: 999; position: absolute; /* top: 0; left: 0;*/ background: #fff; width: 442px; border: 9px solid #cdcdcd; padding-bottom: 10px; } .article-history .toolbox-popup { border-top: 1px solid #ccc; display: block; top: 0; margin: 10px 0 0 0; clear: both; position: static; } .toolbox-popup h3 { border: 0; float: left; width: 200px; margin: 5px 0 7px 10px; font-family: arial, sans-serif; font-weight: bold; } .toolbox-popup .share-top { float:left; margin-bottom: 10px; background: #e5e4e5; width: 442px; } .toolbox-popup .share-top span { float: right; width: 200px; margin: 5px 10px 0 0; font-size: 1.0em; text-align: right; } .share-top span { display: none; } .toolbox-popup .share-top span a { font-weight: bold; color: #333; } .toolbox-popup .share-top span a:focus, .toolbox-popup .share-top span a:hover, .toolbox-popup .share-top span a:active { background-color: #005689; color: white; } .toolbox-popup ul li { list-style-type: none; } /* contact us styles */ .toolbox-popup div.col { float: left; margin-left: 10px; margin-right: 10px; width: 201px; } .toolbox-popup div.col li { border-top-width: 1px; border-top-style: dotted; font-weight: bold; padding-bottom: 5px; padding-top: 5px; } .toolbox-popup div.col li a, .toolbox-popup div.col li span { font-weight: normal; } .toolbox-popup div.col li ul { padding-left: 0; } .toolbox-popup div.col li ul li { border-top: 0; padding-bottom: 0; padding-top: 0; } /* end contact us styles */ /* Share styles */ #send-share-box div.col li ul { padding-left: 0; } #send-share-box .send-inner ul li { float:left; width: 206px; margin-left: 10px; } #send-share-box ul li { border-top-width: 1px; border-top-style: dotted; padding-top: 5px; margin-bottom: 5px; } #send-share-box ul li a { padding-left: 20px; } .toolbox-popup a.delicious { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_delicious.gif); } .toolbox-popup a.reddit { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_reddit.gif); } .toolbox-popup a.google { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_google.gif); } .toolbox-popup a.yahoo { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_yahoo.gif); } .toolbox-popup a.facebook { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_facebook.gif); } .toolbox-popup a.digg { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_digg.gif); } .toolbox-popup a.stumbleupon { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_stumbleupon.gif); } .toolbox-popup a.mixx { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_mixx.gif); } .toolbox-popup a.twitter { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_twitter.gif); } .toolbox-popup a.newsvine { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_newsvine.gif); } .toolbox-popup a.livejournal { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_livejournal.gif); } .toolbox-popup a.blinklist { background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/icon_blinklist.gif); } /* end share styles */ /* email styles*/ .toolbox-popup fieldset { padding-bottom: 10px; clear: both; margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; } .toolbox-popup fieldset div { float: left; width: 190px; text-align: right; margin-right: 10px; } .toolbox-popup label { width: 190px; } .toolbox-popup div.inputrow { clear: left; margin-left: 200px; } .toolbox-popup input[type=text], .toolbox-popup textarea { width: 220px; } /* end email styles*/ /* ---------- pop-up.css ends here ----------- */ /* History Link */ #historylink { display: none; } ul#article-toolbox li a, ul#article-toolbox-side li a { cursor: pointer; } ul#article-toolbox .trail-icon, ul#article-toolbox-side .trail-icon { margin-right: 6px; vertical-align: middle; } /* Footer specific */ ul#article-toolbox { border-top-width: 1px; border-top-style: dotted; border-bottom-width: 1px; border-bottom-style: dotted; clear: both; margin-bottom: 30px; margin-top: 10px; padding-top: 7px; padding-bottom: 5px; width: 100%; position: relative; } ul#article-toolbox li { display: inline; padding-left: 0; padding-bottom: 5px; } ul#article-toolbox li a { padding-bottom: 3px; padding-left: 5px; } /* Side specific */ ul#article-toolbox-side { border-top-width: 1px; border-top-style: solid; background-image:none; padding-left: 0; padding-bottom: 10px; padding-top: 6px; margin-bottom: 12px; float: left; text-align: left; width: auto; } #article-toolbox-side li { display: inline; } ul#article-toolbox-side li.last { margin-right: 0; } ul#article-toolbox-side li a { padding-left: 0; text-decoration: none; } #article-toolbox-side a.rollover:hover { background: #fff; } #article-toolbox-side a.rollover:focus { background: #fff; height: auto; } ul#article-toolbox-side li a.rollover span, ul#article-toolbox-side li span { position: absolute; left: -29px; top: -50px; display: none; width: 6.2em; text-align: center; color: #fff; } /* Tool tips in sidebar */ ul#article-toolbox-side li span { line-height: 200% } /* Height on tool tips on multiple lines */ ul#article-toolbox-side li a.printable span, ul#article-toolbox-side li a.send-email span { line-height: 1em; } ul#article-toolbox-side li a.rollover { position: relative; z-index: 1; display: block; width: auto; float: left; } ul#article-toolbox-side li a.rollover:hover span { display: block; background-color: #005689; background-image: url(http://static.guim.co.uk/static/86669/common/styles/wide//images/triangle-rollover.gif); background-position: bottom center; z-index: 999; height: 3em; width: 6.2em; padding: 3px 0; } /* font resizing on side */ ul#article-toolbox-side li.resize { border-top-width: 1px; border-top-style: dotted; display: block; clear: both; padding-top: 5px; margin-top: 10px; width: 140px; display: block; float: left; } ul#article-toolbox-side li.resize img { vertical-align: middle; position: relative; top: -2px; } ul#article-toolbox-side li.resize a { font-size: 1.17em; } /* end side specific */ /* audio player toolbox */ #content div#audio-player ul#article-toolbox { background-color: transparent; border-top: 1px solid #E2E2E2; clear: left; float: none; margin: 10px 10px 0; padding: 3px 0; text-align: left; width: auto; } div#audio-player ul#article-toolbox li, div#audio-player ul#article-toolbox li p.bullet a { padding-left: 0; } li#main-audio #send-share-box, li#main-audio #send-email-box, li#main-audio #contact-link-box { clear: left; margin-top: 0; } /* Gallery specific */ .gallery .toolbox-pop-up div.send-inner.portrait { top: 0; left: 170px; } .gallery .toolbox-pop-up div.send-inner.landscape { top: -240px; left: 170px; } .gallery ul#article-toolbox li.third-party-tool a { padding-bottom: 3px; padding-top: 1px; background-position: 3px 1px; } /* end gallery specific */ /* Video specific */ #video-player ul#article-toolbox, #video-player ul#toolbox-pop-up ul { margin-bottom: 10px; } .video li.settings { position: absolute; margin-right: 2px; right: 0; } #settings-link-box p, #embed-link-box p, #embed-link-box textarea { margin-left: 10px; margin-right: 10px; margin-top: 2px; margin-bottom: 9px; } #embed-link-box textarea { height: 100px; width: 415px; resize: vertical; } #settings-link-box p.more { border-top-width: 1px; border-top-style: dotted; border-top-color: #999; padding-top: 2px; margin-bottom: 0; } #settings-link-box .cookied span { cursor: pointer; color: #005689; } #settings-link-box .cookied span:hover { text-decoration: underline; } /* End video specific */ /* ----- Cartoon specific ----- */ body.cartoon .navigation #article-toolbox-side { float: none; margin-bottom: 20px; } /* Cartoon full width */ body.cartoon .main-picture #article-toolbox-side { border-top: none; float: right; padding-bottom: 10px; } /* ----- End cartoon specific ----- */ /* poll specific */ body.poll div#contact-link-box div.first ul, body.competition div#contact-link-box div.first ul { float: left; } body.competition div#contact-link-box ul.trail li.first { width: 201px; } body.competition div#related div.toolbox-popup h3, body.poll div#related div.toolbox-popup h3, body.quiz div#related div.toolbox-popup h3 { border-top: none; } /* end poll specific */ /* interactive specific */ body#interactive-front ul#article-toolbox-side { width: 140px; } body#interactive-front #contact-link-box .sponsored-features li.first { width: 202px; border-top-style: dotted; border-top-width: 1px; overflow: visible; } body#interactive-front #contact-link-box div.first ul { clear: left; } /* end interactive specific */ ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=article-page-typography.css Content-Type: text/css; name=article-page-typography.css Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/article-page-typography.css Content-Transfer-Encoding: 8bit body.travel-offer #content, body.article h2, body.article h5, body.article h6, div#history-link-box, div#history-link-box h1, div#readers-tips p.reader-tips a { font-size: 1em; } body.article h2.related-information, body.article #content h3, body.article #box #content h2, div#history-link-box h1 { font-family: arial, sans-serif; } div#content p#credit { font-size: 0.9em; color: #666; } #box ul.pagination, #big-picture-holder p.toolbox { text-align: right } #match-stats-summary table td, #match-stats-summary table th, #match-stats-summary table caption { text-align: left; } #match-stats-summary p.penalty-result { font-weight: bold; } body.article h2.related-information, div#history-link-box h1, div#readers-tips h3, #match-stats-summary table caption { font-weight: bold; } #big-picture-holder { font-size: 0.75em; } table caption { line-height: 1.25em; } table caption h2 { padding-bottom: 0; } ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=jquery-1.4.1.min.js Content-Type: application/x-javascript; name=jquery-1.4.1.min.js Content-Location: http://static.guim.co.uk/static/86669/common/external-scripts/jquery-1.4.1.min.js Content-Transfer-Encoding: Base64 LyohCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuNC4xCiAqIGh0dHA6 Ly9qcXVlcnkuY29tLwogKgogKiBDb3B5cmlnaHQgMjAxMCwgSm9obiBSZXNpZwog KiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBs aWNlbnNlcy4KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQogKgogKiBJbmNs dWRlcyBTaXp6bGUuanMKICogaHR0cDovL3NpenpsZWpzLmNvbS8KICogQ29weXJp Z2h0IDIwMTAsIFRoZSBEb2pvIEZvdW5kYXRpb24KICogUmVsZWFzZWQgdW5kZXIg dGhlIE1JVCwgQlNELCBhbmQgR1BMIExpY2Vuc2VzLgogKgogKiBEYXRlOiBNb24g SmFuIDI1IDE5OjQzOjMzIDIwMTAgLTA1MDAKICovCihmdW5jdGlvbih6LHYpe2Z1 bmN0aW9uIGxhKCl7aWYoIWMuaXNSZWFkeSl7dHJ5e3IuZG9jdW1lbnRFbGVtZW50 LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYSl7c2V0VGltZW91dChsYSwxKTtyZXR1 cm59Yy5yZWFkeSgpfX1mdW5jdGlvbiBNYShhLGIpe2Iuc3JjP2MuYWpheCh7dXJs OmIuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSk6Yy5nbG9iYWxF dmFsKGIudGV4dHx8Yi50ZXh0Q29udGVudHx8Yi5pbm5lckhUTUx8fCIiKTtiLnBh cmVudE5vZGUmJmIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKX1mdW5jdGlvbiBY KGEsYixkLGYsZSxpKXt2YXIgaj1hLmxlbmd0aDtpZih0eXBlb2YgYj09PSJvYmpl Y3QiKXtmb3IodmFyIG4gaW4gYilYKGEsbixiW25dLGYsZSxkKTtyZXR1cm4gYX1p ZihkIT09dil7Zj0haSYmZiYmYy5pc0Z1bmN0aW9uKGQpO2ZvcihuPTA7bjxqO24r KyllKGFbbl0sYixmP2QuY2FsbChhW25dLG4sZShhW25dLGIpKTpkLGkpO3JldHVy biBhfXJldHVybiBqPwplKGFbMF0sYik6bnVsbH1mdW5jdGlvbiBKKCl7cmV0dXJu KG5ldyBEYXRlKS5nZXRUaW1lKCl9ZnVuY3Rpb24gWSgpe3JldHVybiBmYWxzZX1m dW5jdGlvbiBaKCl7cmV0dXJuIHRydWV9ZnVuY3Rpb24gbWEoYSxiLGQpe2RbMF0u dHlwZT1hO3JldHVybiBjLmV2ZW50LmhhbmRsZS5hcHBseShiLGQpfWZ1bmN0aW9u IG5hKGEpe3ZhciBiLGQ9W10sZj1bXSxlPWFyZ3VtZW50cyxpLGosbixvLG0scyx4 PWMuZXh0ZW5kKHt9LGMuZGF0YSh0aGlzLCJldmVudHMiKS5saXZlKTtpZighKGEu YnV0dG9uJiZhLnR5cGU9PT0iY2xpY2siKSl7Zm9yKG8gaW4geCl7aj14W29dO2lm KGoubGl2ZT09PWEudHlwZXx8ai5hbHRMaXZlJiZjLmluQXJyYXkoYS50eXBlLGou YWx0TGl2ZSk+LTEpe2k9ai5kYXRhO2kuYmVmb3JlRmlsdGVyJiZpLmJlZm9yZUZp bHRlclthLnR5cGVdJiYhaS5iZWZvcmVGaWx0ZXJbYS50eXBlXShhKXx8Zi5wdXNo KGouc2VsZWN0b3IpfWVsc2UgZGVsZXRlIHhbb119aT1jKGEudGFyZ2V0KS5jbG9z ZXN0KGYsCmEuY3VycmVudFRhcmdldCk7bT0wO2ZvcihzPWkubGVuZ3RoO208cztt KyspZm9yKG8gaW4geCl7aj14W29dO249aVttXS5lbGVtO2Y9bnVsbDtpZihpW21d LnNlbGVjdG9yPT09ai5zZWxlY3Rvcil7aWYoai5saXZlPT09Im1vdXNlZW50ZXIi fHxqLmxpdmU9PT0ibW91c2VsZWF2ZSIpZj1jKGEucmVsYXRlZFRhcmdldCkuY2xv c2VzdChqLnNlbGVjdG9yKVswXTtpZighZnx8ZiE9PW4pZC5wdXNoKHtlbGVtOm4s Zm46an0pfX1tPTA7Zm9yKHM9ZC5sZW5ndGg7bTxzO20rKyl7aT1kW21dO2EuY3Vy cmVudFRhcmdldD1pLmVsZW07YS5kYXRhPWkuZm4uZGF0YTtpZihpLmZuLmFwcGx5 KGkuZWxlbSxlKT09PWZhbHNlKXtiPWZhbHNlO2JyZWFrfX1yZXR1cm4gYn19ZnVu Y3Rpb24gb2EoYSxiKXtyZXR1cm4ibGl2ZS4iKyhhP2ErIi4iOiIiKStiLnJlcGxh Y2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csIiYiKX1mdW5jdGlvbiBwYShhKXty ZXR1cm4hYXx8IWEucGFyZW50Tm9kZXx8YS5wYXJlbnROb2RlLm5vZGVUeXBlPT09 CjExfWZ1bmN0aW9uIHFhKGEsYil7dmFyIGQ9MDtiLmVhY2goZnVuY3Rpb24oKXtp Zih0aGlzLm5vZGVOYW1lPT09KGFbZF0mJmFbZF0ubm9kZU5hbWUpKXt2YXIgZj1j LmRhdGEoYVtkKytdKSxlPWMuZGF0YSh0aGlzLGYpO2lmKGY9ZiYmZi5ldmVudHMp e2RlbGV0ZSBlLmhhbmRsZTtlLmV2ZW50cz17fTtmb3IodmFyIGkgaW4gZilmb3Io dmFyIGogaW4gZltpXSljLmV2ZW50LmFkZCh0aGlzLGksZltpXVtqXSxmW2ldW2pd LmRhdGEpfX19KX1mdW5jdGlvbiByYShhLGIsZCl7dmFyIGYsZSxpO2lmKGEubGVu Z3RoPT09MSYmdHlwZW9mIGFbMF09PT0ic3RyaW5nIiYmYVswXS5sZW5ndGg8NTEy JiZhWzBdLmluZGV4T2YoIjxvcHRpb24iKTwwJiYoYy5zdXBwb3J0LmNoZWNrQ2xv bmV8fCFzYS50ZXN0KGFbMF0pKSl7ZT10cnVlO2lmKGk9Yy5mcmFnbWVudHNbYVsw XV0paWYoaSE9PTEpZj1pfWlmKCFmKXtiPWImJmJbMF0/YlswXS5vd25lckRvY3Vt ZW50fHxiWzBdOnI7Zj1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKYy5jbGVh bihhLGIsZixkKX1pZihlKWMuZnJhZ21lbnRzW2FbMF1dPWk/ZjoxO3JldHVybntm cmFnbWVudDpmLGNhY2hlYWJsZTplfX1mdW5jdGlvbiBLKGEsYil7dmFyIGQ9e307 Yy5lYWNoKHRhLmNvbmNhdC5hcHBseShbXSx0YS5zbGljZSgwLGIpKSxmdW5jdGlv bigpe2RbdGhpc109YX0pO3JldHVybiBkfWZ1bmN0aW9uIHVhKGEpe3JldHVybiJz Y3JvbGxUbyJpbiBhJiZhLmRvY3VtZW50P2E6YS5ub2RlVHlwZT09PTk/YS5kZWZh dWx0Vmlld3x8YS5wYXJlbnRXaW5kb3c6ZmFsc2V9dmFyIGM9ZnVuY3Rpb24oYSxi KXtyZXR1cm4gbmV3IGMuZm4uaW5pdChhLGIpfSxOYT16LmpRdWVyeSxPYT16LiQs cj16LmRvY3VtZW50LFMsUGE9L15bXjxdKig8W1x3XFddKz4pW14+XSokfF4jKFtc dy1dKykkLyxRYT0vXi5bXjojXFtcLixdKiQvLFJhPS9cUy8sU2E9L14oXHN8XHUw MEEwKSt8KFxzfFx1MDBBMCkrJC9nLFRhPS9ePChcdyspXHMqXC8/Pig/OjxcL1wx Pik/JC8sTz1uYXZpZ2F0b3IudXNlckFnZW50LAp2YT1mYWxzZSxQPVtdLEwsJD1P YmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGFhPU9iamVjdC5wcm90b3R5cGUuaGFz T3duUHJvcGVydHksYmE9QXJyYXkucHJvdG90eXBlLnB1c2gsUT1BcnJheS5wcm90 b3R5cGUuc2xpY2Usd2E9QXJyYXkucHJvdG90eXBlLmluZGV4T2Y7Yy5mbj1jLnBy b3RvdHlwZT17aW5pdDpmdW5jdGlvbihhLGIpe3ZhciBkLGY7aWYoIWEpcmV0dXJu IHRoaXM7aWYoYS5ub2RlVHlwZSl7dGhpcy5jb250ZXh0PXRoaXNbMF09YTt0aGlz Lmxlbmd0aD0xO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT09InN0cmluZyIpaWYo KGQ9UGEuZXhlYyhhKSkmJihkWzFdfHwhYikpaWYoZFsxXSl7Zj1iP2Iub3duZXJE b2N1bWVudHx8YjpyO2lmKGE9VGEuZXhlYyhhKSlpZihjLmlzUGxhaW5PYmplY3Qo Yikpe2E9W3IuY3JlYXRlRWxlbWVudChhWzFdKV07Yy5mbi5hdHRyLmNhbGwoYSxi LHRydWUpfWVsc2UgYT1bZi5jcmVhdGVFbGVtZW50KGFbMV0pXTtlbHNle2E9cmEo W2RbMV1dLApbZl0pO2E9KGEuY2FjaGVhYmxlP2EuZnJhZ21lbnQuY2xvbmVOb2Rl KHRydWUpOmEuZnJhZ21lbnQpLmNoaWxkTm9kZXN9fWVsc2V7aWYoYj1yLmdldEVs ZW1lbnRCeUlkKGRbMl0pKXtpZihiLmlkIT09ZFsyXSlyZXR1cm4gUy5maW5kKGEp O3RoaXMubGVuZ3RoPTE7dGhpc1swXT1ifXRoaXMuY29udGV4dD1yO3RoaXMuc2Vs ZWN0b3I9YTtyZXR1cm4gdGhpc31lbHNlIGlmKCFiJiYvXlx3KyQvLnRlc3QoYSkp e3RoaXMuc2VsZWN0b3I9YTt0aGlzLmNvbnRleHQ9cjthPXIuZ2V0RWxlbWVudHNC eVRhZ05hbWUoYSl9ZWxzZSByZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fFMpLmZpbmQo YSk6YyhiKS5maW5kKGEpO2Vsc2UgaWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiBT LnJlYWR5KGEpO2lmKGEuc2VsZWN0b3IhPT12KXt0aGlzLnNlbGVjdG9yPWEuc2Vs ZWN0b3I7dGhpcy5jb250ZXh0PWEuY29udGV4dH1yZXR1cm4gYy5pc0FycmF5KGEp P3RoaXMuc2V0QXJyYXkoYSk6Yy5tYWtlQXJyYXkoYSwKdGhpcyl9LHNlbGVjdG9y OiIiLGpxdWVyeToiMS40LjEiLGxlbmd0aDowLHNpemU6ZnVuY3Rpb24oKXtyZXR1 cm4gdGhpcy5sZW5ndGh9LHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gUS5jYWxs KHRoaXMsMCl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD90aGlzLnRv QXJyYXkoKTphPDA/dGhpcy5zbGljZShhKVswXTp0aGlzW2FdfSxwdXNoU3RhY2s6 ZnVuY3Rpb24oYSxiLGQpe2E9YyhhfHxudWxsKTthLnByZXZPYmplY3Q9dGhpczth LmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKGI9PT0iZmluZCIpYS5zZWxlY3Rvcj10 aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVjdG9yPyIgIjoiIikrZDtlbHNlIGlmKGIp YS5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyIuIitiKyIoIitkKyIpIjtyZXR1cm4g YX0sc2V0QXJyYXk6ZnVuY3Rpb24oYSl7dGhpcy5sZW5ndGg9MDtiYS5hcHBseSh0 aGlzLGEpO3JldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGMu ZWFjaCh0aGlzLAphLGIpfSxyZWFkeTpmdW5jdGlvbihhKXtjLmJpbmRSZWFkeSgp O2lmKGMuaXNSZWFkeSlhLmNhbGwocixjKTtlbHNlIFAmJlAucHVzaChhKTtyZXR1 cm4gdGhpc30sZXE6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0tMT90aGlzLnNsaWNl KGEpOnRoaXMuc2xpY2UoYSwrYSsxKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4g dGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0s c2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUS5hcHBseSh0 aGlzLGFyZ3VtZW50cyksInNsaWNlIixRLmNhbGwoYXJndW1lbnRzKS5qb2luKCIs IikpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGMubWFw KHRoaXMsZnVuY3Rpb24oYixkKXtyZXR1cm4gYS5jYWxsKGIsZCxiKX0pKX0sZW5k OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8YyhudWxsKX0scHVz aDpiYSxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZX07CmMuZm4uaW5pdC5w cm90b3R5cGU9Yy5mbjtjLmV4dGVuZD1jLmZuLmV4dGVuZD1mdW5jdGlvbigpe3Zh ciBhPWFyZ3VtZW50c1swXXx8e30sYj0xLGQ9YXJndW1lbnRzLmxlbmd0aCxmPWZh bHNlLGUsaSxqLG47aWYodHlwZW9mIGE9PT0iYm9vbGVhbiIpe2Y9YTthPWFyZ3Vt ZW50c1sxXXx8e307Yj0yfWlmKHR5cGVvZiBhIT09Im9iamVjdCImJiFjLmlzRnVu Y3Rpb24oYSkpYT17fTtpZihkPT09Yil7YT10aGlzOy0tYn1mb3IoO2I8ZDtiKysp aWYoKGU9YXJndW1lbnRzW2JdKSE9bnVsbClmb3IoaSBpbiBlKXtqPWFbaV07bj1l W2ldO2lmKGEhPT1uKWlmKGYmJm4mJihjLmlzUGxhaW5PYmplY3Qobil8fGMuaXNB cnJheShuKSkpe2o9aiYmKGMuaXNQbGFpbk9iamVjdChqKXx8Yy5pc0FycmF5KGop KT9qOmMuaXNBcnJheShuKT9bXTp7fTthW2ldPWMuZXh0ZW5kKGYsaixuKX1lbHNl IGlmKG4hPT12KWFbaV09bn1yZXR1cm4gYX07Yy5leHRlbmQoe25vQ29uZmxpY3Q6 ZnVuY3Rpb24oYSl7ei4kPQpPYTtpZihhKXoualF1ZXJ5PU5hO3JldHVybiBjfSxp c1JlYWR5OmZhbHNlLHJlYWR5OmZ1bmN0aW9uKCl7aWYoIWMuaXNSZWFkeSl7aWYo IXIuYm9keSlyZXR1cm4gc2V0VGltZW91dChjLnJlYWR5LDEzKTtjLmlzUmVhZHk9 dHJ1ZTtpZihQKXtmb3IodmFyIGEsYj0wO2E9UFtiKytdOylhLmNhbGwocixjKTtQ PW51bGx9Yy5mbi50cmlnZ2VySGFuZGxlciYmYyhyKS50cmlnZ2VySGFuZGxlcigi cmVhZHkiKX19LGJpbmRSZWFkeTpmdW5jdGlvbigpe2lmKCF2YSl7dmE9dHJ1ZTtp ZihyLnJlYWR5U3RhdGU9PT0iY29tcGxldGUiKXJldHVybiBjLnJlYWR5KCk7aWYo ci5hZGRFdmVudExpc3RlbmVyKXtyLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRl bnRMb2FkZWQiLEwsZmFsc2UpO3ouYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYy5y ZWFkeSxmYWxzZSl9ZWxzZSBpZihyLmF0dGFjaEV2ZW50KXtyLmF0dGFjaEV2ZW50 KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEwpO3ouYXR0YWNoRXZlbnQoIm9ubG9hZCIs CmMucmVhZHkpO3ZhciBhPWZhbHNlO3RyeXthPXouZnJhbWVFbGVtZW50PT1udWxs fWNhdGNoKGIpe31yLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbCYmYSYmbGEoKX19 fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiAkLmNhbGwoYSk9PT0iW29i amVjdCBGdW5jdGlvbl0ifSxpc0FycmF5OmZ1bmN0aW9uKGEpe3JldHVybiAkLmNh bGwoYSk9PT0iW29iamVjdCBBcnJheV0ifSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9u KGEpe2lmKCFhfHwkLmNhbGwoYSkhPT0iW29iamVjdCBPYmplY3RdInx8YS5ub2Rl VHlwZXx8YS5zZXRJbnRlcnZhbClyZXR1cm4gZmFsc2U7aWYoYS5jb25zdHJ1Y3Rv ciYmIWFhLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWFhLmNhbGwoYS5jb25zdHJ1 Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4gZmFsc2U7dmFy IGI7Zm9yKGIgaW4gYSk7cmV0dXJuIGI9PT12fHxhYS5jYWxsKGEsYil9LGlzRW1w dHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuIGZhbHNl OwpyZXR1cm4gdHJ1ZX0sZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgYTt9LHBhcnNl SlNPTjpmdW5jdGlvbihhKXtpZih0eXBlb2YgYSE9PSJzdHJpbmcifHwhYSlyZXR1 cm4gbnVsbDtpZigvXltcXSw6e31cc10qJC8udGVzdChhLnJlcGxhY2UoL1xcKD86 WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywiQCIpLnJlcGxhY2UoLyJb XiJcXFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/Oltl RV1bK1wtXT9cZCspPy9nLCJdIikucmVwbGFjZSgvKD86Xnw6fCwpKD86XHMqXFsp Ky9nLCIiKSkpcmV0dXJuIHouSlNPTiYmei5KU09OLnBhcnNlP3ouSlNPTi5wYXJz ZShhKToobmV3IEZ1bmN0aW9uKCJyZXR1cm4gIithKSkoKTtlbHNlIGMuZXJyb3Io IkludmFsaWQgSlNPTjogIithKX0sbm9vcDpmdW5jdGlvbigpe30sZ2xvYmFsRXZh bDpmdW5jdGlvbihhKXtpZihhJiZSYS50ZXN0KGEpKXt2YXIgYj1yLmdldEVsZW1l bnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fApyLmRvY3VtZW50RWxlbWVudCxkPXIu Y3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC50eXBlPSJ0ZXh0L2phdmFzY3JpcHQi O2lmKGMuc3VwcG9ydC5zY3JpcHRFdmFsKWQuYXBwZW5kQ2hpbGQoci5jcmVhdGVU ZXh0Tm9kZShhKSk7ZWxzZSBkLnRleHQ9YTtiLmluc2VydEJlZm9yZShkLGIuZmly c3RDaGlsZCk7Yi5yZW1vdmVDaGlsZChkKX19LG5vZGVOYW1lOmZ1bmN0aW9uKGEs Yil7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUudG9VcHBlckNhc2UoKT09 PWIudG9VcHBlckNhc2UoKX0sZWFjaDpmdW5jdGlvbihhLGIsZCl7dmFyIGYsZT0w LGk9YS5sZW5ndGgsaj1pPT09dnx8Yy5pc0Z1bmN0aW9uKGEpO2lmKGQpaWYoailm b3IoZiBpbiBhKXtpZihiLmFwcGx5KGFbZl0sZCk9PT1mYWxzZSlicmVha31lbHNl IGZvcig7ZTxpOyl7aWYoYi5hcHBseShhW2UrK10sZCk9PT1mYWxzZSlicmVha31l bHNlIGlmKGopZm9yKGYgaW4gYSl7aWYoYi5jYWxsKGFbZl0sZixhW2ZdKT09PWZh bHNlKWJyZWFrfWVsc2UgZm9yKGQ9CmFbMF07ZTxpJiZiLmNhbGwoZCxlLGQpIT09 ZmFsc2U7ZD1hWysrZV0pO3JldHVybiBhfSx0cmltOmZ1bmN0aW9uKGEpe3JldHVy bihhfHwiIikucmVwbGFjZShTYSwiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIp e2I9Ynx8W107aWYoYSE9bnVsbClhLmxlbmd0aD09bnVsbHx8dHlwZW9mIGE9PT0i c3RyaW5nInx8Yy5pc0Z1bmN0aW9uKGEpfHx0eXBlb2YgYSE9PSJmdW5jdGlvbiIm JmEuc2V0SW50ZXJ2YWw/YmEuY2FsbChiLGEpOmMubWVyZ2UoYixhKTtyZXR1cm4g Yn0saW5BcnJheTpmdW5jdGlvbihhLGIpe2lmKGIuaW5kZXhPZilyZXR1cm4gYi5p bmRleE9mKGEpO2Zvcih2YXIgZD0wLGY9Yi5sZW5ndGg7ZDxmO2QrKylpZihiW2Rd PT09YSlyZXR1cm4gZDtyZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIg ZD1hLmxlbmd0aCxmPTA7aWYodHlwZW9mIGIubGVuZ3RoPT09Im51bWJlciIpZm9y KHZhciBlPWIubGVuZ3RoO2Y8ZTtmKyspYVtkKytdPWJbZl07ZWxzZSBmb3IoO2Jb Zl0hPT0KdjspYVtkKytdPWJbZisrXTthLmxlbmd0aD1kO3JldHVybiBhfSxncmVw OmZ1bmN0aW9uKGEsYixkKXtmb3IodmFyIGY9W10sZT0wLGk9YS5sZW5ndGg7ZTxp O2UrKykhZCE9PSFiKGFbZV0sZSkmJmYucHVzaChhW2VdKTtyZXR1cm4gZn0sbWFw OmZ1bmN0aW9uKGEsYixkKXtmb3IodmFyIGY9W10sZSxpPTAsaj1hLmxlbmd0aDtp PGo7aSsrKXtlPWIoYVtpXSxpLGQpO2lmKGUhPW51bGwpZltmLmxlbmd0aF09ZX1y ZXR1cm4gZi5jb25jYXQuYXBwbHkoW10sZil9LGd1aWQ6MSxwcm94eTpmdW5jdGlv bihhLGIsZCl7aWYoYXJndW1lbnRzLmxlbmd0aD09PTIpaWYodHlwZW9mIGI9PT0i c3RyaW5nIil7ZD1hO2E9ZFtiXTtiPXZ9ZWxzZSBpZihiJiYhYy5pc0Z1bmN0aW9u KGIpKXtkPWI7Yj12fWlmKCFiJiZhKWI9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBs eShkfHx0aGlzLGFyZ3VtZW50cyl9O2lmKGEpYi5ndWlkPWEuZ3VpZD1hLmd1aWR8 fGIuZ3VpZHx8Yy5ndWlkKys7cmV0dXJuIGJ9LAp1YU1hdGNoOmZ1bmN0aW9uKGEp e2E9YS50b0xvd2VyQ2FzZSgpO2E9Lyh3ZWJraXQpWyBcL10oW1x3Ll0rKS8uZXhl YyhhKXx8LyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtcdy5dKykvLmV4ZWMo YSl8fC8obXNpZSkgKFtcdy5dKykvLmV4ZWMoYSl8fCEvY29tcGF0aWJsZS8udGVz dChhKSYmLyhtb3ppbGxhKSg/Oi4qPyBydjooW1x3Ll0rKSk/Ly5leGVjKGEpfHxb XTtyZXR1cm57YnJvd3NlcjphWzFdfHwiIix2ZXJzaW9uOmFbMl18fCIwIn19LGJy b3dzZXI6e319KTtPPWMudWFNYXRjaChPKTtpZihPLmJyb3dzZXIpe2MuYnJvd3Nl cltPLmJyb3dzZXJdPXRydWU7Yy5icm93c2VyLnZlcnNpb249Ty52ZXJzaW9ufWlm KGMuYnJvd3Nlci53ZWJraXQpYy5icm93c2VyLnNhZmFyaT10cnVlO2lmKHdhKWMu aW5BcnJheT1mdW5jdGlvbihhLGIpe3JldHVybiB3YS5jYWxsKGIsYSl9O1M9Yyhy KTtpZihyLmFkZEV2ZW50TGlzdGVuZXIpTD1mdW5jdGlvbigpe3IucmVtb3ZlRXZl bnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsCkwsZmFsc2UpO2MucmVhZHko KX07ZWxzZSBpZihyLmF0dGFjaEV2ZW50KUw9ZnVuY3Rpb24oKXtpZihyLnJlYWR5 U3RhdGU9PT0iY29tcGxldGUiKXtyLmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVj aGFuZ2UiLEwpO2MucmVhZHkoKX19OyhmdW5jdGlvbigpe2Muc3VwcG9ydD17fTt2 YXIgYT1yLmRvY3VtZW50RWxlbWVudCxiPXIuY3JlYXRlRWxlbWVudCgic2NyaXB0 IiksZD1yLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGY9InNjcmlwdCIrSigpO2Quc3R5 bGUuZGlzcGxheT0ibm9uZSI7ZC5pbm5lckhUTUw9IiAgIDxsaW5rLz48dGFibGU+ PC90YWJsZT48YSBocmVmPScvYScgc3R5bGU9J2NvbG9yOnJlZDtmbG9hdDpsZWZ0 O29wYWNpdHk6LjU1Oyc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iO3Zh ciBlPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxpPWQuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImEiKVswXTtpZighKCFlfHwhZS5sZW5ndGh8fCFpKSl7Yy5zdXBw b3J0PQp7bGVhZGluZ1doaXRlc3BhY2U6ZC5maXJzdENoaWxkLm5vZGVUeXBlPT09 Myx0Ym9keTohZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgs aHRtbFNlcmlhbGl6ZTohIWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKS5s ZW5ndGgsc3R5bGU6L3JlZC8udGVzdChpLmdldEF0dHJpYnV0ZSgic3R5bGUiKSks aHJlZk5vcm1hbGl6ZWQ6aS5nZXRBdHRyaWJ1dGUoImhyZWYiKT09PSIvYSIsb3Bh Y2l0eTovXjAuNTUkLy50ZXN0KGkuc3R5bGUub3BhY2l0eSksY3NzRmxvYXQ6ISFp LnN0eWxlLmNzc0Zsb2F0LGNoZWNrT246ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi aW5wdXQiKVswXS52YWx1ZT09PSJvbiIsb3B0U2VsZWN0ZWQ6ci5jcmVhdGVFbGVt ZW50KCJzZWxlY3QiKS5hcHBlbmRDaGlsZChyLmNyZWF0ZUVsZW1lbnQoIm9wdGlv biIpKS5zZWxlY3RlZCxjaGVja0Nsb25lOmZhbHNlLHNjcmlwdEV2YWw6ZmFsc2Us bm9DbG9uZUV2ZW50OnRydWUsYm94TW9kZWw6bnVsbH07CmIudHlwZT0idGV4dC9q YXZhc2NyaXB0Ijt0cnl7Yi5hcHBlbmRDaGlsZChyLmNyZWF0ZVRleHROb2RlKCJ3 aW5kb3cuIitmKyI9MTsiKSl9Y2F0Y2goail7fWEuaW5zZXJ0QmVmb3JlKGIsYS5m aXJzdENoaWxkKTtpZih6W2ZdKXtjLnN1cHBvcnQuc2NyaXB0RXZhbD10cnVlO2Rl bGV0ZSB6W2ZdfWEucmVtb3ZlQ2hpbGQoYik7aWYoZC5hdHRhY2hFdmVudCYmZC5m aXJlRXZlbnQpe2QuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0aW9uIG4oKXtj LnN1cHBvcnQubm9DbG9uZUV2ZW50PWZhbHNlO2QuZGV0YWNoRXZlbnQoIm9uY2xp Y2siLG4pfSk7ZC5jbG9uZU5vZGUodHJ1ZSkuZmlyZUV2ZW50KCJvbmNsaWNrIil9 ZD1yLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuaW5uZXJIVE1MPSI8aW5wdXQgdHlw ZT0ncmFkaW8nIG5hbWU9J3JhZGlvdGVzdCcgY2hlY2tlZD0nY2hlY2tlZCcvPiI7 YT1yLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTthLmFwcGVuZENoaWxkKGQuZmly c3RDaGlsZCk7CmMuc3VwcG9ydC5jaGVja0Nsb25lPWEuY2xvbmVOb2RlKHRydWUp LmNsb25lTm9kZSh0cnVlKS5sYXN0Q2hpbGQuY2hlY2tlZDtjKGZ1bmN0aW9uKCl7 dmFyIG49ci5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLnN0eWxlLndpZHRoPW4uc3R5 bGUucGFkZGluZ0xlZnQ9IjFweCI7ci5ib2R5LmFwcGVuZENoaWxkKG4pO2MuYm94 TW9kZWw9Yy5zdXBwb3J0LmJveE1vZGVsPW4ub2Zmc2V0V2lkdGg9PT0yO3IuYm9k eS5yZW1vdmVDaGlsZChuKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2E9ZnVuY3Rp b24obil7dmFyIG89ci5jcmVhdGVFbGVtZW50KCJkaXYiKTtuPSJvbiIrbjt2YXIg bT1uIGluIG87aWYoIW0pe28uc2V0QXR0cmlidXRlKG4sInJldHVybjsiKTttPXR5 cGVvZiBvW25dPT09ImZ1bmN0aW9uIn1yZXR1cm4gbX07Yy5zdXBwb3J0LnN1Ym1p dEJ1YmJsZXM9YSgic3VibWl0Iik7Yy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXM9YSgi Y2hhbmdlIik7YT1iPWQ9ZT1pPW51bGx9fSkoKTtjLnByb3BzPQp7ImZvciI6Imh0 bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIscmVhZG9ubHk6InJlYWRPbmx5Iixt YXhsZW5ndGg6Im1heExlbmd0aCIsY2VsbHNwYWNpbmc6ImNlbGxTcGFjaW5nIixy b3dzcGFuOiJyb3dTcGFuIixjb2xzcGFuOiJjb2xTcGFuIix0YWJpbmRleDoidGFi SW5kZXgiLHVzZW1hcDoidXNlTWFwIixmcmFtZWJvcmRlcjoiZnJhbWVCb3JkZXIi fTt2YXIgRz0ialF1ZXJ5IitKKCksVWE9MCx4YT17fSxWYT17fTtjLmV4dGVuZCh7 Y2FjaGU6e30sZXhwYW5kbzpHLG5vRGF0YTp7ZW1iZWQ6dHJ1ZSxvYmplY3Q6dHJ1 ZSxhcHBsZXQ6dHJ1ZX0sZGF0YTpmdW5jdGlvbihhLGIsZCl7aWYoIShhLm5vZGVO YW1lJiZjLm5vRGF0YVthLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7YT1hPT16 P3hhOmE7dmFyIGY9YVtHXSxlPWMuY2FjaGU7aWYoIWImJiFmKXJldHVybiBudWxs O2Z8fChmPSsrVWEpO2lmKHR5cGVvZiBiPT09Im9iamVjdCIpe2FbR109ZjtlPWVb Zl09Yy5leHRlbmQodHJ1ZSwKe30sYil9ZWxzZSBlPWVbZl0/ZVtmXTp0eXBlb2Yg ZD09PSJ1bmRlZmluZWQiP1ZhOihlW2ZdPXt9KTtpZihkIT09dil7YVtHXT1mO2Vb Yl09ZH1yZXR1cm4gdHlwZW9mIGI9PT0ic3RyaW5nIj9lW2JdOmV9fSxyZW1vdmVE YXRhOmZ1bmN0aW9uKGEsYil7aWYoIShhLm5vZGVOYW1lJiZjLm5vRGF0YVthLm5v ZGVOYW1lLnRvTG93ZXJDYXNlKCldKSl7YT1hPT16P3hhOmE7dmFyIGQ9YVtHXSxm PWMuY2FjaGUsZT1mW2RdO2lmKGIpe2lmKGUpe2RlbGV0ZSBlW2JdO2MuaXNFbXB0 eU9iamVjdChlKSYmYy5yZW1vdmVEYXRhKGEpfX1lbHNle3RyeXtkZWxldGUgYVtH XX1jYXRjaChpKXthLnJlbW92ZUF0dHJpYnV0ZSYmYS5yZW1vdmVBdHRyaWJ1dGUo Ryl9ZGVsZXRlIGZbZF19fX19KTtjLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihh LGIpe2lmKHR5cGVvZiBhPT09InVuZGVmaW5lZCImJnRoaXMubGVuZ3RoKXJldHVy biBjLmRhdGEodGhpc1swXSk7ZWxzZSBpZih0eXBlb2YgYT09PSJvYmplY3QiKXJl dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLmRhdGEodGhpcywKYSl9KTt2YXIg ZD1hLnNwbGl0KCIuIik7ZFsxXT1kWzFdPyIuIitkWzFdOiIiO2lmKGI9PT12KXt2 YXIgZj10aGlzLnRyaWdnZXJIYW5kbGVyKCJnZXREYXRhIitkWzFdKyIhIixbZFsw XV0pO2lmKGY9PT12JiZ0aGlzLmxlbmd0aClmPWMuZGF0YSh0aGlzWzBdLGEpO3Jl dHVybiBmPT09diYmZFsxXT90aGlzLmRhdGEoZFswXSk6Zn1lbHNlIHJldHVybiB0 aGlzLnRyaWdnZXIoInNldERhdGEiK2RbMV0rIiEiLFtkWzBdLGJdKS5lYWNoKGZ1 bmN0aW9uKCl7Yy5kYXRhKHRoaXMsYSxiKX0pfSxyZW1vdmVEYXRhOmZ1bmN0aW9u KGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjLnJlbW92ZURhdGEodGhp cyxhKX0pfX0pO2MuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsZCl7aWYoYSl7 Yj0oYnx8ImZ4IikrInF1ZXVlIjt2YXIgZj1jLmRhdGEoYSxiKTtpZighZClyZXR1 cm4gZnx8W107aWYoIWZ8fGMuaXNBcnJheShkKSlmPWMuZGF0YShhLGIsYy5tYWtl QXJyYXkoZCkpO2Vsc2UgZi5wdXNoKGQpOwpyZXR1cm4gZn19LGRlcXVldWU6ZnVu Y3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGQ9Yy5xdWV1ZShhLGIpLGY9ZC5zaGlm dCgpO2lmKGY9PT0iaW5wcm9ncmVzcyIpZj1kLnNoaWZ0KCk7aWYoZil7Yj09PSJm eCImJmQudW5zaGlmdCgiaW5wcm9ncmVzcyIpO2YuY2FsbChhLGZ1bmN0aW9uKCl7 Yy5kZXF1ZXVlKGEsYil9KX19fSk7Yy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9u KGEsYil7aWYodHlwZW9mIGEhPT0ic3RyaW5nIil7Yj1hO2E9ImZ4In1pZihiPT09 dilyZXR1cm4gYy5xdWV1ZSh0aGlzWzBdLGEpO3JldHVybiB0aGlzLmVhY2goZnVu Y3Rpb24oKXt2YXIgZD1jLnF1ZXVlKHRoaXMsYSxiKTthPT09ImZ4IiYmZFswXSE9 PSJpbnByb2dyZXNzIiYmYy5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5j dGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5kZXF1ZXVlKHRo aXMsYSl9KX0sZGVsYXk6ZnVuY3Rpb24oYSxiKXthPWMuZng/Yy5meC5zcGVlZHNb YV18fAphOmE7Yj1ifHwiZngiO3JldHVybiB0aGlzLnF1ZXVlKGIsZnVuY3Rpb24o KXt2YXIgZD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmRlcXVldWUoZCxi KX0sYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1 ZShhfHwiZngiLFtdKX19KTt2YXIgeWE9L1tcblx0XS9nLGNhPS9ccysvLFdhPS9c ci9nLFhhPS9ocmVmfHNyY3xzdHlsZS8sWWE9LyhidXR0b258aW5wdXQpL2ksWmE9 LyhidXR0b258aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkvaSwkYT0vXihh fGFyZWEpJC9pLHphPS9yYWRpb3xjaGVja2JveC87Yy5mbi5leHRlbmQoe2F0dHI6 ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWCh0aGlzLGEsYix0cnVlLGMuYXR0cil9LHJl bW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigp e2MuYXR0cih0aGlzLGEsIiIpO3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLnJlbW92 ZUF0dHJpYnV0ZShhKX0pfSxhZGRDbGFzczpmdW5jdGlvbihhKXtpZihjLmlzRnVu Y3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvKXt2YXIgbT0KYyh0 aGlzKTttLmFkZENsYXNzKGEuY2FsbCh0aGlzLG8sbS5hdHRyKCJjbGFzcyIpKSl9 KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJpbmciKWZvcih2YXIgYj0oYXx8IiIpLnNw bGl0KGNhKSxkPTAsZj10aGlzLmxlbmd0aDtkPGY7ZCsrKXt2YXIgZT10aGlzW2Rd O2lmKGUubm9kZVR5cGU9PT0xKWlmKGUuY2xhc3NOYW1lKWZvcih2YXIgaT0iICIr ZS5jbGFzc05hbWUrIiAiLGo9MCxuPWIubGVuZ3RoO2o8bjtqKyspe2lmKGkuaW5k ZXhPZigiICIrYltqXSsiICIpPDApZS5jbGFzc05hbWUrPSIgIitiW2pdfWVsc2Ug ZS5jbGFzc05hbWU9YX1yZXR1cm4gdGhpc30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24o YSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24o byl7dmFyIG09Yyh0aGlzKTttLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLG8sbS5h dHRyKCJjbGFzcyIpKSl9KTtpZihhJiZ0eXBlb2YgYT09PSJzdHJpbmcifHxhPT09 dilmb3IodmFyIGI9KGF8fCIiKS5zcGxpdChjYSksCmQ9MCxmPXRoaXMubGVuZ3Ro O2Q8ZjtkKyspe3ZhciBlPXRoaXNbZF07aWYoZS5ub2RlVHlwZT09PTEmJmUuY2xh c3NOYW1lKWlmKGEpe2Zvcih2YXIgaT0oIiAiK2UuY2xhc3NOYW1lKyIgIikucmVw bGFjZSh5YSwiICIpLGo9MCxuPWIubGVuZ3RoO2o8bjtqKyspaT1pLnJlcGxhY2Uo IiAiK2Jbal0rIiAiLCIgIik7ZS5jbGFzc05hbWU9aS5zdWJzdHJpbmcoMSxpLmxl bmd0aC0xKX1lbHNlIGUuY2xhc3NOYW1lPSIifXJldHVybiB0aGlzfSx0b2dnbGVD bGFzczpmdW5jdGlvbihhLGIpe3ZhciBkPXR5cGVvZiBhLGY9dHlwZW9mIGI9PT0i Ym9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVu Y3Rpb24oZSl7dmFyIGk9Yyh0aGlzKTtpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlz LGUsaS5hdHRyKCJjbGFzcyIpLGIpLGIpfSk7cmV0dXJuIHRoaXMuZWFjaChmdW5j dGlvbigpe2lmKGQ9PT0ic3RyaW5nIilmb3IodmFyIGUsaT0wLGo9Yyh0aGlzKSxu PWIsbz0KYS5zcGxpdChjYSk7ZT1vW2krK107KXtuPWY/bjohai5oYXNDbGFzcyhl KTtqW24/ImFkZENsYXNzIjoicmVtb3ZlQ2xhc3MiXShlKX1lbHNlIGlmKGQ9PT0i dW5kZWZpbmVkInx8ZD09PSJib29sZWFuIil7dGhpcy5jbGFzc05hbWUmJmMuZGF0 YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix0aGlzLmNsYXNzTmFtZSk7dGhpcy5jbGFz c05hbWU9dGhpcy5jbGFzc05hbWV8fGE9PT1mYWxzZT8iIjpjLmRhdGEodGhpcywi X19jbGFzc05hbWVfXyIpfHwiIn19KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7YT0i ICIrYSsiICI7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKCgi ICIrdGhpc1tiXS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKHlhLCIgIikuaW5kZXhP ZihhKT4tMSlyZXR1cm4gdHJ1ZTtyZXR1cm4gZmFsc2V9LHZhbDpmdW5jdGlvbihh KXtpZihhPT09dil7dmFyIGI9dGhpc1swXTtpZihiKXtpZihjLm5vZGVOYW1lKGIs Im9wdGlvbiIpKXJldHVybihiLmF0dHJpYnV0ZXMudmFsdWV8fAp7fSkuc3BlY2lm aWVkP2IudmFsdWU6Yi50ZXh0O2lmKGMubm9kZU5hbWUoYiwic2VsZWN0Iikpe3Zh ciBkPWIuc2VsZWN0ZWRJbmRleCxmPVtdLGU9Yi5vcHRpb25zO2I9Yi50eXBlPT09 InNlbGVjdC1vbmUiO2lmKGQ8MClyZXR1cm4gbnVsbDt2YXIgaT1iP2Q6MDtmb3Io ZD1iP2QrMTplLmxlbmd0aDtpPGQ7aSsrKXt2YXIgaj1lW2ldO2lmKGouc2VsZWN0 ZWQpe2E9YyhqKS52YWwoKTtpZihiKXJldHVybiBhO2YucHVzaChhKX19cmV0dXJu IGZ9aWYoemEudGVzdChiLnR5cGUpJiYhYy5zdXBwb3J0LmNoZWNrT24pcmV0dXJu IGIuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPT09bnVsbD8ib24iOmIudmFsdWU7cmV0 dXJuKGIudmFsdWV8fCIiKS5yZXBsYWNlKFdhLCIiKX1yZXR1cm4gdn12YXIgbj1j LmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihvKXt2YXIg bT1jKHRoaXMpLHM9YTtpZih0aGlzLm5vZGVUeXBlPT09MSl7aWYobilzPWEuY2Fs bCh0aGlzLG8sbS52YWwoKSk7CmlmKHR5cGVvZiBzPT09Im51bWJlciIpcys9IiI7 aWYoYy5pc0FycmF5KHMpJiZ6YS50ZXN0KHRoaXMudHlwZSkpdGhpcy5jaGVja2Vk PWMuaW5BcnJheShtLnZhbCgpLHMpPj0wO2Vsc2UgaWYoYy5ub2RlTmFtZSh0aGlz LCJzZWxlY3QiKSl7dmFyIHg9Yy5tYWtlQXJyYXkocyk7Yygib3B0aW9uIix0aGlz KS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZD1jLmluQXJyYXkoYyh0aGlz KS52YWwoKSx4KT49MH0pO2lmKCF4Lmxlbmd0aCl0aGlzLnNlbGVjdGVkSW5kZXg9 LTF9ZWxzZSB0aGlzLnZhbHVlPXN9fSl9fSk7Yy5leHRlbmQoe2F0dHJGbjp7dmFs OnRydWUsY3NzOnRydWUsaHRtbDp0cnVlLHRleHQ6dHJ1ZSxkYXRhOnRydWUsd2lk dGg6dHJ1ZSxoZWlnaHQ6dHJ1ZSxvZmZzZXQ6dHJ1ZX0sYXR0cjpmdW5jdGlvbihh LGIsZCxmKXtpZighYXx8YS5ub2RlVHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJl dHVybiB2O2lmKGYmJmIgaW4gYy5hdHRyRm4pcmV0dXJuIGMoYSlbYl0oZCk7CmY9 YS5ub2RlVHlwZSE9PTF8fCFjLmlzWE1MRG9jKGEpO3ZhciBlPWQhPT12O2I9ZiYm Yy5wcm9wc1tiXXx8YjtpZihhLm5vZGVUeXBlPT09MSl7dmFyIGk9WGEudGVzdChi KTtpZihiIGluIGEmJmYmJiFpKXtpZihlKXtiPT09InR5cGUiJiZZYS50ZXN0KGEu bm9kZU5hbWUpJiZhLnBhcmVudE5vZGUmJmMuZXJyb3IoInR5cGUgcHJvcGVydHkg Y2FuJ3QgYmUgY2hhbmdlZCIpO2FbYl09ZH1pZihjLm5vZGVOYW1lKGEsImZvcm0i KSYmYS5nZXRBdHRyaWJ1dGVOb2RlKGIpKXJldHVybiBhLmdldEF0dHJpYnV0ZU5v ZGUoYikubm9kZVZhbHVlO2lmKGI9PT0idGFiSW5kZXgiKXJldHVybihiPWEuZ2V0 QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKSkmJmIuc3BlY2lmaWVkP2IudmFsdWU6 WmEudGVzdChhLm5vZGVOYW1lKXx8JGEudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVm PzA6djtyZXR1cm4gYVtiXX1pZighYy5zdXBwb3J0LnN0eWxlJiZmJiZiPT09InN0 eWxlIil7aWYoZSlhLnN0eWxlLmNzc1RleHQ9CiIiK2Q7cmV0dXJuIGEuc3R5bGUu Y3NzVGV4dH1lJiZhLnNldEF0dHJpYnV0ZShiLCIiK2QpO2E9IWMuc3VwcG9ydC5o cmVmTm9ybWFsaXplZCYmZiYmaT9hLmdldEF0dHJpYnV0ZShiLDIpOmEuZ2V0QXR0 cmlidXRlKGIpO3JldHVybiBhPT09bnVsbD92OmF9cmV0dXJuIGMuc3R5bGUoYSxi LGQpfX0pO3ZhciBhYj1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9bXlx3 XHNcLlx8YF0vZyxmdW5jdGlvbihiKXtyZXR1cm4iXFwiK2J9KX07Yy5ldmVudD17 YWRkOmZ1bmN0aW9uKGEsYixkLGYpe2lmKCEoYS5ub2RlVHlwZT09PTN8fGEubm9k ZVR5cGU9PT04KSl7aWYoYS5zZXRJbnRlcnZhbCYmYSE9PXomJiFhLmZyYW1lRWxl bWVudClhPXo7aWYoIWQuZ3VpZClkLmd1aWQ9Yy5ndWlkKys7aWYoZiE9PXYpe2Q9 Yy5wcm94eShkKTtkLmRhdGE9Zn12YXIgZT1jLmRhdGEoYSwiZXZlbnRzIil8fGMu ZGF0YShhLCJldmVudHMiLHt9KSxpPWMuZGF0YShhLCJoYW5kbGUiKSxqO2lmKCFp KXtqPQpmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgYyE9PSJ1bmRlZmluZWQiJiYh Yy5ldmVudC50cmlnZ2VyZWQ/Yy5ldmVudC5oYW5kbGUuYXBwbHkoai5lbGVtLGFy Z3VtZW50cyk6dn07aT1jLmRhdGEoYSwiaGFuZGxlIixqKX1pZihpKXtpLmVsZW09 YTtiPWIuc3BsaXQoL1xzKy8pO2Zvcih2YXIgbixvPTA7bj1iW28rK107KXt2YXIg bT1uLnNwbGl0KCIuIik7bj1tLnNoaWZ0KCk7aWYobz4xKXtkPWMucHJveHkoZCk7 aWYoZiE9PXYpZC5kYXRhPWZ9ZC50eXBlPW0uc2xpY2UoMCkuc29ydCgpLmpvaW4o Ii4iKTt2YXIgcz1lW25dLHg9dGhpcy5zcGVjaWFsW25dfHx7fTtpZighcyl7cz1l W25dPXt9O2lmKCF4LnNldHVwfHx4LnNldHVwLmNhbGwoYSxmLG0sZCk9PT1mYWxz ZSlpZihhLmFkZEV2ZW50TGlzdGVuZXIpYS5hZGRFdmVudExpc3RlbmVyKG4saSxm YWxzZSk7ZWxzZSBhLmF0dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrbixp KX1pZih4LmFkZClpZigobT14LmFkZC5jYWxsKGEsCmQsZixtLHMpKSYmYy5pc0Z1 bmN0aW9uKG0pKXttLmd1aWQ9bS5ndWlkfHxkLmd1aWQ7bS5kYXRhPW0uZGF0YXx8 ZC5kYXRhO20udHlwZT1tLnR5cGV8fGQudHlwZTtkPW19c1tkLmd1aWRdPWQ7dGhp cy5nbG9iYWxbbl09dHJ1ZX1hPW51bGx9fX0sZ2xvYmFsOnt9LHJlbW92ZTpmdW5j dGlvbihhLGIsZCl7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09PTgp KXt2YXIgZj1jLmRhdGEoYSwiZXZlbnRzIiksZSxpLGo7aWYoZil7aWYoYj09PXZ8 fHR5cGVvZiBiPT09InN0cmluZyImJmIuY2hhckF0KDApPT09Ii4iKWZvcihpIGlu IGYpdGhpcy5yZW1vdmUoYSxpKyhifHwiIikpO2Vsc2V7aWYoYi50eXBlKXtkPWIu aGFuZGxlcjtiPWIudHlwZX1iPWIuc3BsaXQoL1xzKy8pO2Zvcih2YXIgbj0wO2k9 YltuKytdOyl7dmFyIG89aS5zcGxpdCgiLiIpO2k9by5zaGlmdCgpO3ZhciBtPSFv Lmxlbmd0aCxzPWMubWFwKG8uc2xpY2UoMCkuc29ydCgpLGFiKTtzPW5ldyBSZWdF eHAoIihefFxcLikiKwpzLmpvaW4oIlxcLig/Oi4qXFwuKT8iKSsiKFxcLnwkKSIp O3ZhciB4PXRoaXMuc3BlY2lhbFtpXXx8e307aWYoZltpXSl7aWYoZCl7aj1mW2ld W2QuZ3VpZF07ZGVsZXRlIGZbaV1bZC5ndWlkXX1lbHNlIGZvcih2YXIgQSBpbiBm W2ldKWlmKG18fHMudGVzdChmW2ldW0FdLnR5cGUpKWRlbGV0ZSBmW2ldW0FdO3gu cmVtb3ZlJiZ4LnJlbW92ZS5jYWxsKGEsbyxqKTtmb3IoZSBpbiBmW2ldKWJyZWFr O2lmKCFlKXtpZigheC50ZWFyZG93bnx8eC50ZWFyZG93bi5jYWxsKGEsbyk9PT1m YWxzZSlpZihhLnJlbW92ZUV2ZW50TGlzdGVuZXIpYS5yZW1vdmVFdmVudExpc3Rl bmVyKGksYy5kYXRhKGEsImhhbmRsZSIpLGZhbHNlKTtlbHNlIGEuZGV0YWNoRXZl bnQmJmEuZGV0YWNoRXZlbnQoIm9uIitpLGMuZGF0YShhLCJoYW5kbGUiKSk7ZT1u dWxsO2RlbGV0ZSBmW2ldfX19fWZvcihlIGluIGYpYnJlYWs7aWYoIWUpe2lmKEE9 Yy5kYXRhKGEsImhhbmRsZSIpKUEuZWxlbT1udWxsO2MucmVtb3ZlRGF0YShhLAoi ZXZlbnRzIik7Yy5yZW1vdmVEYXRhKGEsImhhbmRsZSIpfX19fSx0cmlnZ2VyOmZ1 bmN0aW9uKGEsYixkLGYpe3ZhciBlPWEudHlwZXx8YTtpZighZil7YT10eXBlb2Yg YT09PSJvYmplY3QiP2FbR10/YTpjLmV4dGVuZChjLkV2ZW50KGUpLGEpOmMuRXZl bnQoZSk7aWYoZS5pbmRleE9mKCIhIik+PTApe2EudHlwZT1lPWUuc2xpY2UoMCwt MSk7YS5leGNsdXNpdmU9dHJ1ZX1pZighZCl7YS5zdG9wUHJvcGFnYXRpb24oKTt0 aGlzLmdsb2JhbFtlXSYmYy5lYWNoKGMuY2FjaGUsZnVuY3Rpb24oKXt0aGlzLmV2 ZW50cyYmdGhpcy5ldmVudHNbZV0mJmMuZXZlbnQudHJpZ2dlcihhLGIsdGhpcy5o YW5kbGUuZWxlbSl9KX1pZighZHx8ZC5ub2RlVHlwZT09PTN8fGQubm9kZVR5cGU9 PT04KXJldHVybiB2O2EucmVzdWx0PXY7YS50YXJnZXQ9ZDtiPWMubWFrZUFycmF5 KGIpO2IudW5zaGlmdChhKX1hLmN1cnJlbnRUYXJnZXQ9ZDsoZj1jLmRhdGEoZCwi aGFuZGxlIikpJiZmLmFwcGx5KGQsCmIpO2Y9ZC5wYXJlbnROb2RlfHxkLm93bmVy RG9jdW1lbnQ7dHJ5e2lmKCEoZCYmZC5ub2RlTmFtZSYmYy5ub0RhdGFbZC5ub2Rl TmFtZS50b0xvd2VyQ2FzZSgpXSkpaWYoZFsib24iK2VdJiZkWyJvbiIrZV0uYXBw bHkoZCxiKT09PWZhbHNlKWEucmVzdWx0PWZhbHNlfWNhdGNoKGkpe31pZighYS5p c1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmKWMuZXZlbnQudHJpZ2dlcihhLGIsZix0 cnVlKTtlbHNlIGlmKCFhLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtkPWEudGFyZ2V0 O3ZhciBqO2lmKCEoYy5ub2RlTmFtZShkLCJhIikmJmU9PT0iY2xpY2siKSYmIShk JiZkLm5vZGVOYW1lJiZjLm5vRGF0YVtkLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCld KSl7dHJ5e2lmKGRbZV0pe2lmKGo9ZFsib24iK2VdKWRbIm9uIitlXT1udWxsO3Ro aXMudHJpZ2dlcmVkPXRydWU7ZFtlXSgpfX1jYXRjaChuKXt9aWYoailkWyJvbiIr ZV09ajt0aGlzLnRyaWdnZXJlZD1mYWxzZX19fSxoYW5kbGU6ZnVuY3Rpb24oYSl7 dmFyIGIsCmQ7YT1hcmd1bWVudHNbMF09Yy5ldmVudC5maXgoYXx8ei5ldmVudCk7 YS5jdXJyZW50VGFyZ2V0PXRoaXM7ZD1hLnR5cGUuc3BsaXQoIi4iKTthLnR5cGU9 ZC5zaGlmdCgpO2I9IWQubGVuZ3RoJiYhYS5leGNsdXNpdmU7dmFyIGY9bmV3IFJl Z0V4cCgiKF58XFwuKSIrZC5zbGljZSgwKS5zb3J0KCkuam9pbigiXFwuKD86Lipc XC4pPyIpKyIoXFwufCQpIik7ZD0oYy5kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlb YS50eXBlXTtmb3IodmFyIGUgaW4gZCl7dmFyIGk9ZFtlXTtpZihifHxmLnRlc3Qo aS50eXBlKSl7YS5oYW5kbGVyPWk7YS5kYXRhPWkuZGF0YTtpPWkuYXBwbHkodGhp cyxhcmd1bWVudHMpO2lmKGkhPT12KXthLnJlc3VsdD1pO2lmKGk9PT1mYWxzZSl7 YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCl9fWlmKGEuaXNJ bW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVha319cmV0dXJuIGEucmVz dWx0fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBi dXR0b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtl eSBjdXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1l bnQgaGFuZGxlciBrZXlDb2RlIGxheWVyWCBsYXllclkgbWV0YUtleSBuZXdWYWx1 ZSBvZmZzZXRYIG9mZnNldFkgb3JpZ2luYWxUYXJnZXQgcGFnZVggcGFnZVkgcHJl dlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQgc2NyZWVuWCBzY3JlZW5Z IHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxlbWVudCB2aWV3IHdoZWVs RGVsdGEgd2hpY2giLnNwbGl0KCIgIiksCmZpeDpmdW5jdGlvbihhKXtpZihhW0dd KXJldHVybiBhO3ZhciBiPWE7YT1jLkV2ZW50KGIpO2Zvcih2YXIgZD10aGlzLnBy b3BzLmxlbmd0aCxmO2Q7KXtmPXRoaXMucHJvcHNbLS1kXTthW2ZdPWJbZl19aWYo IWEudGFyZ2V0KWEudGFyZ2V0PWEuc3JjRWxlbWVudHx8cjtpZihhLnRhcmdldC5u b2RlVHlwZT09PTMpYS50YXJnZXQ9YS50YXJnZXQucGFyZW50Tm9kZTtpZighYS5y ZWxhdGVkVGFyZ2V0JiZhLmZyb21FbGVtZW50KWEucmVsYXRlZFRhcmdldD1hLmZy b21FbGVtZW50PT09YS50YXJnZXQ/YS50b0VsZW1lbnQ6YS5mcm9tRWxlbWVudDtp ZihhLnBhZ2VYPT1udWxsJiZhLmNsaWVudFghPW51bGwpe2I9ci5kb2N1bWVudEVs ZW1lbnQ7ZD1yLmJvZHk7YS5wYWdlWD1hLmNsaWVudFgrKGImJmIuc2Nyb2xsTGVm dHx8ZCYmZC5zY3JvbGxMZWZ0fHwwKS0oYiYmYi5jbGllbnRMZWZ0fHxkJiZkLmNs aWVudExlZnR8fDApO2EucGFnZVk9YS5jbGllbnRZKyhiJiZiLnNjcm9sbFRvcHx8 CmQmJmQuc2Nyb2xsVG9wfHwwKS0oYiYmYi5jbGllbnRUb3B8fGQmJmQuY2xpZW50 VG9wfHwwKX1pZighYS53aGljaCYmKGEuY2hhckNvZGV8fGEuY2hhckNvZGU9PT0w P2EuY2hhckNvZGU6YS5rZXlDb2RlKSlhLndoaWNoPWEuY2hhckNvZGV8fGEua2V5 Q29kZTtpZighYS5tZXRhS2V5JiZhLmN0cmxLZXkpYS5tZXRhS2V5PWEuY3RybEtl eTtpZighYS53aGljaCYmYS5idXR0b24hPT12KWEud2hpY2g9YS5idXR0b24mMT8x OmEuYnV0dG9uJjI/MzphLmJ1dHRvbiY0PzI6MDtyZXR1cm4gYX0sZ3VpZDoxRTgs cHJveHk6Yy5wcm94eSxzcGVjaWFsOntyZWFkeTp7c2V0dXA6Yy5iaW5kUmVhZHks dGVhcmRvd246Yy5ub29wfSxsaXZlOnthZGQ6ZnVuY3Rpb24oYSxiKXtjLmV4dGVu ZChhLGJ8fHt9KTthLmd1aWQrPWIuc2VsZWN0b3IrYi5saXZlO2IubGl2ZVByb3h5 PWE7Yy5ldmVudC5hZGQodGhpcyxiLmxpdmUsbmEsYil9LHJlbW92ZTpmdW5jdGlv bihhKXtpZihhLmxlbmd0aCl7dmFyIGI9CjAsZD1uZXcgUmVnRXhwKCIoXnxcXC4p IithWzBdKyIoXFwufCQpIik7Yy5lYWNoKGMuZGF0YSh0aGlzLCJldmVudHMiKS5s aXZlfHx7fSxmdW5jdGlvbigpe2QudGVzdCh0aGlzLnR5cGUpJiZiKyt9KTtiPDEm JmMuZXZlbnQucmVtb3ZlKHRoaXMsYVswXSxuYSl9fSxzcGVjaWFsOnt9fSxiZWZv cmV1bmxvYWQ6e3NldHVwOmZ1bmN0aW9uKGEsYixkKXtpZih0aGlzLnNldEludGVy dmFsKXRoaXMub25iZWZvcmV1bmxvYWQ9ZDtyZXR1cm4gZmFsc2V9LHRlYXJkb3du OmZ1bmN0aW9uKGEsYil7aWYodGhpcy5vbmJlZm9yZXVubG9hZD09PWIpdGhpcy5v bmJlZm9yZXVubG9hZD1udWxsfX19fTtjLkV2ZW50PWZ1bmN0aW9uKGEpe2lmKCF0 aGlzLnByZXZlbnREZWZhdWx0KXJldHVybiBuZXcgYy5FdmVudChhKTtpZihhJiZh LnR5cGUpe3RoaXMub3JpZ2luYWxFdmVudD1hO3RoaXMudHlwZT1hLnR5cGV9ZWxz ZSB0aGlzLnR5cGU9YTt0aGlzLnRpbWVTdGFtcD1KKCk7dGhpc1tHXT10cnVlfTsK Yy5FdmVudC5wcm90b3R5cGU9e3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dGhp cy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Wjt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7 aWYoYSl7YS5wcmV2ZW50RGVmYXVsdCYmYS5wcmV2ZW50RGVmYXVsdCgpO2EucmV0 dXJuVmFsdWU9ZmFsc2V9fSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlz LmlzUHJvcGFnYXRpb25TdG9wcGVkPVo7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50 O2lmKGEpe2Euc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpO2Eu Y2FuY2VsQnViYmxlPXRydWV9fSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVu Y3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPVo7dGhp cy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOlksaXNQcm9w YWdhdGlvblN0b3BwZWQ6WSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpZ fTt2YXIgQWE9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPQphLnJlbGF0ZWRUYXJnZXQ7 YiYmYiE9PXRoaXM7KXRyeXtiPWIucGFyZW50Tm9kZX1jYXRjaChkKXticmVha31p ZihiIT09dGhpcyl7YS50eXBlPWEuZGF0YTtjLmV2ZW50LmhhbmRsZS5hcHBseSh0 aGlzLGFyZ3VtZW50cyl9fSxCYT1mdW5jdGlvbihhKXthLnR5cGU9YS5kYXRhO2Mu ZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Yy5lYWNoKHttb3Vz ZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0In0sZnVuY3Rp b24oYSxiKXtjLmV2ZW50LnNwZWNpYWxbYV09e3NldHVwOmZ1bmN0aW9uKGQpe2Mu ZXZlbnQuYWRkKHRoaXMsYixkJiZkLnNlbGVjdG9yP0JhOkFhLGEpfSx0ZWFyZG93 bjpmdW5jdGlvbihkKXtjLmV2ZW50LnJlbW92ZSh0aGlzLGIsZCYmZC5zZWxlY3Rv cj9CYTpBYSl9fX0pO2lmKCFjLnN1cHBvcnQuc3VibWl0QnViYmxlcyljLmV2ZW50 LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbihhLGIsZCl7aWYodGhpcy5u b2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09CiJmb3JtIil7Yy5ldmVudC5hZGQodGhp cywiY2xpY2suc3BlY2lhbFN1Ym1pdC4iK2QuZ3VpZCxmdW5jdGlvbihmKXt2YXIg ZT1mLnRhcmdldCxpPWUudHlwZTtpZigoaT09PSJzdWJtaXQifHxpPT09ImltYWdl IikmJmMoZSkuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aClyZXR1cm4gbWEoInN1Ym1p dCIsdGhpcyxhcmd1bWVudHMpfSk7Yy5ldmVudC5hZGQodGhpcywia2V5cHJlc3Mu c3BlY2lhbFN1Ym1pdC4iK2QuZ3VpZCxmdW5jdGlvbihmKXt2YXIgZT1mLnRhcmdl dCxpPWUudHlwZTtpZigoaT09PSJ0ZXh0Inx8aT09PSJwYXNzd29yZCIpJiZjKGUp LmNsb3Nlc3QoImZvcm0iKS5sZW5ndGgmJmYua2V5Q29kZT09PTEzKXJldHVybiBt YSgic3VibWl0Iix0aGlzLGFyZ3VtZW50cyl9KX1lbHNlIHJldHVybiBmYWxzZX0s cmVtb3ZlOmZ1bmN0aW9uKGEsYil7Yy5ldmVudC5yZW1vdmUodGhpcywiY2xpY2su c3BlY2lhbFN1Ym1pdCIrKGI/Ii4iK2IuZ3VpZDoiIikpO2MuZXZlbnQucmVtb3Zl KHRoaXMsCiJrZXlwcmVzcy5zcGVjaWFsU3VibWl0IisoYj8iLiIrYi5ndWlkOiIi KSl9fTtpZighYy5zdXBwb3J0LmNoYW5nZUJ1YmJsZXMpe3ZhciBkYT0vdGV4dGFy ZWF8aW5wdXR8c2VsZWN0L2k7ZnVuY3Rpb24gQ2EoYSl7dmFyIGI9YS50eXBlLGQ9 YS52YWx1ZTtpZihiPT09InJhZGlvInx8Yj09PSJjaGVja2JveCIpZD1hLmNoZWNr ZWQ7ZWxzZSBpZihiPT09InNlbGVjdC1tdWx0aXBsZSIpZD1hLnNlbGVjdGVkSW5k ZXg+LTE/Yy5tYXAoYS5vcHRpb25zLGZ1bmN0aW9uKGYpe3JldHVybiBmLnNlbGVj dGVkfSkuam9pbigiLSIpOiIiO2Vsc2UgaWYoYS5ub2RlTmFtZS50b0xvd2VyQ2Fz ZSgpPT09InNlbGVjdCIpZD1hLnNlbGVjdGVkSW5kZXg7cmV0dXJuIGR9ZnVuY3Rp b24gZWEoYSxiKXt2YXIgZD1hLnRhcmdldCxmLGU7aWYoISghZGEudGVzdChkLm5v ZGVOYW1lKXx8ZC5yZWFkT25seSkpe2Y9Yy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIp O2U9Q2EoZCk7aWYoYS50eXBlIT09ImZvY3Vzb3V0Inx8CmQudHlwZSE9PSJyYWRp byIpYy5kYXRhKGQsIl9jaGFuZ2VfZGF0YSIsZSk7aWYoIShmPT09dnx8ZT09PWYp KWlmKGYhPW51bGx8fGUpe2EudHlwZT0iY2hhbmdlIjtyZXR1cm4gYy5ldmVudC50 cmlnZ2VyKGEsYixkKX19fWMuZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e2ZpbHRlcnM6 e2ZvY3Vzb3V0OmVhLGNsaWNrOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGQ9 Yi50eXBlO2lmKGQ9PT0icmFkaW8ifHxkPT09ImNoZWNrYm94Inx8Yi5ub2RlTmFt ZS50b0xvd2VyQ2FzZSgpPT09InNlbGVjdCIpcmV0dXJuIGVhLmNhbGwodGhpcyxh KX0sa2V5ZG93bjpmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldCxkPWIudHlwZTtp ZihhLmtleUNvZGU9PT0xMyYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIT09InRl eHRhcmVhInx8YS5rZXlDb2RlPT09MzImJihkPT09ImNoZWNrYm94Inx8ZD09PSJy YWRpbyIpfHxkPT09InNlbGVjdC1tdWx0aXBsZSIpcmV0dXJuIGVhLmNhbGwodGhp cyxhKX0sYmVmb3JlYWN0aXZhdGU6ZnVuY3Rpb24oYSl7YT0KYS50YXJnZXQ7YS5u b2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ImlucHV0IiYmYS50eXBlPT09InJhZGlv IiYmYy5kYXRhKGEsIl9jaGFuZ2VfZGF0YSIsQ2EoYSkpfX0sc2V0dXA6ZnVuY3Rp b24oYSxiLGQpe2Zvcih2YXIgZiBpbiBUKWMuZXZlbnQuYWRkKHRoaXMsZisiLnNw ZWNpYWxDaGFuZ2UuIitkLmd1aWQsVFtmXSk7cmV0dXJuIGRhLnRlc3QodGhpcy5u b2RlTmFtZSl9LHJlbW92ZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgZCBpbiBUKWMu ZXZlbnQucmVtb3ZlKHRoaXMsZCsiLnNwZWNpYWxDaGFuZ2UiKyhiPyIuIitiLmd1 aWQ6IiIpLFRbZF0pO3JldHVybiBkYS50ZXN0KHRoaXMubm9kZU5hbWUpfX07dmFy IFQ9Yy5ldmVudC5zcGVjaWFsLmNoYW5nZS5maWx0ZXJzfXIuYWRkRXZlbnRMaXN0 ZW5lciYmYy5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxm dW5jdGlvbihhLGIpe2Z1bmN0aW9uIGQoZil7Zj1jLmV2ZW50LmZpeChmKTtmLnR5 cGU9YjtyZXR1cm4gYy5ldmVudC5oYW5kbGUuY2FsbCh0aGlzLApmKX1jLmV2ZW50 LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7dGhpcy5hZGRFdmVudExpc3Rl bmVyKGEsZCx0cnVlKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUV2 ZW50TGlzdGVuZXIoYSxkLHRydWUpfX19KTtjLmVhY2goWyJiaW5kIiwib25lIl0s ZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQsZixlKXtpZih0eXBlb2Yg ZD09PSJvYmplY3QiKXtmb3IodmFyIGkgaW4gZCl0aGlzW2JdKGksZixkW2ldLGUp O3JldHVybiB0aGlzfWlmKGMuaXNGdW5jdGlvbihmKSl7ZT1mO2Y9dn12YXIgaj1i PT09Im9uZSI/Yy5wcm94eShlLGZ1bmN0aW9uKG4pe2ModGhpcykudW5iaW5kKG4s aik7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSk6ZTtyZXR1cm4gZD09 PSJ1bmxvYWQiJiZiIT09Im9uZSI/dGhpcy5vbmUoZCxmLGUpOnRoaXMuZWFjaChm dW5jdGlvbigpe2MuZXZlbnQuYWRkKHRoaXMsZCxqLGYpfSl9fSk7Yy5mbi5leHRl bmQoe3VuYmluZDpmdW5jdGlvbihhLApiKXtpZih0eXBlb2YgYT09PSJvYmplY3Qi JiYhYS5wcmV2ZW50RGVmYXVsdCl7Zm9yKHZhciBkIGluIGEpdGhpcy51bmJpbmQo ZCxhW2RdKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7 Yy5ldmVudC5yZW1vdmUodGhpcyxhLGIpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxi KXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Yy5ldmVudC50cmlnZ2VyKGEs Yix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe2lmKHRoaXNb MF0pe2E9Yy5FdmVudChhKTthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFn YXRpb24oKTtjLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0pO3JldHVybiBhLnJl c3VsdH19LHRvZ2dsZTpmdW5jdGlvbihhKXtmb3IodmFyIGI9YXJndW1lbnRzLGQ9 MTtkPGIubGVuZ3RoOyljLnByb3h5KGEsYltkKytdKTtyZXR1cm4gdGhpcy5jbGlj ayhjLnByb3h5KGEsZnVuY3Rpb24oZil7dmFyIGU9KGMuZGF0YSh0aGlzLCJsYXN0 VG9nZ2xlIisKYS5ndWlkKXx8MCklZDtjLmRhdGEodGhpcywibGFzdFRvZ2dsZSIr YS5ndWlkLGUrMSk7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5 KHRoaXMsYXJndW1lbnRzKXx8ZmFsc2V9KSl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7 cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO2Mu ZWFjaChbImxpdmUiLCJkaWUiXSxmdW5jdGlvbihhLGIpe2MuZm5bYl09ZnVuY3Rp b24oZCxmLGUpe3ZhciBpLGo9MDtpZihjLmlzRnVuY3Rpb24oZikpe2U9ZjtmPXZ9 Zm9yKGQ9KGR8fCIiKS5zcGxpdCgvXHMrLyk7KGk9ZFtqKytdKSE9bnVsbDspe2k9 aT09PSJmb2N1cyI/ImZvY3VzaW4iOmk9PT0iYmx1ciI/ImZvY3Vzb3V0IjppPT09 ImhvdmVyIj9kLnB1c2goIm1vdXNlbGVhdmUiKSYmIm1vdXNlZW50ZXIiOmk7Yj09 PSJsaXZlIj9jKHRoaXMuY29udGV4dCkuYmluZChvYShpLHRoaXMuc2VsZWN0b3Ip LHtkYXRhOmYsc2VsZWN0b3I6dGhpcy5zZWxlY3RvciwKbGl2ZTppfSxlKTpjKHRo aXMuY29udGV4dCkudW5iaW5kKG9hKGksdGhpcy5zZWxlY3RvciksZT97Z3VpZDpl Lmd1aWQrdGhpcy5zZWxlY3RvcitpfTpudWxsKX1yZXR1cm4gdGhpc319KTtjLmVh Y2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3Jv bGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNl bW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNo YW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3Ii LnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1bmN0aW9uKGQpe3Jl dHVybiBkP3RoaXMuYmluZChiLGQpOnRoaXMudHJpZ2dlcihiKX07aWYoYy5hdHRy Rm4pYy5hdHRyRm5bYl09dHJ1ZX0pO3ouYXR0YWNoRXZlbnQmJiF6LmFkZEV2ZW50 TGlzdGVuZXImJnouYXR0YWNoRXZlbnQoIm9udW5sb2FkIixmdW5jdGlvbigpe2Zv cih2YXIgYSBpbiBjLmNhY2hlKWlmKGMuY2FjaGVbYV0uaGFuZGxlKXRyeXtjLmV2 ZW50LnJlbW92ZShjLmNhY2hlW2FdLmhhbmRsZS5lbGVtKX1jYXRjaChiKXt9fSk7 CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoZyl7Zm9yKHZhciBoPSIiLGssbD0wO2db bF07bCsrKXtrPWdbbF07aWYoay5ub2RlVHlwZT09PTN8fGsubm9kZVR5cGU9PT00 KWgrPWsubm9kZVZhbHVlO2Vsc2UgaWYoay5ub2RlVHlwZSE9PTgpaCs9YShrLmNo aWxkTm9kZXMpfXJldHVybiBofWZ1bmN0aW9uIGIoZyxoLGssbCxxLHApe3E9MDtm b3IodmFyIHU9bC5sZW5ndGg7cTx1O3ErKyl7dmFyIHQ9bFtxXTtpZih0KXt0PXRb Z107Zm9yKHZhciB5PWZhbHNlO3Q7KXtpZih0LnNpemNhY2hlPT09ayl7eT1sW3Qu c2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSYmIXApe3Quc2l6Y2FjaGU9 azt0LnNpenNldD1xfWlmKHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWgpe3k9 dDticmVha310PXRbZ119bFtxXT15fX19ZnVuY3Rpb24gZChnLGgsayxsLHEscCl7 cT0wO2Zvcih2YXIgdT1sLmxlbmd0aDtxPHU7cSsrKXt2YXIgdD1sW3FdO2lmKHQp e3Q9dFtnXTtmb3IodmFyIHk9ZmFsc2U7dDspe2lmKHQuc2l6Y2FjaGU9PT0Kayl7 eT1sW3Quc2l6c2V0XTticmVha31pZih0Lm5vZGVUeXBlPT09MSl7aWYoIXApe3Qu c2l6Y2FjaGU9azt0LnNpenNldD1xfWlmKHR5cGVvZiBoIT09InN0cmluZyIpe2lm KHQ9PT1oKXt5PXRydWU7YnJlYWt9fWVsc2UgaWYoby5maWx0ZXIoaCxbdF0pLmxl bmd0aD4wKXt5PXQ7YnJlYWt9fXQ9dFtnXX1sW3FdPXl9fX12YXIgZj0vKCg/Olwo KD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVte JyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+ XSkoXHMqLFxzKik/KCg/Oi58XHJ8XG4pKikvZyxlPTAsaT1PYmplY3QucHJvdG90 eXBlLnRvU3RyaW5nLGo9ZmFsc2Usbj10cnVlO1swLDBdLnNvcnQoZnVuY3Rpb24o KXtuPWZhbHNlO3JldHVybiAwfSk7dmFyIG89ZnVuY3Rpb24oZyxoLGssbCl7az1r fHxbXTt2YXIgcT1oPWh8fHI7aWYoaC5ub2RlVHlwZSE9PTEmJmgubm9kZVR5cGUh PT05KXJldHVybltdO2lmKCFnfHwKdHlwZW9mIGchPT0ic3RyaW5nIilyZXR1cm4g aztmb3IodmFyIHA9W10sdSx0LHksUixIPXRydWUsTT13KGgpLEk9ZzsoZi5leGVj KCIiKSx1PWYuZXhlYyhJKSkhPT1udWxsOyl7ST11WzNdO3AucHVzaCh1WzFdKTtp Zih1WzJdKXtSPXVbM107YnJlYWt9fWlmKHAubGVuZ3RoPjEmJnMuZXhlYyhnKSlp ZihwLmxlbmd0aD09PTImJm0ucmVsYXRpdmVbcFswXV0pdD1mYShwWzBdK3BbMV0s aCk7ZWxzZSBmb3IodD1tLnJlbGF0aXZlW3BbMF1dP1toXTpvKHAuc2hpZnQoKSxo KTtwLmxlbmd0aDspe2c9cC5zaGlmdCgpO2lmKG0ucmVsYXRpdmVbZ10pZys9cC5z aGlmdCgpO3Q9ZmEoZyx0KX1lbHNle2lmKCFsJiZwLmxlbmd0aD4xJiZoLm5vZGVU eXBlPT09OSYmIU0mJm0ubWF0Y2guSUQudGVzdChwWzBdKSYmIW0ubWF0Y2guSUQu dGVzdChwW3AubGVuZ3RoLTFdKSl7dT1vLmZpbmQocC5zaGlmdCgpLGgsTSk7aD11 LmV4cHI/by5maWx0ZXIodS5leHByLHUuc2V0KVswXTp1LnNldFswXX1pZihoKXt1 PQpsP3tleHByOnAucG9wKCksc2V0OkEobCl9Om8uZmluZChwLnBvcCgpLHAubGVu Z3RoPT09MSYmKHBbMF09PT0ifiJ8fHBbMF09PT0iKyIpJiZoLnBhcmVudE5vZGU/ aC5wYXJlbnROb2RlOmgsTSk7dD11LmV4cHI/by5maWx0ZXIodS5leHByLHUuc2V0 KTp1LnNldDtpZihwLmxlbmd0aD4wKXk9QSh0KTtlbHNlIEg9ZmFsc2U7Zm9yKDtw Lmxlbmd0aDspe3ZhciBEPXAucG9wKCk7dT1EO2lmKG0ucmVsYXRpdmVbRF0pdT1w LnBvcCgpO2Vsc2UgRD0iIjtpZih1PT1udWxsKXU9aDttLnJlbGF0aXZlW0RdKHks dSxNKX19ZWxzZSB5PVtdfXl8fCh5PXQpO3l8fG8uZXJyb3IoRHx8Zyk7aWYoaS5j YWxsKHkpPT09IltvYmplY3QgQXJyYXldIilpZihIKWlmKGgmJmgubm9kZVR5cGU9 PT0xKWZvcihnPTA7eVtnXSE9bnVsbDtnKyspe2lmKHlbZ10mJih5W2ddPT09dHJ1 ZXx8eVtnXS5ub2RlVHlwZT09PTEmJkUoaCx5W2ddKSkpay5wdXNoKHRbZ10pfWVs c2UgZm9yKGc9MDt5W2ddIT1udWxsO2crKyl5W2ddJiYKeVtnXS5ub2RlVHlwZT09 PTEmJmsucHVzaCh0W2ddKTtlbHNlIGsucHVzaC5hcHBseShrLHkpO2Vsc2UgQSh5 LGspO2lmKFIpe28oUixxLGssbCk7by51bmlxdWVTb3J0KGspfXJldHVybiBrfTtv LnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZyl7aWYoQyl7aj1uO2cuc29ydChDKTtpZihq KWZvcih2YXIgaD0xO2g8Zy5sZW5ndGg7aCsrKWdbaF09PT1nW2gtMV0mJmcuc3Bs aWNlKGgtLSwxKX1yZXR1cm4gZ307by5tYXRjaGVzPWZ1bmN0aW9uKGcsaCl7cmV0 dXJuIG8oZyxudWxsLG51bGwsaCl9O28uZmluZD1mdW5jdGlvbihnLGgsayl7dmFy IGwscTtpZighZylyZXR1cm5bXTtmb3IodmFyIHA9MCx1PW0ub3JkZXIubGVuZ3Ro O3A8dTtwKyspe3ZhciB0PW0ub3JkZXJbcF07aWYocT1tLmxlZnRNYXRjaFt0XS5l eGVjKGcpKXt2YXIgeT1xWzFdO3Euc3BsaWNlKDEsMSk7aWYoeS5zdWJzdHIoeS5s ZW5ndGgtMSkhPT0iXFwiKXtxWzFdPShxWzFdfHwiIikucmVwbGFjZSgvXFwvZywi Iik7bD1tLmZpbmRbdF0ocSwKaCxrKTtpZihsIT1udWxsKXtnPWcucmVwbGFjZSht Lm1hdGNoW3RdLCIiKTticmVha319fX1sfHwobD1oLmdldEVsZW1lbnRzQnlUYWdO YW1lKCIqIikpO3JldHVybntzZXQ6bCxleHByOmd9fTtvLmZpbHRlcj1mdW5jdGlv bihnLGgsayxsKXtmb3IodmFyIHE9ZyxwPVtdLHU9aCx0LHksUj1oJiZoWzBdJiZ3 KGhbMF0pO2cmJmgubGVuZ3RoOyl7Zm9yKHZhciBIIGluIG0uZmlsdGVyKWlmKCh0 PW0ubGVmdE1hdGNoW0hdLmV4ZWMoZykpIT1udWxsJiZ0WzJdKXt2YXIgTT1tLmZp bHRlcltIXSxJLEQ7RD10WzFdO3k9ZmFsc2U7dC5zcGxpY2UoMSwxKTtpZihELnN1 YnN0cihELmxlbmd0aC0xKSE9PSJcXCIpe2lmKHU9PT1wKXA9W107aWYobS5wcmVG aWx0ZXJbSF0paWYodD1tLnByZUZpbHRlcltIXSh0LHUsayxwLGwsUikpe2lmKHQ9 PT10cnVlKWNvbnRpbnVlfWVsc2UgeT1JPXRydWU7aWYodClmb3IodmFyIFU9MDso RD11W1VdKSE9bnVsbDtVKyspaWYoRCl7ST1NKEQsdCxVLHUpO3ZhciBEYT0KbF4h IUk7aWYoayYmSSE9bnVsbClpZihEYSl5PXRydWU7ZWxzZSB1W1VdPWZhbHNlO2Vs c2UgaWYoRGEpe3AucHVzaChEKTt5PXRydWV9fWlmKEkhPT12KXtrfHwodT1wKTtn PWcucmVwbGFjZShtLm1hdGNoW0hdLCIiKTtpZigheSlyZXR1cm5bXTticmVha319 fWlmKGc9PT1xKWlmKHk9PW51bGwpby5lcnJvcihnKTtlbHNlIGJyZWFrO3E9Z31y ZXR1cm4gdX07by5lcnJvcj1mdW5jdGlvbihnKXt0aHJvdyJTeW50YXggZXJyb3Is IHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2c7fTt2YXIgbT1vLnNlbGVjdG9y cz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6LyMoKD86W1x3 XHUwMGMwLVx1RkZGRi1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1c dUZGRkYtXXxcXC4pKykvLE5BTUU6L1xbbmFtZT1bJyJdKigoPzpbXHdcdTAwYzAt XHVGRkZGLV18XFwuKSspWyciXSpcXS8sQVRUUjovXFtccyooKD86W1x3XHUwMGMw LVx1RkZGRi1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClc cypcXS8sClRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCotXXxcXC4pKykvLENI SUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8 W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2 ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltc d1x1MDBjMC1cdUZGRkYtXXxcXC4pKykoPzpcKChbJyJdPykoKD86XChbXlwpXStc KXxbXlwoXCldKikrKVwyXCkpPy99LGxlZnRNYXRjaDp7fSxhdHRyTWFwOnsiY2xh c3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7aHJl ZjpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRBdHRyaWJ1dGUoImhyZWYiKX19LHJl bGF0aXZlOnsiKyI6ZnVuY3Rpb24oZyxoKXt2YXIgaz10eXBlb2YgaD09PSJzdHJp bmciLGw9ayYmIS9cVy8udGVzdChoKTtrPWsmJiFsO2lmKGwpaD1oLnRvTG93ZXJD YXNlKCk7bD0wO2Zvcih2YXIgcT1nLmxlbmd0aCwKcDtsPHE7bCsrKWlmKHA9Z1ts XSl7Zm9yKDsocD1wLnByZXZpb3VzU2libGluZykmJnAubm9kZVR5cGUhPT0xOyk7 Z1tsXT1rfHxwJiZwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1oP3B8fGZhbHNl OnA9PT1ofWsmJm8uZmlsdGVyKGgsZyx0cnVlKX0sIj4iOmZ1bmN0aW9uKGcsaCl7 dmFyIGs9dHlwZW9mIGg9PT0ic3RyaW5nIjtpZihrJiYhL1xXLy50ZXN0KGgpKXto PWgudG9Mb3dlckNhc2UoKTtmb3IodmFyIGw9MCxxPWcubGVuZ3RoO2w8cTtsKysp e3ZhciBwPWdbbF07aWYocCl7az1wLnBhcmVudE5vZGU7Z1tsXT1rLm5vZGVOYW1l LnRvTG93ZXJDYXNlKCk9PT1oP2s6ZmFsc2V9fX1lbHNle2w9MDtmb3IocT1nLmxl bmd0aDtsPHE7bCsrKWlmKHA9Z1tsXSlnW2xdPWs/cC5wYXJlbnROb2RlOnAucGFy ZW50Tm9kZT09PWg7ayYmby5maWx0ZXIoaCxnLHRydWUpfX0sIiI6ZnVuY3Rpb24o ZyxoLGspe3ZhciBsPWUrKyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9c Vy8udGVzdChoKSl7dmFyIHA9Cmg9aC50b0xvd2VyQ2FzZSgpO3E9Yn1xKCJwYXJl bnROb2RlIixoLGwsZyxwLGspfSwifiI6ZnVuY3Rpb24oZyxoLGspe3ZhciBsPWUr KyxxPWQ7aWYodHlwZW9mIGg9PT0ic3RyaW5nIiYmIS9cVy8udGVzdChoKSl7dmFy IHA9aD1oLnRvTG93ZXJDYXNlKCk7cT1ifXEoInByZXZpb3VzU2libGluZyIsaCxs LGcscCxrKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGcsaCxrKXtpZih0eXBlb2YgaC5n ZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhaylyZXR1cm4oZz1oLmdldEVs ZW1lbnRCeUlkKGdbMV0pKT9bZ106W119LE5BTUU6ZnVuY3Rpb24oZyxoKXtpZih0 eXBlb2YgaC5nZXRFbGVtZW50c0J5TmFtZSE9PSJ1bmRlZmluZWQiKXt2YXIgaz1b XTtoPWguZ2V0RWxlbWVudHNCeU5hbWUoZ1sxXSk7Zm9yKHZhciBsPTAscT1oLmxl bmd0aDtsPHE7bCsrKWhbbF0uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1nWzFdJiZr LnB1c2goaFtsXSk7cmV0dXJuIGsubGVuZ3RoPT09MD9udWxsOmt9fSwKVEFHOmZ1 bmN0aW9uKGcsaCl7cmV0dXJuIGguZ2V0RWxlbWVudHNCeVRhZ05hbWUoZ1sxXSl9 fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKGcsaCxrLGwscSxwKXtnPSIgIitn WzFdLnJlcGxhY2UoL1xcL2csIiIpKyIgIjtpZihwKXJldHVybiBnO3A9MDtmb3Io dmFyIHU7KHU9aFtwXSkhPW51bGw7cCsrKWlmKHUpaWYocV4odS5jbGFzc05hbWUm JigiICIrdS5jbGFzc05hbWUrIiAiKS5yZXBsYWNlKC9bXHRcbl0vZywiICIpLmlu ZGV4T2YoZyk+PTApKWt8fGwucHVzaCh1KTtlbHNlIGlmKGspaFtwXT1mYWxzZTty ZXR1cm4gZmFsc2V9LElEOmZ1bmN0aW9uKGcpe3JldHVybiBnWzFdLnJlcGxhY2Uo L1xcL2csIiIpfSxUQUc6ZnVuY3Rpb24oZyl7cmV0dXJuIGdbMV0udG9Mb3dlckNh c2UoKX0sQ0hJTEQ6ZnVuY3Rpb24oZyl7aWYoZ1sxXT09PSJudGgiKXt2YXIgaD0v KC0/KShcZCopbigoPzpcK3wtKT9cZCopLy5leGVjKGdbMl09PT0iZXZlbiImJiIy biJ8fGdbMl09PT0ib2RkIiYmCiIybisxInx8IS9cRC8udGVzdChnWzJdKSYmIjBu KyIrZ1syXXx8Z1syXSk7Z1syXT1oWzFdKyhoWzJdfHwxKS0wO2dbM109aFszXS0w fWdbMF09ZSsrO3JldHVybiBnfSxBVFRSOmZ1bmN0aW9uKGcsaCxrLGwscSxwKXto PWdbMV0ucmVwbGFjZSgvXFwvZywiIik7aWYoIXAmJm0uYXR0ck1hcFtoXSlnWzFd PW0uYXR0ck1hcFtoXTtpZihnWzJdPT09In49IilnWzRdPSIgIitnWzRdKyIgIjty ZXR1cm4gZ30sUFNFVURPOmZ1bmN0aW9uKGcsaCxrLGwscSl7aWYoZ1sxXT09PSJu b3QiKWlmKChmLmV4ZWMoZ1szXSl8fCIiKS5sZW5ndGg+MXx8L15cdy8udGVzdChn WzNdKSlnWzNdPW8oZ1szXSxudWxsLG51bGwsaCk7ZWxzZXtnPW8uZmlsdGVyKGdb M10saCxrLHRydWVecSk7a3x8bC5wdXNoLmFwcGx5KGwsZyk7cmV0dXJuIGZhbHNl fWVsc2UgaWYobS5tYXRjaC5QT1MudGVzdChnWzBdKXx8bS5tYXRjaC5DSElMRC50 ZXN0KGdbMF0pKXJldHVybiB0cnVlO3JldHVybiBnfSxQT1M6ZnVuY3Rpb24oZyl7 Zy51bnNoaWZ0KHRydWUpOwpyZXR1cm4gZ319LGZpbHRlcnM6e2VuYWJsZWQ6ZnVu Y3Rpb24oZyl7cmV0dXJuIGcuZGlzYWJsZWQ9PT1mYWxzZSYmZy50eXBlIT09Imhp ZGRlbiJ9LGRpc2FibGVkOmZ1bmN0aW9uKGcpe3JldHVybiBnLmRpc2FibGVkPT09 dHJ1ZX0sY2hlY2tlZDpmdW5jdGlvbihnKXtyZXR1cm4gZy5jaGVja2VkPT09dHJ1 ZX0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuc2VsZWN0ZWQ9PT10cnVl fSxwYXJlbnQ6ZnVuY3Rpb24oZyl7cmV0dXJuISFnLmZpcnN0Q2hpbGR9LGVtcHR5 OmZ1bmN0aW9uKGcpe3JldHVybiFnLmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihn LGgsayl7cmV0dXJuISFvKGtbM10sZykubGVuZ3RofSxoZWFkZXI6ZnVuY3Rpb24o Zyl7cmV0dXJuL2hcZC9pLnRlc3QoZy5ub2RlTmFtZSl9LHRleHQ6ZnVuY3Rpb24o Zyl7cmV0dXJuInRleHQiPT09Zy50eXBlfSxyYWRpbzpmdW5jdGlvbihnKXtyZXR1 cm4icmFkaW8iPT09Zy50eXBlfSxjaGVja2JveDpmdW5jdGlvbihnKXtyZXR1cm4i Y2hlY2tib3giPT09CmcudHlwZX0sZmlsZTpmdW5jdGlvbihnKXtyZXR1cm4iZmls ZSI9PT1nLnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKGcpe3JldHVybiJwYXNzd29y ZCI9PT1nLnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihnKXtyZXR1cm4ic3VibWl0Ij09 PWcudHlwZX0saW1hZ2U6ZnVuY3Rpb24oZyl7cmV0dXJuImltYWdlIj09PWcudHlw ZX0scmVzZXQ6ZnVuY3Rpb24oZyl7cmV0dXJuInJlc2V0Ij09PWcudHlwZX0sYnV0 dG9uOmZ1bmN0aW9uKGcpe3JldHVybiJidXR0b24iPT09Zy50eXBlfHxnLm5vZGVO YW1lLnRvTG93ZXJDYXNlKCk9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oZyl7 cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGcubm9k ZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oZyxoKXtyZXR1cm4g aD09PTB9LGxhc3Q6ZnVuY3Rpb24oZyxoLGssbCl7cmV0dXJuIGg9PT1sLmxlbmd0 aC0xfSxldmVuOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIGglMj09PQowfSxvZGQ6ZnVu Y3Rpb24oZyxoKXtyZXR1cm4gaCUyPT09MX0sbHQ6ZnVuY3Rpb24oZyxoLGspe3Jl dHVybiBoPGtbM10tMH0sZ3Q6ZnVuY3Rpb24oZyxoLGspe3JldHVybiBoPmtbM10t MH0sbnRoOmZ1bmN0aW9uKGcsaCxrKXtyZXR1cm4ga1szXS0wPT09aH0sZXE6ZnVu Y3Rpb24oZyxoLGspe3JldHVybiBrWzNdLTA9PT1ofX0sZmlsdGVyOntQU0VVRE86 ZnVuY3Rpb24oZyxoLGssbCl7dmFyIHE9aFsxXSxwPW0uZmlsdGVyc1txXTtpZihw KXJldHVybiBwKGcsayxoLGwpO2Vsc2UgaWYocT09PSJjb250YWlucyIpcmV0dXJu KGcudGV4dENvbnRlbnR8fGcuaW5uZXJUZXh0fHxhKFtnXSl8fCIiKS5pbmRleE9m KGhbM10pPj0wO2Vsc2UgaWYocT09PSJub3QiKXtoPWhbM107az0wO2ZvcihsPWgu bGVuZ3RoO2s8bDtrKyspaWYoaFtrXT09PWcpcmV0dXJuIGZhbHNlO3JldHVybiB0 cnVlfWVsc2Ugby5lcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhw cmVzc2lvbjogIisKcSl9LENISUxEOmZ1bmN0aW9uKGcsaCl7dmFyIGs9aFsxXSxs PWc7c3dpdGNoKGspe2Nhc2UgIm9ubHkiOmNhc2UgImZpcnN0Ijpmb3IoO2w9bC5w cmV2aW91c1NpYmxpbmc7KWlmKGwubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTtp ZihrPT09ImZpcnN0IilyZXR1cm4gdHJ1ZTtsPWc7Y2FzZSAibGFzdCI6Zm9yKDts PWwubmV4dFNpYmxpbmc7KWlmKGwubm9kZVR5cGU9PT0xKXJldHVybiBmYWxzZTty ZXR1cm4gdHJ1ZTtjYXNlICJudGgiOms9aFsyXTt2YXIgcT1oWzNdO2lmKGs9PT0x JiZxPT09MClyZXR1cm4gdHJ1ZTtoPWhbMF07dmFyIHA9Zy5wYXJlbnROb2RlO2lm KHAmJihwLnNpemNhY2hlIT09aHx8IWcubm9kZUluZGV4KSl7dmFyIHU9MDtmb3Io bD1wLmZpcnN0Q2hpbGQ7bDtsPWwubmV4dFNpYmxpbmcpaWYobC5ub2RlVHlwZT09 PTEpbC5ub2RlSW5kZXg9Kyt1O3Auc2l6Y2FjaGU9aH1nPWcubm9kZUluZGV4LXE7 cmV0dXJuIGs9PT0wP2c9PT0wOmclaz09PTAmJmcvaz49CjB9fSxJRDpmdW5jdGlv bihnLGgpe3JldHVybiBnLm5vZGVUeXBlPT09MSYmZy5nZXRBdHRyaWJ1dGUoImlk Iik9PT1ofSxUQUc6ZnVuY3Rpb24oZyxoKXtyZXR1cm4gaD09PSIqIiYmZy5ub2Rl VHlwZT09PTF8fGcubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWh9LENMQVNTOmZ1 bmN0aW9uKGcsaCl7cmV0dXJuKCIgIisoZy5jbGFzc05hbWV8fGcuZ2V0QXR0cmli dXRlKCJjbGFzcyIpKSsiICIpLmluZGV4T2YoaCk+LTF9LEFUVFI6ZnVuY3Rpb24o ZyxoKXt2YXIgaz1oWzFdO2c9bS5hdHRySGFuZGxlW2tdP20uYXR0ckhhbmRsZVtr XShnKTpnW2tdIT1udWxsP2dba106Zy5nZXRBdHRyaWJ1dGUoayk7az1nKyIiO3Zh ciBsPWhbMl07aD1oWzRdO3JldHVybiBnPT1udWxsP2w9PT0iIT0iOmw9PT0iPSI/ az09PWg6bD09PSIqPSI/ay5pbmRleE9mKGgpPj0wOmw9PT0ifj0iPygiICIraysi ICIpLmluZGV4T2YoaCk+PTA6IWg/ayYmZyE9PWZhbHNlOmw9PT0iIT0iP2shPT1o Omw9PT0iXj0iPwprLmluZGV4T2YoaCk9PT0wOmw9PT0iJD0iP2suc3Vic3RyKGsu bGVuZ3RoLWgubGVuZ3RoKT09PWg6bD09PSJ8PSI/az09PWh8fGsuc3Vic3RyKDAs aC5sZW5ndGgrMSk9PT1oKyItIjpmYWxzZX0sUE9TOmZ1bmN0aW9uKGcsaCxrLGwp e3ZhciBxPW0uc2V0RmlsdGVyc1toWzJdXTtpZihxKXJldHVybiBxKGcsayxoLGwp fX19LHM9bS5tYXRjaC5QT1M7Zm9yKHZhciB4IGluIG0ubWF0Y2gpe20ubWF0Y2hb eF09bmV3IFJlZ0V4cChtLm1hdGNoW3hdLnNvdXJjZSsvKD8hW15cW10qXF0pKD8h W15cKF0qXCkpLy5zb3VyY2UpO20ubGVmdE1hdGNoW3hdPW5ldyBSZWdFeHAoLyhe KD86LnxccnxcbikqPykvLnNvdXJjZSttLm1hdGNoW3hdLnNvdXJjZS5yZXBsYWNl KC9cXChcZCspL2csZnVuY3Rpb24oZyxoKXtyZXR1cm4iXFwiKyhoLTArMSl9KSl9 dmFyIEE9ZnVuY3Rpb24oZyxoKXtnPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs KGcsMCk7aWYoaCl7aC5wdXNoLmFwcGx5KGgsZyk7cmV0dXJuIGh9cmV0dXJuIGd9 Owp0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoci5kb2N1bWVudEVsZW1l bnQuY2hpbGROb2RlcywwKX1jYXRjaChCKXtBPWZ1bmN0aW9uKGcsaCl7aD1ofHxb XTtpZihpLmNhbGwoZyk9PT0iW29iamVjdCBBcnJheV0iKUFycmF5LnByb3RvdHlw ZS5wdXNoLmFwcGx5KGgsZyk7ZWxzZSBpZih0eXBlb2YgZy5sZW5ndGg9PT0ibnVt YmVyIilmb3IodmFyIGs9MCxsPWcubGVuZ3RoO2s8bDtrKyspaC5wdXNoKGdba10p O2Vsc2UgZm9yKGs9MDtnW2tdO2srKyloLnB1c2goZ1trXSk7cmV0dXJuIGh9fXZh ciBDO2lmKHIuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u KUM9ZnVuY3Rpb24oZyxoKXtpZighZy5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbnx8 IWguY29tcGFyZURvY3VtZW50UG9zaXRpb24pe2lmKGc9PWgpaj10cnVlO3JldHVy biBnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uPy0xOjF9Zz1nLmNvbXBhcmVEb2N1 bWVudFBvc2l0aW9uKGgpJjQ/LTE6Zz09PQpoPzA6MTtpZihnPT09MClqPXRydWU7 cmV0dXJuIGd9O2Vsc2UgaWYoInNvdXJjZUluZGV4ImluIHIuZG9jdW1lbnRFbGVt ZW50KUM9ZnVuY3Rpb24oZyxoKXtpZighZy5zb3VyY2VJbmRleHx8IWguc291cmNl SW5kZXgpe2lmKGc9PWgpaj10cnVlO3JldHVybiBnLnNvdXJjZUluZGV4Py0xOjF9 Zz1nLnNvdXJjZUluZGV4LWguc291cmNlSW5kZXg7aWYoZz09PTApaj10cnVlO3Jl dHVybiBnfTtlbHNlIGlmKHIuY3JlYXRlUmFuZ2UpQz1mdW5jdGlvbihnLGgpe2lm KCFnLm93bmVyRG9jdW1lbnR8fCFoLm93bmVyRG9jdW1lbnQpe2lmKGc9PWgpaj10 cnVlO3JldHVybiBnLm93bmVyRG9jdW1lbnQ/LTE6MX12YXIgaz1nLm93bmVyRG9j dW1lbnQuY3JlYXRlUmFuZ2UoKSxsPWgub3duZXJEb2N1bWVudC5jcmVhdGVSYW5n ZSgpO2suc2V0U3RhcnQoZywwKTtrLnNldEVuZChnLDApO2wuc2V0U3RhcnQoaCww KTtsLnNldEVuZChoLDApO2c9ay5jb21wYXJlQm91bmRhcnlQb2ludHMoUmFuZ2Uu U1RBUlRfVE9fRU5ELApsKTtpZihnPT09MClqPXRydWU7cmV0dXJuIGd9OyhmdW5j dGlvbigpe3ZhciBnPXIuY3JlYXRlRWxlbWVudCgiZGl2IiksaD0ic2NyaXB0Iiso bmV3IERhdGUpLmdldFRpbWUoKTtnLmlubmVySFRNTD0iPGEgbmFtZT0nIitoKyIn Lz4iO3ZhciBrPXIuZG9jdW1lbnRFbGVtZW50O2suaW5zZXJ0QmVmb3JlKGcsay5m aXJzdENoaWxkKTtpZihyLmdldEVsZW1lbnRCeUlkKGgpKXttLmZpbmQuSUQ9ZnVu Y3Rpb24obCxxLHApe2lmKHR5cGVvZiBxLmdldEVsZW1lbnRCeUlkIT09InVuZGVm aW5lZCImJiFwKXJldHVybihxPXEuZ2V0RWxlbWVudEJ5SWQobFsxXSkpP3EuaWQ9 PT1sWzFdfHx0eXBlb2YgcS5nZXRBdHRyaWJ1dGVOb2RlIT09InVuZGVmaW5lZCIm JnEuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKS5ub2RlVmFsdWU9PT1sWzFdP1txXTp2 OltdfTttLmZpbHRlci5JRD1mdW5jdGlvbihsLHEpe3ZhciBwPXR5cGVvZiBsLmdl dEF0dHJpYnV0ZU5vZGUhPT0idW5kZWZpbmVkIiYmbC5nZXRBdHRyaWJ1dGVOb2Rl KCJpZCIpOwpyZXR1cm4gbC5ub2RlVHlwZT09PTEmJnAmJnAubm9kZVZhbHVlPT09 cX19ay5yZW1vdmVDaGlsZChnKTtrPWc9bnVsbH0pKCk7KGZ1bmN0aW9uKCl7dmFy IGc9ci5jcmVhdGVFbGVtZW50KCJkaXYiKTtnLmFwcGVuZENoaWxkKHIuY3JlYXRl Q29tbWVudCgiIikpO2lmKGcuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5n dGg+MCltLmZpbmQuVEFHPWZ1bmN0aW9uKGgsayl7az1rLmdldEVsZW1lbnRzQnlU YWdOYW1lKGhbMV0pO2lmKGhbMV09PT0iKiIpe2g9W107Zm9yKHZhciBsPTA7a1ts XTtsKyspa1tsXS5ub2RlVHlwZT09PTEmJmgucHVzaChrW2xdKTtrPWh9cmV0dXJu IGt9O2cuaW5uZXJIVE1MPSI8YSBocmVmPScjJz48L2E+IjtpZihnLmZpcnN0Q2hp bGQmJnR5cGVvZiBnLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlIT09InVuZGVmaW5l ZCImJmcuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PSIjIiltLmF0 dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihoKXtyZXR1cm4gaC5nZXRBdHRyaWJ1dGUo ImhyZWYiLAoyKX07Zz1udWxsfSkoKTtyLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0 aW9uKCl7dmFyIGc9byxoPXIuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC5pbm5lckhU TUw9IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighKGgucXVlcnlTZWxlY3RvckFs bCYmaC5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApKXtvPWZ1 bmN0aW9uKGwscSxwLHUpe3E9cXx8cjtpZighdSYmcS5ub2RlVHlwZT09PTkmJiF3 KHEpKXRyeXtyZXR1cm4gQShxLnF1ZXJ5U2VsZWN0b3JBbGwobCkscCl9Y2F0Y2go dCl7fXJldHVybiBnKGwscSxwLHUpfTtmb3IodmFyIGsgaW4gZylvW2tdPWdba107 aD1udWxsfX0oKTsoZnVuY3Rpb24oKXt2YXIgZz1yLmNyZWF0ZUVsZW1lbnQoImRp diIpO2cuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUnPjwvZGl2PjxkaXYg Y2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISghZy5nZXRFbGVtZW50c0J5Q2xhc3NO YW1lfHxnLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGg9PT0KMCkp e2cubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoZy5nZXRFbGVtZW50c0J5Q2xh c3NOYW1lKCJlIikubGVuZ3RoIT09MSl7bS5vcmRlci5zcGxpY2UoMSwwLCJDTEFT UyIpO20uZmluZC5DTEFTUz1mdW5jdGlvbihoLGssbCl7aWYodHlwZW9mIGsuZ2V0 RWxlbWVudHNCeUNsYXNzTmFtZSE9PSJ1bmRlZmluZWQiJiYhbClyZXR1cm4gay5n ZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGhbMV0pfTtnPW51bGx9fX0pKCk7dmFyIEU9 ci5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlvbihnLGgpe3JldHVybiBn LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGgpJjE2fTpmdW5jdGlvbihnLGgpe3Jl dHVybiBnIT09aCYmKGcuY29udGFpbnM/Zy5jb250YWlucyhoKTp0cnVlKX0sdz1m dW5jdGlvbihnKXtyZXR1cm4oZz0oZz9nLm93bmVyRG9jdW1lbnR8fGc6MCkuZG9j dW1lbnRFbGVtZW50KT9nLm5vZGVOYW1lIT09IkhUTUwiOmZhbHNlfSxmYT1mdW5j dGlvbihnLGgpe3ZhciBrPVtdLApsPSIiLHE7Zm9yKGg9aC5ub2RlVHlwZT9baF06 aDtxPW0ubWF0Y2guUFNFVURPLmV4ZWMoZyk7KXtsKz1xWzBdO2c9Zy5yZXBsYWNl KG0ubWF0Y2guUFNFVURPLCIiKX1nPW0ucmVsYXRpdmVbZ10/ZysiKiI6ZztxPTA7 Zm9yKHZhciBwPWgubGVuZ3RoO3E8cDtxKyspbyhnLGhbcV0sayk7cmV0dXJuIG8u ZmlsdGVyKGwsayl9O2MuZmluZD1vO2MuZXhwcj1vLnNlbGVjdG9ycztjLmV4cHJb IjoiXT1jLmV4cHIuZmlsdGVycztjLnVuaXF1ZT1vLnVuaXF1ZVNvcnQ7Yy5nZXRU ZXh0PWE7Yy5pc1hNTERvYz13O2MuY29udGFpbnM9RX0pKCk7dmFyIGJiPS9VbnRp bCQvLGNiPS9eKD86cGFyZW50c3xwcmV2VW50aWx8cHJldkFsbCkvLGRiPS8sLztR PUFycmF5LnByb3RvdHlwZS5zbGljZTt2YXIgRWE9ZnVuY3Rpb24oYSxiLGQpe2lm KGMuaXNGdW5jdGlvbihiKSlyZXR1cm4gYy5ncmVwKGEsZnVuY3Rpb24oZSxpKXty ZXR1cm4hIWIuY2FsbChlLGksZSk9PT1kfSk7ZWxzZSBpZihiLm5vZGVUeXBlKXJl dHVybiBjLmdyZXAoYSwKZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1iPT09ZH0pO2Vs c2UgaWYodHlwZW9mIGI9PT0ic3RyaW5nIil7dmFyIGY9Yy5ncmVwKGEsZnVuY3Rp b24oZSl7cmV0dXJuIGUubm9kZVR5cGU9PT0xfSk7aWYoUWEudGVzdChiKSlyZXR1 cm4gYy5maWx0ZXIoYixmLCFkKTtlbHNlIGI9Yy5maWx0ZXIoYixmKX1yZXR1cm4g Yy5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuIGMuaW5BcnJheShlLGIpPj0wPT09 ZH0pfTtjLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXtmb3IodmFyIGI9dGhp cy5wdXNoU3RhY2soIiIsImZpbmQiLGEpLGQ9MCxmPTAsZT10aGlzLmxlbmd0aDtm PGU7ZisrKXtkPWIubGVuZ3RoO2MuZmluZChhLHRoaXNbZl0sYik7aWYoZj4wKWZv cih2YXIgaT1kO2k8Yi5sZW5ndGg7aSsrKWZvcih2YXIgaj0wO2o8ZDtqKyspaWYo YltqXT09PWJbaV0pe2Iuc3BsaWNlKGktLSwxKTticmVha319cmV0dXJuIGJ9LGhh czpmdW5jdGlvbihhKXt2YXIgYj1jKGEpO3JldHVybiB0aGlzLmZpbHRlcihmdW5j dGlvbigpe2Zvcih2YXIgZD0KMCxmPWIubGVuZ3RoO2Q8ZjtkKyspaWYoYy5jb250 YWlucyh0aGlzLGJbZF0pKXJldHVybiB0cnVlfSl9LG5vdDpmdW5jdGlvbihhKXty ZXR1cm4gdGhpcy5wdXNoU3RhY2soRWEodGhpcyxhLGZhbHNlKSwibm90IixhKX0s ZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhFYSh0aGlz LGEsdHJ1ZSksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEhYSYm Yy5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+MH0sY2xvc2VzdDpmdW5jdGlvbihhLGIp e2lmKGMuaXNBcnJheShhKSl7dmFyIGQ9W10sZj10aGlzWzBdLGUsaT17fSxqO2lm KGYmJmEubGVuZ3RoKXtlPTA7Zm9yKHZhciBuPWEubGVuZ3RoO2U8bjtlKyspe2o9 YVtlXTtpW2pdfHwoaVtqXT1jLmV4cHIubWF0Y2guUE9TLnRlc3Qoaik/YyhqLGJ8 fHRoaXMuY29udGV4dCk6ail9Zm9yKDtmJiZmLm93bmVyRG9jdW1lbnQmJmYhPT1i Oyl7Zm9yKGogaW4gaSl7ZT1pW2pdO2lmKGUuanF1ZXJ5P2UuaW5kZXgoZik+Ci0x OmMoZikuaXMoZSkpe2QucHVzaCh7c2VsZWN0b3I6aixlbGVtOmZ9KTtkZWxldGUg aVtqXX19Zj1mLnBhcmVudE5vZGV9fXJldHVybiBkfXZhciBvPWMuZXhwci5tYXRj aC5QT1MudGVzdChhKT9jKGEsYnx8dGhpcy5jb250ZXh0KTpudWxsO3JldHVybiB0 aGlzLm1hcChmdW5jdGlvbihtLHMpe2Zvcig7cyYmcy5vd25lckRvY3VtZW50JiZz IT09Yjspe2lmKG8/by5pbmRleChzKT4tMTpjKHMpLmlzKGEpKXJldHVybiBzO3M9 cy5wYXJlbnROb2RlfXJldHVybiBudWxsfSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lm KCFhfHx0eXBlb2YgYT09PSJzdHJpbmciKXJldHVybiBjLmluQXJyYXkodGhpc1sw XSxhP2MoYSk6dGhpcy5wYXJlbnQoKS5jaGlsZHJlbigpKTtyZXR1cm4gYy5pbkFy cmF5KGEuanF1ZXJ5P2FbMF06YSx0aGlzKX0sYWRkOmZ1bmN0aW9uKGEsYil7YT10 eXBlb2YgYT09PSJzdHJpbmciP2MoYSxifHx0aGlzLmNvbnRleHQpOmMubWFrZUFy cmF5KGEpO2I9Yy5tZXJnZSh0aGlzLmdldCgpLAphKTtyZXR1cm4gdGhpcy5wdXNo U3RhY2socGEoYVswXSl8fHBhKGJbMF0pP2I6Yy51bmlxdWUoYikpfSxhbmRTZWxm OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9fSk7 Yy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9YS5wYXJlbnROb2Rl KSYmYS5ub2RlVHlwZSE9PTExP2E6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXty ZXR1cm4gYy5kaXIoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rp b24oYSxiLGQpe3JldHVybiBjLmRpcihhLCJwYXJlbnROb2RlIixkKX0sbmV4dDpm dW5jdGlvbihhKXtyZXR1cm4gYy5udGgoYSwyLCJuZXh0U2libGluZyIpfSxwcmV2 OmZ1bmN0aW9uKGEpe3JldHVybiBjLm50aChhLDIsInByZXZpb3VzU2libGluZyIp fSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJuZXh0U2libGlu ZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiBjLmRpcihhLCJwcmV2aW91 c1NpYmxpbmciKX0sCm5leHRVbnRpbDpmdW5jdGlvbihhLGIsZCl7cmV0dXJuIGMu ZGlyKGEsIm5leHRTaWJsaW5nIixkKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixk KXtyZXR1cm4gYy5kaXIoYSwicHJldmlvdXNTaWJsaW5nIixkKX0sc2libGluZ3M6 ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhhLnBhcmVudE5vZGUuZmlyc3RD aGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGMuc2libGluZyhh LmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gYy5ub2Rl TmFtZShhLCJpZnJhbWUiKT9hLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2lu ZG93LmRvY3VtZW50OmMubWFrZUFycmF5KGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlv bihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXt2YXIgZT1jLm1hcCh0aGlzLGIs ZCk7YmIudGVzdChhKXx8KGY9ZCk7aWYoZiYmdHlwZW9mIGY9PT0ic3RyaW5nIill PWMuZmlsdGVyKGYsZSk7ZT10aGlzLmxlbmd0aD4xP2MudW5pcXVlKGUpOgplO2lm KCh0aGlzLmxlbmd0aD4xfHxkYi50ZXN0KGYpKSYmY2IudGVzdChhKSllPWUucmV2 ZXJzZSgpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlLGEsUS5jYWxsKGFyZ3VtZW50 cykuam9pbigiLCIpKX19KTtjLmV4dGVuZCh7ZmlsdGVyOmZ1bmN0aW9uKGEsYixk KXtpZihkKWE9Ijpub3QoIithKyIpIjtyZXR1cm4gYy5maW5kLm1hdGNoZXMoYSxi KX0sZGlyOmZ1bmN0aW9uKGEsYixkKXt2YXIgZj1bXTtmb3IoYT1hW2JdO2EmJmEu bm9kZVR5cGUhPT05JiYoZD09PXZ8fGEubm9kZVR5cGUhPT0xfHwhYyhhKS5pcyhk KSk7KXthLm5vZGVUeXBlPT09MSYmZi5wdXNoKGEpO2E9YVtiXX1yZXR1cm4gZn0s bnRoOmZ1bmN0aW9uKGEsYixkKXtiPWJ8fDE7Zm9yKHZhciBmPTA7YTthPWFbZF0p aWYoYS5ub2RlVHlwZT09PTEmJisrZj09PWIpYnJlYWs7cmV0dXJuIGF9LHNpYmxp bmc6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9W107YTthPWEubmV4dFNpYmxpbmcp YS5ub2RlVHlwZT09PTEmJmEhPT0KYiYmZC5wdXNoKGEpO3JldHVybiBkfX0pO3Zh ciBGYT0vIGpRdWVyeVxkKz0iKD86XGQrfG51bGwpIi9nLFY9L15ccysvLEdhPS8o PChbXHc6XSspW14+XSo/KVwvPi9nLGViPS9eKD86YXJlYXxicnxjb2x8ZW1iZWR8 aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkkL2ksSGE9LzwoW1x3Ol0rKS8s ZmI9Lzx0Ym9keS9pLGdiPS88fCZcdys7LyxzYT0vY2hlY2tlZFxzKig/OltePV18 PVxzKi5jaGVja2VkLikvaSxJYT1mdW5jdGlvbihhLGIsZCl7cmV0dXJuIGViLnRl c3QoZCk/YTpiKyI+PC8iK2QrIj4ifSxGPXtvcHRpb246WzEsIjxzZWxlY3QgbXVs dGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVs ZHNldD4iLCI8L2ZpZWxkc2V0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJs ZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0s dGQ6WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3RhYmxl PiJdLApjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+Iiwi PC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0s X2RlZmF1bHQ6WzAsIiIsIiJdfTtGLm9wdGdyb3VwPUYub3B0aW9uO0YudGJvZHk9 Ri50Zm9vdD1GLmNvbGdyb3VwPUYuY2FwdGlvbj1GLnRoZWFkO0YudGg9Ri50ZDtp ZighYy5zdXBwb3J0Lmh0bWxTZXJpYWxpemUpRi5fZGVmYXVsdD1bMSwiZGl2PGRp dj4iLCI8L2Rpdj4iXTtjLmZuLmV4dGVuZCh7dGV4dDpmdW5jdGlvbihhKXtpZihj LmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXt2YXIg ZD1jKHRoaXMpO2QudGV4dChhLmNhbGwodGhpcyxiLGQudGV4dCgpKSl9KTtpZih0 eXBlb2YgYSE9PSJvYmplY3QiJiZhIT09dilyZXR1cm4gdGhpcy5lbXB0eSgpLmFw cGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxyKS5jcmVhdGVU ZXh0Tm9kZShhKSk7cmV0dXJuIGMuZ2V0VGV4dCh0aGlzKX0sCndyYXBBbGw6ZnVu Y3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVu Y3Rpb24oZCl7Yyh0aGlzKS53cmFwQWxsKGEuY2FsbCh0aGlzLGQpKX0pO2lmKHRo aXNbMF0pe3ZhciBiPWMoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNs b25lKHRydWUpO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhp c1swXSk7Yi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGQ9dGhpcztkLmZpcnN0Q2hp bGQmJmQuZmlyc3RDaGlsZC5ub2RlVHlwZT09PTE7KWQ9ZC5maXJzdENoaWxkO3Jl dHVybiBkfSkuYXBwZW5kKHRoaXMpfXJldHVybiB0aGlzfSx3cmFwSW5uZXI6ZnVu Y3Rpb24oYSl7aWYoYy5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVu Y3Rpb24oYil7Yyh0aGlzKS53cmFwSW5uZXIoYS5jYWxsKHRoaXMsYikpfSk7cmV0 dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcyksZD1iLmNvbnRl bnRzKCk7ZC5sZW5ndGg/CmQud3JhcEFsbChhKTpiLmFwcGVuZChhKX0pfSx3cmFw OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMp LndyYXBBbGwoYSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFy ZW50KCkuZWFjaChmdW5jdGlvbigpe2Mubm9kZU5hbWUodGhpcywiYm9keSIpfHxj KHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX0sYXBw ZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRy dWUsZnVuY3Rpb24oYSl7dGhpcy5ub2RlVHlwZT09PTEmJnRoaXMuYXBwZW5kQ2hp bGQoYSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlw KGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0 aGlzLmluc2VydEJlZm9yZShhLHRoaXMuZmlyc3RDaGlsZCl9KX0sYmVmb3JlOmZ1 bmN0aW9uKCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0 aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywKZmFsc2UsZnVuY3Rpb24oYil7dGhpcy5w YXJlbnROb2RlLmluc2VydEJlZm9yZShiLHRoaXMpfSk7ZWxzZSBpZihhcmd1bWVu dHMubGVuZ3RoKXt2YXIgYT1jKGFyZ3VtZW50c1swXSk7YS5wdXNoLmFwcGx5KGEs dGhpcy50b0FycmF5KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhhLCJiZWZvcmUi LGFyZ3VtZW50cyl9fSxhZnRlcjpmdW5jdGlvbigpe2lmKHRoaXNbMF0mJnRoaXNb MF0ucGFyZW50Tm9kZSlyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFs c2UsZnVuY3Rpb24oYil7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLHRo aXMubmV4dFNpYmxpbmcpfSk7ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoKXt2YXIg YT10aGlzLnB1c2hTdGFjayh0aGlzLCJhZnRlciIsYXJndW1lbnRzKTthLnB1c2gu YXBwbHkoYSxjKGFyZ3VtZW50c1swXSkudG9BcnJheSgpKTtyZXR1cm4gYX19LGNs b25lOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubWFwKGZ1bmN0aW9uKCl7aWYoIWMu c3VwcG9ydC5ub0Nsb25lRXZlbnQmJgohYy5pc1hNTERvYyh0aGlzKSl7dmFyIGQ9 dGhpcy5vdXRlckhUTUwsZj10aGlzLm93bmVyRG9jdW1lbnQ7aWYoIWQpe2Q9Zi5j cmVhdGVFbGVtZW50KCJkaXYiKTtkLmFwcGVuZENoaWxkKHRoaXMuY2xvbmVOb2Rl KHRydWUpKTtkPWQuaW5uZXJIVE1MfXJldHVybiBjLmNsZWFuKFtkLnJlcGxhY2Uo RmEsIiIpLnJlcGxhY2UoViwiIildLGYpWzBdfWVsc2UgcmV0dXJuIHRoaXMuY2xv bmVOb2RlKHRydWUpfSk7aWYoYT09PXRydWUpe3FhKHRoaXMsYik7cWEodGhpcy5m aW5kKCIqIiksYi5maW5kKCIqIikpfXJldHVybiBifSxodG1sOmZ1bmN0aW9uKGEp e2lmKGE9PT12KXJldHVybiB0aGlzWzBdJiZ0aGlzWzBdLm5vZGVUeXBlPT09MT90 aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKEZhLCIiKTpudWxsO2Vsc2UgaWYodHlw ZW9mIGE9PT0ic3RyaW5nIiYmIS88c2NyaXB0L2kudGVzdChhKSYmKGMuc3VwcG9y dC5sZWFkaW5nV2hpdGVzcGFjZXx8IVYudGVzdChhKSkmJiFGWyhIYS5leGVjKGEp fHwKWyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2E9YS5yZXBsYWNlKEdhLElh KTt0cnl7Zm9yKHZhciBiPTAsZD10aGlzLmxlbmd0aDtiPGQ7YisrKWlmKHRoaXNb Yl0ubm9kZVR5cGU9PT0xKXtjLmNsZWFuRGF0YSh0aGlzW2JdLmdldEVsZW1lbnRz QnlUYWdOYW1lKCIqIikpO3RoaXNbYl0uaW5uZXJIVE1MPWF9fWNhdGNoKGYpe3Ro aXMuZW1wdHkoKS5hcHBlbmQoYSl9fWVsc2UgYy5pc0Z1bmN0aW9uKGEpP3RoaXMu ZWFjaChmdW5jdGlvbihlKXt2YXIgaT1jKHRoaXMpLGo9aS5odG1sKCk7aS5lbXB0 eSgpLmFwcGVuZChmdW5jdGlvbigpe3JldHVybiBhLmNhbGwodGhpcyxlLGopfSl9 KTp0aGlzLmVtcHR5KCkuYXBwZW5kKGEpO3JldHVybiB0aGlzfSxyZXBsYWNlV2l0 aDpmdW5jdGlvbihhKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGUpe2lm KGMuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe3Zh ciBkPWModGhpcyksZj1kLmh0bWwoKTtkLnJlcGxhY2VXaXRoKGEuY2FsbCh0aGlz LApiLGYpKX0pO2Vsc2UgYT1jKGEpLmRldGFjaCgpO3JldHVybiB0aGlzLmVhY2go ZnVuY3Rpb24oKXt2YXIgYj10aGlzLm5leHRTaWJsaW5nLGQ9dGhpcy5wYXJlbnRO b2RlO2ModGhpcykucmVtb3ZlKCk7Yj9jKGIpLmJlZm9yZShhKTpjKGQpLmFwcGVu ZChhKX0pfWVsc2UgcmV0dXJuIHRoaXMucHVzaFN0YWNrKGMoYy5pc0Z1bmN0aW9u KGEpP2EoKTphKSwicmVwbGFjZVdpdGgiLGEpfSxkZXRhY2g6ZnVuY3Rpb24oYSl7 cmV0dXJuIHRoaXMucmVtb3ZlKGEsdHJ1ZSl9LGRvbU1hbmlwOmZ1bmN0aW9uKGEs YixkKXtmdW5jdGlvbiBmKHMpe3JldHVybiBjLm5vZGVOYW1lKHMsInRhYmxlIik/ cy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8cy5hcHBlbmRDaGls ZChzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6c312YXIg ZSxpLGo9YVswXSxuPVtdO2lmKCFjLnN1cHBvcnQuY2hlY2tDbG9uZSYmYXJndW1l bnRzLmxlbmd0aD09PTMmJnR5cGVvZiBqPT09CiJzdHJpbmciJiZzYS50ZXN0KGop KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmRvbU1hbmlwKGEs YixkLHRydWUpfSk7aWYoYy5pc0Z1bmN0aW9uKGopKXJldHVybiB0aGlzLmVhY2go ZnVuY3Rpb24ocyl7dmFyIHg9Yyh0aGlzKTthWzBdPWouY2FsbCh0aGlzLHMsYj94 Lmh0bWwoKTp2KTt4LmRvbU1hbmlwKGEsYixkKX0pO2lmKHRoaXNbMF0pe2U9YVsw XSYmYVswXS5wYXJlbnROb2RlJiZhWzBdLnBhcmVudE5vZGUubm9kZVR5cGU9PT0x MT97ZnJhZ21lbnQ6YVswXS5wYXJlbnROb2RlfTpyYShhLHRoaXMsbik7aWYoaT1l LmZyYWdtZW50LmZpcnN0Q2hpbGQpe2I9YiYmYy5ub2RlTmFtZShpLCJ0ciIpO2Zv cih2YXIgbz0wLG09dGhpcy5sZW5ndGg7bzxtO28rKylkLmNhbGwoYj9mKHRoaXNb b10saSk6dGhpc1tvXSxlLmNhY2hlYWJsZXx8dGhpcy5sZW5ndGg+MXx8bz4wP2Uu ZnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpOmUuZnJhZ21lbnQpfW4mJmMuZWFjaChu LApNYSl9cmV0dXJuIHRoaXN9fSk7Yy5mcmFnbWVudHM9e307Yy5lYWNoKHthcHBl bmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToi YmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VX aXRoIn0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1bmN0aW9uKGQpe3ZhciBmPVtd O2Q9YyhkKTtmb3IodmFyIGU9MCxpPWQubGVuZ3RoO2U8aTtlKyspe3ZhciBqPShl PjA/dGhpcy5jbG9uZSh0cnVlKTp0aGlzKS5nZXQoKTtjLmZuW2JdLmFwcGx5KGMo ZFtlXSksaik7Zj1mLmNvbmNhdChqKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soZixh LGQuc2VsZWN0b3IpfX0pO2MuZWFjaCh7cmVtb3ZlOmZ1bmN0aW9uKGEsYil7aWYo IWF8fGMuZmlsdGVyKGEsW3RoaXNdKS5sZW5ndGgpe2lmKCFiJiZ0aGlzLm5vZGVU eXBlPT09MSl7Yy5jbGVhbkRhdGEodGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgi KiIpKTtjLmNsZWFuRGF0YShbdGhpc10pfXRoaXMucGFyZW50Tm9kZSYmCnRoaXMu cGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19LGVtcHR5OmZ1bmN0aW9uKCl7 Zm9yKHRoaXMubm9kZVR5cGU9PT0xJiZjLmNsZWFuRGF0YSh0aGlzLmdldEVsZW1l bnRzQnlUYWdOYW1lKCIqIikpO3RoaXMuZmlyc3RDaGlsZDspdGhpcy5yZW1vdmVD aGlsZCh0aGlzLmZpcnN0Q2hpbGQpfX0sZnVuY3Rpb24oYSxiKXtjLmZuW2FdPWZ1 bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChiLGFyZ3VtZW50cyl9fSk7Yy5leHRl bmQoe2NsZWFuOmZ1bmN0aW9uKGEsYixkLGYpe2I9Ynx8cjtpZih0eXBlb2YgYi5j cmVhdGVFbGVtZW50PT09InVuZGVmaW5lZCIpYj1iLm93bmVyRG9jdW1lbnR8fGJb MF0mJmJbMF0ub3duZXJEb2N1bWVudHx8cjt2YXIgZT1bXTtjLmVhY2goYSxmdW5j dGlvbihpLGope2lmKHR5cGVvZiBqPT09Im51bWJlciIpais9IiI7aWYoail7aWYo dHlwZW9mIGo9PT0ic3RyaW5nIiYmIWdiLnRlc3Qoaikpaj1iLmNyZWF0ZVRleHRO b2RlKGopO2Vsc2UgaWYodHlwZW9mIGo9PT0KInN0cmluZyIpe2o9ai5yZXBsYWNl KEdhLElhKTt2YXIgbj0oSGEuZXhlYyhqKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNh c2UoKSxvPUZbbl18fEYuX2RlZmF1bHQsbT1vWzBdO2k9Yi5jcmVhdGVFbGVtZW50 KCJkaXYiKTtmb3IoaS5pbm5lckhUTUw9b1sxXStqK29bMl07bS0tOylpPWkubGFz dENoaWxkO2lmKCFjLnN1cHBvcnQudGJvZHkpe209ZmIudGVzdChqKTtuPW49PT0i dGFibGUiJiYhbT9pLmZpcnN0Q2hpbGQmJmkuZmlyc3RDaGlsZC5jaGlsZE5vZGVz Om9bMV09PT0iPHRhYmxlPiImJiFtP2kuY2hpbGROb2RlczpbXTtmb3Iobz1uLmxl bmd0aC0xO28+PTA7LS1vKWMubm9kZU5hbWUobltvXSwidGJvZHkiKSYmIW5bb10u Y2hpbGROb2Rlcy5sZW5ndGgmJm5bb10ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChu W29dKX0hYy5zdXBwb3J0LmxlYWRpbmdXaGl0ZXNwYWNlJiZWLnRlc3QoaikmJmku aW5zZXJ0QmVmb3JlKGIuY3JlYXRlVGV4dE5vZGUoVi5leGVjKGopWzBdKSxpLmZp cnN0Q2hpbGQpOwpqPWMubWFrZUFycmF5KGkuY2hpbGROb2Rlcyl9aWYoai5ub2Rl VHlwZSllLnB1c2goaik7ZWxzZSBlPWMubWVyZ2UoZSxqKX19KTtpZihkKWZvcihh PTA7ZVthXTthKyspaWYoZiYmYy5ub2RlTmFtZShlW2FdLCJzY3JpcHQiKSYmKCFl W2FdLnR5cGV8fGVbYV0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNj cmlwdCIpKWYucHVzaChlW2FdLnBhcmVudE5vZGU/ZVthXS5wYXJlbnROb2RlLnJl bW92ZUNoaWxkKGVbYV0pOmVbYV0pO2Vsc2V7ZVthXS5ub2RlVHlwZT09PTEmJmUu c3BsaWNlLmFwcGx5KGUsW2ErMSwwXS5jb25jYXQoYy5tYWtlQXJyYXkoZVthXS5n ZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSk7ZC5hcHBlbmRDaGlsZChl W2FdKX1yZXR1cm4gZX0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0w LGQ7KGQ9YVtiXSkhPW51bGw7YisrKXtjLmV2ZW50LnJlbW92ZShkKTtjLnJlbW92 ZURhdGEoZCl9fX0pO3ZhciBoYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNp dHl8em9vbXxsaW5lLT9oZWlnaHQvaSwKSmE9L2FscGhhXChbXildKlwpLyxLYT0v b3BhY2l0eT0oW14pXSopLyxnYT0vZmxvYXQvaSxoYT0vLShbYS16XSkvaWcsaWI9 LyhbQS1aXSkvZyxqYj0vXi0/XGQrKD86cHgpPyQvaSxrYj0vXi0/XGQvLGxiPXtw b3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToi YmxvY2sifSxtYj1bIkxlZnQiLCJSaWdodCJdLG5iPVsiVG9wIiwiQm90dG9tIl0s b2I9ci5kZWZhdWx0VmlldyYmci5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxl LExhPWMuc3VwcG9ydC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0Iixp YT1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O2MuZm4uY3Nz PWZ1bmN0aW9uKGEsYil7cmV0dXJuIFgodGhpcyxhLGIsdHJ1ZSxmdW5jdGlvbihk LGYsZSl7aWYoZT09PXYpcmV0dXJuIGMuY3VyQ1NTKGQsZik7aWYodHlwZW9mIGU9 PT0ibnVtYmVyIiYmIWhiLnRlc3QoZikpZSs9InB4IjtjLnN0eWxlKGQsZixlKX0p fTsKYy5leHRlbmQoe3N0eWxlOmZ1bmN0aW9uKGEsYixkKXtpZighYXx8YS5ub2Rl VHlwZT09PTN8fGEubm9kZVR5cGU9PT04KXJldHVybiB2O2lmKChiPT09IndpZHRo Inx8Yj09PSJoZWlnaHQiKSYmcGFyc2VGbG9hdChkKTwwKWQ9djt2YXIgZj1hLnN0 eWxlfHxhLGU9ZCE9PXY7aWYoIWMuc3VwcG9ydC5vcGFjaXR5JiZiPT09Im9wYWNp dHkiKXtpZihlKXtmLnpvb209MTtiPXBhcnNlSW50KGQsMTApKyIiPT09Ik5hTiI/ IiI6ImFscGhhKG9wYWNpdHk9IitkKjEwMCsiKSI7YT1mLmZpbHRlcnx8Yy5jdXJD U1MoYSwiZmlsdGVyIil8fCIiO2YuZmlsdGVyPUphLnRlc3QoYSk/YS5yZXBsYWNl KEphLGIpOmJ9cmV0dXJuIGYuZmlsdGVyJiZmLmZpbHRlci5pbmRleE9mKCJvcGFj aXR5PSIpPj0wP3BhcnNlRmxvYXQoS2EuZXhlYyhmLmZpbHRlcilbMV0pLzEwMCsi IjoiIn1pZihnYS50ZXN0KGIpKWI9TGE7Yj1iLnJlcGxhY2UoaGEsaWEpO2lmKGUp ZltiXT1kO3JldHVybiBmW2JdfSxjc3M6ZnVuY3Rpb24oYSwKYixkLGYpe2lmKGI9 PT0id2lkdGgifHxiPT09ImhlaWdodCIpe3ZhciBlLGk9Yj09PSJ3aWR0aCI/bWI6 bmI7ZnVuY3Rpb24gaigpe2U9Yj09PSJ3aWR0aCI/YS5vZmZzZXRXaWR0aDphLm9m ZnNldEhlaWdodDtmIT09ImJvcmRlciImJmMuZWFjaChpLGZ1bmN0aW9uKCl7Znx8 KGUtPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwicGFkZGluZyIrdGhpcyx0cnVlKSl8 fDApO2lmKGY9PT0ibWFyZ2luIillKz1wYXJzZUZsb2F0KGMuY3VyQ1NTKGEsIm1h cmdpbiIrdGhpcyx0cnVlKSl8fDA7ZWxzZSBlLT1wYXJzZUZsb2F0KGMuY3VyQ1NT KGEsImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH0pfWEub2Zmc2V0V2lk dGghPT0wP2ooKTpjLnN3YXAoYSxsYixqKTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRo LnJvdW5kKGUpKX1yZXR1cm4gYy5jdXJDU1MoYSxiLGQpfSxjdXJDU1M6ZnVuY3Rp b24oYSxiLGQpe3ZhciBmLGU9YS5zdHlsZTtpZighYy5zdXBwb3J0Lm9wYWNpdHkm JmI9PT0ib3BhY2l0eSImJgphLmN1cnJlbnRTdHlsZSl7Zj1LYS50ZXN0KGEuY3Vy cmVudFN0eWxlLmZpbHRlcnx8IiIpP3BhcnNlRmxvYXQoUmVnRXhwLiQxKS8xMDAr IiI6IiI7cmV0dXJuIGY9PT0iIj8iMSI6Zn1pZihnYS50ZXN0KGIpKWI9TGE7aWYo IWQmJmUmJmVbYl0pZj1lW2JdO2Vsc2UgaWYob2Ipe2lmKGdhLnRlc3QoYikpYj0i ZmxvYXQiO2I9Yi5yZXBsYWNlKGliLCItJDEiKS50b0xvd2VyQ2FzZSgpO2U9YS5v d25lckRvY3VtZW50LmRlZmF1bHRWaWV3O2lmKCFlKXJldHVybiBudWxsO2lmKGE9 ZS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCkpZj1hLmdldFByb3BlcnR5VmFsdWUo Yik7aWYoYj09PSJvcGFjaXR5IiYmZj09PSIiKWY9IjEifWVsc2UgaWYoYS5jdXJy ZW50U3R5bGUpe2Q9Yi5yZXBsYWNlKGhhLGlhKTtmPWEuY3VycmVudFN0eWxlW2Jd fHxhLmN1cnJlbnRTdHlsZVtkXTtpZighamIudGVzdChmKSYma2IudGVzdChmKSl7 Yj1lLmxlZnQ7dmFyIGk9YS5ydW50aW1lU3R5bGUubGVmdDthLnJ1bnRpbWVTdHls ZS5sZWZ0PQphLmN1cnJlbnRTdHlsZS5sZWZ0O2UubGVmdD1kPT09ImZvbnRTaXpl Ij8iMWVtIjpmfHwwO2Y9ZS5waXhlbExlZnQrInB4IjtlLmxlZnQ9YjthLnJ1bnRp bWVTdHlsZS5sZWZ0PWl9fXJldHVybiBmfSxzd2FwOmZ1bmN0aW9uKGEsYixkKXt2 YXIgZj17fTtmb3IodmFyIGUgaW4gYil7ZltlXT1hLnN0eWxlW2VdO2Euc3R5bGVb ZV09YltlXX1kLmNhbGwoYSk7Zm9yKGUgaW4gYilhLnN0eWxlW2VdPWZbZV19fSk7 aWYoYy5leHByJiZjLmV4cHIuZmlsdGVycyl7Yy5leHByLmZpbHRlcnMuaGlkZGVu PWZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0V2lkdGgsZD1hLm9mZnNldEhlaWdo dCxmPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJ0ciI7cmV0dXJuIGI9PT0w JiZkPT09MCYmIWY/dHJ1ZTpiPjAmJmQ+MCYmIWY/ZmFsc2U6Yy5jdXJDU1MoYSwi ZGlzcGxheSIpPT09Im5vbmUifTtjLmV4cHIuZmlsdGVycy52aXNpYmxlPWZ1bmN0 aW9uKGEpe3JldHVybiFjLmV4cHIuZmlsdGVycy5oaWRkZW4oYSl9fXZhciBwYj0K SigpLHFiPS88c2NyaXB0KC58XHMpKj9cL3NjcmlwdD4vZ2kscmI9L3NlbGVjdHx0 ZXh0YXJlYS9pLHNiPS9jb2xvcnxkYXRlfGRhdGV0aW1lfGVtYWlsfGhpZGRlbnxt b250aHxudW1iZXJ8cGFzc3dvcmR8cmFuZ2V8c2VhcmNofHRlbHx0ZXh0fHRpbWV8 dXJsfHdlZWsvaSxOPS89XD8oJnwkKS8samE9L1w/Lyx0Yj0vKFw/fCYpXz0uKj8o JnwkKS8sdWI9L14oXHcrOik/XC9cLyhbXlwvPyNdKykvLHZiPS8lMjAvZztjLmZu LmV4dGVuZCh7X2xvYWQ6Yy5mbi5sb2FkLGxvYWQ6ZnVuY3Rpb24oYSxiLGQpe2lm KHR5cGVvZiBhIT09InN0cmluZyIpcmV0dXJuIHRoaXMuX2xvYWQoYSk7ZWxzZSBp ZighdGhpcy5sZW5ndGgpcmV0dXJuIHRoaXM7dmFyIGY9YS5pbmRleE9mKCIgIik7 aWYoZj49MCl7dmFyIGU9YS5zbGljZShmLGEubGVuZ3RoKTthPWEuc2xpY2UoMCxm KX1mPSJHRVQiO2lmKGIpaWYoYy5pc0Z1bmN0aW9uKGIpKXtkPWI7Yj1udWxsfWVs c2UgaWYodHlwZW9mIGI9PT0ib2JqZWN0Iil7Yj0KYy5wYXJhbShiLGMuYWpheFNl dHRpbmdzLnRyYWRpdGlvbmFsKTtmPSJQT1NUIn12YXIgaT10aGlzO2MuYWpheCh7 dXJsOmEsdHlwZTpmLGRhdGFUeXBlOiJodG1sIixkYXRhOmIsY29tcGxldGU6ZnVu Y3Rpb24oaixuKXtpZihuPT09InN1Y2Nlc3MifHxuPT09Im5vdG1vZGlmaWVkIilp Lmh0bWwoZT9jKCI8ZGl2IC8+IikuYXBwZW5kKGoucmVzcG9uc2VUZXh0LnJlcGxh Y2UocWIsIiIpKS5maW5kKGUpOmoucmVzcG9uc2VUZXh0KTtkJiZpLmVhY2goZCxb ai5yZXNwb25zZVRleHQsbixqXSl9fSk7cmV0dXJuIHRoaXN9LHNlcmlhbGl6ZTpm dW5jdGlvbigpe3JldHVybiBjLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9 LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0 aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHM/Yy5tYWtlQXJyYXkodGhpcy5lbGVt ZW50cyk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWUm JiF0aGlzLmRpc2FibGVkJiYKKHRoaXMuY2hlY2tlZHx8cmIudGVzdCh0aGlzLm5v ZGVOYW1lKXx8c2IudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihhLGIp e2E9Yyh0aGlzKS52YWwoKTtyZXR1cm4gYT09bnVsbD9udWxsOmMuaXNBcnJheShh KT9jLm1hcChhLGZ1bmN0aW9uKGQpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTpk fX0pOntuYW1lOmIubmFtZSx2YWx1ZTphfX0pLmdldCgpfX0pO2MuZWFjaCgiYWph eFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJyb3IgYWpheFN1Y2Nl c3MgYWpheFNlbmQiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtjLmZuW2JdPWZ1 bmN0aW9uKGQpe3JldHVybiB0aGlzLmJpbmQoYixkKX19KTtjLmV4dGVuZCh7Z2V0 OmZ1bmN0aW9uKGEsYixkLGYpe2lmKGMuaXNGdW5jdGlvbihiKSl7Zj1mfHxkO2Q9 YjtiPW51bGx9cmV0dXJuIGMuYWpheCh7dHlwZToiR0VUIix1cmw6YSxkYXRhOmIs c3VjY2VzczpkLGRhdGFUeXBlOmZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsCmIp e3JldHVybiBjLmdldChhLG51bGwsYiwic2NyaXB0Iil9LGdldEpTT046ZnVuY3Rp b24oYSxiLGQpe3JldHVybiBjLmdldChhLGIsZCwianNvbiIpfSxwb3N0OmZ1bmN0 aW9uKGEsYixkLGYpe2lmKGMuaXNGdW5jdGlvbihiKSl7Zj1mfHxkO2Q9YjtiPXt9 fXJldHVybiBjLmFqYXgoe3R5cGU6IlBPU1QiLHVybDphLGRhdGE6YixzdWNjZXNz OmQsZGF0YVR5cGU6Zn0pfSxhamF4U2V0dXA6ZnVuY3Rpb24oYSl7Yy5leHRlbmQo Yy5hamF4U2V0dGluZ3MsYSl9LGFqYXhTZXR0aW5nczp7dXJsOmxvY2F0aW9uLmhy ZWYsZ2xvYmFsOnRydWUsdHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRp b24veC13d3ctZm9ybS11cmxlbmNvZGVkIixwcm9jZXNzRGF0YTp0cnVlLGFzeW5j OnRydWUseGhyOnouWE1MSHR0cFJlcXVlc3QmJih6LmxvY2F0aW9uLnByb3RvY29s IT09ImZpbGU6Inx8IXouQWN0aXZlWE9iamVjdCk/ZnVuY3Rpb24oKXtyZXR1cm4g bmV3IHouWE1MSHR0cFJlcXVlc3R9OgpmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3 IHouQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChhKXt9 fSxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGh0bWw6 InRleHQvaHRtbCIsc2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9u L2phdmFzY3JpcHQiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNj cmlwdCIsdGV4dDoidGV4dC9wbGFpbiIsX2RlZmF1bHQ6IiovKiJ9fSxsYXN0TW9k aWZpZWQ6e30sZXRhZzp7fSxhamF4OmZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoKXtl LnN1Y2Nlc3MmJmUuc3VjY2Vzcy5jYWxsKG8sbixqLHcpO2UuZ2xvYmFsJiZmKCJh amF4U3VjY2VzcyIsW3csZV0pfWZ1bmN0aW9uIGQoKXtlLmNvbXBsZXRlJiZlLmNv bXBsZXRlLmNhbGwobyx3LGopO2UuZ2xvYmFsJiZmKCJhamF4Q29tcGxldGUiLFt3 LGVdKTtlLmdsb2JhbCYmIS0tYy5hY3RpdmUmJmMuZXZlbnQudHJpZ2dlcigiYWph eFN0b3AiKX0KZnVuY3Rpb24gZihxLHApeyhlLmNvbnRleHQ/YyhlLmNvbnRleHQp OmMuZXZlbnQpLnRyaWdnZXIocSxwKX12YXIgZT1jLmV4dGVuZCh0cnVlLHt9LGMu YWpheFNldHRpbmdzLGEpLGksaixuLG89YSYmYS5jb250ZXh0fHxlLG09ZS50eXBl LnRvVXBwZXJDYXNlKCk7aWYoZS5kYXRhJiZlLnByb2Nlc3NEYXRhJiZ0eXBlb2Yg ZS5kYXRhIT09InN0cmluZyIpZS5kYXRhPWMucGFyYW0oZS5kYXRhLGUudHJhZGl0 aW9uYWwpO2lmKGUuZGF0YVR5cGU9PT0ianNvbnAiKXtpZihtPT09IkdFVCIpTi50 ZXN0KGUudXJsKXx8KGUudXJsKz0oamEudGVzdChlLnVybCk/IiYiOiI/IikrKGUu anNvbnB8fCJjYWxsYmFjayIpKyI9PyIpO2Vsc2UgaWYoIWUuZGF0YXx8IU4udGVz dChlLmRhdGEpKWUuZGF0YT0oZS5kYXRhP2UuZGF0YSsiJiI6IiIpKyhlLmpzb25w fHwiY2FsbGJhY2siKSsiPT8iO2UuZGF0YVR5cGU9Impzb24ifWlmKGUuZGF0YVR5 cGU9PT0ianNvbiImJihlLmRhdGEmJk4udGVzdChlLmRhdGEpfHwKTi50ZXN0KGUu dXJsKSkpe2k9ZS5qc29ucENhbGxiYWNrfHwianNvbnAiK3BiKys7aWYoZS5kYXRh KWUuZGF0YT0oZS5kYXRhKyIiKS5yZXBsYWNlKE4sIj0iK2krIiQxIik7ZS51cmw9 ZS51cmwucmVwbGFjZShOLCI9IitpKyIkMSIpO2UuZGF0YVR5cGU9InNjcmlwdCI7 eltpXT16W2ldfHxmdW5jdGlvbihxKXtuPXE7YigpO2QoKTt6W2ldPXY7dHJ5e2Rl bGV0ZSB6W2ldfWNhdGNoKHApe31BJiZBLnJlbW92ZUNoaWxkKEIpfX1pZihlLmRh dGFUeXBlPT09InNjcmlwdCImJmUuY2FjaGU9PT1udWxsKWUuY2FjaGU9ZmFsc2U7 aWYoZS5jYWNoZT09PWZhbHNlJiZtPT09IkdFVCIpe3ZhciBzPUooKSx4PWUudXJs LnJlcGxhY2UodGIsIiQxXz0iK3MrIiQyIik7ZS51cmw9eCsoeD09PWUudXJsPyhq YS50ZXN0KGUudXJsKT8iJiI6Ij8iKSsiXz0iK3M6IiIpfWlmKGUuZGF0YSYmbT09 PSJHRVQiKWUudXJsKz0oamEudGVzdChlLnVybCk/IiYiOiI/IikrZS5kYXRhO2Uu Z2xvYmFsJiYhYy5hY3RpdmUrKyYmCmMuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0 Iik7cz0ocz11Yi5leGVjKGUudXJsKSkmJihzWzFdJiZzWzFdIT09bG9jYXRpb24u cHJvdG9jb2x8fHNbMl0hPT1sb2NhdGlvbi5ob3N0KTtpZihlLmRhdGFUeXBlPT09 InNjcmlwdCImJm09PT0iR0VUIiYmcyl7dmFyIEE9ci5nZXRFbGVtZW50c0J5VGFn TmFtZSgiaGVhZCIpWzBdfHxyLmRvY3VtZW50RWxlbWVudCxCPXIuY3JlYXRlRWxl bWVudCgic2NyaXB0Iik7Qi5zcmM9ZS51cmw7aWYoZS5zY3JpcHRDaGFyc2V0KUIu Y2hhcnNldD1lLnNjcmlwdENoYXJzZXQ7aWYoIWkpe3ZhciBDPWZhbHNlO0Iub25s b2FkPUIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoIUMmJighdGhp cy5yZWFkeVN0YXRlfHx0aGlzLnJlYWR5U3RhdGU9PT0ibG9hZGVkInx8dGhpcy5y ZWFkeVN0YXRlPT09ImNvbXBsZXRlIikpe0M9dHJ1ZTtiKCk7ZCgpO0Iub25sb2Fk PUIub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7QSYmQi5wYXJlbnROb2RlJiYKQS5y ZW1vdmVDaGlsZChCKX19fUEuaW5zZXJ0QmVmb3JlKEIsQS5maXJzdENoaWxkKTty ZXR1cm4gdn12YXIgRT1mYWxzZSx3PWUueGhyKCk7aWYodyl7ZS51c2VybmFtZT93 Lm9wZW4obSxlLnVybCxlLmFzeW5jLGUudXNlcm5hbWUsZS5wYXNzd29yZCk6dy5v cGVuKG0sZS51cmwsZS5hc3luYyk7dHJ5e2lmKGUuZGF0YXx8YSYmYS5jb250ZW50 VHlwZSl3LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsZS5jb250ZW50 VHlwZSk7aWYoZS5pZk1vZGlmaWVkKXtjLmxhc3RNb2RpZmllZFtlLnVybF0mJncu c2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGMubGFzdE1vZGlm aWVkW2UudXJsXSk7Yy5ldGFnW2UudXJsXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJ Zi1Ob25lLU1hdGNoIixjLmV0YWdbZS51cmxdKX1zfHx3LnNldFJlcXVlc3RIZWFk ZXIoIlgtUmVxdWVzdGVkLVdpdGgiLCJYTUxIdHRwUmVxdWVzdCIpO3cuc2V0UmVx dWVzdEhlYWRlcigiQWNjZXB0IiwKZS5kYXRhVHlwZSYmZS5hY2NlcHRzW2UuZGF0 YVR5cGVdP2UuYWNjZXB0c1tlLmRhdGFUeXBlXSsiLCAqLyoiOmUuYWNjZXB0cy5f ZGVmYXVsdCl9Y2F0Y2goZmEpe31pZihlLmJlZm9yZVNlbmQmJmUuYmVmb3JlU2Vu ZC5jYWxsKG8sdyxlKT09PWZhbHNlKXtlLmdsb2JhbCYmIS0tYy5hY3RpdmUmJmMu ZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKTt3LmFib3J0KCk7cmV0dXJuIGZhbHNl fWUuZ2xvYmFsJiZmKCJhamF4U2VuZCIsW3csZV0pO3ZhciBnPXcub25yZWFkeXN0 YXRlY2hhbmdlPWZ1bmN0aW9uKHEpe2lmKCF3fHx3LnJlYWR5U3RhdGU9PT0wfHxx PT09ImFib3J0Iil7RXx8ZCgpO0U9dHJ1ZTtpZih3KXcub25yZWFkeXN0YXRlY2hh bmdlPWMubm9vcH1lbHNlIGlmKCFFJiZ3JiYody5yZWFkeVN0YXRlPT09NHx8cT09 PSJ0aW1lb3V0Iikpe0U9dHJ1ZTt3Lm9ucmVhZHlzdGF0ZWNoYW5nZT1jLm5vb3A7 aj1xPT09InRpbWVvdXQiPyJ0aW1lb3V0IjohYy5odHRwU3VjY2Vzcyh3KT8KImVy cm9yIjplLmlmTW9kaWZpZWQmJmMuaHR0cE5vdE1vZGlmaWVkKHcsZS51cmwpPyJu b3Rtb2RpZmllZCI6InN1Y2Nlc3MiO3ZhciBwO2lmKGo9PT0ic3VjY2VzcyIpdHJ5 e249Yy5odHRwRGF0YSh3LGUuZGF0YVR5cGUsZSl9Y2F0Y2godSl7aj0icGFyc2Vy ZXJyb3IiO3A9dX1pZihqPT09InN1Y2Nlc3MifHxqPT09Im5vdG1vZGlmaWVkIilp fHxiKCk7ZWxzZSBjLmhhbmRsZUVycm9yKGUsdyxqLHApO2QoKTtxPT09InRpbWVv dXQiJiZ3LmFib3J0KCk7aWYoZS5hc3luYyl3PW51bGx9fTt0cnl7dmFyIGg9dy5h Ym9ydDt3LmFib3J0PWZ1bmN0aW9uKCl7dyYmaC5jYWxsKHcpO2coImFib3J0Iil9 fWNhdGNoKGspe31lLmFzeW5jJiZlLnRpbWVvdXQ+MCYmc2V0VGltZW91dChmdW5j dGlvbigpe3cmJiFFJiZnKCJ0aW1lb3V0Iil9LGUudGltZW91dCk7dHJ5e3cuc2Vu ZChtPT09IlBPU1QifHxtPT09IlBVVCJ8fG09PT0iREVMRVRFIj9lLmRhdGE6bnVs bCl9Y2F0Y2gobCl7Yy5oYW5kbGVFcnJvcihlLAp3LG51bGwsbCk7ZCgpfWUuYXN5 bmN8fGcoKTtyZXR1cm4gd319LGhhbmRsZUVycm9yOmZ1bmN0aW9uKGEsYixkLGYp e2lmKGEuZXJyb3IpYS5lcnJvci5jYWxsKGEuY29udGV4dHx8YSxiLGQsZik7aWYo YS5nbG9iYWwpKGEuY29udGV4dD9jKGEuY29udGV4dCk6Yy5ldmVudCkudHJpZ2dl cigiYWpheEVycm9yIixbYixhLGZdKX0sYWN0aXZlOjAsaHR0cFN1Y2Nlc3M6ZnVu Y3Rpb24oYSl7dHJ5e3JldHVybiFhLnN0YXR1cyYmbG9jYXRpb24ucHJvdG9jb2w9 PT0iZmlsZToifHxhLnN0YXR1cz49MjAwJiZhLnN0YXR1czwzMDB8fGEuc3RhdHVz PT09MzA0fHxhLnN0YXR1cz09PTEyMjN8fGEuc3RhdHVzPT09MH1jYXRjaChiKXt9 cmV0dXJuIGZhbHNlfSxodHRwTm90TW9kaWZpZWQ6ZnVuY3Rpb24oYSxiKXt2YXIg ZD1hLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIiksZj1hLmdldFJl c3BvbnNlSGVhZGVyKCJFdGFnIik7aWYoZCljLmxhc3RNb2RpZmllZFtiXT1kO2lm KGYpYy5ldGFnW2JdPQpmO3JldHVybiBhLnN0YXR1cz09PTMwNHx8YS5zdGF0dXM9 PT0wfSxodHRwRGF0YTpmdW5jdGlvbihhLGIsZCl7dmFyIGY9YS5nZXRSZXNwb25z ZUhlYWRlcigiY29udGVudC10eXBlIil8fCIiLGU9Yj09PSJ4bWwifHwhYiYmZi5p bmRleE9mKCJ4bWwiKT49MDthPWU/YS5yZXNwb25zZVhNTDphLnJlc3BvbnNlVGV4 dDtlJiZhLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZT09PSJwYXJzZXJlcnJvciIm JmMuZXJyb3IoInBhcnNlcmVycm9yIik7aWYoZCYmZC5kYXRhRmlsdGVyKWE9ZC5k YXRhRmlsdGVyKGEsYik7aWYodHlwZW9mIGE9PT0ic3RyaW5nIilpZihiPT09Impz b24ifHwhYiYmZi5pbmRleE9mKCJqc29uIik+PTApYT1jLnBhcnNlSlNPTihhKTtl bHNlIGlmKGI9PT0ic2NyaXB0Inx8IWImJmYuaW5kZXhPZigiamF2YXNjcmlwdCIp Pj0wKWMuZ2xvYmFsRXZhbChhKTtyZXR1cm4gYX0scGFyYW06ZnVuY3Rpb24oYSxi KXtmdW5jdGlvbiBkKGosbil7aWYoYy5pc0FycmF5KG4pKWMuZWFjaChuLApmdW5j dGlvbihvLG0pe2I/ZihqLG0pOmQoaisiWyIrKHR5cGVvZiBtPT09Im9iamVjdCJ8 fGMuaXNBcnJheShtKT9vOiIiKSsiXSIsbSl9KTtlbHNlIWImJm4hPW51bGwmJnR5 cGVvZiBuPT09Im9iamVjdCI/Yy5lYWNoKG4sZnVuY3Rpb24obyxtKXtkKGorIlsi K28rIl0iLG0pfSk6ZihqLG4pfWZ1bmN0aW9uIGYoaixuKXtuPWMuaXNGdW5jdGlv bihuKT9uKCk6bjtlW2UubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoaikrIj0i K2VuY29kZVVSSUNvbXBvbmVudChuKX12YXIgZT1bXTtpZihiPT09diliPWMuYWph eFNldHRpbmdzLnRyYWRpdGlvbmFsO2lmKGMuaXNBcnJheShhKXx8YS5qcXVlcnkp Yy5lYWNoKGEsZnVuY3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vs c2UgZm9yKHZhciBpIGluIGEpZChpLGFbaV0pO3JldHVybiBlLmpvaW4oIiYiKS5y ZXBsYWNlKHZiLCIrIil9fSk7dmFyIGthPXt9LHdiPS90b2dnbGV8c2hvd3xoaWRl Lyx4Yj0vXihbKy1dPSk/KFtcZCstLl0rKSguKikkLywKVyx0YT1bWyJoZWlnaHQi LCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGlu Z0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJw YWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtjLmZuLmV4 dGVuZCh7c2hvdzpmdW5jdGlvbihhLGIpe2lmKGF8fGE9PT0wKXJldHVybiB0aGlz LmFuaW1hdGUoSygic2hvdyIsMyksYSxiKTtlbHNle2E9MDtmb3IoYj10aGlzLmxl bmd0aDthPGI7YSsrKXt2YXIgZD1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIp O3RoaXNbYV0uc3R5bGUuZGlzcGxheT1kfHwiIjtpZihjLmNzcyh0aGlzW2FdLCJk aXNwbGF5Iik9PT0ibm9uZSIpe2Q9dGhpc1thXS5ub2RlTmFtZTt2YXIgZjtpZihr YVtkXSlmPWthW2RdO2Vsc2V7dmFyIGU9YygiPCIrZCsiIC8+IikuYXBwZW5kVG8o ImJvZHkiKTtmPWUuY3NzKCJkaXNwbGF5Iik7aWYoZj09PSJub25lIilmPSJibG9j ayI7ZS5yZW1vdmUoKTsKa2FbZF09Zn1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxh eSIsZil9fWE9MDtmb3IoYj10aGlzLmxlbmd0aDthPGI7YSsrKXRoaXNbYV0uc3R5 bGUuZGlzcGxheT1jLmRhdGEodGhpc1thXSwib2xkZGlzcGxheSIpfHwiIjtyZXR1 cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oYSxiKXtpZihhfHxhPT09MClyZXR1cm4g dGhpcy5hbmltYXRlKEsoImhpZGUiLDMpLGEsYik7ZWxzZXthPTA7Zm9yKGI9dGhp cy5sZW5ndGg7YTxiO2ErKyl7dmFyIGQ9Yy5kYXRhKHRoaXNbYV0sIm9sZGRpc3Bs YXkiKTshZCYmZCE9PSJub25lIiYmYy5kYXRhKHRoaXNbYV0sIm9sZGRpc3BsYXki LGMuY3NzKHRoaXNbYV0sImRpc3BsYXkiKSl9YT0wO2ZvcihiPXRoaXMubGVuZ3Ro O2E8YjthKyspdGhpc1thXS5zdHlsZS5kaXNwbGF5PSJub25lIjtyZXR1cm4gdGhp c319LF90b2dnbGU6Yy5mbi50b2dnbGUsdG9nZ2xlOmZ1bmN0aW9uKGEsYil7dmFy IGQ9dHlwZW9mIGE9PT0iYm9vbGVhbiI7aWYoYy5pc0Z1bmN0aW9uKGEpJiYKYy5p c0Z1bmN0aW9uKGIpKXRoaXMuX3RvZ2dsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7 ZWxzZSBhPT1udWxsfHxkP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPWQ/YTpj KHRoaXMpLmlzKCI6aGlkZGVuIik7Yyh0aGlzKVtmPyJzaG93IjoiaGlkZSJdKCl9 KTp0aGlzLmFuaW1hdGUoSygidG9nZ2xlIiwzKSxhLGIpO3JldHVybiB0aGlzfSxm YWRlVG86ZnVuY3Rpb24oYSxiLGQpe3JldHVybiB0aGlzLmZpbHRlcigiOmhpZGRl biIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNp dHk6Yn0sYSxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsZCxmKXt2YXIgZT1jLnNw ZWVkKGIsZCxmKTtpZihjLmlzRW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFj aChlLmNvbXBsZXRlKTtyZXR1cm4gdGhpc1tlLnF1ZXVlPT09ZmFsc2U/ImVhY2gi OiJxdWV1ZSJdKGZ1bmN0aW9uKCl7dmFyIGk9Yy5leHRlbmQoe30sZSksaixuPXRo aXMubm9kZVR5cGU9PT0xJiZjKHRoaXMpLmlzKCI6aGlkZGVuIiksCm89dGhpcztm b3IoaiBpbiBhKXt2YXIgbT1qLnJlcGxhY2UoaGEsaWEpO2lmKGohPT1tKXthW21d PWFbal07ZGVsZXRlIGFbal07aj1tfWlmKGFbal09PT0iaGlkZSImJm58fGFbal09 PT0ic2hvdyImJiFuKXJldHVybiBpLmNvbXBsZXRlLmNhbGwodGhpcyk7aWYoKGo9 PT0iaGVpZ2h0Inx8aj09PSJ3aWR0aCIpJiZ0aGlzLnN0eWxlKXtpLmRpc3BsYXk9 Yy5jc3ModGhpcywiZGlzcGxheSIpO2kub3ZlcmZsb3c9dGhpcy5zdHlsZS5vdmVy Zmxvd31pZihjLmlzQXJyYXkoYVtqXSkpeyhpLnNwZWNpYWxFYXNpbmc9aS5zcGVj aWFsRWFzaW5nfHx7fSlbal09YVtqXVsxXTthW2pdPWFbal1bMF19fWlmKGkub3Zl cmZsb3chPW51bGwpdGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIjtpLmN1ckFu aW09Yy5leHRlbmQoe30sYSk7Yy5lYWNoKGEsZnVuY3Rpb24ocyx4KXt2YXIgQT1u ZXcgYy5meChvLGkscyk7aWYod2IudGVzdCh4KSlBW3g9PT0idG9nZ2xlIj9uPyJz aG93IjoiaGlkZSI6eF0oYSk7CmVsc2V7dmFyIEI9eGIuZXhlYyh4KSxDPUEuY3Vy KHRydWUpfHwwO2lmKEIpe3g9cGFyc2VGbG9hdChCWzJdKTt2YXIgRT1CWzNdfHwi cHgiO2lmKEUhPT0icHgiKXtvLnN0eWxlW3NdPSh4fHwxKStFO0M9KHh8fDEpL0Eu Y3VyKHRydWUpKkM7by5zdHlsZVtzXT1DK0V9aWYoQlsxXSl4PShCWzFdPT09Ii09 Ij8tMToxKSp4K0M7QS5jdXN0b20oQyx4LEUpfWVsc2UgQS5jdXN0b20oQyx4LCIi KX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy50 aW1lcnM7YSYmdGhpcy5xdWV1ZShbXSk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zm9y KHZhciBmPWQubGVuZ3RoLTE7Zj49MDtmLS0paWYoZFtmXS5lbGVtPT09dGhpcyl7 YiYmZFtmXSh0cnVlKTtkLnNwbGljZShmLDEpfX0pO2J8fHRoaXMuZGVxdWV1ZSgp O3JldHVybiB0aGlzfX0pO2MuZWFjaCh7c2xpZGVEb3duOksoInNob3ciLDEpLHNs aWRlVXA6SygiaGlkZSIsMSksc2xpZGVUb2dnbGU6SygidG9nZ2xlIiwKMSksZmFk ZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxm dW5jdGlvbihhLGIpe2MuZm5bYV09ZnVuY3Rpb24oZCxmKXtyZXR1cm4gdGhpcy5h bmltYXRlKGIsZCxmKX19KTtjLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oYSxiLGQp e3ZhciBmPWEmJnR5cGVvZiBhPT09Im9iamVjdCI/YTp7Y29tcGxldGU6ZHx8IWQm JmJ8fGMuaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpkJiZifHxi JiYhYy5pc0Z1bmN0aW9uKGIpJiZifTtmLmR1cmF0aW9uPWMuZngub2ZmPzA6dHlw ZW9mIGYuZHVyYXRpb249PT0ibnVtYmVyIj9mLmR1cmF0aW9uOmMuZnguc3BlZWRz W2YuZHVyYXRpb25dfHxjLmZ4LnNwZWVkcy5fZGVmYXVsdDtmLm9sZD1mLmNvbXBs ZXRlO2YuY29tcGxldGU9ZnVuY3Rpb24oKXtmLnF1ZXVlIT09ZmFsc2UmJmModGhp cykuZGVxdWV1ZSgpO2MuaXNGdW5jdGlvbihmLm9sZCkmJmYub2xkLmNhbGwodGhp cyl9O3JldHVybiBmfSxlYXNpbmc6e2xpbmVhcjpmdW5jdGlvbihhLApiLGQsZil7 cmV0dXJuIGQrZiphfSxzd2luZzpmdW5jdGlvbihhLGIsZCxmKXtyZXR1cm4oLU1h dGguY29zKGEqTWF0aC5QSSkvMiswLjUpKmYrZH19LHRpbWVyczpbXSxmeDpmdW5j dGlvbihhLGIsZCl7dGhpcy5vcHRpb25zPWI7dGhpcy5lbGVtPWE7dGhpcy5wcm9w PWQ7aWYoIWIub3JpZyliLm9yaWc9e319fSk7Yy5meC5wcm90b3R5cGU9e3VwZGF0 ZTpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3Rl cC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKTsoYy5meC5zdGVwW3RoaXMu cHJvcF18fGMuZnguc3RlcC5fZGVmYXVsdCkodGhpcyk7aWYoKHRoaXMucHJvcD09 PSJoZWlnaHQifHx0aGlzLnByb3A9PT0id2lkdGgiKSYmdGhpcy5lbGVtLnN0eWxl KXRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9LGN1cjpmdW5jdGlvbihh KXtpZih0aGlzLmVsZW1bdGhpcy5wcm9wXSE9bnVsbCYmKCF0aGlzLmVsZW0uc3R5 bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdPT0KbnVsbCkpcmV0dXJuIHRo aXMuZWxlbVt0aGlzLnByb3BdO3JldHVybihhPXBhcnNlRmxvYXQoYy5jc3ModGhp cy5lbGVtLHRoaXMucHJvcCxhKSkpJiZhPi0xMDAwMD9hOnBhcnNlRmxvYXQoYy5j dXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24o YSxiLGQpe2Z1bmN0aW9uIGYoaSl7cmV0dXJuIGUuc3RlcChpKX10aGlzLnN0YXJ0 VGltZT1KKCk7dGhpcy5zdGFydD1hO3RoaXMuZW5kPWI7dGhpcy51bml0PWR8fHRo aXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0O3RoaXMucG9zPXRoaXMu c3RhdGU9MDt2YXIgZT10aGlzO2YuZWxlbT10aGlzLmVsZW07aWYoZigpJiZjLnRp bWVycy5wdXNoKGYpJiYhVylXPXNldEludGVydmFsKGMuZngudGljaywxMyl9LHNo b3c6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5 bGUodGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0 aGlzLmN1c3RvbSh0aGlzLnByb3A9PT0KIndpZHRoInx8dGhpcy5wcm9wPT09Imhl aWdodCI/MTowLHRoaXMuY3VyKCkpO2ModGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6 ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPWMuc3R5bGUo dGhpcy5lbGVtLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1ZTt0aGlz LmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKGEpe3ZhciBiPUoo KSxkPXRydWU7aWYoYXx8Yj49dGhpcy5vcHRpb25zLmR1cmF0aW9uK3RoaXMuc3Rh cnRUaW1lKXt0aGlzLm5vdz10aGlzLmVuZDt0aGlzLnBvcz10aGlzLnN0YXRlPTE7 dGhpcy51cGRhdGUoKTt0aGlzLm9wdGlvbnMuY3VyQW5pbVt0aGlzLnByb3BdPXRy dWU7Zm9yKHZhciBmIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWlmKHRoaXMub3B0 aW9ucy5jdXJBbmltW2ZdIT09dHJ1ZSlkPWZhbHNlO2lmKGQpe2lmKHRoaXMub3B0 aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9CnRo aXMub3B0aW9ucy5vdmVyZmxvdzthPWMuZGF0YSh0aGlzLmVsZW0sIm9sZGRpc3Bs YXkiKTt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT1hP2E6dGhpcy5vcHRpb25zLmRp c3BsYXk7aWYoYy5jc3ModGhpcy5lbGVtLCJkaXNwbGF5Iik9PT0ibm9uZSIpdGhp cy5lbGVtLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn10aGlzLm9wdGlvbnMuaGlkZSYm Yyh0aGlzLmVsZW0pLmhpZGUoKTtpZih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5v cHRpb25zLnNob3cpZm9yKHZhciBlIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKWMu c3R5bGUodGhpcy5lbGVtLGUsdGhpcy5vcHRpb25zLm9yaWdbZV0pO3RoaXMub3B0 aW9ucy5jb21wbGV0ZS5jYWxsKHRoaXMuZWxlbSl9cmV0dXJuIGZhbHNlfWVsc2V7 ZT1iLXRoaXMuc3RhcnRUaW1lO3RoaXMuc3RhdGU9ZS90aGlzLm9wdGlvbnMuZHVy YXRpb247YT10aGlzLm9wdGlvbnMuZWFzaW5nfHwoYy5lYXNpbmcuc3dpbmc/InN3 aW5nIjoibGluZWFyIik7dGhpcy5wb3M9CmMuZWFzaW5nW3RoaXMub3B0aW9ucy5z cGVjaWFsRWFzaW5nJiZ0aGlzLm9wdGlvbnMuc3BlY2lhbEVhc2luZ1t0aGlzLnBy b3BdfHxhXSh0aGlzLnN0YXRlLGUsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik7 dGhpcy5ub3c9dGhpcy5zdGFydCsodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5w b3M7dGhpcy51cGRhdGUoKX1yZXR1cm4gdHJ1ZX19O2MuZXh0ZW5kKGMuZngse3Rp Y2s6ZnVuY3Rpb24oKXtmb3IodmFyIGE9Yy50aW1lcnMsYj0wO2I8YS5sZW5ndGg7 YisrKWFbYl0oKXx8YS5zcGxpY2UoYi0tLDEpO2EubGVuZ3RofHxjLmZ4LnN0b3Ao KX0sc3RvcDpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwoVyk7Vz1udWxsfSxzcGVl ZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0 eTpmdW5jdGlvbihhKXtjLnN0eWxlKGEuZWxlbSwib3BhY2l0eSIsYS5ub3cpfSxf ZGVmYXVsdDpmdW5jdGlvbihhKXtpZihhLmVsZW0uc3R5bGUmJmEuZWxlbS5zdHls ZVthLnByb3BdIT0KbnVsbClhLmVsZW0uc3R5bGVbYS5wcm9wXT0oYS5wcm9wPT09 IndpZHRoInx8YS5wcm9wPT09ImhlaWdodCI/TWF0aC5tYXgoMCxhLm5vdyk6YS5u b3cpK2EudW5pdDtlbHNlIGEuZWxlbVthLnByb3BdPWEubm93fX19KTtpZihjLmV4 cHImJmMuZXhwci5maWx0ZXJzKWMuZXhwci5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0 aW9uKGEpe3JldHVybiBjLmdyZXAoYy50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJu IGE9PT1iLmVsZW19KS5sZW5ndGh9O2MuZm4ub2Zmc2V0PSJnZXRCb3VuZGluZ0Ns aWVudFJlY3QiaW4gci5kb2N1bWVudEVsZW1lbnQ/ZnVuY3Rpb24oYSl7dmFyIGI9 dGhpc1swXTtpZihhKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7Yy5vZmZz ZXQuc2V0T2Zmc2V0KHRoaXMsYSxlKX0pO2lmKCFifHwhYi5vd25lckRvY3VtZW50 KXJldHVybiBudWxsO2lmKGI9PT1iLm93bmVyRG9jdW1lbnQuYm9keSlyZXR1cm4g Yy5vZmZzZXQuYm9keU9mZnNldChiKTt2YXIgZD1iLmdldEJvdW5kaW5nQ2xpZW50 UmVjdCgpLApmPWIub3duZXJEb2N1bWVudDtiPWYuYm9keTtmPWYuZG9jdW1lbnRF bGVtZW50O3JldHVybnt0b3A6ZC50b3ArKHNlbGYucGFnZVlPZmZzZXR8fGMuc3Vw cG9ydC5ib3hNb2RlbCYmZi5zY3JvbGxUb3B8fGIuc2Nyb2xsVG9wKS0oZi5jbGll bnRUb3B8fGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoc2VsZi5wYWdlWE9m ZnNldHx8Yy5zdXBwb3J0LmJveE1vZGVsJiZmLnNjcm9sbExlZnR8fGIuc2Nyb2xs TGVmdCktKGYuY2xpZW50TGVmdHx8Yi5jbGllbnRMZWZ0fHwwKX19OmZ1bmN0aW9u KGEpe3ZhciBiPXRoaXNbMF07aWYoYSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9u KHMpe2Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEscyl9KTtpZighYnx8IWIub3du ZXJEb2N1bWVudClyZXR1cm4gbnVsbDtpZihiPT09Yi5vd25lckRvY3VtZW50LmJv ZHkpcmV0dXJuIGMub2Zmc2V0LmJvZHlPZmZzZXQoYik7Yy5vZmZzZXQuaW5pdGlh bGl6ZSgpO3ZhciBkPWIub2Zmc2V0UGFyZW50LGY9CmIsZT1iLm93bmVyRG9jdW1l bnQsaSxqPWUuZG9jdW1lbnRFbGVtZW50LG49ZS5ib2R5O2Y9KGU9ZS5kZWZhdWx0 Vmlldyk/ZS5nZXRDb21wdXRlZFN0eWxlKGIsbnVsbCk6Yi5jdXJyZW50U3R5bGU7 Zm9yKHZhciBvPWIub2Zmc2V0VG9wLG09Yi5vZmZzZXRMZWZ0OyhiPWIucGFyZW50 Tm9kZSkmJmIhPT1uJiZiIT09ajspe2lmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQ b3NpdGlvbiYmZi5wb3NpdGlvbj09PSJmaXhlZCIpYnJlYWs7aT1lP2UuZ2V0Q29t cHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlO28tPWIuc2Nyb2xsVG9w O20tPWIuc2Nyb2xsTGVmdDtpZihiPT09ZCl7bys9Yi5vZmZzZXRUb3A7bSs9Yi5v ZmZzZXRMZWZ0O2lmKGMub2Zmc2V0LmRvZXNOb3RBZGRCb3JkZXImJiEoYy5vZmZz ZXQuZG9lc0FkZEJvcmRlckZvclRhYmxlQW5kQ2VsbHMmJi9edChhYmxlfGR8aCkk L2kudGVzdChiLm5vZGVOYW1lKSkpe28rPXBhcnNlRmxvYXQoaS5ib3JkZXJUb3BX aWR0aCl8fAowO20rPXBhcnNlRmxvYXQoaS5ib3JkZXJMZWZ0V2lkdGgpfHwwfWY9 ZDtkPWIub2Zmc2V0UGFyZW50fWlmKGMub2Zmc2V0LnN1YnRyYWN0c0JvcmRlckZv ck92ZXJmbG93Tm90VmlzaWJsZSYmaS5vdmVyZmxvdyE9PSJ2aXNpYmxlIil7bys9 cGFyc2VGbG9hdChpLmJvcmRlclRvcFdpZHRoKXx8MDttKz1wYXJzZUZsb2F0KGku Ym9yZGVyTGVmdFdpZHRoKXx8MH1mPWl9aWYoZi5wb3NpdGlvbj09PSJyZWxhdGl2 ZSJ8fGYucG9zaXRpb249PT0ic3RhdGljIil7bys9bi5vZmZzZXRUb3A7bSs9bi5v ZmZzZXRMZWZ0fWlmKGMub2Zmc2V0LnN1cHBvcnRzRml4ZWRQb3NpdGlvbiYmZi5w b3NpdGlvbj09PSJmaXhlZCIpe28rPU1hdGgubWF4KGouc2Nyb2xsVG9wLG4uc2Ny b2xsVG9wKTttKz1NYXRoLm1heChqLnNjcm9sbExlZnQsbi5zY3JvbGxMZWZ0KX1y ZXR1cm57dG9wOm8sbGVmdDptfX07Yy5vZmZzZXQ9e2luaXRpYWxpemU6ZnVuY3Rp b24oKXt2YXIgYT1yLmJvZHksYj1yLmNyZWF0ZUVsZW1lbnQoImRpdiIpLApkLGYs ZSxpPXBhcnNlRmxvYXQoYy5jdXJDU1MoYSwibWFyZ2luVG9wIix0cnVlKSl8fDA7 Yy5leHRlbmQoYi5zdHlsZSx7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0 OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZp c2liaWxpdHk6ImhpZGRlbiJ9KTtiLmlubmVySFRNTD0iPGRpdiBzdHlsZT0ncG9z aXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHgg c29saWQgIzAwMDtwYWRkaW5nOjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7Jz48ZGl2 PjwvZGl2PjwvZGl2Pjx0YWJsZSBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7dG9w OjA7bGVmdDowO21hcmdpbjowO2JvcmRlcjo1cHggc29saWQgIzAwMDtwYWRkaW5n OjA7d2lkdGg6MXB4O2hlaWdodDoxcHg7JyBjZWxscGFkZGluZz0nMCcgY2VsbHNw YWNpbmc9JzAnPjx0cj48dGQ+PC90ZD48L3RyPjwvdGFibGU+IjthLmluc2VydEJl Zm9yZShiLGEuZmlyc3RDaGlsZCk7CmQ9Yi5maXJzdENoaWxkO2Y9ZC5maXJzdENo aWxkO2U9ZC5uZXh0U2libGluZy5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7dGhpcy5k b2VzTm90QWRkQm9yZGVyPWYub2Zmc2V0VG9wIT09NTt0aGlzLmRvZXNBZGRCb3Jk ZXJGb3JUYWJsZUFuZENlbGxzPWUub2Zmc2V0VG9wPT09NTtmLnN0eWxlLnBvc2l0 aW9uPSJmaXhlZCI7Zi5zdHlsZS50b3A9IjIwcHgiO3RoaXMuc3VwcG9ydHNGaXhl ZFBvc2l0aW9uPWYub2Zmc2V0VG9wPT09MjB8fGYub2Zmc2V0VG9wPT09MTU7Zi5z dHlsZS5wb3NpdGlvbj1mLnN0eWxlLnRvcD0iIjtkLnN0eWxlLm92ZXJmbG93PSJo aWRkZW4iO2Quc3R5bGUucG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0 c0JvcmRlckZvck92ZXJmbG93Tm90VmlzaWJsZT1mLm9mZnNldFRvcD09PS01O3Ro aXMuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQ9YS5vZmZzZXRUb3Ah PT1pO2EucmVtb3ZlQ2hpbGQoYik7Yy5vZmZzZXQuaW5pdGlhbGl6ZT1jLm5vb3B9 LApib2R5T2Zmc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0VG9wLGQ9YS5v ZmZzZXRMZWZ0O2Mub2Zmc2V0LmluaXRpYWxpemUoKTtpZihjLm9mZnNldC5kb2Vz Tm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Yis9cGFyc2VGbG9hdChjLmN1 ckNTUyhhLCJtYXJnaW5Ub3AiLHRydWUpKXx8MDtkKz1wYXJzZUZsb2F0KGMuY3Vy Q1NTKGEsIm1hcmdpbkxlZnQiLHRydWUpKXx8MH1yZXR1cm57dG9wOmIsbGVmdDpk fX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixkKXtpZigvc3RhdGljLy50ZXN0KGMu Y3VyQ1NTKGEsInBvc2l0aW9uIikpKWEuc3R5bGUucG9zaXRpb249InJlbGF0aXZl Ijt2YXIgZj1jKGEpLGU9Zi5vZmZzZXQoKSxpPXBhcnNlSW50KGMuY3VyQ1NTKGEs InRvcCIsdHJ1ZSksMTApfHwwLGo9cGFyc2VJbnQoYy5jdXJDU1MoYSwibGVmdCIs dHJ1ZSksMTApfHwwO2lmKGMuaXNGdW5jdGlvbihiKSliPWIuY2FsbChhLGQsZSk7 ZD17dG9wOmIudG9wLWUudG9wK2ksbGVmdDpiLmxlZnQtCmUubGVmdCtqfTsidXNp bmciaW4gYj9iLnVzaW5nLmNhbGwoYSxkKTpmLmNzcyhkKX19O2MuZm4uZXh0ZW5k KHtwb3NpdGlvbjpmdW5jdGlvbigpe2lmKCF0aGlzWzBdKXJldHVybiBudWxsO3Zh ciBhPXRoaXNbMF0sYj10aGlzLm9mZnNldFBhcmVudCgpLGQ9dGhpcy5vZmZzZXQo KSxmPS9eYm9keXxodG1sJC9pLnRlc3QoYlswXS5ub2RlTmFtZSk/e3RvcDowLGxl ZnQ6MH06Yi5vZmZzZXQoKTtkLnRvcC09cGFyc2VGbG9hdChjLmN1ckNTUyhhLCJt YXJnaW5Ub3AiLHRydWUpKXx8MDtkLmxlZnQtPXBhcnNlRmxvYXQoYy5jdXJDU1Mo YSwibWFyZ2luTGVmdCIsdHJ1ZSkpfHwwO2YudG9wKz1wYXJzZUZsb2F0KGMuY3Vy Q1NTKGJbMF0sImJvcmRlclRvcFdpZHRoIix0cnVlKSl8fDA7Zi5sZWZ0Kz1wYXJz ZUZsb2F0KGMuY3VyQ1NTKGJbMF0sImJvcmRlckxlZnRXaWR0aCIsdHJ1ZSkpfHww O3JldHVybnt0b3A6ZC50b3AtZi50b3AsbGVmdDpkLmxlZnQtZi5sZWZ0fX0sb2Zm c2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7 Zm9yKHZhciBhPQp0aGlzLm9mZnNldFBhcmVudHx8ci5ib2R5O2EmJiEvXmJvZHl8 aHRtbCQvaS50ZXN0KGEubm9kZU5hbWUpJiZjLmNzcyhhLCJwb3NpdGlvbiIpPT09 InN0YXRpYyI7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF9KX19KTtjLmVhY2go WyJMZWZ0IiwiVG9wIl0sZnVuY3Rpb24oYSxiKXt2YXIgZD0ic2Nyb2xsIitiO2Mu Zm5bZF09ZnVuY3Rpb24oZil7dmFyIGU9dGhpc1swXSxpO2lmKCFlKXJldHVybiBu dWxsO2lmKGYhPT12KXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihpPXVh KHRoaXMpKWkuc2Nyb2xsVG8oIWE/ZjpjKGkpLnNjcm9sbExlZnQoKSxhP2Y6Yyhp KS5zY3JvbGxUb3AoKSk7ZWxzZSB0aGlzW2RdPWZ9KTtlbHNlIHJldHVybihpPXVh KGUpKT8icGFnZVhPZmZzZXQiaW4gaT9pW2E/InBhZ2VZT2Zmc2V0IjoicGFnZVhP ZmZzZXQiXTpjLnN1cHBvcnQuYm94TW9kZWwmJmkuZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50W2RdfHxpLmRvY3VtZW50LmJvZHlbZF06ZVtkXX19KTsKYy5lYWNoKFsi SGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihhLGIpe3ZhciBkPWIudG9Mb3dlckNh c2UoKTtjLmZuWyJpbm5lciIrYl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1swXT9j LmNzcyh0aGlzWzBdLGQsZmFsc2UsInBhZGRpbmciKTpudWxsfTtjLmZuWyJvdXRl ciIrYl09ZnVuY3Rpb24oZil7cmV0dXJuIHRoaXNbMF0/Yy5jc3ModGhpc1swXSxk LGZhbHNlLGY/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O2MuZm5bZF09ZnVuY3Rp b24oZil7dmFyIGU9dGhpc1swXTtpZighZSlyZXR1cm4gZj09bnVsbD9udWxsOnRo aXM7aWYoYy5pc0Z1bmN0aW9uKGYpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24o aSl7dmFyIGo9Yyh0aGlzKTtqW2RdKGYuY2FsbCh0aGlzLGksaltkXSgpKSl9KTty ZXR1cm4ic2Nyb2xsVG8iaW4gZSYmZS5kb2N1bWVudD9lLmRvY3VtZW50LmNvbXBh dE1vZGU9PT0iQ1NTMUNvbXBhdCImJmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50 WyJjbGllbnQiK2JdfHwKZS5kb2N1bWVudC5ib2R5WyJjbGllbnQiK2JdOmUubm9k ZVR5cGU9PT05P01hdGgubWF4KGUuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2Jd LGUuYm9keVsic2Nyb2xsIitiXSxlLmRvY3VtZW50RWxlbWVudFsic2Nyb2xsIiti XSxlLmJvZHlbIm9mZnNldCIrYl0sZS5kb2N1bWVudEVsZW1lbnRbIm9mZnNldCIr Yl0pOmY9PT12P2MuY3NzKGUsZCk6dGhpcy5jc3MoZCx0eXBlb2YgZj09PSJzdHJp bmciP2Y6ZisicHgiKX19KTt6LmpRdWVyeT16LiQ9Y30pKHdpbmRvdyk7Cg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=jquery.cookie.js Content-Type: application/x-javascript; name=jquery.cookie.js Content-Location: http://static.guim.co.uk/static/86669/common/external-scripts/jquery-libraries/jquery.cookie.js Content-Transfer-Encoding: Base64 LyoqCiAqIENvb2tpZSBwbHVnaW4KICoKICogQ29weXJpZ2h0IChjKSAyMDA2IEts YXVzIEhhcnRsIChzdGlsYnVlcm8uZGUpCiAqIER1YWwgbGljZW5zZWQgdW5kZXIg dGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiBodHRwOi8vd3d3Lm9wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocAogKiBodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwKICoKICovCgovKioKICogQ3JlYXRlIGEg Y29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgYW5kIHZhbHVlIGFuZCBvdGhlciBv cHRpb25hbCBwYXJhbWV0ZXJzLgogKgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhl X2Nvb2tpZScsICd0aGVfdmFsdWUnKTsKICogQGRlc2MgU2V0IHRoZSB2YWx1ZSBv ZiBhIGNvb2tpZS4KICogQGV4YW1wbGUgJC5jb29raWUoJ3RoZV9jb29raWUnLCAn dGhlX3ZhbHVlJywgeyBleHBpcmVzOiA3LCBwYXRoOiAnLycsIGRvbWFpbjogJ2px dWVyeS5jb20nLCBzZWN1cmU6IHRydWUgfSk7CiAqIEBkZXNjIENyZWF0ZSBhIGNv b2tpZSB3aXRoIGFsbCBhdmFpbGFibGUgb3B0aW9ucy4KICogQGV4YW1wbGUgJC5j b29raWUoJ3RoZV9jb29raWUnLCAndGhlX3ZhbHVlJyk7CiAqIEBkZXNjIENyZWF0 ZSBhIHNlc3Npb24gY29va2llLgogKiBAZXhhbXBsZSAkLmNvb2tpZSgndGhlX2Nv b2tpZScsIG51bGwpOwogKiBAZGVzYyBEZWxldGUgYSBjb29raWUgYnkgcGFzc2lu ZyBudWxsIGFzIHZhbHVlLiBLZWVwIGluIG1pbmQgdGhhdCB5b3UgaGF2ZSB0byB1 c2UgdGhlIHNhbWUgcGF0aCBhbmQgZG9tYWluCiAqICAgICAgIHVzZWQgd2hlbiB0 aGUgY29va2llIHdhcyBzZXQuCiAqCiAqIEBwYXJhbSBTdHJpbmcgbmFtZSBUaGUg bmFtZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gU3RyaW5nIHZhbHVlIFRoZSB2 YWx1ZSBvZiB0aGUgY29va2llLgogKiBAcGFyYW0gT2JqZWN0IG9wdGlvbnMgQW4g b2JqZWN0IGxpdGVyYWwgY29udGFpbmluZyBrZXkvdmFsdWUgcGFpcnMgdG8gcHJv dmlkZSBvcHRpb25hbCBjb29raWUgYXR0cmlidXRlcy4KICogQG9wdGlvbiBOdW1i ZXJ8RGF0ZSBleHBpcmVzIEVpdGhlciBhbiBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhl IGV4cGlyYXRpb24gZGF0ZSBmcm9tIG5vdyBvbiBpbiBkYXlzIG9yIGEgRGF0ZSBv YmplY3QuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBhIG5lZ2F0 aXZlIHZhbHVlIGlzIHNwZWNpZmllZCAoZS5nLiBhIGRhdGUgaW4gdGhlIHBhc3Qp LCB0aGUgY29va2llIHdpbGwgYmUgZGVsZXRlZC4KICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElmIHNldCB0byBudWxsIG9yIG9taXR0ZWQsIHRoZSBjb29r aWUgd2lsbCBiZSBhIHNlc3Npb24gY29va2llIGFuZCB3aWxsIG5vdCBiZSByZXRh aW5lZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgdGhl IGJyb3dzZXIgZXhpdHMuCiAqIEBvcHRpb24gU3RyaW5nIHBhdGggVGhlIHZhbHVl IG9mIHRoZSBwYXRoIGF0cmlidXRlIG9mIHRoZSBjb29raWUgKGRlZmF1bHQ6IHBh dGggb2YgcGFnZSB0aGF0IGNyZWF0ZWQgdGhlIGNvb2tpZSkuCiAqIEBvcHRpb24g U3RyaW5nIGRvbWFpbiBUaGUgdmFsdWUgb2YgdGhlIGRvbWFpbiBhdHRyaWJ1dGUg b2YgdGhlIGNvb2tpZSAoZGVmYXVsdDogZG9tYWluIG9mIHBhZ2UgdGhhdCBjcmVh dGVkIHRoZSBjb29raWUpLgogKiBAb3B0aW9uIEJvb2xlYW4gc2VjdXJlIElmIHRy dWUsIHRoZSBzZWN1cmUgYXR0cmlidXRlIG9mIHRoZSBjb29raWUgd2lsbCBiZSBz ZXQgYW5kIHRoZSBjb29raWUgdHJhbnNtaXNzaW9uIHdpbGwKICogICAgICAgICAg ICAgICAgICAgICAgICByZXF1aXJlIGEgc2VjdXJlIHByb3RvY29sIChsaWtlIEhU VFBTKS4KICogQHR5cGUgdW5kZWZpbmVkCiAqCiAqIEBuYW1lICQuY29va2llCiAq IEBjYXQgUGx1Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1 cy5oYXJ0bEBzdGlsYnVlcm8uZGUKICovCgovKioKICogR2V0IHRoZSB2YWx1ZSBv ZiBhIGNvb2tpZSB3aXRoIHRoZSBnaXZlbiBuYW1lLgogKgogKiBAZXhhbXBsZSAk LmNvb2tpZSgndGhlX2Nvb2tpZScpOwogKiBAZGVzYyBHZXQgdGhlIHZhbHVlIG9m IGEgY29va2llLgogKgogKiBAcGFyYW0gU3RyaW5nIG5hbWUgVGhlIG5hbWUgb2Yg dGhlIGNvb2tpZS4KICogQHJldHVybiBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZS4K ICogQHR5cGUgU3RyaW5nCiAqCiAqIEBuYW1lICQuY29va2llCiAqIEBjYXQgUGx1 Z2lucy9Db29raWUKICogQGF1dGhvciBLbGF1cyBIYXJ0bC9rbGF1cy5oYXJ0bEBz dGlsYnVlcm8uZGUKICovCmpRdWVyeS5jb29raWUgPSBmdW5jdGlvbihuYW1lLCB2 YWx1ZSwgb3B0aW9ucykgewogICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAndW5kZWZp bmVkJykgeyAvLyBuYW1lIGFuZCB2YWx1ZSBnaXZlbiwgc2V0IGNvb2tpZQogICAg ICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGlmICh2YWx1ZSA9 PT0gbnVsbCkgewogICAgICAgICAgICB2YWx1ZSA9ICcnOwogICAgICAgICAgICBv cHRpb25zLmV4cGlyZXMgPSAtMTsKICAgICAgICB9CiAgICAgICAgdmFyIGV4cGly ZXMgPSAnJzsKICAgICAgICBpZiAob3B0aW9ucy5leHBpcmVzICYmICh0eXBlb2Yg b3B0aW9ucy5leHBpcmVzID09ICdudW1iZXInIHx8IG9wdGlvbnMuZXhwaXJlcy50 b1VUQ1N0cmluZykpIHsKICAgICAgICAgICAgdmFyIGRhdGU7CiAgICAgICAgICAg IGlmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVzID09ICdudW1iZXInKSB7CiAgICAg ICAgICAgICAgICBkYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgIGRh dGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChvcHRpb25zLmV4cGlyZXMgKiAy NCAqIDYwICogNjAgKiAxMDAwKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg ICAgICAgICAgICBkYXRlID0gb3B0aW9ucy5leHBpcmVzOwogICAgICAgICAgICB9 CiAgICAgICAgICAgIGV4cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRD U3RyaW5nKCk7IC8vIHVzZSBleHBpcmVzIGF0dHJpYnV0ZSwgbWF4LWFnZSBpcyBu b3Qgc3VwcG9ydGVkIGJ5IElFCiAgICAgICAgfQogICAgICAgIC8vIENBVVRJT046 IE5lZWRlZCB0byBwYXJlbnRoZXNpemUgb3B0aW9ucy5wYXRoIGFuZCBvcHRpb25z LmRvbWFpbgogICAgICAgIC8vIGluIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbnMs IG90aGVyd2lzZSB0aGV5IGV2YWx1YXRlIHRvIHVuZGVmaW5lZAogICAgICAgIC8v IGluIHRoZSBwYWNrZWQgdmVyc2lvbiBmb3Igc29tZSByZWFzb24uLi4KICAgICAg ICB2YXIgcGF0aCA9IG9wdGlvbnMucGF0aCA/ICc7IHBhdGg9JyArIChvcHRpb25z LnBhdGgpIDogJyc7CiAgICAgICAgdmFyIGRvbWFpbiA9IG9wdGlvbnMuZG9tYWlu ID8gJzsgZG9tYWluPScgKyAob3B0aW9ucy5kb21haW4pIDogJyc7CiAgICAgICAg dmFyIHNlY3VyZSA9IG9wdGlvbnMuc2VjdXJlID8gJzsgc2VjdXJlJyA6ICcnOwog ICAgICAgIGRvY3VtZW50LmNvb2tpZSA9IFtuYW1lLCAnPScsIGVuY29kZVVSSUNv bXBvbmVudCh2YWx1ZSksIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlXS5q b2luKCcnKTsKICAgIH0gZWxzZSB7IC8vIG9ubHkgbmFtZSBnaXZlbiwgZ2V0IGNv b2tpZQogICAgICAgIHZhciBjb29raWVWYWx1ZSA9IG51bGw7CiAgICAgICAgaWYg KGRvY3VtZW50LmNvb2tpZSAmJiBkb2N1bWVudC5jb29raWUgIT0gJycpIHsKICAg ICAgICAgICAgdmFyIGNvb2tpZXMgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsn KTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0 aDsgaSsrKSB7CiAgICAgICAgICAgICAgICB2YXIgY29va2llID0galF1ZXJ5LnRy aW0oY29va2llc1tpXSk7CiAgICAgICAgICAgICAgICAvLyBEb2VzIHRoaXMgY29v a2llIHN0cmluZyBiZWdpbiB3aXRoIHRoZSBuYW1lIHdlIHdhbnQ/CiAgICAgICAg ICAgICAgICBpZiAoY29va2llLnN1YnN0cmluZygwLCBuYW1lLmxlbmd0aCArIDEp ID09IChuYW1lICsgJz0nKSkgewogICAgICAgICAgICAgICAgICAgIGNvb2tpZVZh bHVlID0gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZS5zdWJzdHJpbmcobmFtZS5s ZW5ndGggKyAxKSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJu IGNvb2tpZVZhbHVlOwogICAgfQp9Owo= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=gu.js Content-Type: application/x-javascript; name=gu.js Content-Location: http://static.guim.co.uk/static/86669/common/scripts/gu.js Content-Transfer-Encoding: Base64 ZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4ucjIiKTtlbnN1cmVQYWNrYWdlKCJndWFy ZGlhbi5yMiIpO2d1YXJkaWFuLnIyLmJyb3dzZXI9e2lzV2ViS2l0Om5hdmlnYXRv ci51c2VyQWdlbnQuaW5kZXhPZigiQXBwbGVXZWJLaXQvIik+LTF9OwovKkBjY19v bgoJQGlmIChAX2pzY3JpcHRfdmVyc2lvbiA9PSA1LjcpCgkJaWYod2luZG93LlhN TEh0dHBSZXF1ZXN0KSB7CgkJCWd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTcgPSB0 cnVlOwoJCX0gZWxzZSB7CgkJZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lFNiA9IHRy dWU7CgkJfTsKCUBlbGlmIChAX2pzY3JpcHRfdmVyc2lvbiA9PSA1LjYpCgkJZ3Vh cmRpYW4ucjIuYnJvd3Nlci5pc0lFNiA9IHRydWU7CglAZWxpZiAoQF9qc2NyaXB0 X3ZlcnNpb24gPT0gNS44KQoJCWd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTggPSB0 cnVlOwoJQGVuZApAKi8KZnVuY3Rpb24gYWRkRXZlbnQob2JqLGV2ZW50VHlwZSxm bil7aWYodHlwZW9mIG9iaj09PSJzdHJpbmciKXtvYmo9ZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQob2JqKX1pZihldmVudFR5cGU9PT0ibG9hZCIpe2xvYWRFdmVudExp c3QuYWRkTG9hZEV2ZW50KGZuKTtyZXR1cm4gdHJ1ZX1pZighb2JqKXtyZXR1cm4g bnVsbH1pZihvYmouYWRkRXZlbnRMaXN0ZW5lcil7b2JqLmFkZEV2ZW50TGlzdGVu ZXIoZXZlbnRUeXBlLGZuLGZhbHNlKTtyZXR1cm4gdHJ1ZX1lbHNle2lmKG9iai5h dHRhY2hFdmVudCl7dmFyIHI9b2JqLmF0dGFjaEV2ZW50KCJvbiIrZXZlbnRUeXBl LGZuKTtyZXR1cm4gcn1lbHNle3JldHVybiBmYWxzZX19fXZhciBsb2FkRXZlbnRM aXN0PVtdO2xvYWRFdmVudExpc3QuYWRkTG9hZEV2ZW50PWZ1bmN0aW9uKGZuKXtp Zihsb2FkRXZlbnRMaXN0Lmhhc0ZpcmVkKXtmbigpfWVsc2V7bG9hZEV2ZW50TGlz dFtsb2FkRXZlbnRMaXN0Lmxlbmd0aF09Zm59fTtsb2FkRXZlbnRMaXN0Lmhhc0Zp cmVkPWZhbHNlO2xvYWRFdmVudExpc3QuZmlyZUxvYWRFdmVudHM9ZnVuY3Rpb24o KXtmb3IodmFyIGk9MDsKaTxsb2FkRXZlbnRMaXN0Lmxlbmd0aDtpKyspe2xvYWRF dmVudExpc3RbaV0oKX1sb2FkRXZlbnRMaXN0Lmhhc0ZpcmVkPXRydWV9O2lmKGd1 YXJkaWFuLnIyLmJyb3dzZXIuaXNXZWJLaXQpe3ZhciBfdGltZXI9c2V0SW50ZXJ2 YWwoZnVuY3Rpb24oKXtpZigvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KGRvY3VtZW50 LnJlYWR5U3RhdGUpKXtjbGVhckludGVydmFsKF90aW1lcik7bG9hZEV2ZW50TGlz dC5maXJlTG9hZEV2ZW50cygpfX0sMTAwKX1lbHNle2lmKGRvY3VtZW50LmFkZEV2 ZW50TGlzdGVuZXIpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRl bnRMb2FkZWQiLGxvYWRFdmVudExpc3QuZmlyZUxvYWRFdmVudHMsZmFsc2UpfWVs c2V7Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKICAgICBkb2N1bWVudC53 cml0ZSgiPHNjcmlwdCBpZD0nX19pZV9vbmxvYWQnIGRlZmVyPSdkZWZlcicgc3Jj PScvLzonPjxcL3NjcmlwdD4iKTsKICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoIl9faWVfb25sb2FkIik7CiAgICAgc2NyaXB0Lm9ucmVh ZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJICAgICBpZiAodGhpcy5yZWFk eVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkgICAgIGxvYWRFdmVudExpc3QuZmly ZUxvYWRFdmVudHMoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCSAgICAg fQogICAgIH07CiAgICAgLypAZW5kIEAqLwp9fXZhciBzYWZlTG9hZEV2ZW50TGlz dD1bXTtmdW5jdGlvbiBhZGRTYWZlTG9hZEV2ZW50KGZuKXtpZighKGd1YXJkaWFu LnIyLmJyb3dzZXIuaXNJRTZ8fGd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTcpKXth ZGRFdmVudChkb2N1bWVudCwibG9hZCIsZm4pO3JldHVybiB0cnVlfWVsc2V7c2Fm ZUxvYWRFdmVudExpc3QucHVzaChmbik7cmV0dXJuIHRydWV9fXNhZmVMb2FkRXZl bnRMaXN0Lmhhc0ZpcmVkPWZhbHNlO3NhZmVMb2FkRXZlbnRMaXN0LmZpcmVMb2Fk RXZlbnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7Cmk8c2FmZUxvYWRFdmVudExp c3QubGVuZ3RoO2krKyl7c2FmZUxvYWRFdmVudExpc3RbaV0oKX1zYWZlTG9hZEV2 ZW50TGlzdC5oYXNGaXJlZD10cnVlfTtpZigoZ3VhcmRpYW4ucjIuYnJvd3Nlci5p c0lFNnx8Z3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lFNykpe3dpbmRvdy5hdHRhY2hF dmVudCgib25sb2FkIixzYWZlTG9hZEV2ZW50TGlzdC5maXJlTG9hZEV2ZW50cyl9 ZnVuY3Rpb24gd3JpdGVTY3JpcHQoc3JjLGFzeW5jaHJvbm91cyxjYWxsYmFjayl7 aWYoYXN5bmNocm9ub3VzKXtqUS5hamF4U2V0dXAoe2NhY2hlOnRydWV9KTtqUS5n ZXRTY3JpcHQoc3JjLGNhbGxiYWNrKX1lbHNle2RvY3VtZW50LndyaXRlKCc8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSInK3NyYysnIj48XC9zY3Jp cHQ+Jyk7ZG9jdW1lbnQuY2xvc2UoKX19ZnVuY3Rpb24gYWRkQ2xpY2tMaXN0ZW5l cnNUb01hdGNoaW5nRWxlbWVudHMoaW5FbGVtZW50LGNzc1J1bGUsY2xpY2tMaXN0 ZW5lckNhbGxiYWNrKXt2YXIgZWxlbWVudHNUb0FkZExpc3RlbmVyc1RvPWd1YXJk aWFuLnIyLmRvbS5lbGVtZW50LmdldEVsZW1lbnRzQnlDc3NTZWxlY3Rvcihjc3NS dWxlLGluRWxlbWVudCk7Zm9yKHZhciBpPTA7aTxlbGVtZW50c1RvQWRkTGlzdGVu ZXJzVG8ubGVuZ3RoO2krKyl7YWRkRXZlbnQoZWxlbWVudHNUb0FkZExpc3RlbmVy c1RvW2ldLCJjbGljayIsY2xpY2tMaXN0ZW5lckNhbGxiYWNrKX19ZnVuY3Rpb24g Y2xhc3NOYW1lUmVnZXgoY2wpe3JldHVybiBuZXcgUmVnRXhwKCIoIHxeKSIrY2wr IiggfCQpIil9ZnVuY3Rpb24gcmVtb3ZlQ2xhc3NOYW1lKGVsLGNsYXNzTmFtZSl7 ZWwuY2xhc3NOYW1lPWVsLmNsYXNzTmFtZS5yZXBsYWNlKGNsYXNzTmFtZVJlZ2V4 KGNsYXNzTmFtZSksIiAiKS5yZXBsYWNlKC8oXlxzKnxccyokKS9nLCIiKX1mdW5j dGlvbiBvcGVuR2FsbGVyeVBvcHVwKHVybCxoZWlnaHQpe3ZhciBnYWxsZXJ5V2lk dGg9ODk1O3ZhciBsZWZ0UG9zPWNhbGN1bGF0ZVhGb3JDZW50cmVkUG9wdXAoZ2Fs bGVyeVdpZHRoKTsKdmFyIG5ld1dpbmRvdz13aW5kb3cub3Blbih1cmwsIl9ibGFu ayIsInJlc2l6YWJsZT15ZXMsc2Nyb2xsYmFycz15ZXMsbG9jYXRpb249eWVzLHRv b2xiYXI9eWVzLHN0YXR1cz1ubyx0b3A9MCxzY3JlZW5ZPTAsbGVmdD0iK2xlZnRQ b3MrIixzY3JlZW5YPSIrbGVmdFBvcysiLGhlaWdodD0iK2hlaWdodCsiLHdpZHRo PSIrZ2FsbGVyeVdpZHRoKTtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gY2FsY3VsYXRl WEZvckNlbnRyZWRQb3B1cChwb3B1cFdpZHRoKXt2YXIgbGVmdFBvcz0wO2lmKHNj cmVlbi5hdmFpbFdpZHRoPnBvcHVwV2lkdGgpe2xlZnRQb3M9TWF0aC5yb3VuZCgo c2NyZWVuLmF2YWlsV2lkdGgtcG9wdXBXaWR0aCkvMil9cmV0dXJuIGxlZnRQb3N9 ZnVuY3Rpb24gb3BlblNjb3JlUG9wdXAodXJsKXtpZihndWFyZGlhbi5yMi5icm93 c2VyLmlzSUU2fHxndWFyZGlhbi5yMi5icm93c2VyLmlzSUU3KXt2YXIgaGVpZ2h0 PTQwNTt2YXIgd2lkdGg9NzY3fWVsc2V7dmFyIGhlaWdodD00MDA7dmFyIHdpZHRo PTc0N312YXIgbGVmdFBvcz0wO3dpbmRvdy5vcGVuKHVybCwiX2JsYW5rIiwicmVz aXphYmxlPXllcyxzY3JvbGxiYXJzPXllcyxsb2NhdGlvbj1ubyx0b29sYmFyPW5v LHN0YXR1cz1ubyx0b3A9MCxzY3JlZW5ZPTAsbGVmdD0iK2xlZnRQb3MrIixzY3Jl ZW5YPSIrbGVmdFBvcysiLGhlaWdodD0iK2hlaWdodCsiLHdpZHRoPSIrd2lkdGgp O3JldHVybiBmYWxzZX1mdW5jdGlvbiBwb3BVcE5ld1dpbmRvdyh1cmwsd2lkdGgs aGVpZ2h0KXtuZXd3aW5kb3c9d2luZG93Lm9wZW4odXJsLCJzcG9uc29yIiwiaGVp Z2h0PSIraGVpZ2h0KyIsd2lkdGg9Iit3aWR0aCsiLHNjcm9sbGJhcnM9eWVzLGxv Y2F0aW9uPXllcyx0b29sYmFyPXllcyxzdGF0dXM9eWVzLHJlc2l6YWJsZT15ZXMi KTtpZih3aW5kb3cuZm9jdXMpe25ld3dpbmRvdy5mb2N1cygpfXJldHVybiBmYWxz ZX1mdW5jdGlvbiBHVW9wZW5QYXJlbnQodGFyZ2V0KXtpZih3aW5kb3cub3BlbmVy KXt3aW5kb3cub3BlbmVyLmxvY2F0aW9uPXRhcmdldAp9ZWxzZXtsb2NhdGlvbj10 YXJnZXR9fWZ1bmN0aW9uIHJlYWRDb29raWUobmFtZSl7dmFyIG5hbWVFUT1uYW1l KyI9Ijt2YXIgY29va2llQXJyYXk9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7 Zm9yKHZhciBpPTA7aTxjb29raWVBcnJheS5sZW5ndGg7aSsrKXt2YXIgY29va2ll PWNvb2tpZUFycmF5W2ldO3doaWxlKGNvb2tpZS5jaGFyQXQoMCk9PSIgIil7Y29v a2llPWNvb2tpZS5zdWJzdHJpbmcoMSxjb29raWUubGVuZ3RoKX1pZihjb29raWUu aW5kZXhPZihuYW1lRVEpPT09MCl7cmV0dXJuIGNvb2tpZS5zdWJzdHJpbmcobmFt ZUVRLmxlbmd0aCxjb29raWUubGVuZ3RoKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24g Y3JlYXRlQ29va2llKG5hbWUsdmFsdWUsZGF5cyl7aWYoZGF5cyl7dmFyIGRhdGU9 bmV3IERhdGUoKTtkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkrKGRheXMqMjQq NjAqNjAqMTAwMCkpO3ZhciBleHBpcmVzPSI7IGV4cGlyZXM9IitkYXRlLnRvR01U U3RyaW5nKCl9ZWxzZXt2YXIgZXhwaXJlcz0iIn1kb2N1bWVudC5jb29raWU9bmFt ZSsiPSIrdmFsdWUrZXhwaXJlcysiOyBwYXRoPS8ifWZ1bmN0aW9uIGlzVXNlckxv Z2dlZEludG9SZWdQc3MoKXtyZXR1cm4gcmVhZENvb2tpZSgiR1VfTUUiKSE9bnVs bH1mdW5jdGlvbiBnZXRTY3JvbGxQb3NpdGlvbigpe3ZhciBzY3JvbGxYLHNjcm9s bFk7aWYoc2VsZi5wYWdlWU9mZnNldCl7c2Nyb2xsWD1zZWxmLnBhZ2VYT2Zmc2V0 O3Njcm9sbFk9c2VsZi5wYWdlWU9mZnNldH1lbHNle2lmKGRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCl7 c2Nyb2xsWD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdDtzY3Jv bGxZPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9ZWxzZXtpZihk b2N1bWVudC5ib2R5KXtzY3JvbGxYPWRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDtz Y3JvbGxZPWRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wCn19fXJldHVybnt4OnNjcm9s bFgseTpzY3JvbGxZfX1mdW5jdGlvbiBnZXRDZW50ZXJQb3NpdGlvbigpe3ZhciBj ZW50ZXJYLGNlbnRlclk7aWYoc2VsZi5pbm5lckhlaWdodCl7Y2VudGVyWD1zZWxm LmlubmVyV2lkdGg7Y2VudGVyWT1zZWxmLmlubmVySGVpZ2h0fWVsc2V7aWYoZG9j dW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQu Y2xpZW50SGVpZ2h0KXtjZW50ZXJYPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5j bGllbnRXaWR0aDtjZW50ZXJZPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGll bnRIZWlnaHR9ZWxzZXtpZihkb2N1bWVudC5ib2R5KXtjZW50ZXJYPWRvY3VtZW50 LmJvZHkuY2xpZW50V2lkdGg7Y2VudGVyWT1kb2N1bWVudC5ib2R5LmNsaWVudEhl aWdodH19fXJldHVybnt4OmNlbnRlclgseTpjZW50ZXJZfX1mdW5jdGlvbiBnZXRT Y3JvbGxBbmRDZW50ZXJQb3NpdGlvbigpe3ZhciBzY3JvbGw9Z2V0U2Nyb2xsUG9z aXRpb24oKTt2YXIgY2VudGVyPWdldENlbnRlclBvc2l0aW9uKCk7cmV0dXJue3Nj cm9sbFg6c2Nyb2xsLngsc2Nyb2xsWTpzY3JvbGwueSxjZW50ZXJYOmNlbnRlci54 LGNlbnRlclk6Y2VudGVyLnl9fWZ1bmN0aW9uIGdldEFuY2VzdG9yT2ZUeXBlKG9i amVjdCx0YWdUeXBlKXtpZighb2JqZWN0LnRhZ05hbWUpe3JldHVybiBudWxsfWVs c2V7cmV0dXJuKG9iamVjdC50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT10YWdUeXBl KT9vYmplY3Q6Z2V0QW5jZXN0b3JPZlR5cGUob2JqZWN0LnBhcmVudE5vZGUsdGFn VHlwZSl9fWZ1bmN0aW9uIGFycmF5SW5kZXhPZihhcnJheSx2YWx1ZSl7Zm9yKHZh ciBpPTA7aTxhcnJheS5sZW5ndGg7aSsrKXtpZihhcnJheVtpXT09PXZhbHVlKXty ZXR1cm4gaX19cmV0dXJuIC0xfWZ1bmN0aW9uIGlzQXJyYXkodmFsdWUpe3JldHVy biB2YWx1ZSYmdHlwZW9mIHZhbHVlPT09Im9iamVjdCImJnR5cGVvZiB2YWx1ZS5s ZW5ndGg9PT0ibnVtYmVyIiYmdHlwZW9mIHZhbHVlLnNwbGljZT09PSJmdW5jdGlv biImJiEodmFsdWUucHJvcGVydHlJc0VudW1lcmFibGUoImxlbmd0aCIpKQp9ZnVu Y3Rpb24gYXJyYXlDb250YWlucyh0aGVBcnJheSx0aGVWYWx1ZSl7Zm9yKHZhciBp PTA7aTx0aGVBcnJheS5sZW5ndGg7aSsrKXtpZih0aGVBcnJheVtpXT09PXRoZVZh bHVlKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGZvckVhY2hF bGVtZW50T2YobGlzdCxkb1RoaXMpe3ZhciBsaXN0TGVuZ3RoPWxpc3QubGVuZ3Ro O2Zvcih2YXIgaT0wO2k8bGlzdExlbmd0aDtpKyspe2RvVGhpcyhsaXN0W2ldLGkp fX1mdW5jdGlvbiB0b2dnbGVIaWRlT25Qb3B1cEVsZW1lbnRzKHZpc2liaWxpdHkp e3ZhciBlbGVtZW50c1RvQmVIaWRkZW49alEoIi5oaWRlLW9uLXBvcHVwIik7ZWxl bWVudHNUb0JlSGlkZGVuLmNzcyh7dmlzaWJpbGl0eTp2aXNpYmlsaXR5fSl9dmFy IGFwcGx5SW1hZ2VNYXNrSW1tZWRpYXRlO3ZhciBhcHBseUZ1bGxTY3JlZW5JbWFn ZU1hc2s7dmFyIHJlbW92ZUZ1bGxTY3JlZW5JbWFnZU1hc2s7dmFyIGVuc3VyZUVs ZW1lbnRIYXNMYXlvdXRJbklFNjsoZnVuY3Rpb24oKXt2YXIgcm9vdD1jb21tb25T dGF0aWNSb290KyJzdHlsZXMvd2lkZS9pbWFnZXMvIjtmdW5jdGlvbiBnZXRNYXNr RGVmKG1hc2tOYW1lLHdpZHRoLGhlaWdodCl7dmFyIGxvd2VyQ2FzZU1hc2tOYW1l PW1hc2tOYW1lLnRvTG93ZXJDYXNlKCk7ZnVuY3Rpb24gZGVmYXVsdE1hc2tEZWYo dXJsKXtyZXR1cm57dXJsOnVybCx3aWR0aDp3aWR0aCxoZWlnaHQ6aGVpZ2h0fX1z d2l0Y2gobG93ZXJDYXNlTWFza05hbWUpe2Nhc2Uicm91bmRlZGNvcm5lcnMiOnN3 aXRjaCh3aWR0aCl7Y2FzZSA0NjA6cmV0dXJuIGRlZmF1bHRNYXNrRGVmKHJvb3Qr IjQ2MHgyNzYtbWFzay5wbmciKTtjYXNlIDMwMDpyZXR1cm4gZGVmYXVsdE1hc2tE ZWYocm9vdCsiMzAweDE4MC1tYXNrLnBuZyIpO2Nhc2UgMTQwOnN3aXRjaChoZWln aHQpe2Nhc2UgODQ6cmV0dXJuIGRlZmF1bHRNYXNrRGVmKHJvb3QrIjE0MHg4NC1t YXNrLnBuZyIpO2Nhc2UgODk6cmV0dXJuIGRlZmF1bHRNYXNrRGVmKHJvb3QrIjE0 MHg4NC1tYXNrLnBuZyIpOwpjYXNlIDE4MDpyZXR1cm4gZGVmYXVsdE1hc2tEZWYo cm9vdCsiMTQweDE4MC1tYXNrLnBuZyIpO2Nhc2UgMTIwOnJldHVybiBkZWZhdWx0 TWFza0RlZihyb290KyIxNDB4MTIwLW1hc2sucG5nIik7Y2FzZSA5NTpyZXR1cm4g ZGVmYXVsdE1hc2tEZWYocm9vdCsiMTQweDk1LW1hc2sucG5nIil9YnJlYWs7Y2Fz ZSAyODA6cmV0dXJuIGRlZmF1bHRNYXNrRGVmKHJvb3QrIjI4MHgxNjgtbWFzay5w bmciKTtjYXNlIDEzMDpzd2l0Y2goaGVpZ2h0KXtjYXNlIDc4OnJldHVybiBkZWZh dWx0TWFza0RlZihyb290KyIxMzB4NzgtbWFzay5wbmciKTtjYXNlIDg4OnJldHVy biBkZWZhdWx0TWFza0RlZihyb290KyIxMzB4ODgtbWFzay5wbmciKTtjYXNlIDEx MTpyZXR1cm4gZGVmYXVsdE1hc2tEZWYocm9vdCsiMTMweDExMS1tYXNrLnBuZyIp fWJyZWFrO2Nhc2UgMjIwOnJldHVybiBkZWZhdWx0TWFza0RlZihyb290KyIyMjB4 MTMyLW1hc2sucG5nIil9YnJlYWs7ZGVmYXVsdDppZih3aWR0aD49MTQwJiZoZWln aHQ+PTg0KXtpZihndWFyZGlhbi5yMi5icm93c2VyLmlzSUU2KXtyZXR1cm57dXJs OnJvb3QrbG93ZXJDYXNlTWFza05hbWUrIl8xNDBpZTYucG5nIix3aWR0aDoxNDAs aGVpZ2h0Ojg0fX1lbHNle3JldHVybnt1cmw6cm9vdCtsb3dlckNhc2VNYXNrTmFt ZSsiXzE0MC5wbmciLHdpZHRoOjE0MCxoZWlnaHQ6ODR9fX19cmV0dXJuIG51bGx9 ZnVuY3Rpb24gY3JlYXRlSUU2QmFja2dyb3VuZERpdihtYXNrRGVmKXt2YXIgbmV3 SW1hZ2VEaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bmV3SW1hZ2VE aXYuc3R5bGUud2lkdGg9bWFza0RlZi53aWR0aCsicHgiO25ld0ltYWdlRGl2LnN0 eWxlLmhlaWdodD1tYXNrRGVmLmhlaWdodCsicHgiO25ld0ltYWdlRGl2LnN0eWxl LmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhh SW1hZ2VMb2FkZXIoc3JjPSciK21hc2tEZWYudXJsKyInLHNpemluZ01ldGhvZD0n c2NhbGUnKSI7bmV3SW1hZ2VEaXYuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjsK bmV3SW1hZ2VEaXYuc3R5bGUubGVmdD1TdHJpbmcoLW1hc2tEZWYubGVmdE9mZnNl dCk7bmV3SW1hZ2VEaXYuc3R5bGUudG9wPVN0cmluZygtbWFza0RlZi50b3BPZmZz ZXQpO25ld0ltYWdlRGl2LnN0eWxlLnpJbmRleD0iMTAwIjtyZXR1cm4gbmV3SW1h Z2VEaXZ9dmFyIGFwcGx5TWFza0luSUU9ZnVuY3Rpb24ocGFyZW50Tm9kZSxtYXNr RGVmKXttYXNrRGVmLmxlZnRPZmZzZXQ9bWFza0RlZi50b3BPZmZzZXQ9MDt2YXIg bmV3SW1hZ2VEaXY9Y3JlYXRlSUU2QmFja2dyb3VuZERpdihtYXNrRGVmKTtuZXdJ bWFnZURpdi5jbGFzc05hbWU9Im1hc2siO3BhcmVudE5vZGUuc3R5bGUucG9zaXRp b249InJlbGF0aXZlIjtwYXJlbnROb2RlLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtl bnN1cmVFbGVtZW50SGFzTGF5b3V0SW5JRTYocGFyZW50Tm9kZSk7cGFyZW50Tm9k ZS5hcHBlbmRDaGlsZChuZXdJbWFnZURpdik7aWYoZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoImNvbnRlbnQiKSl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRl bnQiKS5zdHlsZS5kaXNwbGF5PSJub25lIjtkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgiY29udGVudCIpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn1yZXR1cm4gbmV3SW1h Z2VEaXZ9O3ZhciBhcHBseU1hc2s9ZnVuY3Rpb24ob3JpZ2luYWxFbGVtZW50LHBh cmVudE5vZGUsbWFza0RlZil7cGFyZW50Tm9kZS5zdHlsZS5kaXNwbGF5PSJibG9j ayI7cGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBuZXdJ bWFnZT1vcmlnaW5hbEVsZW1lbnQuY2xvbmVOb2RlKGZhbHNlKTtuZXdJbWFnZS5z dHlsZS53aWR0aD1tYXNrRGVmLndpZHRoKyJweCI7bmV3SW1hZ2Uuc3R5bGUuaGVp Z2h0PW1hc2tEZWYuaGVpZ2h0KyJweCI7bmV3SW1hZ2Uuc2V0QXR0cmlidXRlKCJz cmMiLG1hc2tEZWYudXJsKTtuZXdJbWFnZS5jbGFzc05hbWU9Im1hc2siO25ld0lt YWdlLnNldEF0dHJpYnV0ZSgiYWx0IiwiIik7cGFyZW50Tm9kZS5hcHBlbmRDaGls ZChuZXdJbWFnZSk7CnJldHVybiBuZXdJbWFnZX07Z2V0TnVtYmVyUHJvcGVydHlW YWx1ZT1mdW5jdGlvbihvcmlnaW5hbEVsZW1lbnQscHJvcGVydHlOYW1lKXt2YXIg cHJvcFZhbD1OdW1iZXIob3JpZ2luYWxFbGVtZW50LmdldEF0dHJpYnV0ZShwcm9w ZXJ0eU5hbWUpKTtpZihwcm9wVmFsPT09MCl7aWYoZG9jdW1lbnQuZGVmYXVsdFZp ZXcmJmRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpe3Byb3BW YWw9ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShvcmlnaW5h bEVsZW1lbnQsIiIpLmdldFByb3BlcnR5VmFsdWUocHJvcGVydHlOYW1lKX1lbHNl e2lmKG9yaWdpbmFsRWxlbWVudC5jdXJyZW50U3R5bGUpe3Byb3BWYWw9b3JpZ2lu YWxFbGVtZW50LmN1cnJlbnRTdHlsZVtwcm9wZXJ0eU5hbWVdfX1pZihwcm9wVmFs IT09bnVsbCl7cHJvcFZhbD1wYXJzZUludChwcm9wVmFsLnJlcGxhY2UoInB4Iiwi IiksMTApfX1pZighaXNOYU4ocHJvcFZhbCkmJnByb3BWYWwhPT1udWxsKXtyZXR1 cm4gcHJvcFZhbH1lbHNle3JldHVybiAwfX07YXBwbHlJbWFnZU1hc2tJbW1lZGlh dGU9ZnVuY3Rpb24ob3JpZ2luYWxFbGVtZW50LG1hc2tOYW1lKXt2YXIgcGFyZW50 Tm9kZT1vcmlnaW5hbEVsZW1lbnQucGFyZW50Tm9kZTt2YXIgd2lkdGg9Z2V0TnVt YmVyUHJvcGVydHlWYWx1ZShvcmlnaW5hbEVsZW1lbnQsIndpZHRoIik7dmFyIGhl aWdodD1nZXROdW1iZXJQcm9wZXJ0eVZhbHVlKG9yaWdpbmFsRWxlbWVudCwiaGVp Z2h0Iik7dmFyIG1hc2tEZWY9Z2V0TWFza0RlZihtYXNrTmFtZSx3aWR0aCxoZWln aHQpO2lmKG1hc2tEZWYpe2lmKGd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTZ8fGd1 YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTcpe3JldHVybiBhcHBseU1hc2tJbklFKHBh cmVudE5vZGUsbWFza0RlZil9ZWxzZXtyZXR1cm4gYXBwbHlNYXNrKG9yaWdpbmFs RWxlbWVudCxwYXJlbnROb2RlLG1hc2tEZWYpfX19O3ZhciBhcHBseUZ1bGxTY3Jl ZW5NYXNrSW5JRTY9ZnVuY3Rpb24ocGFyZW50Tm9kZSxtYXNrRGVmKXt2YXIgbmV3 SW1hZ2VEaXY9Y3JlYXRlSUU2QmFja2dyb3VuZERpdihtYXNrRGVmKTsKZW5zdXJl RWxlbWVudEhhc0xheW91dEluSUU2KHBhcmVudE5vZGUpO3BhcmVudE5vZGUuaW5z ZXJ0QmVmb3JlKG5ld0ltYWdlRGl2LHBhcmVudE5vZGUuZmlyc3RDaGlsZCk7cmV0 dXJuIG5ld0ltYWdlRGl2fTthcHBseUZ1bGxTY3JlZW5JbWFnZU1hc2s9ZnVuY3Rp b24oZWxlbWVudFRoYXRDb250YWluc1RoaW5nVG9OT1RIaWRlKXtpZihndWFyZGlh bi5yMi5icm93c2VyLmlzSUU2KXtkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc3R5 bGUub3ZlcmZsb3c9ImhpZGRlbiI7dmFyIGVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoZWxlbWVudFRoYXRDb250YWluc1RoaW5nVG9OT1RIaWRlKTt2YXIg bGVmdE9mZnNldD1lbGVtZW50Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0O3ZhciBi b2R5PWRvY3VtZW50LmJvZHk7cmV0dXJuIGFwcGx5RnVsbFNjcmVlbk1hc2tJbklF NihlbGVtZW50LHt1cmw6cm9vdCsid2hpdGUtYmcucG5nIix3aWR0aDpkb2N1bWVu dC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsaGVpZ2h0OmJvZHkuY2xpZW50 SGVpZ2h0LGxlZnRPZmZzZXQ6bGVmdE9mZnNldCx0b3BPZmZzZXQ6MH0pfX07cmVt b3ZlRnVsbFNjcmVlbkltYWdlTWFzaz1mdW5jdGlvbigpe2RvY3VtZW50LmJvZHku cGFyZW50Tm9kZS5zdHlsZS5vdmVyZmxvdz0iIn07ZW5zdXJlRWxlbWVudEhhc0xh eW91dEluSUU2PWZ1bmN0aW9uKGVsZW1lbnQpe2lmKCFlbGVtZW50LmN1cnJlbnRT dHlsZS5oYXNMYXlvdXQpe2VsZW1lbnQuc3R5bGUuem9vbT0iMSJ9fX0pKCk7ZnVu Y3Rpb24gZW5zdXJlUGFja2FnZShwYWNrYWdlTmFtZSxwYWNrYWdlQmxvY2spe3Zh ciBwYWNrYWdlX3BhcnRzPXBhY2thZ2VOYW1lLnNwbGl0KCIuIik7dmFyIHBhY2th Z2Vfc29fZmFyPXRoaXM7Zm9yKHZhciBpPTA7aTxwYWNrYWdlX3BhcnRzLmxlbmd0 aDtpKz0xKXt2YXIgcGFja2FnZV9wYXJ0PXBhY2thZ2VfcGFydHNbaV07aWYoIXBh Y2thZ2Vfc29fZmFyW3BhY2thZ2VfcGFydF0pe3BhY2thZ2Vfc29fZmFyW3BhY2th Z2VfcGFydF09e30KfXBhY2thZ2Vfc29fZmFyPXBhY2thZ2Vfc29fZmFyW3BhY2th Z2VfcGFydF19aWYocGFja2FnZUJsb2NrKXtwYWNrYWdlQmxvY2socGFja2FnZV9z b19mYXIpfXJldHVybiBwYWNrYWdlX3NvX2Zhcn1mdW5jdGlvbiB0cmltKHN0cil7 cmV0dXJuIGx0cmltKHJ0cmltKHN0cikpfWZ1bmN0aW9uIGx0cmltKHN0cil7cmV0 dXJuIHN0ci5yZXBsYWNlKC9eXHMrLywiIil9ZnVuY3Rpb24gbGVmdFRyaW0oc3Ry KXtyZXR1cm4gc3RyLnJlcGxhY2UobmV3IFJlZ0V4cCgvXlxzKi9nKSwiIil9ZnVu Y3Rpb24gcnRyaW0oc3RyKXtyZXR1cm4gc3RyLnJlcGxhY2UoL1xzKyQvLCIiKX1m dW5jdGlvbiBzdHJpcFBhcmFtRnJvbVVybChwYXJhbSx1cmxUb1N0cmlwKXt2YXIg cGFyYW10ZXJWYWx1ZUV4cHJlc3Npb249Ij1bXFx3XFwtXSoiO3ZhciB1cmw9dXJs VG9TdHJpcC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcPyIrcGFyYW0rcGFyYW10ZXJW YWx1ZUV4cHJlc3Npb24rIiQiKSwiIik7dXJsPXVybC5yZXBsYWNlKG5ldyBSZWdF eHAoIlxcPyIrcGFyYW0rcGFyYW10ZXJWYWx1ZUV4cHJlc3Npb24rIiYiKSwiPyIp O3VybD11cmwucmVwbGFjZShuZXcgUmVnRXhwKCImIitwYXJhbStwYXJhbXRlclZh bHVlRXhwcmVzc2lvbiksIiIpO3JldHVybiB1cmx9ZnVuY3Rpb24gaXNOdW1iZXIo dmFsdWUpe3JldHVybiB0eXBlb2YgdmFsdWU9PT0ibnVtYmVyIn1mdW5jdGlvbiBk ZWxlZ2F0ZUVycm9ySGFuZGxlcih0byxmcm9tKXt0by5lcnJvckhhbmRsZXI9ZnJv bS5lcnJvckhhbmRsZXJ9ZnVuY3Rpb24gaXNWYWxpZFVybCh1cmwpe3ZhciByZWdl eHA9LyhodHRwOlwvXC8oW1wtXHddK1wuKStcd3syLDN9KFwvWyVcLVx3XSsoXC5c d3syLH0pPykqKChbXHdcLVwuXD9cLytAJiM7YH49JSFdKikoXC5cd3syLH0pPykq XC8/KS9pO3JldHVybiByZWdleHAudGVzdCh1cmwpfWZ1bmN0aW9uIGFwcGVuZFBh cmFtZXRlcih1cmwscGFyYW1ldGVyKXtpZih1cmwuaW5kZXhPZigiPyIpIT09LTEp e3JldHVybiB1cmwrIiYiK3BhcmFtZXRlcgp9ZWxzZXtyZXR1cm4gdXJsKyI/Iitw YXJhbWV0ZXJ9fWZ1bmN0aW9uIGlzQXJyYXkob2JqZWN0KXtyZXR1cm4gb2JqZWN0 IT1udWxsJiZ0eXBlb2Ygb2JqZWN0PT0ib2JqZWN0IiYmInNwbGljZSIgaW4gb2Jq ZWN0JiYiam9pbiIgaW4gb2JqZWN0fWVuc3VyZVBhY2thZ2UoImd1YXJkaWFuLnIy Iik7Z3VhcmRpYW4ucjIuRGlhbG9nQm94PWZ1bmN0aW9uKCl7dmFyIGFwcGxpZWRJ bWFnZU1hc2s9ZmFsc2U7dmFyIGluc3RhbmNlPXRoaXM7dGhpcy5zaG93RGlhbG9n Qm94PWZ1bmN0aW9uKGRpYWxvZ0JveCxkaWFsb2dCb3hXcmFwcGVyLHNjcm9sbGFi bGUsbm9uVmlzaWJsZURpYWxvZyl7aWYoZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lF Nil7ZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnN0eWxlLm92ZXJmbG93PSJoaWRk ZW4ifXNjcm9sbGFibGU9c2Nyb2xsYWJsZT9zY3JvbGxhYmxlOmZhbHNlO2luc3Rh bmNlLnBvc2l0aW9uRGlhbG9nQm94KGRpYWxvZ0JveCxkaWFsb2dCb3hXcmFwcGVy LHNjcm9sbGFibGUsbm9uVmlzaWJsZURpYWxvZyk7ZGlhbG9nQm94V3JhcHBlci5z dHlsZS5kaXNwbGF5PSJibG9jayI7aWYoZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lF Nil7ZGlhbG9nQm94V3JhcHBlci5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIjtpZihk aWFsb2dCb3hXcmFwcGVySGFzTm90QWxyZWFkeUhhZEltYWdlTWFza0FwcGxpZWQo ZGlhbG9nQm94LGRpYWxvZ0JveFdyYXBwZXIpKXthcHBseUZ1bGxTY3JlZW5JbWFn ZU1hc2soZGlhbG9nQm94V3JhcHBlci5pZCk7YXBwbGllZEltYWdlTWFzaz10cnVl fWVsc2V7ZGlhbG9nQm94V3JhcHBlci5maXJzdENoaWxkLnN0eWxlLndpZHRoPWRv Y3VtZW50LmJvZHkuY2xpZW50V2lkdGgrInB4IjtsZWZ0T2Zmc2V0PWRpYWxvZ0Jv eFdyYXBwZXIub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQ7ZGlhbG9nQm94V3JhcHBl ci5maXJzdENoaWxkLnN0eWxlLmxlZnQ9Ii0iK2xlZnRPZmZzZXQrInB4In19dG9n Z2xlSGlkZU9uUG9wdXBFbGVtZW50cygiaGlkZGVuIikKfTt0aGlzLmhpZGVEaWFs b2dCb3g9ZnVuY3Rpb24oZGlhbG9nQm94V3JhcHBlcil7aWYoZ3VhcmRpYW4ucjIu YnJvd3Nlci5pc0lFNil7cmVtb3ZlRnVsbFNjcmVlbkltYWdlTWFzaygpfXRvZ2ds ZUhpZGVPblBvcHVwRWxlbWVudHMoInZpc2libGUiKX07dGhpcy5wb3NpdGlvbkRp YWxvZ0JveD1mdW5jdGlvbihkaWFsb2dCb3gsZGlhbG9nQm94V3JhcHBlcixzY3Jv bGxhYmxlLG5vblZpc2libGVEaWFsb2cpe3ZhciBwb3NpdGlvbj1nZXRDZW50ZXJQ b3NpdGlvbigpO3ZhciBzY3JvbGw9Z2V0U2Nyb2xsUG9zaXRpb24oKTt2YXIgd3Jh cHBlcldpZHRoPTA7dmFyIHBvc1g9cG9zaXRpb24ueDtpZihndWFyZGlhbi5yMi5i cm93c2VyLmlzSUU2KXtkaWFsb2dCb3hXcmFwcGVyLnN0eWxlLnBvc2l0aW9uPSJh YnNvbHV0ZSI7ZGlhbG9nQm94LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSJ9ZGlh bG9nQm94V3JhcHBlci5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2RpYWxvZ0Jv eFdyYXBwZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siO2RpYWxvZ0JveC5zdHlsZS52 aXNpYmlsaXR5PSJoaWRkZW4iO2RpYWxvZ0JveC5zdHlsZS5kaXNwbGF5PSJibG9j ayI7dmFyIHc9Z2V0QXhpc0JveE1vZGVsVG90YWxTaXplKGRpYWxvZ0JveCwid2lk dGgiKTtpZihndWFyZGlhbi5yMi5icm93c2VyLmlzSUU2KXtpZihkaWFsb2dCb3hJ c0NvbnRhaW5lZEJ5V3JhcHBlcihkaWFsb2dCb3gpKXt3cmFwcGVyV2lkdGg9Z2V0 TnVtYmVyUHJvcGVydHlWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid3Jh cHBlciIpLCJ3aWR0aCIpO2lmKHdyYXBwZXJXaWR0aDxwb3NYKXtwb3NYPXdyYXBw ZXJXaWR0aH19fXZhciBjZW50cmVYPXBvc1gvMjt2YXIgY2VudHJlT2Zmc2V0PXcv Mjt2YXIgbGVmdE9mZnNldD1NYXRoLnJvdW5kKGNlbnRyZVgtY2VudHJlT2Zmc2V0 KTtkaWFsb2dCb3hXcmFwcGVyLnN0eWxlLnRvcD0iMHB4IjtkaWFsb2dCb3hXcmFw cGVyLnN0eWxlLmxlZnQ9IjBweCI7ZGlhbG9nQm94LnN0eWxlLmxlZnQ9bGVmdE9m ZnNldCsicHgiOwp2YXIgYm94SGVpZ2h0PWdldEF4aXNCb3hNb2RlbFRvdGFsU2l6 ZShkaWFsb2dCb3gsImhlaWdodCIpO3ZhciB3aW5kb3dIZWlnaHQ9cG9zaXRpb24u eTt2YXIgc2Nyb2xsSGVpZ2h0PXNjcm9sbC55O3ZhciB0b3BPZmZzZXQ9NTtpZihi b3hIZWlnaHQ8d2luZG93SGVpZ2h0KXt0b3BPZmZzZXQ9KHdpbmRvd0hlaWdodC1i b3hIZWlnaHQpLzJ9aWYoZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lFNnx8c2Nyb2xs YWJsZSl7dG9wT2Zmc2V0Kz1zY3JvbGxIZWlnaHR9ZGlhbG9nQm94LnN0eWxlLnRv cD10b3BPZmZzZXQrInB4IjtkaWFsb2dCb3guc3R5bGUudmlzaWJpbGl0eT0iIjtk aWFsb2dCb3hXcmFwcGVyLnN0eWxlLnZpc2liaWxpdHk9IiI7ZGlhbG9nQm94V3Jh cHBlci5zdHlsZS5kaXNwbGF5PSJub25lIjtpZihub25WaXNpYmxlRGlhbG9nJiZu b25WaXNpYmxlRGlhbG9nPT09dHJ1ZSl7ZGlhbG9nQm94V3JhcHBlci5zdHlsZS56 SW5kZXg9Ii0xIn19O3RoaXMuY3JlYXRlQ2xvc2VMaW5rPWZ1bmN0aW9uKGRpYWxv Z0JveCxkaWFsb2dCb3hXcmFwcGVyKXtmdW5jdGlvbiBjbG9zZURpYWxvZ0JveCgp e2RpYWxvZ0JveC5zdHlsZS5kaXNwbGF5PSJub25lIjtkaWFsb2dCb3hXcmFwcGVy LnN0eWxlLmRpc3BsYXk9Im5vbmUiO2luc3RhbmNlLmhpZGVEaWFsb2dCb3goZGlh bG9nQm94V3JhcHBlcil9dmFyIGNsb3NlTGlua0lkPShkaWFsb2dCb3guaWQrIi1j bG9zZS1saW5rIik7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNsb3NlTGlu a0lkKSl7dmFyIGNsb3NlTGluaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7 Y2xvc2VMaW5rLmhyZWY9IiMiO2Nsb3NlTGluay5pbm5lckhUTUw9ImNsb3NlIjtj bG9zZUxpbmsuaWQ9KGNsb3NlTGlua0lkKTtjbG9zZUxpbmsuY2xhc3NOYW1lPSJj bG9zZSI7YWRkRXZlbnQoY2xvc2VMaW5rLCJjbGljayIsY2xvc2VEaWFsb2dCb3gp O3ZhciB0b29sQm94PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTt0b29sQm94 LmNsYXNzTmFtZT0idG9vbGJveCI7CnRvb2xCb3guYXBwZW5kQ2hpbGQoY2xvc2VM aW5rKTtkaWFsb2dCb3guaW5zZXJ0QmVmb3JlKHRvb2xCb3gsZGlhbG9nQm94LmZp cnN0Q2hpbGQpfX07ZnVuY3Rpb24gZGlhbG9nQm94V3JhcHBlckhhc05vdEFscmVh ZHlIYWRJbWFnZU1hc2tBcHBsaWVkKGRpYWxvZ0JveCxkaWFsb2dCb3hXcmFwcGVy KXt2YXIgaXNFbXB0eVN0cmluZz0vXlxzKiQvO2lmKGRpYWxvZ0JveElzQ29udGFp bmVkQnlXcmFwcGVyKGRpYWxvZ0JveCkpe3JldHVybiAhYXBwbGllZEltYWdlTWFz a31yZXR1cm4gIWFwcGxpZWRJbWFnZU1hc2smJmlzRW1wdHlTdHJpbmcudGVzdChk aWFsb2dCb3hXcmFwcGVyLmlubmVySFRNTCl9ZnVuY3Rpb24gZGlhbG9nQm94SXND b250YWluZWRCeVdyYXBwZXIoZGlhbG9nQm94KXtyZXR1cm4gIShkaWFsb2dCb3gu cGFyZW50Tm9kZT09PWRvY3VtZW50LmJvZHkpfWZ1bmN0aW9uIGdldEF4aXNCb3hN b2RlbFRvdGFsU2l6ZShlbCxheGlzKXt2YXIgYm94SGVpZ2h0LGJveFBhZGRpbmcs Ym94TWFyZ2lucyxib3hXaWR0aDtzd2l0Y2goYXhpcyl7Y2FzZSJoZWlnaHQiOmJv eEhlaWdodD1lbC5vZmZzZXRIZWlnaHQ7Ym94TWFyZ2lucz1nZXROdW1iZXJQcm9w ZXJ0eVZhbHVlKGVsLCJtYXJnaW5Ub3AiKStnZXROdW1iZXJQcm9wZXJ0eVZhbHVl KGVsLCJtYXJnaW5Cb3R0b20iKTtyZXR1cm4oYm94SGVpZ2h0K2JveE1hcmdpbnMp O2Nhc2Uid2lkdGgiOmJveFdpZHRoPWVsLm9mZnNldFdpZHRoO2JveFBhZGRpbmc9 Z2V0TnVtYmVyUHJvcGVydHlWYWx1ZShlbCwicGFkZGluZ0xlZnQiKStnZXROdW1i ZXJQcm9wZXJ0eVZhbHVlKGVsLCJwYWRkaW5nUmlnaHQiKTtib3hNYXJnaW5zPWdl dE51bWJlclByb3BlcnR5VmFsdWUoZWwsIm1hcmdpbkxlZnQiKStnZXROdW1iZXJQ cm9wZXJ0eVZhbHVlKGVsLCJtYXJnaW5SaWdodCIpO3JldHVybihib3hXaWR0aCti b3hQYWRkaW5nK2JveE1hcmdpbnMpfX19O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFu LnIyIik7Z3VhcmRpYW4ucjIuR29vZ2xlTWFwc0dlb1Jzc0ZlZWRDb250cm9sbGVy PWZ1bmN0aW9uKGdvb2dsZU1hcHNHZW9Sc3NWaWV3LGdvb2dsZU1hcHNHZW9Sc3NG ZWVkU2VydmljZSxmZWVkVXJsKXt2YXIgaW5zdGFuY2U9dGhpczsKdmFyIG51bWJl ck9mRW50cmllczt0aGlzLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtnb29nbGVNYXBz R2VvUnNzVmlldy5hZGRMb2FkRXZlbnQoaW5zdGFuY2Uub25Mb2FkKTtnb29nbGVN YXBzR2VvUnNzVmlldy5hZGRVbmxvYWRFdmVudChpbnN0YW5jZS5vblVubG9hZCl9 O3RoaXMub25Mb2FkPWZ1bmN0aW9uKCl7Z29vZ2xlTWFwc0dlb1Jzc1ZpZXcuaW5p dGlhbGl6ZU1hcCgpO2dvb2dsZU1hcHNHZW9Sc3NWaWV3LmluaXRDb250YWluZXJG b250U2l6ZSgpO2dvb2dsZU1hcHNHZW9Sc3NGZWVkU2VydmljZS5nZXRFbnRyaWVz KGZlZWRVcmwsaW5zdGFuY2UuZGlzcGxheUZlZWRFbnRyaWVzKX07dGhpcy5kaXNw bGF5RmVlZEVudHJpZXM9ZnVuY3Rpb24oZW50cmllcyl7aWYoZW50cmllcy5sZW5n dGg+MCl7Z29vZ2xlTWFwc0dlb1Jzc1ZpZXcuc2hvd01hcCgpO2Zvcih2YXIgaW5k ZXg9MDtpbmRleDxlbnRyaWVzLmxlbmd0aDtpbmRleCsrKXtnb29nbGVNYXBzR2Vv UnNzVmlldy5kaXNwbGF5RW50cnlPbk1hcChlbnRyaWVzW2luZGV4XSl9Z29vZ2xl TWFwc0dlb1Jzc1ZpZXcuem9vbVRvTGF0ZXN0KCk7aWYoZW50cmllcy5sZW5ndGg+ MSl7Z29vZ2xlTWFwc0dlb1Jzc1ZpZXcuY3JlYXRlTmF2KGVudHJpZXMubGVuZ3Ro KX19fTt0aGlzLm9uVW5sb2FkPWZ1bmN0aW9uKCl7Z29vZ2xlTWFwc0dlb1Jzc1Zp ZXcudW5sb2FkTWFwcygpfX07ZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4ucjIiKTtn dWFyZGlhbi5yMi5Hb29nbGVNYXBzR2VvUnNzRmVlZFNlcnZpY2U9ZnVuY3Rpb24o KXt2YXIgaW5zdGFuY2U9dGhpczt0aGlzLmluaXRpYWxpemU9ZnVuY3Rpb24oKXt9 O3RoaXMuZ2V0RW50cmllcz1mdW5jdGlvbihmZWVkc1VybCxlbnRyaWVzUmVhZHlD YWxsYmFjayl7dmFyIGFqYXhSZXF1ZXN0PW5ldyBndWFyZGlhbi5yMi5hamF4LlJl cXVlc3QoZmVlZHNVcmwse21ldGhvZDoiZ2V0IixvblN1Y2Nlc3M6ZnVuY3Rpb24o dHJhbnNwb3J0KXtpbnN0YW5jZS5wb3B1bGF0ZUVudHJpZXModHJhbnNwb3J0LGVu dHJpZXNSZWFkeUNhbGxiYWNrKQp9fSl9O3RoaXMucG9wdWxhdGVFbnRyaWVzPWZ1 bmN0aW9uKHRyYW5zcG9ydCxlbnRyaWVzUmVhZHlDYWxsYmFjayl7dmFyIHJlc3Bv bnNlWE1MPXRyYW5zcG9ydC5yZXNwb25zZVhNTDt2YXIgZW50cmllcz1uZXcgQXJy YXkoKTt2YXIgaXRlbXM7dHJ5e2l0ZW1zPXJlc3BvbnNlWE1MLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJpdGVtIil9Y2F0Y2goZSl7cGFyc2VyPW5ldyBET01QYXJzZXIo KTtyZXNwb25zZVhNTD1wYXJzZXIucGFyc2VGcm9tU3RyaW5nKHRyYW5zcG9ydC5y ZXNwb25zZVRleHQsInRleHQveG1sIik7aXRlbXM9cmVzcG9uc2VYTUwuZ2V0RWxl bWVudHNCeVRhZ05hbWUoIml0ZW0iKX1mb3IodmFyIGluZGV4PTA7aW5kZXg8aXRl bXMubGVuZ3RoO2luZGV4Kyspe3ZhciBpdGVtPWl0ZW1zW2luZGV4XTt2YXIgdGl0 bGU9aXRlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXS5jaGlsZE5v ZGVzWzBdLmRhdGE7dmFyIGRlc2NyaXB0aW9uO3RyeXtkZXNjcmlwdGlvbj1pdGVt LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkZXNjcmlwdGlvbiIpWzBdLmNoaWxkTm9k ZXNbMF0ubm9kZVZhbHVlfWNhdGNoKGUpe312YXIgbGluazt0cnl7bGluaz1pdGVt LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIilbMF0uY2hpbGROb2Rlc1swXS5u b2RlVmFsdWV9Y2F0Y2goZSl7fXZhciBsYXQ9IiI7dmFyIGxuZz0iIjt2YXIgbGF0 bG5nO3RyeXtpZihuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5k ZXhPZigibXNpZSIpPDApe2xhdGxuZz1pdGVtLmdldEVsZW1lbnRzQnlUYWdOYW1l TlMoImh0dHA6Ly93d3cuZ2VvcnNzLm9yZy9nZW9yc3MiLCJwb2ludCIpWzBdLmNo aWxkTm9kZXNbMF0ubm9kZVZhbHVlfWVsc2V7bGF0bG5nPWl0ZW0uZ2V0RWxlbWVu dHNCeVRhZ05hbWUoImdlb3Jzczpwb2ludCIpWzBdLmNoaWxkTm9kZXNbMF0ubm9k ZVZhbHVlfWlmKGxhdGxuZy5sZW5ndGg+MCl7bGF0PWxhdGxuZy5zcGxpdCgiICIp WzBdO2xuZz1sYXRsbmcuc3BsaXQoIiAiKVsxXQp9fWNhdGNoKGUpe31pZihsYXQu bGVuZ3RoPjAmJmxuZy5sZW5ndGg+MCl7ZW50cmllcy5wdXNoKHtsaW5rVGV4dDp0 aXRsZSxkZXNjcmlwdGlvbjpkZXNjcmlwdGlvbixsYXRpdHVkZTpOdW1iZXIobGF0 KSxsb25naXR1ZGU6TnVtYmVyKGxuZykscGFnZVVSTDpsaW5rfSl9fWVudHJpZXNS ZWFkeUNhbGxiYWNrKGVudHJpZXMpfTt0aGlzLmdldERlc2NyaXB0aW9uPWZ1bmN0 aW9uKGl0ZW0pe319O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRp YW4ucjIuR29vZ2xlTWFwc0dlb1Jzc0ZlZWRWaWV3PWZ1bmN0aW9uKCl7dmFyIGlu c3RhbmNlPXRoaXM7dmFyIG1hcEl0ZW1zPW5ldyBBcnJheSgpO3ZhciBjdXJyZW50 PTA7dmFyIG5hdnJvb3Q9Y29tbW9uU3RhdGljUm9vdCsiaW1hZ2VzL21hcHMvIjt2 YXIgcm9vdD1jb21tb25TdGF0aWNSb290KyJzdHlsZXMvd2lkZS9pbWFnZXMvIjt2 YXIgZ3VhcmRpYW5NYXBJY29uPW5ldyBHSWNvbihHX0RFRkFVTFRfSUNPTik7Z3Vh cmRpYW5NYXBJY29uLmltYWdlPXJvb3QrIm1hcG1hcmtlcnMvMV9tYXJrZXIucG5n IjtndWFyZGlhbk1hcEljb24uaWNvblNpemU9bmV3IEdTaXplKDIzLDMyKTtndWFy ZGlhbk1hcEljb24uc2hhZG93PXJvb3QrIm1hcG1hcmtlcnMvMl9zaGFkb3dfNzUu cG5nIjtndWFyZGlhbk1hcEljb24uc2hhZG93U2l6ZT1uZXcgR1NpemUoMzUsMzIp O2d1YXJkaWFuTWFwSWNvbi5pY29uQW5jaG9yPW5ldyBHUG9pbnQoMTIsMjkpO2d1 YXJkaWFuTWFwSWNvbi5pbmZvV2luZG93QW5jaG9yPW5ldyBHUG9pbnQoMTgsNSk7 Z3VhcmRpYW5NYXBJY29uLnByaW50SW1hZ2U9cm9vdCsibWFwbWFya2Vycy8zX3By aW50LmdpZiI7Z3VhcmRpYW5NYXBJY29uLm1velByaW50SW1hZ2U9cm9vdCsibWFw bWFya2Vycy80X2ZmUHJpbnQuZ2lmIjtndWFyZGlhbk1hcEljb24ucHJpbnRTaGFk b3c9cm9vdCsibWFwbWFya2Vycy81X3ByaW50LXNoYWRvdy5naWYiO2d1YXJkaWFu TWFwSWNvbi5pbWFnZU1hcD1bMTIsMjgsMiwxNiwyLDgsMTEsMiwyMCw4LDIwLDE2 XTsKdmFyIG1hcmtlck9wdGlvbnM9e2ljb246Z3VhcmRpYW5NYXBJY29ufTt0aGlz LmluaXRpYWxpemVNYXA9ZnVuY3Rpb24oKXtpbnN0YW5jZS5tYXA9bmV3IEdNYXAy KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYXAtY2FudmFzIikpO2luc3RhbmNl Lm1hcC5zZXRDZW50ZXIobmV3IEdMYXRMbmcoMCwwKSwxMyk7aW5zdGFuY2UubWFw LmFkZENvbnRyb2wobmV3IEdTbWFsbE1hcENvbnRyb2woKSl9O3RoaXMuaW5pdENv bnRhaW5lckZvbnRTaXplPWZ1bmN0aW9uKCl7aW5zdGFuY2UubWFwLmdldENvbnRh aW5lcigpLmNoaWxkTm9kZXNbMV0uc3R5bGUuZm9udFNpemU9IjdweCJ9O3RoaXMu ZGlzcGxheUVudHJ5T25NYXA9ZnVuY3Rpb24oZW50cnkpe3ZhciBsYXRsbmc9bmV3 IEdMYXRMbmcoZW50cnkubGF0aXR1ZGUsZW50cnkubG9uZ2l0dWRlKTt2YXIgbWFy a2VyPW5ldyBHTWFya2VyKGxhdGxuZyxtYXJrZXJPcHRpb25zKTt2YXIgaHRtbD1p bnN0YW5jZS5odG1sRm9yRW50cnkoZW50cnkpO0dFdmVudC5hZGRMaXN0ZW5lciht YXJrZXIsImNsaWNrIixmdW5jdGlvbigpe21hcmtlci5vcGVuSW5mb1dpbmRvd0h0 bWwoaHRtbCx7bWF4V2lkdGg6MjAwfSl9KTtpZighaW5zdGFuY2UubW9zdFJlY2Vu dE1hcmtlcil7aW5zdGFuY2UubW9zdFJlY2VudE1hcmtlcj1tYXJrZXJ9aW5zdGFu Y2UubWFwLmFkZE92ZXJsYXkobWFya2VyKTttYXBJdGVtcy5wdXNoKGxhdGxuZyl9 O3RoaXMuY3JlYXRlTmF2PWZ1bmN0aW9uKGFsbCl7dmFyIGxpc3Q9ZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoIm1hcC1uYXYiKTtpZihsaXN0KXt2YXIgdWw9ZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgidWwiKTtndWFyZGlhbi5yMi5kb20uZWxlbWVudC5h ZGRDbGFzc05hbWUodWwsInByb21vLW5hdiIpO3ByZXY9ZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgibGkiKTtndWFyZGlhbi5yMi5kb20uZWxlbWVudC5hZGRDbGFzc05h bWUocHJldiwicHJldmlvdXMiKTtwcmV2TGluaz1kb2N1bWVudC5jcmVhdGVFbGVt ZW50KCJhIik7CnByZXZJbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7 cHJldkltZy5zZXRBdHRyaWJ1dGUoInNyYyIsbmF2cm9vdCsibGVmdF9hcnJvdy5n aWYiKTtwcmV2VHh0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQcmV2aW91cyIp O3ByZXZMaW5rLnNldEF0dHJpYnV0ZSgiaHJlZiIsIiMiKTtwcmV2TGluay5hcHBl bmRDaGlsZChwcmV2SW1nKTtwcmV2TGluay5hcHBlbmRDaGlsZChwcmV2VHh0KTtp bnN0YW5jZS5hZGRFdmVudChwcmV2TGluaywiY2xpY2siLGluc3RhbmNlLnNob3cp O3ByZXYuYXBwZW5kQ2hpbGQocHJldkxpbmspO3VsLmFwcGVuZENoaWxkKHByZXYp O2NvdW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Z3VhcmRpYW4ucjIu ZG9tLmVsZW1lbnQuYWRkQ2xhc3NOYW1lKGNvdW50LCJpbmRleCIpO3RlbXBsYWJl bD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhbGwrIiAvICIrYWxsKTtjb3VudC5h cHBlbmRDaGlsZCh0ZW1wbGFiZWwpO3VsLmFwcGVuZENoaWxkKGNvdW50KTtuZXh0 PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7Z3VhcmRpYW4ucjIuZG9tLmVs ZW1lbnQuYWRkQ2xhc3NOYW1lKG5leHQsIm5leHQiKTtndWFyZGlhbi5yMi5kb20u ZWxlbWVudC5hZGRDbGFzc05hbWUobmV4dCwibmV4dC1wb3N0Iik7bmV4dExpbms9 ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO25leHRMaW5rLnN0eWxlLmRpc3Bs YXk9Im5vbmUiO25leHRJbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7 bmV4dEltZy5zZXRBdHRyaWJ1dGUoInNyYyIsbmF2cm9vdCsicmlnaHRfYXJyb3cu Z2lmIik7bmV4dFR4dD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiTmV4dCIpO25l eHRMaW5rLnNldEF0dHJpYnV0ZSgiaHJlZiIsIiMiKTtuZXh0TGluay5hcHBlbmRD aGlsZChuZXh0VHh0KTtuZXh0TGluay5hcHBlbmRDaGlsZChuZXh0SW1nKTtpbnN0 YW5jZS5hZGRFdmVudChuZXh0TGluaywiY2xpY2siLGluc3RhbmNlLnNob3cpO25l eHQuYXBwZW5kQ2hpbGQobmV4dExpbmspOwp1bC5hcHBlbmRDaGlsZChuZXh0KTts aXN0LmFwcGVuZENoaWxkKHVsKX19O3RoaXMuYWRkRXZlbnQ9ZnVuY3Rpb24ob2Jq LHR5cGUsZm4pe2lmKG9iai5hdHRhY2hFdmVudCl7b2JqWyJlIit0eXBlK2ZuXT1m bjtvYmpbdHlwZStmbl09ZnVuY3Rpb24oKXtvYmpbImUiK3R5cGUrZm5dKHdpbmRv dy5ldmVudCl9O29iai5hdHRhY2hFdmVudCgib24iK3R5cGUsb2JqW3R5cGUrZm5d KX1lbHNle29iai5hZGRFdmVudExpc3RlbmVyKHR5cGUsZm4sZmFsc2UpfX07dGhp cy5zaG93PWZ1bmN0aW9uKGUpe2lmKHRoaXM9PT1uZXh0TGlua3x8dGhpcz09PXBy ZXZMaW5rKXt2YXIgYWRkdG89dGhpcz09PW5leHRMaW5rPy0xOjE7Y3VycmVudD1j dXJyZW50K2FkZHRvO2lmKGN1cnJlbnQ9PW1hcEl0ZW1zLmxlbmd0aC0xKXtwcmV2 TGluay5zdHlsZS5kaXNwbGF5PSJub25lIn1lbHNle3ByZXZMaW5rLnN0eWxlLmRp c3BsYXk9ImJsb2NrIn1pZihjdXJyZW50PT0wKXtuZXh0TGluay5zdHlsZS5kaXNw bGF5PSJub25lIn1lbHNle25leHRMaW5rLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn1w YW5NYXAobWFwSXRlbXNbY3VycmVudF0pfXZhciB0ZW1wbGFiZWw9ZG9jdW1lbnQu Y3JlYXRlVGV4dE5vZGUoKG1hcEl0ZW1zLmxlbmd0aC1jdXJyZW50KSsiIC8gIitt YXBJdGVtcy5sZW5ndGgpO2NvdW50LnJlcGxhY2VDaGlsZCh0ZW1wbGFiZWwsY291 bnQuZmlyc3RDaGlsZCk7Y2FuY2VsQ2xpY2soZSl9O2Z1bmN0aW9uIHBhbk1hcCh0 b01hcmtlcil7aW5zdGFuY2UubWFwLnBhblRvKHRvTWFya2VyKX1mdW5jdGlvbiBj YW5jZWxDbGljayhlKXtpZih3aW5kb3cuZXZlbnQpe3dpbmRvdy5ldmVudC5jYW5j ZWxCdWJibGU9dHJ1ZTt3aW5kb3cuZXZlbnQucmV0dXJuVmFsdWU9ZmFsc2V9aWYo ZSYmZS5zdG9wUHJvcGFnYXRpb24mJmUucHJldmVudERlZmF1bHQpe2Uuc3RvcFBy b3BhZ2F0aW9uKCk7ZS5wcmV2ZW50RGVmYXVsdCgpfX10aGlzLnNob3dNYXA9ZnVu Y3Rpb24oKXt2YXIgbWFwQ2FudmFzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJt YXAtY2FudmFzIik7Cm1hcENhbnZhcy5zdHlsZS5kaXNwbGF5PSJibG9jayJ9O3Ro aXMuem9vbVRvTGF0ZXN0PWZ1bmN0aW9uKCl7aW5zdGFuY2UubWFwLmNoZWNrUmVz aXplKCk7aW5zdGFuY2UubWFwLnNldENlbnRlcih0aGlzLm1vc3RSZWNlbnRNYXJr ZXIuZ2V0TGF0TG5nKCksNil9O3RoaXMuaHRtbEZvckVudHJ5PWZ1bmN0aW9uKGVu dHJ5KXt2YXIgaHRtbD0iIjtpZihlbnRyeS5wYWdlVVJMKXtodG1sPWh0bWwrJzxh IGhyZWY9IicrZW50cnkucGFnZVVSTCsnIj4nfWlmKGVudHJ5LmxpbmtUZXh0KXto dG1sPWh0bWwrZW50cnkubGlua1RleHR9aWYoZW50cnkucGFnZVVSTCl7aHRtbD1o dG1sKyI8L2E+In1yZXR1cm4gaHRtbH07dGhpcy51bmxvYWRNYXA9ZnVuY3Rpb24o KXtHVW5sb2FkKCl9O3RoaXMuYWRkTG9hZEV2ZW50PWZ1bmN0aW9uKGNhbGxiYWNr KXthZGRFdmVudChkb2N1bWVudCwibG9hZCIsY2FsbGJhY2spfTt0aGlzLmFkZFVu bG9hZEV2ZW50PWZ1bmN0aW9uKGNhbGxiYWNrKXthZGRFdmVudChkb2N1bWVudCwi dW5sb2FkIixjYWxsYmFjayl9fTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5yMiIp O2d1YXJkaWFuLnIyLkpvYnNCb3hDb250cm9sbGVyPWZ1bmN0aW9uKHZpZXcsc2Vy dmljZSxsb2NhdGlvbklzVVNBKXt2YXIgaW5zdGFuY2U9dGhpczt2YXIgZmxhZz1m YWxzZTt0aGlzLmdldEpvYnNEYXRhRnJvbVNlcnZpY2U9ZnVuY3Rpb24oKXtpZigh ZmxhZyl7dmFyIGpzVXJsPXNlcnZpY2UuYnVpbGRVcmwoaW5zdGFuY2UuY3JlYXRl UmFuZG9tbHlOYW1lZEZ1bmN0aW9uKCkpO3NlcnZpY2UuYXR0YWNoU2NyaXB0VGFn KGpzVXJsKTtmbGFnPXRydWV9fTt0aGlzLmNyZWF0ZVJhbmRvbWx5TmFtZWRGdW5j dGlvbj1mdW5jdGlvbigpe3ZhciByYW5kb21OdW1iZXI9cGFyc2VJbnQoKE1hdGgu cmFuZG9tKCkqMTAwMDAwKSwxMCk7d2luZG93WyJkb1NvbWV0aGluZyIrcmFuZG9t TnVtYmVyXT1pbnN0YW5jZS5yZW5kZXJUZW1wbGF0ZTtyZXR1cm4iZG9Tb21ldGhp bmciK3JhbmRvbU51bWJlcgp9O3RoaXMucmVuZGVyVGVtcGxhdGU9ZnVuY3Rpb24o anNvbil7dmlldy5hZGRKb2JEYXRhVG9QYWdlKGpzb24pfTtpZighbG9jYXRpb25J c1VTQSl7dmlldy5hZGRFdmVudEhhbmRsZXIoaW5zdGFuY2UuZ2V0Sm9ic0RhdGFG cm9tU2VydmljZSl9ZWxzZXtpbnN0YW5jZS5nZXRKb2JzRGF0YUZyb21TZXJ2aWNl KCk7dmlldy5zaG93VVNBVGFiKCl9fTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5y MiIpO2d1YXJkaWFuLnIyLkpvYnNCb3hTZXJ2aWNlPWZ1bmN0aW9uKGNhdGVnb3J5 LHVzZXJpcCl7dmFyIGJhc2VVcmw9Imh0dHA6Ly9hcGkuaW5kZWVkLmNvbS9hZHMv YXBpc2VhcmNoPyI7dmFyIHB1Ymxpc2hlcj0iMjAyOTUyNDI2MjEwNTQzNCI7dmFy IGZvcm1hdD0ianNvbiI7dmFyIHVzZXJhZ2VudDtpZihuYXZpZ2F0b3ImJm5hdmln YXRvci51c2VyQWdlbnQpe3VzZXJhZ2VudD1uYXZpZ2F0b3IudXNlckFnZW50fWVs c2V7dXNlcmFnZW50PSJ1bmtub3duIn10aGlzLmF0dGFjaFNjcmlwdFRhZz1mdW5j dGlvbihqc1VybCl7d3JpdGVTY3JpcHQoImh0dHA6Ly93d3cuaW5kZWVkLmNvbS9h ZHMvYXBpcmVzdWx0cy5qcyIsdHJ1ZSxmdW5jdGlvbigpe3dyaXRlU2NyaXB0KGpz VXJsLHRydWUsZnVuY3Rpb24oKXt9KX0pfTt0aGlzLmJ1aWxkVXJsPWZ1bmN0aW9u KGNhbGxiYWNrKXt2YXIganNvblVybD1iYXNlVXJsKyJwdWJsaXNoZXI9IitwdWJs aXNoZXIrIiZxPSIrY2F0ZWdvcnkrIiZ1c2VyaXA9Iit1c2VyaXArIiZ1c2VyYWdl bnQ9Iit1c2VyYWdlbnQrIiZmb3JtYXQ9Iitmb3JtYXQrIiZjYWxsYmFjaz0iK2Nh bGxiYWNrKyImc3RhcnQ9MCZsaW1pdD0zIjtyZXR1cm4ganNvblVybH19O2Vuc3Vy ZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuSm9ic0JveFZpZXc9 ZnVuY3Rpb24odGFyZ2V0RWxlbWVudCx0ZW1wbGF0ZUVsZW1lbnROYW1lKXt2YXIg aW5zdGFuY2U9dGhpczt0aGlzLmFkZEV2ZW50SGFuZGxlcj1mdW5jdGlvbihqb2Jz Q2FsbGJhY2spe3ZhciB1c2FKb2JzQW5jaG9yPWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJnbG9iYWwtam9icy0yLWxpbmsiKTsKdmFyIHVzYUpvYnNUYWI9dXNhSm9i c0FuY2hvci5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYSIpWzBdO2FkZEV2ZW50KHVz YUpvYnNUYWIsImNsaWNrIixqb2JzQ2FsbGJhY2spfTt0aGlzLmFkZEpvYkRhdGFU b1BhZ2U9ZnVuY3Rpb24oanNvbil7dmFyIGpvYnNMaXN0PWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKHRhcmdldEVsZW1lbnQpO2pvYnNMaXN0LmlubmVySFRNTD1Ucmlt UGF0aC5wcm9jZXNzRE9NVGVtcGxhdGUodGVtcGxhdGVFbGVtZW50TmFtZSxqc29u KTt2YXIgbGlua3NUb0FkZFRyYWNraW5nVG89am9ic0xpc3QuZ2V0RWxlbWVudHNC eVRhZ05hbWUoImEiKTtmb3IodmFyIGk9MDtpPGxpbmtzVG9BZGRUcmFja2luZ1Rv Lmxlbmd0aDtpKyspe2FkZEV2ZW50KGxpbmtzVG9BZGRUcmFja2luZ1RvW2ldLCJt b3VzZWRvd24iLGpzb24ucmVzdWx0c1swXS5vbm1vdXNlZG93bil9fTt0aGlzLnNo b3dVU0FUYWI9ZnVuY3Rpb24oKXt2YXIgdXNhSm9ic1RhYj1qUSgiI2dsb2JhbC1q b2JzLTItbGluayBhIik7dmFyIHVrSm9ic1RhYj1qUSgiI2dsb2JhbC1qb2JzLTEt bGluayBhIik7dXNhSm9ic1RhYi5hdHRyKCJjbGFzcyIsImFjdGl2ZSIpO3VrSm9i c1RhYi5hdHRyKCJjbGFzcyIsImluYWN0aXZlIik7alEodWtKb2JzVGFiLmF0dHIo ImhyZWYiKSkuaGlkZSgpO2pRKHVzYUpvYnNUYWIuYXR0cigiaHJlZiIpKS5zaG93 KCl9fTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5yMiIpO2d1YXJkaWFuLnIyLk9i ZnVzY2F0aW9uU2VydmljZT1mdW5jdGlvbigpe3ZhciBpbnN0YW5jZT10aGlzO3Ro aXMuZW5jcnlwdFBhc3N3b3JkPWZ1bmN0aW9uKHBhc3N3b3JkLGNoYWxsZW5nZTIp e3JldHVybiBiaW5sMmhleChjb3JlX2htYWNfbWQ1KGNoYWxsZW5nZTIscGFzc3dv cmQpKX19O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIu UGllQ2hhcnRDb250cm9sbGVyPWZ1bmN0aW9uKHZpZXcscGllRGF0YSxjaGFydFR5 cGUsc2VjdGlvbkNvbG91cil7dmFyIGluc3RhbmNlPXRoaXM7CnRoaXMubWFqb3Jp dHlDb2xvdXI9Im5ld3MiO3ZhciBvbkxvYWQ9ZnVuY3Rpb24oKXtzZXRVcFZhcmlh Ymxlc09uVmlldygpO3NldHVwQ29sb3VycygpO2J1aWxkUGllKCl9O3ZhciBzZXRV cFZhcmlhYmxlc09uVmlldz1mdW5jdGlvbigpe3ZhciBjYW52YXNTaXplPXZpZXcu Z2V0Q2FudmFzRGltZW5zaW9ucygpO3ZhciByYWRpdXM9TWF0aC5taW4oY2FudmFz U2l6ZVswXSxjYW52YXNTaXplWzFdKS8yO3ZhciBjZW50cmVQb2ludD1bY2FudmFz U2l6ZVswXS8yLGNhbnZhc1NpemVbMV0vMl07dmlldy5zZXRSYWRpdXMocmFkaXVz KTt2aWV3LnNldENlbnRyZShjZW50cmVQb2ludCl9O3ZhciBidWlsZFBpZT1mdW5j dGlvbigpe3ZhciB0b3RhbFBpZVZhbHVlPWdldFRvdGFsUGllVmFsdWUoKTtpZih0 b3RhbFBpZVZhbHVlPT09MCl7dmlldy5kcmF3UGllU2xpY2UoMCwyKk1hdGguUEkp fWVsc2V7dmFyIHNvRmFyPTA7dmFyIG1pZFBvaW50PShNYXRoLlBJKjIqKHBpZURh dGFbMF0uc2xpY2VWYWx1ZS90b3RhbFBpZVZhbHVlKSkvMjttaWRQb2ludD1pc05h TihtaWRQb2ludCk/MDptaWRQb2ludDtmb3IodmFyIGk9MDtpPHBpZURhdGEubGVu Z3RoOysraSl7dmFyIGN1cnJlbnRTbGljZVZhbHVlPXBpZURhdGFbaV0uc2xpY2VW YWx1ZS90b3RhbFBpZVZhbHVlO2lmKGN1cnJlbnRTbGljZVZhbHVlPT09MSl7dmll dy5kcmF3UGllU2xpY2UoMCwyKk1hdGguUEksaW5zdGFuY2UubWFqb3JpdHlDb2xv dXIpO2JyZWFrfXZhciBzdGFydFBvaW50PU1hdGguUEkqKDIqc29GYXIpO3ZhciBv ZmZzZXRTdGFydFBvaW50PXN0YXJ0UG9pbnQtbWlkUG9pbnQrTWF0aC5QSTt2YXIg ZW5kUG9pbnQ9TWF0aC5QSSooMiooc29GYXIrY3VycmVudFNsaWNlVmFsdWUpKTt2 YXIgb2Zmc2V0RW5kUG9pbnQ9ZW5kUG9pbnQtbWlkUG9pbnQrTWF0aC5QSTtpZihj aGFydFR5cGU9PT0iYmluYXJ5Iil7dmFyIGNvbG91ck5hbWU9Z2V0TWFqb3JpdHlT bGljZShjdXJyZW50U2xpY2VWYWx1ZSl9ZWxzZXt2YXIgY29sb3VyTmFtZT1waWVE YXRhW2ldLmNvbG91ck5hbWUKfWlmKCEob2Zmc2V0U3RhcnRQb2ludD09PW9mZnNl dEVuZFBvaW50KSl7dmlldy5kcmF3UGllU2xpY2Uob2Zmc2V0U3RhcnRQb2ludCxv ZmZzZXRFbmRQb2ludCxjb2xvdXJOYW1lKX1zb0Zhcis9Y3VycmVudFNsaWNlVmFs dWV9fXZpZXcuY29tcGxldGVQaWVDaGFydFJlbmRlcmluZyhwaWVEYXRhLGNoYXJ0 VHlwZSl9O3ZhciBtYWpvcml0eVNsaWNlU2V0PWZhbHNlO3ZhciBnZXRNYWpvcml0 eVNsaWNlPWZ1bmN0aW9uKHNsaWNlVmFsdWUpe2lmKChzbGljZVZhbHVlPT09MC41 JiYhbWFqb3JpdHlTbGljZVNldCl8fHNsaWNlVmFsdWU+MC41KXttYWpvcml0eVNs aWNlU2V0PXRydWU7cmV0dXJuIGluc3RhbmNlLm1ham9yaXR5Q29sb3VyfXJldHVy biJiaW5hcnlQb2xsRGVmYXVsdENvbG91ciJ9O3ZhciBnZXRUb3RhbFBpZVZhbHVl PWZ1bmN0aW9uKCl7dmFyIHRvdGFsUGllVmFsdWU9MDtmb3IodmFyIGk9MDtpPHBp ZURhdGEubGVuZ3RoOysraSl7dG90YWxQaWVWYWx1ZSs9cGllRGF0YVtpXS5zbGlj ZVZhbHVlfXJldHVybiB0b3RhbFBpZVZhbHVlfTt0aGlzLmdldEhpZ2hsaWdodENv bG91cj1mdW5jdGlvbigpe2lmKHNlY3Rpb25Db2xvdXIpe3JldHVybiBzZWN0aW9u Q29sb3VyfWVsc2V7cmV0dXJuImJpbmFyeVBvbGxtYWpvcml0eUNvbG91ciJ9fTtm dW5jdGlvbiBzZXR1cENvbG91cnMoKXtpZihzZWN0aW9uQ29sb3VyKXt2aWV3LmNv bG91cnM9Z3VhcmRpYW4ucjIuc2VjdGlvbkNvbG91cnN9aW5zdGFuY2UubWFqb3Jp dHlDb2xvdXI9aW5zdGFuY2UuZ2V0SGlnaGxpZ2h0Q29sb3VyKCl9aWYodmlldy5j YW5Ccm93c2VyVXNlQ2FudmFzVGFncygpKXt2aWV3LmFkZExvYWRFdmVudChvbkxv YWQpfX07ZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5Q aWVDaGFydFZpZXc9ZnVuY3Rpb24ocGllQ2hhcnRJZCxwZXJjZW50SW1hZ2VTcmMs c2hvd1ZhbHVlcyl7dmFyIGNhbnZhcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChw aWVDaGFydElkKTsKaWYodHlwZW9mIHdpbmRvdy5HX3ZtbENhbnZhc01hbmFnZXIh PSJ1bmRlZmluZWQiKXtjYW52YXM9d2luZG93Lkdfdm1sQ2FudmFzTWFuYWdlci5p bml0RWxlbWVudChjYW52YXMpfXZhciByYWRpdXMsY2VudHJlLHJhZGlhbkRpZmZl cmVuY2U7dmFyIGlubmVyQ2lyY2xlUmFkaXVzPTMwO3RoaXMuY29sb3Vycz17IkRl bW9jcmF0aWMgVW5pb25pc3QgUGFydHkiOiIjOTkwMDAwIixJbmRlcGVuZGVudDoi I2ZmZmZmZiIsIkdyZWVuIFBhcnR5IGluIE5vcnRoZXJuIElyZWxhbmQiOiIjYTFi YzJmIiwiUHJvZ3Jlc3NpdmUgVW5pb25pc3QgUGFydHkiOiIjMDAwMDY2IiwiQWxs aWFuY2UgUGFydHkgb2YgTm9ydGhlcm4gSXJlbGFuZCI6IiNmZmZmMzMiLCJTaW5u IEZlaW4iOiIjMWViMTNiIiwiU29jaWFsIERlbW9jcmF0aWMgTGFib3VyIFBhcnR5 IjoiIzAwNzA1MSIsIlVsc3RlciBVbmlvbmlzdCBQYXJ0eSI6IiM5OTk5ZmYiLCJT Y290dGlzaCBHcmVlbiBQYXJ0eSI6IiM4NUNFMUQiLCJQbGFpZCBDeW1ydSI6IiNm YWQ2MmYiLCJVSyBJbmRlcGVuZGVuY2UgUGFydHkiOiIjOTIzMjhFIiwiQnJpdGlz aCBOYXRpb25hbCBQYXJ0eSI6IiMzMzMzOTkiLCJHcmVlbiBQYXJ0eSI6IiM2Njk5 MzMiLCJSZXNwZWN0IENvYWxpdGlvbiI6IiNmZjAwMDAiLExhYm91cjoiI2NjMDAw MCIsQ29uc2VydmF0aXZlOiIjMDQ4NWJlIiwiTGliZXJhbCBEZW1vY3JhdCI6IiNm ZmIzMTYiLCJTY290dGlzaCBOYXRpb25hbCBQYXJ0eSI6IiNmZmZmOTkiLE90aGVy OiIjZDhkOGQ4IixiaW5hcnlQb2xsRGVmYXVsdENvbG91cjoiIzY2NjY2NiIsYmlu YXJ5UG9sbG1ham9yaXR5Q29sb3VyOiIjRkYzQTAwIn07dmFyIGRvZXNDYW52YXNI YXZlR2V0Q29udGV4dD1mdW5jdGlvbigpe3JldHVybiBjYW52YXMuZ2V0Q29udGV4 dH07aWYoZG9lc0NhbnZhc0hhdmVHZXRDb250ZXh0KCkpe3ZhciBjb250ZXh0PWNh bnZhcy5nZXRDb250ZXh0KCIyZCIpfXRoaXMuYWRkTG9hZEV2ZW50PWZ1bmN0aW9u KGNhbGxiYWNrKXthZGRFdmVudChkb2N1bWVudCwibG9hZCIsY2FsbGJhY2spCn07 dGhpcy5jYW5Ccm93c2VyVXNlQ2FudmFzVGFncz1kb2VzQ2FudmFzSGF2ZUdldENv bnRleHQ7dGhpcy5nZXRDYW52YXNEaW1lbnNpb25zPWZ1bmN0aW9uKCl7cmV0dXJu W2NhbnZhcy53aWR0aCxjYW52YXMuaGVpZ2h0XX07dGhpcy5zZXRSYWRpdXM9ZnVu Y3Rpb24obmV3UmFkaXVzKXtyYWRpdXM9bmV3UmFkaXVzfTt0aGlzLnNldENlbnRy ZT1mdW5jdGlvbihuZXdDZW50cmUpe2NlbnRyZT1uZXdDZW50cmV9O3RoaXMuZHJh d1BpZVNsaWNlPWZ1bmN0aW9uKHN0YXJ0UG9pbnQsZW5kUG9pbnQsY29sb3VyTmFt ZSl7Y29udGV4dC5iZWdpblBhdGgoKTtjb250ZXh0Lm1vdmVUbyhjZW50cmVbMF0s Y2VudHJlWzFdKTtjb250ZXh0LmFyYyhjZW50cmVbMF0sY2VudHJlWzFdLHJhZGl1 cyxzdGFydFBvaW50LGVuZFBvaW50LGZhbHNlKTtjb250ZXh0LmxpbmVUbyhjZW50 cmVbMF0sY2VudHJlWzFdKTtjb250ZXh0LmNsb3NlUGF0aCgpO2NvbnRleHQuZmls bFN0eWxlPSh0aGlzLmNvbG91cnNbY29sb3VyTmFtZV0hPW51bGwmJnRoaXMuY29s b3Vyc1tjb2xvdXJOYW1lXSE9IiIpP3RoaXMuY29sb3Vyc1tjb2xvdXJOYW1lXToi Izk5OSI7Y29udGV4dC5maWxsKCl9O3RoaXMuY29tcGxldGVQaWVDaGFydFJlbmRl cmluZz1mdW5jdGlvbihwaWVEYXRhLGNoYXJ0VHlwZSl7cGxhY2VJbm5lckNpcmNs ZShjaGFydFR5cGUpO2FkZFBlcmNlbnRhZ2VJbWFnZSgpO2lmKHNob3dWYWx1ZXMp e3BsYWNlUGVyY2VudGFnZVZhbHVlTGFiZWxzKHBpZURhdGEpfX07dmFyIHBsYWNl SW5uZXJDaXJjbGU9ZnVuY3Rpb24oY2hhcnRUeXBlKXtjb250ZXh0LmJlZ2luUGF0 aCgpO2NvbnRleHQubW92ZVRvKGNlbnRyZVswXSxjZW50cmVbMV0pO2NvbnRleHQu YXJjKGNlbnRyZVswXSxjZW50cmVbMV0saW5uZXJDaXJjbGVSYWRpdXMsMCwyKk1h dGguUEksZmFsc2UpO2NvbnRleHQubGluZVRvKGNlbnRyZVswXSxjZW50cmVbMV0p O2NvbnRleHQuY2xvc2VQYXRoKCk7aWYoY2hhcnRUeXBlPT09ImJpbmFyeSIpe2Nv bnRleHQuZmlsbFN0eWxlPSIjRkZGRkZGIgp9ZWxzZXtjb250ZXh0LmZpbGxTdHls ZT0iI2Q4ZDhkOCJ9Y29udGV4dC5maWxsKCl9O3ZhciBhZGRQZXJjZW50YWdlSW1h Z2U9ZnVuY3Rpb24oKXt2YXIgaW1nPW5ldyBJbWFnZSgpO2ltZy5vbmxvYWQ9ZnVu Y3Rpb24oKXtpZihndWFyZGlhbi5yMi5icm93c2VyLmlzSUU2fHxndWFyZGlhbi5y Mi5icm93c2VyLmlzSUU3KXtjb250ZXh0LmRyYXdJbWFnZShpbWcsY2VudHJlWzBd LTIxLGNlbnRyZVsxXS0xOSl9ZWxzZXtjb250ZXh0LmRyYXdJbWFnZShpbWcsY2Vu dHJlWzBdLTE3LGNlbnRyZVsxXS0xNSl9fTtpbWcuc3JjPXBlcmNlbnRJbWFnZVNy Y307dmFyIHBsYWNlUGVyY2VudGFnZVZhbHVlTGFiZWxzPWZ1bmN0aW9uKHBpZURh dGEpe3ZhciBjb250YWluZXJEaXY9Z2V0QW5jZXN0b3JPZlR5cGUoY2FudmFzLCJk aXYiKTt2YXIgZGl2VG9wPXJhZGl1cy04O3ZhciBkaXZXaWR0aD0ocmFkaXVzLWlu bmVyQ2lyY2xlUmFkaXVzKTt2YXIgZGl2cz1bImxlZnQiLCJyaWdodCJdO2Zvcih2 YXIgaT0wO2k8ZGl2cy5sZW5ndGg7KytpKXt2YXIgbXlEaXY9ZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgiZGl2Iik7bXlEaXYuaW5uZXJIVE1MPXBpZURhdGFbaV0uc2xp Y2VWYWx1ZTtteURpdi5jbGFzc05hbWU9InBpZS12YWx1ZXMiO215RGl2LnN0eWxl LnRvcD1kaXZUb3ArInB4IjtteURpdi5zdHlsZS53aWR0aD1kaXZXaWR0aCsicHgi O215RGl2LnN0eWxlLmxlZnQ9KGk9PT0wKT8iMCI6KGNhbnZhcy53aWR0aC1kaXZX aWR0aCkrInB4Ijtjb250YWluZXJEaXYuYXBwZW5kQ2hpbGQobXlEaXYpfX19O2Vu c3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuUG9saXRpY3NU d2l0dGVyQ29udHJvbGxlcj1mdW5jdGlvbih2aWV3LHNlcnZpY2Upe3ZhciBpbnN0 YW5jZT10aGlzO3ZhciByZW5kZXJUZW1wbGF0ZT1mdW5jdGlvbihkYXRhKXtmb3Io dmFyIGk9MDtpPGRhdGEucmVzdWx0cy5sZW5ndGg7aSsrKXt2YXIgcmVsYXRpdmVU aW1lPWluc3RhbmNlLmdldFJlbGF0aXZlVGltZShkYXRhLnJlc3VsdHNbaV0uY3Jl YXRlZF9hdCk7CmRhdGEucmVzdWx0c1tpXS5jcmVhdGVkX2F0PXJlbGF0aXZlVGlt ZTt2YXIgdW5lc2NhcGVkRnJvbT1pbnN0YW5jZS51bmVzY2FwZUZyb20oZGF0YS5y ZXN1bHRzW2ldLnNvdXJjZSk7ZGF0YS5yZXN1bHRzW2ldLnNvdXJjZT11bmVzY2Fw ZWRGcm9tO3ZhciBsaW5raWZpZWRMaW5rcz1pbnN0YW5jZS5saW5raWZ5TGlua3Mo ZGF0YS5yZXN1bHRzW2ldLnRleHQpO3ZhciBsaW5raWZpZWRBdFNpZ25zQW5kTGlu a3M9aW5zdGFuY2UubGlua2lmeUF0U2lnbnMobGlua2lmaWVkTGlua3MpO2RhdGEu cmVzdWx0c1tpXS50ZXh0PWxpbmtpZmllZEF0U2lnbnNBbmRMaW5rc312aWV3LmFk ZFR3ZWV0c1RvUGFnZShkYXRhKX07dGhpcy5nZXRUd2VldHNGcm9tU2VydmljZT1m dW5jdGlvbigpe3NlcnZpY2UuZ2V0VHdlZXRzRm9yVXNlcnMocmVuZGVyVGVtcGxh dGUpfTt0aGlzLmdldFJlbGF0aXZlVGltZT1mdW5jdGlvbih0aW1lX3ZhbHVlKXt2 YXIgcGFyc2VkX2RhdGU9RGF0ZS5wYXJzZSh0aW1lX3ZhbHVlKTt2YXIgcmVsYXRp dmVfdG89KGFyZ3VtZW50cy5sZW5ndGg+MSk/YXJndW1lbnRzWzFdOm5ldyBEYXRl KCk7dmFyIGRlbHRhPXBhcnNlSW50KChyZWxhdGl2ZV90by5nZXRUaW1lKCktcGFy c2VkX2RhdGUpLzEwMDApO2lmKGRlbHRhPDYwKXtyZXR1cm4ibGVzcyB0aGFuIGEg bWludXRlIGFnbyJ9ZWxzZXtpZihkZWx0YTwxMjApe3JldHVybiJhYm91dCBhIG1p bnV0ZSBhZ28ifWVsc2V7aWYoZGVsdGE8KDQ1KjYwKSl7cmV0dXJuKHBhcnNlSW50 KGRlbHRhLzYwKSkudG9TdHJpbmcoKSsiIG1pbnV0ZXMgYWdvIn1lbHNle2lmKGRl bHRhPCgxMjAqNjApKXtyZXR1cm4iYWJvdXQgYW4gaG91ciBhZ28ifWVsc2V7aWYo ZGVsdGE8KDI0KjYwKjYwKSl7cmV0dXJuImFib3V0ICIrKHBhcnNlSW50KGRlbHRh LzM2MDApKS50b1N0cmluZygpKyIgaG91cnMgYWdvIn1lbHNle2lmKGRlbHRhPCg0 OCo2MCo2MCkpe3JldHVybiIxIGRheSBhZ28ifWVsc2V7cmV0dXJuKHBhcnNlSW50 KGRlbHRhLzg2NDAwKSkudG9TdHJpbmcoKSsiIGRheXMgYWdvIgp9fX19fX19O3Ro aXMudW5lc2NhcGVGcm9tPWZ1bmN0aW9uKGZyb21UZXh0KXt2YXIgZmluYWxUZXh0 PWZyb21UZXh0LnJlcGxhY2UoLyZxdW90Oy9nLCciJyk7ZmluYWxUZXh0PWZpbmFs VGV4dC5yZXBsYWNlKC8mbHQ7L2csIjwiKTtmaW5hbFRleHQ9ZmluYWxUZXh0LnJl cGxhY2UoLyZndDsvZywiPiIpO3JldHVybiBmaW5hbFRleHR9O3RoaXMubGlua2lm eUF0U2lnbnM9ZnVuY3Rpb24oc3RyaW5nVG9MaW5raWZ5KXt2YXIgcGF0dGVybj0v QFthLXpBLVowLTldKy9nO3ZhciBtYXRjaGVzPXN0cmluZ1RvTGlua2lmeS5tYXRj aChwYXR0ZXJuKTtpZihtYXRjaGVzIT1udWxsKXtmb3IodmFyIGk9MDtpPG1hdGNo ZXMubGVuZ3RoO2krKyl7dmFyIG1hdGNoZWRUZXh0PW1hdGNoZXNbaV07dmFyIG1h dGNoZWRUZXh0V2l0aG91dEF0U2lnbj1tYXRjaGVkVGV4dC5zdWJzdHJpbmcoMSk7 dmFyIGxpbmtpZmllZFN0cmluZz0nPGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29t LycrbWF0Y2hlZFRleHRXaXRob3V0QXRTaWduKyciPicrbWF0Y2hlZFRleHQrIjwv YT4iO3N0cmluZ1RvTGlua2lmeT1zdHJpbmdUb0xpbmtpZnkucmVwbGFjZShtYXRj aGVkVGV4dCxsaW5raWZpZWRTdHJpbmcpfX1yZXR1cm4gc3RyaW5nVG9MaW5raWZ5 fTt0aGlzLmxpbmtpZnlMaW5rcz1mdW5jdGlvbihzdHJpbmdUb0xpbmtpZnkpe3Zh ciBwYXR0ZXJuPS9odHRwOlwvXC9cUyovZzt2YXIgbWF0Y2hlcz1zdHJpbmdUb0xp bmtpZnkubWF0Y2gocGF0dGVybik7aWYobWF0Y2hlcyE9bnVsbCl7Zm9yKHZhciBp PTA7aTxtYXRjaGVzLmxlbmd0aDtpKyspe3ZhciBtYXRjaGVkVGV4dD1tYXRjaGVz W2ldO3ZhciBsaW5raWZpZWRTdHJpbmc9JzxhIGhyZWY9IicrbWF0Y2hlZFRleHQr JyI+JyttYXRjaGVkVGV4dCsiPC9hPiI7c3RyaW5nVG9MaW5raWZ5PXN0cmluZ1Rv TGlua2lmeS5yZXBsYWNlKG1hdGNoZWRUZXh0LGxpbmtpZmllZFN0cmluZyl9fXJl dHVybiBzdHJpbmdUb0xpbmtpZnl9O2luc3RhbmNlLmdldFR3ZWV0c0Zyb21TZXJ2 aWNlKCkKfTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5yMiIpO2d1YXJkaWFuLnIy LlBvbGl0aWNzVHdpdHRlclNlcnZpY2U9ZnVuY3Rpb24obGltaXQsdXNlcnMsdG9w aWMpe3RoaXMuZ2V0VHdlZXRzRm9yVXNlcnM9ZnVuY3Rpb24oY2FsbGJhY2spe3Zh ciBnb29kTGlzdD1mYWxzZTt1c2Vycz1qUS50cmltKHVzZXJzKTt1c2Vycz11c2Vy cy5yZXBsYWNlKC9ccysvZywiICIpO3ZhciB1c2VyTGlzdD11c2Vycy5zcGxpdCgi ICIpO3ZhciB1c2VyU3RyaW5nPSIiO2Zvcih2YXIgaT0wO2k8dXNlckxpc3QubGVu Z3RoO2krKyl7dXNlclN0cmluZz11c2VyU3RyaW5nKyJmcm9tJTNBIit1c2VyTGlz dFtpXTt1c2VyU3RyaW5nPXVzZXJTdHJpbmcrIitPUisifXVzZXJTdHJpbmc9dXNl clN0cmluZy5zdWJzdHJpbmcoMCx1c2VyU3RyaW5nLmxhc3RJbmRleE9mKCIrT1Ir IikpO3ZhciB0b3BpY1N0cmluZz0iIjtpZih0b3BpYyE9bnVsbCYmdG9waWMhPSIi KXt0b3BpY1N0cmluZz0iKyslMjMiK3RvcGljfWpRLmdldEpTT04oImh0dHA6Ly9z ZWFyY2gudHdpdHRlci5jb20vc2VhcmNoLmpzb24/cT0iK3VzZXJTdHJpbmcrdG9w aWNTdHJpbmcrIiZycHA9IitsaW1pdCsiJmNhbGxiYWNrPT8iLGNhbGxiYWNrKX19 O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuUG9saXRp Y3NUd2l0dGVyVmlldz1mdW5jdGlvbih0YXJnZXRFbGVtZW50LHRlbXBsYXRlRWxl bWVudE5hbWUpe3ZhciBpbnN0YW5jZT10aGlzO3RoaXMuYWRkVHdlZXRzVG9QYWdl PWZ1bmN0aW9uKHJlc3VsdExpc3Qpe2lmKGpRKCJ1bCMiK3RhcmdldEVsZW1lbnQp Lmxlbmd0aCl7alEoIiMiK3RhcmdldEVsZW1lbnQpLmFwcGVuZChUcmltUGF0aC5w cm9jZXNzRE9NVGVtcGxhdGUodGVtcGxhdGVFbGVtZW50TmFtZSxyZXN1bHRMaXN0 KSl9ZWxzZXtqUSgiIyIrdGFyZ2V0RWxlbWVudCkuYWZ0ZXIoVHJpbVBhdGgucHJv Y2Vzc0RPTVRlbXBsYXRlKHRlbXBsYXRlRWxlbWVudE5hbWUscmVzdWx0TGlzdCkp Cn19fTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5yMiIpO2d1YXJkaWFuLnIyLlBy b2ZpbGVMaW5rQ29udHJvbGxlcj1mdW5jdGlvbihwcm9maWxlTGlua1ZpZXcsdXNl clByb2ZpbGVVcmwpe2Z1bmN0aW9uIHNldFVzZXJQcm9maWxlTGluaygpe3ZhciBh dENvb2tpZT1wcm9maWxlTGlua1ZpZXcucmVhZEFUQ29va2llKCk7aWYoYXRDb29r aWUpe3ZhciB1c2VyTmFtZVJlZ0V4cD0vXCZhPShbXHddKilcJi87dmFyIHVzZXJO YW1lPWF0Q29va2llLm1hdGNoKHVzZXJOYW1lUmVnRXhwKVsxXTt2YXIgY29tcGxl dGVVcmw9dXNlclByb2ZpbGVVcmwrdXNlck5hbWU7cHJvZmlsZUxpbmtWaWV3LnNl dFVzZXJQcm9maWxlTGluayhjb21wbGV0ZVVybCl9fWlmKHByb2ZpbGVMaW5rVmll dy5pc1VzZXJMb2dnZWRJbigpKXtwcm9maWxlTGlua1ZpZXcuYWRkTG9hZEV2ZW50 KHNldFVzZXJQcm9maWxlTGluayl9fTtlbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5y MiIpO2d1YXJkaWFuLnIyLlByb2ZpbGVMaW5rVmlldz1mdW5jdGlvbihlbGVtZW50 TmFtZSl7dGhpcy5yZWFkQVRDb29raWU9ZnVuY3Rpb24oKXtyZXR1cm4gcmVhZENv b2tpZSgiYXQiKX07dGhpcy5hZGRMb2FkRXZlbnQ9ZnVuY3Rpb24oY2FsbGJhY2sp e2FkZEV2ZW50KGRvY3VtZW50LCJsb2FkIixjYWxsYmFjayl9O3RoaXMuc2V0VXNl clByb2ZpbGVMaW5rPWZ1bmN0aW9uKHVybCl7dmFyIGFuY2hvcj1kb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgicHJvZmlsZS1saW5rIik7aWYoYW5jaG9yKXthbmNob3Iu aHJlZj11cmw7dmFyIHByb2ZpbGVMaW5rSG9sZGVyPWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJwcm9maWxlLWxpbmstaG9sZGVyIik7cHJvZmlsZUxpbmtIb2xkZXIu c3R5bGUuZGlzcGxheT0iIn19O3RoaXMuaXNVc2VyTG9nZ2VkSW49ZnVuY3Rpb24o KXtyZXR1cm4gaXNVc2VyTG9nZ2VkSW50b1JlZ1BzcygpfX07ZW5zdXJlUGFja2Fn ZSgiZ3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5TaWduSW5Db250cm9sbGVyPWZ1 bmN0aW9uKHNpZ25JblZpZXcsc2lnbkluTGlzdGVuZXJzLG9iZnVzY2F0aW9uU2Vy dmljZSxwb3B1cFVybCl7dmFyIGluc3RhbmNlPXRoaXM7CnZhciBzYXZlZERlc3Rp bmF0aW9uVXJsO3RoaXMuc3VibWl0U2lnbkluRm9ybT1mdW5jdGlvbihldmVudCl7 dmFyIGZvcm1GaWVsZHM9c2lnbkluVmlldy5nZXRQYXNzd29yZEFuZENoYWxsZW5n ZTJGb3JtRmllbGRzKCk7dmFyIG9iZnVzY2F0ZWRfdG9rZW5zPW9iZnVzY2F0aW9u U2VydmljZS5lbmNyeXB0UGFzc3dvcmQoZm9ybUZpZWxkcy5wYXNzd29yZCxmb3Jt RmllbGRzLmNoYWxsZW5nZTIpO3ZhciBoaWRkZW5fcGFzc3dvcmQ9c2lnbkluVmll dy5oaWRlUGFzc3dvcmQoKTt1cmxTdGFjay5jbGVhclVybFN0YWNrKCk7dXJsU3Rh Y2sucHVzaFVybE9udG9TdGFjayhzYXZlZERlc3RpbmF0aW9uVXJsKTtzaWduSW5W aWV3LnN1Ym1pdEZvcm0ob2JmdXNjYXRlZF90b2tlbnMsaGlkZGVuX3Bhc3N3b3Jk KTtndWFyZGlhbi5yMi5ldmVudC5zdG9wKGV2ZW50KTtyZXR1cm4gZmFsc2V9O3Ro aXMuZm9yd2FyZFRvUmVnaXN0cmF0aW9uUGFnZT1mdW5jdGlvbihldmVudCl7dXJs U3RhY2suY2xlYXJVcmxTdGFjaygpO3VybFN0YWNrLnB1c2hVcmxPbnRvU3RhY2so c2F2ZWREZXN0aW5hdGlvblVybCl9O3RoaXMub3BlblNpZ25JbkJveD1mdW5jdGlv bihldmVudCxnZXRUYXJnZXRVcmxDYWxsYmFjayxnZXRDbGFzc05hbWVDYWxsYmFj ayl7c2F2ZWREZXN0aW5hdGlvblVybD1nZXRUYXJnZXRVcmxDYWxsYmFjayhldmVu dCk7c2lnbkluVmlldy5jcmVhdGVTY3JpcHRFbGVtZW50cygpO3NpZ25JblZpZXcu Y3JlYXRlRGl2RWxlbWVudHMoKTt2YXIgcGFja2FnZUNvZGU9c2lnbkluVmlldy5n ZXRQYWNrYWdlQ29kZShldmVudCxnZXRDbGFzc05hbWVDYWxsYmFjayk7dmFyIHBv cHVwVXJsV2l0aFBhY2thZ2VDb2RlPXBvcHVwVXJsO2lmKHBhY2thZ2VDb2RlKXtw b3B1cFVybFdpdGhQYWNrYWdlQ29kZT1wb3B1cFVybCsiP3BhY2thZ2U9IitwYWNr YWdlQ29kZX1zaG93U2lnbkluQm94KHBvcHVwVXJsV2l0aFBhY2thZ2VDb2RlKTtn dWFyZGlhbi5yMi5ldmVudC5zdG9wKGV2ZW50KTsKcmV0dXJuIGZhbHNlfTt0aGlz LnB1c2hMb2NhdGlvblRvVXJsU3RhY2s9ZnVuY3Rpb24oKXt2YXIgZG9jdW1lbnRM b2NhdGlvbj1zaWduSW5WaWV3LmdldERvY3VtZW50TG9jYXRpb24oKTt1cmxTdGFj ay5jbGVhclVybFN0YWNrKCk7dXJsU3RhY2sucHVzaFVybE9udG9TdGFjayhkb2N1 bWVudExvY2F0aW9uKX07dGhpcy5jbG9zZVNpZ25JbkJveD1mdW5jdGlvbihldmVu dCl7c2lnbkluVmlldy5jbG9zZURpYWxvZ0JveCgpO2d1YXJkaWFuLnIyLmV2ZW50 LnN0b3AoZXZlbnQpO3JldHVybiBmYWxzZX07ZnVuY3Rpb24gc2hvd1NpZ25JbkJv eChyZXF1ZXN0VXJsKXt2YXIgYWpheFJlcXVlc3Q9bmV3IGd1YXJkaWFuLnIyLmFq YXguUmVxdWVzdChyZXF1ZXN0VXJsLHttZXRob2Q6ImdldCIsb25TdWNjZXNzOmlu c3RhbmNlLnNob3dTaWduSW5Cb3hTdWNjZXNzLG9uRmFpbHVyZTpmdW5jdGlvbih0 cmFuc3BvcnQpe3NpZ25JblZpZXcudXBkYXRlQW5kU2hvd0RpYWxvZ0JveCh0cmFu c3BvcnQucmVzcG9uc2VUZXh0KTtzaWduSW5WaWV3LmFkZFNpZ25JbkZvcm1MaXN0 ZW5lcnMoaW5zdGFuY2Uuc3VibWl0U2lnbkluRm9ybSxpbnN0YW5jZS5jbG9zZVNp Z25JbkJveCxpbnN0YW5jZS5mb3J3YXJkVG9SZWdpc3RyYXRpb25QYWdlKX19KX10 aGlzLnNob3dTaWduSW5Cb3hTdWNjZXNzPWZ1bmN0aW9uKHRyYW5zcG9ydCl7c2ln bkluVmlldy51cGRhdGVBbmRTaG93RGlhbG9nQm94KHRyYW5zcG9ydC5yZXNwb25z ZVRleHQpO3NpZ25JblZpZXcuYWRkU2lnbkluRm9ybUxpc3RlbmVycyhpbnN0YW5j ZS5zdWJtaXRTaWduSW5Gb3JtLGluc3RhbmNlLmNsb3NlU2lnbkluQm94LGluc3Rh bmNlLmZvcndhcmRUb1JlZ2lzdHJhdGlvblBhZ2UpO3NpZ25JblZpZXcuc2V0Rm9j dXMoKX07dGhpcy5hZGRMaXN0ZW5lcnNUbz1mdW5jdGlvbihlbGVtZW50KXtpZigh c2lnbkluVmlldy5pc1VzZXJMb2dnZWRJbigpKXtpZighZWxlbWVudCl7ZWxlbWVu dD1zaWduSW5WaWV3LmdldERvY3VtZW50Qm9keSgpCn1zaWduSW5MaXN0ZW5lcnMu YWRkUmVnaXN0ZXJMaXN0ZW5lcnMoZWxlbWVudCxpbnN0YW5jZS5wdXNoTG9jYXRp b25Ub1VybFN0YWNrKTtzaWduSW5MaXN0ZW5lcnMuYWRkTG9naW5MaXN0ZW5lcnMo ZWxlbWVudCxpbnN0YW5jZS5vcGVuU2lnbkluQm94KX19O2lmKCFzaWduSW5WaWV3 LmlzVXNlckxvZ2dlZEluKCkpe3NpZ25JblZpZXcuYWRkTG9hZEV2ZW50KGluc3Rh bmNlLmFkZExpc3RlbmVyc1RvKX19O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFuLnIy Iik7Z3VhcmRpYW4ucjIuU2lnbkluTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dGhpcy5h ZGRMb2dpbkxpc3RlbmVycz1mdW5jdGlvbihpbkVsZW1lbnQsb3BlblNpZ25JbkJv eENhbGxiYWNrKXthZGRDbGlja0xpc3RlbmVyc1RvTWF0Y2hpbmdFbGVtZW50cyhp bkVsZW1lbnQsImEuc2FtZS1wYWdlLWxvZ2luLXJlcXVpcmVkIixmdW5jdGlvbihl dmVudCl7b3BlblNpZ25JbkJveENhbGxiYWNrKGV2ZW50LGdldFRhcmdldFVybEZy b21TYW1lUGFnZUxvZ2luQW5jaG9yLGdldENsYXNzTmFtZUZyb21TYW1lUGFnZUxv Z2luQW5jaG9yKX0pO2FkZENsaWNrTGlzdGVuZXJzVG9NYXRjaGluZ0VsZW1lbnRz KGluRWxlbWVudCwiYS5hbmNob3ItYmFzZWQtbG9naW4tcmVxdWlyZWQiLGZ1bmN0 aW9uKGV2ZW50KXtvcGVuU2lnbkluQm94Q2FsbGJhY2soZXZlbnQsZ2V0VGFyZ2V0 VXJsRnJvbUFuY2hvckJhc2VkTG9naW4sZ2V0Q2xhc3NOYW1lRnJvbUFuY2hvckJh c2VkTG9naW4pfSk7YWRkQ2xpY2tMaXN0ZW5lcnNUb01hdGNoaW5nRWxlbWVudHMo aW5FbGVtZW50LCJmb3JtIGlucHV0LmZvcm0tYmFzZWQtbG9naW4tcmVxdWlyZWQi LGZ1bmN0aW9uKGV2ZW50KXtvcGVuU2lnbkluQm94Q2FsbGJhY2soZXZlbnQsZ2V0 VGFyZ2V0VXJsRnJvbUZvcm1CYXNlZExvZ2luLGdldENsYXNzTmFtZUZyb21Gb3Jt QmFzZWRMb2dpbil9KX07dGhpcy5hZGRSZWdpc3Rlckxpc3RlbmVycz1mdW5jdGlv bihpbkVsZW1lbnQscmVnaXN0ZXJDYWxsYmFjayl7YWRkQ2xpY2tMaXN0ZW5lcnNU b01hdGNoaW5nRWxlbWVudHMoaW5FbGVtZW50LCJhLnJlZ2lzdGVyLXJlcXVpcmVk IixyZWdpc3RlckNhbGxiYWNrKQp9O2Z1bmN0aW9uIGdldFRhcmdldFVybEZyb21T YW1lUGFnZUxvZ2luQW5jaG9yKGV2ZW50KXtyZXR1cm4gZG9jdW1lbnQubG9jYXRp b259ZnVuY3Rpb24gZ2V0Q2xhc3NOYW1lRnJvbVNhbWVQYWdlTG9naW5BbmNob3Io ZXZlbnQpe3JldHVybiBnZXRBbmNlc3Rvck9mVHlwZShndWFyZGlhbi5yMi5ldmVu dC5nZXRFbGVtZW50KGV2ZW50KSwiYSIpLmNsYXNzTmFtZX1mdW5jdGlvbiBnZXRU YXJnZXRVcmxGcm9tQW5jaG9yQmFzZWRMb2dpbihldmVudCl7cmV0dXJuIGdldEFu Y2VzdG9yT2ZUeXBlKGd1YXJkaWFuLnIyLmV2ZW50LmdldEVsZW1lbnQoZXZlbnQp LCJhIikuaHJlZn1mdW5jdGlvbiBnZXRDbGFzc05hbWVGcm9tQW5jaG9yQmFzZWRM b2dpbihldmVudCl7cmV0dXJuIGdldEFuY2VzdG9yT2ZUeXBlKGd1YXJkaWFuLnIy LmV2ZW50LmdldEVsZW1lbnQoZXZlbnQpLCJhIikuY2xhc3NOYW1lfWZ1bmN0aW9u IGdldFRhcmdldFVybEZyb21Gb3JtQmFzZWRMb2dpbihldmVudCl7cmV0dXJuIGdl dEFuY2VzdG9yT2ZUeXBlKGd1YXJkaWFuLnIyLmV2ZW50LmdldEVsZW1lbnQoZXZl bnQpLCJmb3JtIikuYWN0aW9ufWZ1bmN0aW9uIGdldENsYXNzTmFtZUZyb21Gb3Jt QmFzZWRMb2dpbihldmVudCl7cmV0dXJuIGd1YXJkaWFuLnIyLmV2ZW50LmdldEVs ZW1lbnQoZXZlbnQpLmNsYXNzTmFtZX19O2Vuc3VyZVBhY2thZ2UoImd1YXJkaWFu LnIyIik7Z3VhcmRpYW4ucjIuU2lnbkluVmlldz1mdW5jdGlvbihzY3JpcHRMb2Nh dGlvbixjb21tdW5pdGllc1NpdGUpe3ZhciBpbnN0YW5jZT10aGlzO3ZhciBkdW1t eT0iLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSI7dmFy IGRpYWxvZ0JveERpdklkPSJzaWduaW4tZGl2Ijt2YXIgd3JhcHBlckRpdklkPSJz aWduaW4tZGl2LXdyYXBwZXIiO3ZhciBkaWFsb2dCb3g9bmV3IGd1YXJkaWFuLnIy LkRpYWxvZ0JveCgpO3RoaXMuZ2V0RG9jdW1lbnRCb2R5PWZ1bmN0aW9uKCl7cmV0 dXJuIGRvY3VtZW50LmJvZHkKfTt0aGlzLmFkZExvYWRFdmVudD1mdW5jdGlvbihj YWxsYmFjayl7YWRkRXZlbnQoZG9jdW1lbnQsImxvYWQiLGNhbGxiYWNrKX07dGhp cy5hZGRTaWduSW5Gb3JtTGlzdGVuZXJzPWZ1bmN0aW9uKHN1Ym1pdENhbGxiYWNr LGNsb3NlQ2FsbGJhY2sscmVnaXN0ZXJDYWxsYmFjayl7YWRkRXZlbnQoZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInBvcFVwU2lnbkluIiksImNsaWNrIixzdWJtaXRD YWxsYmFjayk7YWRkRXZlbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2lu LWNsb3NlLWxpbmsiKSwiY2xpY2siLGNsb3NlQ2FsbGJhY2spO2FkZEV2ZW50KGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW5jZWxTaWduSW4iKSwiY2xpY2siLGNs b3NlQ2FsbGJhY2spO2FkZEV2ZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz aWduaW4tcG9wdXAtcmVnaXN0cmF0aW9uLWxpbmsiKSwiY2xpY2siLHJlZ2lzdGVy Q2FsbGJhY2spfTt0aGlzLmhpZGVQYXNzd29yZD1mdW5jdGlvbigpe3JldHVybiBk dW1teS5zdWJzdHIoMCxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5saW5lLXBh c3N3b3JkIikudmFsdWUubGVuZ3RoKX07dGhpcy5nZXRQYXNzd29yZEFuZENoYWxs ZW5nZTJGb3JtRmllbGRzPWZ1bmN0aW9uKCl7cmV0dXJue2NoYWxsZW5nZTI6ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkFVX0NIQUxMRU5HRTIiKS52YWx1ZSxwYXNz d29yZDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5saW5lLXBhc3N3b3JkIiku dmFsdWV9fTt0aGlzLnN1Ym1pdEZvcm09ZnVuY3Rpb24ob2JmdXNjYXRlZF90b2tl bnMsaGlkZGVuX3Bhc3N3b3JkKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQVVf UEFTU1dPUkRfSEFTSCIpLnZhbHVlPW9iZnVzY2F0ZWRfdG9rZW5zO2RvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJpbmxpbmUtcGFzc3dvcmQiKS52YWx1ZT1oaWRkZW5f cGFzc3dvcmQ7aWYoY29tbXVuaXRpZXNTaXRlJiZkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgicmVkaXJlY3QiKSl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZGly ZWN0IikudmFsdWU9d2luZG93LmxvY2F0aW9uLmhyZWYKfWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCJyZWdwc3MxIikuc3VibWl0KCl9O3RoaXMuY3JlYXRlU2NyaXB0 RWxlbWVudHM9ZnVuY3Rpb24oKXt3cml0ZVNjcmlwdChzY3JpcHRMb2NhdGlvbix0 cnVlLGZ1bmN0aW9uKCl7fSl9O3RoaXMuY3JlYXRlRGl2RWxlbWVudHM9ZnVuY3Rp b24oKXtjcmVhdGVXcmFwcGVyRGl2KCk7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKGRpYWxvZ0JveERpdklkKSl7dmFyIGRpYWxvZ0JveERpdkVsZW1lbnQ9ZG9j dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZGlhbG9nQm94RGl2RWxlbWVudC5p ZD1kaWFsb2dCb3hEaXZJZDtkaWFsb2dCb3hEaXZFbGVtZW50LmNsYXNzTmFtZT0i ZGlhbG9nLWJveCI7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaWFsb2dCb3hE aXZFbGVtZW50KX19O3RoaXMudXBkYXRlQW5kU2hvd0RpYWxvZ0JveD1mdW5jdGlv bih0ZXh0LG5vblZpc2libGVEaWFsb2dCb3gpe3RvZ2dsZUhpZGVPblBvcHVwRWxl bWVudHMoImhpZGRlbiIpO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRpYWxvZ0Jv eERpdklkKS5pbm5lckhUTUw9dGV4dDtkaWFsb2dCb3guc2hvd0RpYWxvZ0JveChk b2N1bWVudC5nZXRFbGVtZW50QnlJZChkaWFsb2dCb3hEaXZJZCksZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQod3JhcHBlckRpdklkKSxmYWxzZSxub25WaXNpYmxlRGlh bG9nQm94KX07dGhpcy5jbG9zZURpYWxvZ0JveD1mdW5jdGlvbigpe3ZhciBzaWdu SW5Cb3hXcmFwcGVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHdyYXBwZXJEaXZJ ZCk7dmFyIHNpZ25JbkJveD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChkaWFsb2dC b3hEaXZJZCk7c2lnbkluQm94LnN0eWxlLmRpc3BsYXk9Im5vbmUiO3NpZ25JbkJv eFdyYXBwZXIuc3R5bGUuZGlzcGxheT0ibm9uZSI7ZGlhbG9nQm94LmhpZGVEaWFs b2dCb3goc2lnbkluQm94V3JhcHBlcik7dG9nZ2xlSGlkZU9uUG9wdXBFbGVtZW50 cygidmlzaWJsZSIpfTtmdW5jdGlvbiBjcmVhdGVXcmFwcGVyRGl2KCl7aWYoIWRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKHdyYXBwZXJEaXZJZCkpe3ZhciB3cmFwcGVy RGl2RWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKd3JhcHBl ckRpdkVsZW1lbnQuaWQ9d3JhcHBlckRpdklkO3dyYXBwZXJEaXZFbGVtZW50LmNs YXNzTmFtZT0iZGlhbG9nLXdyYXBwZXIiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp bGQod3JhcHBlckRpdkVsZW1lbnQpfX10aGlzLmdldERvY3VtZW50TG9jYXRpb249 ZnVuY3Rpb24oKXtyZXR1cm4gZG9jdW1lbnQubG9jYXRpb259O3RoaXMuZ2V0UGFj a2FnZUNvZGU9ZnVuY3Rpb24oZXZlbnQsZ2V0Q2xhc3NOYW1lQ2FsbGJhY2spe3Zh ciBjbGFzc05hbWU9Z2V0Q2xhc3NOYW1lQ2FsbGJhY2soZXZlbnQpO2lmKGNsYXNz TmFtZSl7dmFyIHBhY2thZ2VSZXF1aXJlZE1hdGNoZXI9L3BhY2thZ2UtcmVxdWly ZWQtKFx3KykvO3ZhciBtYXRjaD1wYWNrYWdlUmVxdWlyZWRNYXRjaGVyLmV4ZWMo Y2xhc3NOYW1lKTtpZihtYXRjaCl7cmV0dXJuIG1hdGNoWzFdfX1yZXR1cm4gbnVs bH07dGhpcy5zZXRGb2N1cz1mdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJpbmxpbmUtZW1haWwiKS5mb2N1cygpfTt0aGlzLmlzVXNlckxvZ2dlZElu PWZ1bmN0aW9uKCl7cmV0dXJuIGlzVXNlckxvZ2dlZEludG9SZWdQc3MoKX19O2Vu c3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuVGhpcmRQYXJ0 eVJlZmVycmFsQ29va2llU2VydmljZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGNyZWF0 ZUNvb2tpZShuYW1lLHZhbHVlLGRvbWFpbil7ZG9jdW1lbnQuY29va2llPW5hbWUr Ij0iK3ZhbHVlKyI7IGRvbWFpbj0iK2RvbWFpbisiOyBwYXRoPS8ifWZ1bmN0aW9u IGV4dHJhY3REb21haW5Gcm9tSG9zdChob3N0KXt2YXIgZG9tYWluRWxlbWVudHM9 aG9zdC5zcGxpdCgiLiIpO2lmKGRvbWFpbkVsZW1lbnRzLmxlbmd0aDw9MSl7cmV0 dXJuIGRvbWFpbkVsZW1lbnRzWzBdfXZhciBkb21haW49IiI7Zm9yKHZhciBpPTE7 aTxkb21haW5FbGVtZW50cy5sZW5ndGg7aSsrKXtkb21haW4rPSIuIitkb21haW5F bGVtZW50c1tpXX1yZXR1cm4gZG9tYWlufXRoaXMuc2V0VGhpcmRQYXJ0eVJlZmVy cmFsQ29va2llPWZ1bmN0aW9uKCl7dmFyIHF1ZXJ5U3RyaW5nPXdpbmRvdy5sb2Nh dGlvbi5zZWFyY2g7CmlmKHF1ZXJ5U3RyaW5nKXt2YXIgcGFyYW1zQXJyYXk9cXVl cnlTdHJpbmcuc3Vic3RyaW5nKDEpLnNwbGl0KCImIik7Zm9yKHZhciBpbmRleD0w O2luZGV4PHBhcmFtc0FycmF5Lmxlbmd0aDtpbmRleCsrKXt2YXIgcGFyYW1OYW1l QW5kVmFsdWU9cGFyYW1zQXJyYXlbaW5kZXhdLnNwbGl0KCI9Iik7aWYocGFyYW1O YW1lQW5kVmFsdWVbMF09PT0iQ01QIil7dmFyIGRvbWFpbj1leHRyYWN0RG9tYWlu RnJvbUhvc3Qod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKTtjcmVhdGVDb29raWUo IkNNUCIscGFyYW1OYW1lQW5kVmFsdWVbMV0sZG9tYWluKX19fX19O2Vuc3VyZVBh Y2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuVHdpdHRlckNvbnRyb2xs ZXI9ZnVuY3Rpb24odmlldyl7dmFyIGluaXQ9ZnVuY3Rpb24oKXt2aWV3LmluaXQo KX07dmFyIG9uTG9hZD1mdW5jdGlvbigpe2luaXQoKX07aWYodmlldy5jYW5Ccm93 c2VyVXNlQ2FudmFzVGFncyl7dmlldy5hZGRMb2FkRXZlbnQob25Mb2FkKX19O2Vu c3VyZVBhY2thZ2UoImd1YXJkaWFuLnIyIik7Z3VhcmRpYW4ucjIuVHdpdHRlclZp ZXc9ZnVuY3Rpb24odHdpdHRlckJhbGxvb25Db2xvdXIsdHdpdHRlclRleHRDb2xv dXIsaW1nUGF0aExlZnQsaW1nUGF0aFJpZ2h0KXt2YXIgaW5zdGFuY2U9dGhpczt2 YXIgY3VycmVudFR3ZWV0PTA7dmFyIGNhbnZhcz1kb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgidHdpdHRlci1iYWxsb29uIik7aWYodHlwZW9mIHdpbmRvdy5HX3ZtbENh bnZhc01hbmFnZXIhPSJ1bmRlZmluZWQiKXtjYW52YXM9d2luZG93Lkdfdm1sQ2Fu dmFzTWFuYWdlci5pbml0RWxlbWVudChjYW52YXMpfWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJub2pzLWJhbGxvb24iKS5zdHlsZS5kaXNwbGF5PSJub25lIjt0aGlz LmluaXQ9ZnVuY3Rpb24oKXtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCYmZG9j dW1lbnQuY3JlYXRlVGV4dE5vZGUpe3ZhciBsaXN0PWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJ0d2VldHMiKTsKaWYobGlzdCl7aXRlbXM9bGlzdC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgibGkiKTthbGw9aXRlbXMubGVuZ3RoO2lmKGFsbD4xKXtndWFy ZGlhbi5yMi5kb20uZWxlbWVudC5hZGRDbGFzc05hbWUobGlzdCwianMiKTtpbnN0 YW5jZS5jcmVhdGVOYXYobGlzdCl9fX10d2l0dGVyU2hvdygpfTt2YXIgZG9lc0Nh bnZhc0hhdmVHZXRDb250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIGNhbnZhcy5nZXRD b250ZXh0fTtpZihkb2VzQ2FudmFzSGF2ZUdldENvbnRleHQoKSl7dmFyIGNvbnRl eHQ9Y2FudmFzLmdldENvbnRleHQoIjJkIil9dGhpcy5jYW5Ccm93c2VyVXNlQ2Fu dmFzVGFncz1kb2VzQ2FudmFzSGF2ZUdldENvbnRleHQ7ZHJhd1R3aXR0ZXJCYWxs b29uKCk7dGhpcy5hZGRFdmVudD1mdW5jdGlvbihvYmosdHlwZSxmbil7aWYob2Jq LmF0dGFjaEV2ZW50KXtvYmpbImUiK3R5cGUrZm5dPWZuO29ialt0eXBlK2ZuXT1m dW5jdGlvbigpe29ialsiZSIrdHlwZStmbl0od2luZG93LmV2ZW50KX07b2JqLmF0 dGFjaEV2ZW50KCJvbiIrdHlwZSxvYmpbdHlwZStmbl0pfWVsc2V7b2JqLmFkZEV2 ZW50TGlzdGVuZXIodHlwZSxmbixmYWxzZSl9fTt0aGlzLmNyZWF0ZU5hdj1mdW5j dGlvbihvKXt2YXIgdWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKTtndWFy ZGlhbi5yMi5kb20uZWxlbWVudC5hZGRDbGFzc05hbWUodWwsInByb21vLW5hdiIp O3R3aXR0ZXJQcmV2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7dHdpdHRl clByZXZMaW5rPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTt0d2l0dGVyUHJl dkltZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTt0d2l0dGVyUHJldklt Zy5zZXRBdHRyaWJ1dGUoInNyYyIsaW1nUGF0aExlZnQpO3R3aXR0ZXJQcmV2TGlu ay5zZXRBdHRyaWJ1dGUoImhyZWYiLCIjIik7dHdpdHRlclByZXZMaW5rLmFwcGVu ZENoaWxkKHR3aXR0ZXJQcmV2SW1nKTtpbnN0YW5jZS5hZGRFdmVudCh0d2l0dGVy UHJldkxpbmssImNsaWNrIix0d2l0dGVyU2hvdyk7CnR3aXR0ZXJQcmV2LmFwcGVu ZENoaWxkKHR3aXR0ZXJQcmV2TGluayk7dWwuYXBwZW5kQ2hpbGQodHdpdHRlclBy ZXYpO3R3aXR0ZXJDb3VudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7 dHdpdHRlclRlbXBMYWJlbD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgoY3VycmVu dFR3ZWV0KzEpKyIgLyAiK2FsbCk7dHdpdHRlckNvdW50LmFwcGVuZENoaWxkKHR3 aXR0ZXJUZW1wTGFiZWwpO3VsLmFwcGVuZENoaWxkKHR3aXR0ZXJDb3VudCk7dHdp dHRlck5leHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTtndWFyZGlhbi5y Mi5kb20uZWxlbWVudC5hZGRDbGFzc05hbWUodHdpdHRlck5leHQsIm5leHQtdHdl ZXQiKTt0d2l0dGVyTmV4dExpbms9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIp O3R3aXR0ZXJOZXh0SW1nPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO3R3 aXR0ZXJOZXh0SW1nLnNldEF0dHJpYnV0ZSgic3JjIixpbWdQYXRoUmlnaHQpO3R3 aXR0ZXJOZXh0TGluay5zZXRBdHRyaWJ1dGUoImhyZWYiLCIjIik7dHdpdHRlck5l eHRMaW5rLmFwcGVuZENoaWxkKHR3aXR0ZXJOZXh0SW1nKTtpbnN0YW5jZS5hZGRF dmVudCh0d2l0dGVyTmV4dExpbmssImNsaWNrIix0d2l0dGVyU2hvdyk7dHdpdHRl ck5leHQuYXBwZW5kQ2hpbGQodHdpdHRlck5leHRMaW5rKTt1bC5hcHBlbmRDaGls ZCh0d2l0dGVyTmV4dCk7by5wYXJlbnROb2RlLnBhcmVudE5vZGUuYXBwZW5kQ2hp bGQodWwpfTtmdW5jdGlvbiB0d2l0dGVyU2hvdyhlKXtpZih0aGlzPT09dHdpdHRl ck5leHRMaW5rfHx0aGlzPT09dHdpdHRlclByZXZMaW5rKXtyZW1vdmVDbGFzc05h bWUoaXRlbXNbY3VycmVudFR3ZWV0XSwiY3VycmVudCIpO3ZhciBhZGR0bz10aGlz PT09dHdpdHRlck5leHRMaW5rPy0xOjE7Y3VycmVudFR3ZWV0PWN1cnJlbnRUd2Vl dCthZGR0bztpZihjdXJyZW50VHdlZXQ8MCl7Y3VycmVudFR3ZWV0PShhbGwtMSl9 aWYoY3VycmVudFR3ZWV0PmFsbC0xKXtjdXJyZW50VHdlZXQ9MAp9fXZhciB0ZW1w bGFiZWw9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoKGN1cnJlbnRUd2VldCsxKSsi IC8gIithbGwpO3R3aXR0ZXJDb3VudC5yZXBsYWNlQ2hpbGQodGVtcGxhYmVsLHR3 aXR0ZXJDb3VudC5maXJzdENoaWxkKTtndWFyZGlhbi5yMi5kb20uZWxlbWVudC5h ZGRDbGFzc05hbWUoaXRlbXNbY3VycmVudFR3ZWV0XSwiY3VycmVudCIpO2l0ZW1z W2N1cnJlbnRUd2VldF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVswXS5zdHls ZS5jb2xvcj10d2l0dGVyVGV4dENvbG91cjtpdGVtc1tjdXJyZW50VHdlZXRdLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF0uc3R5bGUuY29sb3I9dHdpdHRlclRl eHRDb2xvdXI7Y2FuY2VsQ2xpY2soZSl9ZnVuY3Rpb24gY2FuY2VsQ2xpY2soZSl7 aWYod2luZG93LmV2ZW50KXt3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlPXRydWU7 d2luZG93LmV2ZW50LnJldHVyblZhbHVlPWZhbHNlfWlmKGUmJmUuc3RvcFByb3Bh Z2F0aW9uJiZlLnByZXZlbnREZWZhdWx0KXtlLnN0b3BQcm9wYWdhdGlvbigpO2Uu cHJldmVudERlZmF1bHQoKX19dGhpcy5hZGRMb2FkRXZlbnQ9ZnVuY3Rpb24oY2Fs bGJhY2spe2NhbGxiYWNrKCl9O2Z1bmN0aW9uIHJvdW5kZWRSZWN0KGNvbnRleHQs eCx5LHdpZHRoLGhlaWdodCxyYWRpdXMpe2NvbnRleHQuYmVnaW5QYXRoKCk7Y29u dGV4dC5tb3ZlVG8oeCx5K3JhZGl1cyk7Y29udGV4dC5saW5lVG8oeCx5K2hlaWdo dC1yYWRpdXMpO2NvbnRleHQucXVhZHJhdGljQ3VydmVUbyh4LHkraGVpZ2h0LHgr cmFkaXVzLHkraGVpZ2h0KTtjb250ZXh0LmxpbmVUbyh4K3dpZHRoLXJhZGl1cyx5 K2hlaWdodCk7Y29udGV4dC5xdWFkcmF0aWNDdXJ2ZVRvKHgrd2lkdGgseStoZWln aHQseCt3aWR0aCx5K2hlaWdodC1yYWRpdXMpO2NvbnRleHQubGluZVRvKHgrd2lk dGgseStyYWRpdXMpO2NvbnRleHQucXVhZHJhdGljQ3VydmVUbyh4K3dpZHRoLHks eCt3aWR0aC1yYWRpdXMseSk7Y29udGV4dC5saW5lVG8oeCtyYWRpdXMseSk7CmNv bnRleHQucXVhZHJhdGljQ3VydmVUbyh4LHkseCx5K3JhZGl1cyk7Y29udGV4dC5t b3ZlVG8oMTQ1LDIwMik7Y29udGV4dC5saW5lVG8oMTM1LDIzMCk7Y29udGV4dC5s aW5lVG8oMTY1LDIwMik7Y29udGV4dC5saW5lVG8oMTQ1LDIwMik7Y29udGV4dC5m aWxsU3R5bGU9dHdpdHRlckJhbGxvb25Db2xvdXI7Y29udGV4dC5maWxsKCl9ZnVu Y3Rpb24gZHJhd1R3aXR0ZXJCYWxsb29uKHR3aXR0ZXJCYWxsb29uQ29sb3VyKXty b3VuZGVkUmVjdChjb250ZXh0LDEyLDEyLDE3NSwxOTAsMTUpfX07dmFyIGhvdXJz VG9Db3VudD0wO3ZhciB0aW1lT3V0PTcyMDt2YXIgbWF4QWRDb3VudD0xMDA7dmFy IHNob3dBZHNPbk50aFZpZGVvPTI7ZnVuY3Rpb24gYnVpbGRJbnRydXNpdmVBZChh ZEhvc3QsZ2VvQmFuZHdpZHRoLHJhbmRTdHJpbmcsY29tbWVyY2lhbEZvbGRlcixr ZXl3b3JkcyxwYWdlVXJsLHNpdGUsc3lzdGVtLGJsb2NrVmlkZW9BZHMsdGlsZSxw YXJ0bmVyaWQpe3ZhciB0aGVzZUNvb2tpZXM9ZG9jdW1lbnQuY29va2llO3ZhciBw b3M9dGhlc2VDb29raWVzLmluZGV4T2YoIkdVREhUTUxBZHM9Iik7aWYocG9zPT0t MSl7dmFyIHNlY29uZHM9MTgwO3ZhciBleHBpcmVUaW1lPW5ldyBEYXRlKCk7dmFy IGN1cnJlbnR0aW1laW5taWxscz1leHBpcmVUaW1lLmdldFRpbWUoKTtleHBpcmVU aW1lLnNldFRpbWUoY3VycmVudHRpbWVpbm1pbGxzK3NlY29uZHMqMTAwMCk7ZG9j dW1lbnQuY29va2llPSJHVURIVE1MQWRzPUR1bW15OyBleHBpcmVzPSIrZXhwaXJl VGltZS50b0dNVFN0cmluZygpKyIgOyBwYXRoPS8gOyBkb21haW49Z3VhcmRpYW4u Y28udWsiO3ZhciBpbnRydXNhZD0nPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIHNyYz0iJythZEhvc3QrIi9qcy5uZy9zcGFjZWRlc2M9MDEmYW1wO2NvbWZv bGRlcj0iK2NvbW1lcmNpYWxGb2xkZXIrIiZhbXA7a2V5d29yZHM9IitrZXl3b3Jk cysiJmFtcDtiYW5kd2lkdGg9IitnZW9CYW5kd2lkdGgrIiZhbXA7cmFuZD0iK3Jh bmRTdHJpbmcrIiZhbXA7c2l0ZT0iK3NpdGUrIiZhbXA7dXJsPSIrcGFnZVVybCsi JmFtcDtzeXN0ZW09IitzeXN0ZW0rIiZhbXA7YmxvY2tWaWRlb0Fkcz0iK2Jsb2Nr VmlkZW9BZHMrIiZhbXA7cGFydG5lcmlkPSIrcGFydG5lcmlkOwppZih0eXBlb2Yg dGlsZSE9PSJ1bmRlZmluZWQiKXtpbnRydXNhZCs9IiZhbXA7dGlsZT0iK3RpbGV9 aW50cnVzYWQrPSciPjxcL3NjcmlwdD4nO2RvY3VtZW50LndyaXRlKGludHJ1c2Fk KTtkb2N1bWVudC5jbG9zZSgpfX1mdW5jdGlvbiBpc1ZpZGVvQWREaXNwbGF5ZWQo KXtyZXR1cm4gdHJ1ZX1lbnN1cmVQYWNrYWdlKCJndWFyZGlhbi5yMiIpOyhmdW5j dGlvbigpe3ZhciBYTUxIdHRwQXJyYXk9W2Z1bmN0aW9uKCl7cmV0dXJuIG5ldyBY TUxIdHRwUmVxdWVzdCgpfSxmdW5jdGlvbigpe3JldHVybiBuZXcgQWN0aXZlWE9i amVjdCgiTXN4bWwyLlhNTEhUVFAiKX0sZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFj dGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9XTtmdW5jdGlvbiBjcmVh dGVYTUxIVFRQT2JqZWN0KCl7dmFyIHhtbGh0dHA9ZmFsc2U7Zm9yKHZhciBpPTA7 aTxYTUxIdHRwQXJyYXkubGVuZ3RoO2krKyl7dHJ5e3htbGh0dHA9WE1MSHR0cEFy cmF5W2ldKCl9Y2F0Y2goZSl7Y29udGludWV9YnJlYWt9cmV0dXJuIHhtbGh0dHB9 ZnVuY3Rpb24gQWpheFJlcXVlc3QodXJsLHJlcXVlc3REZXRhaWxzKXt2YXIgcmVx dWVzdE9iamVjdD1jcmVhdGVYTUxIVFRQT2JqZWN0KCk7dmFyIG1ldGhvZD1yZXF1 ZXN0RGV0YWlscy5tZXRob2Q/cmVxdWVzdERldGFpbHMubWV0aG9kLnRvTG93ZXJD YXNlKCk6ImdldCI7dmFyIHBvc3RCb2R5PW51bGw7aWYobWV0aG9kPT09ImdldCIm JnJlcXVlc3REZXRhaWxzLnBhcmFtZXRlcnMpe3VybCs9KCh1cmwuaW5kZXhPZigi PyIpPT09LTEpPyI/IjoiJiIpK3JlcXVlc3REZXRhaWxzLnBhcmFtZXRlcnN9ZWxz ZXtwb3N0Qm9keT1yZXF1ZXN0RGV0YWlscy5wYXJhbWV0ZXJzfXJlcXVlc3RPYmpl Y3Qub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYocmVxdWVzdE9iamVj dC5yZWFkeVN0YXRlIT09NCl7cmV0dXJuIH1pZihyZXF1ZXN0T2JqZWN0LnN0YXR1 cz09PTIwMCl7cmVxdWVzdERldGFpbHMub25TdWNjZXNzKHJlcXVlc3RPYmplY3Qp Cn1lbHNle3JlcXVlc3REZXRhaWxzLm9uRmFpbHVyZShyZXF1ZXN0T2JqZWN0KX19 O3JlcXVlc3RPYmplY3Qub3BlbihtZXRob2QsdXJsLHRydWUpO2lmKG1ldGhvZD09 PSJwb3N0Iil7cmVxdWVzdE9iamVjdC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50 LVR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJz ZXQ9VVRGLTgiKX1yZXF1ZXN0T2JqZWN0LnNlbmQocG9zdEJvZHkpfWd1YXJkaWFu LnIyLmFqYXg9e1JlcXVlc3Q6QWpheFJlcXVlc3R9fSkoKTtmdW5jdGlvbiBpbmRl ZWRfY2xrKGEsc2lnKXt2YXIgaHI9YS5ocmVmO3ZhciBzaT1oci5pbmRleE9mKCIm anNhPSIpO2lmKHNpPjApe3JldHVybiB9dmFyIGpzaD1ocisiJmpzYT0iK3NpZzth LmhyZWY9anNofWpRKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe3ZhciB0ZXN0 Q29va2llPSJHVV9URVNUX0NPT0tJRSI7dmFyIGNvb2tpZU5hbWU9IkdVX1ZJREVP X1NFVFRJTkdTIjtkYXRlPW5ldyBEYXRlKCk7ZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0 VGltZSgpKygzMCoyNCo2MCo2MCoxMDAwKSk7dmFyIG9wdGlvbnM9e3BhdGg6Ii8i LGV4cGlyZXM6ZGF0ZX07ZnVuY3Rpb24gc2V0QXV0b3BsYXlUZXh0KCl7aWYoalEu Y29va2llKGNvb2tpZU5hbWUpPT0iZmFsc2UiKXtqUSgiLm9mZiIpLnNob3coKTtq USgiLm9uIikuaGlkZSgpfWVsc2V7alEoIi5vbiIpLnNob3coKTtqUSgiLm9mZiIp LmhpZGUoKX19ZnVuY3Rpb24gY2hlY2tDb29raWVzRW5hYmxlZCgpe2pRLmNvb2tp ZSh0ZXN0Q29va2llLHRydWUpO2lmKGpRLmNvb2tpZSh0ZXN0Q29va2llKSl7alEu Y29va2llKHRlc3RDb29raWUsbnVsbCk7alEoIi5jb29raWVkIikuc2hvdygpO2pR KCIubm90LWNvb2tpZWQiKS5oaWRlKCl9ZWxzZXtqUSgiLm5vdC1jb29raWVkIiku c2hvdygpO2pRKCIuY29va2llZCIpLmhpZGUoKX19alEoIi5hdXRvcGxheS1vbiIp LmNsaWNrKGZ1bmN0aW9uKCl7alEuY29va2llKGNvb2tpZU5hbWUsInRydWUiLG9w dGlvbnMpOwpzZXRBdXRvcGxheVRleHQoKTtqUSgiYS5jbG9zZS10b29sYm94LXNl dHRpbmdzIikuZm9jdXMoKTtyZXR1cm4gZmFsc2V9KTtqUSgiLmF1dG9wbGF5LW9m ZiIpLmNsaWNrKGZ1bmN0aW9uKCl7alEuY29va2llKGNvb2tpZU5hbWUsImZhbHNl IixvcHRpb25zKTtzZXRBdXRvcGxheVRleHQoKTtqUSgiYS5jbG9zZS10b29sYm94 LXNldHRpbmdzIikuZm9jdXMoKTtyZXR1cm4gZmFsc2V9KTtjaGVja0Nvb2tpZXNF bmFibGVkKCk7c2V0QXV0b3BsYXlUZXh0KCl9KTtqUShkb2N1bWVudCkucmVhZHko ZnVuY3Rpb24oKXtpZihqUSgibGkucGl4aWUiKSl7dmFyIHBpeGllcz1qUSgibGku cGl4aWUiKTtqUShwaXhpZXMpLm1vdXNlZW50ZXIoZnVuY3Rpb24oKXtqUSh0aGlz KS5maW5kKCJkaXYudHJhaWwtdGV4dCIpLnNsaWRlRG93bigiZmFzdCIpfSk7alEo cGl4aWVzKS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7alEodGhpcykuZmluZCgiZGl2 LnRyYWlsLXRleHQiKS5zbGlkZVVwKCJmYXN0Iil9KX19KTthZGRFdmVudCh3aW5k b3csImxvYWQiLGhhbmRsZVRleHQpO2Z1bmN0aW9uIGhhbmRsZVRleHQoKXtpZigh ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUpe3JldHVybiB9dmFyIGlucHV0 RmllbGRzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2Zv cih2YXIgaT0wO2k8aW5wdXRGaWVsZHMubGVuZ3RoO2krKyl7aWYoaW5wdXRGaWVs ZHNbaV0uY2xhc3NOYW1lLm1hdGNoKC9cYnNlYXJjaC1maWVsZFxiLykpe2lucHV0 RmllbGRzW2ldLm9uZm9jdXM9ZnVuY3Rpb24oKXtjbGVhclRleHQodGhpcyl9O2lu cHV0RmllbGRzW2ldLm9uYmx1cj1mdW5jdGlvbigpe3NldFRleHQodGhpcyl9fX19 ZnVuY3Rpb24gY2xlYXJUZXh0KGUpe3ZhciBjdXJlbnRUZXh0PWUudmFsdWU7dmFy IGRlZmF1bHRUZXh0PWUuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpO2lmKGN1cmVudFRl eHQ9PWRlZmF1bHRUZXh0KXtlLnZhbHVlPSIifX1mdW5jdGlvbiBzZXRUZXh0KGUp e3ZhciBjdXJlbnRUZXh0PWUudmFsdWU7CnZhciBkZWZhdWx0VGV4dD1lLmdldEF0 dHJpYnV0ZSgidGl0bGUiKTtpZihjdXJlbnRUZXh0PT0iIil7ZS52YWx1ZT1kZWZh dWx0VGV4dH19Ci8qQGNjX29uCgppZihndWFyZGlhbi5yMi5icm93c2VyLmlzSUU2 KSB7CgphZGRFdmVudCh3aW5kb3csICJsb2FkIiwgZG9QbmcpOwoKZnVuY3Rpb24g ZG9QbmcoKSAgewoKCXZhciBwbmdzTGlzdD1kb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSgnaW1nJyk7CgoJdmFyIHBuZ3MgPSBbXQoJZm9yRWFjaEVsZW1lbnRP ZihwbmdzTGlzdCwgZnVuY3Rpb24oZWxlbWVudCkgewoJCXBuZ3MucHVzaChlbGVt ZW50KTsKCQl9KTsKCgoJaWYocG5ncy5sZW5ndGg9PTApIHJldHVybjsKCWZvcih2 YXIgaT0wOyBpPHBuZ3MubGVuZ3RoOyBpKyspewoJdmFyIHBhcmVudD1wbmdzW2ld LnBhcmVudE5vZGU7CgkJaWYocG5nc1tpXS5zcmMubWF0Y2goL1wucG5nJC8pICYm ICFwbmdzW2ldLnNyYy5tYXRjaCgiL3JldXRlcnMvIikpewoJCQl2YXIgbmV3SW1h Z2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CgkJCWlmKHBuZ3NbaV0u c3JjLm1hdGNoKC9cL1sxLTVdXC5wbmckLykgJiYgdHlwZW9mKGZvcmNlV2lkdGgp IT0idW5kZWZpbmVkIikgewoJCQkJbmV3SW1hZ2Uuc3R5bGUud2lkdGg9Zm9yY2VX aWR0aCsncHgnOwoJCQkJbmV3SW1hZ2Uuc3R5bGUuaGVpZ2h0PWZvcmNlSGVpZ2h0 KydweCc7CgkJCX0gZWxzZSB7CgkJCQluZXdJbWFnZS5zdHlsZS53aWR0aD1wbmdz W2ldLndpZHRoKydweCc7CgkJCQluZXdJbWFnZS5zdHlsZS5oZWlnaHQ9cG5nc1tp XS5oZWlnaHQrJ3B4JzsKCQkJfQoJCQluZXdJbWFnZS5pZD1wbmdzW2ldLmlkOwoJ CQluZXdJbWFnZS5jbGFzc05hbWU9cG5nc1tpXS5jbGFzc05hbWU7CgkJCXZhciBt YXNrPXBuZ3NbaV0uc3JjOwoJCQluZXdJbWFnZS5zdHlsZS5maWx0ZXI9InByb2dp ZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYUltYWdlTG9hZGVyKHNy Yz0nIittYXNrKyInLHNpemluZ01ldGhvZD0nc2NhbGUnKSI7CgkJCXBhcmVudC5y ZXBsYWNlQ2hpbGQobmV3SW1hZ2UsIHBuZ3NbaV0pOwoJCX0KCgl9Cgp9Cn0KQCov CmpRKGZ1bmN0aW9uKCl7dmlld1N0YXR1cz0iZXhwYW5kZWQiOwpjb29raWVOYW1l PSJjcmlja2V0X3BvcHVwX3R5cGUiO2RhdGU9bmV3IERhdGUoKTtkYXRlLnNldFRp bWUoZGF0ZS5nZXRUaW1lKCkrKDMwKjI0KjYwKjYwKjEwMDApKTtvcHRpb25zPXtw YXRoOiIvIixleHBpcmVzOmRhdGV9O3ZhciBjb2xsYXBzZT1mdW5jdGlvbigpe2pR KCJkaXYjbWF4aW1pc2VkIikuYWRkQ2xhc3MoImhpZGUiKS5yZW1vdmVDbGFzcygi c2hvdyIpO2pRKCJkaXYjbWluaW1pc2VkIikuYWRkQ2xhc3MoInNob3ciKS5yZW1v dmVDbGFzcygiaGlkZSIpfTt2YXIgZXhwYW5kPWZ1bmN0aW9uKCl7alEoImRpdiNt YXhpbWlzZWQiKS5hZGRDbGFzcygic2hvdyIpLnJlbW92ZUNsYXNzKCJoaWRlIik7 alEoImRpdiNtaW5pbWlzZWQiKS5hZGRDbGFzcygiaGlkZSIpLnJlbW92ZUNsYXNz KCJzaG93Iil9O2pRKCIjY29sbGFwc2UiKS5jbGljayhmdW5jdGlvbigpe2NvbGxh cHNlKCk7aWYoZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lFNil7d2luZG93LnJlc2l6 ZVRvKDQ5NywxMjUpfWVsc2V7aWYoZ3VhcmRpYW4ucjIuYnJvd3Nlci5pc0lFNyl7 d2luZG93LnJlc2l6ZVRvKDQ5NywxNDUpfWVsc2V7aWYoZ3VhcmRpYW4ucjIuYnJv d3Nlci5pc0lFOCl7d2luZG93LnJlc2l6ZVRvKDQ4MiwxNDUpfWVsc2V7d2luZG93 LnJlc2l6ZVRvKDQ2NywxMzApfX19alEuY29va2llKGNvb2tpZU5hbWUsImNvbGxh cHNlZCIsb3B0aW9ucyk7cmV0dXJuIGZhbHNlfSk7alEoIiNleHBhbmQiKS5jbGlj ayhmdW5jdGlvbigpe2V4cGFuZCgpO2lmKGd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJ RTYpe3dpbmRvdy5yZXNpemVUbyg3NzcsNDYzKX1lbHNle2lmKGd1YXJkaWFuLnIy LmJyb3dzZXIuaXNJRTcpe3dpbmRvdy5yZXNpemVUbyg3NzcsNDkzKX1lbHNle2lm KGd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTgpe3dpbmRvdy5yZXNpemVUbyg3NjAs NDgzKX1lbHNle3dpbmRvdy5yZXNpemVUbyg3NDcsNDYzKX19fWpRLmNvb2tpZShj b29raWVOYW1lLCJleHBhbmRlZCIse3BhdGg6Ii8iLGV4cGlyZXM6ZGF0ZX0pOwpy ZXR1cm4gZmFsc2V9KTtpZihqUS5jb29raWUoY29va2llTmFtZSkpe3ZpZXdTdGF0 dXM9alEuY29va2llKGNvb2tpZU5hbWUpfWlmKHZpZXdTdGF0dXM9PSJleHBhbmRl ZCIpe2V4cGFuZCgpfWVsc2V7Y29sbGFwc2UoKX19KTtlbnN1cmVQYWNrYWdlKCJn dWFyZGlhbi5yMi5EYXRlVXRpbCIpO2d1YXJkaWFuLnIyLkRhdGVVdGlsLm15UGFy c2VEYXRlPWZ1bmN0aW9uKGRhdGVTdHJpbmcpe3JldHVybiBuZXcgRGF0ZShEYXRl LnBhcnNlKGRhdGVTdHJpbmcucmVwbGFjZSgvKFxkXGQ/OlxkXGQ/OlxkXGQ/KSg6 XGQ/XGQ/XGQ/KT8vLCIkMSIpKSl9O2d1YXJkaWFuLnIyLkRhdGVVdGlsLmZvcm1h dERhdGU9ZnVuY3Rpb24oY29tbWVudERhdGVTdHJpbmcsY3VycmVudERhdGVTdHJp bmcpe3ZhciBjb21tZW50RGF0ZT1ndWFyZGlhbi5yMi5EYXRlVXRpbC5teVBhcnNl RGF0ZShjb21tZW50RGF0ZVN0cmluZyk7dmFyIGN1cnJlbnREYXRlPWd1YXJkaWFu LnIyLkRhdGVVdGlsLm15UGFyc2VEYXRlKGN1cnJlbnREYXRlU3RyaW5nKTt2YXIg cmVsYXRpdmVUaW1lRGlmZmVyZW5jZT1ndWFyZGlhbi5yMi5EYXRlVXRpbC5yZWxh dGl2ZVRpbWVEaWZmZXJlbmNlKGNvbW1lbnREYXRlLnRvVVRDU3RyaW5nKCksY3Vy cmVudERhdGUudG9VVENTdHJpbmcoKSk7aWYocmVsYXRpdmVUaW1lRGlmZmVyZW5j ZSE9PSIiKXtpZihyZWxhdGl2ZVRpbWVEaWZmZXJlbmNlLmluZGV4T2YoImhvdXIi KT4wKXtyZWxhdGl2ZVRpbWVEaWZmZXJlbmNlPSJhYm91dCAiK3JlbGF0aXZlVGlt ZURpZmZlcmVuY2V9cmVsYXRpdmVUaW1lRGlmZmVyZW5jZT0iICgiK3JlbGF0aXZl VGltZURpZmZlcmVuY2UrIikifXJldHVybiBjb21tZW50RGF0ZS5mb3JtYXREYXRl KCJkIE0geSwgZzppYSIpK3JlbGF0aXZlVGltZURpZmZlcmVuY2V9O2d1YXJkaWFu LnIyLkRhdGVVdGlsLmZvcm1hdERhdGVGcm9tSVNPPWZ1bmN0aW9uKGRhdGVUaW1l U3RyaW5nLGN1cnJlbnREYXRlU3RyaW5nKXt2YXIgZGF0ZVRpbWVTcGxpdD1kYXRl VGltZVN0cmluZy5zcGxpdCgiVCIpOwp2YXIgZm9ybWF0dGVkRGF0ZT1kYXRlVGlt ZVNwbGl0WzBdLnJlcGxhY2UoLy0vZywiLyIpO3ZhciBkYXRlVGltZT1uZXcgRGF0 ZShmb3JtYXR0ZWREYXRlKyIgIitkYXRlVGltZVNwbGl0WzFdKTt2YXIgbm93PW5l dyBEYXRlKGN1cnJlbnREYXRlU3RyaW5nKTt2YXIgcmVsYXRpdmVUaW1lRGlmZmVy ZW5jZT1ndWFyZGlhbi5yMi5EYXRlVXRpbC5yZWxhdGl2ZVRpbWVEaWZmZXJlbmNl KGRhdGVUaW1lLnRvVVRDU3RyaW5nKCksbm93LnRvVVRDU3RyaW5nKCkpO2lmKHJl bGF0aXZlVGltZURpZmZlcmVuY2UhPT0iIil7cmV0dXJuIHJlbGF0aXZlVGltZURp ZmZlcmVuY2V9ZWxzZXtyZXR1cm4gZGF0ZVRpbWUuZm9ybWF0RGF0ZSgiZCBNIHks IGc6aWEiKX19O2d1YXJkaWFuLnIyLkRhdGVVdGlsLnJlbGF0aXZlVGltZURpZmZl cmVuY2U9ZnVuY3Rpb24oZGF0ZVN0cmluZyxjdXJyZW50RGF0ZVN0cmluZyl7dmFy IGRhdGU9Z3VhcmRpYW4ucjIuRGF0ZVV0aWwubXlQYXJzZURhdGUoZGF0ZVN0cmlu Zyk7dmFyIGN1cnJlbnREYXRlPWd1YXJkaWFuLnIyLkRhdGVVdGlsLm15UGFyc2VE YXRlKGN1cnJlbnREYXRlU3RyaW5nKTt2YXIgcmVsYXRpdmVUaW1lRGlmZmVyZW5j ZT0iIjt2YXIgZGlmZmVyZW5jZT1jdXJyZW50RGF0ZS5nZXRUaW1lKCktZGF0ZS5n ZXRUaW1lKCk7aWYoZGlmZmVyZW5jZTw2MCo2MCoxMDAwKXt2YXIgbWludXRlc0Fn bz1NYXRoLnJvdW5kKGRpZmZlcmVuY2UvKDEwMDAqNjApKTtpZihtaW51dGVzQWdv PjEpe3JlbGF0aXZlVGltZURpZmZlcmVuY2U9bWludXRlc0FnbysiIG1pbnV0ZXMg YWdvIn1lbHNle3JlbGF0aXZlVGltZURpZmZlcmVuY2U9IjEgbWludXRlIGFnbyJ9 fWVsc2V7aWYoTWF0aC5yb3VuZChkaWZmZXJlbmNlLygxMDAwKjYwKjYwKSk8MjQp e3ZhciBob3Vyc0Fnbz1NYXRoLnJvdW5kKGRpZmZlcmVuY2UvKDEwMDAqNjAqNjAp KTtpZihob3Vyc0Fnbz4xKXtyZWxhdGl2ZVRpbWVEaWZmZXJlbmNlPWhvdXJzQWdv KyIgaG91cnMgYWdvIn1lbHNle3JlbGF0aXZlVGltZURpZmZlcmVuY2U9aG91cnNB Z28rIiBob3VyIGFnbyIKfX19cmV0dXJuIHJlbGF0aXZlVGltZURpZmZlcmVuY2V9 O2d1YXJkaWFuLnIyLkRhdGVVdGlsLmZvcm1hdFRvSVNPPWZ1bmN0aW9uKGRhdGVT dHJpbmcpe3ZhciBwYWQ9ZnVuY3Rpb24obnVtYmVyKXtyZXR1cm4obnVtYmVyPjkp P251bWJlcjoiMCIrbnVtYmVyfTt2YXIgZGF0ZT1uZXcgRGF0ZShkYXRlU3RyaW5n KTtyZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpKyItIitwYWQoZGF0ZS5nZXRNb250 aCgpKzEpKyItIitwYWQoZGF0ZS5nZXREYXRlKCkpfTtlbnN1cmVQYWNrYWdlKCJn dWFyZGlhbi5yMiIpO2d1YXJkaWFuLnIyLmRvbT17ZWxlbWVudDpuZXcgZnVuY3Rp b24oKXt2YXIgaW5zdGFuY2U9dGhpcztmdW5jdGlvbiBoYXNDbGFzc05hbWVGdW5j dGlvbihjbGFzc05hbWUpe3ZhciBjbGFzc05hbWVSZWdFeHA9bmV3IFJlZ0V4cCgi KF58ICkiK2NsYXNzTmFtZSsiKCB8JCkiKTtyZXR1cm4gZnVuY3Rpb24oaW5wdXRF bGVtZW50KXtyZXR1cm4gY2xhc3NOYW1lUmVnRXhwLnRlc3QoaW5wdXRFbGVtZW50 LmNsYXNzTmFtZSl9fXRoaXMuaGFzQ2xhc3NOYW1lPWZ1bmN0aW9uKGlucHV0RWxl bWVudCxjbGFzc05hbWUpe3JldHVybiBoYXNDbGFzc05hbWVGdW5jdGlvbihjbGFz c05hbWUpKGlucHV0RWxlbWVudCl9O3RoaXMuYWRkQ2xhc3NOYW1lPWZ1bmN0aW9u KGlucHV0RWxlbWVudCxjbGFzc05hbWUpe2lmKCFpbnN0YW5jZS5oYXNDbGFzc05h bWUoaW5wdXRFbGVtZW50LGNsYXNzTmFtZSkpe2lucHV0RWxlbWVudC5jbGFzc05h bWUrPSIgIitjbGFzc05hbWU7aW5wdXRFbGVtZW50LmNsYXNzTmFtZT1pbnB1dEVs ZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UoL15cc3xccyQvLCIiKX19O3RoaXMuZ2V0 RWxlbWVudHNCeUNzc1NlbGVjdG9yPWZ1bmN0aW9uKGNzc0V4cHJlc3Npb24scGFy ZW50RWxlbWVudCl7aWYoaXNBcnJheShjc3NFeHByZXNzaW9uKSl7dmFyIHJlc3Vs dHM9W107dmFyIGNzc0V4cHJlc3Npb25MZW5ndGg9Y3NzRXhwcmVzc2lvbi5sZW5n dGg7Zm9yKHZhciBpPTA7Cmk8Y3NzRXhwcmVzc2lvbkxlbmd0aDtpKyspe3Jlc3Vs dHM9cmVzdWx0cy5jb25jYXQoZ2V0RWxlbWVudHNCeUluZGl2aWR1YWxDc3NTZWxl Y3Rvcihjc3NFeHByZXNzaW9uW2ldLHBhcmVudEVsZW1lbnQpKX1yZXR1cm4gcmVz dWx0c31yZXR1cm4gZ2V0RWxlbWVudHNCeUluZGl2aWR1YWxDc3NTZWxlY3Rvcihj c3NFeHByZXNzaW9uLHBhcmVudEVsZW1lbnQpfTt2YXIgZ2V0RWxlbWVudHNCeUlu ZGl2aWR1YWxDc3NTZWxlY3Rvcj1mdW5jdGlvbihjc3NFeHByZXNzaW9uLHBhcmVu dEVsZW1lbnQpe3ZhciBjc3NQYXJ0cz1jc3NFeHByZXNzaW9uLnNwbGl0KCIgIik7 dmFyIGZpcnN0VGFnQW5kQ2xhc3NOYW1lUGFpcj1jc3NQYXJ0c1swXTt2YXIgbW9y ZVRhZ0FuZENsYXNzTmFtZVBhaXJzPWNzc1BhcnRzLnNsaWNlKDEpLmpvaW4oIiAi KTt2YXIgZmlyc3RUYWdBbmRDbGFzc05hbWVQYWlyU3BsaXQ9Zmlyc3RUYWdBbmRD bGFzc05hbWVQYWlyLnNwbGl0KCIuIik7dmFyIHRhZ1R5cGU9Zmlyc3RUYWdBbmRD bGFzc05hbWVQYWlyU3BsaXRbMF07dmFyIGNsYXNzTmFtZT1maXJzdFRhZ0FuZENs YXNzTmFtZVBhaXJTcGxpdFsxXTt2YXIgc2VsZWN0ZWRFbGVtZW50cz1pbnN0YW5j ZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNsYXNzTmFtZSx0YWdUeXBlLHBhcmVu dEVsZW1lbnQpO2lmKG1vcmVUYWdBbmRDbGFzc05hbWVQYWlycyl7dmFyIG1hdGNo aW5nRWxlbWVudExpc3Q9W107dmFyIHNlbGVjdGVkRWxlbWVudHNMZW5ndGg9c2Vs ZWN0ZWRFbGVtZW50cy5sZW5ndGg7dmFyIGdldEVsZW1lbnRzQnlDc3NTZWxlY3Rv cj1pbnN0YW5jZS5nZXRFbGVtZW50c0J5Q3NzU2VsZWN0b3I7Zm9yKHZhciBpPTA7 aTxzZWxlY3RlZEVsZW1lbnRzTGVuZ3RoO2krKyl7bWF0Y2hpbmdFbGVtZW50TGlz dD1tYXRjaGluZ0VsZW1lbnRMaXN0LmNvbmNhdChnZXRFbGVtZW50c0J5Q3NzU2Vs ZWN0b3IobW9yZVRhZ0FuZENsYXNzTmFtZVBhaXJzLHNlbGVjdGVkRWxlbWVudHNb aV0pKX1yZXR1cm4gbWF0Y2hpbmdFbGVtZW50TGlzdAp9cmV0dXJuIHNlbGVjdGVk RWxlbWVudHN9O3RoaXMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1mdW5jdGlvbihj bGFzc05hbWUsdGFnVHlwZSxwYXJlbnRFbGVtZW50KXtwYXJlbnRFbGVtZW50PXBh cmVudEVsZW1lbnQ/cGFyZW50RWxlbWVudDpkb2N1bWVudDtjbGFzc05hbWU9Y2xh c3NOYW1lP2NsYXNzTmFtZTpudWxsO2lmKCEhZG9jdW1lbnQuZXZhbHVhdGUmJmNs YXNzTmFtZSl7dmFyIGV4cHJlc3Npb247aWYodGFnVHlwZSl7ZXhwcmVzc2lvbj0i Li8vIit0YWdUeXBlKyJbY29udGFpbnMoY29uY2F0KCcgJywgQGNsYXNzLCAnICcp LCAnICIrY2xhc3NOYW1lKyIgJyldIn1lbHNle2V4cHJlc3Npb249Ii4vLypbY29u dGFpbnMoY29uY2F0KCcgJywgQGNsYXNzLCAnICcpLCAnICIrY2xhc3NOYW1lKyIg JyldIn12YXIgcXVlcnk9ZG9jdW1lbnQuZXZhbHVhdGUoZXhwcmVzc2lvbixwYXJl bnRFbGVtZW50LG51bGwsWFBhdGhSZXN1bHQuT1JERVJFRF9OT0RFX1NOQVBTSE9U X1RZUEUsbnVsbCk7dmFyIHJlc3VsdHM9W107Zm9yKHZhciBpPTAsbGVuZ3RoPXF1 ZXJ5LnNuYXBzaG90TGVuZ3RoO2k8bGVuZ3RoO2krKyl7cmVzdWx0cy5wdXNoKHF1 ZXJ5LnNuYXBzaG90SXRlbShpKSl9cmV0dXJuIHJlc3VsdHN9dGFnVHlwZT10YWdU eXBlP3RhZ1R5cGU6IioiO3ZhciBtYXRjaGluZ1RhZ3M9cGFyZW50RWxlbWVudC5n ZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdUeXBlKTtpZihjbGFzc05hbWUpe3ZhciBt YXRjaGluZ0VsZW1lbnRzPVtdO3ZhciBtYXRjaGluZ1RhZ3NMZW5ndGg9bWF0Y2hp bmdUYWdzLmxlbmd0aDt2YXIgZWxlbWVudEhhc1N1cHBsaWVkQ2xhc3NOYW1lPWhh c0NsYXNzTmFtZUZ1bmN0aW9uKGNsYXNzTmFtZSk7Zm9yKHZhciBpPTA7aTxtYXRj aGluZ1RhZ3NMZW5ndGg7aSsrKXtpZihlbGVtZW50SGFzU3VwcGxpZWRDbGFzc05h bWUobWF0Y2hpbmdUYWdzW2ldKSl7bWF0Y2hpbmdFbGVtZW50cy5wdXNoKG1hdGNo aW5nVGFnc1tpXSl9fXJldHVybiBtYXRjaGluZ0VsZW1lbnRzCn1yZXR1cm4gY29u dmVydE5vZGVMaXN0VG9BcnJheShtYXRjaGluZ1RhZ3MpfTt2YXIgY29udmVydE5v ZGVMaXN0VG9BcnJheT1mdW5jdGlvbihsaXN0TGlrZU9iamVjdCl7dmFyIGN1cnJl bnRQbGFjZT1saXN0TGlrZU9iamVjdC5sZW5ndGg7dmFyIHJlc3VsdHM9W107d2hp bGUoY3VycmVudFBsYWNlLS0pe3Jlc3VsdHNbY3VycmVudFBsYWNlXT1saXN0TGlr ZU9iamVjdFtjdXJyZW50UGxhY2VdfXJldHVybiByZXN1bHRzfX0sZm9ybTpuZXcg ZnVuY3Rpb24oKXt2YXIgaW5zdGFuY2U9dGhpczt2YXIgaW5wdXRUYWdzPVsiaW5w dXQiLCJ0ZXh0YXJlYSIsInNlbGVjdCJdO3RoaXMuc2VyaWFsaXplRm9ybT1mdW5j dGlvbihkb21Gb3JtKXt2YXIgc2VyaWFsaXplZEZpZWxkcz1bXTtmb3IodmFyIGk9 MDtpPGlucHV0VGFncy5sZW5ndGg7aSsrKXt2YXIgZmllbGRzPWRvbUZvcm0uZ2V0 RWxlbWVudHNCeVRhZ05hbWUoaW5wdXRUYWdzW2ldKTtmb3IodmFyIGo9MDtqPGZp ZWxkcy5sZW5ndGg7aisrKXt2YXIgZmllbGQ9ZmllbGRzW2pdO2lmKCFmaWVsZC5k aXNhYmxlZCYmZmllbGQubmFtZSl7c2VyaWFsaXplZEZpZWxkcy5wdXNoKGluc3Rh bmNlLnNlcmlhbGl6ZShmaWVsZCkpfX19dmFyIGZvcm1BY3Rpb249ZG9tRm9ybS5h Y3Rpb247cmV0dXJuIHNlcmlhbGl6ZWRGaWVsZHMuam9pbigiJiIpfTt0aGlzLnNl cmlhbGl6ZT1mdW5jdGlvbihlbGVtZW50KXt2YXIgdGFnVHlwZT1lbGVtZW50LnRh Z05hbWUudG9Mb3dlckNhc2UoKTt2YXIgZWxWYWx1ZT1udWxsO3N3aXRjaCh0YWdU eXBlKXtjYXNlInRleHRhcmVhIjplbFZhbHVlPWVsZW1lbnQudmFsdWU7YnJlYWs7 Y2FzZSJpbnB1dCI6c3dpdGNoKGVsZW1lbnQudHlwZS50b0xvd2VyQ2FzZSgpKXtj YXNlInJhZGlvIjpjYXNlImNoZWNrYm94IjplbFZhbHVlPWVsZW1lbnQuY2hlY2tl ZD9lbGVtZW50LnZhbHVlOm51bGw7YnJlYWs7ZGVmYXVsdDplbFZhbHVlPWVsZW1l bnQudmFsdWU7YnJlYWt9YnJlYWs7Y2FzZSJzZWxlY3QiOnZhciBzZWxlY3RlZE9w dGlvbnM9W107CmZvcih2YXIgaz0wO2s8ZWxlbWVudC5vcHRpb25zLmxlbmd0aDtr Kyspe2lmKGVsZW1lbnQub3B0aW9uc1trXS5zZWxlY3RlZCl7c2VsZWN0ZWRPcHRp b25zLnB1c2goZWxlbWVudC5vcHRpb25zW2tdLnZhbHVlP2VsZW1lbnQub3B0aW9u c1trXS52YWx1ZTplbGVtZW50Lm9wdGlvbnNba10udGV4dCk7aWYoIWVsZW1lbnQu bXVsdGlwbGUpe2JyZWFrfX19aWYoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aD4wKXtl bFZhbHVlPXNlbGVjdGVkT3B0aW9ucy5qb2luKCIsIil9fWlmKGVsVmFsdWUhPT1u dWxsKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnQubmFtZSkrIj0i K2VuY29kZVVSSUNvbXBvbmVudChlbFZhbHVlKX19fX07ZW5zdXJlUGFja2FnZSgi Z3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5ldmVudD17c3RvcDpmdW5jdGlvbihl dmVudCl7ZXZlbnQ9ZXZlbnR8fHdpbmRvdy5ldmVudDtpZihldmVudC5wcmV2ZW50 RGVmYXVsdCl7ZXZlbnQucHJldmVudERlZmF1bHQoKX1lbHNle2V2ZW50LnJldHVy blZhbHVlPWZhbHNlfWlmKGV2ZW50LnN0b3BQcm9wYWdhdGlvbil7ZXZlbnQuc3Rv cFByb3BhZ2F0aW9uKCl9ZWxzZXtldmVudC5jYW5jZWxCdWJibGU9dHJ1ZX19LGdl dEVsZW1lbnQ6ZnVuY3Rpb24oZXZlbnQpe2lmKCFldmVudC50YXJnZXQpe2V2ZW50 LnRhcmdldD1ldmVudC5zcmNFbGVtZW50fHxkb2N1bWVudH1pZihldmVudC50YXJn ZXQubm9kZVR5cGU9PTMpe2V2ZW50LnRhcmdldD1ldmVudC50YXJnZXQucGFyZW50 Tm9kZX1yZXR1cm4gZXZlbnQudGFyZ2V0fX07c3R5bGVzaGVldHM9alEoImxpbmtb cmVsKj0nc3R5bGVzaGVldCddIik7alEoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9u KCl7Zm9udFNpemVDb29raWU9Imd1Rm9udFNpemUiO2NvbnRhaW5lcj1qUSgiI3dy YXBwZXIiKTt2YXIgbXlEYXRlPW5ldyBEYXRlKCk7dmFyIGV4cGlyZXM9bXlEYXRl LmdldEZ1bGxZZWFyKCkrMTtteURhdGUuc2V0RnVsbFllYXIoZXhwaXJlcyk7ZXhw aXJlc1Zhcj1teURhdGUudG9HTVRTdHJpbmcoKTsKcHJpbnRNb2RlPWZhbHNlO2lm KHdpbmRvdy5sb2NhdGlvbi50b1N0cmluZygpLmluZGV4T2YoIi9wcmludCIpPjAp e3ByaW50TW9kZT10cnVlfWlmKGpRLmNvb2tpZShmb250U2l6ZUNvb2tpZSkpe3Zh ciBmb250U2l6ZT1qUS5jb29raWUoZm9udFNpemVDb29raWUpO2lmKGZvbnRTaXpl IT0xMil7aWYocHJpbnRNb2RlKXtmb250U2l6ZT1yZXNpemUoZm9udFNpemUsNCl9 cmVzaXplVGV4dChmb250U2l6ZSk7dXBkYXRlU3R5bGVzaGVldHMoZm9udFNpemUs ZmFsc2UpfX1mb250U2l6ZXIoIiNsYXJnZXIiLCIjc21hbGxlciIpO2ZvbnRTaXpl cigiI2xhcmdlci1zaWRlYmFyIiwiI3NtYWxsZXItc2lkZWJhciIpfSk7ZnVuY3Rp b24gZm9udFNpemVyKGluY3JlYXNlLGRlY3JlYXNlKXtqUShpbmNyZWFzZSkuY3Nz KCJkaXNwbGF5IiwiaW5saW5lIik7alEoZGVjcmVhc2UpLmNzcygiZGlzcGxheSIs ImlubGluZSIpO2pRKGluY3JlYXNlKS5jbGljayhmdW5jdGlvbigpe3ZhciBjdXJy ZW50U2l6ZT1jb250YWluZXIuY3NzKCJmb250LXNpemUiKTt2YXIgbmV3Rm9udFNp emU9cmVzaXplKGN1cnJlbnRTaXplLDIpO3Jlc2l6ZVRleHQobmV3Rm9udFNpemUp O3VwZGF0ZVN0eWxlc2hlZXRzKG5ld0ZvbnRTaXplLGZhbHNlKTtyZXR1cm4gZmFs c2V9KTtqUShkZWNyZWFzZSkuY2xpY2soZnVuY3Rpb24oKXt2YXIgY3VycmVudFNp emU9Y29udGFpbmVyLmNzcygiZm9udC1zaXplIik7dmFyIG5ld0ZvbnRTaXplPXJl c2l6ZShjdXJyZW50U2l6ZSwtMik7cmVzaXplVGV4dChuZXdGb250U2l6ZSk7dXBk YXRlU3R5bGVzaGVldHMobmV3Rm9udFNpemUsZmFsc2UpO3JldHVybiBmYWxzZX0p fWZ1bmN0aW9uIHJlc2l6ZVRleHQoZm9udFNpemUpe2lmKGZvbnRTaXplPDYpe2Zv bnRTaXplPTZ9Y29udGFpbmVyLmNzcygiZm9udC1zaXplIixmb250U2l6ZSsicHgi KTtpZighcHJpbnRNb2RlKXtqUS5jb29raWUoZm9udFNpemVDb29raWUsZm9udFNp emUse2V4cGlyZXM6ZXhwaXJlc1ZhcixwYXRoOiIvIn0pCn19ZnVuY3Rpb24gdXBk YXRlU3R5bGVzaGVldHMoZm9udFNpemUsaXNLZXlib2FyZCl7bWF4U2l6ZT0yNjtp Zihpc0tleWJvYXJkKXttYXhTaXplPTMyfWlmKGZvbnRTaXplPj1tYXhTaXplKXtz dHlsZXNoZWV0cy5lYWNoKGZ1bmN0aW9uKGkpe3RoaXMuZGlzYWJsZWQ9dHJ1ZTtp ZihqUSh0aGlzKS5hdHRyKCJjbGFzcyIpPT0iY29udHJhc3QiKXt0aGlzLmRpc2Fi bGVkPWZhbHNlfX0pO2pRKCJsaW5rI25vLWxheW91dC1zaGVldCIpLmF0dHIoInJl bCIsInN0eWxlc2hlZXQiKX1lbHNle3N0eWxlc2hlZXRzLmVhY2goZnVuY3Rpb24o aSl7dGhpcy5kaXNhYmxlZD1mYWxzZX0pO2lmKGd1YXJkaWFuLnIyLmJyb3dzZXIu aXNJRTZ8fGd1YXJkaWFuLnIyLmJyb3dzZXIuaXNJRTcpe2RvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCJuby1sYXlvdXQtc2hlZXQiKS5kaXNhYmxlZD10cnVlfWVsc2V7 alEoImxpbmsjbm8tbGF5b3V0LXNoZWV0IikuYXR0cigicmVsIiwiYWx0ZXJuYXRl Iil9fX1mdW5jdGlvbiByZXNpemUoZm9udFNpemUsbWVhc3VyZW1lbnQpe3JldHVy biBwYXJzZUludChmb250U2l6ZSwxMCkrbWVhc3VyZW1lbnR9ZnVuY3Rpb24gX2Zv cm1DaGVja2VyKGVsZW0sbGltaXQsd2FybmluZyl7dmFyIGNoYXJzTGVmdD1saW1p dC1lbGVtLnZhbHVlLmxlbmd0aDt3YXJuaW5nLmlubmVySFRNTD1jaGFyc0xlZnQr IiBjaGFyYWN0ZXJzIGxlZnQiO3dhcm5pbmcuY2xhc3NOYW1lPSIiO2lmKGVsZW0u dmFsdWUubGVuZ3RoPmxpbWl0KXtlbGVtLnZhbHVlPWVsZW0udmFsdWUuc3Vic3Ry aW5nKDAsbGltaXQpO3dhcm5pbmcuaW5uZXJIVE1MPSJNYXggMjUwIGNoYXJhY3Rl cnMiO3dhcm5pbmcuY2xhc3NOYW1lPSJ3YXJuaW5nIjtlbGVtLnNjcm9sbFRvcD1l bGVtLnNjcm9sbEhlaWdodC1lbGVtLmNsaWVudEhlaWdodH19ZnVuY3Rpb24gZm9y bUNoZWNrZXIoZWxlbSxsaW1pdCl7X2Zvcm1DaGVja2VyKGVsZW0sbGltaXQsZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndhcm5pbmciKSkKfWZ1bmN0aW9uIGZvcm1D aGVja2VyU2lkZShlbGVtLGxpbWl0KXtfZm9ybUNoZWNrZXIoZWxlbSxsaW1pdCxk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2FybmluZy1zaWRlIikpfWZ1bmN0aW9u IGF0dGFjaFZhbGlkYXRpb25Ub0Zvcm1zT25QYWdlKCl7Zm9yKHZhciBpPTA7aTxk b2N1bWVudC5mb3Jtcy5sZW5ndGg7KytpKXthZGRFdmVudChkb2N1bWVudC5mb3Jt c1tpXSwic3VibWl0Iix2YWxpZGF0ZUZvcm0pfX1mdW5jdGlvbiBoaWdobGlnaHRB bmRGYWRlSW5wdXQoaW5wdXRFbGVtZW50KXt2YXIgY29sb3VyTGV2ZWw9MTt2YXIg c3RlcD1mdW5jdGlvbigpe3ZhciBoZXg9Y29sb3VyTGV2ZWwudG9TdHJpbmcoMTYp O2lucHV0RWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9IiNGRkZGIitoZXgr aGV4O2lmKGNvbG91ckxldmVsPDE1KXtjb2xvdXJMZXZlbCs9MTtzZXRUaW1lb3V0 KHN0ZXAsMTAwKX19O3NldFRpbWVvdXQoc3RlcCwxMDApfWZ1bmN0aW9uIHZhbGlk YXRlRm9ybShlKXt0aGVGb3JtPWUudGFyZ2V0fHx3aW5kb3cuZXZlbnQuc3JjRWxl bWVudDtmb3IodmFyIGk9MDtpPHRoZUZvcm0uZWxlbWVudHMubGVuZ3RoOysraSl7 dmFyIGZvcm1OYW1lPXRoZUZvcm0uZWxlbWVudHNbaV0ubmFtZTtpZigoZm9ybU5h bWU9PSJzZWFyY2gifHxmb3JtTmFtZT09IlBPU1RDT0RFX0xPQ0FUSU9OIikmJiF0 aGVGb3JtLmVsZW1lbnRzW2ldLnZhbHVlKXtoaWdobGlnaHRBbmRGYWRlSW5wdXQo dGhlRm9ybS5lbGVtZW50c1tpXSk7Z3VhcmRpYW4ucjIuZXZlbnQuc3RvcChlKX19 fWFkZEV2ZW50KGRvY3VtZW50LCJsb2FkIixhdHRhY2hWYWxpZGF0aW9uVG9Gb3Jt c09uUGFnZSk7RGF0ZS5wcm90b3R5cGUuZm9ybWF0RGF0ZT1mdW5jdGlvbihpbnB1 dCx0aW1lKXt2YXIgZGF5c0xvbmc9WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5 IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdO3Zh ciBkYXlzU2hvcnQ9WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmki LCJTYXQiXTsKdmFyIG1vbnRoc1Nob3J0PVsiSmFuIiwiRmViIiwiTWFyIiwiQXBy IiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVj Il07dmFyIG1vbnRoc0xvbmc9WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIs IkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIi LCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdO3ZhciBzd2l0Y2hlcz17 YTpmdW5jdGlvbigpe3JldHVybiBkYXRlLmdldEhvdXJzKCk+MTE/InBtIjoiYW0i fSxBOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuYSgpLnRvVXBwZXJDYXNlKCkpfSxC OmZ1bmN0aW9uKCl7dmFyIG9mZj0oZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpKzYw KSo2MDt2YXIgdGhlU2Vjb25kcz0oZGF0ZS5nZXRIb3VycygpKjM2MDApKyhkYXRl LmdldE1pbnV0ZXMoKSo2MCkrZGF0ZS5nZXRTZWNvbmRzKCkrb2ZmO3ZhciBiZWF0 PU1hdGguZmxvb3IodGhlU2Vjb25kcy84Ni40KTtpZihiZWF0PjEwMDApe2JlYXQt PTEwMDB9aWYoYmVhdDwwKXtiZWF0Kz0xMDAwfWlmKChTdHJpbmcoYmVhdCkpLmxl bmd0aD09MSl7YmVhdD0iMDAiK2JlYXR9aWYoKFN0cmluZyhiZWF0KSkubGVuZ3Ro PT0yKXtiZWF0PSIwIitiZWF0fXJldHVybiBiZWF0fSxjOmZ1bmN0aW9uKCl7cmV0 dXJuKHRoaXMuWSgpKyItIit0aGlzLm0oKSsiLSIrdGhpcy5kKCkrIlQiK3RoaXMu aCgpKyI6Iit0aGlzLmkoKSsiOiIrdGhpcy5zKCkrdGhpcy5QKCkpfSxkOmZ1bmN0 aW9uKCl7dmFyIGo9U3RyaW5nKHRoaXMuaigpKTtyZXR1cm4oai5sZW5ndGg9PTE/ IjAiK2o6ail9LEQ6ZnVuY3Rpb24oKXtyZXR1cm4gZGF5c1Nob3J0W2RhdGUuZ2V0 RGF5KCldfSxGOmZ1bmN0aW9uKCl7cmV0dXJuIG1vbnRoc0xvbmdbZGF0ZS5nZXRN b250aCgpXX0sZzpmdW5jdGlvbigpe2lmKGRhdGUuZ2V0SG91cnMoKT4xMil7cmV0 dXJuIGRhdGUuZ2V0SG91cnMoKS0xMn1lbHNle2lmKGRhdGUuZ2V0SG91cnMoKT09 PTApe3JldHVybiAxMgp9ZWxzZXtyZXR1cm4gZGF0ZS5nZXRIb3VycygpfX19LEc6 ZnVuY3Rpb24oKXtyZXR1cm4gZGF0ZS5nZXRIb3VycygpfSxoOmZ1bmN0aW9uKCl7 dmFyIGc9U3RyaW5nKHRoaXMuZygpKTtyZXR1cm4oZy5sZW5ndGg9PTE/IjAiK2c6 Zyl9LEg6ZnVuY3Rpb24oKXt2YXIgRz1TdHJpbmcodGhpcy5HKCkpO3JldHVybihH Lmxlbmd0aD09MT8iMCIrRzpHKX0saTpmdW5jdGlvbigpe3ZhciBtaW49U3RyaW5n KGRhdGUuZ2V0TWludXRlcygpKTtyZXR1cm4obWluLmxlbmd0aD09MT8iMCIrbWlu Om1pbil9LEk6ZnVuY3Rpb24oKXt2YXIgbm9EU1Q9bmV3IERhdGUoIkphbnVhcnkg MSAiK3RoaXMuWSgpKyIgMDA6MDA6MDAiKTtyZXR1cm4obm9EU1QuZ2V0VGltZXpv bmVPZmZzZXQoKT09ZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpPzA6MSl9LGo6ZnVu Y3Rpb24oKXtyZXR1cm4gZGF0ZS5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oKXtyZXR1 cm4gZGF5c0xvbmdbZGF0ZS5nZXREYXkoKV19LEw6ZnVuY3Rpb24oKXt2YXIgWT10 aGlzLlkoKTtpZigoWSU0PT0wJiZZJTEwMCE9MCl8fChZJTQ9PTAmJlklMTAwPT0w JiZZJTQwMD09MCkpe3JldHVybiAxfWVsc2V7cmV0dXJuIDB9fSxtOmZ1bmN0aW9u KCl7dmFyIG49U3RyaW5nKHRoaXMubigpKTtyZXR1cm4obi5sZW5ndGg9PTE/IjAi K246bil9LE06ZnVuY3Rpb24oKXtyZXR1cm4gbW9udGhzU2hvcnRbZGF0ZS5nZXRN b250aCgpXX0sbjpmdW5jdGlvbigpe3JldHVybiBkYXRlLmdldE1vbnRoKCkrMX0s TjpmdW5jdGlvbigpe3ZhciB3PXRoaXMudygpO3JldHVybih3PT0wPzc6dyl9LE86 ZnVuY3Rpb24oKXt2YXIgb3M9TWF0aC5hYnMoZGF0ZS5nZXRUaW1lem9uZU9mZnNl dCgpKTt2YXIgaD1TdHJpbmcoTWF0aC5mbG9vcihvcy82MCkpO3ZhciBtPVN0cmlu ZyhvcyU2MCk7aC5sZW5ndGg9PTE/aD0iMCIraDoxO20ubGVuZ3RoPT0xP209IjAi K206MTtyZXR1cm4gZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpPDA/IisiK2grbToi LSIraCttfSxQOmZ1bmN0aW9uKCl7dmFyIE89dGhpcy5PKCk7CnJldHVybihPLnN1 YnN0cigwLDMpKyI6IitPLnN1YnN0cigzLDIpKX0scjpmdW5jdGlvbigpe3ZhciBy O3I9dGhpcy5EKCkrIiwgIit0aGlzLmQoKSsiICIrdGhpcy5NKCkrIiAiK3RoaXMu WSgpKyIgIit0aGlzLkgoKSsiOiIrdGhpcy5pKCkrIjoiK3RoaXMucygpKyIgIit0 aGlzLk8oKTtyZXR1cm4gcn0sczpmdW5jdGlvbigpe3ZhciBzZWM9U3RyaW5nKGRh dGUuZ2V0U2Vjb25kcygpKTtyZXR1cm4oc2VjLmxlbmd0aD09MT8iMCIrc2VjOnNl Yyl9LFM6ZnVuY3Rpb24oKXtzd2l0Y2goZGF0ZS5nZXREYXRlKCkpe2Nhc2UgMTpy ZXR1cm4oInN0Iik7Y2FzZSAyOnJldHVybigibmQiKTtjYXNlIDM6cmV0dXJuKCJy ZCIpO2Nhc2UgMjE6cmV0dXJuKCJzdCIpO2Nhc2UgMjI6cmV0dXJuKCJuZCIpO2Nh c2UgMjM6cmV0dXJuKCJyZCIpO2Nhc2UgMzE6cmV0dXJuKCJzdCIpO2RlZmF1bHQ6 cmV0dXJuKCJ0aCIpfX0sdDpmdW5jdGlvbigpe3ZhciBkYXlzaW5tb250aHM9W251 bGwsMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO2lmKHRoaXMu TCgpPT0xJiZ0aGlzLm4oKT09Mil7cmV0dXJuIDI5fXJldHVybiBkYXlzaW5tb250 aHNbdGhpcy5uKCldfSxVOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgucm91bmQoZGF0 ZS5nZXRUaW1lKCkvMTAwMCl9LHc6ZnVuY3Rpb24oKXtyZXR1cm4gZGF0ZS5nZXRE YXkoKX0sVzpmdW5jdGlvbigpe3ZhciBEb1c9dGhpcy5OKCk7dmFyIERvWT10aGlz LnooKTt2YXIgZGF5c1RvTlk9MzY0K3RoaXMuTCgpLURvWTtpZihkYXlzVG9OWTw9 MiYmRG9XPD0oMy1kYXlzVG9OWSkpe3JldHVybiAxfWlmKERvWTw9MiYmRG9XPj01 KXtyZXR1cm4gbmV3IERhdGUodGhpcy5ZKCktMSwxMSwzMSkuZm9ybWF0RGF0ZSgi VyIpfXZhciBueURvVz1uZXcgRGF0ZSh0aGlzLlkoKSwwLDEpLmdldERheSgpO255 RG9XPW55RG9XIT0wP255RG9XLTE6NjtpZihueURvVzw9Myl7cmV0dXJuKDErTWF0 aC5mbG9vcigoRG9ZK255RG9XKS83KSl9ZWxzZXtyZXR1cm4oMStNYXRoLmZsb29y KChEb1ktKDctbnlEb1cpKS83KSkKfX0seTpmdW5jdGlvbigpe3ZhciB5PVN0cmlu Zyh0aGlzLlkoKSk7cmV0dXJuIHkuc3Vic3RyaW5nKHkubGVuZ3RoLTIseS5sZW5n dGgpfSxZOmZ1bmN0aW9uKCl7aWYoZGF0ZS5nZXRGdWxsWWVhcil7dmFyIG5ld0Rh dGU9bmV3IERhdGUoIkphbnVhcnkgMSAyMDAxIDAwOjAwOjAwICswMDAwIik7dmFy IHg9bmV3RGF0ZS5nZXRGdWxsWWVhcigpO2lmKHg9PTIwMDEpe3JldHVybiBkYXRl LmdldEZ1bGxZZWFyKCl9fXZhciB4PWRhdGUuZ2V0WWVhcigpO3ZhciB5PXglMTAw O3krPSh5PDM4KT8yMDAwOjE5MDA7cmV0dXJuIHl9LHo6ZnVuY3Rpb24oKXt2YXIg dD1uZXcgRGF0ZSgiSmFudWFyeSAxICIrdGhpcy5ZKCkrIiAwMDowMDowMCIpO3Zh ciBkaWZmPWRhdGUuZ2V0VGltZSgpLXQuZ2V0VGltZSgpO3JldHVybiBNYXRoLmZs b29yKGRpZmYvMTAwMC82MC82MC8yNCl9LFo6ZnVuY3Rpb24oKXtyZXR1cm4oZGF0 ZS5nZXRUaW1lem9uZU9mZnNldCgpKi02MCl9fTtmdW5jdGlvbiBnZXRTd2l0Y2go c3RyKXtpZihzd2l0Y2hlc1tzdHJdIT11bmRlZmluZWQpe3JldHVybiBzd2l0Y2hl c1tzdHJdKCl9ZWxzZXtyZXR1cm4gc3RyfX12YXIgZGF0ZTtpZih0aW1lKXt2YXIg ZGF0ZT1uZXcgRGF0ZSh0aW1lKX1lbHNle3ZhciBkYXRlPXRoaXN9dmFyIGZvcm1h dFN0cmluZz1pbnB1dC5zcGxpdCgiIik7dmFyIGk9MDt3aGlsZShpPGZvcm1hdFN0 cmluZy5sZW5ndGgpe2lmKGZvcm1hdFN0cmluZ1tpXT09IlxcIil7Zm9ybWF0U3Ry aW5nLnNwbGljZShpLDEpfWVsc2V7Zm9ybWF0U3RyaW5nW2ldPWdldFN3aXRjaChm b3JtYXRTdHJpbmdbaV0pfWkrK31yZXR1cm4gZm9ybWF0U3RyaW5nLmpvaW4oIiIp fTtEYXRlLkRBVEVfQVRPTT0iWS1tLWRcXFRIOmk6c1AiO0RhdGUuREFURV9JU084 NjAxPSJZLW0tZFxcVEg6aTpzTyI7RGF0ZS5EQVRFX1JGQzI4MjI9IkQsIGQgTSBZ IEg6aTpzIE8iO0RhdGUuREFURV9XM0M9IlktbS1kXFxUSDppOnNQIjthZGRFdmVu dCh3aW5kb3csImxvYWQiLHNldFVwR2FsbGVyeSk7CmZ1bmN0aW9uIHNldFVwR2Fs bGVyeSgpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZHx8IWRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJzaG93ZXIiKXx8IWRvY3VtZW50LmdldEVsZW1lbnRCeUlk KCJvdmVybGF5LXdyYXBwZXIiKSl7cmV0dXJuIH12YXIgbWF4T3BhY2l0eT05MDt2 YXIgZmFkZXI9bWF4T3BhY2l0eTt2YXIgZmFkZUludGVydmFsO3ZhciBvdmVybGF5 V3JhcD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3ZlcmxheS13cmFwcGVyIik7 dmFyIG92ZXJsYXk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm92ZXJsYXkiKTt2 YXIgY29udHJvbGxlcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2hvd2VyIik7 dmFyIG1haW5QaWN0dXJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWluLXBp Y3R1cmUiKTt2YXIgZ3VHYWxsZXJ5PXtpbml0OmZ1bmN0aW9uKCl7dmFyIG92ZXJs YXlXaWR0aD1ndUdhbGxlcnkuY2FsY3VsYXRlV2lkdGgoKTtvdmVybGF5V3JhcC5z dHlsZS53aWR0aD1vdmVybGF5V2lkdGgrInB4IjtvdmVybGF5V3JhcC5zdHlsZS5k aXNwbGF5PSJibG9jayI7aWYob3ZlcmxheVdyYXAuZmlsdGVycyl7b3ZlcmxheS5z dHlsZS53aWR0aD0ob3ZlcmxheVdpZHRoLTIwKSsicHgifWlmKG92ZXJsYXlXcmFw LmNsYXNzTmFtZS5tYXRjaCgvKHRvcC1yaWdodCkvKSl7b3ZlcmxheVdyYXAuc3R5 bGUubGVmdD0oKG1haW5QaWN0dXJlLndpZHRoLW92ZXJsYXlXaWR0aCktMTApKyJw eCAifWNvbnRyb2xsZXIub25jbGljaz1ndUdhbGxlcnkuc3dpdGNoRGlzcGxheTtn dUdhbGxlcnkuZGlzcGxheUlzQXZhaWxhYmxlPXRydWV9LGNhbGN1bGF0ZVdpZHRo OmZ1bmN0aW9uKCl7dmFyIHdpZHRoPW1haW5QaWN0dXJlLndpZHRoO2lmKHdpZHRo PDUwMCl7cmV0dXJuIDI1MH1lbHNle3JldHVybiAzMDB9fSxzd2l0Y2hEaXNwbGF5 OmZ1bmN0aW9uKCl7dHJ5e2NsZWFySW50ZXJ2YWwoZmFkZUludGVydmFsKX1jYXRj aChlKXt9dmFyIHN0YXRlPW92ZXJsYXlXcmFwLmNsYXNzTmFtZTsKaWYoZ3VHYWxs ZXJ5LmRpc3BsYXlJc0F2YWlsYWJsZSl7ZmFkZUludGVydmFsPXNldEludGVydmFs KGZhZGVPdXQsMTUpO3N0YXRlPXN0YXRlLnJlcGxhY2UoImdhbGxlcnktb24iLCJn YWxsZXJ5LW9mZiIpfWVsc2V7ZmFkZUludGVydmFsPXNldEludGVydmFsKGZhZGVJ biwxNSk7c3RhdGU9c3RhdGUucmVwbGFjZSgiZ2FsbGVyeS1vZmYiLCJnYWxsZXJ5 LW9uIil9b3ZlcmxheVdyYXAuY2xhc3NOYW1lPXN0YXRlO3JldHVybiBmYWxzZX19 O2Z1bmN0aW9uIGZhZGVPdXQoKXtzZXRPcGFjaXR5KGZhZGVyKTtmYWRlcj1mYWRl ci0xO2lmKGZhZGVyPDApe2NsZWFySW50ZXJ2YWwoZmFkZUludGVydmFsKTtvdmVy bGF5LnN0eWxlLm9wYWNpdHk9LTI7b3ZlcmxheS5zdHlsZS5kaXNwbGF5PSJub25l IjtndUdhbGxlcnkuZGlzcGxheUlzQXZhaWxhYmxlPWZhbHNlfX1mdW5jdGlvbiBm YWRlSW4oKXtvdmVybGF5LnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtzZXRPcGFjaXR5 KGZhZGVyKTtmYWRlcj1mYWRlcisxO2lmKGZhZGVyPihtYXhPcGFjaXR5LTEpKXtj bGVhckludGVydmFsKGZhZGVJbnRlcnZhbCk7Z3VHYWxsZXJ5LmRpc3BsYXlJc0F2 YWlsYWJsZT10cnVlO292ZXJsYXkuc3R5bGUuZGlzcGxheT0iYmxvY2sifX1mdW5j dGlvbiBzZXRPcGFjaXR5KGZhZGVyKXtpZihvdmVybGF5LmZpbHRlcnMpe292ZXJs YXkuc3R5bGUuZmlsdGVyPSJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3Nv ZnQuQWxwaGEob3BhY2l0eT0iK2ZhZGVyKyIpIn1lbHNle292ZXJsYXkuc3R5bGUu b3BhY2l0eT1mYWRlci8xMDB9fWd1R2FsbGVyeS5pbml0KCl9ZW5zdXJlUGFja2Fn ZSgiZ3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5HZW9Mb2NhdGVkQ29udGVudD1m dW5jdGlvbihsYXRpdHVkZSxsb25naXR1ZGUsbGlua1RleHQsd2ViUHVibGljYXRp b25EYXRlVGltZSxwYWdlVVJMKXt0aGlzLmxhdGl0dWRlPWxhdGl0dWRlO3RoaXMu bG9uZ2l0dWRlPWxvbmdpdHVkZTt0aGlzLmxpbmtUZXh0PWxpbmtUZXh0Owp0aGlz LndlYlB1YmxpY2F0aW9uRGF0ZVRpbWU9d2ViUHVibGljYXRpb25EYXRlVGltZTt0 aGlzLnBhZ2VVUkw9cGFnZVVSTH07Z3VhcmRpYW4ucjIuR2VvTG9jYXRlZENvbnRl bnRDb250cm9sbGVyPWZ1bmN0aW9uKGdlb0xvY2F0ZWRDb250ZW50VmlldyxnZW9M b2NhdGVkQ29udGVudExpc3Qpe3ZhciBpbnN0YW5jZT10aGlzO3ZhciBudW1iZXJP ZkVudHJpZXM7dGhpcy5pbml0aWFsaXplPWZ1bmN0aW9uKCl7Z2VvTG9jYXRlZENv bnRlbnRWaWV3LmFkZExvYWRFdmVudChpbnN0YW5jZS5vbkxvYWQpO2dlb0xvY2F0 ZWRDb250ZW50Vmlldy5hZGRVbmxvYWRFdmVudChpbnN0YW5jZS5vblVubG9hZCl9 O3RoaXMub25Mb2FkPWZ1bmN0aW9uKCl7Z2VvTG9jYXRlZENvbnRlbnRWaWV3Lmlu aXRpYWxpemVNYXAoKTtpbnN0YW5jZS5kaXNwbGF5RmVlZEVudHJpZXMoZ2VvTG9j YXRlZENvbnRlbnRMaXN0KX07dGhpcy5kaXNwbGF5RmVlZEVudHJpZXM9ZnVuY3Rp b24oZW50cmllcyl7aWYoZW50cmllcy5sZW5ndGg+MCl7Z2VvTG9jYXRlZENvbnRl bnRWaWV3LnNob3dNYXAoKTtmb3IodmFyIGluZGV4PTA7aW5kZXg8ZW50cmllcy5s ZW5ndGg7aW5kZXgrKyl7Z2VvTG9jYXRlZENvbnRlbnRWaWV3LmRpc3BsYXlFbnRy eU9uTWFwKGVudHJpZXNbaW5kZXhdKX1nZW9Mb2NhdGVkQ29udGVudFZpZXcuem9v bVRvTGF0ZXN0KCk7aWYoZW50cmllcy5sZW5ndGg+MSl7Z2VvTG9jYXRlZENvbnRl bnRWaWV3LmNyZWF0ZU5hdihlbnRyaWVzLmxlbmd0aCl9fX07dGhpcy5vblVubG9h ZD1mdW5jdGlvbigpe2dlb0xvY2F0ZWRDb250ZW50Vmlldy51bmxvYWRNYXBzKCl9 fTthZGRFdmVudCh3aW5kb3csImxvYWQiLEdVZ2V0VXJsKTtmdW5jdGlvbiBHVWdl dFVybCgpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ28tdG8iKSl7cmV0 dXJuIH12YXIgbXlVcmw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvLXRvIik7 Zm9yKHZhciBpPTA7aTxteVVybC5sZW5ndGg7aSsrKXtteVVybC5vbmNoYW5nZT1m dW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbj10aGlzLnZhbHVlCn19fWVuc3VyZVBh Y2thZ2UoImd1YXJkaWFuLnIyIik7YWRkRXZlbnQod2luZG93LCJsb2FkIixnbG9z c2FyeVBvcHVwVmlldyk7ZnVuY3Rpb24gZ2xvc3NhcnlQb3B1cFZpZXcoKXtmdW5j dGlvbiBhdHRhY2hMaW5rc1RvR2xvc3NhcnkoaWRlbnRpZmllcixoZWFkZXIsZm9v dGVyKXt2YXIgYWxsR2xvc3NhcnlMaW5rcz1ndWFyZGlhbi5yMi5kb20uZWxlbWVu dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGlkZW50aWZpZXIpO2lmKCFhbGxHbG9z c2FyeUxpbmtzKXtyZXR1cm4gfWZvcih2YXIgaT0wO2k8YWxsR2xvc3NhcnlMaW5r cy5sZW5ndGg7KytpKXt2YXIgaHJlZj1hbGxHbG9zc2FyeUxpbmtzW2ldLmdldEF0 dHJpYnV0ZSgiaHJlZiIpO2hyZWY9YWxsR2xvc3NhcnlMaW5rc1tpXS5nZXRBdHRy aWJ1dGUoImhyZWYiLDIpO2hyZWY9aHJlZi5zdWJzdHJpbmcoMSk7YWRkRXZlbnQo YWxsR2xvc3NhcnlMaW5rc1tpXSwiY2xpY2siLHRvZ2dsZUdsb3NzYXJ5UG9wdXAo aHJlZixhbGxHbG9zc2FyeUxpbmtzW2ldLGksaGVhZGVyLGZvb3RlcikpfX1mdW5j dGlvbiB0b2dnbGVHbG9zc2FyeVBvcHVwKGhyZWYsZWxlLG51bSxoZWFkZXIsZm9v dGVyKXtyZXR1cm4gZnVuY3Rpb24oZSl7Z3VhcmRpYW4ucjIuZXZlbnQuc3RvcChl KTt2YXIgcG9wVXA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaHJlZisiLXBvcHVw LSIrbnVtKTtpZihwb3BVcD09PW51bGx8fHBvcFVwPT09Im51bGwiKXt2YXIgZ2xv c3NhcnlJdGVtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhyZWYpO3ZhciBsaW5r UG9zaXRpb25MZWZ0PWVsZS5vZmZzZXRMZWZ0O3BvcFVwPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoImRpdiIpO3BvcFVwQm94PWdsb3NzYXJ5SXRlbS5jbG9uZU5vZGUo dHJ1ZSk7cG9wVXBIZWFkaW5nPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIik7 aWYoaGVhZGVyIT09bnVsbCl7cG9wVXBIZWFkaW5nVGV4dD1kb2N1bWVudC5jcmVh dGVUZXh0Tm9kZShoZWFkZXIpO3BvcFVwSGVhZGluZy5hcHBlbmRDaGlsZChwb3BV cEhlYWRpbmdUZXh0KQp9cG9wVXBDbG9zZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50 KCJhIik7YWRkRXZlbnQocG9wVXBDbG9zZSwiY2xpY2siLHRvZ2dsZUdsb3NzYXJ5 UG9wdXAoaHJlZixlbGUsbnVtKSk7cG9wVXBDbG9zZS5zZXRBdHRyaWJ1dGUoImNs YXNzIiwiY2xvc2UiKTtwb3BVcENsb3NlLnNldEF0dHJpYnV0ZSgiY2xhc3NOYW1l IiwiY2xvc2UiKTtwb3BVcENsb3NlVGV4dD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9k ZSgiQ2xvc2UiKTtwb3BVcENsb3NlLmFwcGVuZENoaWxkKHBvcFVwQ2xvc2VUZXh0 KTtwb3BVcEZvb3Rlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7aWYoZm9v dGVyIT09bnVsbCl7cG9wVXBGb290ZXJUZXh0PWRvY3VtZW50LmNyZWF0ZVRleHRO b2RlKGZvb3Rlcik7cG9wVXBGb290ZXIuYXBwZW5kQ2hpbGQocG9wVXBGb290ZXJU ZXh0KX1pZihoZWFkZXIhPT1udWxsKXtwb3BVcC5hcHBlbmRDaGlsZChwb3BVcEhl YWRpbmcpfXBvcFVwLmFwcGVuZENoaWxkKHBvcFVwQ2xvc2UpO3BvcFVwLmFwcGVu ZENoaWxkKHBvcFVwQm94KTtwb3BVcC5hcHBlbmRDaGlsZChwb3BVcEZvb3Rlcik7 cG9wVXAuc2V0QXR0cmlidXRlKCJpZCIsaHJlZisiLXBvcHVwLSIrbnVtKTtwb3BV cC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiZ2xvc3NhcnktcG9wdXAiKTtwb3BVcC5z ZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsImdsb3NzYXJ5LXBvcHVwIik7ZWxlLnBh cmVudE5vZGUuaW5zZXJ0QmVmb3JlKHBvcFVwLGVsZSk7dmFyIHBvcHVwSWQ9cG9w VXAuZ2V0QXR0cmlidXRlKCJpZCIpO2pRKCIjIitwb3B1cElkKS5jc3MoInBvc2l0 aW9uIiwiYWJzb2x1dGUiKTtqUSgiIyIrcG9wdXBJZCkuY3NzKCJsZWZ0IixsaW5r UG9zaXRpb25MZWZ0K2VsZS5vZmZzZXRXaWR0aCsicHgiKX10b2dnbGVEaXNwbGF5 KHBvcFVwKX19ZnVuY3Rpb24gdG9nZ2xlRGlzcGxheShwb3BVcCl7cG9wVXAuc3R5 bGUuZGlzcGxheT1wb3BVcC5zdHlsZS5kaXNwbGF5PT0oImJsb2NrIik/cG9wVXAu c3R5bGUuZGlzcGxheT0ibm9uZSI6cG9wVXAuc3R5bGUuZGlzcGxheT0oImJsb2Nr IikKfWF0dGFjaExpbmtzVG9HbG9zc2FyeSgiZ2xvc3MtbGluayIsIkdsb3NzYXJ5 IiwiXHUwMEE5IEJNSiBQdWJsaXNoaW5nIEdyb3VwIEx0ZCAyMDEwIik7YXR0YWNo TGlua3NUb0dsb3NzYXJ5KCJndS1nbG9zcy1saW5rIixudWxsLG51bGwpfWdvb2ds ZV9hZF9vdXRwdXQ9ImpzIjtnb29nbGVfYWRfdHlwZT0idGV4dCI7Z29vZ2xlX2xh bmd1YWdlPSJlbiI7Z29vZ2xlX2VuY29kaW5nPSJ1dGY4Ijtnb29nbGVfc2FmZT0i aGlnaCI7Z29vZ2xlX2ZlZWRiYWNrPSJvbiI7ZnVuY3Rpb24gZ29vZ2xlX2FkX3Jl cXVlc3RfZG9uZShnb29nbGVfYWRzKXt2YXIgZ29vZ2xlX2F0dHJpYnV0aW9uPSc8 YSBjbGFzcz0iYWRfYXR0cmlidXRpb24iIGhyZWY9IicrZ29vZ2xlX2luZm8uZmVl ZGJhY2tfdXJsKyciPkFkcyBieSBHb29nbGU8L2E+JztpZihnb29nbGVfYWRzLmxl bmd0aD09MCl7cmV0dXJuIH12YXIgcz0iIjtpZihnb29nbGVfYWRzWzBdLnR5cGU9 PSJ0ZXh0Iil7cys9IjxoMz4iK2dvb2dsZV9hdHRyaWJ1dGlvbisiPC9oMz4iO3Mr PSc8dWwgY2xhc3M9InJlc3VsdHMiPic7Zm9yKGk9MDtpPGdvb2dsZV9hZHMubGVu Z3RoOysraSl7cys9IjxsaT4iO3MrPSc8aDQ+PGEgdGFyZ2V0PSJfVE9QIiBocmVm PSInK2dvb2dsZV9hZHNbaV0udXJsKyciPicrZ29vZ2xlX2Fkc1tpXS5saW5lMSsi PC9hPjwvaDQ+IjtzKz0iPHA+Iitnb29nbGVfYWRzW2ldLmxpbmUyKyIgIitnb29n bGVfYWRzW2ldLmxpbmUzKyI8L3A+IjtzKz0nPHA+PGEgdGFyZ2V0PSJfVE9QIiBo cmVmPSInK2dvb2dsZV9hZHNbaV0udXJsKyciPicrZ29vZ2xlX2Fkc1tpXS52aXNp YmxlX3VybCsiPC9hPjwvcD4iO3MrPSI8L2xpPiJ9cys9IjwvdWw+In1mdW5jdGlv biBjcmVhdGVBZHZlcnRpc2luZ0Rpdigpe3ZhciBhZHZlcnRpc2luZ0Rpdj1kb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgiZ29vZ2xlLWFkcy1jb250YWluZXIiKTtpZihh ZHZlcnRpc2luZ0Rpdil7YWR2ZXJ0aXNpbmdEaXYuaW5uZXJIVE1MPXM7YWR2ZXJ0 aXNpbmdEaXYuc3R5bGUuZGlzcGxheT0iYmxvY2siCn19aWYobG9hZEV2ZW50TGlz dC5oYXNGaXJlZCl7Y3JlYXRlQWR2ZXJ0aXNpbmdEaXYoKX1lbHNle2FkZEV2ZW50 KGRvY3VtZW50LCJsb2FkIixjcmVhdGVBZHZlcnRpc2luZ0Rpdil9cmV0dXJuIH1q UShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUSgiYS5zaG93ZXIiKS5jbGlj ayhmdW5jdGlvbigpe2lmKGpRKCJib2R5LmNsaXBwaW5ncyIpLmxlbmd0aCl7dGhl UGFyZW50PSIuc2hvdy1tb3JlIn1lbHNle3RoZVBhcmVudD0idWwifWpRKHRoaXMp LnRvZ2dsZUNsYXNzKCJvcGVuIikucGFyZW50cyh0aGVQYXJlbnQpLmZpbHRlcigi OmZpcnN0IikubmV4dCgpLnRvZ2dsZSgpO3JldHVybiBmYWxzZX0pfSk7ZW5zdXJl UGFja2FnZSgiZ3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5tb3JlVHJhaWxzVGFi YmVkPWZ1bmN0aW9uKCl7dmFyIGluc3RhbmNlPXRoaXM7dGhpcy5hZGRQYWdpbmF0 aW9uQ2xpY2tIYW5kbGVycz1mdW5jdGlvbigpe2pRdWVyeSgiI21vcmUtdHJhaWxz LXRhYmJlZCB1bC5wYWdpbmF0aW9uIGEiKS5saXZlKCJjbGljayIsZnVuY3Rpb24o ZSl7aW5zdGFuY2Uuc2VuZFJlcXVlc3QodGhpcyk7cmV0dXJuIGZhbHNlfSl9O3Ro aXMuc2VuZFJlcXVlc3Q9ZnVuY3Rpb24oZWxlbSl7dmFyIHNlY3Rpb25JZD1qUShl bGVtKS5wYXJlbnRzKCJbaWRePW1vcmUtdHJhaWxzLXRhYmJlZC1dIikuYXR0cigi aWQiKTt2YXIgc2VjdGlvbj1zZWN0aW9uSWQuc3BsaXQoIi0iKVszXTt2YXIgdXJs PWluc3RhbmNlLmJ1aWxkVXJsKGVsZW0sc2VjdGlvbik7alF1ZXJ5KCIjIitzZWN0 aW9uSWQpLmxvYWQodXJsKyIgIyIrc2VjdGlvbklkKyIgPiAqIixmdW5jdGlvbihk YXRhKXtqUXVlcnkoIiMiK3NlY3Rpb25JZCsiIGRpdiBpbWciKS5lYWNoKGZ1bmN0 aW9uKGEpe2FwcGx5SW1hZ2VNYXNrSW1tZWRpYXRlKHRoaXMsInZpZGVvIil9KX0p fTt0aGlzLmJ1aWxkVXJsPWZ1bmN0aW9uKGVsZW0sc2VjdGlvbil7dmFyIHVybD1l bGVtLmhyZWY7dXJsKz0odXJsLmluZGV4T2YoIj8iKT09LTEpPyI/IjoiJiI7CnVy bCs9Il9ndUFqYXhQYW5lbD1tb3JlVmlkZW9UYWJzQWpheFBhbmVsIjt1cmwrPSgi Jm1vcmVWaWRlb0RhdGE9IitzZWN0aW9uKTtyZXR1cm4gdXJsfTt0aGlzLmFkZE1v dXNlT3ZlckhhbmRsZXJzPWZ1bmN0aW9uKCl7alF1ZXJ5KCIjbW9yZS10cmFpbHMt dGFiYmVkIGRpdiBsaSBkaXYudHJhaWwtY2FwdGlvbiIpLmNzcygib3BhY2l0eSIs MCkuc2hvdygpO2pRdWVyeSgiI21vcmUtdHJhaWxzLXRhYmJlZCBkaXYgbGkiKS5s aXZlKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2pRdWVyeSh0aGlzKS5maW5kKCJk aXYudHJhaWwtY2FwdGlvbiIpLmZhZGVUbygzMDAsMC44KTtpZihndWFyZGlhbi5y Mi5icm93c2VyLmlzSUU3KXtqUXVlcnkodGhpcykuZmluZCgiaW1nLm1hc2siKS5o aWRlKCl9ZWxzZXtqUXVlcnkodGhpcykuZmluZCgiaW1nLm1hc2siKS5mYWRlVG8o MzAwLDApfX0pO2pRdWVyeSgiI21vcmUtdHJhaWxzLXRhYmJlZCBkaXYgbGkiKS5s aXZlKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2lmKGd1YXJkaWFuLnIyLmJyb3dz ZXIuaXNJRTcpe2pRdWVyeSh0aGlzKS5maW5kKCJpbWcubWFzayIpLnNob3coKX1l bHNle2pRdWVyeSh0aGlzKS5maW5kKCJpbWcubWFzayIpLmZhZGVUbygzMDAsMSl9 alF1ZXJ5KHRoaXMpLmZpbmQoImRpdi50cmFpbC1jYXB0aW9uIikuZmFkZVRvKDMw MCwwKX0pfTt0aGlzLmFkZE1vdXNlT3ZlckhhbmRsZXJzKCk7dGhpcy5hZGRQYWdp bmF0aW9uQ2xpY2tIYW5kbGVycygpfTt2YXIgcG9zdExvYWRJbWFnZT1mdW5jdGlv biBwb3N0TG9hZEltYWdlRmFjdG9yeSgpe3ZhciBpbWFnZXNUb0xvYWQ9e307ZnVu Y3Rpb24gcG9zdExvYWRJbWFnZShlbGVtZW50SWQsdXJsKXtpbWFnZXNUb0xvYWRb ZWxlbWVudElkXT11cmw7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk KS5zcmM9dXJsfWZ1bmN0aW9uIGxvYWRJbWFnZXMoKXtmb3IodmFyIGVsZW1lbnRJ ZCBpbiBpbWFnZXNUb0xvYWQpe2lmKGltYWdlc1RvTG9hZC5oYXNPd25Qcm9wZXJ0 eShlbGVtZW50SWQpKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQp LnNyYz1pbWFnZXNUb0xvYWRbZWxlbWVudElkXQp9fX1hZGRFdmVudCh3aW5kb3cs ImxvYWQiLGxvYWRJbWFnZXMpO3JldHVybiBwb3N0TG9hZEltYWdlfSgpO3ZhciBh cHBseUltYWdlTWFzaz1mdW5jdGlvbiBhcHBseUltYWdlTWFza0ZhY3RvcnkoKXt2 YXIgaW1hZ2VzVG9NYXNrPXt9O2Z1bmN0aW9uIGFwcGx5SW1hZ2VNYXNrKGVsZW1l bnRJZCxtYXNrTmFtZSl7aW1hZ2VzVG9NYXNrW2VsZW1lbnRJZF09bWFza05hbWU7 aWYoaW1hZ2VzVG9NYXNrLmhhc093blByb3BlcnR5KGVsZW1lbnRJZCkpe3ZhciBv cmlnaW5hbEVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk KTt2YXIgcGFyZW50Tm9kZT1vcmlnaW5hbEVsZW1lbnQucGFyZW50Tm9kZTt2YXIg cGFyZW50Tm9kZU5hbWU9cGFyZW50Tm9kZS5ub2RlTmFtZTtpZihwYXJlbnROb2Rl TmFtZS5tYXRjaCgvXmEkfF5kaXYvaSkmJnBhcmVudE5vZGUubGFzdENoaWxkLmNs YXNzTmFtZSE9PSJtYXNrIil7dmFyIG1hc2tOYW1lPWltYWdlc1RvTWFza1tlbGVt ZW50SWRdO2FwcGx5SW1hZ2VNYXNrSW1tZWRpYXRlKG9yaWdpbmFsRWxlbWVudCxt YXNrTmFtZSl9fX1mdW5jdGlvbiBhcHBseUltYWdlTWFza3MoKXtmb3IodmFyIGVs ZW1lbnRJZCBpbiBpbWFnZXNUb01hc2spe2lmKGltYWdlc1RvTWFzay5oYXNPd25Q cm9wZXJ0eShlbGVtZW50SWQpKXt2YXIgb3JpZ2luYWxFbGVtZW50PWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7dmFyIHBhcmVudE5vZGU9b3JpZ2lu YWxFbGVtZW50LnBhcmVudE5vZGU7dmFyIHBhcmVudE5vZGVOYW1lPXBhcmVudE5v ZGUubm9kZU5hbWU7aWYocGFyZW50Tm9kZU5hbWUubWF0Y2goL15hJHxeZGl2L2kp JiZwYXJlbnROb2RlLmxhc3RDaGlsZC5jbGFzc05hbWUhPT0ibWFzayIpe3ZhciBt YXNrTmFtZT1pbWFnZXNUb01hc2tbZWxlbWVudElkXTthcHBseUltYWdlTWFza0lt bWVkaWF0ZShvcmlnaW5hbEVsZW1lbnQsbWFza05hbWUpfX19fWFkZEV2ZW50KHdp bmRvdywibG9hZCIsYXBwbHlJbWFnZU1hc2tzKTsKcmV0dXJuIGFwcGx5SW1hZ2VN YXNrfSgpO2FkZEV2ZW50KHdpbmRvdywibG9hZCIsZ3VXZWJTZWFyY2gpO2Z1bmN0 aW9uIGd1V2ViU2VhcmNoKCl7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz ZWFyY2gtd2ViIil8fCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2ViLXNlYXJj aC1maWVsZCIpKXtyZXR1cm4gfXZhciByYWRpb0J1dHRvbj1kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgic2VhcmNoLXdlYiIpO3ZhciBzZWFyY2hGaWVsZD1kb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgid2ViLXNlYXJjaC1maWVsZCIpO2RvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJzZWFyY2gtd2ViIikub25jbGljaz1mdW5jdGlvbigpe2Rv U2VhcmNoQmcodGhpcyl9O2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gt Z3VhcmRpYW4iKS5vbmNsaWNrPWZ1bmN0aW9uKCl7ZG9TZWFyY2hCZyh0aGlzKX07 aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaC1zZWN0aW9uIikpe2Rv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gtc2VjdGlvbiIpLm9uY2xpY2s9 ZnVuY3Rpb24oKXtkb1NlYXJjaEJnKHRoaXMpfX1mdW5jdGlvbiBkb1NlYXJjaEJn KGVsZW1lbnRSZWYpe2lmKGVsZW1lbnRSZWYuaWQhPSJzZWFyY2gtd2ViIil7c2Vh cmNoRmllbGQuY2xhc3NOYW1lPXNlYXJjaEZpZWxkLmNsYXNzTmFtZS5yZXBsYWNl KC9cYndlYi1zZWFyY2hcYi8sIiIpfWVsc2V7aWYoIXNlYXJjaEZpZWxkLmNsYXNz TmFtZS5tYXRjaCgvXGJ3ZWItc2VhcmNoXGIvKSl7c2VhcmNoRmllbGQuY2xhc3NO YW1lPXNlYXJjaEZpZWxkLmNsYXNzTmFtZSsiIHdlYi1zZWFyY2gifX19fWZ1bmN0 aW9uIFNlYXJjaEZvcm0obGl2ZU1vZGUsYnJvd3NlSG9zdCxjb21tZW50c1NlYXJj aEJhc2VVcmwsd2ViU2VhcmNoQmFzZVVybCl7aWYoZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoInNlYXJjaC1wbHVjay1jb21tZW50cyIpJiZkb2N1bWVudC5nZXRFbGVt ZW50QnlJZCgic2VhcmNoLXBsdWNrLWNvbW1lbnRzIikuc2VsZWN0ZWQpe3dpbmRv dy5sb2NhdGlvbj1jb21tZW50c1NlYXJjaEJhc2VVcmwrIj9zZWFyY2g9Iitlc2Nh cGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYi1zZWFyY2gtZmllbGQiKS52 YWx1ZSk7CnJldHVybiBmYWxzZX12YXIgdGhhdD10aGlzO3RoaXMubGl2ZU1vZGU9 bGl2ZU1vZGU7dGhpcy5icm93c2VIb3N0PWJyb3dzZUhvc3Q7dGhpcy53ZWJTZWFy Y2hCYXNlVXJsPXdlYlNlYXJjaEJhc2VVcmw7dmFyIHNlYXJjaEZvcm09ZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaCIpO2lmKHNlYXJjaEZvcm0pe3ZhciB0 ZXh0RmllbGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYi1zZWFyY2gtZmll bGQiKTtzZWFyY2hGb3JtLmFjdGlvbj10aGlzLmJyb3dzZUhvc3QrIi9zZWFyY2gi O3RleHRGaWVsZC5uYW1lPSJzZWFyY2giO2FkZEV2ZW50KHNlYXJjaEZvcm0sInN1 Ym1pdCIsY2hlY2tTdWJtaXQpfWZ1bmN0aW9uIGNoZWNrU3VibWl0KGUpe3ZhciB0 ZXh0RmllbGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlYi1zZWFyY2gtZmll bGQiKTt2YXIgZm9ybT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoIik7 aWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaC13ZWIiKSYmKGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gtd2ViIikuc2VsZWN0ZWR8fGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJzZWFyY2gtd2ViIikuY2hlY2tlZCkpe3RleHRG aWVsZC5uYW1lPSJxIjtmb3JtLmFjdGlvbj10aGF0LndlYlNlYXJjaEJhc2VVcmx9 ZWxzZXtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VhcmNoLXNlY3Rpb24i KSYmZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlYXJjaC1zZWN0aW9uIikuc2Vs ZWN0ZWQpe3RleHRGaWVsZC5uYW1lPSJzZWFyY2giO2Zvcm0uYWN0aW9uPXRoYXQu YnJvd3NlSG9zdCsiL3NlYXJjaC8iK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz ZWFyY2gtc2VjdGlvbiIpLnZhbHVlfWVsc2V7dGV4dEZpZWxkLm5hbWU9InNlYXJj aCI7Zm9ybS5hY3Rpb249dGhhdC5icm93c2VIb3N0KyIvc2VhcmNoIn19cmV0dXJu IH19Z3VhcmRpYW4ucjIub3ZlcmxheUxpbmtzPWZ1bmN0aW9uKCl7dmFyIGNsYXNz ZXM9WyJlbWJlZC1saW5rIiwic2VuZC1zaGFyZSIsInNlbmQtZW1haWwiLCJoaXN0 b3J5LWxpbmsiLCJjb250YWN0LWxpbmsiLCJzZXR0aW5ncy1saW5rIl0scGFuZXM9 alEoImRpdi50b29sYm94LXBvcHVwIiksaXNHYWxsZXJ5UGFnZT0oalEoImJvZHku Z2FsbGVyeSIpLmxlbmd0aD4wP3RydWU6ZmFsc2UpOwp2YXIgdG9nZ2xlT3Zlcmxh eT1mdW5jdGlvbihsaW5rQ2xhc3Msc3JjRWxlbSl7dmFyIHBvc2l0aW9uT25QYWdl PWpRKHNyY0VsZW0pO3ZhciB0YXJnZXRQYW5lbD1qUSgiIyIrbGlua0NsYXNzKyIt Ym94Iik7aWYodGFyZ2V0UGFuZWwuaXMoIjp2aXNpYmxlIikpe3RvZ2dsZUhpZGVP blBvcHVwRWxlbWVudHMoInZpc2libGUiKTt0YXJnZXRQYW5lbC5oaWRlKCl9ZWxz ZXtwYW5lcy5oaWRlKCk7dmFyIHBvcz1wb3NpdGlvbk9uUGFnZS5vZmZzZXQoKTt2 YXIgbmV3VG9wLG5ld0xlZnQscmVsYXRpdmU7aWYocG9zaXRpb25PblBhZ2UuaXMo IjojaGlzdG9yeS1saW5rLWJ5bGluZSIpKXtuZXdMZWZ0PTEwLG5ld1RvcD1wb3Mu dG9wKzI1fWVsc2V7aWYocG9zaXRpb25PblBhZ2UuaXMoIjoucmVsYXRpdmUtcG9z aXRpb24iKSl7dGFyZ2V0UGFuZWwuYWRkQ2xhc3MoInBvc2l0aW9uLXJlbGF0aXZl LXBvcHVwIik7cmVsYXRpdmU9dHJ1ZX1lbHNle25ld0xlZnQ9IjEyZW0iLG5ld1Rv cD1wb3MudG9wKzI1fX1pZighcmVsYXRpdmUpe3RhcmdldFBhbmVsLmNzcyh7cG9z aXRpb246ImFic29sdXRlIix0b3A6bmV3VG9wLGxlZnQ6bmV3TGVmdH0pfWlmKGlz R2FsbGVyeVBhZ2Upe3RvZ2dsZUhpZGVPblBvcHVwRWxlbWVudHMoImhpZGRlbiIp fXRhcmdldFBhbmVsLnNob3coKX19O3ZhciBhcnRpY2xlSGlzdG9yeUJ5bGluZT1m dW5jdGlvbigpe2lmKGpRKCIjaGlzdG9yeS1saW5rLWJveCIpLmxlbmd0aCl7dmFy IGhpc3RvcnlMaW5rPWpRKCc8bGkgY2xhc3M9Imhpc3RvcnkiPjxhIGNsYXNzPSJy b2xsb3ZlciBoaXN0b3J5LWxpbmsiIGlkPSJoaXN0b3J5LWxpbmstYnlsaW5lIiBo cmVmPSIjaGlzdG9yeS1saW5rLWJveCI+QXJ0aWNsZSBoaXN0b3J5PC9hPjwvbGk+ Jyk7aWYoalEoIiNjb250cmliLXNoaWZ0IikubGVuZ3RoKXtqUSgiLmFydGljbGUt YXR0cmlidXRlcyB1bCIpLmFwcGVuZChoaXN0b3J5TGluayl9ZWxzZXtqUSgidWwu YXJ0aWNsZS1hdHRyaWJ1dGVzIikuYXBwZW5kKGhpc3RvcnlMaW5rKQp9fX07dmFy IGluaXRpYWxpemU9ZnVuY3Rpb24oKXthcnRpY2xlSGlzdG9yeUJ5bGluZSgpO2pR LmVhY2goY2xhc3NlcyxmdW5jdGlvbihpLHZhbCl7dmFyIGVsZW1lbnRzPWpRKCJh LiIrdmFsKTt2YXIgY2xvc2VFbGVtZW50cz1qUSgiYS5jbG9zZS10b29sYm94LSIr dmFsKTtlbGVtZW50cy5jbGljayhmdW5jdGlvbigpe3RvZ2dsZU92ZXJsYXkodmFs LHRoaXMpO3JldHVybiBmYWxzZX0pO2Nsb3NlRWxlbWVudHMuY2xpY2soZnVuY3Rp b24oKXtwYW5lcy5oaWRlKCk7dG9nZ2xlSGlkZU9uUG9wdXBFbGVtZW50cygidmlz aWJsZSIpO3JldHVybiBmYWxzZX0pfSl9O2lmKHBhbmVzLmxlbmd0aD4wKXtpbml0 aWFsaXplKCl9fTtqUShkb2N1bWVudCkucmVhZHkoZ3VhcmRpYW4ucjIub3Zlcmxh eUxpbmtzKTtpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCYmZG9jdW1lbnQuZ2V0 RWxlbWVudHNCeVRhZ05hbWUpe2FkZEV2ZW50KHdpbmRvdywibG9hZCIsdG9nZ2xl UXVpekFuc3dlcnMpfWZ1bmN0aW9uIHRvZ2dsZVF1aXpBbnN3ZXJzKCl7aWYoZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNob3ctYW5zd2Vycy1saW5rIikpe3ZhciB0 aGVMaW5rPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaG93LWFuc3dlcnMtbGlu ayIpO3RoZUxpbmsub25jbGljaz1mdW5jdGlvbigpe3ZhciBjbGFzc05hbWU9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aXotYW5zd2VycyIpLmNsYXNzTmFtZTtp ZihjbGFzc05hbWUuaW5kZXhPZigianMtaGlkZXIiKT4tMSl7ZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoInF1aXotYW5zd2VycyIpLmNsYXNzTmFtZT1jbGFzc05hbWUu cmVwbGFjZSgianMtaGlkZXIiLCJzaG93ZXIiKTt0aGVMaW5rLmlubmVySFRNTD0i SGlkZSBhbnN3ZXJzIn1lbHNle2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWl6 LWFuc3dlcnMiKS5jbGFzc05hbWU9Y2xhc3NOYW1lLnJlcGxhY2UoInNob3dlciIs ImpzLWhpZGVyIik7dGhlTGluay5pbm5lckhUTUw9IlNob3cgYW5zd2VycyIKfX19 fWZ1bmN0aW9uIFVybFN0YWNrKGNvb2tpZURvbWFpbil7dGhpcy5lc2NhcGVQbHVz PWZ1bmN0aW9uKHZhbHVlKXtyZXR1cm4gZXNjYXBlKHZhbHVlKS5yZXBsYWNlKC9c Ky8sIiUyQiIpfTt0aGlzLmNvb2tpZURvbWFpbj1jb29raWVEb21haW59VXJsU3Rh Y2sucHJvdG90eXBlLmdldENvb2tpZUZvclVybFN0YWNrPWZ1bmN0aW9uKG5hbWUp e2lmKCFkb2N1bWVudC5jb29raWUpe3JldHVybiIifXZhciBkYz1kb2N1bWVudC5j b29raWU7dmFyIHByZWZpeD1uYW1lKyI9Ijt2YXIgYmVnaW49ZGMuaW5kZXhPZigi OyAiK3ByZWZpeCk7aWYoYmVnaW49PS0xKXtiZWdpbj1kYy5pbmRleE9mKHByZWZp eCk7aWYoYmVnaW4hPTApe3JldHVybiBudWxsfX1lbHNle2JlZ2luKz0yfXZhciBl bmQ9ZG9jdW1lbnQuY29va2llLmluZGV4T2YoIjsiLGJlZ2luKTtpZihlbmQ9PS0x KXtlbmQ9ZGMubGVuZ3RofXJldHVybiB1bmVzY2FwZShkYy5zdWJzdHJpbmcoYmVn aW4rcHJlZml4Lmxlbmd0aCxlbmQpKX07VXJsU3RhY2sucHJvdG90eXBlLnNldENv b2tpZUZvclVybFN0YWNrPWZ1bmN0aW9uKG5hbWUsdmFsdWUpe3ZhciBjdXJDb29r aWU9bmFtZSsiPSIrdGhpcy5lc2NhcGVQbHVzKHZhbHVlKSsiOyBkb21haW49Iit0 aGlzLmNvb2tpZURvbWFpbisiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jdXJD b29raWV9O1VybFN0YWNrLnByb3RvdHlwZS5wdXNoVXJsT250b1N0YWNrPWZ1bmN0 aW9uKHVybCl7dmFyIGNvb2tpZT10aGlzLmdldENvb2tpZUZvclVybFN0YWNrKCJH VV9TVCIpO3ZhciBzdGFjaz1jb29raWU/Y29va2llLnNwbGl0KCJ8Iik6bmV3IEFy cmF5KCk7aWYoc3RhY2subGVuZ3RoPT0wfHwoc3RhY2subGVuZ3RoPjAmJnN0YWNr W3N0YWNrLmxlbmd0aC0xXSE9dXJsKSl7c3RhY2tbc3RhY2subGVuZ3RoXT11cmw7 dGhpcy5zZXRDb29raWVGb3JVcmxTdGFjaygiR1VfU1QiLHN0YWNrLmpvaW4oInwi KSl9cmV0dXJuIHRydWV9O1VybFN0YWNrLnByb3RvdHlwZS5VUkxTdGFja19wb3A9 ZnVuY3Rpb24oKXt2YXIgY29va2llPSJ8Iit0aGlzLmdldENvb2tpZUZvclVybFN0 YWNrKCJHVV9TVCIpOwp2YXIgeD1jb29raWUubGFzdEluZGV4T2YoInwiKTt2YXIg dXJsPWNvb2tpZS5zdWJzdHJpbmcoeCsxKTt0aGlzLnNldENvb2tpZUZvclVybFN0 YWNrKCJHVV9TVCIsY29va2llLnN1YnN0cmluZygwLHgpKTtyZXR1cm4gdXJsfTtV cmxTdGFjay5wcm90b3R5cGUuY2xlYXJVcmxTdGFjaz1mdW5jdGlvbigpe2lmKHRo aXMuZ2V0Q29va2llRm9yVXJsU3RhY2soIkdVX1NUIikhPSIiKXt0aGlzLnNldENv b2tpZUZvclVybFN0YWNrKCJHVV9TVCIsIiIpfX07ZnVuY3Rpb24gc2lnbkluKCl7 dXJsU3RhY2sucHVzaFVybE9udG9TdGFjayhkb2N1bWVudC5sb2NhdGlvbik7d2lu ZG93LmxvY2F0aW9uPSIvVXNlcnMvc2lnbmluLzAsLC0xLDAwLmh0bWwiO3JldHVy biBmYWxzZX1mdW5jdGlvbiBzaWduT3V0KCl7dXJsU3RhY2sucHVzaFVybE9udG9T dGFjayhkb2N1bWVudC5sb2NhdGlvbik7d2luZG93LmxvY2F0aW9uPSIvVXNlcnMv c2lnbm91dC90ci8xLCwsMDAuaHRtbCI7cmV0dXJuIGZhbHNlfXZhciBzdElzSUU9 Ci8qQGNjX29uIUAqLwpmYWxzZTtzb3J0dGFibGU9e2luaXQ6ZnVuY3Rpb24oKXtp Zihhcmd1bWVudHMuY2FsbGVlLmRvbmUpe3JldHVybiB9YXJndW1lbnRzLmNhbGxl ZS5kb25lPXRydWU7aWYoX3RpbWVyKXtjbGVhckludGVydmFsKF90aW1lcil9aWYo IWRvY3VtZW50LmNyZWF0ZUVsZW1lbnR8fCFkb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSl7cmV0dXJuIH1zb3J0dGFibGUuREFURV9SRT0vXihcZFxkPylbXC9c Li1dKFxkXGQ/KVtcL1wuLV0oKFxkXGQpP1xkXGQpJC87Zm9yRWFjaChkb2N1bWVu dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGFibGUiKSxmdW5jdGlvbih0YWJsZSl7 aWYodGFibGUuY2xhc3NOYW1lLnNlYXJjaCgvXGJzb3J0YWJsZVxiLykhPS0xKXtz b3J0dGFibGUubWFrZVNvcnRhYmxlKHRhYmxlKX19KX0saXNPZGQ6ZnVuY3Rpb24o bnVtYmVyKXtyZXR1cm4gIShudW1iZXIlMj09PTApfSxtYWtlU29ydGFibGU6ZnVu Y3Rpb24odGFibGUpe2lmKHRhYmxlLnRIZWFkLnJvd3MubGVuZ3RoIT0xKXtyZXR1 cm4gCn1oZWFkcm93PXRhYmxlLnRIZWFkLnJvd3NbMF0uY2VsbHM7Zm9yKHZhciBp PTA7aTxoZWFkcm93Lmxlbmd0aDtpKyspe2lmKCFoZWFkcm93W2ldLmNsYXNzTmFt ZS5tYXRjaCgvXGJzb3J0dGFibGVfbm9zb3J0XGIvKSl7bXRjaD1oZWFkcm93W2ld LmNsYXNzTmFtZS5tYXRjaCgvXGJzb3J0dGFibGVfKFthLXowLTldKylcYi8pO2lm KG10Y2gpe292ZXJyaWRlPW10Y2hbMV19aWYobXRjaCYmdHlwZW9mIHNvcnR0YWJs ZVsic29ydF8iK292ZXJyaWRlXT09ImZ1bmN0aW9uIil7aGVhZHJvd1tpXS5zb3J0 dGFibGVfc29ydGZ1bmN0aW9uPXNvcnR0YWJsZVsic29ydF8iK292ZXJyaWRlXX1l bHNle2hlYWRyb3dbaV0uc29ydHRhYmxlX3NvcnRmdW5jdGlvbj1zb3J0dGFibGUu Z3Vlc3NUeXBlKHRhYmxlLGkpfWhlYWRyb3dbaV0uc29ydHRhYmxlX2NvbHVtbmlu ZGV4PWk7aGVhZHJvd1tpXS5zb3J0dGFibGVfdGJvZHk9dGFibGUudEJvZGllc1sw XTtkZWFuX2FkZEV2ZW50KGhlYWRyb3dbaV0sImNsaWNrIixmdW5jdGlvbihlKXt2 YXIgcmV2ZXJzaW5nVGhpc0NvbHVtbj10aGlzLmNsYXNzTmFtZS5zZWFyY2goL1xi c29ydHRhYmxlX3NvcnRlZFxiLykhPS0xO3RoZWFkcm93PXRoaXMucGFyZW50Tm9k ZTtmb3JFYWNoKHRoZWFkcm93LmNoaWxkTm9kZXMsZnVuY3Rpb24oY2VsbCl7aWYo Y2VsbC5ub2RlVHlwZT09MSl7Y2VsbC5jbGFzc05hbWU9Y2VsbC5jbGFzc05hbWUu cmVwbGFjZSgic29ydHRhYmxlX3NvcnRlZF9yZXZlcnNlIiwiIik7Y2VsbC5jbGFz c05hbWU9Y2VsbC5jbGFzc05hbWUucmVwbGFjZSgic29ydHRhYmxlX3NvcnRlZCIs IiIpfX0pO3NvcnRmd2RpbmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvcnR0 YWJsZV9zb3J0ZndkaW5kIik7aWYoc29ydGZ3ZGluZCl7c29ydGZ3ZGluZC5wYXJl bnROb2RlLnJlbW92ZUNoaWxkKHNvcnRmd2RpbmQpfXNvcnRyZXZpbmQ9ZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoInNvcnR0YWJsZV9zb3J0cmV2aW5kIik7aWYoc29y dHJldmluZCl7c29ydHJldmluZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNvcnRy ZXZpbmQpCn10aGlzLmNsYXNzTmFtZSs9cmV2ZXJzaW5nVGhpc0NvbHVtbj8iIHNv cnR0YWJsZV9zb3J0ZWRfcmV2ZXJzZSI6IiBzb3J0dGFibGVfc29ydGVkIjtzb3J0 ZndkaW5kPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzb3J0ZndkaW5k LmlkPSJzb3J0dGFibGVfc29ydGZ3ZGluZCI7aWYocmV2ZXJzaW5nVGhpc0NvbHVt bil7c29ydGZ3ZGluZC5pbm5lckhUTUw9c3RJc0lFPyc8Zm9udCBmYWNlPSJ3ZWJk aW5ncyI+NjwvZm9udD4nOiImI3gyNUJFOyJ9ZWxzZXtzb3J0ZndkaW5kLmlubmVy SFRNTD1zdElzSUU/Jzxmb250IGZhY2U9IndlYmRpbmdzIj41PC9mb250Pic6IiYj eDI1QjQ7In10aGlzLmFwcGVuZENoaWxkKHNvcnRmd2RpbmQpO3Jvd19hcnJheT1b XTtjb2w9dGhpcy5zb3J0dGFibGVfY29sdW1uaW5kZXg7cm93cz10aGlzLnNvcnR0 YWJsZV90Ym9keS5yb3dzO2Zvcih2YXIgaj0wO2o8cm93cy5sZW5ndGg7aisrKXty b3dfYXJyYXlbcm93X2FycmF5Lmxlbmd0aF09W3NvcnR0YWJsZS5nZXRJbm5lclRl eHQocm93c1tqXS5jZWxsc1tjb2xdKSxyb3dzW2pdXX12YXIgdW5yZXZlcnNlZFNv cnRGdW5jdGlvbj10aGlzLnNvcnR0YWJsZV9zb3J0ZnVuY3Rpb247aWYocmV2ZXJz aW5nVGhpc0NvbHVtbil7dmFyIHJldmVyc2VkU29ydEZ1bmN0aW9uPWZ1bmN0aW9u KGEsYil7cmV0dXJuIC11bnJldmVyc2VkU29ydEZ1bmN0aW9uKGEsYil9O3Jvd19h cnJheS5zb3J0KHJldmVyc2VkU29ydEZ1bmN0aW9uKX1lbHNle3Jvd19hcnJheS5z b3J0KHVucmV2ZXJzZWRTb3J0RnVuY3Rpb24pfXRiPXRoaXMuc29ydHRhYmxlX3Ri b2R5O2Zvcih2YXIgaj0wO2o8cm93X2FycmF5Lmxlbmd0aDtqKyspe3ZhciB0aGlz Um93PXJvd19hcnJheVtqXVsxXTt0aGlzUm93LmNsYXNzTmFtZT0iIjtpZihzb3J0 dGFibGUuaXNPZGQoaikpe3RoaXNSb3cuY2xhc3NOYW1lPSJvZGQifXRiLmFwcGVu ZENoaWxkKHRoaXNSb3cpfWRlbGV0ZSByb3dfYXJyYXl9KX19fSxndWVzc1R5cGU6 ZnVuY3Rpb24odGFibGUsY29sdW1uKXtzb3J0Zm49c29ydHRhYmxlLnNvcnRfYWxw aGE7CmZvcih2YXIgaT0wO2k8dGFibGUudEJvZGllc1swXS5yb3dzLmxlbmd0aDtp Kyspe3RleHQ9c29ydHRhYmxlLmdldElubmVyVGV4dCh0YWJsZS50Qm9kaWVzWzBd LnJvd3NbaV0uY2VsbHNbY29sdW1uXSk7aWYodGV4dCE9IiIpe2lmKHRleHQubWF0 Y2goL14tP1vvv70k77+9XT9bXGQsLl0rJT8kLykpe3JldHVybiBzb3J0dGFibGUu c29ydF9udW1lcmljfXBvc3NkYXRlPXRleHQubWF0Y2goc29ydHRhYmxlLkRBVEVf UkUpO2lmKHBvc3NkYXRlKXtmaXJzdD1wYXJzZUludChwb3NzZGF0ZVsxXSk7c2Vj b25kPXBhcnNlSW50KHBvc3NkYXRlWzJdKTtpZihmaXJzdD4xMil7cmV0dXJuIHNv cnR0YWJsZS5zb3J0X2RkbW19ZWxzZXtpZihzZWNvbmQ+MTIpe3JldHVybiBzb3J0 dGFibGUuc29ydF9tbWRkfWVsc2V7c29ydGZuPXNvcnR0YWJsZS5zb3J0X2RkbW19 fX19fXJldHVybiBzb3J0Zm59LGdldElubmVyVGV4dDpmdW5jdGlvbihub2RlKXto YXNJbnB1dHM9KHR5cGVvZiBub2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lPT0iZnVu Y3Rpb24iKSYmbm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5n dGg7aWYobm9kZS5nZXRBdHRyaWJ1dGUoInNvcnR0YWJsZV9jdXN0b21rZXkiKSE9 bnVsbCl7cmV0dXJuIG5vZGUuZ2V0QXR0cmlidXRlKCJzb3J0dGFibGVfY3VzdG9t a2V5Iil9ZWxzZXtpZih0eXBlb2Ygbm9kZS50ZXh0Q29udGVudCE9InVuZGVmaW5l ZCImJiFoYXNJbnB1dHMpe3JldHVybiBub2RlLnRleHRDb250ZW50LnJlcGxhY2Uo L15ccyt8XHMrJC9nLCIiKX1lbHNle2lmKHR5cGVvZiBub2RlLmlubmVyVGV4dCE9 InVuZGVmaW5lZCImJiFoYXNJbnB1dHMpe3JldHVybiBub2RlLmlubmVyVGV4dC5y ZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9ZWxzZXtpZih0eXBlb2Ygbm9kZS50ZXh0 IT0idW5kZWZpbmVkIiYmIWhhc0lucHV0cyl7cmV0dXJuIG5vZGUudGV4dC5yZXBs YWNlKC9eXHMrfFxzKyQvZywiIil9ZWxzZXtzd2l0Y2gobm9kZS5ub2RlVHlwZSl7 Y2FzZSAzOmlmKG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09ImlucHV0Iil7 cmV0dXJuIG5vZGUudmFsdWUucmVwbGFjZSgvXlxzK3xccyskL2csIiIpCn1jYXNl IDQ6cmV0dXJuIG5vZGUubm9kZVZhbHVlLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIi KTticmVhaztjYXNlIDE6Y2FzZSAxMTp2YXIgaW5uZXJUZXh0PSIiO2Zvcih2YXIg aT0wO2k8bm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtpKyspe2lubmVyVGV4dCs9c29y dHRhYmxlLmdldElubmVyVGV4dChub2RlLmNoaWxkTm9kZXNbaV0pfXJldHVybiBp bm5lclRleHQucmVwbGFjZSgvXlxzK3xccyskL2csIiIpO2JyZWFrO2RlZmF1bHQ6 cmV0dXJuIiJ9fX19fX0scmV2ZXJzZTpmdW5jdGlvbih0Ym9keSl7bmV3cm93cz1b XTtmb3IodmFyIGk9MDtpPHRib2R5LnJvd3MubGVuZ3RoO2krKyl7bmV3cm93c1tu ZXdyb3dzLmxlbmd0aF09dGJvZHkucm93c1tpXX1mb3IodmFyIGk9bmV3cm93cy5s ZW5ndGgtMTtpPj0wO2ktLSl7dGJvZHkuYXBwZW5kQ2hpbGQobmV3cm93c1tpXSl9 ZGVsZXRlIG5ld3Jvd3N9LHNvcnRfbnVtZXJpYzpmdW5jdGlvbihhLGIpe2FhPXBh cnNlRmxvYXQoYVswXS5yZXBsYWNlKC9bXjAtOS4tXS9nLCIiKSk7aWYoaXNOYU4o YWEpKXthYT0wfWJiPXBhcnNlRmxvYXQoYlswXS5yZXBsYWNlKC9bXjAtOS4tXS9n LCIiKSk7aWYoaXNOYU4oYmIpKXtiYj0wfXJldHVybiBhYS1iYn0sc29ydF9hbHBo YTpmdW5jdGlvbihhLGIpe2lmKGFbMF09PWJbMF0pe3JldHVybiAwfWlmKGFbMF08 YlswXSl7cmV0dXJuIC0xfXJldHVybiAxfSxzb3J0X2RkbW06ZnVuY3Rpb24oYSxi KXttdGNoPWFbMF0ubWF0Y2goc29ydHRhYmxlLkRBVEVfUkUpO3k9bXRjaFszXTtt PW10Y2hbMl07ZD1tdGNoWzFdO2lmKG0ubGVuZ3RoPT0xKXttPSIwIittfWlmKGQu bGVuZ3RoPT0xKXtkPSIwIitkfWR0MT15K20rZDttdGNoPWJbMF0ubWF0Y2goc29y dHRhYmxlLkRBVEVfUkUpO3k9bXRjaFszXTttPW10Y2hbMl07ZD1tdGNoWzFdO2lm KG0ubGVuZ3RoPT0xKXttPSIwIittfWlmKGQubGVuZ3RoPT0xKXtkPSIwIitkfWR0 Mj15K20rZDtpZihkdDE9PWR0Mil7cmV0dXJuIDB9aWYoZHQxPGR0Mil7cmV0dXJu IC0xCn1yZXR1cm4gMX0sc29ydF9tbWRkOmZ1bmN0aW9uKGEsYil7bXRjaD1hWzBd Lm1hdGNoKHNvcnR0YWJsZS5EQVRFX1JFKTt5PW10Y2hbM107ZD1tdGNoWzJdO209 bXRjaFsxXTtpZihtLmxlbmd0aD09MSl7bT0iMCIrbX1pZihkLmxlbmd0aD09MSl7 ZD0iMCIrZH1kdDE9eSttK2Q7bXRjaD1iWzBdLm1hdGNoKHNvcnR0YWJsZS5EQVRF X1JFKTt5PW10Y2hbM107ZD1tdGNoWzJdO209bXRjaFsxXTtpZihtLmxlbmd0aD09 MSl7bT0iMCIrbX1pZihkLmxlbmd0aD09MSl7ZD0iMCIrZH1kdDI9eSttK2Q7aWYo ZHQxPT1kdDIpe3JldHVybiAwfWlmKGR0MTxkdDIpe3JldHVybiAtMX1yZXR1cm4g MX0sc2hha2VyX3NvcnQ6ZnVuY3Rpb24obGlzdCxjb21wX2Z1bmMpe3ZhciBiPTA7 dmFyIHQ9bGlzdC5sZW5ndGgtMTt2YXIgc3dhcD10cnVlO3doaWxlKHN3YXApe3N3 YXA9ZmFsc2U7Zm9yKHZhciBpPWI7aTx0OysraSl7aWYoY29tcF9mdW5jKGxpc3Rb aV0sbGlzdFtpKzFdKT4wKXt2YXIgcT1saXN0W2ldO2xpc3RbaV09bGlzdFtpKzFd O2xpc3RbaSsxXT1xO3N3YXA9dHJ1ZX19dC0tO2lmKCFzd2FwKXticmVha31mb3Io dmFyIGk9dDtpPmI7LS1pKXtpZihjb21wX2Z1bmMobGlzdFtpXSxsaXN0W2ktMV0p PDApe3ZhciBxPWxpc3RbaV07bGlzdFtpXT1saXN0W2ktMV07bGlzdFtpLTFdPXE7 c3dhcD10cnVlfX1iKyt9fX07YWRkRXZlbnQobnVsbCwibG9hZCIsc29ydHRhYmxl LmluaXQpO2Z1bmN0aW9uIGRlYW5fYWRkRXZlbnQoZWxlbWVudCx0eXBlLGhhbmRs ZXIpe2lmKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcil7ZWxlbWVudC5hZGRFdmVu dExpc3RlbmVyKHR5cGUsaGFuZGxlcixmYWxzZSl9ZWxzZXtpZighaGFuZGxlci4k JGd1aWQpe2hhbmRsZXIuJCRndWlkPWRlYW5fYWRkRXZlbnQuZ3VpZCsrfWlmKCFl bGVtZW50LmV2ZW50cyl7ZWxlbWVudC5ldmVudHM9e319dmFyIGhhbmRsZXJzPWVs ZW1lbnQuZXZlbnRzW3R5cGVdO2lmKCFoYW5kbGVycyl7aGFuZGxlcnM9ZWxlbWVu dC5ldmVudHNbdHlwZV09e307CmlmKGVsZW1lbnRbIm9uIit0eXBlXSl7aGFuZGxl cnNbMF09ZWxlbWVudFsib24iK3R5cGVdfX1oYW5kbGVyc1toYW5kbGVyLiQkZ3Vp ZF09aGFuZGxlcjtlbGVtZW50WyJvbiIrdHlwZV09aGFuZGxlRXZlbnR9fWRlYW5f YWRkRXZlbnQuZ3VpZD0xO2Z1bmN0aW9uIHJlbW92ZUV2ZW50KGVsZW1lbnQsdHlw ZSxoYW5kbGVyKXtpZihlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpe2VsZW1l bnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLGhhbmRsZXIsZmFsc2UpfWVsc2V7 aWYoZWxlbWVudC5ldmVudHMmJmVsZW1lbnQuZXZlbnRzW3R5cGVdKXtkZWxldGUg ZWxlbWVudC5ldmVudHNbdHlwZV1baGFuZGxlci4kJGd1aWRdfX19ZnVuY3Rpb24g aGFuZGxlRXZlbnQoZXZlbnQpe3ZhciByZXR1cm5WYWx1ZT10cnVlO2V2ZW50PWV2 ZW50fHxmaXhFdmVudCgoKHRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVu dHx8dGhpcykucGFyZW50V2luZG93fHx3aW5kb3cpLmV2ZW50KTt2YXIgaGFuZGxl cnM9dGhpcy5ldmVudHNbZXZlbnQudHlwZV07Zm9yKHZhciBpIGluIGhhbmRsZXJz KXt0aGlzLiQkaGFuZGxlRXZlbnQ9aGFuZGxlcnNbaV07aWYodGhpcy4kJGhhbmRs ZUV2ZW50KGV2ZW50KT09PWZhbHNlKXtyZXR1cm5WYWx1ZT1mYWxzZX19cmV0dXJu IHJldHVyblZhbHVlfWZ1bmN0aW9uIGZpeEV2ZW50KGV2ZW50KXtldmVudC5wcmV2 ZW50RGVmYXVsdD1maXhFdmVudC5wcmV2ZW50RGVmYXVsdDtldmVudC5zdG9wUHJv cGFnYXRpb249Zml4RXZlbnQuc3RvcFByb3BhZ2F0aW9uO3JldHVybiBldmVudH1m aXhFdmVudC5wcmV2ZW50RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMucmV0dXJuVmFs dWU9ZmFsc2V9O2ZpeEV2ZW50LnN0b3BQcm9wYWdhdGlvbj1mdW5jdGlvbigpe3Ro aXMuY2FuY2VsQnViYmxlPXRydWV9O2lmKCFBcnJheS5mb3JFYWNoKXtBcnJheS5m b3JFYWNoPWZ1bmN0aW9uKGFycmF5LGJsb2NrLGNvbnRleHQpe2Zvcih2YXIgaT0w O2k8YXJyYXkubGVuZ3RoOwppKyspe2Jsb2NrLmNhbGwoY29udGV4dCxhcnJheVtp XSxpLGFycmF5KX19fUZ1bmN0aW9uLnByb3RvdHlwZS5mb3JFYWNoPWZ1bmN0aW9u KG9iamVjdCxibG9jayxjb250ZXh0KXtmb3IodmFyIGtleSBpbiBvYmplY3Qpe2lm KHR5cGVvZiB0aGlzLnByb3RvdHlwZVtrZXldPT0idW5kZWZpbmVkIil7YmxvY2su Y2FsbChjb250ZXh0LG9iamVjdFtrZXldLGtleSxvYmplY3QpfX19O1N0cmluZy5m b3JFYWNoPWZ1bmN0aW9uKHN0cmluZyxibG9jayxjb250ZXh0KXtBcnJheS5mb3JF YWNoKHN0cmluZy5zcGxpdCgiIiksZnVuY3Rpb24oY2hyLGluZGV4KXtibG9jay5j YWxsKGNvbnRleHQsY2hyLGluZGV4LHN0cmluZyl9KX07dmFyIGZvckVhY2g9ZnVu Y3Rpb24ob2JqZWN0LGJsb2NrLGNvbnRleHQpe2lmKG9iamVjdCl7dmFyIHJlc29s dmU9T2JqZWN0O2lmKG9iamVjdCBpbnN0YW5jZW9mIEZ1bmN0aW9uKXtyZXNvbHZl PUZ1bmN0aW9ufWVsc2V7aWYob2JqZWN0LmZvckVhY2ggaW5zdGFuY2VvZiBGdW5j dGlvbil7b2JqZWN0LmZvckVhY2goYmxvY2ssY29udGV4dCk7cmV0dXJuIH1lbHNl e2lmKHR5cGVvZiBvYmplY3Q9PSJzdHJpbmciKXtyZXNvbHZlPVN0cmluZ31lbHNl e2lmKHR5cGVvZiBvYmplY3QubGVuZ3RoPT0ibnVtYmVyIil7cmVzb2x2ZT1BcnJh eX19fX1yZXNvbHZlLmZvckVhY2gob2JqZWN0LGJsb2NrLGNvbnRleHQpfX07ZnVu Y3Rpb24gc3BvcnRzVGFicygpe2Z1bmN0aW9uIGluaXQoKXt2YXIgdWxzPWRvY3Vt ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpO2ZvcihpPTA7aTx1bHMubGVu Z3RoO2krKyl7aWYodWxzW2ldLmNsYXNzTmFtZT09PSJ0YWItdG9nZ2xlIil7dWxz W2ldLm9uY2xpY2s9aGFuZGxlQ2xpY2s7dmFyIGFuY2hvcnM9dWxzW2ldLmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJhIik7dmFyIGNvb2tpZT1yZWFkQ29va2llKCJzcG9y dHNQb3B1cFRhYiIpO2lmKGNvb2tpZSl7Zm9yKHZhciBqPTA7ajxhbmNob3JzLmxl bmd0aDtqKyspe2lmKGFuY2hvcnNbal0uaHJlZi5zcGxpdCgiIyIpWzFdPT09Y29v a2llKXtyZW5kZXJUYWJzKGFuY2hvcnNbal0pCn19fWVsc2V7cmVuZGVyVGFicyhh bmNob3JzWzBdKX19fX1pZihkb2N1bWVudC5ib2R5LmlkPT09InNwb3J0cy1wb3B1 cCIpe2luaXQoKX1mdW5jdGlvbiBoYW5kbGVDbGljayhlKXt2YXIgdGFyZ2V0O2lm KCFlKXtlPXdpbmRvdy5ldmVudH1pZihlLnRhcmdldCl7dGFyZ2V0PWUudGFyZ2V0 fWVsc2V7aWYoZS5zcmNFbGVtZW50KXt0YXJnZXQ9ZS5zcmNFbGVtZW50fX1pZih0 YXJnZXQubm9kZVR5cGUmJnRhcmdldC5ub2RlVHlwZT09PTMpe3RhcmdldD10YXJn ZXQucGFyZW50Tm9kZX1pZih0YXJnZXQuaHJlZil7Y3JlYXRlQ29va2llKCJzcG9y dHNQb3B1cFRhYiIsdGFyZ2V0LmhyZWYuc3BsaXQoIiMiKVsxXSw3KTtyZW5kZXJU YWJzKHRhcmdldCl9cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIHJlbmRlclRhYnModGFy Z2V0KXtzaG93VGFiUGFuZSh0YXJnZXQpO3ZhciBhbGxMaW5rcz10YXJnZXQucGFy ZW50Tm9kZS5wYXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIik7Zm9y KHZhciBqPTA7ajxhbGxMaW5rcy5sZW5ndGg7aisrKXthbGxMaW5rc1tqXS5jbGFz c05hbWU9ImluYWN0aXZlIn12YXIgYm9keT1kb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSgiYm9keSIpWzBdO2lmKHRhcmdldC5pZD09PSJjcmlja2V0LWxpdmUt c2NvcmUiKXt0YXJnZXQuY2xhc3NOYW1lPSJhY3RpdmUiO2JvZHkuY2xhc3NOYW1l PSJjcmlja2V0IGNyaWNrZXQtc2NvcmUifWVsc2V7dGFyZ2V0LmNsYXNzTmFtZT0i IjtpZihib2R5LmNsYXNzTmFtZS5tYXRjaCgvY3JpY2tldC8pKXtib2R5LmNsYXNz TmFtZT0iY3JpY2tldCJ9fX1mdW5jdGlvbiBzaG93VGFiUGFuZShlKXtoaWRlVGFi UGFuZShlKTt2YXIgaWQ9ZS5ocmVmLm1hdGNoKC8jKFx3LispLylbMV07dmFyIGVs ZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO2lmKGVsZW1lbnQpe2Vs ZW1lbnQuc3R5bGUuZGlzcGxheT0iYmxvY2sifX1mdW5jdGlvbiBoaWRlVGFiUGFu ZShlKXt2YXIgdG9nZ2xlbm9kZT1lLnBhcmVudE5vZGUucGFyZW50Tm9kZS5wYXJl bnROb2RlOwp2YXIgdG9nZ2xlaWQ9dG9nZ2xlbm9kZS5pZCsiLXBhbmUiO3ZhciB0 b2dnbGVhYmxlPXRvZ2dsZW5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIp O2Zvcih2YXIgaT0wO2k8dG9nZ2xlYWJsZS5sZW5ndGg7aSsrKXt2YXIgZGl2Q2xh c3M9dG9nZ2xlYWJsZVtpXS5jbGFzc05hbWU7aWYoZGl2Q2xhc3MubWF0Y2godG9n Z2xlaWQpKXt0b2dnbGVhYmxlW2ldLnN0eWxlLmRpc3BsYXk9Im5vbmUifX19fWlm KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkJiZkb2N1bWVudC5nZXRFbGVtZW50c0J5 VGFnTmFtZSl7YWRkRXZlbnQod2luZG93LCJsb2FkIixzcG9ydHNUYWJzKX1lbnN1 cmVQYWNrYWdlKCJndWFyZGlhbi5yMi5wbHVjayIpO2d1YXJkaWFuLnIyLlBvbGxT dWJtaXNzaW9uQ29udHJvbGxlcj1mdW5jdGlvbih2aWV3KXtmdW5jdGlvbiBvbkxv YWQoKXt2aWV3LmFkZFJhZGlvQ2xpY2tMaXN0ZW5lcih2YWxpZGF0ZSk7dmlldy5h ZGREcm9wRG93bkNoYW5nZUxpc3RlbmVyKHZhbGlkYXRlKTt2YWxpZGF0ZSgpfWZ1 bmN0aW9uIHZhbGlkYXRlKCl7aWYodmlldy5nZXRJZ25vcmVkUmFkaW9Hcm91cHMo KS5sZW5ndGg9PT0wJiZ2aWV3LmdldElnbm9yZWREcm9wRG93bnMoKS5sZW5ndGg9 PT0wKXt2aWV3LmVuYWJsZVZvdGluZygpfWVsc2V7dmlldy5kaXNhYmxlVm90aW5n KCl9fXZpZXcuYWRkTG9hZEV2ZW50KG9uTG9hZCl9O2Vuc3VyZVBhY2thZ2UoImd1 YXJkaWFuLnIyLnBsdWNrIik7Z3VhcmRpYW4ucjIucGx1Y2suUG9sbFN1Ym1pc3Np b25WaWV3PWZ1bmN0aW9uKCl7dGhpcy5hZGRMb2FkRXZlbnQ9ZnVuY3Rpb24oY2Fs bGJhY2spe2FkZFNhZmVMb2FkRXZlbnQoY2FsbGJhY2spfTt0aGlzLmFkZFJhZGlv Q2xpY2tMaXN0ZW5lcj1mdW5jdGlvbihjYWxsYmFjayl7dmFyIGJ1dHRvbnM9Z2V0 UmFkaW9CdXR0b25zKCk7Zm9yKHZhciBpPTA7aTxidXR0b25zLmxlbmd0aDtpKysp e2FkZEV2ZW50KGJ1dHRvbnNbaV0sImNsaWNrIixjYWxsYmFjayl9fTt0aGlzLmFk ZERyb3BEb3duQ2hhbmdlTGlzdGVuZXI9ZnVuY3Rpb24oY2FsbGJhY2spe3ZhciBk cm9wRG93bnM9Z2V0RHJvcERvd25zKCk7CmZvcih2YXIgaT0wO2k8ZHJvcERvd25z Lmxlbmd0aDtpKyspe2FkZEV2ZW50KGRyb3BEb3duc1tpXSwiY2hhbmdlIixjYWxs YmFjayl9fTt0aGlzLmdldElnbm9yZWRSYWRpb0dyb3Vwcz1mdW5jdGlvbigpe3Zh ciBpZ25vcmVkUmFkaW9Hcm91cHM9W107dmFyIGJ1dHRvbnM9Z2V0UmFkaW9CdXR0 b25zKCk7dmFyIGNoZWNrZWRSYWRpb0dyb3Vwcz1nZXRDaGVja2VkUmFkaW9Hcm91 cHMoYnV0dG9ucyk7Zm9yKHZhciBpPTA7aTxidXR0b25zLmxlbmd0aDtpKyspe2lm KCFjaGVja2VkUmFkaW9Hcm91cHNbYnV0dG9uc1tpXS5uYW1lXSl7aWdub3JlZFJh ZGlvR3JvdXBzW2J1dHRvbnNbaV0ubmFtZV09dHJ1ZX19cmV0dXJuIGNvbnZlcnRL ZXlzVG9MaXN0KGlnbm9yZWRSYWRpb0dyb3Vwcyl9O3RoaXMuZ2V0SWdub3JlZERy b3BEb3ducz1mdW5jdGlvbigpe3ZhciBpZ25vcmVkRHJvcERvd25zPVtdO3ZhciBk cm9wRG93bnM9Z2V0RHJvcERvd25zKCk7Zm9yKHZhciBpPTA7aTxkcm9wRG93bnMu bGVuZ3RoO2krKyl7dmFyIGRyb3BEb3duPWRyb3BEb3duc1tpXTtpZihkcm9wRG93 bi5vcHRpb25zW2Ryb3BEb3duLnNlbGVjdGVkSW5kZXhdLnRleHQ9PT0iUGxlYXNl IHNlbGVjdCIpe2lnbm9yZWREcm9wRG93bnMucHVzaChkcm9wRG93bi5uYW1lKX19 cmV0dXJuIGlnbm9yZWREcm9wRG93bnN9O3RoaXMuZW5hYmxlVm90aW5nPWZ1bmN0 aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1Ym1pdCIpLmRpc2FibGVk PWZhbHNlfTt0aGlzLmRpc2FibGVWb3Rpbmc9ZnVuY3Rpb24oKXtkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgic3VibWl0IikuZGlzYWJsZWQ9dHJ1ZX07ZnVuY3Rpb24g Z2V0UmFkaW9CdXR0b25zKCl7dmFyIGZvcm09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoInBvbGwtc3VibWlzc2lvbi1mb3JtIik7dmFyIGlucHV0RWxlbWVudHM9Z3Vh cmRpYW4ucjIuZG9tLmVsZW1lbnQuZ2V0RWxlbWVudHNCeUNzc1NlbGVjdG9yKCJp bnB1dCIsZm9ybSk7dmFyIHJhZGlvQnV0dG9ucz1bXTsKZm9yKHZhciBpPTA7aTxp bnB1dEVsZW1lbnRzLmxlbmd0aDtpKyspe2lmKGlucHV0RWxlbWVudHNbaV0udHlw ZT09PSJyYWRpbyIpe3JhZGlvQnV0dG9ucy5wdXNoKGlucHV0RWxlbWVudHNbaV0p fX1yZXR1cm4gcmFkaW9CdXR0b25zfWZ1bmN0aW9uIGdldENoZWNrZWRSYWRpb0dy b3VwcyhidXR0b25zKXt2YXIgY2hlY2tlZFJhZGlvR3JvdXBzPVtdO2Zvcih2YXIg aT0wO2k8YnV0dG9ucy5sZW5ndGg7aSsrKXtpZihidXR0b25zW2ldLmNoZWNrZWQp e2NoZWNrZWRSYWRpb0dyb3Vwc1tidXR0b25zW2ldLm5hbWVdPXRydWV9fXJldHVy biBjaGVja2VkUmFkaW9Hcm91cHN9ZnVuY3Rpb24gZ2V0RHJvcERvd25zKCl7dmFy IGZvcm09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvbGwtc3VibWlzc2lvbi1m b3JtIik7cmV0dXJuIGd1YXJkaWFuLnIyLmRvbS5lbGVtZW50LmdldEVsZW1lbnRz QnlDc3NTZWxlY3Rvcigic2VsZWN0Iixmb3JtKX1mdW5jdGlvbiBjb252ZXJ0S2V5 c1RvTGlzdChtYXApe3ZhciBsaXN0PVtdO2Zvcih2YXIga2V5IGluIG1hcCl7aWYo bWFwLmhhc093blByb3BlcnR5KGtleSkpe2xpc3QucHVzaChrZXkpfX1yZXR1cm4g bGlzdH19O3ZhciBzd2ZvYmplY3Q9ZnVuY3Rpb24oKXt2YXIgYj0idW5kZWZpbmVk IixRPSJvYmplY3QiLG49IlNob2Nrd2F2ZSBGbGFzaCIscD0iU2hvY2t3YXZlRmxh c2guU2hvY2t3YXZlRmxhc2giLFA9ImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZs YXNoIixtPSJTV0ZPYmplY3RFeHBySW5zdCIsaj13aW5kb3csSz1kb2N1bWVudCxU PW5hdmlnYXRvcixvPVtdLE49W10saT1bXSxkPVtdLEosWj1udWxsLE09bnVsbCxs PW51bGwsZT1mYWxzZSxBPWZhbHNlO3ZhciBoPWZ1bmN0aW9uKCl7dmFyIHY9dHlw ZW9mIEsuZ2V0RWxlbWVudEJ5SWQhPWImJnR5cGVvZiBLLmdldEVsZW1lbnRzQnlU YWdOYW1lIT1iJiZ0eXBlb2YgSy5jcmVhdGVFbGVtZW50IT1iLEFDPVswLDAsMF0s eD1udWxsO2lmKHR5cGVvZiBULnBsdWdpbnMhPWImJnR5cGVvZiBULnBsdWdpbnNb bl09PVEpe3g9VC5wbHVnaW5zW25dLmRlc2NyaXB0aW9uOwppZih4JiYhKHR5cGVv ZiBULm1pbWVUeXBlcyE9YiYmVC5taW1lVHlwZXNbUF0mJiFULm1pbWVUeXBlc1tQ XS5lbmFibGVkUGx1Z2luKSl7eD14LnJlcGxhY2UoL14uKlxzKyhcUytccytcUysk KS8sIiQxIik7QUNbMF09cGFyc2VJbnQoeC5yZXBsYWNlKC9eKC4qKVwuLiokLywi JDEiKSwxMCk7QUNbMV09cGFyc2VJbnQoeC5yZXBsYWNlKC9eLipcLiguKilccy4q JC8sIiQxIiksMTApO0FDWzJdPS9yLy50ZXN0KHgpP3BhcnNlSW50KHgucmVwbGFj ZSgvXi4qciguKikkLywiJDEiKSwxMCk6MH19ZWxzZXtpZih0eXBlb2Ygai5BY3Rp dmVYT2JqZWN0IT1iKXt2YXIgeT1udWxsLEFCPWZhbHNlO3RyeXt5PW5ldyBBY3Rp dmVYT2JqZWN0KHArIi43Iil9Y2F0Y2godCl7dHJ5e3k9bmV3IEFjdGl2ZVhPYmpl Y3QocCsiLjYiKTtBQz1bNiwwLDIxXTt5LkFsbG93U2NyaXB0QWNjZXNzPSJhbHdh eXMifWNhdGNoKHQpe2lmKEFDWzBdPT02KXtBQj10cnVlfX1pZighQUIpe3RyeXt5 PW5ldyBBY3RpdmVYT2JqZWN0KHApfWNhdGNoKHQpe319fWlmKCFBQiYmeSl7dHJ5 e3g9eS5HZXRWYXJpYWJsZSgiJHZlcnNpb24iKTtpZih4KXt4PXguc3BsaXQoIiAi KVsxXS5zcGxpdCgiLCIpO0FDPVtwYXJzZUludCh4WzBdLDEwKSxwYXJzZUludCh4 WzFdLDEwKSxwYXJzZUludCh4WzJdLDEwKV19fWNhdGNoKHQpe319fX12YXIgQUQ9 VC51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxyPVQucGxhdGZvcm0udG9Mb3dlckNh c2UoKSxBQT0vd2Via2l0Ly50ZXN0KEFEKT9wYXJzZUZsb2F0KEFELnJlcGxhY2Uo L14uKndlYmtpdFwvKFxkKyhcLlxkKyk/KS4qJC8sIiQxIikpOmZhbHNlLHE9ZmFs c2Usej1yPy93aW4vLnRlc3Qocik6L3dpbi8udGVzdChBRCksdz1yPy9tYWMvLnRl c3Qocik6L21hYy8udGVzdChBRCk7Ci8qQGNjX29uIHE9dHJ1ZTtAaWYoQF93aW4z Mil6PXRydWU7QGVsaWYoQF9tYWMpdz10cnVlO0BlbmRAKi8KcmV0dXJue3czY2Rv bTp2LHB2OkFDLHdlYmtpdDpBQSxpZTpxLHdpbjp6LG1hYzp3fQp9KCk7dmFyIEw9 ZnVuY3Rpb24oKXtpZighaC53M2Nkb20pe3JldHVybiB9ZihIKTtpZihoLmllJiZo Lndpbil7dHJ5e0sud3JpdGUoIjxzY3JpcHQgaWQ9X19pZV9vbmRvbWxvYWQgZGVm ZXI9dHJ1ZSBzcmM9Ly86PjxcL3NjcmlwdD4iKTtKPUMoIl9faWVfb25kb21sb2Fk Iik7aWYoSil7SShKLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLFMpfX1jYXRjaChxKXt9 fWlmKGgud2Via2l0JiZ0eXBlb2YgSy5yZWFkeVN0YXRlIT1iKXtaPXNldEludGVy dmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChLLnJlYWR5 U3RhdGUpKXtFKCl9fSwxMCl9aWYodHlwZW9mIEsuYWRkRXZlbnRMaXN0ZW5lciE9 Yil7Sy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixFLG51bGwp fVIoRSl9KCk7ZnVuY3Rpb24gUygpe2lmKEoucmVhZHlTdGF0ZT09ImNvbXBsZXRl Iil7aWYoSi5wYXJlbnROb2RlKXtKLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoSil9 RSgpfX1mdW5jdGlvbiBFKCl7aWYoZSl7cmV0dXJuIH1pZihoLmllJiZoLndpbil7 dmFyIHY9YSgic3BhbiIpO3RyeXt2YXIgdT1LLmdldEVsZW1lbnRzQnlUYWdOYW1l KCJib2R5IilbMF0uYXBwZW5kQ2hpbGQodik7dS5wYXJlbnROb2RlLnJlbW92ZUNo aWxkKHUpfWNhdGNoKHcpe3JldHVybiB9fWU9dHJ1ZTtpZihaKXtjbGVhckludGVy dmFsKFopO1o9bnVsbH12YXIgcT1vLmxlbmd0aDtmb3IodmFyIHI9MDtyPHE7cisr KXtvW3JdKCl9fWZ1bmN0aW9uIGYocSl7aWYoZSl7cSgpfWVsc2V7b1tvLmxlbmd0 aF09cX19ZnVuY3Rpb24gUihyKXtpZih0eXBlb2Ygai5hZGRFdmVudExpc3RlbmVy IT1iKXtqLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLHIsZmFsc2UpfWVsc2V7aWYo dHlwZW9mIEsuYWRkRXZlbnRMaXN0ZW5lciE9Yil7Sy5hZGRFdmVudExpc3RlbmVy KCJsb2FkIixyLGZhbHNlKX1lbHNle2lmKHR5cGVvZiBqLmF0dGFjaEV2ZW50IT1i KXtJKGosIm9ubG9hZCIscil9ZWxzZXtpZih0eXBlb2Ygai5vbmxvYWQ9PSJmdW5j dGlvbiIpe3ZhciBxPWoub25sb2FkOwpqLm9ubG9hZD1mdW5jdGlvbigpe3EoKTty KCl9fWVsc2V7ai5vbmxvYWQ9cn19fX19ZnVuY3Rpb24gSCgpe3ZhciB0PU4ubGVu Z3RoO2Zvcih2YXIgcT0wO3E8dDtxKyspe3ZhciB1PU5bcV0uaWQ7aWYoaC5wdlsw XT4wKXt2YXIgcj1DKHUpO2lmKHIpe05bcV0ud2lkdGg9ci5nZXRBdHRyaWJ1dGUo IndpZHRoIik/ci5nZXRBdHRyaWJ1dGUoIndpZHRoIik6IjAiO05bcV0uaGVpZ2h0 PXIuZ2V0QXR0cmlidXRlKCJoZWlnaHQiKT9yLmdldEF0dHJpYnV0ZSgiaGVpZ2h0 Iik6IjAiO2lmKGMoTltxXS5zd2ZWZXJzaW9uKSl7aWYoaC53ZWJraXQmJmgud2Vi a2l0PDMxMil7WShyKX1XKHUsdHJ1ZSl9ZWxzZXtpZihOW3FdLmV4cHJlc3NJbnN0 YWxsJiYhQSYmYygiNi4wLjY1IikmJihoLndpbnx8aC5tYWMpKXtrKE5bcV0pfWVs c2V7TyhyKX19fX1lbHNle1codSx0cnVlKX19fWZ1bmN0aW9uIFkodCl7dmFyIHE9 dC5nZXRFbGVtZW50c0J5VGFnTmFtZShRKVswXTtpZihxKXt2YXIgdz1hKCJlbWJl ZCIpLHk9cS5hdHRyaWJ1dGVzO2lmKHkpe3ZhciB2PXkubGVuZ3RoO2Zvcih2YXIg dT0wO3U8djt1Kyspe2lmKHlbdV0ubm9kZU5hbWU9PSJEQVRBIil7dy5zZXRBdHRy aWJ1dGUoInNyYyIseVt1XS5ub2RlVmFsdWUpfWVsc2V7dy5zZXRBdHRyaWJ1dGUo eVt1XS5ub2RlTmFtZSx5W3VdLm5vZGVWYWx1ZSl9fX12YXIgeD1xLmNoaWxkTm9k ZXM7aWYoeCl7dmFyIHo9eC5sZW5ndGg7Zm9yKHZhciByPTA7cjx6O3IrKyl7aWYo eFtyXS5ub2RlVHlwZT09MSYmeFtyXS5ub2RlTmFtZT09IlBBUkFNIil7dy5zZXRB dHRyaWJ1dGUoeFtyXS5nZXRBdHRyaWJ1dGUoIm5hbWUiKSx4W3JdLmdldEF0dHJp YnV0ZSgidmFsdWUiKSl9fX10LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHcsdCl9 fWZ1bmN0aW9uIGsodyl7QT10cnVlO3ZhciB1PUMody5pZCk7aWYodSl7aWYody5h bHRDb250ZW50SWQpe3ZhciB5PUMody5hbHRDb250ZW50SWQpO2lmKHkpe009eTts PXcuYWx0Q29udGVudElkfX1lbHNle009Ryh1KQp9aWYoISgvJSQvLnRlc3Qody53 aWR0aCkpJiZwYXJzZUludCh3LndpZHRoLDEwKTwzMTApe3cud2lkdGg9IjMxMCJ9 aWYoISgvJSQvLnRlc3Qody5oZWlnaHQpKSYmcGFyc2VJbnQody5oZWlnaHQsMTAp PDEzNyl7dy5oZWlnaHQ9IjEzNyJ9Sy50aXRsZT1LLnRpdGxlLnNsaWNlKDAsNDcp KyIgLSBGbGFzaCBQbGF5ZXIgSW5zdGFsbGF0aW9uIjt2YXIgej1oLmllJiZoLndp bj8iQWN0aXZlWCI6IlBsdWdJbiIscT1LLnRpdGxlLHI9Ik1NcmVkaXJlY3RVUkw9 IitqLmxvY2F0aW9uKyImTU1wbGF5ZXJUeXBlPSIreisiJk1NZG9jdGl0bGU9Iitx LHg9dy5pZDtpZihoLmllJiZoLndpbiYmdS5yZWFkeVN0YXRlIT00KXt2YXIgdD1h KCJkaXYiKTt4Kz0iU1dGT2JqZWN0TmV3Ijt0LnNldEF0dHJpYnV0ZSgiaWQiLHgp O3UucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCx1KTt1LnN0eWxlLmRpc3BsYXk9 Im5vbmUiO3ZhciB2PWZ1bmN0aW9uKCl7dS5wYXJlbnROb2RlLnJlbW92ZUNoaWxk KHUpfTtJKGosIm9ubG9hZCIsdil9VSh7ZGF0YTp3LmV4cHJlc3NJbnN0YWxsLGlk Om0sd2lkdGg6dy53aWR0aCxoZWlnaHQ6dy5oZWlnaHR9LHtmbGFzaHZhcnM6cn0s eCl9fWZ1bmN0aW9uIE8odCl7aWYoaC5pZSYmaC53aW4mJnQucmVhZHlTdGF0ZSE9 NCl7dmFyIHI9YSgiZGl2Iik7dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyLHQp O3IucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoRyh0KSxyKTt0LnN0eWxlLmRpc3Bs YXk9Im5vbmUiO3ZhciBxPWZ1bmN0aW9uKCl7dC5wYXJlbnROb2RlLnJlbW92ZUNo aWxkKHQpfTtJKGosIm9ubG9hZCIscSl9ZWxzZXt0LnBhcmVudE5vZGUucmVwbGFj ZUNoaWxkKEcodCksdCl9fWZ1bmN0aW9uIEcodil7dmFyIHU9YSgiZGl2Iik7aWYo aC53aW4mJmguaWUpe3UuaW5uZXJIVE1MPXYuaW5uZXJIVE1MfWVsc2V7dmFyIHI9 di5nZXRFbGVtZW50c0J5VGFnTmFtZShRKVswXTtpZihyKXt2YXIgdz1yLmNoaWxk Tm9kZXM7aWYodyl7dmFyIHE9dy5sZW5ndGg7CmZvcih2YXIgdD0wO3Q8cTt0Kysp e2lmKCEod1t0XS5ub2RlVHlwZT09MSYmd1t0XS5ub2RlTmFtZT09IlBBUkFNIikm JiEod1t0XS5ub2RlVHlwZT09OCkpe3UuYXBwZW5kQ2hpbGQod1t0XS5jbG9uZU5v ZGUodHJ1ZSkpfX19fX1yZXR1cm4gdX1mdW5jdGlvbiBVKEFHLEFFLHQpe3ZhciBx LHY9Qyh0KTtpZih2KXtpZih0eXBlb2YgQUcuaWQ9PWIpe0FHLmlkPXR9aWYoaC5p ZSYmaC53aW4pe3ZhciBBRj0iIjtmb3IodmFyIEFCIGluIEFHKXtpZihBR1tBQl0h PU9iamVjdC5wcm90b3R5cGVbQUJdKXtpZihBQi50b0xvd2VyQ2FzZSgpPT0iZGF0 YSIpe0FFLm1vdmllPUFHW0FCXX1lbHNle2lmKEFCLnRvTG93ZXJDYXNlKCk9PSJz dHlsZWNsYXNzIil7QUYrPScgY2xhc3M9IicrQUdbQUJdKyciJ31lbHNle2lmKEFC LnRvTG93ZXJDYXNlKCkhPSJjbGFzc2lkIil7QUYrPSIgIitBQisnPSInK0FHW0FC XSsnIid9fX19fXZhciBBRD0iIjtmb3IodmFyIEFBIGluIEFFKXtpZihBRVtBQV0h PU9iamVjdC5wcm90b3R5cGVbQUFdKXtBRCs9JzxwYXJhbSBuYW1lPSInK0FBKyci IHZhbHVlPSInK0FFW0FBXSsnIiAvPid9fXYub3V0ZXJIVE1MPSc8b2JqZWN0IGNs YXNzaWQ9ImNsc2lkOkQyN0NEQjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAw MCInK0FGKyI+IitBRCsiPC9vYmplY3Q+IjtpW2kubGVuZ3RoXT1BRy5pZDtxPUMo QUcuaWQpfWVsc2V7aWYoaC53ZWJraXQmJmgud2Via2l0PDMxMil7dmFyIEFDPWEo ImVtYmVkIik7QUMuc2V0QXR0cmlidXRlKCJ0eXBlIixQKTtmb3IodmFyIHogaW4g QUcpe2lmKEFHW3pdIT1PYmplY3QucHJvdG90eXBlW3pdKXtpZih6LnRvTG93ZXJD YXNlKCk9PSJkYXRhIil7QUMuc2V0QXR0cmlidXRlKCJzcmMiLEFHW3pdKX1lbHNl e2lmKHoudG9Mb3dlckNhc2UoKT09InN0eWxlY2xhc3MiKXtBQy5zZXRBdHRyaWJ1 dGUoImNsYXNzIixBR1t6XSl9ZWxzZXtpZih6LnRvTG93ZXJDYXNlKCkhPSJjbGFz c2lkIil7QUMuc2V0QXR0cmlidXRlKHosQUdbel0pCn19fX19Zm9yKHZhciB5IGlu IEFFKXtpZihBRVt5XSE9T2JqZWN0LnByb3RvdHlwZVt5XSl7aWYoeS50b0xvd2Vy Q2FzZSgpIT0ibW92aWUiKXtBQy5zZXRBdHRyaWJ1dGUoeSxBRVt5XSl9fX12LnBh cmVudE5vZGUucmVwbGFjZUNoaWxkKEFDLHYpO3E9QUN9ZWxzZXt2YXIgdT1hKFEp O3Uuc2V0QXR0cmlidXRlKCJ0eXBlIixQKTtmb3IodmFyIHggaW4gQUcpe2lmKEFH W3hdIT1PYmplY3QucHJvdG90eXBlW3hdKXtpZih4LnRvTG93ZXJDYXNlKCk9PSJz dHlsZWNsYXNzIil7dS5zZXRBdHRyaWJ1dGUoImNsYXNzIixBR1t4XSl9ZWxzZXtp Zih4LnRvTG93ZXJDYXNlKCkhPSJjbGFzc2lkIil7dS5zZXRBdHRyaWJ1dGUoeCxB R1t4XSl9fX19Zm9yKHZhciB3IGluIEFFKXtpZihBRVt3XSE9T2JqZWN0LnByb3Rv dHlwZVt3XSYmdy50b0xvd2VyQ2FzZSgpIT0ibW92aWUiKXtGKHUsdyxBRVt3XSl9 fXYucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQodSx2KTtxPXV9fX1yZXR1cm4gcX1m dW5jdGlvbiBGKHQscSxyKXt2YXIgdT1hKCJwYXJhbSIpO3Uuc2V0QXR0cmlidXRl KCJuYW1lIixxKTt1LnNldEF0dHJpYnV0ZSgidmFsdWUiLHIpO3QuYXBwZW5kQ2hp bGQodSl9ZnVuY3Rpb24gWChyKXt2YXIgcT1DKHIpO2lmKHEmJihxLm5vZGVOYW1l PT0iT0JKRUNUInx8cS5ub2RlTmFtZT09IkVNQkVEIikpe2lmKGguaWUmJmgud2lu KXtpZihxLnJlYWR5U3RhdGU9PTQpe0Iocil9ZWxzZXtqLmF0dGFjaEV2ZW50KCJv bmxvYWQiLGZ1bmN0aW9uKCl7QihyKX0pfX1lbHNle3EucGFyZW50Tm9kZS5yZW1v dmVDaGlsZChxKX19fWZ1bmN0aW9uIEIodCl7dmFyIHI9Qyh0KTtpZihyKXtmb3Io dmFyIHEgaW4gcil7aWYodHlwZW9mIHJbcV09PSJmdW5jdGlvbiIpe3JbcV09bnVs bH19ci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIpfX1mdW5jdGlvbiBDKHQpe3Zh ciBxPW51bGw7dHJ5e3E9Sy5nZXRFbGVtZW50QnlJZCh0KX1jYXRjaChyKXt9cmV0 dXJuIHF9ZnVuY3Rpb24gYShxKXtyZXR1cm4gSy5jcmVhdGVFbGVtZW50KHEpCn1m dW5jdGlvbiBJKHQscSxyKXt0LmF0dGFjaEV2ZW50KHEscik7ZFtkLmxlbmd0aF09 W3QscSxyXX1mdW5jdGlvbiBjKHQpe3ZhciByPWgucHYscT10LnNwbGl0KCIuIik7 cVswXT1wYXJzZUludChxWzBdLDEwKTtxWzFdPXBhcnNlSW50KHFbMV0sMTApfHww O3FbMl09cGFyc2VJbnQocVsyXSwxMCl8fDA7cmV0dXJuKHJbMF0+cVswXXx8KHJb MF09PXFbMF0mJnJbMV0+cVsxXSl8fChyWzBdPT1xWzBdJiZyWzFdPT1xWzFdJiZy WzJdPj1xWzJdKSk/dHJ1ZTpmYWxzZX1mdW5jdGlvbiBWKHYscil7aWYoaC5pZSYm aC5tYWMpe3JldHVybiB9dmFyIHU9Sy5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVh ZCIpWzBdLHQ9YSgic3R5bGUiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQv Y3NzIik7dC5zZXRBdHRyaWJ1dGUoIm1lZGlhIiwic2NyZWVuIik7aWYoIShoLmll JiZoLndpbikmJnR5cGVvZiBLLmNyZWF0ZVRleHROb2RlIT1iKXt0LmFwcGVuZENo aWxkKEsuY3JlYXRlVGV4dE5vZGUodisiIHsiK3IrIn0iKSl9dS5hcHBlbmRDaGls ZCh0KTtpZihoLmllJiZoLndpbiYmdHlwZW9mIEsuc3R5bGVTaGVldHMhPWImJksu c3R5bGVTaGVldHMubGVuZ3RoPjApe3ZhciBxPUsuc3R5bGVTaGVldHNbSy5zdHls ZVNoZWV0cy5sZW5ndGgtMV07aWYodHlwZW9mIHEuYWRkUnVsZT09USl7cS5hZGRS dWxlKHYscil9fX1mdW5jdGlvbiBXKHQscSl7dmFyIHI9cT8idmlzaWJsZSI6Imhp ZGRlbiI7aWYoZSYmQyh0KSl7Qyh0KS5zdHlsZS52aXNpYmlsaXR5PXJ9ZWxzZXtW KCIjIit0LCJ2aXNpYmlsaXR5OiIrcil9fWZ1bmN0aW9uIGcocyl7dmFyIHI9L1tc XFwiPD5cLjtdLzt2YXIgcT1yLmV4ZWMocykhPW51bGw7cmV0dXJuIHE/ZW5jb2Rl VVJJQ29tcG9uZW50KHMpOnN9dmFyIEQ9ZnVuY3Rpb24oKXtpZihoLmllJiZoLndp bil7d2luZG93LmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZnVuY3Rpb24oKXt2YXIg dz1kLmxlbmd0aDtmb3IodmFyIHY9MDt2PHc7disrKXtkW3ZdWzBdLmRldGFjaEV2 ZW50KGRbdl1bMV0sZFt2XVsyXSkKfXZhciB0PWkubGVuZ3RoO2Zvcih2YXIgdT0w O3U8dDt1Kyspe1goaVt1XSl9Zm9yKHZhciByIGluIGgpe2hbcl09bnVsbH1oPW51 bGw7Zm9yKHZhciBxIGluIHN3Zm9iamVjdCl7c3dmb2JqZWN0W3FdPW51bGx9c3dm b2JqZWN0PW51bGx9KX19KCk7cmV0dXJue3JlZ2lzdGVyT2JqZWN0OmZ1bmN0aW9u KHUscSx0KXtpZighaC53M2Nkb218fCF1fHwhcSl7cmV0dXJuIH12YXIgcj17fTty LmlkPXU7ci5zd2ZWZXJzaW9uPXE7ci5leHByZXNzSW5zdGFsbD10P3Q6ZmFsc2U7 TltOLmxlbmd0aF09cjtXKHUsZmFsc2UpfSxnZXRPYmplY3RCeUlkOmZ1bmN0aW9u KHYpe3ZhciBxPW51bGw7aWYoaC53M2Nkb20pe3ZhciB0PUModik7aWYodCl7dmFy IHU9dC5nZXRFbGVtZW50c0J5VGFnTmFtZShRKVswXTtpZighdXx8KHUmJnR5cGVv ZiB0LlNldFZhcmlhYmxlIT1iKSl7cT10fWVsc2V7aWYodHlwZW9mIHUuU2V0VmFy aWFibGUhPWIpe3E9dX19fX1yZXR1cm4gcX0sZW1iZWRTV0Y6ZnVuY3Rpb24oeCxB RSxBQixBRCxxLHcscix6LEFDKXtpZighaC53M2Nkb218fCF4fHwhQUV8fCFBQnx8 IUFEfHwhcSl7cmV0dXJuIH1BQis9IiI7QUQrPSIiO2lmKGMocSkpe1coQUUsZmFs c2UpO3ZhciBBQT17fTtpZihBQyYmdHlwZW9mIEFDPT09USl7Zm9yKHZhciB2IGlu IEFDKXtpZihBQ1t2XSE9T2JqZWN0LnByb3RvdHlwZVt2XSl7QUFbdl09QUNbdl19 fX1BQS5kYXRhPXg7QUEud2lkdGg9QUI7QUEuaGVpZ2h0PUFEO3ZhciB5PXt9O2lm KHomJnR5cGVvZiB6PT09USl7Zm9yKHZhciB1IGluIHope2lmKHpbdV0hPU9iamVj dC5wcm90b3R5cGVbdV0pe3lbdV09elt1XX19fWlmKHImJnR5cGVvZiByPT09USl7 Zm9yKHZhciB0IGluIHIpe2lmKHJbdF0hPU9iamVjdC5wcm90b3R5cGVbdF0pe2lm KHR5cGVvZiB5LmZsYXNodmFycyE9Yil7eS5mbGFzaHZhcnMrPSImIit0KyI9Iity W3RdfWVsc2V7eS5mbGFzaHZhcnM9dCsiPSIrclt0XX19fX1mKGZ1bmN0aW9uKCl7 VShBQSx5LEFFKTtpZihBQS5pZD09QUUpe1coQUUsdHJ1ZSkKfX0pfWVsc2V7aWYo dyYmIUEmJmMoIjYuMC42NSIpJiYoaC53aW58fGgubWFjKSl7QT10cnVlO1coQUUs ZmFsc2UpO2YoZnVuY3Rpb24oKXt2YXIgQUY9e307QUYuaWQ9QUYuYWx0Q29udGVu dElkPUFFO0FGLndpZHRoPUFCO0FGLmhlaWdodD1BRDtBRi5leHByZXNzSW5zdGFs bD13O2soQUYpfSl9fX0sZ2V0Rmxhc2hQbGF5ZXJWZXJzaW9uOmZ1bmN0aW9uKCl7 cmV0dXJue21ham9yOmgucHZbMF0sbWlub3I6aC5wdlsxXSxyZWxlYXNlOmgucHZb Ml19fSxoYXNGbGFzaFBsYXllclZlcnNpb246YyxjcmVhdGVTV0Y6ZnVuY3Rpb24o dCxyLHEpe2lmKGgudzNjZG9tKXtyZXR1cm4gVSh0LHIscSl9ZWxzZXtyZXR1cm4g dW5kZWZpbmVkfX0scmVtb3ZlU1dGOmZ1bmN0aW9uKHEpe2lmKGgudzNjZG9tKXtY KHEpfX0sY3JlYXRlQ1NTOmZ1bmN0aW9uKHIscSl7aWYoaC53M2Nkb20pe1Yocixx KX19LGFkZERvbUxvYWRFdmVudDpmLGFkZExvYWRFdmVudDpSLGdldFF1ZXJ5UGFy YW1WYWx1ZTpmdW5jdGlvbih2KXt2YXIgdT1LLmxvY2F0aW9uLnNlYXJjaHx8Sy5s b2NhdGlvbi5oYXNoO2lmKHY9PW51bGwpe3JldHVybiBnKHUpfWlmKHUpe3ZhciB0 PXUuc3Vic3RyaW5nKDEpLnNwbGl0KCImIik7Zm9yKHZhciByPTA7cjx0Lmxlbmd0 aDtyKyspe2lmKHRbcl0uc3Vic3RyaW5nKDAsdFtyXS5pbmRleE9mKCI9IikpPT12 KXtyZXR1cm4gZyh0W3JdLnN1YnN0cmluZygodFtyXS5pbmRleE9mKCI9IikrMSkp KX19fXJldHVybiIifSxleHByZXNzSW5zdGFsbENhbGxiYWNrOmZ1bmN0aW9uKCl7 aWYoQSYmTSl7dmFyIHE9QyhtKTtpZihxKXtxLnBhcmVudE5vZGUucmVwbGFjZUNo aWxkKE0scSk7aWYobCl7VyhsLHRydWUpO2lmKGguaWUmJmgud2luKXtNLnN0eWxl LmRpc3BsYXk9ImJsb2NrIn19TT1udWxsO2w9bnVsbDtBPWZhbHNlfX19fX0oKTtm dW5jdGlvbiBpbml0aWFsaXNlVGFicygpe2lmKGpRKCJ1bC50YWJzIikpe3ZhciB0 YWI9alEoInVsLnRhYnM6bm90KC5mYWtlKSBsaSBhIik7CnZhciBpbml0aWFsbHlB Y3RpdmU9alEoInVsLnRhYnM6bm90KC5mYWtlKSBsaSBhLmFjdGl2ZSIpO3ZhciBp bml0aWFsUGFuZTtmb3IoaT0wO2k8PWluaXRpYWxseUFjdGl2ZS5sZW5ndGgtMTtp Kyspe2luaXRpYWxQYW5lPSIjIitpbml0aWFsbHlBY3RpdmVbaV0uaHJlZi5zcGxp dCgiIyIpWzFdO2pRKGluaXRpYWxQYW5lKS5zaG93KCl9alEodGFiKS5jbGljayhm dW5jdGlvbigpe2lmKGpRKHRoaXMpLmlzKCIuaW5hY3RpdmUiKSl7dmFyIHBhcmVu dENvbnRhaW5lcj1qUSh0aGlzKS5wYXJlbnRzKCJkaXYiKS5nZXQoMCk7dmFyIGFj dGl2ZVRhYj1qUShwYXJlbnRDb250YWluZXIpLmZpbmQoInVsLnRhYnM6bm90KC5m YWtlKSBsaSBhLmFjdGl2ZSIpO3ZhciBwYW5lPSIjIit0aGlzLmhyZWYuc3BsaXQo IiMiKVsxXTt2YXIgYWN0aXZlVGFiSHJlZj1qUShhY3RpdmVUYWIpLmF0dHIoImhy ZWYiKTt2YXIgYWN0aXZlUGFuZT0iIyIrYWN0aXZlVGFiSHJlZi5zcGxpdCgiIyIp WzFdO2pRKGFjdGl2ZVRhYikuYXR0cigiY2xhc3MiLCJpbmFjdGl2ZSIpO2pRKHRo aXMpLmF0dHIoImNsYXNzIiwiYWN0aXZlIik7alEocGFuZSkuc2hvdygpO2pRKGFj dGl2ZVBhbmUpLmhpZGUoKTtyZXR1cm4gZmFsc2V9ZWxzZXtyZXR1cm4gZmFsc2V9 fSl9fWpRKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe2luaXRpYWxpc2VUYWJz KCl9KTtUZXh0UmVzaXplRGV0ZWN0b3I9ZnVuY3Rpb24oKXt2YXIgZWw9bnVsbDt2 YXIgaUludGVydmFsRGVsYXk9MjAwO3ZhciBpSW50ZXJ2YWw9bnVsbDt2YXIgaUN1 cnJTaXplPS0xO3ZhciBpQmFzZT0tMTt2YXIgYUxpc3RlbmVycz1bXTt2YXIgY3Jl YXRlQ29udHJvbEVsZW1lbnQ9ZnVuY3Rpb24oKXtlbD1kb2N1bWVudC5jcmVhdGVF bGVtZW50KCJzcGFuIik7ZWwuaWQ9InRleHRSZXNpemVDb250cm9sIjtlbC5pbm5l ckhUTUw9IiZuYnNwOyI7ZWwuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtlbC5z dHlsZS5sZWZ0PSItOTk5OXB4Ijt2YXIgZWxDPWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKFRleHRSZXNpemVEZXRlY3Rvci5UQVJHRVRfRUxFTUVOVF9JRCk7CmlmKGVs Qyl7ZWxDLmluc2VydEJlZm9yZShlbCxlbEMuZmlyc3RDaGlsZCl9aUJhc2U9aUN1 cnJTaXplPVRleHRSZXNpemVEZXRlY3Rvci5nZXRTaXplKCl9O2Z1bmN0aW9uIF9z dG9wRGV0ZWN0b3IoKXt3aW5kb3cuY2xlYXJJbnRlcnZhbChpSW50ZXJ2YWwpO2lJ bnRlcnZhbD1udWxsfWZ1bmN0aW9uIF9zdGFydERldGVjdG9yKCl7aWYoIWlJbnRl cnZhbCl7aUludGVydmFsPXdpbmRvdy5zZXRJbnRlcnZhbCgiVGV4dFJlc2l6ZURl dGVjdG9yLmRldGVjdCgpIixpSW50ZXJ2YWxEZWxheSl9fWZ1bmN0aW9uIF9kZXRl Y3QoKXt2YXIgaU5ld1NpemU9VGV4dFJlc2l6ZURldGVjdG9yLmdldFNpemUoKTtp ZihpTmV3U2l6ZSE9PWlDdXJyU2l6ZSl7Zm9yKHZhciBpPTA7aTxhTGlzdGVuZXJz Lmxlbmd0aDtpKyspe2FMaXN0bnI9YUxpc3RlbmVyc1tpXTt2YXIgb0FyZ3M9e2lC YXNlOmlCYXNlLGlEZWx0YTooKGlDdXJyU2l6ZSE9LTEpP2lOZXdTaXplLWlDdXJy U2l6ZSsicHgiOiIwcHgiKSxpU2l6ZTppQ3VyclNpemU9aU5ld1NpemV9O2lmKCFh TGlzdG5yLm9iail7YUxpc3Ruci5mbigidGV4dFNpemVDaGFuZ2VkIixbb0FyZ3Nd KX1lbHNle2FMaXN0bnIuZm4uYXBwbHkoYUxpc3Ruci5vYmosWyJ0ZXh0U2l6ZUNo YW5nZWQiLFtvQXJnc11dKX19fXJldHVybiBpQ3VyclNpemV9dmFyIG9uQXZhaWxh YmxlPWZ1bmN0aW9uKCl7aWYoIVRleHRSZXNpemVEZXRlY3Rvci5vbkF2YWlsYWJs ZUNvdW50X2kpe1RleHRSZXNpemVEZXRlY3Rvci5vbkF2YWlsYWJsZUNvdW50X2k9 MH1pZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChUZXh0UmVzaXplRGV0ZWN0b3Iu VEFSR0VUX0VMRU1FTlRfSUQpKXtUZXh0UmVzaXplRGV0ZWN0b3IuaW5pdCgpO2lm KFRleHRSZXNpemVEZXRlY3Rvci5VU0VSX0lOSVRfRlVOQyl7VGV4dFJlc2l6ZURl dGVjdG9yLlVTRVJfSU5JVF9GVU5DKCl9VGV4dFJlc2l6ZURldGVjdG9yLm9uQXZh aWxhYmxlQ291bnRfaT1udWxsfWVsc2V7aWYoVGV4dFJlc2l6ZURldGVjdG9yLm9u QXZhaWxhYmxlQ291bnRfaTw2MDApe1RleHRSZXNpemVEZXRlY3Rvci5vbkF2YWls YWJsZUNvdW50X2krKzsKc2V0VGltZW91dChvbkF2YWlsYWJsZSwyMDApfX19O3Nl dFRpbWVvdXQob25BdmFpbGFibGUsNTAwKTtyZXR1cm57aW5pdDpmdW5jdGlvbigp e2NyZWF0ZUNvbnRyb2xFbGVtZW50KCk7X3N0YXJ0RGV0ZWN0b3IoKX0sYWRkRXZl bnRMaXN0ZW5lcjpmdW5jdGlvbihmbixvYmosYlNjb3BlKXthTGlzdGVuZXJzW2FM aXN0ZW5lcnMubGVuZ3RoXT17Zm46Zm4sb2JqOm9ian07cmV0dXJuIGlCYXNlfSxk ZXRlY3Q6ZnVuY3Rpb24oKXtyZXR1cm4gX2RldGVjdCgpfSxnZXRTaXplOmZ1bmN0 aW9uKCl7dmFyIGlTaXplO3JldHVybiBlbC5vZmZzZXRIZWlnaHR9LHN0b3BEZXRl Y3RvcjpmdW5jdGlvbigpe3JldHVybiBfc3RvcERldGVjdG9yKCl9LHN0YXJ0RGV0 ZWN0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gX3N0YXJ0RGV0ZWN0b3IoKX19fSgpO1Rl eHRSZXNpemVEZXRlY3Rvci5UQVJHRVRfRUxFTUVOVF9JRD0iZG9jIjtUZXh0UmVz aXplRGV0ZWN0b3IuVVNFUl9JTklUX0ZVTkM9bnVsbDtmdW5jdGlvbiBpbml0KCl7 dmFyIGlCYXNlPVRleHRSZXNpemVEZXRlY3Rvci5hZGRFdmVudExpc3RlbmVyKG9u Rm9udFJlc2l6ZSxudWxsKTtpZihqUSgiYm9keSIpKXtpZihpQmFzZT4zMil7dXBk YXRlU3R5bGVzaGVldHMoaUJhc2UsdHJ1ZSl9fX1UZXh0UmVzaXplRGV0ZWN0b3Iu VEFSR0VUX0VMRU1FTlRfSUQ9IndyYXBwZXIiO1RleHRSZXNpemVEZXRlY3Rvci5V U0VSX0lOSVRfRlVOQz1pbml0O2Z1bmN0aW9uIG9uRm9udFJlc2l6ZShlLGFyZ3Mp e3VwZGF0ZVN0eWxlc2hlZXRzKGFyZ3NbMF0uaVNpemUsdHJ1ZSl9YWRkRXZlbnQo d2luZG93LCJsb2FkIix0YWJzKTtmdW5jdGlvbiB0YWJzKCl7aWYoIWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJibG9nZ2luZy1zZWN0aW9uIikpe3JldHVybiB9aWYo IWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb3N0LWNvbW1lbnRlZC1lbnRyaWVz Iikpe3JldHVybiB9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vc3QtY29tbWVu dGVkLWVudHJpZXMiKS5jbGFzc05hbWU9ImFjdGl2ZSI7CnZhciBidXR0b25zPWRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9nZ2luZy1zZWN0aW9uIikuZ2V0RWxl bWVudHNCeVRhZ05hbWUoInNwYW4iKTt2YXIgYmxvZ2dpZXM9ZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoImJsb2dnaW5nLXNlY3Rpb24iKTtmb3IodmFyIGk9MDtpPGJ1 dHRvbnMubGVuZ3RoO2krKyl7YnV0dG9uc1tpXS5vbmNsaWNrPWZ1bmN0aW9uKCl7 dmFyIHBhcmVudD10aGlzLnBhcmVudE5vZGU7aWYodGhpcy5pZD09InJlY2VudC1l bnRyaWVzIil7dGhpcy5jbGFzc05hbWU9ImFjdGl2ZSI7ZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoIm1vc3QtY29tbWVudGVkLWVudHJpZXMiKS5jbGFzc05hbWU9Imlu YWN0aXZlIjtpZihwYXJlbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVsIilbMF0u Y2xhc3NOYW1lLm1hdGNoKC9cYmhpZGRlblxiLykpe3RvZ2dsZUNsYXNzKHBhcmVu dCk7dG9nZ2xlQ2xhc3MoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vc3QtY29t bWVudGVkLWVudHJpZXMiKS5wYXJlbnROb2RlKX19ZWxzZXt0aGlzLmNsYXNzTmFt ZT0iYWN0aXZlIjtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjZW50LWVudHJp ZXMiKS5jbGFzc05hbWU9ImluYWN0aXZlIjtpZihwYXJlbnQuZ2V0RWxlbWVudHNC eVRhZ05hbWUoInVsIilbMF0uY2xhc3NOYW1lLm1hdGNoKC9cYmhpZGRlblxiLykp e3RvZ2dsZUNsYXNzKHBhcmVudCk7dG9nZ2xlQ2xhc3MoZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoInJlY2VudC1lbnRyaWVzIikucGFyZW50Tm9kZSl9fWZ1bmN0aW9u IHRvZ2dsZUNsYXNzKGVsZW1lbnQpe3ZhciBjdXJyZW50Q2xhc3M9ZWxlbWVudC5n ZXRFbGVtZW50c0J5VGFnTmFtZSgidWwiKVswXS5jbGFzc05hbWU7aWYoY3VycmVu dENsYXNzLm1hdGNoKC9cYnZpc2libGVcYi8pKXtjdXJyZW50Q2xhc3M9Y3VycmVu dENsYXNzLnJlcGxhY2UoL3Zpc2libGUvLCJoaWRkZW4iKX1lbHNle2lmKGN1cnJl bnRDbGFzcy5tYXRjaCgvXGhpZGRlblxiLykpe2N1cnJlbnRDbGFzcz1jdXJyZW50 Q2xhc3MucmVwbGFjZSgvaGlkZGVuLywidmlzaWJsZSIpCn19ZWxlbWVudC5nZXRF bGVtZW50c0J5VGFnTmFtZSgidWwiKVswXS5jbGFzc05hbWU9Y3VycmVudENsYXNz fX19fWFkZEV2ZW50KHdpbmRvdywibG9hZCIsZ2VuZXJpY3RhYnMpO2Z1bmN0aW9u IGdlbmVyaWN0YWJzKGFjdGl2ZXRhYil7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJ0YWItc2VjdGlvbiIpKXtyZXR1cm4gfWRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJ0YWItZGVmYXVsdCIpLmNsYXNzTmFtZT0iYWN0aXZlIjt2YXIgYnV0dG9u cz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFiLXNlY3Rpb24iKS5nZXRFbGVt ZW50c0J5VGFnTmFtZSgic3BhbiIpO3ZhciBibG9nZ2llcz1kb2N1bWVudC5nZXRF bGVtZW50QnlJZCgidGFiLXNlY3Rpb24iKTtmb3IodmFyIGk9MDtpPGJ1dHRvbnMu bGVuZ3RoO2krKyl7YnV0dG9uc1tpXS5vbmNsaWNrPWZ1bmN0aW9uKCl7dmFyIHBh cmVudD10aGlzLnBhcmVudE5vZGU7aWYodGhpcy5pZD09InRhYi1kZWZhdWx0Iil7 dGhpcy5jbGFzc05hbWU9ImFjdGl2ZSI7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo InRhYi1vdGhlciIpLmNsYXNzTmFtZT0iaW5hY3RpdmUiO2lmKHBhcmVudC5nZXRF bGVtZW50c0J5VGFnTmFtZSgidWwiKVswXS5jbGFzc05hbWUubWF0Y2goL1xiaGlk ZGVuXGIvKSl7dG9nZ2xlQ2xhc3MocGFyZW50KTt0b2dnbGVDbGFzcyhkb2N1bWVu dC5nZXRFbGVtZW50QnlJZCgidGFiLW90aGVyIikucGFyZW50Tm9kZSl9fWVsc2V7 dGhpcy5jbGFzc05hbWU9ImFjdGl2ZSI7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo InRhYi1kZWZhdWx0IikuY2xhc3NOYW1lPSJpbmFjdGl2ZSI7aWYocGFyZW50Lmdl dEVsZW1lbnRzQnlUYWdOYW1lKCJ1bCIpWzBdLmNsYXNzTmFtZS5tYXRjaCgvXGJo aWRkZW5cYi8pKXt0b2dnbGVDbGFzcyhwYXJlbnQpO3RvZ2dsZUNsYXNzKGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJ0YWItZGVmYXVsdCIpLnBhcmVudE5vZGUpfX1m dW5jdGlvbiB0b2dnbGVDbGFzcyhlbGVtZW50KXt2YXIgY3VycmVudENsYXNzPWVs ZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVsIilbMF0uY2xhc3NOYW1lOwpp ZihjdXJyZW50Q2xhc3MubWF0Y2goL1xidmlzaWJsZVxiLykpe2N1cnJlbnRDbGFz cz1jdXJyZW50Q2xhc3MucmVwbGFjZSgvdmlzaWJsZS8sImhpZGRlbiIpfWVsc2V7 aWYoY3VycmVudENsYXNzLm1hdGNoKC9caGlkZGVuXGIvKSl7Y3VycmVudENsYXNz PWN1cnJlbnRDbGFzcy5yZXBsYWNlKC9oaWRkZW4vLCJ2aXNpYmxlIil9fWVsZW1l bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInVsIilbMF0uY2xhc3NOYW1lPWN1cnJl bnRDbGFzc319fX1mdW5jdGlvbiBtYXNrSW1hZ2VzKCl7dmFyIGltYWdlcz1bXTtp Zihkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLmNsYXNz TmFtZS5tYXRjaCgiY29tbWVyY2lhbCIpKXtmb3JFYWNoRWxlbWVudE9mKGRvY3Vt ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKSxmdW5jdGlvbihpbWFnZSl7 aW1hZ2VzLnB1c2goaW1hZ2UpfSl9ZWxzZXt2YXIgZGl2cz1kb2N1bWVudC5nZXRF bGVtZW50c0J5VGFnTmFtZSgiZGl2Iik7Zm9yRWFjaEVsZW1lbnRPZihkaXZzLGZ1 bmN0aW9uKGRpdil7aWYoZGl2LmNsYXNzTmFtZS5tYXRjaCgvXGJjb21tZXJjaWFs XGIvKSl7Zm9yRWFjaEVsZW1lbnRPZihkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUo ImltZyIpLGZ1bmN0aW9uKGltYWdlKXtpbWFnZXMucHVzaChpbWFnZSl9KX19KX12 YXIgbWFzaz0vXGJtYXNrXGIvO2Z1bmN0aW9uIGltYWdlRG9lc250QWxyZWFkeUhh dmVPdmVybGF5KGltYWdlKXtpZihpbWFnZS5uZXh0U2libGluZyYmaW1hZ2UubmV4 dFNpYmxpbmcuY2xhc3NOYW1lKXtyZXR1cm4gIWltYWdlLm5leHRTaWJsaW5nLmNs YXNzTmFtZS5tYXRjaChtYXNrKX1yZXR1cm4gdHJ1ZX1mb3JFYWNoRWxlbWVudE9m KGltYWdlcyxmdW5jdGlvbihpbWFnZSl7aWYoaW1hZ2VEb2VzbnRBbHJlYWR5SGF2 ZU92ZXJsYXkoaW1hZ2UpKXthcHBseUltYWdlTWFza0ltbWVkaWF0ZShpbWFnZSwi cm91bmRlZGNvcm5lcnMiKX19KX1hZGRFdmVudCh3aW5kb3csImxvYWQiLG1hc2tJ bWFnZXMpOwp2YXIgVHJpbVBhdGg7KGZ1bmN0aW9uKCl7aWYoVHJpbVBhdGg9PW51 bGwpe1RyaW1QYXRoPW5ldyBPYmplY3QoKX1pZihUcmltUGF0aC5ldmFsRXg9PW51 bGwpe1RyaW1QYXRoLmV2YWxFeD1mdW5jdGlvbihzcmMpe3JldHVybiBldmFsKHNy Yyl9fXZhciBVTkRFRklORUQ7aWYoQXJyYXkucHJvdG90eXBlLnBvcD09bnVsbCl7 QXJyYXkucHJvdG90eXBlLnBvcD1mdW5jdGlvbigpe2lmKHRoaXMubGVuZ3RoPT09 MCl7cmV0dXJuIFVOREVGSU5FRH1yZXR1cm4gdGhpc1stLXRoaXMubGVuZ3RoXX19 aWYoQXJyYXkucHJvdG90eXBlLnB1c2g9PW51bGwpe0FycmF5LnByb3RvdHlwZS5w dXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoOysr aSl7dGhpc1t0aGlzLmxlbmd0aF09YXJndW1lbnRzW2ldfXJldHVybiB0aGlzLmxl bmd0aH19VHJpbVBhdGgucGFyc2VUZW1wbGF0ZT1mdW5jdGlvbih0bXBsQ29udGVu dCxvcHRUbXBsTmFtZSxvcHRFdGMpe2lmKG9wdEV0Yz09bnVsbCl7b3B0RXRjPVRy aW1QYXRoLnBhcnNlVGVtcGxhdGVfZXRjfXZhciBmdW5jU3JjPXBhcnNlKHRtcGxD b250ZW50LG9wdFRtcGxOYW1lLG9wdEV0Yyk7dmFyIGZ1bmM9VHJpbVBhdGguZXZh bEV4KGZ1bmNTcmMsb3B0VG1wbE5hbWUsMSk7aWYoZnVuYyE9bnVsbCl7cmV0dXJu IG5ldyBvcHRFdGMuVGVtcGxhdGUob3B0VG1wbE5hbWUsdG1wbENvbnRlbnQsZnVu Y1NyYyxmdW5jLG9wdEV0Yyl9cmV0dXJuIG51bGx9O3RyeXtTdHJpbmcucHJvdG90 eXBlLnByb2Nlc3M9ZnVuY3Rpb24oY29udGV4dCxvcHRGbGFncyl7dmFyIHRlbXBs YXRlPVRyaW1QYXRoLnBhcnNlVGVtcGxhdGUodGhpcyxudWxsKTtpZih0ZW1wbGF0 ZSE9bnVsbCl7cmV0dXJuIHRlbXBsYXRlLnByb2Nlc3MoY29udGV4dCxvcHRGbGFn cyl9cmV0dXJuIHRoaXN9fWNhdGNoKGUpe31UcmltUGF0aC5wYXJzZVRlbXBsYXRl X2V0Yz17fTtUcmltUGF0aC5wYXJzZVRlbXBsYXRlX2V0Yy5zdGF0ZW1lbnRUYWc9 ImZvcmVsc2V8Zm9yfGlmfGVsc2VpZnxlbHNlfHZhcnxtYWNybyI7ClRyaW1QYXRo LnBhcnNlVGVtcGxhdGVfZXRjLnN0YXRlbWVudERlZj17ImlmIjp7ZGVsdGE6MSxw cmVmaXg6ImlmICgiLHN1ZmZpeDoiKSB7IixwYXJhbU1pbjoxfSwiZWxzZSI6e2Rl bHRhOjAscHJlZml4OiJ9IGVsc2UgeyJ9LGVsc2VpZjp7ZGVsdGE6MCxwcmVmaXg6 In0gZWxzZSBpZiAoIixzdWZmaXg6IikgeyIscGFyYW1EZWZhdWx0OiJ0cnVlIn0s Ii9pZiI6e2RlbHRhOi0xLHByZWZpeDoifSJ9LCJmb3IiOntkZWx0YToxLHBhcmFt TWluOjMscHJlZml4RnVuYzpmdW5jdGlvbihzdG10UGFydHMsc3RhdGUsdG1wbE5h bWUsZXRjKXtpZihzdG10UGFydHNbMl0hPSJpbiIpe3Rocm93IG5ldyBldGMuUGFy c2VFcnJvcih0bXBsTmFtZSxzdGF0ZS5saW5lLCJiYWQgZm9yIGxvb3Agc3RhdGVt ZW50OiAiK3N0bXRQYXJ0cy5qb2luKCIgIikpfXZhciBpdGVyVmFyPXN0bXRQYXJ0 c1sxXTt2YXIgbGlzdFZhcj0iX19MSVNUX18iK2l0ZXJWYXI7cmV0dXJuWyJ2YXIg IixsaXN0VmFyLCIgPSAiLHN0bXRQYXJ0c1szXSwiOyIsInZhciBfX0xFTkdUSF9T VEFDS19fOyIsImlmICh0eXBlb2YoX19MRU5HVEhfU1RBQ0tfXykgPT0gJ3VuZGVm aW5lZCcgfHwgIV9fTEVOR1RIX1NUQUNLX18ubGVuZ3RoKSBfX0xFTkdUSF9TVEFD S19fID0gbmV3IEFycmF5KCk7IiwiX19MRU5HVEhfU1RBQ0tfX1tfX0xFTkdUSF9T VEFDS19fLmxlbmd0aF0gPSAwOyIsImlmICgoIixsaXN0VmFyLCIpICE9IG51bGwp IHsgIiwidmFyICIsaXRlclZhciwiX2N0ID0gMDsiLCJmb3IgKHZhciAiLGl0ZXJW YXIsIl9pbmRleCBpbiAiLGxpc3RWYXIsIikgeyAiLGl0ZXJWYXIsIl9jdCsrOyIs ImlmICh0eXBlb2YoIixsaXN0VmFyLCJbIixpdGVyVmFyLCJfaW5kZXhdKSA9PSAn ZnVuY3Rpb24nKSB7Y29udGludWU7fSIsIl9fTEVOR1RIX1NUQUNLX19bX19MRU5H VEhfU1RBQ0tfXy5sZW5ndGggLSAxXSsrOyIsInZhciAiLGl0ZXJWYXIsIiA9ICIs bGlzdFZhciwiWyIsaXRlclZhciwiX2luZGV4XTsiXS5qb2luKCIiKQp9fSxmb3Jl bHNlOntkZWx0YTowLHByZWZpeDoifSB9IGlmIChfX0xFTkdUSF9TVEFDS19fW19f TEVOR1RIX1NUQUNLX18ubGVuZ3RoIC0gMV0gPT0gMCkgeyBpZiAoIixzdWZmaXg6 IikgeyIscGFyYW1EZWZhdWx0OiJ0cnVlIn0sIi9mb3IiOntkZWx0YTotMSxwcmVm aXg6In0gfTsgZGVsZXRlIF9fTEVOR1RIX1NUQUNLX19bX19MRU5HVEhfU1RBQ0tf Xy5sZW5ndGggLSAxXTsifSwidmFyIjp7ZGVsdGE6MCxwcmVmaXg6InZhciAiLHN1 ZmZpeDoiOyJ9LG1hY3JvOntkZWx0YToxLHByZWZpeEZ1bmM6ZnVuY3Rpb24oc3Rt dFBhcnRzLHN0YXRlLHRtcGxOYW1lLGV0Yyl7dmFyIG1hY3JvTmFtZT1zdG10UGFy dHNbMV0uc3BsaXQoIigiKVswXTtyZXR1cm5bInZhciAiLG1hY3JvTmFtZSwiID0g ZnVuY3Rpb24iLHN0bXRQYXJ0cy5zbGljZSgxKS5qb2luKCIgIikuc3Vic3RyaW5n KG1hY3JvTmFtZS5sZW5ndGgpLCJ7IHZhciBfT1VUX2FyciA9IFtdOyB2YXIgX09V VCA9IHsgd3JpdGU6IGZ1bmN0aW9uKG0pIHsgaWYgKG0pIF9PVVRfYXJyLnB1c2go bSk7IH0gfTsgIl0uam9pbigiIil9fSwiL21hY3JvIjp7ZGVsdGE6LTEscHJlZml4 OiIgcmV0dXJuIF9PVVRfYXJyLmpvaW4oJycpOyB9OyJ9fTtUcmltUGF0aC5wYXJz ZVRlbXBsYXRlX2V0Yy5tb2RpZmllckRlZj17ZWF0OmZ1bmN0aW9uKHYpe3JldHVy biIifSxlc2NhcGU6ZnVuY3Rpb24ocyl7cmV0dXJuIFN0cmluZyhzKS5yZXBsYWNl KC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9n LCImZ3Q7Iil9LGNhcGl0YWxpemU6ZnVuY3Rpb24ocyl7cmV0dXJuIFN0cmluZyhz KS50b1VwcGVyQ2FzZSgpfSwiZGVmYXVsdCI6ZnVuY3Rpb24ocyxkKXtyZXR1cm4g cyE9bnVsbD9zOmR9fTtUcmltUGF0aC5wYXJzZVRlbXBsYXRlX2V0Yy5tb2RpZmll ckRlZi5oPVRyaW1QYXRoLnBhcnNlVGVtcGxhdGVfZXRjLm1vZGlmaWVyRGVmLmVz Y2FwZTtUcmltUGF0aC5wYXJzZVRlbXBsYXRlX2V0Yy5UZW1wbGF0ZT1mdW5jdGlv bih0bXBsTmFtZSx0bXBsQ29udGVudCxmdW5jU3JjLGZ1bmMsZXRjKXt0aGlzLnBy b2Nlc3M9ZnVuY3Rpb24oY29udGV4dCxmbGFncyl7aWYoY29udGV4dD09bnVsbCl7 Y29udGV4dD17fQp9aWYoY29udGV4dC5fTU9ESUZJRVJTPT1udWxsKXtjb250ZXh0 Ll9NT0RJRklFUlM9e319aWYoY29udGV4dC5kZWZpbmVkPT1udWxsKXtjb250ZXh0 LmRlZmluZWQ9ZnVuY3Rpb24oc3RyKXtyZXR1cm4oY29udGV4dFtzdHJdIT11bmRl ZmluZWQpfX1mb3IodmFyIGsgaW4gZXRjLm1vZGlmaWVyRGVmKXtpZihjb250ZXh0 Ll9NT0RJRklFUlNba109PW51bGwpe2NvbnRleHQuX01PRElGSUVSU1trXT1ldGMu bW9kaWZpZXJEZWZba119fWlmKGZsYWdzPT1udWxsKXtmbGFncz17fX12YXIgcmVz dWx0QXJyPVtdO3ZhciByZXN1bHRPdXQ9e3dyaXRlOmZ1bmN0aW9uKG0pe3Jlc3Vs dEFyci5wdXNoKG0pfX07dHJ5e2Z1bmMocmVzdWx0T3V0LGNvbnRleHQsZmxhZ3Mp fWNhdGNoKGUpe2lmKGZsYWdzLnRocm93RXhjZXB0aW9ucz09dHJ1ZSl7dGhyb3cg ZX12YXIgcmVzdWx0PW5ldyBTdHJpbmcocmVzdWx0QXJyLmpvaW4oIiIpKyJbRVJS T1I6ICIrZS50b1N0cmluZygpKyhlLm1lc3NhZ2U/IjsgIitlLm1lc3NhZ2U6IiIp KyJdIik7cmVzdWx0LmV4Y2VwdGlvbj1lO3JldHVybiByZXN1bHR9cmV0dXJuIHJl c3VsdEFyci5qb2luKCIiKX07dGhpcy5uYW1lPXRtcGxOYW1lO3RoaXMuc291cmNl PXRtcGxDb250ZW50O3RoaXMuc291cmNlRnVuYz1mdW5jU3JjO3RoaXMudG9TdHJp bmc9ZnVuY3Rpb24oKXtyZXR1cm4iVHJpbVBhdGguVGVtcGxhdGUgWyIrdG1wbE5h bWUrIl0ifX07VHJpbVBhdGgucGFyc2VUZW1wbGF0ZV9ldGMuUGFyc2VFcnJvcj1m dW5jdGlvbihuYW1lLGxpbmUsbWVzc2FnZSl7dGhpcy5uYW1lPW5hbWU7dGhpcy5s aW5lPWxpbmU7dGhpcy5tZXNzYWdlPW1lc3NhZ2V9O1RyaW1QYXRoLnBhcnNlVGVt cGxhdGVfZXRjLlBhcnNlRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9u KCl7cmV0dXJuKCJUcmltUGF0aCB0ZW1wbGF0ZSBQYXJzZUVycm9yIGluICIrdGhp cy5uYW1lKyI6IGxpbmUgIit0aGlzLmxpbmUrIiwgIit0aGlzLm1lc3NhZ2UpfTt2 YXIgcGFyc2U9ZnVuY3Rpb24oYm9keSx0bXBsTmFtZSxldGMpe2JvZHk9Y2xlYW5X aGl0ZVNwYWNlKGJvZHkpOwp2YXIgZnVuY1RleHQ9WyJ2YXIgVHJpbVBhdGhfVGVt cGxhdGVfVEVNUCA9IGZ1bmN0aW9uKF9PVVQsIF9DT05URVhULCBfRkxBR1MpIHsg d2l0aCAoX0NPTlRFWFQpIHsiXTt2YXIgc3RhdGU9e3N0YWNrOltdLGxpbmU6MX07 dmFyIGVuZFN0bXRQcmV2PS0xO3doaWxlKGVuZFN0bXRQcmV2KzE8Ym9keS5sZW5n dGgpe3ZhciBiZWdTdG10PWVuZFN0bXRQcmV2O2JlZ1N0bXQ9Ym9keS5pbmRleE9m KCJ7IixiZWdTdG10KzEpO3doaWxlKGJlZ1N0bXQ+PTApe3ZhciBlbmRTdG10PWJv ZHkuaW5kZXhPZigifSIsYmVnU3RtdCsxKTt2YXIgc3RtdD1ib2R5LnN1YnN0cmlu ZyhiZWdTdG10LGVuZFN0bXQpO3ZhciBibG9ja3J4PXN0bXQubWF0Y2goL15ceyhj ZGF0YXxtaW5pZnl8ZXZhbCkvKTtpZihibG9ja3J4KXt2YXIgYmxvY2tUeXBlPWJs b2NrcnhbMV07dmFyIGJsb2NrTWFya2VyQmVnPWJlZ1N0bXQrYmxvY2tUeXBlLmxl bmd0aCsxO3ZhciBibG9ja01hcmtlckVuZD1ib2R5LmluZGV4T2YoIn0iLGJsb2Nr TWFya2VyQmVnKTtpZihibG9ja01hcmtlckVuZD49MCl7dmFyIGJsb2NrTWFya2Vy O2lmKGJsb2NrTWFya2VyRW5kLWJsb2NrTWFya2VyQmVnPD0wKXtibG9ja01hcmtl cj0iey8iK2Jsb2NrVHlwZSsifSJ9ZWxzZXtibG9ja01hcmtlcj1ib2R5LnN1YnN0 cmluZyhibG9ja01hcmtlckJlZysxLGJsb2NrTWFya2VyRW5kKX12YXIgYmxvY2tF bmQ9Ym9keS5pbmRleE9mKGJsb2NrTWFya2VyLGJsb2NrTWFya2VyRW5kKzEpO2lm KGJsb2NrRW5kPj0wKXtlbWl0U2VjdGlvblRleHQoYm9keS5zdWJzdHJpbmcoZW5k U3RtdFByZXYrMSxiZWdTdG10KSxmdW5jVGV4dCk7dmFyIGJsb2NrVGV4dD1ib2R5 LnN1YnN0cmluZyhibG9ja01hcmtlckVuZCsxLGJsb2NrRW5kKTtpZihibG9ja1R5 cGU9PSJjZGF0YSIpe2VtaXRUZXh0KGJsb2NrVGV4dCxmdW5jVGV4dCl9ZWxzZXtp ZihibG9ja1R5cGU9PSJtaW5pZnkiKXtlbWl0VGV4dChzY3J1YldoaXRlU3BhY2Uo YmxvY2tUZXh0KSxmdW5jVGV4dCkKfWVsc2V7aWYoYmxvY2tUeXBlPT0iZXZhbCIp e2lmKGJsb2NrVGV4dCE9bnVsbCYmYmxvY2tUZXh0Lmxlbmd0aD4wKXtmdW5jVGV4 dC5wdXNoKCJfT1VULndyaXRlKCAoZnVuY3Rpb24oKSB7ICIrYmxvY2tUZXh0KyIg fSkoKSApOyIpfX19fWJlZ1N0bXQ9ZW5kU3RtdFByZXY9YmxvY2tFbmQrYmxvY2tN YXJrZXIubGVuZ3RoLTF9fX1lbHNle2lmKGJvZHkuY2hhckF0KGJlZ1N0bXQtMSkh PSIkIiYmYm9keS5jaGFyQXQoYmVnU3RtdC0xKSE9IlxcIil7dmFyIG9mZnNldD0o Ym9keS5jaGFyQXQoYmVnU3RtdCsxKT09Ii8iPzI6MSk7aWYoYm9keS5zdWJzdHJp bmcoYmVnU3RtdCtvZmZzZXQsYmVnU3RtdCsxMCtvZmZzZXQpLnNlYXJjaChUcmlt UGF0aC5wYXJzZVRlbXBsYXRlX2V0Yy5zdGF0ZW1lbnRUYWcpPT0wKXticmVha319 fWJlZ1N0bXQ9Ym9keS5pbmRleE9mKCJ7IixiZWdTdG10KzEpfWlmKGJlZ1N0bXQ8 MCl7YnJlYWt9dmFyIGVuZFN0bXQ9Ym9keS5pbmRleE9mKCJ9IixiZWdTdG10KzEp O2lmKGVuZFN0bXQ8MCl7YnJlYWt9ZW1pdFNlY3Rpb25UZXh0KGJvZHkuc3Vic3Ry aW5nKGVuZFN0bXRQcmV2KzEsYmVnU3RtdCksZnVuY1RleHQpO2VtaXRTdGF0ZW1l bnQoYm9keS5zdWJzdHJpbmcoYmVnU3RtdCxlbmRTdG10KzEpLHN0YXRlLGZ1bmNU ZXh0LHRtcGxOYW1lLGV0Yyk7ZW5kU3RtdFByZXY9ZW5kU3RtdH1lbWl0U2VjdGlv blRleHQoYm9keS5zdWJzdHJpbmcoZW5kU3RtdFByZXYrMSksZnVuY1RleHQpO2lm KHN0YXRlLnN0YWNrLmxlbmd0aCE9MCl7dGhyb3cgbmV3IGV0Yy5QYXJzZUVycm9y KHRtcGxOYW1lLHN0YXRlLmxpbmUsInVuY2xvc2VkLCB1bm1hdGNoZWQgc3RhdGVt ZW50KHMpOiAiK3N0YXRlLnN0YWNrLmpvaW4oIiwiKSl9ZnVuY1RleHQucHVzaCgi fX07IFRyaW1QYXRoX1RlbXBsYXRlX1RFTVAiKTtyZXR1cm4gZnVuY1RleHQuam9p bigiIil9O3ZhciBlbWl0U3RhdGVtZW50PWZ1bmN0aW9uKHN0bXRTdHIsc3RhdGUs ZnVuY1RleHQsdG1wbE5hbWUsZXRjKXt2YXIgcGFydHM9c3RtdFN0ci5zbGljZSgx LC0xKS5zcGxpdCgiICIpOwp2YXIgc3RtdD1ldGMuc3RhdGVtZW50RGVmW3BhcnRz WzBdXTtpZihzdG10PT1udWxsKXtlbWl0U2VjdGlvblRleHQoc3RtdFN0cixmdW5j VGV4dCk7cmV0dXJuIH1pZihzdG10LmRlbHRhPDApe2lmKHN0YXRlLnN0YWNrLmxl bmd0aDw9MCl7dGhyb3cgbmV3IGV0Yy5QYXJzZUVycm9yKHRtcGxOYW1lLHN0YXRl LmxpbmUsImNsb3NlIHRhZyBkb2VzIG5vdCBtYXRjaCBhbnkgcHJldmlvdXMgc3Rh dGVtZW50OiAiK3N0bXRTdHIpfXN0YXRlLnN0YWNrLnBvcCgpfWlmKHN0bXQuZGVs dGE+MCl7c3RhdGUuc3RhY2sucHVzaChzdG10U3RyKX1pZihzdG10LnBhcmFtTWlu IT1udWxsJiZzdG10LnBhcmFtTWluPj1wYXJ0cy5sZW5ndGgpe3Rocm93IG5ldyBl dGMuUGFyc2VFcnJvcih0bXBsTmFtZSxzdGF0ZS5saW5lLCJzdGF0ZW1lbnQgbmVl ZHMgbW9yZSBwYXJhbWV0ZXJzOiAiK3N0bXRTdHIpfWlmKHN0bXQucHJlZml4RnVu YyE9bnVsbCl7ZnVuY1RleHQucHVzaChzdG10LnByZWZpeEZ1bmMocGFydHMsc3Rh dGUsdG1wbE5hbWUsZXRjKSl9ZWxzZXtmdW5jVGV4dC5wdXNoKHN0bXQucHJlZml4 KX1pZihzdG10LnN1ZmZpeCE9bnVsbCl7aWYocGFydHMubGVuZ3RoPD0xKXtpZihz dG10LnBhcmFtRGVmYXVsdCE9bnVsbCl7ZnVuY1RleHQucHVzaChzdG10LnBhcmFt RGVmYXVsdCl9fWVsc2V7Zm9yKHZhciBpPTE7aTxwYXJ0cy5sZW5ndGg7aSsrKXtp ZihpPjEpe2Z1bmNUZXh0LnB1c2goIiAiKX1mdW5jVGV4dC5wdXNoKHBhcnRzW2ld KX19ZnVuY1RleHQucHVzaChzdG10LnN1ZmZpeCl9fTt2YXIgZW1pdFNlY3Rpb25U ZXh0PWZ1bmN0aW9uKHRleHQsZnVuY1RleHQpe2lmKHRleHQubGVuZ3RoPD0wKXty ZXR1cm4gfXZhciBubFByZWZpeD0wO3ZhciBubFN1ZmZpeD10ZXh0Lmxlbmd0aC0x O3doaWxlKG5sUHJlZml4PHRleHQubGVuZ3RoJiYodGV4dC5jaGFyQXQobmxQcmVm aXgpPT0iXG4iKSl7bmxQcmVmaXgrK313aGlsZShubFN1ZmZpeD49MCYmKHRleHQu Y2hhckF0KG5sU3VmZml4KT09IiAifHx0ZXh0LmNoYXJBdChubFN1ZmZpeCk9PSJc dCIpKXtubFN1ZmZpeC0tCn1pZihubFN1ZmZpeDxubFByZWZpeCl7bmxTdWZmaXg9 bmxQcmVmaXh9aWYobmxQcmVmaXg+MCl7ZnVuY1RleHQucHVzaCgnaWYgKF9GTEFH Uy5rZWVwV2hpdGVzcGFjZSA9PSB0cnVlKSBfT1VULndyaXRlKCInKTt2YXIgcz10 ZXh0LnN1YnN0cmluZygwLG5sUHJlZml4KS5yZXBsYWNlKCJcbiIsIlxcbiIpO2lm KHMuY2hhckF0KHMubGVuZ3RoLTEpPT0iXG4iKXtzPXMuc3Vic3RyaW5nKDAscy5s ZW5ndGgtMSl9ZnVuY1RleHQucHVzaChzKTtmdW5jVGV4dC5wdXNoKCciKTsnKX12 YXIgbGluZXM9dGV4dC5zdWJzdHJpbmcobmxQcmVmaXgsbmxTdWZmaXgrMSkuc3Bs aXQoIlxuIik7Zm9yKHZhciBpPTA7aTxsaW5lcy5sZW5ndGg7aSsrKXtlbWl0U2Vj dGlvblRleHRMaW5lKGxpbmVzW2ldLGZ1bmNUZXh0KTtpZihpPGxpbmVzLmxlbmd0 aC0xKXtmdW5jVGV4dC5wdXNoKCdfT1VULndyaXRlKCJcXG4iKTtcbicpfX1pZihu bFN1ZmZpeCsxPHRleHQubGVuZ3RoKXtmdW5jVGV4dC5wdXNoKCdpZiAoX0ZMQUdT LmtlZXBXaGl0ZXNwYWNlID09IHRydWUpIF9PVVQud3JpdGUoIicpO3ZhciBzPXRl eHQuc3Vic3RyaW5nKG5sU3VmZml4KzEpLnJlcGxhY2UoIlxuIiwiXFxuIik7aWYo cy5jaGFyQXQocy5sZW5ndGgtMSk9PSJcbiIpe3M9cy5zdWJzdHJpbmcoMCxzLmxl bmd0aC0xKX1mdW5jVGV4dC5wdXNoKHMpO2Z1bmNUZXh0LnB1c2goJyIpOycpfX07 dmFyIGVtaXRTZWN0aW9uVGV4dExpbmU9ZnVuY3Rpb24obGluZSxmdW5jVGV4dCl7 dmFyIGVuZE1hcmtQcmV2PSJ9Ijt2YXIgZW5kRXhwclByZXY9LTE7d2hpbGUoZW5k RXhwclByZXYrZW5kTWFya1ByZXYubGVuZ3RoPGxpbmUubGVuZ3RoKXt2YXIgYmVn TWFyaz0iJHsiLGVuZE1hcms9In0iO3ZhciBiZWdFeHByPWxpbmUuaW5kZXhPZihi ZWdNYXJrLGVuZEV4cHJQcmV2K2VuZE1hcmtQcmV2Lmxlbmd0aCk7aWYoYmVnRXhw cjwwKXticmVha31pZihsaW5lLmNoYXJBdChiZWdFeHByKzIpPT0iJSIpe2JlZ01h cms9IiR7JSI7CmVuZE1hcms9IiV9In12YXIgZW5kRXhwcj1saW5lLmluZGV4T2Yo ZW5kTWFyayxiZWdFeHByK2JlZ01hcmsubGVuZ3RoKTtpZihlbmRFeHByPDApe2Jy ZWFrfWVtaXRUZXh0KGxpbmUuc3Vic3RyaW5nKGVuZEV4cHJQcmV2K2VuZE1hcmtQ cmV2Lmxlbmd0aCxiZWdFeHByKSxmdW5jVGV4dCk7dmFyIGV4cHJBcnI9bGluZS5z dWJzdHJpbmcoYmVnRXhwcitiZWdNYXJrLmxlbmd0aCxlbmRFeHByKS5yZXBsYWNl KC9cfFx8L2csIiNAQCMiKS5zcGxpdCgifCIpO2Zvcih2YXIgayBpbiBleHByQXJy KXtpZihleHByQXJyW2tdLnJlcGxhY2Upe2V4cHJBcnJba109ZXhwckFycltrXS5y ZXBsYWNlKC8jQEAjL2csInx8Iil9fWZ1bmNUZXh0LnB1c2goIl9PVVQud3JpdGUo Iik7ZW1pdEV4cHJlc3Npb24oZXhwckFycixleHByQXJyLmxlbmd0aC0xLGZ1bmNU ZXh0KTtmdW5jVGV4dC5wdXNoKCIpOyIpO2VuZEV4cHJQcmV2PWVuZEV4cHI7ZW5k TWFya1ByZXY9ZW5kTWFya31lbWl0VGV4dChsaW5lLnN1YnN0cmluZyhlbmRFeHBy UHJlditlbmRNYXJrUHJldi5sZW5ndGgpLGZ1bmNUZXh0KX07dmFyIGVtaXRUZXh0 PWZ1bmN0aW9uKHRleHQsZnVuY1RleHQpe2lmKHRleHQ9PW51bGx8fHRleHQubGVu Z3RoPD0wKXtyZXR1cm4gfXRleHQ9dGV4dC5yZXBsYWNlKC9cXC9nLCJcXFxcIik7 dGV4dD10ZXh0LnJlcGxhY2UoL1xuL2csIlxcbiIpO3RleHQ9dGV4dC5yZXBsYWNl KC8iL2csJ1xcIicpO2Z1bmNUZXh0LnB1c2goJ19PVVQud3JpdGUoIicpO2Z1bmNU ZXh0LnB1c2godGV4dCk7ZnVuY1RleHQucHVzaCgnIik7Jyl9O3ZhciBlbWl0RXhw cmVzc2lvbj1mdW5jdGlvbihleHByQXJyLGluZGV4LGZ1bmNUZXh0KXt2YXIgZXhw cj1leHByQXJyW2luZGV4XTtpZihpbmRleDw9MCl7ZnVuY1RleHQucHVzaChleHBy KTtyZXR1cm4gfXZhciBwYXJ0cz1leHByLnNwbGl0KCI6Iik7ZnVuY1RleHQucHVz aCgnX01PRElGSUVSU1siJyk7ZnVuY1RleHQucHVzaChwYXJ0c1swXSk7ZnVuY1Rl eHQucHVzaCgnIl0oJyk7CmVtaXRFeHByZXNzaW9uKGV4cHJBcnIsaW5kZXgtMSxm dW5jVGV4dCk7aWYocGFydHMubGVuZ3RoPjEpe2Z1bmNUZXh0LnB1c2goIiwiKTtm dW5jVGV4dC5wdXNoKHBhcnRzWzFdKX1mdW5jVGV4dC5wdXNoKCIpIil9O3ZhciBj bGVhbldoaXRlU3BhY2U9ZnVuY3Rpb24ocmVzdWx0KXtyZXN1bHQ9cmVzdWx0LnJl cGxhY2UoL1x0L2csIiAgICAiKTtyZXN1bHQ9cmVzdWx0LnJlcGxhY2UoL1xyXG4v ZywiXG4iKTtyZXN1bHQ9cmVzdWx0LnJlcGxhY2UoL1xyL2csIlxuIik7cmVzdWx0 PXJlc3VsdC5yZXBsYWNlKC9eKFxzKlxTKihccytcUyspKilccyokLywiJDEiKTty ZXR1cm4gcmVzdWx0fTt2YXIgc2NydWJXaGl0ZVNwYWNlPWZ1bmN0aW9uKHJlc3Vs dCl7cmVzdWx0PXJlc3VsdC5yZXBsYWNlKC9eXHMrL2csIiIpO3Jlc3VsdD1yZXN1 bHQucmVwbGFjZSgvXHMrJC9nLCIiKTtyZXN1bHQ9cmVzdWx0LnJlcGxhY2UoL1xz Ky9nLCIgIik7cmVzdWx0PXJlc3VsdC5yZXBsYWNlKC9eKFxzKlxTKihccytcUysp KilccyokLywiJDEiKTtyZXR1cm4gcmVzdWx0fTtUcmltUGF0aC5wYXJzZURPTVRl bXBsYXRlPWZ1bmN0aW9uKGVsZW1lbnRJZCxvcHREb2N1bWVudCxvcHRFdGMpe2lm KG9wdERvY3VtZW50PT1udWxsKXtvcHREb2N1bWVudD1kb2N1bWVudH12YXIgZWxl bWVudD1vcHREb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpO3ZhciBj b250ZW50PWVsZW1lbnQudmFsdWU7aWYoY29udGVudD09bnVsbCl7Y29udGVudD1l bGVtZW50LmlubmVySFRNTH1jb250ZW50PWNvbnRlbnQucmVwbGFjZSgvJmx0Oy9n LCI8IikucmVwbGFjZSgvJmd0Oy9nLCI+Iik7cmV0dXJuIFRyaW1QYXRoLnBhcnNl VGVtcGxhdGUoY29udGVudCxlbGVtZW50SWQsb3B0RXRjKX07VHJpbVBhdGgucHJv Y2Vzc0RPTVRlbXBsYXRlPWZ1bmN0aW9uKGVsZW1lbnRJZCxjb250ZXh0LG9wdEZs YWdzLG9wdERvY3VtZW50LG9wdEV0Yyl7cmV0dXJuIFRyaW1QYXRoLnBhcnNlRE9N VGVtcGxhdGUoZWxlbWVudElkLG9wdERvY3VtZW50LG9wdEV0YykucHJvY2Vzcyhj b250ZXh0LG9wdEZsYWdzKQp9fSkoKTtmdW5jdGlvbiBtYXNrTWVkaWFJbWFnZXMo KXt2YXIgaW1hZ2VzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWci KTt2YXIgaW1hZ2VzVG9Qcm9jZXNzPVtdO2ZvckVhY2hFbGVtZW50T2YoaW1hZ2Vz LGZ1bmN0aW9uKGltYWdlKXtpbWFnZXNUb1Byb2Nlc3MucHVzaChpbWFnZSl9KTt2 YXIgbWFza0NsYXNzPS8oW2EtekEtWl0rKS1tYXNrLzt2YXIgYW5jaG9yT3JEaXY9 L15hJHxeZGl2L2k7Zm9yRWFjaEVsZW1lbnRPZihpbWFnZXNUb1Byb2Nlc3MsZnVu Y3Rpb24oaW1hZ2Upe3ZhciBtYXRjaE1hc2tDbGFzcz1tYXNrQ2xhc3MuZXhlYyhp bWFnZS5jbGFzc05hbWUpO2lmKG1hdGNoTWFza0NsYXNzJiZpbWFnZS5wYXJlbnRO b2RlLm5vZGVOYW1lLm1hdGNoKGFuY2hvck9yRGl2KSl7dmFyIG1hc2tOYW1lPW1h dGNoTWFza0NsYXNzWzFdO2FwcGx5SW1hZ2VNYXNrSW1tZWRpYXRlKGltYWdlLG1h c2tOYW1lKX19KX1hZGRFdmVudCh3aW5kb3csImxvYWQiLG1hc2tNZWRpYUltYWdl cyk7ZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4ucjIiKTtndWFyZGlhbi5yMi5zZWN0 aW9uQ29sb3Vycz17bmV3czoiI2FiMTcwMCIsc3BvcnQ6IiMzYTdkMDAiLGNvbW1l bnQ6IiNmZjNhMDAiLGN1bHR1cmU6IiNhNzAwNmYiLGJ1c2luZXNzOiIjMzI0NmFi Iixtb25leToiIzhmMWFiNiIsbGlmZWFuZHN0eWxlOiIjYzkzOTAwIix0cmF2ZWw6 IiMwNjZlYzkiLGVudmlyb25tZW50OiIjNGE3ODAxIiwiZ3VhcmRpYW4tY2FyZWVy cyI6IiMwMDYxQTYifTs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=shareCounts.js Content-Type: application/x-javascript; name=shareCounts.js Content-Location: http://combo.guim.co.uk/86669/common/scripts/shareCounts.js Content-Transfer-Encoding: Base64 LyogODY2NjkvY29tbW9uL3NjcmlwdHMvc2hhcmVDb3VudHMuanMgKi8KZnVuY3Rp b24gZ3VhcmRpYW5TaGFyZUNvdW50cyhqc29uKSB7CgoJaWYgKCFqc29uKSB7CgoJ CXZhcglwYWdlVXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJz8nKVsw XSwKCQlzZXJ2aWNlVXJsID0gc2l0ZVByZWZpeFVybCArICcvd2ViLXV0aWxzL3Nv Y2lhbC1zdGF0cy9jb3VudHM/cT0nLAoJCXJlcXVlc3RVcmwgPSBzZXJ2aWNlVXJs ICsgZXNjYXBlKHBhZ2VVcmwpICsgJyZjYWxsYmFjaz1ndWFyZGlhblNoYXJlQ291 bnRzJzsJCQoJCWpRLmdldFNjcmlwdChyZXF1ZXN0VXJsKTsKCQkKCX0gZWxzZSB7 CgoJCXZhciBzaGFyZUNvdW50cyA9IGpzb24uY291bnRzOwoJCQoJCWpRLmVhY2go c2hhcmVDb3VudHMsIGZ1bmN0aW9uICh0YXJnZXQsIGNvdW50KSB7CgkJCWlmIChj b3VudCA+IDApIHsKCQkJCXZhciBjdXJyZW50Q291bnRMaW5rID0galEoJyNzaGFy ZS1saW5rLScgKyB0YXJnZXQpOwoJCQkJY3VycmVudENvdW50TGluay5hcHBlbmQo JzxzcGFuIGNsYXNzPSJzaGFyZS1jb3VudCI+KCcgKyBjb3VudCArICcpPC9zcGFu PicpOwoJCQl9CgkJfSk7Cgl9Cgp9CgpqUShmdW5jdGlvbiAoKSB7CglndWFyZGlh blNoYXJlQ291bnRzKCk7Cn0pOwoK ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=logo.gif Content-Type: image/gif; name=logo.gif Content-Location: http://static.guim.co.uk/static/86669/zones/comment/images/logo.gif Content-Transfer-Encoding: Base64 R0lGODlhjAAWALMAAP///4aiuRlNc7vK12+QpwA6ZN3l65iww6i8zURvjc3Z4e7y 9cbU3/f5+lV8mDNhgyH5BAAAAAAALAAAAACMABYAAAT/EMhJq704a2nG/mAojmQZ HkQiFFxREGYsWwaDHIEx71/guhIfkEccGQLIXHFZEbIABheMSc0ckbrq0jkxILTg ylWpOSYShBuB0AmsAYsBLiFZoM4JssJ9BhwcChIIKQ4JPwB7KU92KWdkcTiAA41f GDUImAOBEgoDmAwLFgs1Ax4NBgo2HEk6CwyvoBMHLg4EKyuGP3S5Q4Z5Di4CgQS6 Qh7EBQK8LMi9Bb/BgU4FDz8umxQNCEgDDDhf2kg3SNhBSV/bSatYcDgBCKFQP6HI CAoGK89wwM6V+VPI8hUYIERAKC4Amkkw5E+KoB8OAvArEMACwQAeEL0DcJEBgAbu /+LVcQcuXUUorCQQLIdQiIOFLugAQJgiXi6ZTjAOWJDvZMtDCRPYjKnyR8YfJycs SBJP206mKrlVSFeJgTqU7PaU8wNUiMybQYBWADtTbBQXGX8OGUuUo1EJSCvsQWJh blKrAQ5MFScB78kxqDDSyKeDn14AZBFqVKEr7NoBb8sOUbyHcVvIaOG6SNr3KgW/ E0BToNqZLta8SRpYQHAr1xTEbRHmcjCgmj7JT9xmxu34yezalyPH/Zy6gmgAxwXx RX51zMWNFQ4ISHcgC8zbXGa5CJXY7I/DalloL8A9+O7hNkYl8UhhTGi+6QGQZm4a sF/riFwgKFUKWy4BOijkRPZ52IkFQD44dXXIgLDdhtlAmlFEXwAgraeUH+zIR45f 4eQVynPr5FAhEqr1Zk0y0pwoUBo/PGBLMAYsMFElXMUUgG0vyGjUgy7mAyBuFT3o wAImqZfEOVhVh5deRfp1JDcN+OXRGPBwINCJX/3AYkwKNJOAAghOI2EQPhaUx4kJ 6QKmjSc+GNMVlXhx5E4cuAMlVpWYNACVTgbgkUknLXWlNV3QucBWcVinCQiLHrpB ohMsGsIoFYxiQIkUWFopfqOo1oBIIeDzAgUKBBPGqagWIcRrcDiU6quwGnGLTgdU 8wB+seaqa6UBWKZMAKDuKuywxBZLbAQAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=spacer.gif Content-Type: image/gif; name=spacer.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/spacer.gif Content-Transfer-Encoding: Base64 R0lGODlhAQABAIAAAP///wAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_digg.gif Content-Type: image/gif; name=icon_digg.gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_digg.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAKIAAO7u7qqqqt3d3czMzJmZmf///wAAAAAAACH5BAAAAAAALAAA AAAQABAAAANPWLoa7oSRuYJcUWVbAMiZ8jkdIBDQYkaWeZ6ZOURTTcCdMMyF4P+n gg3V8qxCoaIrJKyUfkhKoSUI+ECYaa961YhYW2tQaCMPmYy0er1OAAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_buzz.gif Content-Type: image/gif; name=icon_buzz.gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_buzz.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOeMADwVR0kgR00eWlsjaWYnd24qgnQrinctjnsykW89UoA+lnpL PIJGcolJfoVJm4tSoJlXipFcppdiY5tpWJ9tRLJ3Yqt1oLZ6cLWAW8GITsKJgNOc dfqjG/qnGdiod/qpLPqqJNqrg/urMtyvkPK0IPqxPfuxQP22FP25E+q5av69Ev69 FP6+GP6+Hf6/Ht27tP7AJP7AJfO/Vv7BK/7BLO2/f/7CMv7CM/3BQd6+u/7DOP7D Ov7EQPTEaf7FRP7GRd/Dwv3GU/7HSf7HS/7IUP7JVP7JVf7KWf7KWuDIyf7MXv7M X/7NY/7NZOHM0P7OZ/7Paf7Pbf7Qbf7RcP7Rcf7Rcv/Sdf/SdvbSl+PR2f/Tef/U ev/Vff/Vfv/Wgf/Wgv/Xh/3ZnP/ajv/akP/bk//ipv7ju//lsP7ltv/ouP/pu//p vf/qvf/qwP/rwP/rwv/rw/7rzf/sxf/sxv/tyP/uyv/uy//vzf/vzv/w0P/w0v/w 0//x0//x1f/y1v/y2P7z2v7z2/703f703v714P724/735v/46f/57P/67//78v/8 9f////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// /////////////////yH5BAEKAP8ALAAAAAAQABAAAAjwAP/940CwoEGCAv+ZMLNI USJEhwwVIiQIUJgSA+M8zBIhAsVAf/royYOGg4iIhZw8eBByT547dejIMUloUKAk Dhy8jCnnTZs1Jv/44QNEgQKZPtmoSXPGZB48dnIgQNBmqgUsYrxwMUlnDpwXBw6Q CXsAghYrU0y6UVNmhAEDX2poeLvhCROTZ8aACVGggBUqURoUuHCkCIcPYrps8UCA QAomShgQqCDEB8ErVaT0GDBAggwMnDPosEEQSpMlSCYIWL06wQwYLQgGMUJkyA8K AQAAWECCxYoTHP6BwMFjxw0aMVz4VqECRQeBB6MX/BcQADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_facebook.gif Content-Type: image/gif; name=icon_facebook.gif Content-Location: http://static.guim.co.uk/static/86669/common/styles/wide/images/icon_facebook.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAGF5rEVinmB4q+vu9G2EtP///ztZmAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAdMgAWCg4SFggAGiYqLiQCC jJCKj5ECA5OTkJaXBZEGmJ6ckZ+fiYaloYsDmqqnnaOojK+usIIBBLe4BIK4AbW5 uLu3vQWInYqOhsmDgQA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_print.gif Content-Type: image/gif; name=icon_print.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_print.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAG47gP////Di/Wg6smg7sn9QwnVHvGk7srmI7XFEua195LKB 53pMv4layqN03Zlp1Y5fzbaF6oNVxqNz3Ws9tINUxqh54Z5v2bWF6nFDuY5fzm5A tryL74layb+N8YRUxqh44HVIvJNk0ZNk0n5RwnpLv6h44a195byM75lq1rmJ7bGB 6J5v2nlMv76O8YRVxr+O8W1AtnZHu5Rk0mg7sWo9tJ5u2m0/tnpMvraF621At3JD uK185Go9s6l44X5QwrKC54haygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAedgAEAg4SFhYIdECMpLA4W CisRCBwuMIMSDRAiDxcTPidAOSooHoMFFQ0BqquqGJODDD8VrKwLkoMhDCSChgEK CxiDCQYttKsmv4MxGQa8hw4gPIMUNwnGqp0WgwMC3d7f3Q6DB+DlAjaDNObgD+MH AwM1GzsGDAUfDRoz2wT9AxQbmJUoICGIhkH+BrzroSOBDBwFXnQA4MyQxQCBAAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_email-friend.gif Content-Type: image/gif; name=icon_email-friend.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_email-friend.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAP///yxcmiuFwlaz8TOOy1ay8UGc2kSf3VSw7kml41Cr6jmT 0TaQzi2HxEah4E+q6TuX1Eun5TGLyVay8Eyo5USf3k2p506p6DqU0jmT0C6Ixi1V mS+Kxy+Jx0ei4D6Y1iyGxECb2j6Z1iyFwi2IxTuW00Gc2VSx7z2Y1jqV01Gt7FGu 7DaRzjmV0zeRzlOv7j6a1i6IxTyX1T6a10yn5lCs61Gt61Gs60ik4zuV0zSPzFWx 706q6S+JxkGd2zKMyUai31Ku7Uum5UGe2zGLyFSx8Eij4TuW1DqW0zCKxzyW1DGM yTiT0U2o50Of3Emk4yyHxFKv7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAeagAABg4SFhYI+FR4JNDw1 QQgTBQOUgzMGBw5PERcKKwhFA5ODECImmThCFgoqLzuVARkAs7S1swWDDAAltrQ2 ACeDBLM5vU2zUYNEtCm1RrQ3gz21LbNDtQ+DDbYYMrYUgyO9vQmDAuO2QOYCAg0a ST86LkxKMAZO6+xQJBxLBCwLjnwIkY8diBgdJBBgsAAJigCCDEkMsAFAIAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_share.gif Content-Type: image/gif; name=icon_share.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_share.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAABiKQf///yCkTiKmUC+zXUPFcBeLQC2wWjS3Yi6xXBSKPSuv WSuuWfL69BSKPja5ZBCIOje6ZDK1YDK0Xz/BbRmNQkHDbimsVjS3YSmsVyGlTyqt WC2wW/H69COnUSeqVDK1Xz7AbDCzXDCyXTu9aDCzXTe5ZCWpUzO2YZ3ftM7u2TG1 X/L69dbv3jO2YIXWoTm8Z3bJkyuuWDe5ZULEcELEb8nq1Tm8ZiyvWmPFhTGzXnrM lzS4Yq7gwC6xW3XOlJLUqTW5ZMjp1Fu+fSerVSywWl/Cgcvs117BgDCzXjS2YTu+ aLzlyji7Zjq8aEDDbj2/a0DCbSOmUD2vZPL79T2/ai2xW5jZrzK0YLzmy/P79UPF cTi6ZiKmT7foyMvs1jW4Yzu+aRmMQSGkTi6yXDy/aqvdvDq8ZnjKlCSoUjW4YiGk TzG0Xsnp1C+sWs3t2GXHhiSnUSSpUjm7ZiyvWSCkTwAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAfPgAEAg4SFhYIJJSAYD3NO ZSFRFjQFBYMLVgQTjFwkLwEBXgVbABUZCxwjKwhBTSqgAU81AAZEFwwHIhNKP1qw FBYADnIfGTIHOUcBb1QBKVAUpR5AAQ1ZAV9wKGARZ0tVtF2wDTtFZGwuajMwYcIC sB1IGzgJOhI8JjeDAmagLQE2jNDxkQQEggj7BExxI2VImwBMWAS4IgFBQgFjNAxI g6YDLAJYLgoQoDGOEFgcCIgcuWZADFA9cK0cWWeAhxMfLmwAIIiQGAUQaAElFCAQ ADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_clip.gif Content-Type: image/gif; name=icon_clip.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_clip.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAO4Aaf////9Gm/18t//h7/5ep/9Tov/2+v5mrP16tv9Nn/96 t/5Zpf5hqf5usP/B3f/r9P1zsv5QoP5rrv52tP9HnP/Z6v9JnP9Jnf/w9//u9v/s 9f9Uov5Uo/1lq/6jzv/i7/5dp/1iqv+o0P9Sov5Rof+fy/+gzP7U5/9Ypf6UxP5X pP6Qw/18uP9iqv/I4f/N5P9InP9Lnf9Mnv+y1f5Pn/6RxP+Mwf1rr/7W6P+t0/5M nv+gy/5ysf1vsf15tf13tf5apv12tP+p0P1usP/t9f+cyv5bpv1iqf6q0f9kq/10 s/5zs/5lq/59uP6v0/5orf+lz/7R5v/Q5v14tf9XpP5cp/9Vo//D3/5hqv1nrf5q rf6NwP9QoP5YpP1wsP9PoP/c7P11tP/1+v9cpv5gqP5iqv5xsgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAe9gAEAg4SFhYIkK0dlTVsO EUI/A5MDgzUGVWQNHhNEERQJky2DLAEBBxRZCBM+TEChlQABIDqnBSIIOF9LVKGD AQRQRQEMBWZaXE8WGTmDD6amNElh0KYogwILPEYQ1QFYKmdi2AsmI93VMDYOPc7V J1EW3lK/BC4bATEyYAZOHy8aptQbEmCMgAszJBjwYqUBgkE3TB1QIqDCBQUSOqQI gQSbgI8gBWDY0YVDMY8hP1bAoKDElSCyDMkkFCAQADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_email-us.gif Content-Type: image/gif; name=icon_email-us.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_email-us.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAAIyc////1GN3jVuuQU2d06K2ipgqR5RmCRNhvH1+jt0wXei 3M/f9EF7yPL2+zBnsTBmsQ0+gpqtx+7x9i9nsLzJ20aAz0l+xTt0wAg5fDhrrt3k 7Ak6fBhLkBdLkDVtuUF6yHSk5TBnsEVpmAg6fDVbjx5SmHSe1+Pr9FV7rkqG1Ymf vniStN7l7mOV2y1Zk73K3FSAuQU1dsbU6CNZoSpfqazI7lF3qFp/s3GPuFGO3neX wQU1d05yo9Pe7EuG1SRYoCRZoDhrrxJEiMnY7GuJsG6MtO/z94GcwIaiyISfxCxe nwk5fG2QwCNYoK2908va7pu11+Ho8e/y90h9xEN4vhJEiUaBzxNAfHGUxvD0+V6L x8jW6l6FuYOexNLc6n6YvDZuucTT5kuF1YqmzLzI2iZXl77M3gAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAe7gAEAg4SFhYIHQAYQYVQn CyoFAiECAoMeJjQxXAGdAQydlYNDHUtaAQlVFw6fNgI6gxFWSp0zDwNQnS6SgxwR SJ1iNRBEnQtjBYMyTC+dUkEGKAEODVc/hDwkRp1fPqhbCg0WhQRFUzleSU0aDx8Y IIUjAS09Nyk4XUIUAwqFLJ4AA0QRMaAQgg0BPWWhYFDChDIVYJzxRMYAISwTAqwY RCADmE47nBAq0UkCIQJPAhwxcwCAIEMwBwUIBAA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_font.gif Content-Type: image/gif; name=icon_font.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_font.gif Content-Transfer-Encoding: Base64 R0lGODlhEwATALMAAP///0RERKioqGlpaebm5vPz87S0tJubm4+Pj1BQUIKCgnZ2 dtra2s3NzV1dXcHBwSH5BAAAAAAALAAAAAATABMAAARmEMhJq61MCHM7CmDRVUUC Btw4GcEBKuqkBMQpqkWwAAMoxKyfKzCI9QiAxwnZqRUlpsCvI5BOPsRRD6ERzEDM Su1E9l1c0yvoWXHQKiwwJks6pQGCnkMQbhyiCQI3ZWkLZQENMSMRADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icon_history.gif Content-Type: image/gif; name=icon_history.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/icon_history.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQAOYAAJsDA////6oREaEJCfv09J8HB6gPD/Pg4Prz87YdHfz19aYN DdCFhaQLC7YdHPz29qUNDcEnJtGGhq8WFrQbGqMKCrg3N50ICMMpKMInKNqQkNOK irshIcRXV78lJLQaGrQaG7tPT8+Ghvvz87EYGLIYGKwTFKcPD8ROTu/Q0LU4OJ0E BPbj481fX6cSEacPDsFVVd+Wlr0jI+/S0t+VlaMKC6MLC75ISNuPj8MoKaEJCKoS EcIoKMBHR/Tf36ssLLxHR68VFfDT08AnJrEbGs1gYJwEBK0TE8AoKe7Q0fbi4q0U E/HU1LwiI7YcHdqNjZ0FBslHSPXi4vXg4KUMDa8WFbkfH8JWVsApKLkfHt+goMBK SrEaG+ChoawTE50GBu/T06gOD8EmJqUMDKQKC6cSEgAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAfOgAEAg4SFhYICSxMlHwlZ HDIeYhkYGIMGO0dcGg8BAQ8xWEM8OYMQJxYEAVKNLAEKUREZgzYuqh0TWl0OLa9I EYMDGwFXAiZCTCBORQE0HoMFIwdjYQIzKSUgDkoKTYNQARINCwZJPj0oFDgBHING AQwDFQtgngEkTwFWhAgHBQM1VAC5sSXIFAIJCIkIEOLfOAMCOgTQQIHQBQQM/5GB ACMAASIkCv3AeICBhAMeLXipYuiCCIwBRmwo88KYIUIrvhTQUYEKRACCbgoNEAgA Ow== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icons_staff_16.gif Content-Type: image/gif; name=icons_staff_16.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/communities/icons_staff_16.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQALMAAABBe////3eauUR0nszZ5bvM3O7y9iJajRFOhKrA093m7TNn lYimwZmzymaNsFWApyH5BAAAAAAALAAAAAAQABAAAARGEMhJq70445GUKsSAIUaA PIFwbEEADEGRkcEhpJpAFImjHYGEYCjCHEqtVtGyIDCGBNyl4ZIwAovNR9AwCDQA xCALLpslEQA7 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icons_contributor_16.gif Content-Type: image/gif; name=icons_contributor_16.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/communities/icons_contributor_16.gif Content-Transfer-Encoding: Base64 R0lGODlhEAAQALMAADp4qAlKgmunzmGexkSCr06Ltx1ckRNTileUv5LM7HWw1Sdm mQBBe5zW9AAAAAAAACH5BAAAAAAALAAAAAAQABAAAAQ7sMlJq704Z0EWKAmWLAxD MgpGlOmAYgFzSIkSXuWiTfkulYFJIXUBsBoChkBkyMWIl8QA4EHcfNjsLgIAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=pluck-v5.js Content-Type: application/x-javascript; name=pluck-v5.js Content-Location: http://static.guim.co.uk/microapps/server-side-pluck/javascript/pluck-v5.js Content-Transfer-Encoding: Base64 ZW5zdXJlUGFja2FnZSgiZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrIik7Cgp2YXIg c3NwU2l0ZXNQcm94aWVzID0gdHJ1ZTsKCnZhciBjb25maWcgPSB7CgltZXNzYWdl cyA6IHsKCQljb21tZW50QmxvY2tlZCA6ICdUaGlzIGNvbW1lbnQgaGFzIGJlZW4g cmVtb3ZlZCBieSBhIG1vZGVyYXRvci4gUmVwbGllcyBtYXkgYWxzbyBiZSBkZWxl dGVkLicKCX0sCgljb21tZW50c1NpZ25VcFVybCA6IGNvbW1lbnRzU2lnblVwVXJs LAoJbnVtYmVyT2ZDb21tZW50c1BlclBhZ2UgOiA1MCwKCXNpZ25PdXRVcmwgOiAi L1VzZXJzL3NpZ25vdXQvdHIvMSwsLDAwLmh0bWwiLAoJcGx1Y2tNYXhOdW1iZXJQ ZXJQYWdlIDogMTAsCgkvKmFkZENsaXBwaW5nc1VybCA6IHNlcnZlckRhdGEuZW52 LmFkZENsaXBwaW5nc1VybCwqLwoJY29tbWVudEtleVByZWZpeCA6ICdDb21tZW50 S2V5OicsCgl1c2VyUHJvZmlsZVNlcnZpY2VVcmwgOiBzaXRlUHJlZml4VXJsICsg Ii91c2Vycy9wbHVjay9nZXRVc2VyUHJvZmlsZS5qcyIsCglyZXBvcnRBYnVzZVNl cnZpY2VVcmwgOiBzaXRlUHJlZml4VXJsICsgIi91c2Vycy9wbHVjay9yZXBvcnQt YWJ1c2UiCn07CgpndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suRXJyb3JNZXNzYWdl VmlldyA9IGZ1bmN0aW9uICgpIHsKCglmdW5jdGlvbiBvYmplY3RUb1N0cmluZyhl eGNlcHRpb24pIHsKCQlpZiAodHlwZW9mIGV4Y2VwdGlvbiA9PT0gIm9iamVjdCIp IHsKCQkJdmFyIHJlc3VsdCA9IFsneyddOwoJCQlmb3IgKHZhciBuYW1lIGluIGV4 Y2VwdGlvbikgewoJCQkJaWYgKGV4Y2VwdGlvbi5oYXNPd25Qcm9wZXJ0eShuYW1l KSkgewoJCQkJCXJlc3VsdC5wdXNoKG5hbWUgKyAnIC0+ICcpOwoJCQkJCXJlc3Vs dC5wdXNoKG9iamVjdFRvU3RyaW5nKGV4Y2VwdGlvbltuYW1lXSkpOwoJCQkJfQoJ CQl9CgkJCXJlc3VsdC5wdXNoKCd9Jyk7CgkJCXJldHVybiByZXN1bHQuam9pbign XG4nKTsKCQl9CgkJcmV0dXJuIGV4Y2VwdGlvbi50b1N0cmluZygpOwoJfQoKCXRo aXMud3JpdGVNZXNzYWdlID0gZnVuY3Rpb24gKGV4Y2VwdGlvbikgewoJCXZhciBk aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOwoJCWRpdi5z dHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCWRpdi5zdHlsZS53aWR0aCA9ICcxMDAl JzsKCQlkaXYuc3R5bGUuaGVpZ2h0ID0gJzQwMHB4JzsKCgkJZGl2LmlubmVySFRN TCA9IG9iamVjdFRvU3RyaW5nKGV4Y2VwdGlvbik7CgoJCWRvY3VtZW50LmdldEVs ZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0uYXBwZW5kQ2hpbGQoZGl2KTsKCX07 Cn07CgovKiAtLS0tIFBsdWNrU2VuZGVyLmpzIC0tLS0gKi8KLyogY3JlYXRlIHRo aXMgd2l0aApuZXcgZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrU2VuZGVy KHBsdWNrT2JqZWN0RmFjdG9yeSwgc2VydmVyVXJsLCBlcnJvck1lc3NhZ2VWaWV3 KQoqLwoKZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrU2VuZGVyID0gZnVu Y3Rpb24gKHBsdWNrT2JqZWN0RmFjdG9yeSwgcGx1Y2tTZXJ2ZXJVcmwsIGVycm9y TWVzc2FnZVZpZXcpIHsKCXZhciBpbnN0YW5jZSA9IHRoaXM7CgoJZnVuY3Rpb24g aGFuZGxlRXJyb3JzKGNhbGxiYWNrLCBlcnJvcnMpIHsKCQlpZiAoY2FsbGJhY2su ZXJyb3JIYW5kbGVyKSB7CgkJCWNhbGxiYWNrLmVycm9ySGFuZGxlcihlcnJvcnMp OwoJCX0gZWxzZSB7CgkJCWVycm9yTWVzc2FnZVZpZXcud3JpdGVNZXNzYWdlKGVy cm9ycyk7CgkJfQoJfQoKCWZ1bmN0aW9uIGNyZWF0ZUVycm9yTWVzc2FnZShhcmdz LCBjYWxsYmFjaywgcmVzcG9uc2VCYXRjaCkgewoJCXJldHVybiB7CgkJCWFyZ3Mg OiBhcmdzLAoJCQljYWxsYmFjayA6IGNhbGxiYWNrLAoJCQlyZXNwb25zZUJhdGNo IDogcmVzcG9uc2VCYXRjaCwKCQkJbWVzc2FnZXMgOiBbXSwKCQkJaGFzRXJyb3Jz IDogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHRoaXMubWVzc2FnZXMubGVuZ3Ro ID4gMDsKCQkJfQoJCX07Cgl9CgoJdGhpcy5zdWJtaXQgPSBmdW5jdGlvbiAoY2Fs bGJhY2spIHsKCQl2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs KGFyZ3VtZW50cywgMSk7CgkJdmFyIHJlcXVlc3RCYXRjaCA9IHBsdWNrT2JqZWN0 RmFjdG9yeS5uZXdSZXF1ZXN0QmF0Y2goYXJncyk7CgkJdmFyIG15Q2FsbGJhY2sg PSBmdW5jdGlvbiAocmVzcG9uc2VCYXRjaCkgewoJCQl2YXIgZXJyb3JzID0gY3Jl YXRlRXJyb3JNZXNzYWdlKGFyZ3MsIGNhbGxiYWNrLCByZXNwb25zZUJhdGNoKTsK CQkJZm9yICh2YXIgaSA9IDA7IGkgPCByZXNwb25zZUJhdGNoLk1lc3NhZ2VzLmxl bmd0aDsgaSsrKSB7CgkJCQl2YXIgbWVzc2FnZSA9IHJlc3BvbnNlQmF0Y2guTWVz c2FnZXNbaV0uTWVzc2FnZTsKCQkJCWlmIChtZXNzYWdlICE9PSAnb2snKSB7CgkJ CQkJZXJyb3JzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7CgkJCQl9CgkJCX0KCQkJ aWYgKGVycm9ycy5oYXNFcnJvcnMoKSkgewoJCQkJaGFuZGxlRXJyb3JzKGNhbGxi YWNrLCBlcnJvcnMpOwoJCQl9IGVsc2UgewoJCQkJY2FsbGJhY2socmVzcG9uc2VC YXRjaCk7CgkJCX0KCQl9OwoKCgkJcmVxdWVzdEJhdGNoLkJlZ2luUmVxdWVzdChw bHVja1NlcnZlclVybCwgbXlDYWxsYmFjayk7Cgl9OwoKCXRoaXMuc3VibWl0SW5k aXZpZHVhbGx5ID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBtZXNzYWdlQXJyYXksIHBy b2dyZXNzQ2FsbGJhY2spIHsKCQl2YXIgcmVzcG9uc2VCYXRjaGVzID0gW107CgkJ dmFyIG51bWJlck9mQ2FsbGJhY2tzID0gMDsKCQl2YXIgbnVtYmVyT2ZFcnJvcnMg PSAwOwoJCXZhciBleHBlY3RlZE51bWJlck9mQ2FsbGJhY2tzID0gIG1lc3NhZ2VB cnJheS5sZW5ndGg7CgkJdmFyIHJlc3BvbnNlQ2FsbGJhY2sgPSBmdW5jdGlvbiAo cmVzcG9uc2VCYXRjaCkgewoJCQlyZXNwb25zZUJhdGNoZXMucHVzaChyZXNwb25z ZUJhdGNoKTsKCQkJbnVtYmVyT2ZDYWxsYmFja3MrKzsKCQkJaWYgKHByb2dyZXNz Q2FsbGJhY2spIHsKCQkJCXByb2dyZXNzQ2FsbGJhY2socmVzcG9uc2VCYXRjaCk7 CgkJCX0KCQkJcmV0dXJuUmVzcG9uc2VCYXRjaGVzSWZOb01vcmVDYWxsYmFja3Mo bnVtYmVyT2ZDYWxsYmFja3MsIHJlc3BvbnNlQmF0Y2hlcywgZXhwZWN0ZWROdW1i ZXJPZkNhbGxiYWNrcywgY2FsbGJhY2spOwoJCX07CgkJcmVzcG9uc2VDYWxsYmFj ay5lcnJvckhhbmRsZXIgPSBmdW5jdGlvbiAoKSB7CgkJCW51bWJlck9mQ2FsbGJh Y2tzKys7CgkJCW51bWJlck9mRXJyb3JzKys7CgkJCWlmIChudW1iZXJPZkVycm9y cyA9PT0gZXhwZWN0ZWROdW1iZXJPZkNhbGxiYWNrcykgewoJCQkJaWYgKGNhbGxi YWNrLmVycm9ySGFuZGxlcikgewoJCQkJCWNhbGxiYWNrLmVycm9ySGFuZGxlcigp OwoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJcmV0dXJuUmVzcG9uc2VCYXRjaGVz SWZOb01vcmVDYWxsYmFja3MobnVtYmVyT2ZDYWxsYmFja3MsIHJlc3BvbnNlQmF0 Y2hlcywgZXhwZWN0ZWROdW1iZXJPZkNhbGxiYWNrcywgY2FsbGJhY2spOwoJCQl9 CgkJfTsKCQlmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VBcnJheS5sZW5ndGg7 IGkrKykgewoJCQlpbnN0YW5jZS5zdWJtaXQocmVzcG9uc2VDYWxsYmFjaywgbWVz c2FnZUFycmF5W2ldKTsKCQl9Cgl9OwoKCWZ1bmN0aW9uIHJldHVyblJlc3BvbnNl QmF0Y2hlc0lmTm9Nb3JlQ2FsbGJhY2tzKG51bWJlck9mQ2FsbGJhY2tzLCByZXNw b25zZUJhdGNoZXMsIGV4cGVjdGVkTnVtYmVyT2ZDYWxsYmFja3MsIGNhbGxiYWNr KSB7CgkJaWYgKG51bWJlck9mQ2FsbGJhY2tzID09PSBleHBlY3RlZE51bWJlck9m Q2FsbGJhY2tzKSB7CgkJCWNhbGxiYWNrKHJlc3BvbnNlQmF0Y2hlcyk7CgkJfQoJ fQp9OwoKLyogLS0tLSBQbHVja09iamVjdEZhY3RvcnkuanMgLS0tLSAqLwoKLyog Y3JlYXRlZCB3aXRoCm5ldyBndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tP YmplY3RGYWN0b3J5KGNvbmZpZykKKi8KCmd1YXJkaWFuLnNlcnZlclNpZGVQbHVj ay5QbHVja09iamVjdEZhY3RvcnkgPSBmdW5jdGlvbiAoY29uZmlnKSB7CgoJdmFy IGluc3RhbmNlID0gdGhpczsKCgl0aGlzLm5ld0NvbW1lbnRQYWdlID0gZnVuY3Rp b24gKGFydGljbGVJZCwgbnVtYmVyT2ZDb21tZW50c1BlclNsaWNlLCBzbGljZU51 bWJlciwgc29ydCkgewoJCXJldHVybiBuZXcgQ29tbWVudFBhZ2UobmV3IEFydGlj bGVLZXkoYXJ0aWNsZUlkKSwgbnVtYmVyT2ZDb21tZW50c1BlclNsaWNlLCBzbGlj ZU51bWJlciwgKHNvcnQgfHwgIlRpbWVTdGFtcEFzY2VuZGluZyIpKTsKCX07CgoJ dGhpcy5uZXdVc2VyQ29tbWVudFBhZ2UgPSBmdW5jdGlvbiAodXNlcklkLCBudW1i ZXJPZkNvbW1lbnRzUGVyU2xpY2UsIHNsaWNlTnVtYmVyLCBzb3J0KSB7CgkJcmV0 dXJuIG5ldyBVc2VyQ29tbWVudFBhZ2UobmV3IFVzZXJLZXkodXNlcklkKSwgbnVt YmVyT2ZDb21tZW50c1BlclNsaWNlLCBzbGljZU51bWJlciwgKHNvcnQgfHwgIlRp bWVTdGFtcERlc2NlbmRpbmciKSk7Cgl9OwoKCXRoaXMubmV3UmVxdWVzdEJhdGNo ID0gZnVuY3Rpb24gKGRhdGEpIHsKCQl2YXIgcmVxdWVzdEJhdGNoID0gbmV3IFJl cXVlc3RCYXRjaCgpOwoJCWZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7 IGkrKykgewoJCQlyZXF1ZXN0QmF0Y2guQWRkVG9SZXF1ZXN0KGRhdGFbaV0pOwoJ CX0KCQlyZXR1cm4gcmVxdWVzdEJhdGNoOwoJfTsKCgl0aGlzLm5ld0NvbW1lbnRB Y3Rpb24gPSBmdW5jdGlvbiAoYXJ0aWNsZUlkLCBwYWdlVXJsLCBwYWdlVGl0bGUs IGNvbW1lbnRCb2R5KSB7CgkJdmFyIGFydGljbGVLZXkgPSBuZXcgQXJ0aWNsZUtl eShhcnRpY2xlSWQpOwoJCXJldHVybiBuZXcgQ29tbWVudEFjdGlvbihhcnRpY2xl S2V5LCBwYWdlVXJsLCBwYWdlVGl0bGUsIGNvbW1lbnRCb2R5KTsKCX07CgoJdGhp cy5uZXdEaXNjb3ZlckFydGljbGVzQWN0aW9uID0gZnVuY3Rpb24gKHNlY3Rpb25z LCBjYXRlZ29yaWVzLCBjb250cmlidXRvcnMsIGFjdGl2aXR5LCBhZ2UsIG1heFJl c3VsdHMpIHsKCQlyZXR1cm4gbmV3IERpc2NvdmVyQXJ0aWNsZXNBY3Rpb24oc2Vj dGlvbnMsIGNhdGVnb3JpZXMsIGNvbnRyaWJ1dG9ycywgYWN0aXZpdHksIGFnZSwg bWF4UmVzdWx0cyk7Cgl9OwoKCXRoaXMubmV3QXJ0aWNsZUtleSA9IGZ1bmN0aW9u IChhcnRpY2xlSWQpIHsKCQlyZXR1cm4gbmV3IEFydGljbGVLZXkoYXJ0aWNsZUlk KTsKCX07CgoJdGhpcy5uZXdVc2VyS2V5ID0gZnVuY3Rpb24gKHVzZXJJZCkgewoJ CXJldHVybiBuZXcgVXNlcktleSh1c2VySWQpOwoJfTsKCgl0aGlzLm5ld0FjdGl2 aXR5ID0gZnVuY3Rpb24gKG5hbWUpIHsKCQlyZXR1cm4gbmV3IEFjdGl2aXR5KG5h bWUpOwoJfTsKCgl0aGlzLm5ld0NvbW1lbnRLZXkgPSBmdW5jdGlvbiAoY29tbWVu dElkKSB7CgkJcmV0dXJuIGluc3RhbmNlLm5ld0NvbW1lbnRLZXlXaXRob3V0UHJl Zml4KGNvbmZpZy5jb21tZW50S2V5UHJlZml4ICsgY29tbWVudElkKTsKCX07CgoJ dGhpcy5uZXdDb21tZW50S2V5V2l0aG91dFByZWZpeCA9IGZ1bmN0aW9uIChjb21t ZW50SWQpIHsKCQlyZXR1cm4gbmV3IENvbW1lbnRLZXkoY29tbWVudElkKTsKCX07 CgoJdGhpcy5uZXdDdXN0b21JdGVtS2V5ID0gZnVuY3Rpb24gKGtleSkgewoJCXJl dHVybiBuZXcgQ3VzdG9tSXRlbUtleShrZXkpOwoJfTsKCgl0aGlzLm5ld1NlY3Rp b24gPSBmdW5jdGlvbiAobmFtZSkgewoJCXJldHVybiBuZXcgU2VjdGlvbihuYW1l KTsKCX07CgoJdGhpcy5uZXdTZWN0aW9uTGlzdCA9IGZ1bmN0aW9uIChzZWN0aW9u SWRMaXN0KSB7CgkJdmFyIHNlY3Rpb25MaXN0ID0gW107CgkJZm9yICh2YXIgaSA9 IDA7IGkgPCBzZWN0aW9uSWRMaXN0Lmxlbmd0aDsgaSsrKSB7CgkJCXNlY3Rpb25M aXN0LnB1c2goaW5zdGFuY2UubmV3U2VjdGlvbihzZWN0aW9uSWRMaXN0W2ldLnRv U3RyaW5nKCkpKTsKCQl9CgkJcmV0dXJuIHNlY3Rpb25MaXN0OwoJfTsKCgl0aGlz Lm5ld0NhdGVnb3J5TGlzdCA9IGZ1bmN0aW9uICh0YWdJZExpc3QpIHsKCQl2YXIg Y2F0ZWdvcnlMaXN0ID0gW107CgkJZm9yICh2YXIgaSA9IDA7IGkgPCB0YWdJZExp c3QubGVuZ3RoOyBpKyspIHsKCQkJY2F0ZWdvcnlMaXN0LnB1c2goaW5zdGFuY2Uu bmV3Q2F0ZWdvcnkodGFnSWRMaXN0W2ldLnRvU3RyaW5nKCkpKTsKCQl9CgkJcmV0 dXJuIGNhdGVnb3J5TGlzdDsKCX07CgoJdGhpcy5uZXdDYXRlZ29yeSA9IGZ1bmN0 aW9uIChuYW1lKSB7CgkJcmV0dXJuIG5ldyBDYXRlZ29yeShuYW1lKTsKCX07CgoJ dGhpcy5hcnRpY2xlQnlEZWZhdWx0ID0ge307Cgl0aGlzLnVzZXJCeURlZmF1bHQg PSB7fTsKCgl0aGlzLm5ld1BsdWNrS2V5ID0gZnVuY3Rpb24gKGtleVN0cmluZywg YXJ0aWNsZU9yVXNlckJ5RGVmYXVsdCkgewoJCWlmIChrZXlTdHJpbmcgJiYga2V5 U3RyaW5nLm1hdGNoKC9eQ29tbWVudEtleS8pKSB7CgkJCXJldHVybiBuZXcgQ29t bWVudEtleShrZXlTdHJpbmcpOwoJCX0KCgkJaWYgKGFydGljbGVPclVzZXJCeURl ZmF1bHQgPT09IGluc3RhbmNlLmFydGljbGVCeURlZmF1bHQpIHsKCQkJcmV0dXJu IG5ldyBBcnRpY2xlS2V5KGtleVN0cmluZyk7CgkJfQoJCWlmIChhcnRpY2xlT3JV c2VyQnlEZWZhdWx0ID09PSBpbnN0YW5jZS51c2VyQnlEZWZhdWx0KSB7CgkJCXJl dHVybiBuZXcgVXNlcktleShrZXlTdHJpbmcpOwoJCX0KCX07CgoJdGhpcy5uZXdS ZXBvcnRBYnVzZUFjdGlvbiA9IGZ1bmN0aW9uIChhYnVzZVJlcG9ydCkgewoJCXZh ciBkZXNjcmlwdGlvbiA9IGFidXNlUmVwb3J0LmRlc2NyaXB0aW9uOwoJCWlmIChh YnVzZVJlcG9ydC5lbWFpbCkgewoJCQlkZXNjcmlwdGlvbiArPSAiIFsiICsgYWJ1 c2VSZXBvcnQuZW1haWwgKyAiXSI7CgkJfQoJCXJldHVybiBuZXcgUmVwb3J0QWJ1 c2VBY3Rpb24oaW5zdGFuY2UubmV3UGx1Y2tLZXkoYWJ1c2VSZXBvcnQuY29tbWVu dEtleSwgaW5zdGFuY2UudXNlckJ5RGVmYXVsdCksIGFidXNlUmVwb3J0LnJlYXNv biwgZGVzY3JpcHRpb24pOwoJfTsKCgl0aGlzLm5ld1JlY29tbWVuZEFjdGlvbkZv ckNvbW1lbnQgPSBmdW5jdGlvbiAoY29tbWVudElkKSB7CgkJcmV0dXJuIGluc3Rh bmNlLm5ld1JlY29tbWVuZEFjdGlvbihpbnN0YW5jZS5uZXdDb21tZW50S2V5V2l0 aG91dFByZWZpeChjb21tZW50SWQpKTsKCX07CgoJdGhpcy5uZXdSZWNvbW1lbmRB Y3Rpb24gPSBmdW5jdGlvbiAocmVjb21tZW5kZWRJdGVtS2V5KSB7CgkJcmV0dXJu IG5ldyBSZWNvbW1lbmRBY3Rpb24ocmVjb21tZW5kZWRJdGVtS2V5KTsKCX07CgoJ dGhpcy5uZXdVcGRhdGVBcnRpY2xlQWN0aW9uID0gZnVuY3Rpb24gKGFydGljbGVJ bmZvKSB7CgkJdmFyIGFydGljbGVLZXkgPSBpbnN0YW5jZS5uZXdBcnRpY2xlS2V5 KGFydGljbGVJbmZvLmFydGljbGVJZCk7CgkJdmFyIHNlY3Rpb24gPSBpbnN0YW5j ZS5uZXdTZWN0aW9uKGFydGljbGVJbmZvLnNlY3Rpb24pOwoJCXZhciBjYXRlZ29y aWVzID0gW107CgkJZm9yICh2YXIgaSA9IDA7IGFydGljbGVJbmZvLmNhdGVnb3Jp ZXMgJiYgaSA8IGFydGljbGVJbmZvLmNhdGVnb3JpZXMubGVuZ3RoOyBpKyspIHsK CQkJY2F0ZWdvcmllc1tpXSA9IGluc3RhbmNlLm5ld0NhdGVnb3J5KGFydGljbGVJ bmZvLmNhdGVnb3JpZXNbaV0pOwoJCX0KCQlyZXR1cm4gbmV3IFVwZGF0ZUFydGlj bGVBY3Rpb24oYXJ0aWNsZUtleSwgYXJ0aWNsZUluZm8ucGFnZVVybCwgYXJ0aWNs ZUluZm8ucGFnZVRpdGxlLCBzZWN0aW9uLCBjYXRlZ29yaWVzKTsKCX07CgoJdGhp cy5uZXdTZWFyY2hBY3Rpb24gPSBmdW5jdGlvbiAoc2VhcmNoU3RyaW5nLCBudW1i ZXJPZkNvbW1lbnRzUGVyUGFnZSwgb25QYWdlKSB7CgkJdmFyIHNlYXJjaFR5cGUg PSAnQ29tbWVudCc7CgkJcmV0dXJuIG5ldyBTZWFyY2hBY3Rpb24oc2VhcmNoVHlw ZSwgc2VhcmNoU3RyaW5nLCBudW1iZXJPZkNvbW1lbnRzUGVyUGFnZSwgb25QYWdl KTsKCX07CgoJdGhpcy5uZXdVcGRhdGVDdXN0b21JdGVtQWN0aW9uID0gZnVuY3Rp b24gKGN1c3RvbUl0ZW1LZXksIGNvbnRlbnQpIHsKCQl2YXIgbmFtZSA9ICJwbGFj ZWhvbGRlciI7CgkJcmV0dXJuIG5ldyBVcGRhdGVDdXN0b21JdGVtQWN0aW9uKGN1 c3RvbUl0ZW1LZXksIG5hbWUsIG51bGwsIG51bGwsIGNvbnRlbnQpOwoJfTsKCgl0 aGlzLm5ld1VzZXJUaWVyID0gZnVuY3Rpb24gKHVzZXJUaWVyKSB7CgkJcmV0dXJu IG5ldyBVc2VyVGllcih1c2VyVGllcik7Cgl9OwoKCXRoaXMubmV3Q29udGVudFBv bGljeUFjdGlvblR5cGUgPSBmdW5jdGlvbiAoY29udGVudFBvbGljeUFjdGlvblR5 cGUpIHsKCQlyZXR1cm4gbmV3IENvbnRlbnRQb2xpY3lBY3Rpb25UeXBlKGNvbnRl bnRQb2xpY3lBY3Rpb25UeXBlKTsKCX07CgoJdGhpcy5uZXdDb250ZW50UG9saWN5 ID0gZnVuY3Rpb24gKGNvbnRlbnRQb2xpY3kpIHsKCQlyZXR1cm4gbmV3IENvbnRl bnRQb2xpY3koY29udGVudFBvbGljeSk7Cgl9OwoKCXRoaXMubmV3U2V0Q29udGVu dFBvbGljeUFjdGlvbiA9IGZ1bmN0aW9uIChhcnRpY2xlSWQsIHVzZXJUaWVyU3Ry aW5nLCBhY3Rpb25UeXBlU3RyaW5nLCBjb250ZW50UG9saWN5U3RyaW5nKSB7CgkJ dmFyIGFydGljbGVLZXkgPSBpbnN0YW5jZS5uZXdBcnRpY2xlS2V5KGFydGljbGVJ ZCk7CgkJdmFyIHVzZXJUaWVyID0gaW5zdGFuY2UubmV3VXNlclRpZXIodXNlclRp ZXJTdHJpbmcpOwoJCXZhciBhY3Rpb25UeXBlID0gaW5zdGFuY2UubmV3Q29udGVu dFBvbGljeUFjdGlvblR5cGUoYWN0aW9uVHlwZVN0cmluZyk7CgkJdmFyIGNvbnRl bnRQb2xpY3kgPSBpbnN0YW5jZS5uZXdDb250ZW50UG9saWN5KGNvbnRlbnRQb2xp Y3lTdHJpbmcpOwoJCXJldHVybiBuZXcgU2V0Q29udGVudFBvbGljeUFjdGlvbihh cnRpY2xlS2V5LCB1c2VyVGllciwgYWN0aW9uVHlwZSwgY29udGVudFBvbGljeSk7 Cgl9Owp9OwoKLyogLS0tLSBQbHVja0hhc2hDb29raWVIYW5kbGVyLmpzIC0tLS0g Ki8KCmd1YXJkaWFuLnNlcnZlclNpZGVQbHVjay5QbHVja0hhc2hDb29raWVIYW5k bGVyID0gZnVuY3Rpb24gKCkgewoKCXZhciBjb29raWVOYW1lID0gJ2F0JzsKCgl0 aGlzLmNvb2tpZUV4aXN0cyA9IGZ1bmN0aW9uICgpIHsKCQlyZXR1cm4gcmVhZENv b2tpZShjb29raWVOYW1lKSAhPT0gbnVsbDsKCX07CgoJdGhpcy5nZXRMb2dnZWRJ blVzZXJOYW1lID0gZnVuY3Rpb24gKCkgewoJCXZhciBhdENvb2tpZUJvZHkgPSBy ZWFkQ29va2llKCdhdCcpOwoKCQlpZiAoIWF0Q29va2llQm9keSkgewoJCQlyZXR1 cm4gbnVsbDsKCQl9CgoJCXZhciBsb2dnZWRJblVzZXJOYW1lID0gYXRDb29raWVC b2R5Lm1hdGNoKC8mYT0oW14mXSspJi8pWzFdOwoJCXJldHVybiBsb2dnZWRJblVz ZXJOYW1lOwoJfTsKCgl0aGlzLmdldExvZ2dlZEluVXNlcklkID0gZnVuY3Rpb24g KCkgewoJCXZhciBhdENvb2tpZUJvZHkgPSByZWFkQ29va2llKGNvb2tpZU5hbWUp OwoKCQlpZiAoIWF0Q29va2llQm9keSkgewoJCQlyZXR1cm4gbnVsbDsKCQl9CgoJ CXZhciBsb2dnZWRJblVzZXJJZCA9IGF0Q29va2llQm9keS5tYXRjaCgvdT0oW14m XSspJi8pWzFdOwoJCXJldHVybiBsb2dnZWRJblVzZXJJZDsKCX07Cn07CgovKiBI b3cgaXQncyBjcmVhdGVkOgoJdmFyIGNvb2tpZURvbWFpbiA9ICIuIitkb2N1bWVu dC5kb21haW47Cgl2YXIgdXJsU3RhY2sgPSBuZXcgVXJsU3RhY2soY29va2llRG9t YWluKTsKCXZhciBwbHVja0Nvb2tpZUhhbmRsZXIgPSBuZXcgZ3VhcmRpYW4uc2Vy dmVyU2lkZVBsdWNrLlBsdWNrSGFzaENvb2tpZUhhbmRsZXIoKQoJdmFyIGF1dGhl bnRpY2F0aW9uU2VydmljZSA9IG5ldyBndWFyZGlhbi5yMi5wbHVjay5QbHVja0F1 dGhlbnRpY2F0aW9uU2VydmljZShjb25maWcsIHBsdWNrQ29va2llSGFuZGxlciwg dXJsU3RhY2ssIGZhbHNlKTsKKi8KCgovKiAtLS0tIFBsdWNrQXV0aGVudGljYXRp b25TZXJ2aWNlLmpzIC0tLS0gKi8KZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLlBs dWNrQXV0aGVudGljYXRpb25TZXJ2aWNlID0gZnVuY3Rpb24gKGNvbmZpZywgcGx1 Y2tDb29raWVIYW5kbGVyLCB1cmxTdGFjaywgdGFyZ2V0T3BlbmVyKSB7Cgl2YXIg c2hvd0JveFBhcmFtTmFtZSA9ICdzaG93Q29tbWVudEJveCc7Cgl2YXIgaW5zdGFu Y2UgPSB0aGlzOwoKCXRoaXMuaXNVc2VyTG9nZ2VkSW50b1BsdWNrID0gZnVuY3Rp b24gKCkgewoJCXJldHVybiBwbHVja0Nvb2tpZUhhbmRsZXIuY29va2llRXhpc3Rz KCk7Cgl9OwoKCXRoaXMuZ2V0TG9nZ2VkSW5Vc2VyTmFtZSA9IGZ1bmN0aW9uICgp IHsKCQlpZiAoIXRoaXMuaXNVc2VyTG9nZ2VkSW50b1BsdWNrKCkpIHsKCQkJdGhy b3cgIkNhbid0IGdldCB1c2VybmFtZSBiZWNhdXNlIG5vIHBsdWNrIGNvb2tpZSBl eGlzdHMuIjsKCQl9CgkJcmV0dXJuIHBsdWNrQ29va2llSGFuZGxlci5nZXRMb2dn ZWRJblVzZXJOYW1lKCk7Cgl9OwoKCXRoaXMuZ2V0TG9nZ2VkSW5Vc2VySWQgPSBm dW5jdGlvbiAoKSB7CgkJaWYgKCF0aGlzLmlzVXNlckxvZ2dlZEludG9QbHVjaygp KSB7CgkJCXRocm93ICJDYW4ndCBnZXQgdXNlcm5hbWUgYmVjYXVzZSBubyBwbHVj ayBjb29raWUgZXhpc3RzLiI7CgkJfQoJCXJldHVybiBwbHVja0Nvb2tpZUhhbmRs ZXIuZ2V0TG9nZ2VkSW5Vc2VySWQoKTsKCX07CgoJdGhpcy5sb2dpbiA9IGZ1bmN0 aW9uIChzaG91bGRTaG93Q29tbWVudEJveE9uUmV0dXJuKSB7CgkJaWYgKGluc3Rh bmNlLmlzVXNlckxvZ2dlZEludG9QbHVjaygpKSB7CgkJCXJldHVybjsKCQl9CgoJ CXVybFN0YWNrLmNsZWFyVXJsU3RhY2soKTsKCgkJLy8gVE9ETyBtb3ZlIGRvY3Vt ZW50LmxvY2F0aW9uIHN0dWZmIGludG8gdmlldyBvciBpbmplY3QKCQl2YXIgZGVz dGluYXRpb25VcmwgPSBzdHJpcFBhcmFtRnJvbVVybChzaG93Qm94UGFyYW1OYW1l LCBkb2N1bWVudC5sb2NhdGlvbi5ocmVmKTsKCQlpZiAoc2hvdWxkU2hvd0NvbW1l bnRCb3hPblJldHVybikgewoJCQlkZXN0aW5hdGlvblVybCA9IGFwcGVuZFBhcmFt KGRlc3RpbmF0aW9uVXJsLCBzaG93Qm94UGFyYW1OYW1lLCAndHJ1ZScpOwoJCX0K CgkJdXJsU3RhY2sucHVzaFVybE9udG9TdGFjayhkZXN0aW5hdGlvblVybCk7CgkJ Ly8gVE9ETyByZXR1cm4gdXJsIHRvIGNvbnRyb2xsZXIgcmF0aGVyIHRoYW4gbW9k aWZ5aW5nIGRvY3VtZW50LmxvY2F0aW9uCgoJCWlmICh0YXJnZXRPcGVuZXIpIHsK CQkJd2luZG93Lm9wZW5lci5kb2N1bWVudC5sb2NhdGlvbiA9IGNvbmZpZy5jb21t ZW50c1NpZ25VcFVybDsKCQl9IGVsc2UgewoJCQlkb2N1bWVudC5sb2NhdGlvbiA9 IGNvbmZpZy5jb21tZW50c1NpZ25VcFVybDsKCQl9Cgl9OwoKCXRoaXMuaXNMb2dn ZWRJblVzZXJUaGVQYWdlT3duZXIgPSBmdW5jdGlvbiAodXNlcklkT2ZQYWdlKSB7 CgkJcmV0dXJuIHBsdWNrQ29va2llSGFuZGxlci5nZXRMb2dnZWRJblVzZXJJZCgp ID09PSB1c2VySWRPZlBhZ2U7Cgl9OwoKCXRoaXMuc2lnbk91dCA9IGZ1bmN0aW9u ICgpIHsKCQl2YXIgZGVzdGluYXRpb25VcmwgPSBzdHJpcFBhcmFtRnJvbVVybChz aG93Qm94UGFyYW1OYW1lLCBkb2N1bWVudC5sb2NhdGlvbi5ocmVmKTsKCQl1cmxT dGFjay5wdXNoVXJsT250b1N0YWNrKGRlc3RpbmF0aW9uVXJsKTsKCQkvLyBUT0RP IHJldHVybiB1cmwgdG8gY29udHJvbGxlciByYXRoZXIgdGhhbiBtb2RpZnlpbmcg ZG9jdW1lbnQubG9jYXRpb24KCQlkb2N1bWVudC5sb2NhdGlvbiA9IGNvbmZpZy5z aWduT3V0VXJsOwoJfTsKCgl2YXIgYXBwZW5kUGFyYW0gPSBmdW5jdGlvbiAodXJs LCBuYW1lLCB2YWx1ZSkgewoJCWlmICh1cmwuaW5kZXhPZignPycpID09PSAtMSkg ewoJCQlyZXR1cm4gdXJsICsgJz8nICsgbmFtZSArICc9JyArIHZhbHVlOwoJCX0K CgkJcmV0dXJuIHVybCArICcmJyArIG5hbWUgKyAnPScgKyB2YWx1ZTsKCX07Cn07 CgovKiAtLS0tIFBsdWNrUmVwb3J0QWJ1c2VTZXJ2aWNlLmpzIC0tLS0gKi8KCmd1 YXJkaWFuLnNlcnZlclNpZGVQbHVjay5QbHVja1JlcG9ydEFidXNlU2VydmljZSA9 IGZ1bmN0aW9uIChjb25maWcpIHsKCgl0aGlzLnJlcG9ydEFidXNlID0gZnVuY3Rp b24gKGFidXNlUmVwb3J0LCBjYWxsYmFjaykgewoJCWpRdWVyeS5nZXRKU09OKAog ICAgICAgICAgICBjb25maWcucmVwb3J0QWJ1c2VTZXJ2aWNlVXJsKyI/Y2FsbGJh Y2s9PyIsCgkJCWFidXNlUmVwb3J0LAoJCQljYWxsYmFjawoJCSk7Cgl9OwoKfTsK Ci8qIC0tLS0gQ2hhckNvdW50ZXIuanMgLS0tLSAqLwoKZ3VhcmRpYW4uc2VydmVy U2lkZVBsdWNrLkNoYXJDb3VudGVyID0gZnVuY3Rpb24gKG1heENoYXJzKSB7CgoJ dmFyIGxhYmVsU2V0dGVyOwoJdmFyIGNoYXJHZXR0ZXI7Cgl2YXIgY2hhclNldHRl cjsKCgl2YXIgZW5zdXJlQ2hhcnNXaXRoaW5MaW1pdCA9IGZ1bmN0aW9uICgpIHsK CQl2YXIgY2hhcnMgPSBjaGFyR2V0dGVyKCk7CgkJaWYgKGNoYXJzLmxlbmd0aCA+ IG1heENoYXJzKSB7CgkJCWNoYXJTZXR0ZXIoY2hhcnMuc3Vic3RyaW5nKDAsIG1h eENoYXJzKSk7CgkJfQoJfTsKCgl0aGlzLmNvbmZpZ3VyZSA9IGZ1bmN0aW9uIChf bGFiZWxTZXR0ZXIsIF9jaGFyR2V0dGVyLCBfY2hhclNldHRlcikgewoJCWxhYmVs U2V0dGVyID0gX2xhYmVsU2V0dGVyOwoJCWNoYXJHZXR0ZXIgPSBfY2hhckdldHRl cjsKCQljaGFyU2V0dGVyID0gX2NoYXJTZXR0ZXI7CgoJCXRoaXMuY291bnQoKTsK CX07CgoJdGhpcy5jb3VudCA9IGZ1bmN0aW9uICgpIHsKCQllbnN1cmVDaGFyc1dp dGhpbkxpbWl0KCk7CgkJdmFyIGNoYXJzTGVmdCA9IG1heENoYXJzIC0gY2hhckdl dHRlcigpLmxlbmd0aDsKCQlsYWJlbFNldHRlcihjaGFyc0xlZnQpOwoJfTsKCgl0 aGlzLnJlc2V0ID0gZnVuY3Rpb24gKCkgewoJCWxhYmVsU2V0dGVyKG1heENoYXJz KTsKCQljaGFyU2V0dGVyKCIiKTsKCX07Cn07CgovKiAtLS0tIFBsdWNrQWJ1c2VC b3hDb250cm9sbGVyIC0tLS0gKi8KCi8qIEhvdyBpdCdzIGNyZWF0ZWQKdGhpcy5j cmVhdGVQbHVja1VzZXJBYnVzZUJveENvbnRyb2xsZXIgPSBmdW5jdGlvbiAoKSB7 CiAgICB2YXIgcmVwb3J0QWJ1c2VWaWV3ID0gbmV3IGd1YXJkaWFuLnNlcnZlclNp ZGVQbHVjay5QbHVja0FidXNlQm94VmlldygpOwogICAgdmFyIGFidXNlQm94Q2hh ckNvdW50ZXIgPSBuZXcgZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLkNoYXJDb3Vu dGVyKDMwMCk7CiAgICByZXR1cm4gbmV3IGd1YXJkaWFuLnNlcnZlclNpZGVQbHVj ay5QbHVja0FidXNlQm94Q29udHJvbGxlcihhdXRoZW50aWNhdGlvblNlcnZpY2Us IHJlcG9ydEFidXNlU2VydmljZSwgcmVwb3J0QWJ1c2VWaWV3LCBhYnVzZUJveENo YXJDb3VudGVyKTsKfTsKKi8KCgpndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suUGx1 Y2tBYnVzZUJveENvbnRyb2xsZXIgPSBmdW5jdGlvbiAoYXV0aGVudGljYXRpb25T ZXJ2aWNlLCByZXBvcnRBYnVzZVNlcnZpY2UsIHJlcG9ydEFidXNlVmlldywgY2hh ckNvdW50ZXIpIHsKCgl2YXIgaW5zdGFuY2UgPSB0aGlzOwoJdmFyIGNvbW1lbnRL ZXk7Cgl2YXIgZXJyb3JIYXNPY2N1cmVkID0gZmFsc2U7CgoJZnVuY3Rpb24gb25M b2FkKCkgewoJCWNoYXJDb3VudGVyLmNvbmZpZ3VyZShyZXBvcnRBYnVzZVZpZXcu c2V0Q2hhcnNMZWZ0LCByZXBvcnRBYnVzZVZpZXcuZ2V0UmF3QWJ1c2VEZXNjcmlw dGlvbiwgcmVwb3J0QWJ1c2VWaWV3LnNldEFidXNlRGVzY3JpcHRpb24pOwoJCXJl Z2lzdGVyVmlld0xpc3RlbmVycygpOwoJCXJlcG9ydEFidXNlVmlldy5pbml0KCk7 Cgl9CgoJZnVuY3Rpb24gcmVzZXRBYnVzZUJveCgpIHsKCQljaGFyQ291bnRlci5y ZXNldCgpOwoJCXJlc2V0VmlldygpOwoJfQoKCWZ1bmN0aW9uIHJlZ2lzdGVyVmll d0xpc3RlbmVycygpIHsKCQlyZXBvcnRBYnVzZVZpZXcucmVnaXN0ZXJDbGlja0xp c3RlbmVyT25PcGVuQWJ1c2VCb3hCdXR0b24oaW5zdGFuY2Uub3BlbkFidXNlQm94 KTsKCQlyZXBvcnRBYnVzZVZpZXcucmVnaXN0ZXJDbGlja0xpc3RlbmVyT25DbG9z ZUNvbmZpcm1CdXR0b24oaW5zdGFuY2UuY2xvc2VDb25maXJtKTsKCQlyZXBvcnRB YnVzZVZpZXcucmVnaXN0ZXJDbGlja0xpc3RlbmVyT25TdWJtaXRBYnVzZVJlcG9y dEJ1dHRvbihpbnN0YW5jZS5zdWJtaXRBYnVzZVJlcG9ydCk7CgkJcmVwb3J0QWJ1 c2VWaWV3LnJlZ2lzdGVyQ2xpY2tMaXN0ZW5lck9uQ2xvc2VBYnVzZUJveEJ1dHRv bihpbnN0YW5jZS5jbG9zZUFidXNlQm94KTsKCQlyZXBvcnRBYnVzZVZpZXcucmVn aXN0ZXJDbGlja0xpc3RlbmVyT25DYW5jZWxDbG9zZUJ1dHRvbihpbnN0YW5jZS5j YW5jZWxDbG9zZSk7CgkJcmVwb3J0QWJ1c2VWaWV3LnJlZ2lzdGVyQ2hhbmdlTGlz dGVuZXJPbkFidXNlUmVhc29uTGlzdChpbnN0YW5jZS5jaGFuZ2VBYnVzZVJlYXNv bik7CgkJcmVwb3J0QWJ1c2VWaWV3LnJlZ2lzdGVyQ2hhbmdlTGlzdGVuZXJPbkFi dXNlUmVhc29uTGlzdChpbnN0YW5jZS52YWxpZGF0ZSk7CgkJcmVwb3J0QWJ1c2VW aWV3LnJlZ2lzdGVyS2V5UHJlc3NMaXN0ZW5lck9uQWJ1c2VFbWFpbChpbnN0YW5j ZS52YWxpZGF0ZSk7CgkJcmVwb3J0QWJ1c2VWaWV3LnJlZ2lzdGVyS2V5UHJlc3NM aXN0ZW5lck9uQWJ1c2VEZXNjcmlwdGlvblRleHRBcmVhKGluc3RhbmNlLnZhbGlk YXRlKTsKCQlyZXBvcnRBYnVzZVZpZXcucmVnaXN0ZXJLZXlQcmVzc0xpc3RlbmVy T25BYnVzZURlc2NyaXB0aW9uVGV4dEFyZWEoY2hhckNvdW50ZXIuY291bnQpOwoJ fQoKCWZ1bmN0aW9uIGlzRGlydHkoKSB7CgkJcmV0dXJuIHJlcG9ydEFidXNlVmll dy5nZXRBYnVzZVJlYXNvbigpICE9PSAiIiB8fCByZXBvcnRBYnVzZVZpZXcuZ2V0 UmF3QWJ1c2VEZXNjcmlwdGlvbigpICE9PSAiIiB8fCByZXBvcnRBYnVzZVZpZXcu Z2V0QWJ1c2VFbWFpbCgpICE9PSAiIjsKCX0KCglmdW5jdGlvbiBpc1ZhbGlkKCkg ewoJCXJldHVybiBpc0FidXNlUmVhc29uU2VsZWN0ZWQoKSAmJiBpc0VtYWlsVmFs aWQoKSAmJiBpc0FidXNlRGVzY3JpcHRpb25WYWxpZCgpOwoJfQoKCWZ1bmN0aW9u IGlzQWJ1c2VSZWFzb25TZWxlY3RlZCgpIHsKCQlyZXR1cm4gcmVwb3J0QWJ1c2VW aWV3LmdldEFidXNlUmVhc29uKCkgIT09ICIiOwoJfQoKCWZ1bmN0aW9uIGlzQWJ1 c2VEZXNjcmlwdGlvblZhbGlkKCkgewoJCWlmIChyZXBvcnRBYnVzZVZpZXcuZ2V0 QWJ1c2VSZWFzb24oKSAhPT0gIk90aGVyIiAmJiByZXBvcnRBYnVzZVZpZXcuZ2V0 QWJ1c2VSZWFzb24oKSAhPT0gIkxlZ2FsIGlzc3VlIiApIHsKCQkJcmV0dXJuIHRy dWU7CgkJfQoJCWVsc2UgewoJCQlyZXR1cm4gdHJpbShyZXBvcnRBYnVzZVZpZXcu Z2V0UmF3QWJ1c2VEZXNjcmlwdGlvbigpKS5sZW5ndGggPiAwOwoJCX0KCX0KCglm dW5jdGlvbiBwcm9jZXNzUmVzcG9uc2UoKSB7CgkJc2hvd1RoYW5rWW91QXJlYSgp OwoJCXJlcG9ydEFidXNlVmlldy5kaXNhYmxlT3BlbkFidXNlQm94QnV0dG9uKGNv bW1lbnRLZXkpOwoJfQoKCWZ1bmN0aW9uIGhhbmRsZUVycm9yKCkgewoJCWVycm9y SGFzT2NjdXJlZCA9IHRydWU7CgkJcmVwb3J0QWJ1c2VWaWV3LmhpZGVQcm9ncmVz c0FyZWEoKTsKCQlyZXBvcnRBYnVzZVZpZXcuc2hvd1BsdWNrRXJyb3JBcmVhKCk7 Cgl9CgoJLy8gVE9ETyBwdWxsIG91dCBpbnRvIGEgdXRpbCBmaWxlIChlLmcuIDEw dXRpbCkKCWZ1bmN0aW9uIGlzRW1haWxWYWxpZCgpIHsKCQl2YXIgdmFsaWQgPSBm YWxzZTsKCgkJdmFyIGVtYWlsID0gdHJpbShyZXBvcnRBYnVzZVZpZXcuZ2V0QWJ1 c2VFbWFpbCgpKTsKCQl2YXIgZmlsdGVyICA9IC9eKFthLXpBLVowLTlfXC5cLV0p K1xAKChbYS16QS1aMC05XC1dKStcLikrKFthLXpBLVowLTldezIsNH0pKyQvOwoK CQlyZXR1cm4gZW1haWwubGVuZ3RoID09PSAwIHx8IGZpbHRlci50ZXN0KGVtYWls KTsKCX0KCgoJZnVuY3Rpb24gcmVzZXRWaWV3KCkgewoJCXJlcG9ydEFidXNlVmll dy5oaWRlRW1haWxJbmZvKCk7CgkJcmVwb3J0QWJ1c2VWaWV3LmhpZGVMb2dpbklu Zm8oKTsKCQlyZXBvcnRBYnVzZVZpZXcuaGlkZVByb2dyZXNzQXJlYSgpOwoJCXJl cG9ydEFidXNlVmlldy5oaWRlQ2xvc2VDb25maXJtYXRpb25BcmVhKCk7CgkJcmVw b3J0QWJ1c2VWaWV3LmhpZGVUaGFua1lvdUFyZWEoKTsKCQlyZXBvcnRBYnVzZVZp ZXcuaGlkZVBsdWNrRXJyb3JBcmVhKCk7CgoJCXJlcG9ydEFidXNlVmlldy5kaXNh YmxlU3VibWl0QnV0dG9uKCk7CgkJcmVwb3J0QWJ1c2VWaWV3LnJlc2V0QWJ1c2VS ZWFzb24oKTsKCQlyZXBvcnRBYnVzZVZpZXcuY2xlYXJBYnVzZURlc2NyaXB0aW9u KCk7CgkJcmVwb3J0QWJ1c2VWaWV3LmNsZWFyQWJ1c2VFbWFpbCgpOwoJCXJlcG9y dEFidXNlVmlldy5zZXRBYnVzZURlc2NyaXB0aW9uT3B0aW9uYWwoKTsKCgkJcmVw b3J0QWJ1c2VWaWV3LnNob3dFZGl0QXJlYSgpOwoJCXJlcG9ydEFidXNlVmlldy5z aG93Q2xvc2VCdXR0b24oKTsKCX0KCglmdW5jdGlvbiBzaG93UHJvZ3Jlc3NBcmVh KCkgewoJCXJlcG9ydEFidXNlVmlldy5oaWRlRWRpdEFyZWEoKTsKCQlyZXBvcnRB YnVzZVZpZXcuc2hvd1Byb2dyZXNzQXJlYSgpOwoJfQoKCWZ1bmN0aW9uIHNob3dF ZGl0QXJlYSgpIHsKCQlyZXBvcnRBYnVzZVZpZXcuaGlkZUNsb3NlQ29uZmlybWF0 aW9uQXJlYSgpOwoJCXJlcG9ydEFidXNlVmlldy5zaG93Q2xvc2VCdXR0b24oKTsK CQlyZXBvcnRBYnVzZVZpZXcuc2hvd0VkaXRBcmVhKCk7Cgl9CgoJZnVuY3Rpb24g c2hvd0Nsb3NlQ29uZmlybWF0aW9uQXJlYSgpIHsKCQlyZXBvcnRBYnVzZVZpZXcu aGlkZUNsb3NlQnV0dG9uKCk7CgkJcmVwb3J0QWJ1c2VWaWV3LmhpZGVFZGl0QXJl YSgpOwoJCXJlcG9ydEFidXNlVmlldy5zaG93Q2xvc2VDb25maXJtYXRpb25BcmVh KCk7Cgl9CgoJZnVuY3Rpb24gc2hvd1RoYW5rWW91QXJlYSgpIHsKCQlyZXBvcnRB YnVzZVZpZXcuaGlkZVByb2dyZXNzQXJlYSgpOwoJCXJlcG9ydEFidXNlVmlldy5o aWRlQ2xvc2VCdXR0b24oKTsKCQlyZXBvcnRBYnVzZVZpZXcuc2hvd1RoYW5rWW91 QXJlYSgpOwoJfQoKCXRoaXMub3BlbkFidXNlQm94ID0gZnVuY3Rpb24gKF9jb21t ZW50S2V5KSB7CgkJY29tbWVudEtleSA9IF9jb21tZW50S2V5OwoKCQlyZXNldEFi dXNlQm94KCk7CgoJCWlmIChhdXRoZW50aWNhdGlvblNlcnZpY2UuaXNVc2VyTG9n Z2VkSW50b1BsdWNrKCkpIHsKCQkJcmVwb3J0QWJ1c2VWaWV3LnNldFVzZXJOYW1l KGF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRMb2dnZWRJblVzZXJOYW1lKCkpOwoJ CQlyZXBvcnRBYnVzZVZpZXcuc2hvd0xvZ2luSW5mbygpOwoJCX0gZWxzZSB7CgkJ CXJlcG9ydEFidXNlVmlldy5zaG93RW1haWxJbmZvKCk7CgkJfQoKCQlyZXBvcnRB YnVzZVZpZXcuc2hvd0FidXNlQm94KCk7Cgl9OwoKCXRoaXMuY2xvc2VBYnVzZUJv eCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAoIWlzRGlydHkoKSB8fCBlcnJvckhhc09j Y3VyZWQpIHsKCQkJaW5zdGFuY2UuY2xvc2VDb25maXJtKCk7CgkJCXJldHVybjsK CQl9CgoJCXNob3dDbG9zZUNvbmZpcm1hdGlvbkFyZWEoKTsKCX07CgoJdGhpcy5j bG9zZUNvbmZpcm0gPSBmdW5jdGlvbiAoKSB7CgkJcmVwb3J0QWJ1c2VWaWV3Lmhp ZGVBYnVzZUJveCgpOwoJfTsKCgl0aGlzLmNhbmNlbENsb3NlID0gZnVuY3Rpb24g KCkgewoJCXNob3dFZGl0QXJlYSgpOwoJfTsKCgl0aGlzLnN1Ym1pdEFidXNlUmVw b3J0ID0gZnVuY3Rpb24gKCkgewoJCXNob3dQcm9ncmVzc0FyZWEoKTsKCgkJdmFy IGFidXNlUmVwb3J0ID0gewoJCQljb21tZW50S2V5IDogY29tbWVudEtleSwKCQkJ cmVhc29uIDogcmVwb3J0QWJ1c2VWaWV3LmdldEFidXNlUmVhc29uKCksCgkJCWRl c2NyaXB0aW9uIDogcmVwb3J0QWJ1c2VWaWV3LmdldEFidXNlRGVzY3JpcHRpb24o KSwKCQkJZW1haWwgOiByZXBvcnRBYnVzZVZpZXcuZ2V0QWJ1c2VFbWFpbCgpCgkJ fTsKCgkJdmFyIGNhbGxiYWNrID0gcHJvY2Vzc1Jlc3BvbnNlOwoJCWNhbGxiYWNr LmVycm9ySGFuZGxlciA9IGhhbmRsZUVycm9yOwoKCQlyZXBvcnRBYnVzZVNlcnZp Y2UucmVwb3J0QWJ1c2UoYWJ1c2VSZXBvcnQsIGNhbGxiYWNrKTsKCX07CgoJdGhp cy5jaGFuZ2VBYnVzZVJlYXNvbiA9IGZ1bmN0aW9uICgpIHsKCQlpZiAocmVwb3J0 QWJ1c2VWaWV3LmdldEFidXNlUmVhc29uKCkgPT09ICJPdGhlciIgfHwgcmVwb3J0 QWJ1c2VWaWV3LmdldEFidXNlUmVhc29uKCkgPT09ICJMZWdhbCBpc3N1ZSIgKSB7 CgkJCXJlcG9ydEFidXNlVmlldy5zZXRBYnVzZURlc2NyaXB0aW9uTWFuZGF0b3J5 KCk7CgkJfQoJCWVsc2UgewoJCQlyZXBvcnRBYnVzZVZpZXcuc2V0QWJ1c2VEZXNj cmlwdGlvbk9wdGlvbmFsKCk7CgkJfQoJfTsKCgl0aGlzLnZhbGlkYXRlID0gZnVu Y3Rpb24gKCkgewoJCWlmIChpc1ZhbGlkKCkpIHsKCQkJcmVwb3J0QWJ1c2VWaWV3 LmVuYWJsZVN1Ym1pdEJ1dHRvbigpOwoJCX0KCQllbHNlIHsKCQkJcmVwb3J0QWJ1 c2VWaWV3LmRpc2FibGVTdWJtaXRCdXR0b24oKTsKCQl9Cgl9OwoKCXJlcG9ydEFi dXNlVmlldy5hZGRMb2FkRXZlbnQob25Mb2FkKTsKfTsKCi8qIC0tLS0gUGx1Y2tB YnVzZUJveFZpZXcuanMgLS0tLSAqLwoKZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNr LlBsdWNrQWJ1c2VCb3hWaWV3ID0gZnVuY3Rpb24gKCkgewoKCXZhciBkaWFsb2dC b3ggPSBuZXcgZ3VhcmRpYW4ucjIuRGlhbG9nQm94KCk7CgoJZnVuY3Rpb24gcG9z aXRpb25BYnVzZUJveCgpIHsKCQl2YXIgYWJ1c2VCb3ggPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZCgnYWJ1c2UtYm94Jyk7CgkJdmFyIGFidXNlQm94V3JhcHBlciA9 IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhYnVzZS1ib3gtd3JhcHBlcicpOwoJ CWRpYWxvZ0JveC5wb3NpdGlvbkRpYWxvZ0JveChhYnVzZUJveCwgYWJ1c2VCb3hX cmFwcGVyKTsKCX0KCgl0aGlzLmFkZExvYWRFdmVudCA9IGZ1bmN0aW9uIChjYWxs YmFjaykgewoJCWFkZEV2ZW50KGRvY3VtZW50LCAibG9hZCIsIGNhbGxiYWNrKTsK CX07CgoJdGhpcy5yZWdpc3RlckNsaWNrTGlzdGVuZXJPbk9wZW5BYnVzZUJveEJ1 dHRvbiA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewoJCXZhciBteUNhbGxiYWNrID0g ZnVuY3Rpb24gKGV2ZW50KSB7CgkJCXZhciB0YXJnZXQgPSBndWFyZGlhbi5yMi5l dmVudC5nZXRFbGVtZW50KGV2ZW50KTsKCQkJaWYgKHRhcmdldC5jbGFzc05hbWUg PT09ICJyZXBvcnQtYWJ1c2UiKSB7CgkJCQl2YXIgY29tbWVudEtleSA9IHRhcmdl dC5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQ7CgkJCQljYWxsYmFjayhjb21tZW50 S2V5KTsKCQkJfQoJCX07CgoJCWFkZEV2ZW50KCJwbHVjay1jb21tZW50LWJsb2Nr IiwgImNsaWNrIiwgbXlDYWxsYmFjayk7CiAgICAgICAgYWRkRXZlbnQoImNoYWxr Ym9hcmQtZGVzY3JpcHRpb24iLCAiY2xpY2siLCBteUNhbGxiYWNrKTsgICAgICAg IAoJfTsKCgl0aGlzLnJlZ2lzdGVyQ2xpY2tMaXN0ZW5lck9uQ2xvc2VBYnVzZUJv eEJ1dHRvbiA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewoJCWFkZEV2ZW50KCJhYnVz ZS1ib3gtY2xvc2UiLCAiY2xpY2siLCBjYWxsYmFjayk7Cgl9OwoKCXRoaXMucmVn aXN0ZXJDbGlja0xpc3RlbmVyT25DbG9zZUNvbmZpcm1CdXR0b24gPSBmdW5jdGlv biAoY2FsbGJhY2spIHsKCQlhZGRFdmVudCgiYWJ1c2UtY2xvc2UtY29uZmlybSIs ICJjbGljayIsIGNhbGxiYWNrKTsKCQlhZGRFdmVudCgiYWJ1c2UtY2xvc2UtdGhh bmsteW91IiwgImNsaWNrIiwgY2FsbGJhY2spOwoJfTsKCgl0aGlzLnJlZ2lzdGVy Q2xpY2tMaXN0ZW5lck9uU3VibWl0QWJ1c2VSZXBvcnRCdXR0b24gPSBmdW5jdGlv biAoY2FsbGJhY2spIHsKCQlhZGRFdmVudCgiYWJ1c2Utc3VibWl0IiwgImNsaWNr IiwgY2FsbGJhY2spOwoJfTsKCgl0aGlzLnJlZ2lzdGVyQ2xpY2tMaXN0ZW5lck9u Q2FuY2VsQ2xvc2VCdXR0b24gPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKCQlhZGRF dmVudCgiYWJ1c2UtY2xvc2UtY2FuY2VsIiwgImNsaWNrIiwgY2FsbGJhY2spOwoJ fTsKCgl0aGlzLnJlZ2lzdGVyQ2hhbmdlTGlzdGVuZXJPbkFidXNlUmVhc29uTGlz dCA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewoJCWFkZEV2ZW50KCJhYnVzZS1yZWFz b24iLCAiY2hhbmdlIiwgY2FsbGJhY2spOwoJfTsKCgl0aGlzLnJlZ2lzdGVyS2V5 UHJlc3NMaXN0ZW5lck9uQWJ1c2VFbWFpbCA9IGZ1bmN0aW9uIChjYWxsYmFjaykg ewoJCWFkZEV2ZW50KCJhYnVzZS1lbWFpbCIsICJrZXl1cCIsIGNhbGxiYWNrKTsK CX07CgoJdGhpcy5yZWdpc3RlcktleVByZXNzTGlzdGVuZXJPbkFidXNlRGVzY3Jp cHRpb25UZXh0QXJlYSA9IGZ1bmN0aW9uIChjYWxsYmFjaykgewoJCWFkZEV2ZW50 KCJhYnVzZS1kZXNjcmlwdGlvbiIsICJrZXl1cCIsIGNhbGxiYWNrKTsKCX07CgoJ dGhpcy5zaG93QWJ1c2VCb3ggPSBmdW5jdGlvbiAoKSB7CgkJdmFyIGFidXNlQm94 ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FidXNlLWJveCcpOwoJCXZhciBh YnVzZUJveFdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWJ1c2Ut Ym94LXdyYXBwZXInKTsKCQlkaWFsb2dCb3guc2hvd0RpYWxvZ0JveChhYnVzZUJv eCwgYWJ1c2VCb3hXcmFwcGVyKTsKCX07CgoJdGhpcy5oaWRlQWJ1c2VCb3ggPSBm dW5jdGlvbiAoKSB7CgkJYWJ1c2VCb3hXcmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImFidXNlLWJveC13cmFwcGVyIik7CgkJYWJ1c2VCb3hXcmFwcGVy LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CgkJZGlhbG9nQm94LmhpZGVEaWFsb2dC b3goYWJ1c2VCb3hXcmFwcGVyKTsKCX07CgoJdGhpcy5zZXRVc2VyTmFtZSA9IGZ1 bmN0aW9uICh1c2VyTmFtZSkgewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh YnVzZS11c2VyLW5hbWUiKS5pbm5lckhUTUwgPSB1c2VyTmFtZTsKCX07CgoJdGhp cy5zaG93RW1haWxJbmZvID0gZnVuY3Rpb24gKCkgewoJCWRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCJhYnVzZS1lbWFpbC1pbmZvIikuc3R5bGUuZGlzcGxheSA9ICJi bG9jayI7Cgl9OwoKCXRoaXMuaGlkZUVtYWlsSW5mbyA9IGZ1bmN0aW9uICgpIHsK CQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWJ1c2UtZW1haWwtaW5mbyIpLnN0 eWxlLmRpc3BsYXkgPSAibm9uZSI7Cgl9OwoKCXRoaXMuc2hvd0xvZ2luSW5mbyA9 IGZ1bmN0aW9uICgpIHsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWJ1c2Ut bG9naW4taW5mbyIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJfTsKCgl0aGlz LmhpZGVMb2dpbkluZm8gPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImFidXNlLWxvZ2luLWluZm8iKS5zdHlsZS5kaXNwbGF5ID0gIm5v bmUiOwoJfTsKCgl0aGlzLmdldEFidXNlUmVhc29uID0gZnVuY3Rpb24gKCkgewoJ CXJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWJ1c2UtcmVhc29uIiku dmFsdWU7Cgl9OwoKCXRoaXMucmVzZXRBYnVzZVJlYXNvbiA9IGZ1bmN0aW9uICgp IHsKCQkvL3NldFRpbWVvdXQgaXMgYSBmaXggc28gdGhhdCByZXNldHRpbmcgd29y a3MgY29ycmVjdGx5IGluIG9wZXJhCgkJc2V0VGltZW91dCgKCQlmdW5jdGlvbiAo KSB7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhYnVzZS1yZWFzb24iKS52 YWx1ZSA9ICIiOwoJCX0sIDApOwoJfTsKCgl0aGlzLmdldEFidXNlRGVzY3JpcHRp b24gPSBmdW5jdGlvbiAoKSB7CgkJcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRC eUlkKCJhYnVzZS1kZXNjcmlwdGlvbiIpLnZhbHVlOwoJfTsKCgl0aGlzLmdldFJh d0FidXNlRGVzY3JpcHRpb24gPSBmdW5jdGlvbiAoKSB7CgkJcmV0dXJuIGRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJhYnVzZS1kZXNjcmlwdGlvbiIpLnZhbHVlOwoJ fTsKCgl0aGlzLnNldEFidXNlRGVzY3JpcHRpb24gPSBmdW5jdGlvbiAoYWJ1c2VE ZXNjcmlwdGlvbikgewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhYnVzZS1k ZXNjcmlwdGlvbiIpLnZhbHVlID0gYWJ1c2VEZXNjcmlwdGlvbjsKCX07CgoJdGhp cy5jbGVhckFidXNlRGVzY3JpcHRpb24gPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWRlc2NyaXB0aW9uIikudmFsdWUgPSAi IjsKCX07CgoJdGhpcy5zZXRBYnVzZURlc2NyaXB0aW9uT3B0aW9uYWwgPSBmdW5j dGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWRlc2Ny aXB0aW9uLW9wdGlvbmFsIikuc3R5bGUuZGlzcGxheSA9ICJpbmxpbmUiOwoJfTsK Cgl0aGlzLnNldEFidXNlRGVzY3JpcHRpb25NYW5kYXRvcnkgPSBmdW5jdGlvbiAo KSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWRlc2NyaXB0aW9u LW9wdGlvbmFsIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCX07CgoJdGhpcy5n ZXRBYnVzZUVtYWlsID0gZnVuY3Rpb24gKCkgewoJCXJldHVybiBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgiYWJ1c2UtZW1haWwiKS52YWx1ZTsKCX07CgoJdGhpcy5j bGVhckFidXNlRW1haWwgPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImFidXNlLWVtYWlsIikudmFsdWUgPSAiIjsKCX07CgoJdGhpcy5z aG93RWRpdEFyZWEgPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoImFidXNlLWJveC1lZGl0LWFyZWEiKS5zdHlsZS5kaXNwbGF5ID0gImJs b2NrIjsKCX07CgoJdGhpcy5oaWRlRWRpdEFyZWEgPSBmdW5jdGlvbiAoKSB7CgkJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWJveC1lZGl0LWFyZWEiKS5z dHlsZS5kaXNwbGF5ID0gIm5vbmUiOwoJfTsKCgl0aGlzLnNob3dQcm9ncmVzc0Fy ZWEgPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFi dXNlLXByb2dyZXNzLWFyZWEiKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCX07 CgoJdGhpcy5oaWRlUHJvZ3Jlc3NBcmVhID0gZnVuY3Rpb24gKCkgewoJCWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJhYnVzZS1wcm9ncmVzcy1hcmVhIikuc3R5bGUu ZGlzcGxheSA9ICJub25lIjsKCX07CgoJdGhpcy5zaG93VGhhbmtZb3VBcmVhID0g ZnVuY3Rpb24gKCkgewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhYnVzZS10 aGFuay15b3UtYXJlYSIpLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoJfTsKCgl0 aGlzLmhpZGVUaGFua1lvdUFyZWEgPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoImFidXNlLXRoYW5rLXlvdS1hcmVhIikuc3R5bGUuZGlz cGxheSA9ICJub25lIjsKCX07CgoJdGhpcy5zaG93Q2xvc2VDb25maXJtYXRpb25B cmVhID0gZnVuY3Rpb24gKCkgewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh YnVzZS1jbG9zZS1jb25maXJtYXRpb24tYXJlYSIpLnN0eWxlLmRpc3BsYXkgPSAi YmxvY2siOwoJfTsKCgl0aGlzLmhpZGVDbG9zZUNvbmZpcm1hdGlvbkFyZWEgPSBm dW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWNs b3NlLWNvbmZpcm1hdGlvbi1hcmVhIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsK CX07CgoJdGhpcy5zaG93Q2xvc2VCdXR0b24gPSBmdW5jdGlvbiAoKSB7CgkJZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLWJveC1jbG9zZSIpLnN0eWxlLmRp c3BsYXkgPSAiYmxvY2siOwoJfTsKCgl0aGlzLmhpZGVDbG9zZUJ1dHRvbiA9IGZ1 bmN0aW9uICgpIHsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWJ1c2UtYm94 LWNsb3NlIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCX07CgoJdGhpcy5kaXNh YmxlT3BlbkFidXNlQm94QnV0dG9uID0gZnVuY3Rpb24gKGNvbW1lbnRLZXkpIHsK CQl2YXIgY29tbWVudFVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29tbWVu dEtleSk7CgkJZ3VhcmRpYW4ucjIuZG9tLmVsZW1lbnQuZ2V0RWxlbWVudHNCeUNz c1NlbGVjdG9yKCcuYWJ1c2UtcmVwb3J0JywgY29tbWVudFVsKVswXS5pbm5lckhU TUwgPSAnUmVwb3J0IGFidXNlJzsKCX07CgoJdGhpcy5kaXNhYmxlU3VibWl0QnV0 dG9uID0gZnVuY3Rpb24gKCkgewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJh YnVzZS1zdWJtaXQiKS5kaXNhYmxlZCA9IHRydWU7Cgl9OwoKCXRoaXMuZW5hYmxl U3VibWl0QnV0dG9uID0gZnVuY3Rpb24gKCkgewoJCWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJhYnVzZS1zdWJtaXQiKS5kaXNhYmxlZCA9IGZhbHNlOwoJfTsKCgl0 aGlzLnNldENoYXJzTGVmdCA9IGZ1bmN0aW9uIChjaGFyc0xlZnQpIHsKCQlkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgiYWJ1c2UtY2hhcnMtbGVmdCIpLmlubmVySFRN TCA9IGNoYXJzTGVmdDsKCX07CgoJdGhpcy5zaG93UGx1Y2tFcnJvckFyZWEgPSBm dW5jdGlvbiAoKSB7CgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLXBs dWNrLWVycm9yLWFyZWEiKS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKCX07CgoJ dGhpcy5oaWRlUGx1Y2tFcnJvckFyZWEgPSBmdW5jdGlvbiAoKSB7CgkJZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoImFidXNlLXBsdWNrLWVycm9yLWFyZWEiKS5zdHls ZS5kaXNwbGF5ID0gIm5vbmUiOwoJfTsKCgl0aGlzLmluaXQgPSBmdW5jdGlvbiAo KSB7Cgl9Owp9OwoKLyogLS0tLSBQbHVja1JlY29tbWVuZGF0aW9uQ29udHJvbGxl ci5qcyAtLS0tICovCmd1YXJkaWFuLnNlcnZlclNpZGVQbHVjay5QbHVja1JlY29t bWVuZGF0aW9uQ29udHJvbGxlciA9IGZ1bmN0aW9uIChyZWNvbW1lbmRhdGlvblNl cnZpY2UsIHJlY29tbWVuZGF0aW9uVmlldykgewoKCXZhciBpbnN0YW5jZSA9IHRo aXM7CgoJdGhpcy5vbkNsaWNrUmVjb21tZW5kYXRpb24gPSBmdW5jdGlvbiAoY29t bWVudEtleSkgewoJCXJlY29tbWVuZGF0aW9uVmlldy5vbkNsaWNrKGNvbW1lbnRL ZXksIGluc3RhbmNlLnJlY29tbWVuZCk7Cgl9OwoKCXRoaXMucHJvY2Vzc1Jlc3Bv bnNlID0gZnVuY3Rpb24gKGNvbW1lbnQsIGNhbGxiYWNrKSB7CgkJY2FsbGJhY2so Y29tbWVudC5OdW1iZXJPZlJlY29tbWVuZGF0aW9ucyk7Cgl9OwoKCXRoaXMucmVj b21tZW5kID0gZnVuY3Rpb24gKGNvbW1lbnRLZXksIGNhbGxiYWNrKSB7CgkJdmFy IHJlY29tbWVuZENhbGxiYWNrID0gZnVuY3Rpb24gKGNvbW1lbnQpIHsKCQkJaW5z dGFuY2UucHJvY2Vzc1Jlc3BvbnNlKGNvbW1lbnQsIGNhbGxiYWNrKTsKCQl9OwoJ CXJlY29tbWVuZGF0aW9uU2VydmljZS5yZWNvbW1lbmQoY29tbWVudEtleSwgcmVj b21tZW5kQ2FsbGJhY2spOwoJfTsKfTsKCi8qIC0tLS0gUGx1Y2tSZWNvbW1lbmRh dGlvblNlcnZpY2UuanMgLS0tLSAqLwpndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2su UGx1Y2tSZWNvbW1lbmRhdGlvblNlcnZpY2UgPSBmdW5jdGlvbiAocGx1Y2tPYmpl Y3RGYWN0b3J5LCBwbHVja1NlbmRlcikgewoKCXRoaXMucmVjb21tZW5kID0gZnVu Y3Rpb24gKGNvbW1lbnRJZCwgY2FsbGJhY2spIHsKCQl2YXIgcmVzcG9uc2VDYWxs YmFjayA9IGZ1bmN0aW9uIChyZXNwb25zZUJhdGNoKSB7CgkJCXZhciBmb3JFYWNo RWxlbWVudENhbGxiYWNrID0gZnVuY3Rpb24gKHJlc3BvbnNlKSB7CgkJCQlpZiAo cmVzcG9uc2UuQ29tbWVudCkgewoJCQkJCWNhbGxiYWNrKHJlc3BvbnNlLkNvbW1l bnQpOwoJCQkJfQoJCQl9OwoJCQlmb3JFYWNoRWxlbWVudE9mKHJlc3BvbnNlQmF0 Y2guUmVzcG9uc2VzLCBmb3JFYWNoRWxlbWVudENhbGxiYWNrKTsKCQl9OwoKCQl2 YXIgY29tbWVudFJlY29tbWVuZGF0aW9uID0gcGx1Y2tPYmplY3RGYWN0b3J5Lm5l d1JlY29tbWVuZEFjdGlvbkZvckNvbW1lbnQoY29tbWVudElkKTsKCQl2YXIgY29t bWVudEtleSA9IHBsdWNrT2JqZWN0RmFjdG9yeS5uZXdDb21tZW50S2V5V2l0aG91 dFByZWZpeChjb21tZW50SWQpOwoKCQlwbHVja1NlbmRlci5zdWJtaXQocmVzcG9u c2VDYWxsYmFjaywgY29tbWVudFJlY29tbWVuZGF0aW9uLCBjb21tZW50S2V5KTsK CX07Cn07CgovKiAtLS0tIFBsdWNrUmVjb21tZW5kYXRpb25WaWV3LmpzIC0tLS0g Ki8KZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrUmVjb21tZW5kYXRpb25W aWV3ID0gZnVuY3Rpb24gKCkgewoKCXRoaXMub25DbGljayA9IGZ1bmN0aW9uIChj b21tZW50S2V5LCBjYWxsYmFjaykgewoJCXZhciB0YXJnZXQgPSBkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgicGx1Y2stc2luZ2xlLWNvbW1lbnQtIiArIGNvbW1lbnRL ZXkpOwoJCWlmICh0YXJnZXQuY2xhc3NOYW1lID09PSAicmVjb21tZW5kIikgewoJ CQl2YXIgdXBkYXRlTnVtYmVyT2ZSZWNvbW1lbmRhdGlvbnMgPSBmdW5jdGlvbiAo bnVtYmVyUmVjb21tZW5kYXRpb25zKSB7CgkJCQlkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgicGx1Y2stc2luZ2xlLWNvbW1lbnQtbm8tIiArIGNvbW1lbnRLZXkpLmlu bmVySFRNTCA9ICcoJyArIG51bWJlclJlY29tbWVuZGF0aW9ucyArICcpJzsKCQkJ CWRpc2FibGVBbmNob3JUYWcoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsdWNr LXNpbmdsZS1jb21tZW50LSIgKyBjb21tZW50S2V5KSk7CgkJCX07CgkJCWNhbGxi YWNrKGNvbW1lbnRLZXksIHVwZGF0ZU51bWJlck9mUmVjb21tZW5kYXRpb25zKTsK CQl9Cgl9OwoKCWZ1bmN0aW9uIGRpc2FibGVBbmNob3JUYWcoYW5jaG9yVGFnRWxl bWVudCkgewoJCXZhciBhbmNob3JUYWdUZXh0ID0gYW5jaG9yVGFnRWxlbWVudC5p bm5lckhUTUw7CgkJdmFyIGFuY2hvclRhZ1BhcmVudCA9IGFuY2hvclRhZ0VsZW1l bnQucGFyZW50Tm9kZTsKCgkJYW5jaG9yVGFnUGFyZW50LnJlcGxhY2VDaGlsZChk b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShhbmNob3JUYWdUZXh0KSwgYW5jaG9yVGFn RWxlbWVudCk7Cgl9Cn07CgoKdmFyIHBsdWNrT2JqZWN0RmFjdG9yeSA9IG5ldyBn dWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tPYmplY3RGYWN0b3J5KGNvbmZp Zyk7CnZhciBlcnJvck1lc3NhZ2VWaWV3ID0gbmV3IGd1YXJkaWFuLnNlcnZlclNp ZGVQbHVjay5FcnJvck1lc3NhZ2VWaWV3KCk7CnZhciBwbHVja1NlbmRlciA9IG5l dyBndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tTZW5kZXIocGx1Y2tPYmpl Y3RGYWN0b3J5LCBzZXJ2ZXJVcmwsIGVycm9yTWVzc2FnZVZpZXcpOwoKdmFyIGNv b2tpZURvbWFpbiA9ICIuIitkb2N1bWVudC5kb21haW47CnZhciB1cmxTdGFjayA9 IG5ldyBVcmxTdGFjayhjb29raWVEb21haW4pOwp2YXIgcGx1Y2tDb29raWVIYW5k bGVyID0gbmV3IGd1YXJkaWFuLnNlcnZlclNpZGVQbHVjay5QbHVja0hhc2hDb29r aWVIYW5kbGVyKCk7CnZhciBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBuZXcgZ3Vh cmRpYW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrQXV0aGVudGljYXRpb25TZXJ2aWNl KGNvbmZpZywgcGx1Y2tDb29raWVIYW5kbGVyLCB1cmxTdGFjaywgZmFsc2UpOwoK dmFyIHJlcG9ydEFidXNlU2VydmljZSA9IG5ldyBndWFyZGlhbi5zZXJ2ZXJTaWRl UGx1Y2suUGx1Y2tSZXBvcnRBYnVzZVNlcnZpY2UoY29uZmlnKTsKCnZhciByZXBv cnRBYnVzZVZpZXcgPSBuZXcgZ3VhcmRpYW4uc2VydmVyU2lkZVBsdWNrLlBsdWNr QWJ1c2VCb3hWaWV3KCk7CnZhciBhYnVzZUJveENoYXJDb3VudGVyID0gbmV3IGd1 YXJkaWFuLnNlcnZlclNpZGVQbHVjay5DaGFyQ291bnRlcigzMDApOwp2YXIgcGx1 Y2tBYnVzZUJveENvbnRyb2xsZXIgPSBuZXcgZ3VhcmRpYW4uc2VydmVyU2lkZVBs dWNrLlBsdWNrQWJ1c2VCb3hDb250cm9sbGVyKGF1dGhlbnRpY2F0aW9uU2Vydmlj ZSwgcmVwb3J0QWJ1c2VTZXJ2aWNlLCByZXBvcnRBYnVzZVZpZXcsIGFidXNlQm94 Q2hhckNvdW50ZXIpOwoKdmFyIHJlY29tbWVuZFNlcnZpY2UgPSBuZXcgZ3VhcmRp YW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrUmVjb21tZW5kYXRpb25TZXJ2aWNlKHBs dWNrT2JqZWN0RmFjdG9yeSwgcGx1Y2tTZW5kZXIpOwp2YXIgcmVjb21tZW5kVmll dyA9IG5ldyBndWFyZGlhbi5zZXJ2ZXJTaWRlUGx1Y2suUGx1Y2tSZWNvbW1lbmRh dGlvblZpZXcoKTsKdmFyIHJlY29tbWVuZENvbnRyb2xsZXIgPSBuZXcgZ3VhcmRp YW4uc2VydmVyU2lkZVBsdWNrLlBsdWNrUmVjb21tZW5kYXRpb25Db250cm9sbGVy KHJlY29tbWVuZFNlcnZpY2UsIHJlY29tbWVuZFZpZXcpOwoKZnVuY3Rpb24gb25D bGlja1JlY29tbWVuZGF0aW9uKGNvbW1lbnRLZXkpIHsKCXJlY29tbWVuZENvbnRy b2xsZXIub25DbGlja1JlY29tbWVuZGF0aW9uKGNvbW1lbnRLZXkpOwp9Cg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=c0c68ba3-84c0-4897-a07a-92f0395807a6.Small.jpg Content-Type: image/jpeg; name=c0c68ba3-84c0-4897-a07a-92f0395807a6.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/0/0/c0c68ba3-84c0-4897-a07a-92f0395807a6.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7 KqnrGqafpNk15qV3FbQA43Oep9AOpPsKr+J9as9A0efU74/uYl4VfvOx6KvuTXzX 4y8Q6l4g1RNU1CQMI5MxWwYhI15wi++cZ/vYrmqYyjRr06VR/E0vRX36/LTc8XOc 4hl1J8qvNp2X+fkep+IPiwAXj0HTlcg4Wa6OFPuFHP5kVw918T/Hz3Zii1CwjkPS KNYxkeuGUtXOWc7zpKzxmJo5DHjOc471QiKTXCCNckziVHxwyjncD3/u/pX1mbZZ haUKHsqcpc8lFtSaaT6v0+R+V0+Kc2r1Kjq1eWyvZLT8P82d/a/FbxfYXEQvDp+o eacbGt/LEYHLNuU8noBx1IruvDPxb0HULmKz1hP7GupWCRGWQNDI3oH42/8AAgB7 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 ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=738b9740-1c01-42a1-bd16-ea4aa1bdb2fa.Small.jpg Content-Type: image/jpeg; name=738b9740-1c01-42a1-bd16-ea4aa1bdb2fa.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/3/13/738b9740-1c01-42a1-bd16-ea4aa1bdb2fa.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5 X8Tf8jNq2f8An/n/APRjV1fgLwbp2paNNretTXBiVwILSEhDMMkElz90cdq5TxN/ yM2rf9f8/wD6Mau78B6mW0C3tJt3lIrIq+uGJz79awxE5QhdHXg6calS0jtvCHgX wvcXCypoVnIuTuW4kaUY9snFZXxs+F2n6Vpl14h8OQC2gtdrzW6hgjRk4LKGJKsp IyMkEcjoRXoPgPVrHTIYJ7ia2t4GOx5JSAMnjv8AyrofiLqEHiLwLrekwXCTXz6X O2BAVVVCbhz0PHftkV50K9RTV2exXwlJ02lHofGNFIpyoI7ilr2D5wK9J+E4B0C7 yAf9Nbt/0zjrzavSvhP/AMgC7/6/W/8ARcdAHC+Jv+Rm1b/r/n/9GNXe/DPRta1f RYXtrHdDG0myZ5UQYGM9TnqSPTrXBeJv+Rl1f/r/ALj/ANGNXsHwq1aSystMisFM sTxAGIj72fvdffPtXJjJctPY9DLY3qt+RrRSacfD+ownTGe6AWB4FXdiTdjODkqR znGK9Q8D+c3hK3ttRsmjeW3MLB5PnZMEcqO204yea4Tx5oqaJryanZeYYtaQy3Fo 7f6twQGKEn36duR0rrPDOU0ZjDHbxXBRjCAxZ2bB25AJOAcf/Xryua6PoXZq58dz RrFPLEv3UdkH0BIpleg6v8GPihY27Xw8JX+pWZBcXenr58cg7kBfm9eorz91ZHaN 1ZHQlWVhgqR1BHY176kpbHx7TW4lelfCf/kAXf8A1+t/6LjrzWvSvhP/AMgC7/6/ W/8ARcdMR6t4g+HPgXSLu/ubvRGl1M3MjrHK9xkksSGAbCP6kU7wHbXes68lzcyg 2mmqI4YVjVdjemQB0AHHHXkCuu1AaZHqrXuuBzDNdSLGhc+bclSSII/7pbqWGAiB mJzitbwtDcy2z3V8tslzKxd0towkSL0VFXsAuAO5xk5JJr572lSUW5vc96hCMXoj etfh9pfjyxNrfyNDe2kZktJScplj8ysvdThemCMcVwp0SXwtq0uky2QsbiJxvXcS Mdip7g9Qa9HaK+gs7efTppYp4cyjyT+8KjrtB4YjrtOQQCODgjV1BrHx5YW9lqK2 1r4kSIvYzpxDfoOSIyec9zGfmQ5PIyTUOSpH2a+JfiWsRKjU974X+Bo/BHUkv9F1 PTd6yTade52Yx+7lUSL+OWcA+2K4z46/BTw18RlupYoYNL8Qk/6NqSRYZ3HG2fb/ AKxSMcn5geR6E+EeoNpXxOvdHd2tJ9U0zG2RPmSa2kbgr67HP5V6tqV1Hp2qS3Vx KsMIYbpHO1eQODn15x7j3qq9ScaNOpT+JOxwYimlXkuj1PzC8feE9Z8EeK7zw1r0 Kx3lqQd6ZMcyMMrIhIG5COh+o6iut+E//IAu/wDr9b/0XHX0z+0p4B0T4qR6fc6X qn9narpgmQXM9qxjkjb5hC2MFVVsYYA43Nwa+d/Buj3Xh86zol60bXFlqckMjRkl WIRORkA4PXmvYo1HOCclZnBOm47nu3jR4YhZzAwNIb66cAoC6om1TtPYMWIPrsHp Wx4YvFubN1hYMz4xXzv4+8Q6qfHy27XJMSC5jVemB57N29zW74L8W6zFPFEksYXz P7p/xry/q+iPZpVly2sfSmuvYTy29ml59lv4ENxaTIfmiaPCmTH8S/PgjuCax9T1 7w+unS6Z4gikt7lZN8ttbZL284ORLE4+6CTuVgcj88+J6v4q1ePx34dv1lTz3We3 ckHDJvHB59zR4supnsp9WVzHdB9rFScON2OQc/piuSeFc53uZutFuzOv1rxFf3vj fQvEtpfPPf6O67b2aIRfbYM4aOeNc4mxkB1yG6EKQCdG6+IOreIdZup9Siu7y1WW 3G23gLJZq7kNvVckY2Ak4J49xXzhqur30dySJSQybiCTjrg9+9WbfVrrzUuJMSSo 3l7yzKzBTxkqQf1r0aUZKNmxqcL7H1fBfadezw2X9qpFEWBeLymVsDq2HxuJySOl cXr/AMF/GcninWdV8Pwprelardm9tbkzJEyqyIPLZSRypUjPcYPUkVxnh3XNW+xT XX2+4JSVUCNIXUghupbLHG0Y5r2LwL4z1seHYEMkThcAbgeBtHvVRdWnO97nPipx nBJaWP/Z ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=dfc1bc03-ac0a-4e46-aeb1-542e549c046c.Small.jpg Content-Type: image/jpeg; name=dfc1bc03-ac0a-4e46-aeb1-542e549c046c.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/15/14/dfc1bc03-ac0a-4e46-aeb1-542e549c046c.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7 LooooAK8v8aTTQa3cqW2qXJztycHkV6hXn/xGtv+JmJBkF4wePbj+lcuLXuXOnCv 37G58P783mjBGIynIAGMA9q6SuF+G7tFMYTwCrDB9jXdVph5XgiK6tNhRRRWxiFF FVdVuhZWEtwcZUYUepPSlKSim2NJt2QlxfxQzGLazEdSMYFcz4wH2uSKTa2FUjOO KrRXkssoZVMkjPsjXP3mPeuA8ReIdUXxJLam6LrFIyjyyQvBxxXy+Z5yqFLmkm03 bQ9nCYHnnZPVHfeDwIdRXqF3HJPTpXdKyt91gfoa888MXtvqAeO1kK3ezcN4wpPf H0rVhN7pF9FdXDBopDtcq2Rj3/nXXh80gqcZxXNB7tdDKtgpSk03aXbudfRSKwZQ ykEEZBHelr3jygrnvHEhWxgjBxukJ/If/Xroa8R+JvxSs4fiHH4PgtJWktXCSSMC N0jqCAB3UDGT71xY+rGnQbZ04Sm51VY6qyuE061u9Wk+7ZRbYufvTuOB+AP615rb wNNcyXUnJY9TXU6zcnUIIdPgZvsducljwZZD96Q+57DsKzmiUERRjgcV+eZtW+tT jSp/DH8W/wDLY+owdP2acpbv8jV8FKYNTWT0jY/yFd68LalAbZHUORuXd04NcXoi hFBx87n9O39a7zwspZZZSPlXCA+p6n+lfSZThYxoxoPZ7nmY+q+d1F0JfDrX0SPZ XltIgi/1chwVI9Aa16KK+mw9H2NNQve3c8WrU9pJyta5W1O+ttOspLu6kCRIMn1J 9B714N4v0rw14l8anxXqNpF9qVFRAHIU7fuswz8zAcZ9h6VP8SPEurXKOZJlwDhV A+VfoK4Dw/czTzs00jOc9WNfIZrmVTEy9nT0ivvf/APYwWFVN3lqz0CXUEP7uD5V HGcVc0+HdbtdPlYkIXcePmPT+v5VjaPEk93GkgyMgda6L47St4e0fw5ZaXiKGS4k aRSM7yFGCfzNc2FwCVOVaT2R6FSvyyjTXU2tFtJrm4jghAMr52nHCL3Y+wr0Wyto 7S1jt4s7UGMnqT3J9zWP4Fsre28O2lxGpM1zCkksjHJYkZx7AZ6VvV9bl9Dlh7R7 v8EfP4ytzS5Fsgooor0TjP/Z ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=406a98b2-997d-49cf-aa82-26b57e253a2f.Small.jpg Content-Type: image/jpeg; name=406a98b2-997d-49cf-aa82-26b57e253a2f.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/0/10/406a98b2-997d-49cf-aa82-26b57e253a2f.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDH 8YeKpkvri3FxNBFBwgRRiQjr+NW/A3iLWnvJEvoJ0sZSBCzQ4EZPPJ9/f2ri/Flx Nb+KZ4dqrht8RIyH3D/65Fec+JvGGu3OvafqkF81vMDvhWMkJFGrlVXGcYO0k+ue c1zx97Q7JWjBPofYkE4dPkPzfTNSNKeACuceg5rh/AvipNW062lkh8md4x5idQr4 5A/H+YrrElUqXJwBg0r2MWi7vHPQDoTimmQ7ACuQRxxUHnArgZ6dKZ5uwAg54zzz RzEkkknHO3j2qtK4JHQDHb61C9zArENdxAEd3FJ5sTgMrowx2Ip8wWPNfinaaZda d/aumKy3Fj87EnKuBjIz/hXiA0ezGpLKb20+xk5XfLteNTzgg9cZI4Jr2jTfEvh7 UrZtNllWIuMASjCsMdMjgfjXkPjfS5fD+utZS5eAkvBLtyrLnp9R0/KuipSlTd7W McPXU4uEmekfDDXbFbu4sbUfIrL9nMj4d+Md+mcZ9q7648VwWMey7ns45cfcSUvj 8AK+YbF722nkvk3iIkAsV4PpXWabrguYxH9gCycZIYbfrzXJKMnI9CCjNXPYh8Rb WSZrPc6+Z/q5tm1UfsGPOFPTJHGQema43XfiJdQs6i1AdSdyyPllI4PBI5rjfENz e+QdsbMm3nYR/Ssmezn1uO0vnEgdozDOxH32Q4DZ9SpXPuDVci7hNqn0OlufiJqJ RGAC7jgKMAg/lWlp+teLtQtVuYbXCHgbwM/qtYnhHwz5usRQKNuPmkbodvoD2Jr2 20msrC2jtf7Pni2jgeWsmffd3pqhFnLUxkouyPnDCod8EgAH8PQH6ehrrNC1E6rp ZtL0CR7MeZCzjJKE4K1zjTWuwLKVUnjCjP4kn+lM8OXhfWwrjZtV1ZR3OMD616+K cXBo8rD350zvtU0OC/00xrHtLLgAV5zN4f1CKdrYxuJATuc8j8P8a9h01wYEUndn jFSyWMMjZdfmznJ4NeLGVj1r22PILbw3rJfCXchBH3WOa7zRNLuktbe3lkZYYE4j B4JzkkgcZ966I6fEv+rGMfrUkirGGIwMqCB/9ehybC7tuO8J2kEGoXd7O8cUMYC7 2YAAdTk/iK6o63oc6I8OoWzptwCr5H515PdaiNUkkjhRXs7V8AEZDyfxNg9ccClF wUGJLlg3cZ6e3Wvaw2A5qacnY8TEYu1RqKPLjMHwGJA962PC0Qe7+1EEdgT/ADrn YRvlAPTNdZoYxGMcVw1qraselTppO56FpVx8sZLEbecVsCffEN3DAHOK5bTWJhRf VTWxBI2wHjjt2riaOi5o+eUUMeMj9azNdu5ksZynDiNin1wf/rU95GC7cA4I571l avK7QkE5x/jTjuJnL2N6bLSYLeN8Ssm9iMdTzmotzyHcwJY/eIOOaqXKASEDOM46 9h0qzFDvQfvZFxxhSBX1MZe6j52UfeZ//9k= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=d6c0f7cb-8338-46a3-b3cd-598300d07c4c.Small.jpg Content-Type: image/jpeg; name=d6c0f7cb-8338-46a3-b3cd-598300d07c4c.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/6/3/d6c0f7cb-8338-46a3-b3cd-598300d07c4c.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7 Loorhfir8R9N8DacXkha7vHVikKuFCYGS0jHhEAP3jx2zzQB21zMlvbyTyEhI1LN gZOAMmvHPHnx10LStEN9p1zFFazQNs1C6ISOOTnG1Cd8pzj5VX15GDXkPxP/AGnt MvdJS3gu0Rkh3yWdm/mvPNjhTKBsjjyeSGY8EYr488Q6vea5rd3q98yG5upTI+xd qrnoqjsoHAHYAUAfpD4Z+IHixbG11TUZtI1rTr9EeG401XUbSDl13D5hgZIH3eeu Dj1/Try3v7OO6tZVlikGVZTkGvz1/Y1+KcvhzxdF4K1/XPsfhnUmYxmVdwt7kj5d h/g3kYzjqR0yTX1h4Z1DU/Cd/JHaWjajo05ed51bBiOcMqpgZbIJCjtgCgD2Kiqm kaja6pYRXtnKssMqhlYHPBGRVugBGIAJJAA7mvhj9tC91XU77Xb3TJz/AGfbXEVp O6SBvNhX7y5HRBK6ZXnJx/dr7kuQTbyBRklTgbc9vTvXxr+0DoWraj+z9bp4cube ZrbWEt9cigsRahkLMIt2f4VkIBbjcWBPSgDxn9lT4X6V8RfGVxN4lMx0DS1RriGF tr3UshIjhDfwg7WYnPRccZyOw/a4+FvgrwdpVhf+GbE6RqEW2K8tVmaSG5UjHnRl s4IbAIB/iHAPX2b9n74N3XhjwRpmoQXs0AnmS91SKeMiS5ITZsAU5SNNzj1PLdMA 9R4p+Guh+Jtdht9VTTre1jgkgV1iEy3ImfdlzkEFSqqMEE5J4FAH5vozI4ZSQwOQ QcEV90/sg+Ifit44sRD4tvkm8PW9mn2WaW1j8+VVbYCz7cnO04Y/MdhOe5+TPiV8 P77w18XdR8AaWJdVvIrxbe1SKP8AeSl8FBtBODhh396+7PA+lv4B+G9pp13NeTan p+mxWE9xbyMLeGSNMsg5AZg7lRxg/nQB2Pwukms9b1nQo5lFpbyiZY2bcweQbmAw AADkHHUEntivQ64r4WaLeafY3d/qcYW9v5vOcHORwAOTyeAOfau1oARhlSOefSvH /EHh+08K65eQTpbz+GfEkTW1/ZTq8qsSCWJJPdCwyPbjivXp5Y4IXmmkSOONSzu5 wqgDJJJ6CvH/ABj4wbXhqEcXhe81XRlSG3sJTC9rJNezN8nlu5A2heSxAAOBzuGQ A8H+LL6z+IHiTR08M6kNI8P2draWk7I/m3KFdylEAK7FAPzkgnI4zkVleKPG3ibX vA3iI6T4bk1K9scXNkLaB5EmeOQHy8Ku7dtBGDg5qfSbLVtVvLcab4p8WaSABH/x MLNFyFH3grAHZkY3sMHace8Xjjw546064gNt4iv9Sjvr1dxtisCpnI3Hap8xh2U4 U59qANbwzpHgqTWk+JlrpbL4z1W0it7ya+Ty5bFtu12eMjETgAITj5go6jcTlyXs XiDUotK0TQ5m0uG6xqN5N5jJJg5w0hAyzNgkqD7ntW+fh74ovTAt94wvpLW4iU3k MkUe9eB8gYDoDyPTnHWvSND06HSdJttNt2ZoreMIpbqQPWgC1AnlwpH/AHVAp9FF AEN/FLPY3EMEqwyyRsqSMgcIxGASp4OD271wr+HviHHdu1r4q0y0tZlUyRWmnKmx 95LsN27JYHknJyAcDmvQKjuf+PaX/cP8qAOGgv8AS9P1ubTfEGs2bwQtPcxNPMNu 1pNyo5PGUVjhT2IP05y78Z6Pquvz6ToN61rFO0MdsLQqJrmQPu8yNScBeMZxgjJP ynNcO1882jXkl5Bb3mMyKs6blXjO0D0/X3rq/wBm7RtJuNMt9dbTrZL+a2W+Mkab dskryIwGP4cRJgfz4wAeyaU10+nQNe+V9oKAyeUCFz7Z5qzQKKACiiigD//Z ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=cdb9d41a-6b0d-4823-8ed3-c12df5e143fe.Small.png Content-Type: image/png; name=cdb9d41a-6b0d-4823-8ed3-c12df5e143fe.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/13/14/cdb9d41a-6b0d-4823-8ed3-c12df5e143fe.Small.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAwBQTFRFv9foD2qq3+vzP4i77/X5L361X5zGf7DSz+Hun8Pd j7nXT5LBH3Swb6bMr83i////AGGlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAX7hRwQAAAWFJREFUSEvtlcGWgzAIRU2ixqot+f+v rTbTKYFHTI+LmYVZtR5vwAc8unTidCfYdMFfqlcTzIXtuMqFNjxO9DrTaOIWHHxG 9+ODgRvw+EH3X0ZwDAvWoiE8lHH3fwPKHMKdhvF74MagWSIkGrrxhuAbiIJgViVW r0YYBSZqg90ZOP0dDMpMhJRFz+4o73ubYMn1mu7RXMO2ixqOzb2d1Ffj4cNP3Y+L vDOYsBkZZuAePPOHYWSmh42/He5NE6u45zJ325kX2z6vXcW02eTK1apIZjRJLKzI xy+aJKrJ6Ft7exW9mbOfVl1vnfYABnKne700FBwMdqOV70vYigtjC9hBw39PmBei Cxhums90ip1TwnDF8ckuP7uEoelyWLzOqweWurTCol7FVTNeNPzpzIMVcFXqfIW3 4PU4MBHvUh55aYG5pXEYLIr66uDwQYfki3ifcPiwyi9jYYpdcEOh/4dgT4kF1ooC HRbsAAAAAElFTkSuQmCC ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=5d58bb11-3bf9-4b9f-a286-550e02181e1d.Small.png Content-Type: image/png; name=5d58bb11-3bf9-4b9f-a286-550e02181e1d.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/13/2/5d58bb11-3bf9-4b9f-a286-550e02181e1d.Small.png Content-Transfer-Encoding: Base64 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 RU5ErkJggg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=17d31278-04aa-4931-8337-38be2cf4df04.Small.png Content-Type: image/png; name=17d31278-04aa-4931-8337-38be2cf4df04.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/7/3/17d31278-04aa-4931-8337-38be2cf4df04.Small.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAwBQTFRF3u2/g74PnMs/7vbf9vrvrNNfk8Yvvdx/5vLPzeWf xeCPpM9Pi8IftNhv1emv////e7oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAsEQDZQAAAWBJREFUSEvtlcGWgyAMRQVUrNqG///a 0TJtE/KC9LiYWchKOd4EX8JLl06s7gSbLvhL9WqCOb8tVwlow8NEzzUNJm7BPmR0 X8EbuAEPH3R/MpJjuGAtGsKjzLu/jejkEO40jL8DEb1miZBoKOINwTeQBcGsSqxe jTBKTNQGuzNw+jsYlJkIKYv27ujc9zbBkus13aN7Ddsuajg293ZSf40vH951vy7y OsGEzcgwAydyPwwjMz1seHd4ME2s4p7L3G1rXmz7vGYV02aTK1e5IpnRJFFYUYhf NElUN6Nv7e216M18+mnV9dbHHsGF3OleDw0Fe4PdaOX7JWzlhbkL2EHDf93MUIhe wHDSfHylmDkShiOOe5L8bQlD0+Vw8TmvHhjqpRWKeolQMx40fHfmyQRclTqHCBa8 Hicm4l3KMy8tMLc0DoNBUR8dHD7okByI9wmHD6v8NBam2AU3FPp/CPYD29rWfD8D vOUAAAAASUVORK5CYII= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=690cb1ae-5a96-4f26-ac78-4bf1c9ffc7f9.Small.png Content-Type: image/png; name=690cb1ae-5a96-4f26-ac78-4bf1c9ffc7f9.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/9/12/690cb1ae-5a96-4f26-ac78-4bf1c9ffc7f9.Small.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAwBQTFRF87/h0g+R+d/w2z+n/O/353/E2C+f4V+17Z/T3k+u 6o/L9s/p1R+Y5G+98K/a////0ACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAABc0O8QAAAWBJREFUSEvtlc2WgyAMhQVE608nvP/T jpZ2mpAbpMfFdCEr5fgleBNuunRidSfYdMEfqlcTzIVtuUpAGx4XeqxlNHELDj6j +/LBwA14fKP7k5EcwwVr0RAeZN79bUAnh3CnYfwdiBg0S4REQxFvCL6BLAhmVWL1 aoRRYqI22J2B0//BoMxESFm0d0fnvrcJllyv6R7da9h2UcOxubeT+mt8+fCue7rI 6wQLNiPDDJzI/WMYmelh41+He9PEKu45zd225sm2z2tWMW02uXKVK5IZTRKFFfn4 QZNEdTP61t5ei97Mp19WXW997AFcyJ3u9dBQcDDYjVa+X8JWXpi7gB00/NfN9IXo BQwnzdtXipkjYTjiuCfJ35YwNF0OF5/z6oGhXlqhqJcINeNBw3dnnkzAValzCG/B 63FiIt6lPPPUAnNL4zAYFPXRweGDDsmBeJ9w+LDKD2Nhil1wQ6G/Q7Bfg6nWfEDO vBkAAAAASUVORK5CYII= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=65a0aab6-be92-4b1b-84d5-956b3800a920.Small.gif Content-Type: image/gif; name=65a0aab6-be92-4b1b-84d5-956b3800a920.Small.gif Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/5/4/65a0aab6-be92-4b1b-84d5-956b3800a920.Small.gif Content-Transfer-Encoding: Base64 R0lGODlhPAA8APQAANHY9VVt2ujr+neK4fP1/I2e5muB36Sx66+77d3h94KU5LvE 8GB33MbO8pmn6f///0pk2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACwAAAAAPAA8AAAF/yAkjmRpnmiqrmzrvnAsz3Rt33iu73zP BoPgIOCzFRKPpDJRKMYGAqVUKRg4W4WpVtm8prLbcNdbMoTPDwO5BECHAevRwH22 xhf08CIOiea1Anx/YXEBg1uCh1OJikp8bY0PcHEOkQ8OfAEEjQREfAeNB3wjkH+T oxABSHkJnqipDXQNrq8iBX6AY7UlCggAvwAICrvExcbHyDG9pUrBw8QBB7hnAge0 cQebgwSicQyrjQkMZAbalgRqTgPmlg8Edj3l7VPoPQHT80kC1zex+Vp7dMz5twXe DWYEm+Uwk3BLOhsIGm5BgAOfxAeBbDC4uGVcDQUctTyjASqklG408CqYVBKQBsKQ p2a85BhTxsyLNWPclJgTxs6GPV/8TBjUxVCCRVsc/ZcUQggAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=b7cc4ff7-d756-4606-b1ce-59b3a81d5cfa.Small.png Content-Type: image/png; name=b7cc4ff7-d756-4606-b1ce-59b3a81d5cfa.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/7/1/b7cc4ff7-d756-4606-b1ce-59b3a81d5cfa.Small.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAAwBQTFRF7OzsxsfI+vr6vb6/uLm64uPj8PHx2dra1NXVwsLD 0NDR5+fo9fX1y8zM3t7ftLW2////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAmwBHcwAAAWNJREFUSEvtld2WgjAMhEsLFARN3/9p Fxdd8jOBrnqON/SSw0fKZDIJ9MYJFF4+FKi8fE5YSRfvfYi+njuCdePqgLHzcBcO aTNPChj34E76Dhd3YMUSQRrDvfV7D26O4cbCTS0c0KAB0WDlC4IvtjSEWZdYvyph HA91cHwHLt+DQZuJQKOh2jd071udYCW2lm7BXGN7ZgvnWnuWYv4aWbs4IxkfKfK8 wQjDyAuDeOU3v+Ig8zOs+3N48kJsb2NMQ7OcYXLj81w3XJpFrrVbvmSeSbKIopT/ YZJsJqOt9fasvPnYd7PpN7h2DwbyzrdmaVg4OOxC69w3sFcX1dZwhIH/nLAkRdcw 3DTbdMqdo2C44vhki99WMAxdDos4kjBY6joKeb8kPOBFw58OzCoS3pV6/UTy4Pm4 MBFzqag81cAs0gQMFsXu6hDwgUPWDzGfCPiwy7/Bsil2wjV9/qBgNeWcd34AQZfS U2wF9W4AAAAASUVORK5CYII= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=aaaa93eb-5b24-40dc-b22b-eb874f167018.Small.jpg Content-Type: image/jpeg; name=aaaa93eb-5b24-40dc-b22b-eb874f167018.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/10/2/aaaa93eb-5b24-40dc-b22b-eb874f167018.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDE aQ7wiKHfHTsPqaRoWFwJ5ZEYKpCqI/u56kevpTYWjRB5bgg87s9T6k05pQ7GPzFC gfMQwyPb2rtbOMnhlIIPky4/3Ku2xkdSfu/MRhk7Vhahq0NjADG0RjAOW3ZVKx7P XLp7szF9jOBtAOeOBnHNHODTZ2032hWGwxOCwBG3BA9aecY7flWJp2sxyTMZEkJb jzRkpkHGMdq05LhAwUuAx6Dufwqk7kO429WNowsq5QkZbuh7H86hLBAFmWUuB95E JB9+On0p07TSxvHEqBiMAyfdP4CoJZFBAnfEmOQ0pT9Bx+NMdyOfAfayvyO6msy7 e2jSVVtpvNfrshyR2zzxXUT2wAAGSQOSe9Y+pWbPuXgKwAYntg9vfms2CZzsEtq1 w810h8iRgoV8LtA45PQfnWlNYG80O/u7OfwslvaXCweS+oIk5BwdyD+Lr2NV2t4p kMD5VxJsY7flHuR6Yxz70P4e8O6bJJe29mZJRlgoJYF8dcdBWTT6Gqa6mVpSyi/n thPPALflkHzFge+enHfv3rrbGN1jQxsrDBDlgSxI7g1D4b8MWyIdQ1S4lt0lZH8o L+8ZM4JUduDxk9q2rjTLW1vZoLKdpYI22xygkb1HQ4NaR0djKTuRx8DOOaeXfAwT U0dtIE4O4+/H8qbKZYiFazmJx1T5hWlyTtJdNhmPEIXIHasPUtFZ3ZIMAHIL4zj6 Duf0rtJMpE7TzxxwquWfGNq45ye31rH0zV9G1xJotJmaXym2SsFIKLj7y56g9Aay 5irHEDw+23PluzA7RKGw7ds+h/lVSHw5eQDcscU2wHBkJBx246Z6c16i9nblQkRd EVQBlapT2kaI7ecuFUk0roepzkdl5luRPA32pnDNKWyOnTH5frXW6Xp3gr7JF9r/ ALc+0bR5nlrGV3d8ZPSq9rarKVcEGIoCGPcn29PetqLQZQARJbdP+fhP8aNO4Cxa f8PkUFm11vXiPipWsvh3xn+3s/8AbOon0KXGfNtuP+m6/wCNQTaTcKwEc9sox0Mq mjTuF/I8Y+JXxCtdWto9H0S5aSCTHny4Khj2Xnt3JrB8D+LX8Paut35DT25jMcqB 8bge4+hGawtbsreziZ4FKkLjk560kcMZ0/zMYIQ9PpWbdtDSx6D4g+NE6zeXo2lR IuP9ZdOWJ/4CMAfnXLt8VfFL3DvLdW5iZvni8hdpXuOmf1rg5zumIPHAppjUBiM9 v1porlPqD4a+NNO8WytpyQPaajCm4wM24Oo43Ke/0616JHp8xHERx9K+NvD2q32h 6tZ6vp0xiu7eRTG/5Dn1yODXd+KPH/i/VZWjn1y6hi3kCO3fylA/4Dz+dJxb2Fax 79rGoaRpKMdS1O1tmUco0g3f98jmvKde+LIg1OSLS9De6tV4SaSUoX9TgDgV5leT ShVcyMzMuWLHJJ965fVJ5VvXAc04bkyP/9k= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=4f83ee42-8738-4e2b-be6d-ebab36055810.Small.gif Content-Type: image/gif; name=4f83ee42-8738-4e2b-be6d-ebab36055810.Small.gif Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/15/14/4f83ee42-8738-4e2b-be6d-ebab36055810.Small.gif Content-Transfer-Encoding: Base64 R0lGODlhPAA8APQAAL/fvw+HD9/v3z+fP+/37y+XL1+vX3+/f8/nz5/Pn4/Hj0+n Tx+PH2+3b6/Xr////wCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACwAAAAAPAA8AAAF/yAkjmRpnmiqrmzrvnAsz3Rt33iu73zP BoPgIOCzGRCPpBJhKMYKAqVUKRg4W4apVtm8prLbcNdbKoTPjwK5BECHAevRwH22 xhP0cCIOiea1Anx/YXEBg1uCh1OJikp8bY0PcHENkQ8NfAEEjQREfAeNB3wjkH+T oxABSHkInqipDnQOrq8iBn6AY7UlCwoAvwAKC7vExcbHyDG9pUrBw8QBB7hnAge0 cQebgwSicQyrjQgMZAXalgRqTgPmlg8Edj3l7VPoPQHT80kC1zd4+Vp7dMz5twXe DWYEm+Uwk3BLOhsKGm5RgAOfxAeBbDC4uGVcjQUctTyjASqklG40/CqZTBKQBsKQ p2a85BhTxsyLNWPclJgTxs6GPV/8TBjUxVCCRVsc/ZcUQggAOw== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=614b1e6d-c421-4998-b0bf-e0b6649ae15f.Small.png Content-Type: image/png; name=614b1e6d-c421-4998-b0bf-e0b6649ae15f.Small.png Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/1/0/614b1e6d-c421-4998-b0bf-e0b6649ae15f.Small.png Content-Transfer-Encoding: Base64 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 4f8DBTZnxvIuAfEAAAAASUVORK5CYII= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=icons_contributor_28.gif Content-Type: image/gif; name=icons_contributor_28.gif Content-Location: http://static.guim.co.uk/microapps/server-side-pluck/images/icons_contributor_28.gif Content-Transfer-Encoding: Base64 R0lGODlhHAAcALMAACdmmTp4qHWw1QlKgojD5ESCrxNTimGexjBvoH663ZLM7Gun zk6Lt1eUvwBBe5zW9CH5BAAAAAAALAAAAAAcABwAAARj8MlJq7046827/2AoXkoD OKgzIEJ4DGnsMOARB8JyOsFHwKiehIACfAoxAgXhMHoMsREl5pQ+qNYHMVWVYrNA VPYRiCUoyO5GcKPA1JtyCieQwzdIGVdUh6YMOGOCg4SFhmMRADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=e0cac9ff-1d3e-46c1-94c1-d0a908185c78.Small.jpg Content-Type: image/jpeg; name=e0cac9ff-1d3e-46c1-94c1-d0a908185c78.Small.jpg Content-Location: http://sitelife.guardian.co.uk/ver1.0/Content/images/store/0/4/e0cac9ff-1d3e-46c1-94c1-d0a908185c78.Small.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8L CwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUF BQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e Hh4eHh4eHh4eHh4eHh7/wAARCAA8ADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD7 LooooA4nxfqmsWXxN8H6Xaaq1vp2pi7N3B5MbbvJjDrhiMrnOD7dMdamsPH2l6gN PNtaagINXWb+ybgogW9MaliEy3yllVmXeFDAE1Donw/jsdZ069u9XudQi0s3rWaT 7mk3XT7pDI5Y7sDKKAFAHrxhmjfD/wDs5NBtv7XM1j4c806RE8HzIzI0aGVt37zy 0dlAAXOcnJoAreG/HtuuheHLeO18Q69d6npL31vO1vAks6x7Q/mAMqI/zrxwOeDm uy8N6xZeIPD9hrmnM7Wd/bpcQl12ttYZGR2PqK5Dw58PbzRT4cMXiGOb+wtMuNPj 32OPOEpQ72w/BHlpwOvPrx0fgLQG8LeD9M8PNe/bRp8CwLP5Xll1XoSuTzigDcoo ooAKKKKAOK+N+o6no/w31DVdH1GfT722kgKSxKjcNMiMCHUgjDHt1xVjXhqVp4q0 b7NquoSQCyuHlsg0QW6eIJt3My5BO45wQDx6Vr+MNAsPFPhq90DUjMtreRhXaF9r oQQysp7EMAR9Ko2ui31ozanq2rXOtXdtayRW4W3SLAbBYhV4Z22rzkDjgDJoAzvC vxCttbudBjm0e906LxBZm60yWZ42EpVA7xsFJ2MFO4Z4IB54xXa15r8JPCF5b+HP Cd54jN4l/oVgbe2s5o0QW0jIEkYlCd52japz0J4yc16VQAUUUUAFFFFAHj2r69rG n+MZrLxJe61o32jXIRpGqw/vNLuLYugFrJtyI5Gw6EuASxBDY4rV0LxotilxbDT7 s3d14hv7RjfakXgieJWkb96V+SMhcImOM+xrfHgSwaGayn1PUrnSptQOovYTOjRe d53nYB27ggkAbZnGR6ZB57xJ4BvI5reDTbrVriwuNVuNVvngnhS6indML5YdRGYz lshgSPlI70AXrD4g6nfxeGPs3hb994jsZru2jlvgnleWqNtkJTIyHHIBwex610/g jX4fFPhPTvEEFvJbJewiTyZCC0bZIZSRwcEEZ71geHfCWrTSaRq3iPW7+TVNKa7S 0OYSxgmbCiYhNrSBFTJXAyO/JPQeDPD9r4W8OWug2Vzc3FtahhE9wVL4LFsEqADy T2oA2KKKKACiiigBsiLJG0bZ2sCDgkHB9xyK8g8D+I9T0LwZa3apPrM1/wCLLnSS 19qMhaNPtcsUWGYNwoVRjjgZ5NewSLvjZAzLuBG5eo9xXHWnw50O20q302O71YwW +q/2tHuuyWFzvMhbOOhdmYr0yaANDwJ4hudftdTW+sorS80zUpdPuFhlMkbsgVgy kgHBV14I4ORXRVkeHPD1loMupyWUt051K8a9uPOl3jzWABK+gwq8e1a9ABRRRQB/ /9k= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=t_TRUTEX1.jpg Content-Type: image/jpeg; name=t_TRUTEX1.jpg Content-Location: http://roffers.guim.co.uk/mall/GOTruebellUKLtd/customerimages/products/t_TRUTEX1.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwK CgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHCAgICAgICAgICD/2wBDAQcH Bw0MDRgQEBgaFREVGiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICD/wAARCABfAIwDAREAAhEBAxEB/8QAHQABAAMAAgMBAAAA AAAAAAAAAAUGBwMIAQIECf/EAEIQAAEDAwIEAQgGBgoDAAAAAAECAwQABREGEgcT ITEiFDJBUWFxgZEII2JykqEVFjNDgoMkJTRCUlOiscLRY6Oy/8QAGQEBAAMBAQAA AAAAAAAAAAAAAAECAwQF/8QAMhEBAQACAQICBwYGAwAAAAAAAAECEQMSIUFRBBMi MXGRoVKBsdHh8BQjMkJhYpLB8f/aAAwDAQACEQMRAD8A7U0CgUCgUCgUCgUCgidT 3F2DbOYyoJeWtKEKI3AelRx0zhINbcOMt7+6TbHnysnb31BRtVXIkAhKx6cJT/uH U1N6PL6/oy3yec+X6vo/W9DZKHcpUO4KV+/uOZVdY/5V6+b/AE+s/M/XuGkePlj1 /WKH/wBNip6MfO/L9U+u5fs4/P8ARIWbURukl5lEdTPk6khalKStKgtJUNpT7MfO p5eHoku99S/Bz3O2Wa6am6wdJQKBQKBQKBQKBQKBQKCq6pdQ9dY8RzPIYYW66ElI JU6eW2PFgeaF10Y+zxW+dk+Xe/8ATPo6+STyjgj2SzjYHVOo5gO0LbKe32gnFYSr ZcfTdPvXp2KW8g70EeEkDt7wBTavSq2obNsejMRx4n17VEehOQCT+KouevvV6Vk0 MwPInpeMeVOrcT9zPLR/oaFdPpX9XT9mSfv72PoXfDq+1bfy+iz1zOwoFAoFAoFA oFAoFAoFBSY1wjTLxdX17XEeUmMgHr4Yw2H/ANm+urnmsccf9d/8u/4aYY5e1b++ yxwvJEAFpIb6Y8PQevt2rlbXLfeuSSUrwd5BT22qUn5gdD8aaTM9Kbqa6pbfmOpH jhxlBAHXLrngSB7dzoq/ovH6z0jGeE/9cHpGdkuvCfX91cbBCRCtUeKjzWUJbH8s BH57c1GefVlcvN2ceHTjJ5JCqrlAoFAoFB4UpKRuUQkes0HD5W2r9mlTntSOnzOB QeeZJPZkD7yv+s0Hha5KUlS1NISOpJzgf7UEHcdbWOBnmz23Fj92w2p0/wCk4/Op 0pc4rL/FzmO8q3wlK9TsjCB+FBWfzqdKeteHtaX99OUvoaH+FlGPzVuNTpHXVPdR FjS3HQy6yt1anVvRXVNEqWcqJT42ySfsV2/xudmspjnJ27zw+Paua8U8Nz4Jq3an fbSQ3cw4oea1Ma2Y+860V/PaKzuXDl4XH4Xf0v5q/wA6e645T/Pa/T8kunXE9htS 51pdXEYxunQimWhQ7noyVrHf0pFWx9Bmd9jPG2+F9n8e31bT0nLXtY2fDv8AgipW s9KamvFptdndEiQ7J8rnISkpUhuHufAcBAxlaUJwetdfF6Bz+j8efJyTWsdS+dy7 dvu2zvJM7JLvvv5d2tst8tpCO+0AZ91eM9B70CgUCgUHFKfDDC3cbtvZPrJ6AfE0 EZdZke029dyuAVJdTtCGmxuJWs7UoaScDqT3NFbdMh1fxt1wCWbFb4tpdQrobihy QVgf3SEKaCc+zdVulj697af+k0I+Gdb2B63Y6KutszNh+1S0D69ofBVRY1x5JWsW HVektXW1T1juka5xVjCzHcClJ9i0ecg+xQqF0PeNDoXuW02HB628JX8UHwq+BFTt neNT5GmFpcXyioFv9ojbgj3jG4fGrbY3F6bFIG3vj01KHwSnHBnplJ9FBEylx0o3 cpSnOuR0Az6DQRCp183g24Oh79yiLlUlzr+7x4/lUJjTOHekddm5/pTUTnJZQfq/ KOW9LdRnO1SiFLaSogHG/PTGKdd1rw8vBrjh321eqNSgUCgUCg4JzK3oq0I/adFN /eSdw/MUGd8ddUXCy8NHNQWooTIiTIZIeBKRvfS0oK24UCN/oorZtQLdxhsd0ilG tLOEMAlC7szh5jocZW60NzXueQPfUs7h972vOmtJuKiTbHciLZMSsiYU86M24Nux DjjRVtCwThYyOmDip2yuEVG+6B8hfanFpcN1ZJi3i1PFBKgM7g9HIJIH+NNSmZWJ 6zcXOK1iZisociangMp2uibuZnL9PSQk8pSh28SetV0vOZfbTx04d364CzXpp+2X neW4rb7Do5pHXLDyAR8N3uzUNJluLIbDGucFq42eQ3c4MhO9lwEJWU9vC4PCr+IC p2jp2hHNMTXXg0zEfcWe6Cjl7PvuLwj8Oananq0tb+GLasLuTwQP8iL3/ifX4vwh NRteca2WjT9ls7XKtkNqKk+cUJ8SvvK84/E1DTSQoFAoFAoFAoFBQONFpiSNB3Dn tIfhuPwVTYjmeW6lM1nOcEEdOhwe1EZMG1JwZtNwjPjTtyVaZDoUEwLopciNlSdn 1cxH9IR4SRh0LHtqdMseaeLIJtn4scLpgeUmXamnThEthQegyPc4jew57j1qGupW h6A+lD+jVFjUVmYcQ74XpURtOFD7bBwPwKHuptTo8muWuTwh1+15TZJiYFwIyryd XUH7bRw4n4pxVts7hPggNV6DvFpMZM16NcLJMf2qlJZRIXjb16egYH/XWpU6dK9e 7DqbhbpqJrvSF9MNre07L01znJLL7DitvMdbWcJO4hKsDpnoQRVa3wt8Xaux3RF2 stvuiEFtE+MzKS2e6Q8gLAPu3VDR9tAoFAoFAoFAoFAoKnxYaLnDm/47txS8P5JD n/GiKyhx3KlAnoSelaOFyNXFUGO6hTyEQ3BiSy/tVHWD0w6hzLagfaKLY3Slao4N 8OdQqUuMwvTFzV158BPOhKP24ijuR/KXj7NV6W05vNkmp+DHEbSObrGZNwtzB3Jv VoWp1LftcCdrzJ++kVVtLt6QuOGum7eIM59u5soILbkkHnJx/wCRBQVfxZqdq3jj RnNbnU30fdQyZURMN5l5ERa2tyg5h1hYWdxznxYxmngpMdV230mzyNK2ZjtyoMZH 4WUiobJWgUCgUCgUCgUCgUEHrqM5K0TqCO0jmOu26WhpA65WWFbRj30HUnSnGrT9 22MXf+qZ5wOYs5jKPsX3R/F86vtzZcVizaxsg1Pp2RaW5SGTJLbseSrKmips7k7i nPgV2yM+upsUxuqhJ971BonRVmElTUqYwvyeW+cutBsZLaN3Q9U+EK9lRteSWrjF 19ZoTFouCrh+jHbwhKoG5RQo7gCRkegbgMnpUqzbFfpDpa/XSO8GGWX5ENLklTDS GeYvmLG9YbCQVYHU96pW/Hdx8tgvW/gxqGwoaxtkxpK38+cX5DaEpA9gYJon+5+g cFrkwo7X+W2hPyTioXc9AoFAoFAoFAoFAoFB1z4sfRItN8kSrzo99NsuTylOu29z +zLWep2Y6t5Pw9lB13knifwvuRt9yYeiNBX9lkDmRHPa2e3X1pINTKplhK0HSnGD Td3QYlx2W2S8OW4zJCXYjoPcblgpHuWPjVtsbx2e5K630LE1dEip8tEF+ElQhuhv mMltzGUFKCMDwjaU/KrWKYZ6Zpx3QWdT2yMXC6Y9qjtl1XdW1Tg3H34zWdb8XufJ o2OX9JToyRlUu42hjB6ec/IP/GotWyuq/RSi5QKBQKBQKBQKBQKBQKCM1Bpqw6ht 7lvvUFqdEcGFNPJCvlntQdZ+J30OyObcdCSOnVRtMk/k253+BoMNi3/iDw+uJtk1 p2OGz47bNSS0faj1e9BqZVMsJUfr7VyNVXhm5pjmKURm2HGireNyCokpPTp4qWmG Oo0PRthjHRGiVRI613G+6kityCkk7kx33Qnw9gEpKs4qEf3O9VGhQKBQKBQKBQKB QKBQKBQKCu6x4f6S1hAVCv1valoPmuEfWJPrSruKDrdqr6Fly/Sm7TF3aFtcP7OY DvbHsKfOoNw4XcGrLoi029lx03K4wErDMpwYS0p0kuFpH90q3Hr3xTaJi0OiSgUC gUCgUCg//9k= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=john.jpg Content-Type: image/jpeg; name=john.jpg Content-Location: http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2008/12/11/1228998489748/john.jpg Content-Transfer-Encoding: Base64 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 8y7j1qH5VF6bbUCyx6wm0jz37eYI1Ng/8Z//2Q== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=gaby_hinsliff_140x140.jpg Content-Type: image/jpeg; name=gaby_hinsliff_140x140.jpg Content-Location: http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2008/09/28/gaby_hinsliff_140x140.jpg Content-Transfer-Encoding: Base64 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 obwvgMeauDdzUYRgVNJHhfTtyC1nP//ZCg== ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename*0="spacedesc=sectionclassified&comfolder=gl"; filename*1="obal(tempcommercial)&keywords=,Lebanon+("; filename*2="News),Gay+rights+(News),Middle+East+(New"; filename*3="s),World+news,&site=Commentisfree&bandwi"; filename*4="dth=satellite&url=%2Fcommentisfree%2F200"; filename*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=-"; filename*6="1580598214&system=blog&blockVideoAds=false&partnerid=&.js" Content-Type: application/x-javascript; name*0="spacedesc=sectionclassified&comfolder=gl"; name*1="obal(tempcommercial)&keywords=,Lebanon+("; name*2="News),Gay+rights+(News),Middle+East+(New"; name*3="s),World+news,&site=Commentisfree&bandwi"; name*4="dth=satellite&url=%2Fcommentisfree%2F200"; name*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=-"; name*6="1580598214&system=blog&blockVideoAds=false&partnerid=&.js" Content-Location: http://ads.guardian.co.uk/js.ng/spacedesc=sectionclassified&comfolder=global%28tempcommercial%29&keywords=%2CLebanon%2B%28News%29%2CGay%2Brights%2B%28News%29%2CMiddle%2BEast%2B%28News%29%2CWorld%2Bnews%2C&site=Commentisfree&bandwidth=satellite&url=%252Fcommentisfree%252F2009%252Faug%252F31%252Flebanon-gay-rights&rand=-1580598214&system=blog&blockVideoAds=false&partnerid=& Content-Transfer-Encoding: Base64 ZG9jdW1lbnQud3JpdGUoJzxhIGhyZWY9XCJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrXCI+XG48aW1nIGNsYXNzPVwiYWQtcGxhY2Vob2xkZXJcIiB3aWR0aD1cIjFc IiBoZWlnaHQ9XCIxXCIgYm9yZGVyPVwiMFwiIGFsdD1cIlwiIHNyYz1cImh0dHA6 Ly9hZHMuZ3VhcmRpYW4uY28udWsvYWRtYW5hZ2VyL2RlZmF1bHRzL2RlZmF1bHRf dHJhbnNwYXJlbnRfMTI4eDY0LmdpZlwiLz5cbjwvYT4nKTs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=9781847920881.jpg Content-Type: image/jpeg; name=9781847920881.jpg Content-Location: http://static.guim.co.uk//thirdparty/bookshop/hbA/9781847920881.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjL/wAARCABkAD8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3 +iikyPWgBSM0m0egrP1bXdK0K38/VL+3tI+zSuBn6DvXF3Pxu8D207xHUZpNpxuj t2ZT9DjmgD0Iov8AdH5UKq5yAK4bTfjB4K1WfyYtXWF+MfaYzGGz2BNdvBPFcxLL BIkkbDKujAgj2IoAV1U9QDUDRJ/dH5VZbFV532JlgSvfGSaALR6VyfibXdYjuE0j w3p/2nUplJNxKdsNuvTcx7kZHy1reJNYGh6Bd3yxmWZE2wRAZMkjcIoGRnJIqPwz o7aLo6QzXElzdysZ7md+skjcsfp2HsBQBwmlfBiG6vP7T8ZarPrd+xB2Fisae3XL Dgegx2rvrHwzoumxGG00iyhjznCQrjP5e1a24UA5ouBymu/Djwp4gRxfaNbiR+ss I8t/++lwa421+HvirwJcvd+Etb+3WIBL6ZfcbhkcKRwWOOvy498166xA61Vvr2Gw s5ryYnyoULtgZPHp70AZ3hvxFbeJNKjvIY5LeQEpNbzDDwuOCpH1rXbmuB1eQ6L4 i0zxZaJJBY3zrZarEwAChiVjmfGQNrcE56EDvXeZO0CgDmfGV3YfatCsLyQKJb9Z shwMCMM2T7AgZrei1C3vbYy6fPDdIGKF4pA6qR1BIPbuK8E/aK1nzNW03RlUYgiM 7sV5y3AwfoDXG+Gbm81L4c+INBghuLp1mguo44wW24O04UevHPtTsB9Mn7dLrKyC W5EKyKojC7UIAG5j+Jx29enJ3hIqIXJyAM8c182WXhrxHd6jp7XtldNcaWx0iFhG dkkapMQ2cdBlVB6YxUFjHfX1h4T0mHStTa60T7Yb9VhKmNXbcME8EkA8e1ID6Kl1 Z22+RZXLqX2l2XYAO5weTj2HPasu3gub+RXu7TyfPP76FzvUhTkMATwDxwRxXhOl 6fdDS7+xstJaaEx2Za7gtJomZkuI/kdScMwHJIHGD6mteCztbTW9VPiLRdZuvEJ1 PzrW6sdyERDGCJPugDnt6c0AeqfEVbL/AIQDVYLln2JEJQinLZV1ZSc/w7tuT2Br qYZ457aOeJ1eORQyspyGB6EGvirXtdub7xRqeqR3Mm67lly4O0tG2VwceqnFfWvg PUhqvgLRbvaV3WqKQWyflG3k/hTaA8e/aF0OePXLHWlDtDND5LELwjKSRz75/SvP fh68x8Swwx3Ihid43kVmwHCOrY/SvrrXvD+m+JNIm0zU7cTW0o5GcEHsQexrzDSv hdpnh/xZqlzZ2QuYoUha0gkkZQAyncC2epZPcDd0ovoONr+8cvF4bv0RxFqMV3bG yWMJ9pQGGXzS7rhlKuNzE844bGeK0o/C+n2PiJGla2jvDpEIbbcNzeFwSwBJ4Kfh +Jr1JPDekMzf6FgyFnkKyEbSeueemVwMdPxqKPwxo6X39oxWr3F7EMbpJmcZAxjJ OM8fhxU6m37nzPIk0DXrW01Oxk1WApGJWMRnIKPJdRkwkgn5WWH0HLtmtWfw5ZSQ 6Tq0mmWyrbwX8l7BBdSSYVFxGoLMSdrEdOPwr0DUvDemuJLsaWLu5dg7xmcqASTk 4Y4GCc/yBIp2neG9PhEIa3aFVRl2C+dwu8nIx0wcL35/DlhL2LWl7nxyBubAySTg Yr7J+HulTaP4A0ayuQFnS3BcDsTk/wBa5Hwl8IfDtvqmoXdzZmVbbUT9i3StlFTH Dc4bnPWvVmXCim2YE9ZuoWMd2NssjiF0MbqHKjB7/WtKo54VngeJuAwxkdR7j3pA Z1xC6kRwwKykbSwYqevspz3/AMnNUhYGDU/9Gsi42FZpJbgruUkngBSGJ5zkgjC9 sVsWc3nRYbaJUwsqBtxRsZwfzH4HPerOB6UAYtrECGijsmVQyoWmON64zuBwSSM4 wccg9sEvstFtLZZnERVpZvPcFyw3Agjr0HHT61qSssaF3YKigksTgAepqkZZLwot vtFuT+8kPO9cZG3656ntn60ATWMLwWUaSTGd+SZD3ySf5cVO3NCIscSoihVUYCqM ACloAfQelFFAFa4tvNIdJHjkBzuXv7H1FNR5Y3EdxtO4gI6g/Nxk59Oh/SrdV7yK 3lSIXAUhZVZNxx84PH45oArLF9tvjOZiYIGKxxo3ylxkMzY6kdAD0IJ54xfXpzVb T7NLKKVEJIkmeY59XYsf51boAQjmm0+mkcUAOooooAKqXoR5bWOSNHUy7vmGcFQW BHvkUUUALbxpHeXWxQDIUdz6nG3+SirVFFABTT1oooA//9k= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=9781846140907.jpg Content-Type: image/jpeg; name=9781846140907.jpg Content-Location: http://static.guim.co.uk//thirdparty/bookshop/hbA/9781846140907.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjL/wAARCABkADwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6 Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx 8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3 +qzC6CNsMZf+HdkDr3qzSEjB5FAFb/Suf9V145PIzSn7RuT/AFeATv69O2KzvEcO oS6Zu0y7uLe5WRMGBUYspcBsh1PYmuau38SW+s/Z7a61SZ0uYVh3wRG3kg8tPMMj BQd27ecgjnGBjigDtE+17QHMIO3nbk81BLFqjw/u57dJTxkoSB1/PtXEaRceOxrO jwXpmawBDXcjQxguHjBw2BwUcSL24KdTzXo4YY60AV7VLpA32mRJDxjauO1TMOak 61G/3qEA/tXAa3aeKX8fxXFlLd/2UkUAMMchWNm3nfkk7R8pB5U5xgYPNegGsy8+ 1fb7dY7gpE+d67ARxz196V7AcS9l4yU2NxDc3chFnYwXEDSAAtuJmkz/AHhgZ55B qaWDxENSvwkeoeaVvf3jSt5W07vs5iAfaDjaMFc5GTjvsyaxqQ0/zXhWFvsyyqwI bcSygnHbqetWrq/uxodtPblpJpGVT5exmPXOOdpqedBY5aS18cvDqtpHc7rqeeAW 92uYYo0EKl8AmQrlhg9cnPTPEOtQ+OL+6hmsluLZLjTYre4hjkx5EpMrPJGcj5wV jXOOQ/tXVW+rXLz2sTupaaOB9oXBOS+8j6YX6VXuten/ALKsZbe5jadmC3GGQbcq Tzu4HQUc6HY6WwEq6fbCfPnCJQ+Tk7sc/rUrdaSAloEZsElQTinEAmrQh1V71pY7 Gd4F3TKjFBjPOOKsUhoYHNtd6o+5LbzJATHiSSEpgnO4YI6dOe1XLy7urRLAujsr Ni48uIyY+U/3R61oNcRRyFDnIwSAM9c/4UguVyuVZSz7Bkdff6Vny9LjMSXUtTe9 uRFZzLbqCIXMY+Yrgk9c8/MBx2HrU2jXuoXlwyXcDQqibzuTbnfhlA/3fmB/CtwK OKUoDRyBcEGFxQetOAxSHrWghaQ9KWkPQ0Acx4q8R6f4Xt3vb2Tc8w2R24IHmkA8 c9uaxvCPjxddgjE+nNb3kjlY1BLoUzx8/c9efUH1rB+OugzXukWWrxOdtk+yRAuS QxHIPbBFcl8IWub7UpbCFbry45VmaSORgkQByQw75HTH9aaWgH0UvemTzrbwyTSH CRqXY+wpWcICWYKB3NeN/Ebx6NZeXwvosmwSSeTc3RJAx3Axzj3xzSsB0Xg34pHx h4ivNOttGuFt4vmjuAcgJnHz+h4yMdefTn0TrXF/DHTrfSvBdpCixec7OZHXq+GI BJ6njArteooAD0NYMuuQx+IpbaW7SOC2tfNkUuBuJPYdTgA59OK3j0NfG/i3RtZ0 W/FzdvKIrtPNgl8wbplbkMQCcZz3ppXA9M8R/EM+MJn0bdFaWHn8tlgZAOQCR/8A WqPwpq//AAj1zdaXoJFtc3QGFugJShwSoBHrkHPIwwrhPDPhez1KNnvb1o7kkBET BXcegznrXo3h3wMk19pE07t50hYu0RIDbWwTjjHA69+DzmrsgOatNZ8T+Nb0aY2s R/aZLyTzIJJGQxqqgEnHG056dflOBXrHw8+HeneGhLfy5uNTaWRDK3IQBivyjtkD PPPNclq/wn1rR/F174n8KzQF1f7Rb2jKB85J3L2GB1FepeD5dbm8OQSeIrWO21Ms 3mxxkEdevBI5+tS2BoX1pbzQfvIgdnKEKSQfw5x7U+wlkksIGlj8uQoNyehrF8Y+ K7LwjY299qCTG3eby2MSgkHaSOPwq1oGuweINIi1K2RxBMW8vjkqCQCakCh4p1+w gsZtMe68qe5PkMSjYRSMuc9BhNx6+lfO/jC81DxHq13q5jMdhBOEVzwN3RVX1wAM 4/rXr/in4eyeLPHxla5e009LdGleOPJkfJGPTOO/PauQ+OFmPD+laBZWTwx6ZFuR bVeGLd3PbPv6mqiwOQj0m7fRWvlvTCxKTRbGO4guVGMdD8pPrzXQ+BvEZj1SNZ9R ZNjqy3GzJdt2G3HPQ/N7V5xp/jC6sYGgeJJlGzy9w4XaxYA/3upFdJ8Pb68vDd2l tb20rna4SYn95ht2wDtk9xiqv0A+sIzuXcDkHpT6zdAvJtQ0S2uZ7d7eR15jfqME jP0OMj61pVmBVvrG01G2e2vbaK5t3xuimQOpx04PFPtrWCzto7e2hSGGNQqRxqFV R6ADpU9JQAhGBmvm/wDaHuXk8T6ZbELsjtC6kZzlm5/lRRTW4Hizn5sV6P8ABeZp PG0ViRiKeJ0YqxDDjqCDwaKKrqB9LeDr+TUvDFpcypGjNvXbGCFAV2UAZJ7KK3M8 0UVADqQ9aKKAP//Z ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename*0="spacedesc=sponsoredfeature1&comfolder=gl"; filename*1="obal(tempcommercial)&keywords=,Lebanon+("; filename*2="News),Gay+rights+(News),Middle+East+(New"; filename*3="s),World+news,&site=Commentisfree&bandwi"; filename*4="dth=satellite&url=%2Fcommentisfree%2F200"; filename*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=-"; filename*6="1663059319&system=blog&blockVideoAds=false&partnerid=&.js" Content-Type: application/x-javascript; name*0="spacedesc=sponsoredfeature1&comfolder=gl"; name*1="obal(tempcommercial)&keywords=,Lebanon+("; name*2="News),Gay+rights+(News),Middle+East+(New"; name*3="s),World+news,&site=Commentisfree&bandwi"; name*4="dth=satellite&url=%2Fcommentisfree%2F200"; name*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=-"; name*6="1663059319&system=blog&blockVideoAds=false&partnerid=&.js" Content-Location: http://ads.guardian.co.uk/js.ng/spacedesc=sponsoredfeature1&comfolder=global%28tempcommercial%29&keywords=%2CLebanon%2B%28News%29%2CGay%2Brights%2B%28News%29%2CMiddle%2BEast%2B%28News%29%2CWorld%2Bnews%2C&site=Commentisfree&bandwidth=satellite&url=%252Fcommentisfree%252F2009%252Faug%252F31%252Flebanon-gay-rights&rand=-1663059319&system=blog&blockVideoAds=false&partnerid=& Content-Transfer-Encoding: Base64 ZG9jdW1lbnQud3JpdGUoJzxhIGhyZWY9XCJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrXCI+XG48aW1nIGNsYXNzPVwiYWQtcGxhY2Vob2xkZXJcIiB3aWR0aD1cIjFc IiBoZWlnaHQ9XCIxXCIgYm9yZGVyPVwiMFwiIGFsdD1cIlwiIHNyYz1cImh0dHA6 Ly9hZHMuZ3VhcmRpYW4uY28udWsvYWRtYW5hZ2VyL2RlZmF1bHRzL2RlZmF1bHRf dHJhbnNwYXJlbnRfMTI4eDY0LmdpZlwiLz5cbjwvYT4nKTs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename*0="spacedesc=sponsoredfeature2&comfolder=gl"; filename*1="obal(tempcommercial)&keywords=,Lebanon+("; filename*2="News),Gay+rights+(News),Middle+East+(New"; filename*3="s),World+news,&site=Commentisfree&bandwi"; filename*4="dth=satellite&url=%2Fcommentisfree%2F200"; filename*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=1"; filename*6="105431669&system=blog&blockVideoAds=false&partnerid=&.js" Content-Type: application/x-javascript; name*0="spacedesc=sponsoredfeature2&comfolder=gl"; name*1="obal(tempcommercial)&keywords=,Lebanon+("; name*2="News),Gay+rights+(News),Middle+East+(New"; name*3="s),World+news,&site=Commentisfree&bandwi"; name*4="dth=satellite&url=%2Fcommentisfree%2F200"; name*5="9%2Faug%2F31%2Flebanon-gay-rights&rand=1"; name*6="105431669&system=blog&blockVideoAds=false&partnerid=&.js" Content-Location: http://ads.guardian.co.uk/js.ng/spacedesc=sponsoredfeature2&comfolder=global%28tempcommercial%29&keywords=%2CLebanon%2B%28News%29%2CGay%2Brights%2B%28News%29%2CMiddle%2BEast%2B%28News%29%2CWorld%2Bnews%2C&site=Commentisfree&bandwidth=satellite&url=%252Fcommentisfree%252F2009%252Faug%252F31%252Flebanon-gay-rights&rand=1105431669&system=blog&blockVideoAds=false&partnerid=& Content-Transfer-Encoding: Base64 ZG9jdW1lbnQud3JpdGUoJzxhIGhyZWY9XCJodHRwOi8vd3d3Lmd1YXJkaWFuLmNv LnVrXCI+XG48aW1nIGNsYXNzPVwiYWQtcGxhY2Vob2xkZXJcIiB3aWR0aD1cIjFc IiBoZWlnaHQ9XCIxXCIgYm9yZGVyPVwiMFwiIGFsdD1cIlwiIHNyYz1cImh0dHA6 Ly9hZHMuZ3VhcmRpYW4uY28udWsvYWRtYW5hZ2VyL2RlZmF1bHRzL2RlZmF1bHRf dHJhbnNwYXJlbnRfMTI4eDY0LmdpZlwiLz5cbjwvYT4nKTs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=guardianjobs.gif Content-Type: image/gif; name=guardianjobs.gif Content-Location: http://static.guim.co.uk/static/86669/common/images/guardianjobs.gif Content-Transfer-Encoding: Base64 R0lGODlhZgARALMPAFiMs4+txO/y9LHG1s3a4wBRjShsndzl60B8qKC70ApYkRpj mBFclMDR3XOevvj4+CH5BAEAAA8ALAAAAABmABEAAAT/8MlJq714CrCUOgJSGEdm CkOQCBiRBEFjznSdJUrBgExRELaK4BUoXYYwYHDJvBh0pQEg0ZwcBgRWK8kkOBAI FSCWcAQEjbJDMPwiHIMHKjA+AOINBwDQ26X1IANuUyx/DgR0Uw8HBA0DLAIEAwkN Rg1JkgNGaAOdWRMDPQ4OPgYcPggCTyMPCQULDgs+CQeyBQhPKjkIADk7AD4FjD5f xBvBtj4HlzBsLwkpMQ/MMNUgL50wmyILbKIoPgAPBDkGrQUBDwOo6sgGsSMsTzuq UAS3cj3d9QpYq49E5pyZpg1RDDQwsDSbtkJCvX2yEEwLt6iHAQFXCrFrsAtEAIr1 /3Y8mJdFk4QnC0rMKwGsAJVoB2A0NNjAIBABMplR+jQB2AdyBRxMLCDugEVIgkTg 44jvAamgclaO1HEzT69XIKS2fJlEJouYARQGuEnEYLWGEg6IMPAEQYkGFI3GS9AD wFOJTCU6JRYVytQdBNoGkJUyJMtZ6rqq+JrQppyAZmHIkNDAgIoESoYWPUp43MZd Ej4SPel3ZUsgKLP63Zq4yDMWNB3jVHGgtqSEDkW8GeVgBdxXZUoRkNVPNF52Q/sN L6AANXM7PmLok7cacTSERVoz4mITkZIXk48FC3ZG6YgcRJ/eWlUsHAv1HVC1vIXD xwKle4JNQZ/yusCy48gUzXwjNKXwCCgdMMAAeubE1NtsWLRRxAGjJGDhhVoI4kAa YTlyoW+jZBFAbx8OkMaFV2gjxzIROsRIAzBuskyMWrTCgAEE2NZWFTz2CFOPFwCz gBLLpQPkkTOwQU2NSC7ChwJsKQALk01WKUFkmVkZEwBghGXllxRcYSKVTUYAADs= ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=A-Palestinian-youth-stand-003.jpg Content-Type: image/jpeg; name=A-Palestinian-youth-stand-003.jpg Content-Location: http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2009/8/14/1250262038221/A-Palestinian-youth-stand-003.jpg Content-Transfer-Encoding: Base64 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 Y+SHkS9D8k/ZLABtFovZHu1oXHHcvIEjA0kf0qRb6Lnx8qwb8Iv01W5jXSR1UVPK e7cbNk532/hKcaB4I5IZG0SRo3DSadPUNvztRr/IWIiYJIkG7gUOwIzyCYkAcS/e QvPJBLKxkm9IkJIsdPNgB0AqBECg2XSkTWW67AimYdz1R6BlHl/lXTFKarrR6q6J pFipqV9KJom62o86VM0+ID4BcmXIldUKkx3CjZ0PxvUREQO9TKVyRbZc5JJMORsU s30jcpsbbherWGmOSrlPbJi+ySOp3am9PhYsy6htF7+FXQ08Jk8WvbpV1CukyVlU JlWaPTfHcre3xHSoIcMrRLF0FNjplZ6Jx4Z++1okPgf9Jbpp50s5tw6zonJRjdn0 A19tUTi8VkPJPGk0EGyyT9yRQBc2sOu78KBcyYgAsT2UTFrDm5AIHauPhzwlNnbl 1Kgan+JFVF6MtXCMcScWZirw6QRTJySSYiNLu9Ee8XItazMCOlUJ5EcCJUVuJhE+ YDEP2LW+z/bGLyRhyIjkZCG5PYEKbWOm1jK+pHwp3E9Wt44PmERL95/ALNzsI3CO HVTuC144GLiJXgD5EaZcawyplPBjDt7tzDuLK4cG3Rf2UbL9QuZcY/bThQ9RqW7K EOlMfHhZJ80Guns6F95T8JM54SPAE2UXie6kIkJ+op0JdiG1LeJrP9KwcrJh5srp jbr3yl/l/iP+oH6ouRk27UuIi8vkEn5Tiva+L7f5rH41Puc4BIcppI1doCWV2WNi CqAbSLp6j8q0cDHmC1wgyrUdm3xQsi8CHjQdiwvO5TYuQ3GRoiwRxoivt9ZG0Gxa ieoW/wCdnLBmG2iLh3msUAcu531SXVTZTpa9LK+iuxhlRtvCG56Erfr4i9CnxO6N aFyNW+S0uHNkuqZeXxzS4aFRJKyspKg2O06Lesu5GILRk0ityzOcg8ovELvKctkz ztPiouLAWASBFsoUDQn41FixEBpdRVr12WsaBZ7LaSdy7nc19TWhZAiszIJl70KY CAGPiLgUzGTpCdplXt1tV3SzJrHvv6rfCiFQFRkW3ndb41IXInD7d8fsdzdaXv8A b3fy9vpp59aQyt3bZvzWlhNRner/ACZNsb9D+4ive/cHe7n12/ltSM/N4n3bLYh5 PIdr7pnzXb2j7LZ27G3S+22nxpTG16nT+W/HpZI8nbs/+yv9luXubr26+Ftb07HX o+pZ9z6f5foot97D+w/TU+x7lu5Jb/5uy278v2n+OtaVn7biPO4c9+XH/wBLz+Xz 8w+U/DZuS5767n67xF/uNv20/a7+/b3tw/t97+rbbb6/GnvT/teUvJ49/H9KduiQ yPNYc3+Ps6b8J3v+z5X3Fvrb9Vta9req/wD6reXwvStryfsrT6N0au77bcvejXOX nz99fbsXeT/Tf+r8v9t2+73Zu3s297tdv197/wAlum3fpbpTVh3i+tHQ7jMWXjnu fb+qHz7cW/8A3bBVvUP7j7h+Cti/1D4/igMT7LdL+od3+2ex2rX7mlt1/Cs67zpx bWvuTtjy6830o3avQ+C/UPsMf9N7fc7S9rvbO5e/5vzX8vhXnsrhzPJ9dl6nE5+W OPZurs//ALZvyPuv7e09zdbZb83b8OvW1Dt/bMG19tUT+arMyzmTbb/yb3v+W3St C3r0pa7p1JZmfa9kdq++/qt0t8aYtcuVUlkcOFFUOz2B3Ov5b+X4UavKiW6eFUF/ T7vw/C9Hqk+l1//Z ------------s15lAfYPyVf0N6breeEJW5 Content-Disposition: inline; filename=beirut_car_thumb.jpg Content-Type: image/jpeg; name=beirut_car_thumb.jpg Content-Location: http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2008/01/25/beirut_car_thumb.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgEASABIAAD/4Q1PRXhpZgAATU0AKgAAAAgABwESAAMAAAAB AAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAe AAAAcgEyAAIAAAAUAAAAkIdpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQ QWRvYmUgUGhvdG9zaG9wIENTMyBNYWNpbnRvc2gAMjAwODowMToyNSAxMDo0Njox NwAAA6ABAAMAAAAB//8AAKACAAQAAAABAAAAjKADAAQAAAABAAAAVAAAAAAAAAAG AQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAA AgEABAAAAAEAAAEuAgIABAAAAAEAAAwZAAAAAAAAAEgAAAABAAAASAAAAAH/2P/g ABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAC/+4ADkFkb2JlAGSAAAAAAf/b AIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwR EQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAVACMAwEi AAIRAQMRAf/dAAQACf/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEA AQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIR AwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZE k1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm 9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUy gZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi 8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//a AAwDAQACEQMRAD8A0G1GtvMpe4n2qycex5gCFYow2tGoJPEplpabW2EQ5M+oxqr1 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 fCVRwXObYXNMGI+9X9rvSjXbMT2/13Ii+ElB+YP/08h31mw69GMusc7VsOn4Fyxs 7r+fktdjF/6ImSCAJn976SzLLmz+jkDz1P3wotBOqb7WK7GOA8eGKfdy9ckz5zkn c57nhhJcGjQHgIrKwWmRygY8h2oOvBhW22alr2kHsR/tU0CL1YZX0RhzmD2uI8gS E/2jI7WO/wA4qJI3EAF0E8apbmncQNBwnXHuEerxSsz89h3MyLGmIkPd/emdm5jz 77nu/rGU1YB0gfMxwpFruzQfgkBA7aqJkwN13O53yKkcvKgN9V8DtuP96UOA1apB jCJLg0+G0yfgjUeyLKmZ+YwyLCZ11g/9VKMesZZABDDt4O3/AMhsQn0loBLmyeW9 x/WSFLY1sAPYRKaZQXVNOetWlzbHUVmxn0XgFpjiOVbyeqtHTnZFejiNrR4POn/R WZ6TAJc4x2hv96qZlkMFbSSzdug+MQhxx6J4Sd1dOx235TRYJrZ7nz38P+ktbqF1 Zx3sEe5hACysJwrYSYmwwAeYCfJLYLg07jpMnv5ICVClGNm0GEGm8NcYBB1WpIj0 vWMx9Dbrt48FkYv8+wRukwAO8q/7IiHxEdt0zxym2u6v/9Tz/wDRfm7U53x2WSkg h1R6vedvkjM2dufNYiSSnocX7Z6lv2SZ03bY8PP+0qzd20xxOvgsdJMj88vl/R2+ f/D/AO5TL5Rv13+X/Beiq2bPbz5odv2z/B7Y7cysFJWD8o3/AMHZhG5/a64/aM67 Y+SMz1dv6Xb/AGf9qwkkB9Vx+jvmY/JPgnbvnSZ8+Fz6SjluVw2Dt3epJn6XeVGj 0vf9rjZA4/1+ksZJKO6Ts6o9D83+xu5hO/0tjt07vPmfJZKSX2rXV6Xs+3U7Ppbt N3Ex7f8ApKxpHfdPnErCSR7rn//Z/+0vzlBob3Rvc2hvcCAzLjAAOEJJTQQEAAAA AAAHHAIAAAIAAAA4QklNBCUAAAAAABDo8VzzL8EYoaJ7Z63FZNW6OEJJTQPqAAAA AB2mPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAx LjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3Qt MS4wLmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+Y29t LmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1Ib3Jpem9udGFsUmVzPC9rZXk+Cgk8 ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5 PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJ CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8 YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZv cm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJ CQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJ PHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRh dGU+MjAwOC0wMS0yNVQxMDo0NTowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9p bnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29t LmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRp Y3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFy cmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt YXQuUE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4K CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJ CTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1vZERhdGU8L2tleT4KCQkJCTxk YXRlPjIwMDgtMDEtMjVUMTA6NDU6MDlaPC9kYXRlPgoJCQkJPGtleT5jb20uYXBw bGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwv aW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNv bS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRpY3Q+ CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8 c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5 PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu UE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20u YXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20u YXBwbGUucHJpbnRpbmdtYW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJPGRhdGU+MjAwOC0wMS0y NVQxMDo0NTowOVo8L2RhdGU+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNr ZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8 L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50 LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5j b20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNv bS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGlj dD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNh bFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBs ZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnBy aW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA4LTAxLTI1VDEw OjQ1OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5z dGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGlj dD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFn ZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5j b20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNv bS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBs ZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGlj dD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNh bFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5h cHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5h cHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDA4LTAxLTI1 VDEwOjQ1OjA5WjwvZGF0ZT4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwv ZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQu c3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5 PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwv a2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3Jl YXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8 L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJh eTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJ CTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8 L3JlYWw+CgkJCQkJCTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9y ZWFsPgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj a2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5n bWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwOC0wMS0yNVQxMDo0NTowOVo8 L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxh Zzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJ CTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VG b3JtYXQuUE1BZGp1c3RlZFBhcGVyUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5n PmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20u YXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJ CQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBN QWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFs Pi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44 MjQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJ CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJ CQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJ CQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJ CTxkYXRlPjIwMDgtMDEtMjVUMTA6NDU6MDlaPC9kYXRlPgoJCQkJCTxrZXk+Y29t LmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdl cj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4K CQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1QYXBlck5hbWU8L2tl eT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0 b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlw dDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFy cmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFw cGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJp bmc+aXNvLWE0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj a2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBt LlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50 aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDMtMDctMDFUMTc6NDk6 MzZaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0 ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9kaWN0 PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5Q YXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0 cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8 a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxh cnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVy SW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJ CQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+CgkJCQkJ CTxyZWFsPjc4MzwvcmVhbD4KCQkJCQkJPHJlYWw+NTU5PC9yZWFsPgoJCQkJCTwv YXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv a2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3Ry aW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9r ZXk+CgkJCQkJPGRhdGU+MjAwOC0wMS0yNVQxMDo0NTowOVo8L2RhdGU+CgkJCQkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJ CTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJ PC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRq dXN0ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUu cHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUu cHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5w cmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0 PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0 ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwv cmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD44MjQ8L3Jl YWw+CgkJCQkJCTxyZWFsPjU3NzwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxr ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3Ry aW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCQk8a2V5 PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRl PjIwMDgtMDEtMjVUMTA6NDU6MDlaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxl LnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9p bnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5 PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+ CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9y PC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8 L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJh eTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBs ZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0 cmluZz5BNDwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl dC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5wbS5Q b3N0U2NyaXB0PC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj a2V0Lm1vZERhdGU8L2tleT4KCQkJCQk8ZGF0ZT4yMDAzLTA3LTAxVDE3OjQ5OjM2 WjwvZGF0ZT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVG bGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTwvZGljdD4K CQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj a2V0LkFQSVZlcnNpb248L2tleT4KCQk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+CgkJ PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnByaXZhdGVMb2NrPC9rZXk+CgkJ PGZhbHNlLz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5 PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3Ry aW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZl cnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFw cGxlLnByaW50LnRpY2tldC5wcml2YXRlTG9jazwva2V5PgoJPGZhbHNlLz4KCTxr ZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNv bS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4K PC9wbGlzdD4KOEJJTQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAA DgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44 QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoA AQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZ mgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJ TQP4AAAAAABwAAD/////////////////////////////A+gAAAAA//////////// /////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/ ////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAAC QAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANVAAAABgAAAAAAAAAAAAAA VAAAAIwAAAAQAGIAZQBpAHIAdQB0AF8AYwBhAHIAXwBwAGkAeABpAGUAAAABAAAA AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAIwAAABUAAAAAAAAAAAAAAAAAAAA AAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3Vu ZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0 bG9uZwAAAAAAAAAAQnRvbWxvbmcAAABUAAAAAFJnaHRsb25nAAAAjAAAAAZzbGlj ZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25n AAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VP cmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBl AAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3Ag bG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAVAAAAABSZ2h0 bG9uZwAAAIwAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABN c2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNI VE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0A AAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAA AA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0A AAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAA AAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAA AAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAAAAA4 QklNBBEAAAAAAAEBADhCSU0EFAAAAAAABAAAAAE4QklNBAwAAAAADDUAAAABAAAA jAAAAFQAAAGkAACJ0AAADBkAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRv YmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwP FRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsL DQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDP/AABEIAFQAjAMBIgACEQEDEQH/3QAEAAn/xAE/AAABBQEB AQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYH CAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQV 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 YTv9LY7dO7z5nyWSkl9q11el7Pt1Oz6W7TdxMe3/AKSsaR33T5xKwkke65//2QA4 QklNBCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABv AHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADMAAAAB ADhCSU0EBgAAAAAABwAFAAAAAQEA/+EPAmh0dHA6Ly9ucy5hZG9iZS5jb20veGFw LzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6 TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIg eDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24g RmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJk Zj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+ IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcD0iaHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9y Zy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5h ZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMu YWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRv YmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv bS9leGlmLzEuMC8iIHhhcDpDcmVhdGVEYXRlPSIyMDA4LTAxLTI1VDEwOjQ2OjE3 WiIgeGFwOk1vZGlmeURhdGU9IjIwMDgtMDEtMjVUMTA6NDY6MTdaIiB4YXA6TWV0 YWRhdGFEYXRlPSIyMDA4LTAxLTI1VDEwOjQ2OjE3WiIgeGFwOkNyZWF0b3JUb29s PSJBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaCIgZGM6Zm9ybWF0PSJpbWFn ZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SGlzdG9y eT0iIiB4YXBNTTpJbnN0YW5jZUlEPSJ1dWlkOjYyQkYxQTAzQzVDQ0RDMTE4OUU3 QkNDMzAxNTkwODYyIiB4YXBNTTpEb2N1bWVudElEPSJ1dWlkOjYxQkYxQTAzQzVD Q0RDMTE4OUU3QkNDMzAxNTkwODYyIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZm OlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249Ijcy MDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRpdmVE aWdlc3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwy ODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3Miwz MDUsMzE1LDMzNDMyOzVFREYwNUNERjI5REZENzVBRjZBNjQ5MzQwRDNCMzNBIiBl eGlmOlBpeGVsWERpbWVuc2lvbj0iMTQwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0i ODQiIGV4aWY6Q29sb3JTcGFjZT0iLTEiIGV4aWY6TmF0aXZlRGlnZXN0PSIzNjg2 NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUxMCw0MDk2 NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1 NiwzNzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4 NCwzNzM4NSwzNzM4NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4 OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4 Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5MSw0MTk5Miw0MTk5Myw0MTk5 NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMs MTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7Q0I3NzRE RkQ3Qjg4RjExQjEyMkJBNEJCNjc1QTUwREYiPiA8eGFwTU06RGVyaXZlZEZyb20g cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwv cmRmOlJERj4gPC94OnhtcG1ldGE+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPD94cGFja2V0IGVuZD0idyI/Pv/uAA5BZG9iZQBkQAAAAAH/2wCEAAQD AwMDAwQDAwQGBAMEBgcFBAQFBwgGBgcGBggKCAkJCQkICgoMDAwMDAoMDAwMDAwM DAwMDAwMDAwMDAwMDAwBBAUFCAcIDwoKDxQODg4UFA4ODg4UEQwMDAwMEREMDAwM DAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAjAMBEQACEQED EQH/3QAEABL/xAGiAAAABwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEB AQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAgEDAwIEAgYHAwQCBgJzAQIDEQQABSES MUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0U5KismNzwjVEJ5OjszYX VGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVmdoaWprbG 1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6Slpq eoqaqrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx 8BTB0eEjQhVSYnLxMyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRV N/Kjs8MoKdPj84SUpLTE1OT0ZXWFlaW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3 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 hrQUG3zzKyyBDi4okGy8w8uLHJqSQyvwV0cB/AgVH07ZhRJc6fJnXNPT+o/pF/V9 P/eX0jy9L7PTjWmR4597Go1b/9DxrdX8XOtmGjTp8ZDvUjc8go6nJEuOI96lHG70 kNTWpNRTfxyI5pKYaV6iy1kV+T04txqCQdgckLG7CVHZkEN2BI0VxCyMDRXWg7dw SMz8Oor6nDyYL3igGdfVkjjR5OLsPhAbatexPjgOeIO7MYpHk0JI39V1jPBdlqR1 P3+GSOogx8KSLtVWSqBFqakc34gBR409sRqQdgvgnqVRopa0WFZB4qTTt3IGXicu 5q4R3tGOZQA0AHyNfwrh4ijhCqlvBIpLzpG4FRGYn5sR2XehP05CcyBY3TGFml1x pzQRo7Sx82qWi/aQf5VKgH2rmJ+bLlflg5dPhMZaS7RXJ+BQoYFadTv45A6sshpx 1WixtkjLyzOVA+HhF1+lgMgdXLozGnDHvMF2Vt47GF2Np6hmCNQHmFC7gbbDI+LK fNmMYjyX+XZ1tLeR3KCW6cKqsaNxQHoOvWuRMkldrEkQUypEwlkqnPmxA5AinFq4 8SOG0h0Qn9JWyBDKWcIsa7liwoAPnXCDTKQsMv8A9H48eFxx4+lSi+rz5fZ+1Wnv XBwHn0Y2OXV//9HyAfqNR6HpVrt1r+OQ3a9l7fWeJpxpTf5Y7+aNlJfrtRy5+jUV 4dePt7YEhNLb6tv6f95T9qtenv3wbJTHRP8AEP1u+/w/z5fD63o8a/Y2+1/suma/ W/luGPj8unP9Dlafxt/C+PL9KSw+t6L8a+lX4+vGvv2rmycCXNPLL6t6H7mnq7/b 8a/dm0xVwehwZ3xepC336fqfqno+n+zXly/HbKp+I3Q8PqlK/wCLuXxelx/yvTp/ XKfX5t37tM7f696R+v8ApV/4qrSnvy2y2PiW1S4FZufEf8Jy68fav+3mLnri2bsd 8LcP1n1Bw5c96cvs/TXbMRsCBv8A63yPOnr1PLnWn0f2Ydmajpv1Gl1/iGn1bitP Tp0r2rvyr045lYuFqyXtSDT9GU/cUpt9W9Wnqca7ddq16++Uyu2O6+f6j9Xl9Xl6 9f2q8uVP2a7Y+pd+in5L9D/E2m/V/wDej1f3fr09P1OJ4Vp/lcclK6bhzCcfDx/a +sc/8rj6lf1fxy7emra3/9kK ------------s15lAfYPyVf0N6breeEJW5--