# Name: smd_random_banner v0.42 # Type: Client side plugin # Random image or file chosen by category/text/article field. Use for advertising or fun # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE3OiJzbWRfcmFuZG9tX2Jhbm5lciI7czo2OiJhdXRob3Ii O3M6MTE6IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3Rl ZmRhd3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC40MiI7czoxMToiZGVzY3JpcHRp b24iO3M6ODY6IlJhbmRvbSBpbWFnZSBvciBmaWxlIGNob3NlbiBieSBjYXRlZ29yeS90ZXh0 L2FydGljbGUgZmllbGQuIFVzZSBmb3IgYWR2ZXJ0aXNpbmcgb3IgZnVuIjtzOjQ6ImNvZGUi O3M6MTYyMTc6InJlcXVpcmVfcGx1Z2luKCdzbWRfbGliJyk7DQoNCi8vIE1MUCBzdXBwb3J0 DQpnbG9iYWwgJHNtZF9yYmFuTGFuZywgJHNtZF9yYmFuX2Nob3NlbjsNCiRzbWRfcmJhbl9z dHIgPSBhcnJheSgNCgknd2lkdGgnID0+ICczMDAnLA0KCSdoZWlnaHQnID0+ICc3NScsDQoJ J25vX3BsdWdfdGV4dCcgPT4gJycsDQopOw0KJHNtZF9yYmFuTGFuZyA9IG5ldyBzbWRfTUxQ KCdzbWRfcmFuZG9tX2Jhbm5lcicsICdzbWRfcmJhbicsICRzbWRfcmJhbl9zdHIpOw0KDQpm dW5jdGlvbiBzbWRfcmFuZG9tX2Jhbm5lcigkYXR0cykgew0KCWdsb2JhbCAkaW1nX2Rpciwg JGZpbGVfYmFzZV9wYXRoLCAkc21kX3JiYW5MYW5nLCAkc21kX3JiYW5fY2hvc2VuOw0KDQoJ aWYgKCFkZWZpbmVkKCdTTURfRExNX1RSJykpIHsNCgkJZGVmaW5lKCdTTURfRExNX1RSJywg J0BAJyk7DQoJfQ0KCWlmICghZGVmaW5lZCgnU01EX0RMTV9SRUMnKSkgew0KCQlkZWZpbmUo J1NNRF9ETE1fUkVDJywgJ3wnKTsNCgl9DQoNCgkvLyBhbGxvd2FibGUgb3B0aW9ucyAoZGVm YXVsdCBsaXN0ZWQgZmlyc3QpDQoJJGFsbE1vZGUgPSBhcnJheSgiaW1hZ2UiLCJmaWxlIik7 DQoJJGFsbENvbXBhcmUgPSBhcnJheSgiaW1hZ2U6bmFtZSIsImltYWdlOmlkIiwiaW1hZ2U6 YWx0IiwiaW1hZ2U6Y2FwdGlvbiIsImltYWdlOmNhdGVnb3J5IiwiZmlsZTpmaWxlbmFtZSIs ImZpbGU6dGl0bGUiLCJmaWxlOmlkIiwiZmlsZTpjYXRlZ29yeSIsImZpbGU6ZGVzY3JpcHRp b24iLCJmaWxlOnN0YXR1cyIsImZpbGU6c2l6ZSIpOw0KCSRhbGxMaW5rSW4gPSBhcnJheSgi IiwiaW1hZ2U6Y2FwdGlvbiIsImltYWdlOmFsdCIsImltYWdlOm5hbWUiLCJmaWxlOmRlc2Ny aXB0aW9uIiwiZmlsZTp0aXRsZSIpOw0KDQoJLy8gbG9va3VwIHRhYmxlcw0KCSRodG1sT2Jq Rml4ZWQgPSBhcnJheSgiaWQiLCJkYXRhIiwiaGVpZ2h0IiwidHlwZSIsIndpZHRoIiwicGxh eWVydmVyc2lvbiIsImJhY2tjb2xvciIsImVsZW1lbnRpZCIsInVpZCIpOw0KCSRodG1sT2Jq UGFyYW0gPSBhcnJheSgiY2xhc3MiLCJ0aXRsZSIsInN0eWxlIiwiZGlyIiwibGFuZyIsInht bDpsYW5nIiwiYWxpZ24iLCJhcmNoaXZlIiwiYm9yZGVyIiwiY2xhc3NpZCIsImNvZGViYXNl IiwiY29kZXR5cGUiLCJkZWNsYXJlIiwiaHNwYWNlIiwibmFtZSIsInN0YW5kYnkiLCJ1c2Vt YXAiLCJ2c3BhY2UiKTsNCgkkb2JqTWltZVR5cGUgPSBhcnJheSgiYXZpIiA9PiBhcnJheSgi dmlkZW8vYXZpIiwgIlZpZGVvIiksDQoJCQkJCQkJCSJmbGF8ZmxhYyIgPT4gYXJyYXkoImF1 ZGlvL2ZsYWMiLCAiQXVkaW8iKSwNCgkJCQkJCQkJImZsdnxzd2YiID0+IGFycmF5KCJhcHBs aWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIsICJGbGFzaCIpLA0KCQkJCQkJCQkiZ2lmIiA9 PiBhcnJheSgiaW1hZ2UvZ2lmIiwgIkltYWdlIiksDQoJCQkJCQkJCSJqYXZhIiA9PiBhcnJh eSgiYXBwbGljYXRpb24veC1qYXZhLWFwcGxldCIsICJBcHAiKSwNCgkJCQkJCQkJImpwZyIg PT4gYXJyYXkoImltYWdlL2pwZWciLCAiSW1hZ2UiKSwNCgkJCQkJCQkJIm1pZCIgPT4gYXJy YXkoImF1ZGlvL3gtbWlkaSIsICJBdWRpbyIpLA0KCQkJCQkJCQkibW92IiA9PiBhcnJheSgi dmlkZW8vcXVpY2t0aW1lIiwgIlZpZGVvIiksDQoJCQkJCQkJCSJtcGd8bXBlZ3xtcDQiID0+ IGFycmF5KCJ2aWRlby9tcGVnIiwgIlZpZGVvIiksDQoJCQkJCQkJCSJtcDJ8bXAzfG00YSIg PT4gYXJyYXkoImF1ZGlvL21wZWciLCAiQXVkaW8iKSwNCgkJCQkJCQkJIm9ndnxvZ2F8b2d4 fG9nZyIgPT4gYXJyYXkoImFwcGxpY2F0aW9uL29nZyIsICJBdWRpbyIpLA0KCQkJCQkJCQki b2ZyIiA9PiBhcnJheSgiYXBwbGljYXRpb24veC1vZnIiLCAiQXVkaW8iKSwNCgkJCQkJCQkJ InBuZyIgPT4gYXJyYXkoImltYWdlL3BuZyIsICJJbWFnZSIpLA0KCQkJCQkJCQkicmF8cm0i ID0+IGFycmF5KCJhdWRpby94LXBuLXJlYWx2aWRlbyIsICJWaWRlbyIpLA0KCQkJCQkJCQki c3dvIiA9PiBhcnJheSgidGV4dC9qYXZhc2NyaXB0IiwgIlNXRk9iamVjdCIpLA0KCQkJCQkJ CQkidGlmfHRpZmYiID0+IGFycmF5KCJpbWFnZS90aWZmIiwgIkltYWdlIiksDQoJCQkJCQkJ CSJ3YXYiID0+IGFycmF5KCJhdWRpby94LXdhdiIsICJBdWRpbyIpLA0KCQkJCQkJCQkid212 fHdtYXxhc2YiID0+IGFycmF5KCJ2aWRlby94LW1zLXdtdiIsICJBdWRpbyIpLA0KCQkJCQkJ CQkpOw0KCSRvYmpUZW1wbGF0ZUZpeGVkID0gJ3R5cGU9IkBAdHlwZSIgZGF0YT0iQEBkYXRh IiB3aWR0aD0iQEB3aWR0aCIgaGVpZ2h0PSJAQGhlaWdodCIgQEBvdGhlcnMgJzsNCgkkb2Jq VGVtcGxhdGUgPSBhcnJheSgNCgkJIkZsYXNoIiA9PiBhcnJheSgnPG9iamVjdCAnIC4kb2Jq VGVtcGxhdGVGaXhlZC4gJ2lkPSJAQGlkIj48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJA QGRhdGEiIC8+JywgJzwvb2JqZWN0PicpLA0KCQkiU1dGT2JqZWN0IiA9PiBhcnJheSgnPHNj cmlwdCB0eXBlPSJAQHR5cGUiIGRlZmVyPSJkZWZlciI+Jy5uLid2YXIgQEB1aWQgPSBuZXcg U1dGT2JqZWN0KCJAQGRhdGEiLCAiQEBpZCIsICJAQHdpZHRoIiwgIkBAaGVpZ2h0IiwgIkBA cGxheWVydmVyc2lvbiIsICJAQGJhY2tjb2xvciIpOycubiwgJ0BAdWlkLndyaXRlKCJAQGVs ZW1lbnRpZCIpOycubi4nPC9zY3JpcHQ+Jy5uKSwNCgkJIkF1ZGlvIiA9PiBhcnJheSgnPG9i amVjdCAnIC4kb2JqVGVtcGxhdGVGaXhlZC4gJz48cGFyYW0gbmFtZT0ic3JjIiB2YWx1ZT0i QEBkYXRhIiAvPicsICc8L29iamVjdD4nKSwNCgkJIlZpZGVvIiA9PiBhcnJheSgnPG9iamVj dCAnIC4kb2JqVGVtcGxhdGVGaXhlZC4gJz4nLCAnPC9vYmplY3Q+JyksDQoJCSJJbWFnZSIg PT4gYXJyYXkoJzxpbWcgc3JjPSJAQGRhdGEiIHdpZHRoPSJAQHdpZHRoIiBoZWlnaHQ9IkBA aGVpZ2h0IiBAQG90aGVycyAvPicsICcnKSwNCgkJKTsNCg0KCS8vIExvZyB3aGV0aGVyIGFu eSBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gdXNlIGNhdGVnb3J5L2lkIEJFRk9SRSBsQXR0 cygpLCB3aGljaCBhc3NpZ25zIHRoZW0gcmVnYXJkbGVzcw0KCSRhdHRlbXB0TWF0Y2ggPSAo aXNzZXQoJGF0dHNbJ2NhdGVnb3J5J10pIHx8IGlzc2V0KCRhdHRzWydpZCddKSkgPyB0cnVl IDogZmFsc2U7DQoNCgkvLyBQbHVnaW4gb3B0aW9ucw0KCWV4dHJhY3QobEF0dHMoYXJyYXko DQoJCSdtb2RlJyA9PiAnaW1hZ2UnLA0KCQknY2F0ZWdvcnknID0+ICcnLA0KCQknaWQnID0+ ICcnLA0KCQknc3ViY2F0cycgPT4gJzAnLA0KCQknbWF0Y2hfdGV4dCcgPT4gJycsDQoJCSdh dm9pZF90ZXh0JyA9PiAnJywNCgkJJ2NvbXBhcmVfdG8nID0+ICduYW1lJywNCgkJJ2xpbWl0 JyA9PiAnMScsDQoJCSdhbHdheXNfZGlzcGxheScgPT4gJzAnLA0KCQkndGh1bWInID0+ICcw JywNCgkJJ2xpbmtfaW4nID0+ICcnLA0KCQknbGlua19wcmVmaXgnID0+ICcnLA0KCQknZGlz cGxheV91cmwnID0+ICcxJywNCgkJJ3JlZmVyZXInID0+ICdiaWQnLA0KCQkncmF3X3VybCcg PT4gJzAnLA0KCQkndGFyZ2V0JyA9PiAnJywNCgkJJ2NvdW50X2Rvd25sb2FkcycgPT4gJzEn LA0KCQknZmlsZXNfZGlyJyA9PiAnZmlsZXMnLA0KCQknZGVsaW0nID0+ICcsJywNCgkJJ252 X2RlbGltJyA9PiAnPScsDQoJCSdyb3dfZGVsaW0nID0+ICc7JywNCgkJJ25vX3BsdWdfdGV4 dCcgPT4gJycsDQoJCSdnbG9iYWxfcGFyYW1zJyA9PiAnJywNCgkJJ2ltZ2NsYXNzJyA9PiAn JywgLy8gREVQUkVDQVRFRA0KCQknY2xhc3MnID0+ICcnLA0KCQknZGVidWcnID0+ICcwJywN CgkpLCAkYXR0cykpOw0KDQoJLy8gVmFsaWRhdGUgbW9kZSAvIGxpbmtfaW4gLyB0YXJnZXQg LyBjbGFzcw0KCSRtb2RlID0gKGluX2FycmF5KCRtb2RlLCRhbGxNb2RlKSkgPyAkbW9kZSA6 ICRhbGxNb2RlWzBdOw0KCSRsaW5rX2luID0gKCRsaW5rX2luICYmIGluX2FycmF5KCRtb2Rl Lic6Jy4kbGlua19pbiwkYWxsTGlua0luKSkgPyAkbGlua19pbiA6ICRhbGxMaW5rSW5bMF07 DQoJJHRhcmdldCA9ICgkdGFyZ2V0KSA/ICcgdGFyZ2V0PSInIC4kdGFyZ2V0LiAnIicgOiAn JzsNCgkkY2xhc3MgPSAoISRjbGFzcyAmJiAkaW1nY2xhc3MpID8gJGltZ2NsYXNzIDogJGNs YXNzOw0KCSRpZCA9ICgkaWQgJiYgJHNtZF9yYmFuX2Nob3NlbikgPyBzdHJfcmVwbGFjZSgn U01EX1VOSVFVRScsICchJy5qb2luKCcsIScsICRzbWRfcmJhbl9jaG9zZW4pLCAkaWQpIDog JGlkOw0KDQoJLy8gVmFsaWRhdGUgY29tcGFyZV90bw0KCSRjb21wYXJlVG9PcHRzID0gYXJy YXkoKTsNCglpZiAoaXNzZXQoJGNvbXBhcmVfdG8pKSB7DQoJCSRjdExpc3QgPSBkb19saXN0 KCRjb21wYXJlX3RvKTsNCgkJJGN0Q291bnQgPSBjb3VudCgkY3RMaXN0KTsNCgkJZm9yICgk aWR4ID0gMDsgJGlkeCA8ICRjdENvdW50OyAkaWR4KyspIHsNCgkJCWlmKGluX2FycmF5KCRt b2RlLic6Jy4kY3RMaXN0WyRpZHhdLCRhbGxDb21wYXJlKSkgew0KCQkJCSRjb21wYXJlVG9P cHRzW10gPSAkY3RMaXN0WyRpZHhdOw0KCQkJfQ0KCQl9DQoJfQ0KCWlmKGNvdW50KCRjb21w YXJlVG9PcHRzKSA8PSAwKSB7DQoJCS8vIEZpbmQgdGhlIGZpcnN0IGVudHJ5IG1hdGNoaW5n ICRtb2RlIGFuZCB1c2UgdGhhdA0KCQlmb3JlYWNoICgkYWxsQ29tcGFyZSBhcyAkY21wKSB7 DQoJCQlpZiAoc3RycG9zKCRjbXAsICRtb2RlLic6JykgPT09IDApIHsNCgkJCQkkY29tcGFy ZVRvT3B0c1tdID0gc3Vic3RyKCRjbXAsc3RybGVuKCRtb2RlKSsxKTsNCgkJCQlicmVhazsN CgkJCX0NCgkJfQ0KCX0NCg0KCS8vIElmIG5vX3BsdWdfdGV4dCBpcyBhIGZvcm0sIGhhbmRs ZSBhY2NvcmRpbmdseQ0KCSRub3BsdWcgPSBkb19saXN0KCRub19wbHVnX3RleHQsICc6Jyk7 DQoJaWYgKGNvdW50KCRub3BsdWcpID4gMCAmJiAkbm9wbHVnWzBdID09ICd0eHBmb3JtJykg ew0KCQkkbm9fcGx1Z190ZXh0ID0gcGFyc2VfZm9ybSgkbm9wbHVnWzFdKTsNCgl9DQoNCgkv LyBpbml0IHZhcmlhYmxlcw0KCSRjbGF1c2UgPSAnMT0xJzsNCgkkY2xhdXNlQ2F0ID0gJGNs YXVzZTsNCgkkY2xhdXNlT1IgPSBhcnJheSgpOw0KDQoJJGZpZWxkcyA9ICgkbW9kZT09J2lt YWdlJykgPyAnaWQsIG5hbWUsIGV4dCwgY2FwdGlvbiwgYWx0JyA6ICdpZCwgZmlsZW5hbWUs IGRlc2NyaXB0aW9uLCBzdGF0dXMsIHNpemUnOw0KCSRkYlRhYmxlID0gKCRtb2RlPT0naW1h Z2UnKSA/ICd0eHBfaW1hZ2UnIDogJ3R4cF9maWxlJzsNCgkkc3ViaW5mbyA9ICgkc3ViY2F0 cykgPyAkbW9kZS4nOicuJHN1YmNhdHMgOiAnJzsNCg0KCS8vIEV4dHJhY3QgYWxsIHRoZSBm aXhlZCwgPyBhbmQgISBzdHJpbmdzIGZyb20gY2F0ZWdvcnksIElELCBtYXRjaCBhbmQgYXZv aWQgdGV4dHMNCglsaXN0KCRpZGluYywgJGlkZXhjKSA9IHNtZF9kb0xpc3QoJGlkLCB0cnVl LCAnJywgdHJ1ZSwgJGRlbGltKTsNCglsaXN0KCRjYXRpbmMsICRjYXRleGMpID0gc21kX2Rv TGlzdCgkY2F0ZWdvcnksIGZhbHNlLCAkc3ViaW5mbywgdHJ1ZSwgJGRlbGltKTsNCglsaXN0 KCRtYXRjaEFycmF5LCAkbWF0Y2hleGMpID0gc21kX2RvTGlzdCgkbWF0Y2hfdGV4dCwgZmFs c2UsICcnLCBmYWxzZSwgJGRlbGltKTsNCglsaXN0KCRhdm9pZEFycmF5LCAkYXZvaWRleGMp ID0gc21kX2RvTGlzdCgkYXZvaWRfdGV4dCwgZmFsc2UsICcnLCBmYWxzZSwgJGRlbGltKTsN Cg0KCS8vIENvbWJpbmUgbGlzdHMgaWYgYXBwbGljYWJsZSAoc2luY2UgYXZvaWRfdGV4dD0i IXNxdWlkIiBpcyBhIGRvdWJsZSBuZWdhdGl2ZSBhbmQgbWVhbnMgbWF0Y2hfdGV4dD0ic3F1 aWQiKQ0KCSRtYXRjaEFycmF5ID0gYXJyYXlfbWVyZ2UoJG1hdGNoQXJyYXksICRhdm9pZGV4 Yyk7DQoJJGF2b2lkQXJyYXkgPSBhcnJheV9tZXJnZSgkYXZvaWRBcnJheSwgJG1hdGNoZXhj KTsNCg0KCS8vIFN1cnJvdW5kIGVhY2ggZW50cnkgaW4gdGhlIElEL2NhdCBsaXN0cyB3aXRo IHF1b3RlcyBhbmQgbWFrZSBhbiBTUUwgImluIiBsaXN0DQoJaWYgKCRpZGluYykgew0KCQkk Y2xhdXNlT1JbXSA9ICRkYlRhYmxlLicuaWQgSU4gKCcuaW1wbG9kZSgiLCIsICRpZGluYyku JyknOw0KCX0NCglpZiAoJGNhdGluYykgew0KCQkkY2xhdXNlT1JbXSA9ICRkYlRhYmxlLicu Y2F0ZWdvcnkgSU4gKCcuaW1wbG9kZSgiLCIsICRjYXRpbmMpLicpJzsNCgl9DQoJaWYgKCFl bXB0eSgkY2xhdXNlT1IpKSB7DQoJCSRjbGF1c2VDYXQgLj0gJyBBTkQgKCcuaW1wbG9kZSgi IE9SICIsICRjbGF1c2VPUikuJykgJzsNCgl9DQoNCgkkY2xhdXNlQ2F0IC49ICgkY2F0ZXhj KSA/ICcgQU5EICcuJGRiVGFibGUuJy5jYXRlZ29yeSBOT1QgSU4gKCcuaW1wbG9kZSgiLCIs ICRjYXRleGMpLicpJyA6ICcnOw0KCSRjbGF1c2VDYXQgLj0gKCRpZGV4YykgPyAnIEFORCAn LiRkYlRhYmxlLicuaWQgTk9UIElOICgnLmltcGxvZGUoIiwiLCAkaWRleGMpLicpJyA6ICcn Ow0KDQoJLy8gSWYgYSBjYXRlZ29yeS9pZCBvcHRpb24gd2FzIGNob3NlbiBhbmQgdGhleSBt YXRjaGVkIG5vdGhpbmcsIHVzZSBhIGJvZ3VzIGNhdGVnb3J5IHRoYXQgc2hvdWxkIG5vdCBl eGlzdC4NCgkvLyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgcGx1Z2luIGRvZXMgdGhlIGV4cGVj dGVkIHRoaW5nIG9mIG1hdGNoaW5nIG5vdGhpbmcgaW4gdGhlIGV2ZW50IGl0IGZpbmRzIG5v dGhpbmcuDQoJaWYgKCRjbGF1c2VDYXQgPT0gJzE9MScgJiYgJGF0dGVtcHRNYXRjaCkgew0K ICAJCSRjbGF1c2UgPSAkZGJUYWJsZS4nLmNhdGVnb3J5ID0gInNtZF8nIC5tdF9yYW5kKCku ICciJzsNCgl9IGVsc2Ugew0KCQkkY2xhdXNlID0gJGNsYXVzZUNhdDsNCgl9DQoNCgkvLyBO b3cgZmFjdG9yIGluIGFueSBtYXRjaC9hdm9pZCB0ZXh0LCBjb21wYXJpbmcgZXZlcnl0aGlu ZyB3aXRoIHdoYXRldmVyIGlzIGluIGNvbXBhcmVfdG8NCgkkY2xhdXNlQU5EID0gYXJyYXko KTsNCgkkY2xhdXNlTUFUQ0ggPSBhcnJheSgpOw0KCSRjbGF1c2VBVk9JRCA9IGFycmF5KCk7 DQoNCglmb3JlYWNoICgkY29tcGFyZVRvT3B0cyBhcyAkY29tcCkgew0KCQlmb3IgKCRpZHgg PSAwOyAkaWR4IDwgY291bnQoJG1hdGNoQXJyYXkpOyAkaWR4KyspIHsNCgkJCSRjbGF1c2VN QVRDSFtdID0gJGRiVGFibGUuJy4nLiRjb21wIC4gIiBMSUtFICclIiAuJG1hdGNoQXJyYXlb JGlkeF0uICIlJyI7DQoJCX0NCgkJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRhdm9p ZEFycmF5KTsgJGlkeCsrKSB7DQoJCQkkY2xhdXNlQVZPSURbXSA9ICRkYlRhYmxlLicuJy4k Y29tcCAuICIgTElLRSAnJSIgLiRhdm9pZEFycmF5WyRpZHhdLiAiJSciOw0KCQl9DQoJfQ0K DQoJaWYgKGNvdW50KCRjbGF1c2VNQVRDSCkgPiAwKSB7DQoJCSRjbGF1c2VBTkRbXSA9ICco JyAuaW1wbG9kZSgnIE9SICcsJGNsYXVzZU1BVENIKS4gJyknOw0KCX0NCglpZiAoY291bnQo JGNsYXVzZUFWT0lEKSA+IDApIHsNCgkJJGNsYXVzZUFORFtdID0gJ05PVCAoJyAuaW1wbG9k ZSgnIE9SICcsJGNsYXVzZUFWT0lEKS4gJyknOw0KCX0NCglpZiAoY291bnQoJGNsYXVzZUFO RCkgPiAwKSB7DQoJCSRjbGF1c2UgLj0gJyBBTkQgJyAuIGltcGxvZGUoJyBBTkQgJywgJGNs YXVzZUFORCk7DQoJfQ0KDQoJLy8gTmVlZCB0byBrZWVwIGNsYXVzZSwgY2xhdXNlQ2F0IGFu ZCBjbGF1c2VTb3J0IHNlcGFyYXRlIGZvciBhbHdheXNfZGlzcGxheQ0KCSRjbGF1c2VTb3J0 ID0gIiBPUkRFUiBCWSBSQU5EKCkgTElNSVQgJGxpbWl0IjsNCgkkY2xhdXNlIC49ICRjbGF1 c2VTb3J0Ow0KDQoJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJZWNobyAiKysgSU5DTFVERUQvRVhD TFVERUQgSURzICsrIjsNCgkJZG1wKCRpZGluYyk7DQoJCWRtcCgkaWRleGMpOw0KCQllY2hv ICIrKyBJTkNMVURFRC9FWENMVURFRCBDYXRlZ29yaWVzICsrIjsNCgkJZG1wKCRjYXRpbmMp Ow0KCQlkbXAoJGNhdGV4Yyk7DQoJCWVjaG8gIisrIElOQ0xVREVEL0VYQ0xVREVEIE1hdGNo ZXMgKysiOw0KCQlkbXAoJG1hdGNoQXJyYXkpOw0KCQlkbXAoJGF2b2lkQXJyYXkpOw0KCQlk bXAoJGNsYXVzZUFORCk7DQoJfQ0KDQoJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJZWNobyAiKysg V0hFUkUgQ0xBVVNFUyArKyI7DQoJCWRtcCgkY2xhdXNlQ2F0KTsNCgkJZG1wKCRjbGF1c2Up Ow0KCX0NCg0KCS8vIFB1bGwgb3V0IHRoZSByZXF1ZXN0ZWQgb2JqZWN0cywgaG9ub3VyaW5n IHRoZSBhbHdheXNfZGlzcGxheSBsZXZlbCBpZiBub3RoaW5nJ3MgcmV0dXJuZWQNCgkkcnMg PSBzYWZlX3Jvd3MoJGZpZWxkcywgJGRiVGFibGUsICRjbGF1c2UpOw0KCWlmICghJHJzKSB7 DQoJCWlmICgkYWx3YXlzX2Rpc3BsYXkgPiAwKSB7DQoJCQkkcnMgPSBzYWZlX3Jvd3MoJGZp ZWxkcywgJGRiVGFibGUsICRjbGF1c2VDYXQgLiAkY2xhdXNlU29ydCk7DQoJCQlpZiAoISRy cykgew0KCQkJCWlmICgkYWx3YXlzX2Rpc3BsYXkgPiAxKSB7DQoJCQkJCSRycyA9IHNhZmVf cm93cygkZmllbGRzLCAkZGJUYWJsZSwgIjE9MSIuJGNsYXVzZVNvcnQpOw0KCQkJCX0NCgkJ CX0NCgkJfQ0KCX0NCg0KCWlmICgkZGVidWcgPiAyKSB7DQoJCWVjaG8gIisrIFJFQ09SRCBT RVQgKysiOw0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBEaXNwbGF5IHRoZW0NCgkkb3V0U3Ry ID0gJyc7DQoJaWYoJHJzKSB7DQoJCWZvcmVhY2goJHJzIGFzICRyb3cpIHsNCgkJCSRvYmpP dXQgPSAnJzsNCgkJCSRsaW5rdXJsID0gJyc7DQoJCQkkbGlua05hbWUgPSAnJzsNCgkJCSRv bmNsaWNrID0gJyc7DQoJCQkkc2V0TWltZVR5cGUgPSAnJzsNCgkJCSR0cmltT3B0cyA9ICIg XHgyMlx0XG5cclwwXHgwQiI7DQoJCQkkb2JqUGFyYW1zID0gYXJyYXkoKTsNCgkJCSR0aGVQ YXJhbXMgPSBhcnJheSgpOw0KCQkJJGZsYXNoVmFycyA9IGFycmF5KCk7DQoJCQkkdGVtcGxh dGVPcHRpb25zID0gYXJyYXkoKTsNCg0KCQkJLy8gTWFrZSBhIG5vdGUgb2Ygd2hpY2ggaXRl bSBJRCBoYXMgYmVlbiBwaWNrZWQNCgkJCSRzbWRfcmJhbl9jaG9zZW5bXSA9ICRyb3dbJ2lk J107DQoNCgkJCS8vIEV4dHJhY3QgcGFyYW1ldGVycw0KCQkJc3dpdGNoICgkbW9kZSkgew0K CQkJCWNhc2UgImltYWdlIjoNCgkJCQkJJGxpbmtOYW1lID0gKCRsaW5rX2luKSA/IHRyaW0o JHJvd1skbGlua19pbl0pIDogJyc7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgImZpbGUiOg0K CQkJCQkkdGhlRGVzYyA9IGRvX2xpc3QoJGdsb2JhbF9wYXJhbXMuKGlzc2V0KCRyb3dbJGxp bmtfaW5dKSA/ICRyb3dbJGxpbmtfaW5dIDogJycpLCAkcm93X2RlbGltKTsNCg0KCQkJCQlp ZiAoJGRlYnVnID4gMikgew0KCQkJCQkJZWNobyAiKysgREVTQ1JJUFRJT04gRklFTEQgQ09O VEVOVFMgKysiOw0KCQkJCQkJZG1wKCR0aGVEZXNjKTsNCgkJCQkJfQ0KDQoJCQkJCWZvcmVh Y2ggKCR0aGVEZXNjIGFzICRwYXJhbXMpIHsNCgkJCQkJCSRwYXJhbXMgPSB0cmltKCRwYXJh bXMpOw0KCQkJCQkJaWYgKCRwYXJhbXMgIT0gIiIpIHsNCgkJCQkJCQkkdGhlc2VQYXJhbXMg PSBkb19saXN0KCRwYXJhbXMsICRudl9kZWxpbSk7DQoJCQkJCQkJJHBhcmFtTmFtZSA9IHN0 cnRvbG93ZXIoJHRoZXNlUGFyYW1zWzBdKTsNCgkJCQkJCQkkcGFyYW1WYWwgPSB0cmltKCR0 aGVzZVBhcmFtc1sxXSwkdHJpbU9wdHMpOw0KCQkJCQkJCWlmICgkcGFyYW1OYW1lID09ICJs aW5rX3VybCIgJiYgJGxpbmtfaW4pIHsNCgkJCQkJCQkJJGxpbmtOYW1lID0gJHBhcmFtVmFs Ow0KCQkJCQkJCX0gZWxzZWlmICgkcGFyYW1OYW1lID09ICJvbmNsaWNrIiAmJiAkbGlua19p bikgew0KCQkJCQkJCQkkb25jbGljayA9ICRwYXJhbVZhbDsNCgkJCQkJCQl9IGVsc2UgaWYg KCRwYXJhbU5hbWUgPT0gIm1pbWVfdHlwZSIpIHsNCgkJCQkJCQkJJHNldE1pbWVUeXBlID0g JHBhcmFtVmFsOw0KCQkJCQkJCX0gZWxzZSBpZiAoJHBhcmFtTmFtZSA9PSAiZmxhc2h2YXJz Iikgew0KCQkJCQkJCQkkdGhlUGFyYW1zWyRwYXJhbU5hbWVdID0gJHBhcmFtVmFsOw0KCQkJ CQkJCQkkdmFyc3RyID0gZG9fbGlzdCgkcGFyYW1WYWwsICImIik7DQoJCQkJCQkJCWZvcmVh Y2ggKCR2YXJzdHIgYXMgJHZhcikgew0KCQkJCQkJCQkJJG52UGFpciA9IGRvX2xpc3QoJHZh ciwgIj0iKTsNCgkJCQkJCQkJCSRmbGFzaFZhcnNbJG52UGFpclswXV0gPSAkbnZQYWlyWzFd Ow0KCQkJCQkJCQl9DQoJCQkJCQkJfSBlbHNlIGlmIChpbl9hcnJheSgkcGFyYW1OYW1lLCRo dG1sT2JqRml4ZWQpKSB7DQoJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4kcGFyYW1O YW1lXSA9ICRwYXJhbVZhbDsNCgkJCQkJCQl9IGVsc2UgaWYgKGluX2FycmF5KCRwYXJhbU5h bWUsJGh0bWxPYmpQYXJhbSkpIHsNCgkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiRw YXJhbU5hbWVdID0gJHBhcmFtVmFsOw0KCQkJCQkJCQkkdGVtcGxhdGVPcHRpb25zWyRwYXJh bU5hbWVdID0gJHBhcmFtTmFtZS4gJz0iJyAuU01EX0RMTV9UUi4kcGFyYW1OYW1lLiAnIic7 DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJJHRoZVBhcmFtc1skcGFyYW1OYW1lXSA9ICRw YXJhbVZhbDsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQl9 DQoNCgkJCS8vIEhhbmRsZSBsaW5rcw0KCQkJJHVybHBmeCA9ICJodHRwOi8vIjsNCgkJCWlm IChzdHJsZW4oJGxpbmtOYW1lKSA+IDApIHsNCgkJCQlpZiAoc3RybmNtcCgkbGlua05hbWUs ICR1cmxwZngsIHN0cmxlbigkdXJscGZ4KSkgPT0gMCkgew0KCQkJCQkkbGlua3VybCA9ICRs aW5rTmFtZTsNCgkJCQl9IGVsc2UgaWYgKHN1YnN0cigkbGlua05hbWUsIDAsIDEpID09ICcv JyAmJiAkbGlua19wcmVmaXggPT0gJycpIHsNCgkJCQkJJGxpbmt1cmwgPSBzaXRlX3VybChh cnJheSgpKSAuIHN1YnN0cigkbGlua05hbWUsMSk7DQoJCQkJfSBlbHNlIGlmIChzdWJzdHIo JGxpbmtfcHJlZml4LDAsMSkgPT0gJy8nKSB7DQoJCQkJCSRsaW5rdXJsID0gc2l0ZV91cmwo YXJyYXkoKSkgLiBzdWJzdHIoJGxpbmtfcHJlZml4LDEpIC4gJGxpbmtOYW1lOw0KCQkJCX0g ZWxzZSB7DQoJCQkJCSRsaW5rdXJsID0gJGxpbmtfcHJlZml4IC4gJGxpbmtOYW1lOw0KCQkJ CX0NCgkJCX0NCg0KCQkJaWYgKCRkZWJ1ZyA+IDApIHsNCgkJCQllY2hvICIrKyBERVNUSU5B VElPTiBMSU5LICsrIjsNCgkJCQlkbXAoJGxpbmt1cmwpOw0KCQkJfQ0KDQoJCQkvLyBTZXQg dXAgb25jbGljaw0KCQkJaWYgKHN0cmxlbigkb25jbGljaykgPiAwKSB7DQoJCQkJJG9uY2xp Y2sgPSAnIG9uY2xpY2s9IicuaHRtbHNwZWNpYWxjaGFycygkb25jbGljaykuJyInOw0KCQkJ fQ0KDQoJCQkvLyBUaHJvdyBvYmplY3Qgb3V0IHRvIHRoZSBwYWdlDQoJCQlpZiAoJHJhd191 cmwpIHsNCgkJCQlzd2l0Y2ggKCRtb2RlKSB7DQoJCQkJCWNhc2UgImltYWdlIjoNCgkJCQkJ CSRvdXRTdHIgPSBodS4kaW1nX2RpciAuIERTIC4kcm93WydpZCddIC4gKCgkdGh1bWIpID8g J3QnIDogJycpIC4gJHJvd1snZXh0J107DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiZmls ZSI6DQoJCQkJCQkkb3V0U3RyID0gKCRjb3VudF9kb3dubG9hZHMpID8gaHUuZ1R4dCgnZmls ZV9kb3dubG9hZCcpLiBEUyAuJHJvd1snaWQnXSA6IGh1LiRmaWxlc19kaXIuIERTIC4kcm93 WydmaWxlbmFtZSddOw0KCQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlz d2l0Y2goJG1vZGUpIHsNCgkJCQkJY2FzZSAiaW1hZ2UiOg0KCQkJCQkJJGltZ09wdGlvbnMg PSBhcnJheSgiaWQiID0+ICRyb3dbJ2lkJ10pOw0KCQkJCQkJaWYgKCRjbGFzcyAhPSAnJykg ew0KCQkJCQkJCSRpbWdPcHRpb25zWyJjbGFzcyJdID0gJGNsYXNzOw0KCQkJCQkJfQ0KCQkJ CQkJJG9iak91dCA9ICgoJHRodW1iKSA/IHRodW1ibmFpbCgkaW1nT3B0aW9ucykgOiBpbWFn ZSgkaW1nT3B0aW9ucykpOw0KDQoJCQkJCQkvLyBTaW5jZSB0aGUgYWx0L2NhcHRpb24gbWF5 IGhhdmUgYmVlbiBoaWphY2tlZCBmb3IgbGlua19pbiwgdXNlIHRoZSBvdGhlciB2YWx1ZSBp ZiBpbnN0cnVjdGVkDQoJCQkJCQlpZiAoISRkaXNwbGF5X3VybCkgew0KCQkJCQkJCXN3aXRj aCAoJGxpbmtfaW4pIHsNCgkJCQkJCQkJY2FzZSAiYWx0IjoNCgkJCQkJCQkJCSRvYmpPdXQg PSBzdHJfcmVwbGFjZSgnYWx0PSInLiRyb3dbJ2FsdCddLiciJywgJ2FsdD0iJy4kcm93Wydj YXB0aW9uJ10uJyInLCAkb2JqT3V0KTsNCgkJCQkJCQkJCWJyZWFrOw0KCQkJCQkJCQljYXNl ICJjYXB0aW9uIjoNCgkJCQkJCQkJCSRvYmpPdXQgPSBzdHJfcmVwbGFjZSgndGl0bGU9Iicu JHJvd1snY2FwdGlvbiddLiciJywgJ3RpdGxlPSInLiRyb3dbJ2FsdCddLiciJywgJG9iak91 dCk7DQoJCQkJCQkJCQlicmVhazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQlicmVhazsN CgkJCQkJY2FzZSAiZmlsZSI6DQoJCQkJCQkkdGVtcGxhdGVTdGFydCA9ICcnOw0KCQkJCQkJ JHRlbXBsYXRlRW5kID0gJyc7DQoJCQkJCQkkZmlsZVBhdGggPSBidWlsZF9maWxlX3BhdGgo JGZpbGVfYmFzZV9wYXRoLCAkcm93WydmaWxlbmFtZSddKTsNCgkJCQkJCSRmaWxlREwgPSAo JGNvdW50X2Rvd25sb2FkcykgPyBodS5nVHh0KCdmaWxlX2Rvd25sb2FkJykgLkRTLiAkcm93 WydpZCddIDogaHUuJGZpbGVzX2RpciAuRFMuICRyb3dbJ2ZpbGVuYW1lJ107DQoJCQkJCQlp ZiAoZmlsZV9leGlzdHMoJGZpbGVQYXRoKSkgew0KCQkJCQkJCS8vIEdldCB0aGUgZmlsZSBl eHRlbnNpb24gYW5kIGxvb2sgaXQgdXAgaW4gdGhlIHRhYmxlDQoJCQkJCQkJJHBhdGhCaXQg PSBwYXRoaW5mbygkZmlsZVBhdGgpOw0KCQkJCQkJCSRwYXRoRXh0ID0gKCRzZXRNaW1lVHlw ZSkgPyAkc2V0TWltZVR5cGUgOiAkcGF0aEJpdFsnZXh0ZW5zaW9uJ107DQoJCQkJCQkJZm9y ZWFjaCAoJG9iak1pbWVUeXBlIGFzICRleHRzID0+ICR0eXBlcyApIHsNCgkJCQkJCQkJJGV4 dExpc3QgPSBleHBsb2RlKFNNRF9ETE1fUkVDLCRleHRzKTsNCgkJCQkJCQkJLy8gU2V0IHNv bWUgc2Vuc2libGUgZGVmYXVsdHMgaWYgdGhlIG1hbmRhdG9yeSBvcHRpb25zIGFyZSBub3Qg c3VwcGxpZWQNCgkJCQkJCQkJaWYgKGluX2FycmF5KCRwYXRoRXh0LCAkZXh0TGlzdCkpIHsN CgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0cyhTTURfRExNX1RSLiJ0eXBlIiwgJG9i alBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NNRF9ETE1fVFIuInR5cGUiXSA9 ICR0eXBlc1swXTsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0 cyhTTURfRExNX1RSLiJkYXRhIiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFy YW1zW1NNRF9ETE1fVFIuImRhdGEiXSA9ICRmaWxlREw7DQoJCQkJCQkJCQl9DQoJCQkJCQkJ CQlpZiAoIWFycmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4iaWQiLCAkb2JqUGFyYW1zKSkg ew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4iaWQiXSA9ICJpZCIubXRfcmFu ZCgpOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9E TE1fVFIuIndpZHRoIiwgJG9ialBhcmFtcykpIHsNCgkJCQkJCQkJCQkkb2JqUGFyYW1zW1NN RF9ETE1fVFIuIndpZHRoIl0gPSAkc21kX3JiYW5MYW5nLT5nVHh0KCd3aWR0aCcpOw0KCQkJ CQkJCQkJfQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuImhl aWdodCIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RS LiJoZWlnaHQiXSA9ICRzbWRfcmJhbkxhbmctPmdUeHQoJ2hlaWdodCcpOw0KCQkJCQkJCQkJ fQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuInBsYXllcnZl cnNpb24iLCAkb2JqUGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9U Ui4icGxheWVydmVyc2lvbiJdID0gIjgiOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJaWYgKCFh cnJheV9rZXlfZXhpc3RzKFNNRF9ETE1fVFIuImJhY2tjb2xvciIsICRvYmpQYXJhbXMpKSB7 DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExNX1RSLiJiYWNrY29sb3IiXSA9ICcjZmZm ZmZmJzsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJCWlmICghYXJyYXlfa2V5X2V4aXN0cyhTTURf RExNX1RSLiJlbGVtZW50aWQiLCAkb2JqUGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJh bXNbU01EX0RMTV9UUi4iZWxlbWVudGlkIl0gPSAiZmxhc2hjb250ZW50XyIubXRfcmFuZCgp Ow0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3RzKFNNRF9ETE1f VFIuInVpZCIsICRvYmpQYXJhbXMpKSB7DQoJCQkJCQkJCQkJJG9ialBhcmFtc1tTTURfRExN X1RSLiJ1aWQiXSA9ICJzbWRfIi5tdF9yYW5kKCk7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCQkk dWlkID0gJG9ialBhcmFtc1tTTURfRExNX1RSLiJ1aWQiXTsNCgkJCQkJCQkJCWlmICgkY2xh c3MgIT0gJycgJiYgIWFycmF5X2tleV9leGlzdHMoU01EX0RMTV9UUi4iY2xhc3MiLCAkb2Jq UGFyYW1zKSkgew0KCQkJCQkJCQkJCSRvYmpQYXJhbXNbU01EX0RMTV9UUi4iY2xhc3MiXSA9 ICRjbGFzczsNCgkJCQkJCQkJCQkkdGVtcGxhdGVPcHRpb25zW10gPSAnY2xhc3M9IicgLlNN RF9ETE1fVFIuICdjbGFzcyInOw0KCQkJCQkJCQkJfQ0KCQkJCQkJCQkJJHRlbXBsYXRlU3Rh cnQgPSAkb2JqVGVtcGxhdGVbJHR5cGVzWzFdXVswXTsNCgkJCQkJCQkJCSR0ZW1wbGF0ZUVu ZCA9ICRvYmpUZW1wbGF0ZVskdHlwZXNbMV1dWzFdOw0KCQkJCQkJCQkJJHRlbXBsYXRlU3Rh cnQgPSBzdHJfcmVwbGFjZShTTURfRExNX1RSLiJvdGhlcnMiLCBpbXBsb2RlKCIgIiwgJHRl bXBsYXRlT3B0aW9ucyksICR0ZW1wbGF0ZVN0YXJ0KTsNCgkJCQkJCQkJCSR0ZW1wbGF0ZUVu ZCA9IHN0cl9yZXBsYWNlKFNNRF9ETE1fVFIuIm90aGVycyIsIGltcGxvZGUoIiAiLCAkdGVt cGxhdGVPcHRpb25zKSwgJHRlbXBsYXRlRW5kKTsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJ CQkJCQkkb2JqT3V0IC49IHN0cnRyKCR0ZW1wbGF0ZVN0YXJ0LCAkb2JqUGFyYW1zKTsNCg0K CQkJCQkJCWlmICgkZGVidWcgPiAxKSB7DQoJCQkJCQkJCWVjaG8gIisrIE1JTUUgSU5GTyAr KyI7DQoJCQkJCQkJCWRtcCgkcGF0aEV4dCk7DQoJCQkJCQkJCWVjaG8gIisrIE9CSkVDVCBJ TkZPICsrIjsNCgkJCQkJCQkJZG1wKCRvYmpQYXJhbXMpOw0KCQkJCQkJCQlkbXAoJHRoZVBh cmFtcyk7DQoJCQkJCQkJCWRtcCgkZmxhc2hWYXJzKTsNCgkJCQkJCQl9DQoNCgkJCQkJCQlp ZiAoJHNldE1pbWVUeXBlID09ICJzd28iKSB7DQoJCQkJCQkJCWZvcmVhY2ggKCR0aGVQYXJh bXMgYXMgJGtleSA9PiAkdmFsdWUpIHsNCgkJCQkJCQkJCWlmICgka2V5ICE9ICJmbGFzaHZh cnMiKSB7DQoJCQkJCQkJCQkJJG9iak91dCAuPSAkdWlkLicuYWRkUGFyYW0oIicuJGtleS4n IiwgIicuJHZhbHVlLiciKTsnLm47DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJCQkJCQkJ Zm9yZWFjaCAoJGZsYXNoVmFycyBhcyAkbmFtZSA9PiAkdmFsKSB7DQoJCQkJCQkJCQkkb2Jq T3V0IC49ICR1aWQuJy5hZGRWYXJpYWJsZSgiJy4kbmFtZS4nIiwgIicuJHZhbC4nIik7Jy5u Ow0KCQkJCQkJCQl9DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJZm9yZWFjaCAoJHRoZVBh cmFtcyBhcyAka2V5ID0+ICR2YWx1ZSkgew0KCQkJCQkJCQkJJG9iak91dCAuPSAnPHBhcmFt IG5hbWU9IicuJGtleS4nIiB2YWx1ZT0iJy4kdmFsdWUuJyIgLz4nOw0KCQkJCQkJCQl9DQoJ CQkJCQkJfQ0KCQkJCQkJCSRvYmpPdXQgLj0gKCgkc2V0TWltZVR5cGU9PSJzd28iKSA/ICcn IDogJG5vX3BsdWdfdGV4dCkgLiBzdHJ0cigkdGVtcGxhdGVFbmQsICRvYmpQYXJhbXMpLm47 DQoJCQkJCQl9DQoJCQkJCQlicmVhazsNCgkJCQl9DQoNCgkJCQkvLyBTdXJyb3VuZCB3aXRo IGxpbmsgLyByZWZlcmVyIGlmIG5lY2Vzc2FyeQ0KCQkJCWlmICgoJGxpbmtfaW4gIT0gIiIp ICYmIChzdHJsZW4oJGxpbmt1cmwpID4gMCkpIHsNCgkJCQkJaWYgKCRyZWZlcmVyICE9ICIi KSB7DQoJCQkJCQkkcmVmZXJ0eHQgPSBzbWRfYWRkUVNWYXIoJGxpbmt1cmwsICRyZWZlcmVy LCAkcm93WydpZCddKTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCSRyZWZlcnR4dCA9ICRsaW5r dXJsOw0KCQkJCQl9DQoJCQkJCSRvdXRTdHIgLj0gJzxhIGhyZWY9IicgLiRyZWZlcnR4dC4g JyInIC4gJG9uY2xpY2sgLiAkdGFyZ2V0IC4gJz4nIC4gJG9iak91dCAuICc8L2E+JzsNCgkJ CQl9IGVsc2Ugew0KCQkJCQkkb3V0U3RyIC49ICRvYmpPdXQ7DQoJCQkJfQ0KCQkJfQ0KCQl9 DQoJfQ0KDQoJcmV0dXJuICRvdXRTdHI7DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJv cmRlciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czo1MTAxNToi PGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMSBpZD0idG9wIj5zbWRfcmFuZG9tX2Jhbm5lcjwv aDE+CgoJPGgyIGlkPSJjb250ZW50cyI+Q29udGVudHM8L2gyPgoKCTx1bD4KCQk8bGk+PGEg aHJlZj0iI2ZlYXR1cmVzIj5GZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjYXV0 aG9yIj5BdXRob3I8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2luc3RhbGwiPkluc3RhbGxh dGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN1c2FnZSI+ VGFnIHVzYWdlPC9hPgoJPHVsPgoJCTxsaT48YSBocmVmPSIjaW1nbW9kZSI+SW1hZ2UgbW9k ZTwvYT4KCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2ltZ2F0dHMiPkF0dHJpYnV0ZXM8L2E+PC9s aT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2ZpbGVtb2RlIj5GaWxlIG1vZGU8L2E+ Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNtaW1ldHlwZXMiPk1pbWUgdHlwZXM8L2E+PC9saT4K CQk8bGk+PGEgaHJlZj0iI2ZpbGVhdHRzIj5BdHRyaWJ1dGVzPC9hPjwvbGk+Cgk8L3VsPjwv bGk+CgkJPGxpPjxhIGhyZWY9IiNmaWVsZHMiPkFydGljbGUgZmllbGQgY29kZXM8L2E+PC9s aT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2V4YW1wbGVzIj5FeGFtcGxlczwvYT4K CTx1bD4KCQk8bGk+PGEgaHJlZj0iI2ltZWciPkltYWdlIG1vZGU8L2E+PC9saT4KCQk8bGk+ PGEgaHJlZj0iI2ZtZWciPkZpbGUgbW9kZTwvYT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48 YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0i I2NyZWRpdHMiPkNyZWRpdHM8L2E+PC9saT4KCTwvdWw+CgoJPGgyIGlkPSJmZWF0dXJlcyI+ RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+UmFuZG9tbHkgZGlzcGxheSBvbmUgb3IgbW9y ZSBiYW5uZXJzIG9uIGEgcGFnZSBmb3IgY29zbWV0aWMgb3IgYWR2ZXJ0aXNpbmcgcHVycG9z ZXM8L2xpPgoJCTxsaT5SZWR1Y2UgdGhlIHBvb2wgb2YgcG90ZW50aWFsIGJhbm5lcnMgYmFz ZWQgb24gY2F0ZWdvcnkvaWQgb3Igc29tZSB0ZXh0IHRoYXQgbWF0Y2hlcyBzb21ldGhpbmcg aW4gdGhlIGN1cnJlbnQgYXJ0aWNsZTwvbGk+CgkJPGxpPlN1YmNhdGVnb3J5IHN1cHBvcnQ8 L2xpPgoJCTxsaT5CYW5uZXJzIGNhbiBiZSBpbWFnZXMgb3IgZmlsZXMgdG8gZGlzcGxheSBz dGF0aWMgb3IgbW92aW5nIGNvbnRlbnQgKGluY2x1ZGVzIDxhIGhyZWY9Imh0dHA6Ly9jb2Rl Lmdvb2dsZS5jb20vcC9zd2ZvYmplY3QvIj5zd2ZvYmplY3Q8L2E+IHN1cHBvcnQpPC9saT4K CQk8bGk+T3B0aW9uYWxseSBsaW5rIGJhbm5lcnMgdG8gPHNwYW4gY2xhc3M9ImNhcHMiPlVS TDwvc3Bhbj5zIGFuZCAoa2luZCBvZikgdHJhY2sgd2hpY2ggYmFubmVycyByZWNlaXZlZCBt b3N0IGNsaWNrcyB2aWEgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4mIzgyMTc7cyBs b2dzPC9saT4KCTwvdWw+CgoJPGgyIGlkPSJhdXRob3IiPkF1dGhvcjwvaDI+CgoJPHA+PGEg aHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbnRhY3QiPlN0ZWYgRGF3c29uPC9hPi4g Rm9yIG90aGVyIHNvZnR3YXJlIGJ5IG1lLCBvciB0byBtYWtlIGEgZG9uYXRpb24sIHNlZSB0 aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9h Pi48L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlv bjwvaDI+CgoJPHAgY2xhc3M9ImltcG9ydGFudCI+UmVxdWlyZXMgPGEgaHJlZj0iaHR0cDov L3N0ZWZkYXdzb24uY29tL3NtZF9saWIiPnNtZF9saWI8L2E+IHRvIGJlIGluc3RhbGxlZCBh bmQgYWN0aXZhdGVkLiBSZXF1aXJlcyA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiA0 LjMuMCsgdG8gdXRpbGlzZSBmaWxlIHRpdGxlPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVn aW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5z LzYxMS9zbWRfcmFuZG9tX2Jhbm5lciI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxh IGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBh c3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDxl bT5BZG1pbi0mZ3Q7UGx1Z2luczwvZW0+IHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUg cGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNv bS92aWV3dG9waWMucGhwP2lkPTE2NDQ4Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGlu Zm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1 Z2luLjwvcD4KCgk8cD5UbyByZW1vdmUgdGhlIHBsdWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBm cm9tIHRoZSA8ZW0+QWRtaW4tJmd0O1BsdWdpbnM8L2VtPiB0YWIuIElmIHlvdSBhcmUgbm8g bG9uZ2VyIHVzaW5nIHNtZF9saWIgd2l0aCBhbnkgb3RoZXIgcGx1Z2lucywgdGhpcyBjYW4g YWxzbyBiZSByZW1vdmVkLjwvcD4KCgk8aDIgaWQ9InVzYWdlIj5Vc2FnZTwvaDI+CgoJPHA+ SWYgeW91IHdhbnQgdG8gZWl0aGVyIGRpc3BsYXkgJiM4MjE2O2ludGVsbGlnZW50JiM4MjE3 OyBiYW5uZXJzIG9uIHlvdXIgcGFnZSB0aGF0IHNvbWVob3cgcmVsYXRlIHRvIHRoZSBjdXJy ZW50bHktdmlld2VkIGNvbnRlbnQ7IG9yIHBlcmhhcHMgZGlzcGxheSBzb21lIGJhbm5lcnMg dGhhdCBhZHZlcnRpc2UgPGVtPm90aGVyPC9lbT4gcGFydHMgb2YgeW91ciBzaXRlIChlLmcu ICYjODIyMDtXaGlsZSB5b3UgYXJlIGhlcmUsIGhvdyBhYm91dCYjODIzMDsmIzgyMjE7KSB0 aGVuIHRoaXMgcGx1Z2luIHdpbGwgaGVscCB5b3UgYWNoaWV2ZSB0aGF0LiBJdCBjYW4gYWxz byBiZSB1c2VkIHRvIHNpbXBseSBzcHJ1Y2UgdXAgYSBwYWdlIGFuZCBzaG93IGEgcmFuZG9t IGltYWdlIG9yIHR3byBlYWNoIHRpbWUuPC9wPgoKCTxwPlRoZSBwbHVnaW4gY2FuIGZ1bmN0 aW9uIGluIHR3byBkaXN0aW5jdCBtb2RlczsgPGEgaHJlZj0iI2ltZ21vZGUiPmltYWdlPC9h PiBvciA8YSBocmVmPSIjZmlsZW1vZGUiPmZpbGU8L2E+LjwvcD4KCgk8aDIgaWQ9ImltZ21v ZGUiPkltYWdlIG1vZGU8L2gyPgoKCTxwPkluIGl0cyBiYXNlIGZvcm0sIHRoaXMgbW9kZSBm dW5jdGlvbnMgZXhhY3RseSBhcyBkcnVfcmFuZG9tX2ltYWdlLCBpLmUuIGl0IHBpY2tzIG9u ZSByYW5kb20gaW1hZ2UgZnJvbSB0aGUgZW50aXJlIGRhdGFiYXNlIG9mIGltYWdlcyBhbmQg ZGlzcGxheXMgaXQuIEJ1dCBpdCBjYW4gZG8gYSB3aG9sZSBsb3QgbW9yZS4gRWFjaCBvcHRp b24gd2hpdHRsZXMgdGhlIGltYWdlcyBkb3duIGZ1cnRoZXIsIGJhc2VkIG9uIHZhcmlvdXMg Y3JpdGVyaWEsIHVudGlsIHlvdSBhcmUgbGVmdCB3aXRoIGEgcG90ZW50aWFsIHBvb2wgb2Yg aW1hZ2VzLCBmcm9tIHdoaWNoIHRoZSBwbHVnaW4gdGhlbiByYW5kb21seSBjaG9vc2VzIG9u ZSBvciBtb3JlIHBpY3R1cmVzLjwvcD4KCgk8aDMgaWQ9ImltZ2F0dHMiPkltYWdlIG1vZGUg YXR0cmlidXRlczwvaDM+CgoJPHA+U3dpdGNoZXMgdGhlIHBsdWdpbiBiZXR3ZWVuIHRoaXMg ZGVmYXVsdCA8YSBocmVmPSIjaW1nbW9kZSI+aW1hZ2UgbW9kZTwvYT4gKHB1bGxpbmcgcGlj dHVyZXMgZnJvbSB0aGUgaW1hZ2UgZGF0YWJhc2UpIG9yIDxhIGhyZWY9IiNmaWxlbW9kZSI+ ZmlsZSBtb2RlPC9hPiAoZnJvbSB1cGxvYWRlZCBmaWxlcykuPC9wPgoKCTxoND5GaWx0ZXJz PC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jYXRlZ29yeTwvc3Bhbj4g OiBhIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcy4gQnkgZGVmYXVsdCB0aGUgbGlzdCBzaG91 bGQgYmUgY29tbWEtc2VwYXJhdGVkIGJ1dCB0aGlzIGNhbiBiZSBjaGFuZ2VkIHdpdGggdGhl IDxjb2RlPmRlbGltPC9jb2RlPiBvcHRpb24uIFRoaXMgYXR0cmlidXRlIG1heSB0YWtlIGFu eSBvZiB0aGUgc3BlY2lhbCA8YSBocmVmPSIjZmllbGRzIj5maWVsZCBjb2RlczwvYT4gYnkg Z2l2aW5nIGl0cyBuYW1lIGFmdGVyIGEgPGNvZGU+PzwvY29kZT4gKHRvIGluY2x1ZGUgdGhh dCBmaWVsZCkgb3IgPGNvZGU+ITwvY29kZT4gKHRvIGV4Y2x1ZGUgdGhhdCBmaWVsZCk8L2xp PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+aWQ8L3NwYW4+IDogYSBsaXN0IG9mIGltYWdl IElEcy4gVGFrZXMgZXhhY3RseSB0aGUgc2FtZSBzeW50YXggYXMgdGhlIDxjb2RlPmNhdGVn b3J5PC9jb2RlPiBhdHRyaWJ1dGUuIENhbiBiZSB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGgg Y2F0ZWdvcnkgdG8gcHJvZHVjZSBhIGZ1bGwgc2V0IG9mIGltYWdlcyB0byBjaG9vc2UgZnJv bS4gWW91IG1heSBhbHNvIHNwZWNpZnkgcmFuZ2VzIG9mIGltYWdlIElEcywgZS5nLiA8Y29k ZT5pZD0mcXVvdDsxMC0xNSwgNDImcXVvdDs8L2NvZGU+IHdvdWxkIG1ha2UgaW1hZ2VzIHdp dGggSURzIDEwIHRocm91Z2ggMTUgYW5kIElEIDQyIGF2YWlsYWJsZS4gQSBzcGVjaWFsIHZh bHVlIGV4aXN0cyBmb3IgdGhvc2UgY2lyY3Vtc3RhbmNlcyB3aGVuIHlvdSB3YW50IHRvIHVz ZSBtdWx0aXBsZSBiYW5uZXJzIG9uIGEgcGFnZSBidXQgZG9uJiM4MjE3O3Qgd2FudCB0aGVt IHRvIGR1cGxpY2F0ZSBhbnkgaW1hZ2VzLiBTcGVjaWZ5IDxjb2RlPlNNRF9VTklRVUU8L2Nv ZGU+IGFzIG9uZSBvZiB5b3VyIHBhcmFtZXRlcnMgYW5kIHRoZSBwbHVnaW4gd2lsbCBpZ25v cmUgYW55IGltYWdlcyBhbHJlYWR5IGNob3NlbiBieSBvdGhlciBzbWRfcmFuZG9tX2Jhbm5l ciB0YWdzIG9uIHRoZSBzYW1lIHBhZ2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ c3ViY2F0czwvc3Bhbj4gOiBob3cgZmFyICYjODIxNjtkb3duJiM4MjE3OyB0byB0cmF2ZXJz ZSBpbWFnZSBzdWItY2F0ZWdvcmllcy4gVGFrZXMgYW4gaW50ZWdlciB2YWx1ZSBvciAmIzgy MTY7YWxsJiM4MjE3Oy4gMCAodGhlIGRlZmF1bHQpIG1lYW5zIG5vIGNoaWxkIGNhdGVnb3Jp ZXM7IDEgdXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB0aGUgZmlyc3QgbGV2ZWwgb2Yg Y2hpbGRyZW47IDIgdXNlcyB0aGUgbWFpbiBjYXRlZ29yaWVzIGFuZCB1cCB0byB0d28gY2hp bGQgc3ViLWNhdGVnb3JpZXM7IGFuZCBzbyBvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5saW1pdDwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIGJhbm5lcnMgdG8gc2hvdyBwZXIg cGFnZS4gRGVmYXVsdDogMS4gTm90ZSB0aGF0IGlmIHRoZSBwb29sIGNvbnRhaW5zIGZld2Vy IGl0ZW1zIHRoYW4gdGhlIG51bWJlciBzcGVjaWZpZWQgaGVyZSwgdGhlIHBsdWdpbiBjYW4g b25seSBkaXNwbGF5IHRoZSBtYXhpbXVtIG51bWJlciBpdCBoYXMgZm91bmQgdGhhdCBtYXRj aCB5b3VyIGNyaXRlcmlhPC9saT4KCTwvdWw+CgoJPGg0PkltYWdlIHNlbGVjdGlvbjwvaDQ+ CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bWF0Y2hfdGV4dDwvc3Bhbj4gOiBh IGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRleHQgc3RyaW5ncyB0byBsb29rIGZvciBpbiB0 aGUgaW1hZ2UgZGV0YWlscy4gQXMgd2l0aCB0aGUgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+IGFu ZCA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlcywgeW91IGNhbiBzcGVjaWZ5IDxhIGhyZWY9 IiNmaWVsZHMiPmZpZWxkIGNvZGVzPC9hPiB0byBtYXRjaCBhZ2FpbnN0IHNvbWV0aGluZyBp biB0aGUgY3VycmVudCBhcnRpY2xlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmF2 b2lkX3RleHQ8L3NwYW4+IDogdGhlIG9wcG9zaXRlIG9mIG1hdGNoX3RleHQ7IGEgY29tbWEt c2VwYXJhdGVkIGxpc3Qgb2YgdGV4dCBzdHJpbmdzIHRoYXQgbXVzdCA8c3Ryb25nPm5vdDwv c3Ryb25nPiBhcHBlYXIgaW4gdGhlIGltYWdlIGRldGFpbHMuIFlvdSBjYW4gYWxzbyBzcGVj aWZ5IDxhIGhyZWY9IiNmaWVsZHMiPmZpZWxkIGNvZGVzPC9hPiB0byBtYXRjaCBhZ2FpbnN0 IHNvbWV0aGluZyBpbiB0aGUgY3VycmVudCBhcnRpY2xlLiBOb3RlIHRoYXQgYW55IGltYWdl cyBtYXRjaGluZyBzdHVmZiBpbiB0aGUgJiM4MjE2O3Bvc2l0aXZlJiM4MjE3OyA8Y29kZT5t YXRjaF90ZXh0PC9jb2RlPiBsaXN0IHdpbGwgYmUgY2hvc2VuIGZpcnN0LCBiZWZvcmUgc29t ZSBvZiB0aGVtIGFyZSB0aGVuIGV4Y2x1ZGVkIGZyb20gdGhlIGxpc3QgaW4gPGNvZGU+YXZv aWRfdGV4dDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y29tcGFyZV90 bzwvc3Bhbj4gOiBhbGwgdGhpcyB0YWxrIG9mIGNvbXBhcmluZyB3b3JkcyB0byBpbWFnZXMg aXMgZmluZSwgYnV0IHdoYXQgZXhhY3RseSBpcyBpdCBjb21wYXJpbmcgdG8/IFRoaXMgaXMg d2hlcmUgeW91IGRlY2xhcmUgd2hlcmUgdGhlIHBsdWdpbiBsb29rcy4gQnkgZGVmYXVsdCBp dCB1c2VzIGp1c3QgdGhlIGltYWdlIGZpbGUgbmFtZSwgYnV0IGl0IGNhbiBiZSBleHRlbmRl ZCB0byBlbmNvbXBhc3MgYW55IG9mIHRoZSBmb2xsb3dpbmc6Cgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5uYW1lPC9zcGFuPiA6IGxvb2sgYXQgdGhlIGZpbGVuYW1lIG9mIHRo ZSBpbWFnZSBhbmQgaWYgaXQgY29udGFpbnMgYW55IG9mIHRoZSB3b3JkcyBpbiA8Y29kZT5t YXRjaF90ZXh0PC9jb2RlPiB0aGVuIGFkZCBpdCB0byB0aGUgcG9vbC4gQ29udmVyc2VseSwg aWYgaXQgY29udGFpbnMgYW55IG9mIHRoZSB3b3JkcyBpbiA8Y29kZT5hdm9pZF90ZXh0PC9j b2RlPiB0aGVuIGlnbm9yZSB0aGUgaW1hZ2U8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+aWQ8L3NwYW4+IDogbG9vayBhdCB0aGUgaWQgb2YgdGhlIGltYWdlIGFuZCBpbmNsdWRl L2V4Y2x1ZGUgaXQgYmFzZWQgb24gdGhlIG51bWJlcnMgZ2l2ZW4gaW4gPGNvZGU+bWF0Y2hf dGV4dDwvY29kZT4gLyA8Y29kZT5hdm9pZF90ZXh0PC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5jYXB0aW9uPC9zcGFuPiA6IGlmIHRoZSBjYXB0aW9uIGNvbnRhaW5z IHdvcmRzIGZvdW5kIGluIDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IGFuZCB3b3JkcyBub3Qg Zm91bmQgaW4gPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4sIGluY2x1ZGUvZXhjbHVkZSB0aGlz IGltYWdlIGZyb20gdGhlIHBvb2w8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+YWx0 PC9zcGFuPiA6IGlmIHRoZSBhbHQgdGV4dCBjb250YWlucyBvciBkb2VzIG5vdCBjb250YWlu IHRoZSBzcGVjaWZpZWQgd29yZHMsIGluY2x1ZGUvZXhjbHVkZSB0aGlzIGltYWdlIGZyb20g dGhlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNhdGVnb3J5PC9zcGFuPiA6IGFs dGhvdWdoIG5vdCByZWFsbHkgb2YgbXVjaCB1c2UgKHRoZSA8Y29kZT5jYXRlZ29yeTwvY29k ZT4gYXR0cmlidXRlIGNhbiBiZSB1c2VkIGluc3RlYWQpLCB5b3UgbWF5IHNwZWNpZnkgdGhl IGNhdGVnb3J5IGFzIGEgcGxhY2UgdG8gbG9vayBmb3IgcGFydGljdWxhciB3b3JkczwvbGk+ Cgk8L3VsPjwvbGk+Cgk8L3VsPgoKCTxoND5MaW5rIGhhbmRsaW5nPC9oND4KCgk8dWw+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5saW5rX2luPC9zcGFuPiA6IG1ha2VzIHRoZSBiYW5u ZXIgaW1hZ2UgY2xpY2thYmxlLiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiA8 c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB3ZSBhcmUgbGltaXRlZCB0byBwdXR0aW5n IGEgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluayBlaXRoZXIgaW4gdGhlIGFs dCwgY2FwdGlvbiBvciBuYW1lIGZpZWxkcy4gU2ltcGx5IHVzZSB0aGlzIGF0dHJpYnV0ZSB0 byBzcGVjaWZ5IHdoaWNoIHBhcnQgb2YgdGhlIGltYWdlIGRldGFpbHMgY29udGFpbiB0aGUg ZGVzdGluYXRpb24gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4uIEl0IGNhbiBiZSBl aXRoZXIgPGNvZGU+YWx0PC9jb2RlPiwgPGNvZGU+Y2FwdGlvbjwvY29kZT4gb3IgPGNvZGU+ bmFtZTwvY29kZT4uIERlZmF1bHQ6IG9taXR0ZWQgKG5vIGxpbmspPGRpdiBjbGFzcz0iYnJl YWsiPklmIHRoZSBsaW5rIGlzIGEgZnVsbCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiBzdGFydGluZyB3aXRoIDxjb2RlPmh0dHA6Ly88L2NvZGU+IGl0IHdpbGwgYmUgdXNlZCB2 ZXJiYXRpbSBmb3IgdGhlIGltYWdlIGxpbmsuIElmIGl0IHN0YXJ0cyB3aXRoIGEgPGNvZGU+ LzwvY29kZT4gaXQgd2lsbCBiZSBodW5nIG9mZiB0aGUgcm9vdCBzaXRlX3VybCBkaXJlY3Rs eS4gSWYgaXQgc3RhcnRzIHdpdGggYW55dGhpbmcgZWxzZSBpdCBpcyBhc3N1bWVkIGEgJiM4 MjE2O3JlbGF0aXZlJiM4MjE3OyAob3IgJiM4MjE2O2xvY2FsJiM4MjE3OykgbGluayBhbmQg aW5oZXJpdHMgdGhlIGN1cnJlbnQgc2VjdGlvbi48L2Rpdj48L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXRubSI+bGlua19wcmVmaXg8L3NwYW4+IDogYSBzdHJpbmcgdG8gcHJlcGVuZCB0 byBldmVyeSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB3aGVuIHVzaW5nIDxjb2Rl PmxpbmtfaW48L2NvZGU+LiBVc2VmdWwgaWYgeW91IHJlb3JnYW5pc2UgeW91ciBzaXRlOiB1 c2UgdGhpcyBpbnN0ZWFkIG9mIHZpc2l0aW5nIGVhY2ggaW1hZ2UgYW5kIGFsdGVyaW5nIHRo ZSBuYW1lL2NhcHRpb24vYWx0IHRleHQuIERlZmF1bHQ6IG9taXR0ZWQgKG5vIHRleHQpLiBB cyB3aXRoIDxjb2RlPmxpbmtfaW48L2NvZGU+LCBpZiB0aGlzIGF0dHJpYnV0ZSBiZWdpbnMg d2l0aCA8Y29kZT5odHRwOi8vPC9jb2RlPiBpdCBpcyBhc3N1bWVkIGEgZnVsbCA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB0byBhbm90aGVyIHNpdGU7IGlmIGl0IGJlZ2lucyB3 aXRoIDxjb2RlPi88L2NvZGU+IGl0IGlzIGEgcm9vdCBsaW5rOyBhbnl0aGluZyBlbHNlIGlz IGFzc3VtZWQgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgc2VjdGlvbi4gTm90ZSB0aGF0IGlm IHlvdSB1c2UgYW4gPGNvZGU+aHR0cDovLzwvY29kZT4gZnVsbCA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiBpbiB0aGUgaW1hZ2UgaXRzZWxmLCBhbnkgPGNvZGU+bGlua19wcmVm aXg8L2NvZGU+IHdpbGwgYmUgaWdub3JlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5kaXNwbGF5X3VybDwvc3Bhbj4gOiBzaW5jZSB0aGlzIHBsdWdpbiBjYW4gaGlqYWNrIHRo ZSBjYXB0aW9uL2FsdCB0ZXh0IGZvciBhIGRlc3RpbmF0aW9uIDxzcGFuIGNsYXNzPSJjYXBz Ij5VUkw8L3NwYW4+LCB5b3UgbWF5IHdpc2ggdG8gbm90IHNob3cgdGhpcyB0byB2aXNpdG9y cyAoYXMgdGhlIGRlZmF1bHQgdG9vbHRpcCBwb3B1cCB0aXRsZSkgb3Igc2NyZWVuIHJlYWRl cnMvc2VhcmNoIGVuZ2luZSBjcmF3bGVycyAodGhlIGFsdCB0ZXh0KS4gVXNpbmcgPGNvZGU+ ZGlzcGxheV91cmw9JnF1b3Q7MCZxdW90OzwvY29kZT4gd2lsbCBzaW1wbHkgdXNlIHRoZSBk ZXRhaWxzIGZyb20gd2hpY2hldmVyIGVsZW1lbnQgeW91IGFyZSA8ZW0+bm90PC9lbT4gdXNp bmcgZm9yIDxjb2RlPmxpbmtfaW48L2NvZGU+LiBGb3IgZXhhbXBsZSwgaWYgeW91ciBhbHQg dGV4dCBpcyAmIzgyMjA7U3B1ZCBndW4mIzgyMjE7IGFuZCB5b3VyIGNhcHRpb24gaXMgJiM4 MjIwO2h0dHA6Ly9zcHVkZ3Vucy5jb20vJiM4MjIxOywgc2V0dGluZyBkaXNwbGF5X3VybCB0 byAwIHdpbGwgbWFrZSBib3RoIGFsdCBhbmQgdGl0bGUgYXR0cmlidXRlcyBib3RoICYjODIy MDtTcHVkIGd1biYjODIyMTs8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+cmVmZXJl cjwvc3Bhbj4gOiBbc2ljIV0gd2hlbiA8Y29kZT5saW5rX2luPC9jb2RlPiBpcyB1c2VkLCBl YWNoIGNsaWNrYWJsZSBpbWFnZSBoYXMgPGNvZGU+P2JpZD1pbWFnZUlEPC9jb2RlPiBhZGRl ZCB0byBpdCwgc28gY2xpY2tzIGNhbiBiZSB0cmFja2VkIGluIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPiBhZG1pbiBsb2dzIHRvIHNlZSB3aGljaCBhcmUgdGhlIG1vc3Qg ZWZmZWN0aXZlIGFkcy4gQ2hhbmdlIHRoZSA8Y29kZT5iaWQ8L2NvZGU+IHRleHQgaGVyZSB0 byBzb21ldGhpbmcgb2YgeW91ciBjaG9vc2luZywgb3IgdXNlIDxjb2RlPnJlZmVyZXI9JnF1 b3Q7JnF1b3Q7PC9jb2RlPiB0byBkaXNhYmxlIHRyYWNraW5nLiBEZWZhdWx0OiA8Y29kZT5i aWQ8L2NvZGU+LiBOb3RlIHRoYXQgdGhlIGF0dHJpYnV0ZSBpcyBtaXMtc3BlbGxlZCBleGFj dGx5IHRoZSBzYW1lIHdheSBhcyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+ IHNwZWMgd2FzIGFsbCB0aG9zZSB5ZWFycyBhZ28gOi1wPC9saT4KCTwvdWw+CgoJPGg0PkZv cm1hdHRpbmc8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnJhd191cmw8 L3NwYW4+IDogaW5zdGVhZCBvZiBsaW5raW5nIGFuZCBtYWtpbmcgYSBmdWxsIGltYWdlIHRh ZywgdXNpbmcgdGhpcyBvcHRpb24ganVzdCBvdXRwdXRzIHRoZSBiYW5uZXIgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gZGlyZWN0bHkgdG8gdGhlIHBhZ2UuIFRoaXMgY2FuIGJl IHVzZWQgaW4gPGNvZGU+Jmx0O3N0eWxlJmd0OzwvY29kZT4gZGVjbGFyYXRpb25zIHRvLCBm b3IgZXhhbXBsZSwgc2V0IGEgcmFuZG9tIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+ IG9iamVjdCBiYWNrZ3JvdW5kLiBEZWZhdWx0OiBvZmY8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+dGFyZ2V0PC9zcGFuPiA6IHNwZWNpZmllcyB0aGUgYW5jaG9yIHRhcmdldCB3 aW5kb3cgKGUuZy4gJiM4MjIwOzxlbT5ibGFuayYjODIyMTspIHdoaWNoIHdpbGwgY2F1c2Ug YSBwb3B1cCBlZmZlY3Qgd2hlbiBhIGxpbmtlZCBiYW5uZXIgaXMgY2xpY2tlZC4gX05COiBp ZiB1c2luZyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlhIVE1MPC9zcGFuPiAxLjEgPHNwYW4g Y2xhc3M9ImNhcHMiPkRPQ1RZUEU8L3NwYW4+IHdpdGggdGhpcyBvcHRpb24sIHlvdXIgcGFn ZSB3aWxsIG5vdCB2YWxpZGF0ZSBzaW5jZSB0YXJnZXQgaXMgZGVwcmVjYXRlZCBieSB0aGUg VzNDPC9lbT4uIERlZmF1bHQ6IG5vdCBzZXQgKGxpbmtzIG9wZW4gaW4gc2FtZSB3aW5kb3cp PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNs YXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciBlYWNoIGJhbm5lciBpbWFnZSBkaXNw bGF5ZWQuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKS4gPGVtPk5vdGUgdGhhdCB0 aGlzIGF0dHJpYnV0ZSB3YXMgZm9ybWVybHkgY2FsbGVkIGltZ2NsYXNzPC9lbT48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dGh1bWI8L3NwYW4+IDogc2V0IHRoaXMgdG8gPGNv ZGU+MTwvY29kZT4gdG8gZGlzcGxheSB0aHVtYm5haWxzIGluc3RlYWQgb2YgZnVsbCBzaXpl IGltYWdlcy4gRGVmYXVsdDogMCAob3Igb21pdHRlZCk8L2xpPgoJPC91bD4KCgk8aDQ+UGx1 Z2luIGN1c3RvbWlzYXRpb248L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i Pm1vZGU8L3NwYW4+IDogc3dpdGNoZXMgdGhlIHBsdWdpbiBiZXR3ZWVuIHRoaXMgZGVmYXVs dCA8Y29kZT5tb2RlPSZxdW90O2ltYWdlJnF1b3Q7PC9jb2RlPiBmb3IgcHVsbGluZyBiYW5u ZXJzIGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4mIzgyMTc7cyBJbWFnZXMg cGFnZSwgb3IgPGNvZGU+bW9kZT0mcXVvdDtmaWxlJnF1b3Q7PC9jb2RlPiB0byBjaG9vc2Ug YmFubmVycyBmcm9tIGZpbGVzIHVwbG9hZGVkIHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+IEZpbGVzIHBhZ2UuPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmFsd2F5 c19kaXNwbGF5PC9zcGFuPiA6IGlmIG5vIG1hdGNoaW5nIGltYWdlcyBhcmUgZm91bmQgdGhl IHBsdWdpbiB1c3VhbGx5IHJldHVybnMgbm90aGluZy4gU2V0dGluZyA8Y29kZT5hbHdheXNf ZGlzcGxheT0mcXVvdDsxJnF1b3Q7PC9jb2RlPiBmb3JjZXMgaXQgdG8gdHJ5IGFnYWluIHdp dGhvdXQgYW55IDxjb2RlPm1hdGNoX3RleHQ8L2NvZGU+IG9yIDxjb2RlPmF2b2lkX3RleHQ8 L2NvZGU+IChpLmUuIGp1c3QgYW55IDxjb2RlPmNhdGVnb3J5PC9jb2RlPiAvIDxjb2RlPmlk PC9jb2RlPiB5b3Ugc3BlY2lmaWVkKS4gSWYgeW91IHJlYWxseSwgPGVtPnJlYWxseTwvZW0+ IHdhbnQgYW4gaW1hZ2UgcmVnYXJkbGVzcywgdXNlIDxjb2RlPmFsd2F5c19kaXNwbGF5PSZx dW90OzImcXVvdDs8L2NvZGU+IHRvIHB1bGwgYW4gaW1hZ2UgZnJvbSB0aGUgZW50aXJlIGRh dGFiYXNlLiBEZWZhdWx0OiAwIChpLmUuIG9mZik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+ZGVsaW08L3NwYW4+IDogaWYgeW91IHByZWZlciB0byBzZXQgdGhlIGRlbGltaXRl ciB0byBzb21ldGhpbmcgb3RoZXIgdGhhbiBhIGNvbW1hIHdoZW4gc3BlY2lmeWluZyBmaWVs ZHMsIHVzZSB0aGlzIGF0dHJpYnV0ZS4gVmVyeSB1c2VmdWwgaWYgdXNpbmcgdGhlIGdsel9j dXN0b21fZmllbGRzIHBsdWdpbjsgeW91IGNhbiBzZXQgdGhpcyB0byA8Y29kZT5kZWxpbT0m cXVvdDt8JnF1b3Q7PC9jb2RlPiB0byB1c2Ugc2VsZWN0IG9yIHJhZGlvIGJ1dHRvbnMgaW4g Y3VzdG9tIGZpZWxkczwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iZmlsZW1vZGUiPkZpbGUgbW9k ZTwvaDI+CgoJPHA+U2ltaWxhciBpbiBtYW55IHJlc3BlY3RzIHRvIHRoZSA8YSBocmVmPSIj aW1nbW9kZSI+aW1hZ2UgbW9kZTwvYT4gdGhlIHBsdWdpbiBjYW4gY2hvb3NlIHJhbmRvbSBm aWxlcyBmcm9tIHRob3NlIHVwbG9hZGVkIHRvIHRoZSBGaWxlcyB0YWIgaW4gdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGludGVyZmFjZS4gVGhpcyBnaXZlcyB5b3UgdGhl IG9wdGlvbiBvZiB1c2luZyBhIHJhbmRvbWx5IHNlbGVjdGVkIHBpZWNlIG9mIEZsYXNoIG9y IGEgdmlkZW8gZmlsZSBpZiB5b3Ugd2FudC4gSW4gdGhlb3J5LCBpZiB0aGVyZSYjODIxNztz IGEgYnJvd3NlciBwbHVnaW4gYXZhaWxhYmxlIGZvciBpdCwgeW91IGNhbiBwbGF5IGl0IChi dXQgbm90ZSB0aGUgY2F2ZWF0cyBsYXRlcjogc3VwcG9ydCBmb3IgZXZlcnl0aGluZyBpc24m IzgyMTc7dCBidWlsdCBpbiBuYXRpdmVseSkuPC9wPgoKCTxwPkFzIHdpdGggdGhlIGltYWdl IG1vZGUsIG1vc3Qgb2YgdGhlIG9wdGlvbnMgd29yayB0byB3aGl0dGxlIGRvd24gdGhlIGNo b2ljZXMgdG8gYSBwb29sIG9mIGZpbGVzIHRoYXQgbWF0Y2ggeW91ciBzcGVjaWZpYyBjcml0 ZXJpYS4gVGhlIHBsdWdpbiB0aGVuIHJhbmRvbWx5IGNob29zZXMgb25lIChvciBtb3JlKSBv ZiB0aG9zZSBhbmQgcmVuZGVycyBpdCBhcyBiZXN0IGl0IGNhbi48L3A+CgoJPHA+VGhlcmUg aXMgb25lIGNydWNpYWwgZGlmZmVyZW5jZSBpbiB0aGlzIG1vZGU6IHNpbmNlIDxzcGFuIGNs YXNzPSJjYXBzIj5UWFA8L3NwYW4+IGlzIGxpbWl0ZWQgdG8gb25lIGZpZWxkIG9mIGN1c3Rv bWlzYWJsZSBjb250ZW50IHdpdGggRmlsZXMgYW5kIHRoZXJlIGFyZSBhIGxvdCBvZiBwb3Rl bnRpYWwgaWRpb3N5bmNyYWNpZXMgaW4gZW1iZWRkaW5nIHBsYXlhYmxlIGNvbnRlbnQsIG9u bHkgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBpcyBzcGVjaWZpZWQgYXMgcGx1Z2luIG9wdGlv bnMuIEN1c3RvbWlzYXRpb24gYWJvdmUgYW5kPGJyIC8+CmJleW9uZCB0aGF0IGdvZXMgaW4g dGhlIDxjb2RlPmRlc2NyaXB0aW9uPC9jb2RlPiBmaWVsZCBhcyBhIGNhdGNoLWFsbCBmb3Ig bWFueSBleHRyYSBvcHRpb25zLjwvcD4KCgk8cD5VbmZvcnR1bmF0ZWx5LCB1c2luZyBvbmUg ZmllbGQgZm9yIG1hbnkgcHVycG9zZXMgaW1wbGllcyBzdGlja2luZyB0byBzb21lIGNvbnZl bnRpb25zLiBUbyB0aGlzIGVuZCwgd2hlbiBzcGVjaWZ5aW5nIG9wdGlvbnMgaW4gdGhlIGRl c2NyaXB0aW9uIGZpZWxkLCB1c2UgdGhlIGZvbGxvd2luZyBmb3JtYXQ6PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+b3B0aW9uTmFtZTE9b3B0aW9uVmFs dWUxOwpvcHRpb25OYW1lMj1vcHRpb25WYWx1ZTI7Ci4uLgo8L2NvZGU+PC9wcmU+CgoJPHA+ Tm8gcXVvdGVzIGFyZSBuZWNlc3NhcnkgYXJvdW5kIHRoZSBvcHRpb24gdmFsdWVzIGFzIHRo ZSBwbHVnaW4gd2lsbCBwdXQgdGhlbSBpbiBmb3IgeW91LCB0aG91Z2ggaXQgZG9lcyBubyBo YXJtIHRvIGluY2x1ZGUgdGhlbS4gQW5kIGFsdGhvdWdoIHNwYWNlcyBhbmQgbmV3bGluZXMg YXJlIGFsc28gb3B0aW9uYWwsIGl0JiM4MjE3O2xsIGhlbHAga2VlcCB5b3VyIHNhbml0eSBp ZiB5b3UgZG8gdGhpbmdzIHRoaXMgd2F5ISBKdXN0IG5vdGUgdGhhdCBldmVyeSA8Y29kZT5v cHRpb249dmFsdWU8L2NvZGU+IHBhaXIgZW5kcyB3aXRoIGEgc2VtaWNvbG9uICg8Y29kZT47 PC9jb2RlPikuIEl0IGlzIHByb2JhYmx5IGJlc3QgdG8gc2V0IGFzaWRlIGEgc3BlY2lmaWMg Y2F0ZWdvcnkvc3ViLWNhdGVnb3J5IGZpbGUgdHJlZSBmb3IgeW91ciBiYW5uZXJzIHNpbmNl IHdlIGFyZSBnb2luZyB0byBiZSBoaWphY2tpbmcgdGhlIGRlc2NyaXB0aW9uIGZpZWxkIGZv ciBwdXJwb3NlcyBvdGhlciB0aGFuIGl0IHdhcyBpbnRlbmRlZC48L3A+CgoJPGgzIGlkPSJt aW1ldHlwZXMiPjxzcGFuIGNsYXNzPSJjYXBzIj5NSU1FPC9zcGFuPiB0eXBlczwvaDM+CgoJ PHA+PHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGVzIHJ1bGUgaW4gRmlsZXMg bW9kZS4gVW5mb3J0dW5hdGVseSwgdGhlIHRvb2xzIGJyb3dzZXJzIGFuZCBzZXJ2ZXJzIGVt cGxveSB0byBhY2N1cmF0ZWx5IGRldGVybWluZSB3aGljaCBmaWxlIGlzIG9mIHdoYXQgdHlw ZSBhcmUgb2Z0ZW4gZXh0ZW5zaW9ucyBhbmQgY2Fubm90IGJlIGd1YXJhbnRlZWQgdG8gYmUg aW5zdGFsbGVkIG9uIGV2ZXJ5IHNlcnZlci4gU28gd2UgaGF2ZSB0byB1c2UgdGhlIG5leHQg YmVzdCB0aGluZzogdGhlIGZpbGUgZXh0ZW5zaW9uLiBZZXMgaXQgY2FuIGJlIG1pc2xlYWRp bmcsIGJ1dCB3ZSYjODIxNztyZSBzdHVjayB3aXRoIGl0LjwvcD4KCgk8cD5PbmNlIGEgZmls ZSBoYXMgYmVlbiBzZWxlY3RlZCBiYXNlZCBvbiB5b3VyIGNob3NlbiBhdHRyaWJ1dGVzLCB0 aGUgcGx1Z2luIGxvb2tzIGF0IGl0cyBmaWxlIGV4dGVuc2lvbi4gQmFzZWQgb24gdGhhdCBp dCB1c2VzIGEgbG9va3VwIHRhYmxlIHRvIGRldGVybWluZSB0aGUgY29ycmVjdCA8c3BhbiBj bGFzcz0iY2FwcyI+TUlNRTwvc3Bhbj4gdHlwZSBhbmQgdGVtcGxhdGUuIFRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+TUlNRTwvc3Bhbj4gdHlwZSBpcyBvdmVycmlkYWJsZSBvbiBhIHBlci1m aWxlIGJhc2lzIGJ1dCB0aGUgdGVtcGxhdGVzIGFyZSBhbGwgaGFyZC1jb2RlZCBmb3Igbm93 LiBJJiM4MjE3O20gaG9waW5nIHRvIG9uZSBkYXkgYWxsb3cgdGhlbSB0byBiZSBleHRlbmRl ZC9tb2RpZmllZCB2aWEgcGx1Z2luIG9wdGlvbnMsIGJ1dCBpdCYjODIxNztzIGEgd2F5IG9m ZiB5ZXQuPC9wPgoKCTxwPkZvciBub3csIHRoZSBtb3N0IGNvbW1vbiB0aGluZ3MgbGlrZSBG bGFzaCBmaWxlcywgPHNwYW4gY2xhc3M9ImNhcHMiPkFWSTwvc3Bhbj4vTU9WL01QRy9XTVYg bW92aWVzIGFuZCBldmVuIHNvbWUgYXVkaW8gZm9ybWF0cyBsaWtlIDxzcGFuIGNsYXNzPSJj YXBzIj5XQVY8L3NwYW4+L09HRy9PUFRJTUZST0cvRkxBQyBhcmUgc3VwcG9ydGVkIChhdWRp byBiYW5uZXJzIGFueW9uZT8hKSBBbmQgdGhlIGdvb2QgbmV3cyBpcyBpdCBzaG91bGQgYmUg ZmFpcmx5IGF1dG9tYXRpYyAoaWYgaXQgaXNuJiM4MjE3O3QsIHBsZWFzZSA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vY29tbWVudEZvcm0iPmdldCBpbiB0b3VjaDwvYT4gYW5k IHN1Z2dlc3QgYmV0dGVyIHRlbXBsYXRlcyBmb3IgdGhlIG5leHQgcmV2aXNpb24pLjwvcD4K Cgk8cD5UaGUga2V5IHRvIGl0IGlzIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgb3B0aW9ucy4g VGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS90YWdzL3RhZ19vYmplY3Qu YXNwIj48c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gb2JqZWN0IHRhZzwvYT4gY29u dGFpbnMgYSBob3N0IG9mIGF0dHJpYnV0ZXMsIGFsbCBvZiB3aGljaCB5b3UgY2FuIG92ZXJy aWRlIGJ5IHNwZWNpZnlpbmcgdGhlbSBhcyA8Y29kZT5vcHRpb249dmFsdWU8L2NvZGU+IHBh aXJzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGF0IHBhcnRpY3VsYXIgZmlsZS4g QW55IGF0dHJpYnV0ZXMgdGhhdCBtYXRjaCB0aGUgbmFtZXMgaW4gdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5IVE1MPC9zcGFuPiBzcGVjIGNhbiBiZSB1c2VkLiBUaGVzZSBhcmUgdGhlIGNv cmUgb25lcyB0aGF0IHRoZSBwbHVnaW4gd2lsbCBzZWxlY3QgZm9yIHlvdSBpZiB5b3UgZG88 YnIgLz4Kbm90IHNwZWNpZnkgeW91ciBvd24gaW4gdGhlIDxjb2RlPmRlc2NyaXB0aW9uPC9j b2RlPiBmaWVsZCBvciB0aGUgPGNvZGU+Z2xvYmFsX3BhcmFtczwvY29kZT4gYXR0cmlidXRl OjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kYXRhPC9zcGFuPiA6IHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB0byB0aGUgZmlsZSBpdHNlbGYuIFRh a2VzIHRoZSBmaWxlJiM4MjE3O3MgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gZnJv bSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZGF0YWJhc2UgYnkgZGVmYXVs dCwgb3IgaXQgbWF5IGJlIG92ZXJyaWRkZW4gYnkgeW91PC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPnR5cGU8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5NSU1FPC9z cGFuPiB0eXBlIG9mIHRoZSBmaWxlLCBkZXRlcm1pbmVkIGZyb20gdGhlIGludGVybmFsIGxv b2t1cCB0YWJsZS4gSWYgaXQgY2hvb3NlcyB3cm9uZ2x5IG9yIHlvdSB3YW50IGEgZmFuY2lm dWwgdHlwZSBub3QgaW5jbHVkZWQsIG92ZXJyaWRlIGl0PC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPndpZHRoPC9zcGFuPiA6IHRoZSBob3Jpem9udGFsIHNjcmVlbiByZWFsIGVz dGF0ZSB0aGF0IHRoZSBvYmplY3Qgd2lsbCBvY2N1cHkuIEJ5IGRlZmF1bHQgaXQgdGFrZXMg dGhlIHZhbHVlcyBvbiBhIHBlci1sYW5ndWFnZSBiYXNpcyAoaWYgPHNwYW4gY2xhc3M9ImNh cHMiPk1MUDwvc3Bhbj4gaXMgaW5zdGFsbGVkKSBiZWNhdXNlIGNvbnRlbnQgb2Z0ZW4gdmFy aWVzIGZyb20gY291bnRyeSB0byBjb3VudHJ5LiBXaXRob3V0IDxzcGFuIGNsYXNzPSJjYXBz Ij5NTFA8L3NwYW4+IGl0JiM4MjE3O3MgMzAwcHggc28geW91IHByb2JhYmx5IHNob3VsZCBv dmVycmlkZSB0aGlzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmhlaWdodDwvc3Bh bj4gOiB0aGUgdmVydGljYWwgc2NyZWVuIHJlYWwgZXN0YXRlIHRoZSBvYmplY3QgdGFrZXMg dXAuIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+LWF3YXJlLCBhcyBhYm92ZTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5pZDwvc3Bhbj4gOiB0aGUgdW5pcXVlIElEIGZv ciB0aGUgb2JqZWN0LiBJZiBub3Qgb3ZlcnJpZGVuLCB0aGUgZGVmYXVsdCBpcyAmIzgyMjA7 aWQmIzgyMjE7IHBsdXMgYSByYW5kb20gbnVtYmVyPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJz d2ZvYmplY3QiPk92ZXJyaWRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5 cGVzIC8gc3dmb2JqZWN0PC9oMz4KCgk8cD5JZiB5b3Ugd2lzaCB0byBvdmVycmlkZSB0aGUg YXV0by1kZXRlY3RlZCBtaW1lIHR5cGUgZm9yIGFueSByZWFzb24sIHNwZWNpZnkgPGNvZGU+ bWltZV90eXBlPVVzZVRoaXNGaWxlRXh0ZW5zaW9uSW5zdGVhZDwvY29kZT4gKGUuZy4gPGNv ZGU+bWltZV90eXBlPSZxdW90O2F2aSZxdW90OzwvY29kZT4pLiBUaGF0IHdpbGwgdGhlbiB1 c2UgdGhlIHRlbXBsYXRlIGZvciBhbiBhdmkgZmlsZSByZWdhcmRsZXNzIG9mIHRoZSBmaWxl JiM4MjE3O3MgcmVhbCBleHRlbnNpb24uPC9wPgoKCTxwPlNvbWUgcGVvcGxlIHByZWZlciB0 byBlbWJlZCBtb3ZpZXMgdXNpbmcgdGhlIDNyZCBwYXJ0eSBsaWJyYXJ5IHN3Zm9iamVjdC4g UmFuZG9tX2Jhbm5lciBzdXBwb3J0cyB0aGlzIGxpYnJhcnkgYnV0IGl0IDxlbT5kb2VzIG5v dDwvZW0+IGxvYWQgdGhlIGxpYnJhcnkgZm9yIHlvdTogaW5jb3Jwb3JhdGUgaXQgb250byB5 b3VyIHBhZ2UgcHJpb3IgdG8gY2FsbGluZyBzbWRfcmFuZG9tX2Jhbm5lci48L3A+CgoJPHA+ T3ZlcnJpZGluZyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk1JTUU8L3NwYW4+IHR5cGUgaXMg Y3VycmVudGx5IGhvdyBzd2ZvYmplY3QgbW9kZSB3b3JrczogaXQmIzgyMTc7cyBhIGhhY2sg YmVjYXVzZSB0aGUgcGx1Z2luIGNhbm5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYSA8Y29k ZT4uc3dmPC9jb2RlPiB5b3Ugd2FudCB0byBlbWJlZCB3aXRoIHRoZSBvYmplY3QgdGFnIGFu ZCBvbmUgeW91IHdhbnQgdG8gZW1iZWQgdXNpbmcgc3dmb2JqZWN0LiBJbiB0aGlzIGNhc2Us IHNwZWNpZnkgdGhlIHNwZWNpYWwgYXR0cmlidXRlIDxjb2RlPm1pbWVfdHlwZT0mcXVvdDtz d28mcXVvdDs8L2NvZGU+LCBlaXRoZXIgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRo ZSByZWxldmFudCBmaWxlIG9yIGFzIGEgPGNvZGU+Z2xvYmFsX3BhcmFtPC9jb2RlPi48L3A+ CgoJPHA+V2hlbiB1c2luZyBzd2ZvYmplY3QgdGhlcmUgYXJlIGEgZmV3IG1vcmUgb3B0aW9u cyB5b3UgY2FuIHNwZWNpZnk6PC9wPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnBsYXllcnZlcnNpb248L3NwYW4+IDogdGhlIG1pbmltdW0gdmVyc2lvbiBvZiBmbGFzaCBw bGF5ZXIgeW91IHJlcXVpcmUgdXNlcnMgdG8gaGF2ZSBiZWZvcmUgdGhleSBjYW4gc2VlIHRo ZSBjb250ZW50LiBEZWZhdWx0IGlzIDg8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ YmFja2NvbG9yPC9zcGFuPiA6IGEgaGV4IHN0cmluZyBsaWtlIDxjb2RlPiMwMDc0MTI8L2Nv ZGU+IHRvIHNldCB0aGUgY29sb3Igb2YgdGhlIGJhY2tncm91bmQgb2YgdGhlIHN3Zm9iamVj dC4gTm90ZSBpdCYjODIxNztzIGNhbGxlZCA8Y29kZT5iYWNrY29sb3I8L2NvZGU+IHRvIGRp c3Rpbmd1aXNoIGl0IGZyb20gdGhlIG9iamVjdCB0YWcmIzgyMTc7cyA8Y29kZT5iZ2NvbG9y PC9jb2RlPi4gRGVmYXVsdCBpcyB3aGl0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5lbGVtZW50aWQ8L3NwYW4+IDogdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHdoaWNoIHRoZSBt b3ZpZSByZXBsYWNlcy4gVGhpcyBpcyBub3JtYWxseSBhbiBlbXB0eSBkaXYgd2l0aCBhbiBp ZCBvZiA8Y29kZT5mbGFzaGNvbnRlbnQ8L2NvZGU+IGJ1dCBzaW5jZSB0aGlzIHBsdWdpbiBj YW4gb3V0cHV0IG1vcmUgdGhhbiBvbmUgYmFubmVyIG9uIHRoZSBwYWdlLCB0aGUgZGVmYXVs dCBiZWhhdmlvdXIgaXMgdG8gYWRkIGEgcmFuZG9tIG51bWJlciBvbiB0aGUgZW5kIG9mIGl0 PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVpZDwvc3Bhbj4gOiB0aGUgamF2YXNj cmlwdCBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlNXRk88L3NwYW4+YmplY3QgaW5zdGFuY2UuIEluIGFsbCB0aGUgZXhhbXBs ZXMgb24gdGhlIHN3Zm9iamVjdDxiciAvPgp3ZWIgc2l0ZSB0aGlzIGlzIDxjb2RlPnNvPC9j b2RlPiBidXQgYWdhaW4sIHNpbmNlIHRoZSBwbHVnaW4gY2FuIG91dHB1dCBtb3JlIHRoYW4g b25lIGJhbm5lciwgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIGFkZHMgYSByYW5kb20gbnVtYmVy IG9uIHRoZSBlbmQgb2YgaXQ8L2xpPgoJPC91bD4KCgk8cD5JbiBib3RoIHN0YW5kYXJkIG9i amVjdCBhbmQgc3dmb2JqZWN0IG1vZGVzLCB0aGUgb3RoZXIgb3B0aW9ucyBhcmUgdG9vIG51 bWVyb3VzIHRvIGxpc3QsIGJ1dCBXM1NjaG9vbHMsIEFkb2JlIG9yIEdvb2dsZSB3aWxsIGhl bHAgeW91IGZpbmQgdGhlbSBpZiB5b3UgbmVlZCB0aGVtLjwvcD4KCgk8cD5BbnkgPGNvZGU+ b3B0aW9uPXZhbHVlPC9jb2RlPiBwYWlyIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+ZGVzY3Jp cHRpb248L2NvZGU+IGZpZWxkIHRoYXQgaXMgPGVtPm5vdDwvZW0+IHBhcnQgb2YgdGhlIGNv cmUgc3BlYyBpcyBhc3N1bWVkIHRvIGJlIGEgPGNvZGU+Jmx0O3BhcmFtJmd0OzwvY29kZT4g d2l0aGluIHRoZSBvYmplY3QgaXRzZWxmLiBVc2UgdGhpcyBmYWNpbGl0eSB0byBzcGVjaWZ5 IGFueSBleHRyYSBvcHRpb25zIHlvdXIgY2hvc2VuIGZpbGUgdHlwZSByZXF1aXJlcyB0byBv cGVyYXRlIGNvcnJlY3RseS4gSWYgeW91IG5lZWQgdG8gdXNlIGEgZGVsaW1pdGVyIG90aGVy IHRoYW4gPGNvZGU+PTwvY29kZT4gYmV0d2VlbiBuYW1lLXZhbHVlIHBhaXJzLCB1c2UgdGhl IG52X2RlbGltIGF0dHJpYnV0ZS48L3A+CgoJPHA+V2hlbiB1c2luZyBzd2ZvYmplY3QgbW9k ZSwgc3RhbmRhcmQgcGFyYW1ldGVycyBhbmQgRmxhc2hWYXJzIGFyZSBkaWZmZXJlbnRpYXRl ZCBhbmQgcGFzc2VkIHRvIHlvdXIgYXBwbGljYXRpb24gdXNpbmcgPGNvZGU+YWRkUGFyYW0o KTwvY29kZT4gYW5kIDxjb2RlPmFkZFZhcmlhYmxlKCk8L2NvZGU+IHJlc3BlY3RpdmVseS4g Tm90ZSB0aGF0IDxjb2RlPmV4cHJlc3NpbnN0YWxsPC9jb2RlPiBpcyBjdXJyZW50bHkgPGVt Pm5vdDwvZW0+IHN1cHBvcnRlZC48L3A+CgoJPGgzIGlkPSJmaWxlYXR0cyI+RmlsZSBtb2Rl IGF0dHJpYnV0ZXM8L2gzPgoKCTxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB3b3JrIGlu IGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzIHRoZXkgZG8gaW4gPGEgaHJlZj0iI2ltZ21vZGUi PmltYWdlIG1vZGU8L2E+IHdpdGggdGhlIGV4Y2VwdGlvbiB0aGF0IGV2ZXJ5d2hlcmUgaXQg bWVudGlvbnMgJiM4MjE2O2ltYWdlJiM4MjE3OyB5b3UgY2FuIHN1YnN0aXR1dGUgJiM4MjE2 O2ZpbGUmIzgyMTc7OjwvcD4KCgk8cD48c3BhbiBjbGFzcz0iYXRubSI+bW9kZTwvc3Bhbj4s IDxzcGFuIGNsYXNzPSJhdG5tIj5jYXRlZ29yeTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJhdG5t Ij5pZDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJhdG5tIj5zdWJjYXRzPC9zcGFuPiwgPHNwYW4g Y2xhc3M9ImF0bm0iPm1hdGNoX3RleHQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0iYXRubSI+YXZv aWRfdGV4dDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJhdG5tIj5saW1pdDwvc3Bhbj4sIDxzcGFu IGNsYXNzPSJhdG5tIj5hbHdheXNfZGlzcGxheTwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJhdG5t Ij5saW5rX3ByZWZpeDwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJhdG5tIj5yZWZlcmVyPC9zcGFu PiwgPHNwYW4gY2xhc3M9ImF0bm0iPnJhd191cmw8L3NwYW4+LCA8c3BhbiBjbGFzcz0iYXRu bSI+dGFyZ2V0PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImF0bm0iPmRlbGltPC9zcGFuPjwvcD4K Cgk8cD5UaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlIGlnbm9yZWQgaW4gRmlsZSBtb2RlOjwv cD4KCgk8cD48c3BhbiBjbGFzcz0iYXRubSI+dGh1bWI8L3NwYW4+LCA8c3BhbiBjbGFzcz0i YXRubSI+ZGlzcGxheV91cmw8L3NwYW4+PC9wPgoKCTxwPkFuZCB0aGVzZSBvcHRpb25zIHdv cmsgZGlmZmVyZW50bHksIG9yIGFyZSBzcGVjaWZpYyB0byB0aGlzIG1vZGU6PC9wPgoKCTxo ND5GaWxlIHNlbGVjdGlvbjwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ Y29tcGFyZV90bzwvc3Bhbj4gOiBkZWNsYXJlIHdoaWNoIGZpZWxkcyBvZiB0aGUgZmlsZSB0 aGUgcGx1Z2luIGxvb2tzIHdoZW4gbWF0Y2hpbmcgb3IgYXZvaWRpbmcgdGV4dC4gQnkgZGVm YXVsdCBpdCB1c2VzIGp1c3QgdGhlIGZpbGUgbmFtZSwgYnV0IGl0IGNhbiBiZSBleHRlbmRl ZCB0byBlbmNvbXBhc3MgYW55IG9mIHRoZSBmb2xsb3dpbmc6Cgk8dWw+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5maWxlbmFtZTwvc3Bhbj4gOiBsb29rIGF0IHRoZSBmaWxlbmFtZSBv ZiB0aGUgZmlsZSBhbmQgaWYgaXQgY29udGFpbnMgYW55IG9mIHRoZSB3b3JkcyBpbiA8Y29k ZT5tYXRjaF90ZXh0PC9jb2RlPiB0aGVuIGFkZCBpdCB0byB0aGUgcG9vbC4gQ29udmVyc2Vs eSwgaWYgaXQgY29udGFpbnMgYW55IG9mIHRoZSB3b3JkcyBpbiA8Y29kZT5hdm9pZF90ZXh0 PC9jb2RlPiwgaWdub3JlIHRoZSBmaWxlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnRpdGxlPC9zcGFuPiA6IGxvb2sgYXQgdGhlIGZpbGUmIzgyMTc7cyB0aXRsZSBhbmQgaWYg aXQgY29udGFpbnMgYW55IG9mIHRoZSB3b3JkcyBpbiA8Y29kZT5tYXRjaF90ZXh0PC9jb2Rl PiB0aGVuIGFkZCBpdCB0byB0aGUgcG9vbC4gSWYgaXQgY29udGFpbnMgYW55IG9mIHRoZSB3 b3JkcyBpbiA8Y29kZT5hdm9pZF90ZXh0PC9jb2RlPiwgaWdub3JlIHRoZSBmaWxlPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmlkPC9zcGFuPiA6IGxvb2sgYXQgdGhlIGlkIG9m IHRoZSBmaWxlIGFuZCBpbmNsdWRlL2V4Y2x1ZGUgaXQgYmFzZWQgb24gdGhlIG51bWJlcnMg Z2l2ZW4gaW4gPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4gLyA8Y29kZT5hdm9pZF90ZXh0PC9j b2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZXNjcmlwdGlvbjwvc3Bhbj4g OiBsb29rIGF0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgZmlsZSBhbmQgaW5jbHVkZS9leGNs dWRlIGl0IGJhc2VkIG9uIHRoZSB3b3JkcyBpbiA8Y29kZT5tYXRjaF90ZXh0PC9jb2RlPiAv IDxjb2RlPmF2b2lkX3RleHQ8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnN0YXR1czwvc3Bhbj4gOiBpZiB0aGUgbnVtZXJpYyBkaXNwbGF5IHN0YXR1cyBvZiB0aGUg ZmlsZSBtYXRjaGVzIChmb3IgPGNvZGU+bWF0Y2hfdGV4dDwvY29kZT4pIG9yIGRvZXMgbm90 IG1hdGNoIChmb3IgPGNvZGU+YXZvaWRfdGV4dDwvY29kZT4pIGFueSBnaXZlbiBudW1iZXJz LCBpbmNsdWRlL2V4Y2x1ZGUgdGhpcyBmaWxlIGZyb20gdGhlIHBvb2w8L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXRubSI+c2l6ZTwvc3Bhbj4gOiAob2YgbGltaXRlZCB1c2UpIGlmIHRo ZSBmaWxlIGlzIG9mIGEgcGFydGljdWxhciBzaXplIChmb3IgbWF0Y2hfdGV4dCkgb3Igbm90 IG9mIGEgcGFydGljdWxhciBzaXplIChmb3IgYXZvaWRfdGV4dCksIGluY2x1ZGUvZXhjbHVk ZSB0aGlzIGZpbGUgZnJvbSB0aGUgcG9vbDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5jYXRlZ29yeTwvc3Bhbj4gOiBhcyB3aXRoIGltYWdlIG1vZGUsIHRoaXMgbWF5IG5vdCBi ZSBvZiBtdWNoIHVzZSAodGhlIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiBhdHRyaWJ1dGUgY2Fu IGJlIHVzZWQgaW5zdGVhZCksIGJ1dCB5b3UgbWF5IHNwZWNpZnkgdGhlIGNhdGVnb3J5IGFz IGEgcGxhY2UgdG8gbG9vayBmb3IgcGFydGljdWxhciB3b3JkczwvbGk+Cgk8L3VsPjwvbGk+ Cgk8L3VsPgoKCTxoND5MaW5rIGhhbmRsaW5nPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5saW5rX2luPC9zcGFuPiA6IG1ha2VzIHRoZSBiYW5uZXIgZmlsZSBjbGlj a2FibGUgYnkgc3BlY2lmeWluZyB3aGljaCBmaWVsZCBvZiB0aGUgZmlsZSB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gaXMgc3RvcmVkLiBUaGlzIGNhbiBjdXJyZW50bHkg b25seSBiZSA8Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gb3IgPGNvZGU+dGl0bGU8L2NvZGU+ LiBEZWZhdWx0OiBvbWl0dGVkIChubyBsaW5rKS4gVGhlIGRlc3RpbmF0aW9uIDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+IGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGUg ZmlsZSBpcyBhIG5hbWU9dmFsdWUgcGFpciBsaWtlIHRoaXM6IDxjb2RlPmxpbmtfdXJsPWh0 dHA6Ly9teS5kb21haW4uY29tL3BsYWNlL3RvL3Zpc2l0PC9jb2RlPjxkaXYgY2xhc3M9ImJy ZWFrIj5BIGZ1bGwgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYmVnaW5uaW5nIDxj b2RlPmh0dHA6Ly88L2NvZGU+IHdpbGwgYmUgdXNlZCB2ZXJiYXRpbSwgYW55dGhpbmcgYmVn aW5uaW5nIHdpdGggYSA8Y29kZT4vPC9jb2RlPiB3aWxsIGFzc3VtZSB0byBiZSByZWxhdGl2 ZSB0byB0aGUgc2l0ZSByb290IGFuZCBldmVyeXRoaW5nIGVsc2Ugd2lsbCBiZSByZWxhdGl2 ZSB0byB0aGUgY3VycmVudCBzZWN0aW9uL2FydGljbGUuIE5vdGUgdGhhdCBkZXBlbmRpbmcg b24gdGhlIHBsdWdpbiBtb2RlLCB0aGUgbGluayBtYXkgbm90IGJlIGhvbm91cmVkIGJlY2F1 c2UgdGhlIGNob3NlbiBicm93c2VyIHBsdWdpbiAoZS5nLiBzaG9ja3dhdmUgZmxhc2gpIG1h eSBjYXB0dXJlIG1vdXNlIGNsaWNrcy4gSW4gZmxhc2gsIHRoaXMgY2FuIGJlIGNpcmN1bXZl bnRlZCAoY3VycmVudGx5IG9uIHBsYXRmb3JtcyBleGNlcHQgTGludXgpIGJ5IHNwZWNpZnlp bmcgdGhlIHBhcmFtIDxjb2RlPndtb2RlPXRyYW5zcGFyZW50OzwvY29kZT4gPC9kaXY+PC9s aT4KCTwvdWw+CgoJPGg0PlBhcmFtZXRlciBkZWZpbml0aW9uczwvaDQ+CgoJPHVsPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+bnZfZGVsaW08L3NwYW4+IDogd2hlbiBzcGVjaWZ5aW5n IG5hbWUtdmFsdWUgcGFpcnMgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkLCB5b3UgbWF5IGJl IGZhY2VkIHdpdGggdGhlIHByb2JsZW0gdGhhdCB5b3Ugd2FudCB0byB1c2UgdGhlIDxjb2Rl Pj08L2NvZGU+IHNpZ24gZWxzZXdoZXJlOyB0aGlzIGlzIG1vc3Qgbm90YWJsZSB3aGVuIHVz aW5nIEZsYXNoVmFycyBiZWNhdXNlIHRoZXkgcmVxdWlyZSA8Y29kZT5uYW1lPXZhbHVlPC9j b2RlPiB0byBiZSB1c2VkLiBUaGUgbGluZTogPGNvZGU+Rmxhc2hWYXJzPSZxdW90O215VmFy PUppbSZxdW90Ozs8L2NvZGU+IHdpbGwgY2F1c2UgdGhlIHBsdWdpbiBwcm9ibGVtcyBiZWNh dXNlIGl0IHdpbGwgc3BsaXQgdGhlIGxpbmUgdXAgaW50byAzIHBhcnRzLCBpbnN0ZWFkIG9m IHRoZSB0d28geW91IHJlcXVpcmUuIDxkaXYgY2xhc3M9ImJyZWFrIj5UbyBhdm9pZCB0aGlz LCB5b3UgbWF5IHNwZWNpZnkgPGNvZGU+bnZfZGVsaW08L2NvZGU+IGFuZCBzZXQgdGhlIGZp cnN0IGRlbGltaXRlciB0byBhbnl0aGluZyBlbHNlIHlvdSBsaWtlLiBJdCBjb3VsZCBiZSBh IHNpbmdsZSBjaGFyYWN0ZXIsIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycywgYSB3b3JkLCBh bnl0aGluZyBhcyBsb25nIGFzIGl0JiM4MjE3O3MgdW5pcXVlLiBOb3JtYWxseSA8Y29kZT5u dl9kZWxpbT0mcXVvdDs6OiZxdW90OzwvY29kZT4gd29ya3Mgd2VsbCBzbyB5b3VyIHZhcmlh YmxlcyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQgYmVjb21lOiA8Y29kZT5GbGFzaFZhcnM6 Om15VmFyPUppbTs8L2NvZGU+PC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PnJvd19kZWxpbTwvc3Bhbj4gOiBvY2NzaW9uYWxseSB0aGUgZGVmYXVsdCA8Y29kZT47PC9j b2RlPiBpcyBpbnN1ZmZpY2llbnQgYmVjYXVzZSB5b3Ugd2lzaCB0byB1c2UgaXQgaW5zaWRl IHlvdXIgbmFtZS12YWx1ZSBwYWlycyAocGVyaGFwcyBpbiB0aGUgb25jbGljayBhdHRyaWJ1 dGUpLiBJZiB0aGlzIGlzIHRoZSBjYXNlLCBzcGVjaWZ5IGFuIGFsdGVybmF0aXZlIGVuZC1v Zi1yb3cgZGVsaW1pdGVyIGhlcmU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Z2xv YmFsX3BhcmFtczwvc3Bhbj4gOiBzcGVjaWZ5IGFueSBnbG9iYWwgbmFtZS12YWx1ZSBwYWly cyBpbiB0aGlzIG9wdGlvbiB0aGF0IHlvdSBzaWggdG8gYXBwbHkgdG8gYWxsIGJhbm5lcnMu IFZlcnkgdXNlZnVsIGZvciB0aGluZ3MgbGlrZSA8Y29kZT5jb2RlYmFzZTwvY29kZT4gb3Ig c3BlY2lmeWluZyBhIGdsb2JhbCB3aWR0aCBhbmQgaGVpZ2h0LiBUaGUgdmFsdWVzIGFyZSBv dmVycmlkYWJsZSBvbiBhIGZpbGUgYnkgZmlsZSBiYXNpcyB1c2luZyB2YWx1ZXMgaW4gdGhl IGRlc2NyaXB0aW9uIGZpZWxkIGFzIHVzdWFsLiBUaGUgcGFyYW1ldGVycyB3b3JrIGZvciBi b3RoIHRoZSBzdGFuZGFyZCBvYmplY3QgdGFnIGFuZCB0aGUgc3dmb2JqZWN0IGphdmFzY3Jp cHQuIE5vdGUgdGhhdCB5b3Ugc3BlY2lmeSBwYXJhbWV0ZXJzIGluIGV4YWN0bHkgdGhlIHNh bWUgd2F5IGFzIHlvdSBkbyBpbiB0aGUgZGVzY3JpcHRpb24gZmllbGQgJiM4MjEyOyBlYWNo IHNlcGFyYXRlZCBieSBzZW1pY29sb25zICYjODIxMjsgYW5kIHRoYXQgdGhlIDxjb2RlPm52 X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGUgZ292ZXJucyB3aGljaCBkZWxpbWl0ZXIgd2lsbCBi ZSB1c2VkLiA8ZW0+PHNwYW4gY2xhc3M9ImNhcHMiPklNUE9SVEFOVDwvc3Bhbj48L2VtPiA6 IHRoZSBsYXN0IHZhbHVlIGluIHRoZSBsaXN0IG11c3QgYWxzbyBiZSB0ZXJtaW5hdGVkIHdp dGggYSBzZW1pY29sb248L2xpPgoJPC91bD4KCgk8aDQ+Rm9ybWF0dGluZzwvaDQ+CgoJPHVs PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y2xhc3M8L3NwYW4+IDogYXBwbHkgYW4gb3Zl cmFsbCA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBlYWNoIGJhbm5l ciBmaWxlJiM4MjE3O3MgPGNvZGU+Jmx0O29iamVjdCZndDs8L2NvZGU+IHRhZy4gRGVmYXVs dDogZW1wdHkgKGkuZS4gbm8gY2xhc3MpLiBDYW4gYmUgb3ZlcnJpZGRlbiBvbiBhIGZpbGUt YnktZmlsZSBiYXNpcyBieSBzcGVjaWZ5aW5nIHRoZSB2YWx1ZSA8Y29kZT5jbGFzcz1teUNs YXNzTmFtZTs8L2NvZGU+IGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiBhbnkgZmlsZS48 L2xpPgoJPC91bD4KCgk8aDQ+UGx1Z2luIGN1c3RvbWlzYXRpb248L2g0PgoKCTx1bD4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvdW50X2Rvd25sb2Fkczwvc3Bhbj4gOiBieSBkZWZh dWx0ICg8Y29kZT5jb3VudF9kb3dubG9hZHM9JnF1b3Q7MSZxdW90OzwvY29kZT4pIGV2ZXJ5 IHRpbWUgYSBiYW5uZXIgZmlsZSBpcyBzZXJ2ZWQsIHRoZSBhc3NvY2lhdGVkIGNvdW50ZXIg Zm9yIHRoYXQgZmlsZSBpcyBpbmNyZW1lbnRlZC4gVGhpcyBtYXkgb3IgbWF5IG5vdCBiZSBk ZXNpcmFibGUgc28gaXQgY2FuIGJlIHR1cm5lZCBvZmYgaGVyZS4gVGhlIHJlYXNvbiBpdCBp cyBhbiBvcHRpb24gaXMgYmVjYXVzZSBpdCBjYW4gaW4gc29tZSBjaXJjdW1zdGFuY2VzIGxl YWQgdG8gbWlzbGVhZGluZyByZXN1bHRzLiBGb3IgZXhhbXBsZSwgYSBjZXJ0YWluIGJyb3dz ZXIgdGhhdCBzaGFsbCByZW1haW4gbmFtZWxlc3MgcmVxdWlyZXMgYW4gPG9iamVjdD4gdGFn IHRvIG5vdCBvbmx5IGhhdmUgYSA8Y29kZT5kYXRhPC9jb2RlPiBwYXJhbWV0ZXIgYnV0IGFs c28gYSA8Y29kZT5tb3ZpZTwvY29kZT4gcGFyYW1ldGVyIHdoZW4gc2VydmluZyBGbGFzaCBj b250ZW50LiBXaXRoIG9ubHkgb25lIG9mIHRoZXNlIHNwZWNpZmllZCwgdGhlIGZpbGUgd2ls bCBub3QgcGxheTsgeWV0IHdpdGggYm90aCB0aGUgZmlsZSBpcyBkb3dubG9hZGVkIDxlbT50 d2ljZTwvZW0+IGFuZCB0aGUgZG93bmxvYWQgY291bnRlciBnb2VzIHVwIGJ5IHR3by4gU28g dGhlIG51bWJlciBvZiB2aXNpdG9ycyB5b3UgaGF2ZSB1c2luZyB0aGlzIGJyb3dzZXIgbWF5 IHNrZXcgeW91ciBkb3dubG9hZCBzdGF0cy4gSWYgeW91ciBib3NzIGxpa2VzIHRvIHJlbHkg b24gc3VjaCB2YWx1ZXMgaXQgbWlnaHQgYmUgYmVzdCB0byB0dXJuIHRoZSBvcHRpb24gb2Zm IGFuZCBrZWVwIHF1aWV0ISBXaGVuIHVzaW5nIDxjb2RlPmNvdW50X2Rvd25sb2Fkcz0mcXVv dDswJnF1b3Q7PC9jb2RlPiwgeW91IG1heSByZXF1aXJlIHVzZSBvZiB0aGUgPGNvZGU+Zmls ZXNfZGlyPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IGhhdmUgY2hhbmdlZCB5b3VyIGRlZmF1 bHQgdGV4dHBhdHRlcm4gZGlyZWN0b3J5IHN0cnVjdHVyZTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5maWxlc19kaXI8L3NwYW4+IDogd2hlbiB0aGUgPGNvZGU+Y291bnRfZG93 bmxvYWRzPC9jb2RlPiBhdHRyaWJ1dGUgaXMgdHVybmVkIG9mZiwgZmlsZXMgYXJlIHNlcnZl ZCBieSBkaXJlY3RseSBhY2Nlc3NpbmcgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3Nw YW4+IG9mIHRoZSA8Y29kZT5maWxlczwvY29kZT4gZGlyZWN0b3J5LiBUaGlzIGlzIHVzdWFs bHkgPGVtPmh0dHA6Ly95b3VyZG9tYWluLmNvbS9maWxlczwvZW0+LiBJZiB5b3UgaGF2ZSBj aGFuZ2VkIHlvdXIgZGlyZWN0b3J5IHN0cnVjdHVyZSBhbmQgdGhlIGZpbGVzIGRpcmVjdG9y eSBpczxiciAvPgpzb21ld2hlcmUgZWxzZSBvciBjYWxsZWQgc29tZXRoaW5nIGVsc2UsIHNw ZWNpZnkgaXQgd2l0aCB0aGlzIGF0dHJpYnV0ZS4gVGhlIGRlZmF1bHQgaXMgPGNvZGU+Zmls ZXM8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm5vX3BsdWdfdGV4dDwv c3Bhbj4gOiBpZiBhIGJyb3dzZXIgcGx1Z2luIGlzIG5vdCBhdmFpbGFibGUgdG8gYSB1c2Vy LCB0aGlzIHRleHQgd2lsbCBiZSBkaXNwbGF5ZWQgaW5zdGVhZC4gSXQgY291bGQgZGlyZWN0 IHRoZW0gdG8gYSBzaXRlIGZyb20gd2hpY2ggdG8gZG93bmxvYWQgdGhlIHBsdWdpbi4gWW91 IGNhbiBlaXRoZXIgcHV0IHBsYWluIHRleHQvaHRtbCBpbiBoZXJlIG9yIHNwZWNpZnkgYSB0 ZXh0cGF0dGVybiBmb3JtIGJ5IHVzaW5nIDxjb2RlPm5vX3BsdWdfdGV4dD0mcXVvdDt0eHBm b3JtOm5hbWVfb2ZfZm9ybSZxdW90OzwvY29kZT4uIFRoaXMgc2F2ZXMgeW91IGhhdmluZyB0 byB1c2UgdGhlIGFzeV93b25kZXJ0YWcgcGx1Z2luIHRvIGVuYWJsZSB0YWdzLWluLXRhZ3Mg ZnVuY3Rpb25hbGl0eTwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iZmllbGRzIj5BcnRpY2xlIGZp ZWxkIGNvZGVzPC9oMj4KCgk8cD5Vc2UgdGhlc2UgY29kZXMgdG8gZ3JhYiBpdGVtcyBmcm9t IHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIGFydGljbGUgYW5kIGluamVjdCB0aGVtIGludG8g dGFnIGF0dHJpYnV0ZXMuIFdoZW4gdXNpbmcgZmllbGQgY29kZXMsIHRoZSB0YWdzIGNhbiBi ZSBjb21iaW5lZCB3aXRoIGZpeGVkIHRleHQgKGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7 bXljYXQtP2FydGljbGVfaW1hZ2VfP3MmcXVvdDs8L2NvZGU+IG1pZ2h0IGNob29zZSBpbWFn ZXMgZnJvbSB0aGUgY2F0ZWdvcnkgJiM4MjIwO215Y2F0LTEyX2xpb24mIzgyMjE7IGlmIHRo ZSBjdXJyZW50IGFydGljbGUgd2FzIGluIHNlY3Rpb24gJiM4MjE2O2xpb24mIzgyMTc7IGFu ZCBoYWQgYW4gYXJ0aWNsZSBpbWFnZSBvZiAmIzgyMTY7MTImIzgyMTc7KS4gTm90ZSB0aGF0 IGFueSBhcnRpY2xlIG9yIGN1c3RvbSBmaWVsZHMgJiM4MjEyOyBpbmNsdWRpbmcgdGhvc2Ug dXRpbGlzaW5nIGdsel9jdXN0b21fZmllbGRzICYjODIxMjsgbWF5IGNvbnRhaW4gbGlzdHMg b2YgaXRlbXMuPC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+P2M8L2NvZGU+IDogdXNlIHRoZSBj dXJyZW50IGdsb2JhbCAoYXJ0aWNsZSkgY2F0ZWdvcnk8L2xpPgoJCTxsaT48Y29kZT4hYzwv Y29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjdXJyZW50IGdsb2JhbCBjYXRl Z29yeTwvbGk+CgkJPGxpPjxjb2RlPj9zPC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBzZWN0aW9uPC9saT4KCQk8bGk+PGNvZGU+IXM8 L2NvZGU+IDogdXNlcyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY3VycmVudCBzZWN0aW9uPC9s aT4KCQk8bGk+PGNvZGU+P3Q8L2NvZGU+IDogdXNlIHRoZSBjdXJyZW50IGFydGljbGUmIzgy MTc7cyB1cmwtdGl0bGU8L2xpPgoJCTxsaT48Y29kZT4hdDwvY29kZT4gOiB1c2VzIGFsbCB1 cmwtdGl0bGVzIGV4Y2VwdCB0aGUgY3VycmVudCBhcnRpY2xlIChwcm9iYWJseSBub3QgbXVj aCB1c2UhKTwvbGk+CgkJPGxpPjxjb2RlPj9pZDwvY29kZT4gOiB1c2UgdGhlIGN1cnJlbnQg YXJ0aWNsZSYjODIxNztzIElEIGFzIHRoZSBuYW1lIG9mIGFuIGltYWdlIGNhdGVnb3J5LiBV c2VmdWwgdG8gbWFrZSBhIHBlci1hcnRpY2xlIGltYWdlIGdhbGxlcnkgKGUuZy4gPGNvZGU+ Y2F0ZWdvcnk9JnF1b3Q7YXJ0aWNsZS0/aWQmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxj b2RlPiFpZDwvY29kZT4gOiB1c2VzIGFsbCBpbWFnZSBJRHMgZXhjZXB0IHRoZSBjdXJyZW50 IGFydGljbGU8L2xpPgoJCTxsaT48Y29kZT4/ZmllbGRuYW1lPC9jb2RlPiA6IGxvb2tzIGlu IHRoZSBnaXZlbiBmaWVsZG5hbWUgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZS4gRGVzaWduZWQg cHJpbWFyaWx5IGZvciB1c2Ugd2l0aCBjdXN0b20gZmllbGRzIChlLmcuIDxjb2RlPmlkPSZx dW90Oz9jdXN0b20xJnF1b3Q7PC9jb2RlPiksIGl0IGNhbiBhbHNvIGJlIGFueSBvdGhlciBm aWVsZCBmcm9tIHlvdXIgYXJ0aWNsZS4gQ29tbW9uIGZpZWxkcyBhcmUgPGNvZGU+P2V4Y2Vy cHQ8L2NvZGU+IEA/Y2F0ZWdvcnkxQCA8Y29kZT4/a2V5d29yZHM8L2NvZGU+IEA/YXJ0aWNs ZV9pbWFnZUAgb3IgPGNvZGU+P2F1dGhvcmlkPC9jb2RlPi48L2xpPgoJPC91bD4KCgk8cD5U byBuZWdhdGUgYW55IGNhdGVnb3J5IHNlbGVjdGlvbiwgdXNlIDxjb2RlPiFjYXRlZ29yeTwv Y29kZT4gb3IgPGNvZGU+IWZpZWxkX25hbWU8L2NvZGU+LiBJZiB5b3UgbGlzdCBzcGVjaWZp YyBpbWFnZSBjYXRlZ29yaWVzIChlLmcuIDxjb2RlPmNhdGVnb3J5PSZxdW90OyFsYW5kc2Nh cGUsICFiaXJkcyZxdW90OzwvY29kZT4pIHRob3NlIGNhdGVnb3JpZXMgd2lsbCBiZSBleGNs dWRlZC4gSWYgeW91IHNwZWNpZnkgYSBmaWVsZCBuYW1lIHN1Y2ggYXMgPGNvZGU+IWtleXdv cmRzPC9jb2RlPiwgdGhlIGNvbnRlbnRzIG9mIHRoYXQgZmllbGQgd2lsbCBiZSByZWFkIGFu ZCB0aGUgbGlzdCBvZiBpbWFnZSBjYXRlZ29yaWVzIGZvdW5kIHRoZXJlIHdpbGwgYmUgZXhj bHVkZWQuPC9wPgoKCTxwPk5vdGUgdGhhdCBpZiB5b3Ugc3BlY2lmeSBhIGZpZWxkIG5hbWUg YW5kIHRoYXQgZmllbGQgaW4gdGhlIGFydGljbGUgaXMgZW1wdHksIHRoZSBuYW1lIHdpbGwg YmUgdHJlYXRlZCBhcyBpZiBpdCB3YXMgYW4gYWN0dWFsIGltYWdlIGNhdGVnb3J5LiBTbyBp ZiB5b3Ugc3BlY2lmaWVkIDxjb2RlPmNhdGVnb3J5PSZxdW90Oz9rZXl3b3JkcyZxdW90Ozwv Y29kZT4gYW5kIHRoZSAmIzgyMTY7a2V5d29yZHMmIzgyMTc7IGZpZWxkIGluIHRoZSBjdXJy ZW50IGFydGljbGUgd2FzIGVtcHR5LCBpdCB3b3VsZCBsb29rIGZvciBhbiBpbWFnZSBjYXRl Z29yeSBuYW1lZCAmIzgyMjA7a2V5d29yZHMmIzgyMjE7LjwvcD4KCgk8cD5BbHNvIG5vdGUg dGhhdCwgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgeW91IGxpc3QgdGhlbSwgYWxsICYjODIx Njtwb3NpdGl2ZXMmIzgyMTc7IHdpbGwgYmUgcHJvY2Vzc2VkIGZpcnN0LCB0aGVuIGFueSBl eGNsdXNpb25zIGFwcGxpZWQuPC9wPgoKCTxoMiBpZD0iZXhhbXBsZXMiPkV4YW1wbGVzPC9o Mj4KCgk8cD5UbyBoaWdobGlnaHQgdGhlIGZlYXR1cmVzLCB3ZSBhcmUgZ29pbmcgdG8gdXNl IGFuIGV4YW1wbGUgb2YgYSB6b28gd2ViIHNpdGUuIE9uIHRoaXMgc2l0ZSB5b3UgaGF2ZSB0 aHJlZSBzZWN0aW9uczogJiM4MjIwO2Fib3V0JiM4MjIxOywgJiM4MjIwO2FuaW1hbHMmIzgy MjE7IGFuZDxiciAvPgomIzgyMjA7dG91cnMmIzgyMjE7LiBZb3UgaGF2ZSBpbWFnZXMgb2Yg dmFyaW91cyBhbmltYWxzIHVuZGVyIGFuIGltYWdlIGNhdGVnb3J5IGNhbGxlZCAmIzgyMjA7 YW5pbWFscyYjODIyMTsuIEJlbG93IHRoYXQgdGhleSBhcmUgc2VwYXJhdGVkIGludG8gJiM4 MjIwO21hbW1hbHMmIzgyMjE7LCAmIzgyMjA7cmVwdGlsZXMmIzgyMjE7LCBhbmQgJiM4MjIw O2JpcmRzJiM4MjIxOy4gWW91ciBhbHQgdGV4dCBob2xkcyBzdWl0YWJsZSBhbHRlcm5hdGUg ZGVzY3JpcHRpb25zIG9mIHRoZSBhbmltYWxzIGFuZCB0aGUgY2FwdGlvbiB0ZXh0IGlzIGEg dXJsIHRvIGFuIGFydGljbGUgYWJvdXQgZWFjaCBhbmltYWwuIFlvdSBhbHNvIGhhdmUgb3Ro ZXIgaW1hZ2UgY2F0ZWdvcmllcyBmb3IgdGhlIHJlc3Qgb2YgeW91ciBzaXRlLjwvcD4KCgk8 aDIgaWQ9ImltZWciPkltYWdlIG1vZGUgZXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5F eGFtcGxlIDE6IFNpbXBsZSBiYW5uZXIgaW1hZ2VzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9iYW5uZXIgY2F0ZWdv cnk9JnF1b3Q7YW5pbWFscyZxdW90OyBsaW1pdD0mcXVvdDs0JnF1b3Q7CiAgICAgc3ViY2F0 cz0mcXVvdDthbGwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoYXQgd291bGQg cHVsbCBvdXQgZm91ciBwaWN0dXJlcyBvZiBhbnkgYW5pbWFsIHRvIHNob3cgb24geW91ciBm cm9udCBwYWdlOyBtYXliZSBhcnJhbmdlZCBpbnRvIGEgbmVhdCBzcXVhcmUhPC9wPgoKCTxo MyBpZD0iZWcyIj5FeGFtcGxlIDI6IExpbmtlZCBiYW5uZXIgaW1hZ2U8L2gzPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jh bm5lciBjYXRlZ29yeT0mcXVvdDttYW1tYWxzLCByZXB0aWxlcyZxdW90OwogICAgIGxpbmtf aW49JnF1b3Q7Y2FwdGlvbiZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+V291bGQg ZGlzcGxheSBhIHJhbmRvbSBwaWN0dXJlIGZyb20gZWl0aGVyIHRoZSBtYW1tYWxzIG9yIHJl cHRpbGVzIGNhdGVnb3JpZXMuIFRoZSBpbWFnZSB3b3VsZCBiZSBjbGlja2FibGUgYW5kIHRo ZSBsaW5rIHdvdWxkIHRha2UgeW91IHRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiBnaXZlbiBpbiB0aGUgY2FwdGlvbiBmaWVsZCBvZiB0aGF0IGltYWdlLiBJZiB0aGUg Y2FwdGlvbiBmaWVsZCBoYXBwZW5lZCB0byBiZSBlbXB0eSwgdGhlIGxpbmsgd291bGQgYmUg c3VwcmVzc2VkLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBSYW5kb20gPHNwYW4g Y2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gYmFja2dyb3VuZDwvaDM+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7c3R5bGUgdHlwZT0mcXVvdDt0ZXh0L2Nz cyZxdW90OyZndDs7CiNteURpdiB7CiAgYmFja2dyb3VuZDogdXJsKCZsdDt0eHA6c21kX3Jh bmRvbV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OwogICAgIHN1YmNhdHM9 JnF1b3Q7MSZxdW90OyByYXdfdXJsPSZxdW90OzEmcXVvdDsgLyZndDspIG5vLXJlcGVhdCB0 b3A7Cn0KJmx0Oy9zdHlsZSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoaXMga2luZCBvZiBz eW50YXggY2FuIGJlIHVzZWQgaWYgeW91IG9ubHkgd2FudGVkIHRoZSBiYWNrZ3JvdW5kIG9m IGEgc3BlY2lmaWMgZGl2IHRhZyB0byBob2xkIHlvdXIgcmFuZG9tIGltYWdlLjwvcD4KCgk8 aDMgaWQ9ImVnNCI+RXhhbXBsZSA0OiBCYW5uZXIgbGlua2VkIHRvIGFydGljbGUgY2F0ZWdv cnk8L2gzPgoKCTxwPklmIHlvdSBhcnJhbmdlZCB5b3VyIHNpdGUgc28gdGhhdCB5b3UgaGFk IGFydGljbGUgY2F0ZWdvcmllcyBzdWNoIGFzICYjODIyMDttYW1tYWxzJiM4MjIxOyBhbmQg JiM4MjIwO3JlcHRpbGVzJiM4MjIxOyAobWlycm9yaW5nIHlvdXIgaW1hZ2UgY2F0ZWdvcmll cyksIHlvdSBjb3VsZCBkbyB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9iYW5uZXIgY2F0ZWdvcnk9JnF1b3Q7 P2MmcXVvdDsKICAgICBsaW5rX2luPSZxdW90O2NhcHRpb24mcXVvdDsgLyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPlRoZSA8Y29kZT4/PC9jb2RlPiB0ZWxscyB0aGUgcGx1Z2luIHlvdSBk b24mIzgyMTc7dCBrbm93IHdoYXQgdGhlIChpbWFnZSkgY2F0ZWdvcnkgaXMgZ29pbmcgdG8g YmUgd2hlbiB5b3UgY29kZSB0aGUgZm9ybSwgYnV0IHlvdSB3YW50IGl0IHRvIGJlIHJlYWQg ZnJvbSB0aGUgY3VycmVudCBhcnRpY2xlIHRoYXQgYSB2aXNpdG9yIGlzIHZpZXdpbmcuIFNp bmNlIG91ciBhcnRpY2xlIGNhdGVnb3JpZXMgbWltaWMgb3VyIGltYWdlIGNhdGVnb3JpZXMg aW4gdGhpcyBjYXNlLCA8Y29kZT4/YzwvY29kZT4gbWVhbnMgJiM4MjIwO3JlYWQgdGhlIGFy dGljbGUgY2F0ZWdvcnkgYW5kIHVzZSB0aGF0IGFzIHRoZSBpbWFnZSBjYXRlZ29yeSYjODIy MTsuPC9wPgoKCTxwPlNvIGlmIHlvdXIgdmlzaXRvciB3YXMgdmlld2luZyBhIHBhZ2UgYWJv dXQgYSByZXB0aWxlLCB0aGUgcmFuZG9tIGltYWdlIGRpc3BsYXllZCBvbiB0aGUgcGFnZSB3 b3VsZCBiZSBvZiBhbm90aGVyIHJlcHRpbGUgKHBvc3NpYmx5IHRoZTxiciAvPgpzYW1lIG9u ZSkuIFRoZXJlIGFyZSA8YSBocmVmPSIjZmllbGRzIj5tYW55IG90aGVyIG9wdGlvbnM8L2E+ LjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1OiBJbWFnZSBmcm9tIGFueSBvdGhlciBj YXRlZ29yeTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMsICFjJnF1 b3Q7CiAgICAgc3ViY2F0cz0mcXVvdDsxJnF1b3Q7IGxpbmtfaW49JnF1b3Q7Y2FwdGlvbiZx dW90OyBkaXNwbGF5X3VybD0mcXVvdDswJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5TbGlnaHRseSBtb3JlIHVzZWZ1bCwgdGhpcyBvbmUuIEl0IHRlbGxzIHRoZSBwbHVnaW4g dG8gc2VsZWN0IGFueSBhbmltYWwgaW1hZ2UgZnJvbSB0aGUgdG9wIGxldmVsIGFuZCBmaXJz dCBzdWItY2F0ZWdvcnkgbGV2ZWwgYnV0IDxlbT5ub3Q8L2VtPiBvbmUgZnJvbSB0aGUgY3Vy cmVudCBjYXRlZ29yeSB0aGF0IGlzIGJlaW5nIHZpZXdlZC4gU28gaXQmIzgyMTc7bGwgZWZm ZWN0aXZlbHkgJiM4MjE2O2FkdmVydGlzZSYjODIxNzsgb3RoZXIgY2F0ZWdvcmllcyBmb3Ig eW91LiBUaGUgPGNvZGU+ZGlzcGxheV91cmw8L2NvZGU+IGlzIHR1cm5lZCBvZmYgdGhpcyB0 aW1lIHNvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpbiB0aGUgY2FwdGlv biBmaWVsZCBkb2VzIG5vdCBhcHBlYXIgYXMgdGhlIDxjb2RlPnRpdGxlPC9jb2RlPiBhdHRy aWJ1dGUgdG8gdGhlIGltYWdlOyB0aGUgYWx0IHRleHQgaXMgdXNlZCBpbnN0ZWFkLjwvcD4K Cgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2OiBJbWFnZXMgZnJvbSBjdXN0b20gZmllbGQgZGF0 YTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O3JlcHRpbGVzLCA/Y3VzdG9tMSZx dW90OwogICAgIGlkPSZxdW90OzQtOCwgMTImcXVvdDsgbGlua19pbj0mcXVvdDtjYXB0aW9u JnF1b3Q7IHN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8 cD5HaXZlcyB5b3UgYSByYW5kb20gaW1hZ2UgY2hvc2VuIGZyb20gdGhlICYjODIxNjtyZXB0 aWxlcyYjODIxNzsgaW1hZ2UgY2F0ZWdvcnksIGltYWdlcyA0LCA1LCA2LCA3LCA4IG9yIDEy IGFuZCBhbHNvIGFueSBjYXRlZ29yaWVzIGxpc3RlZCBpbiBjdXN0b20xIG9mIHRoZSBjdXJy ZW50bHkgdmlld2VkIGFydGljbGUuIElmIHlvdSBwdXQgJiM4MjIwO21hbW1hbHMsIGJpcmRz LCBwZW5ndWlucyYjODIyMTsgaW4gY3VzdG9tXzEgd2hlbiB5b3Ugd3JvdGUgdGhlIGFydGlj bGUgeW91IHdvdWxkIGdldCBhbiBpbWFnZSBjaG9zZW4gZnJvbSB0aG9zZSBpbWFnZSBJRHMg cGx1cyBhbGwgZm91ciBjYXRlZ29yaWVzIChhbmQgdGhlaXIgc3ViLWNhdGVnb3JpZXMgaW4g dGhpcyBjYXNlKS4gSW5jaWRlbnRhbGx5LCB0aGlzIHNvcnQgb2YgaWRlYSBjb3VsZCBiZSB1 c2VkIHdpdGggPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7P2tleXdvcmRzJnF1b3Q7PC9jb2RlPiB0 byBnZXQgYSBsaXN0IG9mICYjODIyMDtyZWxhdGVkIGltYWdlIGNhdGVnb3JpZXMmIzgyMjE7 JiM4MjMwOzwvcD4KCgk8cD5Ob3RlIHlvdSBjYW4gc2ltcGx5IG5lZ2F0ZSB0aGUgY2hvaWNl IGxpa2UgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4mbHQ7dHhwOnNtZF9yYW5kb21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMsICFj dXN0b20xJnF1b3Q7CiAgICAgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IHN1YmNhdHM9 JnF1b3Q7YWxsJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TbyB0aGF0IHdvdWxk IGNob29zZSBhbiBpbWFnZSBmcm9tIGFueSBvZiB0aGUgYW5pbWFscyBleGNlcHQgb25lcyB0 aGF0IHdlcmUgaW4gYW55IGNhdGVnb3JpZXMgbGlzdGVkIGluIGN1c3RvbTEuIFlvdSBjYW4g bmVnYXRlIGltYWdlIElEcyBhbmQgcmFuZ2VzIGFzIHdlbGwgKGUuZy4gPGNvZGU+aWQ9JnF1 b3Q7MTQtMjAsIDI0LCAhMTksIDUsICExMC0xNiZxdW90OzwvY29kZT4gd291bGQgZ2l2ZSBh biBpbWFnZSBwb29sIG9mIDUsIDE3LCAxOCwgMjAsIDI0KS48L3A+CgoJPGgzIGlkPSJlZzci PkV4YW1wbGUgNzogVGV4dCBtYXRjaGluZzwvaDM+CgoJPHA+Q2F0ZWdvcmllcyBvbiB0aGVp ciBvd24gb25seSB0ZWxsIGhhbGYgdGhlIHN0b3J5LiBUaGVyZSBhcmUgdGltZXMgeW91IG1p Z2h0IHdhbnQgdG8gaW5jbHVkZSBvciBleGNsdWRlIHNwZWNpZmljIHBpZWNlcyBvZiB0ZXh0 IGZvdW5kIGluIHlvdXIgaW1hZ2VzLiBUaGUgdGV4dCBjb3VsZCBiZSBpbiB0aGUgZmlsZW5h bWUsIHRoZSBpZCwgdGhlIGNhcHRpb24sIHRoZSBhbHQgdGV4dCwgb3IgdGhlIGNhdGVnb3J5 IG5hbWUuPC9wPgoKCTxwPkltYWdpbmUgeW91ciB2aXNpdG9yIGNsaWNrZWQgYSBwaWN0dXJl IG9mIGEgY3JvY29kaWxlIGFuZCB0aGV5IGFyZSB2aWV3aW5nIHRoZSBncmlzbHkgZGV0YWls cyBvbiBhbiBhcnRpY2xlIHBhZ2UuIFlvdSBtaWdodCB3YW50IHRvIHB1dCAmIzgyMjA7SWYg eW91IGxpa2VkIHRoaXMsIGZpbmQgb3V0IGFib3V0IHRoZXNlIGFuaW1hbHMgdG9vOiYjODIy MTsgYW5kIHNob3cgYSBmZXcgcmFuZG9tIGltYWdlcyB0aGF0IGFsbG93IHRoZW0gdG8gc2Vl IHN0dWZmIGFib3V0IG90aGVyIGFuaW1hbHMuIE9idmlvdXNseSwgd2UgZG9uJiM4MjE3O3Qg d2FudCBhIHBpY3R1cmUgb2YgYSBjcm9jb2RpbGUgdG8gc2hvdyB1cC4gQW5kIG1heWJlIHdl IGRvbiYjODIxNzt0IHdhbnQgdG8gc2hvdyBhbGxpZ2F0b3JzIGVpdGhlciBiZWNhdXNlIHRo ZXkmIzgyMTc7cmUgcXVpdGUgc2ltaWxhciAoc29ycnkgYW55IHJlcHRpbGUtbG92ZXJzIHdo byBtYXkgZGlzYWdyZWUhKTwvcD4KCgk8cD5TbyB3ZSBjYW4gZG8gdGhpczo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21f YmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwm cXVvdDsKICAgICBsaW5rX2luPSZxdW90O2NhcHRpb24mcXVvdDsgYXZvaWRfdGV4dD0mcXVv dDtjcm9jLCBjcm9jb2RpbGUsIGFsbGlnYXRvciZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+VGhhdCB3b3VsZCBjaG9vc2UgYW55IHBpY3R1cmUgZnJvbSB0aGUgYW5pbWFscyBj YXRlZ29yeSAoYW5kIGFsbCBpdHMgc3ViLWNhdGVnb3JpZXMpIGFzIGxvbmcgYXMgdGhlIG5h bWUgb2YgdGhlIGltYWdlIDxlbT5kaWRuJiM4MjE3O3Q8L2VtPiBjb250YWluICYjODIxNjtj cm9jJiM4MjE3OyBvciAmIzgyMTY7Y3JvY29kaWxlJiM4MjE3OyBvciAmIzgyMTY7YWxsaWdh dG9yJiM4MjE3Oy48L3A+CgoJPGgzIGlkPSJlZzgiPkV4YW1wbGUgODogbWF0Y2hpbmcgYWx0 IGFuZCBjYXB0aW9uPC9oMz4KCgk8cD5JZiB5b3VyIGZpbGVuYW1lcyB3ZXJlIGEgbGl0dGxl IHVuc3RydWN0dXJlZCwgbWF5YmUgeW91JiM4MjE3O2Qgd2FudCB0byBjaGVjayBib3RoIHRo ZSBhbHQgdGV4dCBhbmQgY2FwdGlvbiB0ZXh0IGZvciBhIG1hdGNoIGFzIHdlbGwgYXMgdGhl IGZpbGVuYW1lLiBVc2UgPGNvZGU+Y29tcGFyZV90bzwvY29kZT4gZm9yIHRoaXM6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFu ZG9tX2Jhbm5lciBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7IHN1YmNhdHM9JnF1b3Q7 YWxsJnF1b3Q7CiAgICAgbGlua19pbj0mcXVvdDtjYXB0aW9uJnF1b3Q7IGF2b2lkX3RleHQ9 JnF1b3Q7Y3JvYywgY3JvY29kaWxlLCBhbGxpZ2F0b3ImcXVvdDsKICAgICBjb21wYXJlX3Rv PSZxdW90O25hbWUsIGFsdCwgY2FwdGlvbiZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJ PGgzIGlkPSJlZzkiPkV4YW1wbGUgOTogQXJ0aWNsZSBmaWVsZCBtYXRjaGluZzwvaDM+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5k b21fYmFubmVyIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVvdDsgc3ViY2F0cz0mcXVvdDth bGwmcXVvdDsKICAgICBhdm9pZF90ZXh0PSZxdW90Oz9zLCA/YyZxdW90OyBjb21wYXJlX3Rv PSZxdW90O25hbWUsIGFsdCwgY2FwdGlvbiwgY2F0ZWdvcnkmcXVvdDsgLyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPk9uIGFuIGFydGljbGUgcGFnZSwgaGFyZC1jb2RpbmcgbGlzdHMgb2Yg dGhpbmdzIHRvIGluY2x1ZGUvZXhjbHVkZSBpcyBhY2NlcHRhYmxlLiBCdXQgaWYgeW91JiM4 MjE3O3JlIHVzaW5nIGEgZm9ybSB5b3UgZG9uJiM4MjE3O3Qgd2FudCB0byBkbyB0aGF0LCBz byBqdXN0IGxpa2UgdGhlIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiBvcHRpb24geW91IGNhbiB1 c2UgPGNvZGU+PzwvY29kZT4gcGxhY2Vob2xkZXJzIHRoYXQgd2lsbCByZWFkIHN0dWZmIGZy b20gdGhlIGN1cnJlbnQgYXJ0aWNsZS4gVGhpcyBleGFtcGxlIHdpbGwgcGljayBhbnkgcmFu ZG9tIGFuaW1hbCBleGNlcHQgb25lcyBmcm9tIHRoZSBjdXJyZW50IHNlY3Rpb24gb3IgZ2xv YmFsIGNhdGVnb3J5LiBOb3RlIHRoYXQsIHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUsIGl0IGNo ZWNrcyBpbiBmb3VyIGxvY2F0aW9ucyB0byBoZWxwIGVuc3VyZSBpdCB3b24mIzgyMTc7dCBm aW5kIGFueXRoaW5nIHJlbGF0ZWQgdG8gdGhlIGN1cnJlbnQgY2F0ZWdvcnkuPC9wPgoKCTxo MiBpZD0iZm1lZyI+RmlsZSBtb2RlIGV4YW1wbGVzPC9oMj4KCgk8cD5UbyBoaWdobGlnaHQg dGhlIGZlYXR1cmVzLCB3ZSBhcmUgZ29pbmcgdG8gdXNlIHRoZSBzYW1lIHpvbyB3ZWIgc2l0 ZSBhcyBpbiB0aGUgPGEgaHJlZj0iI2ltZWciPkltYWdlIG1vZGUgZXhhbXBsZXM8L2E+LiBC dXQgdGhpcyB0aW1lLCBhc3N1bWUgeW91IGhhdmUgdXBsb2FkZWQgYSBmZXcgU2hvY2t3YXZl IEZsYXNoIGRvY3VtZW50cyBhYm91dCB2YXJpb3VzIGFuaW1hbHMgYW5kIGEgY291cGxlIG9m IHNob3J0IG1vdmllcyBhYm91dCBjaGVldGFocyB1bmRlciBhIGZpbGUgY2F0ZWdvcnkgY2Fs bGVkICYjODIyMDthbmltYWxzJiM4MjIxOy4gVGhlIG1vdmllcyBhcmUgc3ViLWNhdGVnb3Jp c2VkIGFzIGJlZm9yZS4gVGhlIDxjb2RlPmRlc2NyaXB0aW9uPC9jb2RlPiBmaWVsZCBvZiBl YWNoIGZpbGUgaG9sZHMgYSB1cmwgdG8gYW4gYXJ0aWNsZSBhYm91dCBlYWNoIGFuaW1hbCB1 c2luZyA8Y29kZT5saW5rX3VybD0vYW5pbWFscy9hbmltYWxOYW1lOzwvY29kZT48L3A+CgoJ PHA+WW91IGNhbiBkbyBhbGwgdGhlIHNhbWUgdGhpbmdzIGFzIGluIGltYWdlIG1vZGUgdG8g Y2hvb3NlIHdoaWNoIGZpbGVzIG1hdGNoIHdoYXQgdGV4dC9jYXRlZ29yaWVzIHNvIHdlJiM4 MjE3O2xsIG5vdCBjb3ZlciB0aGF0IGhlcmUuIE9ubHkgdGhlPGJyIC8+Cm5ldyBvcHRpb25z IGFyZSBjb3ZlcmVkIG9yIHdoZXJlIGFuIG9wdGlvbiBkaWZmZXJzIHNpZ25pZmljYW50bHku PC9wPgoKCTxoMyBpZD0iZmVnMSI+RXhhbXBsZSAxOiBTaW1wbGUgZmlsZSBiYW5uZXI8L2gz PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf cmFuZG9tX2Jhbm5lciBtb2RlPSZxdW90O2ZpbGUmcXVvdDsgY2F0ZWdvcnk9JnF1b3Q7YW5p bWFscyZxdW90OwogICAgIGF2b2lkX3RleHQ9JnF1b3Q7P2tleXdvcmRzJnF1b3Q7IGNvbXBh cmVfdG89JnF1b3Q7ZmlsZW5hbWUsIGRlc2NyaXB0aW9uJnF1b3Q7CiAgICAgc3ViY2F0cz0m cXVvdDthbGwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkZhaXJseSBzdHJhaWdo dGZvcndhcmQuIFBpY2tzIGFueSBmaWxlIGluIHRoZSBjYXRlZ29yeSBjYWxsZWQgJiM4MjE2 O2FuaW1hbHMmIzgyMTc7IHRoYXQgZG9lcyBub3QgY29udGFpbiBhbnkgb2YgdGhlIGN1cnJl bnQgYXJ0aWNsZSYjODIxNztzIGtleXdvcmRzIGluIGl0cyBmaWxlbmFtZSBvciBkZXNjcmlw dGlvbiBmaWVsZHMuPC9wPgoKCTxwPkFzc3VtaW5nIGl0IHNlbGVjdHMgYSBzaG9ja3dhdmUg Zmxhc2ggZmlsZSwgdGhlIHRhZyBpdCBvdXRwdXRzIG1pZ2h0IGJlOjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtvYmplY3QgZGF0YT0mcXVvdDto dHRwOi8vbXlncmVhdHpvby5jb20vZmlsZV9kb3dubG9hZC8yJnF1b3Q7CiAgICAgICB0eXBl PSZxdW90O2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJnF1b3Q7CiAgICAgICB3aWR0 aD0mcXVvdDszMDAmcXVvdDsgaGVpZ2h0PSZxdW90Ozc1JnF1b3Q7IGlkPSZxdW90O2lkNzQ2 NTg5MyZxdW90OyZndDsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7bW92aWUmcXVvdDsKICAgICB2 YWx1ZT0mcXVvdDtodHRwOi8vbXlncmVhdHpvby5jb20vZmlsZV9kb3dubG9hZC8yJnF1b3Q7 IC8mZ3Q7CiZsdDsvb2JqZWN0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJmZWcyIj5F eGFtcGxlIDI6IEVuaGFuY2VkIGNvbnRyb2wgb2YgRmxhc2ggYmFubmVyczwvaDM+CgoJPHA+ VXNpbmcgdGhlIHNhbWUgb3B0aW9ucyBhcyBpbiA8YSBocmVmPSIjZmVnMSI+RXhhbXBsZSAx PC9hPiwgaWYgeW91IGdvIHRvIHRoZSBGaWxlcyB0YWIsIHNlbGVjdCB0aGUgRmxhc2ggZmls ZSBpdCBjaG9zZSBhbmQgZWRpdCB0aGUgZGVzY3JpcHRpb24gZmllbGQgdG8gcmVhZDo8L3A+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5sb29wPWZhbHNlOwp3 aWR0aD00NTA7CmNvZGViYXNlPWh0dHA6Ly9teWdyZWF0em9vLmNvbS87CmlkPSZxdW90O3pv b2JqZWN0JnF1b3Q7OwpzdGFuZGJ5PSZxdW90O2xvYWRpbmcuLi4mcXVvdDs7CmJnY29sb3I9 IzAwNjgwMDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZW4geW91IHdvdWxkIGdldCBhbiBvYmpl Y3QgdGFnIHRoYXQgcmVzZW1ibGVkIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O29iamVjdCBkYXRhPSZxdW90O2h0dHA6Ly9teWdyZWF0 em9vLmNvbS9maWxlX2Rvd25sb2FkLzImcXVvdDsKICAgICAgIHR5cGU9JnF1b3Q7YXBwbGlj YXRpb24veC1zaG9ja3dhdmUtZmxhc2gmcXVvdDsKICAgICAgIHdpZHRoPSZxdW90OzQ1MCZx dW90OyBoZWlnaHQ9JnF1b3Q7NzUmcXVvdDsgaWQ9JnF1b3Q7em9vYmplY3QmcXVvdDsmZ3Q7 CiZsdDtwYXJhbSBuYW1lPSZxdW90O21vdmllJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7aHR0 cDovL215Z3JlYXR6b28uY29tL2ZpbGVfZG93bmxvYWQvMiZxdW90OyAvJmd0OzsKJmx0O3Bh cmFtIG5hbWU9JnF1b3Q7bG9vcCZxdW90OyB2YWx1ZT0mcXVvdDtmYWxzZSZxdW90OyAvJmFt cDtndDsKJmx0O3BhcmFtIG5hbWU9JnF1b3Q7Y29kZWJhc2UmcXVvdDsgdmFsdWU9JnF1b3Q7 aHR0cDovL215Z3JlYXR6b28uY29tLyZxdW90OyAvJmd0OwombHQ7cGFyYW0gbmFtZT0mcXVv dDtzdGFuZGJ5JnF1b3Q7IHZhbHVlPSZxdW90O2xvYWRpbmcuLi4mcXVvdDsgLyZndDsKJmx0 O3BhcmFtIG5hbWU9JnF1b3Q7Ymdjb2xvciZxdW90OyB2YWx1ZT0mcXVvdDsjMDA2ODAwJnF1 b3Q7IC8mZ3Q7CiZsdDsvb2JqZWN0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SG9wZWZ1bGx5 IHlvdSBjYW4gc2VlIHRoYXQgaXQmIzgyMTc7cyBxdWl0ZSBmbGV4aWJsZSBhbmQgc2hvdWxk IGFsbG93IHlvdSB0byB0d2VhayBhbnkgY29udGVudCB0byBwbGF5IGluIG1vc3QgYnJvd3Nl cnMuPC9wPgoKCTxoMyBpZD0iZmVnMyI+RXhhbXBsZSAzOiBDaGFuZ2luZyB0aGUgZGVsaW1p dGVyPC9oMz4KCgk8cD5Vc2luZyB0aGUgc2FtZSBvcHRpb25zIGFzIGluIDxhIGhyZWY9IiNm ZWcxIj5FeGFtcGxlIDE8L2E+LCBidXQgYWRkaW5nIG9uZSBvcHRpb24gPGNvZGU+bnZfZGVs aW09JnF1b3Q7OjomcXVvdDs8L2NvZGU+IG1lYW5zIHRoYXQgaW4gdGhlIGRlc2NyaXB0aW9u IGZpZWxkIHlvdSB3b3VsZCBoYXZlIHRvIHNwZWNpZnkgdGhlIG5hbWUtdmFsdWUgcGFpcnMg d2l0aCBhIGRvdWJsZSBjb2xvbiBiZXR3ZWVuIHRoZW0sIGkuZS48L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5sb29wOjpmYWxzZTsKd2lkdGg6OiZxdW90 OzQ1MCZxdW90OzsKY29kZWJhc2U6Omh0dHA6Ly9teWdyZWF0em9vLmNvbS87CmlkOjp6b29i amVjdDsKc3RhbmRieTo6JnF1b3Q7bG9hZGluZy4uLiZxdW90OzsKRmxhc2hWYXJzOjomcXVv dDtteVZhcj1odHRwOi8vbXlncmVhdHpvby5jb20vbGlvbnMmcXVvdDs7CmJnY29sb3I6OiMw MDY4MDA7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoZSBhZGRpdGlvbiBvZiBGbGFzaFZh cnMuIElmIHlvdSB3aXNoIHRvIHNlbmQgRmxhc2hWYXJzIHRvIHlvdXIgYXBwbGljYXRpb24s IHRoZXkgaGF2ZSB0byBiZSBkZWxpbWl0ZWQgd2l0aCBhbiA8Y29kZT49PC9jb2RlPiBzbyB5 b3UgbXVzdCBjaGFuZ2UgPGNvZGU+bnZfZGVsaW08L2NvZGU+IHRvIHNvbWV0aGluZyBlbHNl LiBBbnkgb3RoZXIgY2hhcmFjdGVyKHMpIHdpbGwgZG8sIGJ1dCB1c2luZyBhIHNpbmdsZSBj b2xvbiB3b3VsZCBjYXVzZSBncmllZiBiZWNhdXNlIHRoYXQgY2hhcmFjdGVyIGlzIHVzZWQg aW4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj5zLjwvcD4KCgk8cD5JbmNpZGVudGFs bHksIHBhc3NpbmcgYSBGbGFzaFZhciBpbiB0aGlzIG1hbm5lciBtYXkgaGVscCBtYWtlIHlv dXIgYmFubmVyIGNsaWNrYWJsZSB3aXRob3V0IHJlc29ydGluZyB0byB1c2luZyA8Y29kZT53 bW9kZT10cmFuc3BhcmVudDs8L2NvZGU+IGJlY2F1c2UgeW91IGNhbiBzaW1wbHkgcGxhY2Ug YSBidXR0b24gaW4geW91ciBtb3ZpZSBhbmQgcGFzcyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PlVSTDwvc3Bhbj4gaW4gZnJvbSB0aGUgZGVzY3JpcHRpb24gZmllbGQgdmlhIGEgRmxhc2hW YXIgaW5zdGVhZCBvZiB1c2luZyA8Y29kZT5saW5rX3VybDwvY29kZT4uPC9wPgoKCTxoMyBp ZD0iZmVnNCI+RXhhbXBsZSA0OiBDbGlja2FibGUgZmlsZSBiYW5uZXJzPC9oMz4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV9i YW5uZXIgbW9kZT0mcXVvdDtmaWxlJnF1b3Q7IGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVv dDsKICAgICBtYXRjaF90ZXh0PSZxdW90O2NoZWV0YWgmcXVvdDsgc3ViY2F0cz0mcXVvdDth bGwmcXVvdDsgbGlua19pbj0mcXVvdDtkZXNjcmlwdGlvbiZxdW90OwogICAgIGNsYXNzPSZx dW90O2Zsb2JqZWN0cyZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SWYgb25lIG9m IHRoZSByb3dzIGluIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGUgPGNvZGU+Y2hlZXRh aF9jaGFzaW5nX2RlZXIud212PC9jb2RlPiBmaWxlIGlzIDxjb2RlPmxpbmtfdXJsPS9hbmlt YWxzL2NoZWV0YWgtY2hhc2luZy1kZWVyPC9jb2RlPiB0aGVuIGNsaWNraW5nIG9uIHRoZSBl bWJlZGRlZCBtb3ZpZSB3aWxsIHRha2UgdGhlIHZpc2l0b3IgdG8gdGhhdCBhcnRpY2xlLiBZ b3UgbWF5IGFsc28gYWRkIGFuIG9uY2xpY2sgaGFuZGxlciBpbiBhIHNpbWlsYXIgbWFubmVy LCBmb3IgZXhhbXBsZSA8Y29kZT5vbmNsaWNrPWphdmFzY3JpcHQ6cGFnZVRyYWNrZXIuX3Ry YWNrUGFnZXZpZXcoJiMzOTsvYWR2ZXJ0aXNlci9iYW5uZXJhZF9uYW1lJiMzOTspOzwvY29k ZT4uIFRoYXQgd291bGQgYWxsb3cgeW91IHRvIHRyYWNrIHBhZ2UgYmFubmVyIGltcHJlc3Np b25zIHVzaW5nIEdvb2dsZSBBbmFsYXl0aWNzLiBOb3RlIHRoYXQgdGhlcmUmIzgyMTc7cyBu byBuZWVkIHRvIHNwZWNpZnkgdGhlIHF1b3RlcyBhcm91bmQgdGhlIG9uY2xpY2sgcGFybWV0 ZXIsIGJ1dCBpbiB0aGlzIGluc3RhbmNlIHlvdSB3b3VsZCBuZWVkIHRvIHVzZSB0aGUgPGNv ZGU+cm93X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGUgdG8gc3RvcCB0aGUgcGx1Z2luIGZyb20g dXNpbmcgdGhlIGRlZmF1bHQgPGNvZGU+OzwvY29kZT4gd2hpY2ggaXMgYWN0dWFsbHkgcGFy dCBvZiB0aGUgb25jbGljayYjODIxNztzIHN0cmluZy4gQSBnb29kIG9uZSBmb3IgdGhpcyBt aWdodCBiZSA8Y29kZT5yb3dfZGVsaW09I34jPC9jb2RlPi4gVGhlIG9uY2xpY2sgaXMgb25s eSBob25vdXJlZCBpZiB0aGVyZSBpcyBhIGRlc3RpbmF0aW9uIDxjb2RlPmxpbmtfdXJsPC9j b2RlPiBnaXZlbiBpbiB5b3VyIGNob3NlbiA8Y29kZT5saW5rX2luPC9jb2RlPiBmaWVsZC48 L3A+CgoJPHA+SW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIGF0dHJpYnV0ZXMsIHRoaXMgYW5k IGFsbCBvYmplY3RzIGRpc3BsYXllZCBieSB0aGUgcGx1Z2luIHdpbGwgdGFrZSBvbiBhIDxj b2RlPmNsYXNzPSZxdW90O2Zsb2JqZWN0cyZxdW90OzwvY29kZT4gYXR0cmlidXRlLiBUaGlz IGNhbiBiZSBvdmVycmlkZGVuIG9uIGEgZmlsZS1ieS1maWxlIGJhc2lzIGJ5IGFkZGluZyA8 Y29kZT5jbGFzcz0mcXVvdDthbm90aGVyQ2xhc3NOYW1lJnF1b3Q7OzwvY29kZT4gIGFzIGFu IGVudHJ5IGluIHRoZSA8Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQuPC9wPgoKCTxw Pk5vdGUgdGhhdCBpZiB5b3VyIGNob3NlbiBtZWRpYSBwbHVnaW4gY2FwdHVyZXMgY2xpY2sg ZXZlbnRzIGJlZm9yZSB0aGV5IGFyZSBwYXNzZWQgdG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBz Ij5ET008L3NwYW4+LCB0aGUgbGluayB3aWxsIG5vdCBiZSBob25vdXJlZC4gRm9yIEZsYXNo LCB5b3UgY2FuIGJ5cGFzcyB0aGlzIGluIG1vc3QgYnJvd3NlcnMgKExpbnV4IGlzIGN1cnJl bnRseSBhbiBleGNlcHRpb24pIGJ5IHBhc3NpbmcgPGNvZGU+d21vZGU9dHJhbnNwYXJlbnQ7 PC9jb2RlPiBvciB1c2luZyBhIEZsYXNoVmFyIGFzIGluIDxhIGhyZWY9IiNmZWczIj5FeGFt cGxlIDM8L2E+PC9wPgoKCTxoMyBpZD0iZmVnNSI+RXhhbXBsZSA1OiBFbmhhbmNlZCBtYXRj aGluZyBhbmQgb3V0cHV0IGNvbnRyb2w8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX2Jhbm5lciBtb2RlPSZxdW90O2Zp bGUmcXVvdDsgY2F0ZWdvcnk9JnF1b3Q7YW5pbWFscyZxdW90OwogICAgIGF2b2lkX3RleHQ9 JnF1b3Q7P2tleXdvcmRzJnF1b3Q7IGNvbXBhcmVfdG89JnF1b3Q7ZmlsZW5hbWUsIGRlc2Ny aXB0aW9uJnF1b3Q7CiAgICAgc3ViY2F0cz0mcXVvdDsyJnF1b3Q7IG52X2RlbGltPSZxdW90 Ozo6JnF1b3Q7CiAgICAgZ2xvYmFsX3BhcmFtcz0mcXVvdDtwbGF5ZXJ2ZXJzaW9uOjo5O3dp ZHRoOjo3NTtoZWlnaHQ6NTAwOyZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+SW4g dGhlIEZpbGVzIHRhYiwgaWYgeW91IHNlbGVjdCBvbmUgb2YgdGhlIEZsYXNoIGZpbGVzIHRo YXQgdGhlIHBsdWdpbiBtaWdodCBjaG9vc2UgYW5kIGVkaXQgaXRzIGRlc2NyaXB0aW9uIGZp ZWxkIHRvIHJlYWQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+bWltZV90eXBlOjpzd287CnVpZDo6c29iOwpxdWFsaXR5OjpoaWdoOwp3bW9kZTo6dHJh bnNwYXJlbnQ7CmVsZW1lbnRpZDo6bXlGbGFzaENvbnRlbnQ7CkZsYXNoVmFyczo6bGlua3k9 aHR0cDovL215Z3JlYXR6b28uY29tL3RpZ2VycyZhbXA7YW1wO3BpYz10aWdlci5qcGc7Cndp ZHRoOjoyMDA7CjwvY29kZT48L3ByZT4KCgk8cD5UaGVuIHlvdSBtaWdodCBnZXQgb3V0cHV0 IHRoYXQgcmVzZW1ibGVkIHRoaXM6PC9wPgoKCTxwPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh c2NyaXB0IiBkZWZlcj0iZGVmZXIiPgogdmFyIHNvYiA9IG5ldyA8c3BhbiBjbGFzcz0iY2Fw cyI+U1dGTzwvc3Bhbj5iamVjdCgmIzgyMjA7aHR0cDovL215Z3JlYXR6b28uY29tL2ZpbGVf ZG93bmxvYWQvMiYjODIyMTssCiAgICAgICAmIzgyMjA7aWQyMTg5NTc0NiYjODIyMTssICYj ODIyMDsyMDAmIzgyMjE7LCAmIzgyMjA7NTAwJiM4MjIxOywgJiM4MjIwOzkmIzgyMjE7LCAm IzgyMjA7I2ZmZmZmZiYjODIyMTspOwogc29iLmFkZFBhcmFtKCYjODIyMDtxdWFsaXR5JiM4 MjIxOywgJiM4MjIwO2hpZ2gmIzgyMjE7KTsKIHNvYi5hZGRQYXJhbSgmIzgyMjA7d21vZGUm IzgyMjE7LCAmIzgyMjA7dHJhbnNwYXJlbnQmIzgyMjE7KTsKIHNvYi5hZGRWYXJpYWJsZSgm IzgyMjA7bGlua3kmIzgyMjE7LCAmIzgyMjA7aHR0cDovL215Z3JlYXR6b28uY29tL3RpZ2Vy cyYjODIyMTspOwogc29iLmFkZFZhcmlhYmxlKCYjODIyMDtwaWMmIzgyMjE7LCAmIzgyMjA7 dGlnZXIuanBnJiM4MjIxOyk7CiBzb2Iud3JpdGUoJiM4MjIwO215Rmxhc2hDb250ZW50JiM4 MjIxOyk7PGJyIC8+Cjwvc2NyaXB0PjwvcD4KCgk8cD5Ob3RlIHRoZSAmIzgyMTY7ZGVmZXIm IzgyMTc7IG9wdGlvbi4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIHByZXZlbnQgSUUgZnJvbSBj cmFzaGluZyAod2hpY2ggaXQgc29tZXRpbWVzIGRvZXMpIHdpdGggYW4gJiM4MjIwO29wZXJh dGlvbiBhYm9ydGVkJiM4MjIxOyBkaWFsb2cuPC9wPgoKCTxoMiBpZD0iY2hhbmdlbG9nIj5D aGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+djAuMSAgSW5pdGlhbCBwdWJsaWMgcmVsZWFz ZTwvbGk+CgkJPGxpPnYwLjExIEFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5QRlg8L3NwYW4+ IHRvIHF1ZXJ5ICh0aGFua3MgbWVyY3VyeSk8L2xpPgoJCTxsaT52MC4xMiBGaXhlZCBoZWxw IHRvIGluY2x1ZGUgdHJhaWxpbmcgc2xhc2hlcyAodGhhbmtzIHZpdHRvcmlvKTwvbGk+CgkJ PGxpPnYwLjEzIFVucmVsZWFzZWQuIEFkZGVkIGxvb2tfaW49Y2F0ZWdvcnkgYW5kIHJlZmVy ZXI8L2xpPgoJCTxsaT52MC4xNCBBZGRlZCBtYXRjaF90ZXh0IGFuZCB1c2VfYWx0ICh0aGFu a3MgbHVrZXBlcm1zbik8L2xpPgoJCTxsaT52MC4xNSBBZGRlZCBhbHdheXNfZGlzcGxheSBh bmQgbGltaXQgKHRoYW5rcyBsdWtlcGVybXNuKTwvbGk+CgkJPGxpPnYwLjE1YSBCdWdmaXgg Zm9yIGxpbmtjYXB0aW9uICh0aGFua3MgbWVyY3VyeSk8L2xpPgoJCTxsaT52MC4xNiBUaWdo dGVuZWQgaW1hZ2UoKSBwYXJhbXMgZm9yIHR4cCB2NC4wLjQgY29tcGxpYW5jZTwvbGk+CgkJ PGxpPnYwLjE3IEFkZGVkIHRodW1iLCBsaW5rcHJlZml4IGFuZCBsaW5rYWx0IG9wdGlvbnM8 L2xpPgoJCTxsaT52MC4xN2EgYmlkIG9wdGlvbiBub3cgd29ya3Mgd2l0aCBleGlzdGluZyB1 cmwgcGFyYW1zICh0aGFua3MgUGFwdWFzcyk8L2xpPgoJCTxsaT52MC4xOCBBZGRlZCBpbWdj bGFzcyBvcHRpb24gKHRoYW5rcyBEaWdpdGFsUmVhbG0pPC9saT4KCQk8bGk+djAuMiAgTWFq b3Igb3ZlcmhhdWwuIEFkZGVkIHN1YmNhdGVnb3J5IHN1cHBvcnQgKHRoYW5rcyBsdWtlcGVy bXNuIGFuZCBzYW50aGVvKS4gVXNlcyBzbWRfbGliLiBFbmhhbmNlZCBtYXRjaF90ZXh0L2F2 b2lkX3RleHQgc28gbG9va19pbiBpcyBubyBsb25nZXIgbmVlZGVkOyBkcm9wcGVkIHVzZV9h bHQgYW5kIGFkZGVkIGNvbXBhcmVfdG87IHJlcGxhY2VkIGxpbmtjYXB0aW9uL2xpbmthbHQg d2l0aCBsaW5rX2luOyBhZGRlZCBpZF9wcmVmaXg7IGxpbmtwcmVmaXggaXMgbm93IGxpbmtf cHJlZml4PC9saT4KCQk8bGk+djAuMjEgQWRkZWQgPGFjcm9ueW0gdGl0bGU9Ik11bHRpLUxp bmd1YWwgUGFjayI+PHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwvc3Bhbj48L2Fjcm9ueW0+IHN1 cHBvcnQ8L2xpPgoJCTxsaT52MC4yMiBBZGRlZCByYXdfdXJsIG9wdGlvbjwvbGk+CgkJPGxp PnYwLjIzIEFnYWluc3QgYmV0dGVyIGp1ZGdlbWVudCwgYWRkZWQgdGFyZ2V0IG9wdGlvbiAo dGhhbmtzIGpzdHViYnMsIGNkdGF2aWppdCk8L2xpPgoJCTxsaT52MC4zICBBZGRlZCBzdXBw b3J0IGZvciBmaWxlcyBhcyB3ZWxsIGFzIGltYWdlcyAmIzgyMTE7IGZpbmFsbHksIHZpZGVv L3N3ZiBiYW5uZXJzIGFyZSBhIHJlYWxpdHkhPC9saT4KCQk8bGk+djAuM2EgRml4ZWQ6IGlm IGNhdGVnb3J5PSYjODIyMTs/ZmllbGQmIzgyMjE7IGlzIGVtcHR5L3JldHVybnMgbm8gcmVz dWx0cywgcGx1Z2luIHdpbGwgbm8gbG9uZ2VyIGRpc3BsYXkgYSByYW5kb20gaW1hZ2UgZnJv bSB0aGUgZnVsbCBwb29sPC9saT4KCQk8bGk+djAuMzEgRXh0ZW5kZWQgYWx3YXlzX2Rpc3Bs YXkuIEFkZGVkIG52X2RlbGltIHRvIHNwZWNpZnkgbmFtZT12YWx1ZSBkZWxpbWl0ZXIgaW4g ZmlsZSBtb2RlIHBhcmFtcy4gRml4ZWQ6IGRlZmluZSgpIHdhcm5pbmc8L2xpPgoJCTxsaT52 MC4zMiBBZGRlZCBub19wbHVnX3RleHQgYW5kIGdsb2JhbF9wYXJhbXM8L2xpPgoJCTxsaT52 MC4zMyBVc2VzIHNtZF9saWIgdjAuMy4gQWRkZWQgc3dmT2JqZWN0IHN1cHBvcnQuIENhbiBu b3cgb3ZlcnJpZGUgbWltZSB0eXBlLjwvbGk+CgkJPGxpPnYwLjM0IEFkZGVkIHN0YXRpYyBp bWFnZSBzdXBwb3J0IHRvIGZpbGVzIG1vZGUoISk8L2xpPgoJCTxsaT52MC40ICBSZWZhY3Rv cmVkIGNvZGUgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgbmV3IHNtZF9saWIgZnVuY3Rpb25hbGl0 eSAoc3ViY2F0cywgY2F0ZWdvcnkgYW5kIG1hdGNoaW5nKSA7IGFkZGVkIGlkLCBjaGFuZ2Vk IGltZ2NsYXNzIHRvIGNsYXNzIDsgYWRkZWQgZGlzcGxheV91cmwgKHRoYW5rcyBBbmRyZXcg QmxldmlucykgOyBjYW4gbm93IGxpbmtfaW4gZmlsZSBuYW1lIDsgZml4ZWQgc3dmb2JqZWN0 IGJ1ZyBpbiBmaWxlIG1vZGUgOyByZW1vdmVkIGlkX3ByZWZpeDwvbGk+CgkJPGxpPnYwLjQx IEZpeGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+IHN0cmluZyBidWc8L2xpPgoJ CTxsaT52MC40MiBBZGRlZCBmaWxlIHRpdGxlIGFzIGEgcG9zc2libGUgbG9jYXRpb24gOyBh ZGRlZCByb3dfZGVsaW0gOyBhZGRlZCBvbmNsaWNrIGhhbmRsZXIgdG8gZmlsZSBtb2RlICh0 aGFua3MgcmVub2JpcmQpIDsgYWRkZWQgPHNwYW4gY2xhc3M9ImNhcHMiPlNNRDwvc3Bhbj5f VU5JUVVFICh0aGFua3MgU2NvdHQgR2lydmFuKTwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iY3Jl ZGl0cyI+Q3JlZGl0czwvaDI+CgoJPHA+VGhpcyBwbHVnaW4gd2FzIG9yaWdpbmFsbHkgYmFz ZWQgb24gZHJ1X3JhbmRvbV9pbWFnZSBhbmQgcGxhZ2lhcmlzZWQgaWRlYXMgZnJvbSBSb2Ig U2FibGUmIzgyMTc7cyByc3NfdGh1bWJwb3AgYW5kIHZhcmlvdXMgPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj5lcnMgaW4gdGhlIGNvbW11bml0eSB3aG8gaGF2ZSBzdWdnZXN0ZWQg ZmVhdHVyZXMgYW5kIGltcHJvdmVtZW50cy4gTWFueSB0aGFua3MgdG8gYWxsIHdobyBoYXZl IGhlbHBlZCBjcmFmdCB0aGlzIHBsdWdpbiBhbmQgb2YgY291cnNlIFRlYW0gVGV4dFBhdHRl cm4gZm9yIHRoZSBjb29sZXN0IDxzcGFuIGNsYXNzPSJjYXBzIj5DTVM8L3NwYW4+IG9uIHRo ZSBwbGFuZXQuPC9wPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0t Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUg O30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUg IkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAj RkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJv cmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3Bs YXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRf aGVscCBhOmxpbmssICNzbWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogIzAwYzsgdGV4dC1k ZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGlu Zy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7 IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJw eCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xv cjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRl eHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHgg c29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4 IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMwNzk7IGZv bnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsg bWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29y YXRpb246dW5kZXJsaW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFs LCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0 ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2Vp Z2h0OmJvbGQ7IGNvbG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDoj ZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6 OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxw IHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVt IDA7fQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVs cCAuaW1wb3J0YW50IHtjb2xvcjpyZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIw cHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwv c3R5bGU+CjwhLS0gKioqIEVORCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czoz MjoiNmE2MjE1NzFjM2EyOGUzYjNkMGZkNTMxNjRlNGNlMDciO30=