# Name: smd_countdown v0.1 # Type: Client side plugin # Time until article posted/expiry or any other date is reached # Author: Stef Dawson # URL: http://www.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: # ..................................................................... YToxNDp7czo0OiJuYW1lIjtzOjEzOiJzbWRfY291bnRkb3duIjtzOjc6InZlcnNpb24iO3M6 MzoiMC4xIjtzOjg6InJldmlzaW9uIjtzOjA6IiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI2OiJodHRwOi8vd3d3LnN0ZWZkYXdzb24u Y29tLyI7czoxMToiZGVzY3JpcHRpb24iO3M6NjE6IlRpbWUgdW50aWwgYXJ0aWNsZSBwb3N0 ZWQvZXhwaXJ5IG9yIGFueSBvdGhlciBkYXRlIGlzIHJlYWNoZWQiO3M6NToib3JkZXIiO3M6 MToiNSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToiZmxhZ3MiO3M6MToiMCI7czoxMDoibG9h ZF9vcmRlciI7czoxOiI1IjtzOjQ6ImhlbHAiO3M6MTM3NTg6IjxkaXYgaWQ9InNtZF9oZWxw Ij4KCgk8aDE+c21kX2NvdW50ZG93bjwvaDE+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+ CgkJPGxpPkNvdW50ZG93biB0byBlaXRoZXI6Cgk8dWw+CgkJPGxpPmFydGljbGUgcG9zdGVk LCBleHBpcmVkLCBtb2RpZmllZCB0aW1lPC9saT4KCQk8bGk+YW55IHRpbWUgZ2l2ZW4gaW4g YW55IGFydGljbGUgZmllbGQ8L2xpPgoJCTxsaT5hbnkgYXJiaXRyYXJ5IHRpbWUgZ2l2ZW4g YXMgYW4gRW5nbGlzaCBkYXRlPC9saT4KCTwvdWw+PC9saT4KCQk8bGk+U3VwcG9ydHMgPGNv ZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPiBzbyB5b3UgY2FuIHRha2UgYWN0aW9uIHdo ZW4gdGhlIHRpbWUgaXMgcmVhY2hlZDwvbGk+CgkJPGxpPkRpc3BsYXkgbnVtYmVyIG9mIHll YXJzLCBtb250aHMsIHdlZWtzLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyBhcyBl aXRoZXI6Cgk8dWw+CgkJPGxpPmFuIGFic29sdXRlIG51bWJlciAoMTAgZGF5cyB0byBnbyk8 L2xpPgoJCTxsaT5hIGRhdGUtYmFzZWQgbnVtYmVyICgxIHdlZWsgMyBkYXlzIHRvIGdvKTwv bGk+Cgk8L3VsPjwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3IgLyBjcmVk aXRzPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29udGFjdCI+ U3RlZiBEYXdzb248L2E+LiBBIG1vcmUgZmxleGlibGUgdmVyc2lvbiBvZiBnbHhfY291bnRk b3duLjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwiPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0 aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9 Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy8xMTE1L3NtZF9jb3VudGRvd24iPnRl eHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5j b20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSBUZXh0 cGF0dGVybiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0 aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJu LmNvbS92aWV3dG9waWMucGhwP2lkPTMxNDk0Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3Jl IGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUg cGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAt Jmd0OyBQbHVnaW5zIHBhZ2UuPC9wPgoKCTxoMj5Vc2FnZTwvaDI+CgoJPGgzPjxjb2RlPiZs dDt0eHA6c21kX2NvdW50ZG93biZndDs8L2NvZGU+PC9oMz4KCgk8cD5QbGFjZSB0aGlzIHRh ZyBpbiBhbnkgYXJ0aWNsZSBvciBwYWdlIHRvIGNvdW50IGRvd24gdG8gYSBzcGVjaWZpYyBk YXRlL3RpbWUuIElmIHlvdSB3aXNoIHRvIHVzZSBpdCB0byBjb3VudCBkb3duIHRvIGEgZGF0 ZSBpbiB0aGUgZ2l2ZW4gYXJ0aWNsZSB5b3UgbXVzdCBlbnN1cmUgaXQmIzgyMTc7cyB1c2Vk IGluIGFuIGFydGljbGUgY29udGV4dCAodGhlIHBsdWdpbiB3aWxsIGNvbXBsYWluIGlmIHlv dSBkb24mIzgyMTc7dCkuIFVzZSB0aGUgPGNvZGU+dG88L2NvZGU+IGF0dHJpYnV0ZSB0byBj b25maWd1cmUgdGhlIGRlc3RpbmF0aW9uIGRhdGUuIEV4YW1wbGVzOjwvcD4KCgk8cD5JbiBh IFBhZ2U6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0 O3R4cDpzbWRfY291bnRkb3duIHRvPSZxdW90OzI1IERlYyAyMDA5JnF1b3Q7Jmd0OwogIEl0 JiMzOTtzIENocmlzdG1hcyBkYXkhCiZsdDsvdHhwOnNtZF9jb3VudGRvd24mZ3Q7CjwvY29k ZT48L3ByZT4KCgk8cD5JbiBhbiBhcnRpY2xlIC8gYXJ0aWNsZSBGb3JtOjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2NvdW50ZG93 biZndDsKICBQb3N0ZWQgZGF0ZSBoYXMgYXJyaXZlZC4KJmx0O3R4cDplbHNlIC8mZ3Q7CiAg RXZlbnQgaGFzbiYjMzk7dCBzdGFydGVkIHlldC4KJmx0Oy90eHA6c21kX2NvdW50ZG93biZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPk9yOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2NvdW50ZG93biB0bz0mcXVvdDtleHBpcmVz JnF1b3Q7Jmd0OwogIFRvbyBsYXRlLCB5b3UgbWlzc2VkIGl0IDotKAombHQ7dHhwOmVsc2Ug LyZndDsKICBUaGVyZSYjMzk7cyBzdGlsbCB0aW1lIHRvIGdldCB0byB0aGUgc2hvdy4uLgom bHQ7L3R4cDpzbWRfY291bnRkb3duJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+T3I6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfY291 bnRkb3duIHRvPSZxdW90Oz9teV9kYXRlJnF1b3Q7Jmd0OwogIFRoZSBkYXRlIGluIGN1c3Rv bSBmaWVsZCAjMSAoY2FsbGVkIG15X2RhdGUpIGhhcyBiZWVuIHJlYWNoZWQKJmx0Oy90eHA6 c21kX2NvdW50ZG93biZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMz48Y29kZT4mbHQ7dHhwOnNt ZF90aW1lX2luZm8mZ3Q7PC9jb2RlPjwvaDM+CgoJPHA+SWYgeW91IHdpc2ggdG8gc2hvdyB2 aXNpdG9ycyBob3cgbXVjaCB0aW1lIHRoZXkgaGF2ZSBsZWZ0IGJlZm9yZSB0aGUgZGVzdGlu YXRpb24gYXJyaXZlcywgdXNlIHRoaXMgdGFnIHRvIGRpc3BsYXkgdmFyaW91cyB0aW1lIGVs ZW1lbnRzLiBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgY29uZmlndXJlIHdoYXQgeW91IHdp c2ggdG8gc2hvdzo8L3A+CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMiPkF0 dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRpc3BsYXk8 L3NwYW4+IDogdGhlIGl0ZW0ocykgeW91IHdpc2ggdG8gZGlzcGxheS4gQ2FuIHVzZSBvbmUg b3IgbW9yZSAoY29tbWEtc2VwYXJhdGVkKSBmcm9tIHRoZSBmb2xsb3dpbmc6Cgk8dWw+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+eWVhcjwvc3Bhbj4gKG9yIDxzcGFuIGNsYXNzPSJh dHZhbCI+eWVhcl90b3RhbDwvc3Bhbj4pIDogdGhlIG51bWJlciBvZiB5ZWFycyB1bnRpbCB0 aGUgZXZlbnQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPm1vbnRoPC9zcGFuPiA6 IHRoZSBudW1iZXIgb2YgY2FsZW5kYXIgbW9udGhzIHVudGlsIHRoZSBldmVudCwgbWF4aW11 bSAxMjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4zMTIyMzRhN2VlYmNjODIx ZTYiPjE8L2E+PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5tb250aF90 b3RhbDwvc3Bhbj4gOiB0aGUgYWJzb2x1dGUgbnVtYmVyIG9mIG1vbnRocyB1bnRpbCB0aGUg ZXZlbnQ8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMzEyMjM0YTdlZWJjYzgy MWU2Ij4xPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+d2Vlazwv c3Bhbj4gOiB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIHdlZWtzIHVudGlsIHRoZSBldmVudCwg bWF4aW11bSA1MjxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4yNDY3NjRhN2Vl YmNjODIyMjUiPjI8L2E+PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj53 ZWVrX3RvdGFsPC9zcGFuPiA6IHRoZSBhYnNvbHV0ZSBudW1iZXIgb2Ygd2Vla3MgdW50aWwg dGhlIGV2ZW50PHN1cCBjbGFzcz0iZm9vdG5vdGUiPjxhIGhyZWY9IiNmbjI0Njc2NGE3ZWVi Y2M4MjIyNSI+MjwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPmRh eTwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIGRheXMgdW50aWwgdGhlIGV2ZW50 LCBtYXhpbXVtIDc8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPmRheV90b3RhbDwv c3Bhbj4gOiB0aGUgYWJzb2x1dGUgbnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGV2ZW50PC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5ob3VyPC9zcGFuPiA6IHRoZSBudW1iZXIg b2YgZGF5LWJhc2VkIGhvdXJzIHVudGlsIHRoZSBldmVudCwgbWF4aW11bSAyNDwvbGk+CgkJ PGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+aG91cl90b3RhbDwvc3Bhbj4gOiB0aGUgYWJzb2x1 dGUgbnVtYmVyIG9mIGhvdXJzIHVudGlsIHRoZSBldmVudDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHZhbCI+bWludXRlPC9zcGFuPiA6IHRoZSBudW1iZXIgb2YgaG91ci1iYXNlZCBt aW51dGVzIHVudGlsIHRoZSBldmVudCwgbWF4aW11bSA2MDwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHZhbCI+bWludXRlX3RvdGFsPC9zcGFuPiA6IHRoZSBhYnNvbHV0ZSBudW1iZXIg b2YgbWludXRlcyB1bnRpbCB0aGUgZXZlbnQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2 YWwiPnNlY29uZDwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIG1pbnV0ZS1iYXNlZCBzZWNvbmRz IHVudGlsIHRoZSBldmVudCwgbWF4aW11bSA2MDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHZhbCI+c2Vjb25kX3RvdGFsPC9zcGFuPiA6IHRoZSBhYnNvbHV0ZSBudW1iZXIgb2Ygc2Vj b25kcyB1bnRpbCB0aGUgZXZlbnQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPmRl c3RpbmF0aW9uPC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VU5JWDwvc3Bhbj4g dGltZXN0YW1wIG9mIHRoZSBkZXN0aW5hdGlvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHZhbCI+ZGlmZmVyZW5jZTwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVOSVg8 L3NwYW4+IHRpbWVzdGFtcCBkaWZmZXJlbmNlIGJldHdlZW4gbm93IGFuZCB0aGUgZGVzdGlu YXRpb24gKG1heSBiZSBuZWdhdGl2ZSBpZiB0aGUgZGVzdGluYXRpb24gaGFzIHBhc3NlZCk8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPmFic19kaWZmZXJlbmNlPC9zcGFuPiA6 IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VU5JWDwvc3Bhbj4gdGltZXN0YW1wIGRpZmZlcmVu Y2UgYmV0d2VlbiBub3cgYW5kIHRoZSBkZXN0aW5hdGlvbiBpcnJlc3BlY3RpdmUgb2Ygd2hl dGhlciB0aGUgZGF0ZSBoYXMgcGFzc2VkIG9yIG5vdDwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5zaG93X3plcm9zPC9zcGFuPiA6IGlmIHlvdSB3aXNoIHRv IGhpZGUgbGVhZGluZyBpdGVtcyB0aGF0IGhhdmUgemVybyBtb250aHMsIHdlZWtzLCBkYXlz LCBldGMsIHNldCB0aGlzIHRvIDAuIERlZmF1bHQ6IDE8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+cGFkPC9zcGFuPiA6IHBhZCB0aGUgbnVtZXJpY2FsIG91dHB1dCB3aXRoIHNv bWUgdGV4dC4gU3BlY2lmeSB1cCB0byB0d28gY29tbWEtc2VwYXJhdGVkIHZhbHVlcyBoZXJl LiBUaGUgZmlyc3QgaXMgdGhlIHRvdGFsIHdpZHRoIGluIGNoYXJhY3RlcnMgb2YgdGhlIHN0 cmluZyB5b3Ugd2lzaCB0byBkaXNwbGF5LiBUaGUgc2Vjb25kIGlzIHRoZSB0ZXh0IHdpdGgg d2hpY2ggeW91IHdpc2ggdG8gcGFkIHRoZSBudW1iZXJzLiBEZWZhdWx0OiA8Y29kZT4yLCAw PC9jb2RlPiAoaS5lLiBwYWQgdG8gYSB3aWR0aCBvZiB0d28gY2hhcmFjdGVycywgdXNpbmcg emVyb3MgaWYgbmVjZXNzYXJ5KTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5sYWJl bDwvc3Bhbj4gOiB1cCB0byB0d28gdmFsdWVzIHdpdGggd2hpY2ggeW91IGNhbiBsYWJlbCB0 aGUgZ2l2ZW4gZGlzcGxheSBpdGVtKHMpLiBJZiB5b3Ugc3BlY2lmeSB0d28gdmFsdWVzLCB0 aGUgZmlyc3QgaXMgd2hhdCB0byB1c2UgZm9yIHNpbmd1bGFyIG51bWJlcnMgKGUuZy4gMSA8 c3Ryb25nPmhvdXI8L3N0cm9uZz4pLCB0aGUgc2Vjb25kIGlzIHRoZSBwbHVyYWwgKGUuZy4g MyA8c3Ryb25nPmhvdXJzPC9zdHJvbmc+KS4gTm90ZSB0aGF0IHVzaW5nIHRoZSA8Y29kZT5z aW5ndWxhciwgcGx1cmFsPC9jb2RlPiBmb3JtIGluIHRoaXMgYXR0cmlidXRlIGRvZXMgbm90 IHVzdWFsbHkgbWFrZSBzZW5zZSB3aGVuIDxjb2RlPmRpc3BsYXk8L2NvZGU+IGlzIGEgbGlz dCBvZiBpdGVtcy4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRu bSI+bGFiZWx0YWc8L3NwYW4+IDogKFgpSFRNTCB0YWcsIHdpdGhvdXQgYnJhY2tldHMsIHRv IHdyYXAgdGhlIGxhYmVsIHdpdGguIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPmxhYmVsYWZ0ZXI8L3NwYW4+IDogc2V0IHRvIDEgaWYgeW91IHdpc2gg dGhlIGxhYmVsIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBkaXNwbGF5ZWQgaXRlbShzKS4gRGVm YXVsdDogMCAoaS5lLiBwcmVwZW5kKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5s YWJlbHNwYWNlcjwvc3Bhbj4gOiB0ZXh0IHRvIHB1dCBiZWZvcmUvYWZ0ZXIgdGhlIGxhYmVs LiBWZXJ5IHVzZWZ1bCBpZiA8Y29kZT5sYWJlbGFmdGVyPSZxdW90OzEmcXVvdDs8L2NvZGU+ IGFuZCB5b3Ugd2lzaCB0byBwdXQgYSBzcGFjZSBiZXR3ZWVuIHRoZSBudW1iZXIgYW5kIHRo ZSBsYWJlbC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ d3JhcHRhZzwvc3Bhbj4gOiAoWClIVE1MIHRhZywgd2l0aG91dCBicmFja2V0cywgdG8gd3Jh cCB0aGUgZGlzcGxheWVkIGl0ZW1zIHdpdGguIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFuPiA6IDxzcGFuIGNsYXNzPSJjYXBzIj5D U1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gYXBwbHkgdG8gdGhlIHdyYXB0YWcuIERlZmF1bHQ6 IDxjb2RlPnNtZF90aW1lX2luZm88L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmJyZWFrPC9zcGFuPiA6IChYKUhUTUwgdGFnLCAod2l0aG91dCBicmFja2V0cykgb3Ig b3RoZXIgZGVsaW1pdGVyIHRvIHdyYXAgLyBwdXQgYmV0d2VlbiBlYWNoIGRpc3BsYXkgaXRl bS4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJPC91bD4KCgk8cCBpZD0iZm4zMTIyMzRhN2VlYmNj ODIxZTYiIGNsYXNzPSJmb290bm90ZSI+PHN1cD4xPC9zdXA+IE1vbnRocyBtYXkgZ2V0IGEg bGl0dGxlIGRpc3RvcnRlZCBvdmVyIHRpbWUgYmVjYXVzZSBhIG1vbnRoIGlzIGFzc3VtZWQg dG8gYmUgMzAgZGF5czwvcD4KCgk8cCBpZD0iZm4yNDY3NjRhN2VlYmNjODIyMjUiIGNsYXNz PSJmb290bm90ZSI+PHN1cD4yPC9zdXA+IFdlZWtzIG1heSBnZXQgYSBsaXR0bGUgZGlzdG9y dGVkIG92ZXIgdGltZSBiZWNhdXNlIHNvbWUgeWVhcnMgaGF2ZSA1MyB3ZWVrczwvcD4KCgk8 aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IENvdW50ZG93biB0 byBwb3N0ZWQgaXRlbTwvaDM+CgoJPHA+VGhlIHRhZyBkZWZhdWx0cyB0byB0aGUgcG9zdGVk IGRhdGUgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZS48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj5UaGUgcGFydHkgJmx0O3R4cDpzbWRfY291bnRkb3duJmd0 OwogICBoYXMgYXJyaXZlZC4gR2V0IHlvdXIgcmF2aW5nIHRyb3VzZXJzIG9uIQombHQ7dHhw OmVsc2UgLyZndDsKICAgaXMgJmx0O3R4cDpzbWRfdGltZV9pbmZvIGRpc3BsYXk9JnF1b3Q7 ZGF5X3RvdGFsJnF1b3Q7IC8mZ3Q7CiAgICAgZGF5cyBhd2F5OiBidXkgYSBzaGlydC4KJmx0 Oy90eHA6c21kX2NvdW50ZG93biZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZSBhYm92ZSB3 aWxsIGFsd2F5cyBzaG93ICYjODIxNjtkYXlzIGF3YXkmIzgyMTc7LCBldmVuIHdoZW4gdGhl IGxhc3QgZGF5IGlzIHJlYWNoZWQuIFRvIGltcHJvdmUgdGhpcywgeW91IGNhbiBkbzo8L3A+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5pcyAmbHQ7dHhwOnNt ZF90aW1lX2luZm8gZGlzcGxheT0mcXVvdDtkYXlfdG90YWwmcXVvdDsKICAgICBsYWJlbD0m cXVvdDtkYXksIGRheXMmcXVvdDsgbGFiZWxhZnRlcj0mcXVvdDsxJnF1b3Q7CiAgICAgbGFi ZWxzcGFjZXI9JnF1b3Q7ICZxdW90OyAvJmd0OwogICBhd2F5OiBidXkgYSBzaGlydC4KPC9j b2RlPjwvcHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IERpc3BsYXlpbmcgbXVsdGlw bGUgaXRlbXM8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpzbWRfY291bnRkb3duIHRvPSZxdW90O2V4cGlyZXMmcXVvdDsmZ3Q7CiZsdDt0 eHA6ZWxzZSAvJmd0OwogICBUaW1lIHJlbWFpbmluZzoKICAgJmx0O3R4cDpzbWRfdGltZV9p bmZvIGRpc3BsYXk9JnF1b3Q7aG91ciwgbWludXRlLCBzZWNvbmQmcXVvdDsKICAgICBicmVh az0mcXVvdDs6JnF1b3Q7IGxhYmVsPSZxdW90O3MmcXVvdDsgbGFiZWxhZnRlcj0mcXVvdDsx JnF1b3Q7IC8mZ3Q7CiZsdDsvdHhwOnNtZF9jb3VudGRvd24mZ3Q7CjwvY29kZT48L3ByZT4K Cgk8cD5BZGQgPGNvZGU+c2hvd196ZXJvcz0mcXVvdDswJnF1b3Q7PC9jb2RlPiBpZiB5b3Ug d2lzaCB0byByZW1vdmUgYW55IGxlYWRpbmcgemVybyBpdGVtcyBhcyB0aGUgZGF0ZSBkcmF3 cyBuZWFyLiBOb3RlIHRoYXQgaXQgb25seSByZW1vdmVzIHRoZXIgbW9zdCBzaWduaWZpY2Fu dCAmIzgyMTY7emVybyYjODIxNzsgaXRlbXMuIEZvciBleGFtcGxlLCBpZiB5b3UgYXJlIGp1 c3Qgb3ZlciAxIHdlZWsgYXdheSBmcm9tIGFuIGV2ZW50OjwvcD4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3RpbWVfaW5mbwogICAgIGRp c3BsYXk9JnF1b3Q7d2VlaywgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCZxdW90OwogICAg IGJyZWFrPSZxdW90OzomcXVvdDsgc2hvd196ZXJvcz0mcXVvdDswJnF1b3Q7IC8mZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5NaWdodCBkaXNwbGF5OiA8Y29kZT4wMTowMDowNTowMDoxOTwv Y29kZT4gKDEgd2VlaywgMCBkYXlzLCA1IGhvdXJzLCAwIG1pbnV0ZXMsIDE5IHNlY29uZHMp LiBCdXQgYXQgdGhlIHNhbWUgdGltZSBuZXh0IGRheSBpdCB3b3VsZCBzaG93OiA8Y29kZT4w NjowNTowMDoxOTwvY29kZT4gKDYgZGF5cywgNSBob3VycywgMCBtaW51dGVzLCAxOSBzZWNv bmRzKS48L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1wbGUgMzogVXNpbmcgb3RoZXIgZmllbGRz PC9oMz4KCgk8cD5BIHF1ZXN0aW9uIG1hcmsgYmVmb3JlIHRoZSBuYW1lIG9mIHRoZSBmaWVs ZCB3aWxsIHVzZSB0aGUgZGF0ZSBvciB0aW1lc3RhbXAgZ2l2ZW4gaW4gdGhhdCBmaWVsZC48 L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOmFy dGljbGVfY3VzdG9tIHRpbWU9JnF1b3Q7YW55JnF1b3Q7IHNlY3Rpb249JnF1b3Q7ZXZlbnRz JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBlcm1saW5rJmd0OyZsdDt0eHA6dGl0bGUgLyZndDsm bHQ7L3R4cDpwZXJtbGluayZndDsKICAgJmx0O3R4cDpzbWRfY291bnRkb3duIHRvPSZxdW90 Oz9ldmVudF9kYXRlJnF1b3Q7Jmd0OwogICAgICAmbHQ7dHhwOmV4Y2VycHQgLyZndDsKICAg Jmx0O3R4cDplbHNlIC8mZ3Q7CiAgICAgIEV2ZW50IGtpY2tzIG9mZiBpbjoKICAgICAgJmx0 O3R4cDpzbWRfdGltZV9pbmZvIGRpc3BsYXk9JnF1b3Q7ZGF5JnF1b3Q7IHBhZD0mcXVvdDsm cXVvdDsgc2hvd196ZXJvcz0mcXVvdDswJnF1b3Q7CiAgICAgICAgbGFiZWw9JnF1b3Q7ZGF5 LCBkYXlzJnF1b3Q7IGxhYmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OyBsYWJlbHNwYWNlcj0mcXVv dDsgJnF1b3Q7IC8mZ3Q7CiAgICAgICZsdDt0eHA6c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZx dW90O2hvdXIsIG1pbnV0ZSwgc2Vjb25kJnF1b3Q7CiAgICAgICAgYnJlYWs9JnF1b3Q7OiZx dW90OyBsYWJlbD0mcXVvdDtzJnF1b3Q7IGxhYmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OyAvJmd0 OwogICAmbHQ7L3R4cDpzbWRfY291bnRkb3duJmd0OwombHQ7L3R4cDphcnRpY2xlX2N1c3Rv bSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlRoZSA8Y29kZT5ldmVudF9kYXRlPC9jb2RlPiBj dXN0b20gZmllbGQgaW4gdGhpcyBjYXNlIG11c3QgY29udGFpbiBlaXRoZXI6PC9wPgoKCTx1 bD4KCQk8bGk+YW4gRW5nbGlzaCBkYXRlIHN1Y2ggYXMgPGNvZGU+MjUgQXVnIDIwMDkgMTI6 MDA6MDA8L2NvZGU+PC9saT4KCQk8bGk+YSA8c3BhbiBjbGFzcz0iY2FwcyI+VU5JWDwvc3Bh bj4gdGltZXN0YW1wIHZhbHVlPC9saT4KCTwvdWw+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUg NDogQ2hhaW5pbmcgdGltZXJzPC9oMz4KCgk8cD5TdGFydGluZyB0byBnbyBhIGxpdHRsZSBj cmF6eSBub3cmIzgyMzA7PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJi bG9jayI+Jmx0O3R4cDphcnRpY2xlX2N1c3RvbSB0aW1lPSZxdW90O2FueSZxdW90OyBzZWN0 aW9uPSZxdW90O3pvbyZxdW90OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9 JnF1b3Q7dWwmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6dGl0bGUgLyZndDsKICAgJmx0O3R4cDpz bWRfY291bnRkb3duJmd0OwogICAgICAmbHQ7IS0tIFdoZW4gdGhlIGFydGljbGUgaGFzIGJl ZW4gcG9zdGVkLCB0aGlzIGJpdCBydW5zIC0tJmd0OwogICAgICAmbHQ7dHhwOnNtZF9jb3Vu dGRvd24gdG89JnF1b3Q7ZXhwaXJlcyZxdW90OyZndDsKICAgICAgICAgJmx0OyEtLSBXaGVu IHRoZSBhcnRpY2xlJiMzOTtzIGV4cGlyeSBpcyByZWFjaGVkLi4uIC0tJmd0OwogICAgICAg ICBUaW1lJiMzOTtzIHVwIQogICAgICAgICBZb3UgbWlzc2VkIHRoaXMgYW5pbWFsIGJ5CiAg ICAgICAgICZsdDt0eHA6c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZxdW90O3NlY29uZF90b3Rh bCZxdW90OwogICAgICAgICAgIGxhYmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OyBsYWJlbD0mcXVv dDtzZWNvbmQsIHNlY29uZHMmcXVvdDsKICAgICAgICAgICBsYWJlbHNwYWNlcj0mcXVvdDsg JnF1b3Q7IC8mZ3Q7CiAgICAgICZsdDt0eHA6ZWxzZSAvJmd0OwogICAgICAgICAmbHQ7IS0t IFdoaWxlIHRoZSBhcnRpY2xlIGlzIGxpdmUgLS0mZ3Q7CiAgICAgICAgICZsdDt0eHA6ZXhj ZXJwdCAvJmd0OwogICAgICAgICBZb3UgaGF2ZQogICAgICAgICAmbHQ7dHhwOnNtZF90aW1l X2luZm8gZGlzcGxheT0mcXVvdDtob3VyJnF1b3Q7CiAgICAgICAgICAgbGFiZWxhZnRlcj0m cXVvdDsxJnF1b3Q7IGxhYmVsc3BhY2VyPSZxdW90OyAmcXVvdDsKICAgICAgICAgICBsYWJl bD0mcXVvdDtob3VyLCBob3VycyZxdW90OyBzaG93X3plcm9zPSZxdW90OzAmcXVvdDsgLyZn dDsKICAgICAgICAgJmx0O3R4cDpzbWRfdGltZV9pbmZvIGRpc3BsYXk9JnF1b3Q7bWludXRl JnF1b3Q7CiAgICAgICAgICAgbGFiZWxhZnRlcj0mcXVvdDsxJnF1b3Q7IGxhYmVsc3BhY2Vy PSZxdW90OyAmcXVvdDsKICAgICAgICAgICBsYWJlbD0mcXVvdDttaW51dGUsIG1pbnV0ZXMm cXVvdDsgc2hvd196ZXJvcz0mcXVvdDswJnF1b3Q7IC8mZ3Q7CiAgICAgICAgICZsdDt0eHA6 c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZxdW90O3NlY29uZCZxdW90OwogICAgICAgICAgIGxh YmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OyBsYWJlbHNwYWNlcj0mcXVvdDsgJnF1b3Q7CiAgICAg ICAgICAgbGFiZWw9JnF1b3Q7c2Vjb25kLCBzZWNvbmRzJnF1b3Q7IHNob3dfemVyb3M9JnF1 b3Q7MCZxdW90OyAvJmd0OwogICAgICAgICBsZWZ0IHRvICZsdDt0eHA6cGVybWxpbmsmZ3Q7 ZW5qb3kgdGhpcyBhbmltYWwmbHQ7L3R4cDpwZXJtbGluayZndDsuCiAgICAgICZsdDsvdHhw OnNtZF9jb3VudGRvd24mZ3Q7CiAgICZsdDt0eHA6ZWxzZSAvJmd0OwogICAgICAmbHQ7IS0t IFRoaXMgcG9ydGlvbiBpcyBkaXNwbGF5ZWQgYmVmb3JlIHRoZSBhcnRpY2xlJiMzOTtzCiAg ICAgICAgICBwb3N0ZWQgdGltZSBpcyBtZXQgLS0mZ3Q7CiAgICAgIGFycml2ZXMgaW4gJmx0 O3R4cDpzbWRfdGltZV9pbmZvCiAgICAgICAgZGlzcGxheT0mcXVvdDtzZWNvbmRfdG90YWwm cXVvdDsgLyZndDsgc2Vjb25kcy4KICAgJmx0Oy90eHA6c21kX2NvdW50ZG93biZndDsKJmx0 Oy90eHA6YXJ0aWNsZV9jdXN0b20mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5WZXJ5IHVzZWZ1 bCBmb3IgY29tcGV0aXRpb24gYXJ0aWNsZXMgb3IgZXZlbnRzLiBOb3RlIHRoYXQgdGhpcyBv bmx5IHdvcmtzIGlmIHRoZSA8ZW0+cHVibGlzaCBleHBpcmVkIGFydGljbGVzPC9lbT4gc2V0 dGluZyBpcyBzd2l0Y2hlZCBvbiBpbiBBZHZhbmNlZCBQcmVmcy48L3A+CgoJPGgzIGlkPSJl ZzUiPkV4YW1wbGUgNTogVGhlcmUgaXMgbm8gZXhhbXBsZSA1JiM4MjMwOzwvaDM+CgoJPHA+ JiM4MjMwOyBidXQgYXMgZm9vZCBmb3IgZnVydGhlciBzdHVkeSB5b3UgY291bGQgdXNlIHRo ZSBvdXRwdXQgZnJvbSBzbWRfY291bnRkb3duIHRvIHNlZWQgdGhlIHN0YXJ0IG9mIGEgamF2 YXNjcmlwdCBvciBmbGFzaC1iYXNlZCB0aW1lciB3aGljaCB1cGRhdGVkIGEgcmVhbC10aW1l IGNsb2NrIGNvdW50aW5nIGRvd24gdG8geW91ciBldmVudC48L3A+Cgo8L2Rpdj4KPCEtLSAq KiogQkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNz bWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2Vp Z2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25v c3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9j ayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dy b3VuZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAy MHB4OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6 IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50 ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5z LXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMjc1Njg1OyBmb250OiBib2xkIDEy cHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBw eCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVy bGluZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJp ZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zv cm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBj b2xvcjojMzNkOyB9CiNzbWRfaGVscCAuYXR2YWwgeyBmb250LXN0eWxlOml0YWxpYzsgY29s b3I6IzMzZDsgfQojc21kX2hlbHAgLm1hbmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjox cHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQtYWxp Z246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVs cCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW0gMDt9CiNzbWRfaGVs cCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0KI3NtZF9oZWxwIC5yZXF1aXJlZCB7 Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsgbWFyZ2luOjVweCAyMHB4IDVweCAzMHB4OyB9 CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9wOjVweDsgfQo8L3N0eWxlPgo8IS0tICoq KiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7czozOiJjc3MiO3M6MTI2MDoiPHN0eWxlIHR5 cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVs cCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5l dyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNz bWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRv dHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBt YXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEgeyBj b2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7 IHRleHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAx cHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAx N3B4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMyNzU2 ODU7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6 IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0 LWRlY29yYXRpb246dW5kZXJsaW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4 IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHgg MCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZv bnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5hdHZhbCB7IGZvbnQt c3R5bGU6aXRhbGljOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91 bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dp ZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRf aGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6 LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21k X2hlbHAgLnJlcXVpcmVkIHtjb2xvcjpyZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4 IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9 Cjwvc3R5bGU+IjtzOjQ6ImNvZGUiO3M6MjgwNzoiZnVuY3Rpb24gc21kX2NvdW50ZG93bigk YXR0cywgJHRoaW5nPU5VTEwpIHsKCWdsb2JhbCAkdGhpc2FydGljbGUsICRzbWRfdGltZXI7 CgoJZXh0cmFjdChsQXR0cyhhcnJheSgKCQkndG8nID0+ICdwb3N0ZWQnLAoJCSdkZWJ1Zycg PT4gMCwKCSksJGF0dHMpKTsKCgkkZGVzdGltZSA9ICcnOwoKCWlmICgkdG8gPT0gJ3Bvc3Rl ZCcgfHwgJHRvID09ICdleHBpcmVzJyB8fCAkdG8gPT0gJ21vZGlmaWVkJykgewoJCWFzc2Vy dF9hcnRpY2xlKCk7CgkJJGRlc3RpbWUgPSAkdGhpc2FydGljbGVbJHRvXTsKCX0gZWxzZSBp ZiAoc3RycG9zKCR0bywgIj8iKSA9PT0gMCkgewoJCWFzc2VydF9hcnRpY2xlKCk7CgkJJGZs ZG5hbWUgPSBzdWJzdHIoc3RydG9sb3dlcigkdG8pLCAxKTsKCQlpZiAoaXNzZXQoJHRoaXNh cnRpY2xlWyRmbGRuYW1lXSkpIHsKCQkJJGRlc3RpbWUgPSAoaXNfbnVtZXJpYygkdGhpc2Fy dGljbGVbJGZsZG5hbWVdKSkgPyAkdGhpc2FydGljbGVbJGZsZG5hbWVdIDogc3RydG90aW1l KCR0aGlzYXJ0aWNsZVskZmxkbmFtZV0pOwoJCX0KCX0gZWxzZSBpZiAoJHRvICE9ICcnKSB7 CgkJJGRlc3RpbWUgPSBzdHJ0b3RpbWUoJHRvKTsKCX0KCglpZiAoJGRlYnVnKSB7CgkJZWNo byAnKysgREVTVElOQVRJT04gKysnOwoJCWRtcCgkZGVzdGltZSk7CgkJZG1wKGRhdGUoJ2Qg TSBZIEg6aTpzJywkZGVzdGltZSkpOwoJfQoKCWlmICgkZGVzdGltZSkgewoJCSRub3cgPSB0 aW1lKCk7CgoJCS8vIFNwbGl0IGludG8geWVhcnMvbW9udGhzL3dlZWtzL2RheXMvaHJzL21p bnV0ZXMvc2Vjb25kcwoJCSRkaWZmID0gJGRlc3RpbWUgLSAkbm93OwoJCSRhYnNkaWZmID0g KCRkaWZmPjApID8gJGRpZmYgOiAkbm93IC0gJGRlc3RpbWU7CgkJJHNtZF90aW1lclsnZGlm ZmVyZW5jZSddID0gJGRpZmY7CgkJJHNtZF90aW1lclsnYWJzX2RpZmZlcmVuY2UnXSA9ICRh YnNkaWZmOwoJCSRzbWRfdGltZXJbJ2Rlc3RpbmF0aW9uJ10gPSAkZGVzdGltZTsKCgkJJGxv b2t1cCA9IGFycmF5KAoJCQkneWVhcicgPT4gYXJyYXkoNjAgKiA2MCAqIDI0ICogMzY1KSwK CQkJJ21vbnRoJyA9PiBhcnJheSg2MCAqIDYwICogMjQgKiAzMCwgMTIpLCAvLyBtb250aChp c2gpCgkJCSd3ZWVrJyA9PiBhcnJheSg2MCAqIDYwICogMjQgKiA3LCA1MiksCgkJCSdkYXkn ID0+IGFycmF5KDYwICogNjAgKiAyNCwgNyksCgkJCSdob3VyJyA9PiBhcnJheSg2MCAqIDYw LCAyNCksCgkJCSdtaW51dGUnID0+IGFycmF5KDYwLCA2MCksCgkJCSdzZWNvbmQnID0+IGFy cmF5KDEsIDYwKSwKCQkpOwoKCQlmb3JlYWNoICgkbG9va3VwIGFzICRpdGVtID0+ICRibG9j KSB7CgkJCSRxdHkgPSBmbG9vcigkYWJzZGlmZiAvICRibG9jWzBdKTsKCQkJJHNtZF90aW1l clskaXRlbV0gPSAoaXNzZXQoJGJsb2NbMV0pKSA/ICRxdHkgJSAkYmxvY1sxXSA6ICRxdHk7 CgkJCSRzbWRfdGltZXJbJGl0ZW0uJ190b3RhbCddID0gJHF0eTsKCQl9CgoJCWlmICgkZGVi dWcpIHsKCQkJZWNobyAnKysgVElNRVIgKysnOwoJCQlkbXAoJHNtZF90aW1lcik7CgkJfQoK CQkkcmVzdWx0ID0gKCRkaWZmPjApID8gZmFsc2UgOiB0cnVlOyAvLyBUcnVlIGlmIGRlc3Rp bmF0aW9uIHJlYWNoZWQsIGZhbHNlIG90aGVyd2lzZQoKCQlyZXR1cm4gcGFyc2UoRXZhbEVs c2UoJHRoaW5nLCAkcmVzdWx0KSk7Cgl9IGVsc2UgewoJCXJldHVybiAnJzsKCX0KfQoKZnVu Y3Rpb24gc21kX3RpbWVfaW5mbygkYXR0cykgewoJZ2xvYmFsICRzbWRfdGltZXI7CgoJZXh0 cmFjdChsQXR0cyhhcnJheSgKCQknZGlzcGxheScgPT4gJycsCgkJJ3Nob3dfemVyb3MnID0+ ICcxJywKCQkncGFkJyA9PiAnMiwwJywKCQknbGFiZWwnID0+ICcnLAoJCSdsYWJlbHRhZycg PT4gJycsCgkJJ2xhYmVsYWZ0ZXInID0+IDAsCgkJJ2xhYmVsc3BhY2VyJyA9PiAnJywKCQkn d3JhcHRhZycgPT4gJycsCgkJJ2NsYXNzJyA9PiBfX0ZVTkNUSU9OX18sCgkJJ2JyZWFrJyA9 PiAnJywKCQknZGVidWcnID0+IDAsCgkpLCRhdHRzKSk7CgoJJGRpc3BsYXkgPSBkb19saXN0 KCRkaXNwbGF5KTsKCSRsYWJlbCA9IGRvX2xpc3QoJGxhYmVsKTsKCSRwYWQgPSBkb19saXN0 KCRwYWQpOwoJJHBhZFswXSA9IChlbXB0eSgkcGFkWzBdKSkgPyAnMScgOiAkcGFkWzBdOwoJ JHBhZFsxXSA9IChjb3VudCgkcGFkKT09MSkgPyAnMCcgOiAkcGFkWzFdOwoKCSRvdXQgPSBh cnJheSgpOwoJJHVzZV9wbHVyYWwgPSBmYWxzZTsKCglmb3JlYWNoICgkZGlzcGxheSBhcyAk aXRlbSkgewoJCWlmIChpc3NldCgkc21kX3RpbWVyWyRpdGVtXSkpIHsKCQkJaWYgKCRzbWRf dGltZXJbJGl0ZW1dID4gMCB8fCAoJHNtZF90aW1lclskaXRlbV0gPT0gMCAmJiAoIWVtcHR5 KCRvdXQpIHx8ICRzaG93X3plcm9zKSkpIHsKCQkJCSRvdXRbXSA9IHN0cl9wYWQoJHNtZF90 aW1lclskaXRlbV0sICRwYWRbMF0sICRwYWRbMV0sIFNUUl9QQURfTEVGVCk7CgkJCX0KCQkJ JHVzZV9wbHVyYWwgPSAoJHNtZF90aW1lclskaXRlbV0gIT0gMSkgPyB0cnVlIDogZmFsc2U7 CgkJfQoJfQoKCSR0aGVMYWJlbCA9ICgkdXNlX3BsdXJhbCAmJiBpc3NldCgkbGFiZWxbMV0p KSA/ICRsYWJlbFsxXSA6ICRsYWJlbFswXTsKCglyZXR1cm4gKCRvdXQpCgkJCT8gKCgkbGFi ZWxhZnRlcj09MCkgPyBkb0xhYmVsKCR0aGVMYWJlbC4kbGFiZWxzcGFjZXIsICRsYWJlbHRh ZykgOiAnJykuCgkJCQlkb1dyYXAoJG91dCwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKS4K CQkJCSgoJGxhYmVsYWZ0ZXI9PTEpID8gZG9MYWJlbCgkbGFiZWxzcGFjZXIuJHRoZUxhYmVs LCAkbGFiZWx0YWcpIDogJycpCgkJCTogJyc7Cn0iO3M6MzoibWQ1IjtzOjMyOiI3YTkyOWJi MmVjYzAxNTM4Y2ViNWI0MjU2MzA3YTIwMSI7fQ==