# Name: smd_gallery v0.34 # Type: Client side plugin # A(nother) thumbnail gallery/slideshow creator with unreal flexibility # 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: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTE6InNtZF9nYWxsZXJ5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjM0IjtzOjExOiJkZXNjcmlwdGlvbiI7czo2 OToiQShub3RoZXIpIHRodW1ibmFpbCBnYWxsZXJ5L3NsaWRlc2hvdyBjcmVhdG9yIHdpdGgg dW5yZWFsIGZsZXhpYmlsaXR5IjtzOjQ6ImNvZGUiO3M6MjQ3NDg6ImZ1bmN0aW9uIHNtZF9n YWxsZXJ5KCRhdHRzLCAkdGhpbmc9JycpIHsNCglnbG9iYWwgJHByZXRleHQsICR0aGlzYXJ0 aWNsZSwgJGltZ19kaXI7DQoNCgkvLyAqKiBMT09LVVAgVEFCTEUNCgkvLyBIb2xkcyBkYXRh YmFzZSBmaWVsZCBhcyBrZXkgaW5kZXggYW5kIHBsdWdpbiBvcHRpb24gbmFtZXMgYXMgdmFs dWUuDQoJLy8gVXNlIGFycmF5X3NlYXJjaCB0byBmaW5kIGlmIHZhbHVlIGV4aXN0cyBhbmQg cmV0dXJuIGNvcnJlY3Qga2V5IGZvciB1c2UgaW4gZGIgY2FsbHMvYXJyYXkgcmVmcy4NCgkk ZmllbGRNYXAgPSBhcnJheSgNCgkJInR4cF9pbWFnZS5uYW1lIiA9PiAibmFtZSIsDQoJCSJ0 eHBfaW1hZ2UuaWQiID0+ICJpZCIsDQoJCSJ0eHBfaW1hZ2UuYWx0IiA9PiAiYWx0IiwNCgkJ InR4cF9pbWFnZS5jYXB0aW9uIiA9PiAiY2FwdGlvbiIsDQoJCSJ0eHBfaW1hZ2UuY2F0ZWdv cnkiID0+ICJjYXRlZ29yeSIsDQoJCSJ0eHBfaW1hZ2UuYXV0aG9yIiA9PiAiYXV0aG9yIiwN CgkJInR4cF9pbWFnZS5kYXRlIiA9PiAiZGF0ZSIsDQoJCSJ0eHBfaW1hZ2UuZXh0IiA9PiAi ZXh0IiwNCgkJInR4cF9pbWFnZS53IiA9PiAid2lkdGgiLA0KCQkidHhwX2ltYWdlLmgiID0+ ICJoZWlnaHQiLA0KCQkidHhwX2ltYWdlLnRodW1ibmFpbCIgPT4gImhhc3RodW1iIiwNCgkp Ow0KDQoJLy8gUGx1Z2luIG9wdGlvbnMNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQkndHlw ZScgPT4gJ2ltYWdlJywNCgkJJ2RlbGltJyA9PiAnLCcsDQoJCSdwYXJhbWRlbGltJyA9PiAn OicsDQoJCSdmb3JtJyA9PiAnJywNCgkJJ2lkJyA9PiAnJywNCgkJJ2NhdGVnb3J5JyA9PiAn JywNCgkJJ2RpcmVjdG9yeScgPT4gJycsDQoJCSdtYXRjaCcgPT4gJycsDQoJCSdzdWJsZXZl bCcgPT4gJzAnLA0KCQknc29ydCcgPT4gJ2NhdGVnb3J5JywNCgkJJ29mZnNldCcgPT4gJzAn LA0KCQknbGltaXQnID0+ICcwJywNCgkJJ21heGxpbWl0JyA9PiAnOTk5OTknLA0KCQkndGh1 bWJsaW1pdCcgPT4gJzk5OTk5JywNCgkJJ3RodW1ib2Zmc2V0JyA9PiAnMCcsDQoJCSd0aHVt YicgPT4gJzAnLA0KCQkndGh1bWJzaXplJyA9PiAnJywNCgkJJ3RleHQnID0+ICcnLA0KCQkn Y29sbGF0ZScgPT4gJycsDQoJCSdjb21ibycgPT4gJycsDQoJCSdwYWdlZm9ybScgPT4gJycs DQoJCSduYXZ3cmFwdGFnJyA9PiAndWwnLA0KCQknbmF2YnJlYWsnID0+ICdsaScsDQoJCSdu YXZjbGFzcycgPT4gJ3NtZF9nYWxsZXJ5X25hdicsDQoJCSdlbXB0eWNsYXNzJyA9PiAnZW1w dHknLA0KCQknZ2FsbGVyeWlkJyA9PiAnPzQ6NicsDQoJCSd3cmFwdGFnJyA9PiAnJywNCgkJ J2JyZWFrJyA9PiAnJywNCgkJJ2NsYXNzJyA9PiAnJywNCgkJJ2RlYnVnJyA9PiAnMCcsDQoJ KSwgJGF0dHMpKTsNCg0KCS8vIENhdGVnb3J5IHJlbGllcyBvbiB3aGV0aGVyIGlkIGhhcyBi ZWVuIHNwZWNpZmllZCBvciBub3QuDQoJLy8gbEF0dHMoKSB3b24ndCBsZXQgdXMgaGFuZGxl IHRoaXMgbG9naWMgc28gaXQgaGFzIHRvIGJlIGRvbmUgbWFudWFsbHkNCgkkYXR0ZW1wdE1h dGNoID0gKGVtcHR5KCRjYXRlZ29yeSkgJiYgZW1wdHkoJGlkKSkgPyBmYWxzZSA6IHRydWU7 DQoJJGNhdGVnb3J5ID0gaXNzZXQoJGNhdGVnb3J5KSA/IGRvU2xhc2goJGNhdGVnb3J5KSA6 ICgoJGlkPT0nJykgPyAkcHJldGV4dFsnYyddOiAnJyk7DQoNCgkvLyBIYW5kbGUgZm9ybXMg YW5kIHNldCBhIGRlZmF1bHQgdGFnIGlmIG5vbmUgc3BlY2lmaWVkDQoJJHRoaW5nID0gKGVt cHR5KCRmb3JtKSkgPyAkdGhpbmcgOiBmZXRjaF9mb3JtKCRmb3JtKTsNCgkkdGhpbmcgPSAo ZW1wdHkoJHRoaW5nKSkgPyAnPGEgaHJlZj0ie3VybH0iIGFsdD0ie2FsdH0iPjx0eHA6aW1h Z2UgaWQ9IntpZH0iIC8+PC9hPicgOiAkdGhpbmc7DQoNCgkvLyBQYWdpbmcgaW5pdA0KCSRw YWdpbmcgPSAwOw0KCWlmICgkcGFnZWZvcm0pIHsNCgkJJHBhZ2luZyA9IDE7DQoJCSRwYWdl Zm9ybSA9IGZldGNoX2Zvcm0oJHBhZ2Vmb3JtKTsNCgl9DQoNCgkvLyBUaGUgZ2FsbGVyeSBp ZGVudGlmaWVyIGlzIHVzZWQgZm9yIGtlZXBpbmcgdHJhY2sgb2YgbmV4dC9wcmV2IHRodW1i bmFpbCBwYWdlIGxpbmtzDQoJJGdhbGxJRCA9ICcnOw0KCWlmICgkZ2FsbGVyeWlkID09ICcn IHx8IHN1YnN0cigkZ2FsbGVyeWlkLDAsMSkgPT0gIj8iKSB7DQoJCS8vIEdlbmVyYXRlIGEg KGZhaXJseSBsaWtlbHkpIHVuaXF1ZSBJRCBmb3IgdGhpcyBnYWxsZXJ5IGluc3RhbmNlDQoJ CSRnYWxsVG1wID0gbWQ1KCRjYXRlZ29yeS4kaWQuJGRpcmVjdG9yeS4kbWF0Y2guJHN1Ymxl dmVsLiRzb3J0LiRsaW1pdC4kbWF4bGltaXQpOw0KCQlsaXN0KCRnYWxsTGVuLCAkZ2FsbFNr aXApID0gZXhwbG9kZSgiOiIsIHN1YnN0cigkZ2FsbGVyeWlkLDEpKTsNCgkJJGdhbGxMZW4g PSAgKGVtcHR5KCRnYWxsTGVuKSkgPyAiNCIgOiAkZ2FsbExlbjsNCgkJJGdhbGxTa2lwID0g IChlbXB0eSgkZ2FsbFNraXApKSA/ICIxIiA6ICRnYWxsU2tpcDsNCgkJZm9yICgkaWR4ID0g MCwgJGNudCA9IDA7ICRjbnQgPCAkZ2FsbExlbjsgJGNudCsrLCAkaWR4ID0gKCgkaWR4KyRn YWxsU2tpcCkgJSBzdHJsZW4oJGdhbGxUbXApKSkgew0KCQkJJGdhbGxJRCAuPSAkZ2FsbFRt cFskaWR4XTsNCgkJfQ0KCX0gZWxzZSB7DQoJCSRnYWxsSUQgPSAkZ2FsbGVyeWlkOw0KCX0N CgkkZ2FsbElEID0gInNtZF9nbHJ5XyIuJGdhbGxJRDsgLy8gQXZvaWQgKGFscmVhZHkgaW5j cmVkaWJseSB1bmxpa2VseSkgbmFtZXNwYWNlIGNsYXNoZXMNCg0KCS8vIFRoZSBtYW5uZXIg b2Ygb2J0YWluaW5nIGZpbGVzIGRpZmZlcnMgaWYgdXNpbmcgZGlyZWN0b3J5IHZzIGNhdGVn b3J5L2lkDQoJaWYgKCRkaXJlY3RvcnkpIHsNCgkJJHJzID0gYXJyYXkoKTsNCgkJJHJzYWxs ID0gc21kX2RvRGlyZWN0b3J5KCRkaXJlY3RvcnksIDAsICRzdWJsZXZlbCwgJG1hdGNoLCAk ZGVsaW0pOw0KCQlsaXN0KCRhbGxJbWFnZXMsICRudW1QYWdlcywgJHRodW1QYWdlLCAkb2Zm c2V0KSA9IHNtZF9nZXRQYWdlKCRyc2FsbCwgJGdhbGxJRCwgJGxpbWl0LCAkb2Zmc2V0LCAk cGFnaW5nKTsNCgkJJGRpcmxpbWl0ID0gKCRsaW1pdD09MCkgPyAkbWF4bGltaXQgOiAkbGlt aXQ7DQoJCSRycyA9IGFycmF5X3NsaWNlKCRyc2FsbCwgJG9mZnNldCwgJGRpcmxpbWl0KTsN CgkJJHBvc3RPcmRlciA9IGFycmF5KCk7DQoJCSRmaXhlZE9yZGVyID0gMDsNCgkJJHJhbmRz b3J0ID0gZmFsc2U7DQoJfSBlbHNlIHsNCgkJLy8gUHJvY2VzcyBjYXRlZ29yaWVzL0lEcyBh bmQgbWFrZSB1cCB0aGUgY3J1eCBvZiB0aGUgd2hlcmUgY2xhdXNlLg0KCQkvLyBDbGF1c2Ug b3JkZXIgPSBJRHMgT1IgY2F0cyBBTkQgIWNhdHMgQU5EICFJRHMNCgkJJGNsYXVzZVtdID0g JzE9MSc7DQoJCSRjbGF1c2VPUiA9IGFycmF5KCk7DQoNCgkJLy8gU3Vycm91bmQgZWFjaCBl bnRyeSBpbiB0aGUgSUQgbGlzdCB3aXRoIHF1b3RlcyBhbmQgbWFrZSBhbiBTUUwgImluIiBs aXN0DQoJCSRzdWJpbmZvID0gKCRzdWJsZXZlbCkgPyAiaW1hZ2U6Ii4kc3VibGV2ZWwgOiAn JzsNCgkJbGlzdCgkaWRpbmMsICRpZGV4YykgPSBzbWRfZG9MaXN0KCRpZCwgdHJ1ZSwgJycs IHRydWUsICRkZWxpbSk7DQoJCWxpc3QoJGNhdGluYywgJGNhdGV4YykgPSBzbWRfZG9MaXN0 KCRjYXRlZ29yeSwgZmFsc2UsICRzdWJpbmZvLCB0cnVlLCAkZGVsaW0pOw0KCQlpZiAoJGlk aW5jKSB7DQoJCQkkY2xhdXNlT1JbXSA9ICd0eHBfaW1hZ2UuaWQgSU4gKCcuaW1wbG9kZSgi LCIsICRpZGluYykuJyknOw0KCQl9DQoJCWlmICgkY2F0aW5jKSB7DQoJCQkkY2xhdXNlT1Jb XSA9ICd0eHBfaW1hZ2UuY2F0ZWdvcnkgSU4gKCcuaW1wbG9kZSgiLCIsICRjYXRpbmMpLicp JzsNCgkJfQ0KCQlpZiAoIWVtcHR5KCRjbGF1c2VPUikpIHsNCgkJCSRjbGF1c2VbXSA9ICcg KCcuaW1wbG9kZSgiIE9SICIsICRjbGF1c2VPUikuJykgJzsNCgkJfQ0KDQoJCSRjbGF1c2Ug PSBpbXBsb2RlKCIgQU5EICIsICRjbGF1c2UpOw0KCQkkY2xhdXNlIC49ICgkY2F0ZXhjKSA/ ICcgQU5EIHR4cF9pbWFnZS5jYXRlZ29yeSBOT1QgSU4gKCcuaW1wbG9kZSgiLCIsICRjYXRl eGMpLicpJyA6ICcnOw0KCQkkY2xhdXNlIC49ICgkaWRleGMpID8gJyBBTkQgdHhwX2ltYWdl LmlkIE5PVCBJTiAoJy5pbXBsb2RlKCIsIiwgJGlkZXhjKS4nKScgOiAnJzsNCg0KCQkvLyBJ ZiBhIGNhdGVnb3J5L2lkIG9wdGlvbiB3YXMgY2hvc2VuIGFuZCB0aGV5IG1hdGNoZWQgbm90 aGluZywgdXNlIGEgYm9ndXMgY2F0ZWdvcnkgdGhhdCBzaG91bGQgbm90IGV4aXN0Lg0KCQkv LyBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgcGx1Z2luIGRvZXMgdGhlIGV4cGVjdGVkIHRoaW5n IG9mIG1hdGNoaW5nIG5vdGhpbmcgaW4gdGhlIGV2ZW50IGl0IGZpbmRzIG5vdGhpbmcuDQoJ CWlmICgkY2xhdXNlID09ICIxPTEiICYmICRhdHRlbXB0TWF0Y2gpIHsNCgkgIAkJJGNsYXVz ZSA9ICd0eHBfaW1hZ2UuY2F0ZWdvcnkgPSAic21kXycgLm10X3JhbmQoKS4gJyInOw0KCQl9 DQoNCgkJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJCWVjaG8gIisrIElOQ0xVREVEL0VYQ0xVREVE IElEcyBBTkQgQ0FUcyArKyI7DQoJCQlkbXAoJGlkaW5jKTsNCgkJCWRtcCgkaWRleGMpOw0K CQkJZG1wKCRjYXRpbmMpOw0KCQkJZG1wKCRjYXRleGMpOw0KCQl9DQoNCgkJLy8gQ29udmVy dCB0aGUgc29ydCBpbnRvIGEgdmFsaWQgc29ydGluZyBoaWVyYXJjaHkuDQoJCS8vIE5vdGUg dGhhdCByYW5kb20gaXMgYSBzcGVjaWFsIGNhc2UgYW5kIHRoZSBmb2xsb3dpbmcgcnVsZXMg YXBwbHk6DQoJCS8vICAxKSBBbnl0aGluZyBhcHBlYXJpbmcgYmVmb3JlIHJhbmRvbSBpcyBw YXNzZWQgdG8gdGhlIGRhdGFiYXNlIHF1ZXJ5IGZvciBvcmRlcmluZw0KCQkvLyAgMikgQXMg c29vbiBhcyByYW5kb20gaXMgZW5jb3VudGVyZWQsIHRoZSByZXN0IG9mIHRoZSBzb3J0IHN0 cmluZyBpcyBpZ25vcmVkLg0KCQkvLyAgICAgVGhlIHJlc3VsdHNldCB3aWxsIGJlIHNvcnRl ZCByYW5kb21seSBpbnN0ZWFkDQoJCS8vICAzKSBJZiByYW5kb20gYXBwZWFycyBmaXJzdCBp biB0aGUgbGlzdCwgdGhlIGRhdGEgaXMgcmV0cmlldmVkIHJhbmRvbWx5IHRoZW4gdGhlDQoJ CS8vICAgICByZW1haW5pbmcgb3B0aW9ucyBzb3J0IHRoZSByZXN1bHRzZXQNCgkJJGNsYXVz ZVNvcnQgPSBhcnJheSgpOw0KCQkkcG9zdE9yZGVyID0gYXJyYXkoKTsNCgkJJHJ1bGUgPSAi c3FsIjsNCgkJJHBvc3RQcmVmaXggPSAiU09SVF8iOw0KCQkkZml4ZWRPcmRlciA9ICRyYW5k c29ydCA9IGZhbHNlOw0KCQkkc29ydCA9IGRvX2xpc3QoJHNvcnQsICRkZWxpbSk7DQoJCWZv ciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkc29ydCk7ICRpZHgrKykgew0KCQkJJHNvcnRf ZGlyID0gZXhwbG9kZSgnICcsICRzb3J0WyRpZHhdKTsNCgkJCSRkaXJlY3Rpb24gPSAkY29s UmVmID0gJyc7DQoJCQlpZiAoY291bnQoJHNvcnRfZGlyKSA8PSAxKSB7DQoJCQkJJHNvcnRf ZGlyWzFdID0gImFzYyI7DQoJCQl9DQoJCQlpZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJCQkk ZGlyZWN0aW9uID0gKCRzb3J0X2RpclsxXSA9PSAiZGVzYyIpID8gJyBkZXNjJyA6ICcgYXNj JzsNCgkJCX0gZWxzZSB7DQoJCQkJJGRpcmVjdGlvbiA9ICgkc29ydF9kaXJbMV0gPT0gImRl c2MiKSA/ICRwb3N0UHJlZml4LidERVNDJyA6ICRwb3N0UHJlZml4LidBU0MnOw0KCQkJfQ0K DQoJCQlzd2l0Y2ggKCRzb3J0X2RpclswXSkgew0KCQkJCWNhc2UgJ3JhbmRvbSc6DQoJCQkJ CSRydWxlID0gInBvc3QiOw0KCQkJCQlpZiAoJGlkeCA9PSAwKSB7DQoJCQkJCQkkY2xhdXNl U29ydFtdID0gJ3JhbmQoKSc7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkcmFuZHNvcnQgPSB0 cnVlOw0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2ZpeGVkJzoNCgkJCQkJLy8g J2ZpeGVkJyBvbmx5IHdvcmtzIG9uIGlkcw0KCQkJCQkkZml4ZWRPcmRlciA9ICgkaWQgPT0g JycpID8gZmFsc2UgOiB0cnVlOw0KCQkJCQlicmVhazsNCgkJCQlkZWZhdWx0Og0KCQkJCQkk Y29sUmVmID0gYXJyYXlfc2VhcmNoKCRzb3J0X2RpclswXSwgJGZpZWxkTWFwKTsNCgkJCQkJ YnJlYWs7DQoJCQl9DQoJCQlpZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJCQlpZiAoJGNvbFJl ZiAhPSAnJykgew0KCQkJCQkkY2xhdXNlU29ydFtdID0gJGNvbFJlZi4kZGlyZWN0aW9uOw0K CQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJaWYgKCEkcmFuZHNvcnQpIHsNCgkJCQkJaWYgKCRj b2xSZWYgIT0gJycpIHsNCgkJCQkJCSRwb3N0T3JkZXJbXSA9IGFycmF5KCJjb2wiID0+ICRj b2xSZWYsICJzb3J0IiA9PiAkZGlyZWN0aW9uKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJ fQ0KDQoJCWlmIChjb3VudCgkY2xhdXNlU29ydCkgPiAwKSB7DQoJCQkkY2xhdXNlIC49ICcg T1JERVIgQlkgJyAuIGltcGxvZGUoIiwiLCRjbGF1c2VTb3J0KTsNCgkJfQ0KCQlpZiAoJGRl YnVnID4gMCkgew0KCQkJZWNobyAiKysgV0hFUkUgQ0xBVVNFICsrIjsNCgkJCWRtcCgkY2xh dXNlKTsNCgkJfQ0KCQkvLyBUaGUgZGF0YWJhc2UgZmllbGRzIHJlcXVpcmVkDQoJCSRmaWVs ZHMgPSBpbXBsb2RlKCIsIiwgYXJyYXlfa2V5cygkZmllbGRNYXApKTsNCg0KCQkvLyBUaW1l IHRvIGdyYWIgdGhlIG1hdGNoaW5nIHJvd3MgZnJvbSB0aGUgZGF0YWJhc2UNCgkJJHJzYWxs ID0gc2FmZV9yb3dzKCRmaWVsZHMsICd0eHBfaW1hZ2UnLCAkY2xhdXNlIC4nIExJTUlUICcu JG9mZnNldC4nLCcuJG1heGxpbWl0KTsNCgkJbGlzdCgkYWxsSW1hZ2VzLCAkbnVtUGFnZXMs ICR0aHVtUGFnZSwgJG9mZnNldCkgPSBzbWRfZ2V0UGFnZSgkcnNhbGwsICRnYWxsSUQsICRs aW1pdCwgJG9mZnNldCwgJHBhZ2luZyk7DQoJCSRycyA9IHNhZmVfcm93cygkZmllbGRzLics IHR4cF9jYXRlZ29yeS50aXRsZSBBUyBjYXRfdGl0bGUnLCAndHhwX2ltYWdlLCB0eHBfY2F0 ZWdvcnknLCAndHhwX2NhdGVnb3J5Lm5hbWUgPSB0eHBfaW1hZ2UuY2F0ZWdvcnkgQU5EIHR4 cF9jYXRlZ29yeS50eXBlPSJpbWFnZSIgQU5EICcgLiRjbGF1c2UgLicgTElNSVQgJyAuJG9m ZnNldC4gJywnLiAoKCRsaW1pdD09MCkgPyAkbWF4bGltaXQgOiAkbGltaXQpKTsNCgl9DQoN CgkvLyBJcyBwb3N0LW9yZGVyaW5nIHJlcXVpcmVkPyBEbyBpdA0KCWlmICgkcmFuZHNvcnQp IHsNCgkJc2h1ZmZsZSgkcnMpOw0KCX0gZWxzZSBpZiAoY291bnQoJHBvc3RPcmRlcikgPiAw KSB7DQoJCS8vIFRyYW5zbGF0ZSB0aGUgcm93cyBpbnRvIGNvbHVtbnMgdGhhdCBjYW4gYmUg c29ydGVkDQoJCWZvcmVhY2goJHJzIGFzICRrZXkgPT4gJHJvdykgew0KCQkJJGNvbF9pZFsk a2V5XSA9ICRyb3dbJ2lkJ107DQoJCQkkY29sX25hbWVbJGtleV0gPSAkcm93WyduYW1lJ107 DQoJCQkkY29sX2NhcHRpb25bJGtleV0gPSAkcm93WydjYXB0aW9uJ107DQoJCQkkY29sX2Fs dFska2V5XSA9ICRyb3dbJ2FsdCddOw0KCQkJJGNvbF9jYXRlZ29yeVska2V5XSA9ICRyb3db J2NhdGVnb3J5J107DQoJCQkkY29sX2RhdGVbJGtleV0gPSAkcm93WydkYXRlJ107DQoJCQkk Y29sX2V4dFska2V5XSA9ICRyb3dbJ2V4dCddOw0KCQkJJGNvbF9hdXRob3JbJGtleV0gPSAk cm93WydhdXRob3InXTsNCgkJCSRjb2xfd1ska2V5XSA9ICRyb3dbJ3cnXTsNCgkJCSRjb2xf aFska2V5XSA9ICRyb3dbJ2gnXTsNCgkJCSRjb2xfdGh1bWJuYWlsWyRrZXldID0gJHJvd1sn dGh1bWJuYWlsJ107DQoJCX0NCgkJLy8gTWFrZSB1cCBhbiBhcnJheV9tdWx0aXNvcnQgYXJn IGxpc3QgYW5kIGV4ZWN1dGUgaXQNCgkJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRw b3N0T3JkZXIpOyAkaWR4KyspIHsNCgkJCSRzb3J0YXJnc1tdID0gJyRjb2xfJy4kcG9zdE9y ZGVyWyRpZHhdWydjb2wnXTsNCgkJCSRzb3J0YXJnc1tdID0gJHBvc3RPcmRlclskaWR4XVsn c29ydCddOw0KCQl9DQoJCSRzb3J0aXQgPSAnYXJyYXlfbXVsdGlzb3J0KCcuaW1wbG9kZSgi LCAiLCRzb3J0YXJncykuJywgJHJzKTsnOw0KCQlldmFsKCRzb3J0aXQpOw0KCX0NCg0KCS8v IElzIGZpeGVkLW9yZGVyIG91dHB1dCBkZXNpcmVkPyBJZiBzbywgcmUtb3JkZXIgdGhlICRy cw0KCWlmICgkZml4ZWRPcmRlcikgew0KCQkkb3JkZXJlZFJTID0gQXJyYXkoKTsNCgkJJGln bm9yZUxpc3QgPSBBcnJheSgpOw0KCQkkcmVtYWluaW5nUlMgPSBBcnJheSgpOw0KCQkvLyBT dWNrIG91dCB0aGUgZml4ZWQgaXRlbXMgZmlyc3QNCgkJZm9yICgkaWR4ID0gMDsgJGlkeCA8 IGNvdW50KCRpZGluYyk7ICRpZHgrKykgew0KCQkJZm9yZWFjaCgkcnMgYXMgJHJvdykgew0K CQkJCWlmICgiJyIuJHJvd1snaWQnXS4iJyIgPT0gJGlkaW5jWyRpZHhdKSB7DQoJCQkJCSRv cmRlcmVkUlNbXSA9ICRyb3c7DQoJCQkJCSRpZ25vcmVMaXN0W10gPSAkcm93WydpZCddOw0K CQkJCX0NCgkJCX0NCgkJfQ0KCQkvLyBUYWNrIG9uIHRoZSByZW1haW5pbmcgcm93cw0KCQlm b3JlYWNoKCRycyBhcyAkcm93KSB7DQoJCQlpZiAoIWluX2FycmF5KCRyb3dbJ2lkJ10sICRp Z25vcmVMaXN0KSkgew0KCQkJCSRyZW1haW5pbmdSU1tdID0gJHJvdzsNCgkJCX0NCgkJfQ0K CQkkcnMgPSBhcnJheV9tZXJnZSgkb3JkZXJlZFJTLCAkcmVtYWluaW5nUlMpOw0KCX0NCg0K CS8vIEhhbmRsZSB0aHVtYnNpemUgLSBvZiBsaW1pdGVkIHVzZSBub3cgYnV0IHN0aWxsIGF2 YWlsYWJsZQ0KCSR0aHVtYldpZHRoID0gJHRodW1iSGVpZ2h0ID0gJyc7DQoJJHRodW1iV1Vu aXRzID0gJHRodW1iSFVuaXRzID0gJyc7DQoJaWYgKCR0aHVtYnNpemUpIHsNCgkJJHRodW1i U2l6ZXMgPSBkb19saXN0KCR0aHVtYnNpemUsICRkZWxpbSk7DQoJCWlmIChjb3VudCgkdGh1 bWJTaXplcykgPT0gMSkgew0KCQkJJHRodW1iV2lkdGggPSAkdGh1bWJIZWlnaHQgPSBlcmVn X3JlcGxhY2UoIlteMC05XSIsICcnLCAkdGh1bWJTaXplc1swXSk7DQoJCQkkdW5pdHMgPSBl cmVnX3JlcGxhY2UoIlswLTldIiwgJycsICR0aHVtYlNpemVzWzBdKTsNCgkJCSR0aHVtYldV bml0cyA9ICR0aHVtYkhVbml0cyA9ICgkdW5pdHMgPT0gJycpID8gJHRodW1iV1VuaXRzIDog JHVuaXRzOw0KCQl9IGVsc2Ugew0KCQkJJHRodW1iV2lkdGggPSBlcmVnX3JlcGxhY2UoIlte MC05XSIsICcnLCAkdGh1bWJTaXplc1swXSk7DQoJCQkkdGh1bWJIZWlnaHQgPSBlcmVnX3Jl cGxhY2UoIlteMC05XSIsICcnLCAkdGh1bWJTaXplc1sxXSk7DQoJCQkkdW5pdHMgPSBlcmVn X3JlcGxhY2UoIlswLTldIiwgJycsICR0aHVtYlNpemVzWzBdKTsNCgkJCSR0aHVtYldVbml0 cyA9ICgkdW5pdHMgPT0gJycgJiYgJHRodW1iV2lkdGggIT0gJycpID8gJHRodW1iV1VuaXRz IDogJHVuaXRzOw0KCQkJJHVuaXRzID0gZXJlZ19yZXBsYWNlKCJbMC05XSIsICcnLCAkdGh1 bWJTaXplc1sxXSk7DQoJCQkkdGh1bWJIVW5pdHMgPSAoJHVuaXRzID09ICcnICYmICR0aHVt YkhlaWdodCAhPSAnJykgPyAkdGh1bWJIVW5pdHMgOiAkdW5pdHM7DQoJCX0NCgl9DQoNCgkv LyBDb2xsYXRpb24gZGVmZXJzIHBhcnNpbmcgdGhlIGZvcm0gZm9yIGVhY2ggcmV0dXJuZWQg aXRlbS4NCgkvLyBJbnN0ZWFkIGl0IG91dHB1dHMgdGhlIGRhdGEgYXMgYSBsaXN0IGF0IHRo ZSBlbmQgKGl0ZW1zIG1heSBiZSBpbmRpdmlkdWFsbHkgcXVvdGVkIG9yIGV4dHJhY3RlZCBp ZiByZXF1aXJlZCkNCgkvL1RPRE8gOiBBZGQgQUxXQVlTIHN3aXRjaCBhcyBhIHNob3J0Y3V0 IHRvIHNwZWNpZnkgdGhhdCBhbGwgbWF0Y2hpbmcgaXRlbXMgKHJlZ2FyZGxlc3Mgb2YgIzEs ICMyLCAjMyBldGMpIGFyZSB0byBiZSBxdW90ZWQNCglpZiAoJGNvbGxhdGUpIHsNCgkJJGRi bFF1b3RlID0gJHNnbFF1b3RlID0gYXJyYXkoJ1NNRE5PTkUnKTsNCgkJJGNvbGxhdGVPcHRz ID0gZG9fbGlzdCgkY29sbGF0ZSwgJGRlbGltKTsNCgkJZm9yZWFjaCAoJGNvbGxhdGVPcHRz IGFzICRvcHRpb24pIHsNCgkJCSRpbmRleGVzID0gZG9fbGlzdCgkb3B0aW9uLCAkcGFyYW1k ZWxpbSk7DQoJCQkkY29sVHlwZSA9IGFycmF5X3NoaWZ0KCRpbmRleGVzKTsNCgkJCS8vIFN1 cHBseWluZyAncXVvdGUnIG9uIGl0cyBvd24gd2lsbCBlbXB0eSB0aGUgcmVsZXZhbnQgYXJy YXksIGltcGx5aW5nICJBTEwiIGZpZWxkcyBhcmUgdG8gYmUgcXVvdGVkDQoJCQlzd2l0Y2gg KCRjb2xUeXBlKSB7DQoJCQkJY2FzZSAic2dscXVvdGUiOg0KCQkJCQkkc2dsUXVvdGUgPSAk aW5kZXhlczsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAiZGJscXVvdGUiOg0KCQkJCWNhc2Ug InF1b3RlIjoNCgkJCQkJJGRibFF1b3RlID0gJGluZGV4ZXM7DQoJCQkJCWJyZWFrOw0KCQkJ fQ0KCQl9DQoJfQ0KDQoJLy8gQ29tYm9zIGFyZSB1c2VyLWRlZmluZWQgY29tYmluYXRpb25z IG9mIHJlcGxhY2VtZW50IG1vZGlmaWVycyAoZS5nLiBpZGV4dDoge2lkfXtleHR9LCAuLi4N CgkkY29tYm9zID0gYXJyYXkoKTsNCglpZiAoJGNvbWJvKSB7DQoJCSRjb21ibyA9IGRvX2xp c3QoJGNvbWJvLCAkZGVsaW0pOw0KCQlmb3JlYWNoICgkY29tYm8gYXMgJG5ld0RlZikgew0K CQkJbGlzdCgkZGVmUGFydHMsICR1bndhbnRlZCkgPSBzbWRfZG9MaXN0KCRuZXdEZWYsIGZh bHNlLCAnJywgZmFsc2UsICRwYXJhbWRlbGltKTsNCgkJCSRkZWZOYW1lID0gInsiLmFycmF5 X3NoaWZ0KCRkZWZQYXJ0cykuIn0iOw0KCQkJJGNvbWJvc1skZGVmTmFtZV0gPSAkZGVmUGFy dHNbMF07DQoJCX0NCgl9DQoJaWYgKCRkZWJ1ZyA+IDEpIHsNCgkJZWNobyAiKysgQ09NQk9z ICsrIjsNCgkJZG1wKCRjb21ib3MpOw0KCX0NCgkvLyBDb25zdHJ1Y3QgdGhlIG91dHB1dA0K CSRvdXQgPSBhcnJheSgpOw0KCSRjb2xsYXRpb25zID0gYXJyYXkoKTsNCglpZiAoJGRlYnVn ID4gMikgew0KCQllY2hvICIrKyBSRUNPUkQgU0VUICsrIjsNCgkJZG1wKCRycyk7DQoJfQ0K CWlmICgkZGVidWcgPiAzKSB7DQoJCWVjaG8gIisrIEFWQUlMQUJMRSAnPycgVkFSUyArKyI7 DQoJCWRtcCgkcHJldGV4dCk7DQoJCWRtcCgkdGhpc2FydGljbGUpOw0KCX0NCg0KCWlmKCRy cykgew0KCQkkaWR4ID0gMDsNCgkJJGN0ciA9IDE7DQoJCSRudW1JbWFnZXMgPSBjb3VudCgk cnMpOw0KCQlmb3JlYWNoKCRycyBhcyAkcm93KSB7DQoJCQlpZiAoJGRpcmVjdG9yeSkgew0K CQkJCSR1cmxQYXRoID0gJHJvd1sncGF0aCddLkRTOw0KCQkJfSBlbHNlIHsNCgkJCQkkdXJs UGF0aCA9IGh1LiRpbWdfZGlyLkRTOw0KCQkJfQ0KCQkJJHRoZVRodW1iID0gJHVybFBhdGgg LiAkcm93WydpZCddIC4gJ3QnIC4gJHJvd1snZXh0J107DQoJCQkkZnVsbFNpemUgPSAkdXJs UGF0aCAuICRyb3dbJ2lkJ10gLiAoKCR0aHVtYikgPyAidCIgOiAnJykgLiRyb3dbJ2V4dCdd Ow0KDQoJCQkvLyBJcyBhIHRodW1iL3RleHQgb2JqZWN0IHJlcXVpcmVkIHRoaXMgdGltZT8N CgkJCSRvYmplY3QgPSAnJzsNCgkJCWlmICgkaWR4ID49ICR0aHVtYm9mZnNldCAmJiAkaWR4 IDwgJHRodW1ib2Zmc2V0KyR0aHVtYmxpbWl0KSB7DQoJCQkJc3dpdGNoICgkdHlwZSkgew0K CQkJCQljYXNlICdpbWFnZSc6DQoJCQkJCQkkb2JqZWN0ID0gKCR0ZXh0KSA/ICR0ZXh0IDog JzxpbWcgc3JjPSInLiR0aGVUaHVtYi4nIicgLigoJHJvd1snYWx0J10pID8gJyBhbHQ9Iicu JHJvd1snYWx0J10uJyInIDogJycpIC4oKCR0aHVtYldpZHRoKSA/ICcgd2lkdGg9IicuJHRo dW1iV2lkdGguJHRodW1iV1VuaXRzLiciJyA6ICcnKSAuKCgkdGh1bWJIZWlnaHQpID8gJyBo ZWlnaHQ9IicuJHRodW1iSGVpZ2h0LiR0aHVtYkhVbml0cy4nIicgOiAnJykgLicgLz4nOw0K CQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBDb25zdHJ1Y3QgdGhlIHJlcGxh Y2VtZW50IGFycmF5DQoJCQkkcmVwbGFjZW1lbnRzID0gYXJyYXkoDQoJCQkJCSd7aWR9JyA9 PiAkcm93WydpZCddLA0KCQkJCQkne25hbWV9JyA9PiAkcm93WyduYW1lJ10sDQoJCQkJCSd7 ZXh0fScgPT4gJHJvd1snZXh0J10sDQoJCQkJCSd7Y2F0ZWdvcnl9JyA9PiAkcm93WydjYXRl Z29yeSddLA0KCQkJCQkne2NhdGVnb3J5X3RpdGxlfScgPT4gJHJvd1snY2F0X3RpdGxlJ10s DQoJCQkJCSd7YXV0aG9yfScgPT4gJHJvd1snYXV0aG9yJ10sDQoJCQkJCSd7aGFzdGh1bWJ9 JyA9PiAkcm93Wyd0aHVtYm5haWwnXSwNCgkJCQkJJ3t1cmx9JyA9PiAkZnVsbFNpemUsDQoJ CQkJCSd7dGh1bWJ1cmx9JyA9PiAkdGhlVGh1bWIsDQoJCQkJCSd7aW1hZ2VwYXRofScgPT4g JHVybFBhdGgsDQoJCQkJCSd7aW1hZ2VkZWZ9JyA9PiBiYXNlbmFtZSgkZnVsbFNpemUpLA0K CQkJCQkne3RodW1iZGVmfScgPT4gYmFzZW5hbWUoJHRoZVRodW1iKSwNCgkJCQkJJ3thbHR9 JyA9PiAkcm93WydhbHQnXSwNCgkJCQkJJ3t0aXRsZX0nID0+ICRyb3dbJ2NhcHRpb24nXSwN CgkJCQkJJ3t0aHVtYndpZHRofScgPT4gJHRodW1iV2lkdGgsDQoJCQkJCSd7dGh1bWJoZWln aHR9JyA9PiAkdGh1bWJIZWlnaHQsDQoJCQkJCSd7dGh1bWJ3dW5pdHN9JyA9PiAkdGh1bWJX VW5pdHMsDQoJCQkJCSd7dGh1bWJodW5pdHN9JyA9PiAkdGh1bWJIVW5pdHMsDQoJCQkJCSd7 d2lkdGh9JyA9PiAkcm93Wyd3J10sDQoJCQkJCSd7aGVpZ2h0fScgPT4gJHJvd1snaCddLA0K CQkJCQkne2RhdGV9JyA9PiAkcm93WydkYXRlJ10sDQoJCQkJCSd7b2JqZWN0fScgPT4gJG9i amVjdCwNCgkJCQkJJ3tnYWxsZXJ5aWR9JyA9PiAkZ2FsbElELA0KCQkJCQkne2luZGV4fScg PT4gJGlkeCwNCgkJCQkJJ3tjb3VudGVyfScgPT4gJGN0ciwNCgkJCQkJJ3t0b3RhbGltYWdl c30nID0+ICRudW1JbWFnZXMsDQoJCQkJCSd7bWF4aW1hZ2VzfScgPT4gJGFsbEltYWdlcywN CgkJCQkpOw0KDQoJCQkvLyBBcHBlbmQgYW55IGNvbWJvcw0KCQkJZm9yZWFjaCAoJGNvbWJv cyBhcyAkZGVmTmFtZSA9PiAkbmV3RGVmKSB7DQoJCQkJaWYgKCFhcnJheV9rZXlfZXhpc3Rz KCRkZWZOYW1lLCAkcmVwbGFjZW1lbnRzKSkgew0KCQkJCQkkcmVwbGFjZW1lbnRzWyRkZWZO YW1lXSA9IHN0cnRyKCRuZXdEZWYsICRyZXBsYWNlbWVudHMpOw0KCQkJCX0NCgkJCX0NCg0K CQkJLy8gU29sb3MgYXJlIGl0ZW1zIGluIHRoZSBvdXRwdXQgZm9ybSB0aGF0IHJlcXVpcmUg ZGV0YWlscyBmcm9tIGEgc3BlY2lmaWMgcm93LiBVc2VmdWwgb25seSBpbiBjb2xsYXRpb24N CgkJCS8vIG1vZGUsIHRoZXkgYXJlIGFkZGVkIHRvIHRoZSByZXBsYWNlbWVudHMgYXJyYXkg b24gYW4gYXMtbmVlZGVkIGJhc2lzIHRvIHNhdmUgc3BhY2UvdGltZQ0KCQkJJHNvbG9SRSA9 ICcvXHsoW2EtejAtOV0rKSMnLiRjdHIuJ1x9Lyc7DQoJCQkkbnVtU29sb3MgPSBwcmVnX21h dGNoX2FsbCgkc29sb1JFLCAkdGhpbmcsICRzb2xvcyk7DQoJCQlmb3IgKCRzb2xvQ3RyID0g MDsgJHNvbG9DdHIgPCAkbnVtU29sb3M7ICRzb2xvQ3RyKyspIHsNCgkJCQkkZmllbGRuYW1l ID0gJ3snLiRzb2xvc1sxXVskc29sb0N0cl0uJyMnLiRjdHIuJ30nOw0KCQkJCSRncmFiZmll bGQgPSAneycuJHNvbG9zWzFdWyRzb2xvQ3RyXS4nfSc7DQoJCQkJJHJlcGxhY2VtZW50c1sk ZmllbGRuYW1lXSA9ICRyZXBsYWNlbWVudHNbJGdyYWJmaWVsZF07DQoJCQl9DQoNCgkJCWlm ICgkZGVidWcgPiAwKSB7DQoJCQkJZWNobyAiKysgUkVQTEFDRU1FTlRTIDogSU1BR0UgIi4k Y3RyLiIgKysiOw0KCQkJCWRtcCgkcmVwbGFjZW1lbnRzKTsNCgkJCX0NCg0KCQkJLy8gSW4g Y29sbGF0ZSBtb2RlIHRoZSBmb3JtIGlzIG9ubHkgcGFyc2VkIGF0IHRoZSBlbmQ6IGJ1aWxk IGEgY29sbG9zYWwgbXVsdGktZGltZW5zaW9uIGFycmF5IG9mIGFsbCBpdGVtcyBoZXJlDQoJ CQlpZiAoJGNvbGxhdGUpIHsNCgkJCQlmb3JlYWNoICgkcmVwbGFjZW1lbnRzIGFzICRkZWZO YW1lID0+ICRkZWZWYWwpIHsNCgkJCQkJJGNvbGxhdGlvbnNbJGRlZk5hbWVdW10gPSAkZGVm VmFsOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJJG91dFtdID0gcGFyc2Uoc3RydHIoJHRo aW5nLCAkcmVwbGFjZW1lbnRzKSk7DQoJCQl9DQoNCgkJCSRpZHgrKzsNCgkJCSRjdHIrKzsN CgkJfQ0KCQlpZiAoJGNvbGxhdGUpIHsNCgkJCWZvcmVhY2ggKCRjb2xsYXRpb25zIGFzICRp dGVtID0+ICRsaXN0KSB7DQoJCQkJLy8gUXVvdGUgdGhlIGxpc3RzIGlmIHJlcXVpcmVkDQoJ CQkJJGxpc3QgPSAoZW1wdHkoJGRibFF1b3RlKSB8fCBpbl9hcnJheSgkaXRlbSwgJGRibFF1 b3RlKSkgPyBkb0FycmF5KCRsaXN0LCAnc21kX2RvRGJsUXVvdGUnKSA6ICRsaXN0Ow0KCQkJ CSRsaXN0ID0gKGVtcHR5KCRzZ2xRdW90ZSkgfHwgaW5fYXJyYXkoJGl0ZW0sICRzZ2xRdW90 ZSkpID8gZG9BcnJheSgkbGlzdCwgJ2RvUXVvdGUnKSA6ICRsaXN0Ow0KCQkJCSRjb2xsYXRp b25zWyRpdGVtXSA9IGltcGxvZGUoJGRlbGltLCAkbGlzdCk7DQoJCQl9DQoJCQlpZiAoJGRl YnVnID4gMCkgew0KCQkJCWVjaG8gIisrIENPTExBVElPTlMgKysiOw0KCQkJCWRtcCgkY29s bGF0aW9ucyk7DQoJCQl9DQoJCQkkb3V0W10gPSBwYXJzZShzdHJ0cigkdGhpbmcsICRjb2xs YXRpb25zKSk7DQoJCX0NCg0KCQkvLyBBZGQgdGhlIHBhZ2luZyBmZWF0dXJlcyBpZiByZXF1 aXJlZA0KCQlpZiAoKCRsaW1pdCA+IDApICYmICRwYWdpbmcpIHsNCgkJCSRuYXZvdXQgPSBh cnJheSgpOw0KCQkJJG5leHQgPSAoJG51bVBhZ2VzID4gMSAmJiAkdGh1bVBhZ2UgIT0gJG51 bVBhZ2VzKTsNCgkJCSRwcmV2ID0gKCRudW1QYWdlcyA+IDEgJiYgJHRodW1QYWdlID4gMSk7 DQoNCgkJCS8vIFJlcGxhY2UgYW55IHBhZ2luZyBpbmZvIGluIHRoZSBxdWVyeSBzdHJpbmcN CgkJCSRwcmV2UGFnZSA9IHNtZF9hZGRRU1ZhcigkcHJldGV4dFsncmVxdWVzdF91cmknXSwg JGdhbGxJRCwgJHRodW1QYWdlLTEpOw0KCQkJJG5leHRQYWdlID0gc21kX2FkZFFTVmFyKCRw cmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAkdGh1bVBhZ2UrMSk7DQoJCQkkdGhp c1BhZ2UgPSBzbWRfYWRkUVNWYXIoJHByZXRleHRbJ3JlcXVlc3RfdXJpJ10sICRnYWxsSUQs ICR0aHVtUGFnZSk7DQoJCQkkZmlyc3RQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0Wydy ZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAxKTsNCgkJCSRsYXN0UGFnZSA9IHNtZF9hZGRRU1Zh cigkcHJldGV4dFsncmVxdWVzdF91cmknXSwgJGdhbGxJRCwgJG51bVBhZ2VzKTsNCg0KCQkJ Ly8gTGFiZWxzIGNhbiBiZSBzcGVjaWZpZWQgaW4gdGhlIHJlcGxhY2VtZW50IHRhZyBhZnRl ciBhIHBhcmFtZGVsaW0uDQoJCQkvLyAnZWFybGllcicgYW5kICdsYXRlcicgZG9uJ3QgaGF2 ZSBsYWJlbHMuIEFueXRoaW5nIHNwZWNpZmllZCBhZnRlciBwYXJhbWRlbGltIGlzIHRoZSBt YXggbnVtYmVyIG9mIHBhZ2VzIHRvIHNob3c7IGVtcHR5ID0gYWxsIHBhZ2VzDQoJCQkkbGFi ZWwgPSBhcnJheSgNCgkJCQkJJ3tuYXZmaXJzdH0nID0+ICdGaXJzdCcsDQoJCQkJCSd7bmF2 cHJldn0nID0+ICcmbGFxdW87JywNCgkJCQkJJ3tuYXZlYXJsaWVyfScgPT4gJycsDQoJCQkJ CSd7bmF2dGhpc30nID0+ICR0aHVtUGFnZSwNCgkJCQkJJ3tuYXZ0aGlzdXJsfScgPT4gJHRo dW1QYWdlLA0KCQkJCQkne25hdmxhdGVyfScgPT4gJycsDQoJCQkJCSd7bmF2bmV4dH0nID0+ ICcmcmFxdW87JywNCgkJCQkJJ3tuYXZsYXN0fScgPT4gJ0xhc3QnLA0KCQkJCSk7DQoNCgkJ CSRsYWJlbFJFID0gJy9ceyhuYXZbYS16XSspJy4kcGFyYW1kZWxpbS4nKC4rPylcfS8nOw0K CQkJJG51bUxhYmVscyA9IHByZWdfbWF0Y2hfYWxsKCRsYWJlbFJFLCAkcGFnZWZvcm0sICRs YWJlbHMpOw0KDQoJCQlmb3IgKCRsYWJlbEN0ciA9IDA7ICRsYWJlbEN0ciA8ICRudW1MYWJl bHM7ICRsYWJlbEN0cisrKSB7DQoJCQkJJGZpZWxkbmFtZSA9ICd7Jy4kbGFiZWxzWzFdWyRs YWJlbEN0cl0uJ30nOw0KCQkJCSRsYWJlbFskZmllbGRuYW1lXSA9ICRsYWJlbHNbMl1bJGxh YmVsQ3RyXTsNCgkJCQkkcGFnZWZvcm0gPSBzdHJfcmVwbGFjZSgkbGFiZWxzWzBdWyRsYWJl bEN0cl0sICd7Jy4kbGFiZWxzWzFdWyRsYWJlbEN0cl0uJ30nLCAkcGFnZWZvcm0pOw0KCQkJ fQ0KDQoJCQlpZiAoJGRlYnVnID4gMSkgew0KCQkJCWVjaG8gIisrIFBBR0lORyBMQUJFTFMg KysiOw0KCQkJCWRtcCgkbGFiZWwpOw0KCQkJfQ0KDQoJCQkvLyBHZW5lcmF0ZSAnZWFybGll cicgYW5kICdsYXRlcicgbGlzdHMNCgkJCSRudW1FYXJsaWVyID0gaW50dmFsKCRsYWJlbFsn e25hdmVhcmxpZXJ9J10pOw0KCQkJJG51bUxhdGVyID0gaW50dmFsKCRsYWJlbFsne25hdmxh dGVyfSddKTsNCgkJCSRudW1FYXJsaWVyID0gKCRudW1FYXJsaWVyICYmICgkdGh1bVBhZ2Ut JG51bUVhcmxpZXIgPiAxKSkgPyAkbnVtRWFybGllciA6ICR0aHVtUGFnZS0xOw0KCQkJJG51 bUxhdGVyID0gKCRudW1MYXRlciAmJiAoJHRodW1QYWdlKyRudW1MYXRlciA8ICRudW1QYWdl cykpID8gJG51bUxhdGVyIDogJG51bVBhZ2VzLSR0aHVtUGFnZTsNCgkJCSRuYXZFYXJsaWVy ID0gJG5hdkxhdGVyID0gYXJyYXkoKTsNCgkJCWZvciAoJGlkeCA9ICR0aHVtUGFnZS0kbnVt RWFybGllcjsgJGlkeCA8ICR0aHVtUGFnZTsgJGlkeCsrKSB7DQoJCQkJJG5hdkVhcmxpZXJb XSA9ICc8YSBocmVmPSInLnNtZF9hZGRRU1ZhcigkcHJldGV4dFsncmVxdWVzdF91cmknXSwg JGdhbGxJRCwgJGlkeCkuJyI+Jy4kaWR4Lic8L2E+JzsNCgkJCX0NCgkJCWZvciAoJGlkeCA9 ICR0aHVtUGFnZSsxOyAkaWR4IDw9ICR0aHVtUGFnZSskbnVtTGF0ZXI7ICRpZHgrKykgew0K CQkJCSRuYXZMYXRlcltdID0gJzxhIGhyZWY9Iicuc21kX2FkZFFTVmFyKCRwcmV0ZXh0Wydy ZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAkaWR4KS4nIj4nLiRpZHguJzwvYT4nOw0KCQkJfQ0K CQkJJG5hdkVhcmxpZXIgPSBkb1dyYXAoJG5hdkVhcmxpZXIsICcnLCAkbmF2YnJlYWssICcn KTsNCgkJCSRuYXZMYXRlciA9IGRvV3JhcCgkbmF2TGF0ZXIsICcnLCAkbmF2YnJlYWssICcn KTsNCg0KCQkJLy8gTWFrZSB1cCB0aGUgcmVwbGFjZW1lbnRzIGFycmF5IGZvciBwYWdlZm9y bQ0KCQkJJHJlcGxhY2VtZW50cyA9IGFycmF5KA0KCQkJCQkne25hdmZpcnN0fScgPT4gKCgk cHJldikgPyBkb1RhZygnPGEgaHJlZj0iJy4kZmlyc3RQYWdlLiciPicuJGxhYmVsWyd7bmF2 Zmlyc3R9J10uJzwvYT4nLCAkbmF2YnJlYWspIDogZG9UYWcoJGxhYmVsWyd7bmF2Zmlyc3R9 J10sICRuYXZicmVhaywgJGVtcHR5Y2xhc3MpKSwNCgkJCQkJJ3tuYXZwcmV2fScgPT4gKCgk cHJldikgPyBkb1RhZygnPGEgaHJlZj0iJy4kcHJldlBhZ2UuJyI+Jy4kbGFiZWxbJ3tuYXZw cmV2fSddLic8L2E+JywgJG5hdmJyZWFrKSA6IGRvVGFnKCRsYWJlbFsne25hdnByZXZ9J10s ICRuYXZicmVhaywgJGVtcHR5Y2xhc3MpKSwNCgkJCQkJJ3tuYXZlYXJsaWVyfScgPT4gJG5h dkVhcmxpZXIsDQoJCQkJCSd7bmF2dGhpc30nID0+IGRvVGFnKCRsYWJlbFsne25hdnRoaXN9 J10sICRuYXZicmVhaywgJ2N1cnJlbnQgJy4kZW1wdHljbGFzcyksDQoJCQkJCSd7bmF2dGhp c3VybH0nID0+IGRvVGFnKCc8YSBocmVmPSInLiR0aGlzUGFnZS4nIj4nLiRsYWJlbFsne25h dnRoaXN1cmx9J10uJzwvYT4nLCAkbmF2YnJlYWssICdjdXJyZW50JyksDQoJCQkJCSd7bmF2 bGF0ZXJ9JyA9PiAkbmF2TGF0ZXIsDQoJCQkJCSd7bmF2bmV4dH0nID0+ICgoJG5leHQpID8g ZG9UYWcoJzxhIGhyZWY9IicuJG5leHRQYWdlLiciPicuJGxhYmVsWyd7bmF2bmV4dH0nXS4n PC9hPicsICRuYXZicmVhaykgOiBkb1RhZygkbGFiZWxbJ3tuYXZuZXh0fSddLCAkbmF2YnJl YWssICRlbXB0eWNsYXNzKSksDQoJCQkJCSd7bmF2bGFzdH0nID0+ICgoJG5leHQpID8gZG9U YWcoJzxhIGhyZWY9IicuJGxhc3RQYWdlLiciPicuJGxhYmVsWyd7bmF2bGFzdH0nXS4nPC9h PicsICRuYXZicmVhaykgOiBkb1RhZygkbGFiZWxbJ3tuYXZsYXN0fSddLCAkbmF2YnJlYWss ICRlbXB0eWNsYXNzKSksDQoJCQkJCSd7dG90YWxpbWFnZXN9JyA9PiAkbnVtSW1hZ2VzLA0K CQkJCQkne3RvdGFscGFnZXN9JyA9PiAkbnVtUGFnZXMsDQoJCQkJCSd7bWF4aW1hZ2VzfScg PT4gJGFsbEltYWdlcywNCgkJCQkpOw0KDQoJCQlpZiAoJGRlYnVnID4gMCkgew0KCQkJCWVj aG8gIisrIFBBR0lORyBSRVBMQUNFTUVOVFMgKysiOw0KCQkJCWRtcCgkcmVwbGFjZW1lbnRz KTsNCgkJCX0NCgkJCS8vIFBlcmZvcm0gYWxsIHN1YnN0aXR1dGlvbnMgYW5kIHdyYXAgdGhl IGVudGlyZSBsb3QgaWYgcmVxdWlyZWQNCgkJCSRuYXZvdXRbXSA9IHBhcnNlKHN0cnRyKCRw YWdlZm9ybSwgJHJlcGxhY2VtZW50cykpOw0KCQkJJG91dFtdID0gZG9XcmFwKCRuYXZvdXQs ICRuYXZ3cmFwdGFnLCAnJywgJG5hdmNsYXNzKTsNCgkJfQ0KCQlpZiAoJGRlYnVnID4gMikg ew0KCQkJZWNobyAiKysgRklOQUwgT1VUUFVUICsrIjsNCgkJCWRtcCgkb3V0KTsNCgkJfQ0K CX0NCg0KCXJldHVybiBkb1dyYXAoJG91dCwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKTsN Cn0NCg0KLy8gUmV0dXJuIGFuIGV4cGFuZGVkIGxpc3Qgb2YgaXRlbXM6DQovLyAxKSBBbnl0 aGluZyBjb250YWluaW5nICc/JyBvciAnIScgaXMgY2hlY2tlZCBmb3IgYSBtYXRjaCB3aXRo IGEgVFhQIGZpZWxkDQovLyAyKSBBbnkgcmFuZ2VzIG9mIGl0ZW1zIGFyZSBleHBhbmRlZCAo ZS5nLiA0LTcgPSA0LDUsNiw3KQ0KLy8gMykgVFhQIGZpZWxkcyBtYXkgdGhlbXNlbHZlcyBi ZSBsaXN0cyBvciByYW5nZXMNCi8vIDQpIEFueXRoaW5nIHRoYXQgaXMgbm90IGEgVFhQIGZp ZWxkIGlzIHVzZWQgdmVyYmF0aW0NCi8vIDUpIFRoZSBpdGVtcyBhcmUgcmV0dXJuZWQgYXMg MiBsaXN0czsgaW5jbHVzaW9uIGFuZCBleGNsdXNpb24NCi8vIEFyZ3M6DQovLyAgbHN0ID0g dGhlIGxpc3QgYXMgYSBkZWxpbWl0ZWQgc3RyaW5nDQovLyAgcm5nID0gd2hldGhlciB0byBh bGxvdyByYW5nZXMgb3Igbm90IChib29sKQ0KLy8gIHN1YiA9IHRoZSB0eXBlIG9mIHN1YmNh dGVnb3J5IHRvIHRyYXZlcnNlIChpbWFnZSwgZmlsZSwgbGluaywgYXJ0aWNsZSwgbm9uZT0i IikgYW5kIGhvdyBtYW55IGxldmVscyB0byBnbyBkb3duIChlLmcuIGltYWdlOjIpDQovLyAg cXRlID0gd2hldGhlciB0byBxdW90ZSBlYWNoIGl0ZW0gaW4gdGhlIGFycmF5IG9yIG5vdCAo Ym9vbCkNCi8vICBkbG0gPSB0aGUgZGVsaW1pdGVyIChzdHJpbmcpDQppZiAoIWZ1bmN0aW9u X2V4aXN0cygic21kX2RvTGlzdCIpKSB7DQpmdW5jdGlvbiBzbWRfZG9MaXN0KCRsc3QsICRy bmc9dHJ1ZSwgJHN1Yj0iIiwgJHF0ZT10cnVlLCAkZGxtPSIsIikgew0KCWdsb2JhbCAkdGhp c2FydGljbGUsICRwcmV0ZXh0Ow0KDQoJJGluYyA9ICRleGMgPSBhcnJheSgpOw0KCSRsc3Qg PSBkb19saXN0KCRsc3QsICRkbG0pOw0KCSRtb2RSRSA9ICcvKFw/fFwhKShbQS1aYS16MC05 X1wtIF0rKS8nOw0KCWZvcmVhY2ggKCRsc3QgYXMgJGl0ZW0pIHsNCgkJJG1vZCA9IDA7IC8v IDAgPSBpbmNsdWRlLCAxID0gZXhjbHVkZQ0KCQkkbnVtTW9kcyA9IHByZWdfbWF0Y2hfYWxs KCRtb2RSRSwgJGl0ZW0sICRtb2RzKTsNCg0KCQlmb3IgKCRtb2RDdHIgPSAwOyAkbW9kQ3Ry IDwgJG51bU1vZHM7ICRtb2RDdHIrKykgew0KCQkJLy8gbW9kICJ0eXBlIiBpcyBnb3Zlcm5l ZCBieSB0aGUgZmlyc3Qgb25lIGZvdW5kIG9ubHkuIGkuZS4gaWYgImFydGljbGUtP2MhcyIg d2FzIHVzZWQgaW4gb25lIGZpZWxkDQoJCQkvLyBpdCB3b3VsZCBiZSBhbiAiaW5jbHVkZSIg b2YgdGhlIHdvcmQgImFydGljbGUtIiBwbHVzIHRoZSBjYXRlZ29yeSBhbmQgc2VjdGlvbiBj b25jYXRlbmF0ZWQNCgkJCSRtb2QgPSAoJG1vZHNbMV1bMF0gPT09ICIhIikgPyAxIDogMDsN CgkJCSRtb2RDaGFyID0gJG1vZHNbMV1bJG1vZEN0cl07DQoJCQkkbW9kSXRlbSA9IHRyaW0o JG1vZHNbMl1bJG1vZEN0cl0pOw0KCQkJJGxvd2l0ZW0gPSBzdHJ0b2xvd2VyKCRtb2RJdGVt KTsNCgkJCWlmIChhcnJheV9rZXlfZXhpc3RzKCRsb3dpdGVtLCAkcHJldGV4dCkpIHsNCgkJ CQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkcHJldGV4dFskbG93 aXRlbV0sICRpdGVtKTsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRsb3dp dGVtXSkpIHsNCgkJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAk dGhpc2FydGljbGVbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCQl9IGVsc2Ugew0KCQkJCSRpdGVt ID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICRtb2RJdGVtLCAkaXRlbSk7DQoJ CQl9DQoJCX0NCg0KCQkvLyBIYW5kbGUgcmFuZ2VzIG9mIHZhbHVlcw0KCQlpZiAoJHJuZyAm JiBwcmVnX21hdGNoKCcvXihcZCspXC0oXGQrKSQvJywgJGl0ZW0pKSB7DQoJCQlsaXN0KCRs bywgJGhpKSA9IGV4cGxvZGUoIi0iLCAkaXRlbSwgMik7DQoJCQkkaXRlbSA9IGltcGxvZGUo JGRsbSwgcmFuZ2UoJGxvLCAkaGkpKTsNCgkJfQ0KDQoJCS8vIEl0ZW0gbWF5IGJlIGVtcHR5 OyBpZ25vcmUgaXQgaWYgc28NCgkJaWYgKCRpdGVtKSB7DQoJCQkkaXRlbSA9IGRvX2xpc3Qo JGl0ZW0sICRkbG0pOw0KCQkJLy8gSGFuZGxlIHN1Yi1jYXRlZ29yaWVzDQoJCQlpZiAoJHN1 Yikgew0KCQkJCWxpc3QoJHN1YnR5cGUsICRsZXZlbCkgPSBleHBsb2RlKCI6IiwgJHN1Yik7 DQoJCQkJJGxldmVsID0gKGVtcHR5KCRsZXZlbCkpID8gMCA6ICRsZXZlbDsNCgkJCQkkbGV2 ZWwgPSAoc3RydG9sb3dlcigkbGV2ZWwpPT0iYWxsIikgPyA5OTk5OSA6ICRsZXZlbDsNCgkJ CQlmb3JlYWNoICgkaXRlbSBhcyAkY2F0KSB7DQoJCQkJCSRjYXRzID0gZ2V0VHJlZShkb3Ns YXNoKCRjYXQpLCAkc3VidHlwZSk7DQoJCQkJCWZvcmVhY2ggKCRjYXRzIGFzICRqZHggPT4g JHZhbCkgew0KCQkJCQkJaWYgKCRjYXRzWyRqZHhdWydsZXZlbCddIDw9ICRsZXZlbCkgew0K CQkJCQkJCSRpdGVtW10gPSAkY2F0c1skamR4XVsnbmFtZSddOw0KCQkJCQkJfQ0KCQkJCQl9 DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBRdW90ZSBpZiBhc2tlZA0KCQkJJGl0ZW0gPSAoJHF0 ZSkgPyBkb0FycmF5KCRpdGVtLCAnZG9RdW90ZScpIDogJGl0ZW07DQoJCQlpZiAoJG1vZCA9 PT0gMCkgew0KCQkJCSRpbmMgPSBhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJGluYywgJGl0 ZW0pKTsNCgkJCX0gZWxzZSB7DQoJCQkJJGV4YyA9IGFycmF5X3VuaXF1ZShhcnJheV9tZXJn ZSgkZXhjLCAkaXRlbSkpOw0KCQkJfQ0KCQl9DQoJfQ0KCXJldHVybiBhcnJheSgkaW5jLCAk ZXhjKTsNCn0NCn0NCg0KLy8gQWx0ZXJuYXRpdmUgdG8gdGhlIGNvcmUncyBkb1F1b3RlKCku IFRoaXMgb25lIGRibC1xdW90ZXMgaW5zdGVhZCBvZiBzZ2wtcXVvdGVzDQppZiAoIWZ1bmN0 aW9uX2V4aXN0cygic21kX2RvRGJsUXVvdGUiKSkgew0KZnVuY3Rpb24gc21kX2RvRGJsUXVv dGUoJHZhbCkgew0KCXJldHVybiAnIicuJHZhbC4nIic7DQp9DQp9DQoNCi8vIFdvcmsgb3V0 IHdoaWNoIHBhZ2UgdGhpcyBnYWxsZXJ5IGlzIG9uIGFuZCByZXR1cm4gdGhlIHJlbGV2YW50 IGluZm8NCmZ1bmN0aW9uIHNtZF9nZXRQYWdlKCRycywgJGdhbGxJRCwgJGxpbWl0LCAkb2Zm c2V0LCAkcGFnaW5nKSB7DQoJJG51bVRodW1zID0gY291bnQoJHJzKTsNCglpZiAoKCRsaW1p dCA+IDApICYmICRwYWdpbmcpIHsNCgkJJG51bVBhZ2VzID0gKCRudW1UaHVtcyA+IDApID8g Y2VpbCgkbnVtVGh1bXMvJGxpbWl0KSA6IDE7DQoJCSR0aHVtUGFnZSA9ICghZ3BzKCRnYWxs SUQpKSA/IDEgOiBncHMoJGdhbGxJRCk7DQoJCSRvZmZzZXQgPSAoJHRodW1QYWdlIC0gMSkg KiAkbGltaXQ7DQoJfSBlbHNlIHsNCgkJLy8gTm8gcGFnaW5nIHJlcXVpcmVkDQoJCSRudW1Q YWdlcyA9IDE7DQoJCSR0aHVtUGFnZSA9IDE7DQoJfQ0KCXJldHVybiBhcnJheSgkbnVtVGh1 bXMsICRudW1QYWdlcywgJHRodW1QYWdlLCAkb2Zmc2V0KTsNCn0NCg0KLy8gUmVhZCB0aGUg Z2l2ZW4gZGVsaW1pdGVkIGRpcmVjdG9yaWVzIGFuZCBnZXQgYWxsIGZpbGVzIHRoYXQgbWF0 Y2guDQovLyBHbyBkb3duIGFzIG1hbnkgc3ViZGlyIGxldmVscyBhcyBnaXZlbiBpbiB0aGUg JHN1YiBwYXJhbWV0ZXINCmZ1bmN0aW9uIHNtZF9kb0RpcmVjdG9yeSgkbHN0LCAkbHZsPTAs ICRzdWI9MCwgJG1hdGNoPSIiLCAkZGxtPSIsIiwgJGN0cj0wKSB7DQoJbGlzdCgkZGlyaW5j LCAkZGlyZXhjKSA9IHNtZF9kb0xpc3QoJGxzdCwgZmFsc2UsICRzdWIsIGZhbHNlLCAkZGxt KTsNCglsaXN0KCRtYXRjaGluYywgJG1hdGNoZXhjKSA9IHNtZF9kb0xpc3QoJG1hdGNoLCBm YWxzZSwgJycsIGZhbHNlLCAkZGxtKTsNCgkkbWF0Y2hpbmMgPSAiLioiIC4oKCRtYXRjaGlu YykgPyAiKCIgLmltcGxvZGUoInwiLCRtYXRjaGluYykuIikrLioiIDogIiIpOw0KCSRtYXRj aGV4YyA9ICgkbWF0Y2hleGMpID8gIi4qKCIgLmltcGxvZGUoInwiLCRtYXRjaGV4YykuIikr LioiIDogInNtZF9nbHJ5XyIubXRfcmFuZCgpOw0KDQoJJHN1YiA9IChlbXB0eSgkc3ViKSkg PyAwIDogJHN1YjsNCgkkc3ViID0gKHN0cnRvbG93ZXIoJHN1Yik9PSJhbGwiKSA/IDk5OTk5 IDogJHN1YjsNCgkkZmlsZUxpc3QgPSBhcnJheSgpOw0KCWZvcmVhY2ggKCRkaXJpbmMgYXMg JGRpcikgew0KCQlpZiAoJGhhbmRsZSA9IEBvcGVuZGlyKCRkaXIpKSB7DQoJCQl3aGlsZSAo KCRmaWxlID0gQHJlYWRkaXIoJGhhbmRsZSkpICE9PSBmYWxzZSkgew0KCQkJCSRmdWxscGF0 aCA9ICRkaXIuRFMuJGZpbGU7DQoJCQkJaWYgKHByZWdfbWF0Y2goIi8iLiRtYXRjaGluYy4i LyIsICRmdWxscGF0aCkgJiYgIXByZWdfbWF0Y2goIi8iLiRtYXRjaGV4Yy4iLyIsICRmdWxs cGF0aCkpIHsNCgkJCQkJaWYgKGlzX2RpcigkZnVsbHBhdGgpKSB7DQoJCQkJCQlpZiAoKCRm aWxlID09ICIuIikgfHwgKCRmaWxlPT0gIi4uIikgfHwgKGluX2FycmF5KCRmaWxlLCAkZGly ZXhjKSkgfHwgKCRsdmwgPj0gJHN1YikpIHsNCgkJCQkJCQljb250aW51ZTsNCgkJCQkJCX0g ZWxzZSB7DQoJCQkJCQkJLy8gUmVjdXJzZSB0aGUgc3ViZGlyLiBOb3RlIHRoYXQgdGhlICch JyBpcyB0ZW1wb3JhcmlseSBhZGRlZCBiYWNrIHRvIGVhY2ggZGlyZXhjIGl0ZW0NCgkJCQkJ CQkkdG1wID0gJGRpcmV4YzsgLy8gRG9uJ3Qgb3ZlcndyaXRlIHRoZSBvcmlnaW5hbCBhcnJh eQ0KCQkJCQkJCWFycmF5X3Vuc2hpZnQoJHRtcCwgJGZ1bGxwYXRoKTsNCgkJCQkJCQkkc3Vi RmlsZXMgPSBzbWRfZG9EaXJlY3RvcnkoaW1wbG9kZSgkZGxtLiIhIiwgJHRtcCksICRsdmwr MSwgJHN1YiwgJG1hdGNoLCAkZGxtLCAkY3RyKTsNCgkJCQkJCQkkZmlsZUxpc3QgPSBhcnJh eV9tZXJnZSgkZmlsZUxpc3QsICRzdWJGaWxlcyk7DQoJCQkJCQkJJGN0ciArPSBjb3VudCgk c3ViRmlsZXMpOw0KCQkJCQkJCWNvbnRpbnVlOw0KCQkJCQkJfQ0KCQkJCQl9IGVsc2Ugew0K CQkJCQkJJGZpbGVzdGF0ID0gc3RhdCgkZnVsbHBhdGgpOw0KCQkJCQkJJGltZ3NpemUgPSBn ZXRpbWFnZXNpemUoJGZ1bGxwYXRoKTsNCgkJCQkJCSRmaWxlTGlzdFskY3RyXVsncGF0aCdd ID0gJGRpcjsNCgkJCQkJCSRmaWxlTGlzdFskY3RyXVsnbmFtZSddID0gYmFzZW5hbWUoJGZ1 bGxwYXRoKTsNCgkJCQkJCSRmaWxlTGlzdFskY3RyXVsnaWQnXSA9IHByZWdfcmVwbGFjZSgn L1wuLiskLycsICcnLCAkZmlsZSk7DQoJCQkJCQkkZmlsZUxpc3RbJGN0cl1bJ2FsdCddID0g Jyc7DQoJCQkJCQkkZmlsZUxpc3RbJGN0cl1bJ2NhcHRpb24nXSA9ICcnOw0KCQkJCQkJJHBh cnRzID0gZXhwbG9kZShEUywgJGRpcik7DQoJCQkJCQkkZmlsZUxpc3RbJGN0cl1bJ2NhdGVn b3J5J10gPSAoY291bnQoJHBhcnRzKSA+IDEpID8gZW5kKCRwYXJ0cykgOiAnJzsNCgkJCQkJ CSRmaWxlTGlzdFskY3RyXVsnYXV0aG9yJ10gPSBzdHJ2YWwoJGZpbGVzdGF0Wyd1aWQnXSk7 DQoJCQkJCQkkZmlsZUxpc3RbJGN0cl1bJ2RhdGUnXSA9IHN0cmZ0aW1lKCIlWS0lbS0lZCAl SDolTTolUyIsICRmaWxlc3RhdFsnY3RpbWUnXSk7DQoJCQkJCQkkcGFydHMgPSBleHBsb2Rl KCIuIiwgJGZpbGUpOw0KCQkJCQkJJGZpbGVMaXN0WyRjdHJdWydleHQnXSA9IChjb3VudCgk cGFydHMpID4gMSkgPyAiLiIuZW5kKCRwYXJ0cykgOiAnJzsNCgkJCQkJCSRmaWxlTGlzdFsk Y3RyXVsndyddID0gKGlzX2FycmF5KCRpbWdzaXplKSkgPyBzdHJ2YWwoJGltZ3NpemVbMF0p IDogJyc7DQoJCQkJCQkkZmlsZUxpc3RbJGN0cl1bJ2gnXSA9IChpc19hcnJheSgkaW1nc2l6 ZSkpID8gc3RydmFsKCRpbWdzaXplWzFdKSA6ICcnOw0KCQkJCQl9DQoJCQkJCSRjdHIrKzsN CgkJCQl9DQoJCQl9DQoJCX0NCgkJaWYgKCRoYW5kbGUpIHsNCgkJCUBjbG9zZWRpcigkaGFu ZGxlKTsNCgkJfQ0KCX0NCglyZXR1cm4gJGZpbGVMaXN0Ow0KfQ0KDQppZiAoIWZ1bmN0aW9u X2V4aXN0cygic21kX3JlbW92ZVFTVmFyIikpIHsNCmZ1bmN0aW9uIHNtZF9yZW1vdmVRU1Zh cigkdXJsLCAka2V5KSB7DQoJJHVybCA9IHByZWdfcmVwbGFjZSgnLyguKikoXD98JiknIC4g JGtleSAuICc9W14mXSs/KCYpKC4qKS9pJywgJyQxJDIkNCcsICR1cmwgLiAnJicpOw0KCSR1 cmwgPSBzdWJzdHIoJHVybCwgMCwgLTEpOw0KCXJldHVybiAoJHVybCk7DQp9DQp9DQoNCmlm ICghZnVuY3Rpb25fZXhpc3RzKCJzbWRfYWRkUVNWYXIiKSkgew0KZnVuY3Rpb24gc21kX2Fk ZFFTVmFyKCR1cmwsICRrZXksICR2YWx1ZSkgew0KCSR1cmwgPSBzbWRfcmVtb3ZlUVNWYXIo JHVybCwgJGtleSk7DQoJaWYgKHN0cnBvcygkdXJsLCAnPycpID09PSBmYWxzZSkgew0KCQly ZXR1cm4gKCR1cmwgLiAnPycgLiAka2V5IC4gJz0nIC4gJHZhbHVlKTsNCgl9IGVsc2Ugew0K CQlyZXR1cm4gKCR1cmwgLiAnJicgLiAka2V5IC4gJz0nIC4gJHZhbHVlKTsNCgl9DQp9DQp9 DQoiO3M6NDoidHlwZSI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MzgyMzc6Igk8cD48ZGl2IGlk PSJzbWRfaGVscCI+PC9wPgoKCTxoMSBpZD0idG9wIj5zbWRfZ2FsbGVyeTwvaDE+CgoJPGgy IGlkPSJjb250ZW50cyI+Q29udGVudHM8L2gyPgoKCTx1bD4KCQk8bGk+PGEgaHJlZj0iI2Zl YXR1cmVzIj5GZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjYXV0aG9yIj5BdXRo b3I8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2luc3RhbGwiPkluc3RhbGxhdGlvbiAvIFVu aW5zdGFsbGF0aW9uPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN1c2FnZSI+VGFnIHVzYWdl PC9hPgoJPHVsPgoJCTxsaT48YSBocmVmPSIjc21kX2dhbGxlcnkiPnNtZF9nYWxsZXJ5PC9h PjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNnYWxsZXJ5X2Zvcm0iPkdhbGxlcnkgZm9ybTwvYT4K CTx1bD4KCQk8bGk+PGEgaHJlZj0iI3JlcF9nYWxsZXJ5Ij5SZXBsYWNlbWVudCB0YWdzPC9h PjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNwYWdpbmdfZm9ybSI+UGFnaW5n IGZvcm08L2E+Cgk8dWw+CgkJPGxpPjxhIGhyZWY9IiNyZXBfcGFnaW5nIj5SZXBsYWNlbWVu dCB0YWdzPC9hPjwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNjb21ib3MiPkNv bWJvczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjY29sbGF0ZV9tb2RlIj5Db2xsYXRlIG1v ZGU8L2E+PC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2V4YW1wbGVzIj5FeGFt cGxlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+ PC9saT4KCQk8bGk+PGEgaHJlZj0iI2NyZWRpdHMiPkNyZWRpdHM8L2E+PC9saT4KCTwvdWw+ CgoJPGgyIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9y dHMgYWxsIGN1cnJlbnQgYW5kIChwcm9iYWJseSkgZnV0dXJlIGdhbGxlcnkgc2NyaXB0cyBp bmNsdWRpbmcgdGh1bWJwb3AsIHJvbGxvdmVyLCB0b29sdGlwLCBsaWdodGJveCwgbGl0ZWJv eCwgc2xpbWJveCwgbW9vbmJveCwgdGhpY2tib3gsIHNsaWRlc2hvdywgZmFuY3l6b29tLCBl dGM8L2xpPgoJCTxsaT5QdWxsIGltYWdlcyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+ VFhQPC9zcGFuPiBkYXRhYmFzZSAob3Igb3B0aW9uYWxseSBhIGxpc3Qgb2YgZGlyZWN0b3Jp ZXMpIHRoYXQgbWF0Y2ggY2F0ZWdvcmllcyBvciBJRHM8L2xpPgoJCTxsaT5Vc2UgYXJ0aWNs ZSBmaWVsZHMgdG8gaG9sZCBsaXN0cyBvZiBpbWFnZSBjYXRlZ29yaWVzL0lEcyBmb3IgYXJ0 aWNsZS1zcGVjaWZpYyBnYWxsZXJpZXM8L2xpPgoJCTxsaT5NdWx0aS1sZXZlbCBzdWItY2F0 ZWdvcnkgc3VwcG9ydDwvbGk+CgkJPGxpPkdhbGxlcnkgbGF5b3V0IGlzIGRlZmluZWQgaW4g YSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmb3JtPC9saT4KCQk8bGk+RGlyZWN0 LWFjY2VzcyBwYWdpbmF0aW9uIGlzIHN1cHBvcnRlZCBhbmQgdGhlIGxheW91dCBvZiBwYWdp bmcgZmVhdHVyZXMgaXMgY29udHJvbGxlZCBieSBhIHNlY29uZCBmb3JtPC9saT4KCQk8bGk+ VXNlcyBhIHRhZy1yZXBsYWNlbWVudCBzeXN0ZW0gbGlrZSB0aGUgd2V0X2Zvcl9lYWNoX2lt YWdlIHBsdWdpbjwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoK CTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+U3RlZiBE YXdzb248L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUgYnkgbWUsIG9yIHRvIG1ha2UgYSBkb25h dGlvbiwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3 YXJlIHBhZ2U8L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlvbiAvIFVu aW5zdGFsbGF0aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVy IDxhIGhyZWY9Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85NTcvc21kX2dhbGxl cnkiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRh d3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRo ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBh bmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0i aHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTI2NDgyIj5m b3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNj ZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyByZW1vdmUgdGhl IHBsdWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyB0 YWIuPC9wPgoKCTxoMiBpZD0idXNhZ2UiPlVzYWdlPC9oMj4KCgk8cD5Gb3Igc29tZSBpZGVh cyBvbiB1c2FnZSBzY2VuYXJpb3MsIHNlZSB0aGUgPGEgaHJlZj0iI2V4YW1wbGVzIj5leGFt cGxlczwvYT4uPC9wPgoKCTxwPlRoZSBnZW5lcmFsIGlkZWEgaXMgdGhhdCB0aGlzIHBsdWdp biBhY3RzIGFzIGEgZmxleGlibGUgaW1hZ2UgZmlsdGVyOyBub3RoaW5nIG1vcmUuIFRoZSBw bHVnaW4gb3B0aW9ucyBnb3Zlcm4gd2hhdCBpbWFnZXMgYXJlIHB1bGxlZCBvdXQgb2YgdGhl IGRhdGFiYXNlIGFuZCB0aGV5IGFyZSBzb3J0ZWQgaW50byB3aGF0ZXZlciBvcmRlciB5b3Ug bGlrZS48L3A+CgoJPHA+QWZ0ZXIgdGhhdCwgZWFjaCBpbWFnZSAmIzgyMTI7IG9uZSBieSBv bmUgJiM4MjEyOyBoYXMgYWxsIGl0cyBhdHRyaWJ1dGVzIHBhc3NlZCB0byB0aGUgPGNvZGU+ Zm9ybTwvY29kZT4gb2YgeW91ciBjaG9pY2U7IHlvdSBzaW1wbHkgY2hvb3NlIHRvIGRpc3Bs YXkgd2hpY2hldmVyIGltYWdlIGF0dHJpYnV0ZXMgeW91IGxpa2UgaW4gdGhpcyBmb3JtLiBU aGlzIG1lYW5zIGFueSBpbWFnZSBhdHRyaWJ1dGVzIGNhbiBiZSAmIzgyMjA7aW5qZWN0ZWQm IzgyMjE7IGRpcmVjdGx5IGludG8gYW55IG1hcmt1cDsgaXQgY291bGQgYmUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gdGFncywgaXQgY291bGQgYmUgY29udGVudCwgaXQgY291 bGQgYmUgamF2YXNjcmlwdCwgb3IgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj47IGFu eXRoaW5nLiBQYWdpbmF0aW9uIHdvcmtzIHRoZSBzYW1lIHdheSwgYWxsb3dpbmcgeW91IHRv IHNwZWNpZnkgaG93IHVzZXJzIGNhbiBzdGVwIHRocm91Z2ggeW91ciBpbWFnZSBnYWxsZXJp ZXMuPC9wPgoKCTxwPlRoZXJlIGlzIGFsc28gYSBzcGVjaWFsIG1vZGUgY2FsbGVkICYjODIy MDtjb2xsYXRlJiM4MjIxOyB0aGF0IGFsbG93cyB5b3UgdG8gY29sbGVjdCBhbGwgaW1hZ2Ug YXR0cmlidXRlcyB0b2dldGhlciBpbnRvIGEgc2VyaWVzIG9mIGJpZyBsb25nIGxpc3RzIDxl bT53aXRob3V0PC9lbT4gY2FsbGluZyB0aGUgZm9ybSBldmVyeSB0aW1lLiBUaGUgZm9ybSBp cyB0aGVuIG9ubHkgcHJvY2Vzc2VkIG9uY2UgYXQgdGhlIGVuZC48L3A+CgoJPHA+QmV0d2Vl biB0aGVzZSB0d28gbW9kZXMgeW91IDxlbT5zaG91bGQ8L2VtPiBiZSBhYmxlIHRvIHJlYWxp c2UgYW55IGdhbGxlcnlpbmcgc29sdXRpb247IG5vdyBhbmQgaW4gZnV0dXJlLjwvcD4KCgk8 aDMgY2xhc3M9InRhZyAiIGlkPSJzbWRfZ2FsbGVyeSI+c21kX2dhbGxlcnk8L2gzPgoKCTxw IGNsYXNzPSJ0YWctc3VtbWFyeSI+UGxhY2Ugb25lIG9yIG1vcmUgc21kX2dhbGxlcnkgdGFn cyBpbiBhbnkgYXJ0aWNsZSwgcGFnZSBvciBmb3JtLCBzdXBwbHkgYW55IG9mIHRoZSBmb2xs b3dpbmcgb3B0aW9ucyB0byBjb25maWd1cmUgaXQgYW5kIHVzZSBhIGZvcm0gdG8gZGVmaW5l IGhvdyB0aGUgZ2FsbGVyeSBpcyBkaXNwbGF5ZWQuPC9wPgoKCTxoNCBjbGFzcz0iYXR0cyAi IGlkPSJhdHRyaWJ1dGVzIj5BdHRyaWJ1dGVzPC9oND4KCgk8dWwgY2xhc3M9ImF0dHMiPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmlkPC9zcGFuPiA6IGxpc3Qgb2YgaW1hZ2Ug SURzIGZvciBpbmNsdXNpb24gaW4gdGhlIGdhbGxlcnkuIE1heSBiZSBpbnRlZ2VycyBvciBy YW5nZXMsIGZvciBleGFtcGxlIDxjb2RlPmlkPSZxdW90OzUsIDQyLCA4LTExJnF1b3Q7PC9j b2RlPiB3b3VsZCBncmFiIGltYWdlcyA1LCA4LCA5LCAxMCwgMTEgYW5kIDQyLiBVc2UgYW4g ZXhjbGFtYXRpb24gbWFyayBpbiBmcm9udCBvZiBhIG51bWJlciBvciByYW5nZSB0byBleGNs dWRlIHRob3NlIGltYWdlczwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXRlZ29yeTwvc3Bhbj4gOiBsaXN0IG9mIGltYWdl IGNhdGVnb3JpZXMgZm9yIGluY2x1c2lvbiBpbiB0aGUgZ2FsbGVyeS4gWW91IG1heSBzcGVj aWZ5IGZpeGVkLW5hbWUgY2F0ZWdvcmllcyAoZS5nLiAmIzgyMjA7YW5pbWFscyYjODIyMTsp IG9yIGEgcXVlc3Rpb24gbWFyayBmb2xsb3dlZCBieSBhbiBhcnRpY2xlIGZpZWxkIG5hbWUu IGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7YW5pbWFscywgYXJ0LT9pZCZxdW90OzwvY29k ZT4gd291bGQgZ3JhYiBhbGwgaW1hZ2VzIGZyb20gdGhlIGNhdGVnb3JpZXMgY2FsbGVkICYj ODIyMDthbmltYWxzJiM4MjIxOyBhbmQgdGhlIGNhdGVnb3J5IGNhbGxlZCAmIzgyMjA7YXJ0 LTQyJiM4MjIxOyAoYXNzdW1pbmcgdGhlIGN1cnJlbnQgYXJ0aWNsZSBoYXMgYW4gaWQgb2Yg NDIgb2YgY291cnNlKS48ZGl2IGNsYXNzPSJicmVhayI+VXNlIGFuIGV4Y2xhbWF0aW9uIG1h cmsgdG8gZXhjbHVkZSB0aGUgZ2l2ZW4gY2F0ZWdvcnkgb3IgZmllbGQuIEZpZWxkcyBtYXkg dGhlbXNlbHZlcyBjb250YWluIGxpc3RzIG9mIGNhdGVnb3JpZXMuIFRoZSA/IGZpZWxkIG5h bWVzIG1heSBiZSBjb21iaW5lZCAoZS5nLiA/cy0/YXJ0aWNsZV9pbWFnZSkgYnV0IGJlIGF3 YXJlIHRoYXQgZmllbGQgbmFtZXMgbWF5IGNvbnRhaW4gc3BhY2VzPC9kaXY+PC9saT4KCTwv dWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnN1 YmxldmVsPC9zcGFuPiA6IGFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgaG93IG1hbnkgJiM4 MjE2O2xldmVscyYjODIxNzsgZG93biB0byB0cmF2ZXJzZSBlYWNoIG1hdGNoaW5nIGNhdGVn b3J5LiBzdWJsZXZlbD0mIzgyMjA7MCYjODIyMTsgKHRoZSBkZWZhdWx0KSBpcyBvbmx5IHRo ZSB0b3AtbGV2ZWw7IDEgPSB0b3AtbGV2ZWwgcGx1cyB0aGUgMXN0IHN1Yi1jYXQ7IDIgPSB0 b3AtbGV2ZWwgcGx1cyB0aGUgbmV4dCAyIHN1Yi1jYXRzLCBhbmQgc28gb24uIHN1YmxldmVs PSYjODIyMDthbGwmIzgyMjE7IGlzIGFsbCBzdWItY2F0ZWdvcmllczwvbGk+Cgk8L3VsPgoJ PHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5zb3J0PC9z cGFuPiA6IHJlLW9yZGVyIHRoZSBpbWFnZXMgYnkgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+ICh0 aGUgZGVmYXVsdCksIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5kYXRlPC9jb2RlPiwgPGNv ZGU+aWQ8L2NvZGU+LCBmaWxlIDxjb2RlPmV4dDwvY29kZT5lbnNpb24sIDxjb2RlPmFsdDwv Y29kZT4sIDxjb2RlPmNhcHRpb248L2NvZGU+LCA8Y29kZT5hdXRob3I8L2NvZGU+LCA8Y29k ZT53aWR0aDwvY29kZT4sIDxjb2RlPmhlaWdodDwvY29kZT4sIDxjb2RlPmhhc3RodW1iPC9j b2RlPiBpbiBlaXRoZXIgPGNvZGU+YXNjPC9jb2RlPmVuZGluZyBvciA8Y29kZT5kZXNjPC9j b2RlPmVuZGluZyBvcmRlci4gVHdvIHNwZWNpYWwgY2FzZXMgZXhpc3Q6IDxjb2RlPmZpeGVk PC9jb2RlPiBtYWludGFpbnMgdGhlIG9yZGVyIHlvdSBzcGVjaWZpZWQgaW4gdGhlIGlkIGF0 dHJpYnV0ZSwgd2hpbGUgPGNvZGU+cmFuZG9tPC9jb2RlPiBzaHVmZmxlcyB0aGUgb3JkZXIu PGRpdiBjbGFzcz0iYnJlYWsiPk5vdGUgdGhhdCBpZiA8Y29kZT5yYW5kb208L2NvZGU+IGFw cGVhcnMgYXMgdGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QsIHJhbmRvbSBpbWFnZXMgd2ls bCBiZSBwdWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIHRoZXkgd2lsbCB0aGVuIGJlIHNv cnRlZCBhY2NvcmRpbmcgdG8gdGhlIG9yZGVyIGxpc3RlZCBhZnRlciBpdC4gSWYgPGNvZGU+ cmFuZG9tPC9jb2RlPiBhcHBlYXJzIGFueXdoZXJlIGVsc2UgaW4gdGhlIGxpc3QsIGFueSBz b3J0IGl0ZW1zIGJlZm9yZSBpdCB3aWxsIGRldGVybWluZSB0aGUgb3JkZXIgb2YgZGF0YSBw dWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGFuZCB0aGUgcmVzdWx0cyB3aWxsIHRoZW4gYmUg b3JkZXJlZCByYW5kb21seSAoaW4gdGhhdCBjYXNlLCBhbnkgaXRlbXMgbGlzdGVkIGFmdGVy IHJhbmRvbSB3aWxsIGJlIGlnbm9yZWQuIDxjb2RlPmZpeGVkPC9jb2RlPiBpcywgaG93ZXZl ciwgc3RpbGwgaG9ub3VyZWQpPC9kaXY+PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMi PgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxpbWl0PC9zcGFuPiA6IHRoZSBtYXhp bXVtIG51bWJlciBvZiBpbWFnZXMgdG8gc2hvdyA8ZW0+cGVyIHBhZ2U8L2VtPi4gMCBvciBv bWl0dGVkID0gdW5saW1pdGVkPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1heGxpbWl0PC9zcGFuPiA6IHRoZSBhYnNvbHV0 ZSBtYXhpbXVtIG51bWJlciBvZiB0aHVtYm5haWxzIHRvIHB1bGwgZnJvbSB0aGUgZGF0YWJh c2UuIDAgb3Igb21pdHRlZCA9IHVubGltaXRlZDwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJh dHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5vZmZzZXQ8L3NwYW4+IDogc2tp cCB0aGlzIG1hbnkgaW1hZ2VzIGFuZCBzdGFydCBjb3VudGluZyB0aGVyZWFmdGVyPC9saT4K CTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi PnRodW1ibGltaXQ8L3NwYW4+IDogdGhlIG1heGltdW0gbnVtYmVyIG9mIHRodW1ibmFpbHMg dG8gc2hvdy4gMCBvciBvbWl0dGVkID0gYWxsIHRodW1icy4gTm90ZSB0aGF0IHRoaXMgZGlm ZmVycyBmcm9tIGxpbWl0OyB5b3UgY2FuIGxhdW5jaCBhIDIwLWltYWdlIGdhbGxlcnkgYnV0 IG9ubHkgc2hvdyAxIHRodW1ibmFpbCBvbiB0aGUgcGFnZTwvbGk+Cgk8L3VsPgoJPHVsIGNs YXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYm9mZnNldDwv c3Bhbj4gOiBza2lwIHRoaXMgbWFueSB0aHVtYnMgYmVmb3JlIGRpc3BsYXlpbmcgPGNvZGU+ dGh1bWJsaW1pdDwvY29kZT4gdGh1bWJuYWlsczwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJh dHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50ZXh0PC9zcGFuPiA6IGRpc3Bs YXkgdGhlIGdpdmVuIHRleHQgaW5zdGVhZCBvZiB0aHVtYm5haWxzLiBUaGUgdGV4dCBjYW4g Y29udGFpbiA/IGFydGljbGUgZmllbGRzIGxpa2UgPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+PC9s aT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPnRodW1iPC9zcGFuPiA6IGRpc3BsYXlzIHRoZSBmdWxsc2l6ZSBwaWMgYXMgYSB0aHVt Ym5haWwgaW5zdGVhZCBvZiBhIGZ1bGxzaXplIHBpYyghKTwvbGk+Cgk8L3VsPgoJPHVsIGNs YXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYnNpemU8L3Nw YW4+IDogdGFrZXMgb25lIG9yIHR3byBjb21tYS1zZXBhcmF0ZWQgcGFyYW1ldGVycyB0byBz cGVjaWZ5IHdpZHRoIGFuZC9vciBoZWlnaHQgb2YgYWxsIHlvdXIgZ2FsbGVyeSB0aHVtYm5h aWxzLiBUaGUgZGVmYXVsdCBpcyBpbiBwaXhlbHMgaWYgeW91IGRvbiYjODIxNzt0IHNwZWNp ZnkgdW5pdHMuIE1pc3Npbmcgb3V0IG9uZSBvciB0aGUgb3RoZXIgcGFyYW1ldGVyIChpLmUu IGhhdmluZyBhbiAmIzgyMjA7ZW1wdHkmIzgyMjE7IHBhcmFtZXRlciBiZWZvcmUgb3IgYWZ0 ZXIgdGhlIGNvbW1hKSB3aWxsIG9ubHkgc2V0IG9uZSBvZiB0aGUgZGltZW5zaW9ucy4gVXNp bmcgb25seSBvbmUgdmFsdWUsIGJvdGggd2lkdGggYW5kIGhlaWdodCB3aWxsIGJlIHNldCB0 byB0aGUgc2FtZSB2YWx1ZTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5mb3JtPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPiBmb3JtIHVzZWQgdG8gbGF5b3V0IHlvdXIgbWF0Y2hpbmcgaW1h Z2VzPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPnBhZ2Vmb3JtPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQ PC9zcGFuPiBmb3JtIHVzZWQgdG8gc3BlY2lmeSB0aGUgbGF5b3V0IG9mIHlvdXIgcGFnaW5n IG5hdmlnYXRpb248L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+Z2FsbGVyeWlkPC9zcGFuPiA6IHVuZGVyIG5vcm1hbCBjaXJj dW1zdGFuY2VzIHlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0aGlzLiBFYWNoIGdhbGxlcnkgaXMg YXNzaWduZWQgYSB1bmlxdWUgSUQgYmFzZWQgb24gdGhlIGF0dHJpYnV0ZXMgeW91IHN1cHBs eS4gSW4gdGhlIHVubGlrZWx5IGV2ZW50IHRoYXQgdHdvIGlkZW50aWNhbCBJRHMgYXJlIGdl bmVyYXRlZCB5b3UgY2FuIG92ZXJyaWRlIHRoZSBJRCBmb3IgYSBnYWxsZXJ5IHdpdGggdGhp cyBhdHRyaWJ1dGUuPGRpdiBjbGFzcz0iYnJlYWsiPldoYXQgdGhlIHBsdWdpbiBkb2VzIChp bnRlcm5hbGx5KSBpcyBnZW5lcmF0ZSBhIDMyLWNoYXJhY3RlciBoYXNoIHN0cmluZyBmb3Ig ZWFjaCB0YWcsIHRoZW4gcGlja3MgYSA0LWNoYXIgY29kZSBmcm9tIHRoaXMgc3RyaW5nIChp dCB0YWtlcyBldmVyeSA2dGggY2hhcmFjdGVyIGJ5IGRlZmF1bHQpLiBZb3UgY2FuIHN1cHBs eSBhIHVuaXF1ZSBmaXhlZCBzdHJpbmcgKGUuZy4gPGNvZGU+Z2FsbGVyeWlkPSZxdW90O1Ro ZUdhbGxlcnkyJnF1b3Q7PC9jb2RlPikgb3IgZ2l2ZSBpdCBhIHF1ZXN0aW9uIG1hcmsgYW5k IDIgbnVtYmVycyBzZXBhcmF0ZWQgYnkgYSBjb2xvbiAoZS5nLiA8Y29kZT5nYWxsZXJ5aWQ9 JnF1b3Q7PzU6NCZxdW90OzwvY29kZT4pLiBUaGUgZmlyc3QgbnVtYmVyIGlzIHRoZSBsZW5n dGggb2YgdGhlIGZpbmFsIHN0cmluZyB0byBnZW5lcmF0ZSwgdGhlIHNlY29uZCBudW1iZXIg aXMgaG93IG1hbnkgY2hhcmFjdGVycyB0byBza2lwIG92ZXIgaW4gdGhlIGZ1bGwgMzItY2hh ciBzdHJpbmcgZWFjaCB0aW1lIGl0IHBpY2tzIG9uZS48L2Rpdj48ZGl2IGNsYXNzPSJicmVh ayI+U28gaW4gdGhpcyBjYXNlLCBpdCBnZW5lcmF0ZXMgYSA1LWNoYXJhY3RlciBzdHJpbmcg ZnJvbSB0aGUgY2hhcmFjdGVycyBpdCBmaW5kcyBhdCBwb3NpdGlvbnMgMSw1LDksMTMsIGFu ZCAxNy4gSWYgeW91IG9taXQgdGhlIDJuZCBudW1iZXIgKGUuZy4gPGNvZGU+Z2FsbGVyeWlk PSZxdW90Oz82JnF1b3Q7PC9jb2RlPikgaXQgd2lsbCBhc3N1bWUgaXQmIzgyMTc7cyBhbiBp bmNyZW1lbnQgb2YgMSwgc28gaW4gdGhpcyBjYXNlIGl0JiM4MjE3O2xsIHVzZSB0aGUgMXN0 IDYgY2hhcmFjdGVyczwvZGl2PjwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj53cmFwdGFnPC9zcGFuPiA6IHRoZSAoWClIVE1M IHRhZyB0byBzdXJyb3VuZCB0aGUgZW50aXJlIGdhbGxlcnkuIFNwZWNpZnkgaXQgd2l0aG91 dCBhbmdsZSBicmFja2V0cywgZS5nLiA8Y29kZT53cmFwdGFnPSZxdW90O2RpdiZxdW90Ozwv Y29kZT4uIERlZmF1bHQgaXMgdW5zZXQgKGkuZS4gbm8gdGFnKTwvbGk+Cgk8L3VsPgoJPHVs IGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5icmVhazwvc3Bh bj4gOiB0aGUgKFgpSFRNTCB0YWcgdG8gc3Vycm91bmQgZWFjaCB0aHVtYm5haWwuIERlZmF1 bHQgaXMgdW5zZXQgKGkuZS4gbm8gdGFncyk8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0 cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2xhc3M8L3NwYW4+IDogdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhl IGVudGlyZSBnYWxsZXJ5LiBEZWZhdWx0IGlzIHVuc2V0IChpLmUuIG5vIGNsYXNzKTwvbGk+ Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5uYXZ3cmFwdGFnPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRhZyB0byBzdXJyb3VuZCB0aGUg ZW50aXJlIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPi4gU3BlY2lmeSBpdCB3aXRob3V0IGFuZ2xl IGJyYWNrZXRzLCBlLmcuIDxjb2RlPndyYXB0YWc9JnF1b3Q7ZGl2JnF1b3Q7PC9jb2RlPi4g RGVmYXVsdCBpcyAmIzgyMjA7dWwmIzgyMjE7PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0 dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm5hdmJyZWFrPC9zcGFuPiA6IHRo ZSAoWClIVE1MIHRhZyB0byBzdXJyb3VuZCBlYWNoIGl0ZW0gd2l0aGluIHRoZSA8Y29kZT5w YWdlZm9ybTwvY29kZT4uIERlZmF1bHQgaXMgJiM4MjIwO2xpJiM4MjIxOzwvbGk+Cgk8L3Vs PgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5uYXZj bGFzczwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3Mg bmFtZSB0byBhcHBseSB0byB0aGUgbmF2aWdhdGlvbiB3cmFwdGFnLiBEZWZhdWx0IGlzICYj ODIyMDtzbWRfZ2FsbGVyeV9uYXYmIzgyMjE7PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0 dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmVtcHR5Y2xhc3M8L3NwYW4+IDog dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gYXBwbHkg dG8gdGhlIG5hdmlnYXRpb24gaXRlbXMgdGhhdCBhcmUgPGVtPm5vdDwvZW0+IGxpbmtzLiBE ZWZhdWx0IGlzICYjODIyMDtlbXB0eSYjODIyMTs8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0i YXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGVsaW08L3NwYW4+IDogY2hh bmdlIHRoZSBkZWxpbWl0ZXIgZm9yIHNwZWNpZnlpbmcgYXR0cmlidXRlIGxpc3RzLiBEZWZh dWx0IGlzIGNvbW1hICgsKTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wYXJhbWRlbGltPC9zcGFuPiA6IGNoYW5nZSB0aGUg ZGVsaW1pdGVyIGZvciBzcGVjaWZ5aW5nIGludGVyLXBhcmFtZXRlciBhdHRyaWJ1dGVzLiBE ZWZhdWx0IGlzIGNvbG9uICg6KTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jb2xsYXRlPC9zcGFuPiA6IHN3aXRjaCB0aGUg cGx1Z2luIGludG8gPGEgaHJlZj0iI2NvbGxhdGVfbW9kZSI+Y29sbGF0ZSBtb2RlPC9hPjwv bGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1u YW1lIj5jb21ibzwvc3Bhbj4gOiBzcGVjaWZ5IHlvdXIgb3duIDxhIGhyZWY9IiNyZXBfZ2Fs bGVyeSI+cmVwbGFjZW1lbnQgdGFnczwvYT48L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0 cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGlyZWN0b3J5PC9zcGFuPiA6IHJl YWQgaW1hZ2VzIGZyb20gYSBsaXN0IG9mIGRpcmVjdG9yaWVzIChvciA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPnMpIGluc3RlYWQgb2YgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5U WFA8L3NwYW4+IGRhdGFiYXNlPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1hdGNoPC9zcGFuPiA6IGxpbWl0IHRoZSBpbWFn ZXMgYW5kIGRpcmVjdG9yaWVzIGNob3NlbiBpbiBkaXJlY3RvcnkgbW9kZS4gR2l2ZSBpdCBh IGxpc3Qgb2Ygd29yZHMgdG8gaW5jbHVkZSBvciAhZXhjbHVkZSBhbmQgYW55IG1hdGNoaW5n IGZpbGVzIG9yIGRpcmVjdG9yaWVzIHdpbGwgYmUgY2hvc2VuIG9yIGlnbm9yZWQsIHJlc3Bl Y3RpdmVseS4gVGhlIG1hdGNoIHRlcm1zIGFyZSBhdXRvbWF0aWNhbGx5IGFzc3VtZWQgdG8g YmUgJiM4MjIwO3dpbGQmIzgyMjE7IHNvIGFueSBwYXJ0IG9mIHRoZSBmaWxlIG5hbWUgLyBw YXRoIHdpbGwgdHJpZ2dlciB0aGUgbWF0Y2g8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0 cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZGVidWc8L3NwYW4+IDogdHVybiBv biBkaWFnbm9zdGljcy4gVmFyeWluZyBsZXZlbHMgb2YgdmVyYm9zaXR5IGZyb20gMCAobm9u ZSkgdG8gNCAoYSBsb3QpPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJnYWxsZXJ5X2Zvcm0iPkdh bGxlcnkgZm9ybTwvaDM+CgoJPHA+VGhlIDxjb2RlPmZvcm08L2NvZGU+IGlzIHdoZXJlIHlv dSBkZXNpZ24gd2hhdCBldmVyeSB0aHVtYm5haWwgd2lsbCBsb29rIGxpa2Ugb24gdGhlIHNj cmVlbi4gWW91IGRvIHRoaXMgYnkgc3BlY2lmeWluZyBtYXJrdXAgb3IgdGFncyBhcyBub3Jt YWwuIEluIGtleSBwbGFjZXMgd2hlcmUgeW91IHdhbnQsIHNheSwgYW4gaW1hZ2UgSUQgb3Ig YWx0IHRhZyBvciBpbWFnZSB3aWR0aCB0byBiZSBkaXNwbGF5ZWQsIHlvdSBzcGVjaWZ5IHNw ZWNpYWwgPGEgaHJlZj0iI3JlcF9nYWxsZXJ5Ij5yZXBsYWNlbWVudCB0YWdzPC9hPi4gVGhl c2UgYXJlIHJlcGxhY2VkIGZvciBlYWNoIGltYWdlIGluIHR1cm4sIHRodXMgYnVpbGRpbmcg dXAgdGhlIGdhbGxlcnkuPC9wPgoKCTxwPkluIGNvbGxhdGUgbW9kZSwgdGhlIGltYWdlIGRl dGFpbHMgYXJlIGluc3RlYWQgbWFkZSBpbnRvIGxpc3RzLiBUaGUgZm9ybSBpcyBvbmx5IHBy b2Nlc3NlZCBvbmNlIGFuZCB0aGUgcmVwbGFjZW1lbnQgdGFncyBvdXRwdXQgdGhlIGVudGly ZSBsaXN0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dHMgIiBpZD0icmVwX2dhbGxlcnkiPlJlcGxh Y2VtZW50IHRhZ3M6IGdhbGxlcnk8L2g0PgoKCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+e2lkfTwvc3Bhbj4gOiB0aGUgaW1hZ2UgSUQgKG9yLCBp biBkaXJlY3RvcnkgbW9kZSwgdGhlIGZpbGVuYW1lIHdpdGhvdXQgaXRzIGV4dGVuc2lvbik8 L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQt bmFtZSI+e25hbWV9PC9zcGFuPiA6IHRoZSBmdWxsIGltYWdlIGZpbGVuYW1lIGFzIGRlZmlu ZWQgaW4gdGhlIGRhdGFiYXNlLCB1c3VhbGx5IGluY2x1ZGluZyBleHRlbnNpb248L2xpPgoJ PC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ e2V4dH08L3NwYW4+IDogdGhlIGZpbGUgZXh0ZW5zaW9uIGluY2x1ZGluZyBwZXJpb2Q8L2xp PgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+e2NhdGVnb3J5fTwvc3Bhbj4gOiB0aGUgaW1hZ2UgY2F0ZWdvcnkgbmFtZTwvbGk+Cgk8 L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj57 Y2F0ZWdvcnlfdGl0bGV9PC9zcGFuPiA6IHRoZSBpbWFnZSBjYXRlZ29yeSB0aXRsZTwvbGk+ Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij57YXV0aG9yfTwvc3Bhbj4gOiB3aG8gdXBsb2FkZWQgdGhlIGltYWdlPC9saT4KCTwvdWw+ Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnt1cmx9 PC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBvZiB0aGUgZnVs bHNpemUgaW1hZ2U8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+e3RodW1idXJsfTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gb2YgdGhlIHRodW1ibmFpbDwvbGk+Cgk8L3VsPgoJPHVsIGNs YXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj57aW1hZ2VwYXRofTwv c3Bhbj4gOiB0aGUgZGlyZWN0b3J5IHRoZSBpbWFnZSBpcyBpbjwvbGk+Cgk8L3VsPgoJPHVs IGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj57aW1hZ2VkZWZ9 PC9zcGFuPiA6IGp1c3QgdGhlIGZpbGUgbmFtZSBwYXJ0IG9mIHRoZSBpbWFnZSAoZS5nLiA1 LmpwZyk8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+e3RodW1iZGVmfTwvc3Bhbj4gOiBqdXN0IHRoZSBmaWxlIG5hbWUgcGFy dCBvZiB0aGUgdGh1bWJuYWlsIChlLmcuIDV0LmpwZyk8L2xpPgoJPC91bD4KCTx1bCBjbGFz cz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+e2FsdH08L3NwYW4+IDog dGhlIGFsdCB0ZXh0PC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPnt0aXRsZX08L3NwYW4+IDogdGhlIGNhcHRpb248L2xpPgoJ PC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ e2RhdGV9PC9zcGFuPiA6IGltYWdlIHVwbG9hZCBkYXRlPC9saT4KCTwvdWw+Cgk8dWwgY2xh c3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnt3aWR0aH08L3NwYW4+ IDogaW1hZ2Ugd2lkdGg8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+e2hlaWdodH08L3NwYW4+IDogaW1hZ2UgaGVpZ2h0PC9s aT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5h bWUiPnt0aHVtYndpZHRofTwvc3Bhbj4gOiB0aHVtYm5haWwgd2lkdGggKGlmIGRlZmluZWQ6 IHNlZSB0aGUgPGNvZGU+dGh1bWJzaXplPC9jb2RlPiBhdHRyaWJ1dGUpPC9saT4KCTwvdWw+ Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnt0aHVt aGVpZ2h0fTwvc3Bhbj4gOiB0aHVtYm5haWwgaGVpZ2h0IChkaXR0byk8L2xpPgoJPC91bD4K CTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+e3RodW1i d3VuaXRzfTwvc3Bhbj4gOiB0aHVtYm5haWwgd2lkdGggdW5pdHMgKGUuZy4gcHgsICUsIGVt IGV0Yy4gT25seSBpZiBkZWZpbmVkIHZpYSA8Y29kZT50aHVtYnNpemU8L2NvZGU+KTwvbGk+ Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij57dGh1bWJodW5pdHN9PC9zcGFuPiA6IHRodW1ibmFpbCBoZWlnaHQgdW5pdHMgKGRpdHRv KTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj57aGFzdGh1bWJ9PC9zcGFuPiA6IGlmIHRoZSBpbWFnZSBoYXMgYW4gYXNzb2Np YXRlZCB0aHVtYm5haWwgb3Igbm90IChwcm9iYWJseSBub3QgbXVjaCB1c2UpPC9saT4KCTwv dWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPntn YWxsZXJ5aWR9PC9zcGFuPiA6IHRoZSBnYWxsZXJ5IGlkIHlvdSBvciB0aGUgcGx1Z2luIGFz c2lnbmVkPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPntvYmplY3R9PC9zcGFuPiA6IGEgc3BlY2lhbCBpdGVtIGNvbnRhaW5p bmcgZWl0aGVyIHRoZSA8Y29kZT50ZXh0PC9jb2RlPiBPUiB0aGUgaW1hZ2UgdGFnIG9mIHRo ZSBjb3JyZXNwb25kaW5nIHRodW1ibmFpbCBidXQgb25seSBpZiA8Y29kZT50aHVtYmxpbWl0 PC9jb2RlPiBhbGxvd3MgaXQuIGUuZy4gaWYgPGNvZGU+dGh1bWJsaW1pdD0mcXVvdDsxJnF1 b3Q7PC9jb2RlPiB0aGlzIHZhcmlhYmxlIGlzIG9ubHkgc2V0IGZvciB0aGUgZmlyc3QgdGh1 bWJuYWlsIGluIHRoZSBsaXN0LiBFdmVyeSBvdGhlciB0aW1lIGl0IGlzIGVtcHR5PC9saT4K CTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi Pntjb3VudGVyfTwvc3Bhbj4gOiBhbiBpbWFnZSBjb3VudGVyLCBzdGFydGluZyBmcm9tIDEg YW5kIGluY3JlbWVudGluZyBlYWNoIHRpbWU8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0 cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+e2luZGV4fTwvc3Bhbj4gOiBhbiBp bmRleCBjb3VudGVyICh6ZXJvLWJhc2VkICYjODIxMjsgcHJvYmFibHkgbm90IG11Y2ggdXNl KTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj57dG90YWxpbWFnZXN9PC9zcGFuPiA6IHRoZSB0b3RhbCBudW1iZXIgb2YgaW1h Z2VzIG1hdGNoZWQgb24gdGhpcyBwYWdlPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMi PgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnttYXhpbWFnZXN9PC9zcGFuPiA6IHRo ZSBhYnNvbHV0ZSBtYXhpbXVtIG51bWJlciBvZiBpbWFnZXMgYWNyb3NzIGFsbCBwYWdlczwv bGk+Cgk8L3VsPgoKCTxwPklmIHRob3NlIGFyZW4mIzgyMTc7dCBlbm91Z2gsIHlvdSBjYW4g PGEgaHJlZj0iI2NvbWJvcyI+Y3JlYXRlIHlvdXIgb3duPC9hPiBieSBncm91cGluZyBjb21i aW5hdGlvbnMgb2YgdGhlIGFib3ZlLCBvcHRpb25hbGx5IHdpdGggYXJ0aWNsZSB2YXJpYWJs ZXMgc3VjaCBhcyA8Y29kZT4/ZXhjZXJwdDwvY29kZT4sIDxjb2RlPj9rZXl3b3JkczwvY29k ZT4sIDxjb2RlPj9hcnRpY2xlX2ltYWdlPC9jb2RlPiwgZXRjLjwvcD4KCgk8aDMgaWQ9InBh Z2luZ19mb3JtIj5QYWdpbmcgZm9ybTwvaDM+CgoJPHA+V2hlbiBhbGwgdGhlIHRodW1ibmFp bHMgaGF2ZSBiZWVuIHByb2Nlc3NlZCwgdGhlIDxjb2RlPnBhZ2Vmb3JtPC9jb2RlPiBpcyBw cm9jZXNzZWQgYW5kIGRpc3BsYXllZC4gSW4gYSBzaW1pbGFyIG1hbm5lciB0byB0aGUgd2F5 IHRoZSA8YSBocmVmPSIjZ2FsbGVyeV9mb3JtIj5nYWxsZXJ5IGZvcm08L2E+IHdvcmtzLCBh IHNlcmllcyBvZiA8YSBocmVmPSIjcmVwX3BhZ2luZyI+UmVwbGFjZW1lbnQgVGFnczwvYT4g Z292ZXJuIHdoaWNoIGdhbGxlcnkgbmF2aWdhdGlvbiBpdGVtcyBhcmUgYXZhaWxhYmxlLiBG b3IgZXhhbXBsZSB5b3UgY291bGQgY2hvb3NlIHRvIG9ubHkgc2hvdyBuZXh0L3ByZXYuIE9y IHBlcmhhcHMgMXN0IHBhZ2UvbGFzdCBwYWdlLiBPciBudW1iZXJlZCBwYWdlIGxpbmtzLjwv cD4KCgk8aDQgY2xhc3M9ImF0dHMgIiBpZD0icmVwX3BhZ2luZyI+UmVwbGFjZW1lbnQgdGFn czogcGFnaW5nPC9oND4KCgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPntuYXZmaXJzdH08L3NwYW4+IDogdGhlIGZpcnN0IHBhZ2UgKGRlZmF1bHQg bGFiZWw6ICYjODIyMDtGaXJzdCYjODIyMTspPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0 dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPntuYXZwcmV2fTwvc3Bhbj4gOiB0 aGUgcHJldmlvdXMgcGFnZSAoZGVmYXVsdCBsYWJlbDogJiM4MjIwOyZsYXF1bzsmIzgyMjE7 KTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj57bmF2ZWFybGllcn08L3NwYW4+IDogYW55IHBhZ2UgbnVtYmVycyBiZWZvcmUg dGhlIGN1cnJlbnQgcGFnZTwvbGk+Cgk8L3VsPgoJPHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj57bmF2dGhpc3VybH08L3NwYW4+IDogdGhlIGN1cnJl bnQgcGFnZSB3aXRoIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gbGluayB0byBp dHNlbGY8L2xpPgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+e25hdnRoaXN9PC9zcGFuPiA6IHRoZSBjdXJyZW50IHBhZ2Ugd2l0aG91 dCBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGxpbms8L2xpPgoJPC91bD4KCTx1 bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+e25hdmxhdGVy fTwvc3Bhbj4gOiBhbnkgcGFnZSBudW1iZXJzIGFmdGVyIHRoZSBjdXJyZW50IHBhZ2U8L2xp PgoJPC91bD4KCTx1bCBjbGFzcz0iYXR0cyI+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+e25hdm5leHR9PC9zcGFuPiA6IHRoZSBwcmV2aW91cyBwYWdlIChkZWZhdWx0IGxhYmVs OiAmIzgyMjA7JnJhcXVvOyYjODIyMTspPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMi PgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPntuYXZsYXN0fTwvc3Bhbj4gOiB0aGUg bGFzdCBwYWdlIChkZWZhdWx0IGxhYmVsOiAmIzgyMjA7TGFzdCYjODIyMTspPC9saT4KCTwv dWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnt0 b3RhbGltYWdlc308L3NwYW4+IDogdGhlIHRvdGFsIG51bWJlciBvZiBpbWFnZXMgbWF0Y2hl ZCBvbiB0aGUgY3VycmVudCBwYWdlPC9saT4KCTwvdWw+Cgk8dWwgY2xhc3M9ImF0dHMiPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnt0b3RhbHBhZ2VzfTwvc3Bhbj4gOiB0aGUg dG90YWwgbnVtYmVyIG9mIHBhZ2VzIGluIHRoaXMgY29sbGVjdGlvbjwvbGk+Cgk8L3VsPgoJ PHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj57bWF4aW1h Z2VzfTwvc3Bhbj4gOiB0aGUgYWJzb2x1dGUgbWF4aW11bSBudW1iZXIgb2YgaW1hZ2VzIGFj cm9zcyBhbGwgcGFnZXM8L2xpPgoJPC91bD4KCgk8cD5UaGUgY3VycmVudCBwYWdlIGhhcyBh IGZpeGVkIGNsYXNzIG9mICYjODIxNjtjdXJyZW50JiM4MjE3OyBhbmQgZWFjaCBpdGVtIGlz LCBieSBkZWZhdWx0LCBhIDxjb2RlPiZsdDtsaSZndDs8L2NvZGU+IGZvciBlYXN5IHN0eWxp bmcuIFRvIGF2b2lkIGEgemlsbGlvbiBvcHRpb25zLCBjdXN0b20gbGFiZWxzIGFyZSBkZWZp bmVkIGRpcmVjdGx5IGluIHRoZSBmb3JtIGl0c2VsZjo8L3A+CgoJPHA+PGNvZGU+e25hdmZp cnN0OjFzdH08L2NvZGU+PC9wPgoKCTxwPldvdWxkIGxhYmVsIHRoZSBsaW5rIHRoYXQgdGFr ZXMgdXNlcnMgdG8gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhlIGdhbGxlcnkgYXMgJiM4MjIwOzFz dCYjODIyMTsuIFRoaXMgc3ludGF4IGFsbG93cyB5b3UgdG8gdXNlIDxzcGFuIGNsYXNzPSJj YXBzIj5NTFA8L3NwYW4+IHNuaXBwZXRzLCBlLmcuOjwvcD4KCgk8cD48Y29kZT57bmF2Zmly c3Q6IyNmaXJzdExhYmVsIyN9PC9jb2RlPjwvcD4KCgk8cD5Zb3UgY2FuIG92ZXJyaWRlIHRo ZSBudW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIGJ5IG5hdmVhcmxpZXIgYW5kIG5hdmxhdGVy IGJ5IHNwZWNpZnlpbmcgYSBjb2xvbiBhbmQgYSBudW1iZXIuIFNvIHRvIG9ubHkgc2hvdyAy IGl0ZW1zIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJyZW50IHBhZ2UgYW5kIDMgaXRlbXMgdG8g dGhlIHJpZ2h0LCB1c2UgPGNvZGU+e25hdmVhcmxpZXI6Mn0ge25hdmxhdGVyOjN9PC9jb2Rl PiBpbiB5b3VyIGZvcm0uIEN1cnJlbnRseSA8Y29kZT57bmF2ZWFybGllcn08L2NvZGU+IGFu ZCA8Y29kZT57bmF2bGF0ZXJ9PC9jb2RlPiBvbmx5IGRpc3BsYXkgYXJhYmljIG51bWVyYWxz LiBBbnkgaWRlYXMgb24gaG93IHRvIG9mZmVyIG90aGVyIGNoYXJhY3RlciBzZXRzIGdyZWF0 bHkgYXBwcmVjaWF0ZWQuPC9wPgoKCTxoMyBpZD0iY29tYm9zIj5Db21ib3M8L2gzPgoKCTxw PklmIHRoZSBidWlsdC1pbiA8YSBocmVmPSIjcmVwX2dhbGxlcnkiPnJlcGxhY2VtZW50IHRh Z3M8L2E+IGFyZW4mIzgyMTc7dCBlbm91Z2ggZm9yIHlvdXIgbmVlZHMgb3IgeW91IGZpbmQg eW91cnNlbGYgcmVwZWF0aW5nIHRoZSBzYW1lIGNvbWJpbmF0aW9uIGFuZCB3YW50IHRvIHNh dmUgeW91cnNlbGYgc29tZSB0eXBpbmcsIHlvdSBjYW4gZGVmaW5lIHlvdXIgb3duIHJlcGxh Y2VtZW50IHRhZ3MuIFRoZSBzeW50YXggaXM6PC9wPgoKCTxwPjxjb2RlPmNvbWJvPSZxdW90 O25ld3RhZzE6ZGVmaW5pdGlvbiwgbmV3dGFnMjpkZWZpbml0aW9uLCAuLi4mcXVvdDs8L2Nv ZGU+PC9wPgoKCTxwPiYjODIxNjtkZWZpbml0aW9uJiM4MjE3OyBjYW4gYmUgYW55IGZpeGVk IHRleHQsIGFueSBleGlzdGluZyByZXBsYWNlbWVudCB0YWcsIG9yIGFueSBhcnRpY2xlIHZh cmlhYmxlIHNvIHlvdSBjYW4gZ2V0IHJlYWxseSB3aWxkIGhlcmU6PC9wPgoKCTxwPjxjb2Rl PmNvbWJvPSZxdW90O2ltZ2luOmZvdW5kIGluID9zIFt0YWdnZWQgd2l0aCA/a2V5d29yZHMu IFBob3RvIGJ5IHthdXRob3J9XSZxdW90OzwvY29kZT48L3A+CgoJPHA+c28gbm93IDxjb2Rl PntpbWdpbn08L2NvZGU+IGlzIGF2YWlsYWJsZSB0byB5b3VyIGZvcm0gYW5kIG1pZ2h0IGJl IHJlcGxhY2VkIHdpdGggJiM4MjIwO2ZvdW5kIGluIHpvbyBbdGFnZ2VkIHdpdGggemVicmEs IGFmcmljYSwgc3RyaXBlcy4gUGhvdG8gYnkgQmxva2VdJiM4MjIxOy4gJHByZXRleHQgaXMg YWxzbyBhdmFpbGFibGUgZm9yIHRob3NlIGdlZWtzIHdobyBrbm93IHdoYXQmIzgyMTc7cyBp biBpdCAodXNlIDxjb2RlPmRlYnVnPSZxdW90OzQmcXVvdDs8L2NvZGU+IHRvIHZpZXcgYWxs IGF2YWlsYWJsZSBhcnRpY2xlIHZhcmlhYmxlcykuPC9wPgoKCTxwPk9uZSB0aGluZyB0byB3 YXRjaCBvdXQgZm9yIGlzIHRoYXQgdGhlIHNwYWNlIGNoYXJhY3RlciBpc24mIzgyMTc7dCBu ZWNlc3NhcmlseSBhIGRlbGltaXRlciBmb3IgPGNvZGU+PzwvY29kZT4gdmFyaWFibGVzIChi ZWNhdXNlIGN1c3RvbSBmaWVsZHMgY2FuIGhhdmUgc3BhY2VzIGluIHRoZW0pLiBTbyA8Y29k ZT5jb21ibz0mcXVvdDtkb2Vzbm90d29yazo/cyBpbiA/Y2F0ZWdvcnkxJnF1b3Q7PC9jb2Rl PiB3aWxsIGxvb2sgZm9yIGEgdmFyaWFibGUgbGFiZWxsZWQgJiM4MjIwO3MgaW4mIzgyMjE7 IGFuZCBvbmUgY2FsbGVkICYjODIyMDtjYXRlZ29yeTEmIzgyMjE7LiBPbmx5IG9uZSBvZiB0 aG9zZSBleGlzdHMhIENsZXZlciB1c2Ugb2YgcGFyZW50aGVzZXMgb3Igb3RoZXIgcHVuY3R1 YXRpb24gY2FuIHdvcmsgcm91bmQgdGhpcy48L3A+CgoJPGgzIGlkPSJjb2xsYXRlX21vZGUi PkNvbGxhdGUgbW9kZTwvaDM+CgoJPHA+SWYgeW91IHdhbnQgdG8gZ2V0IDxlbT5yZWFsbHk8 L2VtPiBmdW5reSB5b3UgY2FuIHB1dCB0aGUgcGx1Z2luIGludG8gYSAybmQgbW9kZSBjYWxs ZWQgJiM4MjIwO2NvbGxhdGlvbiBtb2RlJiM4MjIxOy4gSW4gdGhpcyBtb2RlIHlvdXIgY2hv c2VuIGZvcm0gaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gZXhlY3V0ZWQgZm9yIGV2ZXJ5IGlt YWdlOyBpdCBpcyBvbmx5IHVzZWQgb25jZSBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIGxpc3Qs IGFmdGVyIGFsbCBpbWFnZXMgaGF2ZSBiZWVuIGludGVybmFsbHkgJiM4MjIwO2NvbGxlY3Rl ZCYjODIyMTsuIEluIGVmZmVjdCwgdGhlIHBsdWdpbiBidWlsZHMgdXAgYSBnaWFudCBhcnJh eSBvZiBhbGwgbWF0Y2hpbmcgaW1hZ2VzIHJlYWR5IGZvciB5b3UgdG8gb3V0cHV0IHRoZW0g YWxsIGluIG9uZSBnby4gVGhpcyBpcyB2ZXJ5IGhhbmR5IGZvciBkb2luZyBzbGlkZXNob3dz IGFuZCBpcyBiZXN0IGV4cGxhaW5lZCBieSBleGFtcGxlOjwvcD4KCgk8cD48Y29kZT5jb2xs YXRlPSZxdW90OzEmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPnN3aXRjaGVzIGNvbGxhdGlvbiBt b2RlIG9uLiBJZiB0aGUgcGx1Z2luIG1hdGNoZWQgNCBpbWFnZXMgYW5kIHlvdSB3ZXJlIHRv IHVzZSB0aGUgcmVwbGFjZW1lbnQgdGFnIDxjb2RlPntuYW1lfTwvY29kZT4gaW4geW91ciBm b3JtIGxpa2UgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj5UaGUgbWF0Y2hpbmcgaW1hZ2VzOiB7bmFtZX0KPC9jb2RlPjwvcHJlPgoKCTxwPnlv dSBtaWdodCBnZXQgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj5UaGUgbWF0Y2hpbmcgaW1hZ2VzOiBoZXJvbi5qcGcscGVuZ3Vpbi5qcGcsZW11 LmpwZyxwdWZmaW4uanBnCjwvY29kZT48L3ByZT4KCgk8cD5Tb21ldGltZXMgaXQmIzgyMTc7 cyB1c2VmdWwgdG8gYmUgYWJsZSB0byBwdXQgcXVvdGVzIGFyb3VuZCBlYWNoIGl0ZW0gc28g eW91IGNhbiB0ZWxsIGNvbGxhdGUgbW9kZSB0byBkbyB0aGF0IGluc3RlYWQ6PC9wPgoKCTxw Pjxjb2RlPmNvbGxhdGU9JnF1b3Q7cXVvdGU6e25hbWV9JnF1b3Q7PC9jb2RlPjwvcD4KCgk8 cD5Zb3Ugd291bGQgdGhlbiBnZXQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+VGhlIG1hdGNoaW5nIGltYWdlczogJnF1b3Q7aGVyb24uanBnJnF1b3Q7 LCZxdW90O3Blbmd1aW4uanBnJnF1b3Q7LCZxdW90O2VtdS5qcGcmcXVvdDssJnF1b3Q7cHVm ZmluLmpwZyZxdW90Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhlIGRlbGltaXRlciAoYSBjb21t YSBpbiB0aGlzIGNhc2UpIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIDxjb2RlPmRlbGlt PC9jb2RlPiBhdHRyaWJ1dGUuIFlvdSBtYXkgdXNlIDxjb2RlPnNnbHF1b3RlPC9jb2RlPiB0 byB3cmFwIHNpbmdsZSBxdW90ZXMgcm91bmQgdGhlIGl0ZW1zLCBvciAmIzgyMjA7ZGJscXVv dGUmIzgyMjE7IGFzIGEgc3lub255bSBmb3IgJiM4MjIwO3F1b3RlJiM4MjIxOyBpZiB5b3Ug cHJlZmVyLiBZb3UgY2FuIHF1b3RlIG1vcmUgdGhhbiBvbmUgdGhpbmcgYXQgb25jZSBieSBz cGVjaWZ5aW5nIHRoZSBpdGVtcyBhcyBhIGRlbGltaXRlZCBsaXN0OjwvcD4KCgk8cD48Y29k ZT5jb2xsYXRlPSZxdW90O3F1b3RlOntuYW1lfTp7YWx0fTp7aW1naW59JnF1b3Q7PC9jb2Rl PjwvcD4KCgk8cD5ZZXMsIHlvdSBjYW4gdXNlIGNvbWJvcyEgVGhlIGRlbGltaXRlciB1c2Vk IGJldHdlZW4gaXRlbXMgY2FuIGJlIG92ZXJyaWRlbiB3aXRoIHRoZSA8Y29kZT5wYXJhbWRl bGltPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgoKCTxwPlRoZSBzZWNvbmQgc3BlY2lhbCBmZWF0 dXJlIG9mIGNvbGxhdGlvbiBtb2RlIGlzIHRoYXQgeW91IGRvIG5vdCBoYXZlIHRvIGFsd2F5 cyBvdXRwdXQgdGhlIGVudGlyZSBsaXN0LiBZb3UgY2FuIGdyYWIgaW5kaXZpZHVhbCBlbnRp dGllcyBmcm9tIHdpdGhpbiB0aGUgaW50ZXJuYWwgYXJyYXkgYnkgdXNpbmcgdGhlICYjODIx NjsjJiM4MjE3OyBub3RhdGlvbiB0aHVzOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPntuYW1lfSBtaWdodCBvdXRwdXQgJnF1b3Q7aGVyb24uanBnJnF1 b3Q7LCZxdW90O3Blbmd1aW4uanBnJnF1b3Q7LCZxdW90O2VtdS5qcGcmcXVvdDssJnF1b3Q7 cHVmZmluLmpwZyZxdW90OyAoYXMgYmVmb3JlKQoobmFtZSMxfSB3b3VsZCBvbmx5IG91dHB1 dCBoZXJvbi5qcGcKKG5hbWUjM30gd291bGQgb25seSBvdXRwdXQgZW11LmpwZwo8L2NvZGU+ PC9wcmU+CgoJPHA+Tm90ZSB0aGF0IHdoZW4gcHVsbGluZyBvdXQgaW5kaXZpZHVhbCBlbnRy aWVzIHRoZXkgPHN0cm9uZz5kbyBub3Q8L3N0cm9uZz4gZ2V0IHF1b3RlcyBhZGRlZCB0byB0 aGVtLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgeW91IHVzZWQgPGNvZGU+cXVvdGU8L2NvZGU+ IG9yIG5vdC4gVGhpcyBpcyBiZWNhdXNlIGl0IGlzIGEgc2luZ2xlIGl0ZW0gc28geW91IGNh biBlYXNpbHkgcHV0IHRoZSBxdW90ZXMgaW4gdGhlIGZvcm0gaXRzZWxmICh2aXo6IDxjb2Rl PiZxdW90O3tuYW1lfSZxdW90OzwvY29kZT4pPC9wPgoKCTxwPk1lc3NpbmcgYXJvdW5kIHdp dGggcHVsbGluZyBvdXQgaW5kaXZpZHVhbCBpdGVtcyBhbmQgbGlzdHMgY2FuIHlpZWxkIHNv bWUgdmVyeSBpbnRlcmVzdGluZyByZXN1bHRzIGFuZCBhbGxvd3Mgc29tZSBjb21wbGV0ZWx5 IHdhY2t5IGdhbGxlcmllcyB0byBiZSBnZW5lcmF0ZWQuIFRyeSBjb21iaW5pbmcgc21kX2dh bGxlcnkgdGFncyB3aXRoIDxjb2RlPiZsdDt0eHA6aWZfZGlmZmVyZW50Jmd0OzwvY29kZT4g Zm9yIGEgcmVhbCBtaW5kIHNjcmFtYmxlIDotKTwvcD4KCgk8aDMgaWQ9ImV4YW1wbGVzIj5F eGFtcGxlczwvaDM+CgoJPHA+VGhlIGV4YW1wbGVzIGFsbCB1c2UgdGhlIGNsYXNzaWMgem9v IHdlYnNpdGUuIExldCYjODIxNztzIHNwZWNpZnkgc29tZSBwaWN0dXJlcyB0byBwdWxsIG91 dCBvZiB0aGUgZGF0YWJhc2U6PC9wPgoKCTxoNCBpZD0iZWcxIj5FeGFtcGxlIDE6IHNpbXBs ZSAvIGxpZ2h0Ym94ZWQgZ2FsbGVyeTwvaDQ+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUg Y2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9nYWxsZXJ5IGNhdGVnb3J5PSZxdW90O2FuaW1h bHMmcXVvdDsgc3VibGV2ZWw9JnF1b3Q7YWxsJnF1b3Q7IGZvcm09JnF1b3Q7Z2FsbGVyeSZx dW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCBwdWxscyBvdXQgYWxsIHBpY3R1 cmVzIGZyb20gdGhlIGFuaW1hbHMgY2F0ZWdvcnksIGluY2x1ZGluZyBhbGwgc3ViLWNhdGVn b3JpZXMsIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgZm9ybSBjYWxsZWQgJiM4MjE2O2dhbGxl cnkmIzgyMTc7IGZvciBwcm9jZXNzaW5nLiBUaGUgZm9ybSBjb3VsZCBqdXN0IGJlIHRoaXM6 PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O2ltZyBj bGFzcz0mcXVvdDthbmltYWdlJnF1b3Q7IHNyYz0mcXVvdDt7dXJsfSZxdW90OyBhbHQ9JnF1 b3Q7e2FsdH0mcXVvdDsgLyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDthY2FwdGlvbiZxdW90 OyZndDt7dGl0bGV9Jmx0Oy9kaXYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0IG1lYW5z LCBmb3IgZXZlcnkgbWF0Y2hlZCBpbWFnZSwgc3Vic3RpdHV0ZSBpdHMgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4sIGFsdCBhbmQgdGl0bGUgdGFncyBpbnRvIHRoZSByZWxldmFu dCBwbGFjZXMuIFRodXMgeW91IGdldCBhIHNlcmllcyBvZiBpbWFnZXMgb24gdGhlIHBhZ2Us IHdoaWNoIHlvdSBjYW4gc3R5bGUgYWNjb3JkaW5nbHkuPC9wPgoKCTxwPkZvciBhIG1vcmUg ZmFuY3kgb3V0cHV0IHVzaW5nLCBzYXksIHNsaW1ib3gsIHlvdSBjb3VsZCBsb2FkIHRoZSBy ZWxldmFudCBsaWJyYXJpZXMgYW5kIHN0eWxlcyBpbiB0aGUgPGNvZGU+Jmx0O2hlYWQmZ3Q7 PC9jb2RlPiBvZiB5b3VyIHBhZ2U6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90 OyBzcmM9JnF1b3Q7L2pzL21vb3Rvb2xzLmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0Owom bHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDsv anMvc2xpbWJveC5qcyZxdW90OyZndDsmbHQ7L3NjcmlwdCZndDsKJmx0O2xpbmsgcmVsPSZx dW90O3N0eWxlc2hlZXQmcXVvdDsgdHlwZT0mcXVvdDt0ZXh0L2NzcyZxdW90OyBocmVmPSZx dW90Oy9jc3Mvc2xpbWJveC5jc3MmcXVvdDsgLyZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRo ZW4geW91ciAmIzgyMTY7Z2FsbGVyeSYjODIxNzsgZm9ybSBjb3VsZCBiZTo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7YSByZWw9JnF1b3Q7bGln aHRib3gte2NhdGVnb3J5fSZxdW90OyBocmVmPSZxdW90O3t1cmx9JnF1b3Q7IGFsdD0mcXVv dDt7YWx0fSZxdW90OwogICAgIHRpdGxlPSZxdW90O0EgcGljdHVyZSBvZiB7dGl0bGV9JnF1 b3Q7IGhlaWdodD0mcXVvdDt7aGVpZ2h0fSZxdW90OyB3aWR0aD0mcXVvdDt7d2lkdGh9JnF1 b3Q7Jmd0OwogJmx0O3R4cDp0aHVtYm5haWwgaWQ9JnF1b3Q7e2lkfSZxdW90OyAvJmd0Owom bHQ7L2EmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Wb2lsYSEgVXNpbmcgdGhlIHNhbWUgc21k X2dhbGxlcnkgdGFnIHlvdSBoYXZlIGNoYW5nZWQgdGhlIHdheSB0aGUgZ2FsbGVyeSByZW5k ZXJzIGZyb20gYSBzaW1wbGUgbGlzdCB0byBhIGZ1bGwtZmVhdHVyZWQgc2xpbWJveC4gV2l0 aCB2aXJ0dWFsbHkgdGhlIHNhbWUgZm9ybSB5b3UgY2FuIHN3aXRjaCB0aGUgb3V0cHV0IHRv IHRoaWNrYm94LCBsaWdodGJveCwgbGl0ZWJveCwgbW9vbmJveCBvciB3aGF0ZXZlci15b3Ut bGlrZS1ib3ggZGVwZW5kaW5nIG9uIHdoaWNoIGxpYnJhcmllcyB5b3UgbG9hZC4gRm9sbG93 IHRoZSBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgZmF2b3VyaXRlIGVmZmVjdCBhbmQgcGx1ZyBp dCBpbnRvIHNtZF9nYWxsZXJ5LjwvcD4KCgk8aDQgaWQ9ImVnMiI+RXhhbXBsZSAyOiBsYXVu Y2ggZnJvbSBvbmUgaW1hZ2U8L2g0PgoKCTxwPkEgY29tbW9uIHJlcXVlc3QgaXMgdG8gYmUg YWJsZSB0byAmIzgyMjA7bGF1bmNoJiM4MjIxOyBhIHNsaW1ib3ggZ2FsbGVyeSBmcm9tIGEg c2luZ2xlIGltYWdlIG9yIHRleHQgbGluay4gVXNpbmcgYSBzaW5nbGUgaW1hZ2U6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfZ2Fs bGVyeSBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7CiAgICAgaWQ9JnF1b3Q7P2FydGlj bGVfaW1hZ2UmcXVvdDsgc3VibGV2ZWw9JnF1b3Q7YWxsJnF1b3Q7CiAgICAgZm9ybT0mcXVv dDtnYWxsZXJ5JnF1b3Q7IHRodW1ibGltaXQ9JnF1b3Q7MSZxdW90OyAvJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+Tm90ZSB0aGF0IHRoaXMgdGltZSB3ZSBhcmUgYWRkaW5nIHRvIHRoZSBn YWxsZXJ5IHRoZSBpbWFnZShzKSBwdWxsZWQgZnJvbSB0aGUgYXJ0aWNsZS1pbWFnZSBmaWVs ZCBvZiB0aGUgY3VycmVudCBhcnRpY2xlLiBUaGUgZm9ybSB3aWxsIHVzZSB0aGUgc3BlY2lh bCA8Y29kZT57b2JqZWN0fTwvY29kZT4gcmVwbGFjZW1lbnQgdGFnLiBUaGUgcGx1Z2luIG9u bHkgZGlzcGxheXMgdGhpcyBwYXJ0IGlmIHRoZSB2YWx1ZSBvZiB0aHVtYmxpbWl0IGhhcyA8 c3Ryb25nPm5vdDwvc3Ryb25nPiBiZWVuIHJlYWNoZWQ6PC9wPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O2EgcmVsPSZxdW90O2xpZ2h0Ym94LXNtZCZx dW90OyBocmVmPSZxdW90O3t1cmx9JnF1b3Q7CiAgICAgdGl0bGU9JnF1b3Q7QSBwaWN0dXJl IG9mIHt0aXRsZX0mcXVvdDsmZ3Q7CntvYmplY3R9CiZsdDsvYSZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPkNoYW5nZSB0aGUgc3RhcnQgaW1hZ2UgYnkgc3BlY2lmeWluZyA8Y29kZT50aHVt Ym9mZnNldDwvY29kZT4gJiM4MjEyOyBub3RlIHRoaXMgd2lsbCBhbHNvIHN0YXJ0IHRoZSBs aWdodGJveCBlZmZlY3QgZnJvbSB0aGUgaW1hZ2UgeW91IGNob29zZS4gSWYgeW91IHdhbnQg dG8gc3RhcnQgb24gYSBzcGVjaWZpYyBpbWFnZSBpbiBwb3NpdGlvbiAxLCB1c2UgdGhlIDxj b2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgdG8gYnJpbmcgaXQgdG8gdGhlIHRvcCBvZiB0aGUg bGlzdCwgb3IgY2hhbmdlIHRoZSBzb3J0IG9yZGVyLjwvcD4KCgk8cD5JZiB5b3Ugd2FudGVk IHRvIGxhdW5jaCB0aGUgZ2FsbGVyeSBmcm9tIGEgdGV4dCBsaW5rLCBtb2RpZnkgdGhlIHRh ZyBsaWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9j ayI+Jmx0O3R4cDpzbWRfZ2FsbGVyeSBjYXRlZ29yeT0mcXVvdDthbmltYWxzJnF1b3Q7CiAg ICAgaWQ9JnF1b3Q7P2FydGljbGVfaW1hZ2UmcXVvdDsgc3VibGV2ZWw9JnF1b3Q7YWxsJnF1 b3Q7CiAgICAgZm9ybT0mcXVvdDtnYWxsZXJ5JnF1b3Q7IHRodW1ibGltaXQ9JnF1b3Q7MSZx dW90OwogICAgIHRleHQ9JnF1b3Q7Q2xpY2sgdG8gc3RhcnQgbGlnaHRib3gmcXVvdDsgLyZn dDsKPC9jb2RlPjwvcHJlPgoKCTxoNCBpZD0iZWczIj5FeGFtcGxlIDM6IHBvcHVwIGdhbGxl cnk8L2g0PgoKCTxwPlRvIGFjaGlldmUgYW4gZWZmZWN0IHNpbWlsYXIgdG8gcnNzX3RodW1i cG9wLCBhZGQgYW4gaW1hZ2UgYW5kIGNhcHRpb24gcGxhY2Vob2xkZXIgb3V0c2lkZSB0aGUg Y2FsbCB0byBzbWRfZ2FsbGVyeSwgdGhlbiBpbmNsdWRlIHlvdXIgc21kX2dhbGxlcnkgdGFn IGFzIHVzdWFsLiBUaGlzIHRpbWUgd2UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBhbGwgdGhl IHBpY3R1cmVzIGZyb20gdGhlIGNhdGVnb3JpZXMgdXAgdG8gdHdvIGxldmVscyBiZWxvdyBi b3RoICYjODIyMDthbmltYWxzJiM4MjIxOyBhbmQgd2hpY2hldmVyIGNhdGVnb3JpZXMgYXJl IGxpc3RlZCBpbiA8Y29kZT5teV9jdXN0b21fZmllbGQ8L2NvZGU+OjwvcD4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtpbWcgaWQ9JnF1b3Q7ZnVsbHNp emUmcXVvdDsgc3JjPSZxdW90Oy9pbWFnZXMvZW1wdHkuanBnJnF1b3Q7IC8mZ3Q7CiZsdDtz cGFuIGlkPSZxdW90O2Z1bGxjYXB0aW9uJnF1b3Q7Jmd0OyZsdDsvc3BhbiZndDsKJmx0O3R4 cDpzbWRfZ2FsbGVyeSBzdWJsZXZlbD0mcXVvdDsyJnF1b3Q7CiAgICAgY2F0ZWdvcnk9JnF1 b3Q7YW5pbWFscywgP215X2N1c3RvbV9maWVsZCZxdW90OwogICAgIGZvcm09JnF1b3Q7Z2Fs bGVyeSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhlIGdhbGxlcnkgZm9ybSBs b29rcyBzY2FyeSBidXQgaXMgb25seSBhIHRodW1ibmFpbCBpbWFnZSBzdXJyb3VuZGVkIGJ5 IGEgc2ltcGxlIGFuY2hvciB0YWcgd2l0aCB0d28gYWN0aW9ucyBhc3NpZ25lZCB0byBpdDog YSBtb3VzZW92ZXIgdG8gY29weSB0aGUgcGljdHVyZSBhbmQgY2FwdGlvbiBpbnRvIHRoZSBw bGFjZWhvbGRlcjsgYW5kIGEgbW91c2VvdXQgdG8gcmVtb3ZlIHRoZW06PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O2EgaHJlZj0mcXVvdDt7dXJs fSZxdW90OyB0aXRsZT0mcXVvdDt7dGl0bGV9JnF1b3Q7CiAgICAgb25tb3VzZW92ZXI9JnF1 b3Q7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJiMzOTtmdWxsc2l6ZSYjMzk7KS5zcmMgPSB0 aGlzLmhyZWY7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJiMzOTtmdWxsY2FwdGlv biYjMzk7KS5pbm5lckhUTUwgPSB0aGlzLnRpdGxlOyByZXR1cm4gZmFsc2UmcXVvdDsKICAg ICBvbm1vdXNlb3V0PSZxdW90O2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjMzk7ZnVsbHNp emUmIzM5Oykuc3JjID0gJiMzOTsvaW1hZ2VzLzE3LmpwZyYjMzk7OwogICAgIGRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCYjMzk7ZnVsbGNhcHRpb24mIzM5OykuaW5uZXJIVE1MID0gJiMz OTsmIzM5OzsgcmV0dXJuIGZhbHNlOyZxdW90OyZndDsKICAmbHQ7aW1nIHNyYz0mcXVvdDt7 dGh1bWJ1cmx9JnF1b3Q7IGFsdD0mcXVvdDt7YWx0fSZxdW90OyAvJmd0OwombHQ7L2EmZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoZXJlIGFyZSBtdWNoIG5lYXRlciB3YXlzIG9m IGRvaW5nIHRoaXMgYW5kIGl0JiM4MjE3O3Mgbm90IHJlY29tbWVuZGVkIHRvIHVzZSB0aGlz IGZvcm0gaW4gYSBsaXZlIHNpdGUsIGJ1dCBpdCBnaXZlcyBhIGZsYXZvdXIgb2Ygd2hhdCBp cyBwb3NzaWJsZS48L3A+CgoJPGg0IGlkPSJlZzQiPkV4YW1wbGUgNDogc2xpZGVzaG93PC9o ND4KCgk8cD5UaGlzIG9uZSB1c2VzIGNvbGxhdGUgbW9kZSBidXQgaXMgbm90IG11Y2ggbW9y ZSBkaWZmaWN1bHQgdG8gdW5kZXJzdGFuZC4gSW4geW91ciA8Y29kZT4mbHQ7aGVhZCZndDs8 L2NvZGU+IHNlY3Rpb246PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJi bG9jayI+Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyBzcmM9 JnF1b3Q7L2pzL21vb3Rvb2xzLmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0OwombHQ7c2Ny aXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7IHNyYz0mcXVvdDsvanMvc2xp ZGVzaG93LmpzJnF1b3Q7Jmd0OyZsdDsvc2NyaXB0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ VGhlIHRhZzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7dHhwOnNtZF9nYWxsZXJ5CiAgY2F0ZWdvcnk9JnF1b3Q7YmlyZHMsIGZpc2gmcXVvdDsg Zm9ybT0mcXVvdDtnYWxsZXJ5JnF1b3Q7CiAgY29tYm89JnF1b3Q7aW1nbGlzdDp7aWR9e2V4 dH0mcXVvdDsKICBjb2xsYXRlPSZxdW90O3F1b3RlOntpbWdsaXN0fTp7YWx0fSZxdW90OyAv Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCBwdWxscyBhbGwgcGljdHVyZXMgZnJvbSB0 aGUgYmlyZHMgYW5kIGZpc2ggY2F0ZWdvcmllcy4gQWx0aG91Z2ggdGVjaG5pY2FsbHkgdW5u ZWNlc3NhcnksIGEgY29tYm8gaGFzIGJlZW4gZGVmaW5lZCB0byBzaG93IGhvdyBpdCBjYW4g YmUgdXNlZC4gVGhpcyBjb21ibyBpcyBjYWxsZWQgPGNvZGU+aW1nbGlzdDwvY29kZT4gYW5k IGlzIGRlZmluZWQgYXMgdGhlIGltYWdlJiM4MjE3O3MgSUQgbnVtYmVyIHBsdXMgaXRzIGV4 dGVuc2lvbi4gV2UgdXNlIHRoaXMgaW4gdGhlIGNvbGxhdGUgYXR0cmlidXRlIGFuZCB0ZWxs IGl0IHRvIHB1dCBkb3VibGUgcXVvdGVzIHJvdW5kIGV2ZXJ5IGl0ZW0gaW4gJiM4MjE2O2lt Z2xpc3QmIzgyMTc7IGFuZCAmIzgyMTY7YWx0JiM4MjE3Oy4gVGhlbiB3ZSBjYW4gcHV0IHRo ZXNlIHZhbHVlcyBpbnRvIHRoZSBuZWNlc3NhcnkgamF2YXNjcmlwdCB0byBnZW5lcmF0ZSB0 aGUgc2xpZGVzaG93OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDtkaXYgY2xhc3M9JnF1b3Q7c2xpZGVzaG93JnF1b3Q7IGlkPSZxdW90O3NsaWRl c2hvdzEmcXVvdDsmZ3Q7CiAmbHQ7aW1nIHNyYz0mcXVvdDsmbHQ7dHhwOnNpdGVfdXJsIC8m Z3Q7aW1hZ2VzL3tpZCMxfS5qcGcmcXVvdDsKICAgICBhbHQ9JnF1b3Q7e2FsdCMxfSZxdW90 OyB3aWR0aD0mcXVvdDt7d2lkdGgjMX0mcXVvdDsgaGVpZ2h0PSZxdW90O3toZWlnaHQjMX0m cXVvdDsgLyZndDsKJmx0Oy9kaXYmZ3Q7CjwvY29kZT4KPGNvZGUgY2xhc3M9ImJsb2NrIj4m bHQ7c2NyaXB0IHR5cGU9JnF1b3Q7dGV4dC9qYXZhc2NyaXB0JnF1b3Q7Jmd0OwpteVNob3cx ID0gbmV3IFNsaWRlc2hvdygmcXVvdDtzbGlkZXNob3cxJnF1b3Q7LAogIHsgaHU6ICZxdW90 OyZsdDt0eHA6c2l0ZV91cmwgLyZndDtpbWFnZXMvJnF1b3Q7LAogICAgaW1hZ2VzOiBbe2lt Z2xpc3R9XSwKICAgIGNhcHRpb25zOiBbe2FsdH1dLAogICAgY2xhc3NlczogWyZxdW90O3By ZXYmcXVvdDssJnF1b3Q7bmV4dCZxdW90OywmcXVvdDthY3RpdmUmcXVvdDtdLAogICAgdHlw ZTogJnF1b3Q7ZmFkZSZxdW90OwogIH0pOwombHQ7L3NjcmlwdCZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPk5vdGUgdGhhdCB0aGUgaW5pdGlhbCBwb3J0aW9uIChpbiB0aGUgZGl2IGFuZCBp bWcgdGFncykgdXNlcyB0aGUgJiM4MjE2OyMmIzgyMTc7IG5vdGF0aW9uIGJlY2F1c2Ugd2Ug b25seSB3YW50IHRvIGRpc3BsYXkgb25lIGltYWdlIHRvICYjODIyMDtzdGFydCYjODIyMTsg dGhlIHNsaWRlc2hvdy4gSW4gdGhpcyBjYXNlIHdlJiM4MjE3O3JlIHVzaW5nIHRoZSBmaXJz dCBpbWFnZSBpbiB0aGUgbGlzdCwgYnV0IHlvdSBjYW4gY2hhbmdlIHRoZSAjMSBmb3IgIzQy IGlmIHlvdSB3YW50ZWQgdG8gc2hvdyB0aGUgZm9ydHktc2Vjb25kIGltYWdlIGluc3RlYWQh IFRoZSBwYXJ0IGluIHRoZSBzY3JpcHQgdGFnIHVzZXMgdGhlIGZ1bGwsIHF1b3RlZCBsaXN0 cyBiZWNhdXNlIHRoYXQmIzgyMTc7cyB0aGUgZm9ybWF0IHRoZSBqYXZhc2NyaXB0IHJlcXVp cmVzLjwvcD4KCgk8aDQgaWQ9ImVnNSI+RXhhbXBsZSA1OiBwYWdpbmF0aW9uPC9oND4KCgk8 cD5UbyBhZGQgcGFnaW5nIHRvIGEgZ2FsbGVyeSB5b3UgdXNlIHRoZSA8Y29kZT5saW1pdDwv Y29kZT4gYXR0cmlidXRlIHRvIHNob3cgYSBudW1iZXIgb2YgdGh1bWJzIHBlciBwYWdlLiBG b3IgYSBwYWdlZCB0aHVtYnBvcCBnYWxsZXJ5IHRoYXQgc2hvd3MgZml2ZSB0aHVtYnMgcGVy IHBhZ2U6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O2ltZyBpZD0mcXVvdDtmdWxsc2l6ZSZxdW90OyBzcmM9JnF1b3Q7L2ltYWdlcy9lbXB0eS5q cGcmcXVvdDsgLyZndDsKJmx0O3NwYW4gaWQ9JnF1b3Q7ZnVsbGNhcHRpb24mcXVvdDsmZ3Q7 Jmx0Oy9zcGFuJmd0OwombHQ7dHhwOnNtZF9nYWxsZXJ5IGNhdGVnb3J5PSZxdW90O2FuaW1h bHMmcXVvdDsKICBmb3JtPSZxdW90O2dhbGxlcnkmcXVvdDsgcGFnZWZvcm09JnF1b3Q7Z2Fs bGVyeV9uYXYmcXVvdDsKICBsaW1pdD0mcXVvdDs1JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5UaGUgJiM4MjE2O2dhbGxlcnkmIzgyMTc7IGZvcm0gaXMgaWRlbnRpY2FsIHRv IHRoZSBvbmUgaW4gPGEgaHJlZj0iI2VnNCI+ZXhhbXBsZSA0PC9hPiwgd2hpbGUgeW91ciBn YWxsZXJ5X25hdiBmb3JtIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOjwvcD4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG90YWwm cXVvdDsmZ3Q7IyBvZiBwaWNzOiB7dG90YWxpbWFnZXN9Jmx0Oy9kaXYmZ3Q7CiAgICAge25h dmZpcnN0fSB7bmF2cHJldn0KICAgICB7bmF2ZWFybGllcn0ge25hdnRoaXN9IHtuYXZsYXRl cn0KICAgICB7bmF2bmV4dH0ge25hdmxhc3R9CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0IG1p Z2h0IHJlbmRlciBzb21ldGhpbmcgc2ltaWxhciB0byB0aGlzIGJlbG93IHRoZSB0aHVtYnM6 PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+IyBvZiBwaWNz OiAzOAogICAgIEZpcnN0ICZsdDsgMSAyIDMgNCA1IDYgNyA4ICZndDsgTGFzdAo8L2NvZGU+ PC9wcmU+CgoJPHA+Tm90ZXM6PC9wPgoKCTx1bD4KCQk8bGk+VXNlIHtuYXZ0aGlzdXJsfSBp ZiB5b3Ugd2FudCB0aGUgY3VycmVudCBwYWdlIGh5cGVybGlua2VkPC9saT4KCQk8bGk+VGhl IGN1cnJlbnQgaXRlbSBhbHdheXMgaGFzIGEgY2xhc3Mgb2YgJiM4MjIwO2N1cnJlbnQmIzgy MjE7PC9saT4KCQk8bGk+VXNlIHRoZSA8Y29kZT5uYXZ3cmFwdGFnPC9jb2RlPiwgPGNvZGU+ bmF2YnJlYWs8L2NvZGU+LCBhbmQgPGNvZGU+bmF2Y2xhc3M8L2NvZGU+IHRhZyBhdHRyaWJ1 dGVzIHRvIHNwZWNpZnkgaXRlbXMgdG8gd3JhcCBhcm91bmQgdGhlIGVudGlyZSBwYWdlZm9y bS4gVGhlIGRlZmF1bHRzIGFyZTogPGNvZGU+dWw8L2NvZGU+LCA8Y29kZT5saTwvY29kZT4s IGFuZCA8Y29kZT5zbWRfZ2FsbGVyeV9uYXY8L2NvZGU+IHJlc3BlY3RpdmVseTwvbGk+CgkJ PGxpPllvdSBjYW4gbGFiZWwgbmF2Zmlyc3QsIG5hdmxhc3QsIG5hdnByZXYsIG5hdm5leHQg YW5kIG5hdnRoaXMgYnkgc3BlY2lmeWluZyB0aGVtIGxpa2UgdGhpczogPGNvZGU+e25hdnBy ZXY6UHJldmlvdXN9PC9jb2RlPiAodGhlICYjODIxNjs6JiM4MjE3OyBkZWxpbWl0ZXIgaW4g dGhpcyBjYXNlIGlzIHRoZSBpdGVtIHNwZWNpZmllZCBieSBwYXJhbWRlbGltKTwvbGk+CgkJ PGxpPm5hdmVhcmxpZXIgYW5kIG5hdmxhdGVyIHdpbGwgYnkgZGVmYXVsdCBzaG93IGFsbCBw YWdlcyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBjdXJyZW50IG9uZS4gWW91IGNhbiBvdmVycmlk ZSB0aGlzIGJ5IHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBwYWdlcyB5b3Ugd2FudCB0byBz aG93IGVpdGhlciBzaWRlLiBlLmcuIGlmIHlvdSB3ZXJlIG9uIHBhZ2UgOSBvZiAxNSwge25h dmVhcmxpZXI6NH0ge25hdmxhdGVyOjN9IHdvdWxkIHNob3cgPGNvZGU+Jmx0OyZsdDsgNSA2 IDcgOCA5IDEwIDExIDEyICZndDsmZ3Q7PC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0i Y2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gzPgoKCTxwPkFsbCBhdmFpbGFibGUgdmVyc2lvbnMg YW5kIGNoYW5nZXMgYXJlIGxpc3RlZCBoZXJlLjwvcD4KCgk8cD48c3Ryb25nPkJldGE8L3N0 cm9uZz48L3A+CgoJPHVsPgoJCTxsaT4xNCBGZWIgMDggfCA8YSBocmVmPSJodHRwOi8vc3Rl ZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9nYWxsZXJ5X3YwLjEudHh0Ij4wLjE8L2E+IFsg PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfZ2FsbGVyeV92 MC4xX3ppcC50eHQiPmNvbXByZXNzZWQ8L2E+IF0gfCBJbml0aWFsIHJlbGVhc2UgJiM4MjEx OyBIYXBweSBWYWxlbnRpbmVzIERheSA6LSk8L2xpPgoJCTxsaT4xOSBGZWIgMDggfCA8YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9nYWxsZXJ5X3YwLjIu dHh0Ij4wLjI8L2E+IFsgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fk cy9zbWRfZ2FsbGVyeV92MC4yX3ppcC50eHQiPmNvbXByZXNzZWQ8L2E+IF0gfCBBZGRlZCA8 YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlk PTE3MjQ1OSNwMTcyNDU5Ij57Z2FsbGVyeWlkfTwvYT4gKHRoYW5rcyBybG9hZGVycm8pIGFu ZCBzb21lIHNrZWxldG9uIGRvY3M8L2xpPgoJPC91bD4KCgk8cD48c3Ryb25nPk9mZmljaWFs PC9zdHJvbmc+PC9wPgoKCTx1bD4KCQk8bGk+MTEgTWFyIDA4IHwgPGEgaHJlZj0iaHR0cDov L3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRfZ2FsbGVyeV92MC4zLnR4dCI+MC4zPC9h PiBbIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX2dhbGxl cnlfdjAuM196aXAudHh0Ij5jb21wcmVzc2VkPC9hPiBdIHwgT2ZmaWNpYWwgcHVibGljIHJl bGVhc2UuIEZpeGVkIHNpbGx5IGVtcHR5IGZpZWxkIGJ1ZzsgYWRkZWQge2NvdW50ZXJ9LCB7 aW5kZXh9IGFuZCB0aGUgdG90YWxzIChhbGwgdGhhbmtzIDxhIGhyZWY9Imh0dHA6Ly9mb3J1 bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTczNDkwI3AxNzM0OTAiPmph a29iPC9hPik8L2xpPgoJCTxsaT4xNSBNYXIgMDggfCA8YSBocmVmPSJodHRwOi8vc3RlZmRh d3Nvbi5jb20vZG93bmxvYWRzL3NtZF9nYWxsZXJ5X3YwLjMxLnR4dCI+MC4zMTwvYT4gWyA8 YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9nYWxsZXJ5X3Yw LjMxX3ppcC50eHQiPmNvbXByZXNzZWQ8L2E+IF0gfCBGaXhlZCBhIGNvdXBsZSBvZiB1bmRl ZmluZWQgaW5kZXhlcyBhbmQgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNv bS92aWV3dG9waWMucGhwP3BpZD0xNzQ4MTgjcDE3NDgxOCI+YWRkZWQge2NhdGVnb3J5X3Rp dGxlfTwvYT4gKHRoYW5rcyA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29t L3ZpZXd0b3BpYy5waHA/cGlkPTE3NDgyMCNwMTc0ODIwIj5qc3R1YmJzPC9hPik8L2xpPgoJ CTxsaT4xNyBNYXIgMDggfCA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vZG93bmxv YWRzL3NtZF9nYWxsZXJ5X3YwLjMyLnR4dCI+MC4zMjwvYT4gWyA8YSBocmVmPSJodHRwOi8v c3RlZmRhd3Nvbi5jb20vZG93bmxvYWRzL3NtZF9nYWxsZXJ5X3YwLjMyX3ppcC50eHQiPmNv bXByZXNzZWQ8L2E+IF0gfCBGaXhlZCBhbm90aGVyIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50 ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9waWQ9MTc0OTQ3I3AxNzQ5NDciPnVuZGVm aW5lZCBpbmRleDwvYT4gYW5kIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5j b20vdmlld3RvcGljLnBocD9waWQ9MTc0OTYxI3AxNzQ5NjEiPnJlbW92ZWQgYm9ndXMgY2Fs bCB0byBzbWRfbGliPC9hPiAoYm90aCB0aGFua3Mgc2VjdW5kYXIpPC9saT4KCQk8bGk+MjEg TWFyIDA4IHwgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rvd25sb2Fkcy9zbWRf Z2FsbGVyeV92MC4zMy50eHQiPjAuMzM8L2E+IFsgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdz b24uY29tL2Rvd25sb2Fkcy9zbWRfZ2FsbGVyeV92MC4zM196aXAudHh0Ij5jb21wcmVzc2Vk PC9hPiBdIHwgRGlkIHYwLjMxIHByb3Blcmx5LCBpbmNsdWRpbmcgdGFibGUgcHJlZml4ICh0 aGFua3MgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMu cGhwP3BpZD0xNzUzMDIjcDE3NTMwMiI+bmFyZG88L2E+KTwvbGk+CgkJPGxpPjAxIEFwciAw OCB8IDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9kb3dubG9hZHMvc21kX2dhbGxl cnlfdjAuMzQudHh0Ij4wLjM0PC9hPiBbIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNv bS9kb3dubG9hZHMvc21kX2dhbGxlcnlfdjAuMzRfemlwLnR4dCI+Y29tcHJlc3NlZDwvYT4g XSB8IEZpeGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3NwYW4+IHBhcmVudGhlc2lzIGJ1 ZyA7IGFkZGVkIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3Rv cGljLnBocD9waWQ9MTc1NjM3I3AxNzU2MzciPmVtcHR5Y2xhc3MgYW5kIHttYXhpbWFnZXN9 PC9hPiAodGhhbmtzIHRoZV9naG9zdCk8L2xpPgoJPC91bD4KCgk8aDMgaWQ9ImNyZWRpdHMi PkNyZWRpdHM8L2gzPgoKCTxwPlRoaXMgcGx1Z2luIHdvdWxkbiYjODIxNzt0IGhhdmUgZXhp c3RlZCB3aXRob3V0IHRoZSBhd2Vzb21lIG1pbmQgb2YgUm9iZXJ0IFdldHpsbWF5ci4gSGlz IHdldF9mb3JfZWFjaF9pbWFnZSBwbHVnaW4gaXMgdHJ1ZSBnZW5pdXM7IHRoaXMgc2ltcGx5 IHN0YW5kcyBvbiB0aGUgc2hvdWxkZXJzIG9mIHRoYXQgaWRlYSBhbmQgcm9sbHMgaW4gYSBz b3VwZWQgdXAgdmVyc2lvbiBvZiB0aGUgdGh1bWJuYWlsIGdlbmVyYXRpb24gZW5naW5lIGZy b20gc21kX3NsaW1ib3guIFRvIHRoYXQgZW5kLCB0aGUgcGx1Z2luIGlzIGFsc28gaW5kZWJ0 ZWQgdG8gYW55b25lIHdobyBoYXMgcG9zdGVkIGZlYXR1cmVzIG9yIGJ1ZyByZXBvcnRzIHRv IG1lIG9yIHRoZSBzbWRfc2xpbWJveCB0aHJlYWQuIFlvdSYjODIxNztyZSBhbGwgbWFydmVs bG91cy48L3A+CgoJPHA+PC9kaXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0t LSAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6 MS40NSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUv MTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29s b3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1h bDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4Yzsg ZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0K I3NtZF9oZWxwIGE6bGluaywgI3NtZF9oZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVlOyB0 ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibHVlOyBw YWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0 aXZlIHsgY29sb3I6IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRv bTogMnB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBoMSB7 IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjog MDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206 IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6 IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzY5 MzsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzog MXB4OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQt ZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDExcHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdHQtbmFtZSB7 IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVl OyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAl OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRk LCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7 fQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCBs aSB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6 NXB4OyB9Cjwvc3R5bGU+CjwhLS0gLS0tIEVORCBQTFVHSU4gQ1NTIC0tLSAtLT4KIjtzOjM6 Im1kNSI7czozMjoiM2VhMmQzZjdjNWVjNTg4ODQyZmZjZDFlYzUwODQxMWMiO30=