# Name: smd_lately v0.22 # Type: Client side plugin # Show recently viewed/popular articles # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEwOiJzbWRfbGF0ZWx5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjIyIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz NzoiU2hvdyByZWNlbnRseSB2aWV3ZWQvcG9wdWxhciBhcnRpY2xlcyI7czo0OiJjb2RlIjtz OjkxMzI6ImZ1bmN0aW9uIHNtZF9sYXRlbHkoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xv YmFsICRwcmVmcywgJHRoaXNhcnRpY2xlLCAkcGVybWxpbmtfbW9kZTsNCg0KCS8vIENoZWNr IGxvZ2dpbmcgaXMgb24NCglpZiAoICRwcmVmc1snbG9nZ2luZyddICE9ICdhbGwnKSB7DQoJ CXRyaWdnZXJfZXJyb3Ioc21kX3J2X2dUeHQoJ2xvZ2dpbmdfZW5hYmxlZCcpLCBFX1VTRVJf Tk9USUNFKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdi eScgPT4gJ1NNRF9DVVJSRU5UJywgLy8gRGVmYXVsdCBpcyB0aGUgSVAgYWRkcmVzcyBvZiB0 aGUgY3VycmVudCB2aXNpdG9yLiBDYW4gYmUgZW1wdHkgZm9yICdhbGwnIHZpc2l0b3JzDQoJ CSdzZWN0aW9uJyA9PiAnJywNCgkJJ3N0YXR1cycgPT4gJycsDQoJCSd0aW1lJyA9PiAncGFz dCcsDQoJCSdpbmNsdWRlJyA9PiAnJywNCgkJJ2V4Y2x1ZGUnID0+ICcnLA0KCQknd2l0aGlu JyA9PiAnJywNCgkJJ2Zyb20nID0+ICcnLA0KCQkndG8nID0+ICcnLA0KCQknc2hvd19jdXJy ZW50JyA9PiAwLA0KCQknZm9ybScgPT4gJycsDQoJCSdsaW1pdCcgPT4gMTAsDQoJCSdzb3J0 JyA9PiAndGltZSBkZXNjJywNCgkJJ3dyYXB0YWcnID0+ICcnLA0KCQknYnJlYWsnID0+ICdi cicsDQoJCSdjbGFzcycgPT4gX19GVU5DVElPTl9fLA0KCQknbGFiZWwnID0+ICcnLA0KCQkn bGFiZWx0YWcnID0+ICcnLA0KCQknZGVsaW0nID0+ICcsJywNCgkJJ3BhcmFtX2RlbGltJyA9 PiAnOicsDQoJCSdzaWxlbnQnID0+IDAsDQoJCSdkZWJ1ZycgPT4gMCwNCgkpLCAkYXR0cykp Ow0KDQoJLy8gU2FuaXRpemUgc29ydCBvcHRpb25zDQoJJHNvcnRCaXRzID0gZG9fbGlzdCgk c29ydCwgIiAiKTsNCgkkc29ydEJpdHNbMF0gPSAoZW1wdHkoJHNvcnRCaXRzWzBdKSkgPyAn dGltZScgOiAkc29ydEJpdHNbMF07DQoJaWYgKCFpc3NldCgkc29ydEJpdHNbMV0pIHx8ICFp bl9hcnJheSgkc29ydEJpdHNbMV0sIGFycmF5KCdkZXNjJywgJ2FzYycpKSkgew0KCQkkc29y dEJpdHNbMV0gPSAnZGVzYyc7DQoJCSRzb3J0ID0gam9pbigiICIsICRzb3J0Qml0cyk7DQoJ fQ0KDQoJLy8gSVAgYWRkcmVzcyBjbGF1c2UNCgkkaXAgPSAnJzsNCglpZiAoJGJ5ID09ICdT TURfQ1VSUkVOVCcpIHsNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygncmVtb3RlX2FkZHInKSkg ew0KCQkJJGlwID0gcmVtb3RlX2FkZHIoKTsNCgkJfSBlbHNlIHsNCgkJCSRpcCA9IHNlcnZl clNldCgnUkVNT1RFX0FERFInKTsNCgkJCWlmICgoJGlwID09ICcxMjcuMC4wLjEnIHx8ICRp cCA9PSBzZXJ2ZXJTZXQoJ1NFUlZFUl9BRERSJykpICYmIHNlcnZlclNldCgnSFRUUF9YX0ZP UldBUkRFRF9GT1InKSkgew0KCQkJCSRpcHMgPSBleHBsb2RlKCcsICcsIHNlcnZlclNldCgn SFRUUF9YX0ZPUldBUkRFRF9GT1InKSk7DQoJCQkJJGlwID0gJGlwc1swXTsNCgkJCX0NCgkJ fQ0KCQlpZiAoJGlwKSB7DQoJCQkkaXAgPSAiIEFORCBpcD0nIi5kb1NsYXNoKCRpcCkuIici Ow0KCQl9DQoJfSBlbHNlIGlmICgkYnkgPT0gJ1NNRF9BTEwnKSB7DQoJCSRieSA9ICcnOw0K CX0NCg0KCS8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBpbmNsdWRlIHRoZSBjdXJyZW50IGFydGlj bGUNCgkvLyBOb3RlIHRoZSByZWdleHAgaXMgYW5jaG9yZWQgdG8gdGhlIGVuZCB3aXRoIGEg JA0KCSR0aGlzaWNsZSA9ICcnOw0KCWlmIChpc3NldCgkdGhpc2FydGljbGUpKSB7DQoJCWlm ICghJHNob3dfY3VycmVudCkgew0KCQkJJHVybHRpdGxlID0gJHRoaXNhcnRpY2xlWyd1cmxf dGl0bGUnXTsNCgkJCSR0aGlzaWNsZSA9ICgkdXJsdGl0bGUpID8gIiBBTkQgcGFnZSBOT1Qg TElLRSAnJSR1cmx0aXRsZSciIDogJyc7DQoJCX0NCgl9DQoNCgkvLyBGaWx0ZXIgb3V0IGFy dGljbGVfbGlzdCBwYWdlcyBhbmQgb3RoZXIgKHVuKWRlc2lyYWJsZXMNCgkkcnVsZXMgPSBh cnJheSgNCgkJInBhZ2UgTk9UIExJS0UgJy8nIiwgLy8gR29vZGJ5ZSBmcm9udCBwYWdlDQoJ CSJwYWdlIE5PVCBMSUtFICclcT0lJyIsIC8vIEdvb2RieWUgc2VhcmNoZXMNCgkJInBhZ2Ug Tk9UIExJS0UgJyVjPSUnIiwgLy8gR29vZGJ5ZSBjYXQgbGlzdHMNCgkJInBhZ2UgTk9UIExJ S0UgJyVwZz0lJyIsIC8vIEdvb2RieWUgbXVsdGktcGFnZSBsaXN0cw0KCQkicGFnZSBOT1Qg TElLRSAnJWNhdGVnb3J5PSUnIiwNCgkJInBhZ2UgTk9UIExJS0UgJy9jYXRlZ29yeS8lJyIs DQoJCSJwYWdlIE5PVCBMSUtFICclYXV0aG9yPSUnIiwNCgkJInBhZ2UgTk9UIExJS0UgJy9h dXRob3IvJSciLA0KCSk7DQoNCglpZiAoJHNlY3Rpb24pIHsNCgkJJHNlY3Rpb24gPSBkb19s aXN0KCRzZWN0aW9uLCAkZGVsaW0pOw0KCQkkc3VicnVsZSA9IGFycmF5KCk7DQoJCWZvcmVh Y2ggKCRzZWN0aW9uIGFzICRzZWMpIHsNCgkJCWlmICgkcGVybWxpbmtfbW9kZSA9PSAnbWVz c3knKSB7DQoJCQkJJHN1YnJ1bGVbXSA9ICJwYWdlIExJS0UgJyVzPSRzZWMlJyI7DQoJCQl9 IGVsc2Ugew0KCQkJCSRzdWJydWxlW10gPSAicGFnZSBMSUtFICcvJHNlYyUnIEFORCBwYWdl IE5PVCBSRUdFWFAgJ14vJHNlYy8/JCciOw0KCQkJfQ0KCQl9DQoJCSRzdWJydWxlID0gJygn IC4gam9pbignIE9SICcsICRzdWJydWxlKSAuICcpJzsNCgkJJHJ1bGVzW10gPSAkc3VicnVs ZTsNCgl9IGVsc2Ugew0KCQkvLyBFeGNsdWRlIGFueSByb3dzIHRoYXQganVzdCBjb250YWlu IHRoZSBzZWN0aW9uIChpLmUuIGFydGljbGUgbGlzdCBwYWdlcykNCgkJJGFsbFNlY3MgPSBz YWZlX2NvbHVtbignbmFtZScsICd0eHBfc2VjdGlvbicsICIxPTEiLCAkZGVidWcpOw0KCQkk cnVsZXNbXSA9ICJwYWdlIE5PVCBSRUdFWFAgJ14vKCIgLiBqb2luKCJ8IiwgJGFsbFNlY3Mp IC4gIikvPyQnIjsNCgl9DQoNCgkvLyBQcm9jZXNzIGFueSBtYW51YWwgaW5jbHVkZXMNCglp ZiAoJGluY2x1ZGUpIHsNCgkJJGluY2x1ZGUgPSBkb19saXN0KCRpbmNsdWRlLCAkZGVsaW0p Ow0KCQkkc3VicnVsZXMgPSBhcnJheSgpOw0KCQlmb3JlYWNoICgkaW5jbHVkZSBhcyAkaW5j KSB7DQoJCQkkcmVnZXggPSAkbGlrZSA9IGZhbHNlOw0KCQkJJGNvbHVtbiA9ICdpcCc7DQoJ CQkkcGFydHMgPSBkb19saXN0KCRpbmMsICRwYXJhbV9kZWxpbSk7DQoJCQkkbWF0Y2ggPSBh cnJheV9wb3AoJHBhcnRzKTsNCgkJCWZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgew0KCQkJ CXN3aXRjaCAoJHBhcnQpIHsNCgkJCQkJY2FzZSAiaXAiOg0KCQkJCQljYXNlICJob3N0IjoN CgkJCQkJY2FzZSAicGFnZSI6DQoJCQkJCWNhc2UgInJlZmVyIjoNCgkJCQkJCSRjb2x1bW4g PSAkcGFydDsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJsaWtlIjoNCgkJCQkJCSRsaWtl ID0gdHJ1ZTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJyZWdleCI6DQoJCQkJCQkkcmVn ZXggPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQkJJHN1YnJ1bGVzW10g PSAkcmVnZXggPyAiJGNvbHVtbiBSRUdFWFAgJyIuZG9TbGFzaChwcmVnX3F1b3RlKCRtYXRj aCkpLiInIiA6ICgoJGxpa2UpID8gIiRjb2x1bW4gTElLRSAnJSIuZG9TbGFzaCgkbWF0Y2gp LiIlJyIgOiAiJGNvbHVtbiA9ICciLmRvU2xhc2goJG1hdGNoKS4iJyIpOw0KCQl9DQoJCSRy dWxlc1tdID0gJygnLmpvaW4oJyBPUiAnLCAkc3VicnVsZXMpLicpJzsNCgl9DQoNCgkvLyBQ cm9jZXNzIGFueSBtYW51YWwgZXhjbHVkZXMNCglpZiAoJGV4Y2x1ZGUpIHsNCgkJJGV4Y2x1 ZGUgPSBkb19saXN0KCRleGNsdWRlLCAkZGVsaW0pOw0KCQlmb3JlYWNoICgkZXhjbHVkZSBh cyAkZXhjKSB7DQoJCQkkcmVnZXggPSAkbGlrZSA9IGZhbHNlOw0KCQkJJGNvbHVtbiA9ICdp cCc7DQoJCQkkcGFydHMgPSBkb19saXN0KCRleGMsICRwYXJhbV9kZWxpbSk7DQoJCQkkbWF0 Y2ggPSBhcnJheV9wb3AoJHBhcnRzKTsNCgkJCWZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkg ew0KCQkJCXN3aXRjaCAoJHBhcnQpIHsNCgkJCQkJY2FzZSAiaXAiOg0KCQkJCQljYXNlICJo b3N0IjoNCgkJCQkJY2FzZSAicGFnZSI6DQoJCQkJCWNhc2UgInJlZmVyIjoNCgkJCQkJCSRj b2x1bW4gPSAkcGFydDsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJsaWtlIjoNCgkJCQkJ CSRsaWtlID0gdHJ1ZTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJyZWdleCI6DQoJCQkJ CQkkcmVnZXggPSB0cnVlOw0KCQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KCQkJJHJ1bGVz W10gPSAkcmVnZXggPyAiJGNvbHVtbiBOT1QgUkVHRVhQICciLmRvU2xhc2gocHJlZ19xdW90 ZSgkbWF0Y2gpKS4iJyIgOiAoKCRsaWtlKSA/ICIkY29sdW1uIE5PVCBMSUtFICclIi5kb1Ns YXNoKCRtYXRjaCkuIiUnIiA6ICIkY29sdW1uICE9ICciLmRvU2xhc2goJG1hdGNoKS4iJyIp Ow0KCQl9DQoJfQ0KDQoJLy8gRmlsdGVyIGJ5IHRpbWUgZnJhbWUNCgkkZnJvbXN0YW1wID0g JHRvc3RhbXAgPSAkZGlmZnN0YW1wID0gMDsNCgkkdGhpc21vbnRoID0gZGF0ZSgnRicsIG1r dGltZSgwLDAsMCxzdHJmdGltZSgnJW0nKSwxKSk7DQoJJHRoaXN5ZWFyID0gc3RyZnRpbWUo JyVZJyk7DQoJaWYgKCRmcm9tKSB7DQoJCSRmcm9tID0gc3RyX3JlcGxhY2UoIj9tb250aCIs ICR0aGlzbW9udGgsICRmcm9tKTsNCgkJJGZyb20gPSBzdHJfcmVwbGFjZSgiP3llYXIiLCAk dGhpc3llYXIsICRmcm9tKTsNCgkJJGZyb21zdGFtcCA9IHN0cnRvdGltZSgkZnJvbSk7DQoJ CWlmICgkZnJvbXN0YW1wKSB7DQoJCQkkcnVsZXNbXSA9ICJVTklYX1RJTUVTVEFNUCh0aW1l KSA+ICRmcm9tc3RhbXAiOw0KCQl9IGVsc2Ugew0KCQkJaWYgKCEkc2lsZW50KSB7DQoJCQkJ dHJpZ2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnaW52YWxpZF90cycsIGFycmF5KCJ7d2hlcmV9 IiA9PiAnZnJvbScpKSwgRV9VU0VSX05PVElDRSk7DQoJCQl9DQoJCX0NCgl9DQoJaWYgKCR0 bykgew0KCQkkdG8gPSBzdHJfcmVwbGFjZSgiP21vbnRoIiwgJHRoaXNtb250aCwgJHRvKTsN CgkJJHRvID0gc3RyX3JlcGxhY2UoIj95ZWFyIiwgJHRoaXN5ZWFyLCAkdG8pOw0KCQkkdG9z dGFtcCA9IHN0cnRvdGltZSgkdG8pOw0KCQlpZiAoJHRvc3RhbXApIHsNCgkJCSRydWxlc1td ID0gIlVOSVhfVElNRVNUQU1QKHRpbWUpIDwgJHRvc3RhbXAiOw0KCQl9IGVsc2Ugew0KCQkJ aWYgKCEkc2lsZW50KSB7DQoJCQkJdHJpZ2dlcl9lcnJvcihzbWRfcnZfZ1R4dCgnaW52YWxp ZF90cycsIGFycmF5KCJ7d2hlcmV9IiA9PiAndG8nKSksIEVfVVNFUl9OT1RJQ0UpOw0KCQkJ fQ0KCQl9DQoJfQ0KCWlmICgkd2l0aGluKSB7DQoJCWlmICgkdG9zdGFtcCkgew0KCQkJJHJl ZnN0YW1wID0gJHRvc3RhbXA7DQoJCQkkcmVmZGlyID0gJy0nOw0KCQl9IGVsc2UgaWYgKCRm cm9tc3RhbXApIHsNCgkJCSRyZWZzdGFtcCA9ICRmcm9tc3RhbXA7DQoJCQkkcmVmZGlyID0g JysnOw0KCQl9IGVsc2Ugew0KCQkJJHJlZnN0YW1wID0gdGltZSgpOw0KCQkJJHJlZmRpciA9 ICctJzsNCgkJfQ0KDQoJCSRkaWZmc3RhbXAgPSBzdHJ0b3RpbWUoJHJlZmRpci4kd2l0aGlu LCAkcmVmc3RhbXApOw0KCQlpZiAoJGRpZmZzdGFtcCkgew0KCQkJJHJ1bGVzW10gPSAiVU5J WF9USU1FU1RBTVAodGltZSkgIi4oKCRyZWZkaXIgPT0gJy0nKSA/ICc+ICcgOiAnPCAnICku JGRpZmZzdGFtcDsNCgkJfSBlbHNlIHsNCgkJCWlmICghJHNpbGVudCkgew0KCQkJCXRyaWdn ZXJfZXJyb3Ioc21kX3J2X2dUeHQoJ2ludmFsaWRfdHMnLCBhcnJheSgie3doZXJlfSIgPT4g J3dpdGhpbicpKSwgRV9VU0VSX05PVElDRSk7DQoJCQl9DQoJCX0NCgl9DQoNCglpZiAoJGRl YnVnKSB7DQoJCWVjaG8gIisrIHNtZF9sYXRlbHkgUlVMRVMgKysiOw0KCQlkbXAoJHJ1bGVz KTsNCgkJaWYgKCRmcm9tIHx8ICR0byB8fCAkd2l0aGluKSB7DQoJCQllY2hvICIrKyBUSU1F IFdJTkRPVyArKyI7DQoJCQlpZiAoJGZyb20pIHsNCgkJCQlkbXAoIkZST006ICIgLiBkYXRl KCdZLU0tZCBIOmk6cycsICRmcm9tc3RhbXApKTsNCgkJCX0NCgkJCWlmICgkd2l0aGluKSB7 DQoJCQkJZG1wKCJXSVRISU46ICIgLiBkYXRlKCdZLU0tZCBIOmk6cycsICRkaWZmc3RhbXAp LCAkd2l0aGluIC4gKCgkcmVmZGlyID09ICctJykgPyAiIEJFRk9SRSBUTyBEQVRFIiA6ICIg QUZURVIgRlJPTSBEQVRFIikpOw0KCQkJfQ0KCQkJaWYgKCR0bykgew0KCQkJCWRtcCgiVE86 ICIuIGRhdGUoJ1ktTS1kIEg6aTpzJywgJHRvc3RhbXApKTsNCgkJCX0gZWxzZSB7DQoJCQkJ ZG1wKCJUTzogIi4gZGF0ZSgnWS1NLWQgSDppOnMnLCB0aW1lKCkpKTsNCgkJCX0NCgkJfQ0K CX0NCg0KCSRydWxlcyA9ICcgQU5EICcgLiBqb2luKCcgQU5EICcsICRydWxlcyk7DQoNCgkk cXVlcnkgPSAnU0VMRUNUIGNvdW50KHBhZ2UpIGFzIHBvcHVsYXJpdHksIHBhZ2UsIE1BWCh0 aW1lKSBhcyB0aW1lIEZST00gJy5QRlguJ3R4cF9sb2cgV0hFUkUgMT0xJy4kaXAuJHRoaXNp Y2xlLiRydWxlcy4nIEFORCBzdGF0dXMgPSAyMDAgR1JPVVAgQlkgcGFnZSBPUkRFUiBCWSAn LiRzb3J0Ow0KCSRycyA9IGdldFJvd3MoJHF1ZXJ5LCAkZGVidWcpOw0KDQoJaWYgKCRkZWJ1 ZyA+IDEpIHsNCgkJZG1wKCRycyk7DQoJfQ0KDQoJLy8gU2V0IHVwIGNvdW50ZXJzIGFuZCBj cmVhdGUgcXVlcnkgcGFyYW1zDQoJJGNvdW50ID0gMDsNCgkkb3V0ID0gYXJyYXkoKTsNCg0K CWlmICgkc3RhdHVzKSB7DQoJCSRzdGF0dXMgPSBkb19saXN0KCRzdGF0dXMsICRkZWxpbSk7 DQoJCSRzdGF0aSA9IGFycmF5KCk7DQoJCWZvcmVhY2ggKCRzdGF0dXMgYXMgJHN0YXQpIHsN CgkJCWlmIChlbXB0eSgkc3RhdCkpIHsNCgkJCQljb250aW51ZTsNCgkJCX0gZWxzZSBpZiAo aXNfbnVtZXJpYygkc3RhdCkpIHsNCgkJCQkkc3RhdGlbXSA9ICRzdGF0Ow0KCQkJfSBlbHNl IHsNCgkJCQkkc3RhdGlbXSA9IGdldFN0YXR1c051bSgkc3RhdCk7DQoJCQl9DQoJCX0NCgkJ JHN0YXR1cyA9ICIgQU5EIFN0YXR1cyBJTiAoIi5qb2luKCcsJywgJHN0YXRpKS4iKSI7DQoJ fQ0KDQoJc3dpdGNoKCR0aW1lKSB7DQoJCWNhc2UgIiI6DQoJCWNhc2UgImFueSIgOiAkdGlt ZSA9ICIiOyBicmVhazsNCgkJY2FzZSAiZnV0dXJlIiA6ICR0aW1lID0gIiBBTkQgUG9zdGVk ID4gQ1VSREFURSgpIjsgYnJlYWs7DQoJCWRlZmF1bHQgOiAkdGltZSA9ICIgQU5EIFBvc3Rl ZCA8IENVUkRBVEUoKSI7IGJyZWFrOw0KCX0NCg0KCS8vIExvb3AgdW50aWwgbGltaXQgcmVh Y2hlZA0KCWlmICgkcnMpIHsNCgkJZm9yZWFjaCAoJHJzIGFzICRyb3cpIHsNCgkJCWlmICgk bGltaXQgPiAwICYmIGlzX251bWVyaWMoJGxpbWl0KSAmJiAkY291bnQgPT0gJGxpbWl0KSBi cmVhazsNCgkJCSR1cmxwYXJ0cyA9IGV4cGxvZGUoJy8nLCBydHJpbSgkcm93WydwYWdlJ10s Ii8iKSk7DQoJCQkkZGFydGljbGUgPSBzYWZlX3JvdygnKiwgdW5peF90aW1lc3RhbXAoUG9z dGVkKSBhcyB1UG9zdGVkLCB1bml4X3RpbWVzdGFtcChFeHBpcmVzKSBhcyB1RXhwaXJlcywg dW5peF90aW1lc3RhbXAoTGFzdE1vZCkgYXMgdUxhc3RNb2QnLCAndGV4dHBhdHRlcm4nLCAi dXJsX3RpdGxlPSciLiR1cmxwYXJ0c1tjb3VudCgkdXJscGFydHMpLTFdLiInIi4kc3RhdHVz LiR0aW1lLCAkZGVidWcpOw0KCQkJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJCQlkbXAoJGRhcnRp Y2xlKTsNCgkJCX0NCgkJCWlmICgkZGFydGljbGUpIHsNCgkJCQkkdGhlVGltZSA9IHN0cnRv dGltZSgkcm93Wyd0aW1lJ10pOw0KCQkJCSRyZXBsYWNlbWVudHMgPSBhcnJheSgNCgkJCQkJ IntzbWRfbGF0ZWx5X2NvdW50fSIgPT4gJHJvd1sncG9wdWxhcml0eSddLA0KCQkJCQkie3Nt ZF9sYXRlbHlfZnVsbGRhdGV9IiA9PiAkcm93Wyd0aW1lJ10sDQoJCQkJCSJ7c21kX2xhdGVs eV9kYXRlfSIgPT4gc3RyZnRpbWUoIiVGIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRl bHlfZGF0ZV95ZWFyfSIgPT4gc3RyZnRpbWUoIiVZIiwgJHRoZVRpbWUpLA0KCQkJCQkie3Nt ZF9sYXRlbHlfZGF0ZV9tb250aH0iID0+IHN0cmZ0aW1lKCIlbSIsICR0aGVUaW1lKSwNCgkJ CQkJIntzbWRfbGF0ZWx5X2RhdGVfbW9udGhuYW1lfSIgPT4gc3RyZnRpbWUoIiVCIiwgJHRo ZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfZGF0ZV9kYXl9IiA9PiBzdHJmdGltZSgiJWQi LCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV9kYXRlX2RheW5hbWV9IiA9PiBzdHJm dGltZSgiJUEiLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVseV90aW1lfSIgPT4gc3Ry ZnRpbWUoIiVUIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9ob3VyfSIg PT4gc3RyZnRpbWUoIiVIIiwgJHRoZVRpbWUpLA0KCQkJCQkie3NtZF9sYXRlbHlfdGltZV9t aW51dGV9IiA9PiBzdHJmdGltZSgiJU0iLCAkdGhlVGltZSksDQoJCQkJCSJ7c21kX2xhdGVs eV90aW1lX3NlY29uZH0iID0+IHN0cmZ0aW1lKCIlUyIsICR0aGVUaW1lKSwNCgkJCQkpOw0K CQkJCWFydGljbGVfcHVzaCgpOw0KCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGRhcnRpY2xl KTsNCgkJCQkkb3V0W10gPSAoJHRoaW5nKSA/IHBhcnNlKHN0cnRyKCR0aGluZywgJHJlcGxh Y2VtZW50cykpIDogKCgkZm9ybSkgPyBwYXJzZV9mb3JtKHN0cnRyKCRmb3JtLCAkcmVwbGFj ZW1lbnRzKSkgOiBocmVmKCRkYXJ0aWNsZVsnVGl0bGUnXSwgcGVybWxpbmt1cmwoJGRhcnRp Y2xlKSkpOw0KCQkJCWFydGljbGVfcG9wKCk7DQoJCQkJJGNvdW50Kys7DQoJCQl9DQoJCX0N Cgl9DQoJcmV0dXJuICgkb3V0KSA/IGRvTGFiZWwoJGxhYmVsLCAkbGFiZWx0YWcpLmRvV3Jh cCgkb3V0LCAkd3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpIDogJyc7DQp9DQoNCi8vIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gUGx1Z2luLXNwZWNpZmljIHJlcGxhY2VtZW50IHN0 cmluZ3MgLSBsb2NhbGlzZSBhcyByZXF1aXJlZA0KZnVuY3Rpb24gc21kX3J2X2dUeHQoJHdo YXQsICRhdHRzID0gYXJyYXkoKSkgew0KCSRsYW5nID0gYXJyYXkoDQoJCSdpbnZhbGlkX3Rz JyA9PiAnSW52YWxpZCBkYXRlL3RpbWUgaW5mbyBpbiAie3doZXJlfSIgYXR0cmlidXRlLics DQoJCSdsb2dnaW5nX2VuYWJsZWQnID0+ICdMb2dnaW5nIG11c3QgYmUgc2V0IHRvICJBbGwg aGl0cyIgaW4gQmFzaWMgUGVmcy4nLA0KCSk7DQoJcmV0dXJuIHN0cnRyKCRsYW5nWyR3aGF0 XSwgJGF0dHMpOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7 czo1OiJmbGFncyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MTUwMTA6IjxkaXYgaWQ9InNtZF9o ZWxwIj4KCgk8aDE+c21kX2xhdGVseTwvaDE+CgoJPHA+TGlzdCB0aGUgbW9zdCByZWNlbnQg YXJ0aWNsZXMgdmlld2VkIGJ5IHRoZSBjdXJyZW50IHZpc2l0b3Igb3IsIGFsdGVybmF0aXZl bHksIGFsbCB2aXNpdG9ycy4gQ2FuIGFsc28gb3JkZXIgYnkgcG9wdWxhcml0eSAobW9zdCB2 aWV3ZWQpLjwvcD4KCgk8aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJ CTxsaT5MaXN0IHJlY2VudGx5IHZpZXdlZCBhcnRpY2xlczogdXNlZnVsIG9uIHByb2R1Y3Qg cGFnZXMgb3IgaW4gc2hvcHBpbmcgY2FydDwvbGk+CgkJPGxpPlNob3cgYSBsaXN0IG9mIHRo ZSBtb3N0IHBvcHVsYXIgYXJ0aWNsZXM8L2xpPgoJCTxsaT5MaW1pdCBlaXRoZXIgbGlzdCBi eSBzZWN0aW9uIG9yIGFyYml0cmFyeSB2YWx1ZSAoaXAsIGhvc3QsIHBhZ2UsIHJlZmVyZXIp IGlmIHlvdSB3aXNoPC9saT4KCQk8bGk+VXNlcyB0aGUgdmlzaXRvciBsb2dzPC9saT4KCQk8 bGk+QXV0b21hdGljYWxseSBmaWx0ZXJzIG91dCBhcnRpY2xlIGxpc3QgcGFnZXMsIGNhdGVn b3J5LCBhdXRob3Igb3Igc2VhcmNoIHZpc2l0czwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0 aG9yIj5BdXRob3IgLyBjcmVkaXRzPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRh d3Nvbi5jb20vY29udGFjdCI+U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3Rh bGwiPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVx dWlyZWQiPlJlcXVpcmVzIExvZ2dpbmcgdG8gYmUgc2V0IHRvIDxlbT5BbGwgaGl0czwvZW0+ ICh3aWxsIGlzc3VlIGEgd2FybmluZyBvZiBub3QpPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBw bHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVn aW5zLzExMTAvc21kX2xhdGVseSI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhy ZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3Rl IHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWlu IC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZp c2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3Bp Yy5waHA/aWQ9MzEzNDEiPmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byBy ZXBvcnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoK CTxwPlRvIHVuaW5zdGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQ bHVnaW5zIHBhZ2UuPC9wPgoKCTxoMiBpZD0ibnAiPjxjb2RlPiZsdDt0eHA6c21kX2xhdGVs eSZndDs8L2NvZGU+PC9oMj4KCgk8cD5QbGFjZSB0aGlzIHRhZyBhbnl3aGVyZSB5b3Ugd2lz aCB0byBkaXNwbGF5IGEgbGlzdCBvZiByZWNlbnRseSB2aWV3ZWQgYXJ0aWNsZXMuIFRoZSB0 YWcgbWF5IGJlIHVzZWQgYXMgYSBzaW5nbGUgdGFnICh3aXRoIGFuIG9wdGlvbmFsIGZvcm0p IG9yIGFzIGEgY29udGFpbmVyLiBJbnNpZGUgdGhlIGZvcm0vY29udGFpbmVyIHlvdSBjYW4g dXNlIGFueSBzdGFuZGFyZCBhcnRpY2xlIHRhZ3MgJiM4MjEyOyA8Y29kZT4mbHQ7dHhwOnRp dGxlIC8mZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0O3R4cDpleGNlcnB0IC8mZ3Q7PC9jb2RlPiwg PGNvZGU+Jmx0O3R4cDpwb3N0ZWQgLyZndDs8L2NvZGU+LCBldGMgJiM4MjEyOyB0byBmb3Jt YXQgdGhlIGxpc3QgaG93ZXZlciB5b3UgbGlrZS4gV2l0aG91dCBlaXRoZXIgYSBmb3JtIG9y IGEgY29udGFpbmVyLCB0aGUgcGx1Z2luIGRpc3BsYXlzIGEgaHlwZXJsaW5rZWQgdGl0bGUg dG8gdGhlIGFydGljbGUuPC9wPgoKCTxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBjYW4g YmUgdXNlZCB0byBtb2RpZnkgdGhlIHBsdWdpbiYjODIxNztzIG91dHB1dDo8L3A+CgoJPGgz IGNsYXNzPSJhdHRzIj5BdHRyaWJ1dGVzPC9oMz4KCgk8aDQ+TG9nIGZpbHRlcmluZyBhbmQg c29ydCBvcmRlciBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5ieTwvc3Bhbj4gOiB1c2UgPGNvZGU+Ynk9JnF1b3Q7JnF1b3Q7PC9jb2RlPiBvciA8 Y29kZT5ieT0mcXVvdDtTTURfQUxMJnF1b3Q7PC9jb2RlPiB0byB2aWV3IHRoZSBtb3N0IHJl Y2VudCBhcnRpY2xlcyBieSBhbGwgc2l0ZSB2aXNpdG9ycy4gQnkgZGVmYXVsdCAoaS5lLiBp ZiB0aGUgYXR0cmlidXRlIGlzIG9taXR0ZWQpIHRoZSBwbHVnaW4gb25seSBzaG93cyB0aGUg cmVjZW50IGFydGljbGVzIHZpZXdlZCBieSB0aGUgY3VycmVudCB2aXNpdG9yPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNlY3Rpb248L3NwYW4+IDogY2hvb3NlIHRvIHNob3cg YXJ0aWNsZXMgb25seSBmcm9tIHRoaXMgbGlzdCBvZiBzZWN0aW9ucy4gRGVmYXVsdDogdW5z ZXQgKGkuZS4gZnJvbSBhbGwgc2VjdGlvbnMpLiA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPk5v dGUgdGhhdCB5b3UgbXVzdCBiZSB1c2luZyBlaXRoZXIgbWVzc3kgbW9kZSBvciBhIHBlcm1s aW5rIG1vZGUgd2l0aCA8Y29kZT4vc2VjdGlvbjwvY29kZT4gaW4gaXQgdG8gZmlsdGVyIGJ5 IHNlY3Rpb248L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNob3dfY3Vy cmVudDwvc3Bhbj4gOiBEaXNwbGF5IHRoZSBhcnRpY2xlIGJlaW5nIHZpZXdlZCBpbiB0aGUg bGlzdDogMT1ZZXM7IDA9Tm8uIElnbm9yZWQgaWYgaW4gYW4gYXJ0aWNsZV9saXN0IHBhZ2Uu IERlZmF1bHQ6IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+aW5jbHVkZTwvc3Bh bj4gOiBlbnN1cmUgdGhhdCBsb2cgZmlsZSBlbnRyaWVzIHRoYXQgbWF0Y2ggdGhpcyBzZXQg b2YgY3JpdGVyaWEgYXJlIGluY2x1ZGVkIGluIHRoZSBsaXN0LiBUaGlzIGF0dHJpYnV0ZSB0 YWtlcyB1cCB0byAzIHBhcmFtZXRlcnMsIHNlcGFyYXRlZCBieSA8Y29kZT5wYXJhbV9kZWxp bTwvY29kZT4gKGRlZmF1bHQgaXMgdGhlIGNvbG9uKS4KCTx1bD4KCQk8bGk+Rmlyc3QgaXMg dGhlIG5hbWUgb2YgYSBmaWVsZCB0byBtYXRjaCBhZ2FpbnN0LiBDaG9vc2UgZnJvbSA8Y29k ZT5pcDwvY29kZT4gKHRoZSBkZWZhdWx0KSwgPGNvZGU+aG9zdDwvY29kZT4sIDxjb2RlPnBh Z2U8L2NvZGU+IG9yIDxjb2RlPnJlZmVyPC9jb2RlPjwvbGk+CgkJPGxpPlNlY29uZCBpcyBh biBvcHRpb25hbCBwYXJhbWV0ZXIgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbWF0Y2ggaXMg YSByZWd1bGFyIGV4cHJlc3Npb24sIHdpbGQgb3IgYW4gZXhhY3QgbWF0Y2guIFVzZSA8Y29k ZT5yZWdleDwvY29kZT4gaWYgeW91IHdpc2ggdGhpcyBtYXRjaCB0byBiZSBjb25zaWRlcmVk IGFzIGEgcmVndWxhciBleHByZXNzaW9uLCBzcGVjaWZ5IDxjb2RlPmxpa2U8L2NvZGU+IGlm IHlvdSB3YW50IHRvIGNoZWNrIGlmIHRoZSB0ZXh0IGlzIGEgc2ltcGxlICYjODIxNjt3aWxk JiM4MjE3OyBtYXRjaCAoaXQmIzgyMTc7cyBzaW1pbGFyIHRvLCBidXQgcXVpY2tlciB0aGFu LCBhIHJlZ2V4KSwgb3Igb21pdCB0aGUgcGFyYW1ldGVyIGVudGlyZWx5IGlmIHlvdSB3YW50 IGFuICYjODIxNjtleGFjdCBtYXRjaCYjODIxNzsgdG8gYmUgY29uc2lkZXJlZDwvbGk+CgkJ PGxpPkZpbmFsbHksIHNwZWNpZnkgdGhlIHRleHQgeW91IHdhbnQgdG8gbWF0Y2ggd2l0aCB0 aGF0IGZpZWxkLiBGb3IgZXhhbXBsZSwgPGNvZGU+aW5jbHVkZT0mcXVvdDtob3N0Omxpa2U6 d3d3LmRvbWFpbi5jb20mcXVvdDs8L2NvZGU+IHdvdWxkIG9ubHkgaW5jbHVkZSByZXN1bHRz IHRoYXQgaGFkIDxjb2RlPnd3dy5kb21haW4uY29tPC9jb2RlPiBzb21ld2hlcmUgaW4gdGhl aXIgaG9zdCBuYW1lLiBVc2luZyA8Y29kZT5pbmNsdWRlPSZxdW90OzE5Mi4xNjguMi4yMDAm cXVvdDs8L2NvZGU+IHdvdWxkIHNob3cgcGFnZXMgZnJvbSBhbnkgaW50ZXJuYWwgbWVkZGxp bmcgeW91IG1heSBoYXZlIGRvbmUgb24geW91ciBsb2NhbCA8c3BhbiBjbGFzcz0iY2FwcyI+ WEFNUFA8L3NwYW4+IHNlcnZlci4gTm90ZSB0aGF0IGlmIHlvdSBvbWl0IHBhcmFtZXRlcnMg MSBhbmQgMiwgdGhlIHBsdWdpbiB1c2VzIHRoZSBkZWZhdWx0czwvbGk+Cgk8L3VsPjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5leGNsdWRlPC9zcGFuPiA6IGVuc3VyZSB0aGF0 IGxvZyBmaWxlIGVudHJpZXMgdGhhdCBtYXRjaCB0aGlzIHNldCBvZiBjcml0ZXJpYSBhcmUg PHN0cm9uZz5ub3Q8L3N0cm9uZz4gaW5jbHVkZWQgaW4gdGhlIGxpc3QuIFVzZSB0aGlzIGlu IHRoZSBzYW1lIG1hbm5lciBhcyA8Y29kZT5pbmNsdWRlPC9jb2RlPjwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj5mcm9tPC9zcGFuPiA6IGRhdGUgLyB0aW1lIHN0YW1wICh3cml0 dGVuIGluIEVuZ2xpc2gpIG9mIHRoZSA8ZW0+ZWFybGllc3Q8L2VtPiBkYXRlIHRvIGNvbnNp ZGVyIGluIHRoZSBsb2dzLiBZb3UgbWF5IHNwZWNpZnkgPGNvZGU+P21vbnRoPC9jb2RlPiBh bmQvb3IgPGNvZGU+P3llYXI8L2NvZGU+IHRvIGhhdmUgdGhlIHBsdWdpbiByZXBsYWNlIGl0 IHdpdGggdGhlIGN1cnJlbnQgbW9udGgveWVhci4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+dG88L3NwYW4+IDogZGF0ZSAvIHRpbWUgc3RhbXAgKHdy aXR0ZW4gaW4gRW5nbGlzaCkgb2YgdGhlIDxlbT5tb3N0IHJlY2VudDwvZW0+IGRhdGUgdG8g Y29uc2lkZXIgaW4gdGhlIGxvZ3MuIFlvdSBtYXkgc3BlY2lmeSA8Y29kZT4/bW9udGg8L2Nv ZGU+IGFuZC9vciA8Y29kZT4/eWVhcjwvY29kZT4gdG8gaGF2ZSB0aGUgcGx1Z2luIHJlcGxh Y2UgaXQgd2l0aCB0aGUgY3VycmVudCBtb250aC95ZWFyLiBEZWZhdWx0OiBjdXJyZW50IHRp bWU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+d2l0aGluPC9zcGFuPiA6IGRhdGUg b2Zmc2V0ICh3cml0dGVuIGluIEVuZ2xpc2gpIHdoaWNoIHNwZWNpZmllcyBhIHRpbWUgd2lu ZG93IGluIHdoaWNoIHlvdSBhcmUgaW50ZXJlc3RlZC4gRm9yIGV4YW1wbGUgPGNvZGU+d2l0 aGluPSZxdW90OzM2IGhvdXJzJnF1b3Q7PC9jb2RlPiB3b3VsZCBzaG93IHJlc3VsdHMgZnJv bSB0aGUgbGFzdCAzNiBob3Vycy4gSWYgeW91IHNwZWNpZnkgYSA8Y29kZT50bzwvY29kZT4g ZGF0ZSwgdGhlIHZhbHVlIG9mIDxjb2RlPndpdGhpbjwvY29kZT4gaXMgc3VidHJhY3RlZCBm cm9tIGl0LiBJZiB5b3Ugc3BlY2lmeSBhIDxjb2RlPmZyb208L2NvZGU+IGRhdGUsIHRoZSB2 YWx1ZSBvZiA8Y29kZT53aXRoaW48L2NvZGU+IGlzIDxlbT5hZGRlZDwvZW0+IHRvIGl0LiBJ ZiB5b3Ugc3BlY2lmeSBib3RoIDxjb2RlPmZyb208L2NvZGU+IGFuZCA8Y29kZT50bzwvY29k ZT4sIHRoZSBvZmZzZXQgaXMgY2FsY3VsYXRlZCByZWxhdGl2ZSB0byB0aGUgPGNvZGU+dG88 L2NvZGU+IGF0dHJpYnV0ZS4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJPC91bD4KCgk8dWw+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zb3J0PC9zcGFuPiA6IG9yZGVyIHRoZSBsaXN0IGJ5 IGVpdGhlciA8Y29kZT50aW1lPC9jb2RlPiwgb3IgPGNvZGU+cG9wdWxhcml0eTwvY29kZT4u IEFkZCA8Y29kZT5hc2M8L2NvZGU+IG9yIDxjb2RlPmRlc2M8L2NvZGU+IHRvIGNob29zZSBh c2NlbmRpbmcgb3IgZGVzY2VuZGluZyBzb3J0IG9yZGVyLiBEZWZhdWx0OiA8Y29kZT50aW1l IGRlc2M8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFu PiA6IHNob3cgdGhpcyBtYW55IGl0ZW1zIGluIHRoZSBsaXN0LiAwID0gdW5saW1pdGVkLiBE ZWZhdWx0OiAxMDwvbGk+Cgk8L3VsPgoKCTxoND5BcnRpY2xlIGZpbHRlciBhdHRyaWJ1dGVz PC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zdGF0dXM8L3NwYW4+IDog T25seSBhcnRpY2xlcyB3aXRoIG9uZSBvZiB0aGVzZSBsaXN0ZWQgc3RhdHVzIHZhbHVlcyBh cmUgZGlzcGxheWVkIGluIHRoZSBsaXN0LiBEZWZhdWx0OiA0ICg8Y29kZT5saXZlPC9jb2Rl Pik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dGltZTwvc3Bhbj4gOiBJZiBhbiBh cnRpY2xlIGluIHRoZSBsb2cgaGFzIGl0cyBwb3N0ZWQgdGltZXN0YW1wIGluIHRoZSB0aW1l IHBlcmlvZCBpbmRpY2F0ZWQgaW4gdGhpcyBhdHRyaWJ1dGUsIGl0IHdpbGwgYmUgZGlzcGxh eWVkLiBDaG9vc2UgZnJvbSA8Y29kZT5hbnk8L2NvZGU+LCA8Y29kZT5mdXR1cmU8L2NvZGU+ IG9yIDxjb2RlPnBhc3Q8L2NvZGU+ICh0aGUgZGVmYXVsdCkuIExlYXZpbmcgdGhpcyBhdCBp dHMgZGVmYXVsdCBwcmV2ZW50cyBhbnkgZnV0dXJlLWRhdGVkIGFydGljbGVzIHRoYXQgeW91 IG1heSBiZSBwcmV2aWV3aW5nIGZyb20gc2hvd2luZyB1cCBpbiB0aGUgbGlzdDwvbGk+Cgk8 L3VsPgoKCTxoND5EaXNwbGF5IGF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0 IGl0cyBicmFja2V0cywgdG8gd3JhcCB0aGUgbGlzdCB3aXRoLiBEZWZhdWx0OiB1bnNldDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiB0aGUgPHNwYW4g Y2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgd3Jh cHRhZy4gRGVmYXVsdDogPGNvZGU+c21kX2xhdGVseTwvY29kZT48L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXRubSI+YnJlYWs8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0 IGl0cyBicmFja2V0cywgdG8gd3JhcCBlYWNoIGl0ZW0gd2l0aC4gRGVmYXVsdDogPGNvZGU+ YnI8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsPC9zcGFuPiA6 IHRoZSBsYWJlbCB0ZXh0IHRvIGFkZCB0byB0aGUgdG9wIG9mIHRoZSBsaXN0LiBEZWZhdWx0 OiB1bnNldDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5sYWJlbHRhZzwvc3Bhbj4g OiB0aGUgKFgpSFRNTCB0YWcsIHdpdGhvdXQgaXRzIGJyYWNrZXRzLCB0byB3cmFwIHRoZSBs YWJlbCB3aXRoLiBEZWZhdWx0OiB1bnNldDwvbGk+Cgk8L3VsPgoKCTxoND5QbHVnaW4gY29u ZmlndXJhdGlvbiBhdHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5mb3JtPC9zcGFuPiA6IGlmIHlvdSBwcmVmZXIgdG8gdXNlIGEgZm9ybSBpbnN0ZWFk IG9mIHRoZSBjb250YWluZXIgdG8gaG9sZCB5b3VyIG1hcmt1cCBhbmQgdGFncywgc3BlY2lm eSBpdCBoZXJlLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij5kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIGl0ZW1zIGlu IGF0dHJpYnV0ZSBsaXN0cyAoPGNvZGU+c2VjdGlvbjwvY29kZT4sIDxjb2RlPmluY2x1ZGU8 L2NvZGU+LCA8Y29kZT5leGNsdWRlPC9jb2RlPiwgPGNvZGU+c3RhdHVzPC9jb2RlPikuIERl ZmF1bHQ6IGNvbW1hPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnBhcmFtX2RlbGlt PC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gcGFyYW1ldGVycyBpbnNp ZGUgYW4gYXR0cmlidXRlICg8Y29kZT5pbmNsdWRlPC9jb2RlPiwgPGNvZGU+ZXhjbHVkZTwv Y29kZT4pLiBEZWZhdWx0OiBjb2xvbjwvbGk+Cgk8L3VsPgoKCTxoMyBjbGFzcz0iYXR0cyI+ UmVwbGFjZW1lbnQgdmFyaWFibGVzPC9oMz4KCgk8cD5JbiBhZGRpdGlvbiB0byByZWd1bGFy IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGFydGljbGUgdGFncywgeW91IG1heSBl bXBsb3kgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29kZXMgaW4geW91ciBmb3JtL2NvbnRhaW5l ciB0byBkaXNwbGF5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlOjwvcD4KCgk8dWw+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9jb3VudH08L3NwYW4+IDogdGhlIG51 bWJlciBvZiB0aW1lcyB0aGUgYXJ0aWNsZSBoYXMgYmVlbiBhY2Nlc3NlZDwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVseV9mdWxsZGF0ZX08L3NwYW4+IDogdGhl IGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2VzcyBkYXRlIHN0YW1wPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPntzbWRfbGF0ZWx5X2RhdGV9PC9zcGFuPiA6IHRoZSBhcnRpY2xl JiM4MjE3O3MgbGFzdCBhY2Nlc3MgZGF0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij57c21kX2xhdGVseV9kYXRlX3llYXJ9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3Mg bGFzdCBhY2Nlc3MgeWVhcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xh dGVseV9kYXRlX21vbnRofTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxhc3QgYWNj ZXNzIG1vbnRoIChudW1iZXIpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPntzbWRf bGF0ZWx5X2RhdGVfbW9udGhuYW1lfTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztzIGxh c3QgYWNjZXNzIG1vbnRoIChmdWxsIG5hbWUpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPntzbWRfbGF0ZWx5X2RhdGVfZGF5fTwvc3Bhbj4gOiB0aGUgYXJ0aWNsZSYjODIxNztz IGxhc3QgYWNjZXNzIGRheSAobnVtYmVyKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5t Ij57c21kX2xhdGVseV9kYXRlX2RheW5hbWV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3 O3MgbGFzdCBhY2Nlc3MgZGF5IChmdWxsIG5hbWUpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPntzbWRfbGF0ZWx5X3RpbWV9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3Mg bGFzdCBhY2Nlc3MgdGltZSBzdGFtcDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57 c21kX2xhdGVseV90aW1lX2hvdXJ9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFz dCBhY2Nlc3MgaG91cjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj57c21kX2xhdGVs eV90aW1lX21pbnV0ZX08L3NwYW4+IDogdGhlIGFydGljbGUmIzgyMTc7cyBsYXN0IGFjY2Vz cyBtaW51dGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+e3NtZF9sYXRlbHlfdGlt ZV9zZWNvbmR9PC9zcGFuPiA6IHRoZSBhcnRpY2xlJiM4MjE3O3MgbGFzdCBhY2Nlc3Mgc2Vj b25kPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJjYXZlYXRzIj5DYXZlYXRzPC9oMz4KCgk8cD5T aW5jZSB0aGUgcGx1Z2luIHVzZXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IGxvZ3MgeW91IG5lZWQgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIGJlaW5nIHVzZWQgKEFkbWlu LSZndDtCYXNpYyBQcmVmcykuIEl0IGFsc28gbWVhbnMgdGhhdCBhbnkgdmlzaXRvcnMgdXNp bmcgYW4gYW5vbnltaXNpbmcgcHJveHkgd2lsbCBnZXQgc3B1cmlvdXMgKG9yIG5vKSByZXN1 bHRzLiBUaGVpciBsb3NzLjwvcD4KCgk8aDIgY2xhc3M9ImV4YW1wbGVzIj5FeGFtcGxlczwv aDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTogcmVjZW50IGFydGljbGUgbGlzdCBmb3Ig Y3VycmVudCB2aXNpdG9yPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlk PSJlZzIiPkV4YW1wbGUgMjogcmVjZW50IGFydGljbGVzIGZvciBhbGwgdmlzaXRvcnM8L2gz PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf bGF0ZWx5IGJ5PSZxdW90OyZxdW90OyBzZWN0aW9uPSZxdW90O2FyY2hpdmUsIGFib3V0JnF1 b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Pbmx5IHNob3dzIHRoZSBhcnRpY2xlcyB2 aWV3ZWQgZnJvbSB0aGUgJiM4MjE2O2FyY2hpdmUmIzgyMTc7IGFuZCAmIzgyMTY7YWJvdXQm IzgyMTc7IHNlY3Rpb25zLjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzOiBtb3N0IHBv cHVsYXIgYXJ0aWNsZXMgYWNyb3NzIHRoZSBzaXRlPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2Nr Ij48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVv dDsgc29ydD0mcXVvdDtwb3B1bGFyaXR5JnF1b3Q7ICAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJ PHA+V2l0aG91dCB1c2luZyB0aGUgPGNvZGU+Ynk8L2NvZGU+IGF0dHJpYnV0ZSwgdGhpcyB3 b3VsZCBnaXZlIHRoZSBtb3N0IHBvcHVsYXIgYXJ0aWNsZXMgZm9yIHRoZSBjdXJyZW50IHZp c2l0b3IgJiM4MjEyOyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCE8L3A+CgoJPGgzIGlk PSJlZzQiPkV4YW1wbGUgNDogdGFnIGFzIGEgY29udGFpbmVyPC9oMz4KCjxwcmUgY2xhc3M9 ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVv dDsmcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1 b3Q7IGxpbWl0PSZxdW90OzYmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6cGVybWxpbmsmZ3Q7Jmx0 O3R4cDp0aXRsZSAvJmd0OyZsdDsvdHhwOnBlcm1saW5rJmd0OyBbe3NtZF9sYXRlbHlfY291 bnR9XSZsdDticiAvJmd0OwogICAmbHQ7dHhwOnBvc3RlZCAvJmd0OyBieSAmbHQ7dHhwOmF1 dGhvciAvJmd0OwombHQ7L3R4cDpzbWRfbGF0ZWx5Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ U2hvd3MgdGhlIDYgbW9zdCByZWNlbnQgYXJ0aWNsZXMgYWNjZXNzZWQgYnkgYW55IHNpdGUg dmlzaXRvci4gVGhlIHVub3JkZXJlZCBsaXN0IG91dHB1dCBjb250YWlucyBhIHBlcm1saW5r ZWQgdGl0bGUsIHRoZSBkYXRlIHRoZSBhcnRpY2xlIHdhcyBwb3N0ZWQgYW5kIHRoZSBhcnRp Y2xlJiM4MjE3O3MgYXV0aG9yLjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1OiBmaWx0 ZXJpbmcgYnkgaG9zdDwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkgYnk9JnF1b3Q7JnF1b3Q7CiAgICAgd3JhcHRhZz0m cXVvdDt1bCZxdW90OyBicmVhaz0mcXVvdDtsaSZxdW90OyBsaW1pdD0mcXVvdDs2JnF1b3Q7 CiAgICAgZXhjbHVkZT0mcXVvdDtob3N0OmlkMzQ1Ni1idC5jdXN0cmVmLmNvbSwgcmVmZXI6 JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0OyZsdDt0eHA6dGl0bGUgLyZndDsm bHQ7L3R4cDpwZXJtbGluayZndDsgW3tzbWRfbGF0ZWx5X2NvdW50fV0mbHQ7YnIgLyZndDsK Jmx0Oy90eHA6c21kX2xhdGVseSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNob3dzIG9ubHkg cmVjb3JkcyB0aGF0IGhhdmUgc29tZSByZWZlcmVyIGluZm9ybWF0aW9uIChpLmUuIHdlIGFy ZSBleGNsdWRpbmcgZW50cmllcyB3aGVyZSByZWZlciA9IGVtcHR5KSBhbmQgdGhvc2UgdGhh dCBoYXZlIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1Q8L3NwYW4+IGJlZW4gYWNjZXNzZWQgdmlh IHRoZSB1bmlxdWUgaG9zdG5hbWUgZ2l2ZW4gdG8geW91IGJ5IHlvdXIgPHNwYW4gY2xhc3M9 ImNhcHMiPklTUDwvc3Bhbj4gJiM4MjEyOyBhc3N1bWluZyA8Y29kZT5pZDM0NTYtYnQuY3Vz dHJlZi5jb208L2NvZGU+IHNob3dzIHVwIGluIHRoZSAmIzgyMTY7aG9zdCYjODIxNzsgY29s dW1uIHdoZW5ldmVyIHlvdSBhY2Nlc3MgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBhcnRpY2xlLjwvcD4KCgk8cD5JZiB5b3UgYWRqdXN0ZWQgdGhlIGV4Y2x1ZGUgYXR0cmli dXRlIHRvIHJlYWQgPGNvZGU+ZXhjbHVkZT0mcXVvdDtob3N0Omxpa2U6YnQuY3VzdHJlZiZx dW90OzwvY29kZT4gdGhlbiBhbnkgbG9nIGVudHJpZXMgd2l0aCA8Y29kZT5idC5jdXN0cmVm PC9jb2RlPiBpbiB0aGVtIHdvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gY29uc2lkZXJhdGlvbi48 L3A+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjogZmlsdGVyaW5nIGJ5IHRpbWUgcmFuZ2U8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfbGF0ZWx5IGJ5PSZxdW90OyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsg YnJlYWs9JnF1b3Q7bGkmcXVvdDsKICAgICBmcm9tPSZxdW90Oz95ZWFyLT9tb250aC0wMSZx dW90OyZndDsKICAgJmx0O3R4cDpwZXJtbGluayZndDsmbHQ7dHhwOnRpdGxlIC8mZ3Q7Jmx0 Oy90eHA6cGVybWxpbmsmZ3Q7IFt7c21kX2xhdGVseV9jb3VudH1dJmx0O2JyIC8mZ3Q7CiZs dDsvdHhwOnNtZF9sYXRlbHkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyBvbmx5IHRo ZSBoaXRzIGdlbmVyYXRlZCBmcm9tIHRoZSBmaXJzdCBkYXkgb2YgdGhlIGN1cnJlbnQgbW9u dGggdW50aWwgbm93LiBUaGUgcmVjZW50IGxpc3Qgd2lsbCB0aHVzICYjODIxNjtyZXNldCYj ODIxNzsgb24gdGhlIDFzdCBvZiBldmVyeSBtb250aC48L3A+CgoJPHA+SWYgeW91IHJlbW92 ZWQgdGhlIDxjb2RlPmZyb208L2NvZGU+IGF0dHJpYnV0ZSBhbmQgdXNlZCA8Y29kZT53aXRo aW49JnF1b3Q7MzAgZGF5cyZxdW90OzwvY29kZT4geW91IHdvdWxkIGluc3RlYWQgc2VlIGEg JiM4MjE2O3JvbGxpbmcmIzgyMTc7IHRvdGFsIG9mIHRoZSBoaXRzIGluIHRoZSBwcmV2aW91 cyAzMCBkYXlzICh5b3UgY291bGQgYWxzbyB1c2UgPGNvZGU+d2l0aGluPSZxdW90OzEgbW9u dGgmcXVvdDs8L2NvZGU+IHRvIGdldCByb3VnaGx5IHRoZSBzYW1lIHJlc3VsdCkuPC9wPgoK CTxoMyBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gzPgoKCTxwPjIzIEp1bCAwOSB8IDAu MSB8IEluaXRpYWwgcmVsZWFzZTxiciAvPgoyNCBKdWwgMDkgfCAwLjExIHwgTWFkZSBiYWNr d2FyZHMgY29tcGF0aWJsZSB3aXRoIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQu MC44PGJyIC8+CjEwIEF1ZyAwOSB8IDAuMTIgfCBOZXZlciBhc3N1bWUgd2hhdCByZW1haW5z IGluIHRoZSBmaWx0ZXJlZCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBpcyBhY3R1 YWxseSBhbiBhcnRpY2xlPGJyIC8+CjExIFNlcCAwOSB8IDAuMTMgfCBBZGRlZCByZXBsYWNl bWVudCB2YXJzPGJyIC8+CjE5IEZlYiAxMCB8IDAuMiB8IEFkZGVkIDxjb2RlPnN0YXR1czwv Y29kZT4sIDxjb2RlPnRpbWU8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgPGNvZGU+ ZXhjbHVkZTwvY29kZT4sIDxjb2RlPmRlbGltPC9jb2RlPiwgYW5kIDxjb2RlPnBhcmFtX2Rl bGltPC9jb2RlPiA7IGFydGljbGUgbGlzdCBub3cgZmlsdGVyZWQgYnkgPGNvZGU+dGltZT0m cXVvdDtwYXN0JnF1b3Q7PC9jb2RlPiBhbmQgPGNvZGU+c3RhdHVzPSZxdW90OzQmcXVvdDs8 L2NvZGU+IGJ5IGRlZmF1bHQ8YnIgLz4KMTAgTWF5IDEwIHwgMC4yMSB8IEFkZGVkIDxjb2Rl PmZyb208L2NvZGU+LCA8Y29kZT50bzwvY29kZT4gYW5kIDxjb2RlPndpdGhpbjwvY29kZT4g KHRoYW5rcyB0aGVfZ2hvc3QpIDsgYWRkZWQgPGNvZGU+bGlrZTwvY29kZT4gbWF0Y2hpbmcg OyByZW1vdmVkIHNvbWUgcG93ZXItaHVuZ3J5IDxzcGFuIGNsYXNzPSJjYXBzIj5SRUdFWFA8 L3NwYW4+IG9wZXJhdG9ycyBpbiBmYXZvdXIgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPkxJS0U8 L3NwYW4+IHRvIGltcHJvdmUgcGVyZm9ybWFuY2U8YnIgLz4KMjggTWF5IDEwIHwgMC4yMiB8 IEZpeGVkIGRlZmF1bHQgPGNvZGU+Y2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBhbmQgcmVtb3Zl ZCB0cmFpbGluZyBzbGFzaCBpbiBsb2cgcGFnZXMgKHRoYW5rcyBtYW5pcXVpKTwvcD4KCjwv ZGl2Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRl eHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2Rl IHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNv dXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVs cCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAj OTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46 MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEgeyBjb2xvcjog IzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQt YWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29s aWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdl b3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMyNzU2ODU7IGZv bnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsg bWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29y YXRpb246dW5kZXJsaW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFs LCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0 ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2Vp Z2h0OmJvbGQ7IGNvbG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDoj ZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6 OTAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxw IHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVt IDA7fQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVs cCAucmVxdWlyZWQge2NvbG9yOnJlZDt9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1cHggMjBw eCA1cHggMzBweDsgfQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9z dHlsZT4KPCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6MzoibWQ1IjtzOjMy OiIwZDAzYzA5OGYzZjE3NDQ3MzgyODliZGI5YjU4NGY2NCI7fQ==