# Name: smd_slimbox v0.212 # Type: Client side plugin # Image gallery lightbox wrapper using Christophe Beyl's Slimbox # 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 U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjE6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbSI7czo3OiJ2ZXJzaW9uIjtzOjU6IjAuMjEyIjtzOjExOiJkZXNjcmlwdGlvbiI7czo2 MjoiSW1hZ2UgZ2FsbGVyeSBsaWdodGJveCB3cmFwcGVyIHVzaW5nIENocmlzdG9waGUgQmV5 bCdzIFNsaW1ib3giO3M6NDoiY29kZSI7czoyMjQ2MDoiLy8gdjAuMSAgIEluaXRpYWwgcHVi bGljIHJlbGVhc2UNCi8vIHYwLjExIEFkZGVkICFjYXRlZ29yeSBzdXBwb3J0DQovLyB2MC4x MiBBZGRlZCB0ZXh0cG9zIG9wdGlvbiAodGhhbmtzIGxlZSkgYW5kIGltYWdlaWQgb3B0aW9u ICh0aGFua3Mgd291YXJlbikNCi8vIHYwLjIgICBqcyBhbmQgY3NzIGNhbiBub3cgYmUgbG9h ZGVkIGVsc2V3aGVyZSAodGhhbmtzIGpzdHViYnMpLiBBZGRlZCB3cmFwdGFnIGFuZCBjaGFu Z2VkIGRlZmF1bHRzIHRvIG1ha2Ugb3V0cHV0IGxlc3MgbGlrZSB0YWctc291cCAodGhhbmtz IHdvdWFyZW4pDQovLyB2MC4yMSBBZGRlZCBvcmRlcmJ5PSJmaXhlZCIgdG8gYWxsb3dlZCBm aXhlZCBpbWFnZWlkIG9yZGVyaW5nICh0aGFua3MgbGVlKS4gJHdoZXJlIHdhcm5pbmcgc3F1 YXNoZWQgKHRoYW5rcyBiZW5qaWJvdCkNCi8vIHYwLjIyIE5vdyB1c2VzIHNtZF9saWIgYW5k IHN1YmNhdHMuIEFsc28gTUxQKE11bHRpLWxpbmd1YWwpLWF3YXJlLg0KLy8gdjAuMjMgRml4 ZWQgb3JkZXJieSB3aGVuIHVzaW5nIHJhbmRvbSAodGhhbmtzIG1yZGFsZSkgYW5kIGFkZGVk IGFiaWxpdHkgdG8gb3ZlcnJpZGUgbWF4bGltaXQNCi8vIHYwLjI0IEFkZGVkIGxpYmNoZWNr ICh0aGFua3MgcGFwdWFzcykuIE51bWVyaWMgcmFuZ2VzIG5vdyBhbGxvd2VkIGZvciBJRHMg KHNtZF9saWIpLiBGaXhlZCBlbXB0eSBmaWVsZC9pbWFnZWlkIG5lZ2F0aW9uIGJ1Z3MuIEZp eGVkIG5leHQvcHJldiBidXR0b25zIGZvciBNTFAuDQovLyB2MC4yNGIgRml4ZWQgcGFnaW5n IGluIHN1YmRpcmVjdG9yeSBpbnN0YWxsYXRpb25zICh0aGFua3MgdWx0cmFtZWdhIGFuZCBR d2VzdCkNCi8vIHYwLjI1IEV4dGVuZGVkIGdyb3VwbmFtZSAodGhhbmtzIFtBeGVsXSkNCi8v IHYwLjI1YSBCdW5kbGVkIGxhdGVzdCB2ZXJzaW9uIG9mIHNsaW1ib3ggaW4gdGhlIHBhY2th Z2UuIE1hZGUgdGhlIGRvY3MgZWFzaWVyIHRvIHJlYWQuDQovLyB2MC4yNiBBZGRlZCB0cnVl IG11bHRpcGxlIGdhbGxlcnkgc3VwcG9ydCAodGhhbmtzIHdoZWF0aWN1cykNCi8vIHYwLjI3 IEFkZGVkIHRodW1iICh0aGFua3MgcHJvZ3JlNTUpDQovLyB2MC4yOCBBZGRlZCBpbWFnZWNh cHRpb24gKHRoYW5rcyBBZGFtX1YpDQovLyB2MC4yOSBBZGRlZCB0aHVtYnNpemUgKHRoYW5r cyBTaW1hbmVrKQ0KLy8gdjAuMjlhIEZpeGVkIHVuZGVmaW5lZCBpbmRleCB3YXJuaW5ncyAo dGhhbmtzIEFtYml0aW91c2xlbW9uKQ0KLy8gdjAuMjliIEZpeGVkIHRoZSBmaXggZnJvbSB2 MC4yNCByZWdhcmRpbmcgYW4gU1FMIGVycm9yIGlmIHRoZSBjYXRlZ29yeSBpcyBub3Qgc2V0 IHdoZW4gdXNpbmcgP2MgKHRoYW5rcyBNci5TbWl0aCkuIEFsc28gZml4ZWQgJ3B4JyBpbiB0 aHVtYnNpemUgKHRoYW5rcyByb2Jpbjc0NikNCi8vIHYwLjIxMCBVc2VzIHNtZF9saWIgdjAu My4gSW50ZWdlciByYW5nZXMgbm93IG9ubHkgYWxsb3dlZCBpbiBpbWFnZWlkLiBBZGRlZCB0 aHVtYnRleHQvdGh1bWJ0ZXh0Y2xhc3MvcGFyYW1kZWxpbS4gRGVwcmVjYXRlZCBzaG93YWx0 L3Nob3djYXB0aW9uL2FsdGNsYXNzL2NhcHRpb25jbGFzcy90ZXh0cG9zDQovLyB2MC4yMTEg Rml4ZWQgKG1vcmUpIHVuZGVmaW5lZCBpbmRleCB3YXJuaW5ncyBhbmQgYWRkZWQgb25jaGFu Z2UgdGV4dCBzdXBwb3J0ICh0aGFua3Mga2FybC5zcGVuY2VyLCBkZWNvZGVybHRkKS4gdGh1 bWJ0ZXh0IGNhbiBub3cgdGFrZSAoZW5jb2RlZCkgcnVkaW1lbnRhcnkgaHRtbCB0YWdzDQov LyB2MC4yMTIgQWRkZWQgdGh1bWJ0ZXh0d3JhcCAodGhhbmtzIGpvZGVjaSkgYW5kIGZ1bGxz aXplIFVSTCBsaW5rIHRvIHRodW1idGV4dCAodGhhbmtzIG1hcmt1c2ZhbGspLiBSZW1vdmVk IHdoaXRlc3BhY2UgcmVzdHJpY3Rpb25zIGFyb3VuZCAnPycgZmllbGQgY29kZXMgZm9yIGlt YWdlY2FwdGlvbiBhbmQgdGh1bWJ0ZXh0DQoNCnJlcXVpcmVfcGx1Z2luKCdzbWRfbGliJyk7 DQpnbG9iYWwgJHNtZF9zYm94TGFuZywgJHNtZF9zYm94X2xpYnM7DQoNCi8vIE1MUCBzdXBw b3J0DQokc21kX3Nib3hTdHIgPSBhcnJheSgNCgknaW5jZXJyJyA9PiAnSWYgdXNpbmcgdGhl IHNjcmlwdHMgb3B0aW9uLCBzcGVjaWZ5IHVwIHRvIHRocmVlIHJlcXVpcmVkIHNjcmlwdHMg aW4gdGhpcyBvcmRlcjogJmx0O3R4cDpzbWRfc2xpbWJveF9pbmMgc2NyaXB0cz0ibW9vdG9v bHNKU0xvY2F0aW9uLCBzbGltYm94SlNMb2NhdGlvbiwgc2xpbWJveENTU0xvY2F0aW9uIiAv Jmd0Oy4gSWYgYW55IHBvc2l0aW9ucyBhcmUgbGVmdCBlbXB0eSwgdGhlIG1pc3Npbmcgc2Ny aXB0cyBtdXN0IGJlIHN1cHBsaWVkIHZpYSB0aGUganNkaXIvY3NzZGlyIG9wdGlvbnMsIG9y IGxvYWRlZCBleHRlcm5hbGx5IGFuZCB0b2xkIHRvIHNraXAgdGhpcyBzdGVwLiBUaGUgdGhy ZWUgdmFsdWVzIGNhbiBlaXRoZXIgYmUgYSBmdWxsIFhIVE1MIHN0cmluZyAoZS5nLiBhcyBy ZXR1cm5lZCBieSB0eHA6c3RtX2phdmFzY3JpcHQgb3IgdHhwOmNzcywgYWx0aG91Z2ggdGhl eSBtYXkgbm90IHdvcmsgZGlyZWN0bHkgd2l0aGluIHRoZSB0YWc7IHNlZSB0aGUgZG9jcykg b3Igc2ltcGx5IHBhdGhzIHRvIHRoZSBmaWxlcy4gTm90ZSB0aGF0IG5vIHZhbGlkYXRpb24g aXMgcGVyZm9ybWVkIHRvIGNoZWNrIGlmIHRoZSBmaWxlcyBleGlzdC4nLA0KCSdub2luYycg PT4gJ1JlcXVpcmVkIGxpYnJhcmllcyBub3QgbG9hZGVkLiBDYWxsICZsdDt0eHA6c21kX3Ns aW1ib3hfaW5jIC8mZ3Q7IGluIHRoZSAmbHQ7aGVhZCZndDsgb2YgdGhpcyBwYWdlLicsDQoJ J25leHRfbGJsJyA9PiAnTmV4dCcsDQoJJ3ByZXZfbGJsJyA9PiAnUHJldicsDQopOw0KDQok c21kX3Nib3hMYW5nID0gbmV3IHNtZF9NTFAoJ3NtZF9zbGltYm94JywgJ3NtZF9zYm94Jywg JHNtZF9zYm94U3RyKTsNCg0KLy8gVXNlIHRoaXMgdG8gaW5jbHVkZSB0aGUgbGlicmFyaWVz IGluIHRoZSA8aGVhZD4gc2VjdGlvbiBvZiB0aGUgcGFnZQ0KZnVuY3Rpb24gc21kX3NsaW1i b3hfaW5jKCRhdHRzKSB7DQoJZ2xvYmFsICRzbWRfc2JveF9saWJzLCAkc21kX3Nib3hMYW5n Ow0KDQoJaWYgKGlzX2FycmF5KCRhdHRzKSkgZXh0cmFjdCgkYXR0cyk7DQoNCgkvLyBGdW5j dGlvbiBvcHRpb25zDQoJJGpzZGlyID0gaXNzZXQoJGpzZGlyKSA/IGRvU2xhc2goJGpzZGly KSA6ICcnOw0KCSRjc3NkaXIgPSBpc3NldCgkY3NzZGlyKSA/IGRvU2xhc2goJGNzc2Rpcikg OiAnJzsNCgkkc2NyaXB0cyA9IGlzc2V0KCRzY3JpcHRzKSA/ICRzY3JpcHRzIDogJyc7DQoJ JHNraXAgPSBpc3NldCgkc2tpcCkgPyAkc2tpcCA6ICIwIjsNCg0KCSRtb2RzUmVxdWlyZWQg PSAzOw0KCSRtb2RzTG9hZGVkID0gMDsNCgkkb3V0U3RyID0gJyc7DQoNCglpZiAoJHNraXAg PiAwKSB7DQoJCSRtb2RzTG9hZGVkID0gJHNraXA7DQoJfQ0KDQoJLy8gSW5jbHVkZSB0aGUg anMgbGlicyBpZiByZXF1aXJlZA0KCWlmICgkanNkaXIgIT0gJycpIHsNCgkJJG91dFN0ciAu PSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJyAuJGpzZGlyLiAnL21v b3Rvb2xzLmpzIj48L3NjcmlwdD4nLm47DQoJCSRvdXRTdHIgLj0gJzxzY3JpcHQgdHlwZT0i dGV4dC9qYXZhc2NyaXB0IiBzcmM9IicgLiRqc2Rpci4gJy9zbGltYm94LmpzIj48L3Njcmlw dD4nLm47DQoJCSRtb2RzTG9hZGVkICs9IDI7DQoJfQ0KDQoJLy8gRmluZCB3aGljaCBzY3Jp cHRzIHRvIGF1dG8tbG9hZA0KCWlmICgoJHNjcmlwdHMgIT0gJycpICYmICgkbW9kc0xvYWRl ZCA8ICRtb2RzUmVxdWlyZWQpKSB7DQoJCSRtb2RzTGlzdCA9IHByZWdfc3BsaXQoJy9bLF0r LycsJHNjcmlwdHMsJG1vZHNSZXF1aXJlZCk7DQoJCSRqc3ByZWZpeCA9ICI8c2NyaXB0IjsN CgkJJGNzc3ByZWZpeCA9ICI8bGluayI7DQoJCSR0eHBwcmVmaXggPSAiPHR4cCI7DQoJCWZv cmVhY2ggKCRtb2RzTGlzdCBhcyAkZmlsZW9iaikgew0KCQkJJGZpbGVvYmogPSB0cmltKCRm aWxlb2JqKTsNCgkJCWlmICgkZmlsZW9iaiA9PSAnJykgew0KCQkJCSRtb2RzTG9hZGVkLS07 DQoJCQl9IGVsc2UgaWYgKHN1YnN0cigkZmlsZW9iaiwgMCwgc3RybGVuKCRqc3ByZWZpeCkp ID09PSAkanNwcmVmaXgpIHsNCgkJCQkkb3V0U3RyIC49ICRmaWxlb2JqLm47DQoJCQl9IGVs c2UgaWYgKHN1YnN0cigkZmlsZW9iaiwgMCwgc3RybGVuKCRjc3NwcmVmaXgpKSA9PT0gJGNz c3ByZWZpeCkgew0KCQkJCSRvdXRTdHIgLj0gJGZpbGVvYmoubjsNCgkJCX0gZWxzZSBpZiAo c3Vic3RyKCRmaWxlb2JqLCAwLCBzdHJsZW4oJHR4cHByZWZpeCkpID09PSAkdHhwcHJlZml4 KSB7DQoJCQkJJG91dFN0ciAuPSBwYXJzZSgkZmlsZW9iaik7DQoJCQl9IGVsc2Ugew0KCQkJ CWlmICgkbW9kc0xvYWRlZCA8IDIpIHsNCgkJCQkJJG91dFN0ciAuPSAnPHNjcmlwdCB0eXBl PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iJyAuJGZpbGVvYmouICciPjwvc2NyaXB0PicubjsN CgkJCQl9IGVsc2Ugew0KCQkJCQkkb3V0U3RyIC49ICc8bGluayByZWw9InN0eWxlc2hlZXQi IGhyZWY9IicgLiRmaWxlb2JqLiAnIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIg Lz4nLm47DQoJCQkJfQ0KCQkJfQ0KCQkJJG1vZHNMb2FkZWQrKzsNCgkJfQ0KCX0NCg0KCS8v IEluY2x1ZGUgdGhlIGNzcyBmaWxlIGlmIHJlcXVpcmVkDQoJaWYgKCRjc3NkaXIgIT0gJycp IHsNCgkJJG91dFN0ciAuPSAnPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSInIC4kY3Nz ZGlyLiAnL3NsaW1ib3guY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiIgLz4n Lm47DQoJCSRtb2RzTG9hZGVkKys7DQoJfQ0KDQoJLy8gU2V0IHRoZSBmbGFnIHRvIHNheSB0 aGUgbGlicyBhcmUgb2suIFNoYW1lIHRoZXJlJ3Mgbm8gZWFzeSBwcm92aXNpb24gZm9yDQoJ Ly8gY2hlY2tpbmcgdGhlIGZpbGVzIGFjdHVhbGx5IGV4aXN0IGF0IHRoZSBnaXZlbiBsb2Nh dGlvbnMsIGJ1dCBoZXkNCglpZiAoJG1vZHNMb2FkZWQgPT0gJG1vZHNSZXF1aXJlZCkgew0K CQkkc21kX3Nib3hfbGlicyA9IHRydWU7DQoJfSBlbHNlIHsNCgkJJHNtZF9zYm94X2xpYnMg PSBmYWxzZTsNCgkJJG91dFN0ciA9ICRzbWRfc2JveExhbmctPmdUeHQoJ2luY2VycicpLm47 DQoJfQ0KDQoJcmV0dXJuICRvdXRTdHI7DQp9DQoNCmZ1bmN0aW9uIHNtZF9zbGltYm94KCRh dHRzKSB7DQoJZ2xvYmFsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICRpbWdfZGlyOw0KCWds b2JhbCAkc21kX3Nib3hfbGlicywgJHNtZF9zYm94TGFuZzsNCg0KCWlmIChpc19hcnJheSgk YXR0cykpIGV4dHJhY3QoJGF0dHMpOw0KCSRjYXRpZG9wdHMgPSAoaXNzZXQoJGNhdGVnb3J5 KSB8fCBpc3NldCgkaW1hZ2VpZCkpID8gdHJ1ZSA6IGZhbHNlOw0KDQoJLy8gUGx1Z2luIG9w dGlvbnMNCgkkbGliY2hlY2sgPSBpc3NldCgkbGliY2hlY2spID8gJGxpYmNoZWNrOiAiMSI7 DQoJJHBhcmFtZGVsaW0gPSBpc3NldCgkcGFyYW1kZWxpbSkgPyAkcGFyYW1kZWxpbSA6ICI6 IjsNCgkkaW1hZ2VpZCA9IGlzc2V0KCRpbWFnZWlkKSA/IGRvU2xhc2goJGltYWdlaWQpIDog Jyc7DQoJJGNhdGVnb3J5ID0gaXNzZXQoJGNhdGVnb3J5KSA/IGRvU2xhc2goJGNhdGVnb3J5 KSA6ICgoJGltYWdlaWQ9PSIiKSA/ICRwcmV0ZXh0WydjJ106ICcnKTsNCgkkc3ViY2F0cyA9 IGlzc2V0KCRzdWJjYXRzKSA/IHRydWUgOiBmYWxzZTsNCgkkY2F0bGFiZWwgPSBpc3NldCgk Y2F0bGFiZWwpID8gJGNhdGxhYmVsOiAiYXJ0aWNsZS0iOw0KCSRncm91cG5hbWUgPSBpc3Nl dCgkZ3JvdXBuYW1lKSA/ICRncm91cG5hbWU6ICJzbWQiOw0KCSR0aHVtYiA9IGlzc2V0KCR0 aHVtYikgPyB0cnVlIDogZmFsc2U7DQoJJG1heGxpbWl0ID0gaXNzZXQoJG1heGxpbWl0KSA/ ICRtYXhsaW1pdDogIjk5OTk5IjsNCgkkbGltaXQgPSBpc3NldCgkbGltaXQpID8gJGxpbWl0 OiAiMCI7DQoJJG9yZGVyYnkgPSBpc3NldCgkb3JkZXJieSkgPyAkb3JkZXJieTogImNhdGVn b3J5IjsNCgkkc2hvd3BhZ2VsaW5rcyA9IGlzc2V0KCRzaG93cGFnZWxpbmtzKSA/ICRzaG93 cGFnZWxpbmtzOiAiMSI7DQoJJGdhbGxlcnlpZCA9IGlzc2V0KCRnYWxsZXJ5aWQpID8gJGdh bGxlcnlpZDogIj80OjYiOw0KCSR0aHVtYnNpemUgPSBpc3NldCgkdGh1bWJzaXplKSA/ICR0 aHVtYnNpemUgOiAiIjsNCgkkcHJldmxhYmVsPSBpc3NldCgkcHJldmxhYmVsKSA/ICRwcmV2 bGFiZWw6ICRzbWRfc2JveExhbmctPmdUeHQoJ3ByZXZfbGJsJyk7DQoJJG5leHRsYWJlbD0g aXNzZXQoJG5leHRsYWJlbCkgPyAkbmV4dGxhYmVsOiAkc21kX3Nib3hMYW5nLT5nVHh0KCdu ZXh0X2xibCcpOw0KCSRpbWFnZWNhcHRpb24gPSBpc3NldCgkaW1hZ2VjYXB0aW9uKSA/ICRp bWFnZWNhcHRpb246ICI/Y2FwdGlvbiI7DQoJJHRodW1idGV4dCA9IGlzc2V0KCR0aHVtYnRl eHQpID8gJHRodW1idGV4dCA6ICIiOw0KCSRzaG93Y2FwdGlvbiA9IGlzc2V0KCRzaG93Y2Fw dGlvbikgPyAkc2hvd2NhcHRpb246ICIwIjsgLy8gREVQUkVDQVRFRA0KCSRzaG93YWx0ID0g aXNzZXQoJHNob3dhbHQpID8gJHNob3dhbHQ6ICIwIjsgLy8gREVQUkVDQVRFRA0KCSR0ZXh0 cG9zID0gaXNzZXQoJHRleHRwb3MpID8gJHRleHRwb3M6ICJiZWxvdyI7IC8vIERFUFJFQ0FU RUQNCgkkd3JhcHRhZyA9IGlzc2V0KCR3cmFwdGFnKSA/ICR3cmFwdGFnOiAiIjsNCgkkY2Vs bGNsYXNzID0gaXNzZXQoJGNlbGxjbGFzcykgPyAkY2VsbGNsYXNzOiAiIjsNCgkkaW1nY2xh c3MgPSBpc3NldCgkaW1nY2xhc3MpID8gJGltZ2NsYXNzOiAiIjsNCgkkbmF2Y2xhc3MgPSBp c3NldCgkbmF2Y2xhc3MpID8gJG5hdmNsYXNzOiAiIjsNCgkkcHJldmNsYXNzID0gaXNzZXQo JHByZXZjbGFzcykgPyAkcHJldmNsYXNzOiAic21kX3NsaW1ib3hfcHJldiI7DQoJJG5leHRj bGFzcyA9IGlzc2V0KCRuZXh0Y2xhc3MpID8gJG5leHRjbGFzczogInNtZF9zbGltYm94X25l eHQiOw0KCSRjYXB0aW9uY2xhc3MgPSBpc3NldCgkYWx0Y2xhc3MpID8gJGFsdGNsYXNzIDog KGlzc2V0KCRjYXB0aW9uY2xhc3MpID8gJGNhcHRpb25jbGFzczogIiIpOyAvLyBERVBSRUNB VEVEDQoJJHRodW1idGV4dGNsYXNzID0gaXNzZXQoJHRodW1idGV4dGNsYXNzKSA/ICR0aHVt YnRleHRjbGFzcyA6ICRjYXB0aW9uY2xhc3M7DQoJJHRodW1idGV4dHdyYXAgPSBpc3NldCgk dGh1bWJ0ZXh0d3JhcCkgPyAkdGh1bWJ0ZXh0d3JhcCA6ICJzcGFuIjsNCg0KCSRmaXhlZE9y ZGVyID0gZmFsc2U7DQoJJGdhbGxJRCA9ICIiOw0KCSRmaWVsZE1hcCA9IGFycmF5KCJuYW1l IiA9PiAibmFtZSIsDQoJCQkJCQkJImlkIiA9PiAiaWQiLA0KCQkJCQkJCSJhbHQiID0+ICJh bHQiLA0KCQkJCQkJCSJjYXB0aW9uIiA9PiAiY2FwdGlvbiIsDQoJCQkJCQkJImNhdGVnb3J5 IiA9PiAiY2F0ZWdvcnkiLA0KCQkJCQkJCSJhdXRob3IiID0+ICJhdXRob3IiLA0KCQkJCQkJ CSJkYXRlIiA9PiAiZGF0ZSIsDQoJCQkJCQkJImV4dCIgPT4gImV4dCIsDQoJCQkJCQkJInci ID0+ICJ3aWR0aCIsDQoJCQkJCQkJImgiID0+ICJoZWlnaHQiKTsNCgkkc2hvd0xvY3MgPSBh cnJheSgiYmVsb3ciLCJhYm92ZSIsImFmdGVyIiwiYmVmb3JlIiwib25jaGFuZ2UiKTsNCgkk dGh1bWJob2xkZXIgPSAiOjpTQk9YX1JFUEw6OiI7DQoNCgkvLyBUaGUgZ2FsbGVyeSBpZGVu dGlmaWVyIGlzIHVzZWQgZm9yIGtlZXBpbmcgdHJhY2sgb2YgbmV4dC9wcmV2IHRodW1icGFn ZSBsaW5rcw0KCWlmICgkZ2FsbGVyeWlkID09ICIiIHx8IHN1YnN0cigkZ2FsbGVyeWlkLDAs MSkgPT0gIj8iKSB7DQoJCS8vIEdlbmVyYXRlIGEgdW5pcXVlIElEIGZvciB0aGlzIGdhbGxl cnkgaW5zdGFuY2UNCgkJJGdhbGxUbXAgPSBtZDUoJGNhdGVnb3J5LiRpbWFnZWlkLiRvcmRl cmJ5LiRsaW1pdC4kbWF4bGltaXQuJHdyYXB0YWcpOw0KCQlsaXN0KCRnYWxsTGVuLCAkZ2Fs bFNraXApID0gZXhwbG9kZSgiOiIsIHN1YnN0cigkZ2FsbGVyeWlkLDEpKTsNCgkJJGdhbGxM ZW4gPSAgKGVtcHR5KCRnYWxsTGVuKSkgPyAiNCIgOiAkZ2FsbExlbjsNCgkJJGdhbGxTa2lw ID0gIChlbXB0eSgkZ2FsbFNraXApKSA/ICIxIiA6ICRnYWxsU2tpcDsNCgkJZm9yICgkaWR4 ID0gMCwgJGNudCA9IDA7ICRjbnQgPCAkZ2FsbExlbjsgJGNudCsrLCAkaWR4ID0gKCgkaWR4 KyRnYWxsU2tpcCkgJSBzdHJsZW4oJGdhbGxUbXApKSkgew0KCQkJJGdhbGxJRCAuPSAkZ2Fs bFRtcFskaWR4XTsNCgkJfQ0KCX0gZWxzZSB7DQoJCSRnYWxsSUQgPSAkZ2FsbGVyeWlkOw0K CX0NCg0KCS8vIE1haW4gY29kZSBib2R5DQoJaWYgKCgkbGliY2hlY2sgPT0gMSkgJiYgKCRz bWRfc2JveF9saWJzID09IGZhbHNlKSkgew0KCQkkb3V0U3RyID0gJHNtZF9zYm94TGFuZy0+ Z1R4dCgnbm9pbmMnKTsNCgl9IGVsc2Ugew0KCQkvLyBUaGUgZGF0YWJhc2UgZmllbGRzIHJl cXVpcmVkDQoJCSRmaWVsZHMgPSAnaWQsbmFtZSxjYXB0aW9uLGFsdCxjYXRlZ29yeSxkYXRl LGF1dGhvcixleHQsdyxoJzsNCg0KCQkvLyBDb252ZXJ0IHRoZSBjYXRlZ29yeSAocG9zc2li bHkgYSBjb21tYS1zZXAgbGlzdCkgaW50byBhbiBTUUwtc3R5bGUgJ2luJyBsaXN0Lg0KCQkk ZnVsbENhdExpc3QgPSBhcnJheSgpOw0KCQkkbm90Q2F0TGlzdCA9IGFycmF5KCk7DQoJCSRj YXRWYXJzID0gYXJyYXkoIj9jIiwgIiFjIiwgIj9zIiwgIiFzIiwgIj90IiwgIiF0IiwgIj9p ZCIsICIhaWQiLCAiP2ZpZWxkIiwgIiFmaWVsZCIpOw0KCQkkcmV0QXJyYXkgPSBzbWRfZ2V0 T3B0cygkY2F0ZWdvcnksICRjYXRWYXJzLCAkY2F0bGFiZWwsIGZhbHNlKTsNCgkJJGZ1bGxD YXRMaXN0ID0gJHJldEFycmF5WzBdOw0KCQkkbm90Q2F0TGlzdCA9ICRyZXRBcnJheVsxXTsN Cg0KCQkvLyBDb252ZXJ0IHRoZSBpbWFnZWlkIChwb3NzaWJseSBhIGNvbW1hLXNlcCBsaXN0 KSBpbnRvIGFuIFNRTC1zdHlsZSAnaW4nIGxpc3QuDQoJCSRmdWxsSURMaXN0ID0gYXJyYXko KTsNCgkJJG5vdElETGlzdCA9IGFycmF5KCk7DQoJCSRpZFZhcnMgPSBhcnJheSgiP2lkIiwg IiFpZCIsICI/ZmllbGQiLCAiIWZpZWxkIik7DQoJCSRyZXRBcnJheSA9IHNtZF9nZXRPcHRz KCRpbWFnZWlkLCAkaWRWYXJzKTsNCgkJJGZ1bGxJRExpc3QgPSAkcmV0QXJyYXlbMF07DQoJ CSRub3RJRExpc3QgPSAkcmV0QXJyYXlbMV07DQoNCgkJLy8gTWFrZSB1cCB0aGUgV0hFUkUg c3RhdGVtZW50IGZyb20gdGhlIGNvbWJpbmVkIGxpc3RzLg0KCQkvLyBUaGUgY2F0ZWdvcmll cy9pbWFnZSBJRHMgYXJlIE9SZWQgdG9nZXRoZXIgaW4gYnJhY2tldHMgZmlyc3QNCgkJLy8g YmVmb3JlIHRoZSBuZWdhdGlvbiBvcHRpb25zIGFyZSB0YWNrZWQgb24gYXMgQU5EcyBhZnRl cndhcmRzDQoJCSR3aGVyZU9SID0gYXJyYXkoKTsNCgkJJHdoZXJlQU5EID0gYXJyYXkoKTsN Cg0KCQkvLyBTdGFydCB0aGUgV0hFUkUgc3RhdGVtZW50IHdpdGggdGhlIGNvbWJpbmVkIGxp c3Qgb2YgaW1hZ2UgSURzDQoJCWlmIChjb3VudCgkZnVsbElETGlzdCkgPiAwKSB7DQoJCQlm b3IgKCRpZHggPSBjb3VudCgkZnVsbElETGlzdCk7ICRpZHggPj0wOyAkaWR4LS0pIHsNCgkJ CQlpZiAoZW1wdHkoJGZ1bGxJRExpc3RbJGlkeF0pKSB7DQoJCQkJCXVuc2V0KCRmdWxsSURM aXN0WyRpZHhdKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkZnVsbElETGlzdFskaWR4XSA9ICIn IiAuICRmdWxsSURMaXN0WyRpZHhdIC4gIiciOw0KCQkJCX0NCgkJCX0NCgkJCWlmIChjb3Vu dCgkZnVsbElETGlzdCkgPiAwKSB7DQoJCQkJJHdoZXJlT1JbXSA9ICJpZCBJTiAoIiAuIGlt cGxvZGUoIiwiLCAkZnVsbElETGlzdCkuICIpIjsNCgkJCX0NCgkJfQ0KDQoJCS8vIGluY2x1 ZGVkIGNhdGVnb3JpZXMgLSBzb21lIG1heSBiZSBzdWJjYXRzDQoJCSR0bXBhID0gYXJyYXko KTsNCgkJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRmdWxsQ2F0TGlzdCk7ICRpZHgr Kykgew0KCQkJaWYgKCRzdWJjYXRzKSB7DQoJCQkJJGNhdGVncyA9IHNtZF9nZXRTdWJDYXRz KCRmdWxsQ2F0TGlzdFskaWR4XSwnaW1hZ2UnKTsNCgkJCQlmb3IgKCRqZHggPSAwOyAkamR4 IDwgY291bnQoJGNhdGVncyk7ICRqZHgrKykgew0KCQkJCQlpZiAoJGNhdGVnc1skamR4XVsn bmFtZSddICE9ICJyb290Iikgew0KCQkJCQkJJHRtcGFbXSA9ICInIiAuJGNhdGVnc1skamR4 XVsnbmFtZSddLiAiJyI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCSR0bXBh W10gPSAiJyIgLiRmdWxsQ2F0TGlzdFskaWR4XS4gIiciOw0KCQkJfQ0KCQl9DQoJCWlmIChj b3VudCgkdG1wYSkgPiAwKSB7DQoJCQkkd2hlcmVPUltdID0gImNhdGVnb3J5IElOICgiIC5p bXBsb2RlKCIsIiwgJHRtcGEpLiAiKSI7DQoJCX0NCg0KCQlpZiAoY291bnQoJHdoZXJlT1Ip ID4gMCkgew0KCQkJJHdoZXJlID0gIigiIC4gaW1wbG9kZSgiIE9SICIsICR3aGVyZU9SKSAu ICIpIjsNCgkJfSBlbHNlIHsNCgkJCSR3aGVyZSA9ICIiOw0KCQl9DQoNCgkJLy8gZXhjbHVk ZWQgY2F0ZWdvcmllcw0KCQkkdG1wYSA9IGFycmF5KCk7DQoJCWZvciAoJGlkeCA9IDA7ICRp ZHggPCBjb3VudCgkbm90Q2F0TGlzdCk7ICRpZHgrKykgew0KCQkJaWYgKCRzdWJjYXRzKSB7 DQoJCQkJJGNhdGVncyA9IHNtZF9nZXRTdWJDYXRzKCRub3RDYXRMaXN0WyRpZHhdLCdpbWFn ZScpOw0KCQkJCWZvciAoJGpkeCA9IDA7ICRqZHggPCBjb3VudCgkY2F0ZWdzKTsgJGpkeCsr KSB7DQoJCQkJCWlmICgkY2F0ZWdzWyRqZHhdWyduYW1lJ10gIT0gInJvb3QiKSB7DQoJCQkJ CQkkdG1wYVtdID0gIiciIC4kY2F0ZWdzWyRqZHhdWyduYW1lJ10uICInIjsNCgkJCQkJfQ0K CQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJJHRtcGFbXSA9ICInIiAuJG5vdENhdExpc3RbJGlk eF0uICInIjsNCgkJCX0NCgkJfQ0KCQlpZiAoY291bnQoJHRtcGEpID4gMCkgew0KCQkJJHdo ZXJlQU5EW10gPSAiY2F0ZWdvcnkgTk9UIElOICgiIC5pbXBsb2RlKCIsIiwgJHRtcGEpLiAi KSI7DQoJCX0NCg0KCQkvLyBBZGQgdG8gdGhlIFdIRVJFIHN0YXRlbWVudCB0aGUgY29tYmlu ZWQgbGlzdCBvZiBOT1QgaW1hZ2UgSURzDQoJCWlmIChjb3VudCgkbm90SURMaXN0KSA+IDAp IHsNCgkJCWZvciAoJGlkeCA9IGNvdW50KCRub3RJRExpc3QpOyAkaWR4ID49MDsgJGlkeC0t KSB7DQoJCQkJaWYgKGVtcHR5KCRub3RJRExpc3RbJGlkeF0pKSB7DQoJCQkJCXVuc2V0KCRu b3RJRExpc3RbJGlkeF0pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRub3RJRExpc3RbJGlkeF0g PSAiJyIgLiAkbm90SURMaXN0WyRpZHhdIC4gIiciOw0KCQkJCX0NCgkJCX0NCgkJCWlmIChj b3VudCgkbm90SURMaXN0KSA+IDApIHsNCgkJCQkkd2hlcmVBTkRbXSA9ICJpZCBOT1QgSU4g KCIgLiBpbXBsb2RlKCIsIiwgJG5vdElETGlzdCkuICIpIjsNCgkJCX0NCgkJfQ0KDQoJCWlm IChjb3VudCgkd2hlcmVBTkQpID4gMCkgew0KCQkJJHdoZXJlIC49ICgoJHdoZXJlPT0iIikg PyAiIiA6ICIgQU5EICIpIC4gaW1wbG9kZSgiIEFORCAiLCAkd2hlcmVBTkQpOw0KCQl9DQoN CgkJaWYgKCR3aGVyZSA9PSAiIikgew0KCQkJaWYgKCEkY2F0aWRvcHRzKSB7DQoJCQkJLy8g SWYgbm8gY2F0ZWdvcnkvaWQgb3B0aW9ucyBnaXZlbiwgY2hvb3NlIGZyb20gdGhlIHdob2xl IGRhdGFiYXNlDQoJCQkJJHdoZXJlID0gIjE9MSI7DQoJCQl9IGVsc2Ugew0KCQkJCS8vIElm IGEgY2F0ZWdvcnkvaWQgb3B0aW9uIHdhcyBjaG9zZW4gdGhlbiB0aGUgdmFsdWVzIG11c3Qg YmUgZW1wdHkuDQoJCQkJLy8gSW4gdGhpcyBjYXNlIHRoZSBwbHVnaW4gc2hvdWxkIGNob29z ZSBmcm9tIGEgYm9ndXMgY2F0ZWdvcnkgdGhhdCBzaG91bGQgbm90IGV4aXN0Lg0KCQkJCSR3 aGVyZSA9ICJjYXRlZ29yeT0nc21kXyIubXRfcmFuZCgpLiInIjsNCgkJCX0NCgkJfQ0KDQoJ CS8vIENvbnZlcnQgdGhlIG9yZGVyYnkgaW50byBhIHZhbGlkIHNvcnRpbmcgaGllcmFyY2h5 Lg0KCQkvLyBOb3RlIHRoYXQgcmFuZG9tIGlzIGEgc3BlY2lhbCBjYXNlIGFuZCB0aGUgZm9s bG93aW5nIHJ1bGVzIGFwcGx5Og0KCQkvLyAgMSkgQW55dGhpbmcgYXBwZWFyaW5nIGJlZm9y ZSByYW5kb20gaXMgcGFzc2VkIHRvIHRoZSBkYXRhYmFzZSBxdWVyeSBmb3Igb3JkZXJpbmcN CgkJLy8gIDIpIEFzIHNvb24gYXMgcmFuZG9tIGlzIGVuY291bnRlcmVkLCB0aGUgb3JkZXJi eSBzdHJpbmcgaXMgaWdub3JlZC4NCgkJLy8gICAgIFRoZSByZXN1bHRzZXQgd2lsbCBiZSBz b3J0ZWQgcmFuZG9tbHkgaW5zdGVhZA0KCQkvLyAgMykgSWYgcmFuZG9tIGFwcGVhcnMgZmly c3QgaW4gdGhlIGxpc3QsIHRoZSBkYXRhIGlzIHJldHJpZXZlZCByYW5kb21seSB0aGVuIHRo ZQ0KCQkvLyAgICAgcmVtYWluaW5nIG9wdGlvbnMgc29ydCB0aGUgcmVzdWx0c2V0DQoJCSR3 aGVyZU9CID0gQXJyYXkoKTsNCgkJJHBvc3RPcmRlciA9IGFycmF5KCk7DQoJCSRydWxlID0g InNxbCI7DQoJCSRwb3N0UHJlZml4ID0gIlNPUlRfIjsNCgkJJHJhbmRzb3J0ID0gZmFsc2U7 DQoJCSRvYkxpc3QgPSBwcmVnX3NwbGl0KCcvWyxcc10rLycsJG9yZGVyYnksLTEsUFJFR19T UExJVF9OT19FTVBUWSk7DQoJCWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkb2JMaXN0 KTsgJGlkeCsrKSB7DQoJCQkkb2JfZGlyID0gZXhwbG9kZSgnOicsJG9iTGlzdFskaWR4XSk7 DQoJCQkkZGlyZWN0aW9uID0gJyc7DQoJCQkkY29sUmVmID0gJyc7DQoJCQlpZiAoY291bnQo JG9iX2RpcikgPD0gMSkgew0KCQkJCSRvYl9kaXJbMV0gPSAiYXNjIjsNCgkJCX0NCgkJCWlm ICgkcnVsZSA9PSAic3FsIikgew0KCQkJCSRkaXJlY3Rpb24gPSAoJG9iX2RpclsxXSA9PSAi ZGVzYyIpID8gJyBkZXNjJyA6ICcgYXNjJzsNCgkJCX0gZWxzZSB7DQoJCQkJJGRpcmVjdGlv biA9ICgkb2JfZGlyWzFdID09ICJkZXNjIikgPyAkcG9zdFByZWZpeC4nREVTQycgOiAkcG9z dFByZWZpeC4nQVNDJzsNCgkJCX0NCg0KCQkJc3dpdGNoICgkb2JfZGlyWzBdKSB7DQoJCQkJ Y2FzZSAncmFuZG9tJzoNCgkJCQkJJHJ1bGUgPSAicG9zdCI7DQoJCQkJCWlmICgkaWR4ID09 IDApIHsNCgkJCQkJCSR3aGVyZU9CW10gPSAncmFuZCgpJzsNCgkJCQkJfSBlbHNlIHsNCgkJ CQkJCSRyYW5kc29ydCA9IHRydWU7DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAn Zml4ZWQnOg0KCQkJCQkvLyAnZml4ZWQnIG9ubHkgd29ya3Mgb24gaW1hZ2UgaWRzDQoJCQkJ CWlmICgkaW1hZ2VpZCAhPSAiIikgew0KCQkJCQkJJGZpeGVkT3JkZXIgPSB0cnVlOw0KCQkJ CQl9DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCSRjb2xSZWYgPSBhcnJheV9z ZWFyY2goJG9iX2RpclswXSwgJGZpZWxkTWFwKTsNCgkJCQkJYnJlYWs7DQoJCQl9DQoJCQlp ZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJCQlpZiAoJGNvbFJlZiAhPSAiIikgew0KCQkJCQkk d2hlcmVPQltdID0gJGNvbFJlZi4kZGlyZWN0aW9uOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJ CQkJaWYgKCEkcmFuZHNvcnQpIHsNCgkJCQkJaWYgKCRjb2xSZWYgIT0gIiIpIHsNCgkJCQkJ CSRwb3N0T3JkZXJbXSA9IGFycmF5KCJjb2wiID0+ICRjb2xSZWYsICJzb3J0IiA9PiAkZGly ZWN0aW9uKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCWlmIChjb3VudCgkd2hl cmVPQikgPiAwKSB7DQoJCQkkd2hlcmUgLj0gJyBPUkRFUiBCWSAnIC4gaW1wbG9kZSgiLCIs JHdoZXJlT0IpOw0KCQl9DQoNCgkJLy8gSGFuZGxlIHBhZ2luZw0KCQlpZiAoKCRsaW1pdCA+ IDApICYmICRzaG93cGFnZWxpbmtzKSB7DQoJCQkkcnMgPSBzYWZlX3Jvd3MoJGZpZWxkcywg J3R4cF9pbWFnZScsICR3aGVyZSAuJyBMSU1JVCAwLCcuJG1heGxpbWl0KTsNCgkJCSRudW10 aHVtID0gY291bnQoJHJzKTsNCgkJCSRudW1QYWdlcyA9ICgkbnVtdGh1bSA+IDApID8gY2Vp bCgkbnVtdGh1bS8kbGltaXQpIDogMTsNCgkJCSR0aHVtYnBhZ2UgPSAoIWdwcygkZ2FsbElE KSkgPyAxIDogZ3BzKCRnYWxsSUQpOw0KCQkJJG9mZnNldCA9ICgkdGh1bWJwYWdlIC0gMSkg KiAkbGltaXQ7DQoJCQkkcnMgPSBzYWZlX3Jvd3MoJGZpZWxkcywgJ3R4cF9pbWFnZScsICR3 aGVyZSAuJyBMSU1JVCAnLiRvZmZzZXQuJywnLiRsaW1pdCk7DQoJCX0gZWxzZSB7DQoJCQkv LyBObyBwYWdpbmcgcmVxdWlyZWQNCgkJCSRudW1QYWdlcyA9IDE7DQoJCQkkdGh1bWJwYWdl ID0gMTsNCgkJCSRycyA9IHNhZmVfcm93cygkZmllbGRzLCAndHhwX2ltYWdlJywgJHdoZXJl IC4nIExJTUlUIDAsJy4gKCgkbGltaXQ9PTApID8gJG1heGxpbWl0IDogJGxpbWl0KSk7DQoJ CX0NCg0KCQkvLyBJcyBwb3N0LW9yZGVyaW5nIHJlcXVpcmVkPyBEbyBpdA0KCQlpZiAoJHJh bmRzb3J0KSB7DQoJCQlzaHVmZmxlKCRycyk7DQoJCX0gZWxzZSBpZiAoY291bnQoJHBvc3RP cmRlcikgPiAwKSB7DQoJCQkvLyBUcmFuc2xhdGUgdGhlIHJvd3MgaW50byBjb2x1bW5zIHRo YXQgY2FuIGJlIHNvcnRlZA0KCQkJZm9yZWFjaCgkcnMgYXMgJGtleSA9PiAkcm93KSB7DQoJ CQkJJGNvbF9pZFska2V5XSA9ICRyb3dbJ2lkJ107DQoJCQkJJGNvbF9uYW1lWyRrZXldID0g JHJvd1snbmFtZSddOw0KCQkJCSRjb2xfY2FwdGlvblska2V5XSA9ICRyb3dbJ2NhcHRpb24n XTsNCgkJCQkkY29sX2FsdFska2V5XSA9ICRyb3dbJ2FsdCddOw0KCQkJCSRjb2xfY2F0ZWdv cnlbJGtleV0gPSAkcm93WydjYXRlZ29yeSddOw0KCQkJCSRjb2xfZGF0ZVska2V5XSA9ICRy b3dbJ2RhdGUnXTsNCgkJCQkkY29sX2V4dFska2V5XSA9ICRyb3dbJ2V4dCddOw0KCQkJCSRj b2xfYXV0aG9yWyRrZXldID0gJHJvd1snYXV0aG9yJ107DQoJCQkJJGNvbF93WyRrZXldID0g JHJvd1sndyddOw0KCQkJCSRjb2xfaFska2V5XSA9ICRyb3dbJ2gnXTsNCgkJCX0NCgkJCS8v IE1ha2UgdXAgYW4gYXJyYXlfbXVsdGlzb3J0IGFyZyBsaXN0IGFuZCBleGVjdXRlIGl0DQoJ CQlmb3IgKCRpZHggPSAwOyAkaWR4IDwgY291bnQoJHBvc3RPcmRlcik7ICRpZHgrKykgew0K CQkJCSRzb3J0YXJnc1tdID0gJyRjb2xfJy4kcG9zdE9yZGVyWyRpZHhdWydjb2wnXTsNCgkJ CQkkc29ydGFyZ3NbXSA9ICRwb3N0T3JkZXJbJGlkeF1bJ3NvcnQnXTsNCgkJCX0NCgkJCSRz b3J0aXQgPSAnYXJyYXlfbXVsdGlzb3J0KCcuaW1wbG9kZSgiLCAiLCRzb3J0YXJncykuJywg JHJzKTsnOw0KCQkJZXZhbCgkc29ydGl0KTsNCgkJfQ0KDQoJCS8vIElzIGZpeGVkLW9yZGVy IG91dHB1dCBkZXNpcmVkPyBJZiBzbywgcmUtb3JkZXIgdGhlICRycw0KCQlpZiAoJGZpeGVk T3JkZXIpIHsNCgkJCSRvcmRlcmVkUlMgPSBBcnJheSgpOw0KCQkJJGlnbm9yZUxpc3QgPSBB cnJheSgpOw0KCQkJJHJlbWFpbmluZ1JTID0gQXJyYXkoKTsNCgkJCS8vIFN1Y2sgb3V0IHRo ZSBmaXhlZCBpdGVtcyBmaXJzdA0KCQkJZm9yICgkaWR4ID0gMDsgJGlkeCA8IGNvdW50KCRm dWxsSURMaXN0KTsgJGlkeCsrKSB7DQoJCQkJZm9yZWFjaCgkcnMgYXMgJHJvdykgew0KCQkJ CQlpZiAoIiciLiRyb3dbJ2lkJ10uIiciID09ICRmdWxsSURMaXN0WyRpZHhdKSB7DQoJCQkJ CQkkb3JkZXJlZFJTW10gPSAkcm93Ow0KCQkJCQkJJGlnbm9yZUxpc3RbXSA9ICRyb3dbJ2lk J107DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQkvLyBUYWNrIG9uIHRoZSByZW1haW5pbmcg cm93cw0KCQkJZm9yZWFjaCgkcnMgYXMgJHJvdykgew0KCQkJCWlmICghaW5fYXJyYXkoJHJv d1snaWQnXSwgJGlnbm9yZUxpc3QpKSB7DQoJCQkJCSRyZW1haW5pbmdSU1tdID0gJHJvdzsN CgkJCQl9DQoJCQl9DQoJCQkkcnMgPSBhcnJheV9tZXJnZSgkb3JkZXJlZFJTLCAkcmVtYWlu aW5nUlMpOw0KCQl9DQoNCgkJLy8gSGFuZGxlIHRodW1ic2l6ZQ0KCQkkdGh1bWJXaWR0aCA9 ICR0aHVtYkhlaWdodCA9ICIiOw0KCQkkdGh1bWJXVW5pdHMgPSAkdGh1bWJIVW5pdHMgPSAi IjsNCgkJaWYgKCR0aHVtYnNpemUpIHsNCgkJCSR0aHVtYlNpemVzID0gc21kX3NwbGl0KCR0 aHVtYnNpemUsIGZhbHNlLCAiLFxzIiwgMCk7DQoJCQlpZiAoY291bnQoJHRodW1iU2l6ZXMp ID09IDEpIHsNCgkJCQkkdGh1bWJXaWR0aCA9ICR0aHVtYkhlaWdodCA9IGVyZWdfcmVwbGFj ZSgiW14wLTldIiwgIiIsICR0aHVtYlNpemVzWzBdKTsNCgkJCQkkdW5pdHMgPSBlcmVnX3Jl cGxhY2UoIlswLTldIiwgIiIsICR0aHVtYlNpemVzWzBdKTsNCgkJCQkkdGh1bWJXVW5pdHMg PSAkdGh1bWJIVW5pdHMgPSAoJHVuaXRzID09ICIiKSA/ICR0aHVtYldVbml0cyA6ICR1bml0 czsNCgkJCX0gZWxzZSB7DQoJCQkJJHRodW1iV2lkdGggPSBlcmVnX3JlcGxhY2UoIlteMC05 XSIsICIiLCAkdGh1bWJTaXplc1swXSk7DQoJCQkJJHRodW1iSGVpZ2h0ID0gZXJlZ19yZXBs YWNlKCJbXjAtOV0iLCAiIiwgJHRodW1iU2l6ZXNbMV0pOw0KCQkJCSR1bml0cyA9IGVyZWdf cmVwbGFjZSgiWzAtOV0iLCAiIiwgJHRodW1iU2l6ZXNbMF0pOw0KCQkJCSR0aHVtYldVbml0 cyA9ICgkdW5pdHMgPT0gIiIgJiYgJHRodW1iV2lkdGggIT0gIiIpID8gJHRodW1iV1VuaXRz IDogJHVuaXRzOw0KCQkJCSR1bml0cyA9IGVyZWdfcmVwbGFjZSgiWzAtOV0iLCAiIiwgJHRo dW1iU2l6ZXNbMV0pOw0KCQkJCSR0aHVtYkhVbml0cyA9ICgkdW5pdHMgPT0gIiIgJiYgJHRo dW1iSGVpZ2h0ICE9ICIiKSA/ICR0aHVtYkhVbml0cyA6ICR1bml0czsNCgkJCX0NCgkJfQ0K DQoJCS8vIFByZXBhcmUgdGhlIGFkZGl0aW9uYWwgdGh1bWIgZGV0YWlscyB0byBzaG93LCBp ZiByZXF1aXJlZA0KCQkkcG9zQXJyYXkgPSBhcnJheSgpOw0KDQoJCS8vIERFUFJFQ0FURUQ6 IEhhbmRsZSBkZXByZWNhdGVkIG9wdGlvbnMgZm9yIG5vdzsgcmVtb3ZlIGxhdGVyDQoJCWlm ICgkdGV4dHBvcyAmJiBpbl9hcnJheSgkdGV4dHBvcywkc2hvd0xvY3MpKSB7DQoJCQlpZiAo JHNob3dhbHQpIHsNCgkJCQkkcG9zQXJyYXlbJHRleHRwb3NdID0gIj9hbHQiOw0KCQkJfQ0K CQkJaWYgKCRzaG93Y2FwdGlvbikgew0KCQkJCSRwb3NBcnJheVskdGV4dHBvc10gPSAiP2Nh cHRpb24iOw0KCQkJfQ0KCQl9DQoNCgkJLy8gdGh1bWJ0ZXh0IG92ZXJyaWRlcyBzaG93YWx0 L3Nob3djYXB0aW9uDQoJCSRzaG93b3B0cyA9IHNtZF9zcGxpdCgkdGh1bWJ0ZXh0LCBmYWxz ZSwgIi8sfCxzLyIpOw0KCQlmb3JlYWNoICgkc2hvd29wdHMgYXMgJGl0ZW0pIHsNCgkJCSRz aG93cG9zID0gc21kX3NwbGl0KCRpdGVtLCBmYWxzZSwgIi8iLiRwYXJhbWRlbGltLiIvIik7 DQoJCQlpZiAoY291bnQoJHNob3dwb3MpID4gMSAmJiBpbl9hcnJheSgkc2hvd3Bvc1swXSwk c2hvd0xvY3MpKSB7DQoJCQkJJHBvc0FycmF5WyRzaG93cG9zWzBdXSA9ICRzaG93cG9zWzFd Ow0KCQkJfSBlbHNlIHsNCgkJCQkkcG9zQXJyYXlbJHNob3dMb2NzWzBdXSA9ICgoY291bnQo JHNob3dwb3MpPjEpID8gJHNob3dwb3NbMV0gOiAkc2hvd3Bvc1swXSk7DQoJCQl9DQoJCX0N Cg0KCQkvLyBDb25zdHJ1Y3QgdGhlIG91dHB1dA0KCQkkZmllbGRSRSA9ICcvXD8oJy5pbXBs b2RlKCd8JywgJGZpZWxkTWFwKS4nfHVybCkvJzsNCgkJJHRodW1idGV4dFBsYXRlID0gKCgk dGh1bWJ0ZXh0d3JhcCkgPyAnPCcgLiAkdGh1bWJ0ZXh0d3JhcCAuICgoJHRodW1idGV4dGNs YXNzICE9ICIiKSA/ICcgY2xhc3M9IicgLiR0aHVtYnRleHRjbGFzcy4gJyInIDogJycpIC4g Jz4nIDogJycpIC4kdGh1bWJob2xkZXIuICgoJHRodW1idGV4dHdyYXApID8gJzwvJyAuICR0 aHVtYnRleHR3cmFwLiAnPicgOiAnJyk7DQoJCSRvdXRTdHIgPSAnJzsNCgkJaWYoJHJzKSB7 DQoJCQkkdGh1bWJ0ZXh0Q3Vycj0iIjsNCgkJCWZvcmVhY2goJHJzIGFzICRyb3cpIHsNCgkJ CQkkdGhlVGh1bWIgPSBodS4kaW1nX2Rpci4nLycgLiAkcm93WydpZCddIC4gJ3QnIC4gJHJv d1snZXh0J107DQoJCQkJJGZ1bGwgPSBodS4kaW1nX2Rpci4nLycgLiAkcm93WydpZCddIC4g KCgkdGh1bWIpID8gInQiIDogIiIpIC4kcm93WydleHQnXTsNCgkJCQlpZiAoJGdyb3VwbmFt ZSA9PT0gIj9jIikgew0KCQkJCQkkZ3JwID0gJHJvd1snY2F0ZWdvcnknXTsNCgkJCQl9IGVs c2UgaWYgKCRncm91cG5hbWUgPT09ICI/aWQiKSB7DQoJCQkJCSRncnAgPSAkcm93WydpZCdd Ow0KCQkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9hdXRob3IiKSB7DQoJCQkJCSRn cnAgPSAkcm93WydhdXRob3InXTsNCgkJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/ ZGF0ZSIpIHsNCgkJCQkJJGdycCA9ICRyb3dbJ2RhdGUnXTsNCgkJCQl9IGVsc2UgaWYgKCRn cm91cG5hbWUgPT09ICI/YWx0Iikgew0KCQkJCQkkZ3JwID0gJHJvd1snYWx0J107DQoJCQkJ fSBlbHNlIGlmICgkZ3JvdXBuYW1lID09PSAiP2NhcHRpb24iKSB7DQoJCQkJCSRncnAgPSAk cm93WydjYXB0aW9uJ107DQoJCQkJfSBlbHNlIGlmICgkZ3JvdXBuYW1lID09PSAiP2V4dCIp IHsNCgkJCQkJJGdycCA9ICRyb3dbJ2V4dCddOw0KCQkJCX0gZWxzZSBpZiAoJGdyb3VwbmFt ZSA9PT0gIj9uYW1lIikgew0KCQkJCQkkZ3JwID0gJHJvd1snbmFtZSddOw0KCQkJCX0gZWxz ZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj93aWR0aCIpIHsNCgkJCQkJJGdycCA9ICRyb3dbJ3cn XTsNCgkJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/aGVpZ2h0Iikgew0KCQkJCQkk Z3JwID0gJHJvd1snaCddOw0KCQkJCX0gZWxzZSBpZiAoc3Vic3RyKCRncm91cG5hbWUsMCwx KSA9PT0gIj8iKSB7DQoJCQkJCS8vIFNwbGl0IG9mZiB0aGUgZmllbGQgbmFtZSBmcm9tIHRo ZSBxdWVzdGlvbiBtYXJrDQoJCQkJCSRmaWVsZG5hbWUgPSBzdWJzdHIoJGdyb3VwbmFtZSwx KTsNCgkJCQkJaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskZmllbGRuYW1lXSkpIHsNCgkJCQkJ CSRncnAgPSAkdGhpc2FydGljbGVbJGZpZWxkbmFtZV07DQoJCQkJCX0gZWxzZSB7DQoJCQkJ CQkkZ3JwID0gJyc7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQkkZ3JwID0gJGdyb3Vw bmFtZTsNCgkJCQl9DQoNCgkJCQkvLyBIYW5kbGUgaW1hZ2VjYXB0aW9uDQoJCQkJJGNhcHRp b25Nc2cgPSAkaW1hZ2VjYXB0aW9uOw0KCQkJCSRtYXRjaGVzID0gYXJyYXkoKTsNCgkJCQkk Y3RyID0gcHJlZ19tYXRjaF9hbGwoJGZpZWxkUkUsICRjYXB0aW9uTXNnLCAkbWF0Y2hlcywg UFJFR19TRVRfT1JERVIpOw0KCQkJCWZvciAoJGlkeCA9IDA7ICRpZHggPCAkY3RyOyAkaWR4 KyspIHsNCgkJCQkJJGZpZWxkbmFtZSA9ICRtYXRjaGVzWyRpZHhdWzFdOw0KCQkJCQkka2V5 ID0gYXJyYXlfc2VhcmNoKCRmaWVsZG5hbWUsICRmaWVsZE1hcCk7DQoJCQkJCWlmICgka2V5 KSB7DQoJCQkJCQkkcmVwID0gJHJvd1ska2V5XTsNCgkJCQkJfSBlbHNlIGlmICgkZmllbGRu YW1lID09ICJ1cmwiKSB7DQoJCQkJCQkkcmVwID0gJGZ1bGw7DQoJCQkJCX0gZWxzZSB7DQoJ CQkJCQkkcmVwID0gJGZpZWxkbmFtZTsNCgkJCQkJfQ0KCQkJCQkkY2FwdGlvbk1zZyA9IHN0 cl9yZXBsYWNlKCRtYXRjaGVzWyRpZHhdWzBdLCAkcmVwLCAkY2FwdGlvbk1zZyk7DQoJCQkJ fQ0KDQoJCQkJLy8gSGFuZGxlIHRodW1idGV4dA0KCQkJCSR0aHVtYnRleHRBcnJheSA9IGFy cmF5X2NvbWJpbmUoJHNob3dMb2NzLCBhcnJheSgiIiwiIiwiIiwiIiwiIikpOyAvLyBJbml0 aWFsaXNlIGV2ZXJ5IGVsZW1lbnQNCgkJCQlmb3JlYWNoICgkcG9zQXJyYXkgYXMgJHBvcyA9 PiAkdGV4dCkgew0KCQkJCQkkbWF0Y2hlcyA9IGFycmF5KCk7DQoJCQkJCSRjdHIgPSBwcmVn X21hdGNoX2FsbCgkZmllbGRSRSwgJHRleHQsICRtYXRjaGVzLCBQUkVHX1NFVF9PUkRFUik7 DQoJCQkJCWZvciAoJGlkeCA9IDA7ICRpZHggPCAkY3RyOyAkaWR4KyspIHsNCgkJCQkJCSRm aWVsZG5hbWUgPSAkbWF0Y2hlc1skaWR4XVsxXTsNCgkJCQkJCSRrZXkgPSBhcnJheV9zZWFy Y2goJGZpZWxkbmFtZSwgJGZpZWxkTWFwKTsNCgkJCQkJCWlmICgka2V5KSB7DQoJCQkJCQkJ JHJlcCA9ICRyb3dbJGtleV07DQoJCQkJCQl9IGVsc2UgaWYgKCRmaWVsZG5hbWUgPT0gInVy bCIpIHsNCgkJCQkJCQkkcmVwID0gJGZ1bGw7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCSRy ZXAgPSAkZmllbGRuYW1lOw0KCQkJCQkJfQ0KCQkJCQkJJHRleHQgPSBzdHJfcmVwbGFjZSgk bWF0Y2hlc1skaWR4XVswXSwgJHJlcCwgJHRleHQpOw0KCQkJCQl9DQoJCQkJCSR0aHVtYnRl eHRBcnJheVskcG9zXSA9ICR0ZXh0Ow0KCQkJCX0NCg0KCQkJCS8vIENvbnN0cnVjdCB0aGUg bGluayBhbmQgcHV0IHRodW1idGV4dCBpbiB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb25zDQoJ CQkJJG91dFN0ciAuPSAoJHRodW1idGV4dEFycmF5WyJvbmNoYW5nZSJdICYmICR0aHVtYnRl eHRBcnJheVsib25jaGFuZ2UiXSAhPSAkdGh1bWJ0ZXh0Q3VycikgPyBzdHJfcmVwbGFjZSgk dGh1bWJob2xkZXIsIGh0bWxzcGVjaWFsY2hhcnNfZGVjb2RlKCR0aHVtYnRleHRBcnJheVsi b25jaGFuZ2UiXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJzsNCgkJCQkkb3V0U3RyIC49ICgk d3JhcHRhZyAhPSAiIikgPyAnPCcgLiR3cmFwdGFnLiAoKCRjZWxsY2xhc3MgIT0gIiIpID8g JyBjbGFzcz0iJyAuJGNlbGxjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJyc7DQoJCQkJJG91 dFN0ciAuPSAoJHRodW1idGV4dEFycmF5WyJhYm92ZSJdKSA/IHN0cl9yZXBsYWNlKCR0aHVt YmhvbGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUoJHRodW1idGV4dEFycmF5WyJhYm92 ZSJdKSwgJHRodW1idGV4dFBsYXRlKSA6ICcnOw0KCQkJCSRvdXRTdHIgLj0gJzxhIGhyZWY9 IicuJGZ1bGwuJyIgcmVsPSJsaWdodGJveC0nIC4kZ3JwLiAnIiB0aXRsZT0iJyAuJGNhcHRp b25Nc2cuICciPicgLigoJHRodW1idGV4dEFycmF5WyJiZWZvcmUiXSkgPyBzdHJfcmVwbGFj ZSgkdGh1bWJob2xkZXIsIGh0bWxzcGVjaWFsY2hhcnNfZGVjb2RlKCR0aHVtYnRleHRBcnJh eVsiYmVmb3JlIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJycpLiAnPGltZyBzcmM9IicgLiR0 aGVUaHVtYi4gJyIgYWx0PSInIC4kcm93WydhbHQnXS4gJyInIC4gKCgkaW1nY2xhc3MgIT0g IiIpID8gJyBjbGFzcz0iJyAuJGltZ2NsYXNzLiAnIicgOiAnJykgLiAoKCR0aHVtYldpZHRo KSA/ICcgd2lkdGg9IicgLiAkdGh1bWJXaWR0aC4kdGh1bWJXVW5pdHMuICciJyA6ICcnKSAu ICgoJHRodW1iSGVpZ2h0KSA/ICcgaGVpZ2h0PSInIC4gJHRodW1iSGVpZ2h0LiR0aHVtYkhV bml0cy4gJyInIDogJycpIC4gJyAvPicgLigoJHRodW1idGV4dEFycmF5WyJhZnRlciJdKSA/ IHN0cl9yZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUoJHRo dW1idGV4dEFycmF5WyJhZnRlciJdKSwgJHRodW1idGV4dFBsYXRlKSA6ICcnKS4gJzwvYT4n Lm47DQoJCQkJJG91dFN0ciAuPSAoJHRodW1idGV4dEFycmF5WyJiZWxvdyJdKSA/IHN0cl9y ZXBsYWNlKCR0aHVtYmhvbGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUoJHRodW1idGV4 dEFycmF5WyJiZWxvdyJdKSwgJHRodW1idGV4dFBsYXRlKSA6ICcnOw0KCQkJCSRvdXRTdHIg Lj0gKCR3cmFwdGFnICE9ICIiKSA/ICc8LycgLiR3cmFwdGFnLiAnPicgOiAnJzsNCgkJCQkk b3V0U3RyIC49IG47DQoJCQkJJHRodW1idGV4dEN1cnIgPSAkdGh1bWJ0ZXh0QXJyYXlbIm9u Y2hhbmdlIl07DQoJCQl9DQoNCgkJCS8vIEFkZCB0aGUgcGFnaW5nIGZlYXR1cmVzIGlmIHJl cXVpcmVkDQoJCQlpZiAoKCRsaW1pdCA+IDApICYmICRzaG93cGFnZWxpbmtzKSB7DQoJCQkJ JG5leHQgPSAoJG51bVBhZ2VzID4gMSAmJiAkdGh1bWJwYWdlICE9ICRudW1QYWdlcyk7DQoJ CQkJJHByZXYgPSAoJG51bVBhZ2VzID4gMSAmJiAkdGh1bWJwYWdlID4gMSk7DQoNCgkJCQkv LyBSZXBsYWNlIGFueSBwYWdpbmcgaW5mbyBpbiB0aGUgcXVlcnkgc3RyaW5nDQoJCQkJJHBy ZXZQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2FsbElE LCAkdGh1bWJwYWdlLTEpOw0KCQkJCSRuZXh0UGFnZSA9IHNtZF9hZGRRU1ZhcigkcHJldGV4 dFsncmVxdWVzdF91cmknXSwgJGdhbGxJRCwgJHRodW1icGFnZSsxKTsNCg0KCQkJCSRvdXRT dHIgLj0gKCR3cmFwdGFnICE9ICIiKSA/ICc8JyAuJHdyYXB0YWcuICgoJG5hdmNsYXNzICE9 ICIiKSA/ICcgY2xhc3M9IicgLiRuYXZjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJyc7DQoJ CQkJJG91dFN0ciAuPSAoJHByZXYpID8gJzxhJyAuICgoJHByZXZjbGFzcyAhPSAiIikgPyAn IGNsYXNzPSInIC4kcHJldmNsYXNzLiAnIicgOiAnJykgLiAnIGhyZWY9IicgLiRwcmV2UGFn ZS4gJyI+JyAuJHByZXZsYWJlbC4gJzwvYT4nLm4gOiAnJzsNCgkJCQkkb3V0U3RyIC49ICgk bmV4dCkgPyAnPGEnIC4gKCgkbmV4dGNsYXNzICE9ICIiKSA/ICcgY2xhc3M9IicgLiRuZXh0 Y2xhc3MuICciJyA6ICcnKSAuICcgaHJlZj0iJyAuJG5leHRQYWdlLiAnIj4nIC4kbmV4dGxh YmVsLiAnPC9hPicubiA6ICcnOw0KCQkJCSRvdXRTdHIgLj0gKCR3cmFwdGFnICE9ICIiKSA/ ICc8LycgLiR3cmFwdGFnLiAnPicgOiAnJzsNCgkJCQkkb3V0U3RyIC49IG47DQoJCQl9DQoJ CX0NCgl9DQoNCglyZXR1cm4gJG91dFN0cjsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjQ6 ImhlbHAiO3M6MzM1MTk6IjxoMSBpZD0idG9wIj5zbWRfc2xpbWJveDwvaDE+CjxwPkZvciBt b3JlIGluZm9ybWF0aW9uIG9uIHVzYWdlLCBidWdzLCBmZWF0dXJlcyBldGMsIHBsZWFzZSA8 YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9 MjA3MTQiPnZpc2l0IHRoZSBmb3J1bSB0aHJlYWQ8L2E+LiBGb3Igb3RoZXIgc29mdHdhcmUg YnkgbWUsIG9yIHRvIG1ha2UgYSBkb25hdGlvbiwgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8v c3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LjwvcD4KPHAgaWQ9InNtZGxp YiIgY2xhc3M9InJlcXVpcmVkIj5SZXF1aXJlcyA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nv bi5jb20vZG93bmxvYWRzL3NtZF9saWJfdjAuMzEudHh0Ij5zbWRfbGliIHYwLjMxPC9hPiB0 byBiZSBpbnN0YWxsZWQgYW5kIGFjdGl2YXRlZC48cD4KCjxoMiBpZD0iY29udGVudHMiPkNv bnRlbnRzPC9oMj4KPHVsPgo8bGk+PGEgaHJlZj0iI292ZXJ2aWV3Ij5PdmVydmlldzwvYT48 L2xpPgo8bGk+PGEgaHJlZj0iI2luc3RhbGwiPkluc3RhbGxhdGlvbjwvYT48L2xpPgo8bGk+ PGEgaHJlZj0iI2luYyI+TG9hZGluZyBpbmNsdWRlZCBmaWxlczogc21kX3NsaW1ib3hfaW5j PC9hPgo8dWw+CjxsaT48YSBocmVmPSIjanNkaXIiPmpzZGlyIGFuZCBjc3NkaXI8L2E+PC9s aT4KPGxpPjxhIGhyZWY9IiNzY3JpcHRzIj5zY3JpcHRzPC9hPjwvbGk+CjxsaT48YSBocmVm PSIjc2tpcCI+c2tpcDwvYT48L2xpPgo8L3VsPjwvbGk+CjxsaT48YSBocmVmPSIjc2xpbWJv eCI+VGhlIHBsdWdpbjogc21kX3NsaW1ib3g8L2E+Cjx1bD4KPGxpPjxhIGhyZWY9IiNjYXRl Z29yeSI+Y2F0ZWdvcnk8L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNzdWJjYXRzIj5zdWJjYXRz PC9hPjwvbGk+CjxsaT48YSBocmVmPSIjY2F0bGFiZWwiPmNhdGxhYmVsPC9hPjwvbGk+Cjxs aT48YSBocmVmPSIjaW1hZ2VpZCI+aW1hZ2VpZDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2lt YWdlY2FwdGlvbiI+aW1hZ2VjYXB0aW9uPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjdGh1bWIi PnRodW1iPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjbGltaXQiPmxpbWl0PC9hPjwvbGk+Cjxs aT48YSBocmVmPSIjbWF4bGltaXQiPm1heGxpbWl0PC9hPjwvbGk+CjxsaT48YSBocmVmPSIj b3JkZXJieSI+b3JkZXJieTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2dyb3VwbmFtZSI+Z3Jv dXBuYW1lPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjc2hvd3BhZ2VsaW5rcyI+c2hvd3BhZ2Vs aW5rczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2dhbGxlcnlpZCI+Z2FsbGVyeWlkPC9hPjwv bGk+CjxsaT48YSBocmVmPSIjdGh1bWJzaXplIj50aHVtYnNpemU8L2E+PC9saT4KPGxpPjxh IGhyZWY9IiN0aHVtYnRleHQiPnRodW1idGV4dDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI3Bh cmFtZGVsaW0iPnBhcmFtZGVsaW08L2E+PC9saT4KPGxpPjxhIGhyZWY9IiNwcmV2bGFiZWwi PnByZXZsYWJlbDwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI25leHRsYWJlbCI+bmV4dGxhYmVs PC9hPjwvbGk+CjxsaT48YSBocmVmPSIjd3JhcHRhZyI+d3JhcHRhZzwvYT48L2xpPgo8bGk+ PGEgaHJlZj0iI3RodW1idGV4dHdyYXAiPnRodW1idGV4dHdyYXA8L2E+PC9saT4KPGxpPjxh IGhyZWY9IiNjZWxsY2xhc3MiPmNlbGxjbGFzczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI3Ro dW1idGV4dGNsYXNzIj50aHVtYnRleHRjbGFzczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI25h dmNsYXNzIj5uYXZjbGFzczwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI3ByZXZjbGFzcyI+cHJl dmNsYXNzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjbmV4dGNsYXNzIj5uZXh0Y2xhc3M8L2E+ PC9saT4KPGxpPjxhIGhyZWY9IiNsaWJjaGVjayI+bGliY2hlY2s8L2E+PC9saT4KPC91bD48 L2xpPgo8bGk+PGEgaHJlZj0iI2V4YW1wbGVzIj5FeGFtcGxlczwvYT48L2xpPgo8bGk+PGEg aHJlZj0iI3N0eWxlIj5TdHlsaW5nPC9hPjwvbGk+CjxsaT48YSBocmVmPSIjY3JlZGl0cyI+ Q3JlZGl0czwvYT48L2xpPgo8L3VsPgoKPGgyIGlkPSJvdmVydmlldyI+T3ZlcnZpZXc8L2gy Pgo8cD5ZZWFoLCB5ZWFoIDxlbT5hbm90aGVyPC9lbT4gbGlnaHRib3gtc3R5bGUgaW1hZ2Ug Z2FsbGVyeSEgQnV0IHRoaXMgdGltZSB1c2luZyA8YSBocmVmPSJodHRwOi8vd3d3LmRpZ2l0 YWxpYS5iZS9zb2Z0d2FyZS9zbGltYm94Ij5DaHJpc3RvcGhlIEJleWwnczwvYT4gdWx0cmEt bGlnaHR3ZWlnaHQgU2xpbWJveCAoZGlldCBjb2tlIHZlcnNpb24gb2YgbGlnaHRib3gpIGFu ZCBtb290b29scy48L3A+CjxwPkZlYXR1cmVzOjwvcD4KPHVsPgo8bGk+VGh1bWJuYWlsIGdh bGxlcmllcyBkZXJpdmVkIGZyb20gbmFtZWQgY2F0ZWdvcmllcywgaW1hZ2UgSURzLCBhcnRp Y2xlIGZpZWxkcyBvciBjdXN0b20gbGlzdHM8L2xpPgo8bGk+QXJiaXRyYXJ5IGluY2x1c2lv bi9leGNsdXNpb24gb2YgY2F0ZWdvcmllcyBvciBpbWFnZSBJRHM8L2xpPgo8bGk+U3ViY2F0 ZWdvcmllczogc3BlY2lmeSBhIHBhcmVudCBhbmQgYWxsIGNoaWxkIGNhdGVnb3JpZXMgYXJl IGF1dG9tYXRpY2FsbHkgaW5jbHVkZWQ8L2xpPgo8bGk+U2hvdyBhc3NvY2lhdGVkIGltYWdl IHRleHQgaW4gdmFyaW91cyBsb2NhdGlvbnMgYXJvdW5kIHRoZSB0aHVtYm5haWxzPC9saT4K PGxpPlBhZ2luZyBhbmQgbXVsdGlwbGUgZ2FsbGVyaWVzIHBlciBwYWdlPC9saT4KPGxpPjxh IGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0y MDY5MiI+TXVsdGktbGluZ3VhbCBQYWNrIChNTFApPC9hPiBhd2FyZTwvbGk+CjwvdWw+Cgo8 aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlvbjwvaDI+CjxwPkVuc3VyZSB0aGF0IHRoZSBj b250ZW50cyBvZiB0aGUganMgZm9sZGVyICg8Y29kZT5tb290b29scy5qczwvY29kZT4gYW5k IDxjb2RlPnNsaW1ib3guanM8L2NvZGU+KSBhbmQgdGhlIGNzcyBmb2xkZXIgKDxjb2RlPnNs aW1ib3guY3NzPC9jb2RlPiBhbmQgNCBpbWFnZXMpIGFyZSB1cGxvYWRlZCB0byB5b3VyIHNl cnZlci4gWW91IGNhbiBwdXQgdGhlIGRpcmVjdG9yaWVzIGluIHRoZSB0ZXh0cGF0dGVybiBy b290IGZvbGRlciBvciBzb21ld2hlcmUgZWxzZSBvZiB5b3VyIGNob2ljZS4gSXQgZG9lc24n dCByZWFsbHkgbWF0dGVyIHdoZXJlIHlvdSBwdXQgdGhlbSwgeW91IGp1c3QgaGF2ZSB0byB0 ZWxsIHRoZSBwbHVnaW4gd2hlcmUgaXQgaXMuPC9wPgo8cD5UaGVuIG1ha2Ugc3VyZSB0aGF0 IDxhIGhyZWY9IiNzbWRsaWIiPnNtZF9saWI8L2E+IGlzIGluc3RhbGxlZCBhbmQgYWN0aXZh dGVkLiBGaW5hbGx5LCBpbnN0YWxsIHRoZSBzbWRfc2xpbWJveCBwbHVnaW4gYW5kIGFjdGl2 YXRlIGl0LjwvcD4KPHA+T25jZSBpbnN0YWxsZWQsIHRoaXMgcGx1Z2luIGFkZHMgdHdvIHRh Z3MuIFRoZSBmaXJzdCAoPGEgaHJlZj0iI2luYyI+c21kX3NsaW1ib3hfaW5jPC9hPikgdXN1 YWxseSBnb2VzIGluIHRoZSAmbHQ7aGVhZCZndDsgc2VjdGlvbiBvZiB5b3VyIHBhZ2UgYW5k IGxvYWRzIHRoZSByZXF1aXJlZCBsaWJyYXJpZXMgJiM4MjExOyB0aGUganMvY3NzIGZpbGVz IHlvdSBqdXN0IHVwbG9hZGVkIHRvIHlvdXIgc2VydmVyLiBUaGUgc2Vjb25kICg8YSBocmVm PSIjc2xpbWJveCI+c21kX3NsaW1ib3g8L2E+KSBpcyB0aGUgYWN0dWFsIHBsdWdpbiB0aGF0 IGRpc3BsYXlzIHlvdXIgaW1hZ2UgZ2FsbGVyeSAob3IgZ2FsbGVyaWVzIGlmIHlvdSdyZSBm ZWVsaW5nIGFkdmVudHVyb3VzKS48L3A+CjxwPkEgcXVpY2sgd29yZCBhYm91dCBob3cgaXQg YWxsIHdvcmtzOiB0aGUgcGx1Z2luIG9wdGlvbnMgZ292ZXJuIHdoaWNoIHRodW1ibmFpbHMg dG8gdXNlIGFuZCBob3cgdGhleSBhcmUgZGlzcGxheWVkIG9ubHkuIE9uY2UgdGhlIHRodW1i cyBhcmUgY2xpY2tlZCwgY29udHJvbCBpcyBoYW5kZWQgb3ZlciB0byBzbGltYm94IGFuZCBt b290b29scyB0byBkbyB0aGUgZmFuY3kgd29yay4gVGhlcmVmb3JlLCBpZiB5b3Ugd2lzaCB0 byBjb25maWd1cmUgdGhlIGxvb2sgb2YgdGhlICJsaWdodGJveCIgcGFydCwgeW91IG5lZWQg dG8gZWRpdCA8Y29kZT5zbGltYm94LmpzPC9jb2RlPiBhbmQvb3IgPGNvZGU+c2xpbWJveC5j c3M8L2NvZGU+LiBNb3JlIGluZm8gY2FuIGJlIGZvdW5kIG9uIDxhIGhyZWY9Imh0dHA6Ly93 d3cuZGlnaXRhbGlhLmJlL3NvZnR3YXJlL3NsaW1ib3giPkNocmlzdG9waGUgQmV5bCdzIHBh Z2U8L2E+LjwvcD4KPHA+QWxzbywgaWYgeW91IGFscmVhZHkgdXNlIG1vb3Rvb2xzIGZvciB5 b3VyIHBhZ2UgeW91IGRvbid0IG5lZWQgdG8gdXBsb2FkIGl0IGFnYWluLiBKdXN0IG1ha2Ug c3VyZSB0aGUgdmVyc2lvbiB5b3UgdXNlIGhhcyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IHBs dXMgdGhlICJmeCIgYW5kICJ3aW5kb3ciIG1vZHVsZXMgbGlzdGVkIG9uIENocmlzdG9waGUn cyBwYWdlLiBCZSBjYXJlZnVsIGlmIHlvdSB1c2Ugb3RoZXIgamF2YXNjcmlwdCBsaWJyYXJp ZXMgc3VjaCBhcyBqUXVlcnkgYmVjYXVzZSB0aGV5IG1heSBjbGFzaC4gU2VlIDxhIGhyZWY9 Imh0dHA6Ly9kb2NzLmpxdWVyeS5jb20vVXNpbmdfalF1ZXJ5X3dpdGhfT3RoZXJfTGlicmFy aWVzIj5ob3cgdG8gdXNlIGpRdWVyeSB3aXRoIG90aGVyIGxpYnJhcmllczwvYT4gZm9yIGFu IGV4YW1wbGUgb2YgaW50ZWdyYXRpbmcgdGhlIHR3by48L3A+Cgo8aDIgaWQ9ImluYyI+TG9h ZGluZyBpbmNsdWRlIGZpbGVzOiBzbWRfc2xpbWJveF9pbmM8L2gyPgo8cD5CZWZvcmUgeW91 IGNhbiB1c2Ugc21kX3NsaW1ib3ggeW91IGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHBsdWdp biBrbm93cyB3aGVyZSB0byBmaW5kIHRoZSBleHRlcm5hbCBpbmNsdWRlL2xpYnJhcnkgZmls ZXMuIFlvdSBkbyB0aGlzIHdpdGggPGNvZGU+c21kX3NsaW1ib3hfaW5jPC9jb2RlPi4gTm90 ZSB0aGF0IHRoZSBwbHVnaW4gZG9lcyBub3QgY2hlY2sgdGhhdCB5b3UgaGF2ZSBnaXZlbiBp dCBjb3JyZWN0IGZpbGUgbG9jYXRpb25zIHRvIHZhbGlkLCByZWFkYWJsZSBmaWxlcyBzbyBp ZiB5b3UgaGF2ZSBwcm9ibGVtcyBtYWtpbmcgaXQgd29yaywgY2hlY2sgdGhlIHNvdXJjZSBj b2RlIG9mIHRoZSBwYWdlIHRvIHNlZSBpZiB5b3UncmUgbG9hZGluZyB3aGF0IHlvdSB0aGlu ayB5b3UncmUgbG9hZGluZyBmcm9tIHRoZSBjb3JyZWN0IHBsYWNlcyE8L3A+Cgo8aDMgaWQ9 ImpzZGlyIj48Y29kZT5qc2RpciAvIGNzc2RpcjwvY29kZT48L2gzPgo8cD5Bc3N1bWluZyB5 b3UndmUgcHV0IHRoZSBqcyBhbmQgY3NzIGRpcmVjdG9yaWVzIGluIHlvdXIgdGV4dHBhdHRl cm4gcm9vdCAoaS5lLiBhdCB0aGUgc2FtZSBsZXZlbCBhcyB0aGUgPGNvZGU+aW1hZ2VzPC9j b2RlPiwgPGNvZGU+ZmlsZXM8L2NvZGU+IGFuZCA8Y29kZT50ZXh0cGF0dGVybjwvY29kZT4g ZGlyZWN0b3JpZXMpLCBhZGQgdGhpcyBzb21ld2hlcmUgaW4gdGhlICZsdDtoZWFkJmd0OyBv ZiB0aGUgcGFnZSB0aGF0IHlvdSB3YW50IHlvdXIgZ2FsbGVyeTo8L3A+CjxwcmU+Jmx0O3R4 cDpzbWRfc2xpbWJveF9pbmMganNkaXI9Ii9qcyIgY3NzZGlyPSIvY3NzIiAvJmd0OzwvcHJl Pgo8cD5JZiB5b3UgaGF2ZSB0aGUgbGlicmFyaWVzIGVsc2V3aGVyZSwgY2hhbmdlIHdoZXJl IHRoZSBwbHVnaW4gbG9va3MgZm9yIHRoZSBsaWJyYXJpZXMgYnkgYWRqdXN0aW5nIHRoZSB0 d28gb3B0aW9ucy4gUGF5IGF0dGVudGlvbiB0byB0aGUgZm9yd2FyZCBzbGFzaCBhdCB0aGUg c3RhcnQ7IHdpdGhvdXQgaXQsIHRoZSBzY3JpcHQgd2lsbCBsb29rIGZvciB0aGUgZmlsZXMg cmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgYXJ0aWNsZS9zZWN0aW9uIHdoaWNoIG1heSAob3Ig bWF5IG5vdCkgYmUgd2hhdCB5b3Ugd2FudC48L3A+Cgo8aDMgaWQ9InNjcmlwdHMiPjxjb2Rl PnNjcmlwdHM8L2NvZGU+PC9oMz4KPHA+SWYgeW91IHdhbnQgbW9yZSBjb250cm9sIG92ZXIg dGhlIGZpbGUgbG9jYXRpb25zLCB5b3UgaGF2ZSB0d28gbW9yZSBvcHRpb25zIGF2YWlsYWJs ZS4gVGhlIGZpcnN0IGlzIDxjb2RlPnNjcmlwdHM8L2NvZGU+LiBUaGlzIHRha2VzIGEgY29t bWEtc2VwYXJhdGVkIGxpc3Qgb2YgdXAgdG8gMyBhcmd1bWVudHMgaW4gdGhpcyBvcmRlcjo8 L3A+Cjx1bD4KPGxpPm1vb3Rvb2xzLmpzIGxvY2F0aW9uPC9saT4KPGxpPnNsaW1ib3guanMg bG9jYXRpb248L2xpPgo8bGk+c2xpbWJveC5jc3MgbG9jYXRpb248L2xpPgo8L3VsPgoKPHA+ VGhlIG9yZGVyIGlzIGltcG9ydGFudDogbW9vdG9vbHMgbXVzdCBhcHBlYXIgb24gdGhlIHBh Z2UgYmVmb3JlIHNsaW1ib3guanMhIFNvIGlmIHlvdSBoYXZlIHlvdXIgc2NyaXB0cyBpbiBk aWZmZXJlbnQgZGlyZWN0b3JpZXMgb3IgaGF2ZSByZW5hbWVkIHRoZSBmaWxlcywgeW91IGNv dWxkIGRvIHRoaXMgaW5zdGVhZCBvZiB0aGUgPGNvZGU+Y3NzZGlyPC9jb2RlPiBhbmQgPGNv ZGU+anNkaXI8L2NvZGU+IG9wdGlvbnM6PC9wPgo8cHJlPiZsdDt0eHA6c21kX3NsaW1ib3hf aW5jIHNjcmlwdHM9Ii9zY3JpcHRzL21vb3Rvb2xzLmpzLAogICAgIC9zYm94L3NsaW1ib3gu anMsIC9zYmNzcy9zbGltYm94LmNzcyIgLyZndDs8L3ByZT4KPHA+VGhlIHRocmVlIG9wdGlv bnMgY2FuIGVpdGhlciBiZSBkaXJlY3QgZmlsZSBwYXRocywgYXMgaW4gdGhlIGV4YW1wbGUg YWJvdmUsIG9yIGZ1bGwgWEhUTUwgdGFncyBpbmNsdWRpbmcgPGNvZGU+Jmx0O3NjcmlwdCZn dDs8L2NvZGU+IG9yIDxjb2RlPiZsdDtsaW5rJmd0OzwvY29kZT50YWdzLiBZb3UgY2FuIG1p eCBhbmQgbWF0Y2ggdGhlIG9wdGlvbnMgaW4gYW55IHdheSB5b3UgbGlrZSwgYXMgbG9uZyBh cyB0aGUgdG90YWwgbnVtYmVyIG9mIHNjcmlwdHMgeW91IHRlbGwgdGhlIHRhZyB0byBsb2Fk IGRvZXNuJ3QgZXhjZWVkIDMuIFNvIGFuIGVxdWl2YWxlbnQgdG8gdGhlIGFib3ZlIGlzOjwv cD4KPHByZT4mbHQ7dHhwOnNtZF9zbGltYm94X2luYyBzY3JpcHRzPSIvc2NyaXB0cy9tb290 b29scy5qcywKICAgICAvc2JveC9zbGltYm94LmpzIiBjc3NkaXI9Ii9zYmNzcyIgLyZndDs8 L3ByZT4KCjxoMyBpZD0ic2tpcCI+PGNvZGU+c2tpcDwvY29kZT48L2gzPgo8cD5JZiB5b3Ug d2lzaCB0byBsb2FkIHNvbWUgb3IgYWxsIG9mIHRoZSBzY3JpcHRzICJvdXRzaWRlIiB0aGUg c21kX3NsaW1ib3hfaW5jIGZ1bmN0aW9uIHlvdSBjYW4gdXNlIHRoZSA8Y29kZT5za2lwPC9j b2RlPiBvcHRpb24gdG8gdGVsbCBpdCBob3cgbWFueSB5b3UgaGF2ZSBsb2FkZWQuIElmLCBm b3IgZXhhbXBsZSwgeW91IGhhdmUgc3RtX2phdmFzY3JpcHQgaW5zdGFsbGVkIHlvdSBjb3Vs ZCBkbzo8L3A+CjxwcmU+Jmx0O3R4cDpqcyBuPSJtb290b29scyIgLyZndDsKJmx0O3R4cDpz bWRfc2xpbWJveF9pbmMgc2tpcD0iMSIgc2NyaXB0cz0iLCAvc2JveC9zbGltYm94LmpzLAog ICAgIC9zYmNzcy9zbGltYm94LmNzcyIgLyZndDs8L3ByZT4KCjxwPk5vdGUgdGhlIGVtcHR5 IG9wdGlvbiBhdCB0aGUgc3RhcnQgYmVmb3JlIHRoZSBjb21tYS4gWW91IGRvbid0IGhhdmUg dG8gZG8gdGhhdCAoYmVjYXVzZSA8Y29kZT5za2lwPC9jb2RlPiB3aWxsIGp1bXAgb3ZlciBp dCBmb3IgeW91KSBidXQgaWYgeW91IGxpa2UgdG8gbWFrZSBpdCBvYnZpb3VzLCBpdCBkb2Vz IG5vIGhhcm0uIFVzaW5nIHRoZSBzb2xlIG9wdGlvbiA8Y29kZT5za2lwPSIzIjwvY29kZT4g bWVhbnMgIkkndmUgbG9hZGVkIHRoZW0gYWxsIG15c2VsZiwgSSBrbm93IHdoYXQgSSdtIGRv aW5nIiA6LSk8L3A+CjxwPk9uZSBtb3JlIHRoaW5nIHdpdGggdGhpcyBmZWF0dXJlOiBUWFAg ZG9lcyBub3QgYWxsb3cgeW91IHRvIGRpcmVjdGx5IGVtYmVkIG90aGVyIHRhZ3MgYXMgYXR0 cmlidXRlcyAoc28gdW5mb3J0dW5hdGVseSA8Y29kZT5zY3JpcHRzPSImbHQ7dHhwOmNzcyAv Jmd0OyI8L2NvZGU+IGZhaWxzKS4gSWYgeW91IGFic29sdXRlbHkgbXVzdCBkbyBpdCwgeW91 IGNhbiBjaGVhdCAoc2VlIFdldCdzIGV4Y2VsbGVudCBwb3N0IG9uIDxhIGhyZWY9Imh0dHA6 Ly9hd2FzdGVvZndvcmRzLmNvbS9hcnRpY2xlL3RleHRwYXR0ZXJuLXRhZ3MtaW4tdGFncy10 aGUtZ29yZGlhbi1rbm90Ij50YWdzIGluIHRhZ3M8L2E+IGZvciBtb3JlIGRldGFpbHMpIGJ5 IGRyb3BwaW5nIGludG8gUEhQIGFuZCBkb2luZyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93 aW5nOjwvcD4KPHByZT4mbHQ7dHhwOnNtZF9zbGltYm94X2luYyBjc3NkaXI9Ii9jc3MiIHNj cmlwdHM9Ii9zY3JpcHRzL21vb3Rvb2xzLmpzLAogICAgICZsdDt0eHA6cGhwJmd0O2VjaG8g anMoYXJyYXkoICduJyA9PiAnc2xpbWJveCcpKTsmbHQ7L3R4cDpwaHAmZ3Q7IC8mZ3Q7PC9w cmU+CjxwPklmIHlvdSBzdXBwbHkgdGh1bWJuYWlscyBpbiBSU1MgZmVlZHMgb3IganVzdCBk b24ndCB3YW50IHRvIHVzZSBzbWRfc2xpbWJveF9pbmMsIHlvdSBjYW4gdHVybiBpdCBvZmYg YnkgdXNpbmcgdGhlIDxhIGhyZWY9IiNsaWJjaGVjayI+bGliY2hlY2s9IjAiPC9hPiB0byB0 aGUgc21kX3NsaW1ib3ggdGFnLjwvcD4KCjxoMiBpZD0ic2xpbWJveCI+VGhlIHBsdWdpbjog c21kX3NsaW1ib3g8L2gyPgo8cD5PbmNlIHRoZSA8YSBocmVmPSIjaW5jIj5zY3JpcHRzIGFy ZSBsb2FkZWQ8L2E+LCB5b3UgYXJlIGZyZWUgdG8gdXNlIDxjb2RlPiZsdDt0eHA6c21kX3Ns aW1ib3ggLyZndDs8L2NvZGU+IHRvIGRpc3BsYXkgYW4gaW1hZ2UgZ2FsbGVyeS4gV2l0aG91 dCBhbnkgb3B0aW9ucyBpdCBkaXNwbGF5cyBldmVyeSBpbWFnZSBpbiB5b3VyIGVudGlyZSBj b2xsZWN0aW9uIGFuZCB3b24ndCBsb29rIHZlcnkgcHJldHR5ICh0aG91Z2ggeW91IGNhbiBo ZWxwIGEgYml0IGJ5IHN0YXJ0aW5nIHdpdGggdGhlIDxhIGhyZWY9IiNzdHlsZSI+ZXhhbXBs ZSBDU1M8L2E+IGdpdmVuIGxhdGVyKS4gVGhlIGZvbGxvd2luZyBvcHRpb25zIHRhbWUgdGhl IHBsdWdpbiBhIGxpdHRsZTo8L3A+Cgo8aDMgaWQ9ImNhdGVnb3J5Ij48Y29kZT5jYXRlZ29y eTwvY29kZT48L2gzPgo8cD5BIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGltYWdlIGNhdGVn b3J5IG5hbWVzIHRvIHNob3cuPC9wPgoKPGg0Pk9wdGlvbnM8L2g0Pgo8dWw+CjxsaT48Y29k ZT4/YzwvY29kZT48YnI+CnVzZSB0aGUgY3VycmVudCBnbG9iYWwgKGFydGljbGUpIGNhdGVn b3J5IGFzIHRoZSBuYW1lIG9mIGFuIGltYWdlIGNhdGVnb3J5PC9saT4KPGxpPjxjb2RlPiFj PC9jb2RlPjxicj4KdXNlcyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY3VycmVudCBnbG9iYWwg Y2F0ZWdvcnk8L2xpPgo8bGk+PGNvZGU+P3M8L2NvZGU+PGJyPgp1c2UgdGhlIGN1cnJlbnQg VFhQIHNlY3Rpb24gYXMgdGhlIG5hbWUgb2YgYW4gaW1hZ2UgY2F0ZWdvcnk8L2xpPgo8bGk+ PGNvZGU+IXM8L2NvZGU+PGJyPgp1c2VzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjdXJyZW50 IHNlY3Rpb248L2xpPgo8bGk+PGNvZGU+P3Q8L2NvZGU+PGJyPgp1c2UgdGhlIGN1cnJlbnQg YXJ0aWNsZSdzIHVybC10aXRsZSBhcyB0aGUgbmFtZSBvZiBhbiBpbWFnZSBjYXRlZ29yeTwv bGk+CjxsaT48Y29kZT4hdDwvY29kZT48YnI+CnVzZXMgYWxsIHVybC10aXRsZXMgZXhjZXB0 IHRoZSBjdXJyZW50IGFydGljbGUgKHByb2JhYmx5IG5vdCBtdWNoIHVzZSEpPC9saT4KPGxp Pjxjb2RlPj9pZDwvY29kZT48YnI+CnVzZSB0aGUgY3VycmVudCBhcnRpY2xlJ3MgSUQgYXMg dGhlIG5hbWUgb2YgYW4gaW1hZ2UgY2F0ZWdvcnkuIFRoZSBjYXRlZ29yeSBuYW1lIGlzIG1h ZGUgdXAgb2YgdGhlIDxhIGhyZWY9IiNjYXRsYWJlbCI+Y2F0bGFiZWw8L2E+IG9wdGlvbiBh bmQgdGhlIElEIHNvLCBieSBkZWZhdWx0LCBpdCB3aWxsIGJlIGFydGljbGUtPGNvZGU+SUQ8 L2NvZGU+LiBVc2VmdWwgdG8gbWFrZSBhIHBlci1hcnRpY2xlIGltYWdlIGdhbGxlcnk8L2xp Pgo8bGk+PGNvZGU+IWlkPC9jb2RlPjxicj4KdXNlcyBhbGwgaW1hZ2UgSURzIGV4Y2VwdCB0 aGUgY3VycmVudCBhcnRpY2xlPC9saT4KPGxpPjxjb2RlPj9maWVsZG5hbWU8L2NvZGU+PGJy Pgpsb29rcyBpbiB0aGUgZ2l2ZW4gZmllbGRuYW1lIG9mIHRoZSBjdXJyZW50IGFydGljbGUg YW5kIHRyZWF0cyB0aGUgY29udGVudHMgYXMgYSBsaXN0IG9mIGNhdGVnb3JpZXMuIERlc2ln bmVkIHByaW1hcmlseSBmb3IgdXNlIHdpdGggY3VzdG9tIGZpZWxkcyAoZS5nLiA8Y29kZT4/ Y3VzdG9tMTwvY29kZT4pLCBpdCBjb3VsZCBhbHNvIGJlIGFueSBvdGhlciBmaWVsZCAob3Ig ZmllbGRzKSBmcm9tIHlvdXIgYXJ0aWNsZXMgKGUuZy4gPGNvZGU+P2V4Y2VycHQ8L2NvZGU+ IG9yIDxjb2RlPj9jYXRlZ29yeTE8L2NvZGU+IG9yIDxjb2RlPj9rZXl3b3JkczwvY29kZT4g b3IgPGNvZGU+P2F1dGhvcmlkPC9jb2RlPiwgZXRjKS4gQmUgd2FybmVkOiBpZiB5b3UgdXNl IDxjb2RlPj9ib2R5PC9jb2RlPiBvciBzb21ldGhpbmcgZXF1YWxseSBvdXRyYWdlb3VzLCBj aGFuY2VzIGFyZSB0aGUgcGx1Z2luIHdpbGwgZXhwbG9kZTwvbGk+CjwvdWw+Cgo8cD5UbyBu ZWdhdGUgYW55IGNhdGVnb3J5IHNlbGVjdGlvbiwgdXNlIDxjb2RlPiFjYXRlZ29yeTwvY29k ZT4gb3IgPGNvZGU+IWZpZWxkX25hbWU8L2NvZGU+LiBJZiB5b3UgbGlzdCBzcGVjaWZpYyBp bWFnZSBjYXRlZ29yaWVzIChlLmcuIDxjb2RlPiFsYW5kc2NhcGUsICFiaXJkczwvY29kZT4p IHRob3NlIGNhdGVnb3JpZXMgd2lsbCBiZSBleGNsdWRlZC4gSWYgeW91IHNwZWNpZnkgYSBm aWVsZCBuYW1lIHN1Y2ggYXMgPGNvZGU+IWtleXdvcmRzPC9jb2RlPiBvciA8Y29kZT4hY3Vz dG9tMTwvY29kZT4sIHRoZSBjb250ZW50cyBvZiB0aGF0IGZpZWxkIHdpbGwgYmUgcmVhZCBh bmQgdGhlIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcyBmb3VuZCB0aGVyZSB3aWxsIGJlIGV4 Y2x1ZGVkLjwvcD4KPHA+Tm90ZSB0aGF0IGlmIHlvdSBzcGVjaWZ5IGEgZmllbGQgbmFtZSBh bmQgdGhhdCBmaWVsZCBpbiB0aGUgYXJ0aWNsZSBpcyBlbXB0eSwgdGhlIG5hbWUgd2lsbCBi ZSB0cmVhdGVkIGFzIGlmIGl0IHdhcyBhbiBhY3R1YWwgaW1hZ2UgY2F0ZWdvcnkuIFNvIGlm IHlvdSBzcGVjaWZpZWQgPGNvZGU+P2tleXdvcmRzPC9jb2RlPiBhbmQgdGhlIGtleXdvcmRz IGZpZWxkIGluIHRoZSBjdXJyZW50IGFydGljbGUgd2FzIGVtcHR5LCBpdCB3b3VsZCBsb29r IGZvciBhbiBpbWFnZSBjYXRlZ29yeSBuYW1lZCAia2V5d29yZHMiLjwvcD4KPHA+QWxzbyBu b3RlIHRoYXQsIHJlZ2FyZGxlc3Mgb2YgdGhlIG9yZGVyIHlvdSBsaXN0IHRoZW0sIGFsbCAn cG9zaXRpdmVzJyB3aWxsIGJlIHByb2Nlc3NlZCBmaXJzdCwgdGhlbiBhbnkgZXhjbHVzaW9u cyBhcHBsaWVkLjwvcD4KCjxoMyBpZD0ic3ViY2F0cyI+PGNvZGU+c3ViY2F0czwvY29kZT48 L2gzPgo8cD5BdXRvbWF0aWNhbGx5IGluY2x1ZGVzIGFsbCBzdWItY2F0ZWdvcmllcyBvZiB0 aGUgY2hvc2VuIGltYWdlIGNhdGVnb3JpZXMuPC9wPgo8aDQ+T3B0aW9uczwvaDQ+Cjx1bD4K PGxpPjxjb2RlPjE8L2NvZGU+PGJyPgpzd2l0Y2hlcyB0aGUgb3B0aW9uIG9uLiBJdCBpcyBt aXNzaW5nIChpLmUuIG9mZikgYnkgZGVmYXVsdDwvbGk+CjwvdWw+Cgo8aDMgaWQ9ImNhdGxh YmVsIj48Y29kZT5jYXRsYWJlbDwvY29kZT48L2gzPgo8cD50aGUgbGFiZWwgdXNlZCBpbiBm cm9udCBvZiB0aGUgY2F0ZWdvcnkgaWYgdGhlICI/aWQiIG9yICIhaWQiIDxhIGhyZWY9IiNj YXRlZ29yeSI+Y2F0ZWdvcnk8L2E+IG9wdGlvbiBpcyB1c2VkOyBkZWZhdWx0OiAiYXJ0aWNs ZS0iPC9wPgoKPGgzIGlkPSJpbWFnZWlkIj48Y29kZT5pbWFnZWlkPC9jb2RlPjwvaDM+Cjxw PkEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgaW1hZ2UgSURzIHRvIHNob3cuIFRoZXNlIGFy ZSBhZGRlZCB0byBhbnkgaW1hZ2VzIGZyb20gdGhlIDxhIGhyZWY9IiNjYXRlZ29yeSI+Y2F0 ZWdvcnk8L2E+IG9wdGlvbiBCRUZPUkUgYW55IGV4Y2x1c2lvbnMgYXJlIGFwcGxpZWQuPC9w Pgo8cD5BcyB3aXRoIHRoZSBjYXRlZ29yeSBvcHRpb24sIHlvdSBjYW4gYWxzbyB1c2UgIj9p ZCIgYW5kICI/ZmllbGRuYW1lIiB3aGljaCB3aWxsIHBpY2sgdXAgaW1hZ2UgSURzIGZyb20g dGhlIGdpdmVuIGZpZWxkbmFtZSBvZiB0aGUgY3VycmVudGx5IGRpc3BsYXllZCBhcnRpY2xl LiBJbnRlcmVzdGluZyBpZiB5b3UgY2hvb3NlIDxjb2RlPj9hcnRpY2xlX2ltYWdlPC9jb2Rl PiBiZWNhdXNlIHlvdSBjYW4gbWFrZSB5b3VyIGFydGljbGUgaW1hZ2Ugdmlld2FibGUgaW4g YSBsaWdodGJveCEgSXQgYWxzbyBzdXBwb3J0cyBJRCBhbmQgZmllbGQgbmVnYXRpb24gdXNp bmcgdGhlIHNhbWUgdGVybWlub2xvZ3kgYXMgdGhlIGNhdGVnb3J5IG9wdGlvbi48L3A+Cgo8 aDMgaWQ9ImltYWdlY2FwdGlvbiI+PGNvZGU+aW1hZ2VjYXB0aW9uPC9jb2RlPjwvaDM+Cjxw PlRoZSB0ZXh0IHRvIGRpc3BsYXkgdW5kZXIgdGhlIGxhcmdlIHNsaW1ib3ggaW1hZ2UuIEl0 IGNhbiBiZSBhbnkgZml4ZWQgc3RyaW5nIChyYXRoZXIgcG9pbnRsZXNzISkgb3IgYSBjb21i aW5hdGlvbiBvZiBmaXhlZCB0ZXh0IGFuZCBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5n IG9wdGlvbnMgdG8gcHVsbCB0aGUgcmVsZXZhbnQgZmllbGQgZnJvbSB0aGUgaW1hZ2UuPC9w PgoKPGg0Pk9wdGlvbnM8L2g0Pgo8dWw+CjxsaT48Y29kZT4/Y2FwdGlvbjwvY29kZT48YnI+ ClRoZSBkZWZhdWx0PC9saT4KPGxpPjxjb2RlPj9hbHQ8L2NvZGU+PC9saT4KPGxpPjxjb2Rl Pj9uYW1lPC9jb2RlPjwvbGk+CjxsaT48Y29kZT4/aWQ8L2NvZGU+PC9saT4KPGxpPjxjb2Rl Pj9kYXRlPC9jb2RlPjwvbGk+CjxsaT48Y29kZT4/Y2F0ZWdvcnk8L2NvZGU+PC9saT4KPGxp Pjxjb2RlPj9hdXRob3I8L2NvZGU+PC9saT4KPGxpPjxjb2RlPj9leHQ8L2NvZGU+PC9saT4K PGxpPjxjb2RlPj93aWR0aDwvY29kZT48L2xpPgo8bGk+PGNvZGU+P2hlaWdodDwvY29kZT48 L2xpPgo8bGk+PGNvZGU+P3VybDwvY29kZT48YnI+ClRoZSBVUkwgb2YgdGhlIGZ1bGwtc2l6 ZSBpbWFnZTwvbGk+CjwvdWw+Cgo8cD5Gb3IgZXhhbXBsZTo8L3A+CjxwcmU+aW1hZ2VjYXB0 aW9uPSI/YWx0IjwvcHJlPgo8cD4gd291bGQgc2hvdyB0aGUgYWx0IHRleHQgdW5kZXIgdGhl IG1haW4gaW1hZ2UgaW5zdGVhZCBvZiB0aGUgY2FwdGlvbiAod2hpY2ggaXQgdXNlcyBieSBk ZWZhdWx0KS48L3A+Cgo8cD5PciwgZm9yIHRoZSBhZHZlbnR1cm91czo8L3A+CjxwcmU+aW1h Z2VjYXB0aW9uPSI/Y2FwdGlvbiBieSA/YXV0aG9yCiAgICAgWz9leHQgcGljdHVyZTogP3dp ZHRoeD9oZWlnaHRweF0iPC9wcmU+CjxwPiBtaWdodCBzaG93IGEgY2FwdGlvbiBzdWNoIGFz ICJMYWtlIFdpbmRlcm1lcmUgYXQgbmlnaHQgYnkgU3RlZiBbanBnIHBpY3R1cmU6IDgwMHg2 MDBweF0iLjwvcD4KCjxoMyBpZD0idGh1bWIiPjxjb2RlPnRodW1iPC9jb2RlPjwvaDM+Cjxw PklmIHlvdSB3aXNoIHRoZSBmdWxsc2l6ZSBpbWFnZXMgZGlzcGxheWVkIGluIHRoZSBzbGlt Ym94IHdpbmRvdyB0byBiZSB0aGUgdGh1bWJuYWlscyBpbnN0ZWFkLjwvcD4KPGg0Pk9wdGlv bnM8L2g0Pgo8dWw+CjxsaT48Y29kZT4xPC9jb2RlPjxicj4Kc3dpdGNoZXMgdGhlIG9wdGlv biBvbi4gSXQgaXMgbWlzc2luZyAoaS5lLiBvZmYpIGJ5IGRlZmF1bHQ8L2xpPgo8L3VsPgoK PGgzIGlkPSJsaW1pdCI+PGNvZGU+bGltaXQ8L2NvZGU+PC9oMz4KPHA+VGhlIG51bWJlciBv ZiBpbWFnZSB0aHVtYm5haWxzIHRvIHNob3cgcGVyIHBhZ2UuIDAgKG9yIG9taXR0ZWQpPWVz c2VudGlhbGx5IHVubGltaXRlZC48L3A+Cgo8aDMgaWQ9Im1heGxpbWl0Ij48Y29kZT5tYXhs aW1pdDwvY29kZT48L2gzPgo8cD5UaGUgYWJzb2x1dGUgbWF4aW11bSBudW1iZXIgb2YgaW1h Z2VzIHRvIHB1bGwgZnJvbSB0aGUgZGF0YWJhc2UuIDAgKG9yIG9taXR0ZWQpPWVzc2VudGlh bGx5IHVubGltaXRlZC48L3A+Cgo8aDMgaWQ9Im9yZGVyYnkiPjxjb2RlPm9yZGVyYnk8L2Nv ZGU+PC9oMz4KPHA+QSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB3YXlzIHRvIG9yZGVyIHRo ZSByZXN1bHRzLjwvcD4KCjxoND5PcHRpb25zPC9oND4KPHVsPgo8bGk+PGNvZGU+Y2F0ZWdv cnk8L2NvZGU+PGJyPgpUaGUgZGVmYXVsdCBzb3J0IG9yZGVyPC9saT4KPGxpPjxjb2RlPm5h bWU8L2NvZGU+PC9saT4KPGxpPjxjb2RlPmlkPC9jb2RlPjwvbGk+CjxsaT48Y29kZT5kYXRl PC9jb2RlPjwvbGk+CjxsaT48Y29kZT5hbHQ8L2NvZGU+PC9saT4KPGxpPjxjb2RlPmNhcHRp b248L2NvZGU+PC9saT4KPGxpPjxjb2RlPmF1dGhvcjwvY29kZT48L2xpPgo8bGk+PGNvZGU+ ZXh0PC9jb2RlPjwvbGk+CjxsaT48Y29kZT53aWR0aDwvY29kZT48L2xpPgo8bGk+PGNvZGU+ aGVpZ2h0PC9jb2RlPjwvbGk+CjxsaT48Y29kZT5yYW5kb208L2NvZGU+PC9saT4KPGxpPjxj b2RlPmZpeGVkPC9jb2RlPjwvbGk+CjwvdWw+Cgo8cD5Zb3UgY2FuIGFsc28gc3BlY2lmeSB0 aGUgZGlyZWN0aW9uIG9mIHRoZSBzb3J0IG9yZGVyIGJ5IGFkZGluZyA6YXNjIG9yIDpkZXNj IHRvIGFueSB2YWx1ZS4gRm9yIGV4YW1wbGU6PC9wPgo8cHJlPmNhdGVnb3J5LCBkYXRlOmRl c2M8L3ByZT4KPHA+IHdvdWxkIHNvcnQgYnkgY2F0ZWdvcnkgZmlyc3QsIHRoZW4gZGVzY2Vu ZGluZyBkYXRlLjwvcD4KPHA+VGhlIHNwZWNpYWwsIG92ZXJyaWRpbmcsIG9wdGlvbiA8Y29k ZT5maXhlZDwvY29kZT4gZm9yY2VzIHRodW1icyB0byBiZSBvdXRwdXQgaW4gdGhlIG9yZGVy IGdpdmVuIGluIHRoZSA8YSBocmVmPSIjaW1hZ2VpZCI+aW1hZ2VpZDwvYT4gdGFnLgo8cD5O b3RlIHRoYXQgPGNvZGU+cmFuZG9tPC9jb2RlPiBhY3RzIHNsaWdodGx5IGRpZmZlcmVudGx5 IGZyb20gdGhlIG90aGVycy4gSWYgaXQgYXBwZWFycyBhcyB0aGUgZmlyc3QgaXRlbSBpbiB0 aGUgbGlzdCwgcmFuZG9tIGltYWdlcyB3aWxsIGJlIHB1bGxlZCBmcm9tIHRoZSBkYXRhYmFz ZSBhbmQgdGhleSB3aWxsIHRoZW4gYmUgc29ydGVkIGFjY29yZGluZyB0byB0aGUgb3B0aW9u cyBsaXN0ZWQgYWZ0ZXIgaXQuPC9wPgo8cD5JZiBpdCBhcHBlYXJzIGFueXdoZXJlIGVsc2Ug aW4gdGhlIGxpc3QsIGFueSBzb3J0IGl0ZW1zIGJlZm9yZSBpdCB3aWxsIGRldGVybWluZSB0 aGUgb3JkZXIgb2YgZGF0YSBwdWxsZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGFuZCB0aGUgcmVz dWx0cyB3aWxsIHRoZW4gYmUgb3JkZXJlZCByYW5kb21seSAoaW4gdGhhdCBjYXNlLCBhbnkg aXRlbXMgIGxpc3RlZCBhZnRlciA8Y29kZT5yYW5kb208L2NvZGU+IHdpbGwgYmUgaWdub3Jl ZC4gPGNvZGU+Zml4ZWQ8L2NvZGU+IGlzIHN0aWxsIGhvbm91cmVkLCBob3dldmVyKS4gU2Vl IHRoZSA8YSBocmVmPSIjZWcyIj5leGFtcGxlczwvYT4gZm9yIG1vcmUgb24gdGhpcyBmZWF0 dXJlLjwvcD4KCjxoMyBpZD0iZ3JvdXBuYW1lIj48Y29kZT5ncm91cG5hbWU8L2NvZGU+PC9o Mz4KPHA+VGhlIG5hbWUgdG8gYXBwZW5kIHRvIHRoZSBbcmVsXSBhcmd1bWVudCBpbiBvcmRl ciB0byBsb2dpY2FsbHkgZ3JvdXAgaW1hZ2VzLiBEZWZhdWx0OiAic21kIi48L3A+CjxwPk9u Y2UgYSB2aXNpdG9yIGNsaWNrcyBhIHRodW1ibmFpbCBhbmQgY29udHJvbCBpcyBwYXNzZWQg dG8gdGhlIHNsaW1ib3ggY29kZSwgbmF2aWdhdGlvbiBpcyB2aWEgdGhlIE5leHQvUHJldiBs aW5rcyAob3IgdGhlICduJy8ncCcgb3IgYXJyb3cga2V5cykuIFdpdGhvdXQgc3VwcGx5aW5n IGEgZ3JvdXBuYW1lLCBhbGwgbGlnaHRib3hhYmxlIGltYWdlcyBmcm9tIGFsbCBzbGltYm94 IHRhZ3Mgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbmF2aWdhdGlvbi4gU28gaWYgeW91IGhh ZCAzIHNsaW1ib3ggdGFncyBvbiB0aGUgcGFnZSwgZWFjaCB3aXRoIDIwIGltYWdlcyBpbiB0 aGVtLCB0aGUgbGlnaHRib3ggd291bGQgc2hvdyAiSW1hZ2UgMSBvZiA2MCIuPC9wPgo8cD5U byBieXBhc3MgdGhpcyBmZWF0dXJlLCBnaXZlIGVhY2ggc2xpbWJveCB0YWcgYSB1bmlxdWUg Z3JvdXBuYW1lOyB0aGF0IHdpbGwgbGltaXQgdGhlIG5hdmlnYXRpb24gb25seSB0byB0aGUg Z3JvdXAgb2YgaW1hZ2VzIHRoYXQgbWF0Y2guIEl0IGNhbiBiZSBhbnl0aGluZyB5b3UgbGlr ZSwgb3IgeW91IGNhbiBzdXBwbHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyB0byBw dWxsIHRoZSBncm91cG5hbWUgZnJvbSB0aGUgcmVsZXZhbnQgZmllbGQ6PC9wPgoKPHVsPgo8 bGk+PGNvZGU+P2M8L2NvZGU+PGJyPgp0aGUgaW1hZ2UgY2F0ZWdvcnk8L2xpPgo8bGk+PGNv ZGU+P2lkPC9jb2RlPjxicj4KdGhlIGltYWdlIElEICh3aGljaCBlZmZlY3RpdmVseSBtYWtl cyBldmV5IGltYWdlIGEgc2VwYXJhdGUgZW50aXRpeSwgZGlzYWJsaW5nIHRoZSBwcmV2aW91 cy9uZXh0IG5hdmlnYXRpb24gYW5kIHJlcXVpcmluZyB0aGUgdmlld2VyIHRvIGNsb3NlIHRo ZSBsaWdodGJveCB0byB2aWV3IGFub3RoZXIgaW1hZ2UpPC9saT4KPGxpPjxjb2RlPj9hdXRo b3I8L2NvZGU+PGJyPgp0aGUgaW1hZ2UgYXV0aG9yL3VwbG9hZGVyPC9saT4KPGxpPjxjb2Rl Pj9kYXRlPC9jb2RlPjxicj4KdGhlIGltYWdlIHVwbG9hZCBkYXRlPC9saT4KPGxpPjxjb2Rl Pj9uYW1lPC9jb2RlPjxicj4KdGhlIGltYWdlIGZpbGVuYW1lPC9saT4KPGxpPjxjb2RlPj9l eHQ8L2NvZGU+PGJyPgp0aGUgaW1hZ2UgZmlsZSBleHRlbnNpb248L2xpPgo8bGk+PGNvZGU+ P2FsdDwvY29kZT48YnI+CnRoZSBpbWFnZSdzIGFsdCB0ZXh0PC9saT4KPGxpPjxjb2RlPj9j YXB0aW9uPC9jb2RlPjxicj4KdGhlIGltYWdlJ3MgY2FwdGlvbiB0ZXh0PC9saT4KPGxpPjxj b2RlPj93aWR0aDwvY29kZT48YnI+CnRoZSBpbWFnZSB3aWR0aDwvbGk+CjxsaT48Y29kZT4/ aGVpZ2h0PC9jb2RlPjxicj4KdGhlIGltYWdlIGhlaWdodDwvbGk+CjxsaT48Y29kZT4/Zmll bGRuYW1lPC9jb2RlPjxicj4KYW55IHZhbGlkIGFydGljbGUgZmllbGQgKGUuZy4gPGNvZGU+ P2V4Y2VycHQ8L2NvZGU+LCA8Y29kZT4/Y3VzdG9tMTwvY29kZT4sIDxjb2RlPj9hcnRpY2xl LWltYWdlPC9jb2RlPikgdG8gcHVsbCB0aGUgZ3JvdXBuYW1lIGZyb20gdGhhdCBmaWVsZDwv bGk+CjwvdWw+Cgo8cD4gU2VlIHRoZSA8YSBocmVmPSIjZWc0Ij5leGFtcGxlczwvYT4gZm9y IG1vcmUuPC9wPgoKPGgzIGlkPSJzaG93cGFnZWxpbmtzIj48Y29kZT5zaG93cGFnZWxpbmtz PC9jb2RlPjwvaDM+CjxwPkRpc3BsYXlzIGNsaWNrYWJsZSBuZXh0L3ByZXZpb3VzIGxpbmtz IHVuZGVyIHRoZSB0aHVtYm5haWxzLiBPbiBieSBkZWZhdWx0IChpZiA8YSBocmVmPSIjbGlt aXQiPmxpbWl0PC9hPiBpcyBncmVhdGVyIHRoYW4gMCkuPC9wPgo8aDQ+T3B0aW9uczwvaDQ+ Cjx1bD4KPGxpPjxjb2RlPjE8L2NvZGU+PGJyPgpZZXMsIGRpc3BsYXkgaXQ8L2xpPgo8bGk+ PGNvZGU+MDwvY29kZT48YnI+Ck5vLCBkb24ndCBkaXNwbGF5IGl0PC9saT4KPC91bD4KCjxo MyBpZD0iZ2FsbGVyeWlkIj48Y29kZT5nYWxsZXJ5aWQ8L2NvZGU+PC9oMz4KPHA+SWYgdXNp bmcgPGEgaHJlZj0iI3Nob3dwYWdlbGlua3MiPnNob3dwYWdlbGlua3M8L2E+LCB0aGlzIGlz IHRoZSBzdHJpbmcgdGhhdCBpcyB1c2VkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBtdWx0 aXBsZSBzbGltYm94IGdhbGxlcmllcyBvbiBhIHNpbmdsZSBwYWdlLiBJdCBhbGxvd3MgcGFn aW5nIHRvIGJlIGNvbnRyb2xsZWQgb24gYSBwZXItZ2FsbGVyeSBiYXNpcywgc28gY2xpY2tp bmcgTmV4dC9QcmV2IGluIG9uZSBnYWxsZXJ5IHdvbid0IGFmZmVjdCB0aGUgdGh1bWJuYWls cyBpbiBvdGhlciBnYWxsZXJpZXMgb24gdGhlIHNhbWUgcGFnZS4gRWFjaCBnYWxsZXJ5IG9u IGEgcGFnZSA8aT5tdXN0PC9pPmhhdmUgYSB1bmlxdWUgZ2FsbGVyeWlkIGluIG9yZGVyIGZv ciBwYWdpbmcgdG8gd29yay4gVGhlIGdvb2QgbmV3cyBpcyB5b3UnbGwgcHJvYmFibHkgbmV2 ZXIgaGF2ZSB0byB1c2UgdGhpcyBhdHRyaWJ1dGUgYmVjYXVzZSBpdCB3b3JrcyBhdXRvbWF0 aWNhbGx5IGZvciB5b3UuIEluIHRoZSAodmVyeSkgdW5saWtlbHkgZXZlbnQgaXQgZ2VuZXJh dGVzIHR3byBpZGVudGljYWwgc3RyaW5ncywgeW91IGNhbiB1c2UgdGhpcyBvcHRpb24gdG8g b3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3VyLjwvcD4KPHA+SXQgdGFrZXMgZWl0aGVy IGEgZml4ZWQgc3RyaW5nIChlLmcuIDxjb2RlPmdhbGxlcnlpZD0iTXlHYWwxIjwvY29kZT4p OyBvciBhIHF1ZXN0aW9uIG1hcmsgZm9sbG93ZWQgYnkgdXAgdG8gdHdvIG51bWJlcnMgc2Vw YXJhdGVkIGJ5IGEgY29sb24uIEluIHRoZSBsYXR0ZXIgbW9kZSwgdGhlIHBsdWdpbiBnZW5l cmF0ZXMgYSB1bmlxdWUgKDMyLWNoYXJhY3Rlcikgc3RyaW5nIGJhc2VkIG9uIHRoZSBvdGhl ciBhdHRyaWJ1dGVzIGdpdmVuLiBZb3UgdXNlIHRoZSB0d28gbnVtYmVycyB0byBjb250cm9s IHdoaWNoIGNoYXJhY3RlcnMgZnJvbSB0aGlzIHN0cmluZyB0byB1c2UgaW4geW91ciB1bmlx dWUgY29kZS4gVGhlIGZpcnN0IG51bWJlciBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcg dG8gZ2VuZXJhdGUgYW5kIHRoZSAybmQgbnVtYmVyIGlzIGhvdyBtYW55IGNoYXJhY3RlcnMg dG8gc2tpcCBlYWNoIHRpbWUgaXQgcGlja3Mgb25lIGZyb20gdGhlIHN0cmluZyAod3JhcHBp bmcgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyBpZiBpdCBmYWxscyBvZmYgdGhl IGVuZCkuPC9wPgo8cD5BbiBleGFtcGxlOiBzdXBwb3NlIHRoZSB0YWcgZ2VuZXJhdGVkIHRo aXMgc3RyaW5nIGludGVybmFsbHk6IDxjb2RlPjJjYjViYmY4YjBjMmMwMjhkOGYyMzRiNGJk NDZmZGRlPC9jb2RlPi4gVGhlc2UgYXJlIHRoZSByZXN1bHRzIG9mIHZhcmlvdXMgdmFsdWVz OjwvcD4KCjx0YWJsZSBpZD0iZWd0YWIiPgo8dHI+PHRoPmdhbGxlcnlpZD08L3RoPjx0aD5y ZXN1bHQ8L3RoPjx0aD5yZW1hcmtzPC90aD48L3RyPgo8dHI+PHRkPiIiIG9yICI/NDo2Ijwv dGQ+PHRkPjJmY2Y8L3RkPjx0ZD50aGUgZGVmYXVsdDwvdGQ+PC90cj4KPHRyPjx0ZD4iPzgi PC90ZD48dGQ+MmNiNWJiZjg8L3RkPjx0ZD50aGUgZmlyc3QgOCBjaGFyYWN0ZXJzPC90ZD48 L3RyPgo8dHI+PHRkPiI/NzozIjwvdGQ+PHRkPjI1ZjBjOGY8L3RkPjx0ZD5sZW5ndGggNywg Y2hvb3NpbmcgZXZlcnkgM3JkIGNoYXJhY3RlcjwvdGQ+PC90cj4KPHRyPjx0ZD4iPzg6NyI8 L3RkPjx0ZD4yODI0ZjVjODwvdGQ+PHRkPmxlbmd0aCA4LCBjaG9vc2luZyBldmVyeSA3dGgg Y2hhcmFjdGVyICh3cmFwcyk8L3RkPjwvdHI+CjwvdGFibGU+Cgo8aDMgaWQ9InRodW1ic2l6 ZSI+PGNvZGU+dGh1bWJzaXplPC9jb2RlPjwvaDM+CjxwPkVpdGhlciBmb3Igc3BlY2lhbCBl ZmZlY3RzLCBvciBpbiBvcmRlciB0byB2YWxpZGF0ZSBhZ2FpbnN0IFhIVE1MLCB0aGUgaW1h Z2UgdGh1bWJuYWlscyBzaG91bGQgaGF2ZSA8Y29kZT53aWR0aDwvY29kZT4gYW5kIDxjb2Rl PmhlaWdodDwvY29kZT4gYXR0cmlidXRlcy4gVFhQIGNhbm5vdCBzdXBwbHkgdGhpcyBhdXRv bWF0aWNhbGx5LCBidXQgdGhlIDxjb2RlPnRodW1ic2l6ZTwvY29kZT4gb3B0aW9uIHdpbGwu PC9wPgo8cD5TaW1wbHkgc3BlY2lmeSB1cCB0byB0d28gdmFsdWVzIHNlcGFyYXRlZCBieSBh IGNvbW1hIHRvIGRlZmluZSB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB5b3VyIHRodW1ibmFp bHMgKGluIHBpeGVscyBieSBkZWZhdWx0KS4gRm9yIGV4YW1wbGU6IDxjb2RlPnRodW1ic2l6 ZT0iNDAsIDYwIjwvY29kZT4gdG8gc2V0IDQwLXBpeGVsIHggNjAtcGl4ZWwgdGh1bWJuYWls cy4gU3VwcGx5aW5nIG9ubHkgb25lIHZhbHVlIHdpbGwgc2V0IGJvdGggd2lkdGggYW5kIGhl aWdodCB0byB0aGUgc2FtZSB2YWx1ZS4gQWRkaW5nIHVuaXRzIGFmdGVyIGVhY2ggdmFsdWUg KCJweCIsICJlbSIsICIlIiBldGMpIHdpbGwgdXNlIHRob3NlIHVuaXRzIGluc3RlYWQgb2Yg dGhlIGRlZmF1bHQgInB4Ii48L3A+CjxwPlRvIHNwZWNpZnkganVzdCB0aGUgd2lkdGgsIHB1 dCB0aGUgY29tbWEgaW4gYnV0IGxlYXZlIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGVtcHR5IChl LmcuIDxjb2RlPnRodW1ic2l6ZT0iMmVtLCI8L2NvZGU+KS4gU2ltaWxhcmx5IHRvIHNwZWNp ZnkgdGhlIGhlaWdodCBvbmx5LCBsZWF2ZSB0aGUgZmlyc3QgdmFsdWUgZW1wdHkgYnkgc3Rh cnRpbmcgd2l0aCBhIGNvbW1hIChlLmcuIDxjb2RlPnRodW1ic2l6ZT0iLDEwJSI8L2NvZGU+ KS48L3A+Cgo8aDMgaWQ9InRodW1idGV4dCI+PGNvZGU+dGh1bWJ0ZXh0PC9jb2RlPjwvaDM+ CjxwPllvdSBjYW4gcGxhY2UgdGV4dCBhcm91bmQgZWFjaCB0aHVtYm5haWwuIFNpbWlsYXIg dG8gdGhlIDxhIGhyZWY9IiNpbWFnZWNhcHRpb24iPmltYWdlY2FwdGlvbjwvYT4gb3B0aW9u LCBlbnRlciBhbnkgZml4ZWQgdGV4dCB0byBhZGQgaXQgYmVsb3cgZXZlcnkgdGh1bWJuYWls IChpbnNpZGUgYSB0YWcgZ2l2ZW4gYnkgPGEgaHJlZj0iI3RodW1idGV4dHdyYXAiPnRodW1i dGV4dHdyYXA8L2E+IHdpdGggYSBjbGFzcyBvZiA8YSBocmVmPSIjdGh1bWJ0ZXh0Y2xhc3Mi PnRodW1idGV4dGNsYXNzPC9hPikuPC9wPgo8cD5Zb3UgY2FuIGFsc28gY29tYmluZSBmaXhl ZCB0ZXh0IHdpdGggY29kZXMgdG8gcHVsbCBvdXQgaW5mb3JtYXRpb24gZnJvbSBlYWNoIGlt YWdlLiBUaGUgY29kZXMgY2FuIGJlIGFueSBvZiB0aGUgZm9sbG93aW5nOjwvcD4KCjxoND5D b250ZW50IG9wdGlvbnM8L2g0Pgo8dWw+CjxsaT48Y29kZT4/Y2FwdGlvbjwvY29kZT48YnI+ CjxsaT48Y29kZT4/YWx0PC9jb2RlPjwvbGk+CjxsaT48Y29kZT4/bmFtZTwvY29kZT4gKGZv ciB0aGUgaW1hZ2UgZmlsZW5hbWUpPC9saT4KPGxpPjxjb2RlPj9pZDwvY29kZT48L2xpPgo8 bGk+PGNvZGU+P2RhdGU8L2NvZGU+PC9saT4KPGxpPjxjb2RlPj9jYXRlZ29yeTwvY29kZT48 L2xpPgo8bGk+PGNvZGU+P2F1dGhvcjwvY29kZT48L2xpPgo8bGk+PGNvZGU+P2V4dDwvY29k ZT4gKGZvciB0aGUgZmlsZSBleHRlbnNpb24pPC9saT4KPGxpPjxjb2RlPj93aWR0aDwvY29k ZT48L2xpPgo8bGk+PGNvZGU+P2hlaWdodDwvY29kZT48L2xpPgo8bGk+PGNvZGU+P3VybDwv Y29kZT4gKGZvciB0aGUgZnVsbC1zaXplIGltYWdlIFVSTCk8L2xpPgo8L3VsPgoKPHA+QWRk aXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgdGhhdCB0aGlzIGluZm9ybWF0aW9uIGlzIHBs YWNlZCBpbiBhbnkgb2YgNSBsb2NhdGlvbnMgYXJvdW5kIHRoZSBpbWFnZS4gVGhlcmUgYXJl IDQgZ2VuZXJhbCBwdXJwb3NlIHBvc2l0aW9uczo8L3A+Cgo8aDQ+UG9zaXRpb25pbmcgb3B0 aW9uczwvaDQ+Cjx1bD4KPGxpPjxjb2RlPmFib3ZlPC9jb2RlPjxicj4KYWJvdmUgdGhlIHRo dW1ibmFpbCwgbm90IGNsaWNrYWJsZTwvbGk+CjxsaT48Y29kZT5iZWxvdzwvY29kZT48YnI+ CmJlbG93IHRoZSB0aHVtYm5haWwsIG5vdCBjbGlja2FibGUgKGRlZmF1bHQpPC9saT4KPGxp Pjxjb2RlPmJlZm9yZTwvY29kZT48YnI+CmltbWVkaWF0ZWx5IGluIGZyb250IG9mIHRoZSB0 aHVtYm5haWwsIGNsaWNrYWJsZSBhcyBwYXJ0IG9mIHRoZSBsaW5rPC9saT4KPGxpPjxjb2Rl PmFmdGVyPC9jb2RlPjxicj4KaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSB0aHVtYm5haWws IGNsaWNrYWJsZSBhcyBwYXJ0IG9mIHRoZSBsaW5rPC9saT4KPC91bD4KCjxwPkFuZCB0aGVy ZSBpcyBvbmUgc3BlY2lhbCBwb3NpdGlvbiBkZWZpbmVkIGJ5OiA8Y29kZT5vbmNoYW5nZTwv Y29kZT4uIFRoaXMgaXMgcGxhY2VkIGFib3ZlIGV2ZXJ5IGltYWdlIGJ1dCB3aWxsIG9ubHkg dHJpZ2dlciBpZiBpdHMgY29udGVudHMgY2hhbmdlcyBmcm9tIHRoZSBpbWFnZSBiZWZvcmUg aXQuIFRoaXMgaXMgdmVyeSB1c2VmdWwgZm9yIGFwcGx5aW5nIGhlYWRlcnMgd2hlbiB0aGUg Y2F0ZWdvcnkgY2hhbmdlcy4gU2VlIDxhIGhyZWY9IiNlZzYiPkV4YW1wbGUgNjwvYT4uPC9w PgoKPHA+U3BlY2lmeSB0ZXh0IHVzaW5nIHRoZSBzdGFuZGFyZCA8Y29kZT4/PC9jb2RlPiBu b3RhdGlvbiwgZS5nLiA8Y29kZT50aHVtYnRleHQ9IkZpbGVkIGluID9jYXRlZ29yeSBbP25h bWVdIjwvY29kZT4gd291bGQgcHV0IChiZWxvdyBlYWNoIHRodW1ibmFpbCkgdGhlIHRleHQg IkZpbGVkIGluIiBhbmQgdGhlbiB0aGUgY2F0ZWdvcnkgbmFtZSBvZiB0aGUgaW1hZ2UsIGZv bGxvd2VkIGJ5IGl0cyBmaWxlbmFtZSBpbiBzcXVhcmUgYnJhY2tldHMuIElmIHlvdSB3YW50 ZWQgdGhlIGluZm9ybWF0aW9uIHRvIGFwcGVhciBhYm92ZSB0aGUgdGh1bWJuYWlscyBpbnN0 ZWFkLCB1c2U6PC9wPgo8cD48Y29kZT50aHVtYnRleHQ9ImFib3ZlOkZpbGVkIGluID9jYXRl Z29yeSBbP25hbWVdIjwvY29kZT48L3A+CjxwPllvdSBjYW4gYWRkIG1vcmUgdGhhbiBvbmUg b2YgdGhlc2UgZGVmaW5pdGlvbnMsIGVhY2ggc2VwYXJhdGVkIGJ5IGEgY29tbWEsIGZvciBl eGFtcGxlOjwvcD4KPHA+PGNvZGU+dGh1bWJ0ZXh0PSJhYm92ZTpGaWxlZCBpbiA/Y2F0ZWdv cnkgWz9uYW1lICg/d2lkdGggeCA/aGVpZ2h0KV0sIGJlbG93Oj9hdXRob3IiPC9jb2RlPjwv cD4KPHA+VGhhdCB3b3VsZCBhZGQgdGhlIGNhdGVnb3J5LCBmaWxlbmFtZSwgd2lkdGggYW5k IGhlaWdodCBhYm92ZSB0aGUgaW1hZ2UgYW5kIHRoZSBhdXRob3IgKHRoZSBwZXJzb24gd2hv IHVwbG9hZGVkIGl0KSBiZWxvdyB0aGUgdGh1bWJuYWlsLiBZb3UgY2FuIGdldCBhcyBjcmVh dGl2ZSBhcyB5b3UgbGlrZS48L3A+CjxwPklmIHlvdSB3YW50IHRvIHVzZSBhIGNvbG9uIGlu IHRoZSB0ZXh0IGl0c2VsZiwgeW91IHdpbGwgbmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVs dCBhbmQgc2V0IGl0IHRvIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyB5b3UgcHJlZmVyIHVz aW5nIHRoZSA8YSBocmVmPSIjcGFyYW1kZWxpbSI+cGFyYW1kZWxpbTwvYT4gb3B0aW9uLjwv cD4KCjxoMyBpZD0icGFyYW1kZWxpbSI+PGNvZGU+cGFyYW1kZWxpbTwvY29kZT48L2gzPgo8 cD5CeSBkZWZhdWx0LCB5b3Ugc2VwYXJhdGUgcGFyYW1ldGVycyBmcm9tIG9wdGlvbiBuYW1l cyB1c2luZyB0aGUgY29sb24uIEluIHNvbWUgY2FzZSB5b3UgbWF5IHdpc2ggdG8gdXNlIHRo ZSBjb2xvbiBpbiB5b3VyIHN0cmluZyBvZiB0ZXh0IHNvIHlvdSB3aWxsIG5lZWQgdG8gc2V0 IHRoZSBkZWxpbWl0ZXIgdG8gc29tZXRoaW5nIGVsc2UuIEl0IGNhbiBiZSBwcmV0dHkgbXVj aCBhbnkgc3RyaW5nIHlvdSBsaWtlIChlLmcuIDxjb2RlPnBhcmFtZGVsaW09IkBTUVVJRCI8 L2NvZGU+KSwganVzdCBtYWtlIHN1cmUgaXQgZG9lc24ndCBhcHBlYXIgYW55d2hlcmUgZWxz ZSBpbiB5b3VyIHRleHQuIFRoaXMgYXR0cmlidXRlIGN1cnJlbnRseSBvbmx5IGFmZmVjdHMg dGhlIDxhIGhyZWY9IiN0aHVtYnRleHQiPnRodW1idGV4dDwvYT4gb3B0aW9uLjwvcD4KCjxo MyBpZD0icHJldmxhYmVsIj48Y29kZT5wcmV2bGFiZWw8L2NvZGU+PC9oMz4KPHA+TGFiZWwg Zm9yIHRoZSAncHJldmlvdXMgcGFnZScgb2YgcGljdHVyZXMgd2hlbiB1c2luZyA8YSBocmVm PSIjc2hvd3BhZ2VsaW5rcyI+c2hvd3BhZ2VsaW5rczwvYT4uIERlZmF1bHQ6ICJQcmV2IiBh bmQgY3VzdG9taXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgdmlhIE1MUC48L3A+Cgo8 aDMgaWQ9Im5leHRsYWJlbCI+PGNvZGU+bmV4dGxhYmVsPC9jb2RlPjwvaDM+CjxwPkxhYmVs IGZvciB0aGUgJ25leHQgcGFnZScgb2YgcGljdHVyZXMgd2hlbiB1c2luZyA8YSBocmVmPSIj c2hvd3BhZ2VsaW5rcyI+c2hvd3BhZ2VsaW5rczwvYT4uIERlZmF1bHQ6ICJOZXh0IiBhbmQg Y3VzdG9taXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgdmlhIE1MUC48L3A+Cgo8aDMg aWQ9IndyYXB0YWciPjxjb2RlPndyYXB0YWc8L2NvZGU+PC9oMz4KPHA+WEhUTUwgdGFnIHRv IHdyYXAgZWFjaCAnY2VsbCcgKGVmZmVjdGl2ZWx5IGEgdGh1bWJuYWlsIGltYWdlKSB3aXRo LiBEbyBub3Qgc3BlY2lmeSB0aGUgJmx0OyBvciAmZ3Q7IGNoYXJhY3RlcnMuIEZvciBhIHZh bGlkIHBhZ2UsIHRoZSBvbmx5IHVzZWZ1bCBvcHRpb25zIGFyZSAiZGl2IiwgImxpIiBvciAi cCIuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIHRhZykuPC9wPgoKPGgzIGlkPSJ0aHVtYnRl eHR3cmFwIj48Y29kZT50aHVtYnRleHR3cmFwPC9jb2RlPjwvaDM+CjxwPlhIVE1MIHRhZyB0 byB3cmFwIGFyb3VuZCBlYWNoIHRodW1idGV4dCBpdGVtLiBEbyBub3Qgc3BlY2lmeSB0aGUg Jmx0OyBvciAmZ3Q7IGNoYXJhY3RlcnMuIERlZmF1bHQ6IHNwYW4uPC9wPgoKPGgzIGlkPSJj ZWxsY2xhc3MiPjxjb2RlPmNlbGxjbGFzczwvY29kZT48L2gzPgo8cD5DU1MgY2xhc3MgZm9y IGVhY2ggJ2NlbGwnIHRoYXQgZGlzcGxheXMgYSB0aHVtYm5haWwuIERlZmF1bHQ6IGVtcHR5 IChpLmUuIG5vIGNsYXNzKS48L3A+Cgo8aDMgaWQ9InRodW1idGV4dGNsYXNzIj48Y29kZT50 aHVtYnRleHRjbGFzczwvY29kZT48L2gzPgo8cD5DU1MgY2xhc3MgZm9yIGFsbCB0aGUgYml0 cyBvZiB0ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdGh1bWJuYWlsLiBEZWZhdWx0OiBlbXB0 eSAoaS5lLiBubyBjbGFzcykuPC9wPgoKPGgzIGlkPSJuYXZjbGFzcyI+PGNvZGU+bmF2Y2xh c3M8L2NvZGU+PC9oMz4KPHA+Q1NTIGNsYXNzIGZvciB0aGUgbmV4dC9wcmV2IGNvbnRhaW5l ci4gRGVmYXVsdDogZW1wdHkgKGkuZS4gbm8gY2xhc3MpLjwvcD4KCjxoMyBpZD0icHJldmNs YXNzIj48Y29kZT5wcmV2Y2xhc3M8L2NvZGU+PC9oMz4KPHA+Q1NTIGNsYXNzIGZvciB0aGUg J3ByZXYnIGxpbmsuIERlZmF1bHQ6IHNtZF9zbGltYm94X3ByZXYuPC9wPgoKPGgzIGlkPSJu ZXh0Y2xhc3MiPjxjb2RlPm5leHRjbGFzczwvY29kZT48L2gzPgo8cD5DU1MgY2xhc3MgZm9y IHRoZSAnbmV4dCcgbGluay4gRGVmYXVsdDogc21kX3NsaW1ib3hfbmV4dC48L3A+Cgo8aDMg aWQ9ImxpYmNoZWNrIj48Y29kZT5saWJjaGVjazwvY29kZT48L2gzPgo8cD5TZXQgdGhpcyB0 byAwIHRvIGJ5cGFzcyB0aGUgbGlicmFyeSBjaGVjay4gVXNlZnVsIGlmIHlvdSB3YW50IHRo ZSB0aHVtYnMgdG8gYmUgaW5jbHVkZWQgaW4gYW4gUlNTIGZlZWQgd2l0aG91dCB0aGUgcGx1 Z2luIGNvbXBsYWluaW5nIHRoZSBsaWJyYXJpZXMgYXJlIG1pc3NpbmcuIERlZmF1bHQ6IDEg KG9uKS48L3A+Cgo8aDQ+T3B0aW9uczwvaDQ+Cjx1bD4KPGxpPjxjb2RlPjE8L2NvZGU+PGJy PgpZZXMsIGNoZWNrIHRoZSA8YSBocmVmPSIjaW5jIj5zbWRfc2xpbWJveF9pbmM8L2E+IHRh ZyBoYXMgYmVlbiBjYWxsZWQ8L2xpPgo8bGk+PGNvZGU+MDwvY29kZT48YnI+Ck5vLCBkb24n dCBjaGVjazwvbGk+CjwvdWw+Cgo8aDI+PGEgaWQ9ImV4YW1wbGVzIj48L2E+RXhhbXBsZXM8 L2gyPgoKPGgzIGlkPSJlZzEiPjxjb2RlPkV4YW1wbGUgMTwvY29kZT48L2gzPgo8cHJlPiZs dDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9ImxhbmRzY2FwZSIgbGltaXQ9IjEwIiAvJmd0 OzwvcHJlPgo8cD5TaG93IGFsbCBpbWFnZXMgaW4gdGhlIGxhbmRzY2FwZSBjYXRlZ29yeSwg dGVuIGF0IGEgdGltZS48L3A+Cgo8aDMgaWQ9ImVnMiI+PGNvZGU+RXhhbXBsZSAyPC9jb2Rl PjwvaDM+CjxwcmU+Jmx0O3R4cDpzbWRfc2xpbWJveCBjYXRlZ29yeT0iZG9ncywgYmlyZHMi IGxpbWl0PSI5IgogICAgIHRodW1idGV4dD0iYWZ0ZXI6P2NhcHRpb24iIHdyYXB0YWc9Imxp IgogICAgIGNlbGxjbGFzcz0iY2VsbCIgLyZndDs8L3ByZT4KPHA+U2hvdyBhbGwgaW1hZ2Vz IGluIHRoZSBkb2dzIGFuZCBiaXJkcyBjYXRlZ29yaWVzLCA5IHBlciBwYWdlLiBBZGQgdGhl IGNhcHRpb25zIHVuZGVyIHRoZSB0aHVtYm5haWxzIGFuZCBtYWtlIHRoZW0gY2xpY2thYmxl IHRvby4gV3JhcCBlYWNoIGltYWdlIGluIGEgPGNvZGU+bGk8L2NvZGU+IHRhZyBhbmQgZ2l2 ZSBlYWNoIGEgY2xhc3Mgb2YgJ2NlbGwnIChpbXBsaWVzIHlvdSBtdXN0IG1hbnVhbGx5IGFk ZCBhIGNvcnJlc3BvbmRpbmcgPGNvZGU+Jmx0O3VsJmd0OzwvY29kZT4gdGFnIGFyb3VuZCB0 aGUgcGx1Z2luIGluIG9yZGVyIHRvIG1haW50YWluIHBhZ2UgdmFsaWRpdHkpLjwvcD4KPHA+ SWYgeW91IGFkZGVkIDxjb2RlPm9yZGVyYnk9ImRhdGU6ZGVzYywgcmFuZG9tIjwvY29kZT4g dG8gdGhlIGFib3ZlIHRhZywgeW91IHdvdWxkIGdldCB0aGUgbW9zdCByZWNlbnQgOSBpbWFn ZXMgb24gdGhlIGZpcnN0IHBhZ2UsIGJ1dCBzaG93biBpbiBhIHJhbmRvbSBvcmRlci4gVGhl IG5leHQgcGFnZSB3b3VsZCBzaG93IHRoZSBuZXh0IG1vc3QtcmVjZW50IDkgaW1hZ2VzLCBh Z2FpbiBzb3J0ZWQgcmFuZG9tbHkgd2l0aGluIHRoZW1zZWx2ZXMuPC9wPgo8cD5Td2l0Y2hp bmcgdGhlIHNvcnQgdG86IDxjb2RlPm9yZGVyYnk9InJhbmRvbSwgZGF0ZTpkZXNjIjwvY29k ZT4gd291bGQgY2hhbmdlIHRoZSBvdXRwdXQuIFlvdSB3b3VsZCB0aGVuIGdldCA5IHJhbmRv bSBpbWFnZXMgb24gdGhlIGZpcnN0IHBhZ2UsIHdpdGggdGhlIG1vc3QgcmVjZW50IG9uZXMg b2YgdGhlIGdyb3VwIHNob3duIGZpcnN0LiBDbGlja2luZyAnTmV4dCcgd291bGQgc2hvdyBh bm90aGVyIDkgcmFuZG9tIGltYWdlcyAoc29tZSBtYXkgYmUgdGhlIHNhbWUgYXMgcGFnZSAx KSwgYWdhaW4gc29ydGVkIGluIGRlc2NlbmRpbmcgb3JkZXIgb2YgZGF0ZS4gRm9yIHRoaXMg cmVhc29uICh1bmxlc3MgeW91J3JlIHNpbXBseSB1c2luZyB0aGUgcGx1Z2luIHRvIHByZXR0 eSB1cCBhIHBhZ2Ugd2l0aCByYW5kb20gaW1hZ2VzKSBpZiB5b3UncmUgdXNpbmcgcmFuZG9t IGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBvcmRlcmJ5LCB5b3UgcHJvYmFibHkgd2FudCB0 byBkaXNhYmxlIHBhZ2luZyBieSBzZXR0aW5nIHNob3dwYWdlbGlua3M9IjAiLjwvcD4KCjxo MyBpZD0iZWczIj48Y29kZT5FeGFtcGxlIDM8L2NvZGU+PC9oMz4KPHByZT4mbHQ7dHhwOnNt ZF9zbGltYm94IGltYWdlaWQ9IjQ4LCAyNSwgNCIKICAgICBjYXRlZ29yeT0iZG9ncywgP2N1 c3RvbTEiIHN1YmNhdHM9IjEiIGxpbWl0PSIyMCIKICAgICBwcmV2bGFiZWw9IkJhY2siIG9y ZGVyYnk9Im5hbWU6ZGVzYywgY2F0ZWdvcnkiIC8mZ3Q7PC9wcmU+CjxwPlNob3cgaW1hZ2Vz IHdpdGggSURzIDQ4LCAyNSBhbmQgNCBhcyB3ZWxsIGFzIGFsbCBpbWFnZXMgaW4gdGhlIGRv Z3MgY2F0ZWdvcnkgYW5kIGFsc28gcHVsbCB0aGUgaW1hZ2UgY2F0ZWdvcnkgbmFtZXMgZnJv bSB0aGUgY3VycmVudCBhcnRpY2xlJ3MgY3VzdG9tMSBmaWVsZCAoaWYgY3VzdG9tMSBoZWxk ICJiaXJkcywgbGFuZHNjYXBlcyIgKHdpdGhvdXQgdGhlIHF1b3RlcykgeW91J2QgZ2V0IHBp Y3R1cmVzIGZyb20gYWxsIHRocmVlIGNhdGVnb3JpZXMgYW5kIGFsbCB0aGVpciBzdWJjYXRl Z29yaWVzKS4gTGltaXQgdGhlIG51bWJlciBwZXIgcGFnZSB0byAyMCwgY2hhbmdlIHRoZSBw cmV2aW91cyBwYWdlIGxhYmVsIHRvICJCYWNrIiBhbmQgc29ydCB0aGUgaW1hZ2VzIGluIGRl c2NlbmRpbmcgb3JkZXIgb2YgbmFtZSwgdGhlbiBjYXRlZ29yeS48L3A+Cgo8aDMgaWQ9ImVn NCI+PGNvZGU+RXhhbXBsZSA0PC9jb2RlPjwvaDM+CjxwcmU+Jmx0O3R4cDpzbWRfc2xpbWJv eCBjYXRlZ29yeT0ic3RhdGljLCA/aWQiCiAgICAgaW1hZ2VpZD0iIWFydGljbGVfaW1hZ2Ui IGxpbWl0PSI2IiBncm91cG5hbWU9Ij9jIgogICAgIHNob3dwYWdlbGlua3M9IjAiIC8mZ3Q7 PC9wcmU+CjxwPklmIHRoZSBwZXJzb24gaXMgY3VycmVudGx5IHZpZXdpbmcgYXJ0aWNsZSBJ RCA2Nywgc2hvdyBhbGwgaW1hZ2VzIGZyb20gdGhlICdzdGF0aWMnIGNhdGVnb3J5IGFuZCB0 aGUgJ2FydGljbGUtNjcnIGNhdGVnb3J5LiBJZiBhbnkgaW1hZ2UgaW4gZWl0aGVyIG9mIHRo b3NlIGNhdGVnb3JpZXMgaXMgZm91bmQgdG8gaGF2ZSBhbiBJRCBvZiB0aGUgYXJ0aWNsZSBp bWFnZSBmcm9tIHRoZSBjdXJyZW50IGFydGljbGUsIHRoYXQgcGljdHVyZSB3aWxsIGJlIGln bm9yZWQuIE9ubHkgc2hvdyA2IHBpY3R1cmVzIGFuZCBkb24ndCBzaG93IHRoZSBuZXh0L3By ZXYgbGlua3Mgb24gdGhlIHBhZ2UuPC9wPgo8cD5BbHNvLCBncm91cCB0aGUgU2xpbWJveCBw aWN0dXJlcyBieSBpbWFnZSBjYXRlZ29yeS4gVGhpcyBtZWFucyB0aGF0IGlmIHNvbWVvbmUg Y2xpY2tzIG9uIGEgcGljdHVyZSBmcm9tIHRoZSAic3RhdGljIiBjYXRlZ29yeSwgdGhlIFNs aW1ib3ggbmV4dC9wcmV2IGxpbmtzIG9ubHkgbmF2aWdhdGUgYmV0d2VlbiB0aG9zZSBwaWN0 dXJlcy4gVGhlIHVzZXIgd2lsbCBoYXZlIHRvIGNsb3NlIHRoZSBsaWdodGJveCBhbmQgY2xp Y2sgYSBwaWN0dXJlIGluIHRoZSBhcnRpY2xlLTY3IGNhdGVnb3J5IHRvIHNob3cgcGljdHVy ZXMgZnJvbSB0aGUgb3RoZXIgZ3JvdXAuPC9wPgo8cD5PbiB0aGUgc3VyZmFjZSB0aGUgZ3Jv dXBuYW1lIG9wdGlvbiBtYXkgc2VlbSBhIGxpdHRsZSBzdXBlcmZsdW91cyBidXQgaXQgY2Fu IGJlIHVzZWZ1bCB0byBhbGxvdyBwZW9wbGUgdG8gb25seSBmbGljayB0aHJvdWdoIGEgc3Vi c2V0IG9mIHRoZSBwaWN0dXJlcyBvbiBlYWNoIHBhZ2UsIGJhc2VkIG9uIHRoZWlyIGNhdGVn b3J5LCBmaWxlIG5hbWUsIGF1dGhvciwgd2lkdGgvaGVpZ2h0LCBhbHQvY2FwdGlvbiwgZXZl biBJRCBpZiB5b3Ugd2FudCB0aGVtIHRvIGFsbCBiZSB1bmlxdWUgZW50aXRpZXMuIFlvdSBj YW4gYWxzbyB1c2UgYSBmaXhlZCB2YWx1ZSByZWFkIGZyb20gYSBmaWVsZCBpbiB0aGUgY3Vy cmVudCBhcnRpY2xlLCBlLmcuIGdyb3VwbmFtZT0iP2N1c3RvbTIiLiBVc2VmdWwgd2hlbiB1 c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggb3JkZXJieS48L3A+Cgo8aDMgaWQ9ImVnNSI+PGNv ZGU+RXhhbXBsZSA1PC9jb2RlPjwvaDM+CjxwcmU+Jmx0O3R4cDpzbWRfc2xpbWJveCBjYXRl Z29yeT0iP2MsID9jdXN0b20xLCAhY3VzdG9tMiwgIXN0YXRpYyIKICAgICBsaW1pdD0iOCIg bWF4bGltaXQ9IjMyIiAvJmd0OzwvcHJlPgo8cD5BIGJpdCBvZiBhIGNvbnRyaXZlZCBleGFt cGxlIHRoYXQgc2hvd3MgaG93IGNyYXp5IHlvdSBjYW4gZ2V0OiBUaGlzIHdpbGwgc2hvdyBh IG1heGltdW0gb2YgMzIgaW1hZ2VzIGZyb20gYW4gaW1hZ2UgY2F0ZWdvcnkgd2l0aCB0aGUg c2FtZSBuYW1lIGFzIHRoZSBjdXJyZW50IGdsb2JhbCBjYXRlZ29yeSwgcGx1cyBhbGwgaW1h Z2VzIGZyb20gY2F0ZWdvcmllcyBsaXN0ZWQgaW4gdGhlIGN1c3RvbTEgZmllbGQgb2YgdGhl IGN1cnJlbnQgYXJ0aWNsZSBidXQgPGVtPmV4Y2x1ZGluZzwvZW0+IGltYWdlcyBmcm9tIGNh dGVnb3JpZXMgbGlzdGVkIGluIGN1c3RvbTIgYW5kIGFsc28gZXhjbHVkaW5nIHRoZSAnc3Rh dGljJyBjYXRlZ29yeS4gU2hvdyA4IGltYWdlIHRodW1ibmFpbHMgYXQgYSB0aW1lLjwvcD4K CjxoMyBpZD0iZWc2Ij48Y29kZT5FeGFtcGxlIDY8L2NvZGU+PC9oMz4KPHByZT4mbHQ7dHhw OnNtZF9zbGltYm94IGNhdGVnb3J5PSI/UGhvdG8gY291bnRyeSIgc3ViY2F0cz0iMSIKICAg ICB0aHVtYnRleHQ9Im9uY2hhbmdlOiAmYW1wO2x0O2g0JmFtcDtndDs/Y2F0ZWdvcnkmYW1w O2x0Oy9oNCZhbXA7Z3Q7IgogICAgIGdyb3VwbmFtZT0iP2MiIHRodW1idGV4dHdyYXA9IiIg LyZndDs8L3ByZT4KPHA+QSB3b3JrLXNhdmluZyB0YWchIFB1bGxzIG91dCBhbGwgcGljdHVy ZXMgZnJvbSB0aGUgY2F0ZWdvcnkgZ2l2ZW4gaW4gdGhlIGN1c3RvbSBmaWVsZCBsYWJlbGxl ZCA8Y29kZT5QaG90byBjb3VudHJ5PC9jb2RlPiwgaW5jbHVkaW5nIGFueSBzdWJjYXRlZ29y aWVzLiBCeSBkZWZhdWx0IGl0IDxhIGhyZWY9IiNvcmRlcmJ5Ij5zb3J0czwvYT4gdGhlbSBi eSBjYXRlZ29yeSwgd2hpY2ggaXMgcGVyZmVjdC4gVGhlIGNsZXZlciBiaXQgaXMgPGNvZGU+ dGh1bWJ0ZXh0PC9jb2RlPiwgd2hpY2ggdGVsbHMgdGhlIHBsdWdpbiB0byBkaXNwbGF5IHRo ZSBjYXRlZ29yeSBuYW1lIGFib3ZlIHRoZSBpbWFnZXMgYnV0IDxlbT5vbmx5PC9lbT4gd2hl biB0aGUgY2F0ZWdvcnkgY2hhbmdlcy4gVGhlIHJlc3VsdCBpcyBjYXRlZ29yeSBoZWFkaW5n cyAoc3Vycm91bmRlZCBieSBoNCB0YWdzLCB3aXRob3V0IHRoZSBkZWZhdWx0IHNwYW4gY291 cnRlc3kgb2YgPGNvZGU+dGh1bWJ0ZXh0d3JhcDwvY29kZT4pIGFib3ZlIGVhY2ggZ3JvdXAg b2YgaW1hZ2VzLiBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gaW5jbHVkZSBzaW1wbGUgSFRN TCB0YWdzIHlvdSBjYW4sIGJ1dCB0aGV5IG11c3QgYmUgZW5jb2RlZCB3aXRoIHRoZWlyIGNo YXJhY3RlciBjb2RlIGVxdWl2YWxlbnRzIG9yIFRYUCBnZXRzIG1hZC48L3A+CjxwPlRoZSA8 Y29kZT5ncm91cG5hbWU8L2NvZGU+IG9wdGlvbiB0ZWxscyBzbGltYm94IHRvIG9ubHkgcGVy bWl0IHN0ZXBwaW5nIHRocm91Z2ggZWFjaCBpbWFnZSBpbiBlYWNoIGNhdGVnb3J5LiBZb3Ug Y2Fubm90ICdmYWxsIG9mZicgdGhlIGVuZCBvZiBvbmUgY2F0ZWdvcnkgaW50byB0aGUgbmV4 dCB3aGVuIHVzaW5nIE5leHQvUHJldiBvbiB0aGUgaW1hZ2UuPC9wPgo8cD5JZiB5b3Ugd2Fu dGVkIHRvIHNob3cgY2F0ZWdvcnkgaGVhZGluZ3MgdGhhdCBncm91cGVkIHBpY3R1cmVzIGJ5 IGF1dGhvciBhcyB3ZWxsIHlvdSBjb3VsZCB1c2U6PC9wPgo8cHJlPm9yZGVyYnk9ImNhdGVn b3J5LCBhdXRob3IiIHRodW1idGV4dD0ib25jaGFuZ2U6ICZhbXA7bHQ7aDQmYW1wO2d0Oz9j YXRlZ29yeSAoYnkgP2F1dGhvcikmYW1wO2x0Oy9oNCZhbXA7Z3Q7IjwvcHJlPgo8cD5BZGQg YSBsaXR0bGUgYml0IG9mIENTUyBhbmQgeW91ciBzaW5nbGUgc2xpbWJveCB0YWcgY2FuIGxv b2sgbGlrZSBpdCdzIGNyZWF0aW5nIG11bHRpcGxlIGdhbGxlcmllcywgYWxsIGF1dG9tYXRp Y2FsbHkuPC9wPgoKPGgyPjxhIG5hbWU9InN0eWxlIj48L2E+U3R5bGluZyB3aXRoIENTUzwv aDI+CjxwPlRoZXJlIGFyZSAoZGVsaWJlcmF0ZWx5KSB2ZXJ5IGZldyBsYXlvdXQgYXR0cmli dXRlcyBmb3IgdGhlIHBsdWdpbiBiZWNhdXNlIHByZXR0eSBtdWNoIGV2ZXJ5dGhpbmcgY2Fu IGJlIGFjY2Vzc2VkIGZyb20gQ1NTIHRvIGxheSB5b3VyIGltYWdlcyBvdXQgaG93ZXZlciB5 b3UgbGlrZSB0aGVtLiBXYW50IHRvIGNoYW5nZSB0aGUgbnVtYmVyIG9mIGltYWdlcyBwZXIg cm93PyBDaGFuZ2UgdGhlIHdpZHRoIG9mIHRoZSBjb250YWluaW5nICZsdDtkaXYmZ3Q7IGFu ZCBzZXQgdGhlIHdpZHRoIG9mIGVhY2ggdGh1bWJuYWlsIHNwYWNlIHRvIGEgcGFydGljdWxh ciBzaXplLjwvcD4KPHA+VGhlIGZvbGxvd2luZyBsb2dpY2FsIHN0cnVjdHVyZSBhcHBsaWVz OjwvcD4KCjx1bD4KPGxpPkFuIG9wdGlvbmFsIHdyYXB0YWcgYW5kIGNsYXNzIG5hbWUgYXJv dW5kIGVhY2ggImNlbGwiIChpLmUuIHRodW1ibmFpbCk8L2xpPgo8bGk+QSBsaW5rIGVsZW1l bnQgY29udGFpbmluZyB0aGUgdGh1bWJuYWlsJ3MgPGNvZGU+Jmx0O2ltZyZndDs8L2NvZGU+ IHRhZzwvbGk+CjxsaT5UaGUgY2FwdGlvbi9hbHQgaXMgYSAmbHQ7c3BhbiZndDsgd2l0aCBh biBvcHRpb25hbCBjbGFzcyBhbmQgY2FuIGFwcGVhciBhYm92ZSwgYmVsb3cgb3Igd2l0aGlu IHRoZSBsaW5rIGVsZW1lbnQ8L2xpPgo8bGk+VGhlIG5leHQvcHJldiBsaW5rcyBhcmUgd3Jh cHBlZCBpbiB0aGUgb3B0aW9uYWwgd3JhcHRhZyBjb250YWluZXIgYW5kIGNhbiBiZSBnaXZl biBhbiBvcHRpb25hbCBjbGFzcyBuYW1lPC9saT4KPGxpPlRoZSBuZXh0IGxpbmsgaGFzIGEg KGRlZmF1bHQpIGNsYXNzIG9mICJzbWRfc2xpbWJveF9uZXh0IiBhbmQgcHJldiBoYXMgInNt ZF9zbGltYm94X3ByZXYiLiBUaGVzZSBjYW4gYmUgY2hhbmdlZCBvciByZW1vdmVkIGlmIHlv dSB3aXNoLjwvbGk+CjwvdWw+Cgo8cD5Vc2luZyBDU1Mgc2VsZWN0b3JzIHlvdSBjYW4gYWNj ZXNzIGV2ZXJ5IHBhcnQgb2YgdGhlIHN0cnVjdHVyZS4gQW4gZXhhbXBsZSBDU1MgbGF5b3V0 IGlzIGdpdmVuIGhlcmUgdG8gZ2V0IHlvdSBzdGFydGVkIChhc3N1bWVzIGEgd3JhcHRhZyBv ZiAnbGknLCBhIGNvbnRhaW5pbmcgJ3VsJyBhcm91bmQgdGhlIHBsdWdpbiB0YWcgd2l0aCBh IGNsYXNzIG9mIDxjb2RlPnNtZF9zbGltYm94PC9jb2RlPiBhbmQgPGNvZGU+bmF2Y2xhc3M9 InNtZF9zbGltYm94X25hdiI8L2NvZGU+KS4gUGFzdGUgaXQgaW50byB5b3VyIENTUyB0ZW1w bGF0ZSBhbmQgeW91J3JlIGdvb2QgdG8gZ28uPC9wPgoKPHByZT4KLnNtZF9zbGltYm94IHsK CWZsb2F0OmxlZnQ7Cgl3aWR0aDo2MDBweDsKCW1hcmdpbjoxZW0gMDsKCWNsZWFyOmJvdGg7 CglsaXN0LXN0eWxlOm5vbmU7Cn0KLnNtZF9zbGltYm94IGxpIHsKCXdpZHRoOjE1MHB4OwoJ aGVpZ2h0OjE1MHB4OwoJZmxvYXQ6bGVmdDsKCW1hcmdpbjoxZW0gYXV0bzsKCXRleHQtYWxp Z246Y2VudGVyOwp9Ci5zbWRfc2xpbWJveCBpbWcgewoJbWFyZ2luOjAgYXV0bzsKfQouc21k X3NsaW1ib3ggc3BhbiB7CglmbG9hdDpsZWZ0OwoJd2lkdGg6MTQwcHg7CglwYWRkaW5nOjJw eCAwIDAgNXB4Owp9CmxpLnNtZF9zbGltYm94X25hdiB7CgljbGVhcjpib3RoOwoJd2lkdGg6 NTAwcHg7CglwYWRkaW5nOjIwcHg7Cn0KLnNtZF9zbGltYm94X3ByZXYgewoJZmxvYXQ6bGVm dDsKfQouc21kX3NsaW1ib3hfbmV4dCB7CglmbG9hdDpyaWdodDsKfQo8L3ByZT4KCjxoMj48 YSBuYW1lPSJjcmVkaXRzIj48L2E+Q3JlZGl0czwvaDI+CjxwPlRoaXMgcGx1Z2luIHBsYWdp YXJpc2VzIGlkZWFzIGZyb20gPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNv bS92aWV3dG9waWMucGhwP2lkPTUxNzYiPlJvYiBTYWJsZSdzIHJzc190aHVtYnBvcDwvYT4g YW5kIHZhcmlvdXMgVFhQZXJzIGluIHRoZSBjb21tdW5pdHkgd2hvIGhhdmUgc3VnZ2VzdGVk IGZlYXR1cmVzIGFuZCBpbXByb3ZlbWVudHMuIEl0IGFsc28gd291bGRuJ3QgZXhpc3Qgd2l0 aG91dCB0aGUgaGFyZCB3b3JrIG9mIENocmlzdG9waGUgQmV5bHMnIG9yaWdpbmFsIGltcGxl bWVudGF0aW9uIG9mIFNsaW1ib3guIE1hbnkgdGhhbmtzIHRvIGFsbCB3aG8gaGF2ZSBoZWxw ZWQgY3JhZnQgdGhpcyBwbHVnaW4sIGFuZCBvZiBjb3Vyc2UgdG8gdGhlIGF3ZXNvbWUgVGVh bSBUZXh0UGF0dGVybi48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8 c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpjb2RlIHtjb2xvcjogIzIwNDY2Zn0KcHJlIHtwYWRk aW5nOiAwLjVlbSAxZW07IGJhY2tncm91bmQ6ICNlZWU7IGJvcmRlcjogMXB4IGRhc2hlZCAj Y2NjO30KaDEsIGgyLCBoMywgaDMgY29kZSB7Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGZv bnQtd2VpZ2h0OiBib2xkO30KaDEsIGgyLCBoMyB7bWFyZ2luLWxlZnQ6IC0xZW07fQpoMiwg aDMge21hcmdpbi10b3A6IDJlbTt9CmgxIHtmb250LXNpemU6IDNlbTt9CmgyIHtmb250LXNp emU6IDJlbTt9CmgzIHtmb250LXNpemU6IDEuNWVtO30KbGkgYSBjb2RlIHtmb250LXdlaWdo dDogbm9ybWFsO30KLnJlcXVpcmVkLCAud2FybmluZyB7Y29sb3I6cmVkO30KI2VndGFiIHRk LCNlZ3RhYiB0aCB7cGFkZGluZzouN2VtOyBib3JkZXI6MXB4IHNvbGlkICM4ODg7dGV4dC1h bGlnbjpjZW50ZXI7fQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExVR0lOIENTUyAtLS0gLS0+ CiI7czozOiJtZDUiO3M6MzI6ImRiZGNhOTlkYWI2NGMwYTQ5OWU4YmY5YWFjYjQyMjAzIjt9