Content-Type: multipart/related; start=; boundary=----------yoDhov9RdXDsUjdkhFlUJc Content-Location: http://www.bestbuy.com/site/olspage.jsp?skuId=8749287&productCategoryId=abcat0101001&type=product&id=1202649424157 Subject: =?utf-8?Q?Samsung=20-=2052"=20Class=20/=201080p=20/=20120Hz=20/=20LCD=20HDTV=20-=20LN52A650?= MIME-Version: 1.0 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olspage.htm Content-Type: text/html; charset=ISO-8859-1; name=olspage.htm Content-ID: Content-Location: http://www.bestbuy.com/site/olspage.jsp?skuId=8749287&productCategoryId=abcat0101001&type=product&id=1202649424157 Content-Transfer-Encoding: Base64 CgoKCgoKCgoKCgoKPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBY SFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RS L3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgoKPCEtLSBCOjAw NiAtLT4KCgoKCgoKCgoKCgoKCjwhLS0gQjowT0UgLS0+CgoKCgoKCgoKCgogCgog CgoKCgogCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKPCEtLSBCOjBa WCAtLT4KCgoKCgoKCgoKCgoKCgoKCgoKCjwhLS0gQjowWlYgLS0+CgoKCgoKCjxo dG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFu Zz0iZW4iIGxhbmc9ImVuIj4KPGhlYWQ+CgoKCgo8c2NyaXB0IGxhbmd1YWdlPSJq YXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgdHJhY2sgPSBu ZXcgT2JqZWN0KCk7Cgp0cmFjay5zeXNEYXRlID0nMDgvMTIvMjAwOSc7Cgp0cmFj ay5yZWNvZ25pemVkID0nQW5vbnltb3VzJzsgCgoKCgp0cmFjay5zZWNDaGFubmVs ID0nMCc7CgoKCgoKPC9zY3JpcHQ+CgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9pbWFn ZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFs L2pRdWVyeS9qcXVlcnktMS4yLjMubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPiA8L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1 eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2pRdWVyeS91 aS50YWJzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8L3NjcmlwdD4KCjxs aW5rIGhyZWY9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9V Uy9zdG9yZS9zdHlsZXMvQkJTdHlsZXMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5 cGU9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iaHR0cDovL2ltYWdlcy5iZXN0YnV5 LmNvbTo4MC9CZXN0QnV5X1VTL3N0b3JlL3N0eWxlcy9iYnkyLmNzcyIgcmVsPSJz dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Cgo8bGluayBocmVmPSJodHRwOi8v aW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2ds b2JhbC9oZi9iYnkyL3N0eWxlcy9wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIg bWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyI+CjxsaW5rIGhyZWY9Imh0dHA6 Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMv Z2xvYmFsL2hmL2JieTIvc3R5bGVzL3BkcDIuY3NzIiByZWw9InN0eWxlc2hlZXQi IHR5cGU9InRleHQvY3NzIj4KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+ CnZhciBjb250ZXh0Um9vdD0iL3NpdGUiOwp2YXIgaW1nU2VydmVyPSJodHRwOi8v aW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvIjsKdmFyIHNlY3VyZUJC eVVybD0iaHR0cHM6Ly93d3ctc3NsLmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/IjsKdmFyIGJieVVybD0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29s c3BhZ2UuanNwPyI7CmZ1bmN0aW9uIHdTKHdpZHRoLGhlaWdodCkKewpkb2N1bWVu dC53cml0ZSgnPGltZyBzcmM9IicraW1nU2VydmVyKydpbWFnZXMvZ2xvYmFsL21p c2Mvc3BhY2VyLmdpZiIgYWx0PSIiIGJvcmRlcj0iMCIgaGVpZ2h0PSInK2hlaWdo dCsnIiB3aWR0aD0iJyt3aWR0aCsnIj4nKTsKfQo8IS0tIEI6MFZVIC0tPgogIAp2 YXIgc3RySGV4ID0gIjMzNjY5OSI7CnZhciBzdHJDYXQgPSAiYWJjYXQwMTAwMDAw IjsKICAKPCEtLSBFOjBWVSAtLT4KPC9zY3JpcHQ+Cjx0aXRsZT4KU2Ftc3VuZyAt IDUyIiBDbGFzcyAvIDEwODBwIC8gMTIwSHogLyBMQ0QgSERUViAtIExONTJBNjUw CjwvdGl0bGU+CjxzY3JpcHQgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29t OjgwL0Jlc3RCdXlfVVMvc3RvcmUvanMvb2xzb3ZlcmFsbGNvbW1vbi5qcyIgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4gPC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRw Oi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvc3RvcmUvanMvb2xz aGVhZGVyZm9vdGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8L3Njcmlw dD4KPHNjcmlwdCBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVz dEJ1eV9VUy9zdG9yZS9qcy9vbHNjb21tb24uanMiIHR5cGU9InRleHQvamF2YXNj cmlwdCI+IDwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0 YnV5LmNvbTo4MC9CZXN0QnV5X1VTL3N0b3JlL2pzL29sc3BvcHVwbm9sZWZ0Y29t bW9uLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiA8L3NjcmlwdD4KPHNjcmlw dCBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9z dG9yZS9qcy9vbHNub2xlZnRtYXN0ZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlw dCI+IDwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1 eS5jb206ODAvQmVzdEJ1eV9VUy9zdG9yZS9qcy9vbHNwb3B1cG1hc3RlcmNvbW1v bi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gPC9zY3JpcHQ+CjxzY3JpcHQg bGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgo8IS0tCmlmIChpc19uYXY0KXsKZG9jdW1l bnQud3JpdGUoJzxsaW5rIGhyZWY9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206 ODAvQmVzdEJ1eV9VUy9zdG9yZS9zdHlsZXMvQkJTdHlsZXNfTmV0c2NhcGUuY3Nz IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4nKTsKfQovLy0tPgo8 L3NjcmlwdD4KCgoKPCEtLSBCOjBWRCAtLT4KCgoKPG1ldGEgaHR0cC1lcXVpdj0i Y29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgi PgoKCjxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJTQU1TVU5HLCA1MiIg Q2xhc3MgLyAxMDgwcCAvIDEyMEh6IC8gTENEIEhEVFYsIExONTJBNjUwLCBMQ0Qg VGVsZXZpc2lvbnMsIFRlbGV2aXNpb25zIj4KCgoKCgo8bWV0YSBuYW1lPSJkZXNj cmlwdGlvbiIgY29udGVudD0iU0FNU1VORyA1MiIgQ2xhc3MgLyAxMDgwcCAvIDEy MEh6IC8gTENEIEhEVFY6IDQgSERNSSBpbnB1dHM7IFVTQiAyLjAgcG9ydDsgVG91 Y2ggb2YgQ29sb3IgY2FiaW5ldDsgMTY6OSBhc3BlY3QgcmF0aW8iPgo8bWV0YSBo dHRwLWVxdWl2PSJwcmFnbWEiIGNvbnRlbnQ9Im5vLWNhY2hlIj4KPCEtLSBFOjBW RCAtLT4KCgoKCjxsaW5rIFRZUEU9InRleHQvY3NzIiBSRUw9IlNUWUxFU0hFRVQi IEhSRUY9Imh0dHA6Ly9yZXZpZXdzLmJlc3RidXkuY29tL3N0YXRpYy8zNTQ1YS9i YXphYXJ2b2ljZS5jc3MiID48L2xpbms+CjxzY3JpcHQgTEFOR1VBR0U9IkphdmFT Y3JpcHQiIFNSQz0iaHR0cDovL3Jldmlld3MuYmVzdGJ1eS5jb20vc3RhdGljLzM1 NDVhL2JhemFhcnZvaWNlLmpzIiBUWVBFPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2Ny aXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9Imph dmFzY3JpcHQiPgp2YXIgcHJvZHVjdElkID0gIjEyMDI2NDk0MjQxNTciOwp2YXIg c2t1SWQgPSAiODc0OTI4NyI7CnZhciBjaGlsZFNrdSA9ICJudWxsIjsKdmFyIGNv dW50ID0gIm51bGwiOwoKCgp2YXIgcmV2aWV3VVJMID0gImh0dHA6Ly93d3cuYmVz dGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD90eXBlPXByb2R1Y3QmaWQ9MTIwMjY0 OTQyNDE1NyZza3VJZD04NzQ5Mjg3JmNoaWxkU2t1PW51bGwmY291bnQ9bnVsbCNo ZWFkZXJDdXN0b21lclJldmlld3MiOwoKZnVuY3Rpb24gb3BlblByb2R1Y3RQYWdl KCkgewovL0NoYW5nZXMgZm9yIFBEUCAyLjAgU3RhcnQKLy93aW5kb3cubG9jYXRp b24uaHJlZiA9IHJldmlld1VSTDsKLy9DaGFuZ2VzIGZvciBQRFAgMi4wIEVuZAp9 CmRvY3VtZW50LmRvbWFpbiA9ICJiZXN0YnV5LmNvbSI7Cjwvc2NyaXB0Pgo8c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQi Pgp2YXIgQlZpc0xvYWRlZCA9IGZhbHNlOwpmdW5jdGlvbiBCVmNoZWNrTG9hZFN0 YXRlKCkKewppZighQlZpc0xvYWRlZCkKewp2YXIgcGFnZSA9IGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCdCVkZyYW1lJykuc3JjOwpkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgnQlZGcmFtZScpLnNyYz0iaHR0cDovL3Jldmlld3MuYmVzdGJ1eS5jb20v bG9nZ2luZz9wYWdlPSIrZXNjYXBlKHBhZ2UpOwpkb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgnQlZSZXZpZXdzQ29udGFpbmVyJykuaW5uZXJIVE1MID0gIjwhLS1SZXZp ZXcgcmV0cmlldmFsIHRpbWVkIG91dC0tPiI7Cn0KfQo8L3NjcmlwdD4KPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4K PCEtLSBUaW1lb3V0IGZvciByZXZpZXcgbG9hZC4gIENvbnNpZGVyIHJldmlld3Mg dW5hdmFpbGFibGUgaWYgbm90IGxvYWRlZCB3aXRoaW4gMTUgc2Vjb25kcyAtLT4K c2V0VGltZW91dCgiQlZjaGVja0xvYWRTdGF0ZSgpIiwgMTUwMDApOwo8L3Njcmlw dD4KCjwvaGVhZD4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKPCEtLSBC OjBWUi0tPgoKCgoKPCEtLSBCOjBWUyAtLT4KCiAgCiAgCiAgCiAgCgogCgo8IS0t IDEyMTgwOTUxNjg5ODUgLS0+DQoNCg0KDQo8IS0tIDEyMTgwOTUxNjkwMzEgLS0+ DQo8IS0tIEJ1c09wcyBWYXJzIC0tPg0KDQoNCg0KDQoNCg0KDQoNCg0KIA0KIA0K IA0KIA0KDQogDQogDQogDQogDQogICANCiANCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCiAgDQogIA0KPCEtLSAxMTk4ODg4MjA3MzYzIC0tPg0KDQoNCg0KDQoNCg0K DQogIA0KICAgDQogICANCiAgDQogICANCiAgIA0KICAgICA8c2NyaXB0IGxhbmd1 YWdlPSJKYXZhU2NyaXB0Ij4NCiAgICAgICB2YXIgcHJvZHVjdCA9ICcxMjAyNjQ5 NDI0MTU3JzsNCiAgICAgICB2YXIgcHJvZHVjdFR5cGUgPSAnaGFyZEdvb2RQcmQn Ow0KICAgICAgIHZhciBwYXJlbnRDYXQgPSAnYWJjYXQwMTAxMDAxJzsNCiAgICAg PC9zY3JpcHQ+DQoJIA0KCSANCjwhLS0gMTE5ODg4ODcyNDEwNyAtLT4NCg0KDQoN Cg0KDQoNCiAgDQogICAgDQogICAgICAgIA0KICAgICAgICANCiAgDQogICAgDQog ICAgICAgIA0KICAgICAgICANCiAgICAgICAgICANCiAgICAgICAgICAgIA0KICAg ICAgICAgICAgICAgIA0KICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAg ICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAg DQogICAgICAgICAgDQogICAgICAgIA0KICANCiAgICAgDQogICAgICANCiAgICAg IA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAg IA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAg IA0KICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAg DQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAg DQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgIA0KDQo8IS0tIC8xMTk4ODg4 NzI0MTA3IC0tPg0KDQoNCiAgIA0KICANCg0KICANCiAgICANCiAgICANCiAgICAN CiAgDQogICAgDQogICAgDQogICAgDQoJIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFT Y3JpcHQiPg0KCSAgIHZhciBza3VpZCA9ICc4NzQ5Mjg3JzsNCgkgICB2YXIgc2t1 ZGVwdCA9ICcyJzsNCgkgICB2YXIgc2t1Y2xhc3MgPSAnMjc2JzsNCgkgICB2YXIg c2NscyA9ICc2MDEwJzsNCgkgICB2YXIgc2Nsc25hbWUgPSAiNDMmcXVvdDstNTQm cXVvdDsgTENEIjsNCgkgICB2YXIgc2t1dHlwZWNkZSA9ICdOb3QgU2V0JzsNCgkg ICB2YXIgc2t1dHlwZSA9ICdoYXJkR29vZFNrdSc7DQoJIDwvc2NyaXB0PiANCg0K CSANCiAgICANCiAgDQoNCjwhLS0gLzExOTg4ODgyMDczNjMgLS0+DQoNCg0KDQoN CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPg0KdmFyIGd1ZXN0VXNlciA9 ICd0cnVlJzsNCnZhciB0ZW1wbGF0ZU5hbWUgPSAnUERIJzsNCnZhciBzZWNDaGFu bmVsID0gJ2ZhbHNlJzsNCnZhciBzdG51bT05NjA7DQp0cmFjay50ZW1wbGF0ZU5h bWUgPSAnUERIJzsNCjwvc2NyaXB0Pg0KDQo8IS0tIDEyMDM4MTU5MjE4OTggLS0+ DQoNCg0KDQoNCg0KICANCiAgIA0KICAgDQogIA0KIDxzY3JpcHQgbGFuZ3VhZ2U9 IkphdmFTY3JpcHQiPg0KICAgdmFyIHN5c2R0ID0gJzA4LzEyLzIwMDknOw0KIDwv c2NyaXB0Pg0KDQo8IS0tIC8xMjAzODE1OTIxODk4IC0tPg0KDQoNCgk8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCXZhciBfX0dFTyA9IHsNCgkJCWRt YToiNjIzIiwNCgkJCXJlZ2lvbkNvZGU6IlRYIiwNCgkJCWNvdW50cnlDb2RlOiJV UyIsDQoJCQljaXR5OiJSSUNIQVJEU09OIiwNCgkJCWtleXM6ew0KCQkJCWRtYTon ZG1hJywNCgkJCQlzdGF0ZToncmVnaW9uQ29kZScsDQoJCQkJY291bnRyeTonY291 bnRyeUNvZGUnLA0KCQkJCWNpdHk6J2NpdHknDQoJCQl9LA0KCQkJaXNHRU9NYXRj aDogZnVuY3Rpb24gKG1hdGNoTGlzdCwgZ2VvS2V5KQ0KCQkJew0KCQkJCXZhciBi TWF0Y2ggPSBmYWxzZTsNCgkJCQl2YXIgbUxpc3QgPSBtYXRjaExpc3Quc3BsaXQo JywnKTsNCgkJCQkNCgkJCQlpZiAoZ2VvS2V5ICE9ICcnICYmIHR5cGVvZihfX0dF T1tnZW9LZXldKSAhPSAndW5kZWZpbmVkJykNCgkJCQl7DQoJCQkJCWZvciAodmFy IGk9MCxjPW1MaXN0Lmxlbmd0aDsgaTxjOyBpKyspDQoJCQkJCXsNCgkJCQkJCWlm IChtTGlzdFtpXSAhPSAnJyAmJiBfX0dFT1tnZW9LZXldLnRvVXBwZXJDYXNlKCkg PT0gbUxpc3RbaV0udG9VcHBlckNhc2UoKSkNCgkJCQkJCXsNCgkJCQkJCQliTWF0 Y2ggPSB0cnVlOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJ fQ0KCQkJCXJldHVybiBiTWF0Y2g7DQoJCQl9LA0KCQkJcmVwbGFjZUNvbnRlbnQ6 IGZ1bmN0aW9uKG9FbElkLCBnZW9FbElkKQ0KCQkJew0KCQkJCXZhciBvID0gZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQob0VsSWQpOw0KCQkJCXZhciBnID0gZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoZ2VvRWxJZCk7DQoJCQkJDQoJCQkJaWYgKG8gIT09 IG51bGwgJiYgZyAhPT0gbnVsbCkNCgkJCQl7DQoJCQkJCW8uaW5uZXJIVE1MID0g Zy5pbm5lckhUTUw7DQoJCQkJCWcuaW5uZXJIVE1MID0gJyc7DQoJCQkJCWcuc3R5 bGUuZGlzcGxheSA9ICdub25lJzsNCgkJCQkJby5zdHlsZS5kaXNwbGF5ID0gJ2Js b2NrJzsJCQkJCQ0KCQkJCX0NCgkJCX0sDQoJCQlyZXBsYWNlSFRNTDogZnVuY3Rp b24oZWxpZCwgaHRtbCkNCgkJCXsNCgkJCQl2YXIgZWwgPSBkb2N1bWVudC5nZXRF bGVtZW50QnlJZChlbGlkKTsNCgkJCQkNCgkJCQlpZiAoZWwgIT09IG51bGwpDQoJ CQkJew0KCQkJCQllbC5pbm5lckhUTUwgPSBodG1sOw0KCQkJCQllbC5zdHlsZS5k aXNwbGF5ID0gJ2Jsb2NrJzsNCgkJCQl9DQoJCQl9LA0KCQkJc2hvd0NvbnRlbnQ6 IGZ1bmN0aW9uKGVsSWQpDQoJCQl7DQoJCQkJdmFyIGVsID0gZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoZWxJZCk7DQoJCQkJDQoJCQkJaWYgKGVsICE9PSBudWxsKQ0K CQkJCXsNCgkJCQkJZWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQoJCQkJfQ0K CQkJfSwNCgkJCXNob3dUYXJnZXRlZENvbnRlbnQ6IGZ1bmN0aW9uKHRhcmdldEtl eSwgdGFyZ2V0TGlzdCwgb0VsSWQpDQoJCQl7DQoJCQkJaWYgKHRhcmdldEtleSBp biBfX0dFTy5rZXlzICYmIF9fR0VPLmlzR0VPTWF0Y2godGFyZ2V0TGlzdCwgX19H RU8ua2V5c1t0YXJnZXRLZXldKSkNCgkJCQl7DQoJCQkJCV9fR0VPLnNob3dDb250 ZW50KG9FbElkKTsNCgkJCQl9DQoJCQl9LA0KCQkJcmVwbGFjZVdpdGhUYXJnZXRl ZENvbnRlbnQ6IGZ1bmN0aW9uKHRhcmdldEtleSwgdGFyZ2V0TGlzdCwgb0VsSWQs IGdFbElkKQ0KCQkJew0KCQkJCWlmICh0YXJnZXRLZXkgaW4gX19HRU8ua2V5cyAm JiBfX0dFTy5pc0dFT01hdGNoKHRhcmdldExpc3QsIF9fR0VPLmtleXNbdGFyZ2V0 S2V5XSkpDQoJCQkJew0KCQkJCQlfX0dFTy5yZXBsYWNlQ29udGVudChvRWxJZCwg Z0VsSWQpOw0KCQkJCX0JCQkNCgkJCX0sDQoJCQlyZXBsYWNlV2l0aFRhcmdldGVk SFRNTDogZnVuY3Rpb24odGFyZ2V0S2V5LCB0YXJnZXRMaXN0LCBlbElkLCBzSFRN TCkNCgkJCXsNCgkJCQlpZiAodGFyZ2V0S2V5IGluIF9fR0VPLmtleXMgJiYgX19H RU8uaXNHRU9NYXRjaCh0YXJnZXRMaXN0LCBfX0dFTy5rZXlzW3RhcmdldEtleV0p KQ0KCQkJCXsNCgkJCQkJX19HRU8ucmVwbGFjZUhUTUwoZWxJZCwgc0hUTUwpOw0K CQkJCX0NCgkJCX0NCgkJfQ0KCTwvc2NyaXB0Pg0KDQoNCjwhLS0gL0J1c09wcyBW YXJzIC0tPg0KPCEtLSAvMTIxODA5NTE2OTAzMSAtLT4NCg0KCiAKIAogIAogIAog ICAKICAKICAKICAKCjwhLS0gRTowVlMgLS0+CgoKPCEtLSBFOjBWUi0tPgoKPGJv ZHkgdG9wbWFyZ2luPTAgbGVmdG1hcmdpbj0wIG1hcmdpbmhlaWdodD0wIG1hcmdp bndpZHRoPTAgID4KCgoKCgoKPCEtLSBCOjBHNiAtLT4KCgo8ZGl2IGlkPSJoZWFk ZXIiPgoKPCEtLSBCOjBWTiAtLT4KCgoKICAKICAKICAKCiAgCiAgIAogIAogIAog IAoKCgoKCgoKCgo8IS0tIEI6MFhRIC0tPgoKCgoKCiAKCjwhLS0gMTIxODEwMDI3 ODYzNSAtLT4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoJDQoJDQoJDQoNCgkNCgkN CgkNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9mc3JzY3Jp cHRzL2ZvcmVzZWUtYWxpdmUuanMiPjwvc2NyaXB0Pg0KCQ0KDQoNCjwhLS0gLzEy MTgxMDAyNzg2MzUgLS0+CiAKIAo8IS0tIEU6MFhRIC0tPgo8IS0tIEU6MFZOIC0t PgoKPCEtLSBCOjBWTiAtLT4KCgoKICAKICAKICAKCiAgCiAgIAogIAogIAogIAoK CgoKCgoKCgo8IS0tIEI6MFhRIC0tPgoKCgoKCiAKCjwhLS0gdnY4IC0tPg0KDQo8 IS0tICBHbG9iYWwgSGVhZGVyIFRlc3QgU2xvdCAxIExvYWRlciAxMjE4MTEyNjc2 MzE1IC0tPg0KDQoNCgkNCgkNCgkNCgkNCgkJDQoJCQ0KCQkNCgkJDQoJDQoJCQ0K CQkNCgkJCTwhLS0gVmVyc2lvbiBBIENvbnRlbnQgKENvbnRyb2wpIDEyMTgwODc4 Njk4NTIrMTIxODEwODM5NzYwOSAtLT4NCgkJCQ0KDQoJCQ0KPCEtLSAxMjE4MDg3 ODY5ODUyIHYzLjAgLS0+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 IiBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9l bl9VUy9pbWFnZXMvZ2xvYmFsL2pRdWVyeS9qcXVlcnktMS4zLjIubWluLmpzIj48 L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkJ aWYodHlwZW9mKHNrdUlkKSE9InVuZGVmaW5lZCIpew0KCQkJCXRyeSB7bG9hZFRh YlVJKCk7fQ0KCQkJCWNhdGNoKGUpe30NCgkJCX0NCgkJCWlmKHR5cGVvZiB0cmFj ay5oZWFkZXJFcnJvcjEhPSJ1bmRlZmluZWQiJiZ0cmFjay5oZWFkZXJFcnJvcjE9 PSJzaW5nbGVfaGVhZGVyMSIpe3RyYWNrLmVycm9yPSJkdXBsaWNhdGVfaGVhZGVy MSI7fWVsc2V7dHJhY2suaGVhZGVyRXJyb3IxPSJzaW5nbGVfaGVhZGVyMSJ9DQoJ CQl2YXIgaXNLaW9zaz0od2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigia2lv c2siKT4wKT90cnVlOmZhbHNlOw0KCQk8L3NjcmlwdD4NCgkJPHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNv bTo4MC9CZXN0QnV5X1VTL2pzL2J1c29wcy1taW4uanMiPjwvc2NyaXB0Pg0KCQk8 bGluayBocmVmPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlf VVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9oZi9iYnkvc3R5bGVzL2JieS5jc3MiIHJl bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPg0KCQk8c3R5bGUgdHlwZT0i dGV4dC9jc3MiPg0KCQkJI25hdiBkaXYgYS50dntiYWNrZ3JvdW5kOnVybCgnaHR0 cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdl cy9nbG9iYWwvaGVhZGVyL25hdl9iZ192Mi5naWYnKSAwIC0zNXB4IG5vLXJlcGVh dDt9DQoJCQkjbmF2IGRpdiBhLmF1e2JhY2tncm91bmQ6dXJsKCdodHRwOi8vaW1h Z2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2Jh bC9oZWFkZXIvbmF2X2JnX3YyLmdpZicpIC02NnB4IC0zNXB4IG5vLXJlcGVhdDt9 DQoJCQkjbmF2IGRpdiBhLmNhcntiYWNrZ3JvdW5kOnVybCgnaHR0cDovL2ltYWdl cy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwv aGVhZGVyL25hdl9iZ192Mi5naWYnKSAtMTM2cHggLTM1cHggbm8tcmVwZWF0O30N CgkJCSNuYXYgZGl2IGEuY2N7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMu YmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hl YWRlci9uYXZfYmdfdjIuZ2lmJykgLTIwNnB4IC0zNXB4IG5vLXJlcGVhdDt9DQoJ CQkjbmF2IGRpdiBhLmNwe2JhY2tncm91bmQ6dXJsKCdodHRwOi8vaW1hZ2VzLmJl c3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9oZWFk ZXIvbmF2X2JnX3YyLmdpZicpIC0zMTBweCAtMzVweCBuby1yZXBlYXQ7fQ0KCQkJ I25hdiBkaXYgYS5wb3tiYWNrZ3JvdW5kOnVybCgnaHR0cDovL2ltYWdlcy5iZXN0 YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvaGVhZGVy L25hdl9iZ192Mi5naWYnKSAtNDA3cHggLTM1cHggbm8tcmVwZWF0O30NCgkJCSNu YXYgZGl2IGEubW17YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1 eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9u YXZfYmdfdjIuZ2lmJykgLTUwMHB4IC0zNXB4IG5vLXJlcGVhdDt9DQoJCQkjbmF2 IGRpdiBhLmd0e2JhY2tncm91bmQ6dXJsKCdodHRwOi8vaW1hZ2VzLmJlc3RidXku Y29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9oZWFkZXIvbmF2 X2JnX3YyLmdpZicpIC02MDVweCAtMzVweCBuby1yZXBlYXQ7fQ0KCQkJI25hdiBk aXYgYS5oYXtiYWNrZ3JvdW5kOnVybCgnaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNv bTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvaGVhZGVyL25hdl9i Z192Mi5naWYnKSAtNjgycHggLTM1cHggbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2 IGEudHY6aG92ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1 eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9u YXZfYmdfdjIuZ2lmJykgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEuYXU6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTY2cHggMCBuby1yZXBlYXQ7fQ0KCQkJI25hdiBkaXYgYS5jYXI6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTEzNnB4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEuY2M6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTIwNnB4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEuY3A6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTMxMHB4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEucG86aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTQwN3B4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEubW06aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTUwMHB4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEuZ3Q6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTYwNXB4IDAgbm8tcmVwZWF0O30NCgkJCSNuYXYgZGl2IGEuaGE6aG92 ZXJ7YmFja2dyb3VuZDp1cmwoJ2h0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9uYXZfYmdfdjIu Z2lmJykgLTY4MnB4IDAgbm8tcmVwZWF0O30NCgkJCS8qIEFkZGVkIDExLzExLzIw MDggKi8NCgkJCSNuYXYgZGl2LnR2e3dpZHRoOjY2cHg7fQ0KCQkJI25hdiBkaXYu YXV7d2lkdGg6NzBweDt9DQoJCQkjbmF2IGRpdi5jYXJ7d2lkdGg6NzBweDt9DQoJ CQkjbmF2IGRpdi5jY3t3aWR0aDoxMDRweDt9DQoJCQkjbmF2IGRpdi5jcHt3aWR0 aDo5N3B4O30NCgkJCSNuYXYgZGl2LnBve3dpZHRoOjkzcHg7fQ0KCQkJI25hdiBk aXYubW17d2lkdGg6MTA1cHg7fQ0KCQkJI25hdiBkaXYuZ3R7d2lkdGg6NzdweDt9 DQoJCQkjbmF2IGRpdi5oYXt3aWR0aDo5OHB4O30NCgkJCSNoZHIgLm1pZHtiYWNr Z3JvdW5kOnVybCgnaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5 X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvaGVhZGVyL2hlYWRlcl9iZy5naWYnKTtm bG9hdDpsZWZ0O2hlaWdodDo2NnB4O3dpZHRoOjU5OHB4O30NCgkJCSNjYXJ0e2Jh Y2tncm91bmQ6dXJsKCdodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RC dXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9oZWFkZXIvY2FydC5naWYnKTtmbG9h dDpsZWZ0O2hlaWdodDo2NnB4O3dpZHRoOjk0cHg7cG9zaXRpb246cmVsYXRpdmV9 DQoJCQkjc2VhcmNoc3RhdHVze2JhY2tncm91bmQ6dXJsKCdodHRwOi8vaW1hZ2Vz LmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9o ZWFkZXIvc2VhcmNoX2JnX3YyLmdpZicpIG5vLXJlcGVhdDtoZWlnaHQ6NDRweDt3 aWR0aDo3ODBweDtwb3NpdGlvbjpyZWxhdGl2ZTt9DQoJCQkjaGRyIC5taWQgdWwu bWFqIGxpIGF7ZGlzcGxheTpibG9jazttYXJnaW46MCA4cHg7fSAvKiBUaGlzIGxp bmUgY2FuIGJlIHJlbW92ZWQgaWYgYmJ5LmNzcyBpcyBjaGFuZ2VkIHRvIG1hdGNo ICovDQoJCTwvc3R5bGU+DQoJCTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQi IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3Ri dXkuY29tOjgwL0Jlc3RCdXlfVVMvanMvbXAvS2lvc2tzbU51bS5qcyI+PC9zY3Jp cHQ+DQoJCTxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQv amF2YXNjcmlwdCIgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jl c3RCdXlfVVMvanMvbXAvbXAuanMiPjwvc2NyaXB0Pg0KCQk8c2NyaXB0IHR5cGU9 InRleHQvamF2YXNjcmlwdCI+DQoJCTwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0N CgkJCXNmSG92ZXIgPSBmdW5jdGlvbigpIHsNCgkJCQl2YXIgc2ZFbHMgPSBkb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgibmF2IikuZ2V0RWxlbWVudHNCeVRhZ05hbWUo IkxJIik7DQoJCQkJZm9yICh2YXIgaT0wOyBpPHNmRWxzLmxlbmd0aDsgaSsrKSB7 DQoJCQkJCXNmRWxzW2ldLm9ubW91c2VvdmVyPWZ1bmN0aW9uKCkgew0KCQkJCQkJ dGhpcy5jbGFzc05hbWUrPSIgc2Zob3ZlciI7DQoJCQkJCX0NCgkJCQkJc2ZFbHNb aV0ub25tb3VzZW91dD1mdW5jdGlvbigpIHsNCgkJCQkJCXRoaXMuY2xhc3NOYW1l PXRoaXMuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiIHNmaG92ZXJcXGIi KSwgIiIpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQkJaWYgKHdpbmRvdy5hdHRh Y2hFdmVudCkgd2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLCBzZkhvdmVyKTsN CgkJLy8tLT48IV1dPg0KCQk8L3NjcmlwdD4NCgkJPCEtLVtpZiBsdCBJRSA3XT4N CgkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2lt YWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9i YWwvaGVhZGVyL2pzL2llaG92ZXItZml4LmpzIj48L3NjcmlwdD4NCgkJPHNjcmlw dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkJZG9jdW1lbnQuZXhlY0NvbW1h bmQoIkJhY2tncm91bmRJbWFnZUNhY2hlIixmYWxzZSx0cnVlKTsJCQ0KCQk8L3Nj cmlwdD4NCgkJPCFbZW5kaWZdLS0+DQoJCTxkaXYgaWQ9ImhkciI+DQoJCQk8IS0t IG1wX3RyYW5zX2Rpc2FibGVfc3RhcnQgLS0+PGRpdiBjbGFzcz0idG4iPjxhIGNs YXNzPSJza2lwIiBocmVmPSIjc2tpcCI+U2tpcCBOYXZpZ2F0aW9uPC9hPiA8YSBt cG9yZ25hdiBocmVmPSJodHRwOi8vZXNwYW5vbC5iZXN0YnV5LmNvbS9lbmVzLyIg b25jbGljaz0icmV0dXJuIHN3aXRjaExhbmd1YWdlKCk7Y2xvc2VUcmFja2VyV2lu KCk7IiBuYW1lPSImYW1wO2xpZD1oZHJfU3BhbmlzaCI+RXNwYSYjMjQxO29sPC9h PjwvZGl2PjwhLS0gbXBfdHJhbnNfZGlzYWJsZV9lbmQgLS0+CQkNCgkJCTxkaXYg Y2xhc3M9ImNsZWFyIj48L2Rpdj4NCgkJCTxkaXYgY2xhc3M9ImxvZ28iPg0KCQkJ CTxhIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpz cD90eXBlPWNhdGVnb3J5JmlkPWNhdDAwMDAwIiBuYW1lPSImbGlkPWhkcl9sb2dv Ij48aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5 X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvaGVhZGVyL2xvZ28uZ2lmIiBhbHQ9IkJl c3QgQnV5IExvZ28iLz48L2E+DQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9Im1p ZCI+DQoJCQkJPHVsIGNsYXNzPSJtYWoiPg0KCQkJCQk8bGk+PGEgaHJlZj0iamF2 YXNjcmlwdDpwb3BVcFJhd1VSTCgnaHR0cDovL2Jlc3RidXkuc2hvcGxvY2FsLmNv bS9iZXN0YnV5L25ld191c2VyX2VudHJ5LmFzcHg/YWRyZWY9aGVhZGVyJywnJywn NicsJzEnKSIgbmFtZT0iJmxpZD1oZHJfd2Vla2x5X2FkIj48aW1nIHNyYz0iaHR0 cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdl cy9nbG9iYWwvaGVhZGVyL3dlZWtseV9hZC5naWYiIGFsdD0iV2Vla2x5IEFkIi8+ PHNwYW4+V2Vla2x5IEFkPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJl Zj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWNh dDEyMDkwJnR5cGU9cGFnZSIgbmFtZT0iJmxpZD1oZHJfc3RvcmVsb2NhdG9yIj48 aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VT L2VuX1VTL2ltYWdlcy9nbG9iYWwvaGVhZGVyL3N0b3JlX2xvY2F0b3IuZ2lmIiBh bHQ9IlN0b3JlIExvY2F0b3IiLz48c3Bhbj5TdG9yZSBMb2NhdG9yPC9zcGFuPjwv YT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNv bS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDE0MjMwMDA1MDAyNiZ0eXBlPWNh dGVnb3J5IiBuYW1lPSImbGlkPWhkcl9vdXRfY3RyIj48aW1nIHNyYz0iaHR0cDov L2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9n bG9iYWwvaGVhZGVyL291dGxldF9jZW50ZXIuZ2lmIiBhbHQ9Ik91dGxldCBDZW50 ZXIiLz48c3Bhbj5PdXRsZXQgQ2VudGVyPC9zcGFuPjwvYT48L2xpPg0KCQkJCQk8 bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2Uu anNwP2lkPWFiY2F0MDAxMDAwMCZ0eXBlPWNhdGVnb3J5IiBuYW1lPSImbGlkPWhk cl9naWZ0X2N0ciI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206 ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9naWZ0X2Nl bnRlci5naWYiIGFsdD0iR2lmdCBDZW50ZXIiLz48c3Bhbj5HaWZ0IENlbnRlcjwv c3Bhbj48L2E+PC9saT4NCgkJCQkJPGxpPjxhIGNsYXNzPSJsYXN0IiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0 MTU0MjAwMDUwMDM1JnR5cGU9Y2F0ZWdvcnkiIG5hbWU9IiZsaWQ9aGRyX3NiX2N0 ciI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1 eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2hlYWRlci9zYl9jZW50ZXIuZ2lmIiBh bHQ9IlNtYWxsIEJ1c2luZXNzIENlbnRlciIvPjxzcGFuPlNtYWxsIEJ1c2luZXNz IENlbnRlcjwvc3Bhbj48L2E+PC9saT4NCgkJCQk8L3VsPg0KCQkJCTxkaXYgY2xh c3M9ImNsZWFyIj48L2Rpdj4NCgkJCQk8dWwgY2xhc3M9Im1pbiI+DQoJCQkJCTxs aT48YSBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/dHlwZT1jYXRlZ29yeSZpZD1jYXQwOTAwMCIgbmFtZT0iJmxpZD1oZHJfZ2Z0 X2NyZHMiPkdpZnQgQ2FyZHM8L2E+PC9saT4NCgkJCQkJPGxpPjxhIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21jYXQx MDI1MDAwNTAwMzImdHlwZT1jYXRlZ29yeSIgbmFtZT0iJmxpZD1oZHJfY3JkX2Ny ZHMiPkNyZWRpdCBDYXJkczwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iaHR0 cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDQ0 ODAwMDUwMDA0JnR5cGU9Y2F0ZWdvcnkiIG5hbWU9IiZsaWQ9aGRyX3J3ZF96b25l Ij5SZXdhcmQgWm9uZSZyZWc7PC9hPjwvbGk+DQoJCQkJCTxsaT48YSBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/dHlwZT1jYXRl Z29yeSZpZD1wY21jYXQ4NzgwMDA1MDAwMSIgbmFtZT0iJmxpZD1oZHJfY3N0X3N2 YyI+Q3VzdG9tZXIgU2VydmljZTwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0i aHR0cHM6Ly93d3ctc3NsLmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9 Y2F0MTIwNTQmdHlwZT1wYWdlIiBuYW1lPSImbGlkPWhkcl93aXNoX2xpc3QiPldp c2ggTGlzdDwvYT48L2xpPg0KCQkJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3ct c3NsLmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNhdDE3MDM4JnR5 cGU9cGFnZSIgbmFtZT0iJmxpZD1oZHJfb3JkX3N0YXQiPk9yZGVyIFN0YXR1czwv YT48L2xpPg0KCQkJCQk8bGkgY2xhc3M9Imxhc3QiPjxhIGhyZWY9Imh0dHBzOi8v d3d3LXNzbC5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjYXQxNzAy NiZ0eXBlPXBhZ2UiIG5hbWU9IiZsaWQ9aGRyX215X2FjY3QiPk15IEFjY291bnQ8 L2E+PC9saT4NCgkJCQk8L3VsPg0KCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp dj4NCgkJCTwvZGl2Pg0KCQkJPCEtLSBDYXJ0IC0tPg0KCQkJPGRpdiBpZD0iY2Fy dCI+DQoJCQk8IS0tIC8xMjE4MDg3ODY5ODUyIC0tPg0KDQoJCQkNCg0KCQkJPHNj cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQkJCXRyYWNrLmFiVGVzdDIg PSAiMjAwOTA4MTAtMjAwOTA4MTcgR2xvYmFsIEhlYWRlciBDb250cm9sIjsNCgkJ CQkvL2FkZE9ubG9hZEV2ZW50KGZ1bmN0aW9uKCkgeyBGb3JlU2VlLkNQUFMuZnNy JHNldCgnYmJ5QUJUZXN0Jyx0cmFjay5hYlRlc3QyKSB9KTsNCg0KCQkJCXZhciBf X2V4ZGF0ZT1uZXcgRGF0ZSgpOw0KCQkJCV9fZXhkYXRlLnNldERhdGUoX19leGRh dGUuZ2V0RGF0ZSgpKzE1KTsNCgkJCQlkb2N1bWVudC5jb29raWU9Im5ld2dyb3Vw PWE7cGF0aD0vO2RvbWFpbj0uYmVzdGJ1eS5jb207ZXhwaXJlcz0iK19fZXhkYXRl LnRvR01UU3RyaW5nKCk7CQ0KCQkJPC9zY3JpcHQ+DQoJCQk8IS0tIC9WZXJzaW9u IEEgQ29udGVudCAoQ29udHJvbCkgMTIxODA4Nzg2OTg1MiAtLT4NCgkJDQoJCQ0K CQkNCgkNCg0KPCEtLSAgR2xvYmFsIEhlYWRlciBUZXN0IFNsb3QgMSBMb2FkZXIg MTIxODExMjY3NjMxNSAtLT4NCgogCiAKPCEtLSBFOjBYUSAtLT4KPCEtLSBFOjBW TiAtLT4KCgoKPCEtLSBCOjBHWCAtLT4KCgoKCjxkaXYgaWQ9ImNhcnR0ZXh0Ij4K PGEgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNw P2lkPXBjYXQxNzAwNSZ0eXBlPXBhZ2UmcGFnZUlkPTEyMDI2NDk0MjQxNTcmcGFn ZVR5cGU9cHJvZHVjdCZhbXA7X0RBUkdTPS9zaXRlL2VuX1VTL2dsb2JhbC9uYXYv b2xzbWluaWNhcnQuanNwX0EmYW1wO19EQVY9Ij5DQVJUIDwvYT4KPC9kaXY+Cjxk aXYgaWQ9ImNhcnRpdGVtcyI+PHNwYW4gY2xhc3M9ImluY2FydCI+CjE8L3NwYW4+ IEl0ZW1zPC9kaXY+CjxkaXYgaWQ9ImNhcnRtZXNzYWdlIj48L2Rpdj4KCjwhLS0g RTowR1ggLS0+CjwhLS0gQjowVk4gLS0+CgoKCiAgCiAgCiAgCgogIAogICAKICAK ICAKICAKCgoKCgoKCgoKPCEtLSBCOjBYUSAtLT4KCgoKCgogCgo8IS0tICBHbG9i YWwgSGVhZGVyIFRlc3QgSGVhZGVyIFNsb3QgMiBMb2FkZXIgMTIxODExMjY3Njcz OSB2djggLS0+DQoNCg0KCQ0KCQ0KCQ0KCQ0KCQkNCgkJDQoJCQ0KCQkNCgkNCgkJ DQoJCQ0KCQkJPCEtLSBWZXJzaW9uIEEgQ29udGVudCAoQ29udHJvbCkgMTIxODA4 Nzg2OTg1MisxMjE4MTA4Mzk3NjA5IC0tPg0KCQkJDQoNCgkJDQo8IS0tIDEyMTgw OTgxOTczMDkgdjIuMTAgLS0+DQoJCQk8IS0tIDExOTk0OTY1MTQ2MTkgT3ZlcmZs b3cgLS0+DQoJCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQkJ Zml4Q2FydCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJ0dGV4dCcpOw0K CQkJCWZpeENhcnRUZXh0ID0gZml4Q2FydC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi YSIpWzBdOw0KCQkJCWZpeENhcnRUZXh0LmlubmVySFRNTCA9ICIgIjsNCgkJCTwv c2NyaXB0Pg0KCQkJPC9kaXY+PCEtLSAvQ2FydCAtLT4NCgkJCTxkaXYgY2xhc3M9 ImNsZWFyIj48L2Rpdj4NCgkJCTwhLS0gLzExOTk0OTY1MTQ2MTkgT3ZlcmZsb3cg LS0+DQoJCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJCQkJbXRy aWc9MDsNCgkJCQlmdW5jdGlvbiBtSGlkZU1lbnUoKXsNCgkJCQkJaWYgKG10cmln ID09IDApew0KCQkJCQkgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXYnKS5j bGFzc05hbWU9J25hdiBkaXNhcHBlYXInOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCWZ1 bmN0aW9uIG1UcmlnZ2VyTWVudSgpew0KCQkJCQlpZiAoZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoJ25hdicpLmNsYXNzTmFtZSA9PSAnbmF2IGRpc2FwcGVhcicpew0K CQkJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdicpLmNsYXNzTmFtZT0n bmF2IGFwcGVhcic7DQoJCQkJCX0NCgkJCQl9DQoJCQk8L3NjcmlwdD4NCgkJCTxk aXYgaWQ9Im5hdl9jb250YWluIiBvbm1vdXNlb3Zlcj0ibXRyaWdnZXI9c2V0VGlt ZW91dCgnbVRyaWdnZXJNZW51KCknLDI1MCk7bXRyaWc9MTsiIG9ubW91c2VvdXQ9 ImNsZWFyVGltZW91dChtdHJpZ2dlcik7c2V0VGltZW91dCgnbUhpZGVNZW51KCkn LDIwMCk7bXRyaWc9MDsiPg0KCQkJCTx1bCBpZD0ibmF2IiBjbGFzcz0ibmF2IGRp c2FwcGVhciIgb25tb3VzZW92ZXI9Im10cmlnPTE7IiBvbm1vdXNlb3V0PSJtdHJp Zz0wOyI+DQoJCQkJCTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9InR2Ij48YSBjbGFz cz0idHYiIG5hbWU9IiZsaWQ9dWJyX3R2IiBocmVmPSJodHRwOi8vd3d3LmJlc3Ri dXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMTAwMDAwJmFtcDt0eXBl PWNhdGVnb3J5Ij48c3Bhbj5UViAmYW1wOyBWaWRlbzwvc3Bhbj48L2E+PC9kaXY+ DQoJCQkJCQk8dWwgY2xhc3M9ImZpcnN0Ij4NCgkJCQkJCQk8bGk+PGEgbmFtZT0i JmxpZD11YnJfdHZfdHZzIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMTAxMDAwJnR5cGU9Y2F0ZWdvcnkiPlRl bGV2aXNpb25zPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJy X3R2X2R2ZCIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3Bh Z2UuanNwP2lkPWFiY2F0MDEwMjAwMCZ0eXBlPWNhdGVnb3J5Ij5CbHUtcmF5ICYg RFZEIFBsYXllcnM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11 YnJfdHZfaHRzIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xz cGFnZS5qc3A/aWQ9YWJjYXQwMjAzMDAwJnR5cGU9Y2F0ZWdvcnkiPkhvbWUgVGhl YXRlciBTeXN0ZW1zPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9 dWJyX3R2X3R2byIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29s c3BhZ2UuanNwP2lkPWFiY2F0MDEwMzAwMCZ0eXBlPWNhdGVnb3J5Ij5UaVZvICZh bXA7IEludGVybmV0IFRWPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZs aWQ9dWJyX3R2X2hkdHYiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0 ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAxMDQwMDAmdHlwZT1jYXRlZ29yeSI+RGln aXRhbCBUdW5lcnMgJiBDb252ZXJ0ZXJzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IG5hbWU9IiZsaWQ9dWJyX3R2X2R0diIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5 LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDEwNTAwMCZ0eXBlPWNhdGVn b3J5Ij5ESVJFQ1RWLCBDYWJsZSAmYW1wOyBGaWJlciBUVjwvYT48L2xpPg0KCQkJ CQkJCSAJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfdHZfY3YiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAz MDMwMDAmdHlwZT1jYXRlZ29yeSI+Q2FyIFZpZGVvPC9hPjwvbGk+DQoJCQkJCQkJ PGxpPjxhIG5hbWU9IiZsaWQ9dWJyX3R2X3N0ZiIgaHJlZj0iaHR0cDovL3d3dy5i ZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDEwNjAwMCZ0eXBl PWNhdGVnb3J5Ij5TdGFuZHMgJmFtcDsgRnVybml0dXJlPC9hPjwvbGk+DQoJCQkJ CQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX3R2X2lucyIgaHJlZj0iaHR0cDovL3d3 dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDEzODEwMDA1 MDAyNCZ0eXBlPWNhdGVnb3J5Ij5UViAmYW1wOyBIb21lIFRoZWF0ZXIgU2Vydmlj ZXM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgY2xhc3M9Imxhc3QiIG5hbWU9IiZs aWQ9dWJyX3R2X2FjYyIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRl L29sc3BhZ2UuanNwP2lkPWFiY2F0MDEwNzAwMCZ0eXBlPWNhdGVnb3J5Ij5BY2Nl c3NvcmllczwvYT48L2xpPg0KCQkJCQkJPC91bD4NCgkJCQkJPC9saT4NCgkJCQkJ PGxpPg0KCQkJCQkJPGRpdiBjbGFzcz0iYXUiPjxhIGNsYXNzPSJhdSIgbmFtZT0i JmxpZD11YnJfYXUiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9v bHNwYWdlLmpzcD9pZD1hYmNhdDAyMDAwMDAmdHlwZT1jYXRlZ29yeSI+PHNwYW4+ QXVkaW88L3NwYW4+PC9hPjwvZGl2Pg0KCQkJCQkJPHVsIGlkPSJhdW1lbnUiPg0K CQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9hdV9pcG9kIiBocmVmPSJodHRw Oi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMjAx MDAwJnR5cGU9Y2F0ZWdvcnkiPmlQb2QgJmFtcDsgTVAzIFBsYXllcnM8L2E+PC9s aT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfYXVfc3lzIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQw MjAyMDAwJnR5cGU9Y2F0ZWdvcnkiPkF1ZGlvIFN5c3RlbXMgJmFtcDsgQ29tcG9u ZW50czwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9hdV9o dHMiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpz cD9pZD1hYmNhdDAyMDMwMDAmdHlwZT1jYXRlZ29yeSI+SG9tZSBUaGVhdGVyIFN5 c3RlbXM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfYXVf aGVhZCIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2Uu anNwP2lkPWFiY2F0MDIwNDAwMCZ0eXBlPWNhdGVnb3J5Ij5IZWFkcGhvbmVzPC9h PjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2F1X3NwayIgaHJl Zj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFi Y2F0MDIwNTAwMCZ0eXBlPWNhdGVnb3J5Ij5TcGVha2VyczwvYT48L2xpPg0KCQkJ CQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9hdV9wYXUiIGhyZWY9Imh0dHA6Ly93 d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAyMDYwMDAm dHlwZT1jYXRlZ29yeSI+UG9ydGFibGUgQXVkaW88L2E+PC9saT4NCgkJCQkJCQk8 bGk+PGEgbmFtZT0iJmxpZD11YnJfYXVfc2F0IiBocmVmPSJodHRwOi8vd3d3LmJl c3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMzAyMDE5JnR5cGU9 Y2F0ZWdvcnkiPlNhdGVsbGl0ZSBSYWRpbzwvYT48L2xpPg0KCQkJCQkJCTxsaT48 YSBuYW1lPSImbGlkPXVicl9hdV9kaWciIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1 eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21jYXQxNjM1MDAwNTAwMDgmdHlw ZT1jYXRlZ29yeSI+RGlnaXRhbCBSYWRpbzwvYT48L2xpPg0KCQkJCQkJCTxsaT48 YSBuYW1lPSImbGlkPXVicl9hdV9jYSIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5 LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDMwMjAwMCZ0eXBlPWNhdGVn b3J5Ij5DYXIgQXVkaW88L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxp ZD11YnJfYXVfbWEiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9v bHNwYWdlLmpzcD9pZD1wY21jYXQxNTYzMDAwNTAwMDYmdHlwZT1jYXRlZ29yeSI+ TWFyaW5lIEVsZWN0cm9uaWNzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9 IiZsaWQ9dWJyX2F1X21pIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMjA3MDAwJnR5cGU9Y2F0ZWdvcnkiPk11 c2ljYWwgSW5zdHJ1bWVudHM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0i JmxpZD11YnJfYXVfc3RmIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMTA2MDAwJnR5cGU9Y2F0ZWdvcnkiPlN0 YW5kcyAmYW1wOyBGdXJuaXR1cmU8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFt ZT0iJmxpZD11YnJfYXVfaW5zIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29t L3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTg4MjAwMDUwMDAwJnR5cGU9Y2F0 ZWdvcnkiPkF1ZGlvICYgTVAzIFNlcnZpY2VzPC9hPjwvbGk+DQoJCQkJCQkJPGxp PjxhIGNsYXNzPSJsYXN0IiBuYW1lPSImbGlkPXVicl9hdV9hY2MiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAy MDgwMDAmdHlwZT1jYXRlZ29yeSI+QWNjZXNzb3JpZXM8L2E+PC9saT4NCgkJCQkJ CTwvdWw+DQoJCQkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9 ImNhciI+PGEgY2xhc3M9ImNhciIgbmFtZT0iJmxpZD11YnJfY2FyIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQw MzAwMDAwJnR5cGU9Y2F0ZWdvcnkiPjxzcGFuPkNhcjwvc3Bhbj48L2E+PC9kaXY+ DQoJCQkJCQk8dWwgaWQ9ImNhcm1lbnUiPg0KCQkJCQkJCTxsaT48YSBuYW1lPSIm bGlkPXVicl9jYXJfZ3BzIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMzAxMDAwJnR5cGU9Y2F0ZWdvcnkiPkdQ UyBOYXZpZ2F0aW9uPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9 dWJyX2Nhcl9zYXQiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9v bHNwYWdlLmpzcD9pZD1hYmNhdDAzMDIwMTkmdHlwZT1jYXRlZ29yeSI+U2F0ZWxs aXRlIFJhZGlvPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJy X2Nhcl9kaWciIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNw YWdlLmpzcD9pZD1wY21jYXQxNjM1MDAwNTAwMDgmdHlwZT1jYXRlZ29yeSI+RGln aXRhbCBSYWRpbzwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVi cl9jYXJfY2EiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNw YWdlLmpzcD9pZD1hYmNhdDAzMDIwMDAmdHlwZT1jYXRlZ29yeSI+Q2FyIEF1ZGlv PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2Nhcl9tZSIg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PXBjbWNhdDE1NjMwMDA1MDAwNiZ0eXBlPWNhdGVnb3J5Ij5NYXJpbmUgRWxlY3Ry b25pY3M8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfY2Fy X2NhIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/aWQ9YWJjYXQwMzAzMDAwJnR5cGU9Y2F0ZWdvcnkiPkNhciBWaWRlbzwvYT48 L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9jYXJfY3MiIGhyZWY9 Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNh dDAzMDQwMDAmdHlwZT1jYXRlZ29yeSI+Q2FyIFNlY3VyaXR5ICYgUmVtb3RlIFN0 YXJ0PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2Nhcl9y ZHIiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpz cD9pZD1hYmNhdDAzMDUwMDAmdHlwZT1jYXRlZ29yeSI+UmFkYXIgRGV0ZWN0b3Jz PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2Nhcl9jYSIg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PXBjbWNhdDU5NjAwMDUwMDA1JnR5cGU9Y2F0ZWdvcnkiPkNhciBJbnN0YWxsYXRp b24gU2VydmljZXM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11 YnJfY2FyX2NhIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xz cGFnZS5qc3A/aWQ9cGNtY2F0MTY1OTAwMDUwMDIzJnR5cGU9Y2F0ZWdvcnkiPkNh ciBJbnN0YWxsYXRpb24gUGFydHM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgY2xh c3M9Imxhc3QiIG5hbWU9IiZsaWQ9dWJyX2Nhcl9hY2MiIGhyZWY9Imh0dHA6Ly93 d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAzMDcwMDAm dHlwZT1jYXRlZ29yeSI+QWNjZXNzb3JpZXM8L2E+PC9saT4NCgkJCQkJCTwvdWw+ DQoJCQkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9ImNjIj48 YSBjbGFzcz0iY2MiIG5hbWU9IiZsaWQ9dWJyX2NjIiBocmVmPSJodHRwOi8vd3d3 LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNDAwMDAwJnR5 cGU9Y2F0ZWdvcnkiPjxzcGFuPkNhbWVyYXMgJmFtcDsgQ2FtY29yZGVyczwvc3Bh bj48L2E+PC9kaXY+DQoJCQkJCQk8dWwgaWQ9ImNjbWVudSI+DQoJCQkJCQkJPGxp PjxhIG5hbWU9IiZsaWQ9dWJyX2NjX2RjYW0iIGhyZWY9Imh0dHA6Ly93d3cuYmVz dGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA0MDEwMDAmdHlwZT1j YXRlZ29yeSI+RGlnaXRhbCBDYW1lcmFzPC9hPjwvbGk+DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48 YSBuYW1lPSImbGlkPXVicl9jY19kc2xyY2FtIiBocmVmPSJodHRwOi8vd3d3LmJl c3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNDAxMDA1JnR5cGU9 Y2F0ZWdvcnkiPkRpZ2l0YWwgU0xSIENhbWVyYXM8L2E+PC9saT4NCg0KPGxpPjxh IG5hbWU9IiZsaWQ9dWJyX2NjX2xlbnNlIiBocmVmPSJodHRwOi8vd3d3LmJlc3Ri dXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNDEwMDE4JnR5cGU9Y2F0 ZWdvcnkiPkxlbnNlczwvYT48L2xpPg0KCQkJCQkJCQ0KPGxpPjxhIG5hbWU9IiZs aWQ9dWJyX2NjX2NhbSIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRl L29sc3BhZ2UuanNwP2lkPWFiY2F0MDQwMzAwMCZ0eXBlPWNhdGVnb3J5Ij5DYW1j b3JkZXJzPC9hPjwvbGk+DQoJCQkJCQkJIAkJCQkJCQk8bGk+PGEgbmFtZT0iJmxp ZD11YnJfY2NfbWVtYyIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRl L29sc3BhZ2UuanNwP2lkPWFiY2F0MDQwNDAwMCZ0eXBlPWNhdGVnb3J5Ij5NZW1v cnkgQ2FyZHM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJf Y2NfcHFwIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFn ZS5qc3A/aWQ9YWJjYXQwNTExMDA2JnR5cGU9Y2F0ZWdvcnkiPlBob3RvIFF1YWxp dHkgUHJpbnRlcnM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11 YnJfY2NfcHZzIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xz cGFnZS5qc3A/aWQ9cGNtY2F0MTMyNzAwMDUwMDE2JnR5cGU9Y2F0ZWdvcnkiPlBo b3RvICZhbXA7IFZpZGVvIFJlc291cmNlczwvYT48L2xpPg0KCQkJCQkJCTxsaT48 YSBuYW1lPSImbGlkPXVicl9jY19kZnJtIiBocmVmPSJodHRwOi8vd3d3LmJlc3Ri dXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNDA4MDAwJnR5cGU9Y2F0 ZWdvcnkiPkRpZ2l0YWwgUGhvdG8gRnJhbWVzPC9hPjwvbGk+DQoJCQkJCQkJPGxp PjxhIG5hbWU9IiZsaWQ9dWJyX2NjX3djYW0iIGhyZWY9Imh0dHA6Ly93d3cuYmVz dGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA1MTUwNDYmdHlwZT1j YXRlZ29yeSI+V2ViY2FtczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSIm bGlkPXVicl9jY19iaW5pIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNDA5MDAwJnR5cGU9Y2F0ZWdvcnkiPkJp bm9jdWxhcnMgJmFtcDsgT3B0aWNzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIGNs YXNzPSJsYXN0IiBuYW1lPSImbGlkPXVicl9jY19hY2MiIGhyZWY9Imh0dHA6Ly93 d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA0MTAwMDAm dHlwZT1jYXRlZ29yeSI+QWNjZXNzb3JpZXM8L2E+PC9saT4NCgkJCQkJCTwvdWw+ DQoJCQkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9ImNwIj48 YSBjbGFzcz0iY3AiIG5hbWU9IiZsaWQ9dWJyX2NwIiBocmVmPSJodHRwOi8vd3d3 LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNTAwMDAwJnR5 cGU9Y2F0ZWdvcnkiPjxzcGFuPkNvbXB1dGVyczwvc3Bhbj48L2E+PC9kaXY+DQoJ CQkJCQk8dWwgaWQ9ImNwbWVudSI+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9 dWJyX2NwX2xhcCIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29s c3BhZ2UuanNwP2lkPWFiY2F0MDUwMjAwMCZ0eXBlPWNhdGVnb3J5Ij5MYXB0b3Bz PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2NwX25ldGIi IGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9p ZD1wY21jYXQxNjMzMDAwNTAwNTEmdHlwZT1jYXRlZ29yeSI+TmV0Ym9va3M8L2E+ PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfY3BfZGVzayIgaHJl Zj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFi Y2F0MDUwMTAwMCZ0eXBlPWNhdGVnb3J5Ij5EZXNrdG9wczwvYT48L2xpPg0KCQkJ CQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9jcF9tb24iIGhyZWY9Imh0dHA6Ly93 d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA1MDkwMDAm dHlwZT1jYXRlZ29yeSI+TW9uaXRvcnM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEg bmFtZT0iJmxpZD11YnJfY3BfcHJvIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXku Y29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTU4OTAwMDUwMDA4JnR5cGU9 Y2F0ZWdvcnkiPlByb2plY3RvcnMgJiBTY3JlZW5zPC9hPjwvbGk+DQoJCQkJCQkJ PGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2NwX25ldCIgaHJlZj0iaHR0cDovL3d3dy5i ZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDUwMzAwMCZ0eXBl PWNhdGVnb3J5Ij5OZXR3b3JraW5nPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5h bWU9IiZsaWQ9dWJyX2NwX2RydiIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNv bS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDUwNDAwMCZ0eXBlPWNhdGVnb3J5 Ij5Ecml2ZXMgJmFtcDsgU3RvcmFnZTwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBu YW1lPSImbGlkPXVicl9jcF9tZW0iIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5j b20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA1MDYwMDAmdHlwZT1jYXRlZ29y eSI+TWVtb3J5PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJy X2NwX3ZjcGMiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNw YWdlLmpzcD9pZD1hYmNhdDA1MDcwMDAmdHlwZT1jYXRlZ29yeSI+VmlkZW8gQ2Fy ZHMgJmFtcDsgUEMgQ29tcG9uZW50czwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBu YW1lPSImbGlkPXVicl9jcF9zb2ZnIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXku Y29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNTA4MDAwJnR5cGU9Y2F0ZWdv cnkiPlNvZnR3YXJlICZhbXA7IEdhbWVzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IG5hbWU9IiZsaWQ9dWJyX2NwX3ByaW4iIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1 eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA1MTEwMDAmdHlwZT1jYXRl Z29yeSI+UHJpbnRlcnMsIFNjYW5uZXJzICZhbXA7IEZheDwvYT48L2xpPg0KCQkJ CQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9jcF9wZGEiIGhyZWY9Imh0dHA6Ly93 d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA1MTIwMDAm dHlwZT1jYXRlZ29yeSI+UERBcyAmYW1wOyBFbGVjdHJvbmljIERpY3Rpb25hcmll czwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9jcF9taWNl IiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/ aWQ9YWJjYXQwNTEzMDAwJnR5cGU9Y2F0ZWdvcnkiPk1pY2UgJmFtcDsgS2V5Ym9h cmRzPC9hPjwvbGk+DQo8bGk+PGEgbmFtZT0iJmxpZD11YnJfY3Bfd2ViY2FtcyIg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PWFiY2F0MDUxNTA0NiZ0eXBlPWNhdGVnb3J5Ij5XZWJjYW1zPC9hPjwvbGk+DQoJ CQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2NwX2hzaSIgaHJlZj0iaHR0cDov L3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDUxNDAw MCZ0eXBlPWNhdGVnb3J5Ij5IaWdoLVNwZWVkIEludGVybmV0PC9hPjwvbGk+DQoJ CQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2NwX2NzcyIgaHJlZj0iaHR0cDov L3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDEzODEw MDA1MDAxOSZ0eXBlPWNhdGVnb3J5Ij5Db21wdXRlciBTZXR1cCAmYW1wOyBTZXJ2 aWNlczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBjbGFzcz0ibGFzdCIgbmFtZT0i JmxpZD11YnJfY3BfYWNjIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNTE1MDAwJnR5cGU9Y2F0ZWdvcnkiPkFj Y2Vzc29yaWVzPC9hPjwvbGk+DQoJCQkJCQk8L3VsPg0KCQkJCQk8L2xpPg0KCQkJ CQk8bGk+DQoJCQkJCQk8ZGl2IGNsYXNzPSJwbyI+PGEgY2xhc3M9InBvIm5hbWU9 IiZsaWQ9dWJyX3BvIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUv b2xzcGFnZS5qc3A/aWQ9YWJjYXQwODAwMDAwJnR5cGU9Y2F0ZWdvcnkiPjxzcGFu PlBob25lcyAmYW1wOyBPZmZpY2U8L3NwYW4+PC9hPjwvZGl2Pg0KCQkJCQkJPHVs IGlkPSJwb21lbnUiPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb19j ZWxsIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/aWQ9YWJjYXQwODAxMDAwJnR5cGU9Y2F0ZWdvcnkiPkNlbGwgUGhvbmVzPC9h PjwvbGk+DQoNCjxsaT48YSBuYW1lPSImbGlkPXVicl9wb19jZWxsIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0 MTg0NDAwMDUwMDIwJnR5cGU9Y2F0ZWdvcnkiPk1vYmlsZSBCcm9hZGJhbmQ8L2E+ PC9saT4NCg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb190ZWxlIiBo cmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9 YWJjYXQwODAyMDAwJnR5cGU9Y2F0ZWdvcnkiPlRlbGVwaG9uZXM8L2E+PC9saT4N CgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfcG9fdm9pcCIgaHJlZj0iaHR0 cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDgw MzAwMCZ0eXBlPWNhdGVnb3J5Ij5JbnRlcm5ldCBQaG9uZSBTZXJ2aWNlIChWT0lQ KTwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb190d28i IGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9p ZD1hYmNhdDA4MDQwMDAmdHlwZT1jYXRlZ29yeSI+VHdvLVdheSBSYWRpb3M8L2E+ PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfcG9fb2ZmIiBocmVm PSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJj YXQwODA1MDAwJnR5cGU9Y2F0ZWdvcnkiPk9mZmljZSBFbGVjdHJvbmljczwvYT48 L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb19wcm8iIGhyZWY9 Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21j YXQxNTg5MDAwNTAwMDgmdHlwZT1jYXRlZ29yeSI+UHJvamVjdG9ycyAmIFNjcmVl bnM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfcG9fc29m ZyIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNw P2lkPWFiY2F0MDUwODAwMCZ0eXBlPWNhdGVnb3J5Ij5Tb2Z0d2FyZSAmYW1wOyBH YW1lczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb19w cmluIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/aWQ9YWJjYXQwNTExMDAwJnR5cGU9Y2F0ZWdvcnkiPlByaW50ZXJzLCBTY2Fu bmVycyAmYW1wOyBGYXg8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxp ZD11YnJfcG9faW5rIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUv b2xzcGFnZS5qc3A/aWQ9YWJjYXQwODA3MDAwJnR5cGU9Y2F0ZWdvcnkiPkluayAm YW1wOyBUb25lcjwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVi cl9wb19wYXAiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNw YWdlLmpzcD9pZD1hYmNhdDA4MDgwMDAmdHlwZT1jYXRlZ29yeSI+UGFwZXIgU3Vw cGxpZXM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfcG9f ZnVyIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5q c3A/aWQ9YWJjYXQwODA5MDAwJnR5cGU9Y2F0ZWdvcnkiPkZ1cm5pdHVyZTwvYT48 L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9wb19ic2MiIGhyZWY9 Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21j YXQxNTQyMDAwNTAwMzUmdHlwZT1jYXRlZ29yeSI+U21hbGwgQnVzaW5lc3MgQ2Vu dGVyPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIGNsYXNzPSJsYXN0IiBuYW1lPSIm bGlkPXVicl9wb19hY2MiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0 ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA4MTEwMDAmdHlwZT1jYXRlZ29yeSI+QWNj ZXNzb3JpZXM8L2E+PC9saT4NCgkJCQkJCTwvdWw+DQoJCQkJCTwvbGk+DQoJCQkJ CTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9Im1tIj48YSBjbGFzcz0ibW0iIG5hbWU9 IiZsaWQ9dWJyX21tIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUv b2xzcGFnZS5qc3A/aWQ9YWJjYXQwNjAwMDAwJnR5cGU9Y2F0ZWdvcnkiPjxzcGFu Pk11c2ljLCBNb3ZpZXMgJmFtcDsgQm9va3M8L3NwYW4+PC9hPjwvZGl2Pg0KCQkJ CQkJPHVsIGlkPSJtbW1lbnUiPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVi cl9tbV9tb3YiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNw YWdlLmpzcD9pZD1jYXQwMjAxNSZ0eXBlPWNhdGVnb3J5Ij5Nb3ZpZXM8L2E+PC9s aT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfbW1fbXVzIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9Y2F0MDIw MDEmdHlwZT1jYXRlZ29yeSI+TXVzaWM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEg bmFtZT0iJmxpZD11YnJfbW1fcHJlIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXku Y29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwMjAxMDA1JnR5cGU9Y2F0ZWdv cnkiPk11c2ljIERvd25sb2FkczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1l PSImbGlkPXVicl9tbV9kYWIiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20v c2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA2MDMwMDAmdHlwZT1jYXRlZ29yeSI+ Qm9va3MgJmFtcDsgQXVkaW9ib29rczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBu YW1lPSImbGlkPXVicl9tbV9taWsiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5j b20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDAyMDcwMDAmdHlwZT1jYXRlZ29y eSI+TXVzaWNhbCBJbnN0cnVtZW50czwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBj bGFzcz0ibGFzdCIgbmFtZT0iJmxpZD11YnJfbW1fYWNjIiBocmVmPSJodHRwOi8v d3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNjA1MDAw JnR5cGU9Y2F0ZWdvcnkiPkFjY2Vzc29yaWVzPC9hPjwvbGk+DQoJCQkJCQk8L3Vs Pg0KCQkJCQk8L2xpPg0KCQkJCQk8bGk+DQoJCQkJCQk8ZGl2IGNsYXNzPSJndCI+ PGEgY2xhc3M9Imd0IiBuYW1lPSImbGlkPXVicl9ndCIgaHJlZj0iaHR0cDovL3d3 dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdvcnkmaWQ9 YWJjYXQwNzAwMDAwIj48c3Bhbj5HYW1lcyAmYW1wOyBUb3lzPC9zcGFuPjwvYT48 L2Rpdj4NCgkJCQkJCTx1bCBjbGFzcz0icm5yIiBpZD0iZ3RtZW51Ij4NCgkJCQkJ CQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfZ3RfeDM2MCIgaHJlZj0iaHR0cDovL3d3 dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDcwMTAwMCZ0 eXBlPWNhdGVnb3J5Ij5YYm94IDM2MDwvYT48L2xpPg0KCQkJCQkJCQkJCQkJCQk8 bGk+PGEgbmFtZT0iJmxpZD11YnJfZ3RfcHMzIiBocmVmPSJodHRwOi8vd3d3LmJl c3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNzAzMDAwJnR5cGU9 Y2F0ZWdvcnkiPlBsYXlTdGF0aW9uIDM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEg bmFtZT0iJmxpZD11YnJfZ3RfcHMyIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXku Y29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNzA0MDAwJnR5cGU9Y2F0ZWdv cnkiPlBsYXlTdGF0aW9uIDI8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0i JmxpZD11YnJfZ3RfcHNwIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwNzA1MDAwJnR5cGU9Y2F0ZWdvcnkiPlBT UDwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9ndF93aWki IGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9p ZD1hYmNhdDA3MDYwMDAmdHlwZT1jYXRlZ29yeSI+V2lpPC9hPjwvbGk+DQoJCQkJ CQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2d0X25kcyIgaHJlZj0iaHR0cDovL3d3 dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDcwNzAwMCZ0 eXBlPWNhdGVnb3J5Ij5OaW50ZW5kbyBEUzwvYT48L2xpPg0KDQo8bGk+PGEgbmFt ZT0iJmxpZD11YnJfZ3RfbmRzIiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29t L3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTg2NTAwMDUwMDAzJnR5cGU9Y2F0 ZWdvcnkiPkdhbWUgJiBDb25zb2xlIFRyYWRlLUluPC9hPjwvbGk+DQoJCQkJCQkJ CQkJCQkJICAgICAgICAgICAgICAgIDxsaT48YSBuYW1lPSImbGlkPXVicl9ndF9n ZCIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNw P2lkPXBjbWNhdDE1MzYwMDA1MDAwNyZ0eXBlPWNhdGVnb3J5Ij5HYW1lIERvd25s b2FkczwvYT48L2xpPg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9ndF9w Y2ciIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpz cD9pZD1hYmNhdDA3MTIwMDAmdHlwZT1jYXRlZ29yeSI+UEMgR2FtZXM8L2E+PC9s aT4NCgkJCQkJCQkJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX29uX2dzcyIg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PXBjbWNhdDE2NTQwMDA1MDAwNCZ0eXBlPWNhdGVnb3J5Ij5HYW1pbmcgU2V0dXAg JmFtcDsgU2VydmljZXM8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxp ZD11YnJfZ3RfdG95cyIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRl L29sc3BhZ2UuanNwP2lkPWFiY2F0MDcxNDAwMCZ0eXBlPWNhdGVnb3J5Ij5Ub3lz ICZhbXA7IEtpZHMnIEVsZWN0cm9uaWNzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IGNsYXNzPSJsYXN0IiBuYW1lPSImbGlkPXVicl9ndF9hY2MiIGhyZWY9Imh0dHA6 Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA3MTUw MDAmdHlwZT1jYXRlZ29yeSI+QWNjZXNzb3JpZXM8L2E+PC9saT4NCgkJCQkJCTwv dWw+DQoJCQkJCTwvbGk+DQoJCQkJCTxsaT4NCgkJCQkJCTxkaXYgY2xhc3M9Imhh Ij48YSBjbGFzcz0iaGEiIG5hbWU9IiZsaWQ9dWJyX2hhIiBocmVmPSJodHRwOi8v d3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwOTAwMDAw JnR5cGU9Y2F0ZWdvcnkiPjxzcGFuPkhvbWUgJiMzODsgQXBwbGlhbmNlczwvc3Bh bj48L2E+PC9kaXY+DQoJCQkJCQk8dWwgY2xhc3M9ImVuZCIgaWQ9ImhhbWVudSI+ DQoJCQkJCQkJPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2hhX3dhZHIiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5 MTAwMDAmdHlwZT1jYXRlZ29yeSI+V2FzaGVycyAmIzM4OyBEcnllcnM8L2E+PC9s aT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfaGFfcmVmIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQw OTAxMDAwJnR5cGU9Y2F0ZWdvcnkiPlJlZnJpZ2VyYXRvcnM8L2E+PC9saT4NCgkJ CQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfaGFfZnJlIiBocmVmPSJodHRwOi8v d3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwOTAyMDAw JnR5cGU9Y2F0ZWdvcnkiPkZyZWV6ZXJzICYjMzg7IEljZSBNYWtlcnM8L2E+PC9s aT4NCgkJCQkJCQk8bGk+PGEgbmFtZT0iJmxpZD11YnJfaGFfcm5nIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQw OTA0MDAwJnR5cGU9Y2F0ZWdvcnkiPlJhbmdlcyAmIzM4OyBPdmVuczwvYT48L2xp Pg0KCQkJCQkJCTxsaT48YSBuYW1lPSImbGlkPXVicl9oYV9td3YiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5 MDMwMDAmdHlwZT1jYXRlZ29yeSI+TWljcm93YXZlczwvYT48L2xpPg0KCQkJCQkJ CTxsaT48YSBuYW1lPSImbGlkPXVicl9oYV9kaXNoIiBocmVmPSJodHRwOi8vd3d3 LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwOTA1MDAwJnR5 cGU9Y2F0ZWdvcnkiPkRpc2h3YXNoZXJzPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IG5hbWU9IiZsaWQ9dWJyX2hhX2NvZGkiIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1 eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5MDYwMDAmdHlwZT1jYXRl Z29yeSI+Q29tcGFjdG9ycyAmIzM4OyBEaXNwb3NhbHM8L2E+PC9saT4NCgkJCQkJ CQkNCjxsaT48YSBuYW1lPSImbGlkPXVicl9oYV9zbWFwIiBocmVmPSJodHRwOi8v d3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9YWJjYXQwOTEyMDAw JnR5cGU9Y2F0ZWdvcnkiPlNtYWxsIEFwcGxpYW5jZXM8L2E+PC9saT4NCg0KPGxp PjxhIG5hbWU9IiZsaWQ9dWJyX2hhX3ZhdXUiIGhyZWY9Imh0dHA6Ly93d3cuYmVz dGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5MTEwMDAmdHlwZT1j YXRlZ29yeSI+VmFjdXVtcyAmIzM4OyBGbG9vciBDYXJlPC9hPjwvbGk+DQoNCjxs aT48YSBuYW1lPSImbGlkPXVicl9oYV9vZGx2ZyIgaHJlZj0iaHR0cDovL3d3dy5i ZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDE3OTEwMDA1MDAw NiZ0eXBlPWNhdGVnb3J5Ij5PdXRkb29yIExpdmluZzwvYT48L2xpPg0KDQo8bGk+ PGEgbmFtZT0iJmxpZD11YnJfaGFfYWlyYyIgaHJlZj0iaHR0cDovL3d3dy5iZXN0 YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPWFiY2F0MDkwNzAwMCZ0eXBlPWNh dGVnb3J5Ij5BaXIgQ29uZGl0aW9uZXJzLCBGYW5zICYjMzg7IEhlYXRlcnM8L2E+ PC9saT4NCg0KPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2hhX2FpcnAiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5 MDgwMDAmdHlwZT1jYXRlZ29yeSI+QWlyIFB1cmlmaWVycyAmIzM4OyBEZWh1bWlk aWZpZXJzPC9hPjwvbGk+DQoNCg0KPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2hhX2Zp dCIgaHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNw P2lkPXBjbWNhdDE1OTQwMDA1MDAwNyZ0eXBlPWNhdGVnb3J5Ij5GaXRuZXNzIEVx dWlwbWVudDwvYT48L2xpPg0KDQo8bGk+PGEgbmFtZT0iJmxpZD11YnJfaGFfcGNw IiBocmVmPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/ aWQ9YWJjYXQwOTE1MDAwJnR5cGU9Y2F0ZWdvcnkiPlBlcnNvbmFsIENhcmU8L2E+ PC9saT4NCg0KPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2hhX3RyYW5zIiBocmVmPSJo dHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0 MTc3MjAwMDUwMDA5JnR5cGU9Y2F0ZWdvcnkiPkVsZWN0cmljIFZlaGljbGVzPC9h PjwvbGk+DQoJCQkJCQkJDQo8bGk+PGEgbmFtZT0iJmxpZD11YnJfaGFfaG9tbSIg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PWFiY2F0MDkxMzAwMCZ0eXBlPWNhdGVnb3J5Ij5Ib21lIEF1dG9tYXRpb248L2E+ PC9saT4NCg0KPGxpPjxhIG5hbWU9IiZsaWQ9dWJyX2hhX2dhciIgaHJlZj0iaHR0 cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDE4 MDEwMDA1MDAwNyZ0eXBlPWNhdGVnb3J5Ij5HYXJhZ2U8L2E+PC9saT4NCg0KPGxp PjxhIGNsYXNzPSJsYXN0IiBuYW1lPSImbGlkPXVicl9oYV9hY2MiIGhyZWY9Imh0 dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1hYmNhdDA5 MTYwMDAmdHlwZT1jYXRlZ29yeSI+QWNjZXNzb3JpZXM8L2E+PC9saT4JCQ0KCQkJ CQkJPC91bD4NCgkJCQkJPC9saT4NCgkJCQk8L3VsPg0KCQkJPC9kaXY+DQoJCQk8 ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQoJCQk8c2NyaXB0PmlmKHR5cGVvZiB0 cmFjay5oZWFkZXJFcnJvcjIhPSJ1bmRlZmluZWQiJiZ0cmFjay5oZWFkZXJFcnJv cjI9PSJzaW5nbGVfaGVhZGVyMiIpe3RyYWNrLmVycm9yPSJkdXBsaWNhdGVfaGVh ZGVyMiI7fWVsc2V7dHJhY2suaGVhZGVyRXJyb3IyPSJzaW5nbGVfaGVhZGVyMiJ9 PC9zY3JpcHQ+DQo8IS0tIC8xMjE4MDk4MTk3MzA5IC0tPg0KDQoJCQk8IS0tIC9W ZXJzaW9uIEEgQ29udGVudCAoQ29udHJvbCkgMTIxODA4Nzg2OTg1MiAtLT4NCgkJ DQoJCQ0KCQkNCgkNCg0KPCEtLSAgR2xvYmFsIEhlYWRlciBUZXN0IEhlYWRlciBT bG90IDIgTG9hZGVyIDEyMTgxMTI2NzY3MzkgLS0+CiAKIAo8IS0tIEU6MFhRIC0t Pgo8IS0tIEU6MFZOIC0tPgo8ZGl2IGlkPSJzZWFyY2hzdGF0dXMiPgoKCgo8IS0t IEI6MEhPIC0tPgo8c2NyaXB0IHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNv bTo4MC9CZXN0QnV5X1VTL3N0b3JlL2pzL29sc3NlYXJjaC5qcyIgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij4gPC9zY3JpcHQ+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFz Y3JpcHQiPgp2YXIgc2VhcmNoQnV0dG9uQ2xpY2tlZD1mYWxzZTsKPC9zY3JpcHQ+ Cgo8ZGl2IGlkPSJzaXRlc2VhcmNoIj4KPGZvcm0gYWN0aW9uPSIvc2l0ZS9vbHNw YWdlLmpzcCIgbmFtZT0iZnJtU2VhcmNoIiBtZXRob2Q9IkdFVCI+PGlucHV0IHZh bHVlPSJJU08tODg1OS0xIiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9keW5jaGFyc2V0 Ij48L2lucHV0PjxpbnB1dCB2YWx1ZT0iMjMzNTE1OTczMzg2MjM5MzYzMiIgdHlw ZT0iaGlkZGVuIiBuYW1lPSJfZHluU2Vzc0NvbmYiPjwvaW5wdXQ+CjxpbnB1dCB0 eXBlPSJoaWRkZW4iIG5hbWU9InNlYXJjaENhdElkIiB2YWx1ZT0icGNhdDE3MDcx Ii8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InR5cGUiIHZhbHVlPSJwYWdl IiAvPgo8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNp bmc9IjAiPgo8dHI+Cjx0ZCBjbGFzcz0ic2VhcmNodGV4dCI+U0VBUkNIIEZPUiA8 L3RkPgo8dGQ+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzdCIgbWF4bGVuZ3Ro PSI5MCIgc2l6ZT0iNDAiIHZhbHVlPSJLZXl3b3JkIG9yIEl0ZW0gIyIgb25jbGlj az0iaGFuZGxlT25DbGljayh0aGlzLmZvcm0sICdLZXl3b3JkIG9yIEl0ZW0gIycp OyIgb25rZXlwcmVzcz0icmV0dXJuIGhhbmRsZUVudGVyS2V5UHJlc3MoZXZlbnQs dGhpcy5mb3JtLCdLZXl3b3JkIG9yIEl0ZW0gIycpOyIgY2xhc3M9InNlYXJjaGZp ZWxkIiA+PC9pbnB1dD4KPC90ZD4KPHRkIGNsYXNzPSJzZWFyY2h0ZXh0Ij5JTjwv dGQ+Cjx0ZD4KPHNlbGVjdCBuYW1lPSJzYyIgY2xhc3M9InNlYXJjaHB1bGwiIG9u Q2hhbmdlPSJkb2N1bWVudC5mcm1TZWFyY2gudXNjLnZhbHVlID0gZG9jdW1lbnQu ZnJtU2VhcmNoLnNjW2RvY3VtZW50LmZybVNlYXJjaC5zYy5zZWxlY3RlZEluZGV4 XS50ZXh0OyI+CjxvcHRpb24gdmFsdWU9Ikdsb2JhbCIvPkFsbCBDYXRlZ29yaWVz PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9IlRWVmlkZW9TUCIvPlRWICYgVmlkZW88 L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iYXVkaW9TUCIvPkF1ZGlvPC9vcHRpb24+ CjxvcHRpb24gdmFsdWU9ImNhclNQIi8+Q2FyPC9vcHRpb24+CjxvcHRpb24gdmFs dWU9ImFiQ2FtZXJhQ2FtY29yZGVyU1AiLz5DYW1lcmFzICYgQ2FtY29yZGVyczwv b3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJhYkNvbXB1dGVyU1AiLz5Db21wdXRlcnM8 L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iYWJTb2Z0d2FyZVNQIi8+U29mdHdhcmU8 L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0icGhvbmVPZmZpY2VTUCIvPlBob25lcyAm IE9mZmljZTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJtdXNpY1NQIi8+TXVzaWM8 L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iYXJ0aXN0U1AiLz4mbmJzcDstQXJ0aXN0 PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImFsYnVtVGl0bGVTUCIvPiZuYnNwOy1B bGJ1bTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzb25nU1AiLz4mbmJzcDstU29u Zzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJtb3ZpZVNQIi8+TW92aWVzPC9vcHRp b24+CjxvcHRpb24gdmFsdWU9InRpdGxlU1AiLz4mbmJzcDstVGl0bGU8L29wdGlv bj4KPG9wdGlvbiB2YWx1ZT0icGVyc29uU1AiLz4mbmJzcDstUGVyc29uPC9vcHRp b24+CjxvcHRpb24gdmFsdWU9ImdhbWVUb3lTUCIvPkdhbWVzICYgVG95czwvb3B0 aW9uPgo8b3B0aW9uIHZhbHVlPSJhYkhvbWVBcHBTUCIvPkhvbWUgJiBBcHBsaWFu Y2VzPC9vcHRpb24+Cjwvc2VsZWN0Pgo8L3RkPgo8dGQgaWQ9ImdvYnV0dG9uIj48 aW5wdXQgdHlwZT0iaW1hZ2UiIG5hbWU9ImdvQnV0dG9uIiBvbmNsaWNrPSJyZXR1 cm4gVmFsaWRhdGVTZWFyY2hTdHIodGhpcy5mb3JtLCdLZXl3b3JkIG9yIEl0ZW0g IycpOyIgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlf VVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9oZi9iYnkyL2hkcl9idG5fZ28uZ2lmIiBi b3JkZXI9IjAiIGFsdD0iIiA+PC90ZD4KPC90cj4KPC90YWJsZT4KPGlucHV0IHR5 cGU9ImhpZGRlbiIgdmFsdWU9IjEiICAgbmFtZT0iY3AiIGlkPSJjcCIgLz4KPGlu cHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjE1IiAgbmFtZT0ibnJwIiBpZD0ibnJw IiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBuYW1lPSJzcCIgaWQ9 InNwIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBuYW1lPSJxcCIg aWQ9InFwIiAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibiIgbmFtZT0i bGlzdCIgaWQ9Imxpc3QiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ5 IiBuYW1lPSJpaHQiIGlkPSJpaHQiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZh bHVlPSJBbGwgQ2F0ZWdvcmllcyIgbmFtZT0idXNjIiBpZD0idXNjIiAvPgo8aW5w dXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJrcyIgaWQ9ImtzIiB2YWx1ZT0iOTYwIiAv Pgo8L2Zvcm0+PC9kaXY+Cgo8IS0tIEU6MEhPIC0tPgo8ZGl2IGlkPSJ3ZWxjb21l Ij4KCgo8IS0tIEI6MEhYIC0tPgoKCgoKCgo8Zm9ybSBhY3Rpb249Ii9zaXRlL29s c3BhZ2UuanNwP19EQVJHUz0vc2l0ZS9lbl9VUy9nbG9iYWwvbmF2L29sc3VzZXJt ZXNzYWdlLmpzcCIgbmFtZT0ibG9nb3V0Rm9ybSIgbWV0aG9kPSJwb3N0Ij48aW5w dXQgdmFsdWU9IklTTy04ODU5LTEiIHR5cGU9ImhpZGRlbiIgbmFtZT0iX2R5bmNo YXJzZXQiPjwvaW5wdXQ+PGlucHV0IHZhbHVlPSIyMzM1MTU5NzMzODYyMzkzNjMy IiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9keW5TZXNzQ29uZiI+PC9pbnB1dD4KCgoK CgoKCgoKPGlucHV0IHZhbHVlPSJodHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUv b2xzcGFnZS5qc3A/aWQ9MTIwMjY0OTQyNDE1NyZ0eXBlPXByb2R1Y3QmaXNMb2dv dXQ9dHJ1ZSIgdHlwZT0iaGlkZGVuIiBuYW1lPSIvYmVzdGJ1eS9kaWdpdGVycmEv dXNlcnByb2ZpbGluZy9TaWduSW5Qcm9maWxlRm9ybUhhbmRsZXIubG9nb3V0U3Vj Y2Vzc1VSTCI+PGlucHV0IHZhbHVlPSIgIiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9E Oi9iZXN0YnV5L2RpZ2l0ZXJyYS91c2VycHJvZmlsaW5nL1NpZ25JblByb2ZpbGVG b3JtSGFuZGxlci5sb2dvdXRTdWNjZXNzVVJMIj48c3BhbiBjbGFzcz0idG9wbGlu ZSI+V2VsY29tZS48L3NwYW4+PGJyIC8+IDxzcGFuIGNsYXNzPSJib3R0b21saW5l Ij5QbGVhc2UKPGEgaHJlZj0iaHR0cHM6Ly93d3ctc3NsLmJlc3RidXkuY29tL3Np dGUvb2xzcGFnZS5qc3A/aWQ9cGNhdDE3MDAxJnR5cGU9cGFnZSI+Y3JlYXRlIGFu IGFjY291bnQ8L2E+CiBvcgo8YSBocmVmPSJodHRwczovL3d3dy1zc2wuYmVzdGJ1 eS5jb20vc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY2F0MTcwMDAmdHlwZT1wYWdlIj5T aWduIGluPC9hPi4KPC9zcGFuPjxiciAvPgo8aW5wdXQgdmFsdWU9IiIgdHlwZT0i aGlkZGVuIiBuYW1lPSIvYmVzdGJ1eS9kaWdpdGVycmEvdXNlcnByb2ZpbGluZy9T aWduSW5Qcm9maWxlRm9ybUhhbmRsZXIubG9nb3V0Ij48aW5wdXQgdmFsdWU9IiAi IHR5cGU9ImhpZGRlbiIgbmFtZT0iX0Q6L2Jlc3RidXkvZGlnaXRlcnJhL3VzZXJw cm9maWxpbmcvU2lnbkluUHJvZmlsZUZvcm1IYW5kbGVyLmxvZ291dCI+PGlucHV0 IHZhbHVlPSIvc2l0ZS9lbl9VUy9nbG9iYWwvbmF2L29sc3VzZXJtZXNzYWdlLmpz cCIgdHlwZT0iaGlkZGVuIiBuYW1lPSJfREFSR1MiPjwvaW5wdXQ+PC9mb3JtPgo8 IS0tIEU6MEhYIC0tPgo8L2Rpdj4KPC9kaXY+CjwhLS0gQjowVk0gLS0+CgoKCgoK Cgo8IS0tIEI6MFZOIC0tPgoKCgogIAogIAogIAoKICAKICAgCiAgCiAgCiAgCgoK CgoKCgoKCjwhLS0gQjowWFEgLS0+CgoKCgoKIAoKICA8IS0tIEhlYWRlciBDcml0 aWNhbCBDb2RlIChEbyBOb3QgUmVtb3ZlKSAtLT4gPC9kaXY+IDwhLS0gL0hlYWRl ciAtLT4gPGRpdiBpZD0ic2tpcCIgbmFtZT0ic2tpcCI+PC9kaXY+IDwhLS0gL0hl YWRlciBDcml0aWNhbCAtLT4gDQoNCjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNw P19keW5jaGFyc2V0PUlTTy04ODU5LTEmaWQ9cGNhdDE3MDgwJnR5cGU9cGFnZSZs Y249VFYrJTI2K1ZpZGVvJnNjPTAmc3Q9cHJvY2Vzc2luZ3RpbWUlM0ElM0UxOTAw LTAxLTAxJnVzYz1hYmNhdDAxMDAwMDAmY3A9MSZzcD0tYmVzdHNlbGxpbmdzb3J0 K3NrdWlkJm5ycD0xNSZxcD1jcm9vdGNhdGVnb3J5aWQlN0UlN0VjYWJjYXQwMTAw MDAwJTdFJTdFY2FiY2F0MDEwMTAwMCU3RSU3RWYzOTYlN0MlN0M0NjcyNjU2NTIw NTM2ODY5NzA3MDY5NmU2NyU3RSU3RW5mODIyJTdDJTdDMjQzOTM5MzkyZTM5Mzky MDYxNmU2NDIwNTU3MCZwYWdldHlwZT1saXN0aW5nIiBuYW1lPSImbGlkPUI1Ml9E ZWxpdmVyeVBhY2thZ2U5OTlfMjAwOTAzMDEiPjxTQ1JJUFQgTEFOR1VBR0U9Ikph dmFzY3JpcHQiPmRpc3BsYXlJbWcoJy9lbl9VUy9pbWFnZXMvYWJuLzIwMDkvdHZ2 L3Bjb24vYjUyX2RlbGl2ZXJ5XzA5MDMwMS5naWYnLCc0MCcsJzc4MCcsJ0RlbGl2 ZXJ5LCBIb29rLVVwICYgUmVjeWNsaW5nIHdpdGggSERUVnMgJDk5OSBhbmQgVXAh IFNob3Agbm93LiBFeGNsdXNpb25zIGFwcGx5LicpOzwvc2NyaXB0PjwvYT4KIAog CjwhLS0gRTowWFEgLS0+CjwhLS0gRTowVk4gLS0+Cgo8IS0tIEU6MFZNIC0tPgo8 IS0tIEI6MFZNIC0tPgoKCgoKCgoKPCEtLSBCOjBWTiAtLT4KCgoKICAKICAKICAK CiAgCiAgIAogIAogIAogIAoKCgoKCgoKCgo8IS0tIEI6MFhRIC0tPgoKCgoKCiAK IAo8IS0tIEU6MFhRIC0tPgo8IS0tIEU6MFZOIC0tPgoKPCEtLSBFOjBWTSAtLT4K Cgo8L2Rpdj4KCjwhLS0gRTowRzYgLS0+CgoKCjxkaXYgaWQ9InBkcGNlbnRlcndl bGwiPgoKCgoKPCEtLSBCOjBZQyAtLT4KCjxmb3JtIGFjdGlvbj0iL3NpdGUvb2xz cGFnZS5qc3A/X0RBUkdTPS9zaXRlL2VuX1VTL2NhdGFsb2cvZnJhZ21lbnRzL3By b2R1Y3Qvb2xzbmxoYXJkZ29vZHNwcm9kdWN0Y2VudGVyd2VsbC5qc3AiIG5hbWU9 ImZybUFkZEl0ZW1Ub1dpc2hMaXN0IiBtZXRob2Q9InBvc3QiPjxpbnB1dCB2YWx1 ZT0iSVNPLTg4NTktMSIgdHlwZT0iaGlkZGVuIiBuYW1lPSJfZHluY2hhcnNldCI+ PC9pbnB1dD48aW5wdXQgdmFsdWU9IjIzMzUxNTk3MzM4NjIzOTM2MzIiIHR5cGU9 ImhpZGRlbiIgbmFtZT0iX2R5blNlc3NDb25mIj48L2lucHV0Pgo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJwcm9kdWN0SWQiIHZhbHVlPSIiPgo8aW5wdXQgdHlw ZT0iaGlkZGVuIiBuYW1lPSJ0ZW1wQ2F0YWxvZ1JlZklkIiB2YWx1ZT0iIj4KPGlu cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaWQiIHZhbHVlPSIiPgoKCgoKCjxpbnB1 dCB2YWx1ZT0iaHR0cHM6Ly93d3ctc3NsLmJlc3RidXkuY29tL3NpdGUvb2xzcGFn ZS5qc3A/aWQ9Y2F0MTIwNTQmdHlwZT1wYWdlIiB0eXBlPSJoaWRkZW4iIG5hbWU9 Ii9iZXN0YnV5L2RpZ2l0ZXJyYS9jb21wYXJpc29uL2Zvcm1oYW5kbGVyL1NpZ25J bkdpZnRMaXN0Rm9ybUhhbmRsZXIuYWRkSXRlbVRvR2lmdGxpc3RTdWNjZXNzVVJM Ij48aW5wdXQgdmFsdWU9IiAiIHR5cGU9ImhpZGRlbiIgbmFtZT0iX0Q6L2Jlc3Ri dXkvZGlnaXRlcnJhL2NvbXBhcmlzb24vZm9ybWhhbmRsZXIvU2lnbkluR2lmdExp c3RGb3JtSGFuZGxlci5hZGRJdGVtVG9HaWZ0bGlzdFN1Y2Nlc3NVUkwiPgoKCgoK PGlucHV0IHZhbHVlPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD0xMjAyNjQ5NDI0MTU3 JnR5cGU9cHJvZHVjdCIgdHlwZT0iaGlkZGVuIiBuYW1lPSIvYmVzdGJ1eS9kaWdp dGVycmEvY29tcGFyaXNvbi9mb3JtaGFuZGxlci9TaWduSW5HaWZ0TGlzdEZvcm1I YW5kbGVyLmFkZEl0ZW1Ub0dpZnRsaXN0RXJyb3JVUkwiPjxpbnB1dCB2YWx1ZT0i ICIgdHlwZT0iaGlkZGVuIiBuYW1lPSJfRDovYmVzdGJ1eS9kaWdpdGVycmEvY29t cGFyaXNvbi9mb3JtaGFuZGxlci9TaWduSW5HaWZ0TGlzdEZvcm1IYW5kbGVyLmFk ZEl0ZW1Ub0dpZnRsaXN0RXJyb3JVUkwiPgoKCgoKCgo8aW5wdXQgdmFsdWU9Imh0 dHBzOi8vd3d3LXNzbC5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lkPXBj YXQxNzAwMCZ0eXBlPXBhZ2UiIHR5cGU9ImhpZGRlbiIgbmFtZT0icmVkaXJlY3RV UkwiPjxpbnB1dCB2YWx1ZT0iICIgdHlwZT0iaGlkZGVuIiBuYW1lPSJfRDpyZWRp cmVjdFVSTCI+Cgo8aW5wdXQgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiIgbmFtZT0i L2Jlc3RidXkvZGlnaXRlcnJhL2NvbXBhcmlzb24vZm9ybWhhbmRsZXIvU2lnbklu R2lmdExpc3RGb3JtSGFuZGxlci5xdWFudGl0eSI+PGlucHV0IHZhbHVlPSIgIiB0 eXBlPSJoaWRkZW4iIG5hbWU9Il9EOi9iZXN0YnV5L2RpZ2l0ZXJyYS9jb21wYXJp c29uL2Zvcm1oYW5kbGVyL1NpZ25JbkdpZnRMaXN0Rm9ybUhhbmRsZXIucXVhbnRp dHkiPjxpbnB1dCB2YWx1ZT0iZ2w3NDI4MjQ3MzEwIiB0eXBlPSJoaWRkZW4iIG5h bWU9ImdpZnRsaXN0SWQiPjxpbnB1dCB2YWx1ZT0iICIgdHlwZT0iaGlkZGVuIiBu YW1lPSJfRDpnaWZ0bGlzdElkIj48aW5wdXQgdmFsdWU9IiIgdHlwZT0iaGlkZGVu IiBuYW1lPSJhZGRJdGVtVG9XaXNoTGlzdCI+PGlucHV0IHZhbHVlPSIgIiB0eXBl PSJoaWRkZW4iIG5hbWU9Il9EOmFkZEl0ZW1Ub1dpc2hMaXN0Ij48aW5wdXQgdmFs dWU9Ii9zaXRlL2VuX1VTL2NhdGFsb2cvZnJhZ21lbnRzL3Byb2R1Y3Qvb2xzbmxo YXJkZ29vZHNwcm9kdWN0Y2VudGVyd2VsbC5qc3AiIHR5cGU9ImhpZGRlbiIgbmFt ZT0iX0RBUkdTIj48L2lucHV0PjwvZm9ybT4KCgoKCgoKCjwhLS0gQjowWUQgLS0+ Cgo8c2NyaXB0Pgp2YXIgcGFnZVR5cGU9InBhZ2UiOwp2YXIgZW50cnlVUkxUeXBl ID0gInByb2R1Y3QiOwo8L3NjcmlwdD4KPGZvcm0gYWN0aW9uPSIvc2l0ZS9vbHNw YWdlLmpzcD9fREFSR1M9L3NpdGUvZW5fVVMvY2F0YWxvZy9mcmFnbWVudHMvcHJv ZHVjdC9vbHNubGhhcmRnb29kc3Byb2R1Y3RjZW50ZXJ3ZWxsY29udGVudC5qc3Ai IG5hbWU9ImZybUNhcnQiIG1ldGhvZD0iUE9TVCI+PGlucHV0IHZhbHVlPSJJU08t ODg1OS0xIiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9keW5jaGFyc2V0Ij48L2lucHV0 PjxpbnB1dCB2YWx1ZT0iMjMzNTE1OTczMzg2MjM5MzYzMiIgdHlwZT0iaGlkZGVu IiBuYW1lPSJfZHluU2Vzc0NvbmYiPjwvaW5wdXQ+CjxpbnB1dCB0eXBlPSJoaWRk ZW4iIG5hbWU9InByb2R1Y3RJZHMiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1l PSJza3VJZHMiPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGFiIiB2YWx1 ZT0iMSI+CgoKCjxpbnB1dCB2YWx1ZT0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9MTIw MjY0OTQyNDE1NyZ0eXBlPXByb2R1Y3Qmc2t1SWQ9ODc0OTI4NyZwcm9kdWN0Q2F0 ZWdvcnlJZD1hYmNhdDAxMDEwMDEiIHR5cGU9ImhpZGRlbiIgbmFtZT0iL2F0Zy9j b21tZXJjZS9vcmRlci9TaG9wcGluZ0NhcnRNb2RpZmllci5hZGRJdGVtc1RvT3Jk ZXJFcnJvclVSTCI+PGlucHV0IHZhbHVlPSIgIiB0eXBlPSJoaWRkZW4iIG5hbWU9 Il9EOi9hdGcvY29tbWVyY2Uvb3JkZXIvU2hvcHBpbmdDYXJ0TW9kaWZpZXIuYWRk SXRlbXNUb09yZGVyRXJyb3JVUkwiPgo8aW5wdXQgdmFsdWU9InRydWUiIHR5cGU9 ImhpZGRlbiIgbmFtZT0idXNlUmVkaXJlY3Rpb25VUkwiPjxpbnB1dCB2YWx1ZT0i ICIgdHlwZT0iaGlkZGVuIiBuYW1lPSJfRDp1c2VSZWRpcmVjdGlvblVSTCI+PGlu cHV0IHZhbHVlPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD0xMjAyNjQ5NDI0MTU3JnR5 cGU9cHJvZHVjdCZza3VJZD04NzQ5Mjg3JnByb2R1Y3RDYXRlZ29yeUlkPWFiY2F0 MDEwMTAwMSIgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWRpcmVjdGlvblVSTCI+PGlu cHV0IHZhbHVlPSIgIiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9EOnJlZGlyZWN0aW9u VVJMIj4KPGlucHV0IHZhbHVlPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY2F0MTcw MDUmdHlwZT1wYWdlIiB0eXBlPSJoaWRkZW4iIG5hbWU9Ii9hdGcvY29tbWVyY2Uv b3JkZXIvU2hvcHBpbmdDYXJ0TW9kaWZpZXIuYWRkSXRlbXNUb09yZGVyU3VjY2Vz c1VSTCI+PGlucHV0IHZhbHVlPSIgIiB0eXBlPSJoaWRkZW4iIG5hbWU9Il9EOi9h dGcvY29tbWVyY2Uvb3JkZXIvU2hvcHBpbmdDYXJ0TW9kaWZpZXIuYWRkSXRlbXNU b09yZGVyU3VjY2Vzc1VSTCI+PGlucHV0IHZhbHVlPSIiIHR5cGU9ImhpZGRlbiIg bmFtZT0iL2F0Zy9jb21tZXJjZS9vcmRlci9TaG9wcGluZ0NhcnRNb2RpZmllci5h ZGRJdGVtc1RvT3JkZXIiPjxpbnB1dCB2YWx1ZT0iICIgdHlwZT0iaGlkZGVuIiBu YW1lPSJfRDovYXRnL2NvbW1lcmNlL29yZGVyL1Nob3BwaW5nQ2FydE1vZGlmaWVy LmFkZEl0ZW1zVG9PcmRlciI+IAoKCjwhLS0gQjowWUggLS0+CgoKCgoKPCEtLSBC OjA3RyAtLT4KCgo8ZGl2IGlkPSJzZWFyY2hzdGF0ZSI+CgoKCgoKCjxhIGhyZWY9 J29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdvcnkmaWQ9Y2F0MDAwMDAnPkJlc3QgQnV5 PC9hPgomZ3Q7CgoKCjxhIGhyZWY9J29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdvcnkm aWQ9YWJjYXQwMTAwMDAwJz5UViAmIFZpZGVvPC9hPgomZ3Q7CgoKCjxhIGhyZWY9 J29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdvcnkmaWQ9YWJjYXQwMTAxMDAwJz5UZWxl dmlzaW9uczwvYT4KJmd0OwoKCgo8YSBocmVmPSdvbHNwYWdlLmpzcD90eXBlPWNh dGVnb3J5JmlkPWFiY2F0MDEwMTAwMSc+RmxhdC1QYW5lbCBUVnM8L2E+CiZndDsK PHN0cm9uZz5Qcm9kdWN0IEluZm88L3N0cm9uZz4gCjwvZGl2PgoKCjwhLS0gRTow N0cgLS0+CgoKCgo8ZGl2IGlkPSJwcm9kdWN0cHJldmlldyI+PCEtLSB0aGUgInVw cGVyIGhhbGYiIG9mIHRoZSBwYWdlIC0tPgo8ZGl2IGlkPSJpbWFnZXByZXZpZXci PjwhLS0gbGVmdCBoYW5kIHNpZGUgb2YgdGhlICJwb3N0Y2FyZCIgLS0+CjxhIGhy ZWY9ImphdmFzY3JpcHQ6Zm5IYXJkbGluZVByb2R1Y3RWaWV3KCcxMjAyNjQ5NDI0 MTU3JywgJzg3NDkyODcnLCdmYWxzZScsJ2NhdDEzNTA2JykiPgo8aW1nIHNyYz0i aHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2ltYWdlcy9w cm9kdWN0cy84NzQ5Lzg3NDkyODdfc2IuanBnIiBhbHQ9Ijg3NDkyODcgRnJvbnQg TGFyZ2UiIGJvcmRlcj0iMCIgaGVpZ2h0PSIxNTEuMCIgd2lkdGg9IjIyMC4wIiBh bGlnbj0idG9wIj48YnI+CjwvYT4KPGRpdiBpZD0ibW9yZWJ1dHRvbnMiPgo8dWw+ Cgo8bGk+CjxhIGhyZWY9ImphdmFzY3JpcHQ6Zm5IYXJkbGluZVByb2R1Y3RWaWV3 KCcxMjAyNjQ5NDI0MTU3JywgJzg3NDkyODcnLCdmYWxzZScsICdjYXQxMzUwNicp Ij4KPGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1 eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2J1dHRvbnMvYnRuX3ZpZXdtb3JlLmdp ZiIgYWx0PSJWaWV3IE1vcmUgUGhvdG9zIiBib3JkZXI9IjAiIGlkPSJ2aWV3bW9y ZXBob3RvcyI+CjwvYT4KPC9saT4KCjwhLS1Db2RlIHNuaXBwZXQgZm9yIGRpc3Bs YXlpbmcgdGhlIERORF9wcm9kdWN0X2RlbW8tIHN0YXJ0LS0+Cgo8bGk+IDxhIGhy ZWY9ImphdmFzY3JpcHQ6dm9pZCh3aW5kb3cub3BlbignaHR0cDovL2NvbnRlbnQu d2ViY29sbGFnZS5uZXQvYmVzdGJ1eS9wcm9kdWN0LWNvbnRlbnQtcGFnZT9pZD0x MjAyNjQ5NDI0MTU3JndjcGlkPXNhbXN1bmd1cy1sbjUyYTY1MGExZnh6YScsJ19i bGFuaycsJycpKSI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206 ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2J1dHRvbnMvYnRuLWRl bW8uZ2lmIiBhbHQ9IlNlZSBwcm9kdWN0IGRlbW8iIGJvcmRlcj0iMCIgaWQ9InBy b2R1Y3RkZW1vIiAvPjwvYT48L2xpPgo8IS0tQ29kZSBzbmlwcGV0IGZvciBkaXNw bGF5aW5nIHRoZSBETkRfcHJvZHVjdF9kZW1vIC0gZW5kLS0+CgoKPC91bD4KPC9k aXY+Cgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjxkaXYgaWQ9InByb2R1Y3Rs b2dvIj4KCjwvZGl2Pgo8ZGl2IGlkPSJzd2F0Y2hlcyI+Cgo8IS0tIEI6MFlFIC0t PgoKCgoKCgo8IS0tIEU6MFlFIC0tPgo8L2Rpdj4KPCEtLSBwdDEwIC0tPgo8L2Rp dj4KPGRpdiBpZD0icHJvZHVjdHN1bW1hcnkiPjwhLS0gcmlnaHQgaGFuZCBzaWRl IG9mIHRoZSAicG9zdGNhcmQiLS0+CgoKPGRpdiBjbGFzcz0icGRwY3VydmVib3Jk ZXIiPjwhLS0gLS0+PC9kaXY+CjxkaXYgY2xhc3M9InBkcHN1bW1hcnlib3giPgoK CjwhLS0gQjowWUEgLS0+Cgo8aDE+ClNhbXN1bmcKLSA1MiIgQ2xhc3MgLyAxMDgw cCAvIDEyMEh6IC8gTENEIEhEVFYKPC9oMT4KPGRpdiBpZD0iZGV0YWlsYmFuZCI+ Cgo8c3Ryb25nPk1vZGVsOjwvc3Ryb25nPiBMTjUyQTY1MAo8c3BhbiBjbGFzcz0i c2VwIj4gfDwvc3Bhbj4KPHN0cm9uZz5TS1U6PC9zdHJvbmc+IDg3NDkyODcKPGJy Lz4KCjxicj48c3BhbiBpZD0iQlZDdXN0b21SYXRpbmdzU3VtbWFyeSI+PC9zcGFu PgoKPC9kaXY+CgoKPCEtLSBFOjBZQSAtLT4KPGRpdiBjbGFzcz0icGRwaHIiPjxo ci8+PC9kaXY+CgoKCjwhLS0gQjowWjggLS0+CgoKCgoKCjwhLS0gQjowWjggLS0+ CgoKCgoKCgoKCgoKCgoKCgoKCgo8aW5wdXQgbmFtZT0iODc0OTI4NyIgdHlwZT0i aGlkZGVuIiB2YWx1ZT0iMSI+CjxkaXYgY2xhc3M9InBkcHN1bW1hcnlib3hjb250 ZW50IHR3b2NvbGJvcmRlcmRhc2hlZCIgaWQ9InBkcHN1bW1hcnlib3hjb250ZW50 Ij4KPGRpdiBjbGFzcz0ibGVmdGNvbCI+CjxkaXYgY2xhc3M9InBkcGF2YWlsIiBp ZD0icGRwYXZhaWwiPgo8cD4KCgoKCjwhLS0gQjowWjggLS0+CgoKCgoKCgoKCgoK CjwhLS0gQjowWjggLS0+CgoKCgoKCgoKCgoKCjxiPkRlbGl2ZXJ5OjwvYj4gTW9z dCBhcmVhcwoKCgoKCjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNwP2NvbW1lcmNl SXRlbUlkPWR1bW15JmFtcDtza3VJZD04NzQ5Mjg3JmFtcDtzb3VyY2VUeXBlPXBy b2R1Y3QmYW1wO3R5cGU9cGFnZSZhbXA7ZnVuYz0mYW1wO3NvdXJjZUlkPTEyMDI2 NDk0MjQxNTcmYW1wO2l0ZW1JZD0xMTk1NDU2JmFtcDtpZD1wY2F0MTcwMDciPgpD aGVjayBEYXRlczwvYT48YnI+CgoKCgo8IS0tICBDb21tZW50ZWQgYXMgYSBwYXJ0 IG9mIEJ1dHRvbiBtZXNzYWdpbmcgY2hhbmdlcwotLT4KCjwvcD4KCgoKCgoKPHA+ CgoKCjxiPlN0b3JlIFBpY2t1cDo8L2I+IE5vdCBBdmFpbGFibGUKCjxiciAvPgpG aW5kIGl0IGF0IGEgIEJlc3QgQnV5IHN0b3JlLjxiciAvPgoKCgoKCgoKCgoKPGEg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2UuanNwP2lk PXBjYXQxNzAwNiZ0eXBlPXBhZ2Umc291cmNlSWQ9MTIwMjY0OTQyNDE1NyZzb3Vy Y2VUeXBlPXByb2R1Y3Qmc2t1SWQ9ODc0OTI4NyZwcm9kdWN0SWQ9MTIwMjY0OTQy NDE1NyZpdGVtSWQ9MTE5NTQ1NiI+Q2hlY2sgU3RvcmVzPC9hPgoKCgoKPC9wPgog CjwhLS0gcHQxMiAtLT4KCjwhLS0gRTowWjggLS0+CgoKCiAKIAogCiAKIAogCgo8 ZGl2IGNsYXNzPSJwZHBpbm5lcmhyIj48aHIgLz48L2Rpdj4KCgogCiAKIAoKCiAK IAogCgoKIAogCiAKCgogCiAKIAoKCiAKIAogCgoKCgoKCgo8IS0tIEI6MFpBIC0t PgoKCiAKIAogCiAKIAogICAKIAogIAogCiAgIAogCiAgCiAKIAogCiAKIAogCgo8 ZGl2IGlkPSJwbHVzYmxvY2siPgo8aDQ+U3BlY2lhbCBPZmZlcnM6PC9oND4KPHVs PgoKPGxpPgo8YSBocmVmPSJqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9p ZD1wY21jYXQxNTM5MDAwNTAwMDcmdHlwZT1jYXRlZ29yeScsJ1Byb21vdGlvbics JzQnLCcwJyk7Ij4KPC9hPk91dGxldCBDZW50ZXIKPC9hPgo8L2xpPgogCiAKICAK ICAKIAogCiAgIAogCiAgCiAKICAgCiAKICAKIAogCiAKIAogCiAKCjxsaT4KPGEg aHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/dHlwZT1jYXRlZ29yeSZhbXA7aWQ9cGNt Y2F0MTc5ODAwMDUwMDA0Ij5TYXZlICQxMDA6IEZpbmQgT3V0IEhvdzwvYT48L2xp PgogCiAKICAKICAKIAogCiAgIAogCiAgCiAKICAgCiAKICAKIAogCiAKIAogCiAK CjxsaT4KPGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/dHlwZT1jYXRlZ29yeSZh bXA7aWQ9cGNtY2F0MTY3MzAwMDUwMDAwIj4xMCUgT2ZmIEJvc2UgU3BlYWtlciBT eXN0ZW06IFNlZSBIb3c8L2E+PC9saT4KIAogCiAgCiAgCiAKIAogICAKIAogIAog CiAgIAogCiAgCiAKIAogCiAKIAogCgo8bGk+CjxhIGhyZWY9Ii9zaXRlL29sc3Bh Z2UuanNwP3R5cGU9Y2F0ZWdvcnkmYW1wO2lkPXBjbWNhdDE3OTYwMDA1MDAxMCI+ U2F2ZSAkNDA6IEZpbmQgT3V0IEhvdzwvYT48L2xpPgogCiAKICAKICAKIAogCiAg IAogCiAgCiAKICAgCiAKICAKIAogCiAKICAKICAKIAogCiAgIAogCiAgCiAKICAg CiAKICAKIAogCiAKICAKICAKICAKCgogCgo8L3VsPjwvZGl2PgoKCjwhLS0gRTow WkEgLS0+CiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAogCiAKIAog CiAKIAogCiAKIAogCgo8ZGl2IGlkPSJmaW5hbmNlYmxvY2siPgoKPGg0PkZpbmFu Y2luZzo8L2g0Pgo8dWw+Cgo8bGk+CjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNw P2lkPWNhdDEyMTI1JnR5cGU9cGFnZSZmQ29kZT01Ij5HcmVhdCBGaW5hbmNpbmcg T2ZmZXI8L2E+PGJyPgo8L2xpPgogCiAKIAogCiAKIAogCiAKCjxsaT4KPGEgaHJl Zj0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9Y2F0MTIxMjUmdHlwZT1wYWdlJmZDb2Rl PTE0Ij5HcmVhdCBGaW5hbmNpbmcgT2ZmZXI8L2E+PGJyPgo8L2xpPgogCgo8L3Vs PjwvZGl2PgoKPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8IS0tIHB0MTEgLS0+ CgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJyaWdodGNvbCI+CgoKCgo8IS0t IEI6MFo4IC0tPgoKCjwhLS1Db2RlIHNuaXBwZXQgZm9yIGRpc3BsYXlpbmcgdGhl IERORF9wb3dlclByaWNlLSBzdGFydC0tPgo8ZGl2IGlkPSJwb3dlcnByaWNlY29u dGVudCI+CjwvZGl2Pgo8IS0tQ29kZSBzbmlwcGV0IGZvciBkaXNwbGF5aW5nIHRo ZSBETkRfcG93ZXJQcmljZSAtIGVuZC0tPgoKPCEtLSBFOjBaOCAtLT4KCgo8ZGl2 IGlkPSJwcmljZWJsb2NrIj4KCgoKPCEtLSBCOjBaVCAtLT4KCgoKCgoKCgoKPCEt LSBCOjBaUyAtLT4KCgoKCgoKPGRpdiBpZD0ib3V0bGV0Y2VudGVyIj4KPGEgaHJl Zj0iI291dGxldGNlbnRlcm1lc3NhZ2UiPkFib3V0IE91dGxldCBDZW50ZXIgPjwv YT4KPC9kaXY+CgoKCgoKCjxkaXY+CgoKPC9kaXY+Cgo8ZGl2IGlkPSJzYWxlcHJp Y2UiPgo8ZGl2IGNsYXNzPSJzYWxldGV4dCI+Ck91ciBQcmljZTo8L2Rpdj4KPGRp diBjbGFzcz0ic2FsZW51bSI+CgoKPCEtLSBCOjBMSSAtLT4KCgokOS45OTxicj4K CjwhLS0gRTowTEkgLS0+CjwvZGl2Pgo8L2Rpdj4KCgo8IS0tIEU6MFpTIC0tPgoK PCEtLSBFOjBaVCAtLT4KPC9kaXY+CgoKCgoKCjxicj48ZGl2IGlkPSJidXR0b25i bG9jayI+CgoKCgoKCgo8YSBocmVmPSJqYXZhc2NyaXB0OmZuQWRkSXRlbVRvQ2Fy dFdpdGhBY2Nlc3NvcmllcygnMTIwMjY0OTQyNDE1NycsJzg3NDkyODcnKSI+PGlt ZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9l bl9VUy9pbWFnZXMvZ2xvYmFsL2J1dHRvbnMvYnRuX2FkZHRvY2FydF9wZHAuZ2lm IiBhbHQ9IkFkZCB0byBDYXJ0IiBib3JkZXI9IjAiIGlkPSJhZGR0b2NhcnQiPjwv YT4KCgo8aW5wdXQgbmFtZT0iODc0OTI4NyIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0i MSI+Cgo8YSBocmVmPSJqYXZhc2NyaXB0OmZuTW92ZUl0ZW1Ub1dpc2hMaXN0KCcx MjAyNjQ5NDI0MTU3JywgJzg3NDkyODcnKSI+CjxpbWcgc3JjPSJodHRwOi8vaW1h Z2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2Jh bC9idXR0b25zL2J0bl9hZGR0b3dpc2hsaXN0X3BkcC5naWYiIGFsdD0iQWRkIHRv IFdpc2ggTGlzdCIgYm9yZGVyPSIwIiBpZD0iYWRkdG93aXNobGlzdCI+CjwvYT4K Cgo8ZGl2IGlkPSJwcmludGVyZnJpZW5kbHkiPgo8YSBocmVmPSJqYXZhc2NyaXB0 OndpbmRvdy5wcmludCgpOyI+UHJpbnRlciBmcmllbmRseSBwcmludGluZzwvYT4K PC9kaXY+CjxkaXYgaWQ9InByaW50Zm9ybWRpdiI+CjwvZGl2PgoKCjxkaXYgaWQ9 InBhZ2V0b29scyI+CjwhLS1wYWdldGV4dDc1LS0+CjwvZGl2PgoKPC9kaXY+PCEt LWJ1dHRvbiBibG9jayAtIGVuZC0tPgo8ZGl2Pgo8IS0tIHB0MTMgLS0+CjxzY3Jp cHQ+CmlmKHR5cGVvZihza3V0eXBlY2RlKSE9InVuZGVmaW5lZCIpe2lmKHNrdXR5 cGVjZGU9PSIwMyIpe2xpbmtLaWxsPWZhbHNlO2lmKCEoZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImluc3RvcmVvbmx5IikpKXsKICAgaWYoZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImFkZHRvY2FydCIpKXtidG5Td2FwPWRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCJhZGR0b2NhcnQiKTtsaW5rS2lsbD10cnVlO30KICAgZWxzZSBpZihk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlb3JkZXIiKSl7YnRuU3dhcD1kb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgicHJlb3JkZXIiKTtsaW5rS2lsbD10cnVlO30K ICAgZWxzZSBpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29taW5nc29vbiIp KXtidG5Td2FwPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21pbmdzb29uIik7 fQogICBlbHNlIGlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb2xkb3V0Iikp e2J0blN3YXA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvbGRvdXQiKTt9CiAg IGJ0blN3YXAuc3JjPSBpbWdTZXJ2ZXIrIi9lbl9VUy9pbWFnZXMvZ2xvYmFsL2J1 dHRvbnMvYnRuX2luc3RvcmVvbmx5X3BkcC5naWYiOwogICBidG5Td2FwLmFsdD0i SW4gU3RvcmUgT25seSI7CiAgIGlmKGxpbmtLaWxsKXtidG5Td2FwLnBhcmVudE5v ZGUuaHJlZj0iIyI7fX19Cn0KCnRyeXsKCXZhciBpc09DID0gZmFsc2U7IHZhciBw bHVzRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsdXNibG9jaycpOyB2 YXIgbGlUYWdzID0gcGx1c0Rpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbGknKTsK Zm9yKHZhciBpPTAsbGVuPWxpVGFncy5sZW5ndGg7aTxsZW47aSsrKXsKCWlmKGxp VGFnc1tpXS5pbm5lckhUTUwuaW5kZXhPZignT3V0bGV0IENlbnRlcicpIT0tMSl7 CgkJaXNPQyA9IHRydWU7IHZhciBvY0RpdiA9IGxpVGFnc1tpXTsKCQlpZihsaVRh Z3MubGVuZ3RoPjEpe29jRGl2LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7fQoJCWVs c2V7cGx1c0Rpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHBsdXNEaXYucGFyZW50 Tm9kZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JylbMF0pOwlwbHVzRGl2LnBh cmVudE5vZGUucmVtb3ZlQ2hpbGQocGx1c0Rpdik7fQoJfQp9CgppZihpc09DKXt2 YXIgcGIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpY2VibG9jaycpOyB9 CmVsc2UgaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3B3cnByaWNlJykpewoJ dmFyIHBwcmljZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwd3JwcmljZScp LmlubmVySFRNTDsKCXZhciBwYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdw cmljZWJsb2NrJyk7Cgl2YXIgc2ljVVJMID0gIm9sc3BhZ2UuanNwP2lkPXBjYXQx NzA1MyZ0eXBlPXBhZ2Umc2t1SWQ9Iitza3VpZCsiJnByb2R1Y3RJZD0iK3Byb2R1 Y3Q7CglwYi5pbm5lckhUTUwgPSAiPGRpdiBpZD0nc2VlaW5jYXJ0Jz5PdXIgUHJp Y2U6PGJyIC8+PGEgaHJlZj1cImphdmFzY3JpcHQ6cG9wVXAoJyIrc2ljVVJMKyIn LCdNaW5pQ2FydCcsJzQnLCcwJyk7XCI+U2VlIHByaWNlIGluIGNhcnQ8L2E+PC9k aXY+IjsKfQp9Y2F0Y2goZSl7fQo8L3NjcmlwdD4KCjwvZGl2Pgo8L2Rpdj48IS0t cmlnaHRjb2wgLSBlbmQtLT4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rp dj48IS0tcGRwc3VtbWFyeWJveGNvbnRlbnQgdHdvY29sYm9yZGVyZGFzaGVkLS0+ Cgo8IS0tIEU6MFo4IC0tPgoKPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8ZGl2 IGNsYXNzPSJwZHBjdXJ2ZWJvcmRlcmJvdHRvbSI+PCEtLSAtLT48L2Rpdj4KPC9k aXY+CjwhLS1TT0QgQmxvY2sgU3RhcnRzLS0+CjwhLS1TT0QgQmxvY2sgZW5kcy0t Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj48IS0tIC9l bmQgdXBwZXIgaGFsZiAicHJvZHVjdHByZXZpZXciIC0tPgo8IS0tIGFyZWEgdG8g cHV0IHBhZ2UgdGV4dCB0aGF0IGFwcGVhcnMgYmV0d2VlbiB0aGUgcG9zdGNhcmQg YW5kIHRoZSB0YWJiZWQgY29udGVudCBhcmVhIC0tPgo8ZGl2IGNsYXNzPSJjZW50 ZXJ3ZWxscGd0eHQiPgo8IS0tIHB0MTQgLS0+CjwvZGl2Pgo8ZGl2IGlkPSJwcm9k dWN0ZGV0YWlsIj48IS0tIGxvd2VyICJoYWxmIiBvZiB0aGUgcGFnZSAtLT4KPGRp diBpZD0idGFiYmVkYm94Ij4KCgoKCjwhLS0gQjowWUsgLS0+CgoKCgoKCgoKCgoK CgoKCgoKCgoKCgoKPHVsIGlkPSJwcmludGZvcm0iPgo8bGk+PHA+Q2hvb3NlIHRo ZSBwYWdlcyB5b3Ugd291bGQgbGlrZSB0byBwcmludDwvcD48L2xpPgo8bGk+PGlu cHV0IHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0idGFiYmVkLW92ZXJ2aWV3IiBjaGVj a2VkIC8+T3ZlcnZpZXc8L2xpPgoKPGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIg dmFsdWU9InRhYmJlZC1zcGVjaWZpY2F0aW9ucyIgLz5TcGVjaWZpY2F0aW9uczwv bGk+CgoKPGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9InRhYmJlZC1h Y2Nlc3NvcmllcyIgLz5BY2Nlc3NvcmllczwvbGk+Cgo8bGk+PGlucHV0IHR5cGU9 ImNoZWNrYm94IiB2YWx1ZT0idGFiYmVkLWN1c3RvbWVycmV2aWV3cyIgLz5DdXN0 b21lciBSZXZpZXdzPC9saT4KCjxsaT48aW5wdXQgdHlwZT0iY2hlY2tib3giIHZh bHVlPSJ0YWJiZWQtcmV2aWV3cyIgLz5FZGl0b3JpYWwgUmV2aWV3czwvbGk+CgoK PGxpPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgdmFsdWU9InRhYmJlZC1wcm9kdWN0 cmVzZWFyY2giIC8+UmVzZWFyY2g8L2xpPgoKCjxsaT48aW1nIHNyYz0iaHR0cDov L2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9n bG9iYWwvYnV0dG9ucy9idG4tcHJpbnQuZ2lmIiBhbHQ9IlByaW50IiBpZD0icHJp bnRidXR0b24iIC8+PC9saT4KPC91bD4KCgo8IS0tIGhhcmRnb29kIHRhYnMgLS0+ CjxkaXYgaWQ9InBkcHRhYnMiPjwhLS0gcm93IG9mIHBkcCB0YWJzIC0tPgoKPHVs IGlkPSJyZW5kZXJlZHRhYnMiPgo8bGk+PGRpdj48L2Rpdj4KPGEgaHJlZj0iI3Rh YmJlZC1vdmVydmlldyIgaWQ9InRhYi1vdmVydmlldyIgbmFtZT0iJmxpZD1vdmVy dmlldyIgb25jbGljaz0iamF2YXNjcmlwdDpzZXRUYWJQYXJhbWV0ZXIoJzEnKTsi PjxzcGFuPk92ZXJ2aWV3PC9zcGFuPjwvYT4KPC9saT4KCjxsaT48ZGl2PjwvZGl2 Pgo8YSBocmVmPSIjdGFiYmVkLXNwZWNpZmljYXRpb25zIiBpZD0idGFiLXNwZWNp ZmljYXRpb25zIiBuYW1lPSImbGlkPXNwZWNpZmljYXRpb25zIiBvbmNsaWNrPSJq YXZhc2NyaXB0OnNldFRhYlBhcmFtZXRlcignMicpOyI+PHNwYW4+U3BlY2lmaWNh dGlvbnM8L3NwYW4+PC9hPgo8L2xpPgoKCjxsaT48ZGl2PjwvZGl2Pgo8YSBocmVm PSIjdGFiYmVkLWFjY2Vzc29yaWVzIiBpZD0idGFiLWFjY2Vzc29yaWVzIiBuYW1l PSImbGlkPWFjY2Vzc29yaWVzIiBvbmNsaWNrPSJqYXZhc2NyaXB0OnNldFRhYlBh cmFtZXRlcignMycpOyI+PHNwYW4+QWNjZXNzb3JpZXM8L3NwYW4+PC9hPgo8L2xp PgoKPGxpPjxkaXY+PC9kaXY+CjxhIGhyZWY9IiN0YWJiZWQtY3VzdG9tZXJyZXZp ZXdzIiBpZD0idGFiLWN1c3RvbWVycmV2aWV3cyIgY2xhc3M9Im5vcGFkIiAgbmFt ZT0iJmxpZD1jdXN0b21lciByZXZpZXdzIiBvbmNsaWNrPSJqYXZhc2NyaXB0OnNl dFRhYlBhcmFtZXRlcignNycpOyI+PHNwYW4+Q3VzdG9tZXI8YnI+UmV2aWV3czwv c3Bhbj48L2E+CjwvbGk+Cgo8bGk+PGRpdj48L2Rpdj4KPGEgaHJlZj0iI3RhYmJl ZC1yZXZpZXdzIiBpZD0idGFiLXJldmlld3MiIGNsYXNzPSJub3BhZCIgbmFtZT0i JmxpZD1lZGl0b3JpYWwgcmV2aWV3cyIgb25jbGljaz0iamF2YXNjcmlwdDpzZXRU YWJQYXJhbWV0ZXIoJzQnKTsiPjxzcGFuPkVkaXRvcmlhbDxicj5SZXZpZXdzPC9z cGFuPjwvYT4KPC9saT4KCgo8bGk+PGRpdj48L2Rpdj4KPGEgaHJlZj0iI3RhYmJl ZC1wcm9kdWN0cmVzZWFyY2giIGlkPSJ0YWItcHJvZHVjdHJlc2VhcmNoIiBuYW1l PSImbGlkPXJlc2VhcmNoIiBvbmNsaWNrPSJqYXZhc2NyaXB0OnNldFRhYlBhcmFt ZXRlcignNScpOyI+PHNwYW4+UmVzZWFyY2g8L3NwYW4+PC9hPgo8L2xpPgoKCjwv dWw+CgoKCgoKPCEtLSBCOjBZOCAtLT4KCgo8ZGl2IGlkPSJ0YWJiZWQtb3ZlcnZp ZXciPgo8ZGl2IGNsYXNzPSJsZWZ0Y29sIj4KPCEtLSBwdDMwIC0tPgoKPGRpdiBp ZD0iQlZDdXN0b21lclJhdGluZ3MiPjwvZGl2PgoKCgo8ZGl2IGlkPSJleHRlcm5h bC1wYXJ0bmVycyI+PC9kaXY+CjwhLS1wbGFjZSBob2xkZXIgZm9yIGdhbWVzcG90 L2dhbWVwcm8gYW5kIENvbW1vbiBTZW5zZS1lbmQtLT4KPCEtLUVuZXJneSBCbG9j ayBzdGFydC0tPgo8ZGl2IGNsYXNzPSJwZHBpbm5lcmhyIiBzdHlsZT0iY2xlYXI6 Ym90aDsiPjxoci8+PC9kaXY+CjxkaXYgaWQ9ImVuZXJneXN0YXIiPgo8YSBocmVm PSIvb2xzcGFnZS5qc3A/aWQ9Y2F0MTIxMDEmdHlwZT1wYWdlJmNvbnRlbnRJZD0x MDUyNzgyNjA5ODIxJmVudHJ5VVJMSUQ9cGNtY2F0MTY2ODAwMDUwMDAwJmVudHJ5 VVJMVHlwZT1jYXRlZ29yeSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRw Oi8vaW1hZ2VzLmJlc3RidXkuY29tL0Jlc3RCdXlfVVMvaW1hZ2VzL2xvZ29zL2xv Z29fZW5lcmd5c3Rhci5naWYiIHdpZHRoPSIzMyIgaGVpZ2h0PSIzMyIgYm9yZGVy PSIwIiBhbHQ9IkVORVJHWSBTVEFSIFF1YWxpZmllZCIgLz48L2E+Cgo8L2E+IAo8 YnI+CjxhIGhyZWY9ImphdmFzY3JpcHQ6b3BlbkNvbnRleHRTZW5zaXRpdmVMaW5r KCcxMDUyNzgyNjA5ODIxJykiPkVORVJHWSBTVEFSIFF1YWxpZmllZDwvYT4gCjxi cj4mbmJzcDsgJm5ic3A7Cjxicj4KPCEtLSBwdDU3IC0tPgo8L2Rpdj4KPCEtLUVu ZXJneSBCbG9jayBlbmQtLT4KCgoKPCEtLU04MCBCbG9jayBzdGFydHMgaGVyZS0t PgoKCgoKCgoKCjwhLS0gQjowVk8gLS0+Cgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZh c2NyaXB0Ij4NCnZhciBza3UgPSBnZXRRdWVyeVZhcmlhYmxlKCdza3VJZCcpOw0K Ly8gYWRkIHlvdXIgc2t1L2ltYWdlIGRhdGUgY29tYm8gaGVyZQ0KdmFyIHNrdWlt YWdlcyA9IFsgWzg1ODkyNTMsICcxMjA3J10sIFs4NjIyNTY0LCAnMTIwNyddLFs4 NDYwMjg0LCAnMTEwNyddLCBbODM4MDU5MywgJzExMDcnXSxbODUxMDc1NiwgJzEw MDcnXSwgWzg3MDM0MjMsICcxMDA3J10sWzg0NjM4NTEsICcwOTA3J10sIFs4NTMy ODk0LCAnMDkwNyddLFs4NDc4MDE1LCAnMDkwNyddLCBbODQ4MDI3MSwgJzA5MDcn XSwgWzg0ODAyNTMsICcwODA3J10sWzgzNzQ1MTksICcwODA3J10sIFs4Mzc4NzM5 LCAnMDgwNyddLCBbODY1MzkyMiwgJzA4MDcnXSxbODM0MzU5OSwgJzA2MDcnXSwg WzgyODYwMDgsICcwMjA3J10sIFs4MjQ4OTQyLCAnMDMwNyddLCBbODIzNDgxMywg JzAzMDcnXSwgWzgyMzQ3OTcsICcwMzA3J10sIFs4MjM0ODY4LCAnMDMwNyddLCBb ODM0NjUxNCwgJzA0MDcnXSwgWzgzNzgyMjEsICcwNTA3J10sIFs4Mzk4NjM3LCAn MDYwNyddLCBbODAwNzUxNCwgJzAzMDYnXSwgWzc5MTg5ODksICcwODA2J10sIFs4 MTM3MzEyLCAnMTAwNiddLCBbODI2MDc5NCwgJzExMDYnXSwgWzgzNTU5NDEsICcx MTA2J11dOw0KZm9yKHZhciBpID0gMDsgaSA8IHNrdWltYWdlcy5sZW5ndGg7IGkr Kyl7DQoJaWYoc2t1aW1hZ2VzW2ldWzBdID09IHNrdSl7DQoJCWRvY3VtZW50Lndy aXRlKCc8ZGl2IGNsYXNzPSJwZHBpbm5lcmhyIj48aHIvPjwvZGl2PicpOw0KCQlk b2N1bWVudC53cml0ZSgnPHA+PGEgaHJlZj0iamF2YXNjcmlwdDpwb3BVcChcJy9z aXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDEzODcwMDA1MDAwMCZ0eXBlPWNhdGVn b3J5XCcsXCdjbmV0XCcsXCc0XCcsXCcwXCcpIj4nKTsNCgkJZGlzcGxheUltZygn ZW5fVVMvaW1hZ2VzL2Fibi8yMDA3L2dsb2JhbC9wY29uL2NuZXRfY2hvaWNlXycr c2t1aW1hZ2VzW2ldWzFdKycuZ2lmJywnODknLCc0OCcsJycsJycpOw0KCQlkb2N1 bWVudC53cml0ZSgnPC9hPjwvcD4nKTsNCgl9DQp9DQo8L3NjcmlwdD4NCg0KDQoN Cg0KPGRpdiBjbGFzcz0icGRwaW5uZXJociI+PGhyLz48L2Rpdj4NCjxkaXYgaWQ9 InBkcF9jMmNfbW9kdWxlIj4NCjxkaXYgaWQ9InR2X2VzdGFyYSIgc3R5bGU9ImRp c3BsYXk6bm9uZTsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTEycHg7Ij4NCgk8 YSBocmVmPSJqYXZhc2NyaXB0OndlYlZvaWNlUG9wKCdUZW1wbGF0ZT0xMDcwNzUn KTsiIG5hbWU9IiZsaWQ9ZXN0YXJhX3R2Ij4NCgkJPGltZyBzcmM9Imh0dHA6Ly9p bWFnZXMuYmVzdGJ1eS5jb20vQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFs L2VzdGFyYS8yMDA4MTIyMS1hYnRlc3QvMjAwODEyMjEtdHYuZ2lmIiBib3JkZXI9 IjAiIGFsdD0iQ2xpY2sgdG8gQ2FsbCIgLz4NCgk8L2E+DQo8L2Rpdj4NCjwvZGl2 Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQppZiAoIS9raW9z ay5iZXN0YnV5LmNvbS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikpDQp7DQoJ ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3R2X2VzdGFyYScpLnN0eWxlLmRpc3Bs YXkgPSAnYmxvY2snOw0KfQ0KPC9zY3JpcHQ+DQoNCgoKPCEtLSBFOjBWTyAtLT4K Cgo8IS0tTTgwIEJsb2NrIGVuZHMgaGVyZS0tPgo8IS0tIHB0MzIgLS0+CjxCUj48 QlI+CjwhLS0gcHQzMyAtLT4KPC9kaXY+CjxkaXYgY2xhc3M9InJpZ2h0Y29sIj4K PCEtLSBwdDM0IC0tPgoKPCEtLUNvZGUgc25pcHBldCBmb3IgZGlzcGxheWluZyB0 aGUgRE5EX2VzcmItIHN0YXJ0LS0+CjxkaXYgaWQ9ImVzcmJjb250ZW50Ij4KPC9k aXY+CjwhLS1Db2RlIHNuaXBwZXQgZm9yIGRpc3BsYXlpbmcgdGhlIERORF9lc3Ji IC0gZW5kLS0+Cgo8ZGw+CgoKCjwhLS0gQjowWUIgLS0+CjxwPlNpdCBkb3duIHRv IHdhdGNoIHRoZSBiaWcgZ2FtZSBvciBlbmpveSB5b3VyIGZhdm9yaXRlIG1vdmll cyBvbiB0aGlzIGhpZ2gtZGVmaW5pdGlvbiA1MiIgZmxhdC1wYW5lbCBMQ0QgVFYu IEl0IHN1cHBvcnRzIHRoZSBJbmZvbGluayBzeXN0ZW0gdGhyb3VnaCBpdHMgV2lz ZWxpbmsgVVNCIDIuMCBwb3J0IGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vbml0b3Ig Zm9yIHlvdXIgY29tcHV0ZXIgdGhyb3VnaCBpdHMgUEMgaW5wdXQuCgo8IS0tIGFz a2FuZGFuc3dlciAtLT48ZGl2IGNsYXNzPSJpdGVtIHR3b2NvbCIgc3R5bGU9Im1h cmdpbjo1cHggMHB4IDlweCAwcHgiPjxoND5IYXZlIHF1ZXN0aW9ucyBhYm91dCB0 aGlzIHByb2R1Y3Q/PC9oND48cD48aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0 YnV5LmNvbS9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9hYm4vMjAwNy9nbG9iYWwv Y2F0L3JlX2Fza2N1c3RvbWVyXzAxMDkyMDA4LmdpZiIgY2xhc3M9InByb2RpbWFn ZWxlZnQiIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiIGhlaWdodD0iNzAiIHdpZHRo PSI2NSIgYWx0PSJBc2sgYW5kIEFuc3dlciIgLz48ZGl2IGNsYXNzPSJwcm9kdGV4 dGxlZnQiPkFzayBNci4gU2Ftc3VuZywgZmVsbG93IHNob3BwZXJzIGFuZCBCZXN0 IEJ1eSBzdGFmZi4gIFNoYXJlIHlvdXIgYW5zd2Vycy48YnI+PGJyPjxkaXYgaWQ9 IkJWUUFTdW1tYXJ5Qm94Q29udGFpbmVyIj4gPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiIHNyYz0iaHR0cDovL3Jldmlld3MuYmVzdGJ1eS5jb20vYW5zd2Vy cy8zNTQ1bWhhL3Byb2R1Y3QvODc0OTI4Ny9xdWVzdGlvbnNzdW1tYXJ5LmpzP2Zv cm1hdD1wb3B1cCI+PC9zY3JpcHQ+PC9kaXY+PC9kaXY+PC9wPjwvZGl2PjwhLS0g L2Fza2FuZGFuc3dlciAtLT48L3A+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4K CjwhLS0gRTowWUIgLS0+CgoKCgoKCgo8IS0tQ29kZSBzbmlwcGV0IGZvciBkaXNw bGF5aW5nIHRoZSBETkRfYm94X2NvbnRlbnRzLSBzdGFydC0tPgo8IS0tQ29kZSBz bmlwcGV0IGZvciBkaXNwbGF5aW5nIHRoZSBETkRfYm94X2NvbnRlbnRzIC0gZW5k LS0+CgoKCgoKCgoKCgoKCjxoMj5Qcm9kdWN0IEZlYXR1cmVzPC9oMj4KCjx1bD4K PGxpPjxiPkJ1aWx0LUluIEhEVFYgVHVuZXI6PC9iPiBBZGQgSEQtY2FwYWJsZSBh bnRlbm5hIHRvIHJlY2VpdmUgb3Zlci10aGUtYWlyIGhpZ2gtZGVmaW5pdGlvbiBi cm9hZGNhc3RzLCB3aGVyZSBhdmFpbGFibGUuIE9wdGlvbmFsIHNldC10b3AgYm94 IHJlcXVpcmVkIGZvciBoaWdoLWRlZmluaXRpb24gY2FibGUgb3Igc2F0ZWxsaXRl IHByb2dyYW1taW5nLjwvbGk+CjxsaT41MiIgbWVhc3VyZWQgZGlhZ29uYWxseTwv bGk+CjxsaT4xMDgwcCBkaXNwbGF5IHByb3ZpZGVzIHRoZSBoaWdoZXN0IHF1YWxp dHkgcHJvZ3Jlc3NpdmUtc2NhbiBwaWN0dXJlIHBvc3NpYmxlIGZyb20gYSBoaWdo LWRlZmluaXRpb24gc291cmNlPC9saT4KPGxpPjE2Ojkgd2lkZXNjcmVlbiBhc3Bl Y3QgcmF0aW8gZGVsaXZlcnMgYSBjaW5lbWEtc3R5bGUgZW50ZXJ0YWlubWVudCBl eHBlcmllbmNlPC9saT4KPGxpPlVsdHJhY2xlYXIgcGFuZWwgZW5oYW5jZXMgY29u dHJhc3QgYW5kIHJlZHVjZXMgZ2xhcmUgZm9yIGltcHJvdmVkIGNsYXJpdHk8L2xp Pgo8bGk+RE5JZSAoRGlnaXRhbCBOYXR1cmFsIEltYWdlIGVuZ2luZSkgZHJhbWF0 aWNhbGx5IGltcHJvdmVzIHBpY3R1cmUgYnkgZW5oYW5jaW5nIGNvbnRyYXN0LCBk ZXRhaWwgYW5kIHdoaXRlIGJhbGFuY2U8L2xpPgo8bGk+RmFzdCA0IG1zIHJlc3Bv bnNlIHRpbWUgYW5kIEF1dG8gTW90aW9uIFBsdXMgMTIwSHogdGVjaG5vbG9neSBt aW5pbWl6ZSBibHVycmluZyBvZiBtb3ZpbmcgdmlkZW88L2xpPgo8bGk+V2lkZSBj b2xvciBlbmhhbmNlciBhbmQgQ0NGTCAoQ29sZCBDYXRob2RlIEZsdW9yZXNjZW50 IExhbXApIHByb3ZpZGUgYSB2YXN0IGFycmF5IG9mIGNvbG9ycyBmb3IgdmlicmFu dCBwaWN0dXJlIHF1YWxpdHk8L2xpPgo8bGk+SGlnaCBicmlnaHRuZXNzICg1MDAg Y2QvbSYjMTc4OykgYW5kIGluY3JlZGlibGUgZHluYW1pYyBjb250cmFzdCByYXRp byAoNTAsMDAwOjEpIGZvciBhbiBhcnJlc3Rpbmcgdmlld2luZyBleHBlcmllbmNl PC9saT4KPGxpPldpZGUgMTc4JiMxNzY7IGhvcml6b250YWwgYW5kIHZlcnRpY2Fs IHZpZXdpbmcgYW5nbGVzIG1ha2UgZXZlcnkgc2VhdCB0aGUgYmVzdCBpbiB0aGUg aG91c2U8L2xpPgo8bGk+MiBidWlsdC1pbiAxMFcgZG93bi1maXJpbmcgc3BlYWtl cnM7IFNSUyBUcnVTdXJyb3VuZCBYVCBkZWxpdmVycyBhIHZpcnR1YWwgc3Vycm91 bmQgc291bmQgZXhwZXJpZW5jZTwvbGk+CjxsaT5BdXRvIHZvbHVtZSBsZXZlbGVy IHByZXZlbnRzIHZvbHVtZSBmbHVjdHVhdGlvbnMgYW5kIGlzIGlkZWFsIGZvciBu aWdodCB2aWV3aW5nPC9saT4KPGxpPlVsdHJhc2xpbSAoNC0xLzEwIiBkZWVwKSwg bGlnaHR3ZWlnaHQgZGVzaWduIGlzIGlkZWFsIGZvciB3YWxsIG1vdW50aW5nICh3 aXRoIG9wdGlvbmFsIG1vdW50aW5nIGtpdCwgbm90IGluY2x1ZGVkKTwvbGk+Cjxs aT5BdXRvIHdhbGwgbW91bnQgY29tcGF0aWJsZSBmb3IgMy1kaW1lbnNpb25hbCBz d2l2ZWwgb3BlcmF0aW9uIHZpYSB0aGUgVFYncyByZW1vdGUgKGF1dG8gd2FsbCBt b3VudCBub3QgaW5jbHVkZWQpOyBpbmNsdWRlZCBzd2l2ZWwgc3RhbmQgaXMgZWFz eSB0byBhZGp1c3QgZm9yIGltcHJvdmVkIHZpZXdpbmc8L2xpPgo8bGk+V2lzZWxp bmsgVVNCIDIuMCBwb3J0IGZvciBxdWljayBjb25uZWN0aW9uIG9mIGEgZGlnaXRh bCBjYW1lcmEgb3Igb3RoZXIgVVNCIGRldmljZTwvbGk+CjxsaT5QQyBpbnB1dCBs ZXRzIHlvdSBjb25uZWN0IHlvdXIgY29tcHV0ZXIgdG8gZXhwZXJpZW5jZSBoaWdo LXJlc29sdXRpb24gaW1hZ2VzPC9saT4KPGxpPjQgSERNSSBpbnB1dHMgcHJvdmlk ZSBhbiB1bmNvbXByZXNzZWQgYWxsLWRpZ2l0YWwgYXVkaW8vdmlkZW8gbGluayBm b3IgdGhlIGhpZ2hlc3QtcXVhbGl0eSBjb25uZWN0aW9uIGFuZCB0aGV5IHN1cHBv cnQgY29weS1wcm90ZWN0ZWQgSEQgYnJvYWRjYXN0IGNvbnRlbnQ7IEhETUktQ0VD IHN1cHBvcnQgZm9yIGNvbnRyb2xsaW5nIGNvbXBhdGlibGUgcGVyaXBoZXJhbCBk ZXZpY2VzIHdpdGggdGhlIFRWIHJlbW90ZTwvbGk+CjxsaT5JbnB1dHM6IDQgSERN SSAoMyByZWFyLCAxIHNpZGUpLCAyIFJGLCAyIGNvbXBvbmVudCBBL1YgKHJlYXIp LCAyIGNvbXBvc2l0ZSBBL1YgKDEgcmVhciwgMSBzaWRlKSwgMSBTLXZpZGVvIChy ZWFyKSBhbmQgMSBQQyAocmVhcik8L2xpPgo8bGk+T3V0cHV0czogaGVhZHBob25l IGphY2s8L2xpPgo8bGk+VG91Y2ggb2YgQ29sb3IgZGVzaWduIGFjY2VudHMgdGhl IHRvcCBhbmQgYm90dG9tIGVkZ2VzIG9mIHRoZSBiZXplbCB3aXRoIGEgdW5pcXVl IHJlZCB0b25lPC9saT4KPGxpPlYtQ2hpcCBwYXJlbnRhbCBjb250cm9scyBrZWVw IGNoaWxkcmVuIGZyb20gYmVpbmcgZXhwb3NlZCB0byB1bmRlc2lyYWJsZSBtYXRl cmlhbDwvbGk+CjxsaT5FbnRlcnRhaW5tZW50IG1vZGUgYWxsb3dzIGN1c3RvbWl6 ZWQgcGljdHVyZSBzZXR0aW5ncyB0aGF0IGNhbiBiZSBvcHRpbWl6ZWQgZm9yIGRp ZmZlcmVudCBjb250ZW50PC9saT4KPGxpPkluZm9saW5rIHN5c3RlbSBwcm92aWRl cyBSU1MgZmVlZHMgb2YgY3VzdG9taXphYmxlIHN0b2NrIHF1b3Rlcywgd2VhdGhl ciBhbmQgYnJpZWYgbmV3cyBhcnRpY2xlIChyZXF1aXJlcyBJbnRlcm5ldCBjb25u ZWN0aW9uLCBub3QgaW5jbHVkZWQ7IGFkZGl0aW9uYWwgZmVlcyBtYXkgYXBwbHkp PC9saT4KPGxpPk90aGVyIGNvbnZlbmllbnQgZmVhdHVyZXMgaW5jbHVkZSB0cmls aW5ndWFsIChFbmdsaXNoLCBGcmVuY2gsIFNwYW5pc2gpIG9uLXNjcmVlbiBtZW51 cywgcGljdHVyZS1pbi1waWN0dXJlIGFuZCBzbGVlcCB0aW1lcjwvbGk+CjxsaT5X aGF0J3MgaW4gdGhlIGJveDogNTIiIDEwODBwIGZsYXQtcGFuZWwgTENEIEhEVFYs IHJlbW90ZSBhbmQgc3dpdmVsIHN0YW5kPC9saT4KPC91bD4KPCEtLSBwdDQxIC0t Pgo8c2NyaXB0PgoJdHJ5ewoJCXZhciBkaXZBcnIgPSBkb2N1bWVudC5nZXRFbGVt ZW50c0J5VGFnTmFtZSgnZGl2Jyk7IAoJCXZhciBycERpdiA9IGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCd0YWJiZWQtb3ZlcnZpZXcnKTsKCQl2YXIgc3BEaXYgPSBk b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2FsZXByaWNlJyk7CgkJdmFyIHJwID0g Z2V0UmVnUHJpY2UocnBEaXYpOyB2YXIgY3AgPSBnZXRDdXJyUHJpY2Uoc3BEaXYp OwoJCWlmKHJwIT0nbm9uZScmJmNwIT0nc2FsZScpeyBzcERpdi5wYXJlbnROb2Rl Lmluc2VydEJlZm9yZShvY1JlZ1ByaWNlKHJwLGNwLCdwZHAnKSxzcERpdik7IH0K CX1jYXRjaChlKXt9Cjwvc2NyaXB0Pgo8L2Rpdj4KPGRpdiBjbGFzcz0icGRwaW5u ZXJociIgc3R5bGU9ImNsZWFyOmJvdGg7Ij48aHIvPjwvZGl2PjxkaXYgY2xhc3M9 ImRpc2NsYWltZXIiPlByb2R1Y3QgaW1hZ2VzLCBpbmNsdWRpbmcgY29sb3IsIG1h eSBkaWZmZXIgZnJvbSBhY3R1YWwgcHJvZHVjdCBhcHBlYXJhbmNlLjwvZGl2Pgo8 IS0tIHB0NTkgLS0+CgoKCgoKCgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+Cgo8 L2Rpdj4KCgoKCgoKCjwhLS0gQjowWUogLS0+CgoKPGRpdiBpZD0idGFiYmVkLXNw ZWNpZmljYXRpb25zIj4KCjwhLS0gcHQzNSAtLT4KPHVsPgoKCjxsaT4KPGRpdiBj bGFzcz0ibGFiZWwiPldhcnJhbnR5IFRlcm1zIC0gUGFydHM8L2Rpdj4KPGRpdiBj bGFzcz0iZGF0YSI+MSB5ZWFyPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp dj4KPC9saT4KCgo8bGkgY2xhc3M9ImJhbmRlZCI+CjxkaXYgY2xhc3M9ImxhYmVs Ij5XYXJyYW50eSBUZXJtcyAtIExhYm9yPC9kaXY+CjxkaXYgY2xhc3M9ImRhdGEi PjEgeWVhcjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoK PGxpPgo8ZGl2IGNsYXNzPSJsYWJlbCI+UHJvZHVjdCBIZWlnaHQ8L2Rpdj4KPGRp diBjbGFzcz0iZGF0YSI+MzQtMS8xMCIgd2l0aCBzdGFuZCAoMzEtNy8xMCIgd2l0 aG91dCk8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xpPgoKCjxs aSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFzcz0ibGFiZWwiPlByb2R1Y3QgV2lk dGg8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+NTAtMS81IjwvZGl2Pgo8ZGl2IGNs YXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNsYXNzPSJsYWJl bCI+UHJvZHVjdCBXZWlnaHQ8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+NzYuNyBs YnMuIHdpdGggc3RhbmQgKDY0LjYgbGJzLiB3aXRob3V0KTwvZGl2Pgo8ZGl2IGNs YXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpIGNsYXNzPSJiYW5kZWQiPgo8 ZGl2IGNsYXNzPSJsYWJlbCI+UHJvZHVjdCBEZXB0aDwvZGl2Pgo8ZGl2IGNsYXNz PSJkYXRhIj4xMi00LzUiIHdpdGggc3RhbmQgKDQtMS8xMCIgd2l0aG91dCk8L2Rp dj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xpPgoKCjxsaT4KPGRpdiBj bGFzcz0ibGFiZWwiPlRWIFR5cGU8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+TENE IEZsYXQtUGFuZWw8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xp PgoKCjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFzcz0ibGFiZWwiPjxhIGhy ZWY9ImphdmFzY3JpcHQ6d2lub3BlbmdsZCgnMTA4NzM0MDU2NjMwMycsJ3BjbWNh dDM4MjAwMDUwMDI3JywnY2F0MTIwODAnKSI+U2NyZWVuIFNpemU8L2E+PC9kaXY+ CjxkaXYgY2xhc3M9ImRhdGEiPjUyJnF1b3Q7PC9kaXY+CjxkaXYgY2xhc3M9ImNs ZWFyIj48L2Rpdj4KPC9saT4KCgo8bGk+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBo cmVmPSJqYXZhc2NyaXB0Ondpbm9wZW5nbGQoJzEwOTA5MzMxMDc4MDQnLCdwY21j YXQzODIwMDA1MDAyNycsJ2NhdDEyMDgwJykiPkFzcGVjdCBSYXRpbzwvYT48L2Rp dj4KPGRpdiBjbGFzcz0iZGF0YSI+MTY6OTwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVh ciI+PC9kaXY+CjwvbGk+CgoKPGxpIGNsYXNzPSJiYW5kZWQiPgo8ZGl2IGNsYXNz PSJsYWJlbCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDgzNzE2 MjM3Mjc4JywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5EaXNwbGF5 IFR5cGU8L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRhdGEiPkZsYXQtcGFuZWwgTENE PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9saT4KCgo8bGk+Cjxk aXYgY2xhc3M9ImxhYmVsIj5CdWlsdC1Jbl9EVlI8L2Rpdj4KPGRpdiBjbGFzcz0i ZGF0YSI+Tm88L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xpPgoK CjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFzcz0ibGFiZWwiPjxhIGhyZWY9 ImphdmFzY3JpcHQ6d2lub3BlbmdsZCgnMTA4NzM0MDU2NjU3OCcsJ3BjbWNhdDM4 MjAwMDUwMDI3JywnY2F0MTIwODAnKSI+TWF4aW11bSBSZXNvbHV0aW9uPC9hPjwv ZGl2Pgo8ZGl2IGNsYXNzPSJkYXRhIj4xOTIwIHggMTA4MDwvZGl2Pgo8ZGl2IGNs YXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNsYXNzPSJsYWJl bCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDkwOTMzMTIzNDE5 JywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5WZXJ0aWNhbCBSZXNv bHV0aW9uPC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkYXRhIj4xMDgwcDwvZGl2Pgo8 ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpIGNsYXNzPSJiYW5k ZWQiPgo8ZGl2IGNsYXNzPSJsYWJlbCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5v cGVuZ2xkKCcxMDg3MzQwNTY3ODI1JywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQx MjA4MCcpIj5Db250cmFzdCBSYXRpbzwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGF0 YSI+NTAsMDAwOjE8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xp PgoKCjxsaT4KPGRpdiBjbGFzcz0ibGFiZWwiPkJyaWdodG5lc3M8L2Rpdj4KPGRp diBjbGFzcz0iZGF0YSI+NTUwIGNkL20mIzE3ODs8L2Rpdj4KPGRpdiBjbGFzcz0i Y2xlYXIiPjwvZGl2Pgo8L2xpPgoKCjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBj bGFzcz0ibGFiZWwiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2lub3BlbmdsZCgnMTE0 MjI4ODI5MTE3NCcsJ3BjbWNhdDM4MjAwMDUwMDI3JywnY2F0MTIwODAnKSI+TWVk aWEgQ2FyZCBTbG90PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkYXRhIj5ObzwvZGl2 Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNs YXNzPSJsYWJlbCI+VVNCIFBvcnQ8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+WWVz PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9saT4KCgo8bGkgY2xh c3M9ImJhbmRlZCI+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBocmVmPSJqYXZhc2Ny aXB0Ondpbm9wZW5nbGQoJzExNDIyODgyODk4NTInLCdwY21jYXQzODIwMDA1MDAy NycsJ2NhdDEyMDgwJykiPkhETUkgSW5wdXRzPC9hPjwvZGl2Pgo8ZGl2IGNsYXNz PSJkYXRhIj40PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9saT4K Cgo8bGk+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBocmVmPSJqYXZhc2NyaXB0Ondp bm9wZW5nbGQoJzExNDIyODgyOTEwOTAnLCdwY21jYXQzODIwMDA1MDAyNycsJ2Nh dDEyMDgwJykiPkRWSSBJbnB1dHM8L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRhdGEi Pk5vPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9saT4KCgo8bGkg Y2xhc3M9ImJhbmRlZCI+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBocmVmPSJqYXZh c2NyaXB0Ondpbm9wZW5nbGQoJzEwOTA5MzMxMjI2NzMnLCdwY21jYXQzODIwMDA1 MDAyNycsJ2NhdDEyMDgwJykiPlMtVmlkZW8gSW5wdXRzPC9hPjwvZGl2Pgo8ZGl2 IGNsYXNzPSJkYXRhIj4xPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4K PC9saT4KCgo8bGk+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBocmVmPSJqYXZhc2Ny aXB0Ondpbm9wZW5nbGQoJzEwOTA5MzMxMTE4MDInLCdwY21jYXQzODIwMDA1MDAy NycsJ2NhdDEyMDgwJykiPkNvbXBvbmVudCBWaWRlbyBJbnB1dHM8L2E+PC9kaXY+ CjxkaXYgY2xhc3M9ImRhdGEiPjI8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwv ZGl2Pgo8L2xpPgoKCjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFzcz0ibGFi ZWwiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2lub3BlbmdsZCgnMTA5MDkzMzExMTg2 NycsJ3BjbWNhdDM4MjAwMDUwMDI3JywnY2F0MTIwODAnKSI+Q29tcG9zaXRlIElu cHV0czwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+MjwvZGl2Pgo8ZGl2IGNs YXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNsYXNzPSJsYWJl bCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDkwOTMzMTIzNTI3 JywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5QQyBJbnB1dHM8L2E+ PC9kaXY+CjxkaXYgY2xhc3M9ImRhdGEiPjE8L2Rpdj4KPGRpdiBjbGFzcz0iY2xl YXIiPjwvZGl2Pgo8L2xpPgoKCjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFz cz0ibGFiZWwiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2lub3BlbmdsZCgnMTA4NzM0 MDQ0OTMwNScsJ3BjbWNhdDM4MjAwMDUwMDI3JywnY2F0MTIwODAnKSI+UkYgQW50 ZW5uYSBJbnB1dDwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+MjwvZGl2Pgo8 ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNsYXNz PSJsYWJlbCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDg3MzQw ODEyOTIzJywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5IZWFkcGhv bmUgSmFja3M8L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRhdGEiPlllczwvZGl2Pgo8 ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxpIGNsYXNzPSJiYW5k ZWQiPgo8ZGl2IGNsYXNzPSJsYWJlbCI+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5v cGVuZ2xkKCcxMDkwOTMzMTI0MDE2JywncGNtY2F0MzgyMDAwNTAwMjcnLCdjYXQx MjA4MCcpIj5XYXR0cy9DaGFubmVsPC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkYXRh Ij4xMDwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoKPGxp Pgo8ZGl2IGNsYXNzPSJsYWJlbCI+U3BlYWtlcnM8L2Rpdj4KPGRpdiBjbGFzcz0i ZGF0YSI+MjwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+CjwvbGk+CgoK PGxpIGNsYXNzPSJiYW5kZWQiPgo8ZGl2IGNsYXNzPSJsYWJlbCI+PGEgaHJlZj0i amF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDg3MzQwNTY2OTA5JywncGNtY2F0Mzgy MDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5TaW11bGF0ZWQgU3Vycm91bmQ8L2E+PC9k aXY+CjxkaXYgY2xhc3M9ImRhdGEiPlllczwvZGl2Pgo8ZGl2IGNsYXNzPSJjbGVh ciI+PC9kaXY+CjwvbGk+CgoKPGxpPgo8ZGl2IGNsYXNzPSJsYWJlbCI+PGEgaHJl Zj0iamF2YXNjcmlwdDp3aW5vcGVuZ2xkKCcxMDkwOTMzMTIyNjM5JywncGNtY2F0 MzgyMDAwNTAwMjcnLCdjYXQxMjA4MCcpIj5Tb3VuZCBMZXZlbGVyPC9hPjwvZGl2 Pgo8ZGl2IGNsYXNzPSJkYXRhIj5ZZXM8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIi PjwvZGl2Pgo8L2xpPgoKCjxsaSBjbGFzcz0iYmFuZGVkIj4KPGRpdiBjbGFzcz0i bGFiZWwiPkxhbmd1YWdlIE9wdGlvbnM8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+ RW5nbGlzaCwgRnJlbmNoLCBTcGFuaXNoPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFy Ij48L2Rpdj4KPC9saT4KCgo8bGk+CjxkaXYgY2xhc3M9ImxhYmVsIj48YSBocmVm PSJqYXZhc2NyaXB0Ondpbm9wZW5nbGQoJzEwOTA5MzMxMjI5NDUnLCdwY21jYXQz ODIwMDA1MDAyNycsJ2NhdDEyMDgwJykiPlYtQ2hpcDwvYT48L2Rpdj4KPGRpdiBj bGFzcz0iZGF0YSI+WWVzPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4K PC9saT4KCgo8bGkgY2xhc3M9ImJhbmRlZCI+CjxkaXYgY2xhc3M9ImxhYmVsIj48 YSBocmVmPSJqYXZhc2NyaXB0Ondpbm9wZW5nbGQoJzEwOTA5MzMxMjI2MDQnLCdw Y21jYXQzODIwMDA1MDAyNycsJ2NhdDEyMDgwJykiPlNsZWVwL0FsYXJtIFRpbWVy PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkYXRhIj5TbGVlcCB0aW1lciwgeWVzOyBh bGFybSwgbm88L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pgo8L2xpPgoK CjxsaT4KPGRpdiBjbGFzcz0ibGFiZWwiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2lu b3BlbmdsZCgnMTA4NzM0MDU2OTIzNCcsJ3BjbWNhdDM4MjAwMDUwMDI3JywnY2F0 MTIwODAnKSI+UmVtb3RlIENvbnRyb2wgVHlwZTwvYT48L2Rpdj4KPGRpdiBjbGFz cz0iZGF0YSI+V2hlZWwga2V5PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp dj4KPC9saT4KCgo8bGkgY2xhc3M9ImJhbmRlZCI+CjxkaXYgY2xhc3M9ImxhYmVs Ij5FTkVSR1kgU1RBUiBRdWFsaWZpZWQ8L2Rpdj4KPGRpdiBjbGFzcz0iZGF0YSI+ WWVzPC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KPC9saT4KCgo8bGk+ CjxkaXYgY2xhc3M9ImxhYmVsIj5TY3JlZW4gUmVmcmVzaCBSYXRlPC9kaXY+Cjxk aXYgY2xhc3M9ImRhdGEiPjEyMEh6PC9kaXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48 L2Rpdj4KPC9saT4KPC91bD4KICAgIAo8IS0tIHB0MzYgLS0+CjwvZGl2PgoKPCEt LSBFOjBZSiAtLT4KCgoKCgoKCjwhLS0gQjowWTYgLS0+CgoKCgoKCgo8ZGl2IGlk PSJ0YWJiZWQtYWNjZXNzb3JpZXMiPgoKCgoKPCEtLSBwdDM3IC0tPgo8IS0tQ29k ZSBzbmlwcGV0IGZvciBkaXNwbGF5aW5nIHRoZSBETkRfYm94X2NvbnRlbnRzLSBz dGFydC0tPgo8IS0tQ29kZSBzbmlwcGV0IGZvciBkaXNwbGF5aW5nIHRoZSBETkRf Ym94X2NvbnRlbnRzIC0gZW5kLS0+CjwhLS0gcHQzOCAtLT4KCgoKPGRpdiBjbGFz cz0ic3VnZ2VzdGVkcHJvZHVjdCI+CjwhLS0gcHQzOSAtLT4KPC9kaXY+CgoKCgoK CiAgIAo8aDI+U3VnZ2VzdGVkIEFjY2Vzc29yaWVzPC9oMj4KCgoKCjxkaXYgY2xh c3M9InN1Z2dlc3RlZHByb2R1Y3QiPgoKCgo8IS0tIEI6MFk3IC0tPgoKCjxkaXYg Y2xhc3M9InByb2RpbWFnZSI+CjxpbWcgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3Ri dXkuY29tOjgwL0Jlc3RCdXlfVVMvaW1hZ2VzL3Byb2R1Y3RzLzc1NjcvNzU2NzAy OF9yLmdpZiIgYWx0PSI3NTY3MDI4IEFuZ2xlIFRodW1ibmFpbCIgYm9yZGVyPSIw IiBoZWlnaHQ9IjQ4LjAiIHdpZHRoPSI1NC4wIj4KPC9kaXY+CjxkaXYgY2xhc3M9 InByb2RsaW5rIj4KCgoKCgo8IS0tIEI6MFhVIC0tPgoKCgoKCjxhIGhyZWY9Imph dmFzY3JpcHQ6Zm5PcGVuQWNjZXNzb3J5UG9wdXAoJzExNTE2NTgxMzMyNDAnLCAn NzU2NzAyOCcsJ2NhdDEzNTA1JykiIG5hbWU9IiZsaWQ9c3VnXzc1NjcwMjgiID5T YW51cyAtIFZpc2lvbk1vdW50IFVuaXZlcnNhbCBXYWxsIE1vdW50IGZvciBNb3N0 IDQyIi02MyIgRmxhdC1QYW5lbCBUVnMgLSBCbGFjazwvYT4KCjxicj4KPHN0cm9u Zz5Nb2RlbDo8L3N0cm9uZz4KVk1ERDI2QkxBJm5ic3A7CnwmbmJzcDsKPGI+U0tV OjwvYj4mbmJzcDs3NTY3MDI4Cjxicj4KTm90IHlldCByYXRlZC4mbmJzcDs8aW1n IHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2lt YWdlcy9nbG9iYWwvbWlzYy9yYXRpbmdzX3N0YXJfMF8wLmdpZiIgYm9yZGVyPSIw Ij4mbmJzcDsKCiAKCjwvZGl2Pgo8ZGl2IGNsYXNzPSJwcm9kcHJpY2luZyI+CgoK CjwhLS0gQjowWlQgLS0+CgoKCgoKCgoKCjwhLS0gQjowWlIgLS0+Cgo8ZGl2IGNs YXNzPSJzYWxlIj4KT3VyIFByaWNlOgoKPCEtLSBCOjBaVSAtLT4KCgoKJDU5OS45 OQoKPCEtLSBFOjBaVSAtLT4KPC9kaXY+CgoKPCEtLSBFOjBaUiAtLT4KCjwhLS0g RTowWlQgLS0+CjxkaXYgY2xhc3M9ImFkZHRvY2FydCI+CgoKCgo8aW5wdXQgdHlw ZT0iY2hlY2tib3giIG5hbWU9ImFjY2Vzc29yeTExNTE2NTgxMzMyNDAiIHZhbHVl PSIxMTUxNjU4MTMzMjQwLDc1NjcwMjgiPgpBZGQgdG8gQ2FydAo8L2Rpdj4KPC9k aXY+CjxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KCjwhLS0gRTowWTcgLS0+Cjwv ZGl2PgoKCjxkaXYgY2xhc3M9InBkcHNvbGlkaHIiPjxociAvPjwvZGl2PgoKCgoK PGRpdiBjbGFzcz0ic3VnZ2VzdGVkcHJvZHVjdCI+CgoKCjwhLS0gQjowWTcgLS0+ CgoKPGRpdiBjbGFzcz0icHJvZGltYWdlIj4KPGltZyBzcmM9Imh0dHA6Ly9pbWFn ZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9pbWFnZXMvcHJvZHVjdHMvNzg3 MS83ODcxMjk4X3IuZ2lmIiBhbHQ9Ijc4NzEyOTggQW5nbGUgVGh1bWJuYWlsIiBi b3JkZXI9IjAiIGhlaWdodD0iNTkuMCIgd2lkdGg9IjU0LjAiPgo8L2Rpdj4KPGRp diBjbGFzcz0icHJvZGxpbmsiPgoKCgoKCjwhLS0gQjowWFUgLS0+CgoKCgoKPGEg aHJlZj0iamF2YXNjcmlwdDpmbk9wZW5BY2Nlc3NvcnlQb3B1cCgnMTE0MjMwMjIz NjUwNycsICc3ODcxMjk4JywnY2F0MTM1MDUnKSIgbmFtZT0iJmxpZD1zdWdfNzg3 MTI5OCIgPkJ1c2ggLSBVbml2ZXJzYWwgVFYgU3RhbmQgZm9yIEZsYXQtUGFuZWwg VFZzIFVwIHRvIDYwIiAtIE1hcGxlL0NoZXJyeTwvYT4KCjxicj4KPHN0cm9uZz5N b2RlbDo8L3N0cm9uZz4KVlM3NDY3Ny0wMyZuYnNwOwp8Jm5ic3A7CjxiPlNLVTo8 L2I+Jm5ic3A7Nzg3MTI5OAo8YnI+CjxkaXYgY2xhc3M9InJhdGluZyI+CjxiPkN1 c3RvbWVyIFJhdGluZzo8L2I+Jm5ic3A7PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMu YmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9pbWFnZXMvZ2xvYmFsL21pc2MvcmF0 aW5nc19zdGFyXzRfNS5naWYiIGJvcmRlcj0iMCI+Jm5ic3A7CjxzdHJvbmc+NC41 PC9zdHJvbmc+CjwvZGl2PgoKIAoKPC9kaXY+CjxkaXYgY2xhc3M9InByb2Rwcmlj aW5nIj4KCgoKPCEtLSBCOjBaVCAtLT4KCgoKCgoKCgoKPCEtLSBCOjBaUiAtLT4K CjxkaXYgY2xhc3M9InNhbGUiPgpPdXIgUHJpY2U6Cgo8IS0tIEI6MFpVIC0tPgoK CgokMzQ5Ljk5Cgo8IS0tIEU6MFpVIC0tPgo8L2Rpdj4KCgo8IS0tIEU6MFpSIC0t PgoKPCEtLSBFOjBaVCAtLT4KPGRpdiBjbGFzcz0iYWRkdG9jYXJ0Ij4KCgoKCjxp bnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYWNjZXNzb3J5MTE0MjMwMjIzNjUw NyIgdmFsdWU9IjExNDIzMDIyMzY1MDcsNzg3MTI5OCI+CkFkZCB0byBDYXJ0Cjwv ZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2PgoKPCEtLSBFOjBZ NyAtLT4KPC9kaXY+CgoKPGRpdiBjbGFzcz0icGRwc29saWRociI+PGhyIC8+PC9k aXY+CgoKCgo8ZGl2IGNsYXNzPSJzdWdnZXN0ZWRwcm9kdWN0Ij4KCgoKPCEtLSBC OjBZNyAtLT4KCgo8ZGl2IGNsYXNzPSJwcm9kaW1hZ2UiPgo8aW1nIHNyYz0iaHR0 cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2ltYWdlcy9wcm9k dWN0cy83ODU3Lzc4NTcyMTRfcy5naWYiIGFsdD0iNzg1NzIxNCBGcm9udCBUaHVt Ym5haWwiIGJvcmRlcj0iMCIgaGVpZ2h0PSIzOS4wIiB3aWR0aD0iNTQuMCI+Cjwv ZGl2Pgo8ZGl2IGNsYXNzPSJwcm9kbGluayI+CgoKCgoKPCEtLSBCOjBYVSAtLT4K CgoKCgo8YSBocmVmPSJqYXZhc2NyaXB0OmZuT3BlbkFjY2Vzc29yeVBvcHVwKCcx MTU3MDY4NDU0MjMwJywgJzc4NTcyMTQnLCdjYXQxMzUwNScpIiBuYW1lPSImbGlk PXN1Z183ODU3MjE0IiA+TW9uc3RlciBDYWJsZSAtIE0gU2VyaWVzIDE2JyBIRE1J IEEvViBDYWJsZTwvYT4KCjxicj4KPHN0cm9uZz5Nb2RlbDo8L3N0cm9uZz4KTTEw MDAgSEQtMTYmbmJzcDsKfCZuYnNwOwo8Yj5TS1U6PC9iPiZuYnNwOzc4NTcyMTQK PGJyPgo8ZGl2IGNsYXNzPSJyYXRpbmciPgo8Yj5DdXN0b21lciBSYXRpbmc6PC9i PiZuYnNwOzxpbWcgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jl c3RCdXlfVVMvaW1hZ2VzL2dsb2JhbC9taXNjL3JhdGluZ3Nfc3Rhcl8zXzAuZ2lm IiBib3JkZXI9IjAiPiZuYnNwOwo8c3Ryb25nPjMuMDwvc3Ryb25nPgo8L2Rpdj4K CiAKCjwvZGl2Pgo8ZGl2IGNsYXNzPSJwcm9kcHJpY2luZyI+CgoKCjwhLS0gQjow WlQgLS0+CgoKCgoKCgoKCjwhLS0gQjowWlIgLS0+Cgo8ZGl2IGNsYXNzPSJzYWxl Ij4KT3VyIFByaWNlOgoKPCEtLSBCOjBaVSAtLT4KCgoKJDI0OS45OQoKPCEtLSBF OjBaVSAtLT4KPC9kaXY+CgoKPCEtLSBFOjBaUiAtLT4KCjwhLS0gRTowWlQgLS0+ CjxkaXYgY2xhc3M9ImFkZHRvY2FydCI+CgoKCgo8aW5wdXQgdHlwZT0iY2hlY2ti b3giIG5hbWU9ImFjY2Vzc29yeTExNTcwNjg0NTQyMzAiIHZhbHVlPSIxMTU3MDY4 NDU0MjMwLDc4NTcyMTQiPgpBZGQgdG8gQ2FydAo8L2Rpdj4KPC9kaXY+CjxkaXYg Y2xhc3M9ImNsZWFyIj48L2Rpdj4KCjwhLS0gRTowWTcgLS0+CjwvZGl2PgoKCjxk aXYgY2xhc3M9InBkcHNvbGlkaHIiPjxociAvPjwvZGl2PgoKCgoKPGRpdiBjbGFz cz0ic3VnZ2VzdGVkcHJvZHVjdCI+CgoKCjwhLS0gQjowWTcgLS0+CgoKPGRpdiBj bGFzcz0icHJvZGltYWdlIj4KPGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1 eS5jb206ODAvQmVzdEJ1eV9VUy9pbWFnZXMvcHJvZHVjdHMvNzg1Ny83ODU3NTk5 X3MuZ2lmIiBhbHQ9Ijc4NTc1OTkgRnJvbnQgVGh1bWJuYWlsIiBib3JkZXI9IjAi IGhlaWdodD0iMzkuMCIgd2lkdGg9IjU0LjAiPgo8L2Rpdj4KPGRpdiBjbGFzcz0i cHJvZGxpbmsiPgoKCgoKCjwhLS0gQjowWFUgLS0+CgoKCgoKPGEgaHJlZj0iamF2 YXNjcmlwdDpmbk9wZW5BY2Nlc3NvcnlQb3B1cCgnMTE1ODMxNzc5Mzk3MCcsICc3 ODU3NTk5JywnY2F0MTM1MDUnKSIgbmFtZT0iJmxpZD1zdWdfNzg1NzU5OSIgPk1v bnN0ZXIgQ2FibGUgLSBNIFNlcmllcyA0JyBIRE1JIEEvViBDYWJsZTwvYT4KCjxi cj4KPHN0cm9uZz5Nb2RlbDo8L3N0cm9uZz4KTTEwMDAgSEQtNCZuYnNwOwp8Jm5i c3A7CjxiPlNLVTo8L2I+Jm5ic3A7Nzg1NzU5OQo8YnI+CjxkaXYgY2xhc3M9InJh dGluZyI+CjxiPkN1c3RvbWVyIFJhdGluZzo8L2I+Jm5ic3A7PGltZyBzcmM9Imh0 dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9pbWFnZXMvZ2xv YmFsL21pc2MvcmF0aW5nc19zdGFyXzRfNS5naWYiIGJvcmRlcj0iMCI+Jm5ic3A7 CjxzdHJvbmc+NC41PC9zdHJvbmc+CjwvZGl2PgoKIAoKPC9kaXY+CjxkaXYgY2xh c3M9InByb2RwcmljaW5nIj4KCgoKPCEtLSBCOjBaVCAtLT4KCgoKCgoKCgoKPCEt LSBCOjBaUiAtLT4KCjxkaXYgY2xhc3M9InNhbGUiPgpPdXIgUHJpY2U6Cgo8IS0t IEI6MFpVIC0tPgoKCgokMTQ5Ljk5Cgo8IS0tIEU6MFpVIC0tPgo8L2Rpdj4KCgo8 IS0tIEU6MFpSIC0tPgoKPCEtLSBFOjBaVCAtLT4KPGRpdiBjbGFzcz0iYWRkdG9j YXJ0Ij4KCgoKCjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iYWNjZXNzb3J5 MTE1ODMxNzc5Mzk3MCIgdmFsdWU9IjExNTgzMTc3OTM5NzAsNzg1NzU5OSI+CkFk ZCB0byBDYXJ0CjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2 PgoKPCEtLSBFOjBZNyAtLT4KPC9kaXY+CgoKPGRpdiBjbGFzcz0icGRwc29saWRo ciI+PGhyIC8+PC9kaXY+CgoKCgo8ZGl2IGNsYXNzPSJzdWdnZXN0ZWRwcm9kdWN0 Ij4KCgoKPCEtLSBCOjBZNyAtLT4KCgo8ZGl2IGNsYXNzPSJwcm9kaW1hZ2UiPgo8 aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VT L2ltYWdlcy9wcm9kdWN0cy81Nzc0LzU3NzQ4Nzlfcy5naWYiIGFsdD0iNTc3NDg3 OSBGcm9udCBUaHVtYm5haWwiIGJvcmRlcj0iMCIgaGVpZ2h0PSIzOS4wIiB3aWR0 aD0iNTQuMCI+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwcm9kbGluayI+CgoKCgoKPCEt LSBCOjBYVSAtLT4KCgoKCgo8YSBocmVmPSJqYXZhc2NyaXB0OmZuT3BlbkFjY2Vz c29yeVBvcHVwKCcxMDY5Mjk3MTEzMjI0JywgJzU3NzQ4NzknLCdjYXQxMzUwNScp IiBuYW1lPSImbGlkPXN1Z181Nzc0ODc5IiA+TW9uc3RlciBDYWJsZSAtIFRWIFNj cmVlbiBDbGVhbmluZyBLaXQ8L2E+Cgo8YnI+CjxzdHJvbmc+TW9kZWw6PC9zdHJv bmc+ClRWIENMTktUJm5ic3A7CnwmbmJzcDsKPGI+U0tVOjwvYj4mbmJzcDs1Nzc0 ODc5Cjxicj4KPGRpdiBjbGFzcz0icmF0aW5nIj4KPGI+Q3VzdG9tZXIgUmF0aW5n OjwvYj4mbmJzcDs8aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0YnV5LmNvbTo4 MC9CZXN0QnV5X1VTL2ltYWdlcy9nbG9iYWwvbWlzYy9yYXRpbmdzX3N0YXJfNF8z LmdpZiIgYm9yZGVyPSIwIj4mbmJzcDsKPHN0cm9uZz40LjM8L3N0cm9uZz4KPC9k aXY+CgogCgo8L2Rpdj4KPGRpdiBjbGFzcz0icHJvZHByaWNpbmciPgoKCgo8IS0t IEI6MFpUIC0tPgoKCgoKCgoKCgo8IS0tIEI6MFpSIC0tPgoKPGRpdiBjbGFzcz0i c2FsZSI+Ck91ciBQcmljZToKCjwhLS0gQjowWlUgLS0+CgoKCiQxOS45OQoKPCEt LSBFOjBaVSAtLT4KPC9kaXY+CgoKPCEtLSBFOjBaUiAtLT4KCjwhLS0gRTowWlQg LS0+CjxkaXYgY2xhc3M9ImFkZHRvY2FydCI+CgoKCgo8aW5wdXQgdHlwZT0iY2hl Y2tib3giIG5hbWU9ImFjY2Vzc29yeTEwNjkyOTcxMTMyMjQiIHZhbHVlPSIxMDY5 Mjk3MTEzMjI0LDU3NzQ4NzkiPgpBZGQgdG8gQ2FydAo8L2Rpdj4KPC9kaXY+Cjxk aXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4KCjwhLS0gRTowWTcgLS0+CjwvZGl2PgoK CgogCgo8ZGl2IGNsYXNzPSJhZGRhY2Nlc3NvcmllcyI+CjxhIGhyZWY9ImphdmFz Y3JpcHQ6Zm5BZGRJdGVtVG9DYXJ0V2l0aEFjY2Vzc29yaWVzKG51bGwsIG51bGwp Ij4KPGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1 eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2J1dHRvbnMvYnRuX2FkZGFjY2Vzc29y eXRvY2FydF9wZHAuZ2lmIiBhbHQ9IiIgYm9yZGVyPSIwIiBpZD0iYWRkYWNjZXNz b3JpZXN0b2NhcnQiPgo8L2E+CjwvZGl2PgoKPCEtLSBwdDQwIC0tPgo8L2Rpdj4K CiAKCgo8IS0tIEU6MFk2IC0tPgoKCgoKCjwhLS0gQjowWTQgLS0+CjxhIGhyZWY9 IiIgbmFtZT0iaGVhZGVyQ3VzdG9tZXJSZXZpZXdzIj48L2E+CjxkaXYgaWQ9InRh YmJlZC1jdXN0b21lcnJldmlld3MiPgo8ZGl2IGlkPSJCVlNlY29uZGFyeUN1c3Rv bWVyUmF0aW5ncyI+PC9kaXY+Cgo8ZGl2IGlkPSJCVlJldmlld3NDb250YWluZXIi PjwvZGl2Pgo8IS0tIHB0NDIgLS0+CjwvZGl2PgoKPCEtLSBFOjBZNCAtLT4KCgoK Cgo8IS0tIEI6MFlHIC0tPgoKPGRpdiBpZD0idGFiYmVkLXJldmlld3MiPgoKCgo8 aDI+UmV2aWV3czwvaDI+CjxwPgoKPHN0cm9uZz5DTkVUIEVkaXRvcidzIFJldmll dzwvc3Ryb25nPjxicj4KCgo8YnI+CjwhLS0gbXBfdHJhbnNfZGlzYWJsZV9zdGFy dCAtLT4JPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCQkjdGFiYmVkLXJldmlld3Mg aDJ7CgkJCWRpc3BsYXk6YmxvY2s7CgkJCWJhY2tncm91bmQ6dXJsKGh0dHA6Ly9p bWFnZXMuYmVzdGJ1eS5jb20vQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFs L2NuZXQvbG9nb19jbmV0X3JlZGJhbGxfNTB4NTAuZ2lmKSBuby1yZXBlYXQ7CgkJ CXdpZHRoOjI2MHB4OwoJCQloZWlnaHQ6MzhweDsKCQkJcGFkZGluZy10b3A6MTJw eDsKCQkJcGFkZGluZy1sZWZ0OjYwcHg7CgkJCW1hcmdpbi1ib3R0b206MDsKCQkJ bWFyZ2luLXRvcDowOwoJCX0KCQkjY25ldCAuZWRpdG9yIHsKCQkJZmxvYXQ6cmln aHQ7CgkJCXdpZHRoOjE1MHB4OwoJCX0KCQkjY25ldCAuZWRpdG9yIGltZyB7CgkJ CXBhZGRpbmctcmlnaHQ6MTBweDsKCQl9CgkJI2NuZXQgLnN1bW1hcnkgewoJCQl3 aWR0aDozNzBweDsKCQkJZmxvYXQ6bGVmdDsKCQl9CgkJI2NuZXQgLnN1bW1hcnkg cCB7CgkJCWZvbnQtc2l6ZTo5cHg7CgkJCWNvbG9yOiM2NjY7CgkJfQoJCSNjbmV0 IGgzIHsKCQkJZm9udC1zaXplOjEycHg7CgkJfQoJPC9zdHlsZT4KCTxkaXYgY2xh c3M9ImNsZWFyIj48L2Rpdj4KCTxkaXYgaWQ9ImNuZXQiPgoJCTxkaXYgY2xhc3M9 ImVkaXRvciI+CgkJCTxoMz5DTkVUIEVkaXRvcnMnIFJhdGluZzwvaDM+CgkJCTxp bWcgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tL0Jlc3RCdXlfVVMvZW5f VVMvaW1hZ2VzL2dsb2JhbC9jbmV0LzguZ2lmIiBhbHQ9IkNORVQgTG9nbyIgLz4K CQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4KCQkJPGgzPlByb2R1Y3Qg U3VtbWFyeTwvaDM+CgkJCTxzdHJvbmc+VGhlIEdvb2Q8L3N0cm9uZz48YnIvPlN1 cGVyYiBibGFjay1sZXZlbCBwZXJmb3JtYW5jZTsgaGlnaGx5IGFjY3VyYXRlIGNv bG9yOyBpbXByb3ZlZCAxMjBIeiBkZS1qdWRkZXIgdmlkZW8gcHJvY2Vzc2luZzsg ZmluZSBzdGFuZGFyZC1kZWZpbml0aW9uIHByb2Nlc3Npbmc7IGJyb2FkIHNlbGVj dGlvbiBvZiBwaWN0dXJlIHNldHVwIG9wdGlvbnM7IGNhbiBkaXNwbGF5IHdlYXRo ZXIsIG5ld3MsIGFuZCBzdG9jayBpbmZvIG9uc2NyZWVuOyBlbmVyZ3ktZWZmaWNp ZW50IGNvbXBhcmVkIHdpdGggbW9zdCBsaWtlLXNpemUgTENEcy4KPGJyLz48YnIv PgoJCQk8c3Ryb25nPlRoZSBCYWQ8L3N0cm9uZz48YnIvPlJlbGF0aXZlbHkgZXhw ZW5zaXZlOyByZWQtY29sb3JlZCBmcmFtZSBpc24ndCBmb3IgZXZlcnlvbmU7IHNo aW55IHNjcmVlbiByZWZsZWN0cyBhbWJpZW50IHJvb20gbGlnaHRpbmc7IHNvbWUg YXJ0aWZhY3RzIHdoZW4gZGUtanVkZGVyIG1vZGVzIGFyZSBlbmdhZ2VkOyBhd2t3 YXJkIGNsaWNrIHdoZWVsIHJlbW90ZS4KPGJyLz48YnIvPgoJCQk8c3Ryb25nPlRo ZSBCb3R0b20gTGluZTwvc3Ryb25nPjxici8+SWYgeW91IGRvbid0IG1pbmQgaXRz IHJlZCBmcmFtZSwgdGhlIFNhbXN1bmcgTE41MkE2NTAgTENEIFRWIHdpbGwgcmV3 YXJkIHlvdSB3aXRoIGEgbWFzc2l2ZSBmZWF0dXJlIHNldCBhbmQgZXhjZWxsZW50 IHBpY3R1cmUgcXVhbGl0eS48cD4mIzE2OTsgMjAwOCBDQlMgSW50ZXJhY3RpdmUg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2VkIGJ5IHBlcm1pc3Npb24uPC9w PgoJCQkJCTwvZGl2PgoJCTxici8+PGJyLz4KCQk8ZGl2IGNsYXNzPSJjbGVhciI+ PC9kaXY+CgkJPGRpdiBjbGFzcz0icmV2aWV3Ij4KCQkJPGgzPkNORVQgRWRpdG9y cycgUmV2aWV3PC9oMz4KCQkJUmV2aWV3ZWQgYnk6IERhdmlkIEthdHptYWllcgo8 cD4KClNhbXN1bmcncyBMTjUyQTY1MCBkYXJlcyB0byBiZSBkaWZmZXJlbnQuIElu IGEgd29ybGQgb2YgbWUtdG9vLCBnbG9zc3kgYmxhY2sgZmxhdC1wYW5lbCBIRFRW cywgbm8gZmV3IG9mIHdoaWNoIG1heSBiZWFyIHRoZSBjb21wYW55J3Mgb3duIGxv Z28sIHRoaXMgNTItaW5jaCBMQ0QgaXMgZHJlc3NlZCBpbiByZWQuIExpa2UgbWFu eSByYWRpY2FsIGRlc2lnbiBjaG9pY2VzLCB5b3UnbGwgZWl0aGVyIGxvdmUgaXQg b3IgaGF0ZSBpdCwgYW5kIHdlIGRpZG4ndCBsb3ZlIGl0LiBCdXQgYmVmb3JlIHlv dSB3cml0ZSBvZmYgdGhpcyByZWQgVFYsIHdlIHJlY29tbWVuZCB5b3UgY2hlY2sg aXQgb3V0IGluIHBlcnNvbi0tdGhlIHByb2R1Y3Qgc2hvdHMgaGVyZSBhbmQgZWxz ZXdoZXJlIG9uIHRoZSBXZWIganVzdCBkb24ndCBjYXB0dXJlIHRoZSByZWQgdGlu dCBvZiB0aGUgZnJhbWUgcHJvcGVybHkuIEFzaWRlIGZyb20gZGVzaWduLCB3ZSBm b3VuZCBwbGVudHkgdG8gbGlrZSBhYm91dCB0aGUgaGlnaGVyLWVuZCBMTjUyQTY1 MCwgYW5kIGl0IHByb2R1Y2VzIGFyZ3VhYmx5IHRoZSBiZXN0IHBpY3R1cmUgb2Yg YW55IExDRCBUViB3ZSd2ZSB0ZXN0ZWQgc28gZmFyLCBhbHRob3VnaCBpdCBkb2Vz bid0IHF1aXRlIGJlYXQgdGhlIHF1YWxpdHkgb2YgdGhlIGJlc3QgcGxhc21hLjwv cD48cD4KCjxiPkRlc2lnbjwvYj48YnIgLz4KClNhbXN1bmcncyBMTkE2NTAgc2Vy aWVzIGluY29ycG9yYXRlcyB0aGUgY29tcGFueSdzIFRvdWNoIG9mIENvbG9yIGRl c2lnbiBzY2hlbWUuIEluc3RlYWQgb2YgdGhlIHN0YW5kYXJkIGdsb3NzeSBibGFj ayBmcmFtZSwgdGhlIExONTJBNjUwIHNwb3J0cyBkYXJrLXJlZCBhY2NlbnRzIHRo YXQgc3VmZnVzZSB0aGUgZW50aXJlIGZyYW1lLCBidXQgYXJlIG1vc3QgcHJvbWlu ZW50IGFsb25nIHRoZSB0b3AgYW5kIGJvdHRvbSBlZGdlIGFuZCBlaXRoZXIgc2lk ZS4gT3RoZXIgZXllLWNhdGNoaW5nIGVsZW1lbnRzIGluY2x1ZGUgYSBsYXllciBv ZiB0cmFuc3BhcmVudCBwbGFzdGljLCB3aGljaCBpcyB2aXNpYmxlIGFsb25nIHRo ZSBleHRyZW1lIGVkZ2VzIG9uIGFsbCBzaWRlcywgYW5kIFNhbXN1bmcncyB0cmFk ZW1hcmsgc2hpbnkgc2NyZWVuIChtb3JlIG9uIHRoYXQgYmVsb3cpLiBUaGUgVG91 Y2ggZGVmaW5pdGVseSBjcmVhdGVzIGEgdW5pcXVlIGxvb2ssIGJ1dCBjYWxsIHVz IHRyYWRpdGlvbmFsaXN0czogd2UgZGlkbid0IHJlYWxseSBsaWtlIGl0LiBUaGUg cGhvdG9zIGFib3ZlIGp1c3QgY2FuJ3QgY2FwdHVyZSBob3cgcmVkIHRoZSBUb3Vj aCBtYWtlcyB0aGUgZnJhbWUgYXBwZWFyLCBlc3BlY2lhbGx5IGluIGJyaWdodCBy b29tcywgYW5kIGlmIHJlZCBpc24ndCB5b3VyIGZhdm9yaXRlIGNvbG9yLCB5b3Un cmUgb3V0IG9mIGx1Y2stLW5vIG90aGVyIGNvbG9ycyBoYXZlIGJlZW4gY29uZmly bWVkIGZvciB0aGlzIHllYXIsIGRlc3BpdGUgdGhlIGNvbXBhbnkgdG91dGluZyBh IHZlcml0YWJsZSByYWluYm93IGF0IENFUy4gSW4gaXRzIGZhdm9yLCB0aGUgcmVk IGZyYW1lIGRpZG4ndCByZWFsbHkgZGV0cmFjdCBmcm9tIHRoZSBjb2xvciBmaWRl bGl0eSBvZiB0aGUgcGljdHVyZS48L3A+PHA+Cgo8ZGl2IGFsaWduPSJjZW50ZXIi Pgo8YnIgLz4gPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBwYWRkaW5nOiA1cHgg MHB4OyB0ZXh0LWFsaWduOiBsZWZ0Ij48YiBjbGFzcz0idjEiPkEgY2xvc2UtdXAg b2YgdGhlIHNpZGUtcGFuZWwgaW5wdXQgamFja3MgYWxzbyBzaG93cyB0aGUgcmVk IHRpbnQgb2YgdGhlIGZyYW1lIGJldHRlciB0aGFuIHRoZSBtYWluIHByb2R1Y3Qg c2hvdHMuPC9iPjwvZGl2PiA8L2Rpdj48L3A+PHA+CgpJbmNsdWRpbmcgdGhlIHN0 YW5kYXJkLWlzc3VlIHBlZGVzdGFsIHN3aXZlbCBzdGFuZCwgdGhlIExONTJBNjUw IG1lYXN1cmVzIDUwLjIgaW5jaGVzIHdpZGUgYnkgMzQuMSBpbmNoZXMgdGFsbCBi eSAxMi44IGluY2hlcyBkZWVwIGFuZCB3ZWlnaHMgNzYuNyBwb3VuZHMuIFdpdGhv dXQgdGhlIHN0YW5kLCBpdCBjb21lcyBpbiBhdCA1MC4yIGluY2hlcyB3aWRlIGJ5 IDMxLjcgaW5jaGVzIHRhbGwgYnkgNC4xIGluY2hlcyBkZWVwIGFuZCA2NC42IHBv dW5kcy48L3A+PHA+CgpUaGUgcmVtb3RlIGRpZmZlcnMgZnJvbSB0aGUgb25lIGlu Y2x1ZGVkIG9uIHRoZSBTYW1zdW5nIFBONTBBNTUwIGJlY2F1c2UgaXQgdXNlcyBh IHJvdGF0aW5nLCBjbGlja2FibGUgd2hlZWwsIHNpbWlsYXIgdG8gYW4gaVBvZCBz Y3JvbGwgd2hlZWwsIGZvciBtZW51IG5hdmlnYXRpb24sIGFzIG9wcG9zZWQgdG8g dGhlIHN0YW5kYXJkLCBmb3VyLXdheSBkaXJlY3Rpb25hbCBrZXlzLiBUaGUgd2hl ZWwgd291bGQgYmUgYSBjb29sIGlkZWEgaWYgaXQgd2FzIG1vcmUgcmVzcG9uc2l2 ZSwgYnV0IHdpdGggdGhlIGJyaWVmIGRlbGF5IGJldHdlZW4gbW92aW5nIHRoZSB3 aGVlbCBhbmQgc2VlaW5nIHRoZSByZXN1bHRzIG9uIHRoZSBzY3JlZW4sIHdlIGZv dW5kIG91cnNlbHZlcyBtb3JlIHRoYW4gYSBiaXQgYW5ub3llZCBieSBpdC4gVGhl IHJlc3Qgb2YgdGhlIHJlbW90ZSdzIGJ1dHRvbnMgYXJlIG5pY2UgYW5kIGJpZyBh bmQgYmFja2xpdCAodGhlIGJhY2tsaWdodGluZyBlbmdhZ2VzIGF1dG9tYXRpY2Fs bHkgd2hlbiB0aGUgcmVtb3RlIGlzIHBpY2tlZCB1cCwgc29tZXRoaW5nIHdlJ3Zl IG5ldmVyIHNlZW4gb24gYSByZW1vdGUgaW5jbHVkZWQgd2l0aCBhIFRWKSwgYW5k IHdlIGxpa2VkIHRoZSBkZWRpY2F0ZWQgIlRvb2xzIiBidXR0b24gdGhhdCBvZmZl cmVkIHF1aWNrIGFjY2VzcyB0byBwaWN0dXJlIGFuZCBzb3VuZCBtb2RlcywgdGhl IHNsZWVwIHRpbWVyLCBhbmQgdGhlIHBpY3R1cmUtaW4tcGljdHVyZSBjb250cm9s cy4gV2UgZGlkbid0IGxpa2UgdGhlIGNsaWNrZXIncyBnbG9zc3kgYmxhY2sgZmlu aXNoLCBob3dldmVyLCB3aGljaCBwaWNrZWQgdXAgbW9yZSB0aGFuIGl0cyBzaGFy ZSBvZiBkdWxsaW5nIGZpbmdlcnByaW50cyBhZnRlciBhIGZldyBtaW51dGVzLiA8 L3A+PHA+Cgo8ZGl2IGFsaWduPSJjZW50ZXIiPgo8YnIgLz4gPGRpdiBzdHlsZT0i d2lkdGg6IDMwMHB4OyBwYWRkaW5nOiA1cHggMHB4OyB0ZXh0LWFsaWduOiBsZWZ0 Ij48YiBjbGFzcz0idjEiPldlIGxpa2VkIHRoZSBlYXN5LW9uLXRoZS1leWVzIGRl c2lnbiBvZiBTYW1zdW5nJ3MgbWVudSBzeXN0ZW0uPC9iPjwvZGl2PiA8L2Rpdj48 L3A+PHA+CgpTYW1zdW5nJ3MgbmV3IG1lbnUgc3lzdGVtIGlzIHNsZWVrZXIgdGhh biBiZWZvcmUgYW5kIGJsZXNzZWQgd2l0aCBiaWcsIGhpZ2hseSBsZWdpYmxlIHRl eHQgc2V0IGFnYWluc3QgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgdGhhdCBvY2N1 cHkgYWxtb3N0IHRoZSB3aG9sZSBzY3JlZW4uIEdldHRpbmcgYXJvdW5kIGlzIGVh c3k7IHRoZXJlJ3MgaGVscGZ1bCBleHBsYW5hdG9yeSB0ZXh0IGFsb25nIHRoZSBi b3R0b20sIGFuZCB3ZSBkdWcgdGhlIGNvbnRleHQtc2Vuc2l0aXZlIG1lbnUgdGhh dCB3b3VsZCBwb3AgdXAgb2NjYXNpb25hbGx5IHRvIHByb3ZpZGUgbW9yZSBvcHRp b25zLiBPdmVyYWxsLCBpdCdzIG9uZSBvZiB0aGUgYmVzdC1kZXNpZ25lZCBhbmQg bW9zdC1hdHRyYWN0aXZlIG1lbnUgc3lzdGVtcyB3ZSd2ZSBzZWVuIG9uIGFueSBI RFRWLCBhbmQgaXQgcmVhbGx5IG1ha2VzIHNldHVwIGEgYnJlZXplLS1leGNlcHQg Zm9yIHRoZSBjb25mdXNpbmcgcGljdHVyZSBtb2RlIGFycmFuZ2VtZW50IChzZWUg YmVsb3cpLiA8L3A+PHA+Cgo8Yj5GZWF0dXJlczwvYj48YnIgLz4KClRoZSBMTjUy QTY1MCBoYXMgYSAxMjBIeiByZWZyZXNoIHJhdGUsIHdoaWNoIGFsbG93cyBpdCB0 byBjdXQgZG93biBvbiBibHVyIGFuZCB0byBhZmZlY3QganVkZGVyIGluIG1vdGlv biB3aXRoIGEgdmlkZW8tcHJvY2Vzc2luZyBtb2RlIFNhbXN1bmcgY2FsbHMgIkF1 dG8gTW90aW9uIFBsdXMuIiBDaGVjayBvdXQgRGF2aWQgQ2Fybm95J3MgRnVsbHkg RXF1aXBwZWQgY29sdW1uIGZvciBhbiBpbi1kZXB0aCBkaXNjdXNzaW9uIG9mIDEy MEh6LCBhbmQgdGhlIHBlcmZvcm1hbmNlIHNlY3Rpb24gb2YgdGhpcyByZXZpZXcg Zm9yIGRldGFpbHMgb24gaG93IGl0J3MgaW1wbGVtZW50ZWQgb24gdGhlIExONTJB NjUwLiBMaWtlIG1vc3Qgb3RoZXIgTENEIGFuZCBwbGFzbWEgVFYgbW9kZWxzIG9u IHNhbGUgaW4gMjAwOCwgdGhlIExONTJBNjUwIGFsc28gaGFzIGEgbmF0aXZlIHJl c29sdXRpb24gb2YgMSw5MjB4MSwwODAgKGFrYSAxMDgwcCkuPC9wPjxwPgoKPGRp diBhbGlnbj0iY2VudGVyIj4KPGJyIC8+IDxkaXYgc3R5bGU9IndpZHRoOiAzMDBw eDsgcGFkZGluZzogNXB4IDBweDsgdGV4dC1hbGlnbjogbGVmdCI+PGIgY2xhc3M9 InYxIj5UaHJlZSBsZXZlbHMgb2YgZGUtanVkZGVyIHByb2Nlc3NpbmcgYXJlIGF2 YWlsYWJsZSBvbiB0aGUgTE41MkE1NTAuPC9iPjwvZGl2PiA8L2Rpdj48L3A+PHA+ CgpOZXcgZm9yIDIwMDgsIHRoZSA2NTAgc2VyaWVzIGFsc28gaW5jbHVkZXMgYW4g RXRoZXJuZXQgcG9ydCwgd2hpY2ggYWxsb3dzIHRoZSBUViB0byBhY2Nlc3MgdGhl IEludGVybmV0IHRvIGRpc3BsYXkgbmV3cywgc3RvY2sgdGlja2VyIGluZm9ybWF0 aW9uLCBhbmQgbG9jYWwgd2VhdGhlci4gV2UgbGlrZWQgdGhlIGVhc3ktdG8tcmVh ZCBmb250IGluIG5vcm1hbCBhbmQgbGFyZ2Ugc2l6ZXMsIGFzIHdlbGwgYXMgdGhl IGludHVpdGl2ZSBjb250cm9scy4gPGk+VVNBIFRvZGF5PC9pPiBwcm92aWRlcyB0 aGUgbmV3c2ZlZWQsIHdoaWNoIGNhbiBzaXQgaW4gdGhlIGNvcm5lciBvZiB0aGUg c2NyZWVuIGxpa2UgYSB0aWNrZXIgKHR1cm4gPGk+RGVzcGVyYXRlIEhvdXNld2l2 ZXM8L2k+IGludG8gRm94IE5ld3MhKSwgb3IgYmUgZXhwYW5kZWQgdG8gYWxsb3cg eW91IHRvIHJlYWQgbnVtZXJvdXMgdG9wIHN0b3JpZXMgaW4gYSB2YXJpZXR5IG9m IHRvcGljcy4gT25lIGFubm95aW5nIHF1aXJrIHdhcyB0aGF0IHdlIGNvdWxkbid0 IHJlbW92ZSB0aGUgU2V0dXAgc2NyZWVuIGVhc2lseS0taGl0dGluZyAicmV0dXJu LCIgYXMgdGhlIG1hbnVhbCBzdWdnZXN0ZWQsIG1lcmVseSB0dXJuZWQgb2ZmIHRo ZSB3aG9sZSBzZXJ2aWNlLiBBbHNvLCB3ZSdkIHJlYWxseSBhcHByZWNpYXRlIGlm IHRoZSBwb3J0IGFsbG93ZWQgdGhlIFRWIHRvIGFjY2VzcyBmaXJtd2FyZSB1cGRh dGVzLCBidXQgYWNjb3JkaW5nIHRvIFNhbXN1bmcgdGhhdCdzIG5vdCBpbiB0aGUg Y2FyZHMuIEEgVVNCLXRvLVdpLUZpIGRvbmdsZSB0aGF0IGFsbG93cyB0aGUgVFYg dG8gY29ubmVjdCB0byBhIHdpcmVsZXNzIG5ldHdvcmsgKG1vZGVsIFdJUy0wOEJH WCwgJDM0Ljk5KSBpcyBhbHNvIGF2YWlsYWJsZS4KCjxkaXYgYWxpZ249ImNlbnRl ciI+CjxiciAvPiA8ZGl2IHN0eWxlPSJ3aWR0aDogMzAwcHg7IHBhZGRpbmc6IDVw eCAwcHg7IHRleHQtYWxpZ246IGxlZnQiPjxiIGNsYXNzPSJ2MSI+VGhlIEV0aGVy bmV0IHBvcnQgYWxsb3dzIHRoZSBzZXQgdG8gZGlzcGxheSBhIGxvY2FsIHdlYXRo ZXIgcmVwb3J0Li4uPC9iPjwvZGl2PiA8L2Rpdj48L3A+PHA+Cgo8ZGl2IGFsaWdu PSJjZW50ZXIiPgo8YnIgLz4gPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBwYWRk aW5nOiA1cHggMHB4OyB0ZXh0LWFsaWduOiBsZWZ0Ij48YiBjbGFzcz0idjEiPi4u LmFzIHdlbGwgYXMgbmV3cyBjbGlwcyBhbmQgKG5vdCBwaWN0dXJlZCkgYSBjdXN0 b21pemVkIHN0b2NrIHRpY2tlci48L2I+PC9kaXY+IDwvZGl2PjwvcD48cD4KClRo ZSBMTjUyQTY1MCBoYXMgdGhyZWUgYWRqdXN0YWJsZSBwaWN0dXJlIG1vZGVzIHRo YXQgYXJlIGVhY2ggaW5kZXBlbmRlbnQgcGVyIGlucHV0LiBUaGF0J3MgZ3JlYXQs IGJ1dCBpbiBhZGRpdGlvbiB0aGVyZSBhcmUgdGhyZWUgbW9yZSBwaWN0dXJlIHBy ZXNldHMsIGNhbGxlZCAiRW50ZXJ0YWlubWVudCBNb2RlcywiIHRoYXQgY2Fubm90 IGJlIGFkanVzdGVkIGFuZCBhcmUgYWNjZXNzaWJsZSB2aWEgYSBzZXBhcmF0ZSBr ZXkgb24gdGhlIHJlbW90ZSBhbmQgdGhlIFNldHVwIG1lbnUuIFRoaXMgYXJyYW5n ZW1lbnQgaXMgdW5uZWNlc3NhcmlseSBjb25mdXNpbmcgb24gYSBUViB3aXRoIHNv IG1hbnkgc2V0dGluZ3MgYW55d2F5OyB3ZSdkIHByZWZlciB0byBoYXZlIGFsbCBv ZiB0aGUgcGljdHVyZSBtb2RlcywgYm90aCBhZGp1c3RhYmxlIGFuZCBub24tYWRq dXN0YWJsZSwgYmUgYWNjZXNzaWJsZSB0b2dldGhlciBmcm9tIGEgc2luZ2xlIGtl eSBvbiB0aGUgcmVtb3RlIGFuZCBvbmUgYXJlYSBvZiB0aGUgUGljdHVyZSBtZW51 LiBBbHNvLCBpZiB5b3UncmUgaW4gRW50ZXJ0YWlubWVudCBtb2RlLCB5b3UncmUg cHJldmVudGVkIGZyb20gbWFraW5nIHBpY3R1cmUgYWRqdXN0bWVudHMsIG9yIGV2 ZW4gc2VsZWN0aW5nIG9uZSBvZiB0aGUgYWRqdXN0YWJsZSBwaWN0dXJlIG1vZGVz LCB1bnRpbCB5b3UgYWN0aXZlbHkgY2FuY2VsIGFuIEVudGVydGFpbm1lbnQgbW9k ZSBieSBuYXZpZ2F0aW5nIHRvIHRoZSBTZXR1cCBtZW51ICh3aGljaCB0aGUgb25z Y3JlZW4gaW5zdHJ1Y3Rpb25zIHN1Z2dlc3QpIG9yIHRvZ2dsaW5nIHRoZSBtb2Rl IHRvICJPZmYiIHVzaW5nIHRoZSByZW1vdGUuIFRoYXQncyBhbiBhd2t3YXJkIGhp dGNoIGluIGFuIG90aGVyd2lzZSBzbW9vdGggbWVudSBkZXNpZ24uIDwvcD48cD4K CjxwPjxkaXYgYWxpZ249ImNlbnRlciI+CjxiciAvPgo8ZGl2IHN0eWxlPSJ3aWR0 aDogMzAwcHg7IHBhZGRpbmc6IDVweCAwcHg7IHRleHQtYWxpZ246IGxlZnQiPjxi IGNsYXNzPSJ2MSI+Tm90IGV2ZXJ5IHN1Ym1lbnUgZ2V0cyB0aGUgdXBkYXRlZCBn cmFwaGljcywgaG93ZXZlciwgaW5jbHVkaW5nIHRoZSBpbXBvcnRhbnQgKGFuZCBz dGlsbCBwZXJmZWN0bHkgZnVuY3Rpb25hbCkgd2hpdGUgYmFsYW5jZSBjb250cm9s cy48L2I+PC9kaXY+CjwvZGl2PjwvcD4KCjxwPgoKT3RoZXJzIHBpY3R1cmUgY29u dHJvbHMgaW5jbHVkZSBmaXZlIGNvbG9yIHRlbXBlcmF0dXJlIHByZXNldHMgYWxv bmcgd2l0aCB0aGUgYWJpbGl0eSB0byBmaW5lLXR1bmUgY29sb3IgdXNpbmcgdGhl IHdoaXRlIGJhbGFuY2UgbWVudTsgdGhyZWUgdmFyaWV0aWVzIG9mIG5vaXNlIHJl ZHVjdGlvbiwgaW5jbHVkaW5nIGFuIGF1dG9tYXRpYyBzZXR0aW5nOyBhIGZpbG0g bW9kZSB0byBlbmdhZ2UgMjozIHB1bGxkb3duIChpdCBhbHNvIHdvcmtzIHdpdGgg MTA4MGkgc291cmNlcyk7IGEgc2V2ZW4tcG9zaXRpb24gZ2FtbWEgY29udHJvbCB0 aGF0IGFmZmVjdHMgdGhlIFRWJ3MgcHJvZ3Jlc3Npb24gZnJvbSBkYXJrIHRvIGxp Z2h0OyBhIGR5bmFtaWMgY29udHJhc3QgY29udHJvbCB0aGF0IGFkanVzdHMgdGhl IHBpY3R1cmUgb24gdGhlIGZseTsgYSAiYmxhY2sgYWRqdXN0IiBjb250cm9sIHRo YXQgYWZmZWN0cyBzaGFkb3cgZGV0YWlsOyBhbmQgYSBuZXcgY29sb3Igc3BhY2Ug Y29udHJvbCB0aGF0IGxldHMgeW91IHR3ZWFrIHRoZSBTYW1zdW5nJ3MgY29sb3Ig Z2FtdXQuPC9wPjxwPgoKWW91IGNhbiBjaG9vc2UgZnJvbSBmb3VyIGFzcGVjdCBy YXRpbyBtb2RlcyBmb3IgSEQgc291cmNlcywgdHdvIG9mIHdoaWNoIGFsbG93IHlv dSB0byBtb3ZlIHRoZSB3aG9sZSBpbWFnZSBhY3Jvc3MgdGhlIHNjcmVlbiBob3Jp em9udGFsbHkgYW5kL29yIHZlcnRpY2FsbHkuIEFzIHdlJ2QgZXhwZWN0IGZyb20g YSAxMDgwcCBUViwgb25lIG9mIHRob3NlIG1vZGVzLCBjYWxsZWQgSnVzdCBTY2Fu LCBsZXRzIHRoZSBMTjUyQTY1MCBzY2FsZSAxMDgwaSBhbmQgMTA4MHAgc291cmNl cyBkaXJlY3RseSB0byB0aGUgcGFuZWwncyBwaXhlbHMgd2l0aCBubyBvdmVyc2Nh bi0tdGhlIGJlc3Qgb3B0aW9uIHVubGVzcyB5b3Ugc2VlIGludGVyZmVyZW5jZSBh bG9uZyB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuLCBhcyBjYW4gYmUgdGhlIGNhc2Ug d2l0aCBzb21lIGNoYW5uZWxzIG9yIHByb2dyYW1zLiBUaGVyZSBhcmUgYWxzbyBm b3VyIG1vZGVzIGF2YWlsYWJsZSB3aXRoIHN0YW5kYXJkLWRlZiBzb3VyY2VzLiA8 L3A+PHA+CgpXZSBhcHByZWNpYXRlZCB0aGUgdGhyZWUgcG93ZXItc2F2ZXIgbW9k ZXMgYW5kIHRoZSBzaW5ndWxhciBmYWN0IHRoYXQsIHVubGlrZSBtb3N0IG90aGVy IG1hbnVmYWN0dXJlcnMsIHRoaXMgeWVhciBTYW1zdW5nIGRpZCBub3QgdXNlIHRo ZSBicmlnaHRlc3QgcGljdHVyZSBtb2RlIGFzIGl0cyBkZWZhdWx0LiBJbnN0ZWFk LCB0aGUgZGVmYXVsdCBwaWN0dXJlIG1vZGUgZm9yIEhvbWUgdXNlIGlzIFN0YW5k YXJkLCB3aGljaCBzYXZlcyBhIGxvdCBvZiBlbmVyZ3kgY29tcGFyZWQgd2l0aCB0 aGUgbXVjaCBicmlnaHRlciBEeW5hbWljLiBDaGVjayBvdXQgdGhlIEp1aWNlIEJv eCBiZWxvdyBmb3IgZGV0YWlscyBvbiB0aGUgc2V0J3MgZW5lcmd5IHVzZS4KCkFz IGZhciBhcyBvdGhlciBjb252ZW5pZW5jZXMsIFNhbXN1bmcgdGhyb3dzIGluIHBp Y3R1cmUtaW4tcGljdHVyZSBhbG9uZyB3aXRoIGEgVVNCIHBvcnQgdGhhdCBjYW4g Y29ubmVjdCB0byB0aHVtYiBkcml2ZXMgdG8gcGxheSBiYWNrIGRpZ2l0YWwgcGhv dG9zIGFuZCBNUDMgbXVzaWMuIFRoZSBMTjUyQTY1MCBpcyBhbHNvIGNvbXBhdGli bGUgd2l0aCB0aGUgY29tcGFueSdzIGZvcnRoY29taW5nIGRpZ2l0YWwgbWVkaWEg YWRhcHRlci48L3A+PHA+Cgo8cD48ZGl2IGFsaWduPSJjZW50ZXIiPgo8YnIgLz4K PGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4OyBwYWRkaW5nOiA1cHggMHB4OyB0ZXh0 LWFsaWduOiBsZWZ0Ij48YiBjbGFzcz0idjEiPkEgdGhpcmQgSERNSSBpbnB1dCBh bmQgYW4gRXRoZXJuZXQgamFjayBzZXQgYXBhcnQgdGhlIFNhbXN1bmcncyBqYWNr IHBhY2suPC9iPjwvZGl2Pgo8L2Rpdj48L3A+Cgo8cD4KClRoZSBjb25uZWN0aXZp dHkgb2YgdGhlIExONTJBNjUwIGlzIGV4Y2VsbGVudC4gVGhlcmUgYXJlIHRocmVl IEhETUkgaW5wdXRzIGF2YWlsYWJsZSBhcm91bmQgYmFjaywgd2hpbGUgYSBmb3Vy dGggY2FuIGJlIGZvdW5kIGluIGEgcmVjZXNzZWQgYmF5IGFsb25nIHRoZSBwYW5l bCdzIGxlZnQgc2lkZS4gVGhlcmUncyBhbHNvIGEgcGFpciBvZiBjb21wb25lbnQt dmlkZW8gaW5wdXRzOyBhIHNpbmdsZSBSRiBpbnB1dCBmb3IgY2FibGUgYW5kIGFu dGVubmEgKHRoZSAnMDcgbW9kZWxzIGhhZCB0d28pOyBhbmQgYSBWR0Etc3R5bGUg UkdCIGlucHV0IGZvciBjb21wdXRlcnMgKDEsOTIweDEsMDgwIG1heGltdW0gcmVz b2x1dGlvbikuIFRoYXQgcmVjZXNzZWQgYmF5IG9mZmVycyBhbiBhZGRpdGlvbmFs IEFWIGlucHV0IHdpdGggUy1WaWRlbyBhbmQgY29tcG9zaXRlIHZpZGVvLCBhIGhl YWRwaG9uZSBqYWNrLCBhbmQgdGhlIGFmb3JlbWVudGlvbmVkIFVTQiBwb3J0LiA8 L3A+PHA+Cgo8Yj5QZXJmb3JtYW5jZTwvYj48YnIgLz4KClRoZSBTYW1zdW5nIExO NTJBNjUwIGlzIG9uZSBvZiB0aGUgYmVzdC1wZXJmb3JtaW5nIExDRHMgd2UndmUg dGVzdGVkLiBJdHMgcGljdHVyZSBxdWFsaXR5LCBhbmNob3JlZCBieSBleGNlbGxl bnQgYmxhY2stbGV2ZWwgcGVyZm9ybWFuY2UsIGFuZCBhY2N1cmF0ZSBjb2xvciwg c3VycGFzc2VzIHRoYXQgb2YgdGhlIFNvbnkgS0RMLTQ2WEJSNC0tYW5kIFNhbXN1 bmcncyBkZS1qdWRkZXIgdmlkZW8gcHJvY2Vzc2luZyBoYXMgaW1wcm92ZWQgdG8g dGhlIHBvaW50IHdoZXJlIGl0J3MgYmFzaWNhbGx5IGVxdWFsIHRvIHRoZSBTb255 LiBXZSBkaWQgbm90aWNlIGEgY291cGxlIG9mIG1pbm9yIGlzc3VlcywgYW5kIGFz IHVzdWFsIHdlJ2QgYXZvaWQgd2F0Y2hpbmcgZGFyayBtb3ZpZXMgb24gdGhpcyBn bG9zc3ktc2NyZWVuZWQgVFYgaW4gcm9vbXMgd2l0aCBsb3RzIG9mIGFtYmllbnQg bGlnaHQsIGJ1dCB0aGF0J3MgYWJvdXQgaXQuIDwvcD48cD4KCk91ciBzdGFuZGFy ZCBjYWxpYnJhdGlvbiB3YXMgYWlkZWQgYnkgdGhlIG51bWVyb3VzIHBpY3R1cmUg Y29udHJvbHMgaW4gdGhlIFNhbXN1bmcncyB1c2VyIG1lbnUuIFdlIHdlcmUgYWJs ZSB0byBpbXByb3ZlIGNvbG9yIHRlbXBlcmF0dXJlIGFuZCBkaWFsIGluIHNhdHVy YXRpb24gd2l0aG91dCBnb2luZyBvdmVyYm9hcmQgdGhhbmtzIHRvIHRoZSBibHVl LW9ubHkgbW9kZSAoY2hlY2sgdGhpcyB0aXAgdG8gc2VlIGhvdyBpdCB3b3Jrcyku IEFsdGhvdWdoIHdlIGF0dGVtcHRlZCB0byB0d2VhayB0aGUgY29sb3IgcG9pbnRz IGEgYml0IHVzaW5nIHRoZSBjdXN0b20gY29sb3IgcGFsZXR0ZSBjb250cm9scywg cHJpbWFyeSBhbmQgc2Vjb25kYXJ5IGNvbG9ycyB3ZXJlIGFscmVhZHkgY2xvc2Ug ZW5vdWdoIHRvIHRoZSBzdGFuZGFyZCB0aGF0IHdlIHNpbXBseSBzZXR0bGVkIG9u IHRoZSBkZWZhdWx0IEF1dG8gaW4gdGhlIGVuZC4gQ2xpY2sgaGVyZSBmb3IgYSBm dWxsIGxpc3Qgb2Ygb3VyIGRhcmstcm9vbSBwaWN0dXJlIHNldHRpbmdzLjxwPgoK QWZ0ZXIgc2V0dXAsIHdlIHBsYWNlZCB0aGUgTE41MkE2NTAgaW4gYSBjb21wYXJp c29uIHRoYXQgaW5jbHVkZWQgb3VyIHJlZmVyZW5jZSBzZXRzLS10aGUgUGlvbmVl ciBQRFAtNTA4MEhELCB0aGUgU29ueSBLRFMtNTVBMzAwMCwgYW5kIHRoZSAxMjBI eiBTb255IEtETC00NlhCUjQtLWFsb25nIHdpdGggdGhlIFBhbmFzb25pYyBUSC00 NlBYODVVLiBXZSBjaGVja2VkIG91dCA8aT5TcGlkZXItTWFuIDM8L2k+IG9uIEJs dS1yYXkgYXQgMTA4MHAgZnJvbSB0aGUgU29ueSBQbGF5U3RhdGlvbiAzLjwvcD48 cD4KIAo8Yj5CbGFjayBsZXZlbDo8L2I+IFRoZSBTYW1zdW5nIExONTJBNjUwIHJl cHJvZHVjZWQgb25lIG9mIHRoZSBkZWVwZXN0IHNoYWRlcyBvZiBibGFjayB3ZSd2 ZSBzZWVuIGZyb20gYW55IExDRC4gSXQgY2FuJ3QgcXVpdGUgbWF0Y2ggdGhlIGNo YW1wLCBTYW1zdW5nJ3Mgb3duIExFRC1iYXNlZCBMTi1UNDY4MUYsIGJ1dCBmcm9t IHdoYXQgd2UgcmVtZW1iZXIsIGl0J3MgcHJldHR5IGRhbmcgY2xvc2UuIFRoZSBQ aW9uZWVyIGFuZCBQYW5hc29uaWMgcGxhc21hcyBnb3QgZGFya2VyIGJ5IGEgY291 cGxlIG9mIGhhaXJzLCBhbHRob3VnaCB0aGUgU2Ftc3VuZyBzb2xpZGx5IGJlYXQg dGhlIHR3byBTb255cy4gT2YgY291cnNlLCBhcyB3aXRoIGFsbCBMQ0RzLCB0aG9z ZSBkZWVwIGJsYWNrcyBiZWNhbWUgYnJpZ2h0ZXIgd2hlbiBzZWVuIGZyb20gb2Zm IGFuZ2xlIChzZWUgYmVsb3cpLiA8L3A+PHA+CgpEZXRhaWxzIGluIHNoYWRvd3Mg d2VyZSBxdWl0ZSBnb29kLCBhbHRob3VnaCBub3QgcGVyZmVjdC4gRHVyaW5nIGEg c2hvdCB3aGVuIEZsaW50IHN0YXJlcyBpbnRvIHRoZSBjYW1lcmEgYWZ0ZXIgc25l YWtpbmcgaW50byBoaXMgZGF1Z2h0ZXIncyByb29tLCBmb3IgaW5zdGFuY2UsIHdl IGNvdWxkbid0IHF1aXRlIG1ha2Ugb3V0IHRoZSBwcmludCBvbiB0aGUgd2FsbHBh cGVyIGJlaGluZCBoaW0sIGFuZCB0aGUgc2hhZGVkIGhhbGYgb2YgaGlzIGZhY2Ug bG9va2VkIGluZGlzdGluY3QgY29tcGFyZWQgd2l0aCB0aGUgcmVmZXJlbmNlIFBp b25lZXIsIGFsdGhvdWdoIHN0aWxsIG1vcmUgbmF0dXJhbCB0aGFuIGFueSBvZiB0 aGUgb3RoZXIgZGlzcGxheXMuIENyYW5raW5nIGJyaWdodG5lc3MgYnJvdWdodCBi YWNrIHRoZSBkZXRhaWxzIGJ1dCBkZXN0cm95ZWQgYmxhY2sgbGV2ZWxzLCBhbmQg dGhlIFNhbXN1bmcgd2Fzbid0IGNydXNoaW5nIGJsYWNrLiBJdHMgZ2FtbWEgd2Fz IGp1c3QgYSBiaXQgc2hhbGxvdyBpbiBkYXJrIGFyZWFzLCBldmVuIGF0IHRoZSBt b3N0IGFnZ3Jlc3NpdmUgKzMgKG91ciBwcmVmZXJyZWQgc2V0dGluZykuIDwvcD48 cD4KCjxiPkNvbG9yIGFjY3VyYWN5OjwvYj4gVGhlIGluaXRpYWwgY29sb3IgdGVt cGVyYXR1cmUgaW4gV2FybTIgd2FzIHN0aWxsIGEgdGFkIGJsdWUgKHNlZSB0aGUg R2VlayBCb3gpLCBidXQgb3RoZXIgdGhhbiB0aGF0IHdlIGhhZCBubyBjb21wbGFp bnRzLiBBZnRlciBjYWxpYnJhdGlvbiBpdCB3YXMgcXVpdGUgYWNjdXJhdGUsIGxl bmRpbmcgYSBuYXR1cmFsIGxvb2sgdG8gc2tpbiB0b25lcyBhbmQgb3RoZXIgZGVs aWNhdGUgYXJlYXMsIGxpa2UgTWFyeSBKYW5lJ3MgcGFsZSBmYWNlLiBHcmVlbiBn cmFzcyBpbiB0aGUgcGxhemEgYW5kIHJlZCBiYWxsb29ucyBkdXJpbmcgdGhlIHBh cmFkZSBhbGwgbG9va2VkIHJpY2ggYW5kIHB1bmNoeSwgYW5kIGNvbG9yIGJhbGFu Y2Ugd2FzIHN1cGVyYi4gT25lIG1ham9yIGFkdmFudGFnZSB0aGUgTE41MkE1MCBk ZW1vbnN0cmF0ZWQgb3ZlciB0aGUgU29ueSBLREwtNDZYQlI0IExDRCB3YXMgaXRz IGNvbG9yIGZpZGVsaXR5IGluIGRhcmsgYXJlYXMtLXdoZXJlIHRoZSBTb255IGRp cHBlZCBpbnRvIGJsdWUsIGxpa2UgbWFueSBMQ0RzLCB0aGUgU2Ftc3VuZyByZW1h aW5lZCBjbG9zZSB0byB0cnVlIGJsYWNrLiBPdmVyYWxsIHNhdHVyYXRpb24sIHRo YW5rcyB0byBkZWVwIGJsYWNrcyBhbmQgZmluZSBjb2xvciBiYWxhbmNlLCB3YXMg ZXF1YWwgdG8gdGhlIHN1cGVyYiBQaW9uZWVyLiA8L3A+PHA+Cgo8Yj5WaWRlbyBw cm9jZXNzaW5nOjwvYj4gU2Ftc3VuZydzIEF1dG8gTW90aW9uIFBsdXMgKEFNUCkg cHJvY2Vzc2luZyBpcyBkZXNpZ25lZCB0byBzbW9vdGggb3V0IG1vdGlvbi0tc3Bl Y2lmaWNhbGx5IHRoZSBqdWRkZXIgb3IgZmFpbnQgc3R1dHRlcmluZyBpbmhlcmVu dCBpbiAyNC1mcmFtZSBtYXRlcmlhbCBzdWNoIGFzIG1vc3QgZmlsbXMuIEp1ZGRl ciBjYW4gYmUgcGVyY2VpdmVkIG1vc3QgZWFzaWx5IGluIHBhbnMgYW5kIGNhbWVy YSBtb3ZlbWVudCwgYnV0IG9uY2UgeW91IG5vdGljZSBpdCwgaXQgc2VlbXMgdG8g cG9wIHVwIGV2ZXJ5d2hlcmUgdGhlcmUncyBhbnkgbW92ZW1lbnQgb25zY3JlZW4u IFNvbWUgdmlld2VycyBmaW5kIHRoZSBzbW9vdGhpbmcgZWZmZWN0IGRlc2lyZWFi bGUsIHdoaWxlIHNvbWUgdGhpbmsgaXQgbG9va3MgdG9vIHZpZGVvLWxpa2UgYW5k IGV2ZW4gY2FydG9vbmlzaCBpbiBzb21lIGluc3RhbmNlcywgcGFydGljdWxhcmx5 IEhvbGx5d29vZCBmaWxtcy4gV2UncmUgb2YgdGhlIGxhdHRlciBjYW1wLCBidXQg d2UgZmVlbCBkZS1qdWRkZXIgcHJvY2Vzc2luZyBjYW4gYmUgZWZmZWN0aXZlIGlu IHNvbWUgc2NlbmVzLiA8L3A+PHA+CgpBTVAgaGFzIGJlZW4gaW1wcm92ZWQgdGhp cyB5ZWFyLCBhbmQgaXQgc3VmZmVycyBmZXdlciBhcnRpZmFjdHMgdGhhbiB0aGUg dmVyc2lvbiB3ZSB0ZXN0ZWQgb24gdGhlIExOLVQ0NjcxRiBmcm9tIDIwMDcuIFRo ZSBpbmZhbW91cyAidHJpcGxlIGJhbGwgZWZmZWN0IiBzZWVtcyBncmVhdGx5IHRv bmVkIGRvd24sIGZvciBvbmUgdGhpbmcuIFdlIGxvb2tlZCBhdCBvbmUgZXhhbXBs ZSB3ZSBjaXRlZCBpbiB0aGUgNzFGIHJldmlldywgYSBkZWVwIHBhc3MgZHVyaW5n IGEgY29sbGVnZSBmb290YmFsbCBnYW1lIGJldHdlZW4gV2VzdCBWaXJnaW5pYSBh bmQgTG91aXN2aWxsZSwgYW5kIHRoaXMgdGltZSB0aGVyZSB3YXMgdmVyeSBsaXR0 bGUgYmx1cnJpbmcgYW5kIGVsb25nYXRpb24gb2YgdGhlIGJhbGwuIFdlIGFsc28g dHVybmVkIHRvIHRoZSBzYW1lIGhvY2tleSBtYXRjaCBiZXR3ZWVuIHRoZSBEdWNr cyBhbmQgdGhlIEtpbmdzIGFuZCBub3RpY2VkIGJsdXJyaW5nIG9mIHRoZSBwdWNr IG11Y2ggbGVzcyBmcmVxdWVudGx5LiBJdCB3YXMgc3RpbGwgdGhlcmUgaW4gc29t ZSBpbnN0YW5jZXMsIHN1Y2ggYXMgYSBmbGlwIHBhc3MgaW50byB0aGUgYWlyIHRo YXQgc3Bhbm5lZCBoYWxmIG9mIHRoZSByaW5rIGJlZm9yZSBsYW5kaW5nLCBidXQg aXQgd2FzIG11Y2ggbGVzcyBub3RpY2VhYmxlLiBPZiBjb3Vyc2UsIHRoZSBsZXZl bCBvZiBBTVAgbWFkZSBhIGJpZyBkaWZmZXJlbmNlLS13ZSBzYXcgbW9yZSBibHVy cmluZyBhbmQgYXJ0aWZhY3RzIGFyb3VuZCB0aGUgcHVjayBpbiBIaWdoIG1vZGUs IGZld2VyIGluIE1lZGl1bSwgYWJvdXQgdGhlIHNhbWUgaW4gTG93LCBhbmQgbm9u ZSBpbiBPZmYuIEZvciB0aGF0IHJlYXNvbiwgd2Ugc3RpbGwgcmVjb21tZW5kIHdh dGNoaW5nIGhvY2tleSwgYW5kIGluZGVlZCBhbGwgc3BvcnRzLCBpbiBPZmYgbW9k ZS4gPC9wPjxwPgoKQ29tcGFyaW5nIHRoZSBTYW1zdW5nIGFnYWluc3QgdGhlIFNv bnkgMTIwSHogTENELCB0aGUgU2Ftc3VuZyBzZWVtZWQgYSBiaXQgbGVzcyBwcm9u ZSB0byBhcnRpZmFjdHMsIGJ1dCB0aGUgU29ueSBhcHBlYXJlZCBsZXNzIHVubmF0 dXJhbGx5IHNtb290aC4gRHVyaW5nIHRoZSBvcGVuaW5nIG9mIDxpPlNwaWRlci1N YW48L2k+LCBmb3IgZXhhbXBsZSwgdGhlIGNhbWVyYSBxdWlja2x5IHBhbnMgb3Zl ciBhIG5ld3NzdGFuZCBhbmQgYSBoZWFkbGluZSBpbiA8aT5VU0EgVG9kYXk8L2k+ IChkb3VibGUtcGx1ZyEpIHRoYXQgcmVhZHMgIldoYXQgYSBjYXRjaCEiIHNob3dl ZCBzdHV0dGVyIGFuZCBhcnRpZmFjdHMgaW4gdGhlIFNvbnkgKGluIFN0YW5kYXJk IG1vZGUpIGFuZCBub25lIG9uIHRoZSBTYW1zdW5nIChpbiBhbnkgb2YgaXRzIG1v ZGVzKS4gVGhlIGNhbWVyYSB0aGVuIG1vdmVkIHRvIGZvbGxvdyBQZXRlciBQYXJr ZXIgb24gaGlzIHNjb290ZXIsIGFuZCB0aGUgU2Ftc3VuZyBsb29rZWQgbGlrZSB0 aGUgY2FtZXJhIHdhcyBvbiByYWlscywgd2hpbGUgdGhlIFNvbnkgYWxsb3dlZCBh IGxpdHRsZSBiaXQgb2YgdW5zdGVhZGluZXNzIHRoYXQgbWFkZSBmb3IgYSBtdWNo IG1vcmUgbmF0dXJhbCBsb29rIGluIHRoYXQgc2NlbmUuIExhdGVyLCB0aGUgY2Ft ZXJhIG9yYml0cyBQYXJrZXIncyBmYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl IHBhcmFkZSwgYW5kIHdlIHNhdyBhIHNvcnQgb2YgaGFsbyBlZmZlY3QgYXJvdW5k IGhpcyBoZWFkLiBUaGUgYnVpbGRpbmdzIGluIHRoZSBiYWNrZ3JvdW5kIGJlbnQg c2xpZ2h0bHkgbmVhciBoaXMgaGVhZCBhcyB0aGV5IG1vdmVkIGJ5LCBldmVuIGlu IHRoZSBTYW1zdW5nJ3MgTG93IG1vZGUsIGFsdGhvdWdoIHRoZXNlIGFydGlmYWN0 cyB3ZXJlIHdvcnNlIGluIE1lZGl1bSBhbmQgSGlnaC4gSW4gdGhpcyBjYXNlLCB0 aGUgU2Ftc3VuZydzIExvdyBhbmQgdGhlIFNvbnkncyBTdGFuZGFyZCB3ZXJlIHBy ZXR0eSBtdWNoIGluZGlzdGluZ3Vpc2hhYmxlLiA8L3A+PHA+CgpCb3RoIHNldHMg bG9va2VkIG11Y2ggYmV0dGVyIGluIHBhbnMgb3ZlciBuYXR1cmFsIGxhbmRzY2Fw ZXMgZnJvbSB0aGUgPGk+UGxhbmV0IEVhcnRoPC9pPiBCbHUtcmF5IGFuZCBpbiBz b21lIG90aGVyIG5vbi1Ib2xseXdvb2QgbW92aWUgbWF0ZXJpYWwsIGVzcGVjaWFs bHkgY29tcGFyZWQgd2l0aCB0aGUgbm9uLWRlLWp1ZGRlci1lcXVpcHBlZCBzZXRz IGluIHRoZSBjb21wYXJpc29uLiA8L3A+PHA+CgpXZSBhbHNvIHR1cm5lZCBBTVAg b2ZmLCBhbG9uZyB3aXRoIHRoZSBTb255J3MgZGUtanVkZGVyIHByb2Nlc3Npbmcs IGFuZCBzd2l0Y2hlZCBvdXIgUFMzIHRvIDEwODBwLzI0IG1vZGUuIFdlIHJlYWxs eSBjb3VsZG4ndCB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gMTA4MHAvMjQg YW5kIDEwODBwLzYwIG9uIGVpdGhlciBvZiB0aGUgc2V0cywgc28gd2Ugc3VzcGVj dCB0aGV5IGRvbid0IHBlcmZvcm0gdGhlIHBlcmZlY3QgNXggY29udmVyc2lvbiBm cm9tIDI0IGZyYW1lcyB0byAxMjAuIFNhbXN1bmcncyBlbmdpbmVlcnMgKGFsb25n IHdpdGggU29ueSdzKSBjbGFpbSB0aGUgNTJMTjY1MCBjYW4gcGVyZm9ybSB0aGlz IGNvbnZlcnNpb24sIGJ1dCBpZiBzbywgaXQgZG9lc24ndCBtYWtlIG11Y2ggZGlm ZmVyZW5jZS4gPC9wPjxwPgoKQSByZWZyZXNoIHJhdGUgMTIwSHogc2hvdWxkIGFs c28gY3V0IGRvd24gb24gYmx1ciBpbiBtb3Rpb24sIGluY3JlYXNpbmcgbW90aW9u IHJlc29sdXRpb24uIFdlIGNvbXBhcmVkIHRoZSA1MkxONjUwIHRvIHRoZSBTYW1z dW5nIExOMzJBNDUwLCBhIHN0YW5kYXJkIDYwSHogZGlzcGxheSwgYW5kIHdpdGgg QU1QIGluIExvdyBtb2RlIHRoZSBMTjY1MCBleGhpYml0ZWQgbGVzcyBibHVyIGlu IHRlc3QgZm9vdGFnZSBkZXNpZ25lZCB0byBleHBvc2UgaXQuIFRoZSBibHVyIHJl dHVybmVkIHdoZW4gd2UgdHVybmVkIE9mZiBBTVAsIHNvIHlvdSBjYW4ndCBnZXQg dGhlIGJsdXItcmVkdWN0aW9uIG9uIHRoaXMgc2V0IHdpdGhvdXQgZGUtanVkZGVy LiBUaGUgU29ueSBwZXJmb3JtZWQgYXQgYWJvdXQgdGhlIHNhbWUgbGV2ZWwgZm9y IHRoaXMgdGVzdCwgYW5kIG5laXRoZXIgd2FzIGFzIHNoYXJwIGFzIGVpdGhlciBv ZiB0aGUgcGxhc21hIGRpc3BsYXlzIG9yIHRoZSBTb255IFNYUkQuIEFzIHVzdWFs IHdlIGRpZG4ndCBub3RpY2UgYmx1cnJpbmcgaW4gcHJvZ3JhbSBtYXRlcmlhbCwg aG93ZXZlciwgaW5jbHVkaW5nIGR1cmluZyA8aT5TcGlkZXItTWFuPC9pPi4gPC9w PjxwPgoKQXMgd2UgZXhwZWN0IGZyb20gYW55IDEwODBwIExDRCwgdGhlIFNhbXN1 bmcgcmVzb2x2ZWQgZXZlcnkgbGluZSBvZiAxMDgwaSBhbmQgMTA4MHAgc291cmNl cywgYW5kIHVubGlrZSBtb3N0IHNldHMgaXQgcHJvcGVybHkgZGUtaW50ZXJsYWNl cyAxMDgwaSBmaWxtLWJhc2VkIHNvdXJjZXMgYXMgbG9uZyBhcyB5b3UgbGVhdmUg dGhlIGZpbG0gbW9kZSBlbmdhZ2VkLiA8L3A+PHA+Cgo8Yj5Vbmlmb3JtaXR5Ojwv Yj4gTENEIHdpbGwgYWx3YXlzIGJlIGF0IGEgZGlzYWR2YW50YWdlIGNvbXBhcmVk IHdpdGggcGxhc21hIGluIHRoaXMgZGVwYXJ0bWVudCwgYW5kIHRoZSBMTjUyQTY1 MCBpcyBubyBleGNlcHRpb24uIEl0cyBzY3JlZW4gd2FzIHJlbGF0aXZlbHkgdW5p Zm9ybSBmb3IgYW4gTENELCBidXQgdGhlcmUgd2FzIHN0aWxsIGEgYnJpZ2h0ZXIg c3BvdCB2aXNpYmxlIGluIHRoZSB1cHBlci1sZWZ0IGNvcm5lciBpbiBkYXJrIHNj ZW5lcyBvciBsZXR0ZXJib3ggYmFycywgYW5kIGluIG1pZC1kYXJrIGZpZWxkcyB3 ZSBzYXcgdGhhdCB0aGUgbGVmdCBhbmQgcmlnaHQgZWRnZXMgb2YgdGhlIHNjcmVl biBhcHBlYXJlZCBicmlnaHRlciB0aGFuIHRoZSBtaWRkbGUuIE1lYW53aGlsZSwg YXMgd2UgbWVudGlvbmVkIGFib3ZlLCB2aWV3aW5nIHRoZSBpbWFnZSBmcm9tIG9m ZiBhbmdsZSBsaWdodGVuZWQgdGhlIGJsYWNrIGFyZWFzIHNvbWV3aGF0LCByb2Ji aW5nIHNvbWUgcHVuY2ggZnJvbSBjb2xvcnMuIFRoZSBTb255IExDRCBsb3N0IGEg Yml0IGxlc3MgZGVwdGggb2YgYmxhY2sgZnJvbSBvZmYgYW5nbGUsIGFsdGhvdWdo IHdlIHN0aWxsIHByZWZlcnJlZCB0aGUgU2Ftc3VuZyBmcm9tIG5vbi1zd2VldC1z cG90IHNlYXRzIGJlY2F1c2UgaXQgZGlkbid0IGJlY29tZSBkaXNjb2xvcmVkLiBX ZSd2ZSBzZWVuIHJlcG9ydHMgb24gQVZTIGZvcnVtIHNob3dpbmcgcHVycGxpc2gg ZGlzY29sb3JhdGlvbiBmcm9tIG9mZiBhbmdsZSBvbiBzb21lIDY1MCBzZXJpZXMg bW9kZWxzLCBidXQgd2UgZGlkbid0IHNlZSBpdCBvbiBvdXIgcmV2aWV3IHNhbXBs ZS48L3A+PHA+Cgo8Yj5CcmlnaHQgbGlnaHRpbmc6PC9iPiBUaGUgTE41MkE2NTAg aGFzIGEgc2ltaWxhciB0eXBlIG9mIHNoaW55IHNjcmVlbiBhcyBsYXN0IHllYXIn cyBTYW1zdW5nIExDRHMsIGFuZCBjb21wYXJlZCB3aXRoIGEgbW9yZSBtYXR0ZSBM Q0Qgc2NyZWVuLCBzdWNoIGFzIHRoZSBvbmUgb24gdGhlIFNvbnkgS0RMLTQ2WEJS NCwgaXQgcmVmbGVjdHMgcXVpdGUgYSBiaXQgb2Ygcm9vbSBsaWdodGluZy4gV2l0 aCB0aGUgd2luZG93cyBvcGVuIGR1cmluZyB0aGUgZGF5IGFuZCBzaGluaW5nIG9u IHRoZSBzY3JlZW4sIHdlIGNvdWxkIGNsZWFybHkgbWFrZSBvdXQgb3VyIHJlZmxl Y3Rpb24gaW4gdGhlIHNjcmVlbiwgZXNwZWNpYWxseSBkdXJpbmcgZGFyayBzY2Vu ZXMsIGFuZCBpdCB3YXMgYSBnb29kIGRlYWwgbW9yZSBkaXN0cmFjdGluZyB0aGFu IG9uIHRoZSBTb255IG9yIHRoZSBQaW9uZWVyLiBTYW1zdW5nIGNsYWltcyB0aGUg c2NyZWVuIGRvZXMgaW5jcmVhc2UgY29udHJhc3QgcmF0aW8gYW5kIHByb2R1Y2Ug ZGVlcGVyIGJsYWNrIGxldmVscywgd2hpY2ggbWlnaHQgYmUgdHJ1ZSBnaXZlbiB0 aGUgTE41MkE2NTAncyBibGFjayBsZXZlbCBwZXJmb3JtYW5jZSwgYnV0IHdlIHN0 aWxsIGZvdW5kIG91cnNlbHZlcyBkaXN0cmFjdGVkIGJ5IHRoZSBzaGluZSBpbiBi cmlnaHQgZW52aXJvbm1lbnRzIHdoaWxlIHdhdGNoaW5nIGRhcmsgc2NlbmVzLjwv cD48cD5TaW5jZSB0aGUgcHVibGljYXRpb24gb2YgdGhpcyByZXZpZXcsIFNhbXN1 bmcgaGFzIHJlbGVhc2VkIGEgdmVyc2lvbiBvZiB0aGlzIFRWLCBwYXJ0IG9mIHRo ZSBMTkE2MzAgc2VyaWVzLCB3aXRoIGEgbWF0dGUgc2NyZWVuIGluc3RlYWQgb2Yg dGhlIHNoaW55IG9uZS4gV2UgYXNzdW1lIGl0IHdpbGwgY3V0IGRvd24gb24gdGhv c2UgYm90aGVyc29tZSByZWZsZWN0aW9ucywgYWx0aG91Z2ggd2UgZGlkbid0IHJl dmlldyBpdC48L3A+PHA+Cgo8Yj5TdGFuZGFyZC1kZWZpbml0aW9uOjwvYj4gVGhl IDUyTE42NTAgcGVyZm9ybWVkIHF1aXRlIHdlbGwgd2l0aCBzdGFuZGFyZC1kZWYs IGFuZCBhbHRob3VnaCBpdCBjb3VsZG4ndCBxdWl0ZSByZXNvbHZlIGV2ZXJ5IGxp bmUgb2YgdGhlIERWRCBmb3JtYXQgcGVyZmVjdGx5LCB3ZSBub3RpY2VkIG5vIHVu dG93YXJkIHNvZnRuZXNzIG9uIHByb2dyYW0gbWF0ZXJpYWwuIFRoZSBTYW1zdW5n IGRpZCBhIHN1cGVyaW9yIGpvYiBvZiByZW1vdmluZyBqYWdnaWVzIGZyb20gZGlh Z29uYWwgZWRnZXMsIGFuZCBpdHMgbm9pc2UgcmVkdWN0aW9uIHdhcyB2ZXJ5IGVm ZmVjdGl2ZSBpbiB0aGUgbG93LXF1YWxpdHkgc2hvdHMgb2Ygc2t5IGFuZCBzdW5z ZXRzLiA8L3A+PHA+Cgo8Yj5QQzo8L2I+IFZpYSBib3RoIFZHQSBhbmQgSERNSSwg dGhlIFNhbXN1bmcgTE41MkE2NTAgbWFkZSBhIHN1cGVyYiBjb21wdXRlciBtb25p dG9yLiBJdCByZXNvbHZlZCBldmVyeSBkZXRhaWwgb2YgMSw5MjB4MSwwODAgc291 cmNlcyBhY2NvcmRpbmcgdG8gRGlzcGxheU1hdGUsIGFuZCB0ZXh0IGxvb2tlZCBj cmlzcCBhbmQgd2VsbC1kZWZpbmVkLiA8L3A+PHA+CjwhLS0gZ2Vla2JveCAtLT4K PGRpdiBhbGlnbj0iY2VudGVyIj4KPGRpdiBjbGFzcz0idTIiIHN0eWxlPSJ3aWR0 aDogMzg5cHg7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmctYm90dG9tOiAzcHgi PjxiPkdlZWsgYm94PC9iPjwvZGl2Pgo8dGFibGUgd2lkdGg9IjM4OSIgYmdjb2xv cj0iIzAwMDAwMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBib3Jk ZXI9IjAiPgo8dHIgYmdjb2xvcj0iI0ZGRkZGRiI+CiAgIDx0ZD48c3BhbiBjbGFz cz0idjEiPjxiPlRFU1Q8L2I+PC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGlnbj0iY2Vu dGVyIj48c3BhbiBjbGFzcz0idjEiPjxiPlJFU1VMVDwvYj48L3NwYW4+PC90ZD4K ICAgPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJ2MSI+PGI+U0NPUkU8 L2I+PC9zcGFuPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRkZGRkZGIj4KICAg PHRkPjxzcGFuIGNsYXNzPSJ2MSI+QmVmb3JlIGNvbG9yIHRlbXAgKDIwLzgwKTwv c3Bhbj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYx Ij43MDY1LzY5NDk8L3NwYW4+PC90ZD4KICAgPHRkIGFsaWduPSJjZW50ZXIiPjxz cGFuIGNsYXNzPSJ2MSI+PGIgc3R5bGU9ImNvbG9yOiAjNjY2Ij5BdmVyYWdlPC9i Pjwvc3Bhbj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI0ZGRkZGRiI+CiAgIDx0 ZD48c3BhbiBjbGFzcz0idjEiPkFmdGVyIGNvbG9yIHRlbXA8L3NwYW4+PC90ZD4K ICAgPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJ2MSI+NjQ2OS82NTQ3 PC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFzcz0i djEiPjxiIHN0eWxlPSJjb2xvcjogIzA5MyI+R29vZDwvYj48L3NwYW4+PC90ZD4K PC90cj4KPHRyIGJnY29sb3I9IiNGRkZGRkYiPgogICA8dGQ+PHNwYW4gY2xhc3M9 InYxIj5CZWZvcmUgZ3JheXNjYWxlIHZhcmlhdGlvbjwvc3Bhbj48L3RkPgogICA8 dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj4rLy0gNDA1Szwvc3Bh bj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj48 YiBzdHlsZT0iY29sb3I6ICM2NjYiPkF2ZXJhZ2U8L2I+PC9zcGFuPjwvdGQ+Cjwv dHI+Cjx0ciBiZ2NvbG9yPSIjRkZGRkZGIj4KICAgPHRkPjxzcGFuIGNsYXNzPSJ2 MSI+QWZ0ZXIgZ3JheXNjYWxlIHZhcmlhdGlvbjwvc3Bhbj48L3RkPgogICA8dGQg YWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj4rLy0gMTE4Szwvc3Bhbj48 L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj48YiBz dHlsZT0iY29sb3I6ICM2NjYiPkF2ZXJhZ2U8L2I+PC9zcGFuPjwvdGQ+CjwvdHI+ Cjx0ciBiZ2NvbG9yPSIjRkZGRkZGIj4KICAgPHRkPjxzcGFuIGNsYXNzPSJ2MSI+ Q29sb3Igb2YgcmVkICh4L3kpPC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGlnbj0iY2Vu dGVyIj48c3BhbiBjbGFzcz0idjEiPjAuNjQzLzAuMzM0PC9zcGFuPjwvdGQ+CiAg IDx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFzcz0idjEiPjxiIHN0eWxlPSJj b2xvcjogIzA5MyI+R29vZDwvYj48L3NwYW4+PC90ZD4KPC90cj4KPHRyIGJnY29s b3I9IiNGRkZGRkYiPgogICA8dGQ+PHNwYW4gY2xhc3M9InYxIj5Db2xvciBvZiBn cmVlbjwvc3Bhbj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xh c3M9InYxIj4wLjI4LzAuNjA2PC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGlnbj0iY2Vu dGVyIj48c3BhbiBjbGFzcz0idjEiPjxiIHN0eWxlPSJjb2xvcjogIzA5MyI+R29v ZDwvYj48L3NwYW4+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNGRkZGRkYiPgog ICA8dGQ+PHNwYW4gY2xhc3M9InYxIj5Db2xvciBvZiBibHVlPC9zcGFuPjwvdGQ+ CiAgIDx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFzcz0idjEiPjAuMTQ2LzAu MDU0PC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFz cz0idjEiPjxiIHN0eWxlPSJjb2xvcjogIzA5MyI+R29vZDwvYj48L3NwYW4+PC90 ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNGRkZGRkYiPgogICA8dGQ+PHNwYW4gY2xh c3M9InYxIj5PdmVyc2Nhbjwvc3Bhbj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRl ciI+PHNwYW4gY2xhc3M9InYxIj4wLjAlPC9zcGFuPjwvdGQ+CiAgIDx0ZCBhbGln bj0iY2VudGVyIj48c3BhbiBjbGFzcz0idjEiPjxiIHN0eWxlPSJjb2xvcjogIzA5 MyI+R29vZDwvYj48L3NwYW4+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNGRkZG RkYiPgogICA8dGQ+PHNwYW4gY2xhc3M9InYxIj5EZWZlYXRhYmxlIGVkZ2UgZW5o YW5jZW1lbnQ8L3NwYW4+PC90ZD4KICAgPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFu IGNsYXNzPSJ2MSI+WTwvc3Bhbj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+ PHNwYW4gY2xhc3M9InYxIj48YiBzdHlsZT0iY29sb3I6ICMwOTMiPkdvb2Q8L2I+ PC9zcGFuPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRkZGRkZGIj4KICAgPHRk PjxzcGFuIGNsYXNzPSJ2MSI+NDgwaSAyOjMgcHVsbC1kb3duLCAyNCBmcHM8L3Nw YW4+PC90ZD4KICAgPHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuIGNsYXNzPSJ2MSI+ WTwvc3Bhbj48L3RkPgogICA8dGQgYWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9 InYxIj48YiBzdHlsZT0iY29sb3I6ICMwOTMiPkdvb2Q8L2I+PC9zcGFuPjwvdGQ+ CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRkZGRkZGIj4KICAgPHRkPjxzcGFuIGNsYXNz PSJ2MSI+MTA4MGkgdmlkZW8gcmVzb2x1dGlvbjwvc3Bhbj48L3RkPgogICA8dGQg YWxpZ249ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj5QYXNzPC9zcGFuPjwvdGQ+ CiAgIDx0ZCBhbGlnbj0iY2VudGVyIj48c3BhbiBjbGFzcz0idjEiPjxiIHN0eWxl PSJjb2xvcjogIzA5MyI+R29vZDwvYj48L3NwYW4+PC90ZD4KPC90cj4KPHRyIGJn Y29sb3I9IiNGRkZGRkYiPgogICA8dGQ+PHNwYW4gY2xhc3M9InYxIj4xMDgwaSBm aWxtIHJlc29sdXRpb248L3NwYW4+PC90ZD4KICAgPHRkIGFsaWduPSJjZW50ZXIi PjxzcGFuIGNsYXNzPSJ2MSI+UGFzczwvc3Bhbj48L3RkPgogICA8dGQgYWxpZ249 ImNlbnRlciI+PHNwYW4gY2xhc3M9InYxIj48YiBzdHlsZT0iY29sb3I6ICMwOTMi Pkdvb2Q8L2I+PC9zcGFuPjwvdGQ+CjwvdHI+CjwvdGFibGU+PC9kaXY+CjwhLS0g L2dlZWtib3ggLS0+Cjxicj4KPCEtLSBqdWljZSBib3ggLS0+CjxkaXYgYWxpZ249 ImNlbnRlciI+CjxkaXYgY2xhc3M9ImEyIiBzdHlsZT0id2lkdGg6Mzg5cHg7dGV4 dC1hbGlnbjpsZWZ0O3BhZGRpbmctYm90dG9tOjNweDsiPjxiPkp1aWNlIGJveDwv Yj48L2Rpdj4KPHRhYmxlIHdpZHRoPSIzODkiIGJnY29sb3I9IiM5OTk5OTkiIGNl bGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYm9yZGVyPSIwIj4KCTx0ciBi Z2NvbG9yPSIjRTVFNUU1Ij4KCQk8dGQgcm93c3Bhbj0iMiI+PGIgc3R5bGU9ImZv bnQtd2VpZ2h0OmJvbGQ7IiBjbGFzcz0idjEiPlNhbXN1bmcgTE41MkE2NTA8L2I+ PC90ZD4KCQk8dGQgYWxpZ249ImNlbnRlciIgY29sc3Bhbj0iMyI+PGIgc3R5bGU9 ImZvbnQtd2VpZ2h0OmJvbGQ7IiBjbGFzcz0idjEiPlBpY3R1cmUgc2V0dGluZ3M8 L2I+PC90ZD4KCTwvdHI+Cgk8dHIgYmdjb2xvcj0iI0U1RTVFNSIgYWxpZ249ImNl bnRlciI+CgkJPHRkPjxiIHN0eWxlPSJmb250LXdlaWdodDpib2xkOyIgY2xhc3M9 InYxIj5EZWZhdWx0PC9iPjwvdGQ+CgkJPHRkPjxiIHN0eWxlPSJmb250LXdlaWdo dDpib2xkOyIgY2xhc3M9InYxIj5DYWxpYnJhdGVkPC9iPjwvdGQ+CgkJPHRkPjxi IHN0eWxlPSJmb250LXdlaWdodDpib2xkOyIgY2xhc3M9InYxIj5Qb3dlciBTYXZl PC9iPjwvdGQ+Cgk8L3RyPgoJPHRyIGJnY29sb3I9IiNGRkZGRkYiIGFsaWduPSJy aWdodCI+CgkJPHRkIGFsaWduPSJsZWZ0Ij48c3BhbiBjbGFzcz0idjEiPlBpY3R1 cmUgb24gKHdhdHRzKTwvc3Bhbj48L3RkPgoJCTx0ZD48c3BhbiBjbGFzcz0idjEi PjIxOS45PC9zcGFuPjwvdGQ+CgkJPHRkPjxzcGFuIGNsYXNzPSJ2MSI+MTQwLjg8 L3NwYW4+PC90ZD4KCQk8dGQ+PHNwYW4gY2xhc3M9InYxIj4xMTQuMDc8L3NwYW4+ PC90ZD4KCTwvdHI+Cgk8dHIgYmdjb2xvcj0iI0ZGRkZGRiIgYWxpZ249InJpZ2h0 Ij4KCQk8dGQgYWxpZ249ImxlZnQiPjxzcGFuIGNsYXNzPSJ2MSI+UGljdHVyZSBv biAod2F0dHMvc3EuIGluY2gpPC9zcGFuPjwvdGQ+CgkJPHRkPjxzcGFuIGNsYXNz PSJ2MSI+MC4xOTwvc3Bhbj48L3RkPgoJCTx0ZD48c3BhbiBjbGFzcz0idjEiPjAu MTI8L3NwYW4+PC90ZD4KCQk8dGQ+PHNwYW4gY2xhc3M9InYxIj4wLjE8L3NwYW4+ PC90ZD4KCTwvdHI+Cgk8dHIgYmdjb2xvcj0iI0ZGRkZGRiIgYWxpZ249InJpZ2h0 Ij4KCQk8dGQgYWxpZ249ImxlZnQiPjxzcGFuIGNsYXNzPSJ2MSI+U3RhbmRieSAo d2F0dHMpPC9zcGFuPjwvdGQ+CgkJPHRkPjxzcGFuIGNsYXNzPSJ2MSI+MS4yPC9z cGFuPjwvdGQ+CgkJPHRkPjxzcGFuIGNsYXNzPSJ2MSI+MS4yPC9zcGFuPjwvdGQ+ CgkJPHRkPjxzcGFuIGNsYXNzPSJ2MSI+MS4yPC9zcGFuPjwvdGQ+Cgk8L3RyPgoJ PHRyIGJnY29sb3I9IiNGRkZGRkYiIGFsaWduPSJyaWdodCI+CgkJPHRkIGFsaWdu PSJsZWZ0Ij48c3BhbiBjbGFzcz0idjEiPkNvc3QgcGVyIHllYXI8L3NwYW4+PC90 ZD4KCQk8dGQ+PHNwYW4gY2xhc3M9InYxIj4kNjguODE8L3NwYW4+PC90ZD4KCQk8 dGQ+PHNwYW4gY2xhc3M9InYxIj4kNDQuMzI8L3NwYW4+PC90ZD4KCQk8dGQ+PHNw YW4gY2xhc3M9InYxIj4kMzYuMDU8L3NwYW4+PC90ZD4KCTwvdHI+Cgk8dHIgYmdj b2xvcj0iI0U1RTVFNSI+PHRkIGNvbHNwYW49IjQiPjxpbWcgc3JjPSIvYi5naWYi IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGFsdD0iIiAvPjwvdGQ+PC90cj4KCTx0ciBi Z2NvbG9yPSIjRkZGRkZGIj4KCQk8dGQ+PGIgc3R5bGU9ImZvbnQtd2VpZ2h0OmJv bGQ7IiBjbGFzcz0idjEiPlNjb3JlIChjb25zaWRlcmluZyBzaXplKTwvYj48L3Rk PgoJCTx0ZCBhbGlnbj0iY2VudGVyIiBjb2xzcGFuPSIzIj48YiBzdHlsZT0iY29s b3I6IzA5Mztmb250LXdlaWdodDpib2xkOyIgY2xhc3M9InYxIj5Hb29kPC9iPjwv dGQ+Cgk8L3RyPgoJPHRyIGJnY29sb3I9IiNGRkZGRkYiPgoJCTx0ZD48YiBzdHls ZT0iZm9udC13ZWlnaHQ6Ym9sZDsiIGNsYXNzPSJ2MSI+U2NvcmUgKG92ZXJhbGwp PC9iPjwvdGQ+CgkJPHRkIGFsaWduPSJjZW50ZXIiIGNvbHNwYW49IjMiPjxiIHN0 eWxlPSJjb2xvcjojNjY2O2ZvbnQtd2VpZ2h0OmJvbGQ7IiBjbGFzcz0idjEiPkF2 ZXJhZ2U8L2I+PC90ZD4KCTwvdHI+CjwvdGFibGU+CjwvZGl2Pgo8IS0tIC9qdWlj ZSBib3ggLS0+Cjxicj4KPC9wPgoJCTwvZGl2PgoJPC9kaXY+CjwhLS0gbXBfdHJh bnNfZGlzYWJsZV9lbmQgLS0+Cjxicj48YnI+CjwvcD4KIAoKIAoKCgoKPC9kaXY+ Cgo8IS0tIEU6MFlHIC0tPgoKCgoKCgoKCgo8IS0tIEI6MFlGIC0tPgoKCgoKCgoK PGRpdiBpZD0idGFiYmVkLXByb2R1Y3RyZXNlYXJjaCI+Cgo8ZGl2IGlkPSJnbG9z c2FyeSI+CgoKCgoKPCEtLSBCOjBZOSAtLT4KCgoKCgoKPGgyPkZlYXR1cmVkIFRl cm1zPC9oMj4KCjx1bD4KIAo8bGk+PGEgaHJlZj0iamF2YXNjcmlwdDp3aW5vcGVu Z2xkKCcxMDg3MzQwNTY2MzAzJywnYWJjYXQwMTAxMDAxJywnY2F0MTIwODAnKSI+ R2xvc3Nhcnk8L2E+PC9saT4KCjxsaT48YSBocmVmPSJqYXZhc2NyaXB0Ondpbm9w ZW5nbGQoJzEwNDMzNjMxMjc4ODgnLCdhYmNhdDAxMDEwMDEnLCdjYXQxMjA4MCcp Ij5UZWxldmlzaW9ucyBHbG9zc2FyeTwvYT48L2xpPgoKCjwvdWw+CgoKCgoKPCEt LSBFOjBZOSAtLT4KPC9kaXY+CjxkaXYgaWQ9ImZhcXMiPgoKCjwvZGl2PjwhLS1m YXFzLS0+CjxkaXYgaWQ9ImZlYXR1cmVkZ3VpZGVzIj4KCgoKCjxoMj5GZWF0dXJl ZCBHdWlkZXM8L2gyPgo8dWw+CgoKCjxsaT4KPGEgaHJlZj0nb2xzcGFnZS5qc3A/ aWQ9Y2F0MTIwNzcmdHlwZT1wYWdlJmd1aWRlSUQ9MTEzMDM0MjczNTE3MCZjYXRl Z29yeVJlcD1hYmNhdDAxMDAwMDAnPkludHJvZHVjaW5nIE1hZ25vbGlhIEhvbWUg VGhlYXRlciBhdCBCZXN0IEJ1eTwvYT4KPC9saT4KCiAKCgoKPGxpPgo8YSBocmVm PSdvbHNwYWdlLmpzcD9pZD1jYXQxMjA3NyZ0eXBlPXBhZ2UmZ3VpZGVJRD0xMTEw MjY1OTYwMTAxJmNhdGVnb3J5UmVwPWFiY2F0MDEwMDAwMCc+SG9tZSBUaGVhdGVy IEluc3RhbGxhdGlvbiBTZXJ2aWNlczwvYT4KPC9saT4KCiAKCgoKPGxpPgo8YSBo cmVmPSdvbHNwYWdlLmpzcD9pZD1jYXQxMjA3NyZ0eXBlPXBhZ2UmZ3VpZGVJRD0x MDY3MzkxNDI3Njc0JmNhdGVnb3J5UmVwPWFiY2F0MDEwMDAwMCc+SERUViBIZWFk cXVhcnRlcnM8L2E+CjwvbGk+CgogCgoKPC91bD4KCjwvZGl2PgoKPGRpdiBjbGFz cz0iY2xlYXIiPjwvZGl2Pgo8L2Rpdj4KCjwhLS0gRTowWUYgLS0+CgoKPC9kaXY+ CgoKCgo8IS0tIEU6MFlLIC0tPgoKPC9kaXY+CjxkaXYgaWQ9InNlcnZpY2VzY29s Ij48IS0tIHJpZ2h0IGhhbmQgY29sdW1uIC0tPgoKCjwhLS0gQjowWkIgLS0+Cgo8 IS0tIHB0MTUgLS0+Cgo8ZGl2IGNsYXNzPSJibHVlYm94ZnJhbWUiPjwhLS0gY29u ZGl0aW9uYWwgcHNwIGJveCAtLT4KPGRpdiBjbGFzcz0icHNwY29udGVudCI+Cjxk aXYgY2xhc3M9InB0MSI+CjxoMz5TZXJ2aWNlIFBsYW5zPC9oMz48IS0tIHB0NTEg LS0+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwdDIiPgo8YSBocmVmPSJqYXZhc2NyaXB0 OmZuY2hvb3NlU3RhdGUoJzEyMTgwMDk3OTA5MzknLCAnODk2MTI1MScsJ2NpZCcs ICcxMjAyNjQ5NDI0MTU3JywgJzg3NDkyODcnLCdjYXQxMzUwOCcpIj4KPHA+PGlt ZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb20vQmVzdEJ1eV9VUy9lbl9V Uy9pbWFnZXMvZ2xvYmFsL21pc2MvaWNvbl9zZXJ2aWNlcGxhbnMuZ2lmIiBhbGln bj0ibGVmdCI+UHJvdGVjdCB5b3VyIHByb2R1Y3Qgd2l0aCBhIEJlc3QgQnV5IHNl cnZpY2UgcGxhbi48L3A+PCEtLSBwdDE2IC0tPgo8L2E+CjwvZGl2Pgo8ZGl2IGNs YXNzPSJwdDMiPgo8IS0tIHB0NTIgLS0+CjwvZGl2Pgo8L2Rpdj4KPC9kaXY+Cgo8 IS0tIHB0MTcgLS0+CjwhLS1wZXJmb3JtYW5jZSBwbGFuIHNlY3Rpb24gZW5kcyBo ZXJlLS0+CjwhLS1EaXNwbGF5IG9mIERORCBhdHRyaWJ1dGVzIHN0YXJ0cyBoZXJl LS0+CgoKPCEtLSBCOnB0MTggLS0+CjxkaXYgY2xhc3M9ImJsdWVib3hmcmFtZSI+ Cgk8aDM+SW5zdGFsbGF0aW9uIGFuZCBTZXJ2aWNlczwvaDM+Cgk8ZGl2IGNsYXNz PSJwc3Bjb250ZW50Ij4KCQk8cCBjbGFzcz0ibGVmdGNvbCI+CiAgICAgIDxhIGhy ZWYgPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21jYXQxMzgxMDAwNTAwMjQmdHlw ZT1jYXRlZ29yeSZ0eXBlPWNhdGVnb3J5IiBvbmNsaWNrPSJidWlsZGNvbnRleHQo dGhpcykiPjxpbWcgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tL0Jlc3RC dXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9taXNjL2ljb25fc2VydmljZV9ob21l dGhlYXRlci5naWYiIHdpZHRoPSI1NCIgaGVpZ2h0PSI1NCIgYm9yZGVyPSIwIiAv PjwvYT4KICAgIDwvcD4KCQk8cCBjbGFzcz0icmlnaHRjb2wiPgogICAgICA8YSBo cmVmID0gIi9zaXRlL29sc3BhZ2UuanNwP2lkPXBjbWNhdDEzODEwMDA1MDAyNCZ0 eXBlPWNhdGVnb3J5IiBvbmNsaWNrPSJidWlsZGNvbnRleHQodGhpcykiPkxldCB1 cyBpbnN0YWxsIGl0ISBXZSdsbCBnZXQgeW91ciBob21lIHRoZWF0ZXIgc3lzdGVt IHVwICYgcnVubmluZzwvYT4uCiAgICA8L3A+CgkJPGRpdiBjbGFzcz0iY2xlYXIi PjwvZGl2PgoJPC9kaXY+CjwvZGl2PgoKCgo8ZGl2IGlkPSJzYW51c19tb3VudF9m aW5kZXIiIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjttYXJnaW4tdG9wOjVweDtkaXNw bGF5Om5vbmU7d2lkdGg6MTY3cHg7aGVpZ2h0OjU3cHg7Ym9yZGVyOjFweCBzb2xp ZCAjY2NjO2JhY2tncm91bmQ6dXJsKCdodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29t L0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2Fibi8yMDA4L3R2di9wY29uL21vdW50 X2ZpbmRlcl9iZy5naWYnKSB0b3AgcmlnaHQgcmVwZWF0LXg7IiBvbmNsaWNrPSJq YXZhc2NyaXB0OnRvcEhhdFBvcCgnaHR0cDovL21mMS5iZXN0YnV5LnNlbGVjdGlv bmFzc2lzdGFudC5jb20vJywnODAwJywnNzAwJyk7Ij4KIDxkaXYgc3R5bGU9Im1h cmdpbi10b3A6MzZweDttYXJnaW4tbGVmdDoyMHB4O2ZvbnQtc2l6ZTo5cHg7Ij48 YSBocmVmPSJqYXZhc2NyaXB0OnRvcEhhdFBvcCgnaHR0cDovL21mMS5iZXN0YnV5 LnNlbGVjdGlvbmFzc2lzdGFudC5jb20nLCc4MDAnLCc3MDAnKTsiIG5hbWU9IiZs aWQ9bW91bnRfZmluZGVyX2JsdWVib3giPk1vdW50cyB0aGF0IGZpdCB0aGlzIFRW JiMxNjA7JiM4MjUwOzwvYT48L2Rpdj4KPC9kaXY+IAoKPHNjcmlwdCB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPgoJaWYgKHR5cGVvZihwYXJlbnRDYXQpID09ICdzdHJp bmcnICYmIHBhcmVudENhdCA9PSAnYWJjYXQwMTAxMDAxJykKCQlkb2N1bWVudC5n ZXRFbGVtZW50QnlJZCgnc2FudXNfbW91bnRfZmluZGVyJykuc3R5bGUuZGlzcGxh eSA9ICdibG9jayc7Cjwvc2NyaXB0PgoKPCEtLSBFOnB0MTggLS0+CgoKPCEtLURp c3BsYXkgb2YgRE5EIGF0dHJpYnV0ZXMgZW5kcyBoZXJlLS0+CjwhLS0gcHQyNiAt LT4KPCEtLURpc3BsYXkgb2YgdXBfc2VsbCBwcm9kdWN0cyBzdGFydHMgaGVyZS0t PgoKCgoKPCEtLSBCOjBYVCAtLT4KCgoKCgoKCgoKCgoKCgogIAogIAoKICAKPGRp diBjbGFzcz0iYmx1ZWJveGZyYW1lIj4KPGRpdiBjbGFzcz0icHJvZGFjY2Vzc29y eWNvbnRlbnQiPgo8ZGl2IGNsYXNzPSJwdDEiPgo8aDM+UmVsYXRlZCBQcm9kdWN0 czwvaDM+PCEtLSBwdDI3IC0tPgo8L2Rpdj4KICAKCiAgCgoKCgo8ZGl2IGNsYXNz PSJwcm9kYWNjZXNzb3J5Ij4KCjxkaXYgY2xhc3M9InByb2RpbWFnZSI+PGEgaHJl Zj0iL3NpdGUvb2xzcGFnZS5qc3A/c2t1SWQ9OTk5OTExMjMwMDA1MDAyNiZhbXA7 dHlwZT1wcm9kdWN0JmFtcDtpZD1wY21wcmQxMTI0MDAwNTAwMjYiIG5hbWU9IiZs aWQ9dXBfOTk5OTExMjMwMDA1MDAyNiI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMu YmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9pbWFnZXMvcHJvZHVjdHMvOTk5OS85 OTk5OTAvcGNtcHJkMTEyNDAwMDUwMDI2X3MuZ2lmIiBhbHQ9IiIgYm9yZGVyPSIw IiBhbGlnbj0iY2VudGVyIj48L2E+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdGV4 dCI+Cgo8YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9za3VJZD05OTk5MTEyMzAw MDUwMDI2JmFtcDt0eXBlPXByb2R1Y3QmYW1wO2lkPXBjbXByZDExMjQwMDA1MDAy NiIgbmFtZT0iJmxpZD11cF85OTk5MTEyMzAwMDUwMDI2Ij4KCgoKNDEmcXVvdDsm IzE1MDs2MCZxdW90OyBUaWx0IE1vdW50aW5nIFBhY2thZ2U8L2E+IAogIAoKCgoK PCEtLSBCOjBaVCAtLT4KCgoKCgoKCgoKPCEtLSBCOjBaUiAtLT4KCjxkaXYgY2xh c3M9InNhbGUiPgpPdXIgUHJpY2U6Cgo8IS0tIEI6MFpVIC0tPgoKCgokMzk5Ljk4 Cgo8IS0tIEU6MFpVIC0tPgo8L2Rpdj4KCgo8IS0tIEU6MFpSIC0tPgoKPCEtLSBF OjBaVCAtLT4KPC9kaXY+ICAKPC9kaXY+ICAKCjxkaXYgY2xhc3M9IiIgc3R5bGU9 ImNsZWFyOmJvdGg7Ij48YnI+PC9kaXY+CgogIAoKICAKICAKPC9kaXY+CjwvZGl2 PgogIAogIAogIAoKPCEtLSBFOjBYVCAtLT4KCjwhLS1EaXNwbGF5IG9mIHVwX3Nl bGwgcHJvZHVjdHMgZW5kcyBoZXJlLS0+CjwhLS1EaXNwbGF5IG9mIGNyb3NzX3Nl bGwgcHJvZHVjdHMgc3RhcnRzIGhlcmUtLT4KCgoKCjwhLS0gQjowWFQgLS0+CgoK CgoKCgoKCgoKCgoKICAKICAKCiAgCjxkaXYgY2xhc3M9ImJsdWVib3hmcmFtZSI+ CjxkaXYgY2xhc3M9InByb2RhY2Nlc3Nvcnljb250ZW50Ij4KPGRpdiBjbGFzcz0i cHQxIj4KPGgzPllvdSBtYXkgYWxzbyBsaWtlOjwvaDM+PCEtLSBwdDUyIC0tPgo8 L2Rpdj4KICAKCiAgCgoKCgo8ZGl2IGNsYXNzPSJwcm9kYWNjZXNzb3J5Ij4KCjxk aXYgY2xhc3M9InByb2RpbWFnZSI+PGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/ c2t1SWQ9OTI5MzU3OSZhbXA7dHlwZT1wcm9kdWN0JmFtcDtpZD0xMjE4MDc2MDgy ODY5IiBuYW1lPSImbGlkPWNyb3NzXzkyOTM1NzkiPjxpbWcgc3JjPSJodHRwOi8v aW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvaW1hZ2VzL3Byb2R1Y3Rz LzkyOTMvOTI5MzU3OV9zLmdpZiIgYWx0PSI5MjkzNTc5IEZyb250IFRodW1ibmFp bCIgYm9yZGVyPSIwIiBoZWlnaHQ9IjM4LjAiIHdpZHRoPSI1NC4wIiBhbGlnbj0i Y2VudGVyIj48L2E+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJwcm9kdGV4dCI+Cgo8YSBo cmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9za3VJZD05MjkzNTc5JmFtcDt0eXBlPXBy b2R1Y3QmYW1wO2lkPTEyMTgwNzYwODI4NjkiIG5hbWU9IiZsaWQ9Y3Jvc3NfOTI5 MzU3OSI+CgoKClNhbXN1bmcgLSA0NiIgQ2xhc3MgLyAxMDgwcCAvIDI0MEh6IC8g TENELUxFRCBIRFRWPC9hPiAKPHNwYW4gY2xhc3M9Im1vZGVsbnVtYmVyIj5VTjQ2 QjgwMDA8L3NwYW4+CiAgCgoKCgo8IS0tIEI6MFpUIC0tPgoKCgoKCgoKCgo8IS0t IEI6MFpSIC0tPgoKPGRpdiBjbGFzcz0icmVncHJpY2UiPgpSZWcuIFByaWNlOgoK PCEtLSBCOjBaVSAtLT4KCgoKCiQzLDE5OS45OQoKPCEtLSBFOjBaVSAtLT4KPC9k aXY+CjxkaXYgY2xhc3M9InlvdXNhdmUiPgoKCllvdSBTYXZlOgoKJDYwMC4wMDwv ZGl2Pgo8ZGl2IGNsYXNzPSJzYWxlIj4KU2FsZToKCjwhLS0gQjowWlUgLS0+CgoK CiQyLDU5OS45OQoKPCEtLSBFOjBaVSAtLT4KPC9kaXY+CgoKPCEtLSBFOjBaUiAt LT4KCjwhLS0gRTowWlQgLS0+CjwvZGl2PiAgCjwvZGl2PiAgCgo8ZGl2IGNsYXNz PSJwZHBociIgc3R5bGU9ImNsZWFyOmJvdGg7Ij48aHIgLz48L2Rpdj4KCiAgCgog IAoKCgoKPGRpdiBjbGFzcz0icHJvZGFjY2Vzc29yeSI+Cgo8ZGl2IGNsYXNzPSJw cm9kaW1hZ2UiPjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNwP3NrdUlkPTkzMDA2 MDUmYW1wO3R5cGU9cHJvZHVjdCZhbXA7aWQ9MTIxODA3OTc1NDAyMiIgbmFtZT0i JmxpZD1jcm9zc185MzAwNjA1Ij48aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5iZXN0 YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2ltYWdlcy9wcm9kdWN0cy85MzAwLzkzMDA2 MDVfcy5naWYiIGFsdD0iOTMwMDYwNSBGcm9udCBUaHVtYm5haWwiIGJvcmRlcj0i MCIgaGVpZ2h0PSIzOC4wIiB3aWR0aD0iNTQuMCIgYWxpZ249ImNlbnRlciI+PC9h PjwvZGl2PgoKPGRpdiBjbGFzcz0icHJvZHRleHQiPgoKPGEgaHJlZj0iL3NpdGUv b2xzcGFnZS5qc3A/c2t1SWQ9OTMwMDYwNSZhbXA7dHlwZT1wcm9kdWN0JmFtcDtp ZD0xMjE4MDc5NzU0MDIyIiBuYW1lPSImbGlkPWNyb3NzXzkzMDA2MDUiPgoKCgpT YW1zdW5nIC0gNTUiIENsYXNzIC8gMTA4MHAgLyAyNDBIeiAvIExDRC1MRUQgSERU VjwvYT4gCjxzcGFuIGNsYXNzPSJtb2RlbG51bWJlciI+VU41NUI4MDAwPC9zcGFu PgogIAoKCgoKPCEtLSBCOjBaVCAtLT4KCgoKCgoKCgoKPCEtLSBCOjBaUiAtLT4K CjxkaXYgY2xhc3M9InJlZ3ByaWNlIj4KUmVnLiBQcmljZToKCjwhLS0gQjowWlUg LS0+CgoKCgokMyw5OTkuOTgKCjwhLS0gRTowWlUgLS0+CjwvZGl2Pgo8ZGl2IGNs YXNzPSJ5b3VzYXZlIj4KCgpZb3UgU2F2ZToKCiQ0MDAuMDA8L2Rpdj4KPGRpdiBj bGFzcz0ic2FsZSI+ClNhbGU6Cgo8IS0tIEI6MFpVIC0tPgoKCgokMyw1OTkuOTgK CjwhLS0gRTowWlUgLS0+CjwvZGl2PgoKCjwhLS0gRTowWlIgLS0+Cgo8IS0tIEU6 MFpUIC0tPgo8L2Rpdj4gIAo8L2Rpdj4gIAoKPGRpdiBjbGFzcz0icGRwaHIiIHN0 eWxlPSJjbGVhcjpib3RoOyI+PGhyIC8+PC9kaXY+CgogIAoKICAKCgoKCjxkaXYg Y2xhc3M9InByb2RhY2Nlc3NvcnkiPgoKPGRpdiBjbGFzcz0icHJvZGltYWdlIj48 YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9za3VJZD05MjM4ODM1JmFtcDt0eXBl PXByb2R1Y3QmYW1wO2lkPTEyMTgwNjU5ODU0MzkiIG5hbWU9IiZsaWQ9Y3Jvc3Nf OTIzODgzNSI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAv QmVzdEJ1eV9VUy9pbWFnZXMvcHJvZHVjdHMvOTIzOC85MjM4ODM1X3MuZ2lmIiBh bHQ9IjkyMzg4MzUgRnJvbnQgVGh1bWJuYWlsIiBib3JkZXI9IjAiIGhlaWdodD0i NDAuMCIgd2lkdGg9IjU0LjAiIGFsaWduPSJjZW50ZXIiPjwvYT48L2Rpdj4KCjxk aXYgY2xhc3M9InByb2R0ZXh0Ij4KCjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNw P3NrdUlkPTkyMzg4MzUmYW1wO3R5cGU9cHJvZHVjdCZhbXA7aWQ9MTIxODA2NTk4 NTQzOSIgbmFtZT0iJmxpZD1jcm9zc185MjM4ODM1Ij4KCgoKU2Ftc3VuZyAtIDQ2 IiBDbGFzcyAvIDEwODBwIC8gMTIwSHogLyBMQ0QtTEVEIEhEVFY8L2E+IAo8c3Bh biBjbGFzcz0ibW9kZWxudW1iZXIiPlVONDZCNjAwMDwvc3Bhbj4KICAKCgoKCjwh LS0gQjowWlQgLS0+CgoKCgoKCgoKCjwhLS0gQjowWlIgLS0+Cgo8ZGl2IGNsYXNz PSJyZWdwcmljZSI+ClJlZy4gUHJpY2U6Cgo8IS0tIEI6MFpVIC0tPgoKCgoKJDIs Njk5Ljk5Cgo8IS0tIEU6MFpVIC0tPgo8L2Rpdj4KPGRpdiBjbGFzcz0ieW91c2F2 ZSI+CgoKWW91IFNhdmU6CgokNjAwLjAwPC9kaXY+CjxkaXYgY2xhc3M9InNhbGUi PgpTYWxlOgoKPCEtLSBCOjBaVSAtLT4KCgoKJDIsMDk5Ljk5Cgo8IS0tIEU6MFpV IC0tPgo8L2Rpdj4KCgo8IS0tIEU6MFpSIC0tPgoKPCEtLSBFOjBaVCAtLT4KPC9k aXY+ICAKPC9kaXY+ICAKCjxkaXYgY2xhc3M9IiIgc3R5bGU9ImNsZWFyOmJvdGg7 Ij48YnI+PC9kaXY+CgogIAoKICAKICAKPC9kaXY+CjwvZGl2PgogIAogIAogIAoK PCEtLSBFOjBYVCAtLT4KCjwhLS1EaXNwbGF5IG9mIGNyb3NzX3NlbGwgcHJvZHVj dHMgZW5kcyBoZXJlLS0+CjwhLS0gcHQyOCAtLT4KCjwhLS0gRTowWkIgLS0+Cgo8 L2Rpdj4KPC9kaXY+PCEtLSAvZW5kIGxvd2VyICJoYWxmIiBvZiBwYWdlIC0tPgo8 IS0tIGFyZWEgdG8gcHV0IHBhZ2UgdGV4dCB0aGF0IGFwcGVhcnMgYmVsb3cgdGhl IHRhYmJlZCBjb250ZW50IGFyZWEgLS0+CjxkaXYgY2xhc3M9ImNlbnRlcndlbGxw Z3R4dCI+Cgo8L2Rpdj4KCjwhLS0gRTowWUggLS0+Cgo8aW5wdXQgdmFsdWU9Ii9z aXRlL2VuX1VTL2NhdGFsb2cvZnJhZ21lbnRzL3Byb2R1Y3Qvb2xzbmxoYXJkZ29v ZHNwcm9kdWN0Y2VudGVyd2VsbGNvbnRlbnQuanNwIiB0eXBlPSJoaWRkZW4iIG5h bWU9Il9EQVJHUyI+PC9pbnB1dD48L2Zvcm0+CgoKCjwhLS0gRTowWUQgLS0+CgoK CgoKCjwhLS0gRTowWUMgLS0+CgoKCgoKPCEtLSBCOjBGTyAtLT4KCgoKCjxzY3Jp cHQ+CnZhciBwYWdlQ29udGV4dElkID0gImNhdDEyMTAxIjsKdmFyIGNoa291dENv bnRleHRJZCA9ICJjYXQxMjEwMiI7CnZhciBwYWdlVHlwZT0icGFnZSI7CnZhciBl bnRyeVVSTFR5cGUgPSAicHJvZHVjdCI7CgoKdmFyIGVudHJ5VVJMSUQgPSAiMTIw MjY0OTQyNDE1NyI7Cjwvc2NyaXB0PgoKCgoKPCEtLSBFOjBGTyAtLT4KCjwvZGl2 PgoKCgoKIAoKPCEtLSAxMjE3MDI5OTY4NTg0IC0tPg0KDQoNCg0KDQoNCjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAvLyA8IVtDREFUQVsNCiAg ICAgICAgICAgICQod2luZG93KS5iaW5kKCdsb2FkJywgZnVuY3Rpb24oKXsNCiAg ICAgICAgdmFyIHBkcHRhYnMgPSAkKCcjcGRwdGFicyA+IHVsJykudGFicygpOw0K ICAgICAgICBwZHB0YWJzID0gJCgnI3BkcHRhYnMgPiB1bCcpLnRhYnMoInNlbGVj dCIsJyN0YWJiZWQtb3ZlcnZpZXcnKTsNCiAgICAgICAgdmFyIHRhYmNvbnRhaW5l cnMgPSAkKCcjcGRwdGFicyA+IGRpdicpOw0KCWlmKGRvY3VtZW50LmdldEVsZW1l bnRCeUlkKCdwcmludGZvcm1kaXYnKSl7JCgnI3ByaW50Zm9ybScpLmNzcygnZGlz cGxheScsICdibG9jaycpO30NCglpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn cmVuZGVyZWR0YWJzJykpeyQoJyNyZW5kZXJlZHRhYnMnKS5jc3MoJ2Rpc3BsYXkn LCAnYmxvY2snKTt9DQoJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaW50 Zm9ybWRpdicpKXskKCcjcHJpbnRmb3JtZGl2JykuaHRtbCgkKCcjcHJpbnRmb3Jt JykpO30NCg0KICAgICAgICAvKiBsaW5rIGZvciByZWJhdGUgYWN0aXZhdGVzIHRo ZSByZWJhdGUgcmV2aWV3cyB0YWIgKi8NCiAgICAgICAgJCgiI21haWxpbnJlYmF0 ZSIpLmNsaWNrKGZ1bmN0aW9uKCl7cGRwdGFicyA9ICQoJyNwZHB0YWJzID4gdWwn KS50YWJzKCJzZWxlY3QiLCAiI3RhYmJlZC1yZWJhdGVzIik7JCgiaHRtbCxib2R5 IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiAyNTB9LCA3NTApO30pOw0KDQogICAgICAg IC8qIGxpbmsgZm9yIHJldmlld3MgYWN0aXZhdGVzIHRoZSBjdXN0b21lciByZXZp ZXdzIHRhYiAqLw0KICAgICAgICAkKCIjcmV2aWV3bnVtID4gYSIpLmNsaWNrKGZ1 bmN0aW9uKCl7cGRwdGFicyA9ICQoJyNwZHB0YWJzID4gdWwnKS50YWJzKCJzZWxl Y3QiLCAiI3RhYmJlZC1jdXN0b21lcnJldmlld3MiKTskKCJodG1sLGJvZHkiKS5h bmltYXRlKHtzY3JvbGxUb3A6IDMwMH0sIDc1MCk7fSk7DQoNCiAgICAgICAgLyog b3V0bGV0IGNlbnRlciAqLw0KICAgICAgICAkKCIjb3V0bGV0Y2VudGVyIikuaG92 ZXIoZnVuY3Rpb24oKXskKHRoaXMpLmFkZENsYXNzKCJob3ZlciIpO30sIGZ1bmN0 aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygiaG92ZXIiKTt9KTsNCiAgICAgICAg JCgiI291dGxldGNlbnRlciA+IGEiKS5jbGljayhmdW5jdGlvbigpeyQoIiNwYl9v YyIpLmNzcygiZGlzcGxheSIsICJibG9jayIpO30pOw0KDQogICAgICAgIC8qIHBv d2VyIHByaWNlICovDQogICAgICAgICQoIiNwd3JwcmljZSIpLmhvdmVyKGZ1bmN0 aW9uKCl7JCh0aGlzKS5hZGRDbGFzcygiaG92ZXIiKTt9LCBmdW5jdGlvbigpeyQo dGhpcykucmVtb3ZlQ2xhc3MoImhvdmVyIik7fSk7DQogICAgICAgICQoIiNwd3Jw cmljZSA+IGEiKS5jbGljayhmdW5jdGlvbigpeyQoIiNwb3dlcnByaWNlIikuY3Nz KCJkaXNwbGF5IiwgImJsb2NrIik7fSk7DQoNCiAgICAgICAgJCgiI3Byb2R1Y3Rz cGVjcyIpLmNsaWNrKGZ1bmN0aW9uKCl7cGRwdGFicyA9ICQoJyNwZHB0YWJzID4g dWwnKS50YWJzKCJzZWxlY3QiLCAiI3RhYmJlZC1vdmVydmlldyIpO30pOw0KICAg ICAgICAkKCIjQlZDdXN0b21lclJhdGluZ3MiKS5jbGljayhmdW5jdGlvbigpe3Bk cHRhYnMgPSAkKCcjcGRwdGFicyA+IHVsJykudGFicygic2VsZWN0IiwgIiN0YWJi ZWQtY3VzdG9tZXJyZXZpZXdzIik7fSk7DQoNCiAgICAgICAgLyogcHJpbnQgZnVu Y3Rpb25hbGl0eSBoZXJlICovDQogICAgICAgICQoIiNwcmludGJ1dHRvbiIpLmNs aWNrKGZ1bmN0aW9uKCl7DQogICAgICAgIHBkcHRhYnMgPSAkKCcjcGRwdGFicyA+ IHVsJykudGFicyh7IHNlbGVjdGVkOiBudWxsIH0pOw0KICAgICAgICB2YXIgc2Vs ZWN0ZWQgPSAkKCcjcGRwdGFicyA+IHVsJykuZGF0YSgnc2VsZWN0ZWQudWktdGFi cycpOw0KDQogICAgICAgIHRhYmNvbnRhaW5lcnMuY3NzKCJkaXNwbGF5IiwgIm5v bmUiKTsNCg0KICAgICAgICAkKCIjcHJpbnRmb3JtID4gbGkgPiBpbnB1dDpjaGVj a2VkIikuZWFjaChmdW5jdGlvbigpew0KICAgICAgICAgICAgICAgICQoIiMiKyQo dGhpcykuYXR0cigidmFsdWUiKSkuY3NzKCJkaXNwbGF5IiwgImJsb2NrIik7DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgKTsNCiAgICAgICAgICAgIHdp bmRvdy5wcmludCgpOw0KICAgICAgICAgICAgcGRwdGFicyA9ICQoJyNwZHB0YWJz ID4gdWwnKS50YWJzKCJzZWxlY3QiLCBzZWxlY3RlZCk7DQogICAgICAgIH0pOw0K DQoJaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaW50Zm9ybWRpdicpKXsN CgkJJCgiI3ByaW50ZXJmcmllbmRseSIpLnRvZ2dsZShmdW5jdGlvbigpIHsNCgkJ CSQodGhpcykuYWRkQ2xhc3MoImhvdmVyIik7JCgiI3ByaW50Zm9ybWRpdiIpLnNo b3coJ25vcm1hbCcpOw0KCQkJfSwgZnVuY3Rpb24oKSB7JCh0aGlzKS5yZW1vdmVD bGFzcygiaG92ZXIiKTskKCIjcHJpbnRmb3JtZGl2IikuaGlkZSgnbm9ybWFsJyk7 fQ0KICAgICAgICApOw0KCX1lbHNlew0KCQkkKCIjcHJpbnRlcmZyaWVuZGx5Iiku dG9nZ2xlKGZ1bmN0aW9uKCkgew0KCQkJJCh0aGlzKS5hZGRDbGFzcygiaG92ZXIi KTskKCIjcHJpbnRmb3JtIikuc2hvdygnbm9ybWFsJyk7DQoJCQl9LCBmdW5jdGlv bigpIHskKHRoaXMpLnJlbW92ZUNsYXNzKCJob3ZlciIpOyQoIiNwcmludGZvcm0i KS5oaWRlKCdub3JtYWwnKTt9DQogICAgICAgICk7DQoJfQ0KDQogICAgICAgICQo IiNzd2F0Y2hlcyA+IHVsID4gbGkgPiBhID4gaW1nIikuaG92ZXIoZnVuY3Rpb24o KXsNCiAgICAgICAgJCgiI3N3YXRjaGNvbG9yIikuaHRtbCgkKHRoaXMpLmF0dHIo ImFsdCIpKTsNCiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCl7JCgiI3N3YXRjaGNv bG9yIikuaHRtbCgiIik7fSk7DQoNCiAgICAgICAgfSk7DQoNCg0KDQpmdW5jdGlv biByYXRpbmdzRGlzcGxheWVkKHRvdGFsUmV2aWV3c0NvdW50LGF2Z1JhdGluZyxy YXRpbmdzT25seVJldmlld0NvdW50LGJ1eUFnYWluUGVyY2VudGFnZSkNCiAgICB7 DQogICAgICB2YXIgQlZDdXN0b21SYXRpbmdzU3VtbWFyeUNvbnRhaW5lciA9IGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdCVkN1c3RvbVJhdGluZ3NTdW1tYXJ5Jyk7 DQogICAgaWYoQlZDdXN0b21SYXRpbmdzU3VtbWFyeUNvbnRhaW5lcikNCiAgICB7 DQogICAgICAgIHZhciByYXRpbmcgPSBhdmdSYXRpbmcudG9GaXhlZCgxKTsNCiAg ICAgICAgdmFyIHJhdGluZ1N0ciA9ICgnJyArIHJhdGluZykucmVwbGFjZSgnLics J18nKTsNCiAgICAgICAgdmFyIHN1bW1hcnlTcmMgPSAnJzsNCiAgICAgICAgc3Vt bWFyeVNyYyArPSAnPGRpdiBpZD0icmV2aWV3YmFuZCI+PHN0cm9uZz5DdXN0b21l ciBSZXZpZXdzOiZuYnNwOzwvc3Ryb25nPic7DQogICAgICAgICAgICB2YXIgaW1h Z2VTcmMgPSAiICI7DQogICAgICAgIGlmKHJhdGluZyA+IDApDQogICAgICAgIHsN CiAgICAgICAgICAgIGltYWdlU3JjID0gaW1nU2VydmVyICsgJ2ltYWdlcy9nbG9i YWwvbWlzYy9yYXRpbmdzX3N0YXJfJw0KICAgICAgICAgICAgKyByYXRpbmdTdHIg KyAnLmdpZic7DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQog ICAgICAgICAgICBpbWFnZVNyYyA9ICBpbWdTZXJ2ZXIgKyAnaW1hZ2VzL2dsb2Jh bC9taXNjL3JhdGluZ3Nfc3Rhcl8wXzAuZ2lmJzsNCiAgICAgICAgfQ0KICAgICAg ICAgICAgc3VtbWFyeVNyYyArPSAnPGltZyBzcmM9IicgKyBpbWFnZVNyYyArICci IGFsdD0iJyArIHJhdGluZyArICcgb3V0IG9mIDUgc3RhcnMiLz4nOw0KICAgICAg ICBpZih0b3RhbFJldmlld3NDb3VudCA+IDApDQogICAgICAgIHsNCiAgICAgICAg ICAgIHN1bW1hcnlTcmMgKz0gJzxzcGFuIGlkPSJyZXZpZXdzY29yZSI+PHN0cm9u Zz4mbmJzcDsnK3JhdGluZw0KICAgICAgICAgICAgKyc8L3N0cm9uZz48L3NwYW4+ PHNwYW4gaWQ9InJldmlld251bSI+JzsNCiAgICAgICAgICAgIHN1bW1hcnlTcmMg Kz0gJyZuYnNwOzxhIGhyZWY9IiN0YWJiZWQtY3VzdG9tZXJyZXZpZXdzIj5SZWFk IHJldmlld3MgKCcNCiAgICAgICAgICAgICt0b3RhbFJldmlld3NDb3VudCsnKTwv YT48L3NwYW4+JzsNCiAgICAgICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsN CiAgICAgICAgICAgICAgICBzdW1tYXJ5U3JjICs9ICc8c3BhbiBpZD0icmV2aWV3 bnVtIj4mbmJzcDs8YSBocmVmPSIjdGFiYmVkLWN1c3RvbWVycmV2aWV3cyI+Jw0K ICAgICAgICAgICAgKydCZSB0aGUgZmlyc3QgdG8gd3JpdGUgYSByZXZpZXcuPC9h Pjwvc3Bhbj4nOw0KICAgICAgICB9DQogICAgICAgICAgICBzdW1tYXJ5U3JjICs9 ICc8L2Rpdj4nOw0KICAgICAgICBCVkN1c3RvbVJhdGluZ3NTdW1tYXJ5Q29udGFp bmVyLmlubmVySFRNTCA9IHN1bW1hcnlTcmM7DQoNCiAgICB2YXIgYmF6YWFyVm9p Y2U9bmV3IE9iamVjdCgpOw0KICAgIGJhemFhclZvaWNlLnJhdGluZ3NEaXNwbGF5 ZWRDdXN0b21NZXRyaWMgPSAiY3YuYzUiOw0KICAgIGJhemFhclZvaWNlLnBhZ2Vu YW1lID0gKHR5cGVvZiBfaGMzIT0ndW5kZWZpbmVkJyk/X2hjMzoiYmF6YWFydm9p Y2UuZGVmYXVsdC5wYWdlbmFtZSI7DQogICAgaWYodG90YWxSZXZpZXdzQ291bnQg PiAwIHx8IHJhdGluZ3NPbmx5UmV2aWV3Q291bnQgPiAwKXsNCiAgICB2YXIgYT10 b3RhbFJldmlld3NDb3VudCsiOiIrYXZnUmF0aW5nKyI6IityYXRpbmdzT25seVJl dmlld0NvdW50KyI6IitidXlBZ2FpblBlcmNlbnRhZ2U7DQogICAgX2hiU2V0KGJh emFhclZvaWNlLnJhdGluZ3NEaXNwbGF5ZWRDdXN0b21NZXRyaWMsYmF6YWFyVm9p Y2UucGFnZW5hbWUrInwiK2EpOw0KICAgIF9oYkRvd25sb2FkKCJiYXphYXJ2b2lj ZSIpOw0KICAgIH0NCiAgICB9DQp9DQoNCg0KICAgIGZ1bmN0aW9uIHNldFRhYlBh cmFtZXRlcih0YWJOdW0pDQogICAgew0KICAgIGRvY3VtZW50LmZybUNhcnQudGFi LnZhbHVlID0gdGFiTnVtOw0KICAgIH0NCi8vIF1dDQo8L3NjcmlwdD4NCjwhLS0g LzEyMTcwMjk5Njg1ODQgLS0+CiAKIAoKPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2 PgoKCgo8IS0tIEI6MEc1IC0tPgoKCgoKPGRpdiBpZD0iZm9vdGVyIj4KCgoKCgoK Cgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFz Y3JpcHQiPgoKCnRyYWNrLnViZXJDYXRJZCA9J2FiY2F0MDEwMDAwMCc7Cgp0cmFj ay5wYXJlbnRDYXRJZCA9J2FiY2F0MDEwMTAwMDogYWJjYXQwMTAxMDAxJzsKCnRy YWNrLmNhdElkID0ncGRwJzsKCgp0cmFjay51YmVyQ2F0TmFtZSA9J1RWIFwmIFZp ZGVvJzsKCgp0cmFjay5wYXJlbnRDYXROYW1lID0nVGVsZXZpc2lvbnM6IEZsYXQt UGFuZWwgVFZzJzsKCgp0cmFjay5jYXROYW1lID0nU2Ftc3VuZyAtIDUyXCIgQ2xh c3MgLyAxMDgwcCAvIDEyMEh6IC8gTENEIEhEVFYgLSBMTjUyQTY1MCc7CgoKdHJh Y2suc2t1SWQ9Jzg3NDkyODcnOwoKCnRyYWNrLmRlcHRJZCA9JzInOwoKdHJhY2su Y2xhc3NJZD0nMjc2JzsKCnRyYWNrLnN1YkNsYXNzSWQ9JzYwMTAnOwoKdHJhY2su cHJvZElkPScxMjAyNjQ5NDI0MTU3JzsKCnRyYWNrLnByb2RUeXBlPSdoYXJkR29v ZFByZCc7Cgp0cmFjay5za3VUeXBlPSdoYXJkR29vZFNrdSc7CgoKdHJhY2sucGlj a3VwQXZhaWw9ICc8Yj5TdG9yZSBQaWNrdXA6PC9iPiBOb3QgQXZhaWxhYmxlJzsK CnRyYWNrLnNoaXBBdmFpbD0nPGI+RGVsaXZlcnk8L2I+IE1vc3QgQXJlYXMnOwoK dHJhY2sucmF0aW5nPSc0LjknOwoKCnRyYWNrLnJldmlld3NOdW09JzE1Nyc7CgoK CgoKCgoKCgoKCgoKCgo8L3NjcmlwdD4KCjwhLS0gQjowVk4gLS0+CgoKCiAgCiAg CiAgCgogIAogICAKICAKICAKICAKCgoKCgoKCgoKPCEtLSBCOjBYUSAtLT4KCgoK CgogCgoNCg0KDQo8IS0tIDEyMTgxMDcyODk2NjUgLS0+DQo8bGluayByZWw9InN0 eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vaW1hZ2VzLmJl c3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvanMvYnVzb3BzLW1pbi5jc3MiPjwvbGlu az4NCjxzY3JpcHQgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tOjgwL0Jl c3RCdXlfVVMvanMvb2Nza3VsaXN0LW1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny aXB0Ij48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJodHRwOi8vaW1hZ2VzLmJlc3Ri dXkuY29tOjgwL0Jlc3RCdXlfVVMvanMvYnVzb3BzTG93LW1pbi5qcyIgdHlwZT0i dGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4NCg0KPHN0eWxlIHR5cGU9InRleHQv Y3NzIj4NCgkjbGlzdFZpZXcgLnNhdmluZ3NwcmljZSBhLnJlZ3ByaWNlLCAucGRw c3VtbWFyeWJveCAuc2F2aW5nc3ByaWNlIGEucmVncHJpY2Uge2JhY2tncm91bmQ6 dHJhbnNwYXJlbnQgdXJsKGh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVz dEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2NlZC9pbWFnZXMvc2hpcHBpbmct YXJyb3cuZ2lmKSBuby1yZXBlYXQgc2Nyb2xsIHJpZ2h0IDNweDt9DQoJLm1lc3Nh Z2V0b3Age2JhY2tncm91bmQ6IHVybChodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29t OjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9jZWQvaW1hZ2VzL2F2 YWlsQnViYmxlLXRvcC5naWYpIGJvdHRvbSByaWdodCBuby1yZXBlYXQ7fQ0KCS5t ZXNzYWdlbWlkIHtiYWNrZ3JvdW5kOiB1cmwoaHR0cDovL2ltYWdlcy5iZXN0YnV5 LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvY2VkL2ltYWdl cy9hdmFpbEJ1YmJsZS1taWQuZ2lmKSB0b3AgcmlnaHQgbm8tcmVwZWF0O30NCgku bWVzc2FnZWJvdHRvbSB7YmFja2dyb3VuZDogdXJsKGh0dHA6Ly9pbWFnZXMuYmVz dGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2NlZC9p bWFnZXMvYXZhaWxCdWJibGUtYnRtLmdpZikgdG9wIHJpZ2h0IG5vLXJlcGVhdDt9 DQoJI2Z0ck5hdiBsaS5mdHJMYXN0IGF7YmFja2dyb3VuZDp1cmwoaHR0cDovL2lt YWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9i YWwvY2VkL2ltYWdlcy9yc3MyLmdpZikgdG9wIGxlZnQgbm8tcmVwZWF0O2JvcmRl ci1yaWdodDpub25lO3BhZGRpbmctbGVmdDoyNnB4O3BhZGRpbmctcmlnaHQ6MDt9 DQoJI2Z0ck1haW4gLmZ0ck1haW5Ub3B7YmFja2dyb3VuZDp1cmwoaHR0cDovL2lt YWdlcy5iZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9i YWwvY2VkL2ltYWdlcy9mdHIuZ2lmKSB0b3AgbGVmdCBuby1yZXBlYXQ7Zm9udC1z aXplOjA7aGVpZ2h0OjEwcHg7fQ0KCSNmdHJNYWluIC5mdHJNYWluQm90e2JhY2tn cm91bmQ6dXJsKGh0dHA6Ly9pbWFnZXMuYmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9V Uy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2NlZC9pbWFnZXMvZnRyLmdpZikgYm90dG9t IGxlZnQgbm8tcmVwZWF0O2ZvbnQtc2l6ZTowO2hlaWdodDoxMHB4O30NCgkjZnRy TWFpbiAuZnRyTWFpbk1pZHtiYWNrZ3JvdW5kOnVybChodHRwOi8vaW1hZ2VzLmJl c3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC9jZWQv aW1hZ2VzL2Z0ci5naWYpIDAgLTVweCBuby1yZXBlYXQ7cGFkZGluZzo1cHggMDt3 aWR0aDo3ODBweDt9DQo8L3N0eWxlPg0KPGRpdiBpZD0iZnRyIj4NCgk8ZGl2IGlk PSJmdHJNYWluIj4NCgkJPGRpdiBjbGFzcz0iZnRyTWFpblRvcCI+PC9kaXY+DQoJ CTxkaXYgY2xhc3M9ImZ0ck1haW5NaWQiPg0KCQkJPGRpdiBjbGFzcz0iZnRyRml4 Ij4NCgkJCQk8ZGl2IGNsYXNzPSJmdHJNYWluX2NvbCI+DQoJCQkJCTxoND5PcmRl ciBTdXBwb3J0PC9oND4NCgkJCQkJPHVsPg0KCQkJCQkJPGxpPjxhIGhyZWY9Ii9z aXRlL29sc3BhZ2UuanNwP2lkPXBjYXQxNzAzOCZhbXA7dHlwZT1wYWdlIiBuYW1l PSImbGlkPWZ0X29zIj5PcmRlciBTdGF0dXM8L2E+PC9saT4NCgkJCQkJCTxsaT48 YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD90eXBlPXBhZ2UmY2F0ZWdvcnlJZD1j YXQxMDAwMyZjb250ZW50SWQ9MTE0MjI5MjM4ODk3NiZpZD1jYXQxMjA5OCIgbmFt ZT0iJmxpZD1mdF9zZCI+U2hpcHBpbmcgJmFtcDsgRGVsaXZlcnk8L2E+PC9saT4N CgkJCQkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD90eXBlPXBhZ2Um YW1wO2VudHJ5VVJMVHlwZT0mYW1wO2VudHJ5VVJMSUQ9JmFtcDtjYXRlZ29yeUlk PWNhdDEwMDAzJmFtcDtjb250ZW50SWQ9MTA0MzM2MzYwMjA5OSZhbXA7aWQ9Y2F0 MTIwOTgiIG5hbWU9IiZsaWQ9ZnRfaW5zcCI+SW50ZXJuYXRpb25hbCBTaGlwcGlu ZzwvYT48L2xpPg0KCQkJCQkJPGxpPjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNw P3R5cGU9cGFnZSZhbXA7ZW50cnlVUkxUeXBlPXBhZ2UmYW1wO2VudHJ5VVJMSUQ9 Y2F0MTIwOTgmYW1wO2NhdGVnb3J5SWQ9Y2F0MTAwMDUmYW1wO2NvbnRlbnRJZD0x MTQyMjkyMzc3OTIwJmFtcDtpZD1jYXQxMjA5OCIgbmFtZT0iJmxpZD1mdF9zcCI+ U3RvcmUgUGlja3VwPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iL3NpdGUv b2xzcGFnZS5qc3A/dHlwZT1wYWdlJmFtcDtlbnRyeVVSTFR5cGU9cGFnZSZhbXA7 ZW50cnlVUkxJRD1jYXQxMjA5OCZhbXA7Y2F0ZWdvcnlJZD1jYXQxMDAwNCZhbXA7 Y29udGVudElkPTExNDIyOTIzODc1MTkmYW1wO2lkPWNhdDEyMDk4IiBuYW1lPSIm bGlkPWZ0X3J0biI+UmV0dXJuczwvYT48L2xpPg0KCQkJCQkJPGxpPjxhIGhyZWY9 Ii9zaXRlL29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdvcnkmYW1wO2lkPXBjbWNhdDg3 ODAwMDUwMDAxIiBuYW1lPSImbGlkPWZ0X2NzIj5DdXN0b21lciBTZXJ2aWNlPC9h PjwvbGk+DQoJCQkJCTwvdWw+DQoJCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp dj4NCgkJCQkJPGg0PkNvbW11bml0eSA8aW1nIHNyYz0iaHR0cDovL2ltYWdlcy5i ZXN0YnV5LmNvbTo4MC9CZXN0QnV5X1VTL2VuX1VTL2ltYWdlcy9nbG9iYWwvY2Vk L2ltYWdlcy9uZXdfYnVnLmdpZiIgd2lkdGg9IjIyIiBoZWlnaHQ9IjExIiBhbHQ9 Ik5ldyIgLz48L2g0Pg0KCQkJCQk8dWw+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0 cDovL3d3dy5mb3J1bXMuYmVzdGJ1eS5jb20vYmIvIiBuYW1lPSImbGlkPWZ0X2Zy bSI+Rm9ydW1zPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL2Jl c3RidXlpZGVheC5jb20vIiBuYW1lPSImbGlkPWZ0X2lkZSI+SWRlYVggLSBTaGFy ZSB5b3VyIGlkZWFzPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDov L3d3dy5iZXN0YnV5aW5jLmNvbS9jb25uZWN0IiBuYW1lPSImbGlkPWZ0X2Jjb24i PkJCWSBDb25uZWN0PC9hPjwvbGk+DQoJCQkJCTwvdWw+DQoJCQkJPC9kaXY+DQoJ CQkJPGRpdiBjbGFzcz0iZnRyTWFpbl9jb2wiPg0KCQkJCQk8aDQ+UHJvZHVjdCBT dXBwb3J0PC9oND4NCgkJCQkJPHVsPg0KCQkJCQkJPGxpPjxhIGhyZWY9Ii9zaXRl L29sc3BhZ2UuanNwP3R5cGU9cGFnZSZhbXA7ZW50cnlVUkxUeXBlPXBhZ2UmYW1w O2VudHJ5VVJMSUQ9Y2F0MTIwOTgmYW1wO2NhdGVnb3J5SWQ9Y2F0MTAwMDgmYW1w O2NvbnRlbnRJZD0xMDQzMzYzNjA0NjY2JmFtcDtpZD1jYXQxMjA5OCIgbmFtZT0i JmxpZD1mdF9pciI+SW5zdGFsbGF0aW9uICZhbXA7IFJlcGFpcnM8L2E+PC9saT4N CgkJCQkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21jYXQx NTk4MDAwNTAwMDEmYW1wO3R5cGU9Y2F0ZWdvcnkiIGNsYXNzPSJmdHJGaXgiIG5h bWU9IiZsaWQ9ZnRfd3BwIj5XYXJyYW50aWVzICZhbXA7IFBlcmZvcm1hbmNlIFBs YW5zPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5q c3A/aWQ9cGNtY2F0MTU2NDAwMDUwMDUwJmFtcDt0eXBlPWNhdGVnb3J5IiBuYW1l PSImbGlkPWZ0X29wIj5PcmRlciBQYXJ0czwvYT48L2xpPg0KCQkJCQkJPGxpPjxh IGhyZWY9Imh0dHBzOi8vd3d3LXNzbC5iZXN0YnV5LmNvbS9zaXRlL29sc3BhZ2Uu anNwP2lkPXBjYXQxNzA0MyZhbXA7dHlwZT1wYWdlIiBuYW1lPSImbGlkPWZ0X2Nn Y2IiPkNoZWNrIEdpZnQgQ2FyZCBCYWxhbmNlPC9hPjwvbGk+DQoJCQkJCQk8bGk+ PGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTE0ODAwMDUwMDE1 JmFtcDt0eXBlPWNhdGVnb3J5IiBuYW1lPSImbGlkPWZ0X3ByIj5Qcm9kdWN0IFJl Y2FsbHM8L2E+PC9saT4NCgkJCQkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdl LmpzcD9pZD1wY21jYXQxMzM2MDAwNTAwMTEmYW1wO3R5cGU9Y2F0ZWdvcnkiIG5h bWU9IiZsaWQ9ZnRfdGljIj5UcmFkZS1pbiBDZW50ZXI8L2E+PC9saT4NCgkJCQkJ CTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD90eXBlPWNhdGVnb3J5Jmlk PXBjbWNhdDE0OTkwMDA1MDAyNSZEQ01QPXJkcjAwMDE0MjIiIG5hbWU9IiZsaWQ9 ZnRfcmN5Ij5SZWN5Y2xpbmc8L2E+PC9saT4NCgkJCQkJPC91bD4NCgkJCQk8L2Rp dj4NCgkJCQk8ZGl2IGNsYXNzPSJmdHJNYWluX2NvbCI+DQoJCQkJCTxoND5DcmVk aXQgQ2FyZHM8L2g0Pg0KCQkJCQk8dWw+DQoJCQkJCQk8bGk+PGEgaHJlZj0iL3Np dGUvb2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTAyNTAwMDUwMDMyJmFtcDt0eXBlPWNh dGVnb3J5IiBuYW1lPSImbGlkPWZ0X2FuIj5BcHBseSBOb3c8L2E+PC9saT4NCgkJ CQkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21jYXQxMDI1 MDAwNTAwMzImYW1wO3R5cGU9Y2F0ZWdvcnkiIG5hbWU9IiZsaWQ9ZnRfbXB5Ij5N YWtlIGEgUGF5bWVudDwvYT48L2xpPg0KCQkJCQkJPGxpPjxhIGhyZWY9Ii9zaXRl L29sc3BhZ2UuanNwP2lkPXBjbWNhdDEwMjUwMDA1MDAzMiZhbXA7dHlwZT1jYXRl Z29yeSIgbmFtZT0iJmxpZD1mdF9jY2IiPkNhcmQgQmVuZWZpdHM8L2E+PC9saT4N CgkJCQkJPC91bD4NCgkJCQkJPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KCQkJ CQk8aDQ+UmV3YXJkIFpvbmUmcmVnOyBQcm9ncmFtPC9oND4NCgkJCQkJPHVsPg0K CQkJCQkJPGxpPjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2UuanNwP3R5cGU9Y2F0ZWdv cnkmYW1wO2lkPXBjbWNhdDQ0ODAwMDUwMDA0IiBuYW1lPSImbGlkPWZ0X2xtIj5M ZWFybiBNb3JlPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3 dy5teXJld2FyZHpvbmUuY29tIiBvbmNsaWNrPSJyZXR1cm4gYmJ5UG9wKHRoaXMs J3Njcm9sbGJhcnM9MSxsb2NhdGlvbj0xLHRvb2xiYXI9MSxtZW51YmFyPTEsd2lk dGg9MTAyNCxoZWlnaHQ9NjAwJykiIHRpdGxlPSJMaW5rIHdpbGwgb3BlbiBuZXcg d2luZG93IiB0YXJnZXQ9Il9ibGFuayIgbmFtZT0iJmxpZD1mdF9jeXAiPkNoZWNr IFlvdXIgUG9pbnRzPC9hPjwvbGk+DQoJCQkJCTwvdWw+DQoJCQkJPC9kaXY+DQoJ CQkJPGRpdiBjbGFzcz0iZnRyTWFpbl9jb2wiPg0KCQkJCQk8aDQ+Q29ycG9yYXRl IEluZm88L2g0Pg0KCQkJCQk8dWw+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDov L3d3dy5iYnljb21tdW5pY2F0aW9ucy5jb20vYWJvdXQvIiBvbmNsaWNrPSJwb3BL Q2hrKHRoaXMpO3JldHVybiBmYWxzZTsiIHRpdGxlPSJMaW5rIHdpbGwgb3BlbiBu ZXcgd2luZG93IiB0YXJnZXQ9Il9ibGFuayIgbmFtZT0iJmxpZD1mdF9hYmIiPkFi b3V0IEJlc3QgQnV5PC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDov L3d3dy5iZXN0YnV5aW5jLmNvbS9uZXdzX2NlbnRlciIgb25jbGljaz0icG9wS0No ayh0aGlzKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iTGluayB3aWxsIG9wZW4gbmV3 IHdpbmRvdyIgdGFyZ2V0PSJfYmxhbmsiIG5hbWU9IiZsaWQ9ZnRfbmMiPk5ld3Mg Q2VudGVyPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5i Ynljb21tdW5pY2F0aW9ucy5jb20vY2FyZWVyY2VudGVyLyIgb25jbGljaz0icG9w S0Noayh0aGlzKTtyZXR1cm4gZmFsc2U7IiB0aXRsZT0iTGluayB3aWxsIG9wZW4g bmV3IHdpbmRvdyIgdGFyZ2V0PSJfYmxhbmsiIG5hbWU9IiZsaWQ9ZnRfY2FyIj5D YXJlZXJzPC9hPjwvbGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5i Ynljb21tdW5pY2F0aW9ucy5jb20vaXIvZGVmYXVsdC5hc3AiIG9uY2xpY2s9InBv cEtDaGsodGhpcyk7cmV0dXJuIGZhbHNlOyIgdGl0bGU9Ikxpbmsgd2lsbCBvcGVu IG5ldyB3aW5kb3ciIHRhcmdldD0iX2JsYW5rIiBuYW1lPSImbGlkPWZ0X2ZvaSI+ Rm9yIE91ciBJbnZlc3RvcnM8L2E+PC9saT4NCgkJCQkJCTxsaT48YSBocmVmPSJo dHRwOi8vcmVtaXguYmVzdGJ1eS5jb20iIG9uY2xpY2s9InBvcEtDaGsodGhpcyk7 cmV0dXJuIGZhbHNlOyIgdGl0bGU9Ikxpbmsgd2lsbCBvcGVuIG5ldyB3aW5kb3ci IHRhcmdldD0iX2JsYW5rIiBuYW1lPSImbGlkPWZ0X2RldiI+RGV2ZWxvcGVyczwv YT48L2xpPg0KCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYmJ5Y29tbXVu aWNhdGlvbnMuY29tL2Nzci8iIG9uY2xpY2s9InBvcEtDaGsodGhpcyk7cmV0dXJu IGZhbHNlOyIgdGl0bGU9Ikxpbmsgd2lsbCBvcGVuIG5ldyB3aW5kb3ciIHRhcmdl dD0iX2JsYW5rIiBuYW1lPSImbGlkPWZ0X3JlcyI+UmVzcG9uc2liaWxpdHk8L2E+ PC9saT4NCgkJCQkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJlc3RidXlpbmMu Y29tL2NvbW11bml0eV9yZWxhdGlvbnMvIiBvbmNsaWNrPSJwb3BLQ2hrKHRoaXMp O3JldHVybiBmYWxzZTsiIHRpdGxlPSJMaW5rIHdpbGwgb3BlbiBuZXcgd2luZG93 IiB0YXJnZXQ9Il9ibGFuayIgbmFtZT0iJmxpZD1mdF9jciI+Q29tbXVuaXR5IFJl bGF0aW9uczwvYT48L2xpPg0KCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHBzOi8vc2ln bnVwLmNqLmNvbS9tZW1iZXIvYnJhbmRlZFB1Ymxpc2hlclNpZ25VcC5kbz9haXJf cmVmbWVyY2hhbnRpZD0yMDQ1OTkxIiBvbmNsaWNrPSJyZXR1cm4gcG9wTmV3KHRo aXMpIiB0aXRsZT0iTGluayB3aWxsIG9wZW4gbmV3IHdpbmRvdyIgdGFyZ2V0PSJf YmxhbmsiIG5hbWU9IiZsaWQ9ZnRfYXAiPkFmZmlsaWF0ZSBQcm9ncmFtPC9hPjwv bGk+DQoJCQkJCQk8bGk+PGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9Y2F0 MTIxMDQmYW1wO3R5cGU9cGFnZSIgbmFtZT0iJmxpZD1mdF9jdSI+Q29udGFjdCBV czwvYT48L2xpPg0KCQkJCQk8L3VsPg0KCQkJCQk8ZGl2IGlkPSJxdWlja05hdiI+ DQoJCQkJCQk8aDQ+TW9yZSBCZXN0IEJ1eSBTaXRlczwvaDQ+DQoJCQkJCQk8dWw+ DQoJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eS5jYS9tYXJr ZXRpbmcvX21pZG5pZ2h0X3B1Ymxpc2gvc3BsYXNocGFnZS5hc3A/dGVzdCU1RmNv b2tpZT0xIj5CZXN0IEJ1eSBDYW5hZGE8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEg aHJlZj0iaHR0cDovL3d3dy5iZXN0YnV5LmNvbS5teCI+QmVzdCBCdXkgTWV4aWNv PC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1 eS5jb20uY24iPkJlc3QgQnV5IENoaW5hPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eWJ1c2luZXNzLmNvbS9iYmZiL2VuL1VT L2FkaXJlY3QvYmVzdGJ1eT9jbWQ9T25saW5lT3JkZXJpbmdQYWdlRGlzcGxheSZh bXA7d2Vic3JjPUJCT2ZmaWNlUHJvZHVjdHNMYW5kaW5nVG9wIj5CZXN0IEJ1eSBm b3IgQnVzaW5lc3M8L2E+PC9saT4NCgkJCQkJCQk8bGk+PGEgaHJlZj0iaHR0cDov L3d3dy5iZXN0YnV5YnVzaW5lc3MuY29tL2JiZmIvZW4vVVMvYWRpcmVjdC9iZXN0 YnV5P2NtZD1CQkZCQ2hhbmdlVmVydGljYWxNYXJrZXRHb3YmYW1wO25ld1ZlcnRp Y2FsPV9nb3YiPkJlc3QgQnV5IGZvciBHb3Zlcm5tZW50PC9hPjwvbGk+DQoJCQkJ CQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYmVzdGJ1eWJ1c2luZXNzLmNvbS9i YmZiL2VuL1VTL2FkaXJlY3QvYmVzdGJ1eT9jbWQ9QkJGQkNoYW5nZVZlcnRpY2Fs TWFya2V0RWR1JmFtcDtuZXdWZXJ0aWNhbD1fZWR1Ij5CZXN0IEJ1eSBmb3IgRWR1 Y2F0aW9uPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cu bWFnbm9saWFhdi5jb20iPk1hZ25vbGlhPC9hPjwvbGk+DQoJCQkJCQkJPGxpPjxh IGhyZWY9Imh0dHA6Ly93d3cuZ2Vla3NxdWFkLmNvbSI+R2VlayBTcXVhZDwvYT48 L2xpPg0KCQkJCQkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LnBhY2lmaWNzYWxl cy5jb20iPlBhY2lmaWMgU2FsZXM8L2E+PC9saT4NCgkJCQkJCTwvdWw+DQoJCQkJ CTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rp dj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgkJPGRpdiBjbGFzcz0iZnRyTWFpbkJv dCI+PC9kaXY+DQoJPC9kaXY+CQkNCgk8ZGl2IGlkPSJmdHJDb3B5Ij4NCgkJPGg1 Pk5lZWQgaGVscD8gV2UmIzM5O3JlIGF2YWlsYWJsZSAyNC83IGF0IDEtODg4LUJF U1QgQlVZICgxLTg4OC0yMzctODI4OSk8L2g1Pg0KCQk8cD5PbmxpbmUgcHJpY2Vz IGFuZCBzZWxlY3Rpb24gZ2VuZXJhbGx5IG1hdGNoIG91ciByZXRhaWwgc3RvcmVz LCBidXQgbWF5IHZhcnkuIFByaWNlcyBhbmQgb2ZmZXJzIGFyZSBzdWJqZWN0IHRv IGNoYW5nZS4gJmNvcHk7MjAwMy0yMDA5IEJlc3QgQnV5LiBBbGwgcmlnaHRzIHJl c2VydmVkLiBCZXN0IEJ1eSwgdGhlIEJlc3QgQnV5IGxvZ28sIHRoZSB0YWcgZGVz aWduIGFuZCBCZXN0QnV5LmNvbSBhcmUgdHJhZGVtYXJrcyBvZiBCQlkgU29sdXRp b25zLCBJbmMuIEZvciBwZXJzb25hbCwgbm9uY29tbWVyY2lhbCB1c2Ugb25seS48 L3A+DQoJCTxkaXYgaWQ9ImZ0ckN5YmVyIj4NCgkJCTxhIGhyZWY9Imh0dHBzOi8v c2VjdXJlLmdsb2JhbHNpZ24ubmV0L2VuL2ZpbmQvc2VhbGN0LmNmbT9pZD03NTk2 MzcxMzUiIG5hbWU9IiZsaWQ9ZnRfY3liZXIiPjxpbWcgc3JjPSJodHRwOi8vaW1h Z2VzLmJlc3RidXkuY29tOjgwL0Jlc3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2Jh bC9iYnlmcm9udC9mL2N5YmVydHJ1c3QuZ2lmIiB3aWR0aD0iMTI0IiBoZWlnaHQ9 IjM3IiBhbHQ9IkN5YmVydHJ1c3QgU2VjdXJlZCIgLz48L2E+DQoJCTwvZGl2Pg0K CQk8ZGl2IGlkPSJlc3RhcmFmb290ZXIiPjxhIGhyZWY9ImphdmFzY3JpcHQ6d2Vi Vm9pY2VQb3AoJ1RlbXBsYXRlPTM1NDQwNScpOyIgaWQ9ImZ0cl9lc3RhcmFfYnRu IiBuYW1lPSImbGlkPWZ0X2VzdGFyYSI+PGltZyBzcmM9Imh0dHA6Ly9pbWFnZXMu YmVzdGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9lbl9VUy9pbWFnZXMvZ2xvYmFsL2Vz dGFyYS9mdHJfYnRuX2NsaWNrdG9jYWxsLWVuLmdpZiIgYm9yZGVyPSIwIiBhbHQ9 IkNsaWNrIHRvIENhbGwiIGlkPSJmdHJfZXN0YXJhX2ltZyI+PC9hPjwvZGl2Pg0K CQk8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBpZD0i ZnRyTmF2Ij4NCgkJPHVsPg0KCQkJPGxpIGNsYXNzPSJmdHJGaXJzdCI+PGEgaHJl Zj0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9Y2F0MTIxMDEmYW1wO3R5cGU9cGFnZSZh bXA7Y29udGVudElkPTEwNDMzNjM2MTU3MjImYW1wO2VudHJ5VVJMSUQ9Y2F0MDAw MDAmYW1wO2VudHJ5VVJMVHlwZT1udWxsJmFtcDtoPTI4NyIgb25jbGljaz0iamF2 YXNjcmlwdDpvcGVuQ29udGV4dFNlbnNpdGl2ZUxpbmsoJzEwNDMzNjM2MTU3MjIn KTtyZXR1cm4gZmFsc2U7IiBuYW1lPSImbGlkPWZ0X2NvdSI+Q29uZGl0aW9ucyBv ZiBVc2U8L2E+PC9saT4NCgkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpz cD9pZD1jYXQxMjEwMSZhbXA7dHlwZT1wYWdlJmFtcDtjb250ZW50SWQ9MTA0MzM2 MzYxNTgzNyZhbXA7ZW50cnlVUkxJRD1jYXQwMDAwMCZhbXA7ZW50cnlVUkxUeXBl PW51bGwmYW1wO2g9Mjg3IiBvbmNsaWNrPSJqYXZhc2NyaXB0Om9wZW5Db250ZXh0 U2Vuc2l0aXZlTGluaygnMTA0MzM2MzYxNTgzNycpO3JldHVybiBmYWxzZTsiIG5h bWU9IiZsaWQ9ZnRfbHAiPkxlZ2FsIFBvbGljaWVzPC9hPjwvbGk+DQoJCQk8bGk+ PGEgaHJlZj0iL3NpdGUvb2xzcGFnZS5qc3A/aWQ9Y2F0MTIxMDEmYW1wO3R5cGU9 cGFnZSZhbXA7Y29udGVudElkPTEwNDMzNjM1MzM1ODgmYW1wO2VudHJ5VVJMSUQ9 Y2F0MDAwMDAmYW1wO2VudHJ5VVJMVHlwZT1udWxsJmFtcDtoPTI4NyIgb25jbGlj az0iamF2YXNjcmlwdDpvcGVuQ29udGV4dFNlbnNpdGl2ZUxpbmsoJzEwNDMzNjM1 MzM1ODgnKTtyZXR1cm4gZmFsc2U7IiBuYW1lPSImbGlkPWZ0X3BwIj5Qcml2YWN5 IFBvbGljeTwvYT48L2xpPg0KCQkJPGxpPjxhIGhyZWY9Ii9zaXRlL29sc3BhZ2Uu anNwP2lkPWNhdDEyMTAxJmFtcDt0eXBlPXBhZ2UmYW1wO2NvbnRlbnRJZD0xMDk5 MzkwNzk1MjI4JmFtcDtlbnRyeVVSTElEPWNhdDAwMDAwJmFtcDtlbnRyeVVSTFR5 cGU9bnVsbCZhbXA7aD0yODciIG9uY2xpY2s9ImphdmFzY3JpcHQ6b3BlbkNvbnRl eHRTZW5zaXRpdmVMaW5rKCcxMDk5MzkwNzk1MjI4Jyk7cmV0dXJuIGZhbHNlOyIg bmFtZT0iJmxpZD1mdF9jcHIiPkNhbGlmb3JuaWEgUHJpdmFjeSBSaWdodHM8L2E+ PC9saT4NCgkJCTxsaT48YSBocmVmPSIvc2l0ZS9vbHNwYWdlLmpzcD9pZD1wY21j YXQxODgzMDAwNTAwMTQmdHlwZT1jYXRlZ29yeSIgbmFtZT0iJmxpZD1mdF9scGci PlByaWNlIE1hdGNoIEd1YXJhbnRlZTwvYT48L2xpPg0KCQkJPGxpPjxhIGhyZWY9 Ii9zaXRlL3NpdGVtYXAuanNwPyIgbmFtZT0iJmxpZD1mdF9zbSI+U2l0ZSBNYXA8 L2E+PC9saT4NCgkJCTxsaSBjbGFzcz0iZnRyTGFzdCI+PGEgaHJlZj0iL3NpdGUv b2xzcGFnZS5qc3A/aWQ9cGNtY2F0MTM5NjAwMDUwMDAwJmFtcDt0eXBlPWNhdGVn b3J5IiBuYW1lPSImbGlkPWZ0X3JzcyI+UlNTPC9hPjwvbGk+DQoJCTwvdWw+CQkJ DQoJPC9kaXY+DQo8L2Rpdj4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij4NCgl2YXIgcXVpY2tOYXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVp Y2tOYXYiKTsNCgl2YXIgcXVpY2tOYXZBID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5 SWQoInF1aWNrTmF2IikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKTsNCgl2YXIg cXVpY2tOYXZOZXcgPSAnJzsNCglmb3IgKHZhciBpPTA7aTxxdWlja05hdkEubGVu Z3RoO2krKyl7DQoJCXF1aWNrTmF2TmV3ID0gcXVpY2tOYXZOZXcgKyAnPG9wdGlv biB2YWx1ZT0iJyArIHF1aWNrTmF2QVtpXS5ocmVmICsgJyI+JyArIHF1aWNrTmF2 QVtpXS5pbm5lckhUTUwgKyAnPC9vcHRpb24+JzsNCgl9DQoJcXVpY2tOYXYuaW5u ZXJIVE1MID0gJzxmb3JtIGFjdGlvbj0iLyIgbWV0aG9kPSJnZXQiPjxzZWxlY3Qg bmFtZT0icXVpY2tuYXYiIG9uY2hhbmdlPSJkb1F1aWNrTmF2KHRoaXMub3B0aW9u c1t0aGlzLnNlbGVjdGVkSW5kZXhdLnZhbHVlKSI+PG9wdGlvbiB2YWx1ZT0iIj5N b3JlIEJlc3QgQnV5IFNpdGVzPC9vcHRpb24+JyArIHF1aWNrTmF2TmV3ICsgJzwv c2VsZWN0PjwvZm9ybT4nOw0KPC9zY3JpcHQ+DQo8IS0tIC8xMjE4MTA3Mjg5NjY1 IC0tPg0KCiAKIAo8IS0tIEU6MFhRIC0tPgo8IS0tIEU6MFZOIC0tPgo8IS0tIEI6 MFZOIC0tPgoKCgogIAogIAogIAoKICAKICAgCiAgCiAgCiAgCgoKCgoKCgoKCjwh LS0gQjowWFEgLS0+CgoKCgoKIAoKPCEtLSAxMjAwNzAyNDAwOTgzIC0tPg0KPCEt LSAvMTIwMDcwMjQwMDk4MyAtLT4KIAogCjwhLS0gRTowWFEgLS0+CjwhLS0gRTow Vk4gLS0+CgoKPCEtLSBCOjBHMiAtLT4KCgoKCgoKCgo8dGFibGUgd2lkdGg9Nzgw IGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBib3JkZXI9MD4KPHRyPgo8dGQg d2lkdGg9NjU+PHNjcmlwdD53UygnNjUnLCcxJyk8L3NjcmlwdD48L3RkPgo8dGQg dmFsaWduPSJ0b3AiPgo8c3BhbiBjbGFzcz0iTGVnYWwtR3JleSI+Cjxicj4KPGJy Pgo8L3NwYW4+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CgoKCgoKCgo8IS0tIEU6MEcy IC0tPgoKCgoKCgoKCgoKCgoKCjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQi KT4KdmFyIENJX0NhdElEID0gJyc7CnZhciBDSV9DYXROYW1lPSAnJzsKdmFyIENJ X0l0ZW1JRCA9Jyc7CnZhciBDSV9JdGVtTmFtZSA9ICcnOwp2YXIgQ0lfRW52SUQg PSAnUFJPRCc7Cjwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHA6Ly9jdHMuY2hh bm5lbGludGVsbGlnZW5jZS5jb20vMTEzMDNfbGFuZGluZy5qcyI+Cjwvc2NyaXB0 PgoKCgoKCjwhLS0gQjowVk4gLS0+CgoKCiAgCiAgCiAgCgogIAogICAKICAKICAK ICAKCgoKCgoKCgoKPCEtLSBCOjBYUSAtLT4KCgoKCgogCgoNCg0KPCEtLSAxMjE4 MTAwMjg1ODUzIC0tPg0KDQoNCg0KCQ0KCQ0KCQ0KDQoJDQoJDQoJDQoNCjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9pbWFnZXMuYmVz dGJ1eS5jb206ODAvQmVzdEJ1eV9VUy9qcy90cmFja2luZy9saXZlTWFuYWdlci5q cyI+PC9zY3JpcHQ+DQoJDQoNCjwhLS0gLzEyMTgxMDAyODU4NTMgLS0+DQoKIAog CjwhLS0gRTowWFEgLS0+CjwhLS0gRTowVk4gLS0+CjwvZGl2PgoKCjwhLS0gRTow RzUgLS0+CgoKCgoKPCEtLSBFOjBaViAtLT4KCjwhLS0gRTowWlggLS0+CgogCiAK IAogICAKCgoKCgoKCjwhLS0gRTowT0UgLS0+CgoKCjxub3NjcmlwdD48aWZyYW1l CnNyYz0iaHR0cDovL3Jldmlld3MuYmVzdGJ1eS5jb20vMzU0NWEvODc0OTI4Ny9y ZXZpZXdzLmh0bT9mb3JtYXQ9bm9zY3JpcHQiCndpZHRoPSIxMDAlIj4gPC9pZnJh bWU+PGJyPgo8L25vc2NyaXB0PgoKCjxkaXYgaWQ9IkJWUmV0dXJuVVJMIiBzdHls ZT0iZGlzcGxheTogbm9uZTsiPmh0dHA6Ly93d3cuYmVzdGJ1eS5jb20vc2l0ZS9v bHNwYWdlLmpzcD9za3VJZD04NzQ5Mjg3JnR5cGU9cHJvZHVjdCZwcm9kdWN0Q2F0 ZWdvcnlJZD1hYmNhdDAxMDEwMDEmdGFiPTcmaWQ9MTIwMjY0OTQyNDE1NzwvZGl2 Pgo8ZGl2PjxpZnJhbWUgaWQ9IkJWRnJhbWUiIG5hbWU9IkJWRnJhbWUiCnNyYz0i aHR0cDovL3Jldmlld3MuYmVzdGJ1eS5jb20vMzU0NWEvODc0OTI4Ny9yZXZpZXdz Lmh0bT9mb3JtYXQ9ZW1iZWRkZWQiCnN0eWxlPSJ2aXNpYmlsaXR5OiBoaWRkZW47 IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IGxl ZnQ6IC05OTlweDsgdG9wOiAtOTk5cHg7Ij48L2lmcmFtZT48L2Rpdj4KCgoKCjxk aXYgaWQ9IkJWQ29udGFpbmVyUGFnZVVSTCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7 Ij5odHRwOi8vd3d3LmJlc3RidXkuY29tL3NpdGUvb2xzcGFnZS5qc3A/aWQ9cGNh dDE3MTAwJnR5cGU9cGFnZTwvZGl2PgoKCgo8IS0tIEI6MDA1IC0tPgoKCgoKCgoK PCEtLSBkZXNxeXc1anp7PEIvZW5zc3F5aHh5PUAgLS0+Cgo8IS0tIEU6MDA1IC0t PgoKCjwhLS0gQjowVlcgLS0+CgoKCgoKCjwhLS0gRTowVlcgLS0+CjwvYm9keT4K PC9odG1sPgo8IS0tIEU6MDA2IC0tPgo= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=jquery-1.2.3.min.js Content-Type: application/javascript; name=jquery-1.2.3.min.js Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/jQuery/jquery-1.2.3.min.js Content-Transfer-Encoding: Base64 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=ui.tabs.js Content-Type: application/javascript; name=ui.tabs.js Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/jQuery/ui.tabs.js Content-Transfer-Encoding: Base64 LyoNCiAqIFRhYnMgMyAtIE5ldyBXYXZlIFRhYnMNCiAqDQogKiBDb3B5cmlnaHQg KGMpIDIwMDcgS2xhdXMgSGFydGwgKHN0aWxidWVyby5kZSkNCiAqIER1YWwgbGlj ZW5zZWQgdW5kZXIgdGhlIE1JVCAoTUlULUxJQ0VOU0UudHh0KQ0KICogYW5kIEdQ TCAoR1BMLUxJQ0VOU0UudHh0KSBsaWNlbnNlcy4NCiAqDQogKiBodHRwOi8vZG9j cy5qcXVlcnkuY29tL1VJL1RhYnMNCiAqLw0KDQovLyBNb2RpZmllZCB0byBsb2Fk IGFmdGVyIGpRdWVyeQ0KDQpsb2FkVGFiVUkgPSBmdW5jdGlvbigpew0KDQogICAg Ly8gaWYgdGhlIFVJIHNjb3BlIGlzIG5vdCBhdmFpbGFsYWJsZSwgYWRkIGl0DQog ICAgJC51aSA9ICQudWkgfHwge307DQoNCiAgICAvLyB0YWJzIEFQSSBtZXRob2Rz DQogICAgJC5mbi50YWJzID0gZnVuY3Rpb24oKSB7DQogICAgICAgIHZhciBtZXRo b2QgPSB0eXBlb2YgYXJndW1lbnRzWzBdID09ICdzdHJpbmcnICYmIGFyZ3VtZW50 c1swXTsNCiAgICAgICAgdmFyIGFyZ3MgPSBtZXRob2QgJiYgQXJyYXkucHJvdG90 eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSB8fCBhcmd1bWVudHM7DQoNCiAg ICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHsNCiAgICAgICAgICAg IGlmIChtZXRob2QpIHsNCiAgICAgICAgICAgICAgICB2YXIgdGFicyA9ICQuZGF0 YSh0aGlzLCAndWktdGFicycpOw0KICAgICAgICAgICAgICAgIHRhYnNbbWV0aG9k XS5hcHBseSh0YWJzLCBhcmdzKTsNCiAgICAgICAgICAgIH0gZWxzZQ0KICAgICAg ICAgICAgICAgIG5ldyAkLnVpLnRhYnModGhpcywgYXJnc1swXSB8fCB7fSk7DQog ICAgICAgIH0pOw0KICAgIH07DQoNCiAgICAvLyB0YWJzIGNsYXNzDQogICAgJC51 aS50YWJzID0gZnVuY3Rpb24oZWwsIG9wdGlvbnMpIHsNCiAgICAgICAgdmFyIHNl bGYgPSB0aGlzOw0KDQogICAgICAgIHRoaXMuZWxlbWVudCA9IGVsOw0KDQogICAg ICAgIHRoaXMub3B0aW9ucyA9ICQuZXh0ZW5kKHsNCg0KICAgICAgICAgICAgLy8g YmFzaWMgc2V0dXANCiAgICAgICAgICAgIHNlbGVjdGVkOiAwLA0KICAgICAgICAg ICAgdW5zZWxlY3Q6IG9wdGlvbnMuc2VsZWN0ZWQgPT09IG51bGwsDQogICAgICAg ICAgICBldmVudDogJ2NsaWNrJywNCiAgICAgICAgICAgIGRpc2FibGVkOiBbXSwN CiAgICAgICAgICAgIGNvb2tpZTogbnVsbCwgLy8gcGFzcyBvcHRpb25zIG9iamVj dCBhcyBleHBlY3RlZCBieSBjb29raWUgcGx1Z2luOiB7IGV4cGlyZXM6IDcsIHBh dGg6ICcvJywgZG9tYWluOiAnanF1ZXJ5LmNvbScsIHNlY3VyZTogdHJ1ZSB9DQog ICAgICAgICAgICAvLyBUT0RPIGJvb2ttYXJrYWJsZTogJC5hamF4SGlzdG9yeSA/ IHRydWUgOiBmYWxzZSwNCg0KICAgICAgICAgICAgLy8gQWpheA0KICAgICAgICAg ICAgc3Bpbm5lcjogJ0xvYWRpbmcmIzgyMzA7JywNCiAgICAgICAgICAgIGNhY2hl OiBmYWxzZSwNCiAgICAgICAgICAgIGlkUHJlZml4OiAndWktdGFicy0nLA0KICAg ICAgICAgICAgYWpheE9wdGlvbnM6IHt9LA0KDQogICAgICAgICAgICAvLyBhbmlt YXRpb25zDQogICAgICAgICAgICBmeDogbnVsbCwgLyogZS5nLiB7IGhlaWdodDog J3RvZ2dsZScsIG9wYWNpdHk6ICd0b2dnbGUnLCBkdXJhdGlvbjogMjAwIH0gKi8N Cg0KICAgICAgICAgICAgLy8gdGVtcGxhdGVzDQogICAgICAgICAgICB0YWJUZW1w bGF0ZTogJzxsaT48YSBocmVmPSIje2hyZWZ9Ij48c3Bhbj4je2xhYmVsfTwvc3Bh bj48L2E+PC9saT4nLA0KICAgICAgICAgICAgcGFuZWxUZW1wbGF0ZTogJzxkaXY+ PC9kaXY+JywNCg0KICAgICAgICAgICAgLy8gQ1NTIGNsYXNzZXMNCiAgICAgICAg ICAgIG5hdkNsYXNzOiAndWktdGFicy1uYXYnLA0KICAgICAgICAgICAgc2VsZWN0 ZWRDbGFzczogJ3VpLXRhYnMtc2VsZWN0ZWQnLA0KICAgICAgICAgICAgdW5zZWxl Y3RDbGFzczogJ3VpLXRhYnMtdW5zZWxlY3QnLA0KICAgICAgICAgICAgZGlzYWJs ZWRDbGFzczogJ3VpLXRhYnMtZGlzYWJsZWQnLA0KICAgICAgICAgICAgcGFuZWxD bGFzczogJ3VpLXRhYnMtcGFuZWwnLA0KICAgICAgICAgICAgaGlkZUNsYXNzOiAn dWktdGFicy1oaWRlJywNCiAgICAgICAgICAgIGxvYWRpbmdDbGFzczogJ3VpLXRh YnMtbG9hZGluZycNCg0KICAgICAgICB9LCBvcHRpb25zKTsNCg0KICAgICAgICB0 aGlzLm9wdGlvbnMuZXZlbnQgKz0gJy51aS10YWJzJzsgLy8gbmFtZXNwYWNlIGV2 ZW50DQogICAgICAgIHRoaXMub3B0aW9ucy5jb29raWUgPSAkLmNvb2tpZSAmJiAk LmNvb2tpZS5jb25zdHJ1Y3RvciA9PSBGdW5jdGlvbiAmJiB0aGlzLm9wdGlvbnMu Y29va2llOw0KDQogICAgICAgICQoZWwpLmJpbmQoJ3NldERhdGEudWktdGFicycs IGZ1bmN0aW9uKGV2ZW50LCBrZXksIHZhbHVlKSB7DQogICAgICAgICAgICBzZWxm Lm9wdGlvbnNba2V5XSA9IHZhbHVlOw0KICAgICAgICAgICAgdGhpcy50YWJpZnko KTsNCiAgICAgICAgfSkuYmluZCgnZ2V0RGF0YS51aS10YWJzJywgZnVuY3Rpb24o ZXZlbnQsIGtleSkgew0KICAgICAgICAgICAgcmV0dXJuIHNlbGYub3B0aW9uc1tr ZXldOw0KICAgICAgICB9KTsNCg0KICAgICAgICAvLyBzYXZlIGluc3RhbmNlIGZv ciBsYXRlcg0KICAgICAgICAkLmRhdGEoZWwsICd1aS10YWJzJywgdGhpcyk7DQoN CiAgICAgICAgLy8gY3JlYXRlIHRhYnMNCiAgICAgICAgdGhpcy50YWJpZnkodHJ1 ZSk7DQogICAgfTsNCg0KICAgIC8vIGluc3RhbmNlIG1ldGhvZHMNCiAgICAkLmV4 dGVuZCgkLnVpLnRhYnMucHJvdG90eXBlLCB7DQogICAgICAgIHRhYklkOiBmdW5j dGlvbihhKSB7DQogICAgICAgICAgICByZXR1cm4gYS50aXRsZSAmJiBhLnRpdGxl LnJlcGxhY2UoL1xzL2csICdfJykucmVwbGFjZSgvW15BLVphLXowLTlcLV86XC5d L2csICcnKQ0KICAgICAgICAgICAgICAgIHx8IHRoaXMub3B0aW9ucy5pZFByZWZp eCArICQuZGF0YShhKTsNCiAgICAgICAgfSwNCiAgICAgICAgdWk6IGZ1bmN0aW9u KHRhYiwgcGFuZWwpIHsNCiAgICAgICAgICAgIHJldHVybiB7DQogICAgICAgICAg ICAgICAgaW5zdGFuY2U6IHRoaXMsDQogICAgICAgICAgICAgICAgb3B0aW9uczog dGhpcy5vcHRpb25zLA0KICAgICAgICAgICAgICAgIHRhYjogdGFiLA0KICAgICAg ICAgICAgICAgIHBhbmVsOiBwYW5lbA0KICAgICAgICAgICAgfTsNCiAgICAgICAg fSwNCiAgICAgICAgdGFiaWZ5OiBmdW5jdGlvbihpbml0KSB7DQoNCiAgICAgICAg ICAgIHRoaXMuJGxpcyA9ICQoJ2xpOmhhcyhhW2hyZWZdKScsIHRoaXMuZWxlbWVu dCk7DQogICAgICAgICAgICB0aGlzLiR0YWJzID0gdGhpcy4kbGlzLm1hcChmdW5j dGlvbigpIHsgcmV0dXJuICQoJ2EnLCB0aGlzKVswXTsgfSk7DQogICAgICAgICAg ICB0aGlzLiRwYW5lbHMgPSAkKFtdKTsNCg0KICAgICAgICAgICAgdmFyIHNlbGYg PSB0aGlzLCBvID0gdGhpcy5vcHRpb25zOw0KDQogICAgICAgICAgICB0aGlzLiR0 YWJzLmVhY2goZnVuY3Rpb24oaSwgYSkgew0KICAgICAgICAgICAgICAgIC8vIGlu bGluZSB0YWINCiAgICAgICAgICAgICAgICBpZiAoYS5oYXNoICYmIGEuaGFzaC5y ZXBsYWNlKCcjJywgJycpKSAvLyBTYWZhcmkgMiByZXBvcnRzICcjJyBmb3IgYW4g ZW1wdHkgaGFzaA0KICAgICAgICAgICAgICAgICAgICBzZWxmLiRwYW5lbHMgPSBz ZWxmLiRwYW5lbHMuYWRkKGEuaGFzaCk7DQogICAgICAgICAgICAgICAgLy8gcmVt b3RlIHRhYg0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKCQoYSkuYXR0cignaHJl ZicpICE9ICcjJykgeyAvLyBwcmV2ZW50IGxvYWRpbmcgdGhlIHBhZ2UgaXRzZWxm IGlmIGhyZWYgaXMganVzdCAiIyINCiAgICAgICAgICAgICAgICAgICAgJC5kYXRh KGEsICdocmVmLnVpLXRhYnMnLCBhLmhyZWYpOyAvLyByZXF1aXJlZCBmb3IgcmVz dG9yZSBvbiBkZXN0cm95DQogICAgICAgICAgICAgICAgICAgICQuZGF0YShhLCAn bG9hZC51aS10YWJzJywgYS5ocmVmKTsgLy8gbXV0YWJsZQ0KICAgICAgICAgICAg ICAgICAgICB2YXIgaWQgPSBzZWxmLnRhYklkKGEpOw0KICAgICAgICAgICAgICAg ICAgICBhLmhyZWYgPSAnIycgKyBpZDsNCiAgICAgICAgICAgICAgICAgICAgdmFy ICRwYW5lbCA9ICQoJyMnICsgaWQpOw0KICAgICAgICAgICAgICAgICAgICBpZiAo ISRwYW5lbC5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRwYW5l bCA9ICQoby5wYW5lbFRlbXBsYXRlKS5hdHRyKCdpZCcsIGlkKS5hZGRDbGFzcyhv LnBhbmVsQ2xhc3MpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLmluc2Vy dEFmdGVyKCBzZWxmLiRwYW5lbHNbaSAtIDFdIHx8IHNlbGYuZWxlbWVudCApOw0K ICAgICAgICAgICAgICAgICAgICAgICAgJHBhbmVsLmRhdGEoJ2Rlc3Ryb3kudWkt dGFicycsIHRydWUpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIHNlbGYuJHBhbmVscyA9IHNlbGYuJHBhbmVscy5hZGQoICRwYW5l bCApOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAvLyBpbnZh bGlkIHRhYiBocmVmDQogICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAg ICAgICAgICBvLmRpc2FibGVkLnB1c2goaSArIDEpOw0KICAgICAgICAgICAgfSk7 DQoNCiAgICAgICAgICAgIGlmIChpbml0KSB7DQoNCiAgICAgICAgICAgICAgICAv LyBhdHRhY2ggbmVjZXNzYXJ5IGNsYXNzZXMgZm9yIHN0eWxpbmcgaWYgbm90IHBy ZXNlbnQNCiAgICAgICAgICAgICAgICAkKHRoaXMuZWxlbWVudCkuaGFzQ2xhc3Mo by5uYXZDbGFzcykgfHwgJCh0aGlzLmVsZW1lbnQpLmFkZENsYXNzKG8ubmF2Q2xh c3MpOw0KICAgICAgICAgICAgICAgIHRoaXMuJHBhbmVscy5lYWNoKGZ1bmN0aW9u KCkgew0KICAgICAgICAgICAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpOw0K ICAgICAgICAgICAgICAgICAgICAkdGhpcy5oYXNDbGFzcyhvLnBhbmVsQ2xhc3Mp IHx8ICR0aGlzLmFkZENsYXNzKG8ucGFuZWxDbGFzcyk7DQogICAgICAgICAgICAg ICAgfSk7DQoNCiAgICAgICAgICAgICAgICAvLyBkaXNhYmxlZCB0YWJzDQogICAg ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDAsIGluZGV4OyBpbmRleCA9IG8uZGlz YWJsZWRbaV07IGkrKykNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxl KGluZGV4KTsNCg0KICAgICAgICAgICAgICAgIC8vIFRyeSB0byByZXRyaWV2ZSBz ZWxlY3RlZCB0YWI6DQogICAgICAgICAgICAgICAgLy8gMS4gZnJvbSBmcmFnbWVu dCBpZGVudGlmaWVyIGluIHVybCBpZiBwcmVzZW50DQogICAgICAgICAgICAgICAg Ly8gMi4gZnJvbSBjb29raWUNCiAgICAgICAgICAgICAgICAvLyAzLiBmcm9tIHNl bGVjdGVkIGNsYXNzIGF0dHJpYnV0ZSBvbiA8bGk+DQogICAgICAgICAgICAgICAg Ly8gNC4gb3RoZXJ3aXNlIHVzZSBnaXZlbiAic2VsZWN0ZWQiIG9wdGlvbg0KICAg ICAgICAgICAgICAgIC8vIDUuIGNoZWNrIGlmIHRhYiBpcyBkaXNhYmxlZA0KICAg ICAgICAgICAgICAgIHRoaXMuJHRhYnMuZWFjaChmdW5jdGlvbihpLCBhKSB7DQog ICAgICAgICAgICAgICAgICAgIGlmIChsb2NhdGlvbi5oYXNoKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICBpZiAoYS5oYXNoID09IGxvY2F0aW9uLmhhc2gpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLnNlbGVjdGVkID0gaTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IHBhZ2Ugc2Nyb2xs IHRvIGZyYWdtZW50DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9pZiAo KCQuYnJvd3Nlci5tc2llIHx8ICQuYnJvd3Nlci5vcGVyYSkgJiYgIW8ucmVtb3Rl KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQuYnJvd3Nlci5t c2llIHx8ICQuYnJvd3Nlci5vcGVyYSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2YXIgJHRvU2hvdyA9ICQobG9jYXRpb24uaGFzaCksIHRvU2hv d0lkID0gJHRvU2hvdy5hdHRyKCdpZCcpOw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkdG9TaG93LmF0dHIoJ2lkJywgJycpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRvU2hvdy5hdHRyKCdp ZCcsIHRvU2hvd0lkKTsgLy8gcmVzdG9yZSBpZA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCA1MDApOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbygwLCAw KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8v IGJyZWFrDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgIH0gZWxzZSBpZiAoby5jb29raWUpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIHZhciBpbmRleCA9IHBhcnNlSW50KCQuY29va2llKCd1aS10YWJzJyAr ICQuZGF0YShzZWxmLmVsZW1lbnQpKSwxMCk7DQogICAgICAgICAgICAgICAgICAg ICAgICBpZiAoaW5kZXggJiYgc2VsZi4kdGFic1tpbmRleF0pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvLnNlbGVjdGVkID0gaW5kZXg7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBicmVhaw0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9IGVs c2UgaWYgKCBzZWxmLiRsaXMuZXEoaSkuaGFzQ2xhc3Moby5zZWxlY3RlZENsYXNz KSApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIG8uc2VsZWN0ZWQgPSBpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBicmVhaw0K ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSk7DQogICAg ICAgICAgICAgICAgdmFyIG4gPSB0aGlzLiRsaXMubGVuZ3RoOw0KICAgICAgICAg ICAgICAgIHdoaWxlICh0aGlzLiRsaXMuZXEoby5zZWxlY3RlZCkuaGFzQ2xhc3Mo by5kaXNhYmxlZENsYXNzKSAmJiBuKSB7DQogICAgICAgICAgICAgICAgICAgIG8u c2VsZWN0ZWQgPSArK28uc2VsZWN0ZWQgPCB0aGlzLiRsaXMubGVuZ3RoID8gby5z ZWxlY3RlZCA6IDA7DQogICAgICAgICAgICAgICAgICAgIG4tLTsNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCFuKSAvLyBhbGwgdGFicyBk aXNhYmxlZCwgc2V0IG9wdGlvbiB1bnNlbGVjdCB0byB0cnVlDQogICAgICAgICAg ICAgICAgICAgIG8udW5zZWxlY3QgPSB0cnVlOw0KDQogICAgICAgICAgICAgICAg Ly8gaGlnaGxpZ2h0IHNlbGVjdGVkIHRhYg0KICAgICAgICAgICAgICAgIHRoaXMu JHBhbmVscy5hZGRDbGFzcyhvLmhpZGVDbGFzcyk7DQogICAgICAgICAgICAgICAg dGhpcy4kbGlzLnJlbW92ZUNsYXNzKG8uc2VsZWN0ZWRDbGFzcyk7DQogICAgICAg ICAgICAgICAgaWYgKCFvLnVuc2VsZWN0KSB7DQogICAgICAgICAgICAgICAgICAg IHRoaXMuJHBhbmVscy5lcShvLnNlbGVjdGVkKS5zaG93KCkucmVtb3ZlQ2xhc3Mo by5oaWRlQ2xhc3MpOyAvLyB1c2Ugc2hvdyBhbmQgcmVtb3ZlIGNsYXNzIHRvIHNo b3cgaW4gYW55IGNhc2Ugbm8gbWF0dGVyIGhvdyBpdCBoYXMgYmVlbiBoaWRkZW4g YmVmb3JlDQogICAgICAgICAgICAgICAgICAgIHRoaXMuJGxpcy5lcShvLnNlbGVj dGVkKS5hZGRDbGFzcyhvLnNlbGVjdGVkQ2xhc3MpOw0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIC8vIGxvYWQgaWYgcmVtb3RlIHRhYg0KICAg ICAgICAgICAgICAgIHZhciBocmVmID0gIW8udW5zZWxlY3QgJiYgJC5kYXRhKHRo aXMuJHRhYnNbby5zZWxlY3RlZF0sICdsb2FkLnVpLXRhYnMnKTsNCiAgICAgICAg ICAgICAgICBpZiAoaHJlZikNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2Fk KG8uc2VsZWN0ZWQsIGhyZWYpOw0KDQogICAgICAgICAgICAgICAgLy8gZGlzYWJs ZSBjbGljayBpZiBldmVudCBpcyBjb25maWd1cmVkIHRvIHNvbWV0aGluZyBlbHNl DQogICAgICAgICAgICAgICAgaWYgKCEoL15jbGljay8pLnRlc3Qoby5ldmVudCkp DQogICAgICAgICAgICAgICAgICAgIHRoaXMuJHRhYnMuYmluZCgnY2xpY2snLCBm dW5jdGlvbihlKSB7IGUucHJldmVudERlZmF1bHQoKTsgfSk7DQoNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgdmFyIGhpZGVGeCwgc2hvd0Z4LCBiYXNlRngg PSB7ICdtaW4td2lkdGgnOiAwLCBkdXJhdGlvbjogMSB9LCBiYXNlRHVyYXRpb24g PSAnbm9ybWFsJzsNCiAgICAgICAgICAgIGlmIChvLmZ4ICYmIG8uZnguY29uc3Ry dWN0b3IgPT0gQXJyYXkpDQogICAgICAgICAgICAgICAgaGlkZUZ4ID0gby5meFsw XSB8fCBiYXNlRngsIHNob3dGeCA9IG8uZnhbMV0gfHwgYmFzZUZ4Ow0KICAgICAg ICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgIGhpZGVGeCA9IHNob3dGeCA9IG8u ZnggfHwgYmFzZUZ4Ow0KDQogICAgICAgICAgICAvLyByZXNldCBzb21lIHN0eWxl cyB0byBtYWludGFpbiBwcmludCBzdHlsZSBzaGVldHMgZXRjLg0KICAgICAgICAg ICAgdmFyIHJlc2V0Q1NTID0geyBkaXNwbGF5OiAnJywgb3ZlcmZsb3c6ICcnLCBo ZWlnaHQ6ICcnIH07DQogICAgICAgICAgICBpZiAoISQuYnJvd3Nlci5tc2llKSAv LyBub3QgaW4gSUUgdG8gcHJldmVudCBDbGVhclR5cGUgZm9udCBpc3N1ZQ0KICAg ICAgICAgICAgICAgIHJlc2V0Q1NTLm9wYWNpdHkgPSAnJzsNCg0KICAgICAgICAg ICAgLy8gSGlkZSBhIHRhYiwgYW5pbWF0aW9uIHByZXZlbnRzIGJyb3dzZXIgc2Ny b2xsaW5nIHRvIGZyYWdtZW50LA0KICAgICAgICAgICAgLy8gJHNob3cgaXMgb3B0 aW9uYWwuDQogICAgICAgICAgICBmdW5jdGlvbiBoaWRlVGFiKGNsaWNrZWQsICRo aWRlLCAkc2hvdykgew0KICAgICAgICAgICAgICAgICRoaWRlLmFuaW1hdGUoaGlk ZUZ4LCBoaWRlRnguZHVyYXRpb24gfHwgYmFzZUR1cmF0aW9uLCBmdW5jdGlvbigp IHsgLy8NCiAgICAgICAgICAgICAgICAgICAgJGhpZGUuYWRkQ2xhc3Moby5oaWRl Q2xhc3MpLmNzcyhyZXNldENTUyk7IC8vIG1haW50YWluIGZsZXhpYmxlIGhlaWdo dCBhbmQgYWNjZXNzaWJpbGl0eSBpbiBwcmludCBldGMuDQogICAgICAgICAgICAg ICAgICAgIGlmICgkLmJyb3dzZXIubXNpZSAmJiBoaWRlRngub3BhY2l0eSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICRoaWRlWzBdLnN0eWxlLmZpbHRlciA9ICcn Ow0KICAgICAgICAgICAgICAgICAgICBpZiAoJHNob3cpDQogICAgICAgICAgICAg ICAgICAgICAgICBzaG93VGFiKGNsaWNrZWQsICRzaG93LCAkaGlkZSk7DQogICAg ICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8v IFNob3cgYSB0YWIsIGFuaW1hdGlvbiBwcmV2ZW50cyBicm93c2VyIHNjcm9sbGlu ZyB0byBmcmFnbWVudCwNCiAgICAgICAgICAgIC8vICRoaWRlIGlzIG9wdGlvbmFs Lg0KICAgICAgICAgICAgZnVuY3Rpb24gc2hvd1RhYihjbGlja2VkLCAkc2hvdywg JGhpZGUpIHsNCiAgICAgICAgICAgICAgICBpZiAoc2hvd0Z4ID09PSBiYXNlRngp DQogICAgICAgICAgICAgICAgICAgICRzaG93LmNzcygnZGlzcGxheScsICdibG9j aycpOyAvLyBwcmV2ZW50IG9jY2FzaW9uYWxseSBvY2N1cmluZyBmbGlja2VyIGlu IEZpcmVmb3ggY2F1c2UgYnkgZ2FwIGJldHdlZW4gc2hvd2luZyBhbmQgaGlkaW5n IHRoZSB0YWIgcGFuZWxzDQogICAgICAgICAgICAgICAgJHNob3cuYW5pbWF0ZShz aG93RngsIHNob3dGeC5kdXJhdGlvbiB8fCBiYXNlRHVyYXRpb24sIGZ1bmN0aW9u KCkgew0KICAgICAgICAgICAgICAgICAgICAkc2hvdy5yZW1vdmVDbGFzcyhvLmhp ZGVDbGFzcykuY3NzKHJlc2V0Q1NTKTsgLy8gbWFpbnRhaW4gZmxleGlibGUgaGVp Z2h0IGFuZCBhY2Nlc3NpYmlsaXR5IGluIHByaW50IGV0Yy4NCiAgICAgICAgICAg ICAgICAgICAgaWYgKCQuYnJvd3Nlci5tc2llICYmIHNob3dGeC5vcGFjaXR5KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgJHNob3dbMF0uc3R5bGUuZmlsdGVyID0g Jyc7DQoNCiAgICAgICAgICAgICAgICAgICAgLy8gY2FsbGJhY2sNCiAgICAgICAg ICAgICAgICAgICAgJChzZWxmLmVsZW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJzaG93 LnVpLXRhYnMiLCBbc2VsZi51aShjbGlja2VkLCAkc2hvd1swXSldKTsNCg0KICAg ICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAv LyBzd2l0Y2ggYSB0YWINCiAgICAgICAgICAgIGZ1bmN0aW9uIHN3aXRjaFRhYihj bGlja2VkLCAkbGksICRoaWRlLCAkc2hvdykgew0KICAgICAgICAgICAgICAgIC8q aWYgKG8uYm9va21hcmthYmxlICYmIHRydWVDbGljaykgeyAvLyBhZGQgdG8gaGlz dG9yeSBvbmx5IGlmIHRydWUgY2xpY2sgb2NjdXJlZCwgbm90IGEgdHJpZ2dlcmVk IGNsaWNrDQogICAgICAgICAgICAgICAgICAgICQuYWpheEhpc3RvcnkudXBkYXRl KGNsaWNrZWQuaGFzaCk7DQogICAgICAgICAgICAgICAgfSovDQogICAgICAgICAg ICAgICAgJGxpLmFkZENsYXNzKG8uc2VsZWN0ZWRDbGFzcykNCiAgICAgICAgICAg ICAgICAgICAgLnNpYmxpbmdzKCkucmVtb3ZlQ2xhc3Moby5zZWxlY3RlZENsYXNz KTsNCiAgICAgICAgICAgICAgICBoaWRlVGFiKGNsaWNrZWQsICRoaWRlLCAkc2hv dyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIGF0dGFjaCB0YWIg ZXZlbnQgaGFuZGxlciwgdW5iaW5kIHRvIGF2b2lkIGR1cGxpY2F0ZXMgZnJvbSBm b3JtZXIgdGFiaWZ5aW5nLi4uDQogICAgICAgICAgICB0aGlzLiR0YWJzLnVuYmlu ZChvLmV2ZW50KS5iaW5kKG8uZXZlbnQsIGZ1bmN0aW9uKCkgew0KDQogICAgICAg ICAgICAgICAgLy92YXIgdHJ1ZUNsaWNrID0gZS5jbGllbnRYOyAvLyBhZGQgdG8g aGlzdG9yeSBvbmx5IGlmIHRydWUgY2xpY2sgb2NjdXJlZCwgbm90IGEgdHJpZ2dl cmVkIGNsaWNrDQogICAgICAgICAgICAgICAgdmFyICRsaSA9ICQodGhpcykucGFy ZW50cygnbGk6ZXEoMCknKSwNCiAgICAgICAgICAgICAgICAgICAgJGhpZGUgPSBz ZWxmLiRwYW5lbHMuZmlsdGVyKCc6dmlzaWJsZScpLA0KICAgICAgICAgICAgICAg ICAgICAkc2hvdyA9ICQodGhpcy5oYXNoKTsNCg0KICAgICAgICAgICAgICAgIC8v IElmIHRhYiBpcyBhbHJlYWR5IHNlbGVjdGVkIGFuZCBub3QgdW5zZWxlY3RhYmxl IG9yIHRhYiBkaXNhYmxlZCBvciBjbGljayBjYWxsYmFjayByZXR1cm5zIGZhbHNl IHN0b3AgaGVyZS4NCiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBjbGljayBo YW5kbGVyIHJldHVybnMgZmFsc2UgbGFzdCBzbyB0aGF0IGl0IGlzIG5vdCBleGVj dXRlZCBmb3IgYSBkaXNhYmxlZCB0YWIhDQogICAgICAgICAgICAgICAgaWYgKCgk bGkuaGFzQ2xhc3Moby5zZWxlY3RlZENsYXNzKSAmJiAhby51bnNlbGVjdCkgfHwg JGxpLmhhc0NsYXNzKG8uZGlzYWJsZWRDbGFzcykNCiAgICAgICAgICAgICAgICAg ICAgfHwgJChzZWxmLmVsZW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJzZWxlY3QudWkt dGFicyIsIFtzZWxmLnVpKHRoaXMsICRzaG93WzBdKV0pID09PSBmYWxzZSkgew0K ICAgICAgICAgICAgICAgICAgICB0aGlzLmJsdXIoKTsNCiAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgIHNlbGYub3B0aW9ucy5zZWxlY3RlZCA9IHNlbGYuJHRhYnMuaW5k ZXgodGhpcyk7DQoNCiAgICAgICAgICAgICAgICAvLyBpZiB0YWIgbWF5IGJlIGNs b3NlZA0KICAgICAgICAgICAgICAgIGlmIChvLnVuc2VsZWN0KSB7DQogICAgICAg ICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3Moby5zZWxlY3RlZENsYXNzKSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5vcHRpb25zLnNlbGVjdGVk ID0gbnVsbDsNCiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFz cyhvLnNlbGVjdGVkQ2xhc3MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi4kcGFuZWxzLnN0b3AoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVU YWIodGhpcywgJGhpZGUpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5i bHVyKCk7DQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQog ICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoISRoaWRlLmxlbmd0aCkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi4kcGFuZWxzLnN0b3AoKTsNCiAg ICAgICAgICAgICAgICAgICAgICAgIHZhciBhID0gdGhpczsNCiAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYubG9hZChzZWxmLiR0YWJzLmluZGV4KHRoaXMpLCBm dW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuYWRk Q2xhc3Moby5zZWxlY3RlZENsYXNzKS5hZGRDbGFzcyhvLnVuc2VsZWN0Q2xhc3Mp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUYWIoYSwgJHNob3cp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLmJsdXIoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgIGlmIChvLmNvb2tpZSkNCiAgICAgICAg ICAgICAgICAgICAgJC5jb29raWUoJ3VpLXRhYnMnICsgJC5kYXRhKHNlbGYuZWxl bWVudCksIHNlbGYub3B0aW9ucy5zZWxlY3RlZCwgby5jb29raWUpOw0KDQogICAg ICAgICAgICAgICAgLy8gc3RvcCBwb3NzaWJseSBydW5uaW5nIGFuaW1hdGlvbnMN CiAgICAgICAgICAgICAgICBzZWxmLiRwYW5lbHMuc3RvcCgpOw0KDQogICAgICAg ICAgICAgICAgLy8gc2hvdyBuZXcgdGFiDQogICAgICAgICAgICAgICAgaWYgKCRz aG93Lmxlbmd0aCkgew0KDQogICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnQg c2Nyb2xsYmFyIHNjcm9sbGluZyB0byAwIGFuZCB0aGFuIGJhY2sgaW4gSUU3LCBo YXBwZW5zIG9ubHkgaWYgYm9va21hcmtpbmcvaGlzdG9yeSBpcyBlbmFibGVkDQog ICAgICAgICAgICAgICAgICAgIC8qaWYgKCQuYnJvd3Nlci5tc2llICYmIG8uYm9v a21hcmthYmxlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2hvd0lk ID0gdGhpcy5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7DQogICAgICAgICAgICAgICAg ICAgICAgICAkc2hvdy5hdHRyKCdpZCcsICcnKTsNCiAgICAgICAgICAgICAgICAg ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgJHNob3cuYXR0cignaWQnLCBzaG93SWQpOyAvLyByZXN0b3Jl IGlkDQogICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAgICAg ICAgICAgICAgfSovDQoNCiAgICAgICAgICAgICAgICAgICAgdmFyIGEgPSB0aGlz Ow0KICAgICAgICAgICAgICAgICAgICBzZWxmLmxvYWQoc2VsZi4kdGFicy5pbmRl eCh0aGlzKSwgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBz d2l0Y2hUYWIoYSwgJGxpLCAkaGlkZSwgJHNob3cpOw0KICAgICAgICAgICAgICAg ICAgICB9KTsNCg0KICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2Nyb2xsYmFy IHRvIHNhdmVkIHBvc2l0aW9uIC0gbmVlZCB0byB1c2UgdGltZW91dCB3aXRoIDAg dG8gcHJldmVudCBicm93c2VyIHNjcm9sbCB0byB0YXJnZXQgb2YgaGFzaA0KICAg ICAgICAgICAgICAgICAgICAvKnZhciBzY3JvbGxYID0gd2luZG93LnBhZ2VYT2Zm c2V0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1 bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5LnNjcm9sbExl ZnQgfHwgMDsNCiAgICAgICAgICAgICAgICAgICAgdmFyIHNjcm9sbFkgPSB3aW5k b3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmIGRv Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9k eS5zY3JvbGxUb3AgfHwgMDsNCiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91 dChmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRv KHNjcm9sbFgsIHNjcm9sbFkpOw0KICAgICAgICAgICAgICAgICAgICB9LCAwKTsq Lw0KDQogICAgICAgICAgICAgICAgfSBlbHNlDQogICAgICAgICAgICAgICAgICAg IHRocm93ICdqUXVlcnkgVUkgVGFiczogTWlzbWF0Y2hpbmcgZnJhZ21lbnQgaWRl bnRpZmllci4nOw0KDQogICAgICAgICAgICAgICAgLy8gUHJldmVudCBJRSBmcm9t IGtlZXBpbmcgb3RoZXIgbGluayBmb2N1c3NlZCB3aGVuIHVzaW5nIHRoZSBiYWNr IGJ1dHRvbg0KICAgICAgICAgICAgICAgIC8vIGFuZCByZW1vdmUgZG90dGVkIGJv cmRlciBmcm9tIGNsaWNrZWQgbGluay4gVGhpcyBpcyBjb250cm9sbGVkIGluIG1v ZGVybg0KICAgICAgICAgICAgICAgIC8vIGJyb3dzZXJzIHZpYSBDU1MsIGFsc28g Ymx1ciByZW1vdmVzIGZvY3VzIGZyb20gYWRkcmVzcyBiYXIgaW4gRmlyZWZveA0K ICAgICAgICAgICAgICAgIC8vIHdoaWNoIGNhbiBiZWNvbWUgYSB1c2FiaWxpdHkg YW5kIGFubm95aW5nIHByb2JsZW0gd2l0aCB0YWJzUm90YXRlLg0KICAgICAgICAg ICAgICAgIGlmICgkLmJyb3dzZXIubXNpZSkNCiAgICAgICAgICAgICAgICAgICAg dGhpcy5ibHVyKCk7DQoNCiAgICAgICAgICAgICAgICAvL3JldHVybiBvLmJvb2tt YXJrYWJsZSAmJiAhIXRydWVDbGljazsgLy8gY29udmVydCB0cnVlQ2xpY2sgPT0g dW5kZWZpbmVkIHRvIEJvb2xlYW4gcmVxdWlyZWQgaW4gSUUNCiAgICAgICAgICAg ICAgICByZXR1cm4gZmFsc2U7DQoNCiAgICAgICAgICAgIH0pOw0KDQogICAgICAg IH0sDQogICAgICAgIGFkZDogZnVuY3Rpb24odXJsLCBsYWJlbCwgaW5kZXgpIHsN CiAgICAgICAgICAgIGlmICh1cmwgJiYgbGFiZWwpIHsNCiAgICAgICAgICAgICAg ICBpbmRleCA9IGluZGV4IHx8IHRoaXMuJHRhYnMubGVuZ3RoOyAvLyBhcHBlbmQg YnkgZGVmYXVsdA0KDQogICAgICAgICAgICAgICAgdmFyIG8gPSB0aGlzLm9wdGlv bnM7DQogICAgICAgICAgICAgICAgdmFyICRsaSA9ICQoby50YWJUZW1wbGF0ZS5y ZXBsYWNlKC8jXHtocmVmXH0vLCB1cmwpLnJlcGxhY2UoLyNce2xhYmVsXH0vLCBs YWJlbCkpOw0KICAgICAgICAgICAgICAgICRsaS5kYXRhKCdkZXN0cm95LnVpLXRh YnMnLCB0cnVlKTsNCg0KICAgICAgICAgICAgICAgIHZhciBpZCA9IHVybC5pbmRl eE9mKCcjJykgPT0gMCA/IHVybC5yZXBsYWNlKCcjJywgJycpIDogdGhpcy50YWJJ ZCggJCgnYTpmaXJzdC1jaGlsZCcsICRsaSlbMF0gKTsNCg0KICAgICAgICAgICAg ICAgIC8vIHRyeSB0byBmaW5kIGFuIGV4aXN0aW5nIGVsZW1lbnQgYmVmb3JlIGNy ZWF0aW5nIGEgbmV3IG9uZQ0KICAgICAgICAgICAgICAgIHZhciAkcGFuZWwgPSAk KCcjJyArIGlkKTsNCiAgICAgICAgICAgICAgICBpZiAoISRwYW5lbC5sZW5ndGgp IHsNCiAgICAgICAgICAgICAgICAgICAgJHBhbmVsID0gJChvLnBhbmVsVGVtcGxh dGUpLmF0dHIoJ2lkJywgaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAuYWRk Q2xhc3Moby5wYW5lbENsYXNzKS5hZGRDbGFzcyhvLmhpZGVDbGFzcyk7DQogICAg ICAgICAgICAgICAgICAgICRwYW5lbC5kYXRhKCdkZXN0cm95LnVpLXRhYnMnLCB0 cnVlKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgaWYgKGlu ZGV4ID49IHRoaXMuJGxpcy5sZW5ndGgpIHsNCiAgICAgICAgICAgICAgICAgICAg JGxpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCk7DQogICAgICAgICAgICAgICAgICAg ICRwYW5lbC5hcHBlbmRUbyh0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSk7DQogICAg ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJGxpLmlu c2VydEJlZm9yZSh0aGlzLiRsaXNbaW5kZXhdKTsNCiAgICAgICAgICAgICAgICAg ICAgJHBhbmVsLmluc2VydEJlZm9yZSh0aGlzLiRwYW5lbHNbaW5kZXhdKTsNCiAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICB0aGlzLnRhYmlmeSgp Ow0KDQogICAgICAgICAgICAgICAgaWYgKHRoaXMuJHRhYnMubGVuZ3RoID09IDEp IHsNCiAgICAgICAgICAgICAgICAgICAgICRsaS5hZGRDbGFzcyhvLnNlbGVjdGVk Q2xhc3MpOw0KICAgICAgICAgICAgICAgICAgICAgJHBhbmVsLnJlbW92ZUNsYXNz KG8uaGlkZUNsYXNzKTsNCiAgICAgICAgICAgICAgICAgICAgIHZhciBocmVmID0g JC5kYXRhKHRoaXMuJHRhYnNbMF0sICdsb2FkLnVpLXRhYnMnKTsNCiAgICAgICAg ICAgICAgICAgICAgIGlmIChocmVmKQ0KICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMubG9hZChpbmRleCwgaHJlZik7DQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgLy8gY2FsbGJhY2sNCiAgICAgICAgICAgICAgICAkKHRo aXMuZWxlbWVudCkudHJpZ2dlckhhbmRsZXIoImFkZC51aS10YWJzIiwNCiAgICAg ICAgICAgICAgICAgICAgW3RoaXMudWkodGhpcy4kdGFic1tpbmRleF0sIHRoaXMu JHBhbmVsc1tpbmRleF0pXQ0KICAgICAgICAgICAgICAgICk7DQoNCiAgICAgICAg ICAgIH0gZWxzZQ0KICAgICAgICAgICAgICAgIHRocm93ICdqUXVlcnkgVUkgVGFi czogTm90IGVub3VnaCBhcmd1bWVudHMgdG8gYWRkIHRhYi4nOw0KICAgICAgICB9 LA0KICAgICAgICByZW1vdmU6IGZ1bmN0aW9uKGluZGV4KSB7DQogICAgICAgICAg ICBpZiAoaW5kZXggJiYgaW5kZXguY29uc3RydWN0b3IgPT0gTnVtYmVyKSB7DQog ICAgICAgICAgICAgICAgdmFyIG8gPSB0aGlzLm9wdGlvbnMsICRsaSA9IHRoaXMu JGxpcy5lcShpbmRleCkucmVtb3ZlKCksDQogICAgICAgICAgICAgICAgICAgICRw YW5lbCA9IHRoaXMuJHBhbmVscy5lcShpbmRleCkucmVtb3ZlKCk7DQoNCiAgICAg ICAgICAgICAgICAvLyBJZiBzZWxlY3RlZCB0YWIgd2FzIHJlbW92ZWQgZm9jdXMg dGFiIHRvIHRoZSByaWdodCBvcg0KICAgICAgICAgICAgICAgIC8vIHRhYiB0byB0 aGUgbGVmdCBpZiBsYXN0IHRhYiB3YXMgcmVtb3ZlZC4NCiAgICAgICAgICAgICAg ICBpZiAoJGxpLmhhc0NsYXNzKG8uc2VsZWN0ZWRDbGFzcykgJiYgdGhpcy4kdGFi cy5sZW5ndGggPiAxKQ0KICAgICAgICAgICAgICAgICAgICB0aGlzLmNsaWNrKGlu ZGV4ICsgKGluZGV4IDwgdGhpcy4kdGFicy5sZW5ndGggPyAxIDogLTEpKTsNCiAg ICAgICAgICAgICAgICB0aGlzLnRhYmlmeSgpOw0KDQogICAgICAgICAgICAgICAg Ly8gY2FsbGJhY2sNCiAgICAgICAgICAgICAgICAkKHRoaXMuZWxlbWVudCkudHJp Z2dlckhhbmRsZXIoInJlbW92ZS51aS10YWJzIiwNCiAgICAgICAgICAgICAgICAg ICAgW3RoaXMudWkoJGxpLmZpbmQoJ2EnKVswXSwgJHBhbmVsWzBdKV0NCiAgICAg ICAgICAgICAgICApOw0KDQogICAgICAgICAgICB9DQogICAgICAgIH0sDQogICAg ICAgIGVuYWJsZTogZnVuY3Rpb24oaW5kZXgpIHsNCiAgICAgICAgICAgIHZhciBz ZWxmID0gdGhpcywgbyA9IHRoaXMub3B0aW9ucywgJGxpID0gdGhpcy4kbGlzLmVx KGluZGV4KTsNCiAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhvLmRpc2FibGVk Q2xhc3MpOw0KICAgICAgICAgICAgaWYgKCQuYnJvd3Nlci5zYWZhcmkpIHsgLy8g Zml4IGRpc2FwcGVhcmluZyB0YWIgKHRoYXQgdXNlZCBvcGFjaXR5IGluZGljYXRp bmcgZGlzYWJsaW5nKSBhZnRlciBlbmFibGluZyBpbiBTYWZhcmkgMi4uLg0KICAg ICAgICAgICAgICAgICRsaS5jc3MoJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyk7 DQogICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsNCiAgICAg ICAgICAgICAgICAgICAgJGxpLmNzcygnZGlzcGxheScsICdibG9jaycpOw0KICAg ICAgICAgICAgICAgIH0sIDApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICBvLmRpc2FibGVkID0gJC5tYXAodGhpcy4kbGlzLmZpbHRlcignLicgKyBvLmRp c2FibGVkQ2xhc3MpLA0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uKG4sIGkpIHsg cmV0dXJuIHNlbGYuJGxpcy5pbmRleChuKTsgfSApOw0KDQogICAgICAgICAgICAv LyBjYWxsYmFjaw0KICAgICAgICAgICAgJCh0aGlzLmVsZW1lbnQpLnRyaWdnZXJI YW5kbGVyKCJlbmFibGUudWktdGFicyIsDQogICAgICAgICAgICAgICAgW3RoaXMu dWkodGhpcy4kdGFic1tpbmRleF0sIHRoaXMuJHBhbmVsc1tpbmRleF0pXQ0KICAg ICAgICAgICAgKTsNCg0KICAgICAgICB9LA0KICAgICAgICBkaXNhYmxlOiBmdW5j dGlvbihpbmRleCkgew0KICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCBvID0g dGhpcy5vcHRpb25zOw0KICAgICAgICAgICAgdGhpcy4kbGlzLmVxKGluZGV4KS5h ZGRDbGFzcyhvLmRpc2FibGVkQ2xhc3MpOw0KDQogICAgICAgICAgICBvLmRpc2Fi bGVkID0gJC5tYXAodGhpcy4kbGlzLmZpbHRlcignLicgKyBvLmRpc2FibGVkQ2xh c3MpLA0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uKG4sIGkpIHsgcmV0dXJuIHNl bGYuJGxpcy5pbmRleChuKTsgfSApOw0KDQogICAgICAgICAgICAvLyBjYWxsYmFj aw0KICAgICAgICAgICAgJCh0aGlzLmVsZW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJk aXNhYmxlLnVpLXRhYnMiLA0KICAgICAgICAgICAgICAgIFt0aGlzLnVpKHRoaXMu JHRhYnNbaW5kZXhdLCB0aGlzLiRwYW5lbHNbaW5kZXhdKV0NCiAgICAgICAgICAg ICk7DQoNCiAgICAgICAgfSwNCiAgICAgICAgc2VsZWN0OiBmdW5jdGlvbihpbmRl eCkgew0KICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmRleCA9PSAnc3RyaW5nJykN CiAgICAgICAgICAgICAgICBpbmRleCA9IHRoaXMuJHRhYnMuaW5kZXgoIHRoaXMu JHRhYnMuZmlsdGVyKCdbaHJlZiQ9JyArIGluZGV4ICsgJ10nKVswXSApOw0KICAg ICAgICAgICAgdGhpcy4kdGFicy5lcShpbmRleCkudHJpZ2dlcih0aGlzLm9wdGlv bnMuZXZlbnQpOw0KICAgICAgICB9LA0KICAgICAgICBsb2FkOiBmdW5jdGlvbihp bmRleCwgY2FsbGJhY2spIHsgLy8gY2FsbGJhY2sgaXMgZm9yIGludGVybmFsIHVz YWdlIG9ubHkNCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcywgbyA9IHRoaXMu b3B0aW9ucywNCiAgICAgICAgICAgICAgICAkYSA9IHRoaXMuJHRhYnMuZXEoaW5k ZXgpLCBhID0gJGFbMF07DQoNCiAgICAgICAgICAgIHZhciB1cmwgPSAkYS5kYXRh KCdsb2FkLnVpLXRhYnMnKTsNCg0KICAgICAgICAgICAgLy8gbm8gcmVtb3RlIC0g anVzdCBmaW5pc2ggd2l0aCBjYWxsYmFjaw0KICAgICAgICAgICAgaWYgKCF1cmwp IHsNCiAgICAgICAgICAgICAgICB0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9u JyAmJiBjYWxsYmFjaygpOw0KICAgICAgICAgICAgICAgIHJldHVybjsNCiAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgLy8gbG9hZCByZW1vdGUgZnJvbSBoZXJl IG9uDQogICAgICAgICAgICBpZiAoby5zcGlubmVyKSB7DQogICAgICAgICAgICAg ICAgdmFyICRzcGFuID0gJCgnc3BhbicsIGEpLCBsYWJlbCA9ICRzcGFuLmh0bWwo KTsNCiAgICAgICAgICAgICAgICAkc3Bhbi5odG1sKCc8ZW0+JyArIG8uc3Bpbm5l ciArICc8L2VtPicpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgdmFyIGZp bmlzaCA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgICAgIHNlbGYuJHRhYnMu ZmlsdGVyKCcuJyArIG8ubG9hZGluZ0NsYXNzKS5lYWNoKGZ1bmN0aW9uKCkgew0K ICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKG8ubG9hZGlu Z0NsYXNzKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG8uc3Bpbm5lcikNCiAg ICAgICAgICAgICAgICAgICAgICAgICQoJ3NwYW4nLCB0aGlzKS5odG1sKGxhYmVs KTsNCiAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICBzZWxmLnho ciA9IG51bGw7DQogICAgICAgICAgICB9Ow0KICAgICAgICAgICAgdmFyIGFqYXhP cHRpb25zID0gJC5leHRlbmQoe30sIG8uYWpheE9wdGlvbnMsIHsNCiAgICAgICAg ICAgICAgICB1cmw6IHVybCwNCiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5j dGlvbihyLCBzKSB7DQogICAgICAgICAgICAgICAgICAgICQoYS5oYXNoKS5odG1s KHIpOw0KICAgICAgICAgICAgICAgICAgICBmaW5pc2goKTsNCiAgICAgICAgICAg ICAgICAgICAgLy8gVGhpcyBjYWxsYmFjayBpcyByZXF1aXJlZCBiZWNhdXNlIHRo ZSBzd2l0Y2ggaGFzIHRvIHRha2UNCiAgICAgICAgICAgICAgICAgICAgLy8gcGxh Y2UgYWZ0ZXIgbG9hZGluZyBoYXMgY29tcGxldGVkLg0KICAgICAgICAgICAgICAg ICAgICB0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJyAmJiBjYWxsYmFjaygp Ow0KDQogICAgICAgICAgICAgICAgICAgIGlmIChvLmNhY2hlKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgJC5yZW1vdmVEYXRhKGEsICdsb2FkLnVpLXRhYnMnKTsg Ly8gaWYgbG9hZGVkIG9uY2UgZG8gbm90IGxvYWQgdGhlbSBhZ2Fpbg0KDQogICAg ICAgICAgICAgICAgICAgIC8vIGNhbGxiYWNrDQogICAgICAgICAgICAgICAgICAg ICQoc2VsZi5lbGVtZW50KS50cmlnZ2VySGFuZGxlcigibG9hZC51aS10YWJzIiwN CiAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmLnVpKHNlbGYuJHRhYnNbaW5k ZXhdLCBzZWxmLiRwYW5lbHNbaW5kZXhdKV0NCiAgICAgICAgICAgICAgICAgICAg KTsNCg0KICAgICAgICAgICAgICAgICAgICBvLmFqYXhPcHRpb25zLnN1Y2Nlc3Mg JiYgby5hamF4T3B0aW9ucy5zdWNjZXNzKHIsIHMpOw0KICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgaWYgKHRoaXMueGhyKSB7 DQogICAgICAgICAgICAgICAgLy8gdGVybWluYXRlIHBlbmRpbmcgcmVxdWVzdHMg ZnJvbSBvdGhlciB0YWJzIGFuZCByZXN0b3JlIHRhYiBsYWJlbA0KICAgICAgICAg ICAgICAgIHRoaXMueGhyLmFib3J0KCk7DQogICAgICAgICAgICAgICAgZmluaXNo KCk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkYS5hZGRDbGFzcyhvLmxv YWRpbmdDbGFzcyk7DQogICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg eyAvLyB0aW1lb3V0IGlzIGFnYWluIHJlcXVpcmVkIGluIElFLCAid2FpdCIgZm9y IGlkIGJlaW5nIHJlc3RvcmVkDQogICAgICAgICAgICAgICAgc2VsZi54aHIgPSAk LmFqYXgoYWpheE9wdGlvbnMpOw0KICAgICAgICAgICAgfSwgMCk7DQoNCiAgICAg ICAgfSwNCiAgICAgICAgdXJsOiBmdW5jdGlvbihpbmRleCwgdXJsKSB7DQogICAg ICAgICAgICB0aGlzLiR0YWJzLmVxKGluZGV4KS5kYXRhKCdsb2FkLnVpLXRhYnMn LCB1cmwpOw0KICAgICAgICB9LA0KICAgICAgICBkZXN0cm95OiBmdW5jdGlvbigp IHsNCiAgICAgICAgICAgIHZhciBvID0gdGhpcy5vcHRpb25zOw0KICAgICAgICAg ICAgJCh0aGlzLmVsZW1lbnQpLnVuYmluZCgnLnVpLXRhYnMnKQ0KICAgICAgICAg ICAgICAgIC5yZW1vdmVDbGFzcyhvLm5hdkNsYXNzKS5yZW1vdmVEYXRhKCd1aS10 YWJzJyk7DQogICAgICAgICAgICB0aGlzLiR0YWJzLmVhY2goZnVuY3Rpb24oKSB7 DQogICAgICAgICAgICAgICAgdmFyIGhyZWYgPSAkLmRhdGEodGhpcywgJ2hyZWYu dWktdGFicycpOw0KICAgICAgICAgICAgICAgIGlmIChocmVmKQ0KICAgICAgICAg ICAgICAgICAgICB0aGlzLmhyZWYgPSBocmVmOw0KICAgICAgICAgICAgICAgICQo dGhpcykudW5iaW5kKCcudWktdGFicycpDQogICAgICAgICAgICAgICAgICAgIC5y ZW1vdmVEYXRhKCdocmVmLnVpLXRhYnMnKS5yZW1vdmVEYXRhKCdsb2FkLnVpLXRh YnMnKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgdGhpcy4kbGlzLmFk ZCh0aGlzLiRwYW5lbHMpLmVhY2goZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAg ICAgaWYgKCQuZGF0YSh0aGlzLCAnZGVzdHJveS51aS10YWJzJykpDQogICAgICAg ICAgICAgICAgICAgICQodGhpcykucmVtb3ZlKCk7DQogICAgICAgICAgICAgICAg ZWxzZQ0KICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFtv LnNlbGVjdGVkQ2xhc3MsIG8udW5zZWxlY3RDbGFzcywNCiAgICAgICAgICAgICAg ICAgICAgICAgIG8uZGlzYWJsZWRDbGFzcywgby5wYW5lbENsYXNzLCBvLmhpZGVD bGFzc10uam9pbignICcpKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICB9DQog ICAgfSk7DQoNCn0= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_check_ff0000.gif Content-Transfer-Encoding: Base64 R0lGODlhDAALAIAAAP////8AACH5BAAAAAAALAAAAAAMAAsAAAIUhB95a8oYHowy 0aUcs3r390nieBQAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=BBStyles.css Content-Type: text/css; name=BBStyles.css Content-Location: http://images.bestbuy.com/BestBuy_US/store/styles/BBStyles.css Content-Transfer-Encoding: 8bit BODY{ background-color : #ffffff; } BODY,FORM,TABLE,TD,SPAN,DIV,.Body-Headline,.Body-Small,.Body-Subhead-333399,.Body-Headline-Yellow,.Body-Headline-333399,.Legal,.Legal-White,.Body-Form,.Body-Strike,.Body-White,.Error,.Nav-cc3333,.Nav-666666,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Nav-Left,.Nav-ffffff,.Body-Feature,.Required,.DropDown,.Company-Info-Nav,.Legal-ff0000,.Body-Small-Grey,.Nav-666666,.Sort-Filter{ font-family: Verdana, Arial, Helvetica, sans-serif; } FORM{ margin-bottom : 0px; margin-left : 0px; margin-right : 0px; margin-top : 0px; padding-bottom : 0px; padding-left : 0px; padding-right : 0px; padding-top : 0px; } .Body-Feature,.Body-Headline-333399,.Body-Headline,.Body-Headline-Yellow { font-size: 12px; } BODY,FORM,TABLE,TD,.Body-Form,.Body-Strike,.Body-White,.Body-Subhead,.Body-Subhead-White,.Body-Subhead-333399,.Body-333399,.Error{ font-size: 11px; } UL { margin-left : 16px; margin-top : 5px; margin-bottom : 5px; padding-left : 0px; } .Body-Small,.Body-Small-White,.Body-Small-Grey,.Body-Small-333399,.Required,.Nav-cc3333,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Nav-cc3333,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Error-Field,.Search2,.Nav-cc3333-subsub,.Nav-ff6600-subsub,.Nav-339933-subsub,.Nav-993399-subsub,.Nav-66cc33-subsub,.Nav-0099ff-subsub,.Nav-0066cc-subsub,.Nav-Left,.Error-Field,.Nav-ffffff,.DropDown,.Company-Info-Nav,.Nav-336699,.Nav-336699-subsub,.Sort-Filter { font-size: 10px; } .Nav666666{ font-size: 11px; } .Legal,.Legal-White,.Legal-Grey,.Legal-333399,.Legal-ff0000 { font-size: 9px; } BODY,FORM,TABLE,TD,.Body-Headline,.Body-Headline-Yellow,.Body-Form,.Body-Strike,.Body-White,.Legal,.Legal-White,.Legal-ff0000,.Body-Feature { font-style: normal; } .Nav-cc3333,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Nav-cc3333,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Nav-666666,.Error,.Error-Field,.Search2.Body-Subhead,.Body-Subhead-333399,.Body-Subhead-White,.Nav-cc3333-subsub,.Nav-ff6600-subsub,.Nav-339933-subsub,.Nav-993399-subsub,.Nav-66cc33-subsub,.Nav-0099ff-subsub,.Nav-0066cc-subsub,.Nav-336699,.DropDown,.Nav-ffffff,.Company-Info-Nav,a.Sort-Filter,.Nav-336699-subsub{ text-decoration: none; } .Body-Headline,.Body-Headline-Yellow,.Nav-Left,.Body-Headline-333399,.Nav-cc3333,.Nav-ff6600,.Nav-339933,.Nav-993399,.Nav-66cc33,.Nav-0099ff,.Nav-0066cc,.Error,.Error-Field,.Search2.Body-Subhead,.Body-Subhead-333399,.Body-Subhead-White,.Nav-cc3333-subsub,.Nav-ff6600-subsub,.Nav-339933-subsub,.Nav-993399-subsub,.Nav-66cc33-subsub,.Nav-0099ff-subsub,.Nav-0066cc-subsub,.Nav-ffffff,.DropDown,.Company-Info-Nav,.Nav-336699,.Nav-336699-subsub,.Body-Subhead { font-weight: bold; } .Body-Strike{ text-decoration: line-through; } a:link{ color: #333399; } a:visited,.Error,.Error-Field,.Required,.Legal-ff0000{ color: #ff0000; } a:hover{ color: #6666cc; } BODY,FORM,TABLE,TD,.Body-Headline,.Body-Form,.Body-Strike,.Body-Subhead,.Nav-Left,a.Nav-Left,a.Nav-Left:visited,.Body-Feature,.Legal,.DropDown,a.DropDown:visited { color: #000000; } .Company-Info-Nav,a.Company-Info-Nav,a.Company-Info-Nav:visited,a.Company-Info-Nav:hover{ color: #333333; } .Legal-Grey,.Body-Small-Grey,.Nav-666666,a.Nav-666666:link,a.Nav-666666:visited{ color: #666666; } .Body-Strike{ color: #c0c0c0; } .Nav-cc3333,a.Nav-cc3333,a.Nav-cc3333:visited,.Nav-cc3333-subsub,a.Nav-cc3333-subsub,a.Nav-cc3333-subsub:visited,a.Nav-cc3333:link,a.Nav-cc3333-subsub:link{ color: #990000; } .Nav-ff6600,a.Nav-ff6600,a.Nav-ff6600:visited,a.Nav-ff6600-subsub,a.Nav-ff6600-subsub:visited,a.Nav-cc3333:hover,a.Nav-ff6600:link,a.Nav-ff6600-subsub:link{ color: #cc3333; } a.Nav-ff6600:hover{ color: #ff9933; } .Nav-339933,a.Nav-339933,a.Nav-339933:visited,a.Nav-339933:link,.Nav-339933-subsub,a.Nav-339933-subsub,a.Nav-339933-subsub:visited,a.Nav-339933-subsub:link{ color: #006600 } a.Nav-339933:hover{ color: #66cc66; } .Nav-993399,a.Nav-993399,a.Nav-993399:visited,.Nav-993399-subsub,a.Nav-993399-subsub,a.Nav-993399-subsub:visited,a.Nav-993399:link,a.Nav-993399-subsub:link{ color: #660066; } a.Nav-993399:hover{ color: #cc99cc; } .Nav-66cc33,a.Nav-66cc33,a.Nav-66cc33:visited,.Nav-66cc33-subsub,a.Nav-66cc33-subsub,a.Nav-66cc33-subsub:visited,a.Nav-66cc33:link,a.Nav-66cc33-subsub:link{ color: #339900; } a.Nav-66cc33:hover{ color: #66cc33; } a.Nav-666666:hover{ color: #ffffff; } .Nav-666666,a.Nav-666666,a.Nav-666666:visited,.Nav-666666-subsub,a.Nav-666666-subsub,a.Nav-666666-subsub:visited,a.Nav-666666:link,a.Nav-666666-subsub:link{ color: #333333; } .Nav-0099ff,a.Nav-0099ff,a.Nav-0099ff:visited,.Nav-0099ff-subsub,a.Nav-0099ff-subsub,a.Nav-0099ff-subsub:visited,a.Nav-0099ff:link,a.Nav-0099ff-subsub:link{ color: #0066cc; } a.Nav-0099ff:hover{ color: #0099ff; } .Nav-0066cc,a.Nav-0066cc,a.Nav-0066cc:visited,.Nav-0066cc-subsub,a.Nav-0066cc-subsub,a.Nav-0066cc-subsub:visited,a.Nav-0066cc:link,a.Nav-0066cc-subsub:link{ color: #333366; } a.Nav-0066cc:hover{ color: #99cccc; } .Body-Headline-Yellow { color: #ffff00; } .Body-Headline-333399,.Body-Subhead-333399,.Body-333399,.Body-Small-333399,.Legal-333399,.Nav-336699,a.Nav-336699,a.Nav-336699:visited,a.Nav-336699-subsub:link,a.Nav-336699-subsub,a.Nav-336699-subsub:visited{ color: #333399; } a.Nav-336699:hover{ color: #99ccff; } .Legal-White,a.Legal-White,a.Legal-White:visited,.Body-White,a.Nav-Left:hover,a.Nav-0066cc-subsub:hover,a.Nav-0099ff-subsub:hover,a.Nav-66cc33-subsub:hover,a.Nav-993399-subsub:hover,a.Nav-339933-subsub:hover,a.Nav-ff6600-subsub:hover,a.Nav-cc3333-subsub:hover,.Body-Subhead-White,.Body-Small-White,.Nav-ffffff,a.Nav-ffffff,a.Nav-ffffff:visited,a.Nav-ffffff:hover,a.Nav-ffffff:active,a.Sort-Filter:link,a.Sort-Filter:visited,a.Sort-Filter,a.Nav-336699-subsub:hover{ color: #ffffff; } .Error-Field{ text-transform : uppercase; } .Research-Table { background : #99ccff url(http://images.bestbuy.com/BestBuy_US/images/global/misc/em_backgrndguy.gif); background-repeat : no-repeat; background-position: bottom; } a.Body-Small-White:link{ color: #ffffff; } a.Body-Small-White:visited{ color: #ffffff; } a.Body-Small-White:hover{ color: #ffffff; } .m18_priceblock { margin-top:5px; padding-left:3px; padding-top:1px; padding-bottom:2px; background-color:#ffff10; width:107; font-weight:bold; font-size: 9px; } ul.m18_checkmarks{ margin-top:5px; margin-left:22px; list-style-image: url(http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_check_ff0000.gif); } li.m18_checkmarks{ margin-top:2px; font-weight:bold; font-size: 9px; color: #333399; } ul.m18_seemore{ margin-top:15px; margin-left:18px; list-style-image: url(http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_arwr_red.gif); } li.m18_seemore{ margin-top:2px; font-size: 9px; } #centerwellcontainer {padding-left:4px;padding-right:5px;font-size:10px;} .storeitem {margin-bottom:10px;} .storeitem .button{padding-left:0px;padding-right:5px;float:left;} .storeitem .desc {padding-left:5px;padding-right:5px;float:left;font-size:11px;} .storeitem .desc-strike {color:#999999;padding-left:5px;padding-right:5px;float:left;font-size:11px;} .storeitem .link {padding-left:5px;padding-right:0px;font-size:11px;} .frame {margin-top:10px;border:1px solid #cccccc;} .frame .content{padding-left:7px;padding-right:7px;padding-bottom:10px;font-size:10px;} .frame .head {background:#cccccc;font-size:12px;margin-bottom:5px;padding:2px 7px 2px 7px;} .frame .subhead {margin-left:15px;font-size:10px;} .pageid {background:#333399;} .chkform INPUT,SELECT {margin-right:10px;font-size:10px;} FORM,INPUT,SELECT {margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;padding-bottom:0px;padding-left:0px;padding-right:0px;padding-top:0px;} .lg {font-size:11px;} .storecolumn {padding-top:7px;padding-left:5px;padding-right:5px;font-size:10px;vertical-align:middle;} .unavail {color:#999999;} .stdheader {padding-left:5px;padding-right:5px;padding-top:2px;padding-bottom:3px;font-size:10px;font-weight:bold;color:#ffffff;border-right: 1px solid #ffffff;background:#999999;} .stdcolumn {padding-left:5px;padding-right:5px;font-size:10px;} .strike {text-decoration: line-through;} .m19_priceblock {margin-bottom:5px;padding-left:3px;padding-top:1px;padding-bottom:2px;background:#ffff10;width:107;font-weight:bold;font-size:9px;} .priceblock {margin-top:3px;margin-bottom:5px;padding-left:3px;padding-top:1px;padding-bottom:2px;background-color:#ffff10;width:107;font-weight:bold;font-size:9px;} .rebates {margin-bottom:5px;font-size:9px;} .addtocart {margin-top:3px;margin-bottom:3px;} .cart_priceblock {margin-top:3px;margin-bottom:5px;padding-left:3px;padding-top:1px;padding-bottom:2px;background:#ffff10;width:127;font-weight:bold;font-size:12px;} .storepickmessage {margin-top:5px;background:#ffff00;padding:5px;} .m19header {padding-left:5px;padding-right:5px;font-size:10px;font-weight:bold;color:#ffffff;border-right: 1px solid #ffffff;background:#999999;} .m19column {padding-left:5px;padding-right:5px;font-size:10px;} .m19_checkmarks{background-image: url(http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_check_ff0000.gif);background-repeat: no-repeat;margin-bottom:5px;padding-left:13px;font-weight:bold;font-size: 9px;color: #333399;} .m19avail {background-color:#dddddd;font-size:9px;padding:3px;padding-left:5px;padding-right:5px;margin-top:3px;} .modelnumber {white-space: nowrap;} #cnavcontainer- {background-color:#f1f1f1;} #cnavcontainer-cc3333 {background-color:#ffe0dc;} #cnavcontainer-ff6600 {background-color:#ffdbc5;} #cnavcontainer-339933 {background-color:#cfe7cf;} #cnavcontainer-993399 {background-color:#f2e9f7;} #cnavcontainer-66cc33 {background-color:#dbf1cf;} #cnavcontainer-0099ff {background-color:#d6ebff;} #cnavcontainer-0066cc {background-color:#e5f2f2;} #cnavcontainer-336699 {background-color:#cfe7cf;} #cnavcontainer-666666 {background-color:#f1f1f1;} #centernav {width:170px;float:left;} #centernav UL {padding-right:10px;padding-left:5px;padding-bottom:10px;font-size:11px;} .cnavh {font-size:11px;font-weight:bold;background-color:#999999;color:#ffffff;padding:5px;} #cnavcontainer-cc3333 .cnavh {background-color:#cc3333;} #cnavcontainer-ff6600 .cnavh {background-color:#ff6600;} #cnavcontainer-339933 .cnavh {background-color:#339933;} #cnavcontainer-993399 .cnavh {background-color:#993399;} #cnavcontainer-66cc33 .cnavh {background-color:#66cc33;} #cnavcontainer-0099ff .cnavh {background-color:#0099ff;} #cnavcontainer-0066cc .cnavh {background-color:#0066cc;} #cnavcontainer-336699 .cnavh {background-color:#336699;} #cnavcontainer-666666 .cnavh {background-color:#666666;} .clearer {clear: left; line-height: 0px; height: 0px;} .pdpavail {background-color:#dddddd;font-size:9px;padding:3px;padding-left:5px;padding-right:5px;margin-top:3px;} ul.bullet-sq-ccccff {list-style-image: url(http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_bullet_ccccff.gif);} li.bullet-sq-ccccff {margin-bottom:3px;} #swatches {margin:5px 0 5px 0;} #swatches td.label {font-size:10px;padding:2px 2px 2px 5px;} #swatches td.swatch {padding:4px 0 2px 0;} #swatches .head {font-weight:bold;font-size:10px;} #addrterms {border:1px solid #cccccc;padding:7px;margin:10px 0 10px;background-color:#ffffcc;} #addrterms TD {vertical-align:top;} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=bby2.css Content-Type: text/css; name=bby2.css Content-Location: http://images.bestbuy.com/BestBuy_US/store/styles/bby2.css Content-Transfer-Encoding: 8bit #searchstatus {padding:1px 0 0 0;height:32px;background-color:#f1f1f1;border-bottom:2px solid #006699;} #sitesearch {width:555px;float:left;padding:3px 0 3px 0;} #gobutton {padding:0 5px 0 5px;} #welcome {font-size:10px;padding-top:2px;} #welcome .topline {font-weight:bold;} #welcome .botomline {} .searchtext {padding:0 5px 0 5px;font-weight:bold;color:#000;font-size:10px;} .searchpull {font-size:11px;width:140px;} .searchfield {font-size:11px;width:245px;} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=print.css Content-Type: text/css; name=print.css Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/hf/bby2/styles/print.css Content-Transfer-Encoding: 8bit #hdr{padding-bottom:10px;} #hdr .mid{display:none;} #hdr .tn{display:none;} #cart{display:none;} #nav_contain{display:none;} #searchstatus{display:none;} #addtocart{display:none;} #viewmorephotos{display:none;} #searchstate{display:none;} #buttonblock{display:none;} #servicescol{display:none;} #productdetail{width:780px;} #tabbed-overview, #tabbed-specifications, #tabbed-accessories, #tabbed-customerreviews, #tabbed-castcrew, #tabbed-editorial-reviews, #tabbed-rebates{width:780px;border:0;} #tabbed-specifications{display:block;clear:both;} #tabbed-specifications h2{clear:both;border-bottom:solid 3px #000;} #tabbed-specifications li{border-top:0 !important;border-right:0;border-left:0;border-bottom:dashed 1px #000;} #tabbed-specifications .banded{border-bottom:dashed 1px #000 !important;} #tabbed-overview h2, #tabbed-accessories h2, #tabbed-customerreviews h2, #tabbed-castcrew h2, #tabbed-editorial-reviews h2, #tabbed-rebates h2{border-bottom:solid 3px #000;} .pdpcurveborder{height:7px;width:540px;padding:0;margin:0;} #powerprice, #pb_oc, #footcards, #footlinks{display:none;} #footinfo{} #footinfo .fimage, #footinfo img{display:none;} #productsummary h1{font-size:14px;} #priceblock{font-size:8px;} #pdptabs{} #pdpsummaryboxcontent .leftcol{width:150pt;} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/postcard_top_rev.gif Content-Transfer-Encoding: Base64 R0lGODlhHAIHAIQXAMzMzMzMzsrN08vN08jO2cvO1MjP3cnP3MTQ58nQ3cPR7MXR 6NDQ0MfR5cTS7cXS7cbT68bT7dbW1tnZ2eXl5erq6vX19f////////////////// /////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAABwCBwAA Bd/gJVrUxDBAqq5s675wLM90bd94ru987//AoHBILBqHpwnFImpWBokGBBKpWq/Y rHbL7Xq/4LB4TC6bz+i0es1uu9/wuPw9bSQGFScBoej7/4CBgoOEhYaHiImKi4yN jo+QkZKTlJWWl5iZmpt/CAR5FhILDqSlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9 vr/AwcKoCwIkBg/JysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebnzwYHEw1z 7u/w8fLz9PX29/j59w0FDFT6AAMKHEiwoMGDCOtBCBACADs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/postcard_bottom_rev.gif Content-Transfer-Encoding: Base64 R0lGODlhHAIKAOMMAMzMzNDQ0NbW1tnZ2eHh4eXl5ebm5urq6vLy8vX19ff39/v7 +////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAABwCCgAA BKYQsEmrvTjrzbv/YCiOZGmeaKqubOu+cLwBkmzfeK7vfO//wOALEFgIj8ikcsls Op+wRaAIrVqv2Kx2i5UOENyweEwum8eIQcFwbrvf8Lh8ZCgkBIq5fs/v+5cKAgkM BwR5f4iJiouMHQoEBxQHAgYIC0aNmZqbnFuXCAYCkRUJBQNTNKmqq6ytrq+wsbKz tLW2t7i5uru8vb6/wMHCw8TFw1NqgxMRADs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/pdpsummarybox_gradient_rev.gif Content-Transfer-Encoding: Base64 R0lGODlhHAKGAqUuAMzMzMPR7MTS7cXS7cbT7cjV7snV7crW7szX78zY783Z78/a 8NDb8NLd8dPd8dXe8dbg8tfh8tni89vj89zk9N7m9N/n9eHp9ePq9uTr9+bs9+ft 9+jt+Orv+ezx+e7y+e/z+vDz+/L1+/P2+/X3/PX4/Pf4/Pj6/fr6/fv8/vz9//39 /v7+/v/+//////////////////////////////////////////////////////// /////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAABwChgIA Bv5AQGBILBqPyKRyyWw6n9CodEqtWq/YrHbL7Xq/4PASABCYz+i0es1uu9/wuHxO r9vv+Lx+z+/7/4CBgoOEbmQDiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6Sl ppBkBKqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8iyqcnMzc7P0NHS09TV 1tfGZAXb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j542QG/f7/AAMKHEiw oMGDCBMqXMiwocOHECNKnEixosWLGDNq3FiQzIGPIEOKHEmypMmTKFOqXMmypcuX MGPKnEmzps2bOHPq3Mmz5/5JMgiCCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1iz at3KtavXr0nJJBhLtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6t3Lt6/fv4ADryWj oLDhw4gTK17MuLHjx5AjS55MubLly5gza97MubPnz6BDix7dmMyC06hTq17NurXr 17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvPhrMgySK1/OvLnz59CjS59Ovbr169iz a9/Ovbv37+DDix9Pvrz589HJNFjPvr379/Djy59Pv779+/jz69/Pv7///wAGKOCA BBZo4IEIJjgfGQ406OCDEEYo4YQUVmjhhRhmqOGGHP526OGHIIYo4ogklmjiiSim qOKKFZLxwIswxijjjDTWaOONOOao44489ujjj0AGKeSQRBZp5JFIJqnkkkw2eSMZ EEQp5ZRUVmnllVhmqeWWXHbp5ZdghinmmGSWaeaZaKap5ppstunmm1mSEcGcdNZp 55145qnnnnz26eefgAYq6KCEFmrooYgmquiijDbq6KOQRronGRJUaumlmGaq6aac durpp6CGKuqopJZq6qmopqrqqqy26uqrsMYq66ydkjHBrbjmquuuvPbq66/ABivs sMQWa+yxyCar7LLMNuvss9BGK+201Fb7KxkUZKvtttx26+234IYr7rjklmvuuf7o pqvuuuy26+678MYr77z01mvvveGSUcG+/Pbr778AByzwwAQXbPDBCCes8MIMN+zw wxBHLPHEFFds8cUYZzwwGRZ07PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTX bPPNOOes884lk3HBz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXW XHd9NBkYhC322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz37fffaZOR weCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+7556CHvjgZGpRu+umo p6766qy37vrrsMcu+/7stNdu++2456777rz37vvvwAcv/PCtk7HB8cgnr/zyzDfv /PPQRy/99NRXb/312Gev/fbcd+/99+CHL/745Jf/PBkcpK/++uy37/778Mcv//z0 12///fjnr//+/Pfv//8ADKAAB0jAAhrwgPEjQwcWyMAGOvCBEIygBCdIwQpa8IIY zKAGN8jBDnrwgyAMoQhHSMISmvCEKEzhBMnggRa68IUwjKEMZ0jDGtrwhjjMoQ53 yMMe+vCHQAyiEIdIxCIa8YhITKISl1hDMnzgiVCMohSnSMUqWvGKWMyiFrfIxS56 8YtgDKMYx0jGMprxjGhMoxrXyMY2XpEMIIijHP7nSMc62vGOeMyjHvfIxz768Y+A DKQgB0nIQhrykIhMpCIXychGOvKReSRDCCZJyUpa8pKYzKQmN8nJTnryk6AMpShH ScpSmvKUqEylKlfJyla68pWwjOUmySCCWtrylrjMpS53ycte+vKXwAymMIdJzGIa 85jITKYyl8nMZjrzmdCMpjSn2UsyjOCa2MymNrfJzW5685vgDKc4x0nOcprznOhM pzrXyc52uvOd8IynPOdJz3p+kwwkyKc+98nPfvrznwANqEAHStCCGvSgCE2oQhfK 0IY69KEQjahEJ0rRilr0ogElQwk2ytGOevSjIA2pSEdK0pKa9KQoTalKV/7K0pa6 9KUwjalMZ0rTmtr0pjjN6UjJYIKe+vSnQA2qUIdK1KIa9ahITapSl8rUpjr1qVCN qlSnStWqWvWqWM2qVrdaVDKc4KtgDatYx0rWspr1rGhNq1rXyta2uvWtcI2rXOdK 17ra9a54zate98rXvp6VDCgIrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2 spjNrGY3y9nOevaziSVDCkZL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9va2va2uM2t bnfL29769rfADe5qRSvc4hr3uMhNrnKXy9zmOve50P0tGVRA3epa97rYza52t8vd 7nr3u+ANr3jHS/7e8pr3vOhNr3rXy972uve98I2vfLk73fna9774za9+98vf/vr3 vwAOMHzJsIICG/jACE6wghfM4AY7+MEQjrCEJ0zhClv4whjOsIY3zOEOe/jDIA6x iEfcYDKw4MQoTrGKV8ziFrv4xTCOsYxnTOMa2/jGOM6xjnfM4x77+MdADrKQh0zk Ir+YDC1IspKXzOQmO/nJUI6ylKdM5Spb+cpYzrKWt8zlLnv5y2AOs5jHTOYym/nM USaDC9bM5ja7+c1wjrOc50znOtv5znjOs573zOc++/nPgA60oAdN6EIb+tCITvSc 1azoRjv60ZCOtKQnTelKW/rSmD40ozPN6f5Oe/rToA61qEdNakRvutSoTrWqV83q Vrta1ad+taxnTeta2/rWso41rnfN6177+tfAxrOug03sYhv72Mj29LCTzexmO/vZ 0K7zsqNN7Wpb+9q3nja2t83tbnv70tr+trjHTe5y7znc5k63utctbnSz+93wjney 3S3vetv73rSmN773ze9+f1rf/g64wAeuaIAT/OAIT3ieDa7whjvc4Qx/uMQn7u+I U/ziGIe3xTPO8Y63GwAeD7nI473xkZv85McuOcpXzvJdq7zlMI95q18u85rbPNQ0 v7nOd17pnPP850BPtM+DTvSi/3noRk+60qUN8qU7/emabjrUp071Pv4jvepY//nV s851m2+962Bv+dfDTnaTj73saO/42dPOdoqvve1wb/jb4053gs+97njv993zznd7 773vgH/33wNPeHMPvvCI//bhE894bC++8ZCP9uMjT3lmT77ymC/25TPPeV9vvvOg z7bUQ096wY++9Kg3/OlTz3rFr771sHf862NPe8nPvva4t/ztc897ze++98D3/O+D T3zRF//4wP488pcvaOUz//lWHz70py9q51P/+nS2Pva3/2btc//7LvA++Lcv/vFf v/zmnz760//89bN/+e5///HjL3/i07/+wL8//nmv//3jvv/+R3sAGICwN4AEyHoG eICol4AKSP56DNiAoPeAEMh5EjiBmFeBFkh5GJiBkLeBHMh4HviBiBeCIkh4JFiC gHeCKMh3KriCeNeCLkh3MBiDcDeDNMh2NniDaJeDOkh2PNiDYPeDQMh1QjiEWFeE Rkh1SJiEULeETOh0TviESheFUmh0VFiFRHeFWAh0WriFPNeFXqhzYBiGXid9ZKh+ ZniG7ZeGagh/bNiG8/eGcGh/cjiH+VeHdsh/eJiH/7eHfCiAfviHBRiIgoiAhFiI C3iIiOiAiriIEdiIjkiBkBiJFziJlKiBlniJHZiJmgiCnNiJI/iJoGiCojiKKViK psiCqJiKL7iKrCiDrviKNRiLsoiDtP5Yizt4i7jog7q4i0HYi75IhMAYjEc4jMSo hMZ4jE2YjMoIhczYjFP4jNBohdI4jVlYjdbIhdiYjV+4jdwoht74jWUojpk3huRo eudYeeaYjuq2juyoeu+4ifHYeO44jx9nj4lXj/jYbfq4j9vWj/54bQAZkNU2kARp ewfZdwaZkM62kAypew/ZihFZdw45kcZWkRZJbBiZkckXjhwJcR75kQq3kSLJayRZ krh2kihpayq5kvkWki4pcC0Zk682kzQ5czB5k/xmkzoJaznZk/fGk0BZakI5lKNW lEaJcz+ZlBq3lEzJbkj5lJ0WlVKZaVRZleDmlFhZble5lZTWlf5eKWlgGZaQNpZk 6WhmeZYFp5VqyW1p2ZZRB5c795ZySWh0WZfNx5Z4SW13uZdHp5d++Wx9GZh8NpiE qWeGeZjCBpiKiWyJ2ZhMB5ko95iSKWeUWZlwdpmY6WaauZls1pmeGX6MGZq9Bpqe aZqbiZqYqZqVyZqS6ZqQCZuNKZuKSZuHaZuEiZuBqZt+yZt76Zt4CZx1KZxySZxw aZxtiZxqqZxnyZxk6ZxhCZ1eKZ1bSZ1YaZ1ViZ1SqZ1PyZ1M6Z1JCZ5GKZ5DSZ5A aZ49iZ46qZ43yZ406Z4xCZ8uKZ8rSZ8oaZ8liZ8iqZ8fyZ8c6Z8ZCaAWKaATSaAR aaAPif6gDKmgCcmgB+mgBAmhASmh/kih+2ih+Iih9qih88ih8eih7wii7Cii6Uii 52ii5Iii4qii38ii3Oii2Qij1iij00ij0GijzYijyqijx8ijxOijwQikviiku0ik uGiktYiksqikr8ikrOikqQilpiilo0iloGilnYilmqill8illOilkQimjiimi0im iGimhYimgqimf8imfOimeQindiinc0incGinbYinaqinZ8inZOinYQioXiioW0io WGioVYioUqioT8ioTOioSQipRiipQ0ipQGipPYipOqipN8ipNOipMQiqLiiqK0iq KGiqJYiqIqiqH8iqHOiqGQirFv4oqxNIqxBoqw2IqwqoqwfIqwToqwEIrP4nrPtH rPhnrPWHrPKnrO/HrOznrOkHreYnreNHreBnrd+HrdynreQ3mqTpct76rcYnrhjH rdhnrucXruT6kut6cehKfe+Khu3qduo6r64Wr9CHr2torxKnr8znr27Irw8HsMhH sHEosCCJsHJXrwqLagZbfA9Lhw2bcBEbfBV7hxOLcBfbexurhxl7cB2beyHbhx9r dwxbsqA2srWnsoCIsjJ5si47lTAbs1Y5szSblTe7kzabs1+5szwrlj77s2UZtEKL lkRbtGuJtPLGsrHHtIOotCR3tFBraE7belVriFOLjlm7bv5Xm3pdm4hby7VSG7aB 9rWlZ7aMSLbphrahx7aPqLbwCLfk5radR7eSKLdzO7Z4e256u7cL17d+e2d2W46A G7iRabhuWbiIa5mKu7iZ2biOy5mQG7mfObmUK5qXW5CWS7mDW4mZy5ebG7mdq46h 67iji4mfi5CpK5ilu7inG3mvK4+r25Cti7ixS4+1a7i364mzS7u922y7m4+5G7jB G4q/C5HH65jD67fFW3jNS4rJq7zRm3LLu7fPG3jXe4rTe5HVi7fZq5DdK7ffq4rb 63vlq5HhC7fjm3frK5Hn25HvC7/xK3zzS7/1a5Lpq7btS5H5S7b7C4v3i78BDK4D nP6S/Ru2/xt3CTyLBTyuDcyuDwzBEZxrB7y1C9x2F2yLEzxrGZx2HZyLG0zBIVyT FZy1H1x2J8yLI3yvJTy1KRx2L/yLK4yTM8xqMdx1NyyMNbxqOZx1PVyMO+yTQZxq P1x1RYyMQ+ywLQy1Rzx1TbyMSUyUS6y0T/x0VeyMUUxqV7x0WxyNWXyUU4y0XZx0 Y0yNX1x9YVy0ZVx0a3yNZ6yUb5yyaSy0bRx0dayNcfxvc/yzd6x1e8yzfdyNeaxs f5yzgTyXhXyzhwyOgyyzjcxpi3xzkTyOj4xpk1xzlyxzmRxzmwxznSx2iUyzn8xy o7xypTyZoRyzp3xyq2x2qQXssgAQBAA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/twocolbg-dashed.gif Content-Transfer-Encoding: Base64 R0lGODlhGwIOAOMKAJeXl5iYmJqampubm5ycnPn5+fv7+/z8/P39/f7+/v////// /////////////////ywFAAAA/QEOAAAEhlDJSau9OOvNu/9gKI5kaZ7oJyRJ6r5w LM90bd94ru+uoCC8oHBILBqPyKRyAzgsn9CodEqtWjmDq3bL7Xq/4AOiBS6bz+i0 OlRYu9/wuPzonNvv+LyeQzDs/4CBgmABCmSDiImKizuFh4yQkZKTHX2Ul5iZkHWa nZ6fd22go6SlXGKPpmsRADs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/misc_check_ff0000.gif Content-Transfer-Encoding: Base64 R0lGODlhDAALAIAAAP////8AACH5BAAAAAAALAAAAAAMAAsAAAIUhB95a8oYHowy 0aUcs3r390nieBQAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/dashed-border.gif Content-Transfer-Encoding: Base64 R0lGODlhBgABAMIEAJCQkJeXl5mZmZycnP///////////////yH+FUNyZWF0ZWQg d2l0aCBUaGUgR0lNUAAh+QQBCgAEACwAAAAABgABAAADBAhDJJEAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/solid-border.gif Content-Transfer-Encoding: Base64 R0lGODlhAgABAIABAMzMzP///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAA AAIAAQAAAgIECgA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/contentbox-bg-grad.gif Content-Transfer-Encoding: Base64 R0lGODlhSgISAIQTAOnu+urv+uvw++zx++3x++7y++/z/PH0/PL1/PP2/PX3/Pb4 /ff5/fj6/fj6/vr7/vv8/v39//7+//////////////////////////////////// /////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAAEoCEgBA Bf4gII5kaZ5oqq5s675wLM90bd94ru987//AYA5BLBqPyKRyyWw6n9CodEqtWq/Y rHbL7Xq/4LB4vI2Yz+i0es1uu9/wuHxOr9vv+Lx+z+/7/4CBgoOEhX0EiImKi4yN jo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqefDKqrrK2ur7CxsrO0tba3uLm6u7y9 vr/AwcLDxMXGx8jJwQLMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+MG 7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwYUEFECNKnEixosWLGDNq 3Mixo8ePIEOKHEmypMmTKP5TqlzJsqXLlycfyJxJs6bNmzhz6tzJs6fPn0CDCh1K tKjRo0iTKl3KtKnTp1CjJg1AtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3b t3Djyp27doDdu3jz6t3Lt6/fv4ADCx5MuLDhw4gTK17MuLHjx5AjS55MuXLjApgz a97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt268P6N7Nu7fv38CDCx9O vLjx48iTK1/OvLnz59CjS59Ovbr169izR0/Avbv37+DDix9Pvrz58+jTq1/Pvr37 9/Djy59Pv779+/jz698/f4H//wAGKOCABBZo4IEIJsWo4IIMNujggxBGKOGEFFZo 4YUYZqjhhhx2WGEDDTjgAIgikjhiiCeWiKKJLK7oooowpihjizHSOOOLN9aIo408 7uijjkDmKGSPQRI55I9HFomkkUwu6aSSUCYpZZNRUjnlk1dWiaWVXG7ppZZg3gjB mGSWaeaZaKap5ppstunmm3DGKeecdNZp55145qnnnnz26eefgAYqqJ4SFGrooYgm quiijDbq6KOQRirppJRWaumlmGaq6aacdurpp6CGKuqopHIaAgA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/bluebox-border.gif Content-Transfer-Encoding: Base64 R0lGODlhqgAIAIABAMzMzP///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAA AKoACAAAAi9EjqnL7Q+jnLRaCszdvPsPcllIluaJImPKtu57rPBM15Vs57qO7/7P 6gGHRA+gAAA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_border.gif Content-Transfer-Encoding: Base64 R0lGODlhAwAlAJEAAP////39/czMzAAAACH5BAAAAAAALAAAAAADACUAAAILhI+p y+0PowxU2AIAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_off_right_revised.gif Content-Transfer-Encoding: Base64 R0lGODlhkAGWAPcAAP///8zMzNHR0c/Pz83NzeXl5fb29uPj4+vr6+Dg4PPz8/r6 +vj4+NPT0/Hx8dra2tXV1fz8/NjY2O7u7t3d3f7+/ujo6Orq6vX19dDQ0NnZ2c7O ztzc3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAACQAZYAAAj/AAMIHEiwoMGDCBMqXMiw ocOHECNKnEixosWLGDNq3AhRQwEMAEJyHEmypMmTKFOqXMnypIALIlvKnEmzps2b OHMmJABTp8+fQIMKHTpzAAaiSJMqXcp0KAcCUKNKnUq1qtWrWLNq3cq1q9evYMOK HUu2rNmzaNOO3TCgrdu3cOPKnUu3rt27ePPq3cu3r9+/gAMLHky4sGHAAQQoXsy4 sePHkCNLnky5suXLmDNr3sy5s+fPoEOLHt05QIPTqFOrXs26tevXsGPLnk27tu3b uHPr3s27t+/fwHUHgEC8uPHjyJMrX868ufPn0KNLn069uvXr2LNr3869+/UAEsKL /x9Pvrz58+jTq1/Pvr379/Djy59Pv779+/jz66cf4IH//wAGKOCABBZo4IEIJqjg ggw26OCDEEYo4YQUVmjhhREGQMGGHHbo4YcghijiiCSWaOKJKKao4oostujiizDG KOOMNLoYQAI45qjjjjz26OOPQAYp5JBEFmnkkUgmqeSSTDbp5JNQRrlkAAdUaeWV WGap5ZZcdunll2CGKeaYZJZp5plopqnmmmy26SaaARQg55x01mnnnXjmqeeefPbp 55+ABirooIQWauihiCaq6KKFBmDBo5BGKumklFZq6aWYZqrpppx26umnoIYq6qik lmrqqaiKGgACrLbq6quwxv8q66y01mrrrbjmquuuvPbq66/ABivssMQW+2sAEySr 7LLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYrLrcBOGDuueimq+667Lbr7rvw xivvvPTWa++9+Oar77789uvvv/kGoMDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zx xRhnrPHGHFscgAEghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds88045zxzAAz0 7PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbTXUASyg9dZcd+3112CHLfbY ZJdt9tlop6322my37fbbcMct99xtBxDB3XjnrffefPf/7fffgAcu+OCEF2744Ygn rvjijDfu+OOQKx5ABZRXbvnlmGeu+eacd+7556CHLvropJdu+umop6766qy3fnoA IcUu++y012777bjnrvvuvPfu++/ABy/88MQXb/zxyCdPPOzKN+/889BHL/301Fdv /fTMX6/99tx37/334IePe/bil2/++einr/715K/v/vvwxy+/+e3Pb//9+Oev/+71 7+///wAMoPj6J8ACGvCACFxeAhfIwAY6UHYEfKAEJ0jB90WwghjMoAa1d8ENevCD ICxeB0NIwhKakHYjPKEKV7jBFLLwhTBsoAtjSMMaAnCGNsyhDuWHwx368If0A6IQ /4doQSIa8YgDRKISl8g+Jjrxic7rIRSnSEUIVvGKWNSdFLPIxSNusYtgBOIXw0jG HI6xjGiE4RnTyMYTrrGNcAThG+NIxwzOsY54lOAd88jHBe6xj4As4B8DSUj/DbKQ iLzfIRPJSPgtspGQTN8jI0nJJFbykgecJCY32UROenJ/mvykKKM4ylLy0JSodF8o U8nK362ylbDUYixn6b1X0vKWsbMlLm+py13Ospe+hCUwg8nKYRITlcY8ZimTqUxR MrOZnnwmNDcpzWlesprWpCQ2swnJbXKTkd78JiLDKU5CkrOcgDwnOvmoznXisZ3u pCM84wnHedKTjfa8Jxrzqb9PMvKzn2D8J0C5KNCBYrGgBq0iQhM6xYUy9IkOfSgT IypRJVK0ol7E6DEvqtEhcrSjYgSpLz8q0h2StKRmRCkvVUrLk7I0hi596QtjKtMV 0rSmbsRpMXWaypvyNIQ+/ekHgyrUFhZ1lEQ9KgaTqlQKMrWpeoQqJ58qVRlWFZNU vWoCs6rVTHZVm1+NJFfDGsCxkvV/Zj0rKNWayLSyFX9ufav94irXU9Y1nXfFa17Z uVe+9vWdfwVsYOU5WHkGBAA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_off_left_revised.gif Content-Transfer-Encoding: Base64 R0lGODlhBgCWAMQAAP///8zMzM/Pz9HR0c3NzeXl5e7u7vz8/PPz89jY2Pj4+Pr6 +uvr6/Hx8f7+/tXV1ejo6OPj493d3eDg4Nra2tPT0/b29vX19erq6s7OztnZ2dzc 3AAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAGAJYAAAWwICBehSZiQxAAGKEGl/AG 2xxkRJ4HQt8Hg2AwUCkWA49kMpBoNgOUaDQgqVYDk2w2EOl2A4VwOAAplwOMdDpg aLcDjXg8gKjXA5Z8PqDo9wMLgYEBB4WFAQ6JiSsiIoyNj46NkpORAJaYk5eamZWc n56hkKCjopSlqKeqm6asqa6rna+ysaS1rbSwurm8tru+vbjAw8LFs8THxrfJzMvO v8rQzdLPwdPW1cjZ0djU3iEAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_on_right_revised.gif Content-Transfer-Encoding: Base64 R0lGODlhkAGWANUAAOTq+bPF7szMzM3Z9Nvk9+Do+LXH7rnK77jJ77TG7t/n+L7O 8cDP8cvX89ji9uPp+eHo+LfI77vL8MbU8sLR8dzl99bg9t7m+MTS8tTe9c/a9MjV 89Hc9b3M8Nrj983Nzv////X19c7OzrTF7OXl5d3d3bbG6uLi4rTF7dnZ2fr6+tHR 0dPT09LS0r7I37XG6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAACQAZYAAAb/QIFwSCwaj8ikcslsOp/Q qHRKrVqv2Kx2C02RQqBwYEwum8/otHrNbrvf8Lh8Tq/b7/i8fs+Hj0QsJWAgfYWG h4iJiouMjY6HIwIiJSqEj5eYmZqbnJ2eaSgiJJafpaanqKmqji8rIauwsbKztKku J7W5uru8vXImLQnCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29UCBt/g4eLj5OXm 5+jp6uvs7e7v8PHy8/T19vf48gIR/P3+/wADChxIsKDBgwgTKlzIsKHDhxAjSpxI seJDAQgyatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjymQp4IDNmzhz6tzJs6fP /59AgwodSrSo0aNIkypdyrSp06dJBUiYSrWq1atYs2rdyrWr169gw4odS7as2bNo 06pdy9asgA5w48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEw8WsKCx48eQI0ue TLmy5cuYM2vezLmz58+gQ4seTbq0adACGKhezbq169ewY8ueTbu27du4c+vezbu3 79/Agwsf3lsAhePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gtQvAQL68+fPo 06tfz769+/fw48ufT7++/fv48+vfz7//fQETBCjggAQWaOCBCCao4IIMNujggxBG KOGEFFZo4YUYZqghhQJs4P/hhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjj jTEK0MCOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVDopwABYZqnlllx2 6eWXYIYp5phklmnmmWimqeaabLbp5ptwxrmmABrUaeedeOap55589unnn4AGKuig hBZq6KGIJqrooow26iiiAnAg6aSUVmrppZhmqummnHbq6aeghirqqKSWauqpqKaq 6qqlCpDBq7DGKuustNZq66245qrrrrz26uuvwAYr7LDEFmvsscgKK4AFzDbr7LPQ RivttNRWa+212Gar7bbcduvtt+CGK+645Jb7rQAOpKv/7rrstuvuu/DGK++89NZr 77345qvvvvz26++/AAcsML8CeGDwwQgnrPDCDDfs8MMQRyzxxBRXbPHFGGes8cYc d+zxxxkLQMDIJJds8skop6zyyiy37PLLMMcs88w012zzzTjnrPPOPNssQAVABy30 0EQXbfTRSCet9NJMN+3001BHLfXUVFdt9dVYZz21ABd07fXXYIct9thkl2322Win rfbabLft9ttwxy333HTXbTfcAiig99589+3334AHLvjghBdu+OGIJ6744ow37vjj kEcu+eSNC1DA5ZhnrvnmnHfu+eeghy766KSXbvrpqKeu+uqst+7667CrLgAEtNdu //vtuOeu++689+7778AHL/zwxBdv/PHIJ6/88sw3f7wAD0Qv/fTUV2/99dhnr/32 3Hfv/ffghy/++OSXb/756KevPvkCAOD++/DHL//89Ndv//3456///vz37///AAyg AAdIwAIa8IAB/AACF8jABjrwgRCMoAQnSEEJKrCCGMygBjfIwQ568IP3uyAIR0jC EprwhCjEoAhTyMIWuvCFMCzhCmNIwxra8IY41N8Mc8jDHvrwhyPcIRCHSMQiGnGA QjyiEpfIRCUmsYlQjKIUY/jEKVrxiljkYBWzyMUuevGAW/yiGMdIRvuFsYxoTOMX z6jGNroximx8oxznOMQ40v/xjnisoR3zyMc+nnCPfgykIDcIyEEa8pAPLCQiF8lI JDbykZBMZCQnSUkCKrKSmIzkJTPJyUVuspOgFOQnQ0nKPI6ylKiU4ylTyco0rrKV sBTjK2NJyyzOspa4lOItc8nLJe6yl8Ak4i+DScweDrOYyLThMZPJzBcus5nQROEz o0nNIFbzmkycJja3qUJuehOI2vymOBsYznGa04DlPKc6E7jOdrIwne6MJ/7gKc96 zo+e9syn+/CpT3vys5/y/CdA3SnQga6zoAY9J0ITOs6FMvSbDn0oNyMqUWxStKLV vChGo6nRjTazox5NJkhDWsyRkjSYJj1pL1Oq0lyytKW5tXwpTGMp05m2sqY2TSVO c1rKnfI0lD79aSeDKtRMErWolTwqUiep1KVCsqlObSRUo+pJqm50qlY1JFazKkqu SnSrXu0jWMNqSrImdKxmpSNa06pKtgJ0rW5tI1zj6kq65nOudiUjXvMqS74G1K/x 3CtguSjYwWKxsIa1ImITq0vGKtSx5lwsZLM5WXFKtrJHvCxmi6jZzdbRs9vsLGh9 KNrR8rC0psUhalOrTNZy1LXQXC1sYfiBIAAAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_on_left_revised.gif Content-Transfer-Encoding: Base64 R0lGODlhBgCWANUAAOTq+czMzLPF7v///+Do+OXr+c/a9OHo+LjJ77nK77XH7rTG 7sLR8c3Z9MvX88DP8dbg9tHc9bvL8MbU8r3M8Nji9r7O8dTe9d/n+LfI79rj99zl 99vk98TS8uPp+d7m+MjV8/X19c7Ozt3d3eXl5dPT07TF7LXG69HR0dLS0vr6+rTF 7b7I3+Li4rbG6tnZ2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAGAJYAAAbowIEwRHoNRyXRQDUSBUwD kmglEIRQp6qgxdIKUi5vYEEmBxRodCDDZgcQcHggQacHJHh8gMLnByyAgAEPhIQB DIiIAR2MjAETkJABIJSUAQ6YmAENnJwBBqCgARGkpAEXqKgBEKysARWwsAEatLQB HLi4ARu8vAEfwMABGMTEAQTIyAEHzMwBHtDQAQDU1AEF2NjT1QDb1d7W3N3i4OPc 5ejk6ufr3+3h7PHu8vDz9vX45vf6+en0/AD97RPY711AgwQP/kvIEKHDhQ8HRiwI saJEixQvaszIUeFGjx0bYgRJUuRHk9SCAAA7 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/buttons/btn-printer-friendly.gif Content-Transfer-Encoding: Base64 R0lGODlhdAAnAIQFAJeYlwMDA7e3uOrq6mZmZv///9zc3PDw8MzMzD09PZONzGNc q/3+9fv7+/z8/Pv+/5ybn///+fn6/v7+/vz8/v78//z//+Pk46GXoMTCxsnQvtDL z/f299PS0fz3/ff/9iH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAAHQAJwBA Bf5gIY5kaZ5oqq5s666EGJsOdwwzgZhAgBCBQ4AgOPQKgcQvUOgZEsoEoQcQkHqB LNUaACAJQKQyTBh3e4JAsUtCADqcj2XxKFQi3pd+z+/7XQQNAIOEhAUzKD1LByRh JmkuiggGJUN6Z0wqFBAQhZ1eEQQGo6SlpqM6f6qriUEnDp2fnJwZGyMEBxwOEyeI J2lJViQCvn3AWSVEl4OZKBUdCNEI0NG3F9fY2drXqSWQI2oikOGQ5QnB38PN6eRa SFaQT0Nq32wlCBAdEiUMFRCNYAIKDMiqoMGCOUxMaHADh4wdJbAk4CLsSLgjii52 aTbiiAiPSAAg8CFkpBWLwv4wFYACsuOECQwULFhgwUMHkQdz6tyZbIDPXLsa8RxK tBevExMcFIvIRIiwFS1VRP2jMgUCDAIydOhwgdQAL4GUDhwbttsVjvYsesG4MYsW jh+bgcTkNs1aJuFCHhlpbwQ+OAsUCFbQ7x/ZwwIhFl0Mbinjx5BVEfhaqNChyEXp weUjsEllQhw682iqJolmMVmsnPNxLsGBNOcoxY1mAHYAA+3CmQ534BwQZlBkwAXA 60OEBxYsSLj544Dz59CjOzfbEW0etU2YOOniZspmkHMB4K6Ci80RKEuYiTh3AgKH AhwaxOdwIQMADQWk6d/PXzHmnT0w8t+ABLKAmGgFJv5oIGWfgaXgQachJEiDDqag CBACCvfLZq3QVoljKVSFwgYZzCILABA4cAhBFAIQGkGjFeCUaQKMs5pqWSDQ2mum yZYdbbbhBk9qqPHmGybBHcKRBgBkcMF88sFnmAwKMeRTDv7FFcw7cXHJlknZTQVe M9yR5INGXOrFBEtwudGBB3MExsBLYElnJ3TUdQnOdXjdld143YkpF5nidUGMEH6i 95tH7N3zhgTJPRDBBwVMANYpmJaS54OqBGhCBJ59MggnFIjQ36n6cVqQp6q26uqr r072ky5HUQmrqrjQ2osKwEzkDYgvHAOXMi+IuAoBtZaQFLDZyZgXVByeMJUfxp22 VwEDJSwHwQ+2llDDDViOtsgQRVhkxp/oSbHFWW6ty8YQYSSxxCFmMJPGGnmMAMG1 g8nEQQfblnUgGA0olWWze3ZpnnZttfvdoHtikdrCaarEV74dRVBBAQ/Q9MG/IhGw zcjZbJpOmuMMWYA56GyWDjtDvquyPEDUmElfVwxAygVbZSAABj8MTNbBt7pgiVXR UJP0xkU37fTTJYQAADs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline Content-Type: image/gif Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/ced/images/btn_outlet_item.gif Content-Transfer-Encoding: Base64 R0lGODlhSwAPAIQRAP//zP/MAOeIbdpENswAAPG7luuZet1VRNMiG88RDvXMo/jd seBmUvzuvuR3X9YzKe6qiP////////////////////////////////////////// /////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAsAAAAAEsADwAA BfxgII5kaZ5oqq4q4L5wLM90bd+ziO9877+6n3AoDM4KAkEDsBC4CgZkUmCIvqTJ 5tQJgGKphqkBEHaVacaYIyE4JBYFgkswQA4Q1AEXIMBnBQwESXN1dHgGA3pUAAME BQAEcmgBMw2OLgMOcYScjHt0MZsvoHwDmHuMBwIFB5I5lDKipaKkpHqjkQSmXa6l nY2RTnqqAr0xaS8KBEsADge0u7afu1e9tbu3L3UIB8o1yC8IDAAKCQYLBBAAB+O+ nqPUT9bR2Kh1Bw+Q37AyCo1scxIQeKDgVy49uS7JcmcrISMo44zBAEekosWJ/C5q vEhxo8ceLEKKHEnSRAgAOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=pdp2.css Content-Type: text/css; name=pdp2.css Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/hf/bby2/styles/pdp2.css Content-Transfer-Encoding: 8bit /****************************** * styles included for example * ******************************/ img{border:0;} #pdpcenterwell{margin:5px 0 5px 10px;padding:1px 0 10px 0;} #productsummary{width:540px;float:left;} #productpreview{width:780px;padding:0 0 10px 0;} #productdetail{width:780px;padding:10px 0 10px 0;} #imagepreview{width:220px;text-align:center;float:left;margin-right:10px;} #imagepreviewtext{text-align:left;} #realplayalbum{width:220px;position:relative;} #realplayalbum img{position:absolute;left:57px;top:10px;} #imagepreview h4{margin:0 0 5px 0;padding:0;font-weight:bold;font-size:11px;} #imagepreview li{list-style-type:none;text-align:left;} .pdpcurveborder{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/postcard_top_rev.gif") bottom left no-repeat;height:7px;width:540px;padding:0;margin:0;} .pdpcurveborderbottom{background:#ccc url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/postcard_bottom_rev.gif") bottom right no-repeat;height:10px;width:540px;padding:0;margin:0;} .pdpsummarybox{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/pdpsummarybox_gradient_rev.gif") top left;float:left;width:540px;margin:0 0 0 0;} .pdpsummaryboxcontent {margin:0 20px 3px 20px;background-color:#fff;} .pdpsummaryboxcontent.twocolborderdashed{padding:1px 0 1px 0;background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/twocolbg-dashed.gif") 0 0 repeat-y !important;} .pdpsummaryboxcontent.threecolborderdashed{padding:1px 0 1px 0;background: url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/threecolbg-dashed.gif") 0 0 repeat-y !important;} .pdpsummarybox h1{padding:0;margin:5px 20px 0 20px;font-size:18px;} .pdpsummarybox a{color:#003399;text-decoration:none;} .pdpsummarybox a:hover{text-decoration:underline;} .pdpsummarybox a:visited{color:#333399;} #fitguide{margin:0 0 10px 0;} #fitguide .fitguidecurveborder{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_top_rev.gif") bottom left no-repeat;height:8px;width:540px;padding:0;margin:0;} #fitguide .fitguidecurveborderbottom{background:#ccc url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_bottom_rev.gif") bottom right no-repeat;height:8px;width:540px;padding:0;margin:0;} #fitguide .fitguidecontent{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_middle_rev.gif") top left;float:left;width:540px;} #fitguide .fitguidecontent a{color:#003399 !important;text-decoration:none;} #fitguide .fitguidecontent a:hover{text-decoration:underline;color:#333399;} #fitguide .fitguidecontent p{float:left;margin:0;padding:10px 5px;} #fitguide .fitguidecontent p.result{float:left;margin:0;padding:3px 5px;} #fitguide .fgimage{float:left;width:40px;padding:0 0 0 20px;} #toperror{margin:0 0 10px 0;} #toperror .errorcurveborder{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowerrorbox_top.gif") bottom left no-repeat;height:8px;width:770px;padding:0;margin:0;} #toperror .errorcurveborderbottom{background:#ccc url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowerrorbox_bottom.gif") bottom right no-repeat;height:8px;width:770px;padding:0;margin:0;} #toperror .errorcontent{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowerrorbox_middle.gif") top left;float:left;width:770px;color:#cc0000;font-weight:bold;} #toperror .errorimage{float:left;width:40px;padding:0 0 0 20px;} #toperror .errorcontent p{float:left;margin:0;padding:10px 5px;} .pdpsummaryboxcontent .leftcol{float:left;width:310px;margin:0 5px 0 0px;padding:0;background-color:#fff; } .pdpsummaryboxcontent .leftcol a{color:#003399 !important;text-decoration:none;} .pdpsummaryboxcontent .leftcol a:hover{text-decoration:underline;} .pdpsummaryboxcontent .rightcol{float:left;width:170px;margin:0 0px 0 15px;padding:0;} .pdpsummaryboxcontent .leftcol h4, .pdpsummaryboxcontent .rightcol h4, .blueboxcontent h4{margin:0;padding:0;font-weight:bold;font-size:11px;} .pdpsummaryboxcontent .leftcol p, .pdpsummaryboxcontent .rightcol p{margin:0;padding:0 0 10px 0;} #productlogo{text-align:left;} #detailband{margin:0 20px 0 20px;} #reviewband{margin:0;padding:0;} #reviewband #pstcrdstar{margin:0 5px;} #reviewband #reviewscore{margin-right:5px;} #reviewband #reviewnum{} #musicdetailband{margin:10px 20px 0 20px;} #moviedetailband{margin:0 20px 0 20px;} #priceblock{margin:3px 0 15px 0;} #priceblock p{clear:left;} #buttonblock{text-align:left;margin:0 0 0 0;padding:} #addtocart{margin-bottom:10px;} #addtowishlist{margin-bottom:10px;} #instoreonly{margin-bottom:10px;} #soldout{margin-bottom:10px;} #notorderable{margin-bottom:10px;} #comingsoon{margin-bottom:10px;} #preorder{margin-bottom:10px;} #specialorder{margin-bottom:10px;} #viewmorephotos{} #plusblock{margin-right:10px;} #financeblock{} #plusblock ul, #financeblock ul{margin:0;padding:0px 0px 0;list-style:none;} #plusblock li, #financeblock li{background:url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/misc_check_ff0000.gif') no-repeat left top;padding:0 0 0 15px;margin:0 0 3px 0;} #plusblock li a, #financeblock li a{color:#003399;text-decoration:none;} #plusblock li a:hover, #financeblock li a:hover{text-decoration:underline;} #plusblock h4, #financeblock h4{margin:0 0 5px 0;padding:0;font-weight:bold;font-size:11px;} /* price block info */ .pricetext, .savingstext, .saletext, .ourtext{float:left;} .pricenum, .savingsnum, .salenum, .ournum{float:right;} #regularprice, #savings, #saleprice, #ourprice, #seeincart{clear:both;} #saleprice .saletext, #saleprice .salenum{font-weight:bold;font-size:14px;color:#cc0000;} #ourprice .ourtext, #ourprice .ournum{font-weight:bold;font-size:14px;color:#cc0000;} .moreimages{margin:20px 0 10px 0;text-align:left;} .disclaimer{font-size:9px;text-align:left;color:#666;} .disclaimer a{font-size:9px !important;} .dlbutton{margin-top:6px;} div.pdphr{margin:7px 20px 7px 20px;height: 8px; background: #fff url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/dashed-border.gif') repeat-x scroll center;} div.pdphr hr {display: none;} div.pdpsolidhr{margin:7px 5px 7px 5px;height: 8px; background: #fff url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/solid-border.gif') repeat-x scroll center;} div.pdpsolidhr hr {display: none;} div.pdpinnerhr{margin:5px 0px 10px 0px;height: 8px; background: #fff url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/dashed-border.gif') repeat-x scroll center;} div.pdpinnerhr hr {display: none;} #tabbedbox{float:left;width:588px;} #servicescol{width:170px;float:left;margin:0 0 0 13px;} #tabbed-overview, #tabbed-accessories, #tabbed-specifications, #tabbed-reviews, #tabbed-customerreviews, #tabbed-productresearch, #tabbed-rebates, #tabbed-release-notes, #tabbed-related-music, #tabbed-editorial-reviews, #tabbed-version-details, #tabbed-castandcrew, #tabbed-awards, #tabbed-related, #tabbed-system-requirements, #tabbed-screenshots, #tabbed-bundle-overview{padding:20px;clear:both;background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/contentbox-bg-grad.gif") top left repeat-x;} #tabbed-overview h2, #tabbed-accessories h2, #tabbed-specifications h2, #tabbed-reviews h2, #tabbed-productresearch h2, #tabbed-rebates h2, #tabbed-release-notes h2, #tabbed-related-music h2, #tabbed-editorial-reviews h2, #tabbed-version-details h2, #tabbed-castandcrew h2, #tabbed-awards h2, #tabbed-related h2, #tabbed-system-requirements h2, #tabbed-screenshots h2, #tabbed-bundle-overview h2{padding:0;margin:0 0 7px 0;font-size:15px;font-weight:bold;} #tabbed-synopsis{padding:0 0 20px 0;} #tabbed-accessories .active, #tabbed-reviews .active, #tabbed-customerreviews .active, #tabbed-productresearch .active, #tabbed-rebates .active, #tabbed-release-notes .active, #tabbed-related-music .active, #tabbed-editorial-reviews .active, #tabbed-version-details .active, #tabbed-castandcrew .active, #tabbed-awards .active, #tabbed-related .active{position:absolute;top:10;left:100;} #tabbed-overview ul{} #tabbed-overview li{padding-bottom:5px;} #tabbed-overview .leftcol, #tabbed-productresearch .leftcol, #tabbed-bundle-overview .leftcol{width:165px;float:left;margin-right:20px;} #tabbed-overview .leftcol p, #tabbed-productresearch .leftcol p, #tabbed-bundle-overview .leftcol p{margin:5px 0 5px 0;} #tabbed-overview .rightcol, #tabbed-productresearch .rightcol, #tabbed-bundle-overview .rightcol{width:340px;float:left;} #tabbed-overview .rightcol p, #tabbed-productresearch .rightcol p, #tabbed-bundle-overview .rightcol p{margin:10px 0 10px 0;} #tabbed-overview .rightcol dl, #tabbed-bundle-overview .rightcol dl{clear:both;width:340px;margin:0;padding:0;} #tabbed-overview .rightcol dd, #tabbed-bundle-overview .rightcol dd{margin:5px 0;padding:0;width:135px; float:left;} #tabbed-overview .rightcol dt, #tabbed-bundle-overview .rightcol dt{margin:5px 0;padding:0;float:left;width:200px;font-weight:bold;} #tabbed-overview .rightcol dt a, #tabbed-bundle-overview .rightcol dt a{font-size:11px;text-decoration:none;color:#333399 !important;} #tabbed-overview .rightcol dt a:hover, #tabbed-bundle-overview .rightcol dt a:hover{text-decoration:underline;color:#333399;} .rightcol .description{margin:0;padding:0 0 15px 0;float:left;width:270px;display:block;} .rightcol .altimage{float:right;vertical-align:top;} #tabbed-version-details .row, #tabbed-system-requirements .row{width:99%;} #tabbed-version-details .row.banded, #tabbed-system-requirements .row.banded{background-color:#eee;width:99%;} #tabbed-version-details .row .label, #tabbed-system-requirements .row .label{font-weight:bold;float:left;width:40%;margin:0 0 2px 0;padding:3px 2px 3px 2px;} #tabbed-version-details .row .data, #tabbed-system-requirements .row .data{float:left;width:50%;margin:0 0 2px 0;padding:3px 2px 3px 2px;} #tabbed-castandcrew ul, #track-listing ul, #tabbed-related ul, #tabbed-related-music ul, #tabbed-specifications ul{list-style: none;margin-left: 0px;padding-left: 0px;margin-top: 0px;} #tabbed-castandcrew a, #tabbed-related a, #track-listing a, #tabbed-overview a, #tabbed-productresearch a{font-size:11px;text-decoration:none;color:#333399 !important;} #tabbed-castandcrew a:hover, #tabbed-related a:hover, #track-listing a:hover, #tabbed-overview a:hover, #tabbed-productresearch a:hover{text-decoration:underline;color:#333399;} #track-listing li.banded{background-color:#eee;} #track-listing li .track{float:left;width:270px;} #track-listing li .listen{width:40px;padding-left:20px;float:right;background:url('http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_listen.gif') no-repeat left;} #tabbed-specifications dl{width:540px;margin:0;padding:0;clear:all;} #tabbed-specifications dd{margin:0 0 2px 0;padding:3px 2px 3px 2px;width:260px; float:left;} #tabbed-specifications dd.banded, #tabbed-specifications dt.banded{background-color:#eee;} #tabbed-specifications dt{margin:0 0 2px 0;padding:3px 2px 3px 2px;float:left;width:260px;font-weight:bold;clear:both;} #tabbed-specifications dt a{font-size:11px;text-decoration:none;color:#333399 !important;} #tabbed-specifications dt a:hover{text-decoration:underline;color:#333399;} #tabbed-specifications a{font-size:11px;text-decoration:none;color:#333399 !important;} #tabbed-specifications a:hover{text-decoration:underline;color:#333399;} #tabbed-specifications li.banded{background-color:#eee;border:solid 1px #eee;} #tabbed-specifications li .label{margin:0 0 2px 0;padding:3px 2px 3px 2px;float:left;width:260px;font-weight:bold;} #tabbed-specifications li .data{margin:0 0 2px 0;padding:3px 2px 3px 2px;width:260px; float:left;} #tabbed-accessories .suggestedproduct{width:99%;padding:10px 0 5px 0;clear:both;} #tabbed-accessories .suggestedproduct a{font-weight:normal;font-size:11px;text-decoration:none;color:#333399 !important;} #tabbed-accessories .suggestedproduct a:hover{text-decoration:underline;color:#333399;} #tabbed-accessories .suggestedproduct .regprice{} #tabbed-accessories .suggestedproduct .yousave{} #tabbed-accessories .suggestedproduct .sale{font-weight:bold;} #tabbed-accessories .suggestedproduct .soldout{color:#cc0000;font-weight:bold;} #tabbed-accessories .suggestedproduct .addtocart{} #tabbed-accessories .prodimage{float:left;width:60px;} #tabbed-accessories .prodlink{float:left;width:280px;margin:0 10px 0 10px;font-weight:normal;} #tabbed-accessories .prodlink a{font-size:11px;text-decoration:none;color:#333399 !important;font-weight:bold;} #tabbed-accessories .prodpricing{float:left;width:150px;} #tabbed-accessories .compare{float:left;width:10px;text-align:center;} #tabbed-accessories a:hover{text-decoration:underline;color:#333399;} #tabbed-rebates .row{padding:0;margin-bottom:10px;clear:both;} #tabbed-awards .row{margin:10px 0 20px 0;clear:both;border-bottom:solid 1px #ccc;} #tabbed-rebates .headerrow, #tabbed-awards .headerrow{margin:5px 0 10px 0;clear:both;background-color:#eee;font-weight:bold;font-size:11px;padding:3px 0px 3px 0px;} #tabbed-rebates .available{float:left;width:57%;} #tabbed-rebates .expires{float:left;width:18%;} #tabbed-rebates .postmark{float:left;width:16%;} #tabbed-rebates h4{background-color:#eee;font-weight:bold;font-size:11px;margin:0 0 2px 0;padding:3px 2px 3px 2px;} #tabbed-rebates p{clear:left;margin:5px 0 5px 0; padding:0;} #tabbed-rebates a{text-decoration:none;color:#003399;} #tabbed-rebates a:hover{text-decoration:underline;color:#333399;} #tabbed-awards .awards{float:left;width:25%;padding:0 3px 0 3px;} #tabbed-awards .artistname{float:left;width:35%;padding:0 3px 0 3px;} #tabbed-awards .year{float:left;width:15%;padding:0 3px 0 3px;} #tabbed-awards .awardedby{float:left;width:15%;padding:0 3px 0 3px;} /* bugfix for screenshot images having underline */ #tabbed-screenshots a{text-decoration:none;} #package-details{margin-left:3px;margin-bottom:10px;} #package-details li{padding-left:12px;margin-left: 0px;} #package-details li.active{background:url('http://images.bestbuy.com/BestBuy_US/images/global/misc/misc_bullet_downarrow.gif') no-repeat left;} #package-details li.active a{color:#000 !important;text-decoration:none;font-size:13px;padding-left:0;font-weight:bold;} #package-details li.active a:hover{background:#fff;text-decoration:none;} #package-details li{padding-bottom:3px;padding-top:3px;} #package-details li a{font-size:11px;text-decoration:none;color:#333399 !important;} #package-details li a:hover{text-decoration:underline;} #package-details ul{list-style: none;margin-left: 0px;padding-left: 0px;margin-top: 0px;} #package-details .leftcol{float:left;width:430px;} #package-details .rightcol{float:right;width:120px;text-align:center;margin-top:10px;height:80px;} #detaillinklist{} .centerwellpgtxt{width:770px;background-color:#ccc;clear:both;} #seeincart{font-weight:bold;font-size:14px;color:#cc0000;} #seeincart a{font-weight:normal;font-size:11px;text-decoration:none;color:#333399;} #seeincart a:hover{text-decoration:underline;} #viewmore{font: bold 12px verdana;padding:10px;position:absolute;left:-999px;top:0;border:solid 1px #000;z-index:20;background-color:#fff;width:500px;height:190px;} #swatches{text-align:left;} #swatches ul{margin:0;padding:0px 0px 0;list-style:none;clear:both;} #swatches li{text-align:left;float:left;margin-right:5px;} #swatchcolor{float:left;padding:0;margin:0;font-weight:normal;font-size:11px;margin-left:3px;} #swatches h4{float:left;} #pspbox{} .pspcontent, .prodaccessorycontent{font-size:9px;border-bottom:solid 1px #ccc;background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/bluebox-border.gif") top left repeat-y;} .pspcontent p, .prodaccessorycontent p{margin:0;padding:5px 10px;} .pspcontent p.leftcol{float:left;width:55px;margin:0;padding:5px 0 5px 10px;} .pspcontent p.rightcol{float:right;width:95px;margin:0;padding:5px 5px;} .pspcontent h5{font-size:11px;padding:0;margin:0 0 6px 0;font-weight:normal;} #downloadcontent{font-size:11px;} .prodaccessory{margin:0;padding:5px 10px;clear:both;font-size:9px;} .prodaccessory .prodimage{float:left;width:60px;text-align:center;} .prodaccessory .prodtext{float:left;width:85px !important;} .prodaccessory .regprice{} .prodaccessory .ourprice{font-weight:bold;} .prodaccessory .yousave{} .prodaccessory .sale{font-weight:bold;} .prodaccessory .soldout{color:#cc0000;font-weight:bold;} .prodaccessory .addtocart{} /* #servicescol .prodaccessory span.modelnumber{color:#ccc;width:20px;float:left;}*/ #servicescol .prodaccessory .prodtext span{word-wrap: break-word;word-spacing: -.3em;} #requiredaccessories{} .requiredproduct{width:99%;padding:10px 0 5px 0;clear:both;} .requiredproduct a{font-weight:normal;font-size:11px;text-decoration:none;color:#333399 !important;} .requiredproduct a:hover{text-decoration:underline;color:#333399;} .requiredproduct .prodimage{float:left;width:60px;} .requiredproduct .prodtext{float:left;width:310px;margin:0 10px 0 10px;} .requiredproduct .prodpricing{float:left;width:150px;} .requiredproduct .prodpricing .sale{font-weight:bold;} .addaccessories{clear:both;text-align:right;} #addaccessories{clear:both;text-align:right;margin:20px 25px 0 0;} #sod{width:542px;margin:0;padding-top:10px;clear:both;} #sod .sodcurveborder{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_top.gif") bottom left no-repeat;height:8px;width:542px;padding:0;margin:0;} #sod .sodcurveborderbottom{background:#ccc url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_bottom.gif") bottom right no-repeat;height:8px;width:542px;padding:0;margin:0;} #sod .sodcontent{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/yellowpostcard_middle.gif") top left;width:542px;} #sod h4{margin:0;padding:0 0 0 20px;font-weight:bold;font-size:13px;} #sod p{padding:0 0 0 20px;margin:5px 0 5px 0;} #sod ul{padding:0 20px 0 20px;} #sod a{font-weight:normal;font-size:11px;text-decoration:none;color:#333399 !important;} #sod a:hover{text-decoration:underline;color:#333399;} #specialorderbox h4{float:left;} #specialorderbox p{float:left;margin:0;padding:2px 0 0 5px;} #specialorderdetails{position:relative; height:1px; overflow:hidden;clear:both;} #featurebullets{position:relative; height:1px; overflow:hidden;} #specialorderdetailsinner{padding-bottom:10px;width:540px;} #specialorderdetailsinner h4{padding-top:15px;} #productfeatures h2{float:left;padding:0;margin:0;font-size:15px;font-weight:bold;} #productfeatures .showmore{float:left;padding:4px 0 0 10px;margin:0;} #descriptionbullets{clear:both;} #searchstate{width:770px;} .pt1{float:left;width:169px;} .pt2{clear:both;float:left;width:169px;} .pt3{clear:both;} .sep{color:#ccc;padding:0 2px;} /* override pdpavail in /BestBuy_US/store/styles/BBStyles.css: .pdpavail {background-color:#dddddd;font-size:9px;padding:3px;padding-left:5px;padding-right:5px;margin-top:3px;} */ .pdpavail{background-color:transparent !important;font-size:11px !important;padding:0 !important;margin:0 !important;} #BVReviewsContainer{width:540px;} /* override gamespot/ gamepro content for temporary fix */ #extContent {padding-bottom:10px;} #reviews .header {display:block;} #ratings .header {display:block;} .header {display:none;border:none !important;} #downloads {margin:10px 0px 0px 0px;align:center;border-bottom:none !important;} #ratings {border-bottom:none !important;margin:10px 0px 0px 0px;align:center;} #esrb {padding-bottom:10px;float:left;vertical-align:top;border-bottom:none !important;} #cs{padding:0px 0px 10px 10px;width:195px;vertical-align:top;text-align:center;border-top:none !important;border-left:none !important;} #reviews {margin:10px 0px 10px 0px;border-bottom:none !important;} #gsgp {margin:5px 0px 10px 0px;border-bottom:none !important;} /* Caution! Ensure accessibility in print and other media types... */ @media projection, screen { /* Use class for showing/hiding tab content, so that visibility can be better controlled in different media types... */ .ui-tabs-hide {display: none;} } /* Hide useless elements in print layouts... */ @media print { .ui-tabs-nav { display: none; } } #pdptabs{} #renderedtabs{display:none;} /* Skin */ .ui-tabs-nav, .ui-tabs-panel {font-size: 11px;list-style: none;margin: 0;padding: 0;height:39px;background:#fff url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_border.gif") repeat-x bottom;} .ui-tabs-nav:after {display: block;clear: both;content: " ";} .ui-tabs-nav li {float: left;margin: 0 3px 0 0;text-align:center;height:38px;float:left;background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_off_right_revised.gif") repeat-y right top;} .ui-tabs-nav li div{background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_off_left_revised.gif") repeat-y left top;height:38px;width:6px;float:left;} .ui-tabs-nav a, .ui-tabs-nav a span {float: left;padding: 4px;} .ui-tabs-nav a {margin: 5px 0 0;padding-left: 0;background-position: 100% 0;text-decoration: none;white-space: nowrap;outline: 0;} .ui-tabs-nav a:link, .ui-tabs-nav a:visited {color: #000;} .ui-tabs-nav .ui-tabs-selected{background-image:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_on_right_revised.gif");height:39px;} .ui-tabs-nav .ui-tabs-selected div{width:6px; background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/pdp/tabs/tab_on_left_revised.gif") repeat-y;height:39px;} .ui-tabs-nav .ui-tabs-selected a {position: relative;z-index: 2;} .ui-tabs-nav a span {} .ui-tabs-nav a.nopad{margin: 0;padding:0 4px 0 0;} .ui-tabs-nav .ui-tabs-selected a span {padding: 4px;font-weight:bold;} .ui-tabs-nav .ui-tabs-selected a:link, .ui-tabs-nav .ui-tabs-selected a:visited, .ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited {cursor: text;} .ui-tabs-nav a:hover, .ui-tabs-nav a:focus, .ui-tabs-nav a:active, .ui-tabs-nav .ui-tabs-unselect a:hover, .ui-tabs-nav .ui-tabs-unselect a:focus, .ui-tabs-nav .ui-tabs-unselect a:active {cursor: pointer;} .ui-tabs-disabled {opacity: .4;filter: alpha(opacity=40);} .ui-tabs-nav .ui-tabs-disabled a:link, .ui-tabs-nav .ui-tabs-disabled a:visited {color: #000;} .ui-tabs-panel {border: 1px solid #ccc;border-top:0;padding: 10px;background: #fff;height:auto;} /*.ui-tabs-loading em { padding: 0 0 0 20px; background: url(loading.gif) no-repeat 0 50%; }*/ /* Additional IE specific bug fixes... */ * html .ui-tabs-nav {display: inline-block;} *:first-child+html .ui-tabs-nav {display: inline-block;} #storeavail{padding-left:12px;margin:0;} #storeavail .unavail{color:#aaa;} #storeavail .noindent{list-style-type:none;padding-left:0;} #printform{margin:0;padding:0;display:none;} #printformdiv{display:none;width:170px;padding:0;margin:0;} #printform ul{padding:0;margin:0;} #printform li{list-style-type:none;padding:0;margin:0;} #printerfriendly{cursor:pointer;height:20px;overflow:hidden;background:url('http://images.bestbuy.com:80/BestBuy_US/en_US/images/global/buttons/btn-printer-friendly.gif') no-repeat 0 -19px;} #printerfriendly.hover{background:url('http://images.bestbuy.com:80/BestBuy_US/en_US/images/global/buttons/btn-printer-friendly.gif') no-repeat 0 0;} #printbutton{cursor:pointer;padding-top:3px;} #outletcenter{background:url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/ced/images/btn_outlet_item.gif') no-repeat;height:20px;cursor:pointer;} #outletcenter.hover{cursor:default;} #outletcenter.hover a{} #outletcentermessage, #powerpricemessage{position:absolute;left:-999px;} #pwrprice{background:url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/misc/priceblock_ppn_revised.gif') no-repeat;height:20px;cursor:pointer;} #outletcenter a, #pwrprice a, #printerfriendly a{position:absolute;left:-900px;} #pwrprice.hover{background:url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/misc/priceblock_ppn_revised.gif') no-repeat 0 -21px;height:20px;} #pwrprice.hover a{position:relative;left:0;top:2px;text-decoration:none;} .accessstar{margin-left:5px;margin-top:2px;} .reviewscoreaccess{margin-left:3px;} #energystar{height:35px;margin-bottom:15px;} #energyguide{height:35px;} #morebuttons ul{float:left;padding:0;margin:8px 0;} #morebuttons li{list-style-type:none;float:left;padding-right:10px;margin:0;} #morebuttons li a {text-decoration:none;} /* styles added for gifting project */ .sr {position: absolute;left: -9999em;top: 0;width: 1px;height: 1px;overflow: hidden;} #wishlistfunc{position: relative; z-index: 21;font-size:11px;} #wishlistfunc #addtowishlist{cursor:pointer;} #wishlistfunc fieldset{margin: 0;padding: 0;border: none;outline: 0;font-weight: inherit;font-style: inherit;font-size: 100%;font-family: inherit;vertical-align: baseline;} #wishlistfunc legend.sr{display:none;} #wishlistfunc ol{padding:30px 0 0 15px;margin:0;width:187px;} #wishlistfunc ol li{list-style-type:none;padding:0;margin:0;} #wishlistfunc ol.newlistcreate li{margin-bottom:5px;} #wishlistfunc ol.newlistcreate li.listname{padding:5px 0;} #wishlistfunc ol.newlistcreate li label{padding-right:5px;font-weight:bold;display:block;padding-bottom:5px;} #wishlistfunc ol.listsummary-scroll{height:60px;overflow:auto;scrollbar-base-color: #FF9900;} #wishlistfunc ol.listsummary li, #wishlistfunc ol.listsummary-scroll li{line-height:20px;vertical-align: middle;} #wishlistfunc ol.listsummary li input,#wishlistfunc ol.listsummary-scroll li input{margin-right:5px;} #wishlistfunc ol li input{font-size:11px;} #wishlistfunc #listpop{display:none;position:absolute; top:-7px; left:-10px; z-index: 10;width:203px;height:213px;} #wishlistfunc #listpophdr{background: #fff url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/gifting/images/wish-list-header.gif') no-repeat;height:30px;} #wishlistfunc #listpopbody{background: #fff url('http://images.bestbuy.com/BestBuy_US/en_US/images/global/gifting/images/wish-list-bottom.gif') bottom right repeat-y;padding-bottom:10px;} #wishlistfunc #listpop .savebutton{padding:10px 10px 0;float:right;} #wishlistfunc #closepop{float:right;cursor:pointer;padding:8px 10px 0 0;color: #002aa0;} #wishlistfunc #showmore{cursor:pointer;padding:10px 15px;color: #002aa0;cursor:pointer;} #wishlistfunc #listpop label{} #wishlistfunc #createnewlink{padding-left:15px;cursor:pointer;} #wishlistfunc #instruction{padding:5px 15px;} #createnew{padding-left:10px;margin:0;display:none;} #createnew ol.createaddllist{padding:0;margin:0;} #wishlistfunc #morelists{display:none;} #wishlistfunc #morelists ol.morelistsummary{padding:0;margin:0;} #wishlistfunc #morelists ol.morelistsummary li{line-height:20px;vertical-align: middle;padding:0 0 0 15px;} #wishlistfunc .selecttext{padding: 0 15px;} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olsoverallcommon.js Content-Type: application/x-javascript; name=olsoverallcommon.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olsoverallcommon.js Content-Transfer-Encoding: Base64 dmFyIGFndD1uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7CnZhciBp c19tYWpvciA9IHBhcnNlSW50KG5hdmlnYXRvci5hcHBWZXJzaW9uKTsKdmFyIGlz X21pbm9yID0gcGFyc2VGbG9hdChuYXZpZ2F0b3IuYXBwVmVyc2lvbik7CnZhciBp c19uYXYgID0gKChhZ3QuaW5kZXhPZignbW96aWxsYScpIT0tMSkgJiYgKGFndC5p bmRleE9mKCdzcG9vZmVyJyk9PS0xKQoJCQkmJiAoYWd0LmluZGV4T2YoJ2NvbXBh dGlibGUnKSA9PSAtMSkgJiYgKGFndC5pbmRleE9mKCdvcGVyYScpPT0tMSkKCQkJ JiYgKGFndC5pbmRleE9mKCd3ZWJ0dicpPT0tMSkgJiYgKGFndC5pbmRleE9mKCdo b3RqYXZhJyk9PS0xKSk7CnZhciBpc19uYXYyID0gKGlzX25hdiAmJiAoaXNfbWFq b3IgPT0gMikpOwp2YXIgaXNfbmF2MyA9IChpc19uYXYgJiYgKGlzX21ham9yID09 IDMpKTsKdmFyIGlzX25hdjQgPSAoaXNfbmF2ICYmIChpc19tYWpvciA9PSA0KSk7 CnZhciBpc19uYXY0dXAgPSAoaXNfbmF2ICYmIChpc19tYWpvciA+PSA0KSk7CnZh ciBpc19uYXZvbmx5ICAgICAgPSAoaXNfbmF2ICYmICgoYWd0LmluZGV4T2YoIjtu YXYiKSAhPSAtMSkgfHwKCQkJCQkgIChhZ3QuaW5kZXhPZigiOyBuYXYiKSAhPSAt MSkpICk7CnZhciBpc19uYXY2ID0gKGlzX25hdiAmJiAoaXNfbWFqb3IgPT0gNSkp Owp2YXIgaXNfbmF2NnVwID0gKGlzX25hdiAmJiAoaXNfbWFqb3IgPj0gNSkpOwp2 YXIgaXNfZ2Vja28gPSAoYWd0LmluZGV4T2YoJ2dlY2tvJykgIT0gLTEpOwp2YXIg aXNfaWUgICAgID0gKChhZ3QuaW5kZXhPZigibXNpZSIpICE9IC0xKSAmJiAoYWd0 LmluZGV4T2YoIm9wZXJhIikgPT0gLTEpKTsKdmFyIGlzX2llMyAgICA9IChpc19p ZSAmJiAoaXNfbWFqb3IgPCA0KSk7CnZhciBpc19pZTQgICAgPSAoaXNfaWUgJiYg KGlzX21ham9yID09IDQpICYmIChhZ3QuaW5kZXhPZigibXNpZSA0IikhPS0xKSAp Owp2YXIgaXNfaWU0dXAgID0gKGlzX2llICYmIChpc19tYWpvciA+PSA0KSk7CnZh ciBpc19pZTUgICAgPSAoaXNfaWUgJiYgKGlzX21ham9yID09IDQpICYmIChhZ3Qu aW5kZXhPZigibXNpZSA1LjAiKSE9LTEpICk7CnZhciBpc19pZTVfNSAgPSAoaXNf aWUgJiYgKGlzX21ham9yID09IDQpICYmIChhZ3QuaW5kZXhPZigibXNpZSA1LjUi KSAhPS0xKSk7CnZhciBpc19pZTV1cCAgPSAoaXNfaWUgJiYgIWlzX2llMyAmJiAh aXNfaWU0KTsKdmFyIGlzX2llNV81dXAgPShpc19pZSAmJiAhaXNfaWUzICYmICFp c19pZTQgJiYgIWlzX2llNSk7CnZhciBpc19pZTYgICAgPSAoaXNfaWUgJiYgKGlz X21ham9yID09IDQpICYmIChhZ3QuaW5kZXhPZigibXNpZSA2LiIpIT0tMSkgKTsK dmFyIGlzX2llNnVwICA9IChpc19pZSAmJiAhaXNfaWUzICYmICFpc19pZTQgJiYg IWlzX2llNSAmJiAhaXNfaWU1XzUpOwp2YXIgaXNfYW9sICAgPSAoYWd0LmluZGV4 T2YoImFvbCIpICE9IC0xKTsKdmFyIGlzX2FvbDMgID0gKGlzX2FvbCAmJiBpc19p ZTMpOwp2YXIgaXNfYW9sNCAgPSAoaXNfYW9sICYmIGlzX2llNCk7CnZhciBpc19h b2w1ICA9IChhZ3QuaW5kZXhPZigiYW9sIDUiKSAhPSAtMSk7CnZhciBpc19hb2w2 ICA9IChhZ3QuaW5kZXhPZigiYW9sIDYiKSAhPSAtMSk7CnZhciBpc19vcGVyYSA9 IChhZ3QuaW5kZXhPZigib3BlcmEiKSAhPSAtMSk7CnZhciBpc19vcGVyYTIgPSAo YWd0LmluZGV4T2YoIm9wZXJhIDIiKSAhPSAtMSB8fCBhZ3QuaW5kZXhPZigib3Bl cmEvMiIpICE9IC0xKTsKdmFyIGlzX29wZXJhMyA9IChhZ3QuaW5kZXhPZigib3Bl cmEgMyIpICE9IC0xIHx8IGFndC5pbmRleE9mKCJvcGVyYS8zIikgIT0gLTEpOwp2 YXIgaXNfb3BlcmE0ID0gKGFndC5pbmRleE9mKCJvcGVyYSA0IikgIT0gLTEgfHwg YWd0LmluZGV4T2YoIm9wZXJhLzQiKSAhPSAtMSk7CnZhciBpc19vcGVyYTUgPSAo YWd0LmluZGV4T2YoIm9wZXJhIDUiKSAhPSAtMSB8fCBhZ3QuaW5kZXhPZigib3Bl cmEvNSIpICE9IC0xKTsKdmFyIGlzX29wZXJhNXVwID0gKGlzX29wZXJhICYmICFp c19vcGVyYTIgJiYgIWlzX29wZXJhMyAmJiAhaXNfb3BlcmE0KTsKdmFyIGlzX3dl YnR2ID0gKGFndC5pbmRleE9mKCJ3ZWJ0diIpICE9IC0xKTsKdmFyIGlzX1RWTmF2 aWdhdG9yID0gKChhZ3QuaW5kZXhPZigibmF2aW8iKSAhPSAtMSkgfHwgKGFndC5p bmRleE9mKCJuYXZpb19hb2x0diIpICE9IC0xKSk7CnZhciBpc19BT0xUViA9IGlz X1RWTmF2aWdhdG9yOwp2YXIgaXNfaG90amF2YSA9IChhZ3QuaW5kZXhPZigiaG90 amF2YSIpICE9IC0xKTsKdmFyIGlzX2hvdGphdmEzID0gKGlzX2hvdGphdmEgJiYg KGlzX21ham9yID09IDMpKTsKdmFyIGlzX2hvdGphdmEzdXAgPSAoaXNfaG90amF2 YSAmJiAoaXNfbWFqb3IgPj0gMykpOwp2YXIgaXNfanM7CmlmIChpc19uYXYyIHx8 IGlzX2llMykgaXNfanMgPSAxLjA7CmVsc2UgaWYgKGlzX25hdjMpIGlzX2pzID0g MS4xOwplbHNlIGlmIChpc19vcGVyYTV1cCkgaXNfanMgPSAxLjM7CmVsc2UgaWYg KGlzX29wZXJhKSBpc19qcyA9IDEuMTsKZWxzZSBpZiAoKGlzX25hdjQgJiYgKGlz X21pbm9yIDw9IDQuMDUpKSB8fCBpc19pZTQpIGlzX2pzID0gMS4yOwplbHNlIGlm ICgoaXNfbmF2NCAmJiAoaXNfbWlub3IgPiA0LjA1KSkgfHwgaXNfaWU1KSBpc19q cyA9IDEuMzsKZWxzZSBpZiAoaXNfaG90amF2YTN1cCkgaXNfanMgPSAxLjQ7CmVs c2UgaWYgKGlzX25hdjYgfHwgaXNfZ2Vja28pIGlzX2pzID0gMS41OwplbHNlIGlm IChpc19uYXY2dXApIGlzX2pzID0gMS41OwplbHNlIGlmIChpc19pZTV1cCkgaXNf anMgPSAxLjM7CmVsc2UgaXNfanMgPSAwLjA7CnZhciBpc193aW4gICA9ICggKGFn dC5pbmRleE9mKCJ3aW4iKSE9LTEpIHx8IChhZ3QuaW5kZXhPZigiMTZiaXQiKSE9 LTEpICk7CnZhciBpc193aW45NSA9ICgoYWd0LmluZGV4T2YoIndpbjk1IikhPS0x KSB8fCAoYWd0LmluZGV4T2YoIndpbmRvd3MgOTUiKSE9LTEpKTsKdmFyIGlzX3dp bjE2ID0gKChhZ3QuaW5kZXhPZigid2luMTYiKSE9LTEpIHx8CgkJICAgKGFndC5p bmRleE9mKCIxNmJpdCIpIT0tMSkgfHwgKGFndC5pbmRleE9mKCJ3aW5kb3dzIDMu MSIpIT0tMSkgfHwKCQkgICAoYWd0LmluZGV4T2YoIndpbmRvd3MgMTYtYml0Iikh PS0xKSApOwp2YXIgaXNfd2luMzEgPSAoKGFndC5pbmRleE9mKCJ3aW5kb3dzIDMu MSIpIT0tMSkgfHwgKGFndC5pbmRleE9mKCJ3aW4xNiIpIT0tMSkgfHwKCQkJCShh Z3QuaW5kZXhPZigid2luZG93cyAxNi1iaXQiKSE9LTEpKTsKdmFyIGlzX3dpbm1l ID0gKChhZ3QuaW5kZXhPZigid2luIDl4IDQuOTAiKSE9LTEpKTsKdmFyIGlzX3dp bjJrID0gKChhZ3QuaW5kZXhPZigid2luZG93cyBudCA1LjAiKSE9LTEpKTsKdmFy IGlzX3dpbjk4ID0gKChhZ3QuaW5kZXhPZigid2luOTgiKSE9LTEpIHx8IChhZ3Qu aW5kZXhPZigid2luZG93cyA5OCIpIT0tMSkpOwp2YXIgaXNfd2lubnQgPSAoKGFn dC5pbmRleE9mKCJ3aW5udCIpIT0tMSkgfHwgKGFndC5pbmRleE9mKCJ3aW5kb3dz IG50IikhPS0xKSk7CnZhciBpc193aW4zMiA9IChpc193aW45NSB8fCBpc193aW5u dCB8fCBpc193aW45OCB8fAoJCQkJKChpc19tYWpvciA+PSA0KSAmJiAobmF2aWdh dG9yLnBsYXRmb3JtID09ICJXaW4zMiIpKSB8fAoJCQkJKGFndC5pbmRleE9mKCJ3 aW4zMiIpIT0tMSkgfHwgKGFndC5pbmRleE9mKCIzMmJpdCIpIT0tMSkpOwp2YXIg aXNfb3MyICAgPSAoKGFndC5pbmRleE9mKCJvcy8yIikhPS0xKSB8fAoJCQkJKG5h dmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoIk9TLzIiKSE9LTEpIHx8CgkJCQko YWd0LmluZGV4T2YoImlibS13ZWJleHBsb3JlciIpIT0tMSkpOwp2YXIgaXNfbWFj ICAgID0gKGFndC5pbmRleE9mKCJtYWMiKSE9LTEpOwppZiAoaXNfbWFjICYmIGlz X2llNXVwKSBpc19qcyA9IDEuNDsKdmFyIGlzX21hYzY4ayA9IChpc19tYWMgJiYg KChhZ3QuaW5kZXhPZigiNjhrIikhPS0xKSB8fAoJCQkJCQkgICAoYWd0LmluZGV4 T2YoIjY4MDAwIikhPS0xKSkpOwp2YXIgaXNfbWFjcHBjID0gKGlzX21hYyAmJiAo KGFndC5pbmRleE9mKCJwcGMiKSE9LTEpIHx8CgkJCQkJCQkoYWd0LmluZGV4T2Yo InBvd2VycGMiKSE9LTEpKSk7CnZhciBpc19zdW4gICA9IChhZ3QuaW5kZXhPZigi c3Vub3MiKSE9LTEpOwp2YXIgaXNfc3VuNCAgPSAoYWd0LmluZGV4T2YoInN1bm9z IDQiKSE9LTEpOwp2YXIgaXNfc3VuNSAgPSAoYWd0LmluZGV4T2YoInN1bm9zIDUi KSE9LTEpOwp2YXIgaXNfc3VuaTg2PSAoaXNfc3VuICYmIChhZ3QuaW5kZXhPZigi aTg2IikhPS0xKSk7CnZhciBpc19pcml4ICA9IChhZ3QuaW5kZXhPZigiaXJpeCIp ICE9LTEpOwp2YXIgaXNfaXJpeDUgPSAoYWd0LmluZGV4T2YoImlyaXggNSIpICE9 LTEpOwp2YXIgaXNfaXJpeDYgPSAoKGFndC5pbmRleE9mKCJpcml4IDYiKSAhPS0x KSB8fCAoYWd0LmluZGV4T2YoImlyaXg2IikgIT0tMSkpOwp2YXIgaXNfaHB1eCAg PSAoYWd0LmluZGV4T2YoImhwLXV4IikhPS0xKTsKdmFyIGlzX2hwdXg5ID0gKGlz X2hwdXggJiYgKGFndC5pbmRleE9mKCIwOS4iKSE9LTEpKTsKdmFyIGlzX2hwdXgx MD0gKGlzX2hwdXggJiYgKGFndC5pbmRleE9mKCIxMC4iKSE9LTEpKTsKdmFyIGlz X2FpeCAgID0gKGFndC5pbmRleE9mKCJhaXgiKSAhPS0xKTsKdmFyIGlzX2FpeDEg ID0gKGFndC5pbmRleE9mKCJhaXggMSIpICE9LTEpOwp2YXIgaXNfYWl4MiAgPSAo YWd0LmluZGV4T2YoImFpeCAyIikgIT0tMSk7CnZhciBpc19haXgzICA9IChhZ3Qu aW5kZXhPZigiYWl4IDMiKSAhPS0xKTsKdmFyIGlzX2FpeDQgID0gKGFndC5pbmRl eE9mKCJhaXggNCIpICE9LTEpOwp2YXIgaXNfbGludXggPSAoYWd0LmluZGV4T2Yo ImludXgiKSE9LTEpOwp2YXIgaXNfc2NvICAgPSAoYWd0LmluZGV4T2YoInNjbyIp IT0tMSkgfHwgKGFndC5pbmRleE9mKCJ1bml4X3N2IikhPS0xKTsKdmFyIGlzX3Vu aXh3YXJlID0gKGFndC5pbmRleE9mKCJ1bml4X3N5c3RlbV92IikhPS0xKTsKdmFy IGlzX21wcmFzICAgID0gKGFndC5pbmRleE9mKCJuY3IiKSE9LTEpOwp2YXIgaXNf cmVsaWFudCAgPSAoYWd0LmluZGV4T2YoInJlbGlhbnR1bml4IikhPS0xKTsKdmFy IGlzX2RlYyAgID0gKChhZ3QuaW5kZXhPZigiZGVjIikhPS0xKSB8fCAoYWd0Lmlu ZGV4T2YoIm9zZjEiKSE9LTEpIHx8CgkgICAoYWd0LmluZGV4T2YoImRlY19hbHBo YSIpIT0tMSkgfHwgKGFndC5pbmRleE9mKCJhbHBoYXNlcnZlciIpIT0tMSkgfHwK CSAgIChhZ3QuaW5kZXhPZigidWx0cml4IikhPS0xKSB8fCAoYWd0LmluZGV4T2Yo ImFscGhhc3RhdGlvbiIpIT0tMSkpOwp2YXIgaXNfc2luaXggPSAoYWd0LmluZGV4 T2YoInNpbml4IikhPS0xKTsKdmFyIGlzX2ZyZWVic2QgPSAoYWd0LmluZGV4T2Yo ImZyZWVic2QiKSE9LTEpOwp2YXIgaXNfYnNkID0gKGFndC5pbmRleE9mKCJic2Qi KSE9LTEpOwp2YXIgaXNfdW5peCAgPSAoKGFndC5pbmRleE9mKCJ4MTEiKSE9LTEp IHx8IGlzX3N1biB8fCBpc19pcml4IHx8IGlzX2hwdXggfHwKCQkJIGlzX3NjbyB8 fGlzX3VuaXh3YXJlIHx8IGlzX21wcmFzIHx8IGlzX3JlbGlhbnQgfHwKCQkJIGlz X2RlYyB8fCBpc19zaW5peCB8fCBpc19haXggfHwgaXNfbGludXggfHwgaXNfYnNk IHx8IGlzX2ZyZWVic2QpOwp2YXIgaXNfdm1zICAgPSAoKGFndC5pbmRleE9mKCJ2 YXgiKSE9LTEpIHx8IChhZ3QuaW5kZXhPZigib3BlbnZtcyIpIT0tMSkpOwpmdW5j dGlvbiBvcGVuQ29udGV4dFNlbnNpdGl2ZUxpbmsoY29udGVudElkKQp7CglVUkwg PSAib2xzcGFnZS5qc3A/aWQ9IitwYWdlQ29udGV4dElkKyImdHlwZT0iK3BhZ2VU eXBlKyImY29udGVudElkPSIrY29udGVudElkKyImZW50cnlVUkxJRD0iK2VudHJ5 VVJMSUQrIiZlbnRyeVVSTFR5cGU9IitlbnRyeVVSTFR5cGU7CglqYXZhc2NyaXB0 OnBvcFVwKFVSTCwnQ29udGVudF9TZW5zaXRpdmVfSGVscF9Ub3BpYycsJzMnLCcw Jyk7Cn0KZnVuY3Rpb24gb3BlbkNvbnRleHRTZW5zaXRpdmVMaW5rQ2hlY2tvdXQo Y29udGVudElkKQp7CglVUkwgPSAib2xzcGFnZS5qc3A/aWQ9IitjaGtvdXRDb250 ZXh0SWQrIiZ0eXBlPSIrcGFnZVR5cGUrIiZjb250ZW50SWQ9Iitjb250ZW50SWQr IiZlbnRyeVVSTElEPSIrZW50cnlVUkxJRCsiJmVudHJ5VVJMVHlwZT0iK2VudHJ5 VVJMVHlwZTsKCWphdmFzY3JpcHQ6cG9wVXAoVVJMLCdDb250ZXh0X1NlbnNpdGl2 ZV9IZWxwX1RvcGljX0NoZWNrb3V0JywnMycsJzAnKTsKfQpmdW5jdGlvbiByYXRp bmdQb3B1cChyYXRpbmdDYXRJRCxjb250ZW50SWQpCnsKCXZhciB1cmwgPSAnb2xz cGFnZS5qc3A/aWQ9JytyYXRpbmdDYXRJRCsnJmNvbnRlbnRJZD0nK2NvbnRlbnRJ ZCsnJnR5cGU9cGFnZSc7Cglwb3BVcCh1cmwsJ3JhdGluZ1dpbmRvdycsJzMnLCcw Jyk7Cn0KZnVuY3Rpb24gaGFuZGxlRW50ZXJLZXlQcmVzcyhmb3JtTmFtZSkKewoJ dmFyIHVzZXJFbnRlcmVkVmFsdWUgPSBmb3JtTmFtZS50eHRrZXl3b3Jkcy52YWx1 ZTsKCXVzZXJFbnRlcmVkVmFsdWUgPSB0cmltKHVzZXJFbnRlcmVkVmFsdWUpOwoJ aWYobmF2aWdhdG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBs b3JlciIpCgl7CgkJaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCgkJewoJ CQlpZihzZWFyY2hCdXR0b25DbGlja2VkKQoJCQl7CgkJCQlyZXR1cm4gZmFsc2U7 CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlzZWFyY2hCdXR0b25DbGlja2VkPXRydWU7 CgkJCX0KCgkJCWlmKHVzZXJFbnRlcmVkVmFsdWUgPT0gIiIpCgkJCXsKCQkJCWFs ZXJ0KCJQbGVhc2Ugc3BlY2lmeSBhIHN0cmluZyB0byBzZWFyY2giKTsKCQkJCWZv cm1OYW1lLnR4dGtleXdvcmRzLnZhbHVlID0gIiI7CgkJCQlmb3JtTmFtZS50eHRr ZXl3b3Jkcy5mb2N1cygpOwoJCQkJc2VhcmNoQnV0dG9uQ2xpY2tlZD1mYWxzZTsK CQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWZvcm1OYW1l LnN1Ym1pdCgpOwoJCQl9CgkJfQoJfQoJaWYobmF2aWdhdG9yLmFwcE5hbWUgPT0g Ik5ldHNjYXBlIikKCXsKCQljYW5TZWFyY2g9dHJ1ZTsKCQlpZihhcmd1bWVudHMu Y2FsbGVlLmNhbGxlci5hcmd1bWVudHNbMF0ud2hpY2ggPT0gMTMpCgkJewoJCQlp ZihzZWFyY2hCdXR0b25DbGlja2VkKQoJCQl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJ CX0KCQkJZWxzZQoJCQl7CgkJCQlzZWFyY2hCdXR0b25DbGlja2VkPXRydWU7CgkJ CX0KCgkJCWlmICh1c2VyRW50ZXJlZFZhbHVlID09ICIiKQoJCQl7CgkJCQlhbGVy dCgiUGxlYXNlIHNwZWNpZnkgYSBzdHJpbmcgdG8gc2VhcmNoIik7CgkJCQlmb3Jt TmFtZS50eHRrZXl3b3Jkcy52YWx1ZSA9ICIiOwoJCQkJZm9ybU5hbWUudHh0a2V5 d29yZHMuZm9jdXMoKTsKCQkJCXNlYXJjaEJ1dHRvbkNsaWNrZWQ9ZmFsc2U7CgkJ CQljYW5TZWFyY2ggPSBmYWxzZTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQll bHNlCgkJCXsKCQkJCWZvcm1OYW1lLnN1Ym1pdCgpOwoJCQl9CgkJfQoJfQp9CnZh ciBjYW5TZWFyY2g9dHJ1ZTsKZnVuY3Rpb24gY2hlY2tGb3JFbXB0eUZpZWxkKGZv cm1OYW1lKQp7CglpZihzZWFyY2hCdXR0b25DbGlja2VkKQoJewoJCXJldHVybiBm YWxzZTsKCX0KCWVsc2UKCXsKCQlzZWFyY2hCdXR0b25DbGlja2VkPXRydWU7Cgl9 CgoJdmFyIHVzZXJFbnRlcmVkVmFsdWUgPSBmb3JtTmFtZS50eHRrZXl3b3Jkcy52 YWx1ZTsKCXVzZXJFbnRlcmVkVmFsdWUgPSB0cmltKHVzZXJFbnRlcmVkVmFsdWUp OwoJaWYodXNlckVudGVyZWRWYWx1ZSA9PSAiIikKCXsKCQlhbGVydCgiUGxlYXNl IHNwZWNpZnkgYSBzZWFyY2ggc3RyaW5nIik7CgkJZm9ybU5hbWUudHh0a2V5d29y ZHMudmFsdWUgPSAiIjsKCQlmb3JtTmFtZS50eHRrZXl3b3Jkcy5mb2N1cygpOwoJ CXNlYXJjaEJ1dHRvbkNsaWNrZWQ9ZmFsc2U7CgkJcmV0dXJuIGZhbHNlOwoJfQp9 CmZ1bmN0aW9uIHRyaW0oc3RyVHh0KQp7CiAgIHdoaWxlKCcnK3N0clR4dC5jaGFy QXQoMCk9PScgJykKICAgc3RyVHh0PXN0clR4dC5zdWJzdHJpbmcoMSxzdHJUeHQu bGVuZ3RoKTsKCgl3aGlsZSgnJytzdHJUeHQuY2hhckF0KHN0clR4dC5sZW5ndGgt MSk9PScgJykKCQlzdHJUeHQ9c3RyVHh0LnN1YnN0cmluZygwLHN0clR4dC5sZW5n dGgtMSk7CglyZXR1cm4gc3RyVHh0Owp9CmZ1bmN0aW9uIHNob3dSZWJhdGVXaW5k b3cocGFnZUlkLCBjb250ZW50SWQsIHByb2R1Y3RJZCkKewogICBwb3BVcCgnb2xz cGFnZS5qc3A/aWQ9JytwYWdlSWQrJyZwcm9kdWN0SWQ9Jytwcm9kdWN0SWQrJyZ0 eXBlPXBhZ2UmY29udGVudElkPScrY29udGVudElkLCdSZWJhdGUnLCczJywnMCcp Owp9CmZ1bmN0aW9uIG9wZW5TaXRlKHVybCxjb2xTaXplKQp7Cglwb3BVcFJhd1VS TCh1cmwsJ3RoaXJkUGFydHlXaW5kb3cnLGNvbFNpemUsJzAnKTsKfQpmdW5jdGlv biBidWlsZGNvbnRleHQobGluaykKewoJcHJldlVybD1saW5rLmhyZWY7CglwYXJh bWV0ZXJzPXByZXZVcmwuc2xpY2UocHJldlVybC5pbmRleE9mKCI/IikpOwoJcHJl dlBhdGhuYW1lPWxpbmsucGF0aG5hbWU7CglhY3R1YWxVcmw9YWRkSnNlc3Npb25J ZElmUmVxdWlyZWQoY29udGV4dFJvb3QrIi8iK3ByZXZQYXRobmFtZStwYXJhbWV0 ZXJzKTsKCWxpbmsuaHJlZj1hY3R1YWxVcmw7Cn0KZnVuY3Rpb24gYWRkU2l0ZU1h cEpzZXNzaW9uSWQobGluaykKewoJcHJldlVybD1saW5rLmhyZWY7CglwYXJhbWV0 ZXJzPXByZXZVcmwuc2xpY2UocHJldlVybC5pbmRleE9mKCI/IikpOwoJcHJldlBh dGhuYW1lPWxpbmsucGF0aG5hbWU7CglpZihwcmV2UGF0aG5hbWUuY2hhckF0KDAp ICE9ICcvJykKCXsJLy9maXggZm9yIElFLiBJbiBJRSwgbGluay5wYXRobmFtZSBy ZXR1cm5zIHdpdGhvdXQgc2xhc2ggZm9yIHRoZSBmaXJzdCBoYWxmIG9mIHRoZSB1 cmwuIEJ1dCBmaXJlZm94IHJldHVybnMgd2l0aCBzbGFzaAoJCXByZXZQYXRobmFt ZSA9ICcvJyArIHByZXZQYXRobmFtZTsKCX0KCWFjdHVhbFVybD1hZGRKc2Vzc2lv bklkSWZSZXF1aXJlZChwcmV2UGF0aG5hbWUrcGFyYW1ldGVycyk7CglsaW5rLmhy ZWY9YWN0dWFsVXJsOwp9CmZ1bmN0aW9uIGRpc3BsYXlJbWcoaW1hZ2VuYW1lLCBo ZWlnaHQsIHdpZHRoLCBhbHR0YWcsIGFsaWduKXsKCXZhciBvdXRTdHJpbmcgPSAn PGltZyBzcmM9IicgKyBpbWdTZXJ2ZXI7CgoJaWYgKGltYWdlbmFtZSl7CgkJaWYg KGltYWdlbmFtZSl7CgkJCW91dFN0cmluZyA9IG91dFN0cmluZyArIGltYWdlbmFt ZSArICciJzsKCQl9CgkJaWYgKGhlaWdodCl7CgkJCW91dFN0cmluZyA9IG91dFN0 cmluZyArICcgaGVpZ2h0PScgKyBoZWlnaHQ7CgkJfQoJCWlmICh3aWR0aCl7CgkJ CW91dFN0cmluZyA9IG91dFN0cmluZyArICcgd2lkdGg9JyArIHdpZHRoOwoJCX0K CQlvdXRTdHJpbmcgPSBvdXRTdHJpbmcgKyAnIGJvcmRlcj0wJzsKCQlpZiAoYWx0 dGFnKXsKCQkJb3V0U3RyaW5nID0gb3V0U3RyaW5nICsgJyBhbHQ9IicgKyBhbHR0 YWcgKyAnIic7CgkJfQoJCWlmIChhbGlnbil7CgkJCW91dFN0cmluZyA9IG91dFN0 cmluZyArICcgYWxpZ249IicgKyBhbGlnbiArICciJzsKCQl9CgkJb3V0U3RyaW5n ID0gb3V0U3RyaW5nICsgJz4nOwoJCWRvY3VtZW50LndyaXRlKG91dFN0cmluZyk7 Cgl9CgllbHNlewoJfQp9CnZhciBuZXdXaW5kb3c7CnZhciBpbnRzcGFjZXJzdHJo ZWlnaHQ7CnZhciBzdHJ3aWR0aDsKdmFyIHN0cmhlaWdodDsKdmFyIHN0cmluZ3Vy bDsKdmFyIGludGFkanVzdDsKdmFyIGludHNwYWNlcmhlaWdodDsKLy93ZSBuZWVk IHRvIGRlZmF1bHQgdGhlIHBvcHVwIHRvIGEgbWluIHN0cmhlaWdodAphZ3Q9bmF2 aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpOwppZiAoYWd0LmluZGV4T2Yo IndpbiIpIT0tMSkgewoJaW50YWRqdXN0PSAiMCIKfSBlbHNlIHsKCWludGFkanVz dD0gIjE2IgoJfQoKLy8gSW50ZXJuYWwgUG9wLXVwcwpmdW5jdGlvbiBwb3BVcChz dHJ1cmwsc3RybmFtZSxzdHJjb2x1bW4sc3RycmVzaXplKSAKewoJaWYoc3RydXJs LmluZGV4T2YoIm9sc3BhZ2UiKSA9PSAwKQoJewoJCXN0cnVybCA9IGNvbnRleHRS b290KyIvIitzdHJ1cmwgOwoJfQoJcG9wVXBDb21tb24oc3RydXJsLHN0cm5hbWUs c3RyY29sdW1uLHN0cnJlc2l6ZSx0cnVlKTsKfQoKLy8gRXh0ZXJuYWwgUG9wLXVw cwovLyAoTmV3IG1ldGhvZCBhZGRlZCBGb3IgTWFjaW50b3NoIC0gSUUgYnJvd3Nl ciBpc3N1ZS4pCi8vIGFkYXBhdGVkIGZvciBjb29raWVsZXNzIHVzZXIKZnVuY3Rp b24gcG9wVXBSYXdVUkwoc3RydXJsLHN0cm5hbWUsc3RyY29sdW1uLHN0cnJlc2l6 ZSkgCnsKCWlmICggc3RydXJsLmluZGV4T2YoIjovLyIpID09IC0xICkKCXsKCQlz dHJ1cmwgPSAgImh0dHA6Ly8iICsgc3RydXJsIDsKCX0KCglwb3BVcENvbW1vbihz dHJ1cmwsc3RybmFtZSxzdHJjb2x1bW4sc3RycmVzaXplLHRydWUsdHJ1ZSk7Cn0K CmZ1bmN0aW9uIHBvcFVwQ29tbW9uKHN0cnVybCxzdHJuYW1lLHN0cmNvbHVtbixz dHJyZXNpemUsYWRkc3BhY2VyaGVpZ2h0LHRoaXJkUGFydHkpCnsKCXN0cmNvbHVt biA9IHN0cmNvbHVtbiArICcnOwoJaWYgKG5ld1dpbmRvdykgCgl7CgkJaWYgKG5l d1dpbmRvdy5jbG9zZWQgPT0gZmFsc2UpIAoJCXsKCQkJbmV3V2luZG93LmNsb3Nl KCk7CgkJfQoJfQoJc3dpdGNoIChzdHJjb2x1bW4pCgl7CgkJY2FzZSAnNic6CgkJ CXN0cndpZHRoID0gIjgwMCI7CgkJCXN0cmhlaWdodCA9ICI1NTAiOwoJCQlpbnRz cGFjZXJoZWlnaHQgPSAocGFyc2VJbnQoaW50YWRqdXN0KSArIDQ4OCk7CgkJCWJy ZWFrOwoJCWNhc2UgJzUnOgoJCQlzdHJ3aWR0aCA9ICI2ODAiOwoJCQlzdHJoZWln aHQgPSAiNDUwIjsKCQkJaW50c3BhY2VyaGVpZ2h0ID0gKHBhcnNlSW50KGludGFk anVzdCkgKyAzODcpOwoJCQlicmVhazsKCQljYXNlICc0JzoKCQkJc3Ryd2lkdGgg PSAiNTUwIjsKCQkJc3RyaGVpZ2h0ID0gIjQ1MCI7CgkJCWludHNwYWNlcmhlaWdo dCA9IChwYXJzZUludChpbnRhZGp1c3QpICsgMzg3KTsKCQkJYnJlYWs7ICAgIAkK CQljYXNlICczJzoKCQkJc3Ryd2lkdGggPSAiNDIwIjsKCQkJc3RyaGVpZ2h0ID0g IjM1MCI7CgkJCWludHNwYWNlcmhlaWdodCA9IChwYXJzZUludChpbnRhZGp1c3Qp ICsgMjg3KTsKCQkJYnJlYWs7ICAgIAkKCQljYXNlICcyJzoKCQkJc3Ryd2lkdGgg PSAiMjkwIjsKCQkJc3RyaGVpZ2h0ID0gIjMwMCI7CgkJCWludHNwYWNlcmhlaWdo dCA9IChwYXJzZUludChpbnRhZGp1c3QpICsgMjM3KTsKCQkJYnJlYWs7CSAgICAg ICAgCgl9CglpZiAoYWRkc3BhY2VyaGVpZ2h0KQoJewoJCXZhciBhcHBlbmRDaGFy ID0gJz8nOwoJCWlmKHN0cnVybC5pbmRleE9mKCc/JykgIT0gLTEpCgkJewoJCWFw cGVuZENoYXIgPSAnJic7CgkJfQoJCXN0cnVybCA9IHN0cnVybCthcHBlbmRDaGFy KyJoPSIraW50c3BhY2VyaGVpZ2h0OwoJfQoJaWYoIXRoaXJkUGFydHkpCgl7CgkJ c3RydXJsPWFkZEpzZXNzaW9uSWRJZlJlcXVpcmVkKHN0cnVybCk7Cgl9CgluZXdX aW5kb3cgPSB3aW5kb3cub3BlbihzdHJ1cmwsc3RybmFtZSwndG9vbGJhcj0wLGxv Y2F0aW9uPTAsZGlyZWN0b3JpZXM9MCxzdGF0dXM9MCxtZW51YmFyPTAsc2Nyb2xs YmFycz0xLHJlc2l6YWJsZT0nK3N0cnJlc2l6ZSsnLHdpZHRoPScrc3Ryd2lkdGgr JyxoZWlnaHQ9JytzdHJoZWlnaHQrJyxsZWZ0PTUwLHRvcD0yMDAnKTsKfQoKZnVu Y3Rpb24gb3BlbkRpc2NvZ3JhcGh5UG9wdXAoZGlzY29ncmFwaElkLHBhZ2VDYXRJ ZCkKewoJcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrcGFnZUNhdElkKycmQXJ0aXN0 SWQ9JytkaXNjb2dyYXBoSWQrJyZ0eXBlPXBhZ2UnLCdEaXNjb2dyYXBoeScsJzQn LCcwJyk7Cn0KZnVuY3Rpb24gaGFuZGxlRW50ZXJLZXkoZm9ybU5hbWUpCnsKICAg IGlmKG5hdmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhw bG9yZXIiKQogICAgewogICAgICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0g MTMpCiAgICAgICB7CiAgICAgICAgICAgIGZvcm1OYW1lLnN1Ym1pdCgpOwogICAg ICAgfQogICAgfQp9CmZ1bmN0aW9uIG9wZW5EZXRhaWxQYWdlKHVybCkKewogICAg dXJsID0gYWRkSnNlc3Npb25JZElmUmVxdWlyZWQodXJsKTsKICAgIGlmKHdpbmRv dy5vcGVuZXIgIT0gbnVsbCkKICAgIHsKICAgICAgICBpZigod2luZG93Lm9wZW5l cikgJiYgKCEod2luZG93Lm9wZW5lci5jbG9zZWQpKSApCiAgICAgICAgewogICAg ICAgICAgICAgd2luZG93Lm9wZW5lci5sb2NhdGlvbi5ocmVmID0gdXJsOwogICAg ICAgICAgICAgd2luZG93Lm9wZW5lci5mb2N1cygpOwogICAgICAgIH0KICAgICAg ICBlbHNlCiAgICAgICAgewogICAgICAgICAgICAgbmV3V2luZG93ID0gd2luZG93 Lm9wZW4odXJsLCAncGRwV2luZG93JywndG9vbGJhcj0xLGxvY2F0aW9uPTEsZGly ZWN0b3JpZXM9MSxzdGF0dXM9MSxtZW51YmFyPTEsc2Nyb2xsYmFycz0xLHJlc2l6 YWJsZT0xJyk7CiAgICAgICAgICAgICBuZXdXaW5kb3cuZm9jdXMoKTsKICAgICAg ICB9CiAgICAgICAgd2luZG93LmNsb3NlKCk7CgogICAgIH0KICAgICBlbHNlCiAg ICAgewogICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDsKICAgICB9 Cn0KCmZ1bmN0aW9uIGFkZEpzZXNzaW9uSWRJZlJlcXVpcmVkKHVybCkKewogICAg dmFyIGpzZXNzaW9uaWQgPSBnZXRKU2Vzc2lvbklkKCk7IC8vY2hlY2sgaWYganNl c3Npb25pZCBpcyBwYXJ0IG9mIHRoZSBwYXJlbnQgVVJJCiAgICAKICAgIGlmKChq c2Vzc2lvbmlkICE9IG51bGwpICYmICh1cmwuaW5kZXhPZigianNlc3Npb25pZCIp KSA9PSAtMSkgLy9mb3VuZCBzZXNzaW9uaWQgaW4gdGhlIHBhcmVudCB1cmwgYW5k IGRvZXNuknQgZXhpc3QgaW4gdGhlIGN1cnJlbnQgdXJsCiAgICB7CgkvL3JlcGxh Y2UgPyB3aXRoIDtqc2Vzc2lvbmlkPXh4eHh4eHh4eHh4eHh4eD8uIFRoaXMgaXMg dG8gcmVzb2x2ZSBib3RoIG9sc3BhZ2UuanNwIGFuZCBvbHNsaW5rcy5qc3AKICAg IAl1cmwgPSB1cmwucmVwbGFjZSgiPyIsIjsiK2pzZXNzaW9uaWQrIj8iKTsKICAg IH0KICAgIHJldHVybiB1cmw7Cn0KCmZ1bmN0aW9uIGdldEpTZXNzaW9uSWQoKQp7 CiAgICB2YXIgcGFyZW50VVJMPWRvY3VtZW50LmxvY2F0aW9uLmhyZWY7IC8vcmV0 cmlldmUgdGhlIGN1cnJlbnQgVVJMIG9mIHVzZXIgYnJvd3NlcgogICAgdmFyIGpz ZXNzaW9uaWQgPSBwYXJlbnRVUkwubWF0Y2goL2pzZXNzaW9uaWQ9W2EtejAtOV0r L2kpOyAvL2V4dHJhY3QgdGhlIGpzZXNzaW9uaWQKICAgIHJldHVybiBqc2Vzc2lv bmlkOwp9Cgo= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olsheaderfooter.js Content-Type: application/x-javascript; name=olsheaderfooter.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olsheaderfooter.js Content-Transfer-Encoding: Base64 CmZ1bmN0aW9uIE1EKG1lbnVJZCwgcHJvcCwgY0VsZW1lbnRzKQp7CiAgICB0aGlz Lm1lbnVJZCA9IG1lbnVJZDsKICAgIHRoaXMucHJvcCA9IHByb3A7CiAgICB0aGlz LmNFbGVtZW50cyA9IGNFbGVtZW50czsKfQpmdW5jdGlvbiByZW5kZXJNZW51KG1l bnVEYXRhQXJyYXkpCnsKICAgIGZvciAoaT0wOyBpIDwgbWVudURhdGFBcnJheS5s ZW5ndGg7IGkrKykKICAgIHsKICAgICAgICBjdXJyTWVudURhdGEgPSBtZW51RGF0 YUFycmF5W2ldOwogICAgICAgIHdyaXRlTWVudVN0YXJ0KGN1cnJNZW51RGF0YS5t ZW51SWQsCiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9w WzBdLAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyTWVudURhdGEucHJvcFsx XSwKICAgICAgICAgICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRhLnByb3BbMl0s CiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9wWzNdLAog ICAgICAgICAgICAgICAgICAgICAgICBjdXJyTWVudURhdGEucHJvcFs0XSwKICAg ICAgICAgICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRhLnByb3BbNV0sCiAgICAg ICAgICAgICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9wWzZdLAogICAgICAg ICAgICAgICAgICAgICAgICBjdXJyTWVudURhdGEucHJvcFs3XSwKICAgICAgICAg ICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRhLnByb3BbOF0sCiAgICAgICAgICAg ICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9wWzldLAogICAgICAgICAgICAg ICAgICAgICAgICBjdXJyTWVudURhdGEucHJvcFsxMF0sCiAgICAgICAgICAgICAg ICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9wWzExXSwKICAgICAgICAgICAgICAg ICAgICAgICAgY3Vyck1lbnVEYXRhLnByb3BbMTJdLAogICAgICAgICAgICAgICAg ICAgICAgICBjdXJyTWVudURhdGEucHJvcFsxM10pOwogICAgICAgIGZvciAoaj0w OyBqPGN1cnJNZW51RGF0YS5jRWxlbWVudHMubGVuZ3RoOyBqKyspCiAgICAgICAg ewogICAgICAgICAgICB3cml0ZU1lbnUoY3Vyck1lbnVEYXRhLmNFbGVtZW50c1tq XVswXSwKICAgICAgICAgICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRhLmNFbGVt ZW50c1tqXVsxXSwKICAgICAgICAgICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRh LnByb3BbNl0sCiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5w cm9wWzddLAogICAgICAgICAgICAgICAgICAgICAgICBjdXJyTWVudURhdGEucHJv cFs4XSwKICAgICAgICAgICAgICAgICAgICAgICAgY3Vyck1lbnVEYXRhLnByb3Bb OV0sCiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJNZW51RGF0YS5wcm9wWzEy XSk7CiAgICAgICAgfQogICAgICAgIHdyaXRlTWVudUVuZCgpOwogICAgfQp9CmZ1 bmN0aW9uIHdyaXRlTWVudVN0YXJ0KHBNZW51SWQscFRhYlBvcyxwVGFiSHQscEJn Q29sb3IscFRhYk5hbWUscE9uSW1nUGFyYW0scE9mZkltZ1BhcmFtLHBUckJnQ29s b3IscFN0eWxlT25CZyxwU3R5bGVPZmZCZyxzdGFydFVybCxjYXRpZCxjYXRlZ29y eVJlcCxjbGFzc25hbWUsbWVudVRleHQpCnsKICAgIHBBbmNob3JUYWcgPSBhZGRK c2Vzc2lvbklkSWZSZXF1aXJlZCgnPGEgaHJlZiA9ICInK3N0YXJ0VXJsKydzaXRl L29sc3BhZ2UuanNwP2lkPScrY2F0aWQrJyZ0eXBlPXBhZ2UmY2F0ZWdvcnlSZXA9 JytjYXRlZ29yeVJlcCsnIiBjbGFzcz0iJytjbGFzc25hbWUrJyI+JyttZW51VGV4 dCsnPC9hPicpOwogICAgaWYgKGRvY3VtZW50LmxheWVycykKICAgIHsKICAgICAg ICBkb2N1bWVudC53cml0ZSgnPGxheWVyIGlkPScrcE1lbnVJZCsnIHBhZ2V4PScr cFRhYlBvcysnIHBhZ2V5PScrcFRhYkh0KycgdmlzaWJpbGl0eT1oaWRlIHotaW5k ZXg9MyBvbm1vdXNlb3V0PSJIaWRlKFwnJytwTWVudUlkKydcJyk7IiBvbm1vdXNl b3Zlcj0iU2hvdyhcJycrcE1lbnVJZCsnXCcpOyI+ICcpOwogICAgfQogICAgZWxz ZQogICAgewogICAgICAgIGRvY3VtZW50LndyaXRlKCc8ZGl2IGlkPScrcE1lbnVJ ZCsnIFN0eWxlPSJQb3NpdGlvbjpBYnNvbHV0ZTtMZWZ0OicrcFRhYlBvcysnO1Rv cDonK3BUYWJIdCsnO1Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MyIgb25tb3Vz ZW91dD0iSGlkZShcJycrcE1lbnVJZCsnXCcpOyIgb25tb3VzZW92ZXI9IlNob3co XCcnK3BNZW51SWQrJ1wnKTsiPiAnKTsKICAgIH0KICAgIGRvY3VtZW50LndyaXRl KCc8dGFibGUgYm9yZGVyPTAgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJn Y29sb3I9IicrcEJnQ29sb3IrJyI+ICcpOwogICAgaWYgKHBPZmZJbWdQYXJhbSAh PSBudWxsKQogICAgewogICAgICAgIGRvY3VtZW50LndyaXRlKCc8dHI+PHRkPjx0 YWJsZSBib3JkZXI9MCBjZWxscGFkZGluZz0yIGNlbGxzcGFjaW5nPTEgb25Nb3Vz ZU92ZXI9ImphdmFzY3JpcHQ6JytwVGFiTmFtZSsnLnNyYz1cJycrcE9uSW1nUGFy YW0rJ1wnOyIgb25tb3VzZW91dD0iamF2YXNjcmlwdDonK3BUYWJOYW1lKycuc3Jj PVwnJytwT2ZmSW1nUGFyYW0rJ1wnOyI+ICcpOwogICAgfQogICAgZWxzZQogICAg ewogICAgICAgIGRvY3VtZW50LndyaXRlKCc8dHI+PHRkPjx0YWJsZSBib3JkZXI9 MCBjZWxscGFkZGluZz0yIGNlbGxzcGFjaW5nPTEgb25Nb3VzZU92ZXI9ImphdmFz Y3JpcHQ6JytwVGFiTmFtZSsnLnNyYz1cJycrcE9uSW1nUGFyYW0rJ1wnOyI+ICcp OwogICAgfQogICAgZG9jdW1lbnQud3JpdGUoJzx0ciBiZ2NvbG9yPSInK3BUckJn Q29sb3IrJyIgb25tb3VzZW92ZXI9ImphdmFzY3JpcHQ6c3R5bGUuYmFja2dyb3Vu ZENvbG9yPVwnJytwU3R5bGVPbkJnKydcJzsiIG9ubW91c2VvdXQ9ImphdmFzY3Jp cHQ6c3R5bGUuYmFja2dyb3VuZENvbG9yPVwnJytwU3R5bGVPZmZCZysnXCc7Ij48 dGQ+JytwQW5jaG9yVGFnKyc8L3RkPjwvdHI+ICcpOwp9CmZ1bmN0aW9uIHdyaXRl TWVudShjYXRpZCxsaW5rLHBUckJnQ29sb3IscFN0eWxlT25CZyxwU3R5bGVPZmZC ZyxzdGFydFVybCxjbGFzc25hbWUpCnsKICAgIHBBbmNob3JUYWcgPSBhZGRKc2Vz c2lvbklkSWZSZXF1aXJlZCgnPGEgaHJlZj0iJytzdGFydFVybCsnc2l0ZS9vbHNw YWdlLmpzcD9pZD0nK2NhdGlkKycmdHlwZT1jYXRlZ29yeSIgY2xhc3M9IicrY2xh c3NuYW1lKyciPicrbGluaysnPC9hPicpOwogICAgZG9jdW1lbnQud3JpdGUoJzx0 ciBiZ2NvbG9yPSInK3BUckJnQ29sb3IrJyIgb25tb3VzZW92ZXI9ImphdmFzY3Jp cHQ6c3R5bGUuYmFja2dyb3VuZENvbG9yPVwnJytwU3R5bGVPbkJnKydcJzsiIG9u bW91c2VvdXQ9ImphdmFzY3JpcHQ6c3R5bGUuYmFja2dyb3VuZENvbG9yPVwnJytw U3R5bGVPZmZCZysnXCc7Ij48dGQ+JytwQW5jaG9yVGFnKyc8L3RkPjwvdHI+ICcp Owp9CmZ1bmN0aW9uIHdyaXRlTWVudUVuZCgpCnsKICAgIGRvY3VtZW50LndyaXRl KCc8L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPicpOwogICAgaWYgKGRvY3VtZW50 LmxheWVycykKICAgIHsKICAgICAgICBkb2N1bWVudC53cml0ZSgnPC9sYXllcj4n KTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBkb2N1bWVudC53cml0ZSgn PC9kaXY+Jyk7CiAgICB9Cn0KZnVuY3Rpb24gbG9nb3V0KCkKewogICAgZG9jdW1l bnQubG9nb3V0Rm9ybS5zdWJtaXQoKTsKfQpmdW5jdGlvbiBvcGVuQ29udGV4dFNl bnNpdGl2ZUxpbmtGb3JCb3R0b21OYXYoY29udGVudElkLCB1cmwpCnsKICAgIHZh ciBVUkw9dXJsKyImY29udGVudElkPSIrY29udGVudElkKyImZW50cnlVUkxJRD0i K2VudHJ5VVJMSUQrIiZlbnRyeVVSTFR5cGU9IitlbnRyeVVSTFR5cGU7CiAgICBq YXZhc2NyaXB0OnBvcFVwKFVSTCwnQ29udGVudF9TZW5zaXRpdmVfSGVscF9Ub3Bp YycsJzMnLCcwJyk7Cn0KZnVuY3Rpb24gcG9wdXAobGluayx3aW5kb3dTaXplKQp7 CiAgICBwcmV2VXJsPWxpbmsuaHJlZjsKICAgIHBhcmFtZXRlcnM9cHJldlVybC5z bGljZShwcmV2VXJsLmluZGV4T2YoIj8iKSk7CiAgICBwcmV2UGF0aG5hbWU9bGlu ay5wYXRobmFtZTsKICAgIGFjdHVhbFVybD1jb250ZXh0Um9vdCsiLyIrcHJldlBh dGhuYW1lK3BhcmFtZXRlcnM7CiAgICBpZih3aW5kb3dTaXplID09ICcnKQogICAg ewogICAgICAgIHdpbmRvd1NpemUgPSAnMyc7CiAgICB9CiAgICBwb3BVcChhY3R1 YWxVcmwsJ0RlZXBMaW5rJyx3aW5kb3dTaXplLCcwJyk7Cn0KZnVuY3Rpb24gb3Bl bkRpc2NvZ3JhcGh5UG9wdXBBcnRpc3RUeXBlKGRpc2NvZ3JhcGhJZCxwYWdlQ2F0 SWQsYXJ0aXN0VHlwZSkKewogICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrcGFn ZUNhdElkKycmQXJ0aXN0SWQ9JytkaXNjb2dyYXBoSWQrJyZ0eXBlPXBhZ2UmcHJv ZHVjdFR5cGU9JythcnRpc3RUeXBlLCdEaXNjb2dyYXBoeScsJzQnLCcwJyk7Cn0K ZnVuY3Rpb24gb3Blbk9mZmVyRGV0YWlscyhjb250ZW50SWQsY2F0SWQpCnsKICAg IHZhciBVUkwgPSAnb2xzcGFnZS5qc3A/aWQ9JytjYXRJZCsnJnR5cGU9cGFnZSZj b250ZW50SWQ9Jytjb250ZW50SWQ7CiAgICBqYXZhc2NyaXB0OnBvcFVwKFVSTCwn T2ZmZXJfRGV0YWlsc19Qb3B1cCcsJzMnLCcwJyk7Cn0K ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olscommon.js Content-Type: application/x-javascript; name=olscommon.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olscommon.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gY2xvc2VXaW5kb3coKQp7CiAgICAgICAgd2luZG93LmNsb3NlKCk7 Cn0KZnVuY3Rpb24gc3VibWl0T25FbnRlcktleVByZXNzKGUsIGZybSkKewogICAg aWYgKGlzRW50ZXJLZXlQcmVzcyhlKSkgewogICAgICAgIGZybS5zdWJtaXQoKTsK ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KfQpmdW5jdGlvbiBpc0VudGVyS2V5 UHJlc3MoZSkgewogICAgdmFyIGlLZXlDb2RlID0gMDsKCiAgICBpZiAod2luZG93 LmV2ZW50KSB7CiAgICAgICAgaUtleUNvZGUgPSB3aW5kb3cuZXZlbnQua2V5Q29k ZQogICAgfSBlbHNlIGlmIChlKSB7CiAgICAgICAgaUtleUNvZGUgPSBlLndoaWNo OwogICAgfQoKICAgIGlmIChpS2V5Q29kZSA9PSAxMykgewogICAgICAgIHJldHVy biB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9 Cn0KZnVuY3Rpb24gaGFuZGxlWmlwQ29kZUVudGVyS2V5UHJlc3MoKQp7CiAgICBp ZihuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxv cmVyIikKICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAx MykKICAgICAgICB7CiAgICAgICAgICAgIGRvY3VtZW50LnJvc0Zvcm0uc3VibWl0 KCk7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgIH0KfQpm dW5jdGlvbiBoYW5kbGVaaXBDb250aW51ZSgpCnsKICAgICAgICBkb2N1bWVudC5y b3NGb3JtLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGhhbmRsZVNpZ25JbkVudGVyS2V5 UHJlc3MoKQp7CiAgICBpZihuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0 IEludGVybmV0IEV4cGxvcmVyIikKICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZl bnQua2V5Q29kZSA9PSAxMykKICAgICAgICB7CiAgICAgICAgICAgIGRvY3VtZW50 LmZybVNpZ25Jbi5zdWJtaXQoKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg ICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIGhhbmRsZUNJREVudGVyS2V5UHJlc3Mo KQp7CiAgICBpZihuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVy bmV0IEV4cGxvcmVyIikKICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZlbnQua2V5 Q29kZSA9PSAxMykKICAgICAgICB7CiAgICAgICAgICAgIGRvY3VtZW50LmZybUNp ZENoZWNrLnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg ICB9CiAgICB9Cn0KZnVuY3Rpb24gaGFuZGxlQ0lEQ2hlY2soKQp7CiAgICAgICAg ZG9jdW1lbnQuZnJtQ2lkQ2hlY2suc3VibWl0KCk7Cn0KCmZ1bmN0aW9uIGNoYW5n ZWRpcmVjdGlvbihwdiwgcGgpCnsKICAgIGRvY3VtZW50LmZybW1hcGNvbnRyb2wu UFYudmFsdWU9cHY7CiAgICBkb2N1bWVudC5mcm1tYXBjb250cm9sLlBILnZhbHVl PXBoOwogICAgZG9jdW1lbnQuZnJtbWFwY29udHJvbC5zdWJtaXQoKTsKfQpmdW5j dGlvbiBoYW5kbGVRdWlja1N0b3Jlc0VudGVyS2V5UHJlc3MoKQp7CiAgICBpZihu YXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVy IikKICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAxMykK ICAgICAgICB7CiAgICAgICAgICAgIGRvY3VtZW50LmZybUNhcnRRdWlja1N0b3Jl cy5zdWJtaXQoKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQog ICAgfQp9CgpmdW5jdGlvbiBoYW5kbGVRdWlja1N0b3Jlc1NlYXJjaEVudGVyS2V5 UHJlc3MoKQp7CiAgICBpZihuYXZpZ2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0 IEludGVybmV0IEV4cGxvcmVyIikKICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZl bnQua2V5Q29kZSA9PSAxMykKICAgICAgICB7CiAgICAgICAgICAgIGRvY3VtZW50 LmZybVN0b3Jlc1NlYXJjaEZvcm0uc3VibWl0KCk7CiAgICAgICAgICAgIHJldHVy biB0cnVlOwogICAgICAgIH0KICAgIH0KfQoKCmZ1bmN0aW9uIGhhbmRsZVByb2R1 Y3RRdWlja1N0b3Jlc1NlYXJjaEVudGVyS2V5UHJlc3MoKQp7CiAgICBpZihuYXZp Z2F0b3IuYXBwTmFtZSA9PSAiTWljcm9zb2Z0IEludGVybmV0IEV4cGxvcmVyIikK ICAgIHsKICAgICAgICBpZih3aW5kb3cuZXZlbnQua2V5Q29kZSA9PSAxMykKICAg ICAgICB7CiAgICAgICAgICAgIGNsZWFyT3JkZXJVUkwoKTsKICAgICAgICAgICAg ZG9jdW1lbnQuZnJtU3RvcmVzU2VhcmNoRm9ybS5zdWJtaXQoKTsKICAgICAgICAg ICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQp9CgoKZnVuY3Rpb24gY2xl YXJPcmRlclVSTCgpCnsKICAgICAgICBjbGVhclVSTFZhbHVlKGRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJvcmRlclN1Y2Nlc3NVUkwiKSk7CiAgICAgICAgY2xlYXJV UkxWYWx1ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3JkZXJFcnJvclVSTCIp KTsKCiAgICAgICAgcmV0dXJuIHRydWU7Cn0KICAgCmZ1bmN0aW9uIGNsZWFyVVJM VmFsdWUoZmllbGQpCnsKICAgIGlmKGZpZWxkICE9IG51bGwpCiAgICB7CiAgICAg ICAgaWYgKGZpZWxkLmxlbmd0aCA9PSBudWxsKQogICAgICAgIHsKICAgICAgICAg ICAgZmllbGQudmFsdWU9IiI7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAg ICB7CiAgICAgICAgICAgIHZhciBsZW5ndGggPSBmaWVsZC5sZW5ndGg7CgogICAg ICAgICAgICBmb3IgKGk9MDtpPGxlbmd0aDtpKyspCiAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgZmllbGRbaV0udmFsdWU9IiI7CiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICAgfQogICAgIAogICAgIHJldHVybiB0cnVlOwp9CgpmdW5jdGlv biBwYXJzZVZhbHVlcygpCnsKICAgIHZhciBzZWxTdHJpbmcgPSAnJzsKICAgIGZv cihtYWluSWR4ID0gMDttYWluSWR4PGlkeDttYWluSWR4KyspCiAgICB7CiAgICAg ICAgYm9sZmxnID0gZmFsc2U7CiAgICAgICAgaWYoZXZhbCgnZG9jdW1lbnQuZnJt T3JkZXIuUmFkU2hpcHBpbmdBZGRyZXNzJyttYWluSWR4KSAhPSBudWxsKQogICAg ICAgIHsKICAgICAgICAgICAgaWYoZXZhbCgnZG9jdW1lbnQuZnJtT3JkZXIuUmFk U2hpcHBpbmdBZGRyZXNzJyttYWluSWR4KS52YWx1ZSA9PSBudWxsKQogICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICByYWRjbnQgPSBldmFsKCdkb2N1bWVudC5m cm1PcmRlci5SYWRTaGlwcGluZ0FkZHJlc3MnK21haW5JZHgpLmxlbmd0aDsKICAg ICAgICAgICAgICAgIGNoayA9IDA7CiAgICAgICAgICAgICAgICBmb3Ioc3ViSWR4 PTA7c3ViSWR4PHJhZGNudDtzdWJJZHgrKykKICAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICAgICBpZihldmFsKCdkb2N1bWVudC5mcm1PcmRlci5SYWRT aGlwcGluZ0FkZHJlc3MnICsgbWFpbklkeCsnWycrc3ViSWR4KyddJykuY2hlY2tl ZCA9PSB0cnVlKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgY2hrID0gY2hrICsgMTsKICAgICAgICAgICAgICAgICAgICAgICAg aWYoZXZhbCgnZG9jdW1lbnQuZnJtT3JkZXIuUmFkU2hpcHBpbmdBZGRyZXNzJyAr IG1haW5JZHgrJ1snK3N1YklkeCsnXScpLnZhbHVlPT0naG9tZURlbGl2ZXJ5JykK ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsU3RyaW5nID0gc2VsU3RyaW5nICsgJ0EnICsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV2YWwoJ2RvY3VtZW50LmZybU9yZGVyLmRycFNoaXBw aW5nQWRkcmVzcycgKyBtYWluSWR4KS52YWx1ZSsnLCc7CiAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxTdHJpbmcgPSBzZWxTdHJpbmcgKyAnUycgKwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXZhbCgnZG9jdW1lbnQuZnJtT3JkZXIuUmFkU2hpcHBpbmdBZGRy ZXNzJyArIG1haW5JZHgrJ1snK3N1YklkeCsnXScpLnZhbHVlKycsJzsKICAgICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmKGNoayA9PSAwKQogICAgICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNlbFN0cmluZyA9IHNlbFN0 cmluZyArICdBTm9WYWx1ZScgKycsJzsKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgIGlmKGV2YWwoJ2RvY3VtZW50LmZybU9yZGVyLlJhZFNoaXBwaW5nQWRk cmVzcycrbWFpbklkeCkudmFsdWU9PSdob21lRGVsaXZlcnknKQogICAgICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgICAgIHNlbFN0cmluZyA9IHNlbFN0cmlu ZyArICdBJyArCiAgICAgICAgICAgICAgICAgICAgZXZhbCgnZG9jdW1lbnQuZnJt T3JkZXIuZHJwU2hpcHBpbmdBZGRyZXNzJyArIG1haW5JZHgpLnZhbHVlKycsJzsK ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzZWxTdHJpbmcgPSBzZWxTdHJp bmcgKyAnUycgKwogICAgICAgICAgICAgICAgICAgIGV2YWwoJ2RvY3VtZW50LmZy bU9yZGVyLlJhZFNoaXBwaW5nQWRkcmVzcycrbWFpbklkeCkudmFsdWUrJywnOwog ICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAg IGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHNlbFN0cmluZyA9IHNlbFN0cmlu ZyArICdBTm9WYWx1ZScgKycsJzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4g c2VsU3RyaW5nOwp9CmZ1bmN0aW9uIHBvcHVwUXVpY2soIHVybCApCnsKICAgIHVy bCA9IHVybCArICcmc2VsVmFsPScrcGFyc2VWYWx1ZXMoKTsKICAgIHBvcFVwKHVy bCwgJ25ld1dpbicsJzQnLCcwJyk7Cn0KZnVuY3Rpb24gY2hrUmFkaW8oaWQpCnsK ICAgIGlmKGV2YWwoJ2RvY3VtZW50LmZybU9yZGVyLlJhZFNoaXBwaW5nQWRkcmVz cycraWQpLnZhbHVlID09IG51bGwpCiAgICB7CiAgICAgICAgcmFkY250ID0gZXZh bCgnZG9jdW1lbnQuZnJtT3JkZXIuUmFkU2hpcHBpbmdBZGRyZXNzJytpZCkubGVu Z3RoOwogICAgICAgIGZvcihzdWJJZHg9MDtzdWJJZHg8cmFkY250O3N1YklkeCsr KQogICAgICAgIHsKICAgICAgICAgICAgaWYoZXZhbCgnZG9jdW1lbnQuZnJtT3Jk ZXIuUmFkU2hpcHBpbmdBZGRyZXNzJyArIGlkKydbJytzdWJJZHgrJ10nKS52YWx1 ZT09J2hvbWVEZWxpdmVyeScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg IGV2YWwoJ2RvY3VtZW50LmZybU9yZGVyLlJhZFNoaXBwaW5nQWRkcmVzcycgKyBp ZCsnWycrc3ViSWR4KyddJykuY2hlY2tlZCA9IHRydWU7CiAgICAgICAgICAgIH0K ICAgICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gZm5Nb3ZlSXRlbVRvV2lzaExpc3RQ aWNrdXBQYWdlKGNvbW1lcmNlSXRlbUlkKQp7CiAgICBkb2N1bWVudC5mcm1XaXNo TGlzdC5zZWxWYWx1ZXMudmFsdWUgPSBwYXJzZVZhbHVlcygpOwogICAgZG9jdW1l bnQuZnJtV2lzaExpc3QudGVtcEl0ZW1JZC52YWx1ZSA9IGNvbW1lcmNlSXRlbUlk OwogICAgZG9jdW1lbnQuZnJtV2lzaExpc3QuY2FsbE1vdmVJdGVtc0Zyb21DYXJ0 LnZhbHVlID0gJ3RydWUnOwogICAgZG9jdW1lbnQuZnJtV2lzaExpc3Quc3VibWl0 KCk7Cn0KZnVuY3Rpb24gY2hlY2tSb3V0ZShwYWdlQ2F0MSwgcGFnZUNhdDIpCnsK ICAgIHZhciByYWRjbnQgPSAwOwogICAgdmFyIGJvbGZsZyA9IHRydWU7CiAgICBp dGVtYXJyYXkgPSBuZXcgQXJyYXkoKTsKICAgIGZvcihtYWluSWR4ID0gMDttYWlu SWR4IDwgaWR4O21haW5JZHgrKykKICAgIHsKICAgICAgICBpZih3cm50QXJyYXlb bWFpbklkeF0gIT0gJ1dybnR5JykKICAgICAgICB7CiAgICAgICAgICAgIGJvbGZs ZyA9IGZhbHNlOwogICAgICAgICAgICBpZihldmFsKCdkb2N1bWVudC5mcm1PcmRl ci5SYWRTaGlwcGluZ0FkZHJlc3MnK21haW5JZHgpICE9IG51bGwpCiAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgIGlmKGV2YWwoJ2RvY3VtZW50LmZybU9yZGVy LlJhZFNoaXBwaW5nQWRkcmVzcycrbWFpbklkeCkudmFsdWUgPT0gbnVsbCkKICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByYWRjbnQgPSBldmFs KCdkb2N1bWVudC5mcm1PcmRlci5SYWRTaGlwcGluZ0FkZHJlc3MnK21haW5JZHgp Lmxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBmb3Ioc3ViSWR4PTA7c3ViSWR4 PHJhZGNudDtzdWJJZHgrKykKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgIGlmKGV2YWwoJ2RvY3VtZW50LmZybU9yZGVyLlJhZFNo aXBwaW5nQWRkcmVzcycgKyBtYWluSWR4KydbJytzdWJJZHgrJ10nKS5jaGVja2Vk ID09IHRydWUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvbGZsZyA9IHRydWU7CiAgICAgICAgICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9 CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgYm9sZmxnID0gZXZhbCgnZG9jdW1lbnQuZnJtT3JkZXIuUmFk U2hpcHBpbmdBZGRyZXNzJyttYWluSWR4KS5jaGVja2VkOwogICAgICAgICAgICAg ICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGl0ZW1hcnJheVttYWluSWR4 XSA9IGJvbGZsZzsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAg ICAgICAgICAgaXRlbWFycmF5W21haW5JZHhdID0gdHJ1ZTsKICAgICAgICB9CiAg ICB9CiAgICBib2xmbGcgPSBmYWxzZTsKICAgIGFzZ25JZHggPSAwOwogICAgZm9y KHRtcElkeCA9IDA7dG1wSWR4IDwgaXRlbWFycmF5Lmxlbmd0aDt0bXBJZHgrKykK ICAgIHsKICAgICAgICBpZihpdGVtYXJyYXlbdG1wSWR4XT09ZmFsc2UpCiAgICAg ICAgewogICAgICAgICAgICBhc2duSWR4ID0gdG1wSWR4OwogICAgICAgICAgICBi b2xmbGcgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9 CiAgICBpZihib2xmbGcpCiAgICB7CiAgICAgICAgaWYgKHNwbEFycmF5W2FzZ25J ZHhdID09ICd0cnVlJykKICAgICAgICB7CiAgICAgICAgICAgIHBvcHVwQWRkKGNJ dGVtQXJyYXlbYXNnbklkeF0sc3BsQXJyYXlbYXNnbklkeF0scGFnZUNhdDEpOwog ICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBwb3B1 cEFkZChjSXRlbUFycmF5W2FzZ25JZHhdLHNwbEFycmF5W2FzZ25JZHhdLHBhZ2VD YXQyKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgZG9j dW1lbnQuZnJtT3JkZXIuc3VibWl0KCk7CiAgICB9Cn0KZnVuY3Rpb24gcG9wdXBF ZGl0KGluZGV4LCBpdGVtSWQsIHBhZ2VDYXRJZCApCnsKICAgIHZhbCA9IGV2YWwo J2RvY3VtZW50LmZybU9yZGVyLmRycFNoaXBwaW5nQWRkcmVzcycgKyBpbmRleCku b3B0aW9uc1tldmFsKCdkb2N1bWVudC5mcm1PcmRlci5kcnBTaGlwcGluZ0FkZHJl c3MnICsgaW5kZXgpLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgcG9wVXAoJ29s c3BhZ2UuanNwP2lkPScgKyBwYWdlQ2F0SWQgKyAnJnR5cGU9cGFnZSZlZGl0PScg KyB2YWwgKycmaXRlbUlkPScgKyBpdGVtSWQgKyAnJnNlbFZhbD0nK3BhcnNlVmFs dWVzKCksICduZXdXaW4nLCc0JywnMCcpOwp9CmZ1bmN0aW9uIHBvcHVwQWRkKGl0 ZW1JZCAsc3BsLCBwYWdlQ2F0SWQpCnsKICAgIGlmKHNwbCA9PSAndHJ1ZScpCiAg ICB7CiAgICAgICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScgKyBwYWdlQ2F0SWQg KyAnJnR5cGU9cGFnZSZpdGVtSWQ9JyArIGl0ZW1JZCArICcmc2VsVmFsPScrcGFy c2VWYWx1ZXMoKSwgJ25ld1dpbicsJzMnLCcwJyk7CiAgICB9CiAgICBlbHNlCiAg ICB7CiAgICAgICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScgKyBwYWdlQ2F0SWQg KyAnJnR5cGU9cGFnZSZpdGVtSWQ9JyArIGl0ZW1JZCArICcmc2VsVmFsPScrcGFy c2VWYWx1ZXMoKSwgJ25ld1dpbicsJzQnLCcwJyk7CiAgICB9Cn0KZnVuY3Rpb24g aGFuZGxlUGF5bWVudEVudGVyS2V5UHJlc3MoZmxhZykKewogICAgaWYobmF2aWdh dG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpCiAg ICB7CiAgICAgICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCiAgICAg ICAgewogICAgICAgICAgICBkb2N1bWVudC5mcm1QYXltZW50SW5mby5jaGtGbGFn LnZhbHVlPWZsYWc7CiAgICAgICAgICAgIGRvY3VtZW50LmZybVBheW1lbnRJbmZv LnN1Ym1pdCgpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQog ICAgfQp9CmZ1bmN0aW9uIGhhbmRsZVN1Ym1pc3Npb24oZmxhZykKewogICAgZG9j dW1lbnQuZnJtUGF5bWVudEluZm8uY2hrRmxhZy52YWx1ZT1mbGFnOwogICAgZG9j dW1lbnQuZnJtUGF5bWVudEluZm8uc3VibWl0KCk7CiAgICByZXR1cm4gZmFsc2U7 Cn0KZnVuY3Rpb24gaGFuZGxlU3VibWlzc2lvbk5ld0N1c3QoZmxhZykKewoKICAg IGRvY3VtZW50LnBheW1lbnRmb3JtLmNoa0ZsYWcudmFsdWU9ZmxhZzsKICAgIGRv Y3VtZW50LnBheW1lbnRmb3JtLnN1Ym1pdCgpOwogICAgcmV0dXJuIGZhbHNlOwp9 CmZ1bmN0aW9uIGNhbGxDaGVja0NJRE51bWJlclBhZ2UocGFnZUNhdElkKQp7CiAg ICBwb3BVcCgnb2xzcGFnZS5qc3A/aWQ9JyArIHBhZ2VDYXRJZCArICcmdHlwZT1w YWdlJywgJ0NoZWNrX0NJRF9OdW1iZXJfTG9jYXRpb24nLCc0JywnMCcpOwogICAg cmV0dXJuOwp9CmZ1bmN0aW9uIGVkaXRDYXJkUG9wdXAocGFnZUNhdElkKQp7CiAg ICB2YWwgPSBkb2N1bWVudC5mcm1QYXltZW50SW5mby5kcnBDcmVkaXRDYXJkLm9w dGlvbnNbZG9jdW1lbnQuZnJtUGF5bWVudEluZm8uZHJwQ3JlZGl0Q2FyZC5zZWxl Y3RlZEluZGV4XS52YWx1ZTsKICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nICsg cGFnZUNhdElkICsgJyZ0eXBlPXBhZ2UmZWRpdDE9JyArIHZhbCwgJ25ld1dpbics JzQnLCcwJykKfQpmdW5jdGlvbiBvbkNyZWRpdENhcmRDaGFuZ2UoKQp7CiAgICB2 YXIgbmV3VHlwZSAgPSBkb2N1bWVudC5wYXltZW50Zm9ybS5zZWxDcmVkaXRDYXJk VHlwZS5vcHRpb25zW2RvY3VtZW50LnBheW1lbnRmb3JtLnNlbENyZWRpdENhcmRU eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgdmFyIG9sZFR5cGUgPSBkb2N1 bWVudC5wYXltZW50Zm9ybS5leGlzdENhcmRUeXBlLnZhbHVlOwogICAgaWYgKG5l d1R5cGUgPT0gJ0hSUycgfHwgb2xkVHlwZSA9PSAnSFJTJykKICAgIHsKICAgICAg ICBkb2N1bWVudC5wYXltZW50Zm9ybS5zdWJtaXRGb3JtLnZhbHVlPSdmYWxzZSc7 CiAgICAgICAgZG9jdW1lbnQucGF5bWVudGZvcm0uc3VibWl0KCk7CiAgICB9Cn0K ZnVuY3Rpb24gZWRpdFNoaXBwaW5nQWRkcmVzcyhwYWdlQ2F0LHR5cGUsZnVuYyxz b3VyY2VJZCkKewogICAgICAgIHZhciBuaWNrID0gZG9jdW1lbnQucGF5bWVudGZv cm0uc2VsQWRkcmVzcy5vcHRpb25zW2RvY3VtZW50LnBheW1lbnRmb3JtLnNlbEFk ZHJlc3Muc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICAgICAgaWYoIG5pY2sgIT0g IiIgKQogICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciB1cmwgPSBkb2N1bWVu dC5wYXltZW50Zm9ybS5lZGl0U2hpcEFkZHJlc3MudmFsdWU7CiAgICAgICAgICAg ICAgICB1cmwgPSB1cmwgKyAiJmFkZHJlc3NJZD0iK25pY2s7CiAgICAgICAgICAg ICAgICB2YXIgdXJsID0gYWRkSnNlc3Npb25JZElmUmVxdWlyZWQoJ29sc3BhZ2Uu anNwP2lkPScgKyBwYWdlQ2F0ICsgJyZ0eXBlPXBhZ2UmYWRkcmVzc0lkPScgKyBu aWNrICsgJyZzb3VyY2VJZD0nKyBzb3VyY2VJZCArICcmZm49JyArIGZ1bmMpOwog ICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZj11cmw7CiAgICAgICAgfQogICAg ICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICAgICBhbGVydCgiUGxlYXNl IHNlbGVjdCBhbiBhZGRyZXNzIHRvIGVkaXQiKTsKICAgICAgICAgICAgICAgIHJl dHVybjsKICAgICAgICB9Cn0KZnVuY3Rpb24gc2V0bmlja25hbWVBZGRFZGl0KGlz QmlsbGluZykKewogICAgZG9jdW1lbnQuZnJtUGF5bWVudEFkZC5pc0JpbGxpbmcu dmFsdWU9aXNCaWxsaW5nOwogICAgZG9jdW1lbnQuZnJtUGF5bWVudEFkZC5zdWJt aXRGb3JtLnZhbHVlPSdmYWxzZSc7CiAgICBkb2N1bWVudC5mcm1QYXltZW50QWRk LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHNldEFjdGlvbihldmVudCkKewogICAgZG9j dW1lbnQuc2hpcHBpbmdtZXRob2QuZXZlbnQudmFsdWUgPSBldmVudDsKICAgIGRv Y3VtZW50LnNoaXBwaW5nbWV0aG9kLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHNocENo YW5nZShldmVudCxjaWQpCnsKICAgIHZhciBjVmFsID0gY2lkLm5hbWU7CiAgICBk b2N1bWVudC5zaGlwcGluZ21ldGhvZC5jSXRlbS52YWx1ZSA9IGNWYWwuc3Vic3Ry aW5nKDMpOwogICAgZG9jdW1lbnQuc2hpcHBpbmdtZXRob2Quc2hpcE1ldGhvZC52 YWx1ZSA9IGNpZC5vcHRpb25zW2NpZC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAg IGRvY3VtZW50LnNoaXBwaW5nbWV0aG9kLmV2ZW50LnZhbHVlID0gZXZlbnQ7CiAg ICBkb2N1bWVudC5zaGlwcGluZ21ldGhvZC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBm bk1vdmVJdGVtVG9XaXNoTGlzdE1ldGhQYWdlKGNvbW1lcmNlSXRlbUlkKQp7CiAg ICBkb2N1bWVudC5mcm1XaXNoTGlzdC50ZW1wSXRlbUlkLnZhbHVlPWNvbW1lcmNl SXRlbUlkOwogICAgZG9jdW1lbnQuZnJtV2lzaExpc3QuY2FsbE1vdmVJdGVtc0Zy b21DYXJ0LnZhbHVlPSd0cnVlJzsKICAgIGRvY3VtZW50LmZybVdpc2hMaXN0LnN1 Ym1pdCgpOwp9CgoKZnVuY3Rpb24gc3VibWl0T3JkZXIoKQp7CiAgICAgICAgaWYo IWJ1dHRvbkNsaWNrZWQpCiAgICAgICAgewogICAgICAgICAgICAgICAgYnV0dG9u Q2xpY2tlZD10cnVlOwoKICAgICAgICAgICAgICAgIGRvY3VtZW50LmZybU9yZGVy U3VibWl0LnN1Ym1pdCgpOwoKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCJwbGVhc2V3YWl0Iikuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7 CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VudGVy d2VsbGNvbnRhaW5lciIpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAg fQogICAgICAgIHJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gb3BlbnN1cnZleXBh Z2UoKQp7CiAgICB3aW5kb3cub3BlbigiaHR0cHM6Ly9ldmFsLmJpenJhdGUuY29t L3BvcHVwLnBsP2lkPTE3NDc0IiwidGhpc05hbWUiLCAiZGlyZWN0b3JpZXM9MCxo ZWlnaHQ9MTYwLHdpZHRoPTQyNSIpOwp9CmZ1bmN0aW9uIG5ldHNjYXBlS2V5UHJl c3NOZXdDcmVkaXRDYXJkKGUpCnsKICAgIGlmIChlLndoaWNoID09IDEzKQogICAg aGFuZGxlU3VibWlzc2lvbk5ld0N1c3QoJ3RydWUnKTsKfQpmdW5jdGlvbiBtaWNy b3NvZnRLZXlQcmVzc05ld0NyZWRpdENhcmQoKQp7CiAgICBpZiAod2luZG93LmV2 ZW50LmtleUNvZGUgPT0gMTMpCiAgICBoYW5kbGVTdWJtaXNzaW9uTmV3Q3VzdCgn dHJ1ZScpOwp9CmZ1bmN0aW9uIGRlbGV0ZUFkZHJlc3MoKQp7CiAgICBkb2N1bWVu dC5mcm1EZWxldGUuc3VibWl0KCk7Cn0KZnVuY3Rpb24gZWRpdEFkZHJlc3Mobmlj aykKewogICAgZG9jdW1lbnQuZnJtRWRpdC5uaWNrbmFtZS52YWx1ZSA9IG5pY2s7 CiAgICBkb2N1bWVudC5mcm1FZGl0LmZuLnZhbHVlID0gJ2VkaXQnOwogICAgZG9j dW1lbnQuZnJtRWRpdC5yZURpcmVjdC52YWx1ZSA9IHRydWU7CiAgICBkb2N1bWVu dC5mcm1FZGl0LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGNhbmNlbERlbGV0ZSgpIHsK ICAgIGRvY3VtZW50LmZybVJlcXVlc3RDYW5jZWwuc3VibWl0KCk7Cn0KZnVuY3Rp b24gc3VibWl0QWRkRm9ybUJ1c2luZXNzQWRkcmVzc0NoZWNrKGZsYWcpCnsKICAg ICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuQWRkcmVz c1R5cGUudmFsdWUgPSBmbGFnOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFu eU5hbWVSZXF1aXJlZC5IZG5OZXdBZGRyZXNzRXJyb3JVUkwudmFsdWUgPSBkb2N1 bWVudC5mcm1BZGRBZGRyZXNzLm5ld0FkZHJlc3NFcnJvclVSTC52YWx1ZTsKICAg ICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuQWRkcmVz c05hbWUudmFsdWUgPSBkb2N1bWVudC5mcm1BZGRBZGRyZXNzLlR4dEFkZHJlc3NO YW1lLnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1 aXJlZC5IZG5QcmVmaXgudmFsdWUgPSBkb2N1bWVudC5mcm1BZGRBZGRyZXNzLkRy cFByZWZpeC52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1l UmVxdWlyZWQuSGRuRmlyc3ROYW1lLnZhbHVlID0gZG9jdW1lbnQuZnJtQWRkQWRk cmVzcy5UeHRGaXJzdE5hbWUudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tD b21wYW55TmFtZVJlcXVpcmVkLkhkbk1JLnZhbHVlID0gZG9jdW1lbnQuZnJtQWRk QWRkcmVzcy5UeHRNSS52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBh bnlOYW1lUmVxdWlyZWQuSGRuTGFzdE5hbWUudmFsdWUgPSBkb2N1bWVudC5mcm1B ZGRBZGRyZXNzLlR4dExhc3ROYW1lLnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNo ZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5TdWZmaXgudmFsdWUgPSBkb2N1bWVu dC5mcm1BZGRBZGRyZXNzLkRycFN1ZmZpeC52YWx1ZTsKICAgICBkb2N1bWVudC5m cm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuQ29tcGFueU5hbWUudmFsdWUg PSBkb2N1bWVudC5mcm1BZGRBZGRyZXNzLlR4dENvbXBhbnlOYW1lLnZhbHVlOwog ICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5BZGRy ZXNzMS52YWx1ZSA9IGRvY3VtZW50LmZybUFkZEFkZHJlc3MuVHh0QWRkcmVzczEu dmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVk LkhkbkFkZHJlc3MyLnZhbHVlID0gZG9jdW1lbnQuZnJtQWRkQWRkcmVzcy5UeHRB ZGRyZXNzMi52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1l UmVxdWlyZWQuSGRuQ2l0eS52YWx1ZSA9IGRvY3VtZW50LmZybUFkZEFkZHJlc3Mu VHh0Q2l0eS52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1l UmVxdWlyZWQuSGRuU3RhdGUudmFsdWUgPSBkb2N1bWVudC5mcm1BZGRBZGRyZXNz LkRycFN0YXRlLnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5h bWVSZXF1aXJlZC5IZG5aSVAudmFsdWUgPSBkb2N1bWVudC5mcm1BZGRBZGRyZXNz LlR4dFpJUC52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1l UmVxdWlyZWQuSGRuQ291bnRyeS52YWx1ZSA9IGRvY3VtZW50LmZybUFkZEFkZHJl c3MuRHJwQ291bnRyeS52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBh bnlOYW1lUmVxdWlyZWQuSGRuRGF5UGhvbmVBcmVhQ29kZS52YWx1ZSA9IGRvY3Vt ZW50LmZybUFkZEFkZHJlc3MuVHh0RGF5UGhvbmVBcmVhQ29kZS52YWx1ZTsKICAg ICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuRGF5UGhv bmVQcmVmaXgudmFsdWUgPSBkb2N1bWVudC5mcm1BZGRBZGRyZXNzLlR4dERheVBo b25lUHJlZml4LnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5h bWVSZXF1aXJlZC5IZG5EYXlQaG9uZVN1Zml4LnZhbHVlID0gZG9jdW1lbnQuZnJt QWRkQWRkcmVzcy5UeHREYXlQaG9uZVN1Zml4LnZhbHVlOwogICAgIGRvY3VtZW50 LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5FdmVuUGhvbmVBcmVhQ29k ZS52YWx1ZSA9IGRvY3VtZW50LmZybUFkZEFkZHJlc3MuVHh0RXZlblBob25lQXJl YUNvZGUudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJl cXVpcmVkLkhkbkV2ZW5QaG9uZVByZWZpeC52YWx1ZSA9IGRvY3VtZW50LmZybUFk ZEFkZHJlc3MuVHh0RXZlblBob25lUHJlZml4LnZhbHVlOwogICAgIGRvY3VtZW50 LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5FdmVuUGhvbmVTdWZpeC52 YWx1ZSA9IGRvY3VtZW50LmZybUFkZEFkZHJlc3MuVHh0RXZlblBob25lU3VmaXgu dmFsdWU7CiAgICAgaWYoZG9jdW1lbnQuZnJtQWRkQWRkcmVzcy5DaGtTYXZlLmNo ZWNrZWQgPT0gdHJ1ZSApIHsKICAgICAgICAgICAgIGRvY3VtZW50LmZybUNoZWNr Q29tcGFueU5hbWVSZXF1aXJlZC5IZG5TYXZlLnZhbHVlID0gdHJ1ZTsKICAgICB9 ZWxzZSB7CiAgICAgICAgICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1l UmVxdWlyZWQuSGRuU2F2ZS52YWx1ZSA9IGZhbHNlOwogICAgIH0KICAgICBkb2N1 bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuc3VibWl0KCk7CiB9CiBm dW5jdGlvbiBzdWJtaXRFZGl0Rm9ybUJ1c2luZXNzQWRkcmVzc0NoZWNrKGZsYWcp CiB7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVkLkhk bkFkZHJlc3NUeXBlLnZhbHVlID0gZmxhZzsKICAgICBkb2N1bWVudC5mcm1DaGVj a0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuVXBkYXRlQWRkcmVzc0Vycm9yVVJMLnZh bHVlID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRkcmVzcy51cGRhdGVBZGRyZXNzRXJy b3JVUkwudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJl cXVpcmVkLkhkbk5ld05pY2tuYW1lLnZhbHVlID0gZG9jdW1lbnQuZnJtVXBkYXRl QWRkcmVzcy5UeHRBZGRyZXNzTmFtZS52YWx1ZTsKICAgICBkb2N1bWVudC5mcm1D aGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuTmlja25hbWUudmFsdWUgPSBkb2N1 bWVudC5mcm1VcGRhdGVBZGRyZXNzLm5pY2sudmFsdWU7CiAgICAgZG9jdW1lbnQu ZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVkLkhkblByZWZpeC52YWx1ZSA9IGRv Y3VtZW50LmZybVVwZGF0ZUFkZHJlc3MuRHJwUHJlZml4LnZhbHVlOwogICAgIGRv Y3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5GaXJzdE5hbWUu dmFsdWUgPSBkb2N1bWVudC5mcm1VcGRhdGVBZGRyZXNzLlR4dEZpcnN0TmFtZS52 YWx1ZTsKICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQu SGRuTUkudmFsdWUgPSBkb2N1bWVudC5mcm1VcGRhdGVBZGRyZXNzLlR4dE1JLnZh bHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5I ZG5MYXN0TmFtZS52YWx1ZSA9IGRvY3VtZW50LmZybVVwZGF0ZUFkZHJlc3MuVHh0 TGFzdE5hbWUudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFt ZVJlcXVpcmVkLkhkblN1ZmZpeC52YWx1ZSA9IGRvY3VtZW50LmZybVVwZGF0ZUFk ZHJlc3MuU3VmZml4LnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFu eU5hbWVSZXF1aXJlZC5IZG5Db21wYW55TmFtZS52YWx1ZSA9IGRvY3VtZW50LmZy bVVwZGF0ZUFkZHJlc3MuVHh0Q29tcGFueU5hbWUudmFsdWU7CiAgICAgZG9jdW1l bnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVkLkhkbkFkZHJlc3MxLnZhbHVl ID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRkcmVzcy5UeHRBZGRyZXNzMS52YWx1ZTsK ICAgICBkb2N1bWVudC5mcm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuQWRk cmVzczIudmFsdWUgPSBkb2N1bWVudC5mcm1VcGRhdGVBZGRyZXNzLlR4dEFkZHJl c3MyLnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1 aXJlZC5IZG5DaXR5LnZhbHVlID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRkcmVzcy5U eHRDaXR5LnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVS ZXF1aXJlZC5IZG5TdGF0ZS52YWx1ZSA9IGRvY3VtZW50LmZybVVwZGF0ZUFkZHJl c3MuRHJwU3RhdGUudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55 TmFtZVJlcXVpcmVkLkhkblpJUC52YWx1ZSA9IGRvY3VtZW50LmZybVVwZGF0ZUFk ZHJlc3MuVHh0WklQLnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFu eU5hbWVSZXF1aXJlZC5IZG5Db3VudHJ5LnZhbHVlID0gZG9jdW1lbnQuZnJtVXBk YXRlQWRkcmVzcy5EcnBDb3VudHJ5LnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNo ZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5EYXlQaG9uZUFyZWFDb2RlLnZhbHVl ID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRkcmVzcy5UeHREYXlQaG9uZUFyZWFDb2Rl LnZhbHVlOwogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJl ZC5IZG5EYXlQaG9uZVByZWZpeC52YWx1ZSA9IGRvY3VtZW50LmZybVVwZGF0ZUFk ZHJlc3MuVHh0RGF5UGhvbmVQcmVmaXgudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJt Q2hlY2tDb21wYW55TmFtZVJlcXVpcmVkLkhkbkRheVBob25lU3VmaXgudmFsdWUg PSBkb2N1bWVudC5mcm1VcGRhdGVBZGRyZXNzLlR4dERheVBob25lU3VmaXgudmFs dWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVkLkhk bkV2ZW5QaG9uZUFyZWFDb2RlLnZhbHVlID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRk cmVzcy5UeHRFdmVuUGhvbmVBcmVhQ29kZS52YWx1ZTsKICAgICBkb2N1bWVudC5m cm1DaGVja0NvbXBhbnlOYW1lUmVxdWlyZWQuSGRuRXZlblBob25lUHJlZml4LnZh bHVlID0gZG9jdW1lbnQuZnJtVXBkYXRlQWRkcmVzcy5UeHRFdmVuUGhvbmVQcmVm aXgudmFsdWU7CiAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVp cmVkLkhkbkV2ZW5QaG9uZVN1Zml4LnZhbHVlID0gZG9jdW1lbnQuZnJtVXBkYXRl QWRkcmVzcy5UeHRFdmVuUGhvbmVTdWZpeC52YWx1ZTsKICAgICBpZihkb2N1bWVu dC5mcm1VcGRhdGVBZGRyZXNzLkNoa1NhdmUuY2hlY2tlZCA9PSB0cnVlICkgewog ICAgICAgICAgICAgZG9jdW1lbnQuZnJtQ2hlY2tDb21wYW55TmFtZVJlcXVpcmVk LkhkblNhdmUudmFsdWUgPSB0cnVlOwogICAgIH1lbHNlIHsKICAgICAgICAgICAg IGRvY3VtZW50LmZybUNoZWNrQ29tcGFueU5hbWVSZXF1aXJlZC5IZG5TYXZlLnZh bHVlID0gZmFsc2U7CiAgICAgfQogICAgIGRvY3VtZW50LmZybUNoZWNrQ29tcGFu eU5hbWVSZXF1aXJlZC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBjYW5jZWxSZXF1ZXN0 KCkKewogICAgd2luZG93Lm9wZW5lci5kb2N1bWVudC5mcm1DYW5jZWxMYXN0LnN1 Ym1pdCgpOwogICAgd2luZG93LmNsb3NlKCk7Cn0KZnVuY3Rpb24gY2hlY2tDYXJk VHlwZShmcm1PYmopCnsKICAgIHZhciBwcmV2dmFsID0gZG9jdW1lbnQuZnJtQWRk cmVzcy5zZWxDcmVkaXRDYXJkVHlwZS52YWx1ZTsKICAgIHZhciBjdXJydmFsID0g ZnJtT2JqLmNyZWRpdENhcmRUeXBlLm9wdGlvbnNbZnJtT2JqLmNyZWRpdENhcmRU eXBlLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZnJtQWRkcmVz cy5zZWxDcmVkaXRDYXJkVHlwZS52YWx1ZT1mcm1PYmouY3JlZGl0Q2FyZFR5cGUu b3B0aW9uc1tmcm1PYmouY3JlZGl0Q2FyZFR5cGUuc2VsZWN0ZWRJbmRleF0udmFs dWU7CiAgICBkb2N1bWVudC5mcm1BZGRyZXNzLnNlbEFkZHJlc3MudmFsdWU9ZnJt T2JqLnNlbEFkZHJlc3Mub3B0aW9uc1tmcm1PYmouc2VsQWRkcmVzcy5zZWxlY3Rl ZEluZGV4XS52YWx1ZTsKICAgIGRvY3VtZW50LmZybUFkZHJlc3MuY3JlZGl0Q2Fy ZE51bWJlci52YWx1ZT1mcm1PYmouVHh0Q2FyZE51bWJlci52YWx1ZTsKICAgIGlm KGZybU9iai5uYW1lID09ICdteWFjY2NyZWRpdGNhcmRlZGl0ZnJtJykKICAgIHsK ICAgICAgZG9jdW1lbnQuZnJtQWRkcmVzcy5lZGl0Tmljay52YWx1ZT1mcm1PYmou ZWRpdE5pY2sudmFsdWU7CiAgICB9CiAgICBpZihwcmV2dmFsICE9ICdIUlMnKXsK ICAgICAgZG9jdW1lbnQuZnJtQWRkcmVzcy5leHBpcmF0aW9uTW9udGgudmFsdWU9 ZnJtT2JqLkRycEV4cE1vbnRoLm9wdGlvbnNbZnJtT2JqLkRycEV4cE1vbnRoLnNl bGVjdGVkSW5kZXhdLnZhbHVlOwogICAgICBkb2N1bWVudC5mcm1BZGRyZXNzLmV4 cGlyYXRpb25ZZWFyLnZhbHVlPWZybU9iai5EcnBFeHBZZWFyLm9wdGlvbnNbZnJt T2JqLkRycEV4cFllYXIuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICB9CiAgICBp ZihwcmV2dmFsID09ICdIUlMnKXsKICAgICAgZG9jdW1lbnQuZnJtQWRkcmVzcy5z dWJtaXQoKTsKICAgIH0KICAgIGlmKGN1cnJ2YWwgPT0gJ0hSUycgKXsKICAgICAg ZG9jdW1lbnQuZnJtQWRkcmVzcy5zdWJtaXQoKTsKICAgIH0KfQpmdW5jdGlvbiBz ZWxlY3RBZGRyZXNzKGZybU9iaikKewogICAgdmFyIHByZXZ2YWwgPSBkb2N1bWVu dC5mcm1BZGRyZXNzLnNlbENyZWRpdENhcmRUeXBlLnZhbHVlOwogICAgdmFyIGN1 cnJ2YWwgPSBmcm1PYmouY3JlZGl0Q2FyZFR5cGUub3B0aW9uc1tmcm1PYmouY3Jl ZGl0Q2FyZFR5cGUuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBkb2N1bWVudC5m cm1BZGRyZXNzLnNlbENyZWRpdENhcmRUeXBlLnZhbHVlPWZybU9iai5jcmVkaXRD YXJkVHlwZS5vcHRpb25zW2ZybU9iai5jcmVkaXRDYXJkVHlwZS5zZWxlY3RlZElu ZGV4XS52YWx1ZTsKICAgIGRvY3VtZW50LmZybUFkZHJlc3Muc2VsQWRkcmVzcy52 YWx1ZT1mcm1PYmouc2VsQWRkcmVzcy5vcHRpb25zW2ZybU9iai5zZWxBZGRyZXNz LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZnJtQWRkcmVzcy5j cmVkaXRDYXJkTnVtYmVyLnZhbHVlPWZybU9iai5UeHRDYXJkTnVtYmVyLnZhbHVl OwogICAgaWYoZnJtT2JqLm5hbWUgPT0gJ215YWNjY3JlZGl0Y2FyZGVkaXRmcm0n KQogICAgewogICAgICBkb2N1bWVudC5mcm1BZGRyZXNzLmVkaXROaWNrLnZhbHVl PWZybU9iai5lZGl0Tmljay52YWx1ZTsKICAgIH0KICAgIGlmKHByZXZ2YWwgIT0g J0hSUycpCiAgICB7CiAgICAgIGRvY3VtZW50LmZybUFkZHJlc3MuZXhwaXJhdGlv bk1vbnRoLnZhbHVlPWZybU9iai5EcnBFeHBNb250aC5vcHRpb25zW2ZybU9iai5E cnBFeHBNb250aC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgICAgZG9jdW1lbnQu ZnJtQWRkcmVzcy5leHBpcmF0aW9uWWVhci52YWx1ZT1mcm1PYmouRHJwRXhwWWVh ci5vcHRpb25zW2ZybU9iai5EcnBFeHBZZWFyLnNlbGVjdGVkSW5kZXhdLnZhbHVl OwogICAgfQogICAgZG9jdW1lbnQuZnJtQWRkcmVzcy5zdWJtaXQoKTsKfQpmdW5j dGlvbiBwb3B1bGF0ZSgpCnsKICAgIHZhciBwb3N0YWxDb2RlID0gZG9jdW1lbnQu ZnJtQ3JlYXRlQWNjb3VudEV4cGxpY2l0LlR4dFBvc3RhbENvZGUudmFsdWU7CiAg ICBkb2N1bWVudC5mcm1DcmVhdGVBY2NvdW50RXhwbGljaXQuVHh0U2hpcFBvc3Rh bENvZGUudmFsdWUgPSBwb3N0YWxDb2RlOwogICAgZG9jdW1lbnQuZnJtQ3JlYXRl QWNjb3VudEV4cGxpY2l0LlR4dEJpbGxQb3N0YWxDb2RlLnZhbHVlID0gcG9zdGFs Q29kZTsKICAgIGRvY3VtZW50LmZybUNyZWF0ZUFjY291bnRFeHBsaWNpdC5zdWJt aXQoKTsKICAgIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIHNldE5pY2soc3RyTmlj aykKewogICAgZG9jdW1lbnQuc2V0Tmlja0Zvcm0ubmlja25hbWUudmFsdWUgPSBz dHJOaWNrOwogICAgZG9jdW1lbnQuc2V0Tmlja0Zvcm0uc3VibWl0KCk7Cn0KZnVu Y3Rpb24gZWRpdE15QWNjb3VudENyZWRpdENhcmQoaWQpCnsKICAgIGRvY3VtZW50 LmVkaXRDYXJkRnJtLm5pY2tOYW1lLnZhbHVlID0gaWQ7CiAgICBkb2N1bWVudC5l ZGl0Q2FyZEZybS5mbi52YWx1ZSA9ICdlZGl0JzsKICAgIGRvY3VtZW50LmVkaXRD YXJkRnJtLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHJlbW92ZU15QWNjb3VudENyZWRp dENhcmQoaWQpCnsKICAgIGRvY3VtZW50LmZybVJlbW92ZUNDYXJkLml0ZW1JZC52 YWx1ZSA9IGlkOwogICAgZG9jdW1lbnQuZnJtUmVtb3ZlQ0NhcmQuc3VibWl0KCk7 Cn0KZnVuY3Rpb24gZm5BZGRUb0NhcnRGcm9tV2lzaGxpc3QocHJvZHVjdGlkLCBz a3VpZCwgcEdpZnRsaXN0SWQsIHBHaWZ0bGlzdEl0ZW1JZCwgZm9ybUNvdW50KQp7 CiAgICAgIHZhciBmcm1PYmogPSBldmFsKCdkb2N1bWVudC5mcm1BZGRUb0NhcnQn K2Zvcm1Db3VudCk7CiAgICAgIGZybU9iai5wcm9kdWN0SWQudmFsdWU9cHJvZHVj dGlkOwogICAgICBmcm1PYmoudGVtcENhdGFsb2dSZWZJZC52YWx1ZT1za3VpZDsK ICAgICAgZnJtT2JqLmdpZnRsaXN0SXRlbUlkLnZhbHVlPXBHaWZ0bGlzdEl0ZW1J ZDsKICAgICAgZnJtT2JqLmdpZnRsaXN0SWQudmFsdWU9cEdpZnRsaXN0SWQ7CiAg ICAgIGZybU9iai5hZGRGcm9tQ2FydC52YWx1ZT0ndHJ1ZSc7CiAgICAgIGZybU9i ai5zdWJtaXQoKTsKfQpmdW5jdGlvbiBmbkFkZFRvQ2FydEZyb21Qcml2YXRlbGlz dChwcm9kdWN0aWQsIHNrdWlkLCBwR2lmdGxpc3RJZCwgcEdpZnRsaXN0SXRlbUlk KQp7CiAgICAgIGRvY3VtZW50LmZybUFkZFRvQ2FydC5wcm9kdWN0SWQudmFsdWU9 cHJvZHVjdGlkOwogICAgICBkb2N1bWVudC5mcm1BZGRUb0NhcnQudGVtcENhdGFs b2dSZWZJZC52YWx1ZT1za3VpZDsKICAgICAgZG9jdW1lbnQuZnJtQWRkVG9DYXJ0 LmdpZnRsaXN0SXRlbUlkLnZhbHVlPXBHaWZ0bGlzdEl0ZW1JZDsKICAgICAgZG9j dW1lbnQuZnJtQWRkVG9DYXJ0LmdpZnRsaXN0SWQudmFsdWU9cEdpZnRsaXN0SWQ7 CiAgICAgIGRvY3VtZW50LmZybUFkZFRvQ2FydC5hZGRGcm9tUHJpdmF0ZWxpc3Qu dmFsdWU9J3RydWUnOwogICAgICBkb2N1bWVudC5mcm1BZGRUb0NhcnQuc3VibWl0 KCk7Cn0KZnVuY3Rpb24gbmF2aWdhdGUoIGN1cnJlbnRQYWdlLCBzdGFydEluZGV4 ICkKewogICAgZG9jdW1lbnQuZnJtTmF2aWdhdGUuY3VycmVudFBhZ2UudmFsdWUg PSBjdXJyZW50UGFnZTsKICAgIGRvY3VtZW50LmZybU5hdmlnYXRlLnN0YXJ0SW5k ZXgudmFsdWUgPSBzdGFydEluZGV4OwogICAgZG9jdW1lbnQuZnJtTmF2aWdhdGUu c3VibWl0KCk7Cn0KZnVuY3Rpb24gc3VibWl0Q2hhbmdlUHJpbWFyeShrZXkpCnsK ICAgICAgICBkb2N1bWVudC5jaGFuZ2VQcmltYXJ5Lm5pY2tuYW1lLnZhbHVlPWtl eTsKICAgICAgICBkb2N1bWVudC5jaGFuZ2VQcmltYXJ5LnN1Ym1pdCgpOwoKfQpm dW5jdGlvbiBjYW5EZWxldGVBZGRyZXNzMShrZXkpCnsKICAgIGRvY3VtZW50LmZy bUNhbkRlbGV0ZS5uaWNrbmFtZS52YWx1ZT1rZXk7CiAgICBkb2N1bWVudC5mcm1D YW5EZWxldGUuc3VibWl0KCk7Cn0KZnVuY3Rpb24gc3VibWl0U29ydFZhbHVlKCkK ewogICAgaWYoZG9jdW1lbnQuZnJtQWRkcmVzc2xpc3QuRHJwU29ydE9yZGVyLnZh bHVlICE9ICIiICkKICAgIHsKICAgICAgICBkb2N1bWVudC5mcm1BZGRyZXNzbGlz dC5zdWJtaXQoKSA7CiAgICB9Cn0KZnVuY3Rpb24gc3VibWl0SW5kZXgoKQp7CiAg ICBkb2N1bWVudC5mcm1TZWFyY2hPcmRlci5UeHRPcmRlck5vLnZhbHVlPXRyaW0o ZG9jdW1lbnQuZnJtU2VhcmNoT3JkZXIuVHh0T3JkZXJOby52YWx1ZSk7CiAgICBk b2N1bWVudC5mcm1TZWFyY2hPcmRlckRldGFpbC5vcmRlcklkLnZhbHVlPWRvY3Vt ZW50LmZybVNlYXJjaE9yZGVyLlR4dE9yZGVyTm8udmFsdWU7CiAgICBkb2N1bWVu dC5mcm1TZWFyY2hPcmRlckRldGFpbC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBoYW5k bGVFbnRlcktleVByZXNzSW5WaWV3T3JkZXJzKCkKewogICAgaWYobmF2aWdhdG9y LmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpCiAgICB7 CiAgICAgICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCiAgICAgICAg ewogICAgICAgICAgICBzdWJtaXRJbmRleCgpOwogICAgICAgICAgICByZXR1cm4g ZmFsc2U7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIG9wZW5SZWNlaXB0UGFn ZShwUGFnZUNhdElkLCBwT3JkZXJJZCxwT3JkZXJEYXRlLGd1KQp7CiAgICBwb3BV cCgnb2xzcGFnZS5qc3A/aWQ9JytwUGFnZUNhdElkKycmdHlwZT1wYWdlJm9yZGVy RGF0ZT0nK3BPcmRlckRhdGUrJyZvcmRlcklkPScrcE9yZGVySWQrJyZndWVzdFVz ZXI9JytndSwnT3JkZXJSZWNlaXB0JywnNCcsJzAnKTsKfQpmdW5jdGlvbiBoYW5k bGVFbnRlcktleVByZXNzSW5NeUFjY291bnQoZm9ybU5hbWUpCnsKICAgIGlmKG5h dmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIi KQogICAgewogICAgICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCiAg ICAgICB7CiAgICAgICAgICAgIGZvcm1OYW1lLnN1Ym1pdCgpOwogICAgICAgICAg ICByZXR1cm4gZmFsc2U7CiAgICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gaGFuZGxl S2V5Q29kZSgpCnsKICAgIGlmKG5hdmlnYXRvci5hcHBOYW1lID09ICJNaWNyb3Nv ZnQgSW50ZXJuZXQgRXhwbG9yZXIiKQogICAgewogICAgICAgIGlmKHdpbmRvdy5l dmVudC5rZXlDb2RlID09IDEzKQogICAgICAgIHsKICAgICAgICAgICAgcG9wdWxh dGUoKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQp9 CmZ1bmN0aW9uIGhhbmRsZUNyZWF0ZUVudGVyS2V5UHJlc3MoKQp7CiAgICBoYW5k bGVLZXlDb2RlKCk7Cn0KZnVuY3Rpb24gbWFwYW5kZGlyZWN0aW9uczEocFN0b3Jl SWQsIHBhZGQxLCBwYWRkMiwgcGNpdHksIHBzdGF0ZSwgcHppcCwgb3ppcCwgcGFn ZUNhdElkKQp7CiAgICB2YXIgYWQxID0gcGFkZDErIisiK3BhZGQyOwogICAgYWQx ID0gYWQxLnJlcGxhY2UoJyAnLCcrJyk7CiAgICB2YXIgc3RvcmVDaXR5ID0gcGNp dHkucmVwbGFjZSgnICcsJysnKTsKICAgIHZhciBzdG9yZVN0YXRlID0gcHN0YXRl LnJlcGxhY2UoJyAnLCcrJyk7CiAgICB2YXIgc3RvcmVaaXAgPSBwemlwLnJlcGxh Y2UoJyAnLCcrJyk7CiAgICBqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9p ZD0nK3BhZ2VDYXRJZCsnJnR5cGU9cGFnZSZhbGxzdG9yZXM9bm8mbW9kZT1mcm9t UHJvZmlsZSZzdG9yZUlkPScrcFN0b3JlSWQrJyZzdG9yZUFkZHJlc3M9JythZDEr JyZzdG9yZUNpdHk9JytzdG9yZUNpdHkrJyZzdG9yZVN0YXRlPScrc3RvcmVTdGF0 ZSsnJnN0b3JlWmlwPScrc3RvcmVaaXArJyZvemlwY29kZT0nK296aXAsJ01hcEFu ZERpcmVjdGlvbnMnLCc0JywnMCcpOwp9CmZ1bmN0aW9uIG1hcGFuZGRpcmVjdGlv bnMxRnJvbU15QWNjb3VudChwU3RvcmVJZCwgcGFkZDEsIHBhZGQyLCBwY2l0eSwg cHN0YXRlLCBwemlwLCBvemlwLCBwYWdlQ2F0SWQsIG5vblNlY3VyZVVybCkKewog ICAgdmFyIGFkMSA9IHBhZGQxKyIrIitwYWRkMjsKICAgIGFkMSA9IGFkMS5yZXBs YWNlKCcgJywnKycpOwogICAgdmFyIHN0b3JlQ2l0eSA9IHBjaXR5LnJlcGxhY2Uo JyAnLCcrJyk7CiAgICB2YXIgc3RvcmVTdGF0ZSA9IHBzdGF0ZS5yZXBsYWNlKCcg JywnKycpOwogICAgdmFyIHN0b3JlWmlwID0gcHppcC5yZXBsYWNlKCcgJywnKycp OwogICAgdmFyIGFwcGVuZENoYXIgPSAnPyc7CiAgICBpZihub25TZWN1cmVVcmwu aW5kZXhPZignPycpICE9IC0xKQogICAgewogICAgICAgIGFwcGVuZENoYXIgPSAn Jic7CiAgICB9CiAgICBqYXZhc2NyaXB0OnBvcFVwKG5vblNlY3VyZVVybCthcHBl bmRDaGFyKydpZD0nK3BhZ2VDYXRJZCsnJnR5cGU9cGFnZSZhbGxzdG9yZXM9bm8m bW9kZT1mcm9tUHJvZmlsZSZzdG9yZUlkPScrcFN0b3JlSWQrJyZzdG9yZUFkZHJl c3M9JythZDErJyZzdG9yZUNpdHk9JytzdG9yZUNpdHkrJyZzdG9yZVN0YXRlPScr c3RvcmVTdGF0ZSsnJnN0b3JlWmlwPScrc3RvcmVaaXArJyZvemlwY29kZT0nK296 aXAsJ01hcEFuZERpcmVjdGlvbnMnLCc0JywnMCcpOwp9CmZ1bmN0aW9uIHBvcHVw cmVkaXJlY3Rpb24ocmVkaXJlY3RGbGFnLCBpc25leHQsIHVwZGF0ZVBhZ2VDYXRJ ZCwgc3RvcmVJZCkKewogICAgY2hlY2tuZXh0bG9jYXRpb24oaXNuZXh0KTsKICAg IGlmIChyZWRpcmVjdEZsYWcgPT0gInllcyIpCiAgICB7CiAgICAgICAgcG9wVXAo J29sc3BhZ2UuanNwP2lkPScrdXBkYXRlUGFnZUNhdElkKycmdHlwZT1wYWdlJnN0 b3JlSWQ9JytzdG9yZUlkLCd1cGRhdGVhbGVydCcsMywwKTsKICAgIH0KfQpmdW5j dGlvbiBjaGVja25leHRsb2NhdGlvbihpc25leHQpCnsKICAgIGlmIChpc25leHQg PT0gImFjY2Vzc2VkIikKICAgIHsKICAgICAgICB3aW5kb3cuaGlzdG9yeS5mb3J3 YXJkKDEpOwogICAgfQp9CmZ1bmN0aW9uIG9wZW5XZWVrbHlBZCh1cmwsemlwY29k ZVZhcikKewogICAgdmFyIHVybHdpdGh6aXAgPSB1cmwrIj96aXBjb2RlPSIremlw Y29kZVZhcjsKICAgIHBvcFVwUmF3VVJMKHVybHdpdGh6aXAsJ3RoaXJkUGFydHlX aW5kb3cnLDQsJzAnKTsKfQpmdW5jdGlvbiBzdWJtaXRMZXZlbChsZXZlbCkKewog ICAgZG9jdW1lbnQuZnJtbWFwY29udHJvbC5MVi52YWx1ZT1sZXZlbDsKICAgIGRv Y3VtZW50LmZybW1hcGNvbnRyb2wuc3VibWl0KCk7Cn0KZnVuY3Rpb24gZ29CYWNr KG5hdmlnYXRlYmFjaywgcGFnZUNhdElkKQp7CiAgICBpZiAobmF2aWdhdGViYWNr ID09ICdvaycpCiAgICB7CiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWY9YWRk SnNlc3Npb25JZElmUmVxdWlyZWQoJ29sc3BhZ2UuanNwP2lkPScrcGFnZUNhdElk KycmdHlwZT1wYWdlJyk7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgd2lu ZG93LmNsb3NlKCk7CiAgICB9Cn0KCmZ1bmN0aW9uIG1hcGFsbChwYWdlQ2F0SWQp CnsKCiAgICBqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3BhZ2VD YXRJZCsnJnR5cGU9cGFnZSZhbGxzdG9yZXM9eWVzJywnTWFwQWxsJywnNCcsJzAn KTsKfQoKZnVuY3Rpb24gbWFwYW5kZGlyZWN0aW9uKHBTdG9yZUlkLCBwYWdlQ2F0 SWQpCnsKICAgIHdpbmRvdy5vcGVuKGFkZEpzZXNzaW9uSWRJZlJlcXVpcmVkKCdv bHNwYWdlLmpzcD9pZD0nK3BhZ2VDYXRJZCsnJnR5cGU9cGFnZSZhbGxzdG9yZXM9 bm8mbW9kZT1mcm9tUmVzdWx0JnN0b3JlSWQ9JytwU3RvcmVJZCksJ01hcEFuZERp cmVjdGlvbnMnLCd0b29sYmFyPTAsbG9jYXRpb249MCxkaXJlY3Rvcmllcz0wLHN0 YXR1cz0wLG1lbnViYXI9MCxzY3JvbGxiYXJzPTEscmVzaXphYmxlPTAsd2lkdGg9 NTUwLGhlaWdodD00NTAsbGVmdD01MCx0b3A9MjAwJyk7Cn0KZnVuY3Rpb24gc3Vi bWl0cHJlZmVycmVkc3RvcmVkZWxldGUoaXNkZWxldGVkLCBwYWdlQ2F0SWQpCnsK ICAgIGlmIChpc2RlbGV0ZWQgPT0gInllcyIpCiAgICB7CiAgICAgd2luZG93Lm9w ZW5lci5sb2NhdGlvbi5yZWxvYWQoKTsKICAgICB3aW5kb3cub3BlbmVyLmxvY2F0 aW9uLmhyZWY9YWRkSnNlc3Npb25JZElmUmVxdWlyZWQoJ29sc3BhZ2UuanNwP2lk PScrcGFnZUNhdElkKycmdHlwZT1wYWdlJyk7CiAgICAgd2luZG93LmNsb3NlKCk7 CiAgICB9Cn0KZnVuY3Rpb24gcmVkaXJlY3R0b215YWNjb3VudChyZWRpcmVjdFVS TCkKewogICAgd2luZG93Lm9wZW5lci5sb2NhdGlvbi5ocmVmID0gYWRkSnNlc3Np b25JZElmUmVxdWlyZWQocmVkaXJlY3RVUkwpOwogICAgd2luZG93LmNsb3NlKCk7 Cn0KZnVuY3Rpb24gdGl0bGVDYXNlKHNWYWx1ZSkgewogICAgc1ZhbHVlID0gc1Zh bHVlLnRvTG93ZXJDYXNlKCkKICAgIHZhciBzUmV0dXJuID0gJyc7CiAgICB2YXIg c1dvcmQgPSAnJzsKICAgIHZhciBzUGFydHMgPSBzVmFsdWUuc3BsaXQoIiAiKTsK ICAgIGZvciAoaSA9IDA7IGkgPCBzUGFydHMubGVuZ3RoOyBpKyspewogICAgICAg IGlmIChpID4gMCkgewogICAgICAgICAgICBzUmV0dXJuICs9ICcgJzsKICAgICAg ICB9CiAgICAgICAgaWYgKHNQYXJ0c1tpXS5sZW5ndGggPiAwKXsKICAgICAgICAg ICAgaWYgKHNQYXJ0c1tpXS5sZW5ndGggPT0gMikgewogICAgICAgICAgICAgICAg c1dvcmQ9IHNQYXJ0c1tpXS5zdWJzdHIoMCkudG9VcHBlckNhc2UoKTsKICAgICAg ICAgICAgICAgIGlmIChzV29yZCA9PSAnQUwnIHx8IHNXb3JkID09ICAnQUsnIHx8 IHNXb3JkID09ICAnQVMnIHx8IHNXb3JkID09ICAnQVonIHx8IHNXb3JkID09ICAn QVInIHx8IHNXb3JkID09ICAnQ0EnIHx8IHNXb3JkID09ICAnQ08nIHx8IHNXb3Jk ID09ICAnQ1QnIHx8IHNXb3JkID09ICAnREUnIHx8IHNXb3JkID09ICAnREMnIHx8 IHNXb3JkID09ICAnRk0nIHx8IHNXb3JkID09ICAnRkwnIHx8IHNXb3JkID09ICAn R0EnIHx8IHNXb3JkID09ICAnR1UnIHx8IHNXb3JkID09ICAnSEknIHx8IHNXb3Jk ID09ICAnSUQnIHx8IHNXb3JkID09ICAnSUwnIHx8IHNXb3JkID09ICAnSU4nIHx8 IHNXb3JkID09ICAnSUEnIHx8IHNXb3JkID09ICAnS1MnIHx8IHNXb3JkID09ICAn S1knIHx8IHNXb3JkID09ICAnTEEnIHx8IHNXb3JkID09ICAnTUUnIHx8IHNXb3Jk ID09ICAnTUgnIHx8IHNXb3JkID09ICAnTUQnIHx8IHNXb3JkID09ICAnTUEnIHx8 IHNXb3JkID09ICAnTUknIHx8IHNXb3JkID09ICAnTU4nIHx8IHNXb3JkID09ICAn TVMnIHx8IHNXb3JkID09ICAnTU8nIHx8IHNXb3JkID09ICAnTVQnIHx8IHNXb3Jk ID09ICAnTkUnIHx8IHNXb3JkID09ICAnTlYnIHx8IHNXb3JkID09ICAnTkgnIHx8 IHNXb3JkID09ICAnTkonIHx8IHNXb3JkID09ICAnTk0nIHx8IHNXb3JkID09ICAn TlknIHx8IHNXb3JkID09ICAnTkMnIHx8IHNXb3JkID09ICAnTkQnIHx8IHNXb3Jk ID09ICAnTVAnIHx8IHNXb3JkID09ICAnT0gnIHx8IHNXb3JkID09ICAnT0snIHx8 IHNXb3JkID09ICAnT1InIHx8IHNXb3JkID09ICAnUFcnIHx8IHNXb3JkID09ICAn UEEnIHx8IHNXb3JkID09ICAnUFInIHx8IHNXb3JkID09ICAnUkknIHx8IHNXb3Jk ID09ICAnU0MnIHx8IHNXb3JkID09ICAnU0QnIHx8IHNXb3JkID09ICAnVE4nIHx8 IHNXb3JkID09ICAnVFgnIHx8IHNXb3JkID09ICAnVVQnIHx8IHNXb3JkID09ICAn VlQnIHx8IHNXb3JkID09ICAnVkknIHx8IHNXb3JkID09ICAnVkEnIHx8IHNXb3Jk ID09ICAnV0EnIHx8IHNXb3JkID09ICAnV1YnIHx8IHNXb3JkID09ICAnV0knIHx8 IHNXb3JkID09ICAnV1knIHx8IHNXb3JkID09ICAnQUUnIHx8IHNXb3JkID09ICAn QUEnIHx8IHNXb3JkID09ICAnQUUnIHx8IHNXb3JkID09ICAnQVAnICAgKXsKICAg ICAgICAgICAgICAgICAgICBzUmV0dXJuICs9IHNXb3JkLnRvVXBwZXJDYXNlKCk7 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAg ICAgICAgICAgICAgICAgICAgc1JldHVybiArPSBzUGFydHNbaV0uY2hhckF0KDAp LnRvVXBwZXJDYXNlKCkgKyBzUGFydHNbaV0uc3Vic3RyKDEpOwogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAg ICAgICAgICAgc1dvcmQgPSBzUGFydHNbaV0uc3Vic3RyKDApOwogICAgICAgICAg ICAgICAgaWYgKHNXb3JkLmNoYXJBdCgwKSA9PSAnKCcgKXsKICAgICAgICAgICAg ICAgICAgICBzUmV0dXJuICs9IHNQYXJ0c1tpXS5jaGFyQXQoMCk7CiAgICAgICAg ICAgICAgICAgICAgc1JldHVybiArPSBzUGFydHNbaV0uY2hhckF0KDEpLnRvVXBw ZXJDYXNlKCkgKyBzUGFydHNbaV0uc3Vic3RyKDIpOwogICAgICAgICAgICAgICAg fQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAg ICAgICBzUmV0dXJuICs9IHNQYXJ0c1tpXS5jaGFyQXQoMCkudG9VcHBlckNhc2Uo KSArIHNQYXJ0c1tpXS5zdWJzdHIoMSk7CiAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBkb2N1bWVudC53cml0ZShzUmV0 dXJuKTsKfQpmdW5jdGlvbiBvcGVuQXJ0aXN0QmlvUG9wdXAoYmlvZ3JhcGhJZCxw YWdlQ2F0SWQpCnsKICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3BhZ2VDYXRJ ZCsnJmJpb2dyYXBoeUlkPScrYmlvZ3JhcGhJZCsnJnR5cGU9cGFnZScsJ0Jpb2dy YXBoeScsJzMnLCcwJyk7Cn0KZnVuY3Rpb24gb3BlbkRpc2NvZ3JhcGh5UG9wdXBG cm9tTXlBY2NvdW50KG9wZW5VcmwsIHBhZ2VDYXRJZCwgZGlzY29ncmFwaElkKQp7 CiAgICAgICAgcG9wVXAob3BlblVybCsnP2lkPScrcGFnZUNhdElkKycmdHlwZT1w YWdlJkFydGlzdElkPScrZGlzY29ncmFwaElkLCdEaXNjb2dyYXBoeScsJzQnLCcw Jyk7Cn0KZnVuY3Rpb24gZnJtQ29tcGFyZVByaWNlTGluayhza3VpZCAsIHByb2R1 Y3RpZCAsIGNhdGVnb3J5aWQgLCBwYWdlQ2F0SWQpCnsKICBwb3BVcCgnb2xzcGFn ZS5qc3A/aWQ9JytwYWdlQ2F0SWQrJyZ0eXBlPXBhZ2Umc2t1SWQ9Jytza3VpZCsn JnByb2R1Y3RJZD0nK3Byb2R1Y3RpZCsnJmNhdGVnb3J5SWQ9JytjYXRlZ29yeWlk KycmcGFnZUlkZW50aXR5PWJ1c2luZXNzRHJpdmVuJywnUHJvZHVjdENvbXBhcmUn LCc2JywnMCcpOwp9CmZ1bmN0aW9uIGZuUG9wU2hpcHBpbmdEZXRhaWxzKHBTa3VJ ZCxjYXRJZCkKewogICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrY2F0SWQrJyZ0 eXBlPXBhZ2Umc2t1SWQ9JytwU2t1SWQsJ1NoaXBwaW5nRGV0YWlscycsJzQnLCcw Jyk7Cn0KZnVuY3Rpb24gZm5Qb3BJbnN0b3JlUGljayhwU2t1SWQsY2F0SWQpCnsK ICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK2NhdElkKycmdHlwZT1wYWdlJnNr dUlkPScrcFNrdUlkLCdDaGVja0RlbGl2ZXJ5SW5DYXJ0JywnMicsJzAnKTsKfQpm dW5jdGlvbiBmblBvcENoZWNrRGVsaXZlcnkocFNrdUlkLGNhdElkKQp7CiAgICBw b3BVcCgnb2xzcGFnZS5qc3A/aWQ9JytjYXRJZCsnJnR5cGU9cGFnZSZza3VJZD0n K3BTa3VJZCwnQ2hlY2tEZWxpdmVyeScsJzMnLCcwJyk7Cn0KZnVuY3Rpb24gU2hv dyhuYW1lKQp7CiAgICBpZiAoaXNfbmF2NnVwKQogICAgewogICAgICAgIGV2YWwo ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiIituYW1lKyJcIikuc3R5bGUudmlz aWJpbGl0eT0ndmlzaWJsZSciKTsKICAgIH0KICAgIGVsc2UgaWYgKGlzX25hdjR1 cCkKICAgIHsKICAgICAgICBldmFsKCJkb2N1bWVudC4iK25hbWUrIi52aXNpYmls aXR5PSdzaG93JyIpOwogICAgfQogICAgZWxzZQogICAgewogICAgICAgIGV2YWwo ImRvY3VtZW50LmFsbC4iK25hbWUrIi5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxl JzsiKTsKICAgICAgICBpZiAoaXNfaWU1dXApCiAgICAgICAgewogICAgICAgICAg ICBoaWRlQWxsRGl2KCk7CiAgICAgICAgfQogICAgfQp9CmZ1bmN0aW9uIEhpZGUo bmFtZSkKewogICBpZiAoaXNfbmF2NnVwKQogICAgewogICAgICAgIGV2YWwoImRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwiIituYW1lKyJcIikuc3R5bGUudmlzaWJp bGl0eT0naGlkZGVuJyIpOwogICAgfQogICAgZWxzZSBpZiAoaXNfbmF2NHVwKQog ICAgewogICAgICAgIGV2YWwoImRvY3VtZW50LiIrbmFtZSsiLnZpc2liaWxpdHk9 J2hpZGUnIik7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgZXZhbCgiZG9j dW1lbnQuYWxsLiIrbmFtZSsiLnN0eWxlLnZpc2liaWxpdHk9J2hpZGRlbiciKTsK ICAgICAgICBpZiAoaXNfaWU1dXApCiAgICAgICAgewogICAgICAgICAgICBzaG93 QWxsRGl2KCk7CiAgICAgICAgfQogICAgfQp9CgpmdW5jdGlvbiBvblN1Ym1pdE9y ZGVyQ2FyZENoYW5nZSgpCnsKICAgIGRvY3VtZW50LmZybU9yZGVyU3VibWl0LmNo a0ZsYWcudmFsdWU9ImNhcmRDaGFuZ2UiOwogICAgZG9jdW1lbnQuZnJtT3JkZXJT dWJtaXQuc3VibWl0KCk7Cn0KZnVuY3Rpb24gZWRpdENyZWRpdENhcmQocGFnZUNh dCx0eXBlLGZ1bmMpCnsKICAgICAgICB2YWwgPSBkb2N1bWVudC5mcm1PcmRlclN1 Ym1pdC5kcnBDcmVkaXRDYXJkLm9wdGlvbnNbZG9jdW1lbnQuZnJtT3JkZXJTdWJt aXQuZHJwQ3JlZGl0Q2FyZC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgICAgICB2 YXIgdXJsID0gYWRkSnNlc3Npb25JZElmUmVxdWlyZWQoJ29sc3BhZ2UuanNwP2lk PScgKyBwYWdlQ2F0ICsgJyZ0eXBlPXBhZ2UmZWRpdDE9JyArIHZhbCArICcmZm49 JyArIGZ1bmMpOwogICAgICAgIGxvY2F0aW9uLmhyZWY9dXJsOwp9CmZ1bmN0aW9u IGhhbmRsZVN1Ym1pdE9yZGVyUmVtb3ZlUnooZmxhZykKewogICAgICAgIGRvY3Vt ZW50LmZybU9yZGVyU3VibWl0LmNoa0ZsYWcudmFsdWUgPSBmbGFnOwogICAgICAg IGRvY3VtZW50LmZybU9yZGVyU3VibWl0LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGhh bmRsZVN1Ym1pdE9yZGVyUmVtb3ZlUnd6Q2VydChmbGFnLGNlcnROdW0pCnsKICAg ICAgICBkb2N1bWVudC5mcm1PcmRlclN1Ym1pdC5jaGtGbGFnLnZhbHVlID0gZmxh ZzsKICAgICAgICBkb2N1bWVudC5mcm1PcmRlclN1Ym1pdC5UeHRSZW1vdmVSd3pD ZXJ0TnVtLnZhbHVlID0gY2VydE51bSA7CiAgICAgICAgZG9jdW1lbnQuZnJtT3Jk ZXJTdWJtaXQuc3VibWl0KCk7Cn0KZnVuY3Rpb24gY2hlY2tvdXRBZGRBZGRyZXNz KCBzaGlwSWQgKQp7CiAgICAgICAgZG9jdW1lbnQuZnJtQXNzaWduQWRkcmVzcy50 eHRTaGlwR3JvdXBJZC52YWx1ZT1zaGlwSWQ7CiAgICAgICAgZG9jdW1lbnQuZnJt QXNzaWduQWRkcmVzcy5hZGRyRXZlbnQudmFsdWU9ImFkZEFkZHIiOwogICAgICAg IGRvY3VtZW50LmZybUFzc2lnbkFkZHJlc3Muc3VibWl0KCk7Cn0KZnVuY3Rpb24g aGFuZGxlU3VibWl0T3JkZXJSZW1vdmVEaWdpdGFsQ291cG9uKGZsYWcscmVtb3Zl Q291cG9uQ29kZSxjb3Vwb25UeXBlKQp7CiAgICAgICAgZG9jdW1lbnQuZnJtT3Jk ZXJTdWJtaXQuY2hrRmxhZy52YWx1ZSA9IGZsYWc7CiAgICAgICAgZG9jdW1lbnQu ZnJtT3JkZXJTdWJtaXQuVHh0UmVtb3ZhbERpZ2l0YWxEaXNjb3VudElkLnZhbHVl ID0gcmVtb3ZlQ291cG9uQ29kZTsKICAgICAgICBkb2N1bWVudC5mcm1PcmRlclN1 Ym1pdC5UeHREaWdpdGFsRGlzY291bnRUeXBlLnZhbHVlID0gY291cG9uVHlwZTsK ICAgICAgICBkb2N1bWVudC5mcm1PcmRlclN1Ym1pdC5zdWJtaXQoKTsKfQpmdW5j dGlvbiBoYW5kbGVQcm9tb3Rpb25BcHBseUREKGZsYWcpCnsKICAgICAgICBkb2N1 bWVudC5mcm1DaGtQcm9tb09mZmVycy5jaGtGbGFnLnZhbHVlID0gZmxhZzsKICAg ICAgICBkb2N1bWVudC5mcm1DaGtQcm9tb09mZmVycy5zdWJtaXQoKTsKfQpmdW5j dGlvbiBoYW5kbGVQcm9tb3Rpb25SZW1vdmVERChmbGFnLHJlbW92ZUNvdXBvbkNv ZGUsY291cG9uVHlwZSkKewogICAgICAgIGRvY3VtZW50LmZybUNoa1Byb21vT2Zm ZXJzLmNoa0ZsYWcudmFsdWUgPSBmbGFnOwogICAgICAgIGRvY3VtZW50LmZybUNo a1Byb21vT2ZmZXJzLnByb21vQ29kZS52YWx1ZSA9IHJlbW92ZUNvdXBvbkNvZGU7 CiAgICAgICAgZG9jdW1lbnQuZnJtQ2hrUHJvbW9PZmZlcnMucHJvbW9UeXBlLnZh bHVlID0gY291cG9uVHlwZTsKICAgICAgICBkb2N1bWVudC5mcm1DaGtQcm9tb09m ZmVycy5zdWJtaXQoKTsKfQpmdW5jdGlvbiBmbkFkZEl0ZW1Ub0NhcnRXaXRoQWNj ZXNzb3JpZXMocHJvZHVjdElkLCBza3VJZCkKewogICAgICAgIHZhciBza3VJZHMg PSAiIjsKICAgICAgICB2YXIgcHJvZElkcyA9ICIiOwogICAgICAgIHZhciBzdHI7 CgogICAgICAgIGlmIChwcm9kdWN0SWQgIT0gbnVsbCkKICAgICAgICB7CiAgICAg ICAgICAgICAgICBwcm9kSWRzID0gcHJvZHVjdElkICsgJ14nOwogICAgICAgIH0K CiAgICAgICAgaWYgKHNrdUlkICE9IG51bGwpCiAgICAgICAgewogICAgICAgICAg ICAgICAgc2t1SWRzID0gc2t1SWQgKyAnXic7CiAgICAgICAgfQoKICAgICAgICBm b3IodmFyIGNvdW50ID0gMDsgY291bnQgPCBkb2N1bWVudC5mcm1DYXJ0LmVsZW1l bnRzLmxlbmd0aDsgY291bnQrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGRv Y3VtZW50LmZybUNhcnQuZWxlbWVudHNbY291bnRdLnR5cGUgPT0gImNoZWNrYm94 IiAmJiBkb2N1bWVudC5mcm1DYXJ0LmVsZW1lbnRzW2NvdW50XS5uYW1lLmluZGV4 T2YoImFjY2Vzc29yeSIpICE9IC0xKQogICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICBpZihkb2N1bWVudC5mcm1DYXJ0LmVsZW1lbnRzW2NvdW50XS5jaGVja2Vk ID09ICIxIikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBz dHIgPSBkb2N1bWVudC5mcm1DYXJ0LmVsZW1lbnRzW2NvdW50XS52YWx1ZTsKICAg ICAgICAgICAgICAgICAgICBwcm9kSWRzICA9IHByb2RJZHMgKyAgc3RyLnN1YnN0 cigwLHN0ci5pbmRleE9mKCcsJykpICsgJ14nOwogICAgICAgICAgICAgICAgICAg IHNrdUlkcyAgPSBza3VJZHMgKyAgc3RyLnN1YnN0cihzdHIuaW5kZXhPZignLCcp KzEsc3RyLmxlbmd0aCkgKyAnXic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgIH0KICAgICAgICB9CgogICAgICAgIHNrdUlkcyA9IHNrdUlkcy5zdWJzdHIo MCxza3VJZHMubGVuZ3RoLTEpOwogICAgICAgIHByb2RJZHMgPSBwcm9kSWRzLnN1 YnN0cigwLHByb2RJZHMubGVuZ3RoLTEpOwogICAgICAgIGRvY3VtZW50LmZybUNh cnQuc2t1SWRzLnZhbHVlID0gc2t1SWRzOwogICAgICAgIGRvY3VtZW50LmZybUNh cnQucHJvZHVjdElkcy52YWx1ZSA9IHByb2RJZHM7CiAgICAgICAgZG9jdW1lbnQu ZnJtQ2FydC5zdWJtaXQoKTsKfQoKZnVuY3Rpb24gaGFuZGxlQWRkU1ZDKGZsYWcp CnsKICAgIGRvY3VtZW50LmZybVNWQ0FkZC5jaGtGbGFnLnZhbHVlID0gZmxhZzsK ICAgIGRvY3VtZW50LmZybVNWQ0FkZC5zdWJtaXQoKTsKfQoKCmZ1bmN0aW9uIGhh bmRsZVNWQ1JlbW92ZVN1Ym1pc3Npb24oZmxhZyxwZ0lkKQp7CiAgICBkb2N1bWVu dC5mcm1TVkNBZGQuY2hrRmxhZy52YWx1ZT1mbGFnOwogICAgZG9jdW1lbnQuZnJt U1ZDQWRkLnBheW1lbnRHcnBJZC52YWx1ZT1wZ0lkOwogICAgZG9jdW1lbnQuZnJt U1ZDQWRkLnN1Ym1pdCgpOwogICAgcmV0dXJuIGZhbHNlOwp9CgoKZnVuY3Rpb24g aGFuZGxlUldaUmVtb3ZlU3VibWlzc2lvbihmbGFnLHBnSWQpCnsKICAgIGRvY3Vt ZW50LmZybVJXWkFkZC5jaGtGbGFnLnZhbHVlPWZsYWc7CiAgICBkb2N1bWVudC5m cm1SV1pBZGQucGF5bWVudEdycElkLnZhbHVlPXBnSWQ7CiAgICBkb2N1bWVudC5m cm1SV1pBZGQuc3VibWl0KCk7CiAgICByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9u IGhhbmRsZVJlbW92ZVN1Ym1pc3Npb24oZmxhZyxwZ0lkKQp7CiAgICBkb2N1bWVu dC5mcm1QYXltZW50SW5mby5jaGtGbGFnLnZhbHVlPWZsYWc7CiAgICBkb2N1bWVu dC5mcm1QYXltZW50SW5mby5wYXltZW50R3JwSWQudmFsdWU9cGdJZDsKICAgIGRv Y3VtZW50LmZybVBheW1lbnRJbmZvLnN1Ym1pdCgpOwogICAgcmV0dXJuIGZhbHNl Owp9CgoKZnVuY3Rpb24gaGFuZGxlUmVtb3ZlU3VibWlzc2lvbk5ld0N1c3QoZmxh ZyxwZ0lkKQp7CiAgICBkb2N1bWVudC5wYXltZW50Zm9ybS5jaGtGbGFnLnZhbHVl PWZsYWc7CiAgICBkb2N1bWVudC5wYXltZW50Zm9ybS5wYXltZW50R3JwSWQudmFs dWU9cGdJZDsKICAgIGRvY3VtZW50LnBheW1lbnRmb3JtLnN1Ym1pdCgpOwogICAg cmV0dXJuIGZhbHNlOwp9CgoKZnVuY3Rpb24gaGFuZGxlU3VibWl0T3JkZXJSZW1v dmVTVkMoZmxhZyxwZ0lkKQp7CiAgICAgICAgZG9jdW1lbnQuZnJtT3JkZXJTdWJt aXQuY2hrRmxhZy52YWx1ZSA9IGZsYWc7CiAgICAgICAgZG9jdW1lbnQuZnJtT3Jk ZXJTdWJtaXQucGF5bWVudEdycElkLnZhbHVlPXBnSWQ7CiAgICAgICAgZG9jdW1l bnQuZnJtT3JkZXJTdWJtaXQuc3VibWl0KCk7CiAgICAgICAgcmV0dXJuIGZhbHNl Owp9CgpmdW5jdGlvbiBoYW5kbGVTdWJtaXRPcmRlclVwZGF0ZUZpblBsYW4oKQp7 CiAgICAgICAgZG9jdW1lbnQuZnJtT3JkZXJTdWJtaXQuY2hrRmxhZy52YWx1ZSA9 ICJ1cGRhdGVGaW5QbGFuIjsKICAgICAgICBkb2N1bWVudC5mcm1PcmRlclN1Ym1p dC5zdWJtaXQoKTsKICAgICAgICByZXR1cm4gZmFsc2U7Cn0KCgpmdW5jdGlvbiBo YW5kbGVBZGRSV1ooZmxhZykKewogICAgZG9jdW1lbnQuZnJtUldaQWRkLmNoa0Zs YWcudmFsdWUgPSBmbGFnOwogICAgZG9jdW1lbnQuZnJtUldaQWRkLnN1Ym1pdCgp Owp9 ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olspopupnoleftcommon.js Content-Type: application/x-javascript; name=olspopupnoleftcommon.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olspopupnoleftcommon.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gZm5BZGRUb0NhcnRGcm9tUHJpdmF0ZWxpc3RDYXJ0KHByb2R1Y3Rp ZCwgc2t1aWQsIHBHaWZ0bGlzdElkLCBwR2lmdGxpc3RJdGVtSWQpCnsKICAgIGRv Y3VtZW50LmZybU1pbmlDYXJ0LnByb2R1Y3RJZC52YWx1ZT1wcm9kdWN0aWQ7CiAg ICBkb2N1bWVudC5mcm1NaW5pQ2FydC50ZW1wQ2F0YWxvZ1JlZklkLnZhbHVlPXNr dWlkOwogICAgZG9jdW1lbnQuZnJtTWluaUNhcnQuZ2lmdGxpc3RJdGVtSWQudmFs dWU9cEdpZnRsaXN0SXRlbUlkOwogICAgZG9jdW1lbnQuZnJtTWluaUNhcnQuZ2lm dGxpc3RJZC52YWx1ZT1wR2lmdGxpc3RJZDsKICAgIGRvY3VtZW50LmZybU1pbmlD YXJ0LmFkZEZyb21Qcml2YXRlbGlzdC52YWx1ZT0ndHJ1ZSc7CiAgICBkb2N1bWVu dC5mcm1NaW5pQ2FydC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBuZXRzY2FwZUtleVBy ZXNzKGUpCnsKICAgIGlmIChlLndoaWNoID09IDEzKQogICAgZm5DaGVja291dCgp Owp9CgovKgoKVGhlIGNhcnQgcGFnZSB3YXMgZGVzaWduZWQgaW4gc3VjaCBhIHdh eSB0aGF0IHdoZW4gdGhlIHVzZXIgaGl0cyAiZW50ZXIiIGtleSAKZnJvbSBhbnl3 aGVyZSB3aXRoaW4gdGhlIGNhcnQgcmVnaW9uIHRoZSB1c2VyIHdpbGwgYmUgdGFr ZW4gdG8gdGhlIGNoZWNrb3V0IGVudHJ5IHBhZ2UuCgpUaGlzIGZ1bmN0aW9uIGlz IG1vZGlmaWVkIGZvciBTZWFyY2ggc28gdGhhdCB3aGVuIHRoZSB1c2VyIGhpdHMg ZW50ZXIga2V5CmZyb20gc2VhcmNoIHRleHQgYm94ICJzdCIgb3IgR28gYnV0dG9u ICJnb0J1dHRvbiIgdGhlIGNoZWNrb3V0IGZvcm0gaXMgbm90CnN1Ym1pdHRlZC4K CiovCmZ1bmN0aW9uIG1pY3Jvc29mdEtleVByZXNzKCkKewogICAgaWYobmF2aWdh dG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpCiAg ICB7CiAgICAgICAgaWYod2luZG93LmV2ZW50LnNyY0VsZW1lbnQubmFtZSAhPSAi c3QiCiAgICAgICAgICAgICYmIHdpbmRvdy5ldmVudC5zcmNFbGVtZW50Lm5hbWUg IT0gImdvQnV0dG9uIikKICAgICAgICB7CiAgICAgICAgICAgIGlmICh3aW5kb3cu ZXZlbnQua2V5Q29kZSA9PSAxMykKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgZm5DaGVja291dCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQog ICAgZWxzZQoKICAgIHsKICAgICAgICBpZiAobmF2aWdhdG9yLmFwcE5hbWUgPT0g Ik5ldHNjYXBlIikKICAgICAgICB7CiAgICAgICAgICAgIGlmKGFyZ3VtZW50cy5j YWxsZWUuY2FsbGVyLmFyZ3VtZW50c1swXS50YXJnZXQubmFtZSAhPSAic3QiCiAg ICAgICAgICAgICAgICAmJiBhcmd1bWVudHMuY2FsbGVlLmNhbGxlci5hcmd1bWVu dHNbMF0udGFyZ2V0Lm5hbWUgIT0gImdvQnV0dG9uIikKICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgaWYoYXJndW1lbnRzLmNhbGxlZS5jYWxsZXIuYXJndW1l bnRzWzBdLndoaWNoID09IDEzKQogICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgIGZuQ2hlY2tvdXQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAg ICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKCmlmIChuYXZpZ2F0b3IuYXBwTmFt ZSA9PSAnTmV0c2NhcGUnKQp7CiAgICB3aW5kb3cuY2FwdHVyZUV2ZW50cyhFdmVu dC5LRVlQUkVTUyk7CiAgICB3aW5kb3cub25LZXlQcmVzcyA9IG5ldHNjYXBlS2V5 UHJlc3M7Cn0KCmZ1bmN0aW9uIGZuQ2hlY2tvdXQoKQp7CiAgICBkb2N1bWVudC5m cm1DYXJ0LmlzY2hlY2tvdXQudmFsdWU9J3RydWUnOwogICAgZG9jdW1lbnQuZnJt Q2FydC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBmblVwZGF0ZSgpCnsKICAgIGRvY3Vt ZW50LmZybUNhcnQuaXNjaGVja291dC52YWx1ZT0nZmFsc2UnOwogICAgZG9jdW1l bnQuZnJtQ2FydC5hZGRGcm9tQ2FydC52YWx1ZT0nZmFsc2UnOwogICAgZG9jdW1l bnQuZnJtQ2FydC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBzZXRSZW1vdmVJZChpZCkK ewogICAgZG9jdW1lbnQuZnJtUmVtb3ZlSXRlbS5yZW1vdmFsSWRzLnZhbHVlID0g aWQ7CiAgICBkb2N1bWVudC5mcm1SZW1vdmVJdGVtLnN1Ym1pdCgpOwp9CmZ1bmN0 aW9uIGZuQWRkVG9DYXJ0SXRlbShwcm9kdWN0aWQsIHNrdWlkKQp7CiAgICBkb2N1 bWVudC5mcm1DYXJ0LnByb2R1Y3RJZC52YWx1ZT1wcm9kdWN0aWQ7CiAgICBkb2N1 bWVudC5mcm1DYXJ0LnRlbXBDYXRhbG9nUmVmSWQudmFsdWU9c2t1aWQ7CiAgICBk b2N1bWVudC5mcm1DYXJ0LmFkZEZyb21DYXJ0LnZhbHVlPSd0cnVlJzsKICAgIGRv Y3VtZW50LmZybUNhcnQuc3VibWl0KCk7Cn0KZnVuY3Rpb24gZm5Nb3ZlSXRlbVRv V2lzaExpc3RDYXJ0KGNvbW1lcmNlSXRlbUlkLCBza3VJZCkKewogICAgZG9jdW1l bnQuZnJtV2lzaExpc3QudGVtcEl0ZW1JZC52YWx1ZT1jb21tZXJjZUl0ZW1JZDsK ICAgIGRvY3VtZW50LmZybVdpc2hMaXN0LmNhbGxNb3ZlSXRlbXNGcm9tQ2FydC52 YWx1ZT0ndHJ1ZSc7CiAgICBkb2N1bWVudC5mcm1XaXNoTGlzdC5yZWRpcmVjdFVS TC52YWx1ZT1kb2N1bWVudC5mcm1XaXNoTGlzdC5yZWRpcmVjdFVSTC52YWx1ZSsn JnByaXZhdGVMaXN0Q29tbWVyY2VJdGVtSWQ9Jytza3VJZDsKICAgIGRvY3VtZW50 LmZybVdpc2hMaXN0LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGNoZWNrTWVzc2FnZUF2 YWlsYWJpbGl0eSgpCnsKICAgIHBhcmVudC53aW5kb3cub3BlbmVyLmxvY2F0aW9u LnJlbG9hZCgpOwogICAgd2luZG93LmNsb3NlKCk7Cn0KZnVuY3Rpb24gaGFuZGxl RW50ZXJLZXlQcmVzc0NhcnQoZm9ybU5hbWUpCnsKICAgIGlmKG5hdmlnYXRvci5h cHBOYW1lID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKQogICAgewog ICAgICAgIGlmKHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDEzKQogICAgICAgIHsK ICAgICAgICAgICAgZm9ybU5hbWUuc3VibWl0KCk7CiAgICAgICAgfQogICAgfQp9 CmZ1bmN0aW9uIGRvU3VibWl0KGVsZW1lbnQsaWQpCnsKICAgIHZhciBzaGlwTWV0 aFZhbCA9IGVsZW1lbnRbZWxlbWVudC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAg IGRvY3VtZW50LmZybVNoaXBwaW5nLnNoaXBNZXRob2QudmFsdWU9c2hpcE1ldGhW YWw7CiAgICBkb2N1bWVudC5mcm1TaGlwcGluZy5zaGlwSWQudmFsdWU9aWQ7CiAg ICBpZihzaGlwTWV0aFZhbCAhPSAiIikKICAgIHsKICAgICAgICBkb2N1bWVudC5m cm1TaGlwcGluZy5hY3Rpb24gPSBkb2N1bWVudC5mcm1TaGlwcGluZy50QWN0aW9u LnZhbHVlOwogICAgICAgIGRvY3VtZW50LmZybVNoaXBwaW5nLm9uQ2hhbmdlU3Vi bWl0LnZhbHVlPSJ0cnVlIjsKICAgICAgICBkb2N1bWVudC5mcm1TaGlwcGluZy5z dWJtaXQoKTsKICAgIH0KfQpmdW5jdGlvbiBjaGVja1N0b3JlU2VsZWN0aW9uKCkK ewogICAgaWYgKGRvY3VtZW50LmZybUluU3RvcmVQaWNrdXAuUmFkU3RvcmUgPT0g bnVsbCkKICAgIHsKICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm47Cn0KZnVuY3Rpb24gY2hlY2tSYWRp bygpCnsKICAgIGlmIChkb2N1bWVudC5mcm1JblN0b3JlUGlja3VwICE9IG51bGwg JiYKICAgICAgICBkb2N1bWVudC5mcm1JblN0b3JlUGlja3VwLlJhZFN0b3JlICE9 IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGRvY3VtZW50LmZybUluU3RvcmVQaWNr dXAuUmFkU3RvcmUudmFsdWUgIT0gbnVsbCAmJgogICAgICAgICAgICBkb2N1bWVu dC5mcm1JblN0b3JlUGlja3VwLlJhZFN0b3JlLmNoZWNrZWQgPT0gZmFsc2UpCiAg ICAgICAgewogICAgICAgICAgICBkb2N1bWVudC5mcm1JblN0b3JlUGlja3VwLlJh ZFN0b3JlLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBlbHNlCiAg ICAgICAgewogICAgICAgICAgICBpZiAoZG9jdW1lbnQuZnJtSW5TdG9yZVBpY2t1 cC5SYWRTdG9yZS52YWx1ZSA9PSBudWxsICYmCiAgICAgICAgICAgICAgICBkb2N1 bWVudC5mcm1JblN0b3JlUGlja3VwLlJhZFN0b3JlLmxlbmd0aCA+IDEpCiAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgIHZhciBsZW4gPSBkb2N1bWVudC5mcm1J blN0b3JlUGlja3VwLlJhZFN0b3JlLmxlbmd0aDsKICAgICAgICAgICAgICAgIHZh ciBmbGFnID0gZmFsc2U7CiAgICAgICAgICAgICAgICBmb3IgKHZhciBpZHg9MDtp ZHggPCBsZW47IGlkeCsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgIGlmIChldmFsKCdkb2N1bWVudC5mcm1JblN0b3JlUGlja3VwLlJhZFN0 b3JlWycraWR4KyddJykuY2hlY2tlZCA9PSB0cnVlKQogICAgICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmxhZyA9IHRydWU7CiAgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChmbGFnID09IGZh bHNlKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGRvY3Vt ZW50LmZybUluU3RvcmVQaWNrdXAuUmFkU3RvcmVbMF0uY2hlY2tlZCA9IHRydWU7 CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9 Cn0KZnVuY3Rpb24gZm5BZGRBY2NUb0NhcnQocHJvZHVjdGlkLCBza3VpZCkKewog ICAgZG9jdW1lbnQuZnJtQWNjZXNzb3JpZXNDb250ZW50LnByb2R1Y3RJZC52YWx1 ZT1wcm9kdWN0aWQ7CiAgICBkb2N1bWVudC5mcm1BY2Nlc3Nvcmllc0NvbnRlbnQu dGVtcENhdGFsb2dSZWZJZC52YWx1ZT1za3VpZDsKICAgIGRvY3VtZW50LmZybUFj Y2Vzc29yaWVzQ29udGVudC5hZGRGcm9tQ2FydC52YWx1ZT0ndHJ1ZSc7CiAgICBk b2N1bWVudC5mcm1BY2Nlc3Nvcmllc0NvbnRlbnQuc3VibWl0KCk7Cn0KZnVuY3Rp b24gZGlzcGxheVByb2REZXRhaWwocGlkLCBwYXJlbnRDYXRJZCkKewogICAgcGFy ZW50LndpbmRvdy5vcGVuZXIubG9jYXRpb24uaHJlZj1hZGRKc2Vzc2lvbklkSWZS ZXF1aXJlZCgnb2xzcGFnZS5qc3A/aWQ9JytwaWQrJyZ0eXBlPXByb2R1Y3QmcHJv ZHVjdENhdGVnb3J5SWQ9JytwYXJlbnRDYXRJZCk7CiAgICB3aW5kb3cuY2xvc2Uo KTsKfQpmdW5jdGlvbiBmblBvcENoZWNrRGVsaXZlcnlDYXJ0KHBDb21tZXJjZUl0 ZW1JZCwgaXRlbUlkLCBwYWdlQ2F0SWQpCnsKICAgIHBvcFVwKCdvbHNwYWdlLmpz cD9pZD0nICsgcGFnZUNhdElkICsgJyZ0eXBlPXBhZ2UmY29tbWVyY2VJdGVtSWQ9 JyArIHBDb21tZXJjZUl0ZW1JZCArJyZpdGVtSWQ9JytpdGVtSWQsJ0NoZWNrRGVs aXZlcnlJbkNhcnQnLCczJywnMCcpOwp9CmZ1bmN0aW9uIGZuUG9wU2hpcHBpbmdE ZXRhaWxzQ2FydChwYWdlQ2F0SWQpCnsKICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9p ZD0nICsgcGFnZUNhdElkICsgJyZ0eXBlPXBhZ2UnLCdTaGlwcGluZ0RldGFpbHMn LCc0JywnMCcpOwp9CmZ1bmN0aW9uIGZuUG9wSW5zdG9yZVBpY2tDYXJ0KHBDb21t ZXJjZUl0ZW1JZCwgcGFnZUNhdElkKQp7CiAgICBwb3BVcCgnb2xzcGFnZS5qc3A/ aWQ9JyArIHBhZ2VDYXRJZCArICcmdHlwZT1wYWdlJmNvbW1lcmNlSXRlbUlkPScg KyBwQ29tbWVyY2VJdGVtSWQsJ1N0b3JlUGlja3VwJywnMicsJzAnKTsKfQpmdW5j dGlvbiBmbk1vcmVBY2Nlc3NvcnkoY29tbWVyY2VJdGVtSWQsIHBhZ2VDYXRJZCkK ewogIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nICsgcGFnZUNhdElkICsgJyZ0eXBl PXBhZ2UmY29tbWVyY2VJdGVtSWQ9Jytjb21tZXJjZUl0ZW1JZCwnQ2hlY2tEZWxp dmVyeUluQ2FydCcsJzQnLCcwJyk7Cn0KZnVuY3Rpb24gZm5jaG9vc2VTdGF0ZUFj Y2Vzc29yeShwc3BQcmRJZCwgcHNwU2t1SWQsIGNJZCwgcGFnZUNhdElkKQp7CiAg ICBqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nICsgcGFnZUNhdElk ICsgJyZ0eXBlPXBhZ2UmcHNwUHJkSWQ9Jytwc3BQcmRJZCsnJnBzcFNrdUlkPScr cHNwU2t1SWQrJyZjSXRlbUlkPScrY0lkLCdQU1AnLCc0JywnMCcpOwp9CmZ1bmN0 aW9uIGNoZWNrQWRkVG9DYXJ0KCkKewogICAgdmFyIGxlbiA9IGRvY3VtZW50LmZy bUFjY2Vzc29yaWVzQ29udGVudC5hZGRUb0NhcnQubGVuZ3RoOwogICAgdmFyIGNo a0ZsYWcgPSBmYWxzZTsKICAgIGZvciAodmFyIGlkeD0wOyBpZHggPCBsZW47IGlk eCsrKQogICAgewogICAgICAgIGlmIChldmFsKCdkb2N1bWVudC5mcm1BY2Nlc3Nv cmllc0NvbnRlbnQuYWRkVG9DYXJ0WycraWR4KyddLmNoZWNrZWQnKSA9PSB0cnVl KQogICAgICAgIHsKICAgICAgICAgICAgY2hrRmxhZyA9IHRydWU7CiAgICAgICAg fQogICAgfQogICAgaWYgKGNoa0ZsYWcgPT0gZmFsc2UpCiAgICB7CiAgICAgICAg YWxlcnQoJ1BsZWFzZSBzZWxlY3QgYSBpdGVtJyk7CiAgICAgICAgcmV0dXJuIGZh bHNlOwogICAgfQogICAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY2hhbmdlU2Vs ZWN0ZWRDYXRlZ29yeSgpCnsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3Jt LmN1cnJlbnRQYWdlSGlkZGVuLnZhbHVlID0gMTsKICAgIGRvY3VtZW50LnNlYXJj aFJlc3VsdHNGb3JtLnNvcnRPcHRpb25IaWRkZW4udmFsdWUgPSAiUmVsZXZhbmNl IjsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3JtLnNlbGVjdGVkQ2F0ZWdv cnlIaWRkZW4udmFsdWUgPSBkb2N1bWVudC5zZWFyY2hSZXN1bHRzRm9ybS5SZXN1 bHRzRm91bmRbZG9jdW1lbnQuc2VhcmNoUmVzdWx0c0Zvcm0uUmVzdWx0c0ZvdW5k LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuc2VhcmNoUmVzdWx0 c0Zvcm0uc3VibWl0KCk7Cn0KZnVuY3Rpb24gY2hhbmdlU2VsZWN0ZWRDYXRlZ29y eVNlY29uZCgpCnsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3JtLmN1cnJl bnRQYWdlSGlkZGVuLnZhbHVlID0gMTsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3Vs dHNGb3JtLnNvcnRPcHRpb25IaWRkZW4udmFsdWUgPSAiUmVsZXZhbmNlIjsKICAg IGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3JtLnNlbGVjdGVkQ2F0ZWdvcnlIaWRk ZW4udmFsdWUgPSBkb2N1bWVudC5zZWFyY2hSZXN1bHRzRm9ybS5SZXN1bHRzRm91 bmRTZWNvbmRbZG9jdW1lbnQuc2VhcmNoUmVzdWx0c0Zvcm0uUmVzdWx0c0ZvdW5k U2Vjb25kLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuc2VhcmNo UmVzdWx0c0Zvcm0uc3VibWl0KCk7Cn0KZnVuY3Rpb24gaW5pdGlhdGVOZXdTZWFy Y2gocXVlcnlTdHJpbmcpCnsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3Jt LnNvcnRPcHRpb25IaWRkZW4udmFsdWUgPSAiUmVsZXZhbmNlIjsKICAgIGRvY3Vt ZW50LnNlYXJjaFJlc3VsdHNGb3JtLmN1cnJlbnRQYWdlSGlkZGVuLnZhbHVlID0g MTsKICAgIGRvY3VtZW50LnNlYXJjaFJlc3VsdHNGb3JtLml0ZW1zUGVyUGFnZUhp ZGRlbi52YWx1ZSA9IDEwOwogICAgZG9jdW1lbnQuc2VhcmNoUmVzdWx0c0Zvcm0u c2VsZWN0ZWRDYXRlZ29yeUhpZGRlbi52YWx1ZSA9ICJFbGVjdHJvbmljcyI7CiAg ICBkb2N1bWVudC5zZWFyY2hSZXN1bHRzRm9ybS5xdWVyeVN0cmluZ0hpZGRlbi52 YWx1ZSA9IHF1ZXJ5U3RyaW5nOwp9CnZhciBjYW5TZWFyY2g9dHJ1ZTsKZnVuY3Rp b24gY2hlY2tGb3JFbXB0eUZpZWxkSGVscFNlYXJjaChmb3JtTmFtZSkKewogICAg aWYoc2VhcmNoQnV0dG9uQ2xpY2tlZCkKICAgIHsKICAgICAgICByZXR1cm4gZmFs c2U7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgc2VhcmNoQnV0dG9uQ2xp Y2tlZD10cnVlOwogICAgfQogICAgdmFyIHVzZXJFbnRlcmVkVmFsdWUgPSBmb3Jt TmFtZS5UeHRTZWFyY2gudmFsdWU7CiAgICB1c2VyRW50ZXJlZFZhbHVlID0gdHJp bSh1c2VyRW50ZXJlZFZhbHVlKTsKICAgIGlmKHVzZXJFbnRlcmVkVmFsdWUgPT0g IiIpCiAgICB7CiAgICAgICAgYWxlcnQoIlBsZWFzZSBlbnRlciBhIHdvcmQocykg dG8gc2VhcmNoIGZvciIpOwogICAgICAgIGZvcm1OYW1lLlR4dFNlYXJjaC52YWx1 ZSA9ICIiOwogICAgICAgIGZvcm1OYW1lLlR4dFNlYXJjaC5mb2N1cygpOwogICAg ICAgIHNlYXJjaEJ1dHRvbkNsaWNrZWQ9ZmFsc2U7CiAgICAgICAgcmV0dXJuIGZh bHNlOwogICAgfQp9CmZ1bmN0aW9uIGhhbmRsZUVudGVyS2V5UHJlc3NIZWxwU2Vh cmNoKGZvcm1OYW1lKQp7CiAgICB2YXIgdXNlckVudGVyZWRWYWx1ZSA9IGZvcm1O YW1lLlR4dFNlYXJjaC52YWx1ZTsKICAgIHVzZXJFbnRlcmVkVmFsdWUgPSB0cmlt KHVzZXJFbnRlcmVkVmFsdWUpOwoKICAgIGlmKG5hdmlnYXRvci5hcHBOYW1lID09 ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKQogICAgewogICAgICAgIGlm KHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDEzKQogICAgICAgIHsKICAgICAgICAg ICAgaWYoc2VhcmNoQnV0dG9uQ2xpY2tlZCkKICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAg IGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgc2VhcmNoQnV0dG9u Q2xpY2tlZD10cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZih1c2Vy RW50ZXJlZFZhbHVlID09ICIiKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICBhbGVydCgiUGxlYXNlIGVudGVyIGEgd29yZChzKSB0byBzZWFyY2ggZm9yIik7 CiAgICAgICAgICAgICAgICBmb3JtTmFtZS5UeHRTZWFyY2gudmFsdWUgPSAiIjsK ICAgICAgICAgICAgICAgIGZvcm1OYW1lLlR4dFNlYXJjaC5mb2N1cygpOwogICAg ICAgICAgICAgICAgc2VhcmNoQnV0dG9uQ2xpY2tlZD1mYWxzZTsKICAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBl bHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvcm1OYW1lLnN1Ym1p dCgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYobmF2aWdh dG9yLmFwcE5hbWUgPT0gIk5ldHNjYXBlIikKICAgIHsKICAgICAgICBjYW5TZWFy Y2g9dHJ1ZTsKICAgICAgICBpZihhcmd1bWVudHMuY2FsbGVlLmNhbGxlci5hcmd1 bWVudHNbMF0ud2hpY2ggPT0gMTMpCiAgICAgICAgewogICAgICAgICAgICBpZihz ZWFyY2hCdXR0b25DbGlja2VkKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQog ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzZWFyY2hCdXR0b25DbGlja2Vk PXRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICh1c2VyRW50ZXJl ZFZhbHVlID09ICIiKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhbGVy dCgiUGxlYXNlIGVudGVyIGEgd29yZChzKSB0byBzZWFyY2ggZm9yIik7CiAgICAg ICAgICAgICAgICBmb3JtTmFtZS5UeHRTZWFyY2gudmFsdWUgPSAiIjsKICAgICAg ICAgICAgICAgIGZvcm1OYW1lLlR4dFNlYXJjaC5mb2N1cygpOwogICAgICAgICAg ICAgICAgc2VhcmNoQnV0dG9uQ2xpY2tlZD1mYWxzZTsKICAgICAgICAgICAgICAg IGNhblNlYXJjaCA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewog ICAgICAgICAgICAJZm9ybU5hbWUuc3VibWl0KCk7CiAgICAgICAgICAgIH0KICAg ICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gc2V0V2luZG93VGl0bGUoKQp7CiAgICB0 aGlzLmRvY3VtZW50LnRpdGxlPXdpbmRvdy5kb2N1bWVudC50aXRsZTsKfQpmdW5j dGlvbiByZXR1cm5Ub1BhcmVudChjYXRlZ29yeUlkLCBjYXRsaXN0cGFnZUlkKQp7 CiAgICB3aW5kb3cub3BlbmVyLmxvY2F0aW9uLmhyZWYgPSBhZGRKc2Vzc2lvbklk SWZSZXF1aXJlZCgnb2xzcGFnZS5qc3A/aWQ9JytjYXRsaXN0cGFnZUlkKycmdHlw ZT1wYWdlJmNhdGVnb3J5SWQ9JytjYXRlZ29yeUlkKTsKICAgIHNlbGYuY2xvc2Uo KTsKfQpmdW5jdGlvbiBvbkNoYW5nZVN1Ym1pdFN1YlRvcGljKCkKewogICAgICB2 YXIgc2VsSW5kZXggPSBkb2N1bWVudC5mcm1Db250YWN0dXNGb3JtLnN1YlRvcGlj cy5vcHRpb25zLnNlbGVjdGVkSW5kZXg7CiAgICAgIGRvY3VtZW50LmZybUNvbnRh Y3R1c0Zvcm0uc3ViVG9waWNWYWwudmFsdWUgPSBkb2N1bWVudC5mcm1Db250YWN0 dXNGb3JtLnN1YlRvcGljcy5vcHRpb25zW3NlbEluZGV4XS52YWx1ZTsKICAgICAg ZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zcGVjVG9waWNWYWwudmFsdWUgPSAi IjsKICAgICAgc3VibWl0VGVzdEZvcm0oKTsKfQpmdW5jdGlvbiBvbkNoYW5nZVN1 Ym1pdFNwZWNUb3BpYygpCnsKICAgICAgdmFyIHNlbEluZGV4ID0gZG9jdW1lbnQu ZnJtQ29udGFjdHVzRm9ybS5zcFRvcGljcy5vcHRpb25zLnNlbGVjdGVkSW5kZXg7 CiAgICAgIGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3BlY1RvcGljVmFsLnZh bHVlID0gZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zcFRvcGljcy5vcHRpb25z W3NlbEluZGV4XS52YWx1ZTsKICAgICAgc3VibWl0VGVzdEZvcm0oKTsKfQpmdW5j dGlvbiBzdWJtaXRNYWlsRm9ybSgpCnsKICAgICAgaWYgKGRvY3VtZW50LmZybUNv bnRhY3R1c0Zvcm0uc3ViVG9waWNWYWxGbGcudmFsdWUgPT0gJ3RydWUnKQogICAg ICB7CiAgICAgICAgICAgIHZhciBzZWxJbmRleCA9IGRvY3VtZW50LmZybUNvbnRh Y3R1c0Zvcm0uc3ViVG9waWNzLm9wdGlvbnMuc2VsZWN0ZWRJbmRleDsKICAgICAg ICAgICAgZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zdWJUb3BpY1ZhbC52YWx1 ZSA9IGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3ViVG9waWNzLm9wdGlvbnNb c2VsSW5kZXhdLnZhbHVlOwogICAgICAgICAgICBkb2N1bWVudC5mcm1Db250YWN0 dXNGb3JtLnN1YlRvcGljVHh0LnZhbHVlID0gZG9jdW1lbnQuZnJtQ29udGFjdHVz Rm9ybS5zdWJUb3BpY3Mub3B0aW9uc1tzZWxJbmRleF0udGV4dDsKICAgICAgfQog ICAgICBpZiAoZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zcGVjVG9waWNWYWxG bGcudmFsdWUgPT0gJ3RydWUnKQogICAgICB7CiAgICAgICAgICAgIHZhciBzZWxJ bmRleCA9IGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3BUb3BpY3Mub3B0aW9u cy5zZWxlY3RlZEluZGV4OwogICAgICAgICAgICBkb2N1bWVudC5mcm1Db250YWN0 dXNGb3JtLnNwZWNUb3BpY1ZhbC52YWx1ZSA9IGRvY3VtZW50LmZybUNvbnRhY3R1 c0Zvcm0uc3BUb3BpY3Mub3B0aW9uc1tzZWxJbmRleF0udmFsdWU7CiAgICAgICAg ICAgIGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3BlY1RvcGljVHh0LnZhbHVl ID0gZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zcFRvcGljcy5vcHRpb25zW3Nl bEluZGV4XS50ZXh0OwogICAgICB9CiAgICAgIHN1Ym1pdFRlc3RGb3JtKCk7Cn0K ZnVuY3Rpb24gc3VibWl0VGVzdEZvcm0oKQp7CiAgICBkb2N1bWVudC50ZXN0Rm9y bS5zdG9yZS52YWx1ZSA9IGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3RvcmVU eXBlLnZhbHVlOwogICAgZG9jdW1lbnQudGVzdEZvcm0uc3ViVG9waWNGbGcudmFs dWUgPSBkb2N1bWVudC5mcm1Db250YWN0dXNGb3JtLnN1YlRvcGljRmxnLnZhbHVl OwogICAgZG9jdW1lbnQudGVzdEZvcm0uc3BlY1RvcGljRmxnLnZhbHVlID0gZG9j dW1lbnQuZnJtQ29udGFjdHVzRm9ybS5zcGVjVG9waWNGbGcudmFsdWU7CiAgICBk b2N1bWVudC50ZXN0Rm9ybS5zdWJUb3BpY1ZhbC52YWx1ZSA9IGRvY3VtZW50LmZy bUNvbnRhY3R1c0Zvcm0uc3ViVG9waWNWYWwudmFsdWU7CiAgICBkb2N1bWVudC50 ZXN0Rm9ybS5zcGVjVG9waWNWYWwudmFsdWUgPSBkb2N1bWVudC5mcm1Db250YWN0 dXNGb3JtLnNwZWNUb3BpY1ZhbC52YWx1ZTsKICAgIGRvY3VtZW50LnRlc3RGb3Jt LnN1YlRvcGljVHh0LnZhbHVlID0gZG9jdW1lbnQuZnJtQ29udGFjdHVzRm9ybS5z dWJUb3BpY1R4dC52YWx1ZTsKICAgIGRvY3VtZW50LnRlc3RGb3JtLnNwZWNUb3Bp Y1R4dC52YWx1ZSA9IGRvY3VtZW50LmZybUNvbnRhY3R1c0Zvcm0uc3BlY1RvcGlj VHh0LnZhbHVlOwogICAgZG9jdW1lbnQudGVzdEZvcm0uc3VibWl0KCk7Cn0KZnVu Y3Rpb24gd2lub3BlbmhlbHBmYXEoY29udGVudElkLHBhZ2VDYXRJZCkKewogICAg cG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrcGFnZUNhdElkKycmdHlwZT1wYWdlJmZh cUlEPScrY29udGVudElkLCdGQVEnLCc0JywnMCcpOwp9CmZ1bmN0aW9uIGhhbmRs ZVN0b3JlRW50ZXJLZXlQcmVzcyhmb3JtTmFtZSkKewogICAgdmFyIHVzZXJFbnRl cmVkVmFsdWUgPSBkb2N1bWVudC5mcm1TdG9yZUxvY2F0b3JTZWFyY2guVHh0U3Rv cmVMb2NhdG9yWmlwQ29kZS52YWx1ZTsKICAgIGlmKG5hdmlnYXRvci5hcHBOYW1l ID09ICJNaWNyb3NvZnQgSW50ZXJuZXQgRXhwbG9yZXIiKQogICAgewogICAgICAg IGlmKHdpbmRvdy5ldmVudC5rZXlDb2RlID09IDEzKQogICAgICAgIHsKICAgICAg ICAgICAgZG9jdW1lbnQuZnJtU3RvcmVMb2NhdG9yU2VhcmNoLnN1Ym1pdCgpOwog ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9Cn0KZnVuY3Rp b24gc3VibWl0Q29udGFjdFVzRm9ybSgpCnsKICAgIGRvY3VtZW50LmZybUNvbnRh Y3R1c0Zvcm0uc3VibWl0KCk7Cn0K ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olsnoleftmaster.js Content-Type: application/x-javascript; name=olsnoleftmaster.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olsnoleftmaster.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gdmFsaWRhdGUoKQp7CiAgIHZhciAgY2hlY2s9IGRvY3VtZW50LmZy bVNpZ25Jbi5UeHRFbWFpbC52YWx1ZTsKICAgZG9jdW1lbnQudGVtcC5UeHRFbWFp bC52YWx1ZT1jaGVjazsKICAgZG9jdW1lbnQudGVtcC5zdWJtaXQoKTsKfQpmdW5j dGlvbiBwb3B1bGF0ZUtpb3NrKCkKewogICAgdmFyIHBvc3RhbENvZGUgPSBkb2N1 bWVudC5mcm1DcmVhdGVBY2NvdW50S2lvc2suVHh0WmlwQ29kZS52YWx1ZTsKICAg IGRvY3VtZW50LmZybUNyZWF0ZUFjY291bnRLaW9zay5UeHRTaGlwUG9zdGFsQ29k ZS52YWx1ZSA9IHBvc3RhbENvZGU7CiAgICBkb2N1bWVudC5mcm1DcmVhdGVBY2Nv dW50S2lvc2suVHh0QmlsbFBvc3RhbENvZGUudmFsdWUgPSBwb3N0YWxDb2RlOwog ICAgZG9jdW1lbnQuZnJtQ3JlYXRlQWNjb3VudEtpb3NrLnN1Ym1pdCgpOwogICAg cmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gbG9hZENhcnRQYWdlKCkKewogICAgaWYg KHJldFBhcmFtID09ICdhbnknKQogICAgewogICAgICAgIGZvY3VzUGFyZW50KCk7 CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcGFyZW50LndpbmRvdy5vcGVu ZXIubG9jYXRpb24uaHJlZj1hZGRKc2Vzc2lvbklkSWZSZXF1aXJlZCh1cmwpOwog ICAgICAgIHNlbGYuY2xvc2UoKTsKICAgIH0KfQpmdW5jdGlvbiBzdWJtaXRNYWlu Rm9ybSgpCnsKICAgIGRvY3VtZW50LmZybVNpZ25Jbi5zdWJtaXQoKTsKfQpmdW5j dGlvbiBoYW5kbGVTaWduSW5FbnRlcktleVByZXNzKCkKewogICAgaWYobmF2aWdh dG9yLmFwcE5hbWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpCiAg ICB7CiAgICAgICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCiAgICAg ICAgewogICAgICAgICAgICBzdWJtaXRNYWluRm9ybSgpOwogICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9Cn0KZnVuY3Rpb24gaGFuZGxlQ3Jl YXRlS2lvc2tFbnRlcktleVByZXNzKCkKewogICAgaWYobmF2aWdhdG9yLmFwcE5h bWUgPT0gIk1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIpCiAgICB7CiAgICAg ICAgaWYod2luZG93LmV2ZW50LmtleUNvZGUgPT0gMTMpCiAgICAgICAgewogICAg ICAgICAgICBwb3B1bGF0ZUtpb3NrKCk7CiAgICAgICAgICAgIHJldHVybiB0cnVl OwogICAgICAgIH0KICAgIH0KfQo= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=olspopupmastercommon.js Content-Type: application/x-javascript; name=olspopupmastercommon.js Content-Location: http://images.bestbuy.com/BestBuy_US/store/js/olspopupmastercommon.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gZnJtQ2FydFN1Ym1pdCgpCnsKICAgIHZhciBza3VJZHMgPSAiIjsK ICAgIHZhciBwcm9kSWRzID0gIiI7CiAgICB2YXIgc3RyOwogICAgICBmb3IodmFy IGNvdW50ID0gMDsgY291bnQgPCBkb2N1bWVudC5mcm1DYXJ0LmVsZW1lbnRzLmxl bmd0aDsgY291bnQrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKGRvY3VtZW50 LmZybUNhcnQuZWxlbWVudHNbY291bnRdLnR5cGUgPT0gImNoZWNrYm94IikKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoZG9jdW1lbnQuZnJtQ2FydC5l bGVtZW50c1tjb3VudF0uY2hlY2tlZCA9PSAiMSIpCiAgICAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgICAgc3RyID0gZG9jdW1lbnQuZnJtQ2FydC5lbGVt ZW50c1tjb3VudF0udmFsdWU7CiAgICAgICAgICAgICAgICAgICAgcHJvZElkcyAg PSBwcm9kSWRzICsgIHN0ci5zdWJzdHIoMCxzdHIuaW5kZXhPZignLCcpKSArICde JzsKICAgICAgICAgICAgICAgICAgICBza3VJZHMgID0gc2t1SWRzICsgIHN0ci5z dWJzdHIoc3RyLmluZGV4T2YoJywnKSsxLHN0ci5sZW5ndGgpICsgJ14nOwogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNr dUlkcyA9IHNrdUlkcy5zdWJzdHIoMCxza3VJZHMubGVuZ3RoLTEpOwogICAgICAg IHByb2RJZHMgPSBwcm9kSWRzLnN1YnN0cigwLHByb2RJZHMubGVuZ3RoLTEpOwog ICAgICAgIGRvY3VtZW50LmZybVByb21vQ2FydC5za3VJZHMudmFsdWUgPSBza3VJ ZHM7CiAgICAgICAgZG9jdW1lbnQuZnJtUHJvbW9DYXJ0LnByb2R1Y3RJZHMudmFs dWUgPSBwcm9kSWRzOwogICAgICAgIGRvY3VtZW50LmZybVByb21vQ2FydC5zdWJt aXQoKTsKfQpmdW5jdGlvbiBsb2FkV2luZG93KHBhZ2UscGFyYW1ldGVycykKewog ICAgdmFyIHVybCA9IGFkZEpzZXNzaW9uSWRJZlJlcXVpcmVkKHBhZ2UgKyBwYXJh bWV0ZXJzKTsKICAgIGlmIChvcGVuZXIgJiYgIW9wZW5lci5jbG9zZWQpCiAgICB7 CiAgICAgICAgcGFyZW50LndpbmRvdy5vcGVuZXIubG9jYXRpb24uaHJlZj11cmw7 CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgdmFyIG15V2luID0gd2luZG93 Lm9wZW4odXJsKTsKICAgICAgICBvcGVuZXIgPSBteVdpbjsKICAgIH0KICAgIHdp bmRvdy5jbG9zZSgpOwp9CmZ1bmN0aW9uIHNldEZpbHRlclZhbHVlKG9wdFZhbCkK ewogICAgdmFyIHNlbGVjdGVkVmFsID0gb3B0VmFsW29wdFZhbC5zZWxlY3RlZElu ZGV4XS52YWx1ZTsKICAgIGlmIChzZWxlY3RlZFZhbCA9PSAnQUxMJykKICAgIHsK ICAgICAgICBkb2N1bWVudC5mcm1PcHRpb24uaXNDaGlsZFJvb3RMb29rVXAudmFs dWUgPSAidHJ1ZSI7CiAgICAgICAgZG9jdW1lbnQuZnJtT3B0aW9uLnNlbGVjdGVk Q29tYm9WYWwudmFsdWUgPSAiQUxMIjsKICAgICAgICBkb2N1bWVudC5mcm1PcHRp b24uZmlsdGVyU3VibWl0LnZhbHVlID0gIiI7CiAgICAgICAgZG9jdW1lbnQuZnJt T3B0aW9uLnN1Ym1pdCgpOwogICAgfQogICAgZWxzZSBpZiAoc2VsZWN0ZWRWYWwg PT0gJ05PVEFMTCcpCiAgICB7CiAgICAgICAgZG9jdW1lbnQuZnJtT3B0aW9uLmlz Q2hpbGRSb290TG9va1VwLnZhbHVlID0gImZhbHNlIjsKICAgICAgICBkb2N1bWVu dC5mcm1PcHRpb24uc2VsZWN0ZWRDb21ib1ZhbC52YWx1ZSA9ICJOT1RBTEwiOwog ICAgICAgIGRvY3VtZW50LmZybU9wdGlvbi5maWx0ZXJTdWJtaXQudmFsdWUgPSAi IjsKICAgICAgICBkb2N1bWVudC5mcm1PcHRpb24uc3VibWl0KCk7CiAgICB9ZWxz ZQogICAgewogICAgICAgIGRvY3VtZW50LmZybU5leHQuaXNDaGlsZFJvb3RMb29r VXAudmFsdWUgPSAidHJ1ZSI7CiAgICAgICAgZG9jdW1lbnQuZnJtTmV4dC5zdWJD YXRlZ29yeUlkLnZhbHVlID0gb3B0VmFsW29wdFZhbC5zZWxlY3RlZEluZGV4XS52 YWx1ZTsKICAgICAgICBkb2N1bWVudC5mcm1OZXh0LnNlbGVjdGVkQ29tYm9WYWwu dmFsdWUgID0gb3B0VmFsW29wdFZhbC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAg ICAgICBkb2N1bWVudC5mcm1OZXh0LmZpbHRlclN1Ym1pdC52YWx1ZSA9ICIiOwog ICAgICAgIGRvY3VtZW50LmZybU5leHQuc3VibWl0KCk7CiAgICB9Cn0KZnVuY3Rp b24gc2V0QWxwaGFGaWx0ZXJWYWx1ZShvcHRWYWwpCnsKICAgIGRvY3VtZW50LmZy bU5leHQuYWxwaGFGaWx0ZXJIaWRkZW4udmFsdWUgPSBvcHRWYWxbb3B0VmFsLnNl bGVjdGVkSW5kZXhdLnZhbHVlOwogICAgZG9jdW1lbnQuZnJtTmV4dC5zdWJtaXQo KTsKfQpmdW5jdGlvbiBzZXRHZW5yZUZpbHRlclZhbHVlKG9wdFZhbCkKewogICAg ZG9jdW1lbnQuZnJtTmV4dC5nZW5yZUZpbHRlckhpZGRlbi52YWx1ZSA9IG9wdFZh bFtvcHRWYWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBkb2N1bWVudC5mcm1O ZXh0LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHNldEVzcmJGaWx0ZXJWYWx1ZShvcHRW YWwpCnsKICAgIGRvY3VtZW50LmZybU5leHQuZXNyYkZpbHRlckhpZGRlbi52YWx1 ZSA9IG9wdFZhbFtvcHRWYWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBkb2N1 bWVudC5mcm1OZXh0LnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHNldFBsYXRmb3JtRmls dGVyVmFsdWUob3B0VmFsKQp7CiAgICBkb2N1bWVudC5mcm1OZXh0LnBsYXRmcm9t RmlsdGVySGlkZGVuLnZhbHVlID0gb3B0VmFsW29wdFZhbC5zZWxlY3RlZEluZGV4 XS52YWx1ZTsKICAgIGRvY3VtZW50LmZybU5leHQuc3VibWl0KCk7Cn0KZnVuY3Rp b24gc2V0TXBhYUZpbHRlclZhbHVlKG9wdFZhbCkKewogICAgZG9jdW1lbnQuZnJt TmV4dC5tcGFhRmlsdGVySGlkZGVuLnZhbHVlID0gb3B0VmFsW29wdFZhbC5zZWxl Y3RlZEluZGV4XS52YWx1ZTsKICAgIGRvY3VtZW50LmZybU5leHQuc3VibWl0KCk7 Cn0KZnVuY3Rpb24gc2V0QW1nRmlsdGVyVmFsdWUob3B0VmFsKQp7CiAgICBkb2N1 bWVudC5mcm1OZXh0LmFtZ0ZpbHRlckhpZGRlbi52YWx1ZSA9IG9wdFZhbFtvcHRW YWwuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgICBkb2N1bWVudC5mcm1OZXh0LnN1 Ym1pdCgpOwp9CmZ1bmN0aW9uIHNldFBhcmVudGFsRmlsdGVyVmFsdWUob3B0VmFs KQp7CiAgICBkb2N1bWVudC5mcm1OZXh0LnBhcmVudGFsRmlsdGVySGlkZGVuLnZh bHVlID0gb3B0VmFsW29wdFZhbC5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGRv Y3VtZW50LmZybU5leHQuc3VibWl0KCk7Cn0KZnVuY3Rpb24gbG9hZFByb2R1Y3RQ YWdlKHR5cGUscHJvZHVjdGlkKQp7CiAgICB2YXIgdXJsID0gYWRkSnNlc3Npb25J ZElmUmVxdWlyZWQoJ29sc3BhZ2UuanNwP3R5cGU9JyArIHR5cGUgKyAnJmlkPScg KyBwcm9kdWN0aWQpOwogICAgaWYgKG9wZW5lciAmJiAhb3BlbmVyLmNsb3NlZCkK ICAgIHsKICAgICAgICBwYXJlbnQud2luZG93Lm9wZW5lci5sb2NhdGlvbi5ocmVm PXVybDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICB2YXIgbXlXaW4gPSB3 aW5kb3cub3Blbih1cmwpOwogICAgICAgIG9wZW5lciA9IG15V2luOwogICAgfQog ICAgd2luZG93LmNsb3NlKCk7Cn0KZnVuY3Rpb24gZm9jdXNQYXJlbnQoKQp7CiAg ICBwYXJlbnQud2luZG93Lm9wZW5lci5mb2N1cygpOwogICAgc2VsZi5jbG9zZSgp Owp9CmZ1bmN0aW9uIGZuUG9wRG93bmxvYWRNZWRpYShtZWRpYVR5cGUsIHBhZ2VD YXRJZCwgcHJvZHVjdElkKQp7CiAgICBwb3BVcCgnb2xzcGFnZS5qc3A/aWQ9Jytw YWdlQ2F0SWQrJyZ0eXBlPXBhZ2UmcHJvZHVjdElkPScrcHJvZHVjdElkKycmbWVk aWFUeXBlPScgKyBtZWRpYVR5cGUsJ0RpZ2l0YWxfTWVkaWFfRG93bmxvYWQnLCc0 JywnMCcpOwp9CmZ1bmN0aW9uIGZuTW92ZUl0ZW1Ub1dpc2hMaXN0KHByb2R1Y3Rp ZCwgc2t1aWQpCnsKICAgIGRvY3VtZW50LmZybUFkZEl0ZW1Ub1dpc2hMaXN0LnBy b2R1Y3RJZC52YWx1ZT1wcm9kdWN0aWQ7CiAgICBkb2N1bWVudC5mcm1BZGRJdGVt VG9XaXNoTGlzdC50ZW1wQ2F0YWxvZ1JlZklkLnZhbHVlPXNrdWlkOwogICAgZG9j dW1lbnQuZnJtQWRkSXRlbVRvV2lzaExpc3QuaWQudmFsdWU9cHJvZHVjdGlkOwog ICAgZG9jdW1lbnQuZnJtQWRkSXRlbVRvV2lzaExpc3QucmVkaXJlY3RVUkwudmFs dWUgPSBkb2N1bWVudC5mcm1BZGRJdGVtVG9XaXNoTGlzdC5yZWRpcmVjdFVSTC52 YWx1ZSArICcmcHJpdmF0ZUxpc3RQcm9kdWN0SWQ9JyArIHByb2R1Y3RpZCArICcm cHJpdmF0ZUxpc3RTa3VJZD0nICsgc2t1aWQ7CiAgICBkb2N1bWVudC5mcm1BZGRJ dGVtVG9XaXNoTGlzdC5zdWJtaXQoKTsKfQpmdW5jdGlvbiBmblByb2R1Y3RWaWV3 KHByZElkLCBkZWZza3VJZCwgZGVmdXJsLCBjb3VudCwgdG90YWwsIHBhZ2VDYXRJ ZCkKewogICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrcGFnZUNhdElkKycmdHlw ZT1wYWdlJnNrdUlkPScrZGVmc2t1SWQrJyZwcm9kdWN0SWQ9JytwcmRJZCsnJmRl ZnVybD0nK2RlZnVybCsnJmNvdW50PScrY291bnQrJyZ0b3RhbD0nK3RvdGFsLCdP dGhlcl9WaWV3cycsJzUnLCcwJyk7Cn0KZnVuY3Rpb24gZm5IYXJkbGluZVByb2R1 Y3RWaWV3KHByZElkLCBkZWZza3VJZCwgZGVmdXJsLCBwYWdlQ2F0SWQpCnsKICAg IGphdmFzY3JpcHQ6cG9wVXAoJ29sc3BhZ2UuanNwP2lkPScrcGFnZUNhdElkKycm dHlwZT1wYWdlJnNrdUlkPScrZGVmc2t1SWQrJyZwcm9kdWN0SWQ9JytwcmRJZCsn JmRlZnVybD0nK2RlZnVybCwnT3RoZXJfVmlld3MnLCc1JywnMCcpOwp9CmZ1bmN0 aW9uIGZuT3BlbkFjY2Vzc29yeVBvcHVwKHByZElkLCBza3VJZCwgcGFnZUNhdElk KQp7CiAgICBqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3BhZ2VD YXRJZCsnJnR5cGU9cGFnZSZwcm9kdWN0SWQ9JytwcmRJZCsnJnNrdUlkPScrc2t1 SWQsJ0FjY2Vzc29yaWVzJywnMycsJzAnKTsKfQpmdW5jdGlvbiBmbmNob29zZVN0 YXRlKHBzcFByZElkLCBwc3BTa3VJZCwgY0lkLCBwcElkLCBwU2t1SWQscGFnZUNh dElkKQp7CiAgICBqYXZhc2NyaXB0OnBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3Bh Z2VDYXRJZCsnJnR5cGU9cGFnZSZwc3BQcmRJZD0nK3BzcFByZElkKycmcHNwU2t1 SWQ9Jytwc3BTa3VJZCsnJmNJdGVtSWQ9JytjSWQrJyZwcElkPScrcHBJZCsnJnBT a3VJZD0nK3BTa3VJZCsnJnBhZ2VUeXBlPVBEUFBhZ2UnLCdQU1AnLCc0JywnMCcp Owp9CmZ1bmN0aW9uIHdpbm9wZW5nbGQoY29udGVudElkLCBjYXRlZ29yeUlkLCBw YWdlQ2F0SWQpCnsKICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3BhZ2VDYXRJ ZCsnJnR5cGU9cGFnZSZjb250ZW50SWQ9Jytjb250ZW50SWQrJyZjYXRlZ29yeUlk PScrY2F0ZWdvcnlJZCsnJywnR2xvc3NhcnknLCc0JywnMCcpOwp9CmZ1bmN0aW9u IHdpbm9wZW5mYXEoY29udGVudElkLCBjYXRlZ29yeUlkLCBwYWdlQ2F0SWQpCnsK ICAgIHBvcFVwKCdvbHNwYWdlLmpzcD9pZD0nK3BhZ2VDYXRJZCsnJmNhdGVnb3J5 SWQ9JytjYXRlZ29yeUlkKycmdHlwZT1wYWdlJmZhcUlEPScrY29udGVudElkLCdG QVEnLCc0JywnMCcpOwp9CmZ1bmN0aW9uIHN1Ym1pdGZvcm1mb3JyZW1vdmUoaWQg LCBwYWdlSWRlbnRpdHkpCnsKICAgIGRvY3VtZW50LmZybUNvbXBhcmVQcm9kdWN0 cy5yZW1vdmFibGUudmFsdWU9InRydWUiOwogICAgZG9jdW1lbnQuZnJtQ29tcGFy ZVByb2R1Y3RzLnByb2R1Y3RQb3NpdGlvbi52YWx1ZT1pZDsKICAgIGRvY3VtZW50 LmZybUNvbXBhcmVQcm9kdWN0cy5wYWdlSWRlbnRpdHkudmFsdWU9cGFnZUlkZW50 aXR5OwogICAgZG9jdW1lbnQuZnJtQ29tcGFyZVByb2R1Y3RzLnN1Ym1pdCgpOwp9 CmZ1bmN0aW9uIHByb2R1Y3RTaG93KHVybCkKewogIHBhcmVudC53aW5kb3cub3Bl bmVyLmxvY2F0aW9uLmhyZWY9YWRkSnNlc3Npb25JZElmUmVxdWlyZWQodXJsKTsK ICB3aW5kb3cuY2xvc2UoKTsKfQpmdW5jdGlvbiBjYWxsY2FydHBhZ2UodXJsKQp7 CiAgICBwYXJlbnQud2luZG93Lm9wZW5lci5sb2NhdGlvbi5ocmVmPWFkZEpzZXNz aW9uSWRJZlJlcXVpcmVkKHVybCk7CiAgICB3aW5kb3cuY2xvc2UoKTsKfQpmdW5j dGlvbiBmbkFkZFRvQ2FydEZvckNvbXBhcmUocHJvZHVjdGlkLCBza3VpZCAsIHBh Z2VJZGVudGl0eSkKewogICAgZm9yKHZhciBpPTA7aTw9ZG9jdW1lbnQuZm9ybXMu bGVuZ3RoO2krKykKICAgIHsKICAgICAgICB2YXIgZnJtTmFtZSA9IGRvY3VtZW50 LmZvcm1zW2ldLm5hbWU7CiAgICAgICAgaWYgKChkb2N1bWVudC5mb3Jtc1tpXS5u YW1lICYmIChmcm1OYW1lID09ICJmcm1NYWluTXVzaWMiKXx8CiAgICAgICAgKGZy bU5hbWUgPT0gImZybU1haW5CdW5kbGUiKSB8fAogICAgICAgIChmcm1OYW1lID09 ICJmcm1NYWluTW92aWUiKSB8fAogICAgICAgIChmcm1OYW1lID09ICJmcm1Db21w YXJlUHJvZHVjdHMiKSB8fAogICAgICAgIChmcm1OYW1lID09ICJmcm1NYWluSGFy ZEdvb2RzIikgfHwKICAgICAgICAoZnJtTmFtZSA9PSAiZnJtU29mdHdhcmVQcm9k dWN0RGV0YWlsIikpKQogICAgICAgIHsKICAgICAgICAgICAgZG9jdW1lbnQuZm9y bXNbaV0ucHJvZHVjdElkLnZhbHVlPXByb2R1Y3RpZDsKICAgICAgICAgICAgZG9j dW1lbnQuZm9ybXNbaV0udGVtcENhdGFsb2dSZWZJZC52YWx1ZT1za3VpZDsKICAg ICAgICAgICAgZG9jdW1lbnQuZm9ybXNbaV0uYWRkRnJvbUNhcnQudmFsdWU9J3Ry dWUnOwogICAgICAgICAgICBpZiAoZG9jdW1lbnQuZm9ybXNbaV0ubmFtZSA9PSAi ZnJtQ29tcGFyZVByb2R1Y3RzIikKICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgZG9jdW1lbnQuZm9ybXNbaV0ucGFnZUlkZW50aXR5LnZhbHVlPXBhZ2VJZGVu dGl0eTsKICAgICAgICAgICAgfQogICAgICAgICAgICBkb2N1bWVudC5mb3Jtc1tp XS5zdWJtaXQoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0K fQpmdW5jdGlvbiBmbkFkZFRvQ2FydEZvck1BUENhcnQocHJvZHVjdGlkLCBza3Vp ZCkKewoJZG9jdW1lbnQuZnJtTWFwQ2FydC5wcm9kdWN0SWQudmFsdWU9cHJvZHVj dGlkOwoJZG9jdW1lbnQuZnJtTWFwQ2FydC50ZW1wQ2F0YWxvZ1JlZklkLnZhbHVl PXNrdWlkOwoJZG9jdW1lbnQuZnJtTWFwQ2FydC5hZGRGcm9tQ2FydC52YWx1ZT0n dHJ1ZSc7Cglkb2N1bWVudC5mcm1NYXBDYXJ0LnN1Ym1pdCgpOwoJcmV0dXJuOwp9 CmZ1bmN0aW9uIGZuUHJvZHVjdERldGFpbHNWaWV3KHByZElkLCBkZWZza3VJZCwg ZGVmdXJsLCBwYWdlQ2F0SWQpCnsKICAgcG9wVXAoJ29sc3BhZ2UuanNwP2lkPScr cGFnZUNhdElkKycmdHlwZT1wYWdlJnNrdUlkPScrZGVmc2t1SWQrJyZwcm9kdWN0 SWQ9JytwcmRJZCsnJmRlZnVybD0nK2RlZnVybCwnUHJvZHVjdFZpZXcnLCc0Jywn MCcpOwp9CmZ1bmN0aW9uIGZybUNob29zZURpc3BsYXlMaXN0KGZvcm1OYW1lLHBh Z2VOdW1iZXIpCnsKCWZvcm1OYW1lLnBhZ2VOdW1iZXIudmFsdWU9cGFnZU51bWJl cjsKCWZvcm1OYW1lLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIHZlaGljbGVGaXRHdWlk ZVBvcHVwKGNhdElELCBwYXJlbnRVcmwpCnsKCiAgIGlmKHBhcmVudFVybC5pbmRl eE9mKCd0eXBlPXByb2R1Y3QnKSE9LTEpCiAgICB7CgogICAgZml0R3VpZGVVUkwg PSAnb2xzcGFnZS5qc3A/aWQ9Jyt0cmltKGNhdElEKSsnJmlzUERQPXRydWUmdHlw ZT1wYWdlJnBhcmVudFVSTD0nK2VzY2FwZShwYXJlbnRVcmwpOwogICAgfQogICAg ZWxzZQogICAgewogICAgZml0R3VpZGVVUkwgPSAnb2xzcGFnZS5qc3A/aWQ9Jyt0 cmltKGNhdElEKSsnJnR5cGU9cGFnZSZwYXJlbnRVUkw9Jytlc2NhcGUocGFyZW50 VXJsKTsKICAgIH0KCiAgICBwb3BVcChmaXRHdWlkZVVSTCwnRml0R3VpZGUnLCc0 JywnMCcpOwp9CmZ1bmN0aW9uIHllYXJDaGFuZ2UoZm9ybSkKewogICAgZm9ybS5o aWRkZW5ZZWFyLnZhbHVlID0gZm9ybS5ZZWFyW2Zvcm0uWWVhci5zZWxlY3RlZElu ZGV4XS52YWx1ZTsKICAgIGlmKGZvcm0uWWVhci5zZWxlY3RlZEluZGV4ICE9IDAp CiAgICB7CiAgICAgICAgZm9ybS5oaWRkZW5ZZWFyTmFtZS52YWx1ZSA9IGZvcm0u WWVhcltmb3JtLlllYXIuc2VsZWN0ZWRJbmRleF0udGV4dDsKICAgIH0KICAgIGVs c2UKICAgIHsKICAgICAgICBmb3JtLmhpZGRlblllYXJOYW1lLnZhbHVlID0gJyc7 CiAgICB9CiAgICBmb3JtLlNlbGVjdGVkVmFsdWUudmFsdWUgPSAieWVhciI7CiAg ICBmb3JtLmhpZGRlbk1ha2UudmFsdWUgPSAiIjsKICAgIGZvcm0uaGlkZGVuTWFr ZU5hbWUudmFsdWUgPSAiIjsKICAgIGZvcm0uaGlkZGVuTW9kZWwudmFsdWUgPSAi IjsKICAgIGZvcm0uaGlkZGVuTW9kZWxOYW1lLnZhbHVlID0gIiI7CiAgICBmb3Jt LmhpZGRlbkJvZHlUeXBlVHJpbS52YWx1ZSA9ICIiOwogICAgZm9ybS5oaWRkZW5C b2R5VHlwZVRyaW1OYW1lLnZhbHVlID0gIiI7CiAgICBmb3JtLmhpZGRlblN1Ym1p dENsaWNrZWQudmFsdWUgPSBmYWxzZTsKICAgIGZvcm0uQ2hhbmdlZC52YWx1ZSA9 IHRydWU7CiAgICBmb3JtLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIG1ha2VDaGFuZ2Uo Zm9ybSkKewogICAgZm9ybS5oaWRkZW5NYWtlLnZhbHVlID0gZm9ybS5NYWtlW2Zv cm0uTWFrZS5zZWxlY3RlZEluZGV4XS52YWx1ZTsKICAgIGlmKGZvcm0uTWFrZS5z ZWxlY3RlZEluZGV4ICE9IDApCiAgICB7CiAgICAgICAgZm9ybS5oaWRkZW5NYWtl TmFtZS52YWx1ZSA9IGZvcm0uTWFrZVtmb3JtLk1ha2Uuc2VsZWN0ZWRJbmRleF0u dGV4dDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBmb3JtLmhpZGRlbk1h a2VOYW1lLnZhbHVlID0gJyc7CiAgICB9CiAgICBmb3JtLlNlbGVjdGVkVmFsdWUu dmFsdWUgPSAibWFrZSI7CiAgICBmb3JtLmhpZGRlbk1vZGVsLnZhbHVlID0gIiI7 CiAgICBmb3JtLmhpZGRlbk1vZGVsTmFtZS52YWx1ZSA9ICIiOwogICAgZm9ybS5o aWRkZW5Cb2R5VHlwZVRyaW0udmFsdWUgPSAiIjsKICAgIGZvcm0uaGlkZGVuQm9k eVR5cGVUcmltTmFtZS52YWx1ZSA9ICIiOwogICAgZm9ybS5oaWRkZW5TdWJtaXRD bGlja2VkLnZhbHVlID0gZmFsc2U7CiAgICBmb3JtLkNoYW5nZWQudmFsdWUgPSB0 cnVlOwogICAgZm9ybS5zdWJtaXQoKTsKfQpmdW5jdGlvbiBtb2RlbENoYW5nZShm b3JtKQp7CiAgICBmb3JtLmhpZGRlbk1vZGVsLnZhbHVlID0gZm9ybS5Nb2RlbFtm b3JtLk1vZGVsLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogICAgaWYoZm9ybS5Nb2Rl bC5zZWxlY3RlZEluZGV4ICE9IDApCiAgICB7CiAgICAgICAgZm9ybS5oaWRkZW5N b2RlbE5hbWUudmFsdWUgPSBmb3JtLk1vZGVsW2Zvcm0uTW9kZWwuc2VsZWN0ZWRJ bmRleF0udGV4dDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBmb3JtLmhp ZGRlbk1vZGVsTmFtZS52YWx1ZSA9ICcnOwogICAgfQogICAgZm9ybS5TZWxlY3Rl ZFZhbHVlLnZhbHVlID0gIm1vZGVsIjsKICAgIGZvcm0uaGlkZGVuQm9keVR5cGVU cmltLnZhbHVlID0gIiI7CiAgICBmb3JtLmhpZGRlbkJvZHlUeXBlVHJpbU5hbWUu dmFsdWUgPSAiIjsKICAgIGZvcm0uaGlkZGVuU3VibWl0Q2xpY2tlZC52YWx1ZSA9 IGZhbHNlOwogICAgZm9ybS5DaGFuZ2VkLnZhbHVlID0gdHJ1ZTsKICAgIGZvcm0u c3VibWl0KCk7Cn0KZnVuY3Rpb24gYm9keVR5cGVUcmltQ2hhbmdlKGZvcm0pCnsK ICAgIGZvcm0uaGlkZGVuQm9keVR5cGVUcmltLnZhbHVlID0gZm9ybS5Cb2R5VHlw ZVRyaW1bZm9ybS5Cb2R5VHlwZVRyaW0uc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAg ICBpZihmb3JtLkJvZHlUeXBlVHJpbS5zZWxlY3RlZEluZGV4ICE9IDApCiAgICB7 CiAgICAgICAgZm9ybS5oaWRkZW5Cb2R5VHlwZVRyaW1OYW1lLnZhbHVlID0gZm9y bS5Cb2R5VHlwZVRyaW1bZm9ybS5Cb2R5VHlwZVRyaW0uc2VsZWN0ZWRJbmRleF0u dGV4dDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBmb3JtLmhpZGRlbkJv ZHlUeXBlVHJpbU5hbWUudmFsdWUgPSAnJzsKICAgIH0KICAgIGZvcm0uU2VsZWN0 ZWRWYWx1ZS52YWx1ZSA9ICJib2R5VHlwZVRyaW0iOwogICAgZm9ybS5oaWRkZW5T dWJtaXRDbGlja2VkLnZhbHVlID0gZmFsc2U7CiAgICBmb3JtLkNoYW5nZWQudmFs dWUgPSB0cnVlOwogICAgZm9ybS5zdWJtaXQoKTsKfQpmdW5jdGlvbiBidXR0b25D bGljayhmb3JtKQp7CiAgICBmb3JtLmhpZGRlblN1Ym1pdENsaWNrZWQudmFsdWU9 InRydWUiOwogICAgZm9ybS5TZWxlY3RlZFZhbHVlLnZhbHVlID0gIiI7CiAgICBm b3JtLnN1Ym1pdCgpOwp9CmZ1bmN0aW9uIGNvbnRpbnVlQnJvd3NpbmcoKQp7CiAg ICBpZiggKHdpbmRvdy5vcGVuZXIpICYmCiAgICAgICAgKCEod2luZG93Lm9wZW5l ci5jbG9zZWQpKSApCiAgICB7CiAgICAgICAgd2luZG93Lm9wZW5lci5mb2N1cygp OwogICAgICAgIHdpbmRvdy5jbG9zZSgpOwogICAgfQogICAgZWxzZQogICAgewog ICAgICAgIG5ld1dpbmRvdyA9IHdpbmRvdy5vcGVuKGFkZEpzZXNzaW9uSWRJZlJl cXVpcmVkKFZlaGljbGVGaXRHdWlkZS5wYXJlbnRVUkwudmFsdWUpLCdwYXJlbnRX aW5kb3cnLCd0b29sYmFyPTEsbG9jYXRpb249MSxkaXJlY3Rvcmllcz0xLHN0YXR1 cz0xLG1lbnViYXI9MSxzY3JvbGxiYXJzPTEscmVzaXphYmxlPTEnKTsKICAgICAg ICBuZXdXaW5kb3cuZm9jdXMoKTsKICAgICAgICB3aW5kb3cuY2xvc2UoKTsKICAg IH0KfQpmdW5jdGlvbiBzZXRWYWx1ZUFuZFN1Ym1pdCgpCnsKICAgIGRvY3VtZW50 LkJyb3dzZU1vcmVGb3JtLmJyb3dzZWRDYXRlZ29yeS52YWx1ZSA9IGRvY3VtZW50 LkJyb3dzZU1vcmVGb3JtLkJyb3dzZUNhdGVnb3JpZXNbZG9jdW1lbnQuQnJvd3Nl TW9yZUZvcm0uQnJvd3NlQ2F0ZWdvcmllcy5zZWxlY3RlZEluZGV4XS52YWx1ZTsK ICAgIGRvY3VtZW50LkJyb3dzZU1vcmVGb3JtLmNhdGVnb3J5SUQudmFsdWU9IGRv Y3VtZW50LkJyb3dzZU1vcmVGb3JtLkJyb3dzZUNhdGVnb3JpZXNbZG9jdW1lbnQu QnJvd3NlTW9yZUZvcm0uQnJvd3NlQ2F0ZWdvcmllcy5zZWxlY3RlZEluZGV4XS52 YWx1ZTsKICAgIGRvY3VtZW50LkJyb3dzZU1vcmVGb3JtLnN1Ym1pdCgpOwp9CmZ1 bmN0aW9uIGRvU3VibWl0U2hpcHBpbmcoZWxlbWVudCkKewogICAgdmFyIHNoaXBN ZXRoVmFsID0gZWxlbWVudFtlbGVtZW50LnNlbGVjdGVkSW5kZXhdLnZhbHVlOwog ICAgZG9jdW1lbnQuZnJtU2hpcHBpbmcucHJvZHVjdFNoaXBNZXRob2QudmFsdWU9 c2hpcE1ldGhWYWw7CiAgICBpZihzaGlwTWV0aFZhbCAhPSAiIikKICAgIHsKICAg ICAgZG9jdW1lbnQuZnJtU2hpcHBpbmcuYWN0aW9uID0gZG9jdW1lbnQuZnJtU2hp cHBpbmcudEFjdGlvbi52YWx1ZTsKICAgICAgZG9jdW1lbnQuZnJtU2hpcHBpbmcu b25DaGFuZ2VTdWJtaXQudmFsdWU9InRydWUiOwogICAgICBkb2N1bWVudC5mcm1T aGlwcGluZy5zdWJtaXQoKTsKICAgIH0KfQpmdW5jdGlvbiBwZHBQb3B1cENsb3Nl KHBhZ2VDYXRJZCkKewogICAgdmFyIHVybCA9IGFkZEpzZXNzaW9uSWRJZlJlcXVp cmVkKCdvbHNwYWdlLmpzcD90eXBlPXBhZ2UmaWQ9JyArIHBhZ2VDYXRJZCk7CiAg ICBvcGVuZXIubG9jYXRpb24uaHJlZj11cmw7CiAgICB3aW5kb3cuY2xvc2UgKCk7 Cn0K ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=bazaarvoice.css Content-Type: text/css; name=bazaarvoice.css Content-Location: http://reviews.bestbuy.com/static/3545a/bazaarvoice.css Content-Transfer-Encoding: Quoted-Printable .BVRR *,.BVRatingSummary *,.BVSecondaryRatingSummary *,.BVZeroRatingSumm= ary *,.BVquickTakeHeader,.BVquickTakeBody,.BVReviewTable *,.BVBadge *,.B= VBadgeDefinitionText,.BVReviewPagination,.BVReviewsBody *,.BVStandaloneR= eviewsPage *,.BVStandaloneReviewsPage td,.BVAllReviewsPage,.BVAllReviews= Page td,.BVCategoryPage,.BVCategoryPage td{font-family:Arial,Verdana,Hel= vetica,sans-serif;font-size:11px;line-height:14px;}.BVprofileHead *,.BVM= oderatedContentLegend *,.BVReviewerStatistics *,.BVReviewerReviewDisplay= *{font-family:Arial,Verdana,Helvetica,sans-serif;font-size:11px;line-he= ight:14px;}.BVSubmissionTable *,.BVUIContainer *,.BVmainReview *,#guidel= ines *,#BVSubmissionContainer,#BVSubmissionContainer p{font-family:Arial= ,Helvetica,sans-serif;font-size:11px;line-height:14px;}.BVRR a,.BVRR a:v= isited,.BVRatingSummary a,.BVReviewTable a,.BVBadge a,.BVReviewPaginatio= n a,#BVSVPLinkContainer a{color:#039;}.BVSubmissionTable a,.BVUIContaine= r a,.BVmainReview a,#guidelines a,.BVReviewsBody a,.BVStandaloneReviewsP= age a,.BVAllReviewsPage a,.BVCategoryPage a,.BVRatingSummary a:visited,.= BVReviewTable a:visited,.BVBadge a:visited,.BVReviewPagination a:visited= ,#BVSVPLinkContainer a:visited,.BVSubmissionTable a:visited,.BVUIContain= er a:visited,.BVmainReview a:visited,#guidelines a:visited,.BVReviewsBod= y a:visited,.BVStandaloneReviewsPage a:visited,.BVAllReviewsPage a:visit= ed,.BVCategoryPage a:visited{color:#339;text-decoration:underline;}.BVRR= a:hover,.BVRatingSummary a:hover,.BVReviewTable a:hover,.BVBadge a:hove= r,.BVReviewPagination a:hover,#BVSVPLinkContainer a:hover,.BVSubmissionT= able a:hover,.BVUIContainer a:hover,.BVmainReview a:hover,#guidelines a:= hover,.BVReviewsBody a:hover,.BVStandaloneReviewsPage a:hover,.BVStandal= oneReviewsPage a:hover,.BVAllReviewsPage a:hover,.BVCategoryPage a:hover= {color:#66c;text-decoration:underline;}.BVUIContainer strong{font-weight= :bold;}.BVRR img{border:none;}#BVCustomerRatings{margin-bottom:11px;}.BV= RatingSummary .BVsecondaryRatingsSeparator{display:none;}.BVRatingSummar= ySecondaryRatings{display:none;border-top:2px solid #fff;}.BVRatingSumma= ryPrimaryRating .BVRatingRowOverall{display:inline;}.BVRatingSummaryPrim= aryRating .BVcustomerRatingFirst{display:inline;}.BVcustomerRatingItem{f= ont-weight:bold;text-align:left;padding-right:7px;}.BVRatingSummarySecon= daryRatings .BVcustomerRatingItem{display:inline;}.BVRatingSummary .BVcu= stomerRatingItem{border:1px solid #fff;border-width:2px 0;}.BVSecondaryR= atings .BVcustomerRatingItem{border:2px solid #fff;border-width:3px 0;}.= BVRatingSummaryPrimaryRating .BVcustomerRatingFirst{display:inline;}.BVR= atingSummarySecondaryRatings .BVcustomerRatingFirst{display:inline;}.BVR= atingSummarySecondaryRatings .BVcustomerRatingItem{display:block;}.BVRat= ingSummarySecondaryRatings .BVcustomerRating{display:inline;}.BVRatingSu= mmarySecondaryRatings .BVcustomerRatingScore{display:inline;}.BVcustomer= Rating{background:white;line-height:normal;padding:2px;vertical-align:mi= ddle;width:50px;}.BVcustomerRatingScore{text-align:left;}.BVRatingSummar= yPrimaryRating .BVcustomerRatingScore,.BVPrimaryRatings .BVcustomerRatin= gScore{display:inline;padding-left:2px;}.BVRatingWrapperTable{float:left= ;}.BVReviewDisplayLeft .BVcustomerRatingScore{display:none;}.BVRatingsOn= lyReviewSummary .BVcustomerRatingScore{display:none;}.BVratingSummaryFin= al{font-weight:bold;}.BVratingSummaryTotal{display:none;}.BVRatingSummar= yRatingsHistogram{margin:3px 0 0 5px;}.BVratingsHistogramButton{float:le= ft;padding-left:5px;}.BVratingsHistogramButtonImage{cursor:pointer;curso= r:hand;}.BVratingsHistogramButtonImage img{border:none;}#BVratingsHistog= ramButtonIEControlsFrame{display:none;margin-left:7px;margin-top:7px;pos= ition:absolute;}.BVratingsHistogramButtonPopin{cursor:pointer;cursor:han= d;display:none;margin-left:7px;margin-top:7px;position:absolute;z-index:= 10000000;}.BVhistogram{background:#fff url(histogram_bck.gif) repeat-x b= ottom;border:1px solid #666;overflow:hidden;padding:5px 0 0 0;text-align= :left;width:255px;height:auto;}DIV.BVhistTitle{background-color:#0035ad;= color:#fff;font-size:14px;font-weight:bold;margin:-5px 0 10px 0;padding:= 5px;} .BVhistTitle span{font-size:10px;font-weight:normal;}.BVhistBarRow{overf= low:hidden;padding:3px 0 0 10px;width:100%;height:25px;}.BVhistBarRow sp= an{font-size:9px;padding:5px 0 0 0;width:35px;}.BVhistStarLabel{float:le= ft;}.BVhistAbsLabel{float:left;}.BVhistPercLabel{float:left;}.BVhistBar{= background:url(mt_bar.gif) repeat-x;border:1px solid #ababab;border-widt= h:0 1px;float:left;margin:0 5px;width:162px;height:19px;}.BVhistFullBar{= background:url(full_bar.gif) right;float:left;height:19px;}.BVratingSnap= shotPage{margin:0;}.BVWriteFirstLinkCell{padding:2px;}.BVWriteFirstImage= Cell{text-align:center;padding:2px;}.BVProductBookmarking{display:block;= margin-top:.25em;width:170px;}.BVRatingSummaryZeroReviews .BVProductBook= marking{margin-top:0;}.BVProductBookmarkingLabel{font-size:10px;padding:= 0;margin:0;}.BVSecondaryRatingSummaryProductBookmarkingLabel{padding:0;m= argin:0;}.BVSocialBookmarkingSharingLink a:link,.BVSocialBookmarkingShar= ingLink a:visited,.BVSocialBookmarkingSharingLink a:hover,.BVSocialBookm= arkingSharingLink a:active{text-decoration:none;}.BVSocialBookmarkLinkIm= age{border:0;vertical-align:text-bottom;}#BVProductBookmarkingLinksSepar= atorId{display:none;visibility:hidden;}.BVSecondaryRatingSummary{border:= 1px solid #ccc;}.BVSecondaryRatingSummary .BVRatingSummaryHeader{backgro= und-color:#ccc;font-weight:bold;padding:5px 8px;}.BVSecondaryRatingSumma= ryRatings{padding-left:5px;vertical-align:top;}#BVrecommendPercentage{fo= nt-size:12px;font-weight:bold;}.BVRatingSummaryBuyAgain{padding:5px 5px = 5px 20px;vertical-align:top;}.BVSecondaryRatingSummary .BVsecondaryRatin= gsSeparator{clear:both;line-height:1px;height:1px;}.BVZeroRatingSummary = .BVRatingSummaryHeader{font-weight:bold;}.BVZeroRatingSummary .BVRatingS= ummaryLinks table{width:auto;}.BVReviewTable br{line-height:5px;}.BVRevi= ewTableSortRowLabel{display:none;}.BVReviewSortRowLink{background-color:= #ccc;padding:2px;text-align:right;}.BVReviewSortRowLink a{float:left;pad= ding-top:2px;}.BVReviewSortRowLink #BVSubmissionURL{display:none;}.BVRev= iewSectionReview{border-top:1px solid #ccc;padding:10px 0;}.BVReviewDisp= lay{width:100%;}.BVBadgeBlock{padding:5px 0;}.BVBadge{padding-right:5px;= }.BVBadge td{font-size:9px;font-weight:bold;}.BVexpertIcon,.BVfeaturedIc= on,.BVstaffIcon,.BVtop1ContributorIcon,.BVtop10ContributorIcon,.BVtop25C= ontributorIcon,.BVtop50ContributorIcon,.BVtop100ContributorIcon,.BVtop25= 0ContributorIcon,.BVtop500ContributorIcon,.BVtop1000ContributorIcon{padd= ing:2px 0;vertical-align:middle;}.BVexpertTitle,.BVfeaturedTitle{display= :none;}.BVstaffIcon{display:none;}.BVexpertTitle,.BVfeaturedTitle,.BVsta= ffTitle,.BVtop1ContributorTitle,.BVtop10ContributorTitle,.BVtop25Contrib= utorTitle,.BVtop50ContributorTitle,.BVtop100ContributorTitle,.BVtop250Co= ntributorTitle,.BVtop500ContributorTitle,.BVtop1000ContributorTitle{padd= ing:0 5px;margin-right:10px;vertical-align:middle;}.BVfeaturedTitle{back= ground-color:#ccc;}.BVstaffTitle{background:url(staff-icon.gif) no-repea= t;color:#fff;padding:4px 10px 4px 37px;}.BVtop1ContributorTitle,.BVtop10= ContributorTitle,.BVtop25ContributorTitle,.BVtop50ContributorTitle,.BVto= p100ContributorTitle,.BVtop250ContributorTitle,.BVtop500ContributorTitle= ,.BVtop1000ContributorTitle{background-position:center bottom;background= -repeat:repeat-x;border-style:solid solid solid none;border-width:1px 1p= x 1px 0;padding-left:2px;padding-right:5px;}.BVtop1ContributorTitle{back= ground-color:#00F;background-image:url(button_background_blue_1x14.gif);= border-color:#77F;color:#FFF;}.BVtop10ContributorTitle{background-color:= #FFF;background-image:url(button_background_white_to_blue_1x14.gif);bord= er-color:#00F;}.BVtop25ContributorTitle{background-color:#FFF;background= -image:url(button_background_white_to_red_1x14.gif);border-color:#F00;}.= BVtop50ContributorTitle{background-color:#FFF;background-image:url(butto= n_background_white_to_orange_1x14.gif);border-color:#F90;}.BVtop1Contrib= utorTitle,.BVtop10ContributorTitle,.BVtop25ContributorTitle,.BVtop50Cont= ributorTitle,.BVtop100ContributorTitle,.BVtop250ContributorTitle,.BVtop5= 00ContributorTitle,.BVtop1000ContributorTitle{display:none;} .BVSamsungViaBrandAnswersTitle{display:none;}.BVReviewDisplay .BVcustome= rRatingItem{float:left;width:120px;}.BVReviewDisplay .BVSecondaryRatings= .BVcustomerRatingItem{border:none;}.BVReviewDisplay .BVcustomerRating{f= loat:left;width:auto;margin-top:0;}.BVReviewDisplay .BVSecondaryRatings = .BVcustomerRating{margin:3px 0 0 0;padding:0;}.BVReviewDisplay .BVSecond= aryRatings .BVcustomerRating img{display:block;}.BVReviewDisplay .BVRati= ngRowOverall .BVcustomerRatingFirst{margin-top:0;}.BVReviewDisplay .BVcu= stomerRatingScore{float:left;margin:0 0 0 4px;}.BVReviewDisplay .BVRatin= gRowOverall .BVcustomerRatingScore{margin-top:0;}.BVReviewDisplay .BVRat= ingWrapperTable{float:none;}.BVReviewDisplay .BVsecondaryRatingsSeparato= r{clear:both;line-height:1px;height:1px;}.BVReviewData{clear:both;paddin= g:0 10px 5px 0;}.BVReviewDisplayLeft .BVReviewData{border-top:1px solid = #ccc;margin-right:10px;padding:10px 10px 5px 0;}.BVreviewTitle{font-weig= ht:bold;}.BVReviewerNickname{font-weight:bold;}.BVReadAllMyReviews{paddi= ng-left:5px;white-space:nowrap;}.BVReadAllMyReviews img{display:none;}.B= VReviewLabel{font-weight:bold;}.BVContentReviewText{padding-top:7px;}.BV= WouldRecommendSection{margin-top:8px;}.BVSecondaryRatings{margin-bottom:= 8px;}.BVSliderDisplayHeaderLabel{border-top:5px solid #fff;font-weight:b= old;}.BVSliderDisplayLabelLeft{padding:2px;text-align:right;}.BVSliderDi= splayRating{padding-top:3px;}.BVSliderDisplayLabelRight{padding:2px;}.BV= ProsTitle{font-weight:bold;}.BVConsTitle{font-weight:bold;}.BVreviewPhot= oSection{border-left:1px solid #ccc;float:right;margin-left:10px;padding= -left:10px;}.BVreviewPhotoSectionLabel{font-weight:bold;}.BVreviewPhotoS= ectionHint{font-size:9px;}.BVreviewPhoto{display:inline;float:left;posit= ion:relative;}.BVreviewPhotoThumbnail{cursor:hand;cursor:pointer;margin:= 5px 5px 0 0;}.BVreviewPhotoThumbnail img{border:none;}.BVreviewPhotoPopu= p{background-color:#f1f1f1;border:1px solid #ccc;cursor:hand;cursor:poin= ter;display:none;font-weight:bold;padding:5px;position:absolute;left:-36= 5px;top:20px;z-index:10000000;}.BVreviewPhotoPopupHint{display:inline;wi= dth:230px;font-size:9px;font-weight:bold;margin:0;position:absolute;righ= t:5px;text-align:right;}.BVreviewPhotoPopupImage{padding-top:15px;text-a= lign:center;width:400px;}.BVreviewPhotoPopupImage img{border:1px solid #= ccc;}.BVreviewPhotoPopupCaption{font-weight:bold;margin-top:5px;width:40= 0px;}.BVreviewPhotoPopup a{text-decoration:none;}.BVReviewVideoSection{m= argin:20px 0 20px 5px;}.BVReviewVideoSectionLabel{font-weight:bold;}.BVR= eviewVideo{margin:5px 0;}.BVReviewVideoPlayerGoogle{background-color:#00= 0;}.BVReviewFeedbackDisplay{margin-top:20px;}.BVrespondedHelpful{font-we= ight:bold;}.BVReviewFeedbackLinks{margin-top:10px;}.BVWasReviewHelpful{p= adding-bottom:10px;}.BVWasReviewHelpful a{margin-right:2px;}.BVclientRes= ponse{background-color:#f1f1f1;border:1px solid #ccc;padding:5px;margin:= 5px 50px;}.BVclientResponseHead{padding-bottom:8px;}.BVclientResponseTit= le{display:block;font-weight:bold;padding-bottom:8px;text-decoration:und= erline;}.BVclientResponseBy{font-weight:bold;}.BVclientResponseName{font= -weight:bold;}.BVclientResponseDepartment{font-weight:bold;}.BVclientRes= ponseDate{font-weight:normal;}.BVReviewSectionHeader{background-color:#f= 1f1f1;border-top:1px solid #ccc;padding:5px;}.BVReviewSectionHeaderLabel= {color:#339;font-weight:bold;}.BVReviewSectionHeaderSubtitle{text-align:= right;}.BVRatingsOnlyReviewSummary{padding:10px;}.BVRatingsOnlyBuyAgain{= padding-bottom:3px;}.BVReviewPagination{border-top:1px solid #ccc;paddin= g:11px 0;}.BVReviewSource{text-align:right;}#BVdefaultURL{visibility:hid= den;}.BVCustomSecondaryWriteButton{padding:10px 0;}#BVCustomerRatings .B= VSyndicationSummaryIcon{display:none;}#BVCustomerRatings .BVReviewSyndic= ationSummarySection{margin:0;border:0;border-top:2px dashed #CCC;margin-= top:10px;padding-top:10px;}#BVCustomerRatings .BVSyndicationSummaryText{= padding:0;}#BVCustomerRatings .BVReviewSyndicationSummarySection *{font-= family:Arial,Verdana,Helvetica,sans-serif;font-size:11px;} .BVReviewSyndicationSummarySection{margin-bottom:15px;text-align:left;bo= rder:1px solid #ccc;}.BVReviewSyndicationSummarySection *{font-family:Ve= rdana,Arial,Helvetica,sans-serif;font-size:11px;}.BVSyndicationSummaryIc= on{padding:7px 10px;}.BVSyndicationSummaryText{padding-left:10px;}.BVSyn= dicationSummaryHeader{font-weight:bold;}.BVSyndicationSummaryLink{cursor= :pointer;}.BVSyndicationSummaryRating{font-weight:bold;}.BVReviewSyndica= tionSummarySection a{text-decoration:none;}.BVReviewSyndicationSummarySe= ction a:hover{text-decoration:underline;}.BVSyndicatedReviewsBody *{font= -family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;line-height:14= px;}.BVSyndicatedReviewsListingHeader{background:url(bluebg.gif) top lef= t repeat-x;width:700px;margin:0 auto;}.BVSyndicatedReviewsListingHeader = table{border-collapse:collapse;width:100%;}.BVSyndicatedReviewsListingHe= aderText{background:url(blueright.gif) top right no-repeat;font-size:1.5= em;font-weight:bold;line-height:91px;color:#fff;}.BVSyndicatedReviewsLis= tingHeaderIcon{background:url(logobluenotext.gif) top left no-repeat;wid= th:135px;height:91px;padding:0;}.BVSyndicatedReviewsListingHeaderIcon im= g{display:none;}.BVSyndicatedReviewsSummary{background:transparent url(b= lankgradient.gif) no-repeat scroll left top;margin:10px auto;padding-top= :10px;width:700px;}.BVSyndicatedReviewsListingProductName,.BVSyndicatedR= atingWrapper{padding-left:10px;}.BVSyndicatedReviewsListingProductName{f= ont-size:13px;font-weight:bold;display:block;padding-bottom:10px;}.BVSyn= dicatedStandaloneRatingWrapperSummary *{font-size:14px;font-weight:bold;= }.BVSyndicatedStandaloneRatingWrapperSummary .BVStandaloneRatingSetAvera= geRatingOf{font-weight:normal;}.BVSyndicatedStandaloneRatingWrapperBuyAg= ain{padding-top:3px;}.BVSyndicatedStandaloneRatingWrapperBuyAgainValue,.= BVStandaloneRatingWrapperBuyAgainTotal{font-weight:bold;}.BVSyndicatedRe= viewsBody #BVReviewWrapper{width:700px;margin:0 auto;}.BVSyndicatedRevie= wsBody .BVReviewSortRowLink{background-color:#F1F1F1;padding:3px;border:= 1px solid #ccc;}.BVSyndicatedReviewsBody .BVReviewSectionReviewFirst{bor= der:0;}.BVReviewSource{display:none;} .BVRatingSummary a,.BVRatingSummary a:visited,.BVSecondaryRatingSummary = a,.BVSecondaryRatingSummary a:visited,.BVZeroRatingSummary a,.BVZeroRati= ngSummary a:visited,.BVReviewTable a,.BVReviewTable a:visited,.BVBadge a= ,.BVBadge a:visited,.BVReviewPagination a,.BVReviewPagination a:visited{= color:#339;text-decoration:none;}.BVRatingSummary a:hover,.BVSecondaryRa= tingSummary a:hover,.BVZeroRatingSummary a:hover,.BVReviewTable a:hover,= .BVBadge a:hover,.BVReviewPagination a:hover{color:#339;text-decoration:= underline;}#BVCustomerRatings{width:160px;}.BVRatingSummary .BVRatingSum= maryHeader{font-weight:bold;font-size:15px;}#BVLabelOverall{padding-top:= 10px;font-size:11px;white-space:nowrap;padding-bottom:2px;}.BVRatingSumm= aryZeroReviews #BVLabelOverall{display:none;}.BVRatingSummary .BVRatingW= raperTable{width:92px;float:left;}.BVRatingSummaryPrimaryRating .BVcusto= merRatingFirst{padding-left:0;}.BVSecondaryRatings .BVcustomerRating img= ,.BVRatingSummarySecondaryRatings .BVcustomerRating img{border:1px solid= #adadad;}.BVRatingSummary .BVcustomerRatingItem{border:none;}#BVCustome= rRatings .BVRatingSummaryPrimaryRating .BVcustomerRatingItem{font-size:1= 0px;white-space:nowrap;padding:0 1px 0 0;display:block;}.BVRatingSummary= .BVRatingSummarySecondaryRatings .BVcustomerRatingItem{font-size:10px;w= hite-space:normal;padding:0 3px 2px 0;}.BVRatingSummary .BVRatingSummary= SecondaryRatings .BVRatingWraperTable tr td{padding-top:5px;white-space:= nowrap;}.BVRatingSummarySecondaryRatings .BVcustomerRating{vertical-alig= n:bottom;}.BVZeroRatingSummary .BVRatingSummaryHeader{font-size:15px;}.B= VWriteFirstLinkCell{display:block;font-weight:bold;}#BVCustomerRatings .= BVWriteFirstLink{padding-top:7px;font-weight:normal;}.BVWriteFirstImageC= ell{display:block;text-align:left;}#BVCustomerRatings #BVSubmissionURL{d= isplay:block;}.BVRatingSummary .BVRatingSummaryLinks{padding-top:10px;}.= BVRatingSummary .BVRatingSummaryLinks a{padding-top:2px;font-size:10px;}= .BVRatingSummary .BVcustomerRatingScore *{font-weight:normal;font-size:1= 0px;vertical-align:bottom;padding-left:0;}.BVRatingSummarySecondaryRatin= gs .BVcustomerRatingScore{font-weight:normal;font-size:10px;vertical-ali= gn:bottom;padding-left:0;}.BVRatingSummarySecondaryRatings .BVcustomerRa= ting{vertical-align:bottom;padding-bottom:1px;}.BVRatingSummary .BVRatin= gSummaryPrimaryRating .BVratingSummaryFinal{font-weight:bold;padding-lef= t:0;font-size:11px;}.BVRatingSummary .BVcustomerRatingScore .BVratingSum= maryFinal{vertical-align:bottom;font-weight:bold;}.BVSecondaryRatingSumm= ary{border:none;}.BVSecondaryRatingSummary .BVRatingSummaryHeader{backgr= ound:none;border-bottom:1px dotted #CCC;padding-left:1px;padding-bottom:= 7px;font-size:15px;}.BVSecondaryRatingSummaryRatings #BVReviewsCount{fon= t-weight:bold;}.BVSecondaryRatingSummaryRatings #lableReviewsCount{paddi= ng-right:5px;}.BVReviewSortRowLink #BVSubmissionURL a{vertical-align:mid= dle;}.BVReviewSectionReview{border-top:1px dotted #CCC;}.BVReviewDisplay= .BVPrimaryRatings{padding-bottom:7px;}.BVcustomerRating{padding-bottom:= 1px;} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=bazaarvoice.js Content-Type: text/javascript; name=bazaarvoice.js Content-Location: http://reviews.bestbuy.com/static/3545a/bazaarvoice.js Content-Transfer-Encoding: Quoted-Printable function bvToggleDivWithIEControlsFrame(targetId,ieControlsFrameId,ieCon= trolsFrameTitle){if(document.getElementById(targetId).style.display=3D=3D= "block"){bvCloseDivs(targetId,ieControlsFrameId);}else{bvExpandDivWithIE= ControlsFrame(targetId,ieControlsFrameId,ieControlsFrameTitle);}}functio= n bvExpandDivWithIEControlsFrame(targetId,ieControlsFrameId,ieControlsFr= ameTitle){bvOpenDivs(targetId);var isExplorer=3Ddocument.all&&((navigato= r.userAgent.indexOf("MSIE 6.")>-1)||(navigator.userAgent.indexOf("MSIE 5= .5")>-1));if(isExplorer){var ieControlsFrame=3Ddocument.getElementById(i= eControlsFrameId);if(!ieControlsFrame){ieControlsFrame=3Ddocument.create= Element("iframe");ieControlsFrame.id=3DieControlsFrameId;ieControlsFrame= .title=3DieControlsFrameTitle;ieControlsFrame.src=3D"";ieControlsFrame.s= crolling=3D"no";ieControlsFrame.frameBorder=3D"0";}if(ieControlsFrame){v= ar target=3Ddocument.getElementById(targetId);if(target){target.parentNo= de.insertBefore(ieControlsFrame,target);var targetLocation=3DbvGetLocati= on(targetId);ieControlsFrame.style.width=3DtargetLocation.width;ieContro= lsFrame.style.height=3DtargetLocation.height;}ieControlsFrame.style.filt= er=3D"progid:DXImageTransform.Microsoft.Alpha(style=3D0,opacity=3D0)";bv= OpenDivs(ieControlsFrameId);}}}function bvOpenDivs(){for(var i=3D0;i-1)||(navigator.userAgent.indexOf("MSIE 5= .5")>-1));if(isExplorer){var ieControlsFrame=3Ddocument.getElementById(i= eControlsFrameId);if(!ieControlsFrame){ieControlsFrame=3Ddocument.create= Element("iframe");ieControlsFrame.id=3DieControlsFrameId;ieControlsFrame= .title=3DieControlsFrameTitle;ieControlsFrame.src=3D"";ieControlsFrame.s= crolling=3D"no";ieControlsFrame.frameBorder=3D"0";}if(ieControlsFrame){v= ar target=3Ddocument.getElementById(targetId);if(target){target.parentNo= de.insertBefore(ieControlsFrame,target);var targetLocation=3DbvGetLocati= on(targetId);ieControlsFrame.style.width=3DtargetLocation.width;ieContro= lsFrame.style.height=3DtargetLocation.height;}ieControlsFrame.style.filt= er=3D"progid:DXImageTransform.Microsoft.Alpha(style=3D0,opacity=3D0)";bv= OpenDivs(ieControlsFrameId);}}}function bvOpenDivs(){for(var i=3D0;i0&&json= Data.reviewsUrl.length>0){var bvAvgRating=3DjsonData.averageRating.toFix= ed(1);var bvStarURL=3DbvStaticResourcesPath.replace("/static","")+"/"+bv= AvgRating.replace(/\./,"_")+"/5/rating.gif";document.getElementById("BVC= ustomShowcaseHeader").innerHTML=3D"Overall "+bvCustomJSONSource+" Rating= ";document.getElementById("BVCustomShowcaseStars").innerHTML=3D' '+bvAvgRating;document.getElementById("BVCustomShow= caseLink").href=3DjsonData.reviewsUrl+"&bbpid=3D"+bvProductID;document.g= etElementById("BVCustomShowcaseLink").innerHTML=3D"Read reviews from "+b= vCustomJSONSource+" customers";document.getElementById("BVCustomShowcaseLinkContainer"= ).innerHTML+=3D" ("+jsonData.totalReviews+")";BVreviewsSummaryContent.st= yle.display=3D"block";var BVratingsSummaryContent=3Ddocument.getElementB= yId("BVCustomRatingsSummaryContent");if(BVratingsSummaryContent){BVratin= gsSummaryContent.innerHTML=3DBVreviewsSummaryContent.innerHTML.replace(/= BVCustom/g,"BVCustomRatings");}}else{BVreviewsSummaryContent.innerHTML=3D= "";}}}function BVloadJSON(jsonURL){var bvShowcaseScript=3Ddocument.creat= eElement("script");bvShowcaseScript.type=3D"text/javascript";bvShowcaseS= cript.src=3DjsonURL;var bvOwnerWindowHead=3Ddocument.getElementsByTagNam= e("head")[0];if(bvOwnerWindowHead){bvOwnerWindowHead.appendChild(bvShowc= aseScript);}} ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=foresee-alive.js Content-Type: application/javascript; charset=ISO-8859-1; name=foresee-alive.js Content-Location: http://www.bestbuy.com/fsrscripts/foresee-alive.js Content-Transfer-Encoding: Base64 dmFyIEZvcmVTZWUgPSB7DQogICAgJ3ZlcnNpb24nOiAnMy4wLjAnLA0KICAgICdE YXRlOic6ICczLzEyLzIwMDknLA0KICAgICdlbmFibGVkJzogdHJ1ZSwNCiAgICAn ZmlsZXMnOiAnL2ZzcnNjcmlwdHMvJywNCiAgICAvLydmaWxlcyc6ICdodHRwOi8v c2NyaXB0cy5iZXN0YnV5LmNvbS9mb3Jlc2VlLycsDQogICAgJ2lkJzogJ2djZHdV NTBOWlJFaG9SeHdKSTFJRXc9PScsDQogICAgJ3NpdGVzJzogW3sNCiAgICAgICAg cGF0aDogJ2Jlc3RidXkuY29tJywNCiAgICAgICAgY29va2llOiAnc2Vzc2lvbics DQogICAgICAgIGRvbWFpbjogJ2Jlc3RidXkuY29tJw0KICAgIH1dDQp9Oy8qKioq KioqKioqKioqIERPIE5PVCBBTFRFUiBBTllUSElORyBCRUxPVyBUSElTIExJTkUg ISAqKioqKioqKioqKioqKi8NCmZ1bmN0aW9uIGZzciRzZXRBbGl2ZSgpe3ZhciBB PW5ldyBEYXRlKCkuZ2V0VGltZSgpO2RvY3VtZW50LmNvb2tpZT0iZm9yZXNlZS5h bGl2ZT0iK0ErIjtwYXRoPS87ZG9tYWluPSIrRm9yZVNlZS5zaXRlLmRvbWFpbisi OyIKfShmdW5jdGlvbigpe3ZhciBDPUZvcmVTZWUuc2l0ZXM7Zm9yKHZhciBCPTAs QT1DLmxlbmd0aDtCPEE7QisrKXtpZihkb2N1bWVudC5sb2NhdGlvbi5ocmVmLm1h dGNoKENbQl0ucGF0aCkpe0ZvcmVTZWUuc2l0ZWlkPUI7CkZvcmVTZWUuc2l0ZT1G b3JlU2VlLnNpdGVzW0ZvcmVTZWUuc2l0ZWlkXTtpZihGb3JlU2VlLnNpdGUuZmls ZXMpe0ZvcmVTZWUuZmlsZXM9Rm9yZVNlZS5zaXRlLmZpbGVzCn1icmVha319aWYo IXdpbmRvd1siZnNyJHRpbWVyIl0pe2ZzciRzZXRBbGl2ZSgpO3dpbmRvd1siZnNy JHRpbWVyIl09c2V0SW50ZXJ2YWwoZnNyJHNldEFsaXZlLDEwMDApCn19KSgpOw== ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=jquery-1.3.2.min.js Content-Type: application/javascript; name=jquery-1.3.2.min.js Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/jQuery/jquery-1.3.2.min.js Content-Transfer-Encoding: Base64 aWYodHlwZW9mKGpRdWVyeUxvYWRlZCk9PSJ1bmRlZmluZWQiKXsKCS8qCgkgKiBq UXVlcnkgSmF2YVNjcmlwdCBMaWJyYXJ5IHYxLjMuMgoJICogaHR0cDovL2pxdWVy eS5jb20vCgkgKgoJICogQ29weXJpZ2h0IChjKSAyMDA5IEpvaG4gUmVzaWcKCSAq IER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgoJ ICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9MaWNlbnNlCgkgKgoJICogRGF0ZTog MjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKCSAq IFJldmlzaW9uOiA2MjQ2CgkgKi8KCShmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5 PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0 dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxccykrPilbXj5d KiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZuPW8ucHJvdG90 eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVU eXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1 cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7 aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtHWzFdXSxIKX1l bHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10pO2lmKEkmJkku aWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNv bnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVy biBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4g byhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUuY29udGV4dCl7 dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1FLmNvbnRleHR9 cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXko RSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7 cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1n P0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNbRV19LHB1c2hT dGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZPYmplY3Q9dGhp cztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0 b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtp ZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1y ZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5ndGg9MDtBcnJh eS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0aGlzfSxlYWNo OmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1 bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRo aXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09 InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tHfHwiYXR0ciJd KHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRoaXMuZWFjaChm dW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMs RixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYp e2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7 Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4dDpmdW5jdGlv bihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXtyZXR1cm4gdGhp cy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50 fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChG fHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlv bigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5cGUhPTE/dGhp cy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1cm4gRX0sd3Jh cEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5v d25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5p bnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlz O3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0dXJuIEd9KS5h cHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihFKXty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndy YXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1 bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigp e3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUp e2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQoRSl9fSl9LHBy ZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMs dHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2Vy dEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigp e3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihF KXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9KX0sYWZ0ZXI6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2Us ZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMu bmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZP YmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpb XS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD09PTEpe3Zh ciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmlu ZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3Rh Y2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5k KEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7dmFyIEU9dGhp cy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8u aXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIg Sj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBl bmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1 cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCki L2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0dXJuIHRoaXMu Y2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQo IioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1 bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVy bn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBLIGluIEkpe2Zv cih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0td W0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3Jl dHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlz LGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0 ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5ub2RlVHlwZT09 PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7dmFyIEc9by5l eHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMu bWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1l bnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xv c2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0pfSxub3Q6ZnVu Y3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50ZXN0KEUpKXty ZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSks Im5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5s ZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhp cy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXkodGhpcyxFKTww OnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFj ayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5n Ij9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4g ISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1 bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rp b24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYoby5ub2RlTmFt ZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNw ZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIp KXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlw ZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9yKHZhciBGPUg/ STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtGXTtpZihHLnNl bGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1y ZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJl dHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlz LmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXtyZXR1cm59aWYo by5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhpcy50eXBlKSl7 dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFy cmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNl bGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVh Y2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXkodGhpcy52YWx1 ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtpZighTi5sZW5n dGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0p fSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBd LmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2cs IiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxhY2VXaXRoOmZ1 bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgpfSxlcTpmdW5j dGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlv bigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2Uu YXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNs aWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oRSl7 cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rpb24oRyxGKXty ZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVy biB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihK LE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8 dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5jbGVhbihKLCh0 aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5maXJzdENoaWxk O2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxs KEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1 ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBL KE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYmby5ub2RlTmFt ZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxO LmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9k eSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihF LEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRh VHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4dHx8Ri50ZXh0 Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5vZGUpe0YucGFy ZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3 IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1 bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lm KHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNbMV18fHt9O0g9 Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9uKEopKXtKPXt9 fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVu dHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07 aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCIm JiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVuZ3RoIT1udWxs P1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJldHVybiBKfTt2 YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9o ZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90 b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7 bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5jdGlvbjpmdW5j dGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVuY3Rpb25dIn0s aXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3Qg QXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9 PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93 bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFs RXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3ZhciBGPWRvY3Vt ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRv Y3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp O0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZh bCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxz ZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGlsZCk7Ri5yZW1v dmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9k ZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgp fSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihG KXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0VdLEYpPT09ZmFs c2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHkoR1tIKytdLEYp PT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lm KEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2 YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9 fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5j dGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVy IiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7 YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1 bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhF LmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFtZT8iICI6IiIp K0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9PTEpe0Uu Y2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyks ZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4o IiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXko RSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xzKy8pKT4tMX19 LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIgRiBpbiBHKXtF W0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFy IEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUp e2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoi YWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxL PUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJvdHRvbSJdO2Z1 bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhl aWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigp e2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMs dHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9hdChvLmN1ckNT UyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFyc2VGbG9hdChv LmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYo SC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJu IE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixK KX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5bGU7aWYoRj09 Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRyKEUsIm9wYWNp dHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9 d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0 eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNl KC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09cS5nZXRDb21w dXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5VmFsdWUoRil9 aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50 U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXty ZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5j dXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChMKSYmL15cZC8u dGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUubGVmdDtJLnJ1 bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7 TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9 S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1l bnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKXtLPUsu b3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVu dH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2 YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltL LmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVF bGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lmKHR5cGVvZiBT PT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlwZW9mIFM9PT0i c3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rp b24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1 dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitU KyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0cmluZygwLDEw KS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQiKSYmWzEsIjxz ZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5k ZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8u bWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRh YmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZbMiwiPHRhYmxl Pjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRleE9mKCI8dGQi KXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+Iiwi PC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIs Ijx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48 L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsxLCJkaXY8ZGl2 PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsxXStTK1FbMl07 d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkp e3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikm JiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09 Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBNPU4ubGVuZ3Ro LTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHkiKSYmIU5bTV0u Y2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChO W01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRl c3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgv XlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXkoTC5jaGlsZE5v ZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8ubWVyZ2UoRyxT KX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShH W0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2Fz ZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2Rl P0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pdKX1lbHNle2lm KEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtKKzEsMF0uY29u Y2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlw dCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxh dHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2Rl VHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiksTD1LIT09ZztH PUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0vaHJlZnxzcmN8 c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtK LnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihM KXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnRO b2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQifUpbR109 S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1dGVOb2RlKEcp KXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0i dGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7 cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgv KGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9pKT8wOkoubm9k ZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9cmV0dXJuIEpb R119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8u YXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShH LCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5n ZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1cm4gRT09PW51 bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNpdHkiKXtpZihM KXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBo YVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhh KG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIu aW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZpbHRlci5tYXRj aCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1HLnJlcGxhY2Uo Ly0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2Uo KX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXty ZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5 OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBGPUcubGVuZ3Ro O2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNGdW5jdGlvbihH KXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdb Rl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0w LEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1 cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9SC5sZW5ndGg7 aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkhPW51bGwpe2lm KEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10p IT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2 YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKysp e3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVlO0YucHVzaChL W0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5jdGlvbihGLEos RSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZigh RSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0 aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7Rysr KXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0aF09SX19cmV0 dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmlnYXRvci51c2Vy QWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2go Ly4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0s c2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1z aWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96aWxsYTovbW96 aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KEMpfTtv LmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxw YXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9 LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmci KX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJwcmV2aW91c1Np YmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwibmV4 dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwi cHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBv LnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1 bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxkKX0sY29udGVu dHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZyYW1lIik/RS5j b250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VB cnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0 aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJp bmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2so by51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHBy ZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFm dGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihF LEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIg Sz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlzLmNsb25lKHRy dWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJKTtKPUouY29u Y2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHty ZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMu bm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6 ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJlbW92ZUNsYXNz OmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUpfSx0b2dnbGVD bGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFv LmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1v dmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVy KEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2go ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92ZURhdGEodGhp cyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVD aGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4o KS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hp bGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVu Y3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19KTtmdW5jdGlv biBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0 cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5k KHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBI PUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVbSF0pe28uY2Fj aGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1cm4gRT9vLmNh Y2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpG O3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVb SF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5y ZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0Y2goRyl7aWYo Ri5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgpfX1kZWxldGUg by5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwi ZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXko SCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1 c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcpe3ZhciBFPW8u cXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIpe0Y9RVswXX1p ZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlv bihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7 aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hb MV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtGPW8uZGF0YSh0 aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEoSFswXSk6Rn1l bHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBd LEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3Zl RGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5y ZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxGKXtpZih0eXBl b2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXtyZXR1cm4gby5x dWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIg Rz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1sw XS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlz LmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0pOwoJLyoKCSAq IFNpenpsZSBDU1MgU2VsZWN0b3IgRW5naW5lIC0gdjAuOS4zCgkgKiAgQ29weXJp Z2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KCSAqICBSZWxlYXNlZCB1bmRl ciB0aGUgTUlULCBCU0QsIGFuZCBHUEwgTGljZW5zZXMuCgkgKiAgTW9yZSBpbmZv cm1hdGlvbjogaHR0cDovL3NpenpsZWpzLmNvbS8KCSAqLwoJKGZ1bmN0aW9uKCl7 dmFyIFI9LygoPzpcKCg/OlwoW14oKV0rXCl8W14oKV0rKStcKXxcWyg/OlxbW15b XF1dKlxdfFsnIl1bXiciXSpbJyJdfFteW1xdJyJdKykrXF18XFwufFteID4rfiwo XFtcXF0rKSt8Wz4rfl0pKFxzKixccyopPy9nLEw9MCxIPU9iamVjdC5wcm90b3R5 cGUudG9TdHJpbmc7dmFyIEY9ZnVuY3Rpb24oWSxVLGFiLGFjKXthYj1hYnx8W107 VT1VfHxkb2N1bWVudDtpZihVLm5vZGVUeXBlIT09MSYmVS5ub2RlVHlwZSE9PTkp e3JldHVybltdfWlmKCFZfHx0eXBlb2YgWSE9PSJzdHJpbmciKXtyZXR1cm4gYWJ9 dmFyIFo9W10sVyxhZixhaSxULGFkLFYsWD10cnVlO1IubGFzdEluZGV4PTA7d2hp bGUoKFc9Ui5leGVjKFkpKSE9PW51bGwpe1oucHVzaChXWzFdKTtpZihXWzJdKXtW PVJlZ0V4cC5yaWdodENvbnRleHQ7YnJlYWt9fWlmKFoubGVuZ3RoPjEmJk0uZXhl YyhZKSl7aWYoWi5sZW5ndGg9PT0yJiZJLnJlbGF0aXZlW1pbMF1dKXthZj1KKFpb MF0rWlsxXSxVKX1lbHNle2FmPUkucmVsYXRpdmVbWlswXV0/W1VdOkYoWi5zaGlm dCgpLFUpO3doaWxlKFoubGVuZ3RoKXtZPVouc2hpZnQoKTtpZihJLnJlbGF0aXZl W1ldKXtZKz1aLnNoaWZ0KCl9YWY9SihZLGFmKX19fWVsc2V7dmFyIGFlPWFjP3tl eHByOloucG9wKCksc2V0OkUoYWMpfTpGLmZpbmQoWi5wb3AoKSxaLmxlbmd0aD09 PTEmJlUucGFyZW50Tm9kZT9VLnBhcmVudE5vZGU6VSxRKFUpKTthZj1GLmZpbHRl cihhZS5leHByLGFlLnNldCk7aWYoWi5sZW5ndGg+MCl7YWk9RShhZil9ZWxzZXtY PWZhbHNlfXdoaWxlKFoubGVuZ3RoKXt2YXIgYWg9Wi5wb3AoKSxhZz1haDtpZigh SS5yZWxhdGl2ZVthaF0pe2FoPSIifWVsc2V7YWc9Wi5wb3AoKX1pZihhZz09bnVs bCl7YWc9VX1JLnJlbGF0aXZlW2FoXShhaSxhZyxRKFUpKX19aWYoIWFpKXthaT1h Zn1pZighYWkpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJl c3Npb246ICIrKGFofHxZKX1pZihILmNhbGwoYWkpPT09IltvYmplY3QgQXJyYXld Iil7aWYoIVgpe2FiLnB1c2guYXBwbHkoYWIsYWkpfWVsc2V7aWYoVS5ub2RlVHlw ZT09PTEpe2Zvcih2YXIgYWE9MDthaVthYV0hPW51bGw7YWErKyl7aWYoYWlbYWFd JiYoYWlbYWFdPT09dHJ1ZXx8YWlbYWFdLm5vZGVUeXBlPT09MSYmSyhVLGFpW2Fh XSkpKXthYi5wdXNoKGFmW2FhXSl9fX1lbHNle2Zvcih2YXIgYWE9MDthaVthYV0h PW51bGw7YWErKyl7aWYoYWlbYWFdJiZhaVthYV0ubm9kZVR5cGU9PT0xKXthYi5w dXNoKGFmW2FhXSl9fX19fWVsc2V7RShhaSxhYil9aWYoVil7RihWLFUsYWIsYWMp O2lmKEcpe2hhc0R1cGxpY2F0ZT1mYWxzZTthYi5zb3J0KEcpO2lmKGhhc0R1cGxp Y2F0ZSl7Zm9yKHZhciBhYT0xO2FhPGFiLmxlbmd0aDthYSsrKXtpZihhYlthYV09 PT1hYlthYS0xXSl7YWIuc3BsaWNlKGFhLS0sMSl9fX19fXJldHVybiBhYn07Ri5t YXRjaGVzPWZ1bmN0aW9uKFQsVSl7cmV0dXJuIEYoVCxudWxsLG51bGwsVSl9O0Yu ZmluZD1mdW5jdGlvbihhYSxULGFiKXt2YXIgWixYO2lmKCFhYSl7cmV0dXJuW119 Zm9yKHZhciBXPTAsVj1JLm9yZGVyLmxlbmd0aDtXPFY7VysrKXt2YXIgWT1JLm9y ZGVyW1ddLFg7aWYoKFg9SS5tYXRjaFtZXS5leGVjKGFhKSkpe3ZhciBVPVJlZ0V4 cC5sZWZ0Q29udGV4dDtpZihVLnN1YnN0cihVLmxlbmd0aC0xKSE9PSJcXCIpe1hb MV09KFhbMV18fCIiKS5yZXBsYWNlKC9cXC9nLCIiKTtaPUkuZmluZFtZXShYLFQs YWIpO2lmKFohPW51bGwpe2FhPWFhLnJlcGxhY2UoSS5tYXRjaFtZXSwiIik7YnJl YWt9fX19aWYoIVope1o9VC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpfXJldHVy bntzZXQ6WixleHByOmFhfX07Ri5maWx0ZXI9ZnVuY3Rpb24oYWQsYWMsYWcsVyl7 dmFyIFY9YWQsYWk9W10sYWE9YWMsWSxULFo9YWMmJmFjWzBdJiZRKGFjWzBdKTt3 aGlsZShhZCYmYWMubGVuZ3RoKXtmb3IodmFyIGFiIGluIEkuZmlsdGVyKXtpZigo WT1JLm1hdGNoW2FiXS5leGVjKGFkKSkhPW51bGwpe3ZhciBVPUkuZmlsdGVyW2Fi XSxhaCxhZjtUPWZhbHNlO2lmKGFhPT1haSl7YWk9W119aWYoSS5wcmVGaWx0ZXJb YWJdKXtZPUkucHJlRmlsdGVyW2FiXShZLGFhLGFnLGFpLFcsWik7aWYoIVkpe1Q9 YWg9dHJ1ZX1lbHNle2lmKFk9PT10cnVlKXtjb250aW51ZX19fWlmKFkpe2Zvcih2 YXIgWD0wOyhhZj1hYVtYXSkhPW51bGw7WCsrKXtpZihhZil7YWg9VShhZixZLFgs YWEpO3ZhciBhZT1XXiEhYWg7aWYoYWcmJmFoIT1udWxsKXtpZihhZSl7VD10cnVl fWVsc2V7YWFbWF09ZmFsc2V9fWVsc2V7aWYoYWUpe2FpLnB1c2goYWYpO1Q9dHJ1 ZX19fX19aWYoYWghPT1nKXtpZighYWcpe2FhPWFpfWFkPWFkLnJlcGxhY2UoSS5t YXRjaFthYl0sIiIpO2lmKCFUKXtyZXR1cm5bXX1icmVha319fWlmKGFkPT1WKXtp ZihUPT1udWxsKXt0aHJvdyJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHBy ZXNzaW9uOiAiK2FkfWVsc2V7YnJlYWt9fVY9YWR9cmV0dXJuIGFhfTt2YXIgST1G LnNlbGVjdG9ycz17b3JkZXI6WyJJRCIsIk5BTUUiLCJUQUciXSxtYXRjaDp7SUQ6 LyMoKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKykvLENMQVNTOi9cLigoPzpb XHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sTkFNRTovXFtuYW1lPVsnIl0qKCg/ Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspWyciXSpcXS8sQVRUUjovXFtccyoo KD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylccyooPzooXFM/PSlccyooWyci XSopKC4qPylcM3wpXHMqXF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpf LV18XFwuKSspLyxDSElMRDovOihvbmx5fG50aHxsYXN0fGZpcnN0KS1jaGlsZCg/ OlwoKGV2ZW58b2RkfFtcZG4rLV0qKVwpKT8vLFBPUzovOihudGh8ZXF8Z3R8bHR8 Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcKChcZCopXCkpPyg/PVteLV18JCkvLFBT RVVETzovOigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKSg/OlwoKFsnIl0q KSgoPzpcKFteXCldK1wpfFteXDJcKFwpXSopKylcMlwpKT8vfSxhdHRyTWFwOnsi Y2xhc3MiOiJjbGFzc05hbWUiLCJmb3IiOiJodG1sRm9yIn0sYXR0ckhhbmRsZTp7 aHJlZjpmdW5jdGlvbihUKXtyZXR1cm4gVC5nZXRBdHRyaWJ1dGUoImhyZWYiKX19 LHJlbGF0aXZlOnsiKyI6ZnVuY3Rpb24oYWEsVCxaKXt2YXIgWD10eXBlb2YgVD09 PSJzdHJpbmciLGFiPVgmJiEvXFcvLnRlc3QoVCksWT1YJiYhYWI7aWYoYWImJiFa KXtUPVQudG9VcHBlckNhc2UoKX1mb3IodmFyIFc9MCxWPWFhLmxlbmd0aCxVO1c8 VjtXKyspe2lmKChVPWFhW1ddKSl7d2hpbGUoKFU9VS5wcmV2aW91c1NpYmxpbmcp JiZVLm5vZGVUeXBlIT09MSl7fWFhW1ddPVl8fFUmJlUubm9kZU5hbWU9PT1UP1V8 fGZhbHNlOlU9PT1UfX1pZihZKXtGLmZpbHRlcihULGFhLHRydWUpfX0sIj4iOmZ1 bmN0aW9uKFosVSxhYSl7dmFyIFg9dHlwZW9mIFU9PT0ic3RyaW5nIjtpZihYJiYh L1xXLy50ZXN0KFUpKXtVPWFhP1U6VS50b1VwcGVyQ2FzZSgpO2Zvcih2YXIgVj0w LFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXt2YXIgVz1ZLnBh cmVudE5vZGU7WltWXT1XLm5vZGVOYW1lPT09VT9XOmZhbHNlfX19ZWxzZXtmb3Io dmFyIFY9MCxUPVoubGVuZ3RoO1Y8VDtWKyspe3ZhciBZPVpbVl07aWYoWSl7WltW XT1YP1kucGFyZW50Tm9kZTpZLnBhcmVudE5vZGU9PT1VfX1pZihYKXtGLmZpbHRl cihVLFosdHJ1ZSl9fX0sIiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7 aWYoIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtU PVB9VCgicGFyZW50Tm9kZSIsVSxWLFcsWCxZKX0sIn4iOmZ1bmN0aW9uKFcsVSxZ KXt2YXIgVj1MKyssVD1TO2lmKHR5cGVvZiBVPT09InN0cmluZyImJiFVLm1hdGNo KC9cVy8pKXt2YXIgWD1VPVk/VTpVLnRvVXBwZXJDYXNlKCk7VD1QfVQoInByZXZp b3VzU2libGluZyIsVSxWLFcsWCxZKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKFUsVixX KXtpZih0eXBlb2YgVi5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhVyl7 dmFyIFQ9Vi5nZXRFbGVtZW50QnlJZChVWzFdKTtyZXR1cm4gVD9bVF06W119fSxO QU1FOmZ1bmN0aW9uKFYsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50c0J5TmFt ZSE9PSJ1bmRlZmluZWQiKXt2YXIgVT1bXSxYPVkuZ2V0RWxlbWVudHNCeU5hbWUo VlsxXSk7Zm9yKHZhciBXPTAsVD1YLmxlbmd0aDtXPFQ7VysrKXtpZihYW1ddLmdl dEF0dHJpYnV0ZSgibmFtZSIpPT09VlsxXSl7VS5wdXNoKFhbV10pfX1yZXR1cm4g VS5sZW5ndGg9PT0wP251bGw6VX19LFRBRzpmdW5jdGlvbihULFUpe3JldHVybiBV LmdldEVsZW1lbnRzQnlUYWdOYW1lKFRbMV0pfX0scHJlRmlsdGVyOntDTEFTUzpm dW5jdGlvbihXLFUsVixULFosYWEpe1c9IiAiK1dbMV0ucmVwbGFjZSgvXFwvZywi IikrIiAiO2lmKGFhKXtyZXR1cm4gV31mb3IodmFyIFg9MCxZOyhZPVVbWF0pIT1u dWxsO1grKyl7aWYoWSl7aWYoWl4oWS5jbGFzc05hbWUmJigiICIrWS5jbGFzc05h bWUrIiAiKS5pbmRleE9mKFcpPj0wKSl7aWYoIVYpe1QucHVzaChZKX19ZWxzZXtp ZihWKXtVW1hdPWZhbHNlfX19fXJldHVybiBmYWxzZX0sSUQ6ZnVuY3Rpb24oVCl7 cmV0dXJuIFRbMV0ucmVwbGFjZSgvXFwvZywiIil9LFRBRzpmdW5jdGlvbihVLFQp e2Zvcih2YXIgVj0wO1RbVl09PT1mYWxzZTtWKyspe31yZXR1cm4gVFtWXSYmUShU W1ZdKT9VWzFdOlVbMV0udG9VcHBlckNhc2UoKX0sQ0hJTEQ6ZnVuY3Rpb24oVCl7 aWYoVFsxXT09Im50aCIpe3ZhciBVPS8oLT8pKFxkKiluKCg/OlwrfC0pP1xkKikv LmV4ZWMoVFsyXT09ImV2ZW4iJiYiMm4ifHxUWzJdPT0ib2RkIiYmIjJuKzEifHwh L1xELy50ZXN0KFRbMl0pJiYiMG4rIitUWzJdfHxUWzJdKTtUWzJdPShVWzFdKyhV WzJdfHwxKSktMDtUWzNdPVVbM10tMH1UWzBdPUwrKztyZXR1cm4gVH0sQVRUUjpm dW5jdGlvbihYLFUsVixULFksWil7dmFyIFc9WFsxXS5yZXBsYWNlKC9cXC9nLCIi KTtpZighWiYmSS5hdHRyTWFwW1ddKXtYWzFdPUkuYXR0ck1hcFtXXX1pZihYWzJd PT09In49Iil7WFs0XT0iICIrWFs0XSsiICJ9cmV0dXJuIFh9LFBTRVVETzpmdW5j dGlvbihYLFUsVixULFkpe2lmKFhbMV09PT0ibm90Iil7aWYoWFszXS5tYXRjaChS KS5sZW5ndGg+MXx8L15cdy8udGVzdChYWzNdKSl7WFszXT1GKFhbM10sbnVsbCxu dWxsLFUpfWVsc2V7dmFyIFc9Ri5maWx0ZXIoWFszXSxVLFYsdHJ1ZV5ZKTtpZigh Vil7VC5wdXNoLmFwcGx5KFQsVyl9cmV0dXJuIGZhbHNlfX1lbHNle2lmKEkubWF0 Y2guUE9TLnRlc3QoWFswXSl8fEkubWF0Y2guQ0hJTEQudGVzdChYWzBdKSl7cmV0 dXJuIHRydWV9fXJldHVybiBYfSxQT1M6ZnVuY3Rpb24oVCl7VC51bnNoaWZ0KHRy dWUpO3JldHVybiBUfX0sZmlsdGVyczp7ZW5hYmxlZDpmdW5jdGlvbihUKXtyZXR1 cm4gVC5kaXNhYmxlZD09PWZhbHNlJiZULnR5cGUhPT0iaGlkZGVuIn0sZGlzYWJs ZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuZGlzYWJsZWQ9PT10cnVlfSxjaGVja2Vk OmZ1bmN0aW9uKFQpe3JldHVybiBULmNoZWNrZWQ9PT10cnVlfSxzZWxlY3RlZDpm dW5jdGlvbihUKXtULnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtyZXR1cm4gVC5z ZWxlY3RlZD09PXRydWV9LHBhcmVudDpmdW5jdGlvbihUKXtyZXR1cm4gISFULmZp cnN0Q2hpbGR9LGVtcHR5OmZ1bmN0aW9uKFQpe3JldHVybiAhVC5maXJzdENoaWxk fSxoYXM6ZnVuY3Rpb24oVixVLFQpe3JldHVybiAhIUYoVFszXSxWKS5sZW5ndGh9 LGhlYWRlcjpmdW5jdGlvbihUKXtyZXR1cm4vaFxkL2kudGVzdChULm5vZGVOYW1l KX0sdGV4dDpmdW5jdGlvbihUKXtyZXR1cm4idGV4dCI9PT1ULnR5cGV9LHJhZGlv OmZ1bmN0aW9uKFQpe3JldHVybiJyYWRpbyI9PT1ULnR5cGV9LGNoZWNrYm94OmZ1 bmN0aW9uKFQpe3JldHVybiJjaGVja2JveCI9PT1ULnR5cGV9LGZpbGU6ZnVuY3Rp b24oVCl7cmV0dXJuImZpbGUiPT09VC50eXBlfSxwYXNzd29yZDpmdW5jdGlvbihU KXtyZXR1cm4icGFzc3dvcmQiPT09VC50eXBlfSxzdWJtaXQ6ZnVuY3Rpb24oVCl7 cmV0dXJuInN1Ym1pdCI9PT1ULnR5cGV9LGltYWdlOmZ1bmN0aW9uKFQpe3JldHVy biJpbWFnZSI9PT1ULnR5cGV9LHJlc2V0OmZ1bmN0aW9uKFQpe3JldHVybiJyZXNl dCI9PT1ULnR5cGV9LGJ1dHRvbjpmdW5jdGlvbihUKXtyZXR1cm4iYnV0dG9uIj09 PVQudHlwZXx8VC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09IkJVVFRPTiJ9LGlu cHV0OmZ1bmN0aW9uKFQpe3JldHVybi9pbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0 dG9uL2kudGVzdChULm5vZGVOYW1lKX19LHNldEZpbHRlcnM6e2ZpcnN0OmZ1bmN0 aW9uKFUsVCl7cmV0dXJuIFQ9PT0wfSxsYXN0OmZ1bmN0aW9uKFYsVSxULFcpe3Jl dHVybiBVPT09Vy5sZW5ndGgtMX0sZXZlbjpmdW5jdGlvbihVLFQpe3JldHVybiBU JTI9PT0wfSxvZGQ6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVCUyPT09MX0sbHQ6ZnVu Y3Rpb24oVixVLFQpe3JldHVybiBVPFRbM10tMH0sZ3Q6ZnVuY3Rpb24oVixVLFQp e3JldHVybiBVPlRbM10tMH0sbnRoOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFsz XS0wPT1VfSxlcTpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFRbM10tMD09VX19LGZp bHRlcjp7UFNFVURPOmZ1bmN0aW9uKFosVixXLGFhKXt2YXIgVT1WWzFdLFg9SS5m aWx0ZXJzW1VdO2lmKFgpe3JldHVybiBYKFosVyxWLGFhKX1lbHNle2lmKFU9PT0i Y29udGFpbnMiKXtyZXR1cm4oWi50ZXh0Q29udGVudHx8Wi5pbm5lclRleHR8fCIi KS5pbmRleE9mKFZbM10pPj0wfWVsc2V7aWYoVT09PSJub3QiKXt2YXIgWT1WWzNd O2Zvcih2YXIgVz0wLFQ9WS5sZW5ndGg7VzxUO1crKyl7aWYoWVtXXT09PVope3Jl dHVybiBmYWxzZX19cmV0dXJuIHRydWV9fX19LENISUxEOmZ1bmN0aW9uKFQsVyl7 dmFyIFo9V1sxXSxVPVQ7c3dpdGNoKFope2Nhc2Uib25seSI6Y2FzZSJmaXJzdCI6 d2hpbGUoVT1VLnByZXZpb3VzU2libGluZyl7aWYoVS5ub2RlVHlwZT09PTEpe3Jl dHVybiBmYWxzZX19aWYoWj09ImZpcnN0Iil7cmV0dXJuIHRydWV9VT1UO2Nhc2Ui bGFzdCI6d2hpbGUoVT1VLm5leHRTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7 cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZTtjYXNlIm50aCI6dmFyIFY9V1syXSxh Yz1XWzNdO2lmKFY9PTEmJmFjPT0wKXtyZXR1cm4gdHJ1ZX12YXIgWT1XWzBdLGFi PVQucGFyZW50Tm9kZTtpZihhYiYmKGFiLnNpemNhY2hlIT09WXx8IVQubm9kZUlu ZGV4KSl7dmFyIFg9MDtmb3IoVT1hYi5maXJzdENoaWxkO1U7VT1VLm5leHRTaWJs aW5nKXtpZihVLm5vZGVUeXBlPT09MSl7VS5ub2RlSW5kZXg9KytYfX1hYi5zaXpj YWNoZT1ZfXZhciBhYT1ULm5vZGVJbmRleC1hYztpZihWPT0wKXtyZXR1cm4gYWE9 PTB9ZWxzZXtyZXR1cm4oYWElVj09MCYmYWEvVj49MCl9fX0sSUQ6ZnVuY3Rpb24o VSxUKXtyZXR1cm4gVS5ub2RlVHlwZT09PTEmJlUuZ2V0QXR0cmlidXRlKCJpZCIp PT09VH0sVEFHOmZ1bmN0aW9uKFUsVCl7cmV0dXJuKFQ9PT0iKiImJlUubm9kZVR5 cGU9PT0xKXx8VS5ub2RlTmFtZT09PVR9LENMQVNTOmZ1bmN0aW9uKFUsVCl7cmV0 dXJuKCIgIisoVS5jbGFzc05hbWV8fFUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpKSsi ICIpLmluZGV4T2YoVCk+LTF9LEFUVFI6ZnVuY3Rpb24oWSxXKXt2YXIgVj1XWzFd LFQ9SS5hdHRySGFuZGxlW1ZdP0kuYXR0ckhhbmRsZVtWXShZKTpZW1ZdIT1udWxs P1lbVl06WS5nZXRBdHRyaWJ1dGUoViksWj1UKyIiLFg9V1syXSxVPVdbNF07cmV0 dXJuIFQ9PW51bGw/WD09PSIhPSI6WD09PSI9Ij9aPT09VTpYPT09Iio9Ij9aLmlu ZGV4T2YoVSk+PTA6WD09PSJ+PSI/KCIgIitaKyIgIikuaW5kZXhPZihVKT49MDoh VT9aJiZUIT09ZmFsc2U6WD09PSIhPSI/WiE9VTpYPT09Il49Ij9aLmluZGV4T2Yo VSk9PT0wOlg9PT0iJD0iP1ouc3Vic3RyKFoubGVuZ3RoLVUubGVuZ3RoKT09PVU6 WD09PSJ8PSI/Wj09PVV8fFouc3Vic3RyKDAsVS5sZW5ndGgrMSk9PT1VKyItIjpm YWxzZX0sUE9TOmZ1bmN0aW9uKFgsVSxWLFkpe3ZhciBUPVVbMl0sVz1JLnNldEZp bHRlcnNbVF07aWYoVyl7cmV0dXJuIFcoWCxWLFUsWSl9fX19O3ZhciBNPUkubWF0 Y2guUE9TO2Zvcih2YXIgTyBpbiBJLm1hdGNoKXtJLm1hdGNoW09dPVJlZ0V4cChJ Lm1hdGNoW09dLnNvdXJjZSsvKD8hW15cW10qXF0pKD8hW15cKF0qXCkpLy5zb3Vy Y2UpfXZhciBFPWZ1bmN0aW9uKFUsVCl7VT1BcnJheS5wcm90b3R5cGUuc2xpY2Uu Y2FsbChVKTtpZihUKXtULnB1c2guYXBwbHkoVCxVKTtyZXR1cm4gVH1yZXR1cm4g VX07dHJ5e0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudC5jaGlsZE5vZGVzKX1jYXRjaChOKXtFPWZ1bmN0aW9uKFgsVyl7 dmFyIFU9V3x8W107aWYoSC5jYWxsKFgpPT09IltvYmplY3QgQXJyYXldIil7QXJy YXkucHJvdG90eXBlLnB1c2guYXBwbHkoVSxYKX1lbHNle2lmKHR5cGVvZiBYLmxl bmd0aD09PSJudW1iZXIiKXtmb3IodmFyIFY9MCxUPVgubGVuZ3RoO1Y8VDtWKysp e1UucHVzaChYW1ZdKX19ZWxzZXtmb3IodmFyIFY9MDtYW1ZdO1YrKyl7VS5wdXNo KFhbVl0pfX19cmV0dXJuIFV9fXZhciBHO2lmKGRvY3VtZW50LmRvY3VtZW50RWxl bWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbil7Rz1mdW5jdGlvbihVLFQpe3Zh ciBWPVUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmND8tMTpVPT09VD8wOjE7 aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKCJz b3VyY2VJbmRleCIgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXtHPWZ1bmN0 aW9uKFUsVCl7dmFyIFY9VS5zb3VyY2VJbmRleC1ULnNvdXJjZUluZGV4O2lmKFY9 PT0wKXtoYXNEdXBsaWNhdGU9dHJ1ZX1yZXR1cm4gVn19ZWxzZXtpZihkb2N1bWVu dC5jcmVhdGVSYW5nZSl7Rz1mdW5jdGlvbihXLFUpe3ZhciBWPVcub3duZXJEb2N1 bWVudC5jcmVhdGVSYW5nZSgpLFQ9VS5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdl KCk7Vi5zZWxlY3ROb2RlKFcpO1YuY29sbGFwc2UodHJ1ZSk7VC5zZWxlY3ROb2Rl KFUpO1QuY29sbGFwc2UodHJ1ZSk7dmFyIFg9Vi5jb21wYXJlQm91bmRhcnlQb2lu dHMoUmFuZ2UuU1RBUlRfVE9fRU5ELFQpO2lmKFg9PT0wKXtoYXNEdXBsaWNhdGU9 dHJ1ZX1yZXR1cm4gWH19fX0oZnVuY3Rpb24oKXt2YXIgVT1kb2N1bWVudC5jcmVh dGVFbGVtZW50KCJmb3JtIiksVj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUo KTtVLmlubmVySFRNTD0iPGlucHV0IG5hbWU9JyIrVisiJy8+Ijt2YXIgVD1kb2N1 bWVudC5kb2N1bWVudEVsZW1lbnQ7VC5pbnNlcnRCZWZvcmUoVSxULmZpcnN0Q2hp bGQpO2lmKCEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoVikpe0kuZmluZC5JRD1m dW5jdGlvbihYLFksWil7aWYodHlwZW9mIFkuZ2V0RWxlbWVudEJ5SWQhPT0idW5k ZWZpbmVkIiYmIVope3ZhciBXPVkuZ2V0RWxlbWVudEJ5SWQoWFsxXSk7cmV0dXJu IFc/Vy5pZD09PVhbMV18fHR5cGVvZiBXLmdldEF0dHJpYnV0ZU5vZGUhPT0idW5k ZWZpbmVkIiYmVy5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpLm5vZGVWYWx1ZT09PVhb MV0/W1ddOmc6W119fTtJLmZpbHRlci5JRD1mdW5jdGlvbihZLFcpe3ZhciBYPXR5 cGVvZiBZLmdldEF0dHJpYnV0ZU5vZGUhPT0idW5kZWZpbmVkIiYmWS5nZXRBdHRy aWJ1dGVOb2RlKCJpZCIpO3JldHVybiBZLm5vZGVUeXBlPT09MSYmWCYmWC5ub2Rl VmFsdWU9PT1XfX1ULnJlbW92ZUNoaWxkKFUpfSkoKTsoZnVuY3Rpb24oKXt2YXIg VD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmFwcGVuZENoaWxkKGRv Y3VtZW50LmNyZWF0ZUNvbW1lbnQoIiIpKTtpZihULmdldEVsZW1lbnRzQnlUYWdO YW1lKCIqIikubGVuZ3RoPjApe0kuZmluZC5UQUc9ZnVuY3Rpb24oVSxZKXt2YXIg WD1ZLmdldEVsZW1lbnRzQnlUYWdOYW1lKFVbMV0pO2lmKFVbMV09PT0iKiIpe3Zh ciBXPVtdO2Zvcih2YXIgVj0wO1hbVl07VisrKXtpZihYW1ZdLm5vZGVUeXBlPT09 MSl7Vy5wdXNoKFhbVl0pfX1YPVd9cmV0dXJuIFh9fVQuaW5uZXJIVE1MPSI8YSBo cmVmPScjJz48L2E+IjtpZihULmZpcnN0Q2hpbGQmJnR5cGVvZiBULmZpcnN0Q2hp bGQuZ2V0QXR0cmlidXRlIT09InVuZGVmaW5lZCImJlQuZmlyc3RDaGlsZC5nZXRB dHRyaWJ1dGUoImhyZWYiKSE9PSIjIil7SS5hdHRySGFuZGxlLmhyZWY9ZnVuY3Rp b24oVSl7cmV0dXJuIFUuZ2V0QXR0cmlidXRlKCJocmVmIiwyKX19fSkoKTtpZihk b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKXsoZnVuY3Rpb24oKXt2YXIgVD1GLFU9 ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7VS5pbm5lckhUTUw9IjxwIGNs YXNzPSdURVNUJz48L3A+IjtpZihVLnF1ZXJ5U2VsZWN0b3JBbGwmJlUucXVlcnlT ZWxlY3RvckFsbCgiLlRFU1QiKS5sZW5ndGg9PT0wKXtyZXR1cm59Rj1mdW5jdGlv bihZLFgsVixXKXtYPVh8fGRvY3VtZW50O2lmKCFXJiZYLm5vZGVUeXBlPT09OSYm IVEoWCkpe3RyeXtyZXR1cm4gRShYLnF1ZXJ5U2VsZWN0b3JBbGwoWSksVil9Y2F0 Y2goWil7fX1yZXR1cm4gVChZLFgsVixXKX07Ri5maW5kPVQuZmluZDtGLmZpbHRl cj1ULmZpbHRlcjtGLnNlbGVjdG9ycz1ULnNlbGVjdG9ycztGLm1hdGNoZXM9VC5t YXRjaGVzfSkoKX1pZihkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSl7 KGZ1bmN0aW9uKCl7dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7 VC5pbm5lckhUTUw9IjxkaXYgY2xhc3M9J3Rlc3QgZSc+PC9kaXY+PGRpdiBjbGFz cz0ndGVzdCc+PC9kaXY+IjtpZihULmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUi KS5sZW5ndGg9PT0wKXtyZXR1cm59VC5sYXN0Q2hpbGQuY2xhc3NOYW1lPSJlIjtp ZihULmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImUiKS5sZW5ndGg9PT0xKXtyZXR1 cm59SS5vcmRlci5zcGxpY2UoMSwwLCJDTEFTUyIpO0kuZmluZC5DTEFTUz1mdW5j dGlvbihVLFYsVyl7aWYodHlwZW9mIFYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9 PSJ1bmRlZmluZWQiJiYhVyl7cmV0dXJuIFYuZ2V0RWxlbWVudHNCeUNsYXNzTmFt ZShVWzFdKX19fSkoKX1mdW5jdGlvbiBQKFUsWixZLGFkLGFhLGFjKXt2YXIgYWI9 VT09InByZXZpb3VzU2libGluZyImJiFhYztmb3IodmFyIFc9MCxWPWFkLmxlbmd0 aDtXPFY7VysrKXt2YXIgVD1hZFtXXTtpZihUKXtpZihhYiYmVC5ub2RlVHlwZT09 PTEpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfVQ9VFtVXTt2YXIgWD1mYWxzZTt3 aGlsZShUKXtpZihULnNpemNhY2hlPT09WSl7WD1hZFtULnNpenNldF07YnJlYWt9 aWYoVC5ub2RlVHlwZT09PTEmJiFhYyl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9 aWYoVC5ub2RlTmFtZT09PVope1g9VDticmVha31UPVRbVV19YWRbV109WH19fWZ1 bmN0aW9uIFMoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJs aW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBU PWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1Z O1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6 Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09 MSl7aWYoIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZih0eXBlb2YgWiE9 PSJzdHJpbmciKXtpZihUPT09Wil7WD10cnVlO2JyZWFrfX1lbHNle2lmKEYuZmls dGVyKFosW1RdKS5sZW5ndGg+MCl7WD1UO2JyZWFrfX19VD1UW1VdfWFkW1ddPVh9 fX12YXIgSz1kb2N1bWVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj9mdW5jdGlv bihVLFQpe3JldHVybiBVLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFQpJjE2fTpm dW5jdGlvbihVLFQpe3JldHVybiBVIT09VCYmKFUuY29udGFpbnM/VS5jb250YWlu cyhUKTp0cnVlKX07dmFyIFE9ZnVuY3Rpb24oVCl7cmV0dXJuIFQubm9kZVR5cGU9 PT05JiZULmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFULm93 bmVyRG9jdW1lbnQmJlEoVC5vd25lckRvY3VtZW50KX07dmFyIEo9ZnVuY3Rpb24o VCxhYSl7dmFyIFc9W10sWD0iIixZLFY9YWEubm9kZVR5cGU/W2FhXTphYTt3aGls ZSgoWT1JLm1hdGNoLlBTRVVETy5leGVjKFQpKSl7WCs9WVswXTtUPVQucmVwbGFj ZShJLm1hdGNoLlBTRVVETywiIil9VD1JLnJlbGF0aXZlW1RdP1QrIioiOlQ7Zm9y KHZhciBaPTAsVT1WLmxlbmd0aDtaPFU7WisrKXtGKFQsVltaXSxXKX1yZXR1cm4g Ri5maWx0ZXIoWCxXKX07by5maW5kPUY7by5maWx0ZXI9Ri5maWx0ZXI7by5leHBy PUYuc2VsZWN0b3JzO28uZXhwclsiOiJdPW8uZXhwci5maWx0ZXJzO0Yuc2VsZWN0 b3JzLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKFQpe3JldHVybiBULm9mZnNldFdp ZHRoPT09MHx8VC5vZmZzZXRIZWlnaHQ9PT0wfTtGLnNlbGVjdG9ycy5maWx0ZXJz LnZpc2libGU9ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg+MHx8VC5v ZmZzZXRIZWlnaHQ+MH07Ri5zZWxlY3RvcnMuZmlsdGVycy5hbmltYXRlZD1mdW5j dGlvbihUKXtyZXR1cm4gby5ncmVwKG8udGltZXJzLGZ1bmN0aW9uKFUpe3JldHVy biBUPT09VS5lbGVtfSkubGVuZ3RofTtvLm11bHRpRmlsdGVyPWZ1bmN0aW9uKFYs VCxVKXtpZihVKXtWPSI6bm90KCIrVisiKSJ9cmV0dXJuIEYubWF0Y2hlcyhWLFQp fTtvLmRpcj1mdW5jdGlvbihWLFUpe3ZhciBUPVtdLFc9VltVXTt3aGlsZShXJiZX IT1kb2N1bWVudCl7aWYoVy5ub2RlVHlwZT09MSl7VC5wdXNoKFcpfVc9V1tVXX1y ZXR1cm4gVH07by5udGg9ZnVuY3Rpb24oWCxULFYsVyl7VD1UfHwxO3ZhciBVPTA7 Zm9yKDtYO1g9WFtWXSl7aWYoWC5ub2RlVHlwZT09MSYmKytVPT1UKXticmVha319 cmV0dXJuIFh9O28uc2libGluZz1mdW5jdGlvbihWLFUpe3ZhciBUPVtdO2Zvcig7 VjtWPVYubmV4dFNpYmxpbmcpe2lmKFYubm9kZVR5cGU9PTEmJlYhPVUpe1QucHVz aChWKX19cmV0dXJuIFR9O3JldHVybjtsLlNpenpsZT1GfSkoKTtvLmV2ZW50PXth ZGQ6ZnVuY3Rpb24oSSxGLEgsSyl7aWYoSS5ub2RlVHlwZT09M3x8SS5ub2RlVHlw ZT09OCl7cmV0dXJufWlmKEkuc2V0SW50ZXJ2YWwmJkkhPWwpe0k9bH1pZighSC5n dWlkKXtILmd1aWQ9dGhpcy5ndWlkKyt9aWYoSyE9PWcpe3ZhciBHPUg7SD10aGlz LnByb3h5KEcpO0guZGF0YT1LfXZhciBFPW8uZGF0YShJLCJldmVudHMiKXx8by5k YXRhKEksImV2ZW50cyIse30pLEo9by5kYXRhKEksImhhbmRsZSIpfHxvLmRhdGEo SSwiaGFuZGxlIixmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgbyE9PSJ1bmRlZmlu ZWQiJiYhby5ldmVudC50cmlnZ2VyZWQ/by5ldmVudC5oYW5kbGUuYXBwbHkoYXJn dW1lbnRzLmNhbGxlZS5lbGVtLGFyZ3VtZW50cyk6Z30pO0ouZWxlbT1JO28uZWFj aChGLnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE4pe3ZhciBPPU4uc3BsaXQoIi4i KTtOPU8uc2hpZnQoKTtILnR5cGU9Ty5zbGljZSgpLnNvcnQoKS5qb2luKCIuIik7 dmFyIEw9RVtOXTtpZihvLmV2ZW50LnNwZWNpYWxBbGxbTl0pe28uZXZlbnQuc3Bl Y2lhbEFsbFtOXS5zZXR1cC5jYWxsKEksSyxPKX1pZighTCl7TD1FW05dPXt9O2lm KCFvLmV2ZW50LnNwZWNpYWxbTl18fG8uZXZlbnQuc3BlY2lhbFtOXS5zZXR1cC5j YWxsKEksSyxPKT09PWZhbHNlKXtpZihJLmFkZEV2ZW50TGlzdGVuZXIpe0kuYWRk RXZlbnRMaXN0ZW5lcihOLEosZmFsc2UpfWVsc2V7aWYoSS5hdHRhY2hFdmVudCl7 SS5hdHRhY2hFdmVudCgib24iK04sSil9fX19TFtILmd1aWRdPUg7by5ldmVudC5n bG9iYWxbTl09dHJ1ZX0pO0k9bnVsbH0sZ3VpZDoxLGdsb2JhbDp7fSxyZW1vdmU6 ZnVuY3Rpb24oSyxILEope2lmKEsubm9kZVR5cGU9PTN8fEsubm9kZVR5cGU9PTgp e3JldHVybn12YXIgRz1vLmRhdGEoSywiZXZlbnRzIiksRixFO2lmKEcpe2lmKEg9 PT1nfHwodHlwZW9mIEg9PT0ic3RyaW5nIiYmSC5jaGFyQXQoMCk9PSIuIikpe2Zv cih2YXIgSSBpbiBHKXt0aGlzLnJlbW92ZShLLEkrKEh8fCIiKSl9fWVsc2V7aWYo SC50eXBlKXtKPUguaGFuZGxlcjtIPUgudHlwZX1vLmVhY2goSC5zcGxpdCgvXHMr LyksZnVuY3Rpb24oTSxPKXt2YXIgUT1PLnNwbGl0KCIuIik7Tz1RLnNoaWZ0KCk7 dmFyIE49UmVnRXhwKCIoXnxcXC4pIitRLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4q XFwuIikrIihcXC58JCkiKTtpZihHW09dKXtpZihKKXtkZWxldGUgR1tPXVtKLmd1 aWRdfWVsc2V7Zm9yKHZhciBQIGluIEdbT10pe2lmKE4udGVzdChHW09dW1BdLnR5 cGUpKXtkZWxldGUgR1tPXVtQXX19fWlmKG8uZXZlbnQuc3BlY2lhbEFsbFtPXSl7 by5ldmVudC5zcGVjaWFsQWxsW09dLnRlYXJkb3duLmNhbGwoSyxRKX1mb3IoRiBp biBHW09dKXticmVha31pZighRil7aWYoIW8uZXZlbnQuc3BlY2lhbFtPXXx8by5l dmVudC5zcGVjaWFsW09dLnRlYXJkb3duLmNhbGwoSyxRKT09PWZhbHNlKXtpZihL LnJlbW92ZUV2ZW50TGlzdGVuZXIpe0sucmVtb3ZlRXZlbnRMaXN0ZW5lcihPLG8u ZGF0YShLLCJoYW5kbGUiKSxmYWxzZSl9ZWxzZXtpZihLLmRldGFjaEV2ZW50KXtL LmRldGFjaEV2ZW50KCJvbiIrTyxvLmRhdGEoSywiaGFuZGxlIikpfX19Rj1udWxs O2RlbGV0ZSBHW09dfX19KX1mb3IoRiBpbiBHKXticmVha31pZighRil7dmFyIEw9 by5kYXRhKEssImhhbmRsZSIpO2lmKEwpe0wuZWxlbT1udWxsfW8ucmVtb3ZlRGF0 YShLLCJldmVudHMiKTtvLnJlbW92ZURhdGEoSywiaGFuZGxlIil9fX0sdHJpZ2dl cjpmdW5jdGlvbihJLEssSCxFKXt2YXIgRz1JLnR5cGV8fEk7aWYoIUUpe0k9dHlw ZW9mIEk9PT0ib2JqZWN0Ij9JW2hdP0k6by5leHRlbmQoby5FdmVudChHKSxJKTpv LkV2ZW50KEcpO2lmKEcuaW5kZXhPZigiISIpPj0wKXtJLnR5cGU9Rz1HLnNsaWNl KDAsLTEpO0kuZXhjbHVzaXZlPXRydWV9aWYoIUgpe0kuc3RvcFByb3BhZ2F0aW9u KCk7aWYodGhpcy5nbG9iYWxbR10pe28uZWFjaChvLmNhY2hlLGZ1bmN0aW9uKCl7 aWYodGhpcy5ldmVudHMmJnRoaXMuZXZlbnRzW0ddKXtvLmV2ZW50LnRyaWdnZXIo SSxLLHRoaXMuaGFuZGxlLmVsZW0pfX0pfX1pZighSHx8SC5ub2RlVHlwZT09M3x8 SC5ub2RlVHlwZT09OCl7cmV0dXJuIGd9SS5yZXN1bHQ9ZztJLnRhcmdldD1IO0s9 by5tYWtlQXJyYXkoSyk7Sy51bnNoaWZ0KEkpfUkuY3VycmVudFRhcmdldD1IO3Zh ciBKPW8uZGF0YShILCJoYW5kbGUiKTtpZihKKXtKLmFwcGx5KEgsSyl9aWYoKCFI W0ddfHwoby5ub2RlTmFtZShILCJhIikmJkc9PSJjbGljayIpKSYmSFsib24iK0dd JiZIWyJvbiIrR10uYXBwbHkoSCxLKT09PWZhbHNlKXtJLnJlc3VsdD1mYWxzZX1p ZighRSYmSFtHXSYmIUkuaXNEZWZhdWx0UHJldmVudGVkKCkmJiEoby5ub2RlTmFt ZShILCJhIikmJkc9PSJjbGljayIpKXt0aGlzLnRyaWdnZXJlZD10cnVlO3RyeXtI W0ddKCl9Y2F0Y2goTCl7fX10aGlzLnRyaWdnZXJlZD1mYWxzZTtpZighSS5pc1By b3BhZ2F0aW9uU3RvcHBlZCgpKXt2YXIgRj1ILnBhcmVudE5vZGV8fEgub3duZXJE b2N1bWVudDtpZihGKXtvLmV2ZW50LnRyaWdnZXIoSSxLLEYsdHJ1ZSl9fX0saGFu ZGxlOmZ1bmN0aW9uKEspe3ZhciBKLEU7Sz1hcmd1bWVudHNbMF09by5ldmVudC5m aXgoS3x8bC5ldmVudCk7Sy5jdXJyZW50VGFyZ2V0PXRoaXM7dmFyIEw9Sy50eXBl LnNwbGl0KCIuIik7Sy50eXBlPUwuc2hpZnQoKTtKPSFMLmxlbmd0aCYmIUsuZXhj bHVzaXZlO3ZhciBJPVJlZ0V4cCgiKF58XFwuKSIrTC5zbGljZSgpLnNvcnQoKS5q b2luKCIuKlxcLiIpKyIoXFwufCQpIik7RT0oby5kYXRhKHRoaXMsImV2ZW50cyIp fHx7fSlbSy50eXBlXTtmb3IodmFyIEcgaW4gRSl7dmFyIEg9RVtHXTtpZihKfHxJ LnRlc3QoSC50eXBlKSl7Sy5oYW5kbGVyPUg7Sy5kYXRhPUguZGF0YTt2YXIgRj1I LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihGIT09Zyl7Sy5yZXN1bHQ9RjtpZihG PT09ZmFsc2Upe0sucHJldmVudERlZmF1bHQoKTtLLnN0b3BQcm9wYWdhdGlvbigp fX1pZihLLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpe2JyZWFrfX19 fSxwcm9wczoiYWx0S2V5IGF0dHJDaGFuZ2UgYXR0ck5hbWUgYnViYmxlcyBidXR0 b24gY2FuY2VsYWJsZSBjaGFyQ29kZSBjbGllbnRYIGNsaWVudFkgY3RybEtleSBj dXJyZW50VGFyZ2V0IGRhdGEgZGV0YWlsIGV2ZW50UGhhc2UgZnJvbUVsZW1lbnQg aGFuZGxlciBrZXlDb2RlIG1ldGFLZXkgbmV3VmFsdWUgb3JpZ2luYWxUYXJnZXQg cGFnZVggcGFnZVkgcHJldlZhbHVlIHJlbGF0ZWROb2RlIHJlbGF0ZWRUYXJnZXQg c2NyZWVuWCBzY3JlZW5ZIHNoaWZ0S2V5IHNyY0VsZW1lbnQgdGFyZ2V0IHRvRWxl bWVudCB2aWV3IHdoZWVsRGVsdGEgd2hpY2giLnNwbGl0KCIgIiksZml4OmZ1bmN0 aW9uKEgpe2lmKEhbaF0pe3JldHVybiBIfXZhciBGPUg7SD1vLkV2ZW50KEYpO2Zv cih2YXIgRz10aGlzLnByb3BzLmxlbmd0aCxKO0c7KXtKPXRoaXMucHJvcHNbLS1H XTtIW0pdPUZbSl19aWYoIUgudGFyZ2V0KXtILnRhcmdldD1ILnNyY0VsZW1lbnR8 fGRvY3VtZW50fWlmKEgudGFyZ2V0Lm5vZGVUeXBlPT0zKXtILnRhcmdldD1ILnRh cmdldC5wYXJlbnROb2RlfWlmKCFILnJlbGF0ZWRUYXJnZXQmJkguZnJvbUVsZW1l bnQpe0gucmVsYXRlZFRhcmdldD1ILmZyb21FbGVtZW50PT1ILnRhcmdldD9ILnRv RWxlbWVudDpILmZyb21FbGVtZW50fWlmKEgucGFnZVg9PW51bGwmJkguY2xpZW50 WCE9bnVsbCl7dmFyIEk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEU9ZG9jdW1l bnQuYm9keTtILnBhZ2VYPUguY2xpZW50WCsoSSYmSS5zY3JvbGxMZWZ0fHxFJiZF LnNjcm9sbExlZnR8fDApLShJLmNsaWVudExlZnR8fDApO0gucGFnZVk9SC5jbGll bnRZKyhJJiZJLnNjcm9sbFRvcHx8RSYmRS5zY3JvbGxUb3B8fDApLShJLmNsaWVu dFRvcHx8MCl9aWYoIUgud2hpY2gmJigoSC5jaGFyQ29kZXx8SC5jaGFyQ29kZT09 PTApP0guY2hhckNvZGU6SC5rZXlDb2RlKSl7SC53aGljaD1ILmNoYXJDb2RlfHxI LmtleUNvZGV9aWYoIUgubWV0YUtleSYmSC5jdHJsS2V5KXtILm1ldGFLZXk9SC5j dHJsS2V5fWlmKCFILndoaWNoJiZILmJ1dHRvbil7SC53aGljaD0oSC5idXR0b24m MT8xOihILmJ1dHRvbiYyPzM6KEguYnV0dG9uJjQ/MjowKSkpfXJldHVybiBIfSxw cm94eTpmdW5jdGlvbihGLEUpe0U9RXx8ZnVuY3Rpb24oKXtyZXR1cm4gRi5hcHBs eSh0aGlzLGFyZ3VtZW50cyl9O0UuZ3VpZD1GLmd1aWQ9Ri5ndWlkfHxFLmd1aWR8 fHRoaXMuZ3VpZCsrO3JldHVybiBFfSxzcGVjaWFsOntyZWFkeTp7c2V0dXA6Qix0 ZWFyZG93bjpmdW5jdGlvbigpe319fSxzcGVjaWFsQWxsOntsaXZlOntzZXR1cDpm dW5jdGlvbihFLEYpe28uZXZlbnQuYWRkKHRoaXMsRlswXSxjKX0sdGVhcmRvd246 ZnVuY3Rpb24oRyl7aWYoRy5sZW5ndGgpe3ZhciBFPTAsRj1SZWdFeHAoIihefFxc LikiK0dbMF0rIihcXC58JCkiKTtvLmVhY2goKG8uZGF0YSh0aGlzLCJldmVudHMi KS5saXZlfHx7fSksZnVuY3Rpb24oKXtpZihGLnRlc3QodGhpcy50eXBlKSl7RSsr fX0pO2lmKEU8MSl7by5ldmVudC5yZW1vdmUodGhpcyxHWzBdLGMpfX19fX19O28u RXZlbnQ9ZnVuY3Rpb24oRSl7aWYoIXRoaXMucHJldmVudERlZmF1bHQpe3JldHVy biBuZXcgby5FdmVudChFKX1pZihFJiZFLnR5cGUpe3RoaXMub3JpZ2luYWxFdmVu dD1FO3RoaXMudHlwZT1FLnR5cGV9ZWxzZXt0aGlzLnR5cGU9RX10aGlzLnRpbWVT dGFtcD1lKCk7dGhpc1toXT10cnVlfTtmdW5jdGlvbiBrKCl7cmV0dXJuIGZhbHNl fWZ1bmN0aW9uIHUoKXtyZXR1cm4gdHJ1ZX1vLkV2ZW50LnByb3RvdHlwZT17cHJl dmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD11 O3ZhciBFPXRoaXMub3JpZ2luYWxFdmVudDtpZighRSl7cmV0dXJufWlmKEUucHJl dmVudERlZmF1bHQpe0UucHJldmVudERlZmF1bHQoKX1FLnJldHVyblZhbHVlPWZh bHNlfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFnYXRp b25TdG9wcGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1 cm59aWYoRS5zdG9wUHJvcGFnYXRpb24pe0Uuc3RvcFByb3BhZ2F0aW9uKCl9RS5j YW5jZWxCdWJibGU9dHJ1ZX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0 aW9uKCl7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD11O3RoaXMu c3RvcFByb3BhZ2F0aW9uKCl9LGlzRGVmYXVsdFByZXZlbnRlZDprLGlzUHJvcGFn YXRpb25TdG9wcGVkOmssaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6a307 dmFyIGE9ZnVuY3Rpb24oRil7dmFyIEU9Ri5yZWxhdGVkVGFyZ2V0O3doaWxlKEUm JkUhPXRoaXMpe3RyeXtFPUUucGFyZW50Tm9kZX1jYXRjaChHKXtFPXRoaXN9fWlm KEUhPXRoaXMpe0YudHlwZT1GLmRhdGE7by5ldmVudC5oYW5kbGUuYXBwbHkodGhp cyxhcmd1bWVudHMpfX07by5lYWNoKHttb3VzZW92ZXI6Im1vdXNlZW50ZXIiLG1v dXNlb3V0OiJtb3VzZWxlYXZlIn0sZnVuY3Rpb24oRixFKXtvLmV2ZW50LnNwZWNp YWxbRV09e3NldHVwOmZ1bmN0aW9uKCl7by5ldmVudC5hZGQodGhpcyxGLGEsRSl9 LHRlYXJkb3duOmZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLGEpfX19 KTtvLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihGLEcsRSl7cmV0dXJuIEY9PSJ1 bmxvYWQiP3RoaXMub25lKEYsRyxFKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2 ZW50LmFkZCh0aGlzLEYsRXx8RyxFJiZHKX0pfSxvbmU6ZnVuY3Rpb24oRyxILEYp e3ZhciBFPW8uZXZlbnQucHJveHkoRnx8SCxmdW5jdGlvbihJKXtvKHRoaXMpLnVu YmluZChJLEUpO3JldHVybihGfHxIKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KTty ZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5hZGQodGhpcyxHLEUs RiYmSCl9KX0sdW5iaW5kOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIHRoaXMuZWFjaChm dW5jdGlvbigpe28uZXZlbnQucmVtb3ZlKHRoaXMsRixFKX0pfSx0cmlnZ2VyOmZ1 bmN0aW9uKEUsRil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQu dHJpZ2dlcihFLEYsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oRSxH KXtpZih0aGlzWzBdKXt2YXIgRj1vLkV2ZW50KEUpO0YucHJldmVudERlZmF1bHQo KTtGLnN0b3BQcm9wYWdhdGlvbigpO28uZXZlbnQudHJpZ2dlcihGLEcsdGhpc1sw XSk7cmV0dXJuIEYucmVzdWx0fX0sdG9nZ2xlOmZ1bmN0aW9uKEcpe3ZhciBFPWFy Z3VtZW50cyxGPTE7d2hpbGUoRjxFLmxlbmd0aCl7by5ldmVudC5wcm94eShHLEVb RisrXSl9cmV0dXJuIHRoaXMuY2xpY2soby5ldmVudC5wcm94eShHLGZ1bmN0aW9u KEgpe3RoaXMubGFzdFRvZ2dsZT0odGhpcy5sYXN0VG9nZ2xlfHwwKSVGO0gucHJl dmVudERlZmF1bHQoKTtyZXR1cm4gRVt0aGlzLmxhc3RUb2dnbGUrK10uYXBwbHko dGhpcyxhcmd1bWVudHMpfHxmYWxzZX0pKX0saG92ZXI6ZnVuY3Rpb24oRSxGKXty ZXR1cm4gdGhpcy5tb3VzZWVudGVyKEUpLm1vdXNlbGVhdmUoRil9LHJlYWR5OmZ1 bmN0aW9uKEUpe0IoKTtpZihvLmlzUmVhZHkpe0UuY2FsbChkb2N1bWVudCxvKX1l bHNle28ucmVhZHlMaXN0LnB1c2goRSl9cmV0dXJuIHRoaXN9LGxpdmU6ZnVuY3Rp b24oRyxGKXt2YXIgRT1vLmV2ZW50LnByb3h5KEYpO0UuZ3VpZCs9dGhpcy5zZWxl Y3RvcitHO28oZG9jdW1lbnQpLmJpbmQoaShHLHRoaXMuc2VsZWN0b3IpLHRoaXMu c2VsZWN0b3IsRSk7cmV0dXJuIHRoaXN9LGRpZTpmdW5jdGlvbihGLEUpe28oZG9j dW1lbnQpLnVuYmluZChpKEYsdGhpcy5zZWxlY3RvciksRT97Z3VpZDpFLmd1aWQr dGhpcy5zZWxlY3RvcitGfTpudWxsKTtyZXR1cm4gdGhpc319KTtmdW5jdGlvbiBj KEgpe3ZhciBFPVJlZ0V4cCgiKF58XFwuKSIrSC50eXBlKyIoXFwufCQpIiksRz10 cnVlLEY9W107by5lYWNoKG8uZGF0YSh0aGlzLCJldmVudHMiKS5saXZlfHxbXSxm dW5jdGlvbihJLEope2lmKEUudGVzdChKLnR5cGUpKXt2YXIgSz1vKEgudGFyZ2V0 KS5jbG9zZXN0KEouZGF0YSlbMF07aWYoSyl7Ri5wdXNoKHtlbGVtOkssZm46Sn0p fX19KTtGLnNvcnQoZnVuY3Rpb24oSixJKXtyZXR1cm4gby5kYXRhKEouZWxlbSwi Y2xvc2VzdCIpLW8uZGF0YShJLmVsZW0sImNsb3Nlc3QiKX0pO28uZWFjaChGLGZ1 bmN0aW9uKCl7aWYodGhpcy5mbi5jYWxsKHRoaXMuZWxlbSxILHRoaXMuZm4uZGF0 YSk9PT1mYWxzZSl7cmV0dXJuKEc9ZmFsc2UpfX0pO3JldHVybiBHfWZ1bmN0aW9u IGkoRixFKXtyZXR1cm5bImxpdmUiLEYsRS5yZXBsYWNlKC9cLi9nLCJgIikucmVw bGFjZSgvIC9nLCJ8IildLmpvaW4oIi4iKX1vLmV4dGVuZCh7aXNSZWFkeTpmYWxz ZSxyZWFkeUxpc3Q6W10scmVhZHk6ZnVuY3Rpb24oKXtpZighby5pc1JlYWR5KXtv LmlzUmVhZHk9dHJ1ZTtpZihvLnJlYWR5TGlzdCl7by5lYWNoKG8ucmVhZHlMaXN0 LGZ1bmN0aW9uKCl7dGhpcy5jYWxsKGRvY3VtZW50LG8pfSk7by5yZWFkeUxpc3Q9 bnVsbH1vKGRvY3VtZW50KS50cmlnZ2VySGFuZGxlcigicmVhZHkiKX19fSk7dmFy IHg9ZmFsc2U7ZnVuY3Rpb24gQigpe2lmKHgpe3JldHVybn14PXRydWU7aWYoZG9j dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcil7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l cigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5yZW1vdmVF dmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixhcmd1bWVudHMuY2FsbGVl LGZhbHNlKTtvLnJlYWR5KCl9LGZhbHNlKX1lbHNle2lmKGRvY3VtZW50LmF0dGFj aEV2ZW50KXtkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdl IixmdW5jdGlvbigpe2lmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iY29tcGxldGUi KXtkb2N1bWVudC5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixhcmd1 bWVudHMuY2FsbGVlKTtvLnJlYWR5KCl9fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LmRvU2Nyb2xsJiZsPT1sLnRvcCl7KGZ1bmN0aW9uKCl7aWYoby5pc1Jl YWR5KXtyZXR1cm59dHJ5e2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kb1Njcm9s bCgibGVmdCIpfWNhdGNoKEUpe3NldFRpbWVvdXQoYXJndW1lbnRzLmNhbGxlZSww KTtyZXR1cm59by5yZWFkeSgpfSkoKX19fW8uZXZlbnQuYWRkKGwsImxvYWQiLG8u cmVhZHkpfW8uZWFjaCgoImJsdXIsZm9jdXMsbG9hZCxyZXNpemUsc2Nyb2xsLHVu bG9hZCxjbGljayxkYmxjbGljayxtb3VzZWRvd24sbW91c2V1cCxtb3VzZW1vdmUs bW91c2VvdmVyLG1vdXNlb3V0LG1vdXNlZW50ZXIsbW91c2VsZWF2ZSxjaGFuZ2Us c2VsZWN0LHN1Ym1pdCxrZXlkb3duLGtleXByZXNzLGtleXVwLGVycm9yIikuc3Bs aXQoIiwiKSxmdW5jdGlvbihGLEUpe28uZm5bRV09ZnVuY3Rpb24oRyl7cmV0dXJu IEc/dGhpcy5iaW5kKEUsRyk6dGhpcy50cmlnZ2VyKEUpfX0pO28obCkuYmluZCgi dW5sb2FkIixmdW5jdGlvbigpe2Zvcih2YXIgRSBpbiBvLmNhY2hlKXtpZihFIT0x JiZvLmNhY2hlW0VdLmhhbmRsZSl7by5ldmVudC5yZW1vdmUoby5jYWNoZVtFXS5o YW5kbGUuZWxlbSl9fX0pOyhmdW5jdGlvbigpe28uc3VwcG9ydD17fTt2YXIgRj1k b2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRz1kb2N1bWVudC5jcmVhdGVFbGVtZW50 KCJzY3JpcHQiKSxLPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLEo9InNj cmlwdCIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7Sy5zdHlsZS5kaXNwbGF5PSJub25l IjtLLmlubmVySFRNTD0nICAgPGxpbmsvPjx0YWJsZT48L3RhYmxlPjxhIGhyZWY9 Ii9hIiBzdHlsZT0iY29sb3I6cmVkO2Zsb2F0OmxlZnQ7b3BhY2l0eTouNTsiPmE8 L2E+PHNlbGVjdD48b3B0aW9uPnRleHQ8L29wdGlvbj48L3NlbGVjdD48b2JqZWN0 PjxwYXJhbS8+PC9vYmplY3Q+Jzt2YXIgSD1LLmdldEVsZW1lbnRzQnlUYWdOYW1l KCIqIiksRT1LLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIilbMF07aWYoIUh8fCFI Lmxlbmd0aHx8IUUpe3JldHVybn1vLnN1cHBvcnQ9e2xlYWRpbmdXaGl0ZXNwYWNl OksuZmlyc3RDaGlsZC5ub2RlVHlwZT09Myx0Ym9keTohSy5nZXRFbGVtZW50c0J5 VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsb2JqZWN0QWxsOiEhSy5nZXRFbGVtZW50 c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioi KS5sZW5ndGgsaHRtbFNlcmlhbGl6ZTohIUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUo ImxpbmsiKS5sZW5ndGgsc3R5bGU6L3JlZC8udGVzdChFLmdldEF0dHJpYnV0ZSgi c3R5bGUiKSksaHJlZk5vcm1hbGl6ZWQ6RS5nZXRBdHRyaWJ1dGUoImhyZWYiKT09 PSIvYSIsb3BhY2l0eTpFLnN0eWxlLm9wYWNpdHk9PT0iMC41Iixjc3NGbG9hdDoh IUUuc3R5bGUuY3NzRmxvYXQsc2NyaXB0RXZhbDpmYWxzZSxub0Nsb25lRXZlbnQ6 dHJ1ZSxib3hNb2RlbDpudWxsfTtHLnR5cGU9InRleHQvamF2YXNjcmlwdCI7dHJ5 e0cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIndpbmRvdy4i K0orIj0xOyIpKX1jYXRjaChJKXt9Ri5pbnNlcnRCZWZvcmUoRyxGLmZpcnN0Q2hp bGQpO2lmKGxbSl0pe28uc3VwcG9ydC5zY3JpcHRFdmFsPXRydWU7ZGVsZXRlIGxb Sl19Ri5yZW1vdmVDaGlsZChHKTtpZihLLmF0dGFjaEV2ZW50JiZLLmZpcmVFdmVu dCl7Sy5hdHRhY2hFdmVudCgib25jbGljayIsZnVuY3Rpb24oKXtvLnN1cHBvcnQu bm9DbG9uZUV2ZW50PWZhbHNlO0suZGV0YWNoRXZlbnQoIm9uY2xpY2siLGFyZ3Vt ZW50cy5jYWxsZWUpfSk7Sy5jbG9uZU5vZGUodHJ1ZSkuZmlyZUV2ZW50KCJvbmNs aWNrIil9byhmdW5jdGlvbigpe3ZhciBMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo ImRpdiIpO0wuc3R5bGUud2lkdGg9TC5zdHlsZS5wYWRkaW5nTGVmdD0iMXB4Ijtk b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKEwpO28uYm94TW9kZWw9by5zdXBwb3J0 LmJveE1vZGVsPUwub2Zmc2V0V2lkdGg9PT0yO2RvY3VtZW50LmJvZHkucmVtb3Zl Q2hpbGQoTCkuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KX0pKCk7dmFyIHc9by5zdXBw b3J0LmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQiO28ucHJvcHM9eyJm b3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLCJmbG9hdCI6dyxjc3NG bG9hdDp3LHN0eWxlRmxvYXQ6dyxyZWFkb25seToicmVhZE9ubHkiLG1heGxlbmd0 aDoibWF4TGVuZ3RoIixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLHJvd3NwYW46 InJvd1NwYW4iLHRhYmluZGV4OiJ0YWJJbmRleCJ9O28uZm4uZXh0ZW5kKHtfbG9h ZDpvLmZuLmxvYWQsbG9hZDpmdW5jdGlvbihHLEosSyl7aWYodHlwZW9mIEchPT0i c3RyaW5nIil7cmV0dXJuIHRoaXMuX2xvYWQoRyl9dmFyIEk9Ry5pbmRleE9mKCIg Iik7aWYoST49MCl7dmFyIEU9Ry5zbGljZShJLEcubGVuZ3RoKTtHPUcuc2xpY2Uo MCxJKX12YXIgSD0iR0VUIjtpZihKKXtpZihvLmlzRnVuY3Rpb24oSikpe0s9SjtK PW51bGx9ZWxzZXtpZih0eXBlb2YgSj09PSJvYmplY3QiKXtKPW8ucGFyYW0oSik7 SD0iUE9TVCJ9fX12YXIgRj10aGlzO28uYWpheCh7dXJsOkcsdHlwZTpILGRhdGFU eXBlOiJodG1sIixkYXRhOkosY29tcGxldGU6ZnVuY3Rpb24oTSxMKXtpZihMPT0i c3VjY2VzcyJ8fEw9PSJub3Rtb2RpZmllZCIpe0YuaHRtbChFP28oIjxkaXYvPiIp LmFwcGVuZChNLnJlc3BvbnNlVGV4dC5yZXBsYWNlKC88c2NyaXB0KC58XHMpKj9c L3NjcmlwdD4vZywiIikpLmZpbmQoRSk6TS5yZXNwb25zZVRleHQpfWlmKEspe0Yu ZWFjaChLLFtNLnJlc3BvbnNlVGV4dCxMLE1dKX19fSk7cmV0dXJuIHRoaXN9LHNl cmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBvLnBhcmFtKHRoaXMuc2VyaWFsaXpl QXJyYXkoKSl9LHNlcmlhbGl6ZUFycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu bWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHM/by5tYWtlQXJyYXko dGhpcy5lbGVtZW50cyk6dGhpc30pLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiB0 aGlzLm5hbWUmJiF0aGlzLmRpc2FibGVkJiYodGhpcy5jaGVja2VkfHwvc2VsZWN0 fHRleHRhcmVhL2kudGVzdCh0aGlzLm5vZGVOYW1lKXx8L3RleHR8aGlkZGVufHBh c3N3b3JkfHNlYXJjaC9pLnRlc3QodGhpcy50eXBlKSl9KS5tYXAoZnVuY3Rpb24o RSxGKXt2YXIgRz1vKHRoaXMpLnZhbCgpO3JldHVybiBHPT1udWxsP251bGw6by5p c0FycmF5KEcpP28ubWFwKEcsZnVuY3Rpb24oSSxIKXtyZXR1cm57bmFtZTpGLm5h bWUsdmFsdWU6SX19KTp7bmFtZTpGLm5hbWUsdmFsdWU6R319KS5nZXQoKX19KTtv LmVhY2goImFqYXhTdGFydCxhamF4U3RvcCxhamF4Q29tcGxldGUsYWpheEVycm9y LGFqYXhTdWNjZXNzLGFqYXhTZW5kIi5zcGxpdCgiLCIpLGZ1bmN0aW9uKEUsRil7 by5mbltGXT1mdW5jdGlvbihHKXtyZXR1cm4gdGhpcy5iaW5kKEYsRyl9fSk7dmFy IHI9ZSgpO28uZXh0ZW5kKHtnZXQ6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1 bmN0aW9uKEcpKXtIPUc7Rz1udWxsfXJldHVybiBvLmFqYXgoe3R5cGU6IkdFVCIs dXJsOkUsZGF0YTpHLHN1Y2Nlc3M6SCxkYXRhVHlwZTpGfSl9LGdldFNjcmlwdDpm dW5jdGlvbihFLEYpe3JldHVybiBvLmdldChFLG51bGwsRiwic2NyaXB0Iil9LGdl dEpTT046ZnVuY3Rpb24oRSxGLEcpe3JldHVybiBvLmdldChFLEYsRywianNvbiIp fSxwb3N0OmZ1bmN0aW9uKEUsRyxILEYpe2lmKG8uaXNGdW5jdGlvbihHKSl7SD1H O0c9e319cmV0dXJuIG8uYWpheCh7dHlwZToiUE9TVCIsdXJsOkUsZGF0YTpHLHN1 Y2Nlc3M6SCxkYXRhVHlwZTpGfSl9LGFqYXhTZXR1cDpmdW5jdGlvbihFKXtvLmV4 dGVuZChvLmFqYXhTZXR0aW5ncyxFKX0sYWpheFNldHRpbmdzOnt1cmw6bG9jYXRp b24uaHJlZixnbG9iYWw6dHJ1ZSx0eXBlOiJHRVQiLGNvbnRlbnRUeXBlOiJhcHBs aWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLHByb2Nlc3NEYXRhOnRydWUs YXN5bmM6dHJ1ZSx4aHI6ZnVuY3Rpb24oKXtyZXR1cm4gbC5BY3RpdmVYT2JqZWN0 P25ldyBBY3RpdmVYT2JqZWN0KCJNaWNyb3NvZnQuWE1MSFRUUCIpOm5ldyBYTUxI dHRwUmVxdWVzdCgpfSxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4 dC94bWwiLGh0bWw6InRleHQvaHRtbCIsc2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQs IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQiLGpzb246ImFwcGxpY2F0aW9uL2pzb24s IHRleHQvamF2YXNjcmlwdCIsdGV4dDoidGV4dC9wbGFpbiIsX2RlZmF1bHQ6Iiov KiJ9fSxsYXN0TW9kaWZpZWQ6e30sYWpheDpmdW5jdGlvbihNKXtNPW8uZXh0ZW5k KHRydWUsTSxvLmV4dGVuZCh0cnVlLHt9LG8uYWpheFNldHRpbmdzLE0pKTt2YXIg VyxGPS89XD8oJnwkKS9nLFIsVixHPU0udHlwZS50b1VwcGVyQ2FzZSgpO2lmKE0u ZGF0YSYmTS5wcm9jZXNzRGF0YSYmdHlwZW9mIE0uZGF0YSE9PSJzdHJpbmciKXtN LmRhdGE9by5wYXJhbShNLmRhdGEpfWlmKE0uZGF0YVR5cGU9PSJqc29ucCIpe2lm KEc9PSJHRVQiKXtpZighTS51cmwubWF0Y2goRikpe00udXJsKz0oTS51cmwubWF0 Y2goL1w/Lyk/IiYiOiI/IikrKE0uanNvbnB8fCJjYWxsYmFjayIpKyI9PyJ9fWVs c2V7aWYoIU0uZGF0YXx8IU0uZGF0YS5tYXRjaChGKSl7TS5kYXRhPShNLmRhdGE/ TS5kYXRhKyImIjoiIikrKE0uanNvbnB8fCJjYWxsYmFjayIpKyI9PyJ9fU0uZGF0 YVR5cGU9Impzb24ifWlmKE0uZGF0YVR5cGU9PSJqc29uIiYmKE0uZGF0YSYmTS5k YXRhLm1hdGNoKEYpfHxNLnVybC5tYXRjaChGKSkpe1c9Impzb25wIityKys7aWYo TS5kYXRhKXtNLmRhdGE9KE0uZGF0YSsiIikucmVwbGFjZShGLCI9IitXKyIkMSIp fU0udXJsPU0udXJsLnJlcGxhY2UoRiwiPSIrVysiJDEiKTtNLmRhdGFUeXBlPSJz Y3JpcHQiO2xbV109ZnVuY3Rpb24oWCl7Vj1YO0koKTtMKCk7bFtXXT1nO3RyeXtk ZWxldGUgbFtXXX1jYXRjaChZKXt9aWYoSCl7SC5yZW1vdmVDaGlsZChUKX19fWlm KE0uZGF0YVR5cGU9PSJzY3JpcHQiJiZNLmNhY2hlPT1udWxsKXtNLmNhY2hlPWZh bHNlfWlmKE0uY2FjaGU9PT1mYWxzZSYmRz09IkdFVCIpe3ZhciBFPWUoKTt2YXIg VT1NLnVybC5yZXBsYWNlKC8oXD98JilfPS4qPygmfCQpLywiJDFfPSIrRSsiJDIi KTtNLnVybD1VKygoVT09TS51cmwpPyhNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8i KSsiXz0iK0U6IiIpfWlmKE0uZGF0YSYmRz09IkdFVCIpe00udXJsKz0oTS51cmwu bWF0Y2goL1w/Lyk/IiYiOiI/IikrTS5kYXRhO00uZGF0YT1udWxsfWlmKE0uZ2xv YmFsJiYhby5hY3RpdmUrKyl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKX12 YXIgUT0vXihcdys6KT9cL1wvKFteXC8/I10rKS8uZXhlYyhNLnVybCk7aWYoTS5k YXRhVHlwZT09InNjcmlwdCImJkc9PSJHRVQiJiZRJiYoUVsxXSYmUVsxXSE9bG9j YXRpb24ucHJvdG9jb2x8fFFbMl0hPWxvY2F0aW9uLmhvc3QpKXt2YXIgSD1kb2N1 bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdO3ZhciBUPWRvY3Vt ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO1Quc3JjPU0udXJsO2lmKE0uc2Ny aXB0Q2hhcnNldCl7VC5jaGFyc2V0PU0uc2NyaXB0Q2hhcnNldH1pZighVyl7dmFy IE89ZmFsc2U7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24o KXtpZighTyYmKCF0aGlzLnJlYWR5U3RhdGV8fHRoaXMucmVhZHlTdGF0ZT09Imxv YWRlZCJ8fHRoaXMucmVhZHlTdGF0ZT09ImNvbXBsZXRlIikpe089dHJ1ZTtJKCk7 TCgpO1Qub25sb2FkPVQub25yZWFkeXN0YXRlY2hhbmdlPW51bGw7SC5yZW1vdmVD aGlsZChUKX19fUguYXBwZW5kQ2hpbGQoVCk7cmV0dXJuIGd9dmFyIEs9ZmFsc2U7 dmFyIEo9TS54aHIoKTtpZihNLnVzZXJuYW1lKXtKLm9wZW4oRyxNLnVybCxNLmFz eW5jLE0udXNlcm5hbWUsTS5wYXNzd29yZCl9ZWxzZXtKLm9wZW4oRyxNLnVybCxN LmFzeW5jKX10cnl7aWYoTS5kYXRhKXtKLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRl bnQtVHlwZSIsTS5jb250ZW50VHlwZSl9aWYoTS5pZk1vZGlmaWVkKXtKLnNldFJl cXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixvLmxhc3RNb2RpZmllZFtN LnVybF18fCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIpfUouc2V0UmVx dWVzdEhlYWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsIlhNTEh0dHBSZXF1ZXN0Iik7 Si5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLE0uZGF0YVR5cGUmJk0uYWNjZXB0 c1tNLmRhdGFUeXBlXT9NLmFjY2VwdHNbTS5kYXRhVHlwZV0rIiwgKi8qIjpNLmFj Y2VwdHMuX2RlZmF1bHQpfWNhdGNoKFMpe31pZihNLmJlZm9yZVNlbmQmJk0uYmVm b3JlU2VuZChKLE0pPT09ZmFsc2Upe2lmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7 by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfUouYWJvcnQoKTtyZXR1cm4gZmFs c2V9aWYoTS5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheFNlbmQiLFtKLE1d KX12YXIgTj1mdW5jdGlvbihYKXtpZihKLnJlYWR5U3RhdGU9PTApe2lmKFApe2Ns ZWFySW50ZXJ2YWwoUCk7UD1udWxsO2lmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7 by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX19ZWxzZXtpZighSyYmSiYmKEou cmVhZHlTdGF0ZT09NHx8WD09InRpbWVvdXQiKSl7Sz10cnVlO2lmKFApe2NsZWFy SW50ZXJ2YWwoUCk7UD1udWxsfVI9WD09InRpbWVvdXQiPyJ0aW1lb3V0Ijohby5o dHRwU3VjY2VzcyhKKT8iZXJyb3IiOk0uaWZNb2RpZmllZCYmby5odHRwTm90TW9k aWZpZWQoSixNLnVybCk/Im5vdG1vZGlmaWVkIjoic3VjY2VzcyI7aWYoUj09InN1 Y2Nlc3MiKXt0cnl7Vj1vLmh0dHBEYXRhKEosTS5kYXRhVHlwZSxNKX1jYXRjaCha KXtSPSJwYXJzZXJlcnJvciJ9fWlmKFI9PSJzdWNjZXNzIil7dmFyIFk7dHJ5e1k9 Si5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpfWNhdGNoKFope31p ZihNLmlmTW9kaWZpZWQmJlkpe28ubGFzdE1vZGlmaWVkW00udXJsXT1ZfWlmKCFX KXtJKCl9fWVsc2V7by5oYW5kbGVFcnJvcihNLEosUil9TCgpO2lmKFgpe0ouYWJv cnQoKX1pZihNLmFzeW5jKXtKPW51bGx9fX19O2lmKE0uYXN5bmMpe3ZhciBQPXNl dEludGVydmFsKE4sMTMpO2lmKE0udGltZW91dD4wKXtzZXRUaW1lb3V0KGZ1bmN0 aW9uKCl7aWYoSiYmIUspe04oInRpbWVvdXQiKX19LE0udGltZW91dCl9fXRyeXtK LnNlbmQoTS5kYXRhKX1jYXRjaChTKXtvLmhhbmRsZUVycm9yKE0sSixudWxsLFMp fWlmKCFNLmFzeW5jKXtOKCl9ZnVuY3Rpb24gSSgpe2lmKE0uc3VjY2Vzcyl7TS5z dWNjZXNzKFYsUil9aWYoTS5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheFN1 Y2Nlc3MiLFtKLE1dKX19ZnVuY3Rpb24gTCgpe2lmKE0uY29tcGxldGUpe00uY29t cGxldGUoSixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4Q29t cGxldGUiLFtKLE1dKX1pZihNLmdsb2JhbCYmIS0tby5hY3RpdmUpe28uZXZlbnQu dHJpZ2dlcigiYWpheFN0b3AiKX19cmV0dXJuIEp9LGhhbmRsZUVycm9yOmZ1bmN0 aW9uKEYsSCxFLEcpe2lmKEYuZXJyb3Ipe0YuZXJyb3IoSCxFLEcpfWlmKEYuZ2xv YmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhFcnJvciIsW0gsRixHXSl9fSxhY3Rp dmU6MCxodHRwU3VjY2VzczpmdW5jdGlvbihGKXt0cnl7cmV0dXJuICFGLnN0YXR1 cyYmbG9jYXRpb24ucHJvdG9jb2w9PSJmaWxlOiJ8fChGLnN0YXR1cz49MjAwJiZG LnN0YXR1czwzMDApfHxGLnN0YXR1cz09MzA0fHxGLnN0YXR1cz09MTIyM31jYXRj aChFKXt9cmV0dXJuIGZhbHNlfSxodHRwTm90TW9kaWZpZWQ6ZnVuY3Rpb24oRyxF KXt0cnl7dmFyIEg9Ry5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIp O3JldHVybiBHLnN0YXR1cz09MzA0fHxIPT1vLmxhc3RNb2RpZmllZFtFXX1jYXRj aChGKXt9cmV0dXJuIGZhbHNlfSxodHRwRGF0YTpmdW5jdGlvbihKLEgsRyl7dmFy IEY9Si5nZXRSZXNwb25zZUhlYWRlcigiY29udGVudC10eXBlIiksRT1IPT0ieG1s Inx8IUgmJkYmJkYuaW5kZXhPZigieG1sIik+PTAsST1FP0oucmVzcG9uc2VYTUw6 Si5yZXNwb25zZVRleHQ7aWYoRSYmSS5kb2N1bWVudEVsZW1lbnQudGFnTmFtZT09 InBhcnNlcmVycm9yIil7dGhyb3cicGFyc2VyZXJyb3IifWlmKEcmJkcuZGF0YUZp bHRlcil7ST1HLmRhdGFGaWx0ZXIoSSxIKX1pZih0eXBlb2YgST09PSJzdHJpbmci KXtpZihIPT0ic2NyaXB0Iil7by5nbG9iYWxFdmFsKEkpfWlmKEg9PSJqc29uIil7 ST1sWyJldmFsIl0oIigiK0krIikiKX19cmV0dXJuIEl9LHBhcmFtOmZ1bmN0aW9u KEUpe3ZhciBHPVtdO2Z1bmN0aW9uIEgoSSxKKXtHW0cubGVuZ3RoXT1lbmNvZGVV UklDb21wb25lbnQoSSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChKKX1pZihvLmlz QXJyYXkoRSl8fEUuanF1ZXJ5KXtvLmVhY2goRSxmdW5jdGlvbigpe0godGhpcy5u YW1lLHRoaXMudmFsdWUpfSl9ZWxzZXtmb3IodmFyIEYgaW4gRSl7aWYoby5pc0Fy cmF5KEVbRl0pKXtvLmVhY2goRVtGXSxmdW5jdGlvbigpe0goRix0aGlzKX0pfWVs c2V7SChGLG8uaXNGdW5jdGlvbihFW0ZdKT9FW0ZdKCk6RVtGXSl9fX1yZXR1cm4g Ry5qb2luKCImIikucmVwbGFjZSgvJTIwL2csIisiKX19KTt2YXIgbT17fSxuLGQ9 W1siaGVpZ2h0IiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwicGFkZGluZ1Rv cCIsInBhZGRpbmdCb3R0b20iXSxbIndpZHRoIiwibWFyZ2luTGVmdCIsIm1hcmdp blJpZ2h0IiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSxbIm9wYWNpdHki XV07ZnVuY3Rpb24gdChGLEUpe3ZhciBHPXt9O28uZWFjaChkLmNvbmNhdC5hcHBs eShbXSxkLnNsaWNlKDAsRSkpLGZ1bmN0aW9uKCl7R1t0aGlzXT1GfSk7cmV0dXJu IEd9by5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oSixMKXtpZihKKXtyZXR1cm4g dGhpcy5hbmltYXRlKHQoInNob3ciLDMpLEosTCl9ZWxzZXtmb3IodmFyIEg9MCxG PXRoaXMubGVuZ3RoO0g8RjtIKyspe3ZhciBFPW8uZGF0YSh0aGlzW0hdLCJvbGRk aXNwbGF5Iik7dGhpc1tIXS5zdHlsZS5kaXNwbGF5PUV8fCIiO2lmKG8uY3NzKHRo aXNbSF0sImRpc3BsYXkiKT09PSJub25lIil7dmFyIEc9dGhpc1tIXS50YWdOYW1l LEs7aWYobVtHXSl7Sz1tW0ddfWVsc2V7dmFyIEk9bygiPCIrRysiIC8+IikuYXBw ZW5kVG8oImJvZHkiKTtLPUkuY3NzKCJkaXNwbGF5Iik7aWYoSz09PSJub25lIil7 Sz0iYmxvY2sifUkucmVtb3ZlKCk7bVtHXT1LfW8uZGF0YSh0aGlzW0hdLCJvbGRk aXNwbGF5IixLKX19Zm9yKHZhciBIPTAsRj10aGlzLmxlbmd0aDtIPEY7SCsrKXt0 aGlzW0hdLnN0eWxlLmRpc3BsYXk9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXki KXx8IiJ9cmV0dXJuIHRoaXN9fSxoaWRlOmZ1bmN0aW9uKEgsSSl7aWYoSCl7cmV0 dXJuIHRoaXMuYW5pbWF0ZSh0KCJoaWRlIiwzKSxILEkpfWVsc2V7Zm9yKHZhciBH PTAsRj10aGlzLmxlbmd0aDtHPEY7RysrKXt2YXIgRT1vLmRhdGEodGhpc1tHXSwi b2xkZGlzcGxheSIpO2lmKCFFJiZFIT09Im5vbmUiKXtvLmRhdGEodGhpc1tHXSwi b2xkZGlzcGxheSIsby5jc3ModGhpc1tHXSwiZGlzcGxheSIpKX19Zm9yKHZhciBH PTAsRj10aGlzLmxlbmd0aDtHPEY7RysrKXt0aGlzW0ddLnN0eWxlLmRpc3BsYXk9 Im5vbmUifXJldHVybiB0aGlzfX0sX3RvZ2dsZTpvLmZuLnRvZ2dsZSx0b2dnbGU6 ZnVuY3Rpb24oRyxGKXt2YXIgRT10eXBlb2YgRz09PSJib29sZWFuIjtyZXR1cm4g by5pc0Z1bmN0aW9uKEcpJiZvLmlzRnVuY3Rpb24oRik/dGhpcy5fdG9nZ2xlLmFw cGx5KHRoaXMsYXJndW1lbnRzKTpHPT1udWxsfHxFP3RoaXMuZWFjaChmdW5jdGlv bigpe3ZhciBIPUU/RzpvKHRoaXMpLmlzKCI6aGlkZGVuIik7byh0aGlzKVtIPyJz aG93IjoiaGlkZSJdKCl9KTp0aGlzLmFuaW1hdGUodCgidG9nZ2xlIiwzKSxHLEYp fSxmYWRlVG86ZnVuY3Rpb24oRSxHLEYpe3JldHVybiB0aGlzLmFuaW1hdGUoe29w YWNpdHk6R30sRSxGKX0sYW5pbWF0ZTpmdW5jdGlvbihJLEYsSCxHKXt2YXIgRT1v LnNwZWVkKEYsSCxHKTtyZXR1cm4gdGhpc1tFLnF1ZXVlPT09ZmFsc2U/ImVhY2gi OiJxdWV1ZSJdKGZ1bmN0aW9uKCl7dmFyIEs9by5leHRlbmQoe30sRSksTSxMPXRo aXMubm9kZVR5cGU9PTEmJm8odGhpcykuaXMoIjpoaWRkZW4iKSxKPXRoaXM7Zm9y KE0gaW4gSSl7aWYoSVtNXT09ImhpZGUiJiZMfHxJW01dPT0ic2hvdyImJiFMKXty ZXR1cm4gSy5jb21wbGV0ZS5jYWxsKHRoaXMpfWlmKChNPT0iaGVpZ2h0Inx8TT09 IndpZHRoIikmJnRoaXMuc3R5bGUpe0suZGlzcGxheT1vLmNzcyh0aGlzLCJkaXNw bGF5Iik7Sy5vdmVyZmxvdz10aGlzLnN0eWxlLm92ZXJmbG93fX1pZihLLm92ZXJm bG93IT1udWxsKXt0aGlzLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4ifUsuY3VyQW5p bT1vLmV4dGVuZCh7fSxJKTtvLmVhY2goSSxmdW5jdGlvbihPLFMpe3ZhciBSPW5l dyBvLmZ4KEosSyxPKTtpZigvdG9nZ2xlfHNob3d8aGlkZS8udGVzdChTKSl7UltT PT0idG9nZ2xlIj9MPyJzaG93IjoiaGlkZSI6U10oSSl9ZWxzZXt2YXIgUT1TLnRv U3RyaW5nKCkubWF0Y2goL14oWystXT0pPyhbXGQrLS5dKykoLiopJC8pLFQ9Ui5j dXIodHJ1ZSl8fDA7aWYoUSl7dmFyIE49cGFyc2VGbG9hdChRWzJdKSxQPVFbM118 fCJweCI7aWYoUCE9InB4Iil7Si5zdHlsZVtPXT0oTnx8MSkrUDtUPSgoTnx8MSkv Ui5jdXIodHJ1ZSkpKlQ7Si5zdHlsZVtPXT1UK1B9aWYoUVsxXSl7Tj0oKFFbMV09 PSItPSI/LTE6MSkqTikrVH1SLmN1c3RvbShULE4sUCl9ZWxzZXtSLmN1c3RvbShU LFMsIiIpfX19KTtyZXR1cm4gdHJ1ZX0pfSxzdG9wOmZ1bmN0aW9uKEYsRSl7dmFy IEc9by50aW1lcnM7aWYoRil7dGhpcy5xdWV1ZShbXSl9dGhpcy5lYWNoKGZ1bmN0 aW9uKCl7Zm9yKHZhciBIPUcubGVuZ3RoLTE7SD49MDtILS0pe2lmKEdbSF0uZWxl bT09dGhpcyl7aWYoRSl7R1tIXSh0cnVlKX1HLnNwbGljZShILDEpfX19KTtpZigh RSl7dGhpcy5kZXF1ZXVlKCl9cmV0dXJuIHRoaXN9fSk7by5lYWNoKHtzbGlkZURv d246dCgic2hvdyIsMSksc2xpZGVVcDp0KCJoaWRlIiwxKSxzbGlkZVRvZ2dsZTp0 KCJ0b2dnbGUiLDEpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29w YWNpdHk6ImhpZGUifX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcs SCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShGLEcsSCl9fSk7by5leHRlbmQoe3NwZWVk OmZ1bmN0aW9uKEcsSCxGKXt2YXIgRT10eXBlb2YgRz09PSJvYmplY3QiP0c6e2Nv bXBsZXRlOkZ8fCFGJiZIfHxvLmlzRnVuY3Rpb24oRykmJkcsZHVyYXRpb246Ryxl YXNpbmc6RiYmSHx8SCYmIW8uaXNGdW5jdGlvbihIKSYmSH07RS5kdXJhdGlvbj1v LmZ4Lm9mZj8wOnR5cGVvZiBFLmR1cmF0aW9uPT09Im51bWJlciI/RS5kdXJhdGlv bjpvLmZ4LnNwZWVkc1tFLmR1cmF0aW9uXXx8by5meC5zcGVlZHMuX2RlZmF1bHQ7 RS5vbGQ9RS5jb21wbGV0ZTtFLmNvbXBsZXRlPWZ1bmN0aW9uKCl7aWYoRS5xdWV1 ZSE9PWZhbHNlKXtvKHRoaXMpLmRlcXVldWUoKX1pZihvLmlzRnVuY3Rpb24oRS5v bGQpKXtFLm9sZC5jYWxsKHRoaXMpfX07cmV0dXJuIEV9LGVhc2luZzp7bGluZWFy OmZ1bmN0aW9uKEcsSCxFLEYpe3JldHVybiBFK0YqR30sc3dpbmc6ZnVuY3Rpb24o RyxILEUsRil7cmV0dXJuKCgtTWF0aC5jb3MoRypNYXRoLlBJKS8yKSswLjUpKkYr RX19LHRpbWVyczpbXSxmeDpmdW5jdGlvbihGLEUsRyl7dGhpcy5vcHRpb25zPUU7 dGhpcy5lbGVtPUY7dGhpcy5wcm9wPUc7aWYoIUUub3JpZyl7RS5vcmlnPXt9fX19 KTtvLmZ4LnByb3RvdHlwZT17dXBkYXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5vcHRp b25zLnN0ZXApe3RoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMu bm93LHRoaXMpfShvLmZ4LnN0ZXBbdGhpcy5wcm9wXXx8by5meC5zdGVwLl9kZWZh dWx0KSh0aGlzKTtpZigodGhpcy5wcm9wPT0iaGVpZ2h0Inx8dGhpcy5wcm9wPT0i d2lkdGgiKSYmdGhpcy5lbGVtLnN0eWxlKXt0aGlzLmVsZW0uc3R5bGUuZGlzcGxh eT0iYmxvY2sifX0sY3VyOmZ1bmN0aW9uKEYpe2lmKHRoaXMuZWxlbVt0aGlzLnBy b3BdIT1udWxsJiYoIXRoaXMuZWxlbS5zdHlsZXx8dGhpcy5lbGVtLnN0eWxlW3Ro aXMucHJvcF09PW51bGwpKXtyZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF19dmFy IEU9cGFyc2VGbG9hdChvLmNzcyh0aGlzLmVsZW0sdGhpcy5wcm9wLEYpKTtyZXR1 cm4gRSYmRT4tMTAwMDA/RTpwYXJzZUZsb2F0KG8uY3VyQ1NTKHRoaXMuZWxlbSx0 aGlzLnByb3ApKXx8MH0sY3VzdG9tOmZ1bmN0aW9uKEksSCxHKXt0aGlzLnN0YXJ0 VGltZT1lKCk7dGhpcy5zdGFydD1JO3RoaXMuZW5kPUg7dGhpcy51bml0PUd8fHRo aXMudW5pdHx8InB4Ijt0aGlzLm5vdz10aGlzLnN0YXJ0O3RoaXMucG9zPXRoaXMu c3RhdGU9MDt2YXIgRT10aGlzO2Z1bmN0aW9uIEYoSil7cmV0dXJuIEUuc3RlcChK KX1GLmVsZW09dGhpcy5lbGVtO2lmKEYoKSYmby50aW1lcnMucHVzaChGKSYmIW4p e249c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgSz1vLnRpbWVycztmb3IodmFy IEo9MDtKPEsubGVuZ3RoO0orKyl7aWYoIUtbSl0oKSl7Sy5zcGxpY2UoSi0tLDEp fX1pZighSy5sZW5ndGgpe2NsZWFySW50ZXJ2YWwobik7bj1nfX0sMTMpfX0sc2hv dzpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vcmlnW3RoaXMucHJvcF09by5hdHRy KHRoaXMuZWxlbS5zdHlsZSx0aGlzLnByb3ApO3RoaXMub3B0aW9ucy5zaG93PXRy dWU7dGhpcy5jdXN0b20odGhpcy5wcm9wPT0id2lkdGgifHx0aGlzLnByb3A9PSJo ZWlnaHQiPzE6MCx0aGlzLmN1cigpKTtvKHRoaXMuZWxlbSkuc2hvdygpfSxoaWRl OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIo dGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLmhpZGU9dHJ1 ZTt0aGlzLmN1c3RvbSh0aGlzLmN1cigpLDApfSxzdGVwOmZ1bmN0aW9uKEgpe3Zh ciBHPWUoKTtpZihIfHxHPj10aGlzLm9wdGlvbnMuZHVyYXRpb24rdGhpcy5zdGFy dFRpbWUpe3RoaXMubm93PXRoaXMuZW5kO3RoaXMucG9zPXRoaXMuc3RhdGU9MTt0 aGlzLnVwZGF0ZSgpO3RoaXMub3B0aW9ucy5jdXJBbmltW3RoaXMucHJvcF09dHJ1 ZTt2YXIgRT10cnVlO2Zvcih2YXIgRiBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSl7 aWYodGhpcy5vcHRpb25zLmN1ckFuaW1bRl0hPT10cnVlKXtFPWZhbHNlfX1pZihF KXtpZih0aGlzLm9wdGlvbnMuZGlzcGxheSE9bnVsbCl7dGhpcy5lbGVtLnN0eWxl Lm92ZXJmbG93PXRoaXMub3B0aW9ucy5vdmVyZmxvdzt0aGlzLmVsZW0uc3R5bGUu ZGlzcGxheT10aGlzLm9wdGlvbnMuZGlzcGxheTtpZihvLmNzcyh0aGlzLmVsZW0s ImRpc3BsYXkiKT09Im5vbmUiKXt0aGlzLmVsZW0uc3R5bGUuZGlzcGxheT0iYmxv Y2sifX1pZih0aGlzLm9wdGlvbnMuaGlkZSl7byh0aGlzLmVsZW0pLmhpZGUoKX1p Zih0aGlzLm9wdGlvbnMuaGlkZXx8dGhpcy5vcHRpb25zLnNob3cpe2Zvcih2YXIg SSBpbiB0aGlzLm9wdGlvbnMuY3VyQW5pbSl7by5hdHRyKHRoaXMuZWxlbS5zdHls ZSxJLHRoaXMub3B0aW9ucy5vcmlnW0ldKX19dGhpcy5vcHRpb25zLmNvbXBsZXRl LmNhbGwodGhpcy5lbGVtKX1yZXR1cm4gZmFsc2V9ZWxzZXt2YXIgSj1HLXRoaXMu c3RhcnRUaW1lO3RoaXMuc3RhdGU9Si90aGlzLm9wdGlvbnMuZHVyYXRpb247dGhp cy5wb3M9by5lYXNpbmdbdGhpcy5vcHRpb25zLmVhc2luZ3x8KG8uZWFzaW5nLnN3 aW5nPyJzd2luZyI6ImxpbmVhciIpXSh0aGlzLnN0YXRlLEosMCwxLHRoaXMub3B0 aW9ucy5kdXJhdGlvbik7dGhpcy5ub3c9dGhpcy5zdGFydCsoKHRoaXMuZW5kLXRo aXMuc3RhcnQpKnRoaXMucG9zKTt0aGlzLnVwZGF0ZSgpfXJldHVybiB0cnVlfX07 by5leHRlbmQoby5meCx7c3BlZWRzOntzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVs dDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oRSl7by5hdHRyKEUuZWxlbS5z dHlsZSwib3BhY2l0eSIsRS5ub3cpfSxfZGVmYXVsdDpmdW5jdGlvbihFKXtpZihF LmVsZW0uc3R5bGUmJkUuZWxlbS5zdHlsZVtFLnByb3BdIT1udWxsKXtFLmVsZW0u c3R5bGVbRS5wcm9wXT1FLm5vdytFLnVuaXR9ZWxzZXtFLmVsZW1bRS5wcm9wXT1F Lm5vd319fX0pO2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGlu Z0NsaWVudFJlY3Qpe28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0p e3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVy RG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1sw XSl9dmFyIEc9dGhpc1swXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxKPXRoaXNb MF0ub3duZXJEb2N1bWVudCxGPUouYm9keSxFPUouZG9jdW1lbnRFbGVtZW50LEw9 RS5jbGllbnRUb3B8fEYuY2xpZW50VG9wfHwwLEs9RS5jbGllbnRMZWZ0fHxGLmNs aWVudExlZnR8fDAsST1HLnRvcCsoc2VsZi5wYWdlWU9mZnNldHx8by5ib3hNb2Rl bCYmRS5zY3JvbGxUb3B8fEYuc2Nyb2xsVG9wKS1MLEg9Ry5sZWZ0KyhzZWxmLnBh Z2VYT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbExlZnR8fEYuc2Nyb2xsTGVm dCktSztyZXR1cm57dG9wOkksbGVmdDpIfX19ZWxzZXtvLmZuLm9mZnNldD1mdW5j dGlvbigpe2lmKCF0aGlzWzBdKXtyZXR1cm57dG9wOjAsbGVmdDowfX1pZih0aGlz WzBdPT09dGhpc1swXS5vd25lckRvY3VtZW50LmJvZHkpe3JldHVybiBvLm9mZnNl dC5ib2R5T2Zmc2V0KHRoaXNbMF0pfW8ub2Zmc2V0LmluaXRpYWxpemVkfHxvLm9m ZnNldC5pbml0aWFsaXplKCk7dmFyIEo9dGhpc1swXSxHPUoub2Zmc2V0UGFyZW50 LEY9SixPPUoub3duZXJEb2N1bWVudCxNLEg9Ty5kb2N1bWVudEVsZW1lbnQsSz1P LmJvZHksTD1PLmRlZmF1bHRWaWV3LEU9TC5nZXRDb21wdXRlZFN0eWxlKEosbnVs bCksTj1KLm9mZnNldFRvcCxJPUoub2Zmc2V0TGVmdDt3aGlsZSgoSj1KLnBhcmVu dE5vZGUpJiZKIT09SyYmSiE9PUgpe009TC5nZXRDb21wdXRlZFN0eWxlKEosbnVs bCk7Ti09Si5zY3JvbGxUb3AsSS09Si5zY3JvbGxMZWZ0O2lmKEo9PT1HKXtOKz1K Lm9mZnNldFRvcCxJKz1KLm9mZnNldExlZnQ7aWYoby5vZmZzZXQuZG9lc05vdEFk ZEJvcmRlciYmIShvLm9mZnNldC5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxs cyYmL150KGFibGV8ZHxoKSQvaS50ZXN0KEoudGFnTmFtZSkpKXtOKz1wYXJzZUlu dChNLmJvcmRlclRvcFdpZHRoLDEwKXx8MCxJKz1wYXJzZUludChNLmJvcmRlckxl ZnRXaWR0aCwxMCl8fDB9Rj1HLEc9Si5vZmZzZXRQYXJlbnR9aWYoby5vZmZzZXQu c3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlJiZNLm92ZXJmbG93 IT09InZpc2libGUiKXtOKz1wYXJzZUludChNLmJvcmRlclRvcFdpZHRoLDEwKXx8 MCxJKz1wYXJzZUludChNLmJvcmRlckxlZnRXaWR0aCwxMCl8fDB9RT1NfWlmKEUu cG9zaXRpb249PT0icmVsYXRpdmUifHxFLnBvc2l0aW9uPT09InN0YXRpYyIpe04r PUsub2Zmc2V0VG9wLEkrPUsub2Zmc2V0TGVmdH1pZihFLnBvc2l0aW9uPT09ImZp eGVkIil7Tis9TWF0aC5tYXgoSC5zY3JvbGxUb3AsSy5zY3JvbGxUb3ApLEkrPU1h dGgubWF4KEguc2Nyb2xsTGVmdCxLLnNjcm9sbExlZnQpfXJldHVybnt0b3A6Tixs ZWZ0Okl9fX1vLm9mZnNldD17aW5pdGlhbGl6ZTpmdW5jdGlvbigpe2lmKHRoaXMu aW5pdGlhbGl6ZWQpe3JldHVybn12YXIgTD1kb2N1bWVudC5ib2R5LEY9ZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSCxHLE4sSSxNLEUsSj1MLnN0eWxlLm1h cmdpblRvcCxLPSc8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDts ZWZ0OjA7bWFyZ2luOjA7Ym9yZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3 aWR0aDoxcHg7aGVpZ2h0OjFweDsiPjxkaXY+PC9kaXY+PC9kaXY+PHRhYmxlIHN0 eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7bWFyZ2luOjA7Ym9y ZGVyOjVweCBzb2xpZCAjMDAwO3BhZGRpbmc6MDt3aWR0aDoxcHg7aGVpZ2h0OjFw eDsiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZD48L3Rk PjwvdHI+PC90YWJsZT4nO009e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVm dDowLG1hcmdpbjowLGJvcmRlcjowLHdpZHRoOiIxcHgiLGhlaWdodDoiMXB4Iix2 aXNpYmlsaXR5OiJoaWRkZW4ifTtmb3IoRSBpbiBNKXtGLnN0eWxlW0VdPU1bRV19 Ri5pbm5lckhUTUw9SztMLmluc2VydEJlZm9yZShGLEwuZmlyc3RDaGlsZCk7SD1G LmZpcnN0Q2hpbGQsRz1ILmZpcnN0Q2hpbGQsST1ILm5leHRTaWJsaW5nLmZpcnN0 Q2hpbGQuZmlyc3RDaGlsZDt0aGlzLmRvZXNOb3RBZGRCb3JkZXI9KEcub2Zmc2V0 VG9wIT09NSk7dGhpcy5kb2VzQWRkQm9yZGVyRm9yVGFibGVBbmRDZWxscz0oSS5v ZmZzZXRUb3A9PT01KTtILnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iLEguc3R5bGUu cG9zaXRpb249InJlbGF0aXZlIjt0aGlzLnN1YnRyYWN0c0JvcmRlckZvck92ZXJm bG93Tm90VmlzaWJsZT0oRy5vZmZzZXRUb3A9PT0tNSk7TC5zdHlsZS5tYXJnaW5U b3A9IjFweCI7dGhpcy5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldD0o TC5vZmZzZXRUb3A9PT0wKTtMLnN0eWxlLm1hcmdpblRvcD1KO0wucmVtb3ZlQ2hp bGQoRik7dGhpcy5pbml0aWFsaXplZD10cnVlfSxib2R5T2Zmc2V0OmZ1bmN0aW9u KEUpe28ub2Zmc2V0LmluaXRpYWxpemVkfHxvLm9mZnNldC5pbml0aWFsaXplKCk7 dmFyIEc9RS5vZmZzZXRUb3AsRj1FLm9mZnNldExlZnQ7aWYoby5vZmZzZXQuZG9l c05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQpe0crPXBhcnNlSW50KG8uY3Vy Q1NTKEUsIm1hcmdpblRvcCIsdHJ1ZSksMTApfHwwLEYrPXBhcnNlSW50KG8uY3Vy Q1NTKEUsIm1hcmdpbkxlZnQiLHRydWUpLDEwKXx8MH1yZXR1cm57dG9wOkcsbGVm dDpGfX19O28uZm4uZXh0ZW5kKHtwb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBJPTAs SD0wLEY7aWYodGhpc1swXSl7dmFyIEc9dGhpcy5vZmZzZXRQYXJlbnQoKSxKPXRo aXMub2Zmc2V0KCksRT0vXmJvZHl8aHRtbCQvaS50ZXN0KEdbMF0udGFnTmFtZSk/ e3RvcDowLGxlZnQ6MH06Ry5vZmZzZXQoKTtKLnRvcC09aih0aGlzLCJtYXJnaW5U b3AiKTtKLmxlZnQtPWoodGhpcywibWFyZ2luTGVmdCIpO0UudG9wKz1qKEcsImJv cmRlclRvcFdpZHRoIik7RS5sZWZ0Kz1qKEcsImJvcmRlckxlZnRXaWR0aCIpO0Y9 e3RvcDpKLnRvcC1FLnRvcCxsZWZ0OkoubGVmdC1FLmxlZnR9fXJldHVybiBGfSxv ZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXt2YXIgRT10aGlzWzBdLm9mZnNldFBhcmVu dHx8ZG9jdW1lbnQuYm9keTt3aGlsZShFJiYoIS9eYm9keXxodG1sJC9pLnRlc3Qo RS50YWdOYW1lKSYmby5jc3MoRSwicG9zaXRpb24iKT09InN0YXRpYyIpKXtFPUUu b2Zmc2V0UGFyZW50fXJldHVybiBvKEUpfX0pO28uZWFjaChbIkxlZnQiLCJUb3Ai XSxmdW5jdGlvbihGLEUpe3ZhciBHPSJzY3JvbGwiK0U7by5mbltHXT1mdW5jdGlv bihIKXtpZighdGhpc1swXSl7cmV0dXJuIG51bGx9cmV0dXJuIEghPT1nP3RoaXMu ZWFjaChmdW5jdGlvbigpe3RoaXM9PWx8fHRoaXM9PWRvY3VtZW50P2wuc2Nyb2xs VG8oIUY/SDpvKGwpLnNjcm9sbExlZnQoKSxGP0g6byhsKS5zY3JvbGxUb3AoKSk6 dGhpc1tHXT1IfSk6dGhpc1swXT09bHx8dGhpc1swXT09ZG9jdW1lbnQ/c2VsZltG PyJwYWdlWU9mZnNldCI6InBhZ2VYT2Zmc2V0Il18fG8uYm94TW9kZWwmJmRvY3Vt ZW50LmRvY3VtZW50RWxlbWVudFtHXXx8ZG9jdW1lbnQuYm9keVtHXTp0aGlzWzBd W0ddfX0pO28uZWFjaChbIkhlaWdodCIsIldpZHRoIl0sZnVuY3Rpb24oSSxHKXt2 YXIgRT1JPyJMZWZ0IjoiVG9wIixIPUk/IlJpZ2h0IjoiQm90dG9tIixGPUcudG9M b3dlckNhc2UoKTtvLmZuWyJpbm5lciIrR109ZnVuY3Rpb24oKXtyZXR1cm4gdGhp c1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsInBhZGRpbmciKTpudWxsfTtvLmZu WyJvdXRlciIrR109ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF0/by5jc3ModGhp c1swXSxGLGZhbHNlLEs/Im1hcmdpbiI6ImJvcmRlciIpOm51bGx9O3ZhciBKPUcu dG9Mb3dlckNhc2UoKTtvLmZuW0pdPWZ1bmN0aW9uKEspe3JldHVybiB0aGlzWzBd PT1sP2RvY3VtZW50LmNvbXBhdE1vZGU9PSJDU1MxQ29tcGF0IiYmZG9jdW1lbnQu ZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddfHxkb2N1bWVudC5ib2R5WyJjbGll bnQiK0ddOnRoaXNbMF09PWRvY3VtZW50P01hdGgubWF4KGRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudFsiY2xpZW50IitHXSxkb2N1bWVudC5ib2R5WyJzY3JvbGwiK0dd LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsic2Nyb2xsIitHXSxkb2N1bWVudC5i b2R5WyJvZmZzZXQiK0ddLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsib2Zmc2V0 IitHXSk6Sz09PWc/KHRoaXMubGVuZ3RoP28uY3NzKHRoaXNbMF0sSik6bnVsbCk6 dGhpcy5jc3MoSix0eXBlb2YgSz09PSJzdHJpbmciP0s6SysicHgiKX19KX0pKCk7 CgkKfQp2YXIgalF1ZXJ5TG9hZGVkID0gdHJ1ZTs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=busops-min.js Content-Type: application/javascript; name=busops-min.js Content-Location: http://images.bestbuy.com/BestBuy_US/js/busops-min.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gcG9wTmV3KGIsZCxhLGMpe2lmKCEoZCkpe2Q9ODAwfWlmKCEoYSkp e2E9NjAwfWlmKCEoYykpe2M9IndpZHRoPSIrZCsiLGhlaWdodD0iK2ErIix0b29s YmFyPTAsbG9jYXRpb249MCxkaXJlY3Rvcmllcz0wLHN0YXR1c2Jhcj0wLG1lbnVi YXI9MCxzY3JvbGxiYXJzPTEscmVzaXphYmxlPTEifWVsc2V7Yz0id2lkdGg9Iitk KyIsaGVpZ2h0PSIrYSsiLCIrY312YXIgZT13aW5kb3cub3BlbihiLCJCZXN0QnV5 IixjKTtlLmZvY3VzKCk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGdldFF1ZXJ5VmFy aWFibGUoYSl7dmFyIGM9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmco MSk7dmFyIGQ9Yy5zcGxpdCgiJiIpO2Zvcih2YXIgYj0wO2I8ZC5sZW5ndGg7Yisr KXt2YXIgZT1kW2JdLnNwbGl0KCI9Iik7aWYoZVswXT09YSl7cmV0dXJuIGVbMV19 fX1mdW5jdGlvbiBnZXRRVihiLGEpe3ZhciBmPWEucmVwbGFjZSgiPyIsIiYiKTtx dWVyeT1mLnN1YnN0cmluZygxKTt2YXIgZD1xdWVyeS5zcGxpdCgiJiIpO2Zvcih2 YXIgYz0wO2M8ZC5sZW5ndGg7YysrKXt2YXIgZT1kW2NdLnNwbGl0KCI9Iik7aWYo ZVswXT09Yil7cmV0dXJuIGVbMV19fX1mdW5jdGlvbiBzd2l0Y2hLaW9zayhhKXt2 YXIgYz1hKyJfcmVnIjt2YXIgYj1hKyJfa2lvc2siO2lmKGlzS2lvc2spe2RvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGMpLnN0eWxlLmRpc3BsYXk9Im5vbmUiO2RvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKGIpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn19ZnVu Y3Rpb24gcmVhZENvb2tpZShiKXt2YXIgZj1iKyI9Ijt2YXIgYT1kb2N1bWVudC5j b29raWUuc3BsaXQoIjsiKTtmb3IodmFyIGQ9MDtkPGEubGVuZ3RoO2QrKyl7dmFy IGU9YVtkXTt3aGlsZShlLmNoYXJBdCgwKT09IiAiKXtlPWUuc3Vic3RyaW5nKDEs ZS5sZW5ndGgpfWlmKGUuaW5kZXhPZihmKT09MCl7cmV0dXJuIGUuc3Vic3RyaW5n KGYubGVuZ3RoLGUubGVuZ3RoKX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gc2V0Q29v a2llKGIsYyxhKXt2YXIgZD1uZXcgRGF0ZSgpO2Quc2V0RGF0ZShkLmdldERhdGUo KSthKTtkb2N1bWVudC5jb29raWU9YisiPSIrZXNjYXBlKGMpKyI7ZG9tYWluPS5i ZXN0YnV5LmNvbTsiKygoYT09bnVsbCk/IiI6IjtleHBpcmVzPSIrZC50b0dNVFN0 cmluZygpKX1HZXRDb29raWU9cmVhZENvb2tpZTtmdW5jdGlvbiBhZGRPbmxvYWRF dmVudChiKXtpZih0eXBlb2Ygd2luZG93LmFkZEV2ZW50TGlzdGVuZXIhPSJ1bmRl ZmluZWQiKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYixmYWxzZSl9 ZWxzZXtpZih0eXBlb2Ygd2luZG93LmF0dGFjaEV2ZW50IT0idW5kZWZpbmVkIil7 d2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLGIpfWVsc2V7aWYod2luZG93Lm9u bG9hZCE9bnVsbCl7dmFyIGE9d2luZG93Lm9ubG9hZDt3aW5kb3cub25sb2FkPWZ1 bmN0aW9uKGMpe2EoYyk7d2luZG93W2JdKCl9fWVsc2V7d2luZG93Lm9ubG9hZD1i fX19fWZ1bmN0aW9uIGdldFByb3RvY29sKCl7cmV0dXJuIHNlY0NoYW5uZWx9ZnVu Y3Rpb24gZ2V0UG9zaUxlZnQoYyl7dmFyIGI9Yzt2YXIgYT0wO3doaWxlKGIpe2Er PWIub2Zmc2V0TGVmdDtiPWIub2Zmc2V0UGFyZW50fXJldHVybiBhfWZ1bmN0aW9u IGdldFBvc2lUb3AoYyl7dmFyIGE9Yzt2YXIgYj0wO3doaWxlKGEpe2IrPWEub2Zm c2V0VG9wO2E9YS5vZmZzZXRQYXJlbnR9cmV0dXJuIGJ9ZnVuY3Rpb24gcGJwb3Ao YyxkKXt2YXIgYT1nZXRQb3NpTGVmdChkKTt2YXIgYj0oLTMwMCthKT4wPygtMzAw K2EpOigxNTArYSk7Yy5zdHlsZS5sZWZ0PWIrInB4IjtjLnN0eWxlLnRvcD0tMTAw K2dldFBvc2lUb3AoZCkrInB4IjtjLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn1mdW5j dGlvbiBhZGRDb21tYXMoYil7eD1iLnNwbGl0KCIuIik7eDE9eFswXTt4Mj14Lmxl bmd0aD4xPyIuIit4WzFdOiIiO3ZhciBhPS8oXGQrKShcZHszfSkvO3doaWxlKGEu dGVzdCh4MSkpe3gxPXgxLnJlcGxhY2UoYSwiJDEsJDIiKX1yZXR1cm4geDEreDJ9 ZnVuY3Rpb24gY2FsY1NhdmluZ3MoYSxjKXt2YXIgYj1hLXBhcnNlRmxvYXQoYy5y ZXBsYWNlKC8sL2csIiIpKTtyZXR1cm4gYi50b0ZpeGVkKDIpfWZ1bmN0aW9uICQk KGEpe3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKX1GdW5jdGlvbi5w cm90b3R5cGUuYmluZD1mdW5jdGlvbihiKXt2YXIgYz10aGlzLGE9ZnVuY3Rpb24o KXtyZXR1cm4gYy5hcHBseShiLGFyZ3VtZW50cyl9O3JldHVybiBhfTtCQlk9e307 QkJZLnV0aWw9e307QkJZLnV0aWwucHJvdG90eXBlPXtzZXREaXNwbGF5OmZ1bmN0 aW9uKGIsYSl7Yi5zdHlsZS5kaXNwbGF5PWF9LHNldFN0eWxlQXR0czpmdW5jdGlv bihjLGEsYil7Yy5zdHlsZVthXT1iKyJweCJ9LGdldFN0eWxlQXR0czpmdW5jdGlv bihiLGEpe3JldHVybiBiLnN0eWxlW2FdfSxjaGFuZ2VPcGFjaXR5OmZ1bmN0aW9u KGIsYSl7dmFyIGM9Yi5zdHlsZTtjLm9wYWNpdHk9KGEvMTAwKTtjLk1vek9wYWNp dHk9KGEvMTAwKTtjLktodG1sT3BhY2l0eT0oYS8xMDApO2MuZmlsdGVyPSJhbHBo YShvcGFjaXR5PSIrYSsiKSJ9LGZpbmRQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIg Yj1jdXJ0b3A9MDtpZihhLm9mZnNldFBhcmVudCl7Yj1hLm9mZnNldExlZnQ7Y3Vy dG9wPWEub2Zmc2V0VG9wO2ZpcnN0cGFyZW50PXRydWU7d2hpbGUoYT1hLm9mZnNl dFBhcmVudCl7aWYoZmlyc3RwYXJlbnQpe2IrPWEub2Zmc2V0TGVmdDtmaXJzdHBh cmVudD1mYWxzZX1jdXJ0b3ArPWEub2Zmc2V0VG9wfX1yZXR1cm5bYixjdXJ0b3Bd fSxmaW5kSGVpZ2h0V2lkdGg6ZnVuY3Rpb24oYyl7dmFyIGE9Yy5vZmZzZXRIZWln aHQ7dmFyIGI9Yy5vZmZzZXRXaWR0aDtyZXR1cm5bYSxiXX19O0JCWS51dGlsLkV2 ZW50PXt9O0JCWS51dGlsLkV2ZW50LnByb3RvdHlwZT17YWRkTGlzdGVuZXI6ZnVu Y3Rpb24oYyxhLGIpe2lmKGMuYXR0YWNoRXZlbnQpe2MuYXR0YWNoRXZlbnQoIm9u IithLGIpfWVsc2V7aWYoYy5hZGRFdmVudExpc3RlbmVyKXtjLmFkZEV2ZW50TGlz dGVuZXIoYSxiLGZhbHNlKX1lbHNle3JldHVybiBmYWxzZX19cmV0dXJuIHRydWV9 LHJlbW92ZUxpc3RlbmVyOmZ1bmN0aW9uKGMsYSxiKXtpZihjLmRldGFjaEV2ZW50 KXtjLmRldGFjaEV2ZW50KCJvbiIrYSxiKX1lbHNle2lmKGMucmVtb3ZlRXZlbnRM aXN0ZW5lcil7Yy5yZW1vdmVFdmVudExpc3RlbmVyKGEsYixmYWxzZSl9ZWxzZXty ZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlfX07QkJZLmRodG1sPXt9O0JCWS5kaHRt bC5Ud2Vlbj17fTtCQlkuZGh0bWwuVHdlZW4ucHJvdG90eXBlPXtlYXNpbmc6ZnVu Y3Rpb24oZyxhLGUsZCxjKXt2YXIgZj1hLWc7dmFyIGI9ZysoTWF0aC5wb3coKCgx L2UpKmQpLGMpKmYpO3JldHVybiBNYXRoLmNlaWwoYil9LGJvdW5jZTpmdW5jdGlv bihlLGEsYyxiKXt2YXIgZD1hLWU7aWYoKGIvPWMpPCgxLzIuNzUpKXtyZXR1cm4g ZCooNy41NjI1KmIqYikrZX1lbHNle2lmKGI8KDIvMi43NSkpe3JldHVybiBkKig3 LjU2MjUqKGItPSgxLjUvMi43NSkpKmIrMC43NSkrZX1lbHNle2lmKGI8KDIuNS8y Ljc1KSl7cmV0dXJuIGQqKDcuNTYyNSooYi09KDIuMjUvMi43NSkpKmIrMC45Mzc1 KStlfWVsc2V7cmV0dXJuIGQqKDcuNTYyNSooYi09KDIuNjI1LzIuNzUpKSpiKzAu OTg0Mzc1KStlfX19fSxiYWNrOmZ1bmN0aW9uKGYsYSxkLGIsYyl7dmFyIGU9YS1m O2lmKHR5cGVvZiBjPT0idW5kZWZpbmVkIil7Yz0xLjcwMTU4fXJldHVybiBlKigo Yj1iL2QtMSkqYiooKGMrMSkqYitjKSsxKStmfX07QkJZLmRodG1sLkFuaW1hdGlv bj1mdW5jdGlvbihhKXt0aGlzLmluaXQoYSl9O0JCWS5kaHRtbC5BbmltYXRpb24u cHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKGEpe3RoaXMubm93PW5ldyBEYXRlKCku Z2V0VGltZSgpO3RoaXMuZnJhbWVyYXRlPWEuZnJhbWVyYXRlO3RoaXMuc2Vjb25k cz1hLnNlY29uZHM7dGhpcy5lbmQ9dGhpcy5ub3crdGhpcy5zZWNvbmRzO3RoaXMu ZG9tZWxlbWVudD1hLmRvbWVsZW1lbnQ7dGhpcy5kdXJhdGlvbj1NYXRoLnJvdW5k KHRoaXMuZW5kLXRoaXMubm93KTt0aGlzLnRvdGFsZnJhbWVzPU1hdGgucm91bmQo dGhpcy5kdXJhdGlvbi90aGlzLmZyYW1lcmF0ZSk7dGhpcy5zdGFydHBvaW50PWEu ZnJvbTt0aGlzLmVuZHBvaW50PWEudG87dGhpcy5tZXRob2Q9YS5tZXRob2Q7dGhp cy5hbmltYXRpb247dGhpcy5jdXJyZW50ZnJhbWU9MH0sYW5pbWF0ZTpmdW5jdGlv bihhKXt0aGlzLmFjdGlvbj1hO3RoaXMuYW5pbWF0aW9uPXNldEludGVydmFsKHRo aXNbdGhpcy5hY3Rpb25dLmJpbmQodGhpcyksdGhpcy5mcmFtZXJhdGUpfSxwbGF5 OmZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50ZnJhbWUrKzt0aGlzLnRvd2lkdGg9QkJZ LmRodG1sLlR3ZWVuLnByb3RvdHlwZVt0aGlzLm1ldGhvZF0odGhpcy5zdGFydHBv aW50LHRoaXMuZW5kcG9pbnQsdGhpcy50b3RhbGZyYW1lcyx0aGlzLmN1cnJlbnRm cmFtZSwzKTtCQlkudXRpbC5wcm90b3R5cGUuc2V0U3R5bGVBdHRzKHRoaXMuZG9t ZWxlbWVudCwiaGVpZ2h0Iix0aGlzLnRvd2lkdGgpO2lmKHRoaXMuY3VycmVudGZy YW1lPj10aGlzLnRvdGFsZnJhbWVzKXt0aGlzLnN0b3AoKX19LHJld2luZDpmdW5j dGlvbigpe3RoaXMuY3VycmVudGZyYW1lKys7dGhpcy5mcm9td2lkdGg9QkJZLmRo dG1sLlR3ZWVuLnByb3RvdHlwZVt0aGlzLm1ldGhvZF0odGhpcy5lbmRwb2ludCx0 aGlzLnN0YXJ0cG9pbnQsdGhpcy50b3RhbGZyYW1lcyx0aGlzLmN1cnJlbnRmcmFt ZSwxKTtCQlkudXRpbC5wcm90b3R5cGUuc2V0U3R5bGVBdHRzKHRoaXMuZG9tZWxl bWVudCwiaGVpZ2h0Iix0aGlzLmZyb213aWR0aCk7aWYodGhpcy5jdXJyZW50ZnJh bWU+PXRoaXMudG90YWxmcmFtZXMpe3RoaXMuc3RvcCgpfX0sc3RvcDpmdW5jdGlv bigpe2NsZWFySW50ZXJ2YWwodGhpcy5hbmltYXRpb24pO3RoaXMuY3VycmVudGZy YW1lPTB9fTtCQlkuZGh0bWwuUERQU2xpZGVyPWZ1bmN0aW9uKGEpe3RoaXMudHJp Z2dlcj0kJCgiIithLnRyaWdnZXJlbGVtZW50KyIiKTt0aGlzLmFuaW1hdGVkPSQk KCIiK2EuYW5pbWF0ZWQrIiIpO3RoaXMuY29udGVudGhlaWdodD1wYXJzZUludCgk JCgiIithLmNvbnRlbnQrIiIpLm9mZnNldEhlaWdodCk7dGhpcy5tZXRob2Q9YS5t ZXRob2Q7dGhpcy5pc09wZW49ZmFsc2U7dGhpcy5vcGVuc2xpZGVyPW5ldyBCQlku ZGh0bWwuQW5pbWF0aW9uKHtkb21lbGVtZW50OnRoaXMuYW5pbWF0ZWQsZnJhbWVy YXRlOjUwLHNlY29uZHM6MzAwLHRvOnRoaXMuY29udGVudGhlaWdodCxmcm9tOjEs bWV0aG9kOnRoaXMubWV0aG9kfSk7dGhpcy5jbG9zZXNsaWRlcj1uZXcgQkJZLmRo dG1sLkFuaW1hdGlvbih7ZG9tZWxlbWVudDp0aGlzLmFuaW1hdGVkLGZyYW1lcmF0 ZTo1MCxzZWNvbmRzOjMwMCx0bzp0aGlzLmNvbnRlbnRoZWlnaHQsZnJvbToxLG1l dGhvZDp0aGlzLm1ldGhvZH0pO0JCWS51dGlsLkV2ZW50LnByb3RvdHlwZS5hZGRM aXN0ZW5lcih0aGlzLnRyaWdnZXIsImNsaWNrIix0aGlzLmFuaW1hdGUuYmluZCh0 aGlzKSl9O0JCWS5kaHRtbC5QRFBTbGlkZXIucHJvdG90eXBlPXthbmltYXRlOmZ1 bmN0aW9uKCl7aWYodGhpcy5pc09wZW4pe3RoaXMuY2xvc2VzbGlkZXIuYW5pbWF0 ZSgicmV3aW5kIik7dGhpcy5pc09wZW49ZmFsc2U7cmV0dXJuIGZhbHNlfWVsc2V7 dGhpcy5vcGVuc2xpZGVyLmFuaW1hdGUoInBsYXkiKTt0aGlzLmlzT3Blbj10cnVl O3JldHVybiBmYWxzZX19fTtCQlkuZGh0bWwuQ2Fyb3VzZWw9ZnVuY3Rpb24oYSl7 dGhpcy52aXNpYmxlRWxlbWVudHM9YS52aXNpYmxlO3RoaXMuaW5jcmVtZW50TnVt PWEuaW5jcmVtZW50O3RoaXMuY29udGVudEZyYW1lPSQkKCIiK2EuY29udGVudGZy YW1lKyIiKTt0aGlzLnByZXZCdXR0b249JCQoIiIrYS5iYWNrYnV0dG9uKyIiKTt0 aGlzLm5leHRCdXR0b249JCQoIiIrYS5mb3J3YXJkYnV0dG9uKyIiKTt0aGlzLmNh cm91c2VsQ29udGVudD1hLmNvbnRlbnQ7dGhpcy5pc1J1bm5pbmc9ZmFsc2U7dGhp cy5pbml0KCl9O0JCWS5kaHRtbC5DYXJvdXNlbC5wcm90b3R5cGU9e2luaXQ6ZnVu Y3Rpb24oKXt0aGlzLmN1cnJlbnRJbmRleD0wO3RoaXMuc2Nyb2xsSW5jcmVtZW50 PTA7dGhpcy5pbmNyZW1lbnRWYWx1ZT0wO3RoaXMuY29scz0kJCgiIit0aGlzLmNh cm91c2VsQ29udGVudCsiIikuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpIik7dGhp cy5jaGVja0Rpc2FibGUoKTtCQlkudXRpbC5FdmVudC5wcm90b3R5cGUuYWRkTGlz dGVuZXIodGhpcy5wcmV2QnV0dG9uLCJjbGljayIsdGhpcy5nZXRQcmV2LmJpbmQo dGhpcykpO0JCWS51dGlsLkV2ZW50LnByb3RvdHlwZS5hZGRMaXN0ZW5lcih0aGlz Lm5leHRCdXR0b24sImNsaWNrIix0aGlzLmdldE5leHQuYmluZCh0aGlzKSl9LGdl dFByZXY6ZnVuY3Rpb24oKXt0aGlzLndpZHRoPXRoaXMuY29sc1swXS5vZmZzZXRX aWR0aDtpZigodGhpcy5jdXJyZW50SW5kZXgtdGhpcy5pbmNyZW1lbnROdW0pPD0w KXt0aGlzLmN1cnJlbnRJbmRleD0wfWVsc2V7dGhpcy5jdXJyZW50SW5kZXg9cGFy c2VJbnQodGhpcy5jdXJyZW50SW5kZXgtKHRoaXMuY3VycmVudEluZGV4LXRoaXMu aW5jcmVtZW50TnVtKSl9dGhpcy5zY3JvbGxJbmNyZW1lbnQ9cGFyc2VJbnQodGhp cy5jdXJyZW50SW5kZXgqdGhpcy53aWR0aCk7aWYodGhpcy5pc1J1bm5pbmc9PXRy dWUpe3JldHVybn10aGlzLmludGVyPXNldEludGVydmFsKHRoaXMuc2Nyb2xsUHJl di5iaW5kKHRoaXMpLDEwKTt0aGlzLmlzUnVubmluZz10cnVlfSxnZXROZXh0OmZ1 bmN0aW9uKCl7dGhpcy53aWR0aD10aGlzLmNvbHNbMF0ub2Zmc2V0V2lkdGg7dGhp cy5jdXJyZW50SW5kZXg9cGFyc2VJbnQoKHRoaXMuY3VycmVudEluZGV4K3RoaXMu aW5jcmVtZW50TnVtKSk7aWYoKHRoaXMuY3VycmVudEluZGV4K3RoaXMudmlzaWJs ZUVsZW1lbnRzKT49dGhpcy5jb2xzLmxlbmd0aCl7dGhpcy5jdXJyZW50SW5kZXg9 dGhpcy5jdXJyZW50SW5kZXgtKCh0aGlzLmN1cnJlbnRJbmRleCt0aGlzLnZpc2li bGVFbGVtZW50cyktdGhpcy5jb2xzLmxlbmd0aCl9dGhpcy5zY3JvbGxJbmNyZW1l bnQ9cGFyc2VJbnQodGhpcy5jdXJyZW50SW5kZXgqdGhpcy53aWR0aCk7aWYodGhp cy5pc1J1bm5pbmc9PXRydWUpe3JldHVybn10aGlzLmludGVyPXNldEludGVydmFs KHRoaXMuc2Nyb2xsTmV4dC5iaW5kKHRoaXMpLDEwKTt0aGlzLmlzUnVubmluZz10 cnVlfSxzY3JvbGxOZXh0OmZ1bmN0aW9uKCl7aWYodGhpcy5pbmNyZW1lbnRWYWx1 ZT4tKHRoaXMuc2Nyb2xsSW5jcmVtZW50KSl7dGhpcy5pbmNyZW1lbnRWYWx1ZT10 aGlzLmluY3JlbWVudFZhbHVlLTE1O3RoaXMuY29udGVudEZyYW1lLnN0eWxlLmxl ZnQ9dGhpcy5pbmNyZW1lbnRWYWx1ZSsicHgifWVsc2V7Y2xlYXJJbnRlcnZhbCh0 aGlzLmludGVyKTt0aGlzLmNoZWNrRGlzYWJsZSgpO3RoaXMuaXNSdW5uaW5nPWZh bHNlfX0sc2Nyb2xsUHJldjpmdW5jdGlvbigpe2lmKHRoaXMuaW5jcmVtZW50VmFs dWU8LSh0aGlzLnNjcm9sbEluY3JlbWVudCkpe3RoaXMuaW5jcmVtZW50VmFsdWU9 dGhpcy5pbmNyZW1lbnRWYWx1ZSsxNTt0aGlzLmNvbnRlbnRGcmFtZS5zdHlsZS5s ZWZ0PXRoaXMuaW5jcmVtZW50VmFsdWUrInB4In1lbHNle2NsZWFySW50ZXJ2YWwo dGhpcy5pbnRlcik7dGhpcy5jaGVja0Rpc2FibGUoKTt0aGlzLmlzUnVubmluZz1m YWxzZX19LGNoZWNrRGlzYWJsZTpmdW5jdGlvbigpe3ZhciBhPSgodGhpcy5jdXJy ZW50SW5kZXg9PTApKT9CQlkudXRpbC5wcm90b3R5cGUuY2hhbmdlT3BhY2l0eSh0 aGlzLnByZXZCdXR0b24sNDApOkJCWS51dGlsLnByb3RvdHlwZS5jaGFuZ2VPcGFj aXR5KHRoaXMucHJldkJ1dHRvbiwxMDApO3ZhciBiPSgodGhpcy5jdXJyZW50SW5k ZXgrdGhpcy52aXNpYmxlRWxlbWVudHMpPj10aGlzLmNvbHMubGVuZ3RoKT9CQlku dXRpbC5wcm90b3R5cGUuY2hhbmdlT3BhY2l0eSh0aGlzLm5leHRCdXR0b24sNDAp OkJCWS51dGlsLnByb3RvdHlwZS5jaGFuZ2VPcGFjaXR5KHRoaXMubmV4dEJ1dHRv biwxMDApfX07ZnVuY3Rpb24gYWJuY2hhbmdlVGFiKGIsZil7dmFyIGQ9MTt2YXIg Zz0iIjt2YXIgYT0iIjtmb3IodmFyIGQ9MTtkPD1mO2QrKyl7Zz0iYWJudGFiIitk O2E9ImFibnRhYmNvbnRlbnQiK2Q7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZyku Y2xhc3NOYW1lPSIiO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpLnN0eWxlLmRp c3BsYXk9Im5vbmUifXZhciBjPSJhYm50YWIiK2I7ZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoYykuY2xhc3NOYW1lPSJhY3RpdmUiO3ZhciBlPSJhYm50YWJjb250ZW50 IitiO2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpLnN0eWxlLmRpc3BsYXk9ImJs b2NrIn12YXIgY3VycmVudE9iajt2YXIgcG9wT3ZlclN0eWxlO2Z1bmN0aW9uIGlu aXRUb29sdGlwUm9sbG92ZXJzKCl7Zm9yKHZhciBhPTA7YTxhcmd1bWVudHMubGVu Z3RoO2ErKyl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIiIrYXJndW1lbnRzW2Fd KyIiKS5kZXNjcmlwdGlvbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiIithcmd1 bWVudHNbYV0rIl90ZXh0Iik7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIiIrYXJn dW1lbnRzW2FdKyIiKS5vbm1vdXNlb3Zlcj1kaXNwbGF5RGF0YX19ZnVuY3Rpb24g c2V0VG9vbHRpcFN0eWxlKGEpe3RoaXMucG9wT3ZlclN0eWxlPWF9ZnVuY3Rpb24g ZGlzcGxheURhdGEoYSl7aWYoY3VycmVudE9iaj09bnVsbCl7c2V0T2Zmc2V0KGEs dGhpcyx0aGlzLmRlc2NyaXB0aW9uKTtzZXREaXNwbGF5KHRoaXMuZGVzY3JpcHRp b24sImJsb2NrIik7Y3VycmVudE9iaj10aGlzLmRlc2NyaXB0aW9uO3RoaXMuZGVz Y3JpcHRpb24ub25tb3VzZW91dD1oaWRlRGlzcGxheTt0aGlzLm9ubW91c2VvdXQ9 aGlkZVBvcE92ZXJ9ZWxzZXtzZXREaXNwbGF5KGN1cnJlbnRPYmosIm5vbmUiKTtz ZXRPZmZzZXQoYSx0aGlzLHRoaXMuZGVzY3JpcHRpb24pO3NldERpc3BsYXkodGhp cy5kZXNjcmlwdGlvbiwiYmxvY2siKTtjdXJyZW50T2JqPXRoaXMuZGVzY3JpcHRp b247dGhpcy5kZXNjcmlwdGlvbi5vbm1vdXNlb3V0PWhpZGVEaXNwbGF5O3RoaXMu b25tb3VzZW91dD1oaWRlUG9wT3Zlcn19ZnVuY3Rpb24gc2V0T2Zmc2V0KGQsYixj KXt2YXIgZj1CQlkudXRpbC5wcm90b3R5cGUuZmluZFBvc2l0aW9uKGIpO3ZhciBh PUJCWS51dGlsLnByb3RvdHlwZS5maW5kSGVpZ2h0V2lkdGgoYik7Yy5zdHlsZS5s ZWZ0PSgoZlswXSkrKGFbMV0qMC41KSkrInB4IjtjLnN0eWxlLnRvcD0oKGZbMV0p KyhhWzBdKjAuNSkpKyJweCI7Yy5jbGFzc05hbWU9cG9wT3ZlclN0eWxlfWZ1bmN0 aW9uIGhpZGVEaXNwbGF5KGQpe2lmKCFkKXt2YXIgZD13aW5kb3cuZXZlbnR9dmFy IGI9KHdpbmRvdy5ldmVudCk/ZC5zcmNFbGVtZW50OmQudGFyZ2V0O3ZhciBjPSh3 aW5kb3cuZXZlbnQpPyJjbGFzc05hbWUiOiJjbGFzcyI7aWYoYi5nZXRBdHRyaWJ1 dGUoYykhPSJicm9hZGdyb3VwY29udGVudGJveCIpe3JldHVybn12YXIgYT0oZC5y ZWxhdGVkVGFyZ2V0KT9kLnJlbGF0ZWRUYXJnZXQ6ZC50b0VsZW1lbnQ7d2hpbGUo YS5nZXRBdHRyaWJ1dGUoYykhPWIuZ2V0QXR0cmlidXRlKGMpJiZhLm5vZGVOYW1l IT0iQk9EWSIpe2E9YS5wYXJlbnROb2RlfWlmKGE9PWIpe3JldHVybn10aGlzLnN0 eWxlLmRpc3BsYXk9Im5vbmUifWZ1bmN0aW9uIGhpZGVQb3BPdmVyKGIpe2lmKCFi KXt2YXIgYj13aW5kb3cuZXZlbnR9dmFyIGE9KGIucmVsYXRlZFRhcmdldCk/Yi5y ZWxhdGVkVGFyZ2V0OmIudG9FbGVtZW50O3ZhciBjPShiLnJlbGF0ZWRUYXJnZXQp P2IucmVsYXRlZFRhcmdldDpiLmZyb21FbGVtZW50O2lmKChhLm5vZGVOYW1lPT0i VEQiKXx8KGEubm9kZU5hbWU9PSJJTUciKSl7dGhpcy5kZXNjcmlwdGlvbi5zdHls ZS5kaXNwbGF5PSJub25lIn19ZnVuY3Rpb24gc2V0RGlzcGxheShiLGEpe2Iuc3R5 bGUuZGlzcGxheT1hfWZ1bmN0aW9uIHZlaGljbGVGaXRHdWlkZVBvcHVwKGIsYSl7 aWYoYS5pbmRleE9mKCJ0eXBlPXByb2R1Y3QiKSE9LTEpe2ZpdEd1aWRlVVJMPSJv bHNwYWdlLmpzcD9pZD0iK3RyaW0oYikrIiZpc1BEUD10cnVlJnR5cGU9cGFnZSZw YXJlbnRVUkw9Iitlc2NhcGUoYSl9ZWxzZXtmaXRHdWlkZVVSTD0ib2xzcGFnZS5q c3A/aWQ9Iit0cmltKGIpKyImdHlwZT1wYWdlJnBhcmVudFVSTD0iK2VzY2FwZShh KX1wb3BVcChmaXRHdWlkZVVSTCwiRml0R3VpZGUiLCI0IiwiMCIpfWZ1bmN0aW9u IGRsYm94KCl7aWYodHlwZW9mIGRsVVJMIT0idW5kZWZpbmVkIil7dmFyIGY9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2Fkd2lkZ2V0Iik7dmFyIGQ9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkY29udGVudCIpO3ZhciBjPWRs dGl0bGU7Yz1jKyI8YnIvPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnBvcFVwUmF3VVJM KCciK2RsVVJMKyInLCcnLCc2JywnMScpO1wiIG5hbWU9XCImbGlkPWRpZ2l0YWxk b3dubG9hZFwiPiI7Yz1jKyc8aW1nIHNyYz0iJytpbWdTZXJ2ZXIrJy9lbl9VUy9p bWFnZXMvZ2xvYmFsL2J1dHRvbnMvYnRuX2Rvd25sb2FkX3BkcC5naWYiIHdpZHRo PSIxMTMiIGhlaWdodD0iMjciIGFsdD0iZG93bmxvYWQgdGhpcyBzb2Z0d2FyZSIg Y2xhc3M9ImRsYnV0dG9uIiBib3JkZXI9IjAiLz4nO2M9YysiPC9hPiI7ZC5pbm5l ckhUTUw9YztmLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn1pZih0eXBlb2YgZ2dVUkwh PSJ1bmRlZmluZWQiKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ2Ft ZWd1aWRld2lkZ2V0Iik7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdn ZG93bmxvYWRjb250ZW50Iik7dmFyIGI9Z2dUaXRsZTtiPWIrJzxici8+PGEgaHJl Zj0iIyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cub3BlbihcJycrZ2dVUkwr IicsJycsJ3Rvb2xiYXI9MCxsb2NhdGlvbj0wLGRpcmVjdG9yaWVzPTAsc3RhdHVz PTAsbWVudWJhcj0wLHNjcm9sbGJhcnM9MSxyZXNpemFibGU9MSx3aWR0aD05MTUs aGVpZ2h0PTY3NSxsZWZ0PTUwLHRvcD0yMDAnKTtcIiBuYW1lPVwiJmxpZD1kaWdp dGFsZG93bmxvYWRcIj4iO2I9YisnPGltZyBzcmM9IicraW1nU2VydmVyKycvZW5f VVMvaW1hZ2VzL2dsb2JhbC9idXR0b25zL2J0bl9kb3dubG9hZF9wZHAuZ2lmIiB3 aWR0aD0iMTEzIiBoZWlnaHQ9IjI3IiBhbHQ9ImRvd25sb2FkIHRoaXMgc29mdHdh cmUiIGNsYXNzPSJkbGJ1dHRvbiIgYm9yZGVyPSIwIi8+JztiPWIrIjwvYT4iO2Uu aW5uZXJIVE1MPWI7YS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWZ1bmN0aW9uIGRv UXVpY2tOYXYoYil7dmFyIGE9Imh0dHA6Ly93d3cuYmVzdGJ1eWJ1c2luZXNzLmNv bS9iYmZiL2VuL1VTL2FkaXJlY3QvYmVzdGJ1eT9jbWQ9TG9nb3V0RGlzcGxheSZB TVA7Y2tpbW9kZT10cnVlJmFtcDtzdG9yZWlkPSI7aWYoYiE9IiIpe2lmKGlzS2lv c2spe2lmKGlzS2lvc2smJmI9PSJodHRwOi8vd3d3LmJlc3RidXlidXNpbmVzcy5j b20vIil7dmFyIGM9cmVhZENvb2tpZSgic3RvcmVOdW1iZXIiKTtwb3BVcFJhd1VS TChhK2MsIm1vcmViYnlzaXRlcyIsIjYiLCIxIil9ZWxzZXtwb3BVcFJhd1VSTChi LCJtb3JlYmJ5c2l0ZXMiLCI2IiwiMSIpfX1lbHNle3RyeXtjbG9zZVRyYWNrZXJX aW4oKX1jYXRjaChkKXt9bG9jYXRpb24uaHJlZj1ifX19ZnVuY3Rpb24gcG9wS0No ayhhKXtpZighaXNLaW9zayl7bmV3V2luZG93PXdpbmRvdy5vcGVuKGEsIl9ibGFu ayIpO25ld1dpbmRvdy5mb2N1cygpfWVsc2V7d2luZG93Lm9wZW4oYSwiZndpbiIs InRvb2xiYXI9MCxzY3JvbGxiYXJzPTEsbG9jYXRpb249MCxzdGF0dXNiYXI9MCxt ZW51YmFyPTAscmVzaXphYmxlPTEsd2lkdGg9ODI1LGhlaWdodD01MjUiKX19ZnVu Y3Rpb24gdG9wSGF0UG9wKGIsYyxhKXt3aW5kb3cub3BlbihiLCJ0d2luZG93Iiwi dG9vbGJhcj0xLHNjcm9sbGJhcnM9MSxsb2NhdGlvbj0wLHN0YXR1c2Jhcj0wLG1l bnViYXI9MCxyZXNpemFibGU9MSx3aWR0aD0iK2MrIixoZWlnaHQ9IithKX1mdW5j dGlvbiBwb3AzNjAoYil7dXJsPSJodHRwOi8vaW1hZ2VzLmJlc3RidXkuY29tL0Jl c3RCdXlfVVMvZW5fVVMvaW1hZ2VzL2dsb2JhbC8zNjAvMzYwcG9wLmh0bWw/c2t1 PSIrYjtmZWF0dXJlcz0ibG9jYXRpb249MCxzdGF0dXNiYXI9MCxtZW51YmFyPTAs d2lkdGg9NDc1LGhlaWdodD00NTAiO3RhcmdldD0iX2JsYW5rIjt2YXIgYT13aW5k b3cub3Blbih1cmwsdGFyZ2V0LGZlYXR1cmVzKTthLmZvY3VzKCl9ZnVuY3Rpb24g X2hiU2V0KGUsZCxmKXtyZXR1cm59ZnVuY3Rpb24gX2hiU2VuZChlLGQsZil7cmV0 dXJufWZ1bmN0aW9uIF9oYkxpbmsoZSxkLGYpe3JldHVybn1mdW5jdGlvbiBfaGJE b3dubG9hZChlLGQsZil7cmV0dXJufTs= ------------yoDhov9RdXDsUjdkhFlUJc Content-Disposition: inline; filename=bby.css Content-Type: text/css; name=bby.css Content-Location: http://images.bestbuy.com/BestBuy_US/en_US/images/global/hf/bby/styles/bby.css Content-Transfer-Encoding: 8bit body{margin-left:5px;} /* Dropdowns */ #nav_contain{height:28px;width:780px;border-top:1px solid #fff;} #nav {} #nav,#nav ul{float:left;list-style:none;margin:0;padding:0;z-index:35;cursor:pointer;} #nav a{display:block;text-decoration:none;} #nav img{border:none;display:block;margin:0;padding:0;} #nav li{border:none;float:left;margin:0;padding:0;} #nav li ul{font-weight:normal;height:auto;left:-999em;margin:0;position:absolute;width:200px;} #nav li ul li{cursor:pointer;width:200px;} #nav li ul a.last{border:1px solid #ccc;cursor:pointer;width:194px;_width:200px;} #nav li li{background-color:#fff;margin:0;padding:0;width:200px;} #nav li ul a{border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;color:#00287f;font-family:verdana;font-size:11px;padding:2px;width:194px;_width:200px;} #nav li ul a:hover{color:#fff;font-family:verdana;font-size:11px;padding:2px;width:194px;_width:200px;} #nav li:hover ul ul,#nav li:hover ul ul ul,#nav li.sfhover ul ul,#nav li.sfhover ul ul ul{left:-999px;} #nav li:hover,#nav li.sfhover{background-color:#0035ad;} #nav li ul {padding-top:5px;cursor:pointer;margin-left:1px;} #nav li ul.first {margin-left:0px;} #nav li ul.end {margin-left:0px;} ul.nav iframe{filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);left:-1px;position:absolute;top:-1px;} * html ul.nav li{z-index:201;} #nav div{display:block;margin:0;overflow:hidden;padding:0;} #nav div a{height:100%;width:100%;} #nav div span{display:block;height:100%;margin:0;padding:0;width:100%;} #nav div.car{height:28px;width:59px;} #nav div.au{height:28px;width:72px;} #nav div.tv{height:28px;width:96px;} #nav div.cp{height:28px;width:98px;} #nav div.cc{height:28px;width:106px;} #nav div.po{height:28px;width:83px;} #nav div.mm{height:28px;width:89px;} #nav div.gt{height:28px;width:76px;} #nav div.ha{height:28px;width:101px;} #hdr *{font-family:arial;line-height:1.2;margin:0;padding:0;} #hdr {width:780px;} #hdr .logo{float:left;height:66px;width:88px;} #hdr .logo img{border:none;display:block;} #hdr .tn{float:right;color:#666;font-size:12px;padding:4px 5px 4px 0;} #hdr .tn a{text-decoration:none;} #hdr .tn .skip{position:absolute;left:-9999px;} #hdr .mid ul{list-style-type:none;position:relative;} #hdr .mid ul.maj{float:right;margin-top:15px;} #hdr .mid ul li{float:left;} #hdr .mid ul.maj li a{display:block;margin:0 13px;} #hdr .mid ul.maj li a img{border:none;} #hdr .mid ul.maj li a span{display:none;} #hdr .mid ul.maj li a.last{margin-right:0px;} #hdr .mid ul.min{float:right;font-size:11px;margin-top:8px;} #hdr .mid ul.min li{margin:0 6px;} #hdr .mid ul.min li.last{margin:0 0 0 5px;} #hdr .mid ul.min li a{color:#fff;text-decoration:none;} #nav li div a span {display:none;} #cart .incart{font-weight:bold;} #carttext{left:8px;position:absolute;top:15px;} #carttext a{display:block;width:74px;height:17px;text-indent:-9999px;} #cartitems{color:#fff;font-size:11px;left:8px;position:absolute;top:40px;width:74px;text-align:center;} #cartmessage{color:#fff;font-size:11px;position:absolute;left:8px;width:74px;text-align:center;top:34px;line-height:1;display:none;} #nav.appear li:hover ul,#nav.appear li li:hover ul,#nav.appear li li li:hover ul,#nav.appear li.sfhover ul,#nav.appear li li.sfhover ul,#nav.appear li li li.sfhover ul{left:auto;} #nav.disappear li:hover ul,#nav.disappear li li:hover ul,#nav.disappear li li li:hover ul,#nav.disappear li.sfhover ul,#nav.disappear li li.sfhover ul,#nav.disappear li li li.sfhover ul,#nav.disappear li.sfhover ul.end,#nav.disappear li li.sfhover ul.end,#nav.disappear li li li.sfhover ul.end,#nav.disappear li:hover ul.end,#nav.disappear li li:hover ul.end,#nav.disappear li li li:hover ul.end{left:-999px;} #nav.appear li.sfhover ul.end,#nav.appear li li.sfhover ul.end,#nav.appear li li li.sfhover ul.end,#nav.appear li:hover ul.end,#nav.appear li li:hover ul.end,#nav.appear li li li:hover ul.end{left:585px;} #nav li ul.rnr li a {width:170px;_width:176px;} #nav li ul.rnr li a:hover {width:170px;_width:176px;} #nav li ul.rnr li {width:176px;_width:176px;} #searchstatus {border-bottom:none;} #searchstatus *{margin:0;padding:0;} #sitesearch{width:460px;position:absolute;left:15px;font-size:11px;top:15px;_top:14px;} #welcome{position:absolute;width:280px;left:485px;font-size:11px;text-align:right;top:18px;_top:18px;} #searchstatus br{display:none;} .searchtext{font-size:11px;font-weight:bold;} .topline{font-weight:bold;padding:0px 2px;margin:10px;border:2px solid #fff;} #sitesearch td{padding:0 2px;} .searchfield{width:180px;} #sitesearch .searchtext{font-size:11px;} #sitesearch form input{font-size:10px;} #sitesearch form select{font-size:10px;} /* Store bby2.css */ .searchpull {font-size:11px;width:140px;} /* New Footer - Updated 3/14/2009 */ #ftr *{font-family:arial,sans-serif;margin:0;padding:0;} #ftr img{border:0;} #ftr{margin-top:5px;padding-bottom:20px;width:780px;} #ftr .clear{border:0;clear:both;display:block;font-size:0;height:0;line-height:0;width:0;} #ftr a,#ftr a:visited,#ftr a:active,#ftr a:hover{color:#339;font-size:11px;text-decoration:none;} #ftr h4,#ftr h5{clear:both;color:#404040;font-size:11px;font-weight:bold;margin-bottom:3px;} #ftr select{font-size:11px;width:185px;} #ftr p{color:#a3a3a3;float:left;font-size:10px;line-height:12px;width:500px;} #ftrNav{margin-bottom:10px;padding-top:8px;width:780px;} #ftrNav ul{list-style:none;width:100%;} #ftrNav li{display:inline;} #ftrNav a{border-right:1px solid #d7d7d7;display:block;float:left;line-height:12px;padding:0 9px 0 10px;} #ftrNav li.ftrLast a{border-right:none;padding-left:26px;padding-right:0;} #ftrNav li.ftrFirst a{padding-left:0;} #ftrMain{margin-bottom:10px;width:780px;} #ftrMain .ftrMainTop{font-size:0;height:10px;} #ftrMain .ftrMainBot{font-size:0;height:10px;} #ftrMain .ftrMainMid{padding:5px 0;width:780px;} #ftrMain div.ftrFix{padding-left:15px;} #ftrMain ul{clear:left;float:left;line-height:15px;list-style:none;margin-bottom:10px;width:180px;} #ftrMain li{clear:left;float:left;} #ftrMain li a{float:left;} #ftrMain li a.ftrFix{display:block;text-align:left;width:170px;} #ftrMain li img {position:relative;top:1px;} #ftrMain .ftrMain_col{float:left;width:185px;} #ftrMain form{clear:left;float:left;} #ftrCyber{float:right;margin-left:15px;width:125px;} #estarafooter{float:right;width:100px;} @media print { #ftrMain, #ftrNav, #estarafooter {display:none;} #ftrCopy h3, #ftrCopy p {display:block;color:#000;} } /*NEW BBY.com*/ /* M80 */ .reslearnbox {border:1px solid #cccccc;padding:0;text-align:left;background-color:#ffc;margin:4px 0 5px 4px; width: 120px;} UL.m80 {list-style-type:none;margin:5px 5px 7px 5px;padding:0;} UL.m80 LI {margin:0 0 2px 0;padding:1px 0 1px 0;} .m80minorbox {border:1px solid #cccccc;padding:0;text-align:left;margin:0 0 5px 4px; width: 120px;} .m80minorheader {font-weight:bold;margin:5px;} .m80minorbox UL.m80 {margin:0;margin:0 5px 5px 5px;} /* reward zone pages */ #rzbox{border:1px solid #cccccc;margin:0 0 10px 0;} #rzbox .rzheader{font-weight: bold; text-transform: uppercase; padding: 5px 5px 5px 10px; background-color:#666666;color:#ffffff;} #rzbox .rzdividersolid{border-right:1px solid #cccccc;} #rzbox .rzdividerdashed{border-right:1px dashed #cccccc;} #rzbox .content{padding:0px 10px 5px 10px;} #rzbox .bottomcontent{padding:0px 10px 0px 10px;} #rzbox .divider{border-bottom:1px dotted #cccccc; margin: 0px 0px 5px 0px;} #rzbox sup{color:#666; font-size: 9px;} #rzpgid {background-color:#ffffff;color:#000 !important;} #rzpgid H1 {font-size:16px !important;font-weight:bold;background-color:#fff !important;color:#000 !important;padding:3px 5px 4px 5px;margin:0;text-transform:none !important;} #rzpgid H2{font-size:12px !important;background-color:#fff;color:#000;padding:3px 5px 10px 5px;margin:0;text-transform:none;font-weight:normal;} #rzexplainer{font-size: 10px; color: #666; padding: 0px 0px 10px 0px;} #rzexplainer sup{color:#666; font-size: 10px;} /* temporary fix for magnolia search listings */ .searchitem div{padding-top: 10px;} /* Search */ #searchcontainer {width:780px;} #searchcontainer TD {vertical-align:top;} #searchcontainer SELECT {font-size:11px;} #searchstate {font-size:15px;margin:5px 0 10px 0;} #searchstatered {font-size:15px;margin:5px 0 10px 0;color:#ff0000;} #searchclosest {font-size:11px;margin:5px 0 5px 0;color:#ff0000;font-weight:bold;} #userfunctions {border-bottom:1px solid #cccccc;text-align:right;margin:5px 0 10px 0;} #searchmessage {margin:5px 0 10px 0;} #centerwell {padding:5px;} .header {padding:3px 5px 3px 5px;font-weight:bold;line-height:17px;} #facetselected {border-bottom:1px solid #cccccc;padding:0 0 10px 0;} #facetselected UL {list-style-type:none;margin:0;padding:0;} #facetselected LI {margin:0 0 10px 0;padding:1px 0 1px 0;} #facetselected UL LI {margin:0 0 2px 0;padding:1px 0 1px 0;} UL.search {list-style-type:none;margin:0;padding:0px 3px 0px 0px;} UL.search LI {margin:0 0 2px 0;padding:1px 0 1px 0;zoom:1;} UL.search LI.title {font-weight:bold;} UL.search LI.selected {font-weight:bold;color:#666666;} UL.search LI.seeall {font-weight:bold;margin:5px 0 0 0;} .seeallcat {font-weight:bold;} .red {color:#ff0000;} .dkgray {color:#666666;} .minorheader {font-weight:bold;margin:0 0 5px 0;} .prodlink {font-weight:bold;font-size:11px;} .priceblock2 {margin:5px 0 5px 0;padding:1px 2px 2px 3px;background-color:#ffff10;font-weight:bold;font-size:11px;} .priceblock2onsale {margin:5px 0 5px 0;padding:1px 2px 2px 3px;background-color:#ffff10;font-weight:bold;font-size:11px;color:#ff0000;} .rebates {margin-bottom:5px;font-size:9px;} .med {font-size:11px;} .sm {font-size:10px;} .xsm {font-size:9px;} .resultcount {font-size:9px;} .capcat {font-weight:bold;text-transform:uppercase;} .nofurther {margin:0;padding:10px 0 10px 0;} .newprod {color:#ff0000;font-weight:bold;} #shopcat {margin-bottom:10px;} #shopcat .header {background-color:#f1f1f1; border:1px solid #cccccc;} #shopcat UL.search {padding:5px 7px 5px 7px;} #shopcat UL.search LI.title {font-weight:bold;} #shopcat UL.search LI.title .sublink {font-size:10px;font-weight:normal;} #shopcat .shopcatframe {border-left:1px solid #cccccc;border-right:1px solid #cccccc;border-bottom:1px solid #cccccc;padding:7px 0 7px 0;} #shopcat .shopcatframe TD {vertical-align:top;border-right:1px solid #cccccc;} #shopcat .shopcatframe TD.lastgroup {border:none;} #searchnav {width:170px;padding-right:10px;} #searchlist {width:590px;} #searchlistcontent {} .searchdirection {font-size:15px;margin:5px 0 15px 0;font-weight:bold;} #narrow {background-color:#ffffcc;border:1px solid #cccccc;padding:5px; margin-bottom:10px;} #narrow UL.search {padding:0 0 15px 0;} /* 10/16/2008 */ .narrowcontent{overflow:hidden;} .narrow ul.search {padding:0 0 10px 0;width:148px;} .narrow ul.search li a {word-wrap:break-word;} #cat {margin:0 0 10px 0;} #cat .header {height:30px;background:url("http://images.bestbuy.com/BestBuy_US/en_US/images/global/hf/bby2/grey-header-bg.jpg") top right repeat-x;font-weight:normal;border:solid #cccccc;border-width:1px 1px 0px 1px;padding-top:5px;} #cat .catframe {border-left:1px solid #cccccc;border-right:1px solid #cccccc;border-bottom:1px solid #cccccc;padding:7px 0 7px 0;} #cat .catframe TD.group {vertical-align:top;border-right:1px solid #cccccc;} #cat .catframe TD.lastgroup {border:none;vertical-align:top;} #cat .product {padding:5px;} #cat .seeallcat {padding:5px;} #cat .categoryselect {text-align:right;} .minorbox {border:1px solid #cccccc;padding:5px;margin:0 0 10px 0;} .minorbox .seeallcat {padding:5px 0 5px 0;} .phtml {margin:0 0 10px 0;} .phtml .sepframe {border:1px solid #cccccc;} .phtml .header {line-height:14px;border:0;background-color:#0052AE;color:#ffffff;} .phtml .list{background-color: #ffffcd; border:0px; padding: 5px;} .phtml td.content {background-color: #ffffcd;} .phtml div:first-child[style] {background: #fff !important;} .pskuseparate {margin:0 0 10px 0;} .pskuseparate .header {line-height:14px;border:0;border-right:1px solid #cccccc;background-color:#0052AE;color:#ffffff;} .pskuseparate TD.lastgroup .header {border:0;} .pskuseparate TD.group {border-right:1px solid #cccccc;vertical-align:top;} .pskuseparate TD.group h2{height:10px;} .pskuseparate TD.lastgroup {border:0;vertical-align:top;} .pskuseparate TD.lastgroup h2{height:10px;} .pskuseparate .product {padding:12px 5px 12px 5px;} .pskuseparate .sepframe {border:1px solid #cccccc;} .pskucontain {margin:0 0 10px 0;width:590px;} .pskucontain .header {line-height:14px;border:0;border-right:1px solid #cccccc;background-color:#0052AE;color:#ffffff;} .pskucontain TD.lastgroup .header {border:0;} .pskucontain TD.group {border-right:1px solid #cccccc;} .pskucontain TD.lastgroup {border:0;} .pskucontain .product {padding:5px;} .pskucontain .sepframe {border-left:1px solid #cccccc;border-right:1px solid #cccccc;border-bottom:1px solid #cccccc;padding:7px 0 7px 0;} .phtmlsku {margin:0 0 10px 0;} .phtmlsku .sepframe {border:1px solid #cccccc;} .phtmlsku .header {line-height:14px;border:0;border-right:1px solid #cccccc;background-color:#0052AE;color:#ffffff;} .phtmlsku .product {padding:12px 5px 12px 5px;} .phtmlsku TD.htmlcontainer {border-right:1px solid #cccccc;} .phtmlsku TD.htmlcontainer .promo{padding:5px 5px 12px 5px;} .pskuskuhtml {margin:0 0 10px 0;} .pskuskuhtml .sepframe {border:1px solid #cccccc;} .pskuskuhtml .header {line-height:14px;border:0;background-color:#0052AE;color:#ffffff;} .pskuskuhtml TD.group {border-right:1px solid #cccccc;} .pskuskuhtml TD.lastgroup {border:0;} .pskuskuhtml TD.lastgroup .promo{padding:5px 5px 12px 5px;} .pskuskuhtml .product {padding:12px 5px 12px 5px;} .phtmllist {margin:0 0 10px 0;} .phtmllist .sepframe {border:1px solid #cccccc;} .phtmllist .header {line-height:14px;border:0;border-right:1px solid #cccccc;background-color:#0052AE;color:#ffffff;} .phtmllist .list {padding:5px;} .phtmllist TD.htmlcontainer {border-right:1px solid #cccccc;} .pskuskuhtml TD.htmlcontainer .promo{padding:5px 5px 12px 5px;} .smattributes {font-size:9px;} .lgattributes{font-size:11px;} .smprodtable {} .smprodtable IMG {padding:0 5px 5px 0;} .smprodtable .smattributes {margin:3px 0 5px 0;} .smprodtable .lgattributes {margin:0 0 5px 0;} .smprodtable .skucontent {width:95%;} .prodlisting {border-bottom:1px solid #cccccc;margin:0 0 10px 0;} .prodlisting IMG{} .prodlisting IMG.prodshot {padding:0 5px 5px 0; text-align:center; display:block;} .prodlisting .smattributes {margin:3px 0 12px 0;} .prodlisting .lgattributes {margin:0 0 3px 0;} .specialoffers {margin:5px 0 0 0;padding:5px 0 0 0;border-top:1px dashed #cccccc;float:left;width:100%;} .specialoffers .checkmark {line-height:15px