# Name: smd_slimbox v0.3 # Type: Client side plugin # Image gallery lightbox wrapper that can use Slimbox, Litebox, Moonbox, Thickbox etc # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTE6InNtZF9zbGltYm94IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjMiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjgz OiJJbWFnZSBnYWxsZXJ5IGxpZ2h0Ym94IHdyYXBwZXIgdGhhdCBjYW4gdXNlIFNsaW1ib3gs IExpdGVib3gsIE1vb25ib3gsIFRoaWNrYm94IGV0YyI7czo0OiJjb2RlIjtzOjE1MzY5OiIv LyBERVBSRUNBVEVEDQpmdW5jdGlvbiBzbWRfc2xpbWJveF9pbmMoJGF0dHMpIHsNCglnbG9i YWwgJHByb2R1Y3Rpb25fc3RhdHVzOw0KCWlmIChpbl9hcnJheSgkcHJvZHVjdGlvbl9zdGF0 dXMsIGFycmF5KCdkZWJ1ZycsICd0ZXN0aW5nJykpKSB7DQoJCXRyaWdnZXJfZXJyb3IoInNt ZF9zbGltYm94X2luYyBpcyBubyBsb25nZXIgc3VwcG9ydGVkLiBQbGVhc2UgcmVtb3ZlIGl0 IGFuZCBpbmNsdWRlIHRoZSByZWxldmFudCBqYXZhc2NyaXB0IGxpYnJhcmllcyBtYW51YWxs eSBvbiB5b3VyIHBhZ2UuIik7DQoJfQ0KCXJldHVybjsNCn0NCg0KZnVuY3Rpb24gc21kX3Ns aW1ib3goJGF0dHMsICR0aGluZz0nJykgew0KCXJlcXVpcmVfcGx1Z2luKCdzbWRfbGliJyk7 DQoJZ2xvYmFsICRwcm9kdWN0aW9uX3N0YXR1cywgJHByZXRleHQsICR0aGlzYXJ0aWNsZSwg JGltZ19kaXIsICRzbWRfc2JveExhbmc7DQoNCgkvLyBNTFAgc3VwcG9ydA0KCSRzbWRfc2Jv eFN0ciA9IGFycmF5KA0KCQknbmV4dF9sYmwnID0+ICdOZXh0JywNCgkJJ3ByZXZfbGJsJyA9 PiAnUHJldicsDQoJKTsNCgkkc21kX3Nib3hMYW5nID0gbmV3IHNtZF9NTFAoJ3NtZF9zbGlt Ym94JywgJ3NtZF9zYm94JywgJHNtZF9zYm94U3RyKTsNCg0KCS8vICoqIExPT0tVUCBUQUJM RVMNCgkvLyBIb2xkcyBkYXRhYmFzZSBmaWVsZCBhcyBrZXkgaW5kZXggYW5kIHBsdWdpbiBv cHRpb24gbmFtZXMgYXMgdmFsdWUuDQoJLy8gVXNlIGFycmF5X3NlYXJjaCB0byBmaW5kIGlm IHZhbHVlIGV4aXN0cyBhbmQgcmV0dXJuIGNvcnJlY3Qga2V5IGZvciB1c2UgaW4gZGIgY2Fs bHMuDQoJJGZpZWxkTWFwID0gYXJyYXkoDQoJCSJuYW1lIiA9PiAibmFtZSIsDQoJCSJpZCIg PT4gImlkIiwNCgkJImFsdCIgPT4gImFsdCIsDQoJCSJjYXB0aW9uIiA9PiAiY2FwdGlvbiIs DQoJCSJjYXRlZ29yeSIgPT4gImNhdGVnb3J5IiwNCgkJImF1dGhvciIgPT4gImF1dGhvciIs DQoJCSJkYXRlIiA9PiAiZGF0ZSIsDQoJCSJleHQiID0+ICJleHQiLA0KCQkidyIgPT4gIndp ZHRoIiwNCgkJImgiID0+ICJoZWlnaHQiLA0KCSk7DQoJJHNob3dMb2NzID0gYXJyYXkoImJl bG93IiwiYWJvdmUiLCJhZnRlciIsImJlZm9yZSIsIm9uY2hhbmdlIik7DQovLwkkY2xhc3NU eXBlcyA9IGFycmF5X21lcmdlKGFycmF5KCJncm91cCIsImNlbGwiLCJsaW5rIiwiaW1nIiwi dGh1bWJ0ZXh0IiwibmF2IiwicHJldiIsIm5leHQiKSwkc2hvd0xvY3MpOw0KLy8JJG9wZXJh bmRzID0gYXJyYXkoImNoYW5nZXMiLCAiY29udGFpbnMiLCAiZXEiLCAibHQiLCAiZ3QiLCAi bHRlIiwgImd0ZSIsICJub3QiKTsNCgkkdGh1bWJob2xkZXIgPSAiOjpTQk9YX1JFUEw6OiI7 DQoNCgkkYXR0ZW1wdE1hdGNoID0gKGlzc2V0KCRhdHRzWydjYXRlZ29yeSddKSB8fCBpc3Nl dCgkYXR0c1snaW1hZ2VpZCddKSkgPyB0cnVlIDogZmFsc2U7DQoNCgkvLyBQbHVnaW4gb3B0 aW9ucw0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdkZWxpbScJCQkJPT4gJywnLA0KCQkn cGFyYW1kZWxpbScJCT0+ICc6JywNCgkJJ2ltYWdlaWQnCQkJPT4gJycsDQoJCSdjYXRlZ29y eScJCQk9PiAnJywNCgkJJ3N1YmNhdHMnCQkJPT4gJzAnLA0KCQkndHJpZ2dlcicJCQk9PiAn bGlnaHRib3gtJywNCgkJJ2dyb3VwbmFtZScJCQk9PiAnc21kJywNCgkJJ3RodW1iJwkJCQk9 PiAnMDoxJywNCgkJJ2xpbWl0JwkJCQk9PiAnMCcsDQoJCSdtYXhsaW1pdCcJCQk9PiAnOTk5 OTknLA0KCQknc29ydCcJCQkJPT4gJ2NhdGVnb3J5IGFzYycsIC8vIHdhcyBvcmRlcmJ5DQoJ CSdvcmRlcmJ5JwkJCT0+ICcnLCAvLyBERVBSRUNBVEVEDQoJCSdzaG93cGFnZWxpbmtzJwk9 PiAnMScsDQoJCSdnYWxsZXJ5aWQnCQkJPT4gJz80OjYnLA0KCQknaW1hZ2VjYXB0aW9uJwkJ PT4gJz9jYXB0aW9uJywNCgkJJ3RodW1ic2l6ZScJCQk9PiAnJywNCgkJJ3RodW1idGV4dCcJ CQk9PiAnJywNCgkJJ3RodW1idGV4dHdyYXAnCT0+ICdzcGFuJywNCgkJJ3RodW1idGV4dGNs YXNzJwk9PiAnJywNCgkJJ3dyYXB0YWcnCQkJPT4gJycsDQoJCSduYXZ3cmFwdGFnJwkJPT4g JycsDQoJCSdwcmV2bGFiZWwnCQkJPT4gJHNtZF9zYm94TGFuZy0+Z1R4dCgncHJldl9sYmwn KSwNCgkJJ25leHRsYWJlbCcJCQk9PiAkc21kX3Nib3hMYW5nLT5nVHh0KCduZXh0X2xibCcp LA0KCQkncHJldmNsYXNzJwkJCT0+ICdzbWRfc2xpbWJveF9wcmV2JywNCgkJJ25leHRjbGFz cycJCQk9PiAnc21kX3NsaW1ib3hfbmV4dCcsDQoJCSduYXZjbGFzcycJCQk9PiAnJywNCgkJ J2NlbGxjbGFzcycJCQk9PiAnJywNCgkJJ2xpbmtjbGFzcycJCQk9PiAnJywNCgkJJ2ltZ2Ns YXNzJwkJCT0+ICcnLA0KCSksICRhdHRzKSk7DQoNCgkvLyBERVBSRUNBVEVEOiBDb252ZXJ0 IG9yZGVyYnkgdG8gdGhlIG5ldyBzb3J0LiBSZW1vdmUgaW4gbGF0ZXIgdmVyc2lvbnMNCglp ZiAoJG9yZGVyYnkpIHsNCgkJJHNvcnQgPSBzdHJfcmVwbGFjZSAoIjoiLCAiICIsICRvcmRl cmJ5KTsNCgkJaWYgKGluX2FycmF5KCRwcm9kdWN0aW9uX3N0YXR1cywgYXJyYXkoJ2RlYnVn JywgJ3Rlc3RpbmcnKSkpIHsNCgkJCXRyaWdnZXJfZXJyb3IoIidvcmRlcmJ5JyBpcyBub3cg cmVuYW1lZCAnc29ydCcuIFVzZSBhIHNwYWNlIGluc3RlYWQgb2YgYSBjb2xvbiB0byBzcGVj aWZ5IHNvcnQgb3JkZXIgKGUuZy4gb3JkZXJieT0nY2F0ZWdvcnk6YXNjJyBpcyBub3cgc29y dD0nY2F0ZWdvcnkgYXNjJykuIik7DQoJCX0NCgl9DQoJLy8gQ2F0ZWdvcnkgcmVsaWVzIG9u IHdoZXRoZXIgaW1hZ2VpZCBoYXMgYmVlbiBzcGVjaWZpZWQgb3Igbm90Lg0KCS8vIGxBdHRz KCkgd29uJ3QgbGV0IHVzIGhhbmRsZSB0aGlzIGxvZ2ljIHNvIGl0IGhhcyB0byBiZSBkb25l IG1hbnVhbGx5DQoJJGNhdGVnb3J5ID0gaXNzZXQoJGNhdGVnb3J5KSA/IGRvU2xhc2goJGNh dGVnb3J5KSA6ICgoJGltYWdlaWQ9PSIiKSA/ICRwcmV0ZXh0WydjJ106ICcnKTsNCg0KCS8v IFRoZSBnYWxsZXJ5IGlkZW50aWZpZXIgaXMgdXNlZCBmb3Iga2VlcGluZyB0cmFjayBvZiBu ZXh0L3ByZXYgdGh1bWJwYWdlIGxpbmtzLg0KCS8vIERvbid0IHVzZSBwYXJhbWRlbGltIGhl cmUgb3IgdGhlIGRlZmF1bHQgb3B0aW9uIGJyZWFrcw0KCSRnYWxsSUQgPSAiIjsNCglpZiAo JGdhbGxlcnlpZCA9PSAiIiB8fCBzdWJzdHIoJGdhbGxlcnlpZCwwLDEpID09ICI/Iikgew0K CQkvLyBHZW5lcmF0ZSBhIHVuaXF1ZSBJRCBmb3IgdGhpcyBnYWxsZXJ5IGluc3RhbmNlDQoJ CSRnYWxsVG1wID0gbWQ1KCRjYXRlZ29yeS4kaW1hZ2VpZC4kb3JkZXJieS4kbGltaXQuJG1h eGxpbWl0LiR3cmFwdGFnKTsNCgkJbGlzdCgkZ2FsbExlbiwgJGdhbGxTa2lwKSA9IGV4cGxv ZGUoIjoiLCBzdWJzdHIoJGdhbGxlcnlpZCwxKSk7DQoJCSRnYWxsTGVuID0gIChlbXB0eSgk Z2FsbExlbikpID8gIjQiIDogJGdhbGxMZW47DQoJCSRnYWxsU2tpcCA9ICAoZW1wdHkoJGdh bGxTa2lwKSkgPyAiMSIgOiAkZ2FsbFNraXA7DQoJCWZvciAoJGlkeCA9IDAsICRjbnQgPSAw OyAkY250IDwgJGdhbGxMZW47ICRjbnQrKywgJGlkeCA9ICgoJGlkeCskZ2FsbFNraXApICUg c3RybGVuKCRnYWxsVG1wKSkpIHsNCgkJCSRnYWxsSUQgLj0gJGdhbGxUbXBbJGlkeF07DQoJ CX0NCgl9IGVsc2Ugew0KCQkkZ2FsbElEID0gJGdhbGxlcnlpZDsNCgl9DQoNCgkvLyBTZXQg dXAgdGhlIHZhcmlhYmxlcyBmcm9tIHRoZSB0aHVtYiBvcHRpb24uDQoJLy8gRG9uJ3QgdXNl IHBhcmFtZGVsaW0gaGVyZSBvciB0aGUgZGVmYXVsdCBvcHRpb24gYnJlYWtzDQoJJHRodW1i T3B0cyA9IGRvX2xpc3QoJHRodW1iLCAiOiIpOw0KCWlmIChjb3VudCgkdGh1bWJPcHRzKSA9 PSAxKSB7DQoJCSRmdWxsbW9kID0gKCR0aHVtYk9wdHNbMF0gPT0gMSkgPyAidCIgOiAiIjsN CgkJJHRodW1ibW9kID0gInQiOw0KCX0gZWxzZSB7DQoJCSRmdWxsbW9kID0gKCR0aHVtYk9w dHNbMF0gPT0gMSkgPyAidCIgOiAiIjsNCgkJJHRodW1ibW9kID0gKCR0aHVtYk9wdHNbMV0g PT0gMSkgPyAidCIgOiAiIjsNCgl9DQoNCgkvLyBFeHRyYWN0IHRoZSBnaXZlbiBjYXRlZ29y eS9pbWFnZWlkIGxpc3RzIGFuZCBtYWtlIHVwIHRoZSBiZWdpbm5pbmdzIG9mIGEgV0hFUkUg Y2xhdXNlDQoJJGNsYXVzZVtdID0gJzE9MSc7DQoJJGNsYXVzZU9SID0gYXJyYXkoKTsNCgkk c3ViaW5mbyA9ICgkc3ViY2F0cykgPyAiaW1hZ2U6Ii4kc3ViY2F0cyA6ICcnOw0KCWxpc3Qo JGZ1bGxJRExpc3QsICRub3RJRExpc3QpID0gc21kX2RvTGlzdCgkaW1hZ2VpZCwgdHJ1ZSwg JycsIHRydWUsICRkZWxpbSk7DQoJbGlzdCgkZnVsbENhdExpc3QsICRub3RDYXRMaXN0KSA9 IHNtZF9kb0xpc3QoJGNhdGVnb3J5LCBmYWxzZSwgJHN1YmluZm8sIHRydWUsICRkZWxpbSk7 DQoJaWYgKCRmdWxsSURMaXN0KSB7DQoJCSRjbGF1c2VPUltdID0gJ3R4cF9pbWFnZS5pZCBJ TiAoJy5pbXBsb2RlKCIsIiwgJGZ1bGxJRExpc3QpLicpJzsNCgl9DQoJaWYgKCRmdWxsQ2F0 TGlzdCkgew0KCQkkY2xhdXNlT1JbXSA9ICd0eHBfaW1hZ2UuY2F0ZWdvcnkgSU4gKCcuaW1w bG9kZSgiLCIsICRmdWxsQ2F0TGlzdCkuJyknOw0KCX0NCglpZiAoIWVtcHR5KCRjbGF1c2VP UikpIHsNCgkJJGNsYXVzZVtdID0gaW1wbG9kZSgiIE9SICIsICRjbGF1c2VPUik7DQoJfQ0K DQoJJGNsYXVzZSA9IGltcGxvZGUoIiBBTkQgIiwgJGNsYXVzZSk7DQoJJGNsYXVzZSAuPSAo JG5vdENhdExpc3QpID8gJyBBTkQgdHhwX2ltYWdlLmNhdGVnb3J5IE5PVCBJTiAoJy5pbXBs b2RlKCIsIiwgJG5vdENhdExpc3QpLicpJyA6ICcnOw0KCSRjbGF1c2UgLj0gKCRub3RJRExp c3QpID8gJyBBTkQgdHhwX2ltYWdlLmlkIE5PVCBJTiAoJy5pbXBsb2RlKCIsIiwgJG5vdElE TGlzdCkuJyknIDogJyc7DQoNCgkvLyBJZiBhIGNhdGVnb3J5L2ltYWdlaWQgb3B0aW9uIHdh cyBjaG9zZW4gYW5kIHRoZXkgbWF0Y2hlZCBub3RoaW5nLCB1c2UgYSBib2d1cyBjYXRlZ29y eSB0aGF0IHNob3VsZCBub3QgZXhpc3QuDQoJLy8gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHBs dWdpbiBkb2VzIHRoZSBleHBlY3RlZCB0aGluZyBvZiBtYXRjaGluZyBub3RoaW5nIGluIHRo ZSBldmVudCBpdCBmaW5kcyBub3RoaW5nLg0KCWlmICgkY2xhdXNlID09ICIxPTEiICYmICRh dHRlbXB0TWF0Y2gpIHsNCiAgCQkkY2xhdXNlID0gJ3R4cF9pbWFnZS5jYXRlZ29yeSA9ICJz bWRfJyAubXRfcmFuZCgpLiAnIic7DQoJfQ0KDQoJLy8gQ29udmVydCB0aGUgc29ydCBpbnRv IGEgdmFsaWQgc29ydGluZyBoaWVyYXJjaHkuDQoJLy8gTm90ZSB0aGF0IHJhbmRvbSBpcyBh IHNwZWNpYWwgY2FzZSBhbmQgdGhlIGZvbGxvd2luZyBydWxlcyBhcHBseToNCgkvLyAgMSkg QW55dGhpbmcgYXBwZWFyaW5nIGJlZm9yZSByYW5kb20gaXMgcGFzc2VkIHRvIHRoZSBkYXRh YmFzZSBxdWVyeSBmb3Igb3JkZXJpbmcNCgkvLyAgMikgQXMgc29vbiBhcyByYW5kb20gaXMg ZW5jb3VudGVyZWQsIHRoZSByZXN0IG9mIHRoZSBzb3J0IHN0cmluZyBpcyBpZ25vcmVkLg0K CS8vICAgICBUaGUgcmVzdWx0c2V0IHdpbGwgYmUgc29ydGVkIHJhbmRvbWx5IGluc3RlYWQN CgkvLyAgMykgSWYgcmFuZG9tIGFwcGVhcnMgZmlyc3QgaW4gdGhlIGxpc3QsIHRoZSBkYXRh IGlzIHJldHJpZXZlZCByYW5kb21seSB0aGVuIHRoZQ0KCS8vICAgICByZW1haW5pbmcgb3B0 aW9ucyBzb3J0IHRoZSByZXN1bHRzZXQNCgkkY2xhdXNlU29ydCA9IGFycmF5KCk7DQoJJHBv c3RPcmRlciA9IGFycmF5KCk7DQoJJHJ1bGUgPSAic3FsIjsNCgkkcG9zdFByZWZpeCA9ICJT T1JUXyI7DQoJJGZpeGVkT3JkZXIgPSAkcmFuZHNvcnQgPSBmYWxzZTsNCgkkc29ydCA9IGRv X2xpc3QoJHNvcnQsICRkZWxpbSk7DQoJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRz b3J0KTsgJGlkeCsrKSB7DQoJCSRzb3J0X2RpciA9IGV4cGxvZGUoJyAnLCAkc29ydFskaWR4 XSk7DQoJCSRkaXJlY3Rpb24gPSAkY29sUmVmID0gJyc7DQoJCWlmIChjb3VudCgkc29ydF9k aXIpIDw9IDEpIHsNCgkJCSRzb3J0X2RpclsxXSA9ICJhc2MiOw0KCQl9DQoJCWlmICgkcnVs ZSA9PSAic3FsIikgew0KCQkJJGRpcmVjdGlvbiA9ICgkc29ydF9kaXJbMV0gPT0gImRlc2Mi KSA/ICcgZGVzYycgOiAnIGFzYyc7DQoJCX0gZWxzZSB7DQoJCQkkZGlyZWN0aW9uID0gKCRz b3J0X2RpclsxXSA9PSAiZGVzYyIpID8gJHBvc3RQcmVmaXguJ0RFU0MnIDogJHBvc3RQcmVm aXguJ0FTQyc7DQoJCX0NCg0KCQlzd2l0Y2ggKCRzb3J0X2RpclswXSkgew0KCQkJY2FzZSAn cmFuZG9tJzoNCgkJCQkkcnVsZSA9ICJwb3N0IjsNCgkJCQlpZiAoJGlkeCA9PSAwKSB7DQoJ CQkJCSRjbGF1c2VTb3J0W10gPSAncmFuZCgpJzsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkcmFu ZHNvcnQgPSB0cnVlOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJ2ZpeGVkJzoNCgkJ CQkvLyAnZml4ZWQnIG9ubHkgd29ya3Mgb24gaWRzDQoJCQkJJGZpeGVkT3JkZXIgPSAoJGlt YWdlaWQgPT0gJycpID8gZmFsc2UgOiB0cnVlOw0KCQkJCWJyZWFrOw0KCQkJZGVmYXVsdDoN CgkJCQkkY29sUmVmID0gYXJyYXlfc2VhcmNoKCRzb3J0X2RpclswXSwgJGZpZWxkTWFwKTsN CgkJCQlicmVhazsNCgkJfQ0KCQlpZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJCWlmICgkY29s UmVmICE9ICcnKSB7DQoJCQkJJGNsYXVzZVNvcnRbXSA9ICRjb2xSZWYuJGRpcmVjdGlvbjsN CgkJCX0NCgkJfSBlbHNlIHsNCgkJCWlmICghJHJhbmRzb3J0KSB7DQoJCQkJaWYgKCRjb2xS ZWYgIT0gJycpIHsNCgkJCQkJJHBvc3RPcmRlcltdID0gYXJyYXkoImNvbCIgPT4gJGNvbFJl ZiwgInNvcnQiID0+ICRkaXJlY3Rpb24pOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCg0KCWlm IChjb3VudCgkY2xhdXNlU29ydCkgPiAwKSB7DQoJCSRjbGF1c2UgLj0gJyBPUkRFUiBCWSAn IC4gaW1wbG9kZSgiLCIsJGNsYXVzZVNvcnQpOw0KCX0NCg0KCS8vIFRoZSBkYXRhYmFzZSBm aWVsZHMgcmVxdWlyZWQNCgkkZmllbGRzID0gJ2lkLG5hbWUsY2FwdGlvbixhbHQsY2F0ZWdv cnksZGF0ZSxhdXRob3IsZXh0LHcsaCc7DQoNCgkvLyBIYW5kbGUgcGFnaW5nDQoJaWYgKCgk bGltaXQgPiAwKSAmJiAkc2hvd3BhZ2VsaW5rcykgew0KCQkkcnMgPSBzYWZlX3Jvd3MoJGZp ZWxkcywgJ3R4cF9pbWFnZScsICRjbGF1c2UgLicgTElNSVQgMCwnLiRtYXhsaW1pdCk7DQoJ CSRudW10aHVtID0gY291bnQoJHJzKTsNCgkJJG51bVBhZ2VzID0gKCRudW10aHVtID4gMCkg PyBjZWlsKCRudW10aHVtLyRsaW1pdCkgOiAxOw0KCQkkdGh1bWJwYWdlID0gKCFncHMoJGdh bGxJRCkpID8gMSA6IGdwcygkZ2FsbElEKTsNCgkJJG9mZnNldCA9ICgkdGh1bWJwYWdlIC0g MSkgKiAkbGltaXQ7DQoJCSRycyA9IHNhZmVfcm93cygkZmllbGRzLCAndHhwX2ltYWdlJywg JGNsYXVzZSAuJyBMSU1JVCAnLiRvZmZzZXQuJywnLiRsaW1pdCk7DQoJfSBlbHNlIHsNCgkJ Ly8gTm8gcGFnaW5nIHJlcXVpcmVkDQoJCSRudW1QYWdlcyA9IDE7DQoJCSR0aHVtYnBhZ2Ug PSAxOw0KCQkkcnMgPSBzYWZlX3Jvd3MoJGZpZWxkcywgJ3R4cF9pbWFnZScsICRjbGF1c2Ug LicgTElNSVQgMCwnLiAoKCRsaW1pdD09MCkgPyAkbWF4bGltaXQgOiAkbGltaXQpKTsNCgl9 DQoNCgkvLyBJcyBwb3N0LW9yZGVyaW5nIHJlcXVpcmVkPyBEbyBpdA0KCWlmICgkcmFuZHNv cnQpIHsNCgkJc2h1ZmZsZSgkcnMpOw0KCX0gZWxzZSBpZiAoY291bnQoJHBvc3RPcmRlcikg PiAwKSB7DQoJCS8vIFRyYW5zbGF0ZSB0aGUgcm93cyBpbnRvIGNvbHVtbnMgdGhhdCBjYW4g YmUgc29ydGVkDQoJCWZvcmVhY2goJHJzIGFzICRrZXkgPT4gJHJvdykgew0KCQkJJGNvbF9p ZFska2V5XSA9ICRyb3dbJ2lkJ107DQoJCQkkY29sX25hbWVbJGtleV0gPSAkcm93WyduYW1l J107DQoJCQkkY29sX2NhcHRpb25bJGtleV0gPSAkcm93WydjYXB0aW9uJ107DQoJCQkkY29s X2FsdFska2V5XSA9ICRyb3dbJ2FsdCddOw0KCQkJJGNvbF9jYXRlZ29yeVska2V5XSA9ICRy b3dbJ2NhdGVnb3J5J107DQoJCQkkY29sX2RhdGVbJGtleV0gPSAkcm93WydkYXRlJ107DQoJ CQkkY29sX2V4dFska2V5XSA9ICRyb3dbJ2V4dCddOw0KCQkJJGNvbF9hdXRob3JbJGtleV0g PSAkcm93WydhdXRob3InXTsNCgkJCSRjb2xfd1ska2V5XSA9ICRyb3dbJ3cnXTsNCgkJCSRj b2xfaFska2V5XSA9ICRyb3dbJ2gnXTsNCgkJfQ0KCQkvLyBNYWtlIHVwIGFuIGFycmF5X211 bHRpc29ydCBhcmcgbGlzdCBhbmQgZXhlY3V0ZSBpdA0KCQlmb3IgKCRpZHggPSAwOyAkaWR4 IDwgY291bnQoJHBvc3RPcmRlcik7ICRpZHgrKykgew0KCQkJJHNvcnRhcmdzW10gPSAnJGNv bF8nLiRwb3N0T3JkZXJbJGlkeF1bJ2NvbCddOw0KCQkJJHNvcnRhcmdzW10gPSAkcG9zdE9y ZGVyWyRpZHhdWydzb3J0J107DQoJCX0NCgkJJHNvcnRpdCA9ICdhcnJheV9tdWx0aXNvcnQo Jy5pbXBsb2RlKCIsICIsJHNvcnRhcmdzKS4nLCAkcnMpOyc7DQoJCWV2YWwoJHNvcnRpdCk7 DQoJfQ0KDQoJLy8gSXMgZml4ZWQtb3JkZXIgb3V0cHV0IGRlc2lyZWQ/IElmIHNvLCByZS1v cmRlciB0aGUgJHJzDQoJaWYgKCRmaXhlZE9yZGVyKSB7DQoJCSRvcmRlcmVkUlMgPSBBcnJh eSgpOw0KCQkkaWdub3JlTGlzdCA9IEFycmF5KCk7DQoJCSRyZW1haW5pbmdSUyA9IEFycmF5 KCk7DQoJCS8vIFN1Y2sgb3V0IHRoZSBmaXhlZCBpdGVtcyBmaXJzdA0KCQlmb3IgKCRpZHgg PSAwOyAkaWR4IDwgY291bnQoJGZ1bGxJRExpc3QpOyAkaWR4KyspIHsNCgkJCWZvcmVhY2go JHJzIGFzICRyb3cpIHsNCgkJCQlpZiAoIiciLiRyb3dbJ2lkJ10uIiciID09ICRmdWxsSURM aXN0WyRpZHhdKSB7DQoJCQkJCSRvcmRlcmVkUlNbXSA9ICRyb3c7DQoJCQkJCSRpZ25vcmVM aXN0W10gPSAkcm93WydpZCddOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkvLyBUYWNrIG9uIHRo ZSByZW1haW5pbmcgcm93cw0KCQlmb3JlYWNoKCRycyBhcyAkcm93KSB7DQoJCQlpZiAoIWlu X2FycmF5KCRyb3dbJ2lkJ10sICRpZ25vcmVMaXN0KSkgew0KCQkJCSRyZW1haW5pbmdSU1td ID0gJHJvdzsNCgkJCX0NCgkJfQ0KCQkkcnMgPSBhcnJheV9tZXJnZSgkb3JkZXJlZFJTLCAk cmVtYWluaW5nUlMpOw0KCX0NCg0KCS8vIEhhbmRsZSB0aHVtYnNpemUNCgkkdGh1bWJXaWR0 aCA9ICR0aHVtYkhlaWdodCA9ICcnOw0KCSR0aHVtYldVbml0cyA9ICR0aHVtYkhVbml0cyA9 ICcnOw0KCWlmICgkdGh1bWJzaXplKSB7DQoJCSR0aHVtYlNpemVzID0gZG9fbGlzdCgkdGh1 bWJzaXplLCAkZGVsaW0pOw0KCQlpZiAoY291bnQoJHRodW1iU2l6ZXMpID09IDEpIHsNCgkJ CSR0aHVtYldpZHRoID0gJHRodW1iSGVpZ2h0ID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAn JywgJHRodW1iU2l6ZXNbMF0pOw0KCQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIs ICcnLCAkdGh1bWJTaXplc1swXSk7DQoJCQkkdGh1bWJXVW5pdHMgPSAkdGh1bWJIVW5pdHMg PSAoJHVuaXRzID09ICcnKSA/ICR0aHVtYldVbml0cyA6ICR1bml0czsNCgkJfSBlbHNlIHsN CgkJCSR0aHVtYldpZHRoID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAnJywgJHRodW1iU2l6 ZXNbMF0pOw0KCQkJJHRodW1iSGVpZ2h0ID0gZXJlZ19yZXBsYWNlKCJbXjAtOV0iLCAnJywg JHRodW1iU2l6ZXNbMV0pOw0KCQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIsICcn LCAkdGh1bWJTaXplc1swXSk7DQoJCQkkdGh1bWJXVW5pdHMgPSAoJHVuaXRzID09ICcnICYm ICR0aHVtYldpZHRoICE9ICcnKSA/ICR0aHVtYldVbml0cyA6ICR1bml0czsNCgkJCSR1bml0 cyA9IGVyZWdfcmVwbGFjZSgiWzAtOV0iLCAnJywgJHRodW1iU2l6ZXNbMV0pOw0KCQkJJHRo dW1iSFVuaXRzID0gKCR1bml0cyA9PSAnJyAmJiAkdGh1bWJIZWlnaHQgIT0gJycpID8gJHRo dW1iSFVuaXRzIDogJHVuaXRzOw0KCQl9DQoJfQ0KDQoJLy8gU2V0IHVwIHRoZSB0aHVtYnRl eHQgcG9zaXRpb25zDQoJJHBvc0FycmF5ID0gYXJyYXkoKTsNCgkkc2hvd29wdHMgPSBkb19s aXN0KCR0aHVtYnRleHQsICRkZWxpbSk7DQoJZm9yZWFjaCAoJHNob3dvcHRzIGFzICRpdGVt KSB7DQoJCSRzaG93cG9zID0gZG9fbGlzdCgkaXRlbSwgJHBhcmFtZGVsaW0pOw0KCQlpZiAo Y291bnQoJHNob3dwb3MpID4gMSAmJiBpbl9hcnJheSgkc2hvd3Bvc1swXSwkc2hvd0xvY3Mp KSB7DQoJCQkkcG9zQXJyYXlbJHNob3dwb3NbMF1dID0gJHNob3dwb3NbMV07DQoJCX0gZWxz ZSB7DQoJCQkkcG9zQXJyYXlbJHNob3dMb2NzWzBdXSA9ICgoY291bnQoJHNob3dwb3MpPjEp ID8gJHNob3dwb3NbMV0gOiAkc2hvd3Bvc1swXSk7DQoJCX0NCgl9DQoNCgkvLyBDb25zdHJ1 Y3QgdGhlIG91dHB1dA0KCSRmaWVsZFJFID0gJy9cPygnLmltcGxvZGUoJ3wnLCAkZmllbGRN YXApLid8dXJsKS8nOw0KCSR0aHVtYnRleHRQbGF0ZSA9ICgoJHRodW1idGV4dHdyYXApID8g JzwnIC4gJHRodW1idGV4dHdyYXAgLiAoKCR0aHVtYnRleHRjbGFzcyAhPSAiIikgPyAnIGNs YXNzPSInIC4kdGh1bWJ0ZXh0Y2xhc3MuICciJyA6ICcnKSAuICc+JyA6ICcnKSAuJHRodW1i aG9sZGVyLiAoKCR0aHVtYnRleHR3cmFwKSA/ICc8LycgLiAkdGh1bWJ0ZXh0d3JhcC4gJz4n IDogJycpOw0KCSRvdXRTdHIgPSAnJzsNCglpZigkcnMpIHsNCgkJJHRodW1idGV4dEN1cnI9 IiI7DQoJCWZvcmVhY2goJHJzIGFzICRyb3cpIHsNCgkJCSR0aGVUaHVtYiA9IGh1LiRpbWdf ZGlyLicvJyAuICRyb3dbJ2lkJ10gLiAkdGh1bWJtb2QgLiAkcm93WydleHQnXTsNCgkJCSRm dWxsID0gaHUuJGltZ19kaXIuJy8nIC4gJHJvd1snaWQnXSAuICRmdWxsbW9kIC4kcm93Wydl eHQnXTsNCgkJCWlmICgkZ3JvdXBuYW1lID09PSAiP2MiKSB7DQoJCQkJJGdycCA9ICRyb3db J2NhdGVnb3J5J107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/aWQiKSB7DQoJ CQkJJGdycCA9ICRyb3dbJ2lkJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/ YXV0aG9yIikgew0KCQkJCSRncnAgPSAkcm93WydhdXRob3InXTsNCgkJCX0gZWxzZSBpZiAo JGdyb3VwbmFtZSA9PT0gIj9kYXRlIikgew0KCQkJCSRncnAgPSAkcm93WydkYXRlJ107DQoJ CQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/YWx0Iikgew0KCQkJCSRncnAgPSAkcm93 WydhbHQnXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9jYXB0aW9uIikgew0K CQkJCSRncnAgPSAkcm93WydjYXB0aW9uJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUg PT09ICI/ZXh0Iikgew0KCQkJCSRncnAgPSAkcm93WydleHQnXTsNCgkJCX0gZWxzZSBpZiAo JGdyb3VwbmFtZSA9PT0gIj9uYW1lIikgew0KCQkJCSRncnAgPSAkcm93WyduYW1lJ107DQoJ CQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/d2lkdGgiKSB7DQoJCQkJJGdycCA9ICRy b3dbJ3cnXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9oZWlnaHQiKSB7DQoJ CQkJJGdycCA9ICRyb3dbJ2gnXTsNCgkJCX0gZWxzZSBpZiAoc3Vic3RyKCRncm91cG5hbWUs MCwxKSA9PT0gIj8iKSB7DQoJCQkJLy8gU3BsaXQgb2ZmIHRoZSBmaWVsZCBuYW1lIGZyb20g dGhlIHF1ZXN0aW9uIG1hcmsNCgkJCQkkZmllbGRuYW1lID0gc3Vic3RyKCRncm91cG5hbWUs MSk7DQoJCQkJaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskZmllbGRuYW1lXSkpIHsNCgkJCQkJ JGdycCA9ICR0aGlzYXJ0aWNsZVskZmllbGRuYW1lXTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkk Z3JwID0gJyc7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkkZ3JwID0gJGdyb3VwbmFtZTsN CgkJCX0NCg0KCQkJLy8gSGFuZGxlIGltYWdlY2FwdGlvbg0KCQkJJGNhcHRpb25Nc2cgPSAk aW1hZ2VjYXB0aW9uOw0KCQkJJG1hdGNoZXMgPSBhcnJheSgpOw0KCQkJJGN0ciA9IHByZWdf bWF0Y2hfYWxsKCRmaWVsZFJFLCAkY2FwdGlvbk1zZywgJG1hdGNoZXMsIFBSRUdfU0VUX09S REVSKTsNCgkJCWZvciAoJGlkeCA9IDA7ICRpZHggPCAkY3RyOyAkaWR4KyspIHsNCgkJCQkk ZmllbGRuYW1lID0gJG1hdGNoZXNbJGlkeF1bMV07DQoJCQkJJGtleSA9IGFycmF5X3NlYXJj aCgkZmllbGRuYW1lLCAkZmllbGRNYXApOw0KCQkJCWlmICgka2V5KSB7DQoJCQkJCSRyZXAg PSAkcm93WyRrZXldOw0KCQkJCX0gZWxzZSBpZiAoJGZpZWxkbmFtZSA9PSAidXJsIikgew0K CQkJCQkkcmVwID0gJGZ1bGw7DQoJCQkJfSBlbHNlIHsNCgkJCQkJJHJlcCA9ICRmaWVsZG5h bWU7DQoJCQkJfQ0KCQkJCSRjYXB0aW9uTXNnID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGlk eF1bMF0sICRyZXAsICRjYXB0aW9uTXNnKTsNCgkJCX0NCg0KCQkJLy8gSGFuZGxlIHRodW1i dGV4dA0KCQkJJHRodW1idGV4dEFycmF5ID0gYXJyYXlfY29tYmluZSgkc2hvd0xvY3MsIGFy cmF5KCIiLCIiLCIiLCIiLCIiKSk7IC8vIEluaXRpYWxpc2UgZXZlcnkgZWxlbWVudA0KCQkJ Zm9yZWFjaCAoJHBvc0FycmF5IGFzICRwb3MgPT4gJHRleHQpIHsNCgkJCQkkbWF0Y2hlcyA9 IGFycmF5KCk7DQoJCQkJJGN0ciA9IHByZWdfbWF0Y2hfYWxsKCRmaWVsZFJFLCAkdGV4dCwg JG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKTsNCgkJCQlmb3IgKCRpZHggPSAwOyAkaWR4IDwg JGN0cjsgJGlkeCsrKSB7DQoJCQkJCSRmaWVsZG5hbWUgPSAkbWF0Y2hlc1skaWR4XVsxXTsN CgkJCQkJJGtleSA9IGFycmF5X3NlYXJjaCgkZmllbGRuYW1lLCAkZmllbGRNYXApOw0KCQkJ CQlpZiAoJGtleSkgew0KCQkJCQkJJHJlcCA9ICRyb3dbJGtleV07DQoJCQkJCX0gZWxzZSBp ZiAoJGZpZWxkbmFtZSA9PSAidXJsIikgew0KCQkJCQkJJHJlcCA9ICRmdWxsOw0KCQkJCQl9 IGVsc2Ugew0KCQkJCQkJJHJlcCA9ICRmaWVsZG5hbWU7DQoJCQkJCX0NCgkJCQkJJHRleHQg PSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1skaWR4XVswXSwgJHJlcCwgJHRleHQpOw0KCQkJCX0N CgkJCQkkdGh1bWJ0ZXh0QXJyYXlbJHBvc10gPSAkdGV4dDsNCgkJCX0NCg0KCQkJLy8gQ29u c3RydWN0IHRoZSBsaW5rIGFuZCBwdXQgdGh1bWJ0ZXh0IGluIHRoZSBhcHByb3ByaWF0ZSBw b3NpdGlvbnMNCgkJCSRvdXRTdHIgLj0gKCR0aHVtYnRleHRBcnJheVsib25jaGFuZ2UiXSAm JiAkdGh1bWJ0ZXh0QXJyYXlbIm9uY2hhbmdlIl0gIT0gJHRodW1idGV4dEN1cnIpID8gc3Ry X3JlcGxhY2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0 ZXh0QXJyYXlbIm9uY2hhbmdlIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJyc7DQoJCQkkb3V0 U3RyIC49ICgkd3JhcHRhZyAhPSAiIikgPyAnPCcgLiR3cmFwdGFnLiAoKCRjZWxsY2xhc3Mg IT0gIiIpID8gJyBjbGFzcz0iJyAuJGNlbGxjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJyc7 DQoJCQkkb3V0U3RyIC49ICgkdGh1bWJ0ZXh0QXJyYXlbImFib3ZlIl0pID8gc3RyX3JlcGxh Y2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJy YXlbImFib3ZlIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJyc7DQoJCQkkb3V0U3RyIC49ICc8 YSBocmVmPSInLiRmdWxsLiciIHJlbD0iJyAuJHRyaWdnZXIuJGdycC4gJyIgdGl0bGU9Iicg LiRjYXB0aW9uTXNnLiAnIicgLigoJGxpbmtjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4k bGlua2NsYXNzLiAnIicgOiAnJykuICc+JyAuKCgkdGh1bWJ0ZXh0QXJyYXlbImJlZm9yZSJd KSA/IHN0cl9yZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUo JHRodW1idGV4dEFycmF5WyJiZWZvcmUiXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJykuICc8 aW1nIHNyYz0iJyAuJHRoZVRodW1iLiAnIiBhbHQ9IicgLiRyb3dbJ2FsdCddLiAnIicgLiAo KCRpbWdjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kaW1nY2xhc3MuICciJyA6ICcnKSAu ICgoJHRodW1iV2lkdGgpID8gJyB3aWR0aD0iJyAuICR0aHVtYldpZHRoLiR0aHVtYldVbml0 cy4gJyInIDogJycpIC4gKCgkdGh1bWJIZWlnaHQpID8gJyBoZWlnaHQ9IicgLiAkdGh1bWJI ZWlnaHQuJHRodW1iSFVuaXRzLiAnIicgOiAnJykgLiAnIC8+JyAuKCgkdGh1bWJ0ZXh0QXJy YXlbImFmdGVyIl0pID8gc3RyX3JlcGxhY2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNo YXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJyYXlbImFmdGVyIl0pLCAkdGh1bWJ0ZXh0UGxhdGUp IDogJycpLiAnPC9hPicubjsNCgkJCSRvdXRTdHIgLj0gKCR0aHVtYnRleHRBcnJheVsiYmVs b3ciXSkgPyBzdHJfcmVwbGFjZSgkdGh1bWJob2xkZXIsIGh0bWxzcGVjaWFsY2hhcnNfZGVj b2RlKCR0aHVtYnRleHRBcnJheVsiYmVsb3ciXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJzsN CgkJCSRvdXRTdHIgLj0gKCR3cmFwdGFnICE9ICIiKSA/ICc8LycgLiR3cmFwdGFnLiAnPicg OiAnJzsNCgkJCSRvdXRTdHIgLj0gbjsNCgkJCSR0aHVtYnRleHRDdXJyID0gJHRodW1idGV4 dEFycmF5WyJvbmNoYW5nZSJdOw0KCQl9DQoNCgkJLy8gQWRkIHRoZSBwYWdpbmcgZmVhdHVy ZXMgaWYgcmVxdWlyZWQNCgkJaWYgKCgkbGltaXQgPiAwKSAmJiAkc2hvd3BhZ2VsaW5rcykg ew0KCQkJJG5leHQgPSAoJG51bVBhZ2VzID4gMSAmJiAkdGh1bWJwYWdlICE9ICRudW1QYWdl cyk7DQoJCQkkcHJldiA9ICgkbnVtUGFnZXMgPiAxICYmICR0aHVtYnBhZ2UgPiAxKTsNCg0K CQkJLy8gUmVwbGFjZSBhbnkgcGFnaW5nIGluZm8gaW4gdGhlIHF1ZXJ5IHN0cmluZw0KCQkJ JHByZXZQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2Fs bElELCAkdGh1bWJwYWdlLTEpOw0KCQkJJG5leHRQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0 ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAkdGh1bWJwYWdlKzEpOw0KDQoJCQkkb3V0 U3RyIC49ICgkbmF2d3JhcHRhZyAhPSAiIikgPyAnPCcgLiRuYXZ3cmFwdGFnLiAoKCRuYXZj bGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kbmF2Y2xhc3MuICciJyA6ICcnKSAuICc+JyA6 ICcnOw0KCQkJJG91dFN0ciAuPSAoJHByZXYpID8gJzxhJyAuICgoJHByZXZjbGFzcyAhPSAi IikgPyAnIGNsYXNzPSInIC4kcHJldmNsYXNzLiAnIicgOiAnJykgLiAnIGhyZWY9IicgLiRw cmV2UGFnZS4gJyI+JyAuJHByZXZsYWJlbC4gJzwvYT4nLm4gOiAnJzsNCgkJCSRvdXRTdHIg Lj0gKCRuZXh0KSA/ICc8YScgLiAoKCRuZXh0Y2xhc3MgIT0gIiIpID8gJyBjbGFzcz0iJyAu JG5leHRjbGFzcy4gJyInIDogJycpIC4gJyBocmVmPSInIC4kbmV4dFBhZ2UuICciPicgLiRu ZXh0bGFiZWwuICc8L2E+Jy5uIDogJyc7DQoJCQkkb3V0U3RyIC49ICgkbmF2d3JhcHRhZyAh PSAiIikgPyAnPC8nIC4kbmF2d3JhcHRhZy4gJz4nIDogJyc7DQoJCQkkb3V0U3RyIC49IG47 DQoJCX0NCgl9DQoNCglyZXR1cm4gJG91dFN0cjsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtz OjQ6ImhlbHAiO3M6NDMzMjI6Igk8cD48ZGl2IGlkPSJzbWRfaGVscCI+PC9wPgoKCTxoMSBp ZD0idG9wIj5zbWRfc2xpbWJveDwvaDE+CgoJPGgyIGlkPSJjb250ZW50cyI+Q29udGVudHM8 L2gyPgoKCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2ZlYXR1cmVzIj5GZWF0dXJlczwvYT48L2xp PgoJCTxsaT48YSBocmVmPSIjYXV0aG9yIj5BdXRob3I8L2E+PC9saT4KCQk8bGk+PGEgaHJl Zj0iI2luc3RhbGwiPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9hPjwvbGk+CgkJ PGxpPjxhIGhyZWY9IiN1c2FnZSI+VGFnIHVzYWdlPC9hPgoJPHVsPgoJCTxsaT48YSBocmVm PSIjY2hhbmdlcyI+Q2hhbmdlcyBmcm9tIHByZXZpb3VzIHZlcnNpb248L2E+PC9saT4KCQk8 bGk+PGEgaHJlZj0iI2F0dHMiPkF0dHJpYnV0ZXM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0i I2ZpZWxkcyI+QXJ0aWNsZSBmaWVsZCBjb2RlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIj aW1hZ2VfZmllbGRzIj5JbWFnZSBmaWVsZCBjb2RlczwvYT48L2xpPgoJPC91bD48L2xpPgoJ CTxsaT48YSBocmVmPSIjZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhy ZWY9IiNzdHlsZSI+U3R5bGluZzwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjY2hhbmdlbG9n Ij5DaGFuZ2Vsb2c8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2NyZWRpdHMiPkNyZWRpdHM8 L2E+PC9saT4KCTwvdWw+CgoJPGgyIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gyPgoKCTx1 bD4KCQk8bGk+R2VuZXJhdGVzIGEgbGlzdCBvZiB0aHVtYm5haWxzIHRoYXQgY2FuIGJlIHN0 eWxlZCBhbnkgd2F5IHlvdSBsaWtlPC9saT4KCQk8bGk+RmxleGlibGUgd2F5IG9mIGV4dHJh Y3RpbmcgaW1hZ2VzIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGRh dGFiYXNlOyBhcmJpdHJhcnkgaW5jbHVzaW9uL2V4Y2x1c2lvbiBvZiBjYXRlZ29yaWVzIG9y IGltYWdlIElEczwvbGk+CgkJPGxpPkxpc3RzIG9mIGNhdGVnb3JpZXMgYW5kIElEcyBjYW4g YmUgcHVsbGVkIGZyb20gYW55IGZpZWxkIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGluY2x1 ZGluZyBjdXN0b20gZmllbGRzPC9saT4KCQk8bGk+U3VwcG9ydHMgZ2x6X2N1c3RvbV9maWVs ZHMgZm9yIGV2ZW4gZ3JlYXRlciBmbGV4aWJpbGl0eSAoY3VycmVudGx5IHJlcXVpcmVzIGEg c21hbGwgbW9kIHRvIHB1Ymxpc2gucGhwKTwvbGk+CgkJPGxpPlN1YmNhdGVnb3JpZXM6IHNw ZWNpZnkgYSBwYXJlbnQgYW5kIGFsbCBjaGlsZCBjYXRlZ29yaWVzIGFyZSBhdXRvbWF0aWNh bGx5IGluY2x1ZGVkPC9saT4KCQk8bGk+U2hvdyBhc3NvY2lhdGVkIGltYWdlIHRleHQgaW4g dmFyaW91cyBsb2NhdGlvbnMgYXJvdW5kIHRoZSB0aHVtYm5haWxzPC9saT4KCQk8bGk+UGFn aW5nIGFuZCBtdWx0aXBsZSBnYWxsZXJpZXMgcGVyIHBhZ2U8L2xpPgoJCTxsaT5TdXBwb3J0 cyBTbGltYm94LCBMaWdodGJveCwgTGl0ZWJveCwgTW9vbmJveCwgVGhpY2tib3ggYW5kIHBl cmhhcHMgc29tZSBtb3JlIGJlc2lkZXMuIEZvciBhIHdpZGVyIHJhbmdlLCBzZWUgPGEgaHJl Zj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzk1Ny9zbWRfZ2FsbGVyeSI+c21k X2dhbGxlcnk8L2E+PC9saT4KCTwvdWw+CgoJPGgyIGlkPSJhdXRob3IiPkF1dGhvcjwvaDI+ CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbW1lbnRGb3JtIj5TdGVm IERhd3NvbjwvYT4uIEZvciBvdGhlciBzb2Z0d2FyZSBieSBtZSwgb3IgdG8gbWFrZSBhIGRv bmF0aW9uLCBzZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29m dHdhcmUgcGFnZTwvYT4uPC9wPgoKCTxwPk9yaWdpbmFsbHkgYmFzZWQgb24gPGEgaHJlZj0i aHR0cDovL3d3dy5kaWdpdGFsaWEuYmUvc29mdHdhcmUvc2xpbWJveCI+c2xpbWJveCwgYSBs aWdodHdlaWdodCBMaWdodGJveCBjbG9uZTwvYT4gYnkgQ2hyaXN0b3BoZSBCZXlscy4gRm9y IG1vcmUgaW5mbyBvciB0cm91Ymxlc2hvb3Rpbmcgb24gdGhlIGxpZ2h0Ym94IHNpZGUgb2Yg dGhpbmdzIChhcyBvcHBvc2VkIHRvIHRoZSB0aHVtYm5haWwgZ2VuZXJhdGlvbiBzaWRlIG9m IHRoaW5ncykgPGEgaHJlZj0iaHR0cDovL3d3dy5mcmVld2Vic2Zhcm1zLmNvbS9mb3J1bXMv dmlld3RvcGljLnBocD9waWQ9MzMxNiNwMzMxNiI+c2VlIENocmlzdG9waGUmIzgyMTc7cyBm b3J1bTwvYT4uPC9wPgoKCTxoMiBpZD0iaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0 YWxsYXRpb248L2gyPgoKCTxwIGNsYXNzPSJyZXF1aXJlZCI+UmVxdWlyZXMgPGEgaHJlZj0i aHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfbGliX3YwLjMyLnR4dCI+c21k X2xpYiB2MC4zMjwvYT4gdG8gYmUgaW5zdGFsbGVkIGFuZCBhY3RpdmF0ZWQuPC9wPgoKCTxw PkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRw YXR0ZXJuLm9yZy9wbHVnaW5zLzc0MS9zbWRfc2xpbWJveCI+dGV4dHBhdHRlcm4ub3JnPC9h Piwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUg cGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5U WFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxl IHRoZSBwbHVnaW4uPC9wPgoKCTxwPllvdSB3aWxsIGFsc28gbmVlZCBhIGphdmFzY3JpcHQg bGlicmFyeSB0byBwZXJmb3JtIHRoZSBsaWdodGJveCBlZmZlY3QsIHdoaWNoIHlvdSBtdXN0 IGxvYWQgb24geW91ciBwYWdlIGFzIHBlciB0aGUgaW5zdHJ1Y3Rpb25zIGZvciB0aGF0IGxp YnJhcnkuIEFsdGhvdWdoIHRoZSBleGFtcGxlcyBpbiB0aGlzIHBhZ2UgYXJlIGZvciBTbGlt Ym94LCB0aGUgcGx1Z2luIHdpbGwgd29yayB3aXRoIGEgbnVtYmVyIG9mIGZyZWVseS1hdmFp bGFibGUgamF2YXNjcmlwdCBsaWJyYXJpZXMgJiM4MjEyOyBvZnRlbiB3aXRob3V0IG1vZGlm aWNhdGlvbi4gU29tZSBsaWJyYXJpZXMgKGUuZy4gVGhpY2tib3gpIHNpbXBseSByZXF1aXJl IGFuIGFkZGl0aW9uYWwgY2xhc3MgdG8gYmUgc2V0IG9uIHRoZSBpbWFnZSB0YWdzLjwvcD4K Cgk8cD5WaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92 aWV3dG9waWMucGhwP2lkPTIwNzE0Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8g b3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2lu LjwvcD4KCgk8cD5UbyByZW1vdmUgdGhlIHBsdWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBmcm9t IHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyB0YWIgYW5kIHJlbW92ZSB5b3VyIHRoaXJkIHBhcnR5 IGxpYnJhcmllcy48L3A+CgoJPGgyIGlkPSJ1c2FnZSI+VXNhZ2U8L2gyPgoKCTxwPlRoZSBw bHVnaW4gb3B0aW9ucyBnb3Zlcm4gd2hpY2ggdGh1bWJuYWlscyB0byB1c2UgYW5kIGhvdyB0 aGV5IGFyZSBkaXNwbGF5ZWQuIE9uY2UgYSB0aHVtYiBpcyBjbGlja2VkLCBjb250cm9sIGlz IGhhbmRlZCBvdmVyIHRvIG1vb3Rvb2xzL2pRdWVyeS9wcm90b3R5cGUgdG8gZG8gdGhlIGZh bmN5IHdvcmsuIFRoZXJlZm9yZSwgaWYgeW91IHdpc2ggdG8gY29uZmlndXJlIHRoZSBsb29r IG9mIHRoZSAmIzgyMjA7bGlnaHRib3gmIzgyMjE7IHBhcnQsIHlvdSBuZWVkIHRvIGVkaXQg aXRzIGphdmFzY3JpcHQgYW5kL29yIGFzc29jaWF0ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPkNT Uzwvc3Bhbj4uPC9wPgoKCTxwPkJlZm9yZSB5b3UgY2FuIHVzZSBzbWRfc2xpbWJveCB5b3Ug aGF2ZSB0byBlbnN1cmUgdGhhdCB0aGUgcGFnZSBjYW4gcmVhZCB0aGUgZXh0ZXJuYWwgbGli cmFyeSBmaWxlcy4gWW91IGRvIHRoaXMgYnkgcHV0dGluZyA8Y29kZT4mbHQ7c2NyaXB0Jmd0 OzwvY29kZT4gYW5kIDxjb2RlPiZsdDtsaW5rJmd0OzwvY29kZT4gdGFncyBhcyB1c3VhbCBp biB5b3VyIHBhZ2UgPGNvZGU+Jmx0O2hlYWQmZ3Q7PC9jb2RlPi48L3A+CgoJPGgzIGlkPSJj aGFuZ2VzIj5DaGFuZ2VzIGZyb20gcHJldmlvdXMgdmVyc2lvbjwvaDM+CgoJPHA+RXhwZXJp ZW5jZWQgdXNlcnMgb2Ygc21kX3NsaW1ib3gsIHBsZWFzZSBub3RlIHRoZXNlIGltcG9ydGFu dCBjaGFuZ2VzIHRvIHRoZSBwbHVnaW46PC9wPgoKCTx1bD4KCQk8bGk+QWZ0ZXIgb3Zlcndo ZWxtaW5nIHN1cHBvcnQgZnJvbSB0aGUgcG9sbCwgPGNvZGU+c21kX3NsaW1ib3hfaW5jPC9j b2RlPiBpcyBub3cgcmVtb3ZlZC4gSWYgeW91IHVzZSBpdCwgYSB3YXJuaW5nIHdpbGwgYmUg aXNzdWVkPC9saT4KCQk8bGk+QWNjb3JkaW5nbHksIDxjb2RlPmxpYmNoZWNrPC9jb2RlPiBo YXMgYmVlbiByZW1vdmVkPC9saT4KCQk8bGk+PGNvZGU+Y2F0bGFiZWw8L2NvZGU+IGhhcyBi ZWVuIHJlbW92ZWQuIFdpdGggbW9yZSA8Y29kZT4/PC9jb2RlPiBhbmQgPGNvZGU+ITwvY29k ZT4gPGEgaHJlZj0iI2ZpZWxkcyI+YXJ0aWNsZSBmaWVsZCBjb2RlczwvYT4gbm93IGF2YWls YWJsZSwgYW5kIHRoZSBhYmlsaXR5IHRvIGNvbWJpbmUgdGhlbSAoZS5nLiA/cy0/YykgeW91 IGNhbiBub3cgcGVyZm9ybSB0aGUgc2FtZSBmdW5jdGlvbiBhcyA8Y29kZT5jYXRsYWJlbDwv Y29kZT4gYnkgdXNpbmcgPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7YXJ0aWNsZS0/aWQmcXVvdDs8 L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+c3ViY2F0czwvY29kZT4gaW1wcm92ZWQuIE5vdyB0 YWtlcyBhbiBpbnRlZ2VyICYjODIyMDtsZXZlbCYjODIyMTsgdGhhdCBzcGVjaWZpZXMgaG93 IGZhciBkb3duIHRoZSB0cmVlIHRvIGdvLiBGb3IgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGJl Zm9yZSwgdXNlIDxjb2RlPnN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7PC9jb2RlPjwvbGk+CgkJ PGxpPnNob3dhbHQvc2hvd2NhcHRpb24vYWx0Y2xhc3MvY2FwdGlvbmNsYXNzL3RleHRwb3Mg aGF2ZSBiZWVuIHJlbW92ZWQuIFVzZSA8Y29kZT50aHVtYnRleHQ8L2NvZGU+LCA8Y29kZT50 aHVtYnRleHR3cmFwPC9jb2RlPiBhbmQgPGNvZGU+dGh1bWJ0ZXh0Y2xhc3M8L2NvZGU+IGlu c3RlYWQ8L2xpPgoJCTxsaT48Y29kZT5vcmRlcmJ5PC9jb2RlPiBpcyBub3cgY2FsbGVkIDxj b2RlPnNvcnQ8L2NvZGU+IGluIGxpbmUgd2l0aCBvdGhlciA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiB0YWdzLCBhbmQgdGFrZXMgYSBzcGFjZS1kZWxpbWl0ZWQgZGlyZWN0aW9u IG1vZGlmaWVyIGluc3RlYWQgb2YgdGhlIG9sZCBjb2xvbiBkZWxpbWl0ZXIuIDxjb2RlPm9y ZGVyYnk8L2NvZGU+IGlzIHN0aWxsIHN1cHBvcnRlZCBmb3Igbm93IGFuZCB3aWxsIGJlIGNv bnZlcnRlZCB0byB0aGUgbmV3IDxjb2RlPnNvcnQ8L2NvZGU+IHRhZyBidXQgd2lsbCBpc3N1 ZSBhIHdhcm5pbmcgaW4gcHJvZHVjdGlvbi9kZWJ1ZyBtb2RlczwvbGk+CgkJPGxpPjxjb2Rl PnRodW1iPC9jb2RlPiBpcyBub3cgZW5oYW5jZWQgdG8gYWxsb3cgeW91IHRvIHNwZWNpZnkg d2hldGhlciB0aGUgZnVsbC1zaXplIGltYWdlIGFuZC9vciB0aGUgdGh1bWJuYWlsIGFyZSBk aXNwbGF5ZWQgdXNpbmcgdGhlICYjODIxNjt0JiM4MjE3OyBpbWFnZSBvciBub3QuIFNvIHlv dSBjYW4gbm93IHN3YXAgdGh1bWJuYWlsIGFuZCBmdWxsLXNpemUgaWYgeW91IHdpc2gsIG9y IG1ha2UgdGhlbSBzaG93IGlkZW50aWNhbCBpbWFnZXM8L2xpPgoJCTxsaT48Y29kZT50cmln Z2VyPC9jb2RlPiBhZGRlZC4gVGhpcyBkZWZhdWx0cyB0byAmIzgyMjA7bGlnaHRib3gtJiM4 MjIxOyB3aGljaCBpcyB3aGF0IHNsaW1ib3ggdXNlcyBpbiB0aGUgPGNvZGU+cmVsPC9jb2Rl PiBhdHRyaWJ1dGUgb2YgdGhlIGFuY2hvcnMuIE90aGVyIGxpYnJhcmllcyBtYXkgdXNlIG90 aGVyIHdvcmRzIHRvIGlkZW50aWZ5IHRoZW1zZWx2ZXMsIHNvIHRoaXMgYWxsb3dzIHlvdSB0 byBtb2RpZnkgdGhlIHN0cmluZyB0byBzdWl0PC9saT4KCQk8bGk+PGNvZGU+ZGVsaW08L2Nv ZGU+IGFkZGVkLiBJZiB5b3UgZG9uJiM4MjE3O3QgbGlrZSB1c2luZyBhIGNvbW1hIGFzIGEg ZGVsaW1pdGVyLCBjaGFuZ2UgaXQuIFNldCA8Y29kZT5kZWxpbT0mcXVvdDt8JnF1b3Q7PC9j b2RlPiBpZiB1c2luZyBjaGVja2JveGVzIGFuZCBtdWx0aS1zZWxlY3RzIHdpdGggZ2x6X2N1 c3RvbV9maWVsZHM8L2xpPgoJCTxsaT48Y29kZT5uYXZ3cmFwdGFnPC9jb2RlPiBhZGRlZCBz byB0aGUgbmF2aWdhdGlvbiBibG9jayBjYW4gYmUgd3JhcHBlZCBpbiBhIGRpZmZlcmVudCB0 YWcgdG8gZWFjaCBpbWFnZTwvbGk+CgkJPGxpPjxjb2RlPmxpbmtjbGFzczwvY29kZT4gYWRk ZWQgc28geW91IGNhbiBzcGVjaWZ5IGEgc2VwYXJhdGUgY2xhc3MgZm9yIHRoZSBpbWFnZSBh bmNob3JzIGlmIHlvdSB3aXNoPC9saT4KCTwvdWw+CgoJPGgzIGNsYXNzPSJhdHRzICIgaWQ9 ImF0dHMiPkF0dHJpYnV0ZXM8L2gzPgoKCTxwPldpdGhvdXQgYW55IG9wdGlvbnMgdGhlIHBs dWdpbiBkaXNwbGF5cyBldmVyeSBpbWFnZSBpbiB5b3VyIGVudGlyZSBjb2xsZWN0aW9uIGFu ZCB3b24mIzgyMTc7dCBsb29rIHZlcnkgcHJldHR5ICh0aG91Z2ggeW91IGNhbiBoZWxwIGEg Yml0IGJ5IHN0YXJ0aW5nIHdpdGggdGhlIDxhIGhyZWY9IiNzdHlsZSI+PHNwYW4gY2xhc3M9 ImNhcHMiPkNTUzwvc3Bhbj48L2E+KS4gVGhlIGZvbGxvd2luZyBvcHRpb25zIHRhbWUgdGhl IHBsdWdpbiBhIGxpdHRsZTo8L3A+CgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC1uYW1lIj5jYXRlZ29yeTwvc3Bhbj4gOiBhIGxpc3Qgb2YgaW1hZ2UgY2F0 ZWdvcmllcy4gQnkgZGVmYXVsdCB0aGUgbGlzdCBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVk IGJ1dCB0aGlzIGNhbiBiZSBjaGFuZ2VkIHdpdGggdGhlIDxjb2RlPmRlbGltPC9jb2RlPiBv cHRpb24uIFRoaXMgYXR0cmlidXRlIG1heSB0YWtlIGFueSBvZiB0aGUgc3BlY2lhbCA8YSBo cmVmPSIjZmllbGRzIj5maWVsZCBjb2RlczwvYT4gYnkgZ2l2aW5nIGl0cyBuYW1lIGFmdGVy IGEgPGNvZGU+PzwvY29kZT4gKHRvIGluY2x1ZGUgdGhhdCBmaWVsZCkgb3IgPGNvZGU+ITwv Y29kZT4gKHRvIGV4Y2x1ZGUgdGhhdCBmaWVsZCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPmltYWdlaWQ8L3NwYW4+IDogYSBsaXN0IG9mIGltYWdlIElEcy4gVGFrZXMg ZXhhY3RseSB0aGUgc2FtZSBzeW50YXggYXMgdGhlIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiBh dHRyaWJ1dGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnN1YmNhdHM8L3Nw YW4+IDogaG93IGZhciAmIzgyMTY7ZG93biYjODIxNzsgdG8gdHJhdmVyc2UgaW1hZ2Ugc3Vi LWNhdGVnb3JpZXMuIFRha2VzIGFuIGludGVnZXIgdmFsdWUgb3IgJiM4MjE2O2FsbCYjODIx NzsuIDAgKHRoZSBkZWZhdWx0KSBtZWFucyBubyBjaGlsZCBjYXRlZ29yaWVzOyAxIHVzZXMg dGhlIG1haW4gY2F0ZWdvcmllcyBhbmQgdGhlIGZpcnN0IGxldmVsIG9mIGNoaWxkcmVuOyAy IHVzZXMgdGhlIG1haW4gY2F0ZWdvcmllcyBhbmQgdXAgdG8gdHdvIGNoaWxkIHN1Yi1jYXRl Z29yaWVzOyBhbmQgc28gb248L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmlt YWdlY2FwdGlvbjwvc3Bhbj4gOiB0aGUgdGV4dCB0byBkaXNwbGF5IHVuZGVyIHRoZSBsYXJn ZSBsaWdodGJveCBpbWFnZS4gSXQgY2FuIGJlIGFueSBmaXhlZCBzdHJpbmcgKHJhdGhlciBw b2ludGxlc3MhKSBvciBhIGNvbWJpbmF0aW9uIG9mIGZpeGVkIHRleHQgYW5kIDxhIGhyZWY9 IiNpbWFnZV9maWVsZHMiPmltYWdlIGZpZWxkIGNvZGVzPC9hPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+dGh1bWI8L3NwYW4+IDogaWYgeW91IHdpc2ggdGhlIGZ1bGxz aXplIGltYWdlcyBkaXNwbGF5ZWQgaW4gdGhlIGxpZ2h0Ym94IHRvIGJlIHRoZSB0aHVtYm5h aWxzLCBvciBpZiB5b3Ugd2FudCB0aGUgdGh1bWJuYWlsIGdhbGxlcnkgdG8gdXNlIHRoZSBm dWxsc2l6ZSBpbWFnZXMsIHNwZWNpZnkgaXQgd2l0aCB0aGlzIGF0dHJpYnV0ZS4gVXNlIDxj b2RlPnRodW1iPSZxdW90OzEmcXVvdDs8L2NvZGU+IHRvIHNwZWNpZnkgdGhhdCBib3RoIGZ1 bGxzaXplIGltYWdlIGFuZCB0aHVtYm5haWwgZGlzcGxheSB0aGUgJiM4MjE2O3QmIzgyMTc7 ICh0aHVtYm5haWwpIGltYWdlLiBDb252ZXJzZWx5LCB1c2UgPGNvZGU+dGh1bWI9JnF1b3Q7 MCZxdW90OzwvY29kZT4gdG8gc3BlY2lmeSB0aGF0IGJvdGggZnVsbHNpemUgYW5kIHRodW1i bmFpbHMgdXNlIHRoZSBmdWxsIHNpemUgaW1hZ2VzLiBZb3UgY2FuIGFsc28gY2hvb3NlIG9u ZSBvciB0aGUgb3RoZXIgYnkgZ2l2aW5nIHRoaXMgYXR0cmlidXRlIHR3byBudW1iZXJzIHNl cGFyYXRlZCBieSA8Y29kZT5wYXJhbWRlbGltPC9jb2RlPiAod2hpY2ggZGVmYXVsdHMgdG8g YSBjb2xvbikuPGRpdiBjbGFzcz0iYnJlYWsiPkZvciAmIzgyMTY7bm9ybWFsJiM4MjE3OyBv cGVyYXRpb24gJiM4MjEyOyBpLmUuIGZ1bGxzaXplIGltYWdlIGlzIGZ1bGwgc2l6ZSwgdGh1 bWJuYWlsIGlzICB0aHVtYiBzaXplZCAmIzgyMTI7IHNwZWNpZnkgPGNvZGU+dGh1bWI9JnF1 b3Q7MDoxJnF1b3Q7PC9jb2RlPi4gVG8gcmV2ZXJzZSB0aGlzLCB1c2UgPGNvZGU+dGh1bWI9 JnF1b3Q7MTowJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IDxjb2RlPjE6MTwvY29kZT4gYW5k IDxjb2RlPjA6MDwvY29kZT4gYWxzbyB3b3JrIHRvIHNldCBib3RoIGltYWdlcyB0byB0aGUg c2FtZSBzaXplIGlmIHlvdSBwcmVmZXIgdGhhdCBzeW50YXggb3ZlciB1c2luZyBhIHNpbmds ZSBkaWdpdDwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGltaXQ8 L3NwYW4+IDogdGhlIG51bWJlciBvZiBpbWFnZSB0aHVtYm5haWxzIHRvIHNob3cgcGVyIHBh Z2UuIDAgKG9yIG9taXR0ZWQpIG1lYW5zIGVzc2VudGlhbGx5IHVubGltaXRlZDwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bWF4bGltaXQ8L3NwYW4+IDogdGhlIGFic29s dXRlIG1heGltdW0gbnVtYmVyIG9mIGltYWdlcyB0byBwdWxsIGZyb20gdGhlIGRhdGFiYXNl LiAwIChvciBvbWl0dGVkKSBtZWFucyBlc3NlbnRpYWxseSB1bmxpbWl0ZWQ8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnNvcnQ8L3NwYW4+IDogYSBsaXN0IG9mIHdheXMg dG8gb3JkZXIgdGhlIHJlc3VsdHM7IGJ5IGRlZmF1bHQgaXQgaXMgYnkgY2F0ZWdvcnkuIFNw ZWNpZnkgdGhlIHNvcnQgb3JkZXIgYnkgYWRkaW5nIDxjb2RlPmFzYzwvY29kZT4gb3IgPGNv ZGU+ZGVzYzwvY29kZT4gdG8gYW55IHZhbHVlLCBlLmcuIDxjb2RlPnNvcnQ9JnF1b3Q7Y2F0 ZWdvcnksIGRhdGUgZGVzYyZxdW90OzwvY29kZT4gd291bGQgc29ydCBieSBjYXRlZ29yeSBm aXJzdCwgdGhlbiBkZXNjZW5kaW5nIGRhdGUuIFRha2VzIGFueSBvZiB0aGUgPGEgaHJlZj0i I2ltYWdlX2ZpZWxkcyI+aW1hZ2UgZmllbGQgY29kZXM8L2E+IHBsdXMgdHdvIHNwZWNpYWwg Y29kZXM6PGRpdiBjbGFzcz0iYnJlYWsiPjxjb2RlPmZpeGVkPC9jb2RlPiBmb3JjZXMgdGh1 bWJzIHRvIGJlIG91dHB1dCBpbiB0aGUgb3JkZXIgZ2l2ZW4gaW4gPGNvZGU+aW1hZ2VpZDwv Y29kZT4uPC9kaXY+PGRpdiBjbGFzcz0iYnJlYWsiPjxjb2RlPnJhbmRvbTwvY29kZT4gYWN0 cyBzbGlnaHRseSBkaWZmZXJlbnRseSBmcm9tIHRoZSBvdGhlcnM6IGlmIGl0IGFwcGVhcnMg YXMgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QsIHJhbmRvbSBpbWFnZXMgd2lsbCBiZSBw dWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIHRoZXkgd2lsbCB0aGVuIGJlIHNvcnRlZCBh Y2NvcmRpbmcgdG8gdGhlIG9wdGlvbnMgbGlzdGVkIGFmdGVyIGl0LiBIb3dldmVyLCBpZiBp dCBhcHBlYXJzIGFueXdoZXJlIGVsc2UgaW4gdGhlIGxpc3QsIGFueSBzb3J0IGl0ZW1zIGJl Zm9yZSBpdCB3aWxsIGRldGVybWluZSB0aGUgb3JkZXIgb2YgZGF0YSBwdWxsZWQgZnJvbSB0 aGUgZGF0YWJhc2UsIGFuZCB0aGUgcmVzdWx0cyB3aWxsIDxlbT50aGVuPC9lbT4gYmUgb3Jk ZXJlZCByYW5kb21seSAoaW4gdGhhdCBjYXNlLCBhbnkgaXRlbXMgbGlzdGVkIGFmdGVyIDxj b2RlPnJhbmRvbTwvY29kZT4gd2lsbCBiZSBpZ25vcmVkLCB0aG91Z2ggPGNvZGU+Zml4ZWQ8 L2NvZGU+IGlzIHN0aWxsIGhvbm91cmVkKS4gU2VlIDxhIGhyZWY9IiNlZzIiPmV4YW1wbGUg MjwvYT4gZm9yIG1vcmU8L2Rpdj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi PnRyaWdnZXI8L3NwYW4+IDogaW4gb3JkZXIgdG8gaW5kaWNhdGUgdG8gdGhlIGphdmFzY3Jp cHQgbGlicmFyeSB0aGF0IGltYWdlcyBhcmUgdG8gYmUgJiM4MjIwO2xpZ2h0Ym94ZWQmIzgy MjE7IHRoZSAmIzgyMTY7cmVsJiM4MjE3OyBhdHRyaXV0ZSBvZiBhbmNob3IgaW1hZ2VzIGlz IG9mdGVuIHVzZWQgKHRoaWNrYm94IGlzIHRoZSBleGNlcHRpb24gYW5kIHVzZXMgaXRzIG93 biBjbGFzcykuIFNpbmNlIHRoZSBtZXRob2Qgb2YgaW5kaWNhdGluZyBob3cgdG8gbGlnaHRi b3ggYW4gaW1hZ2UgdmFyaWVzLCB0aGlzIGF0dHJpYnV0ZSBjYW4gYmUgdGFpbG9yZWQgdG8g bWF0Y2ggd2hpY2hldmVyIGphdmFzY3JpcHQgbGlicmFyeSB5b3UgYXJlIHVzaW5nIChzZWUg dGhlaXIgaW5zdHJ1Y3Rpb25zKS4gQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvICYjODIyMDts aWdodGJveC0mIzgyMjE7IHdoaWNoIHNob3VsZCBjb3ZlciBtb3N0IG1ham9yIGxpZ2h0Ym94 IGdhbGxlcnkgZWZmZWN0czwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Z3Jv dXBuYW1lPC9zcGFuPiA6IHdoZW4gbWFraW5nIG11bHRpcGxlIGdhbGxlcmllcyBvciBmb3Ig c3BlY2lhbCBiZWhhdmlvdXJzLCB0aGlzIGF0dHJpYnV0ZSBhbGxvd3MgeW91IHRvIGxvZ2lj YWxseSAmIzgyMjA7Z3JvdXAmIzgyMjE7IHRodW1ibmFpbHMuPGJyIC8+Ck9uY2UgYSB2aXNp dG9yIGNsaWNrcyBhIHRodW1ibmFpbCBhbmQgY29udHJvbCBpcyBwYXNzZWQgdG8gdGhlIGph dmFzY3JpcHQgY29kZSwgbmF2aWdhdGlvbiBpcyB2aWEgdGhlIE5leHQvUHJldiBsaW5rcy4g V2l0aG91dCBzdXBwbHlpbmcgYSA8Y29kZT5ncm91cG5hbWU8L2NvZGU+LCA8ZW0+YWxsPC9l bT4gbGlnaHRib3hhYmxlIGltYWdlcyBmcm9tIDxlbT5hbGw8L2VtPiBzbWRfc2xpbWJveCB0 YWdzIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIG5hdmlnYXRpb24uIFNvIGlmIHlvdSBoYWQg MyBzbGltYm94IHRhZ3Mgb24gdGhlIHBhZ2UsIGVhY2ggd2l0aCAyMCBpbWFnZXMgaW4gdGhl bSwgdGhlIGxpZ2h0Ym94IHdvdWxkIHNob3cgJiM4MjIwO0ltYWdlIDEgb2YgNjAmIzgyMjE7 IGFuZCBhbGxvdyB5b3UgdG8gbmF2aWdhdGUgYW1vbmcgYWxsIG9mIHRoZW0uPGRpdiBjbGFz cz0iYnJlYWsiPk9uIGFydGljbGUgbGlzdCBwYWdlcywgdGhpcyBpcyBvZnRlbiB1bmRlc2ly YWJsZSBzbyB0byBjaGFuZ2UgdGhpcyBiZWhhdmlvdXIsIGdpdmUgZWFjaCBzbGltYm94IHRh ZyBhIHVuaXF1ZSA8Y29kZT5ncm91cG5hbWU8L2NvZGU+OyB0aGF0IHdpbGwgbGltaXQgdGhl IG5hdmlnYXRpb24gb25seSB0byB0aGUgZ3JvdXAgb2YgaW1hZ2VzIGluIHRoYXQgdGFnLiA8 Y29kZT5ncm91cG5hbWU8L2NvZGU+IGNhbiBiZSBhbnkgdGV4dCB5b3UgbGlrZSAoaXQgZGVm YXVsdHMgdG8gJiM4MjIwO3NtZCYjODIyMTspLCBvciB5b3UgY2FuIHN1cHBseSBhbnkgb2Yg dGhlIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMiPmltYWdlIGZpZWxkIGNvZGVzPC9hPiB0byBz bGljZSBhbmQgZGljZSB0aGUgdGh1bWJuYWlscyBhbnkgd2F5IHlvdSBjaG9vc2UuIFNlZSA8 YSBocmVmPSIjZWc0Ij5leGFtcGxlIDQ8L2E+IGZvciBtb3JlPC9kaXY+PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5zaG93cGFnZWxpbmtzPC9zcGFuPiA6IGRpc3BsYXlz IGNsaWNrYWJsZSBuZXh0L3ByZXZpb3VzIGxpbmtzIHVuZGVyIHRoZSB0aHVtYm5haWxzLCBh bGxvd2luZyB5b3UgdG8gbmF2aWdhdGUgZnJvbSBwYWdlIHRvIHBhZ2UgYW5kIG9ubHkgc2hv dyA8Y29kZT5saW1pdDwvY29kZT4gdGh1bWJzIHBlciBwYWdlLiBJdCBpcyBvbiAoPGNvZGU+ MTwvY29kZT4pIGJ5IGRlZmF1bHQgaWYgbGltaXQgaXMgZ3JlYXRlciB0aGFuIDAuIFVzZSA8 Y29kZT5zaG93cGFnZWxpbmtzPSZxdW90OzAmcXVvdDs8L2NvZGU+IHRvIHR1cm4gaXQgb2Zm PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5nYWxsZXJ5aWQ8L3NwYW4+IDog aWYgdXNpbmcgPGNvZGU+c2hvd3BhZ2VsaW5rczwvY29kZT4sIHRoaXMgaXMgdGhlIHN0cmlu ZyB0aGF0IGlzIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIG11bHRpcGxlIHNsaW1i b3ggZ2FsbGVyaWVzIG9uIGEgc2luZ2xlIHBhZ2UuIEl0IGFsbG93cyBwYWdpbmcgdG8gYmUg Y29udHJvbGxlZCBvbiBhIHBlci1nYWxsZXJ5IGJhc2lzLCBzbyBjbGlja2luZyBOZXh0L1By ZXYgaW4gb25lIGdhbGxlcnkgd29uJiM4MjE3O3QgYWZmZWN0IHRoZSB0aHVtYm5haWxzIGlu IG90aGVyIGdhbGxlcmllcyBvbiB0aGUgc2FtZSBwYWdlLiBFYWNoIGdhbGxlcnkgb24gYSBw YWdlIDxlbT5tdXN0PC9lbT4gaGF2ZSBhIHVuaXF1ZSA8Y29kZT5nYWxsZXJ5aWQ8L2NvZGU+ IGluIG9yZGVyIGZvciBwYWdpbmcgdG8gd29yay4gVGhlIGdvb2QgbmV3cyBpcyB5b3UmIzgy MTc7bGwgcHJvYmFibHkgbmV2ZXIgaGF2ZSB0byB1c2UgdGhpcyBhdHRyaWJ1dGUgYmVjYXVz ZSBpdCB3b3JrcyBhdXRvbWF0aWNhbGx5IGZvciB5b3UuIEluIHRoZSAodmVyeSkgdW5saWtl bHkgZXZlbnQgaXQgZ2VuZXJhdGVzIHR3byBpZGVudGljYWwgc3RyaW5ncywgeW91IGNhbiB1 c2UgdGhpcyBvcHRpb24gdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLjxkaXYg Y2xhc3M9ImJyZWFrIj5JdCB0YWtlcyBlaXRoZXIgYSBmaXhlZCBzdHJpbmcgKGUuZy4gPGNv ZGU+Z2FsbGVyeWlkPSZxdW90O215R2FsbGVyeTEmcXVvdDs8L2NvZGU+KTsgb3IgYSAmIzgy MTY7PyYjODIxNzsgZm9sbG93ZWQgYnkgdXAgdG8gdHdvIG51bWJlcnMgc2VwYXJhdGVkIGJ5 IGEgY29sb24gKHRoZSBjb2xvbiBjYW4gYmUgY2hhZ25lZCB3aXRoIDxjb2RlPnBhcmFtZGVs aW08L2NvZGU+KS4gSW50ZXJuYWxseSwgdGhlIHBsdWdpbiBnZW5lcmF0ZXMgYSB1bmlxdWUg KDMyLWNoYXJhY3Rlcikgc3RyaW5nIGJhc2VkIG9uIHRoZSBvdGhlciBhdHRyaWJ1dGVzIGdp dmVuLiBZb3UgdXNlIHRoZSB0d28gbnVtYmVycyB0byBjb250cm9sIHdoaWNoIGNoYXJhY3Rl cnMgZnJvbSB0aGlzIHN0cmluZyB0byB1c2UgaW4geW91ciB1bmlxdWUgY29kZS4gVGhlIGZp cnN0IG51bWJlciBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgdG8gZ2VuZXJhdGUgYW5k IHRoZSAybmQgbnVtYmVyIGlzIGhvdyBtYW55IGNoYXJhY3RlcnMgdG8gc2tpcCBlYWNoIHRp bWUgaXQgcGlja3Mgb25lIGZyb20gdGhlIHN0cmluZyAod3JhcHBpbmcgYmFjayB0byB0aGUg c3RhcnQgb2YgdGhlIHN0cmluZyBpZiBpdCBmYWxscyBvZmYgdGhlIGVuZCkuPC9kaXY+PGRp diBjbGFzcz0iYnJlYWsiPkFuIGV4YW1wbGU6IHN1cHBvc2UgdGhlIHRhZyBnZW5lcmF0ZWQg dGhpcyBzdHJpbmcgaW50ZXJuYWxseTogPGNvZGU+MmNiNWJiZjhiMGMyYzAyOGQ4ZjIzNGI0 YmQ0NmZkZGU8L2NvZGU+LiBUaGVzZSBhcmUgdGhlIHJlc3VsdHMgb2YgdmFyaW91cyB2YWx1 ZXM6PC9kaXY+PC9saT4KCTwvdWw+CgoJPHRhYmxlPgoJCTx0cj4KCQkJPHRoPmdhbGxlcnlp ZD08L3RoPgoJCQk8dGg+cmVzdWx0PC90aD4KCQkJPHRoPnJlbWFya3M8L3RoPgoJCTwvdHI+ CgkJPHRyPgoJCQk8dGQ+ICYjODIyMDsmIzgyMjE7IG9yICYjODIyMDs/NDo2JiM4MjIxOyA8 L3RkPgoJCQk8dGQ+IDJmY2YgPC90ZD4KCQkJPHRkPiB0aGUgZGVmYXVsdCA8L3RkPgoJCTwv dHI+CgkJPHRyPgoJCQk8dGQ+ICYjODIyMDs/OCYjODIyMTsgPC90ZD4KCQkJPHRkPiAyY2I1 YmJmOCA8L3RkPgoJCQk8dGQ+IHRoZSBmaXJzdCA4IGNoYXJhY3RlcnMgPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiAmIzgyMjA7Pzc6MyYjODIyMTsgPC90ZD4KCQkJPHRkPiAyNWYw YzhmIDwvdGQ+CgkJCTx0ZD4gbGVuZ3RoIDcsIGNob29zaW5nIGV2ZXJ5IDNyZCBjaGFyYWN0 ZXIgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiAmIzgyMjA7Pzg6NyYjODIyMTsgPC90 ZD4KCQkJPHRkPiAyODI0ZjVjOCA8L3RkPgoJCQk8dGQ+IGxlbmd0aCA4LCBjaG9vc2luZyBl dmVyeSA3dGggY2hhcmFjdGVyICh3cmFwcykgPC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8 dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+d3JhcHRhZzwvc3Bhbj4gOiAoWClI VE1MIHRhZyB0byB3cmFwIGVhY2ggJiM4MjE2O2NlbGwmIzgyMTc7IChlZmZlY3RpdmVseSBh IHRodW1ibmFpbCBpbWFnZSkgd2l0aC4gRG8gbm90IHNwZWNpZnkgdGhlICZsdDsgb3IgJmd0 OyBjaGFyYWN0ZXJzLiBGb3IgYSB2YWxpZCBwYWdlLCB0aGUgb25seSB1c2VmdWwgb3B0aW9u cyBhcmUgJiM4MjIwO2RpdiYjODIyMTssICYjODIyMDtsaSYjODIyMTsgb3IgJiM4MjIwO3Am IzgyMjE7LiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBubyB0YWcpPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC1uYW1lIj50aHVtYnNpemU8L3NwYW4+IDogZWl0aGVyIGZvciBzcGVjaWFs IGVmZmVjdHMsIG9yIGluIG9yZGVyIHRvIHZhbGlkYXRlIGFnYWluc3QgPHNwYW4gY2xhc3M9 ImNhcHMiPlhIVE1MPC9zcGFuPiwgdGhlIGltYWdlIHRodW1ibmFpbHMgc2hvdWxkIGhhdmUg PGNvZGU+d2lkdGg8L2NvZGU+IGFuZCA8Y29kZT5oZWlnaHQ8L2NvZGU+IGF0dHJpYnV0ZXMu IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGNhbm5vdCBzdXBwbHkgdGhpcyBhdXRv bWF0aWNhbGx5LCBidXQgdGhpcyBhdHRyaWJ1dGUgd2lsbC48ZGl2IGNsYXNzPSJicmVhayI+ U2ltcGx5IHNwZWNpZnkgdXAgdG8gdHdvIHZhbHVlcyBzZXBhcmF0ZWQgYnkgYSBjb21tYSAo eW91IGNhbiBvdmVycmlkZSB0aGlzIHdpdGggPGNvZGU+ZGVsaW08L2NvZGU+KSB0byBkZWZp bmUgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgeW91ciB0aHVtYm5haWxzIChpbiBwaXhlbHMg YnkgZGVmYXVsdCkuIEZvciBleGFtcGxlOiA8Y29kZT50aHVtYnNpemU9JnF1b3Q7NDAsIDYw JnF1b3Q7PC9jb2RlPiB3aWxsIHNldCA0MC1waXhlbCB4IDYwLXBpeGVsIHRodW1ibmFpbHMu IFN1cHBseWluZyBvbmx5IG9uZSB2YWx1ZSB3aWxsIHNldCBib3RoIHdpZHRoIGFuZCBoZWln aHQgdG8gdGhlIHNhbWUgdmFsdWUuIEFkZGluZyB1bml0cyBhZnRlciBlYWNoIHZhbHVlICgm IzgyMjA7cHgmIzgyMjE7LCAmIzgyMjA7ZW0mIzgyMjE7LCAmIzgyMjA7JSYjODIyMTsgZXRj KSB3aWxsIHVzZSB0aG9zZSB1bml0cyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IHBpeGVscy48 L2Rpdj48ZGl2IGNsYXNzPSJicmVhayI+VG8gc3BlY2lmeSBqdXN0IHRoZSB3aWR0aCwgcHV0 IHRoZSBjb21tYSBpbiBidXQgbGVhdmUgdGhlIHNlY29uZCBwYXJhbWV0ZXIgZW1wdHkgKGUu Zy4gPGNvZGU+dGh1bWJzaXplPSZxdW90OzJlbSwmcXVvdDs8L2NvZGU+KS4gU2ltaWxhcmx5 IHRvIHNwZWNpZnkgdGhlIGhlaWdodCBvbmx5LCBsZWF2ZSB0aGUgZmlyc3QgdmFsdWUgZW1w dHkgYnkgc3RhcnRpbmcgd2l0aCBhIGNvbW1hIChlLmcuIDxjb2RlPnRodW1ic2l6ZT0mcXVv dDssMTAlJnF1b3Q7PC9jb2RlPik8L2Rpdj48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0 LW5hbWUiPnRodW1idGV4dDwvc3Bhbj4gOiB5b3UgY2FuIHBsYWNlIHRleHQgYXJvdW5kIGVh Y2ggdGh1bWJuYWlsLiBMaWtlIDxjb2RlPmltYWdlY2FwdGlvbjwvY29kZT4sIGdpdmUgYW55 IGZpeGVkIHRleHQgYW5kL29yIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMiPmltYWdlIGZpZWxk IGNvZGVzPC9hPiB0byBhZGQgaXQgYmVsb3cgZXZlcnkgdGh1bWJuYWlsIChpbnNpZGUgdGFn IDxjb2RlPnRodW1idGV4dHdyYXA8L2NvZGU+IHdpdGggYSBjbGFzcyBvZiA8Y29kZT50aHVt YnRleHRjbGFzczwvY29kZT4pLiBCeSBkZWZhdWx0LCB0ZXh0IGlzIHBsYWNlZCA8Y29kZT5i ZWxvdzwvY29kZT4gdGhlIGltYWdlIGJ1dCBjYW4gYmUgcGxhY2VkIGluIGFueSBvZiA1IHBv c2l0aW9ucywgYXMgZ2l2ZW4gaW4gdGhlIHRhYmxlIGJlbG93LiA8Y29kZT5vbmNoYW5nZTwv Y29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIGFwcGx5aW5nIGhlYWRlcnMgd2hlbiB0aGUgY2F0 ZWdvcnkgY2hhbmdlcy4gU2VlIDxhIGhyZWY9IiNlZzYiPmV4YW1wbGUgNjwvYT4uPC9saT4K CTwvdWw+CgoJPHRhYmxlPgoJCTx0cj4KCQkJPHRoPnBvc2l0aW9uPC90aD4KCQkJPHRoPnJl bWFya3M8L3RoPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGFib3ZlIDwvdGQ+CgkJCTx0ZD4g YWJvdmUgdGhlIHRodW1ibmFpbCwgbm90IGNsaWNrYWJsZSA8L3RkPgoJCTwvdHI+CgkJPHRy PgoJCQk8dGQ+IGJlbG93IDwvdGQ+CgkJCTx0ZD4gYmVsb3cgdGhlIHRodW1ibmFpbCwgbm90 IGNsaWNrYWJsZSAoZGVmYXVsdCkgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBiZWZv cmUgPC90ZD4KCQkJPHRkPiBpbW1lZGlhdGVseSBpbiBmcm9udCBvZiB0aGUgdGh1bWJuYWls LCBjbGlja2FibGUgYXMgcGFydCBvZiB0aGUgbGluayA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJ CQk8dGQ+IGFmdGVyIDwvdGQ+CgkJCTx0ZD4gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSB0 aHVtYm5haWwsIGNsaWNrYWJsZSBhcyBwYXJ0IG9mIHRoZSBsaW5rIDwvdGQ+CgkJPC90cj4K CQk8dHI+CgkJCTx0ZD4gb25jaGFuZ2UgPC90ZD4KCQkJPHRkPiBhYm92ZSBldmVyeSB0aHVt Ym5haWwgYnV0IDxlbT5vbmx5PC9lbT4gaWYgaXRzIGNvbnRlbnRzIGNoYW5nZXMgZnJvbSB0 aGUgaW1hZ2UgYmVmb3JlIGl0IDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHVsPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnRodW1idGV4dHdyYXA8L3NwYW4+IDogKFgpSFRN TCB0YWcgdG8gd3JhcCBhcm91bmQgZWFjaCB0aHVtYnRleHQgaXRlbS4gRG8gbm90IHNwZWNp ZnkgdGhlICZsdDsgb3IgJmd0OyBjaGFyYWN0ZXJzLiBEZWZhdWx0OiBzcGFuPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYnRleHRjbGFzczwvc3Bhbj4gOiA8c3Bh biBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBhcHBseSB0byBldmVyeSB0aHVt YnRleHQgaXRlbS4gRGVmYXVsdDogZW1wdHkgKGkuZS4gbm8gY2xhc3MpPC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWxpbTwvc3Bhbj4gOiBUaGUgZGVsaW1pdGVyIHRv IHVzZSBiZXR3ZWVuIGl0ZW1zIGluIGxpc3RzICg8Y29kZT5jYXRlZ29yeTwvY29kZT4sIDxj b2RlPmltYWdlaWQ8L2NvZGU+LCA8Y29kZT50aHVtYnRleHQ8L2NvZGU+IGV0YykuIElmIHVz aW5nIGdsel9jdXN0b21fZmllbGRzICYjODIxMjsgZXNwZWNpYWxseSB3aXRoIGNoZWNrYm94 ZXMgb3IgYSBtdWx0aSBzZWxlY3QgJiM4MjEyOyB5b3Ugc2hvdWxkIGNoYW5nZSA8Y29kZT5k ZWxpbTwvY29kZT4gdG8gYSBwaXBlICYjODIxNjt8JiM4MjE3OyBjaGFyYWN0ZXI8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnBhcmFtZGVsaW08L3NwYW4+IDogYnkgZGVm YXVsdCBpbiB0aGUgPGNvZGU+dGh1bWJ0ZXh0PC9jb2RlPiBhdHRyaWJ1dGUsIHlvdSBzZXBh cmF0ZSBwYXJhbWV0ZXJzIGZyb20gb3B0aW9uIG5hbWVzIHVzaW5nIHRoZSBjb2xvbi4gSW4g c29tZSBjYXNlIHlvdSBtYXkgd2lzaCB0byB1c2UgdGhlIGNvbG9uIGluIHlvdXIgc3RyaW5n IG9mIHRleHQgc28geW91IHdpbGwgbmVlZCB0byBzZXQgdGhlIGRlbGltaXRlciB0byBzb21l dGhpbmcgZWxzZS4gSXQgY2FuIGJlIHByZXR0eSBtdWNoIGFueSBzdHJpbmcgeW91IGxpa2Ug KGUuZy4gPGNvZGU+cGFyYW1kZWxpbT0mcXVvdDtbW1NRVUlEJnF1b3Q7PC9jb2RlPiksIGp1 c3QgbWFrZSBzdXJlIGl0IGRvZXNuJiM4MjE3O3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4g eW91ciB0ZXh0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jZWxsY2xhc3M8 L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgZm9yIGVhY2gg JiM4MjE2O2NlbGwmIzgyMTc7IHRoYXQgZGlzcGxheXMgYSB0aHVtYm5haWwuIERlZmF1bHQ6 IGVtcHR5IChpLmUuIG5vIGNsYXNzKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+bGlua2NsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNs YXNzIGZvciB0aGUgYW5jaG9yIHRhZyBvZiBlYWNoIGltYWdlLiBEZWZhdWx0OiBlbXB0eSAo aS5lLiBubyBjbGFzcyk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmltZ2Ns YXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciBl YWNoIGltZyB0YWcuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKTwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bmF2d3JhcHRhZzwvc3Bhbj4gOiB3aGVuIDxjb2Rl PnNob3dwYWdlbGlua3M8L2NvZGU+IGlzIG9uLCBzb21lIG5leHQvcHJldiBsaW5rcyBhcmUg cGxhY2VkIHVuZGVyIGVhY2ggZ2FsbGVyeSB0byBwYWdlIHRocm91Z2ggPGNvZGU+bGltaXQ8 L2NvZGU+IHRodW1ibmFpbHMgYXQgYSB0aW1lLiBUaGlzIGF0dHJpYnV0ZSBzcGVjaWZpZXMg dGhlIChYKUhUTUwgdGFnIHRvIHdyYXAgYXJvdW5kIHRoZSB3aG9sZSBuYXZpZ2F0aW9uIGJs b2NrLiBEbyBub3Qgc3BlY2lmeSB0aGUgJmx0OyBvciAmZ3Q7IGNoYXJhY3RlcnMuIERlZmF1 bHQ6IGVtcHR5IChpLmUuIG5vIHRhZyk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPm5hdmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNs YXNzIGZvciB0aGUgbmV4dC9wcmV2IGNvbnRhaW5lci4gRGVmYXVsdDogZW1wdHkgKGkuZS4g bm8gY2xhc3MpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wcmV2bGFiZWw8 L3NwYW4+IDogTGFiZWwgZm9yIHRoZSAmIzgyMTY7cHJldmlvdXMgcGFnZSYjODIxNzsgb2Yg cGljdHVyZXMgd2hlbiB1c2luZyA8Y29kZT5zaG93cGFnZWxpbmtzPC9jb2RlPi4gRGVmYXVs dDogJiM4MjIwO1ByZXYmIzgyMjE7LiBDdXN0b21pc2FibGUgaW4gZGlmZmVyZW50IGxhbmd1 YWdlcyB2aWEgPHNwYW4gY2xhc3M9ImNhcHMiPk1MUDwvc3Bhbj48L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPm5leHRsYWJlbDwvc3Bhbj4gOiBMYWJlbCBmb3IgdGhlICYj ODIxNjtuZXh0IHBhZ2UmIzgyMTc7IG9mIHBpY3R1cmVzIHdoZW4gdXNpbmcgPGNvZGU+c2hv d3BhZ2VsaW5rczwvY29kZT4uIERlZmF1bHQ6ICYjODIyMDtOZXh0JiM4MjIxOy4gQ3VzdG9t aXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgdmlhIDxzcGFuIGNsYXNzPSJjYXBzIj5N TFA8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wcmV2Y2xhc3M8 L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgZm9yIHRoZSAm IzgyMTY7cHJldiYjODIxNzsgbGluay4gRGVmYXVsdDogc21kX3NsaW1ib3hfcHJldjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bmV4dGNsYXNzPC9zcGFuPiA6IDxzcGFu IGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciB0aGUgJiM4MjE2O25leHQmIzgy MTc7IGxpbmsuIERlZmF1bHQ6IHNtZF9zbGltYm94X25leHQ8L2xpPgoJPC91bD4KCgk8aDMg aWQ9ImZpZWxkcyI+QXJ0aWNsZSBmaWVsZCBjb2RlczwvaDM+CgoJPHA+VXNlIHRoZXNlIGNv ZGVzIHRvIGdyYWIgaXRlbXMgZnJvbSB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBhcnRpY2xl IGFuZCBpbmplY3QgdGhlbSBpbnRvIHNtZF9zbGltYm94IHRhZyBhdHRyaWJ1dGVzLiBBbGwg b2YgdGhlIHRhZ3MgY2FuIGJlIGNvbWJpbmVkIHdpdGggZml4ZWQgdGV4dCAoZS5nLiA8Y29k ZT5jYXRlZ29yeT0mcXVvdDtteWNhdC0/YXJ0aWNsZV9pbWFnZV8/cyZxdW90OzwvY29kZT4g bWlnaHQgY2hvb3NlIGltYWdlcyBmcm9tIHRoZSBjYXRlZ29yeSAmIzgyMjA7bXljYXQtMTJf bGlvbiYjODIyMTsgaWYgdGhlIGN1cnJlbnQgYXJ0aWNsZSB3YXMgaW4gc2VjdGlvbiAmIzgy MTY7bGlvbiYjODIxNzsgYW5kIGhhZCBhbiBhcnRpY2xlIGltYWdlIG9mICYjODIxNjsxMiYj ODIxNzspLiBOb3RlIHRoYXQgYW55IGFydGljbGUgb3IgY3VzdG9tIGZpZWxkcyAmIzgyMTI7 IGluY2x1ZGluZyB0aG9zZSB1dGlsaXNpbmcgZ2x6X2N1c3RvbV9maWVsZHMgJiM4MjEyOyBt YXkgY29udGFpbiBsaXN0cyBvZiBpdGVtcy48L3A+CgoJPHVsPgoJCTxsaT48Y29kZT4/Yzwv Y29kZT4gOiB1c2UgdGhlIGN1cnJlbnQgZ2xvYmFsIChhcnRpY2xlKSBjYXRlZ29yeTwvbGk+ CgkJPGxpPjxjb2RlPiFjPC9jb2RlPiA6IHVzZXMgZXZlcnl0aGluZyBleGNlcHQgdGhlIGN1 cnJlbnQgZ2xvYmFsIGNhdGVnb3J5PC9saT4KCQk8bGk+PGNvZGU+P3M8L2NvZGU+IDogdXNl IHRoZSBjdXJyZW50IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHNlY3Rpb248L2xp PgoJCTxsaT48Y29kZT4hczwvY29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBj dXJyZW50IHNlY3Rpb248L2xpPgoJCTxsaT48Y29kZT4/dDwvY29kZT4gOiB1c2UgdGhlIGN1 cnJlbnQgYXJ0aWNsZSYjODIxNztzIHVybC10aXRsZTwvbGk+CgkJPGxpPjxjb2RlPiF0PC9j b2RlPiA6IHVzZXMgYWxsIHVybC10aXRsZXMgZXhjZXB0IHRoZSBjdXJyZW50IGFydGljbGUg KHByb2JhYmx5IG5vdCBtdWNoIHVzZSEpPC9saT4KCQk8bGk+PGNvZGU+P2lkPC9jb2RlPiA6 IHVzZSB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgSUQgYXMgdGhlIG5hbWUgb2YgYW4g aW1hZ2UgY2F0ZWdvcnkuIFVzZWZ1bCB0byBtYWtlIGEgcGVyLWFydGljbGUgaW1hZ2UgZ2Fs bGVyeSAoZS5nLiA8Y29kZT5jYXRlZ29yeT0mcXVvdDthcnRpY2xlLT9pZCZxdW90OzwvY29k ZT4pPC9saT4KCQk8bGk+PGNvZGU+IWlkPC9jb2RlPiA6IHVzZXMgYWxsIGltYWdlIElEcyBl eGNlcHQgdGhlIGN1cnJlbnQgYXJ0aWNsZTwvbGk+CgkJPGxpPjxjb2RlPj9maWVsZG5hbWU8 L2NvZGU+IDogbG9va3MgaW4gdGhlIGdpdmVuIGZpZWxkbmFtZSBvZiB0aGUgY3VycmVudCBh cnRpY2xlLiBEZXNpZ25lZCBwcmltYXJpbHkgZm9yIHVzZSB3aXRoIGN1c3RvbSBmaWVsZHMg KGUuZy4gPGNvZGU+aW1hZ2VpZD0mcXVvdDs/Y3VzdG9tMSZxdW90OzwvY29kZT4pLCBpdCBj YW4gYWxzbyBiZSBhbnkgb3RoZXIgZmllbGQgZnJvbSB5b3VyIGFydGljbGUuIENvbW1vbiBm aWVsZHMgYXJlIDxjb2RlPj9leGNlcnB0PC9jb2RlPiBAP2NhdGVnb3J5MUAgPGNvZGU+P2tl eXdvcmRzPC9jb2RlPiBAP2FydGljbGVfaW1hZ2VAIG9yIDxjb2RlPj9hdXRob3JpZDwvY29k ZT4uPC9saT4KCTwvdWw+CgoJPHA+VG8gbmVnYXRlIGFueSBjYXRlZ29yeSBzZWxlY3Rpb24s IHVzZSA8Y29kZT4hY2F0ZWdvcnk8L2NvZGU+IG9yIDxjb2RlPiFmaWVsZF9uYW1lPC9jb2Rl Pi4gSWYgeW91IGxpc3Qgc3BlY2lmaWMgaW1hZ2UgY2F0ZWdvcmllcyAoZS5nLiA8Y29kZT5j YXRlZ29yeT0mcXVvdDshbGFuZHNjYXBlLCAhYmlyZHMmcXVvdDs8L2NvZGU+KSB0aG9zZSBj YXRlZ29yaWVzIHdpbGwgYmUgZXhjbHVkZWQuIElmIHlvdSBzcGVjaWZ5IGEgZmllbGQgbmFt ZSBzdWNoIGFzIDxjb2RlPiFrZXl3b3JkczwvY29kZT4sIHRoZSBjb250ZW50cyBvZiB0aGF0 IGZpZWxkIHdpbGwgYmUgcmVhZCBhbmQgdGhlIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcyBm b3VuZCB0aGVyZSB3aWxsIGJlIGV4Y2x1ZGVkLjwvcD4KCgk8cD5Ob3RlIHRoYXQgaWYgeW91 IHNwZWNpZnkgYSBmaWVsZCBuYW1lIGFuZCB0aGF0IGZpZWxkIGluIHRoZSBhcnRpY2xlIGlz IGVtcHR5LCB0aGUgbmFtZSB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYgaXQgd2FzIGFuIGFjdHVh bCBpbWFnZSBjYXRlZ29yeS4gU28gaWYgeW91IHNwZWNpZmllZCA8Y29kZT5jYXRlZ29yeT0m cXVvdDs/a2V5d29yZHMmcXVvdDs8L2NvZGU+IGFuZCB0aGUgJiM4MjE2O2tleXdvcmRzJiM4 MjE3OyBmaWVsZCBpbiB0aGUgY3VycmVudCBhcnRpY2xlIHdhcyBlbXB0eSwgaXQgd291bGQg bG9vayBmb3IgYW4gaW1hZ2UgY2F0ZWdvcnkgbmFtZWQgJiM4MjIwO2tleXdvcmRzJiM4MjIx Oy48L3A+CgoJPHA+QWxzbyBub3RlIHRoYXQsIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIHlv dSBsaXN0IHRoZW0sIGFsbCAmIzgyMTY7cG9zaXRpdmVzJiM4MjE3OyB3aWxsIGJlIHByb2Nl c3NlZCBmaXJzdCwgdGhlbiBhbnkgZXhjbHVzaW9ucyBhcHBsaWVkLjwvcD4KCgk8aDMgaWQ9 ImltYWdlX2ZpZWxkcyI+SW1hZ2UgZmllbGQgY29kZXM8L2gzPgoKCTxwPkxpa2UgPGEgaHJl Zj0iI2ZpZWxkcyI+YXJ0aWNsZSBmaWVsZCBjb2RlczwvYT4sIHRoZXNlIGNhbiBiZSBzcGVj aWZpZWQgdG8gZ3JhYiBwaWVjZXMgb2YgaW5mb3JtYXRpb24gZnJvbSB0aGUgY3VycmVudCBp bWFnZS4gTm90ZSB0aGF0IHRoZSAmIzgyMTY7bmVnYXRpb24mIzgyMTc7IHZlcnNpb25zIGRv biYjODIxNzt0IG1ha2Ugc2Vuc2UgaGVyZSBzbyB0aGUgY29kZXMgYXJlICYjODIxNjtpbmNs dWRlIG9ubHkmIzgyMTc7OjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPj9jYXRlZ29yeTwvY29k ZT4gOiBpbWFnZSBjYXRlZ29yeTwvbGk+CgkJPGxpPjxjb2RlPj9jYXB0aW9uPC9jb2RlPiA6 IGltYWdlIGNhcHRpb248L2xpPgoJCTxsaT48Y29kZT4/YWx0PC9jb2RlPiA6IGltYWdlIGFs dCB0ZXh0PC9saT4KCQk8bGk+PGNvZGU+P25hbWU8L2NvZGU+IDogaW1hZ2UgKHVzdWFsbHkg ZmlsZSkgbmFtZTwvbGk+CgkJPGxpPjxjb2RlPj9pZDwvY29kZT4gOiBpbWFnZSBJRDwvbGk+ CgkJPGxpPjxjb2RlPj9kYXRlPC9jb2RlPiA6IGltYWdlIHVwbG9hZCBkYXRlc3RhbXA8L2xp PgoJCTxsaT48Y29kZT4/YXV0aG9yPC9jb2RlPiA6IGltYWdlIGF1dGhvciAod2hvIHVwbG9h ZGVkIGl0IHRvIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+KTwvbGk+CgkJPGxpPjxj b2RlPj9leHQ8L2NvZGU+IDogaW1hZ2UgZmlsZSBleHRlbnNpb248L2xpPgoJCTxsaT48Y29k ZT4/d2lkdGg8L2NvZGU+IDogaW1hZ2Ugd2lkdGggaW4gcGl4ZWxzPC9saT4KCQk8bGk+PGNv ZGU+P2hlaWdodDwvY29kZT4gOiBpbWFnZSBoZWlnaHQgaW4gcGl4ZWxzPC9saT4KCQk8bGk+ PGNvZGU+P3VybDwvY29kZT4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g b2YgdGhlIGZ1bGwtc2l6ZSBpbWFnZSAmIzgyMTI7IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCA8 Y29kZT5pbWFnZWNhcHRpb248L2NvZGU+IG9yIDxjb2RlPnRodW1idGV4dDwvY29kZT48L2xp PgoJPC91bD4KCgk8cD5Gb3IgZXhhbXBsZSwgdG8gc2hvdyB0aGUgYWx0IHRleHQgdW5kZXIg dGhlIG1haW4gaW1hZ2UgaW5zdGVhZCBvZiB0aGUgY2FwdGlvbiAod2hpY2ggaXQgb3RoZXJ3 aXNlIHVzZXMgYnkgZGVmYXVsdCkgOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPmltYWdlY2FwdGlvbj0mcXVvdDs/YWx0JnF1b3Q7CjwvY29kZT48L3By ZT4KCgk8cD5Gb3IgdGhlIGFkdmVudHVyb3VzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48 Y29kZSBjbGFzcz0iYmxvY2siPmltYWdlY2FwdGlvbj0mcXVvdDs/Y2FwdGlvbiBieSA/YXV0 aG9yCiAgICAgWz9leHQgcGljdHVyZTogP3dpZHRoeD9oZWlnaHRweF0mcXVvdDsKPC9jb2Rl PjwvcHJlPgoKCTxwPlRoYXQgbWlnaHQgc2hvdyBhIGNhcHRpb24gc3VjaCBhcyAmIzgyMjA7 TGFrZSBXaW5kZXJtZXJlIGF0IG5pZ2h0IGJ5IFN0ZWYgW2pwZyBwaWN0dXJlOiA4MDAmIzIx NTs2MDBweF0mIzgyMjE7LjwvcD4KCgk8cD5UbyBwdXQgKGFib3ZlIGVhY2ggdGh1bWJuYWls KSB0aGUgdGV4dCAmIzgyMjA7RmlsZWQgaW4mIzgyMjE7IGFuZCB0aGVuIHRoZSBjYXRlZ29y eSBuYW1lIG9mIHRoZSBpbWFnZSwgZm9sbG93ZWQgYnkgaXRzIGZpbGVuYW1lIGluIHNxdWFy ZSBicmFja2V0czo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij50aHVtYnRleHQ9JnF1b3Q7YWJvdmU6IEZpbGVkIGluID9jYXRlZ29yeSBbP25hbWVdJnF1 b3Q7Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+WW91IGNhbiBjb21iaW5lIGRlZmluaXRpb25z LCBlYWNoIHNlcGFyYXRlZCBieSBhIGNvbW1hLCBmb3IgZXhhbXBsZTo8L3A+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj50aHVtYnRleHQ9JnF1b3Q7YWJvdmU6 RmlsZWQgaW4gP2NhdGVnb3J5IFs/bmFtZSAoP3dpZHRoIHggP2hlaWdodCldLAogICAgIGJl bG93Oj9hdXRob3ImcXVvdDsmbHQ7L2NvZGUmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0 IHdvdWxkIGFkZCB0aGUgY2F0ZWdvcnksIGZpbGVuYW1lLCB3aWR0aCBhbmQgaGVpZ2h0IGFi b3ZlIHRoZSBpbWFnZSBhbmQgdGhlIGF1dGhvciAodGhlIHBlcnNvbiB3aG8gdXBsb2FkZWQg aXQpIGJlbG93IHRoZSB0aHVtYm5haWwuIFlvdSBjYW4gZ2V0IGFzIGNyZWF0aXZlIGFzIHlv dSBsaWtlLjwvcD4KCgk8cD5Ob3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gdXNlIGEgY29sb24g aW4gdGhlIHRleHQgaXRzZWxmLCB5b3Ugd2lsbCBuZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZh dWx0IGFuZCBzZXQgaXQgdG8gYW55IHN0cmluZyBvZiBjaGFyYWN0ZXJzIHlvdSBwcmVmZXIg dXNpbmcgdGhlIDxjb2RlPnBhcmFtZGVsaW08L2NvZGU+IG9wdGlvbi48L3A+CgoJPGgyIGlk PSJleGFtcGxlcyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE8L2gz PgoKCTxwPlNob3cgYWxsIGltYWdlcyBpbiB0aGUgbGFuZHNjYXBlIGNhdGVnb3J5LCB0ZW4g YXQgYSB0aW1lOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1b3Q7bGFuZHNjYXBlJnF1b3Q7IGxp bWl0PSZxdW90OzEwJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+ RXhhbXBsZSAyPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9JnF1b3Q7ZG9ncywgYmlyZHMmcXVvdDsg bGltaXQ9JnF1b3Q7OSZxdW90OwogICAgIHRodW1idGV4dD0mcXVvdDthZnRlcjo/Y2FwdGlv biZxdW90OyB3cmFwdGFnPSZxdW90O2xpJnF1b3Q7CiAgICAgY2VsbGNsYXNzPSZxdW90O2Nl bGwmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNob3cgYWxsIGltYWdlcyBpbiB0 aGUgZG9ncyBhbmQgYmlyZHMgY2F0ZWdvcmllcywgOSBwZXIgcGFnZS4gQWRkIHRoZSBjYXB0 aW9ucyB1bmRlciB0aGUgdGh1bWJuYWlscyBhbmQgbWFrZSB0aGVtIGNsaWNrYWJsZSB0b28u IFdyYXAgZWFjaCBpbWFnZSBpbiBhIDxjb2RlPmxpPC9jb2RlPiB0YWcgYW5kIGdpdmUgZWFj aCBhIGNsYXNzIG9mICYjODIxNjtjZWxsJiM4MjE3OyAoaW1wbGllcyB5b3UgbXVzdCBtYW51 YWxseSBhZGQgYSBjb3JyZXNwb25kaW5nIDxjb2RlPiZsdDt1bCZndDs8L2NvZGU+IHRhZyBh cm91bmQgdGhlIHBsdWdpbiBpbiBvcmRlciB0byBtYWludGFpbiBwYWdlIHZhbGlkaXR5KS48 L3A+CgoJPHA+SWYgeW91IGFkZGVkIDxjb2RlPnNvcnQ9JnF1b3Q7ZGF0ZSBkZXNjLCByYW5k b20mcXVvdDs8L2NvZGU+IHRvIHRoZSBhYm92ZSB0YWcsIHlvdSB3b3VsZCBnZXQgdGhlIG1v c3QgcmVjZW50IDkgaW1hZ2VzIG9uIHRoZSBmaXJzdCBwYWdlLCBidXQgc2hvd24gaW4gYSBy YW5kb20gb3JkZXIuIFRoZSBuZXh0IHBhZ2Ugd291bGQgc2hvdyB0aGUgbmV4dCBtb3N0LXJl Y2VudCA5IGltYWdlcywgYWdhaW4gc29ydGVkIHJhbmRvbWx5IHdpdGhpbiB0aGVtc2VsdmVz LjwvcD4KCgk8cD5Ib3dldmVyLCBzd2l0Y2hpbmcgdGhlIGF0dHJpYnV0ZXMgdG86IDxjb2Rl PnNvcnQ9JnF1b3Q7cmFuZG9tLCBkYXRlIGRlc2MmcXVvdDs8L2NvZGU+IHdvdWxkIGNoYW5n ZSB0aGUgb3V0cHV0LiBZb3Ugd291bGQgdGhlbiBnZXQgOSByYW5kb20gaW1hZ2VzIG9uIHRo ZSBmaXJzdCBwYWdlLCB3aXRoIHRoZSBtb3N0IHJlY2VudCBvbmVzIG9mIHRoZSBncm91cCBz aG93biBmaXJzdC4gQ2xpY2tpbmcgJiM4MjE2O05leHQmIzgyMTc7IHdvdWxkIHNob3cgYW5v dGhlciA5IHJhbmRvbSBpbWFnZXMgKHNvbWUgbWF5IGJlIHRoZSBzYW1lIGFzIHBhZ2UgMSks IGFnYWluIHNvcnRlZCBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIGRhdGUuIEZvciB0aGlzIHJl YXNvbiAodW5sZXNzIHlvdSYjODIxNztyZSBzaW1wbHkgdXNpbmcgdGhlIHBsdWdpbiB0byBw cmV0dHkgdXAgYSBwYWdlIHdpdGggcmFuZG9tIGltYWdlcykgaWYgeW91JiM4MjE3O3JlIHVz aW5nIHJhbmRvbSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gPGNvZGU+c29ydDwvY29kZT4s IHlvdSBwcm9iYWJseSB3YW50IHRvIGRpc2FibGUgcGFnaW5nIGJ5IHNldHRpbmcgc2hvd3Bh Z2VsaW5rcz0mIzgyMjA7MCYjODIyMTsuPC9wPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxlIDM8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfc2xpbWJveCBpbWFnZWlkPSZxdW90OzQ4LCAyNSwgNCZxdW90OwogICAgIGNhdGVnb3J5 PSZxdW90O2RvZ3MsID9jdXN0b20xJnF1b3Q7IHN1YmNhdHM9JnF1b3Q7YWxsJnF1b3Q7IGxp bWl0PSZxdW90OzIwJnF1b3Q7CiAgICAgcHJldmxhYmVsPSZxdW90O0JhY2smcXVvdDsgc29y dD0mcXVvdDtuYW1lIGRlc2MsIGNhdGVnb3J5JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4K Cgk8cD5TaG93IGltYWdlcyB3aXRoIElEcyA0OCwgMjUgYW5kIDQgYXMgd2VsbCBhcyBhbGwg aW1hZ2VzIGluIHRoZSBkb2dzIGNhdGVnb3J5IGFuZCBhbHNvIHB1bGwgdGhlIGltYWdlIGNh dGVnb3J5IG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGN1c3RvbTEg ZmllbGQgKGlmIGN1c3RvbTEgaGVsZCA8Y29kZT5iaXJkcywgbGFuZHNjYXBlczwvY29kZT4g eW91JiM4MjE3O2QgZ2V0IHBpY3R1cmVzIGZyb20gYWxsIHRocmVlIGNhdGVnb3JpZXMgYW5k IGFsbCB0aGVpciBzdWItY2F0ZWdvcmllcykuIFRoZSB0YWcgYWxzbyBsaW1pdHMgdGhlIG51 bWJlciBvZiB0aHVtYnMgcGVyIHBhZ2UgdG8gMjAsIGNoYW5nZXMgdGhlIHByZXZpb3VzIHBh Z2UgbGFiZWwgdG8gJiM4MjIwO0JhY2smIzgyMjE7IGFuZCBzb3J0cyB0aGUgaW1hZ2VzIGlu IGRlc2NlbmRpbmcgb3JkZXIgb2YgbmFtZSwgdGhlbiBjYXRlZ29yeS48L3A+CgoJPGgzIGlk PSJlZzQiPkV4YW1wbGUgNDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9zbGltYm94IGNhdGVnb3J5PSZxdW90O3N0YXRpYywgY2F0 LT9pZCZxdW90OwogICAgIGltYWdlaWQ9JnF1b3Q7IWFydGljbGVfaW1hZ2UmcXVvdDsgbGlt aXQ9JnF1b3Q7NiZxdW90OyBncm91cG5hbWU9JnF1b3Q7P2MmcXVvdDsKICAgICBzaG93cGFn ZWxpbmtzPSZxdW90OzAmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPklmIHRoZSBw ZXJzb24gaXMgY3VycmVudGx5IHZpZXdpbmcgYXJ0aWNsZSBJRCA2Nywgc2hvdyBhbGwgaW1h Z2VzIGZyb20gdGhlICYjODIxNjtzdGF0aWMmIzgyMTc7IGNhdGVnb3J5IGFuZCB0aGUgJiM4 MjE2O2NhdC02NyYjODIxNzsgY2F0ZWdvcnkuIElmIGFueSBpbWFnZSBpbiBlaXRoZXIgb2Yg dGhvc2UgY2F0ZWdvcmllcyBpcyBmb3VuZCB0byBoYXZlIGFuIElEIG9mIHRoZSBhcnRpY2xl IGltYWdlIGZyb20gdGhlIGN1cnJlbnQgYXJ0aWNsZSwgdGhhdCBwaWN0dXJlIHdpbGwgYmUg aWdub3JlZC4gT25seSBzaG93IDYgcGljdHVyZXMgYW5kIGRvbiYjODIxNzt0IHNob3cgdGhl IG5leHQvcHJldiBsaW5rcyBvbiB0aGUgcGFnZS48L3A+CgoJPHA+QWxzbywgZ3JvdXAgdGhl IGxpZ2h0Ym94IHBpY3R1cmVzIGJ5IGltYWdlIGNhdGVnb3J5LiBUaGlzIG1lYW5zIHRoYXQg aWYgc29tZW9uZSBjbGlja3Mgb24gYSBwaWN0dXJlIGZyb20gdGhlICYjODIyMDtzdGF0aWMm IzgyMjE7IGNhdGVnb3J5LCB0aGUgU2xpbWJveCBuZXh0L3ByZXYgbGlua3Mgb25seSBuYXZp Z2F0ZSBiZXR3ZWVuIHRob3NlIHBpY3R1cmVzLiBUaGUgdXNlciB3aWxsIGhhdmUgdG8gY2xv c2UgdGhlIGxpZ2h0Ym94IGFuZCBjbGljayBhIHBpY3R1cmUgaW4gdGhlIGNhdC02NyBjYXRl Z29yeSB0byBzaG93IHBpY3R1cmVzIGZyb20gdGhlIG90aGVyIGdyb3VwLjwvcD4KCgk8cD5P biB0aGUgc3VyZmFjZSB0aGUgZ3JvdXBuYW1lIG9wdGlvbiBtYXkgc2VlbSBhIGxpdHRsZSBz dXBlcmZsdW91cyBidXQgaXQgY2FuIGJlIHVzZWZ1bCB0byBhbGxvdyBwZW9wbGUgdG8gb25s eSBmbGljayB0aHJvdWdoIGEgc3Vic2V0IG9mIHRoZSBwaWN0dXJlcyBvbiBlYWNoIHBhZ2Us IGJhc2VkIG9uIHRoZWlyIGNhdGVnb3J5LCBmaWxlIG5hbWUsIGF1dGhvciwgd2lkdGgvaGVp Z2h0LCBhbHQvY2FwdGlvbiwgZXZlbiBJRCBpZiB5b3Ugd2FudCB0aGVtIHRvIGFsbCBiZSB1 bmlxdWUgZW50aXRpZXMuIFlvdSBjYW4gYWxzbyB1c2UgYSBmaXhlZCB2YWx1ZSByZWFkIGZy b20gYSBmaWVsZCBpbiB0aGUgY3VycmVudCBhcnRpY2xlLCBlLmcuIDxjb2RlPmdyb3VwbmFt ZT0mcXVvdDs/Y3VzdG9tMiZxdW90OzwvY29kZT4uIFVzZWZ1bCB3aGVuIHVzZWQgaW4gY29u anVuY3Rpb24gd2l0aCBzb3J0LjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1PC9oMz4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3Ns aW1ib3ggY2F0ZWdvcnk9JnF1b3Q7P2MsID9jdXN0b20xLCAhY3VzdG9tMiwgIXN0YXRpYyZx dW90OwogICAgIGxpbWl0PSZxdW90OzgmcXVvdDsgbWF4bGltaXQ9JnF1b3Q7MzImcXVvdDsg LyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkEgYml0IG9mIGEgY29udHJpdmVkIGV4YW1wbGUg dGhhdCBzaG93cyBob3cgY3JhenkgeW91IGNhbiBnZXQ6IFRoaXMgd2lsbCBzaG93IGEgbWF4 aW11bSBvZiAzMiBpbWFnZXMgZnJvbSBhbiBpbWFnZSBjYXRlZ29yeSB3aXRoIHRoZSBzYW1l IG5hbWUgYXMgdGhlIGN1cnJlbnQgZ2xvYmFsIGNhdGVnb3J5LCBwbHVzIGFsbCBpbWFnZXMg ZnJvbSBjYXRlZ29yaWVzIGxpc3RlZCBpbiB0aGUgY3VzdG9tMSBmaWVsZCBvZiB0aGUgY3Vy cmVudCBhcnRpY2xlIGJ1dCA8ZW0+ZXhjbHVkaW5nPC9lbT4gaW1hZ2VzIGZyb20gY2F0ZWdv cmllcyBsaXN0ZWQgaW4gY3VzdG9tMiBhbmQgYWxzbyBleGNsdWRpbmcgdGhlICYjODIxNjtz dGF0aWMmIzgyMTc7IGNhdGVnb3J5LiBTaG93IDggaW1hZ2UgdGh1bWJuYWlscyBhdCBhIHRp bWUgKGkuZS4gNCBwYWdlcykuPC9wPgoKCTxoMyBpZD0iZWc2Ij5FeGFtcGxlIDY8L2gzPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc2xp bWJveCBjYXRlZ29yeT0mcXVvdDs/UGhvdG8gY291bnRyeSZxdW90OyBzdWJjYXRzPSZxdW90 O2FsbCZxdW90OwogICAgIHRodW1idGV4dD0mcXVvdDtvbmNoYW5nZTogJmFtcDthbXA7bHQ7 aDQmYW1wO2FtcDtndDs/Y2F0ZWdvcnkmYW1wO2FtcDtsdDsvaDQmYW1wO2FtcDtndDsmcXVv dDsKICAgICBncm91cG5hbWU9JnF1b3Q7P2MmcXVvdDsgdGh1bWJ0ZXh0d3JhcD0mcXVvdDsm cXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkEgd29yay1zYXZpbmcgdGFnISBQdWxs cyBvdXQgYWxsIHBpY3R1cmVzIGZyb20gdGhlIGNhdGVnb3J5IGdpdmVuIGluIHRoZSBjdXN0 b20gZmllbGQgbGFiZWxsZWQgJiM4MjE2O1Bob3RvIGNvdW50cnkmIzgyMTc7LCBpbmNsdWRp bmcgYW55IHN1Yi1jYXRlZ29yaWVzLiBCeSBkZWZhdWx0IGl0IHNvcnRzIHRoZW0gYnkgY2F0 ZWdvcnksIHdoaWNoIGlzIHBlcmZlY3QuIFRoZSBjbGV2ZXIgYml0IGlzIDxjb2RlPnRodW1i dGV4dDwvY29kZT4sIHdoaWNoIHRlbGxzIHRoZSBwbHVnaW4gdG8gZGlzcGxheSB0aGUgY2F0 ZWdvcnkgbmFtZSBhYm92ZSB0aGUgaW1hZ2VzIGJ1dCA8ZW0+b25seTwvZW0+IHdoZW4gdGhl IGNhdGVnb3J5IGNoYW5nZXMuIFRoZSByZXN1bHQgaXMgY2F0ZWdvcnkgaGVhZGluZ3MgKHN1 cnJvdW5kZWQgYnkgaDQgdGFncywgd2l0aG91dCB0aGUgZGVmYXVsdCA8Y29kZT50aHVtYnRl eHR3cmFwPC9jb2RlPiBzcGFuKSBhYm92ZSBlYWNoIGdyb3VwIG9mIGltYWdlcy4gTm90ZSB0 aGF0IGlmIHlvdSB3YW50IHRvIGluY2x1ZGUgc2ltcGxlIDxzcGFuIGNsYXNzPSJjYXBzIj5I VE1MPC9zcGFuPiB0YWdzIHlvdSBjYW4sIGJ1dCB0aGV5IG11c3QgYmUgZW5jb2RlZCB3aXRo IHRoZWlyIGNoYXJhY3RlciBjb2RlIGVxdWl2YWxlbnRzIG9yIDxzcGFuIGNsYXNzPSJjYXBz Ij5UWFA8L3NwYW4+IGdldHMgbWFkLjwvcD4KCgk8cD5UaGUgPGNvZGU+Z3JvdXBuYW1lPC9j b2RlPiBvcHRpb24gdGVsbHMgc2xpbWJveCB0byBvbmx5IHBlcm1pdCBzdGVwcGluZyB0aHJv dWdoIGVhY2ggaW1hZ2UgaW4gZWFjaCBjYXRlZ29yeS4gWW91IGNhbm5vdCAmIzgyMTY7ZmFs bCBvZmYmIzgyMTc7IHRoZSBlbmQgb2Ygb25lIGNhdGVnb3J5IGludG8gdGhlIG5leHQgd2hl biB1c2luZyB0aGUgTmV4dC9QcmV2IGxpbmtzIGluIHRoZSBsaWdodGJveC48L3A+CgoJPHA+ SWYgeW91IHdhbnRlZCB0byBzaG93IGNhdGVnb3J5IGhlYWRpbmdzIHRoYXQgZ3JvdXBlZCBw aWN0dXJlcyBieSBhdXRob3IgYXMgd2VsbCB5b3UgY291bGQgdXNlOjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnNvcnQ9JnF1b3Q7Y2F0ZWdvcnksIGF1 dGhvciZxdW90OwogICAgIHRodW1idGV4dD0mcXVvdDtvbmNoYW5nZTogJmFtcDthbXA7bHQ7 aDQmYW1wO2FtcDtndDs/Y2F0ZWdvcnkKICAgICAoYnkgP2F1dGhvcikmYW1wO2FtcDtsdDsv aDQmYW1wO2FtcDtndDsmcXVvdDsKPC9jb2RlPjwvcHJlPgoKCTxwPkFkZCBhIGxpdHRsZSBi aXQgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gYW5kIHlvdXIgc2luZ2xlIHNs aW1ib3ggdGFnIGNhbiBsb29rIGxpa2UgaXQmIzgyMTc7cyBjcmVhdGluZyBtdWx0aXBsZSBn YWxsZXJpZXMsIGFsbCBhdXRvbWF0aWNhbGx5LjwvcD4KCgk8aDIgaWQ9InN0eWxlIj5TdHls aW5nIHdpdGggPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj48L2gyPgoKCTxwPlRoZXJl IGFyZSAoZGVsaWJlcmF0ZWx5KSB2ZXJ5IGZldyBsYXlvdXQgYXR0cmlidXRlcyBmb3IgdGhl IHBsdWdpbiBiZWNhdXNlIHByZXR0eSBtdWNoIGV2ZXJ5dGhpbmcgY2FuIGJlIGFjY2Vzc2Vk IGZyb20gPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gdG8gbGF5IHlvdXIgaW1hZ2Vz IG91dCBob3dldmVyIHlvdSBsaWtlIHRoZW0uIFdhbnQgdG8gY2hhbmdlIHRoZSBudW1iZXIg b2YgaW1hZ2VzIHBlciByb3c/IENoYW5nZSB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5pbmcg Jmx0O2RpdiZndDsgYW5kIHNldCB0aGUgd2lkdGggb2YgZWFjaCB0aHVtYm5haWwgc3BhY2Ug dG8gYSBwYXJ0aWN1bGFyIHNpemUuPC9wPgoKCTxwPlRoZSBmb2xsb3dpbmcgbG9naWNhbCBz dHJ1Y3R1cmUgYXBwbGllczo8L3A+CgoJPHVsPgoJCTxsaT5BbiBvcHRpb25hbCB3cmFwdGFn IGFuZCBjZWxsY2xhc3MgYXJvdW5kIGVhY2ggJiM4MjIwO2NlbGwmIzgyMjE7IChpLmUuIGxp bmtlZCB0aHVtYm5haWwpPC9saT4KCQk8bGk+QSBsaW5rIGVsZW1lbnQgY29udGFpbmluZyB0 aGUgdGh1bWJuYWlsJiM4MjE3O3MgPGNvZGU+Jmx0O2ltZyZndDs8L2NvZGU+IHRhZyB3aXRo IGFuIG9wdGlvbmFsIGltZ2NsYXNzPC9saT4KCQk8bGk+VGhlIHRodW1idGV4dCBpcyBhICZs dDtzcGFuJmd0OyB3aXRoIGFuIG9wdGlvbmFsIHRodW1idGV4dGNsYXNzIGFuZCBjYW4gYXBw ZWFyIGFib3ZlLCBiZWxvdyBvciB3aXRoaW4gdGhlIGxpbmsgZWxlbWVudDwvbGk+CgkJPGxp PlRoZSBuZXh0L3ByZXYgbGlua3MgYXJlIHdyYXBwZWQgaW4gdGhlIG9wdGlvbmFsIG5hdndy YXB0YWcgY29udGFpbmVyIGFuZCBjYW4gYmUgZ2l2ZW4gYW4gb3B0aW9uYWwgbmF2Y2xhc3M8 L2xpPgoJCTxsaT5UaGUgbmV4dCBsaW5rIGhhcyBhIChkZWZhdWx0KSBjbGFzcyBvZiAmIzgy MjA7c21kX3NsaW1ib3hfbmV4dCYjODIyMTsgYW5kIHByZXYgaGFzICYjODIyMDtzbWRfc2xp bWJveF9wcmV2JiM4MjIxOy4gVGhlc2UgY2FuIGJlIGNoYW5nZWQgb3IgcmVtb3ZlZCBpZiB5 b3Ugd2lzaDwvbGk+Cgk8L3VsPgoKCTxwPlVzaW5nIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8 L3NwYW4+IHNlbGVjdG9ycyB5b3UgY2FuIGFjY2VzcyBldmVyeSBwYXJ0IG9mIHRoZSBzdHJ1 Y3R1cmUuIEFuIGV4YW1wbGUgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gbGF5b3V0 IGlzIGdpdmVuIGhlcmUgdG8gZ2V0IHlvdSBzdGFydGVkIChhc3N1bWVzIGEgd3JhcHRhZyBv ZiAmIzgyMTY7bGkmIzgyMTc7LCBhIGNvbnRhaW5pbmcgJiM4MjE2O3VsJiM4MjE3OyBhcm91 bmQgdGhlIHBsdWdpbiB0YWcgd2l0aCBhIGNsYXNzIG9mIDxjb2RlPnNtZF9zbGltYm94PC9j b2RlPiBhbmQgPGNvZGU+bmF2Y2xhc3M9JnF1b3Q7c21kX3NsaW1ib3hfbmF2JnF1b3Q7PC9j b2RlPikuIFBhc3RlIGl0IGludG8geW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFu PiB0ZW1wbGF0ZSBhbmQgeW91JiM4MjE3O3JlIGdvb2QgdG8gZ28uPC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+LnNtZF9zbGltYm94IHsKCWZsb2F0Omxl ZnQ7Cgl3aWR0aDo2MDBweDsKCW1hcmdpbjoxZW0gMDsKCWNsZWFyOmJvdGg7CglsaXN0LXN0 eWxlOm5vbmU7Cn0KLnNtZF9zbGltYm94IGxpIHsKCXdpZHRoOjE1MHB4OwoJaGVpZ2h0OjE1 MHB4OwoJZmxvYXQ6bGVmdDsKCW1hcmdpbjoxZW0gYXV0bzsKCXRleHQtYWxpZ246Y2VudGVy Owp9Ci5zbWRfc2xpbWJveCBpbWcgewoJbWFyZ2luOjAgYXV0bzsKfQouc21kX3NsaW1ib3gg c3BhbiB7CglmbG9hdDpsZWZ0OwoJd2lkdGg6MTQwcHg7CglwYWRkaW5nOjJweCAwIDAgNXB4 Owp9Ci5zbWRfc2xpbWJveF9uYXYgewoJY2xlYXI6Ym90aDsKCXdpZHRoOjUwMHB4OwoJcGFk ZGluZzoyMHB4Owp9Ci5zbWRfc2xpbWJveF9wcmV2IHsKCWZsb2F0OmxlZnQ7Cn0KLnNtZF9z bGltYm94X25leHQgewoJZmxvYXQ6cmlnaHQ7Cn0KPC9jb2RlPjwvcHJlPgoKCTxoMiBpZD0i Y2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MTkgSmFuIDA3IHwgPGEg aHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfc2xpbWJveF92MC4x LnppcCI+MC4xPC9hPiB8IEluaXRpYWwgcmVsZWFzZSwgYXMgYWJvdmU8L2xpPgoJCTxsaT4y MCBKYW4gMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3Nt ZF9zbGltYm94X3YwLjExLnppcCI+MC4xMTwvYT4gfCBBZGRlZCA8YSBocmVmPSJodHRwOi8v Zm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTEzNzc3MCNwMTM3Nzcw Ij4hY2F0ZWdvcnkgKG5lZ2F0aW9uKSBzdXBwb3J0PC9hPi4gVGhhbmtzIDxhIGhyZWY9Imh0 dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTM3NzUyI3Ax Mzc3NTIiPlZpdHJ1dml1czwvYT48L2xpPgoJCTxsaT4wMiBGZWIgMDcgfCA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9zbGltYm94X3YwLjEyLnppcCI+ MC4xMjwvYT4gfCBBZGRlZCA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29t L3ZpZXd0b3BpYy5waHA/cGlkPTEzOTIyNiNwMTM5MjI2Ij5pbWFnZWlkLCB3aXRoIG5lZ2F0 aW9uIHN1cHBvcnQ8L2E+ICh0aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0 ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xMzkyMTgjcDEzOTIxOCI+d291YXJlbjwvYT4p IGFuZCB0ZXh0cG9zIG9wdGlvbiAodGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0 cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTM5MjE1I3AxMzkyMTUiPmxlZTwvYT4p PC9saT4KCQk8bGk+MDYgRmViIDA3IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29t L2Rvd25sb2Fkcy9zbWRfc2xpbWJveF92MC4yLnppcCI+MC4yPC9hPiB8IGpzIGFuZCBjc3Mg Y2FuIG5vdyBiZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0 b3BpYy5waHA/cGlkPTEzOTYzOSNwMTM5NjM5Ij5sb2FkZWQgZWxzZXdoZXJlPC9hPiAodGhh bmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBo cD9waWQ9MTM5NTc0I3AxMzk1NzQiPmpzdHViYnM8L2E+KS4gQWRkZWQgd3JhcHRhZyBhbmQg Y2hhbmdlZCBkZWZhdWx0cyB0byBtYWtlIG91dHB1dCBsZXNzIGxpa2UgdGFnLXNvdXAgKHRo YW5rcyB3b3VhcmVuKTwvbGk+CgkJPGxpPjEzIEZlYiAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9z dGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1ib3hfdjAuMjEuemlwIj4wLjIxPC9h PiB8IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBo cD9waWQ9MTQwMzczI3AxNDAzNzMiPkFkZGVkIG9yZGVyYnk9JiM4MjE2O2ZpeGVkJiM4MjE3 OzwvYT4gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3Zp ZXd0b3BpYy5waHA/cGlkPTE0MDI4OCNwMTQwMjg4Ij5sZWU8L2E+KSBhbmQgbWlub3Igd2Fy bmZpeCAodGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmll d3RvcGljLnBocD9waWQ9MTQwMjcyI3AxNDAyNzIiPmJlbmppYm90PC9hPik8L2xpPgoJCTxs aT4wNCBNYXIgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRz L3NtZF9zbGltYm94X3YwLjIyLnppcCI+MC4yMjwvYT4gfCBBZGRlZCA8YSBocmVmPSJodHRw Oi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MjA2OTIiPjxzcGFu IGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+PC9hPiBzdXBwb3J0LCA8YSBocmVmPSJodHRwOi8v Zm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE0MjM4OSNwMTQyMzg5 Ij5zdWJjYXRlZ29yeSBzdXBwb3J0IGFuZCBleHRlbmRlZCB0aGUgY2F0ZWdvcnkvaW1hZ2Vp ZCBvcHRpb25zPC9hPi4gTm93IHJlcXVpcmVzIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9kb3dubG9hZHMvc21kX2xpYl92MC4yLnR4dCI+c21kX2xpYjwvYT4gKGluY2x1ZGVk IGluIHRoZSB6aXAgZmlsZSBmb3IgY29udmVuaWVuY2UgYnV0IGF2YWlsYWJsZSBzZXBhcmF0 ZWx5IGFzIHdlbGwpPC9saT4KCQk8bGk+MDQgTWFyIDA3IHwgPGEgaHJlZj0iaHR0cDovL3N0 ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfc2xpbWJveF92MC4yMy56aXAiPjAuMjM8L2E+ IHwgRml4ZWQgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9w aWMucGhwP3BpZD0xNDI0MTkjcDE0MjQxOSI+b3JkZXJieSB3aGVuIHVzaW5nIHJhbmRvbTwv YT4gICh0aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3 dG9waWMucGhwP3BpZD0xNDIzOTAjcDE0MjM5MCI+bXJkYWxlPC9hPikgYW5kIGFkZGVkIGFi aWxpdHkgdG8gb3ZlcnJpZGUgbWF4bGltaXQ8L2xpPgoJCTxsaT4xOSBNYXIgMDcgfCA8YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9zbGltYm94X3YwLjI0 LnppcCI+MC4yNDwvYT4gfCBBbGxvd2VkIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0 dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTQ0MDMwI3AxNDQwMzAiPnNtZF9zbGltYm94 X2luYyB0byBiZSBpZ25vcmVkPC9hPiB2aWEgPGNvZGU+bGliY2hlY2s9JnF1b3Q7MCZxdW90 OzwvY29kZT4gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29t L3ZpZXd0b3BpYy5waHA/cGlkPTE0MzYyOSNwMTQzNjI5Ij5wYXB1YXNzPC9hPik8L2xpPgoJ CTxsaT4zMCBKdW4gMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxv YWRzL3NtZF9zbGltYm94X3YwLjI0Yi56aXAiPjAuMjRiPC9hPiB8IEZpeGVkIDxhIGhyZWY9 Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTUyMTY5 I3AxNTIxNjkiPnBhZ2luZyBpbiBzdWItZGlyZWN0b3J5IGluc3RhbGxhdGlvbnM8L2E+ICh0 aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMu cGhwP3BpZD0xNDc5MTIjcDE0NzkxMiI+dWx0cmFtZWdhPC9hPiBhbmQgPGEgaHJlZj0iaHR0 cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNTIxNjIjcDE1 MjE2MiI+UXdlc3Q8L2E+KTwvbGk+CgkJPGxpPjI4IEp1bCAwNyB8IDxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1ib3hfdjAuMjUuemlwIj4wLjI1 PC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGlj LnBocD9waWQ9MTU0Mjc2I3AxNTQyNzYiPlN1cGVyY2hhcmdlZCB0aGUgZ3JvdXBuYW1lPC9h PiBvcHRpb24gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29t L3ZpZXd0b3BpYy5waHA/cGlkPTE1NDIwMyNwMTU0MjAzIj5bQXhlbF08L2E+KTwvbGk+CgkJ PGxpPjMxIEp1bCAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9h ZHMvc21kX3NsaW1ib3hfdjAuMjVhLnppcCI+MC4yNWE8L2E+IHwgTWFpbnRlbmFuY2UgdXBn cmFkZSBvbmx5LiBObyBmZWF0dXJlcywganVzdCBidW5kbGVkIHRoZSBsYXRlc3Qgc2xpbWJv eC9tb290b29scyBsaWJyYXJ5IGFuZCA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRl cm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE1NDUxNCNwMTU0NTE0Ij5maXhlZCB0aGUgaGVs cCBmaWxlPC9hPjwvbGk+CgkJPGxpPjA0IEF1ZyAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1ib3hfdjAuMjYuemlwIj4wLjI2PC9hPiB8 IEZpeGVkIHBhZ2luZyB0byBhbGxvdyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRl cm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE1NDg1NCNwMTU0ODU0Ij5tdWx0aXBsZSBzbGlt Ym94IHRhZ3MgcGVyIHBhZ2U8L2E+IHRvIGNvLWV4aXN0ICh0aGFua3MgPGEgaHJlZj0iaHR0 cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNTMzODEjcDE1 MzM4MSI+d2hlYXRpY3VzPC9hPik8L2xpPgoJCTxsaT4yMiBBdWcgMDcgfCA8YSBocmVmPSJo dHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9zbGltYm94X3YwLjI3LnppcCI+ MC4yNzwvYT4gfCBBZGRlZCA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29t L3ZpZXd0b3BpYy5waHA/cGlkPTE1NjE4MyNwMTU2MTgzIj50aHVtYm5haWxzLWFzLW1haW4t aW1hZ2U8L2E+IG9wdGlvbiAodGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0 dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTU2MTc1I3AxNTYxNzUiPnByb2dyZTU1PC9h Pik8L2xpPgoJCTxsaT4zMCBBdWcgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5j b20vZG93bmxvYWRzL3NtZF9zbGltYm94X3YwLjI4LnppcCI+MC4yODwvYT4gfCBBZGRlZCA8 YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlk PTE1NjgxNSNwMTU2ODE1Ij5jdXN0b21pc2FibGUgY2FwdGlvbnM8L2E+IHVuZGVyIHRoZSBt YWluIGltYWdlICh0aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNv bS92aWV3dG9waWMucGhwP3BpZD0xNTY1NTgjcDE1NjU1OCI+QWRhbV9WPC9hPikgYW5kIGNv bnNvbGlkYXRlZCBvcmRlcmJ5IChpbnRlcm5hbCBjb2RlKTwvbGk+CgkJPGxpPjE0IFNlcCAw NyB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1i b3hfdjAuMjkuemlwIj4wLjI5PC9hPiB8IEFkZGVkIHRoZSA8YSBocmVmPSJodHRwOi8vZm9y dW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE1NzgyNyNwMTU3ODI3Ij50 aHVtYnNpemU8L2E+IG9wdGlvbiB0byBzZXQgdGh1bWJuYWlsIGRpbWVuc2lvbnMgKHRoYW5r cyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/ cGlkPTE1NzYyNCNwMTU3NjI0Ij5TaW1hbmVrPC9hPik8L2xpPgoJCTxsaT4yMCBTZXAgMDcg fCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9zbGltYm94 X3YwLjI5YS56aXAiPjAuMjlhPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0 dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTU4MzY3I3AxNTgzNjciPkZpeGVkIHVuZGVj bGFyZWQgaW5kZXggd2FybmluZ3M8L2E+ICh0aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVt LnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNTgyNTgjcDE1ODI1OCI+QW1i aXRpb3VzbGVtb248L2E+KTwvbGk+CgkJPGxpPjIwIE9jdCAwNyB8IDxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1ib3hfdjAuMjliLnppcCI+MC4y OWI8L2E+IHwgRml4ZWQgdGhlIGZpeCB0aGF0IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0 cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTYwNzc3I3AxNjA3NzciPmJyb2tlIGlu IHYwLjI0PC9hPiAodGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5j b20vdmlld3RvcGljLnBocD9pZD0yNDM3OCI+TXIuU21pdGg8L2E+KSBhbmQgdGhlICYjODIx NjtweCYjODIxNzsgdGh1bWJzaXplIGlzc3VlICh0aGFua3MgPGEgaHJlZj0iaHR0cDovL2Zv cnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNTkyMjkjcDE1OTIyOSI+ cm9iaW43NDY8L2E+KTwvbGk+CgkJPGxpPjAzIE5vdiAwNyB8IDxhIGhyZWY9Imh0dHA6Ly9z dGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX3NsaW1ib3hfdjAuMjEwLnppcCI+MC4yMTA8 L2E+IHwgVXNlcyBzbWRfbGliIHYwLjMgc28gaW50ZWdlciByYW5nZXMgYXJlIG5vdyBvbmx5 IGFsbG93ZWQgaW4gaW1hZ2VpZC4gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJu LmNvbS92aWV3dG9waWMucGhwP3BpZD0xNjEwNjUjcDE2MTA2NSI+QWRkZWQgdGh1bWJ0ZXh0 L3RodW1idGV4dGNsYXNzL3BhcmFtZGVsaW08L2E+LiBEZXByZWNhdGVkIHNob3dhbHQvc2hv d2NhcHRpb24vYWx0Y2xhc3MvY2FwdGlvbmNsYXNzL3RleHRwb3M8L2xpPgoJCTxsaT4yOCBO b3YgMDcgfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9z bGltYm94X3YwLjIxMS56aXAiPjAuMjExPC9hPiB8IFVzZXMgc21kX2xpYiB2MC4zMS4gRml4 ZWQgc29tZSB3YXJuaW5ncyBhbmQgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJu LmNvbS92aWV3dG9waWMucGhwP3BpZD0xNjMzMDAjcDE2MzMwMCI+YWRkZWQgb25jaGFuZ2Ug aGVhZGluZyBzdXBwb3J0PC9hPiAodGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0 cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTYzMjYzI3AxNjMyNjMiPmthcmwuc3Bl bmNlcjwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3Rv cGljLnBocD9waWQ9MTU3ODMwI3AxNTc4MzAiPmRlY29kZXJsdGQ8L2E+KTwvbGk+CgkJPGxp PjIwIEphbiAwOCB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMv c21kX3NsaW1ib3hfdjAuMjEyLnppcCI+MC4yMTI8L2E+IHwgQWRkZWQgPGEgaHJlZj0iaHR0 cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNjkzNDQjcDE2 OTM0NCI+dGh1bWJ0ZXh0d3JhcDwvYT4gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0u dGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE2OTIzOCNwMTY5MjM4Ij5qb2Rl Y2k8L2E+KSBhbmQgPGNvZGU+P3VybDwvY29kZT4gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8v Zm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE2OTMyNCNwMTY5MzI0 Ij5tYXJrdXNmYWxrPC9hPikgOyBmaXhlZCB3aGl0ZXNwYWNlIGFyb3VuZCAmIzgyMTY7PyYj ODIxNzsgY29kZXM8L2xpPgoJCTxsaT4wMSBBcHIgMDggfCA8YSBocmVmPSJodHRwOi8vc3Rl ZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9zbGltYm94X3YwLjMudHh0Ij4wLjM8L2E+IFsg PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfc2xpbWJveF92 MC4zX3ppcC50eHQiPmd6aXBwZWQ8L2E+IF0gfCBVc2VzIDxhIGhyZWY9Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX2xpYl92MC4zMi50eHQiPnNtZF9saWIgdjAuMzI8 L2E+LiBCYWNrcG9ydGVkIGZlYXR1cmVzIGFuZCByZWZhY3RvcmlzYXRpb24gZnJvbSBzbWRf Z2FsbGVyeSA7IGFkZGVkIHRyaWdnZXIsIGRlbGltLCBuYXZ3cmFwdGFnIGFuZCBsaW5rY2xh c3MgKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0 b3BpYy5waHA/cGlkPTE2OTY4OSNwMTY5Njg5Ij5tYXJpb3M8L2E+KSA7IGNoYW5nZWQgc3Vi Y2F0cyBhbmQgdGh1bWIgKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRl cm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE3NTgxOCNwMTc1ODE4Ij5mYW5nb25rPC9hPikg OyBkZXByZWNhdGVkIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmll d3RvcGljLnBocD9waWQ9MTYzMDI1I3AxNjMwMjUiPnNtZF9zbGltYm94X2luYzwvYT4gOyBy ZW1vdmVkIGNhdGxhYmVsLCBsaWJjaGVjayBhbmQgdGhlIGRlcHJlY2F0ZWQgYXR0cyBmcm9t IHYwLjIxMCA7IHJlbmFtZWQgb3JkZXJieSBhcyBzb3J0IDsgTW9vbmJveCwgTGlnaHRib3gs IExpdGVib3gsIEltYWdlYm94IGFuZCBUaGlja2JveCAoalF1ZXJ5KSBub3cgc3VwcG9ydGVk IDsgYWxzbyB3b3JrcyB3aXRoIGdsel9jdXN0b21fZmllbGRzICh0aGFua3MgPGEgaHJlZj0i aHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP3BpZD0xNzQ5NzQj cDE3NDk3NCI+cHJvZ3JlNTU8L2E+IGFuZCBnZXJoYXJkKTwvbGk+Cgk8L3VsPgoKCTxoMiBp ZD0iY3JlZGl0cyI+Q3JlZGl0czwvaDI+CgoJPHA+VGhpcyBwbHVnaW4gb3JpZ2luYWxseSBw bGFnaWFyaXNlZCBpZGVhcyBmcm9tIFJvYiBTYWJsZSYjODIxNztzIHJzc190aHVtYnBvcCBh bmQgaGFzIGJlZW4gYnVpbHQgdXAgZnJvbSB0aGVyZSB3aXRoIHN1Z2dlc3Rpb25zIGZyb20g dmFyaW91cyA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPmVycyBpbiB0aGUgY29tbXVu aXR5LiBJdCBhbHNvIHdvdWxkbiYjODIxNzt0IGV4aXN0IHdpdGhvdXQgdGhlIGhhcmQgd29y ayBvZiBDaHJpc3RvcGhlIEJleWxzJiM4MjE3OyBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBv ZiBTbGltYm94LiBNYW55IHRoYW5rcyB0byBhbGwgd2hvIGhhdmUgaGVscGVkIGNyYWZ0IHRo aXMgcGx1Z2luLCBhbmQgb2YgY291cnNlIHRvIHRoZSBhd2Vzb21lIFRlYW0gVGV4dFBhdHRl cm4uPC9wPgoKCTxwPjwvZGl2PjwvcD4KPCEtLSAtLS0gQkVHSU4gUExVR0lOIENTUyAtLS0g LS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEu NDU7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMw JSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6 ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsg Ym9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4YzsgZGlz cGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0KI3Nt ZF9oZWxwIC5yZXF1aXJlZCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGE6bGluaywgI3NtZF9o ZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJv cmRlci1ib3R0b206IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21k X2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0aXZlIHsgY29sb3I6IGJsdWU7IHRleHQt ZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsdWU7IHBhZGRp bmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4 IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9 CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGlu ZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJp ZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzY5MzsgZm9udDogYm9sZCAxMnB4IEFyaWFs LCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDIycHggMCAwOyB0 ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30K I3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0 ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBw ZXJjYXNlOyB9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3Nt ZF9oZWxwIGxpIHsgbWFyZ2luLWxlZnQ6MzVweDsgfQojc21kX2hlbHAgLmF0dC1uYW1lIHsg Zm9udC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1h bGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTsgbWFyZ2luOjAgYXV0bzt9CiNzbWRf aGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6 LjVlbSAwO30KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+ CjwhLS0gLS0tIEVORCBQTFVHSU4gQ1NTIC0tLSAtLT4KIjtzOjM6Im1kNSI7czozMjoiNTM2 MTI2N2NmN2VjYWFiYjIyYjY2NzkxZjJiNmEzM2UiO30=