a:3:{s:4:"name";s:12:"blockreferer";s:4:"dirs";a:4:{i:0;s:12:"blockreferer";i:1;s:17:"blockreferer/l10n";i:2;s:20:"blockreferer/l10n/fr";i:3;s:25:"blockreferer/l10n/fr-utf8";}s:5:"files";a:7:{s:30:"blockreferer/l10n/fr/main.lang";s:8004:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUulm6XJlbnQKCjtTdGF0aXN0aWNzClN0YXRpc3RpcXVlcwoKO0Jsb2NrIGFueSB1bmRlc2lyYWJsZSByZWZlcmVycyB0byBhdm9pZCBhc3NvY2lhdGVkIHNwYW0KQmxvcXVlIHRvdXQgculm6XJlbnQgaW5k6XNpcmFibGUgYWZpbiBkJ+l2aXRlciBsZSBzcGFtIGFzc29jaekKCjtDb3VsZCBub3QgY3JlYXRlIEJsb2NrIGJ5IFJlZmVyZXIgZGVkaWNhdGVkIGZvbGRlcgpJbXBvc3NpYmxlIGRlIGNy6WVyIGxlIHLpcGVydG9pcmUgZOlkaekgcG91ciBCbG9jYWdlIHBhciBS6WbpcmVudAoKO1JlZmVyZXJzIGxpc3Qgd2FzIHN1Y2Nlc3NmdWxseSBjb252ZXJ0ZWQuIFlvdSBtYXkgbm93IGRlbGV0ZSB0YWJsZQpMYSBsaXN0ZSBkZXMgculm6XJlbnRzIGEg6XTpIGNvbnZlcnRpZSBhdmVjIHN1Y2Pocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbpZXMgYXZlYyBzdWNj6HMKCjtSZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApS6WbpcmVudCBzYXV26SBhdmVjIHN1Y2PocwoKO1doaXRlbGlzdCByZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApS6WbpcmVudCBhdXRvcmlz6SBzYXV26SBhdmVjIHN1Y2PocwoKO1JlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkClLpZulyZW50cyBzdXBwcmlt6XMgYXZlYyBzdWNj6HMKCjtXaGl0ZWxpc3QgcmVmZXJlcnMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKUulm6XJlbnRzIGF1dG9yaXPpcyBzYXV26XMgYXZlYyBzdWNj6HMKCjtPcHRpb25zCk9wdGlvbnMKCjtVc2UgcmVndWxhciBleHByZXNzaW9uClV0aWxpc2VyIGRlcyBleHByZXNzaW9ucyBy6Wd1bGnocmVzCgo7Rm9yd2FyZCB2aXNpdG9yIHRvIGl0J3Mgb3duIHJlZmVyZXIgaW5zdGVhZCBvZiBibG9ja2luZyBpdApSZW52b2llIGxlIHZpc2l0ZXVyIHZlcnMgc29uIHByb3ByZSBy6WbpcmVudCBhdSBsaWV1IGRlIGxlIGJsb3F1ZXIKCjtMb2cgYmxvY2tpbmcKU2F1dmVyIGxlIGpvdXJuYWwgZGVzIGJsb2NhZ2VzCgo7VmlldyBsb2cKVm9pciBsZSBqb3VybmFsCgo7VXNlIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlClV0aWxpc2VyIHVuIG1lc3NhZ2UgZCdlcnJldXIgcGVyc29ubmFsaXPpCgo7UGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UgKEhUTUwpIDoKTWVzc2FnZSBkJ2VycmV1ciBwZXJzb25uYWxpc+kgKEhUTUwpIDoKCjtUZXh0IG9mIHRoZSAiQWNjZXNzIHRvIHRoZSBwYWdlIiBsaW5rIDoKVGV4dGUgZHUgbGllbiAiQWNj6WRlciDgIGxhIHBhZ2UiIDoKCjtBZGQgYSBuZXcgcmVmZXJlciB0byBibG9jawpBam91dGVyIHVuIG5vdXZlYXUgculm6XJlbnQg4CBibG9xdWVyCgo7QWRkIGEgbmV3IHJlZmVyZXIgdG8gYXV0aG9yaXplCkFqb3V0ZXIgdW4gbm91dmVhdSBy6WbpcmVudCDgIGF1dG9yaXNlcgoKO1JlZmVyZXIgdG8gYmxvY2sgOgpS6WbpcmVudCDgIGJsb3F1ZXIgOgoKO1JlZmVyZXIgdG8gYXV0aG9yaXplIDoKUulm6XJlbnQg4CBhdXRvcmlzZXIgOgoKO1NhdmUKU2F1dmVyCgo7QmxvY2tlZCByZWZlcmVyIGxpc3QKTGlzdGUgZGVzIHLpZulyZW50cyBibG9xdelzCgo7QXV0aG9yaXplZCByZWZlcmVyIGxpc3QgCkxpc3RlIGRlcyBy6WbpcmVudHMgYXV0b3Jpc+lzCgo7UmVmZXJlcgpS6WbpcmVudAoKO05vIHJlZmVyZXIgaXMgYmxvY2tlZCBmb3Igbm93CkF1Y3VuIHLpZulyZW50IG4nZXN0IGJsb3F16SBwb3VyIGwnaW5zdGFudAoKO05vIHJlZmVyZXIgaXMgYXV0aG9yaXplZCBmb3Igbm93CkF1Y3VuIHLpZulyZW50IG4nZXN0IGF1dG9yaXPpIHBvdXIgbCdpbnN0YW50Cgo7RGVsZXRlClN1cHByaW1lcgoKO0luc3RhbGxhdGlvbgpJbnN0YWxsYXRpb24KCjtUbyB1c2UgcGx1Z2luLCBqdXN0IGFkZCBwYXJ0IG9mIHRoZSByZWZlcmVyIHlvdSB3YW50IHRvIGJsb2NrOyBpLmUgYWRkICJzb21lYnV6endvcmQiIHRvIGJsb2NrIGFueSByZWZlcmVyIHdoaWNoIGhhdmUgInNvbWVidXp6d29yZCIgaW4uClBvdXIgdXRpbGlzZXIgbGUgcGx1Z2luLCBham91dGVyIGp1c3RlIHVuZSBwYXJ0aWUgZHUgculm6XJlbnQgcXVlIHZvdXMgdm91bGV6IGJsb3F1ZXI7IHBhciBleGVtcGxlIGFqb3V0ZXogInNvbWVidXp6d29yZCIgcG91ciBibG9xdWVyIHRvdXQgculm6XJlbnQgY29udGVuYW50ICJzb21lYnV6endvcmQiLgoKO1RoZXNlIHJlZmVyZXJzIGFyZSBoZXJlIG9ubHkgdG8gZXhjZXB0aW9ubmFseSBhdXRob3JpemUgYSBibG9ja2VkIG9uZSwgYW4gZW1wdHkgbGlzdCB3b24ndCBibG9jayBhbnlvbmUuCkNlcyBhdXRvcmlzYXRpb25zIG5lIHNvbnQgbOAgcXUn4CB0aXRyZSBkJ2V4Y2VwdGlvbiBwb3VyIGxlIGJsb2NhZ2UsIHVuZSBsaXN0ZSB2aWRlIG5lIGJsb3F1YW50IHBhcyB0b3V0IGxlIG1vbmRlLgoKO0lmIGEgcmVmZXJlciBpcyBibG9ja2VkIChhbmQgb25seSBpbiB0aGlzIGNhc2UpLCBpdCB3aWxsIGJlIGNoZWNrZWQgaWYgaXQgZXhpc3RzIGludG8gYXV0aG9yaXplZCByZWZlcmVycyBsaXN0LgpMZSBmb25jdGlvbm5lbWVudCBlc3QgbGUgc3VpdmFudCA6IHNpIHVuIHLpZulyZW50IGVzdCBibG9xdekgKGV0IHVuaXF1ZW1lbnQgZGFucyBjZSBjYXMpLCB1biB0ZXN0IHNlcmEgZmFpdCBzdXIgbGEgbGlzdGUgZGVzIHLpZulyZW50cyDgIGF1dG9yaXNlciBkZSBtYW5p6HJlIOAgc2F2b2lyIHNpIG9uIHBldXQgZXhjZXB0aW9ubmVsbGVtZW50IGRvbm5lciBsJ2FjY+hzLgoKO2kuZS4gOiBpZiBzb21lb25lIGZpbmRzIHlvdXIgYmxvZyB3aGlsZSBsb29raW5nIGZvciAic29tZWJ1enp3b3JkIiB3aXRoIEdvb2dsZSwgYW5kIHlvdSBkb24ndCB3YW50IHRvIGJsb2NrIHVzZXJzIGZyb20gR29vZ2xlLCB5b3UgbWF5IGFkZCAiaHR0cDovL3d3dy5nb29nbGUuIiB0byB5b3VyIGF1dGhvcml6ZWQgcmVmZXJlcnMgbGlzdC4KUGFyIGV4ZW1wbGUsIHNpIHVuZSBwZXJzb25uZSB0cm91dmUgdm90cmUgc2l0ZSBzdXIgZ29vZ2xlIGxvcnMgZCd1bmUgcmVjaGVyY2hlIGRlICJzb21lYnV6endvcmQiLCBtYWlzIHF1ZSB2b3VzIG5lIHNvdWhhaXRpZXogcGFzIGJsb3F1ZXIgbGVzIHZpc2l0ZXVycyBkZSBnb29nbGUsIHZvdXMgcG91dmV6IGFqb3V0ZXIgImh0dHA6Ly93d3cuZ29vZ2xlLiIgZGFucyBsYSBsaXN0ZSBkZXMgculm6XJlbnRzIGF1dG9yaXPpcy4KCjtPdGhlciByZWZlcmVycyB3aXRoICJzb21lYnV6endvcmQiIHdpdGhpbiB0aGVpciByZWZlcmVyIHdpbGwgc3RheSBibG9ja2VkLgpMZXMgYXV0cmVzIHZpc2l0ZXVycyBheWFudCAic29tZWJ1enp3b3JkIiBkYW5zIGxldXIgculm6XJlbnQgcmVzdGVyb250IGJsb3F16XMuCgo7aXMgbm90IGNoZWNrZWQKbidlc3QgcGFzIGNvY2jpCgo7WW91IGhhdmUgdG8gdXNlIHBhcnQgb2YgcmVmZXJlcnMsIG9yIHRoZWlyIGZ1bGwgYWRkcmVzcy4KVm91cyBkZXZleiB1dGlsaXNlciB1bmUgcGFydGllIGRlcyBy6WbpcmVudCwgb3UgYmllbiBsZXVyIGFkcmVzc2UgY29tcGzodGUuCgo7aXMgY2hlY2tlZAplc3QgY29jaOkKCjtZb3UgaGF2ZSB0byB1c2UgcmVndWxhciBleHByZXNzaW9uIChjYXNlIGluc2Vuc2l0aXZlKS4KVm91cyBkZXZleiB1dGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgculndWxp6HJlcyAoaW5zZW5zaWJsZXMg4CBsYSBjYXNzZSkuCgo7SWYgeW91IG1vZGlmeSBkaWZmZXJlbnQgZm9ybXMgYXQgdGhlIHNhbWUgdGltZSwgb25seSB0aGUgb25lIHlvdSBjaG9zZSB0byBzYXZlIGNoYW5nZXMgd2lsbCBiZSBzYXZlZC4KU2kgdm91cyBtb2RpZmlleiBwbHVzaWV1cnMgZm9ybXVsYWlyZXMgZW4gbeptZSB0ZW1wcywgc2V1bCBjZWx1aSBwb3VyIGxlcXVlbCB2b3VzIGF1cmV6IGNob2lzaSBkJ2VucmVnaXN0cmVyIGxlcyBjaGFuZ2VtZW50cyBzZXJhIHNhdXbpLgoKO1RoZSBhdXRob3JpemF0aW9uIGhhcyBwcmlvcml0eSBvbiBibG9ja2luZywgYW5kIG1heSB1c2UgcmVndWxhciBleHByZXNzaW9ucyB0b28uCkwnYXV0b3Jpc2F0aW9uIGVzdCBwcmlvcml0YWlyZSBzdXIgbGUgYmxvY2FnZSwgZXQgcGV1dCB1dGlsaXNlciBkZXMgZXhwcmVzc2lvbnMKculndWxp6HJlcy4KCjtJZiB5b3UgdXBncmFkZSBmcm9tIHZlcnNpb24gMS4wIG9yIDEuMSwgeW91IHdpbGwgaGF2ZSB0byBjb252ZXJ0IHRoZSByZWZlcmVycyBsaXN0IHRvIHRoZSBuZXcgZm9ybWF0LgpTaSB2b3VzIG1ldHRleiDgIGpvdXIgZGVwdWlzIGxhIHZlcnNpb24gMS4wIG91IDEuMSwgdm91cyBkZXZleiBjb252ZXJ0aXIgdm90cmUgbGlzdGUgZGVzIHLpZulyZW50cyBhdSBub3V2ZWF1IGZvcm1hdC4KCjtDb252ZXJ0CkNvbnZlcnRpcgoKO0NvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlCkltcG9zc2libGUgZGUgY3LpZXIgbGUgZmljaGllciB0ZW1wb3JhaXJlCgo7Q291bGQgbm90IGNvcHkgdGVtcCBmaWxlCkltcG9zc2libGUgZGUgY29waWVyIGxlIGZpY2hpZXIgdGVtcG9yYWlyZQoKO3RvIGZpbmFsIGZpbGUKdmVycyBsZSBmaWNoaWVyIGZpbmFsCgo7SGVscApBaWRlCgo7QWxsIGJsb2NraW5ncyA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGJlZ2lubmluZyBvZiB0aGUgbG9nLgpUb3VzIGxlcyBibG9jYWdlcyA6IG5vbWJyZSBkZSBy6WbpcmVudHMgYmxvcXXpcyBkZXB1aXMgbGUgZOlidXQgZGUgbGEgam91cm5hbGlzYXRpb24uCgo7WWVhcmx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAzNjUgZGF5cy4KQW5udWVsbGVzIDogbm9tYnJlIGRlIHLpZulyZW50cyBibG9xdelzIGRhbnMgbGVzIGRlcm5pZXJzIDM2NSBqb3Vycy4KCjtNb250aGx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAzMCBkYXlzLgpNZW5zdWVsbGVzIDogbm9tYnJlIGRlIHLpZulyZW50cyBibG9xdelzIGRhbnMgbGVzIGRlcm5pZXJzIDMwIGpvdXJzLgoKO1dlZWtseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgNyBkYXlzLgpIZWJkb21hZGFpcmVzIDogbm9tYnJlIGRlIHLpZulyZW50cyBibG9xdelzIGRhbnMgbGVzIGRlcm5pZXJzIDcgam91cnMuCgo7RGFpbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDI0IGhvdXJzLgpKb3VybmFsaehyZXMgOiBub21icmUgZGUgculm6XJlbnRzIGJsb3F16XMgZGFucyBsZXMgZGVybmnocmVzIDI0IGhldXJlcy4KCjtUaGVyZSBhcmUgbm8gYXZhaWxhYmxlIHN0YXRpc3RpY3MKSWwgbid5IGEgcGFzIGRlIHN0YXRpc3RpcXVlcyBkaXNwb25pYmxlcwoKO1RpbWUgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgdGVtcG9yZWxsZXMKCjtBbGwgYmxvY2tpbmdzIDoKVG91cyBsZXMgYmxvY2FnZXMgOgoKO1llYXJseSA6CkFubnVlbGxlcyA6Cgo7TW9udGhseSA6Ck1lbnN1ZWxsZXMgOgoKO1dlZWtseSA6CkhlYmRvbWFkYWlyZXMgOgoKO0RhaWx5IDoKSm91cm5hbGnocmVzIDoKCjtSZWZlcmVycyBzdGF0aXN0aWNzClN0YXRpc3RpcXVlcyBwYXIgculm6XJlbnQKCjtSZWZlcmVyIGhvc3RzIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHBhciBo9HRlIGR1IHLpZulyZW50Cgo7U3luY2hyb25pemUgd2l0aCBTcGFtcGxlbW91c3NlClN5bmNocm9uaXNlciBhdmVjIFNwYW1wbGVtb3Vzc2UKCjtZb3UgY2FuIHN5bmNocm9uaXplIFNwYW1wbGVtb3Vzc2Ugc3BhbSB3b3JkcyBhbmQgQmxvY2sgYnkgUmVmZXJlciByZWZlcmVycyB3aXRoIHRoZSBmb2xsb3dpbmcgYnV0dG9uLgpWb3VzIHBvdXZleiBzeW5jaHJvbmlzZXIgbGVzIG1vdHMgc3BhbXMgZGUgU3BhbXBsZW1vdXNzZSBldCBsZXMgculm6XJlbnRzIGRlIEJsb2NhZ2UgcGFyIFLpZulyZW50IOAgbCdhaWRlIGR1IGJvdXR0b24gc3VpdmFudC4KCjtTeW5jaHJvbml6ZQpTeW5jaHJvbmlzZXIKCjtTcGFtIHdvcmRzIGFuZCByZWZlcmVycyB3aGVyZSBzdWNjZXNzZnVsbHkgc3luY2hyb25pemVkLgpMZXMgbW90cyBzcGFtIGV0IGxlcyBy6WbpcmVudHMgb250IOl06SBzeW5jaHJvbmlz6XMgYXZlYyBzdWNj6HMuCg==";s:35:"blockreferer/l10n/fr-utf8/main.lang";s:8192:"O0Jsb2NrIGJ5IFJlZmVyZXIKQmxvY2FnZSBwYXIgUsOpZsOpcmVudAoKO1N0YXRpc3RpY3MKU3RhdGlzdGlxdWVzCgo7QmxvY2sgYW55IHVuZGVzaXJhYmxlIHJlZmVyZXJzIHRvIGF2b2lkIGFzc29jaWF0ZWQgc3BhbQpCbG9xdWUgdG91dCByw6lmw6lyZW50IGluZMOpc2lyYWJsZSBhZmluIGQnw6l2aXRlciBsZSBzcGFtIGFzc29jacOpCgo7Q291bGQgbm90IGNyZWF0ZSBCbG9jayBieSBSZWZlcmVyIGRlZGljYXRlZCBmb2xkZXIKSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgcsOpcGVydG9pcmUgZMOpZGnDqSBwb3VyIEJsb2NhZ2UgcGFyIFLDqWbDqXJlbnQKCjtSZWZlcmVycyBsaXN0IHdhcyBzdWNjZXNzZnVsbHkgY29udmVydGVkLiBZb3UgbWF5IG5vdyBkZWxldGUgdGFibGUKTGEgbGlzdGUgZGVzIHLDqWbDqXJlbnRzIGEgw6l0w6kgY29udmVydGllIGF2ZWMgc3VjY8Oocy4gVm91cyBwb3V2ZXogbWFpbnRlbmFudCBzdXBwcmltZXIgbGEgdGFibGUKCjtPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZApPcHRpb25zIHNhdXbDqWVzIGF2ZWMgc3VjY8OocwoKO1JlZmVyZXIgc3VjY2Vzc2Z1bGx5IHNhdmVkClLDqWbDqXJlbnQgc2F1dsOpIGF2ZWMgc3VjY8OocwoKO1doaXRlbGlzdCByZWZlcmVyIHN1Y2Nlc3NmdWxseSBzYXZlZApSw6lmw6lyZW50IGF1dG9yaXPDqSBzYXV2w6kgYXZlYyBzdWNjw6hzCgo7UmVmZXJlcnMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKUsOpZsOpcmVudHMgc3VwcHJpbcOpcyBhdmVjIHN1Y2PDqHMKCjtXaGl0ZWxpc3QgcmVmZXJlcnMgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKUsOpZsOpcmVudHMgYXV0b3Jpc8OpcyBzYXV2w6lzIGF2ZWMgc3VjY8OocwoKO09wdGlvbnMKT3B0aW9ucwoKO1VzZSByZWd1bGFyIGV4cHJlc3Npb24KVXRpbGlzZXIgZGVzIGV4cHJlc3Npb25zIHLDqWd1bGnDqHJlcwoKO0ZvcndhcmQgdmlzaXRvciB0byBpdCdzIG93biByZWZlcmVyIGluc3RlYWQgb2YgYmxvY2tpbmcgaXQKUmVudm9pZSBsZSB2aXNpdGV1ciB2ZXJzIHNvbiBwcm9wcmUgcsOpZsOpcmVudCBhdSBsaWV1IGRlIGxlIGJsb3F1ZXIKCjtMb2cgYmxvY2tpbmcKU2F1dmVyIGxlIGpvdXJuYWwgZGVzIGJsb2NhZ2VzCgo7VmlldyBsb2cKVm9pciBsZSBqb3VybmFsCgo7VXNlIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlClV0aWxpc2VyIHVuIG1lc3NhZ2UgZCdlcnJldXIgcGVyc29ubmFsaXPDqQoKO1BlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlIChIVE1MKSA6Ck1lc3NhZ2UgZCdlcnJldXIgcGVyc29ubmFsaXPDqSAoSFRNTCkgOgoKO1RleHQgb2YgdGhlICJBY2Nlc3MgdG8gdGhlIHBhZ2UiIGxpbmsgOgpUZXh0ZSBkdSBsaWVuICJBY2PDqWRlciDDoCBsYSBwYWdlIiA6Cgo7QWRkIGEgbmV3IHJlZmVyZXIgdG8gYmxvY2sKQWpvdXRlciB1biBub3V2ZWF1IHLDqWbDqXJlbnQgw6AgYmxvcXVlcgoKO0FkZCBhIG5ldyByZWZlcmVyIHRvIGF1dGhvcml6ZQpBam91dGVyIHVuIG5vdXZlYXUgcsOpZsOpcmVudCDDoCBhdXRvcmlzZXIKCjtSZWZlcmVyIHRvIGJsb2NrIDoKUsOpZsOpcmVudCDDoCBibG9xdWVyIDoKCjtSZWZlcmVyIHRvIGF1dGhvcml6ZSA6ClLDqWbDqXJlbnQgw6AgYXV0b3Jpc2VyIDoKCjtTYXZlClNhdXZlcgoKO0Jsb2NrZWQgcmVmZXJlciBsaXN0Ckxpc3RlIGRlcyByw6lmw6lyZW50cyBibG9xdcOpcwoKO0F1dGhvcml6ZWQgcmVmZXJlciBsaXN0Ckxpc3RlIGRlcyByw6lmw6lyZW50cyBhdXRvcmlzw6lzCgo7UmVmZXJlcgpSw6lmw6lyZW50Cgo7Tm8gcmVmZXJlciBpcyBibG9ja2VkIGZvciBub3cKQXVjdW4gcsOpZsOpcmVudCBuJ2VzdCBibG9xdcOpIHBvdXIgbCdpbnN0YW50Cgo7Tm8gcmVmZXJlciBpcyBhdXRob3JpemVkIGZvciBub3cKQXVjdW4gcsOpZsOpcmVudCBuJ2VzdCBhdXRvcmlzw6kgcG91ciBsJ2luc3RhbnQKCjtEZWxldGUKU3VwcHJpbWVyCgo7SW5zdGFsbGF0aW9uCkluc3RhbGxhdGlvbgoKO1RvIHVzZSBwbHVnaW4sIGp1c3QgYWRkIHBhcnQgb2YgdGhlIHJlZmVyZXIgeW91IHdhbnQgdG8gYmxvY2s7IGkuZSBhZGQgInNvbWVidXp6d29yZCIgdG8gYmxvY2sgYW55IHJlZmVyZXIgd2hpY2ggaGF2ZSAic29tZWJ1enp3b3JkIiBpbi4KUG91ciB1dGlsaXNlciBsZSBwbHVnaW4sIGFqb3V0ZXIganVzdGUgdW5lIHBhcnRpZSBkdSByw6lmw6lyZW50IHF1ZSB2b3VzIHZvdWxleiBibG9xdWVyOyBwYXIgZXhlbXBsZSBham91dGV6ICJzb21lYnV6endvcmQiIHBvdXIgYmxvcXVlciB0b3V0IHLDqWbDqXJlbnQgY29udGVuYW50ICJzb21lYnV6endvcmQiLgoKO1RoZXNlIHJlZmVyZXJzIGFyZSBoZXJlIG9ubHkgdG8gZXhjZXB0aW9ubmFseSBhdXRob3JpemUgYSBibG9ja2VkIG9uZSwgYW4gZW1wdHkgbGlzdCB3b24ndCBibG9jayBhbnlvbmUuCkNlcyBhdXRvcmlzYXRpb25zIG5lIHNvbnQgbMOgIHF1J8OgIHRpdHJlIGQnZXhjZXB0aW9uIHBvdXIgbGUgYmxvY2FnZSwgdW5lIGxpc3RlIHZpZGUgbmUgYmxvcXVhbnQgcGFzIHRvdXQgbGUgbW9uZGUuCgo7SWYgYSByZWZlcmVyIGlzIGJsb2NrZWQgKGFuZCBvbmx5IGluIHRoaXMgY2FzZSksIGl0IHdpbGwgYmUgY2hlY2tlZCBpZiBpdCBleGlzdHMgaW50byBhdXRob3JpemVkIHJlZmVyZXJzIGxpc3QuCkxlIGZvbmN0aW9ubmVtZW50IGVzdCBsZSBzdWl2YW50IDogc2kgdW4gcsOpZsOpcmVudCBlc3QgYmxvcXXDqSAoZXQgdW5pcXVlbWVudCBkYW5zIGNlIGNhcyksIHVuIHRlc3Qgc2VyYSBmYWl0IHN1ciBsYSBsaXN0ZSBkZXMgcsOpZsOpcmVudHMgw6AgYXV0b3Jpc2VyIGRlIG1hbmnDqHJlIMOgIHNhdm9pciBzaSBvbiBwZXV0IGV4Y2VwdGlvbm5lbGxlbWVudCBkb25uZXIgbCdhY2PDqHMuCgo7aS5lLiA6IGlmIHNvbWVvbmUgZmluZHMgeW91ciBibG9nIHdoaWxlIGxvb2tpbmcgZm9yICJzb21lYnV6endvcmQiIHdpdGggR29vZ2xlLCBhbmQgeW91IGRvbid0IHdhbnQgdG8gYmxvY2sgdXNlcnMgZnJvbSBHb29nbGUsIHlvdSBtYXkgYWRkICJodHRwOi8vd3d3Lmdvb2dsZS4iIHRvIHlvdXIgYXV0aG9yaXplZCByZWZlcmVycyBsaXN0LgpQYXIgZXhlbXBsZSwgc2kgdW5lIHBlcnNvbm5lIHRyb3V2ZSB2b3RyZSBzaXRlIHN1ciBnb29nbGUgbG9ycyBkJ3VuZSByZWNoZXJjaGUgZGUgInNvbWVidXp6d29yZCIsIG1haXMgcXVlIHZvdXMgbmUgc291aGFpdGlleiBwYXMgYmxvcXVlciBsZXMgdmlzaXRldXJzIGRlIGdvb2dsZSwgdm91cyBwb3V2ZXogYWpvdXRlciAiaHR0cDovL3d3dy5nb29nbGUuIiBkYW5zIGxhIGxpc3RlIGRlcyByw6lmw6lyZW50cyBhdXRvcmlzw6lzLgoKO090aGVyIHJlZmVyZXJzIHdpdGggInNvbWVidXp6d29yZCIgd2l0aGluIHRoZWlyIHJlZmVyZXIgd2lsbCBzdGF5IGJsb2NrZWQuCkxlcyBhdXRyZXMgdmlzaXRldXJzIGF5YW50ICJzb21lYnV6endvcmQiIGRhbnMgbGV1ciByw6lmw6lyZW50IHJlc3Rlcm9udCBibG9xdcOpcy4KCjtpcyBub3QgY2hlY2tlZApuJ2VzdCBwYXMgY29jaMOpCgo7WW91IGhhdmUgdG8gdXNlIHBhcnQgb2YgcmVmZXJlcnMsIG9yIHRoZWlyIGZ1bGwgYWRkcmVzcy4KVm91cyBkZXZleiB1dGlsaXNlciB1bmUgcGFydGllIGRlcyByw6lmw6lyZW50LCBvdSBiaWVuIGxldXIgYWRyZXNzZSBjb21wbMOodGUuCgo7aXMgY2hlY2tlZAplc3QgY29jaMOpCgo7WW91IGhhdmUgdG8gdXNlIHJlZ3VsYXIgZXhwcmVzc2lvbiAoY2FzZSBpbnNlbnNpdGl2ZSkuClZvdXMgZGV2ZXogdXRpbGlzZXIgZGVzIGV4cHJlc3Npb25zIHLDqWd1bGnDqHJlcyAoaW5zZW5zaWJsZXMgw6AgbGEgY2Fzc2UpLgoKO0lmIHlvdSBtb2RpZnkgZGlmZmVyZW50IGZvcm1zIGF0IHRoZSBzYW1lIHRpbWUsIG9ubHkgdGhlIG9uZSB5b3UgY2hvc2UgdG8gc2F2ZSBjaGFuZ2VzIHdpbGwgYmUgc2F2ZWQuClNpIHZvdXMgbW9kaWZpZXogcGx1c2lldXJzIGZvcm11bGFpcmVzIGVuIG3Dqm1lIHRlbXBzLCBzZXVsIGNlbHVpIHBvdXIgbGVxdWVsIHZvdXMgYXVyZXogY2hvaXNpIGQnZW5yZWdpc3RyZXIgbGVzIGNoYW5nZW1lbnRzIHNlcmEgc2F1dsOpLgoKO1RoZSBhdXRob3JpemF0aW9uIGhhcyBwcmlvcml0eSBvbiBibG9ja2luZywgYW5kIG1heSB1c2UgcmVndWxhciBleHByZXNzaW9ucyB0b28uCkwnYXV0b3Jpc2F0aW9uIGVzdCBwcmlvcml0YWlyZSBzdXIgbGUgYmxvY2FnZSwgZXQgcGV1dCB1dGlsaXNlciBkZXMgZXhwcmVzc2lvbnMgcsOpZ3VsacOocmVzLgoKO0lmIHlvdSB1cGdyYWRlIGZyb20gdmVyc2lvbiAxLjAgb3IgMS4xLCB5b3Ugd2lsbCBoYXZlIHRvIGNvbnZlcnQgdGhlIHJlZmVyZXJzIGxpc3QgdG8gdGhlIG5ldyBmb3JtYXQuClNpIHZvdXMgbWV0dGV6IMOgIGpvdXIgZGVwdWlzIGxhIHZlcnNpb24gMS4wIG91IDEuMSwgdm91cyBkZXZleiBjb252ZXJ0aXIgdm90cmUgbGlzdGUgZGVzIHLDqWbDqXJlbnRzIGF1IG5vdXZlYXUgZm9ybWF0LgoKO0NvbnZlcnQKQ29udmVydGlyCgo7Q291bGQgbm90IGNyZWF0ZSB0ZW1wIGZpbGUKSW1wb3NzaWJsZSBkZSBjcsOpZXIgbGUgZmljaGllciB0ZW1wb3JhaXJlCgo7Q291bGQgbm90IGNvcHkgdGVtcCBmaWxlCkltcG9zc2libGUgZGUgY29waWVyIGxlIGZpY2hpZXIgdGVtcG9yYWlyZQoKO3RvIGZpbmFsIGZpbGUKdmVycyBsZSBmaWNoaWVyIGZpbmFsCgo7SGVscApBaWRlCgo7QWxsIGJsb2NraW5ncyA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGJlZ2lubmluZyBvZiB0aGUgbG9nLgpUb3VzIGxlcyBibG9jYWdlcyA6IG5vbWJyZSBkZSByw6lmw6lyZW50cyBibG9xdcOpcyBkZXB1aXMgbGUgZMOpYnV0IGRlIGxhIGpvdXJuYWxpc2F0aW9uLgoKO1llYXJseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzY1IGRheXMuCkFubnVlbGxlcyA6IG5vbWJyZSBkZSByw6lmw6lyZW50cyBibG9xdcOpcyBkYW5zIGxlcyBkZXJuaWVycyAzNjUgam91cnMuCgo7TW9udGhseSA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGxhc3QgMzAgZGF5cy4KTWVuc3VlbGxlcyA6IG5vbWJyZSBkZSByw6lmw6lyZW50cyBibG9xdcOpcyBkYW5zIGxlcyBkZXJuaWVycyAzMCBqb3Vycy4KCjtXZWVrbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDcgZGF5cy4KSGViZG9tYWRhaXJlcyA6IG5vbWJyZSBkZSByw6lmw6lyZW50cyBibG9xdcOpcyBkYW5zIGxlcyBkZXJuaWVycyA3IGpvdXJzLgoKO0RhaWx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAyNCBob3Vycy4KSm91cm5hbGnDqHJlcyA6IG5vbWJyZSBkZSByw6lmw6lyZW50cyBibG9xdcOpcyBkYW5zIGxlcyBkZXJuacOocmVzIDI0IGhldXJlcy4KCjtUaGVyZSBhcmUgbm8gYXZhaWxhYmxlIHN0YXRpc3RpY3MKSWwgbid5IGEgcGFzIGRlIHN0YXRpc3RpcXVlcyBkaXNwb25pYmxlcwoKO1RpbWUgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgdGVtcG9yZWxsZXMKCjtBbGwgYmxvY2tpbmdzIDoKVG91cyBsZXMgYmxvY2FnZXMgOgoKO1llYXJseSA6CkFubnVlbGxlcyA6Cgo7TW9udGhseSA6Ck1lbnN1ZWxsZXMgOgoKO1dlZWtseSA6CkhlYmRvbWFkYWlyZXMgOgoKO0RhaWx5IDoKSm91cm5hbGnDqHJlcyA6Cgo7UmVmZXJlcnMgc3RhdGlzdGljcwpTdGF0aXN0aXF1ZXMgcGFyIHLDqWbDqXJlbnQKCjtSZWZlcmVyIGhvc3RzIHN0YXRpc3RpY3MKU3RhdGlzdGlxdWVzIHBhciBow7R0ZSBkdSByw6lmw6lyZW50Cgo7U3luY2hyb25pemUgd2l0aCBTcGFtcGxlbW91c3NlClN5bmNocm9uaXNlciBhdmVjIFNwYW1wbGVtb3Vzc2UKCjtZb3UgY2FuIHN5bmNocm9uaXplIFNwYW1wbGVtb3Vzc2Ugc3BhbSB3b3JkcyBhbmQgQmxvY2sgYnkgUmVmZXJlciByZWZlcmVycyB3aXRoIHRoZSBmb2xsb3dpbmcgYnV0dG9uLgpWb3VzIHBvdXZleiBzeW5jaHJvbmlzZXIgbGVzIG1vdHMgc3BhbXMgZGUgU3BhbXBsZW1vdXNzZSBldCBsZXMgcsOpZsOpcmVudHMgZGUgQmxvY2FnZSBwYXIgUsOpZsOpcmVudCDDoCBsJ2FpZGUgZHUgYm91dHRvbiBzdWl2YW50LgoKO1N5bmNocm9uaXplClN5bmNocm9uaXNlcgoKO1NwYW0gd29yZHMgYW5kIHJlZmVyZXJzIHdoZXJlIHN1Y2Nlc3NmdWxseSBzeW5jaHJvbml6ZWQuCkxlcyBtb3RzIHNwYW0gZXQgbGVzIHLDqWbDqXJlbnRzIG9udCDDqXTDqSBzeW5jaHJvbmlzw6lzIGF2ZWMgc3VjY8Oocy4K";s:21:"blockreferer/icon.png";s:3164:"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";s:21:"blockreferer/desc.xml";s:332:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8cGx1Z2luIG5hbWU9ImJsb2NrcmVmZXJlciIgdmVyc2lvbj0iMS4xMSIgYWN0aXZlPSIxIj4KICA8YXV0aG9yPkFybmF1ZCBCb3Vkb3U8L2F1dGhvcj4KICA8bGFiZWw+QmxvY2sgYnkgUmVmZXJlcjwvbGFiZWw+CiAgPGRlc2M+QmxvY2sgYW55IHVuZGVzaXJhYmxlIHJlZmVyZXJzIHRvIGF2b2lkIGFzc29jaWF0ZWQgc3BhbTwvZGVzYz4KPC9wbHVnaW4+Cg==";s:26:"blockreferer/functions.php";s:5556:"PD9waHAKJGRlc2MgPSBpbXBsb2RlKCcnLCBmaWxlKGRpcm5hbWUoX19GSUxFX18pLicvZGVzYy54bWwnKSk7CmlmIChzdHJwb3MoJGRlc2MsICdhY3RpdmU9InRydWUiJykgfHwgc3RycG9zKCRkZXNjLCAnYWN0aXZlPSIxIicpKSB7CiAgLy8gUGx1Z2luIGlzIGFjdGl2ZSwgd2UgY29udGludWUKCiAgJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwogICRyZWZlcmVyc0xpc3RGaWxlICAgID0gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyL3JlZmVyZXJzLnR4dCc7CiAgJHdoaXRlTGlzdEZpbGUgICAgICAgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvd2hpdGVsaXN0LnR4dCc7CiAgJHJlZmVyZXJzTG9nRmlsZSAgICAgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfbG9nLmNzdic7CiAgJHJlZmVyZXJzTGlzdEFycmF5ICAgPSBhcnJheSgpOwogICR3aGl0ZUxpc3RBcnJheSAgICAgID0gYXJyYXkoKTsKCiAgLyogTG9hZCBwcmVmcyBmaWxlICovCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc09wdGlvbnNGaWxlKSkKICAgIGluY2x1ZGUgJHJlZmVyZXJzT3B0aW9uc0ZpbGU7CgoKICBpZiAoZmlsZV9leGlzdHMoJHdoaXRlTGlzdEZpbGUpKSB7CiAgICAvKiBMb2FkIHdoaXRlbGlzdCAqLwogICAgJHdoaXRlTGlzdEFycmF5ID0gZmlsZSgkd2hpdGVMaXN0RmlsZSk7CiAgICAkbG9vcCA9IDA7CiAgICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkd2hpdGVMaXN0QXJyYXkpKSB7CiAgICAgICR3aGl0ZUxpc3RBcnJheVskbG9vcF0gPSB0cmltKCR3aGl0ZUxpc3RBcnJheVskbG9vcF0pOwogICAgICAkbG9vcCsrOwogICAgfQogIH0KCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xpc3RGaWxlKSkgewogICAgLyogTG9hZCByZWZlcmVycyBsaXN0ICovCiAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CgogICAgLyogSWYgYSByZWZlcmVyIGlzIHNldCwgYW5kIGlzIG5vdCBhIHBhcnQgb2YgdGhlIFVSTCBvZiB0aGUgYmxvZyAqLwogICAgaWYgKGlzc2V0KCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkgJiYgKHN0cnN0cigkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10sJzovLycuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pID09ICIiKSkgewogICAgICAkbG9vcCA9IDA7CiAgICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgICAvKiBJZiB0aGUgcmVmZXJlciBpcyBpbiB0aGUgbGlzdCAqLwogICAgICAgIGlmICggKCEkb3B0X3JlZ2V4cCAmJiAkcmVmZXJlcnNMaXN0QXJyYXlbJGxvb3BdICE9ICIiICYmIHN0cnN0cihzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSksc3RydG9sb3dlcigkcmVmZXJlcnNMaXN0QXJyYXkgWyRsb29wXSkpKSB8fCAoJG9wdF9yZWdleHAgJiYgZXJlZ2koJHJlZmVyZXJzTGlzdEFycmF5IFskbG9vcF0sICRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSkpICkgewogICAgICAgICAgLyogV2UgdGFnIHRoZSByZWZlcmVyIHRvIGJlIGJsb2NrZWQgKi8KICAgICAgICAgICR0b19ibG9jayA9IHRydWU7CgogICAgICAgICAgaWYgKGNvdW50KCR3aGl0ZUxpc3RBcnJheSkgPiAwKSB7CiAgICAgICAgICAgICR3aGl0ZWxvb3AgPSAwOwogICAgICAgICAgICB3aGlsZSAoJHdoaXRlbG9vcCA8IGNvdW50KCR3aGl0ZUxpc3RBcnJheSkpIHsKICAgICAgICAgICAgICBpZiAoICghJG9wdF9yZWdleHAgJiYgJHdoaXRlTGlzdEFycmF5WyR3aGl0ZWxvb3BdICE9ICIiICYmIHN0cnN0cihzdHJ0b2xvd2VyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSksc3RydG9sb3dlcigkd2hpdGVMaXN0QXJyYXkgWyR3aGl0ZWxvb3BdKSkpIHx8ICgkb3B0X3JlZ2V4cCAmJiBlcmVnaSgkd2hpdGVMaXN0QXJyYXkgWyR3aGl0ZWxvb3BdLCAkX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pKSApIHsKICAgICAgICAgICAgICAgICR0b19ibG9jaz1mYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgJHdoaXRlbG9vcCsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKCR0b19ibG9jayA9PSB0cnVlKSB7CiAgICAgICAgICAgIGlmICgkb3B0X2ZvcndhcmQpIHsKICAgICAgICAgICAgICAvKiBJZiBwbHVnaW4gaXMgc2V0IHRvIGZvcndhcmQgdGhlIHJlZmVyZXIgdG8gaXQncyBvd24gcmVmZXJlciAqLwogICAgICAgICAgICAgIGhlYWRlcignTG9jYXRpb246Jy4kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ10pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9Jy5vcHRfY2hhcnNldCk7CiAgICAgICAgICAgICAgaGVhZGVyKCdIVFRQLzEuMCA0MDMgRm9yYmlkZGVuJyk7CiAgICAgICAgICAgICAgZWNobyAnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4nLiJcbiI7CiAgICAgICAgICAgICAgZWNobyAnPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJmciIgbGFuZz0iZnIiPicuIlxuIjsKICAgICAgICAgICAgICBlY2hvICc8aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0nLiRvcHRfY2hhcnNldC4nIiAvPjwvaGVhZD4nLiJcbiI7CiAgICAgICAgICAgICAgZWNobyAnPGJvZHk+JzsKICAgICAgICAgICAgICBpZiAoISRvcHRfbWVzc2FnZSkgewogICAgICAgICAgICAgICAgLyogSWYgdGhlIHBsdWdpbiBpcyBub3Qgc2V0IHRvIHVzZSBhIHBlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlICovCiAgICAgICAgICAgICAgICBlY2hvICc8aDE+NDAzIEZvcmJpZGRlbjwvaDE+Jy4iXG4iOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLyogSWYgdGhlIHBsdWdpbiBpcyBzZXQgdG8gdXNlIGEgcGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UgKi8KICAgICAgICAgICAgICAgIGVjaG8gJG9wdF9tZXNzYWdlX3RleHQgLiAnPGJyLz48YnIvPicuIlxuIjsKICAgICAgICAgICAgICAgIGlmIChpc3NldCgkb3B0X2xpbmspICYmICRvcHRfbGluayAhPSAiIikgewogICAgICAgICAgICAgICAgICBlY2hvICc8YSBocmVmPSInLiRfU0VSVkVSWydSRVFVRVNUX1VSSSddLiciPicuJG9wdF9saW5rLic8L2E+Jy4iXG4iOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZWNobyAnPGEgaHJlZj0iJy4kX1NFUlZFUlsnUkVRVUVTVF9VUkknXS4nIj5BY2Nlc3MgdG8gdGhlIHBhZ2U8L2E+Jy4iXG4iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlY2hvICc8L2JvZHk+PC9odG1sPicuIlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvKiBJZiBwbHVnaW4gaXMgc2V0IHRvIGxvZyBibG9ja2luZyAqLwogICAgICAgICAgICBpZiAoaXNzZXQoJG9wdF9sb2cpICYmICRvcHRfbG9nICE9ICIiKSB7CiAgICAgICAgICAgICAgaWYgKCRmcG9pbnRlciA9IGZvcGVuKCRyZWZlcmVyc0xvZ0ZpbGUsICdhKycpKSB7CiAgICAgICAgICAgICAgICBmd3JpdGUoJGZwb2ludGVyLCB0aW1lKCkuJzsnLmRhdGUoIlktbS1kIEg6aTpzIiwgdGltZSgpKS4nOycuJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uJzsnLiRfU0VSVkVSWyJSRU1PVEVfSE9TVCJdLic7Jy4kX1NFUlZFUlsiSFRUUF9SRUZFUkVSIl0uJzsnLiRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0uIlxuIik7CiAgICAgICAgICAgICAgICBmY2xvc2UoJGZwb2ludGVyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXhpdCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkbG9vcCsrOwogICAgICB9CiAgICB9CiAgfQp9Cj8+Cg==";s:22:"blockreferer/index.php";s:30176:"PD9waHAKLyogdXNlZnVsbCB2YXJpYWJsZXMgKi8KJHJlZmVyZXJzT3B0aW9uc0ZpbGUgPSBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvcmVmZXJlcnNfb3B0aW9ucy5waHAnOwokcmVmZXJlcnNMaXN0RmlsZSAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci9yZWZlcmVycy50eHQnOwokd2hpdGVMaXN0RmlsZSAgICAgICA9IERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci93aGl0ZWxpc3QudHh0JzsKJHJlZmVyZXJzTG9nRmlsZSAgICAgPSAnLi4vc2hhcmUvYmxvY2tyZWZlcmVyL3JlZmVyZXJzX2xvZy5jc3YnOwokcmVmZXJlcnNMaXN0QXJyYXkgICA9IGFycmF5KCk7CiR3aGl0ZUxpc3RBcnJheSAgICAgID0gYXJyYXkoKTsKJHN5bmNoU3BhbXBsZW1vdXNzZSAgPSBhcnJheSgpOwoKYnVmZmVyOjpzdHIoJzxoMj4nLl9fKCdCbG9jayBieSBSZWZlcmVyJykuJzwvaDI+Jyk7CgpidWZmZXI6OnN0cignPHA+PGEgaHJlZj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIj5Db25maWd1cmF0aW9uPC9hPiAtICcpOwpidWZmZXI6OnN0cignPGEgaHJlZj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyJnBhZ2U9c3RhdGlzdGljcyI+Jy5fXygnU3RhdGlzdGljcycpLic8L2E+PC9wPicpOwoKaWYgKCFpc3NldCgkX0dFVFsncGFnZSddKSB8fCAkX0dFVFsncGFnZSddICE9ICdzdGF0aXN0aWNzJykgewogIC8qKioqKiBDb25maWd1cmF0aW9uIHBhZ2UgKioqKiovCgogIC8qIEluaXQgLSBDcmVhdGUgcGx1Z2luIGRlZGljYXRlZCBmb2xkZXIgKi8KICBpZiAoIWZpbGVfZXhpc3RzKERDX1NIQVJFX0RJUi4nL2Jsb2NrcmVmZXJlci8nKSkgewogICAgdW1hc2soMDAwKTsKICAgIGlmICghbWtkaXIoRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyLycsIDA3NzcpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY3JlYXRlIEJsb2NrIGJ5IFJlZmVyZXIgZGVkaWNhdGVkIGZvbGRlcicpLiAnICcgLiBEQ19TSEFSRV9ESVIuJy9ibG9ja3JlZmVyZXIvJy4gJzwvaDQ+Jyk7CiAgICB9CiAgfQoKICAvKiBJbml0IC0gQ29udmVydCBvbGQgZGF0YWJhc2UgdG8gcGxhaW4gdGV4dCBmaWxlICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnY29udmVydCddKSAmJiAkX1BPU1RbJ2NvbnZlcnQnXSAhPSAnJykgewogICAgZ2xvYmFsICRjb247CiAgICBpZiAoISRycyA9ICRjb24tPnNlbGVjdCgnU0VMRUNUIHJlZmVyZXIgRlJPTSAnLkRCX1BSRUZJWC4nYmxvY2tyZWZlcmVyJykpIHsKICAgICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gJGNvbi0+ZXJyb3IoKSAuICc8L2g0PicpOwogICAgfSBlbHNlIHsKICAgICAgd2hpbGUgKCRycy0+ZmV0Y2goKSkgewogICAgICAgIGFycmF5X3B1c2goJHJlZmVyZXJzTGlzdEFycmF5LCAkcnMtPmYoJ3JlZmVyZXInKSk7CiAgICAgIH0KICAgICAgc29ydCgkcmVmZXJlcnNMaXN0QXJyYXkpOwogICAgICBpZiAoc2F2ZVJlZmVyZXJMaXN0KCRyZWZlcmVyc0xpc3RBcnJheSwgJHJlZmVyZXJzTGlzdEZpbGUpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlcnMgbGlzdCB3YXMgc3VjY2Vzc2Z1bGx5IGNvbnZlcnRlZC4gWW91IG1heSBub3cgZGVsZXRlIHRhYmxlJykgLiAnICcgLiBEQl9QUkVGSVguJ2Jsb2NrcmVmZXJlcicgLiAnPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEluaXQgLSBMb2FkIHJlZmVyZXJzIGxpc3QgKi8KICBpZiAoZmlsZV9leGlzdHMoJHJlZmVyZXJzTGlzdEZpbGUpKSB7CiAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQoKICAvKiBJbml0IC0gTG9hZCB3aGl0ZWxpc3QgKi8KICBpZiAoZmlsZV9leGlzdHMoJHdoaXRlTGlzdEZpbGUpKSB7CiAgICAkd2hpdGVMaXN0QXJyYXkgPSBmaWxlKCR3aGl0ZUxpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCR3aGl0ZUxpc3RBcnJheSkpIHsKICAgICAgJHdoaXRlTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHdoaXRlTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQoKICAvKiBBY3Rpb24gLSBTYXZlIG9wdGlvbnMgKi8KICBpZiAoaXNzZXQoJF9QT1NUWydvcHRpb25zJ10pICYmICRfUE9TVFsnb3B0aW9ucyddICE9ICcnKSB7CiAgICBzYXZlT3B0aW9ucygkX1BPU1QpOyAKICB9CgogIC8qIEluaXQgLSBMb2FkIG9wdGlvbnMgZmlsZSAqLwogIGlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNPcHRpb25zRmlsZSkpCiAgICBpbmNsdWRlICRyZWZlcmVyc09wdGlvbnNGaWxlOwoKICAvKiBBY3Rpb24gLSBTYXZlIG5ldyByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsncmVmZXJlciddKSAmJiAkX1BPU1RbJ3JlZmVyZXInXSAhPSAnJykgewogICAgYXJyYXlfcHVzaCgkcmVmZXJlcnNMaXN0QXJyYXksICRfUE9TVFsncmVmZXJlciddKTsKICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgIGlmIChzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJzTGlzdEFycmF5LCAkcmVmZXJlcnNMaXN0RmlsZSkpOwogICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnUmVmZXJlciBzdWNjZXNzZnVsbHkgc2F2ZWQnKSAuICc8L2g0PicpOwogIH0KCiAgLyogQWN0aW9uIC0gU2F2ZSBuZXcgd2hpdGVsaXN0IHJlZmVyZXIgKi8KICBpZiAoaXNzZXQoJF9QT1NUWyd3aGl0ZWxpc3QnXSkgJiYgJF9QT1NUWyd3aGl0ZWxpc3QnXSAhPSAnJykgewogICAgYXJyYXlfcHVzaCgkd2hpdGVMaXN0QXJyYXksICRfUE9TVFsnd2hpdGVsaXN0J10pOwogICAgc29ydCgkd2hpdGVMaXN0QXJyYXkpOwogICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkd2hpdGVMaXN0QXJyYXksICR3aGl0ZUxpc3RGaWxlKSk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdXaGl0ZWxpc3QgcmVmZXJlciBzdWNjZXNzZnVsbHkgc2F2ZWQnKSAuICc8L2g0PicpOwogIH0KCiAgLyogQWN0aW9uIC0gRGVsZXRlIG9sZCByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnZGVsZXRlJ10pICYmICRfUE9TVFsnZGVsZXRlJ10gIT0gJycpIHsKICAgICRwb3N0X2NvdW50ID0gY291bnQoJF9QT1NUKTsKICAgIGlmICgkcG9zdF9jb3VudCA+IDEpIHsKICAgICAgcmVzZXQoJF9QT1NUKTsKICAgICAgJGxvb3AgPSAwOwogICAgICB3aGlsZSAoJGxvb3AgPCAkcG9zdF9jb3VudCkgewogICAgICAgICRwb3N0a2V5ID0ga2V5KCRfUE9TVCk7CiAgICAgICAgaWYgKHN1YnN0cigkcG9zdGtleSwgMCwgNSkgPT0gJ3JlZmlkJykgewogICAgICAgICAgJHBvc3R2YWx1ZSA9IGN1cnJlbnQoJF9QT1NUKTsKICAgICAgICAgICRhcnJheUxvb3AgPSAwOwogICAgICAgICAgd2hpbGUoJGFycmF5TG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgICAgICAgaWYgKCRyZWZlcmVyc0xpc3RBcnJheVskYXJyYXlMb29wXSA9PSAkcG9zdHZhbHVlKSB7CiAgICAgICAgICAgICAgdW5zZXQoJHJlZmVyZXJzTGlzdEFycmF5WyRhcnJheUxvb3BdKTsKICAgICAgICAgICAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBhcnJheV9tZXJnZSgkcmVmZXJlcnNMaXN0QXJyYXkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRhcnJheUxvb3ArKzsKICAgICAgICAgIH0gICAgICAgICAgCiAgICAgICAgfQogICAgICAgICRsb29wKys7CiAgICAgICAgbmV4dCgkX1BPU1QpOwogICAgICB9CiAgICAgIGlmIChzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJzTGlzdEFycmF5LCAkcmVmZXJlcnNMaXN0RmlsZSkpOwogICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdSZWZlcmVycyBzdWNjZXNzZnVsbHkgZGVsZXRlZCcpIC4gJzwvaDQ+Jyk7CiAgICB9CiAgfQoKICAvKiBBY3Rpb24gLSBEZWxldGUgb2xkIHdoaXRlbGlzdCByZWZlcmVyICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnZGVsZXRlX3doaXRlbGlzdCddKSAmJiAkX1BPU1RbJ2RlbGV0ZV93aGl0ZWxpc3QnXSAhPSAnJykgewogICAgJHBvc3RfY291bnQgPSBjb3VudCgkX1BPU1QpOwogICAgaWYgKCRwb3N0X2NvdW50ID4gMSkgewogICAgICByZXNldCgkX1BPU1QpOwogICAgICAkbG9vcCA9IDA7CiAgICAgIHdoaWxlICgkbG9vcCA8ICRwb3N0X2NvdW50KSB7CiAgICAgICAgJHBvc3RrZXkgPSBrZXkoJF9QT1NUKTsKICAgICAgICBpZiAoc3Vic3RyKCRwb3N0a2V5LCAwLCA1KSA9PSAnd2h0aWQnKSB7CiAgICAgICAgICAkcG9zdHZhbHVlID0gY3VycmVudCgkX1BPU1QpOwogICAgICAgICAgJGFycmF5TG9vcCA9IDA7CiAgICAgICAgICB3aGlsZSgkYXJyYXlMb29wIDwgY291bnQoJHdoaXRlTGlzdEFycmF5KSkgewogICAgICAgICAgICBpZiAoJHdoaXRlTGlzdEFycmF5WyRhcnJheUxvb3BdID09ICRwb3N0dmFsdWUpIHsKICAgICAgICAgICAgICB1bnNldCgkd2hpdGVMaXN0QXJyYXlbJGFycmF5TG9vcF0pOwogICAgICAgICAgICAgICR3aGl0ZUxpc3RBcnJheSA9IGFycmF5X21lcmdlKCR3aGl0ZUxpc3RBcnJheSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGFycmF5TG9vcCsrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkbG9vcCsrOwogICAgICAgIG5leHQoJF9QT1NUKTsKICAgICAgfQogICAgICBpZiAoc2F2ZVJlZmVyZXJMaXN0KCR3aGl0ZUxpc3RBcnJheSwgJHdoaXRlTGlzdEZpbGUpKTsKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnV2hpdGVsaXN0IHJlZmVyZXJzIHN1Y2Nlc3NmdWxseSBkZWxldGVkJykgLiAnPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEFjdGlvbiAtIFN5bmNocm9uaXplICovCiAgaWYgKGlzc2V0KCRfUE9TVFsnc3luY2hyb25pemUnXSkgJiYgJF9QT1NUWydzeW5jaHJvbml6ZSddICE9ICcnKSB7CiAgICBnbG9iYWwgJGNvbjsKICAgIC8vIEZyb20gU3BhbXBsZW1vdXNzZSB0byBCbG9jayBieSBSZWZlcmVyCiAgICBpZiAoISRycyA9ICRjb24tPnNlbGVjdCgnU0VMRUNUIHNwYW13b3Jkc193b3JkIEZST00gJy5EQl9QUkVGSVguJ3NwYW13b3JkcycpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuICRjb24tPmVycm9yKCkgLiAnPC9oND4nKTsKICAgIH0gZWxzZSB7CiAgICAgIHdoaWxlICgkcnMtPmZldGNoKCkpIHsKICAgICAgICBhcnJheV9wdXNoKCRzeW5jaFNwYW1wbGVtb3Vzc2UsICRycy0+Zignc3BhbXdvcmRzX3dvcmQnKSk7CiAgICAgIH0KICAgICAgJHNwYW1fY291bnQgPSBjb3VudCgkc3luY2hTcGFtcGxlbW91c3NlKTsKICAgICAgaWYgKCRzcGFtX2NvdW50ID4gMSkgewogICAgICAgIGZvciAoJGk9MDsgJGk8JHNwYW1fY291bnQ7ICRpKyspIHsKICAgICAgICAgICRiZm91bmQgPSBmYWxzZTsKICAgICAgICAgICRyZWZlcmVyX2NvdW50ID0gY291bnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgICAgICAgIGlmICgkcmVmZXJlcl9jb3VudCA+IDEpIHsKICAgICAgICAgICAgZm9yICgkaj0wOyAkajwkcmVmZXJlcl9jb3VudDsgJGorKykgewogICAgICAgICAgICAgIGlmICgkc3luY2hTcGFtcGxlbW91c3NlWyRpXSA9PSAkcmVmZXJlcnNMaXN0QXJyYXlbJGpdKSB7CiAgICAgICAgICAgICAgICAkYmZvdW5kPXRydWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoJGJmb3VuZCA9PSBmYWxzZSkgewogICAgICAgICAgICBhcnJheV9wdXNoKCRyZWZlcmVyc0xpc3RBcnJheSwgJHN5bmNoU3BhbXBsZW1vdXNzZVskaV0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gRnJvbSBCbG9jayBieSBSZWZlcmVyIHRvIFNwYW1wbGVtb3Vzc2UKICAgICAgJHJlZmVyZXJfY291bnQgPSBjb3VudCgkcmVmZXJlcnNMaXN0QXJyYXkpOwogICAgICBpZiAoJHJlZmVyZXJfY291bnQgPiAxKSB7CiAgICAgICAgZm9yICgkaT0wOyAkaTwkcmVmZXJlcl9jb3VudDsgJGkrKykgewogICAgICAgICAgJGJmb3VuZCA9IGZhbHNlOwogICAgICAgICAgJHNwYW1fY291bnQgPSBjb3VudCgkc3luY2hTcGFtcGxlbW91c3NlKTsKICAgICAgICAgIGlmICgkc3BhbV9jb3VudCA+IDEpIHsKICAgICAgICAgICAgZm9yICgkaj0wOyAkajwkc3BhbV9jb3VudDsgJGorKykgewogICAgICAgICAgICAgIGlmICgkc3luY2hTcGFtcGxlbW91c3NlWyRqXSA9PSAkcmVmZXJlcnNMaXN0QXJyYXlbJGldKSB7CiAgICAgICAgICAgICAgICAkYmZvdW5kPXRydWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoJGJmb3VuZCA9PSBmYWxzZSkgewogICAgICAgICAgICAkY29uLT5leGVjdXRlKCdJTlNFUlQgSU5UTyAnLkRCX1BSRUZJWC4nc3BhbXdvcmRzIChzcGFtd29yZHNfd29yZCkgVkFMVUVTKFwnJy5hZGRzbGFzaGVzKCRyZWZlcmVyc0xpc3RBcnJheVskaV0pLidcJyknKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KCiAgICAgIHNvcnQoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgICAgaWYgKHNhdmVSZWZlcmVyTGlzdCgkcmVmZXJlcnNMaXN0QXJyYXksICRyZWZlcmVyc0xpc3RGaWxlKSkKICAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnU3BhbSB3b3JkcyBhbmQgcmVmZXJlcnMgd2hlcmUgc3VjY2Vzc2Z1bGx5IHN5bmNocm9uaXplZC4nKS4nPC9oND4nKTsKICAgIH0KICB9CgogIC8qIEhUTUwgLSBPcHRpb25zICovCiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ09wdGlvbnMnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPHAgY2xhc3M9ImZpZWxkIj4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0aW9ucyIgdmFsdWU9InRydWUiPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJvcHRfcmVnZXhwIiBuYW1lPSJvcHRfcmVnZXhwIiB2YWx1ZT0idHJ1ZSIgJy4oJG9wdF9yZWdleHA9PXRydWU/J2NoZWNrZWQ9ImNoZWNrZWQiJzonJykuJy8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1VzZSByZWd1bGFyIGV4cHJlc3Npb24nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9mb3J3YXJkIiBuYW1lPSJvcHRfZm9yd2FyZCIgdmFsdWU9InRydWUiICcuKCRvcHRfZm9yd2FyZD09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnRm9yd2FyZCB2aXNpdG9yIHRvIGl0XCdzIG93biByZWZlcmVyIGluc3RlYWQgb2YgYmxvY2tpbmcgaXQnKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9Im9wdF9sb2ciIG5hbWU9Im9wdF9sb2ciIHZhbHVlPSJ0cnVlIiAnLigkb3B0X2xvZz09dHJ1ZT8nY2hlY2tlZD0iY2hlY2tlZCInOicnKS4nLz4nKTsKICBidWZmZXI6OnN0cihfXygnTG9nIGJsb2NraW5nJykuJyAnKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0ib3B0X21lc3NhZ2UiIG5hbWU9Im9wdF9tZXNzYWdlIiB2YWx1ZT0idHJ1ZSIgJy4oJG9wdF9tZXNzYWdlPT10cnVlPydjaGVja2VkPSJjaGVja2VkIic6JycpLicvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdVc2UgcGVyc29uYWxpemVkIGVycm9yIG1lc3NhZ2UnKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1BlcnNvbmFsaXplZCBlcnJvciBtZXNzYWdlIChIVE1MKSA6JykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8dGV4dGFyZWEgbmFtZT0ib3B0X21lc3NhZ2VfdGV4dCIgaWQ9Im9wdF9tZXNzYWdlX3RleHQiIGNvbHM9IjYwIiByb3dzPSIxMCI+JyAuICRvcHRfbWVzc2FnZV90ZXh0IC4gJzwvdGV4dGFyZWE+Jyk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1RleHQgb2YgdGhlICJBY2Nlc3MgdG8gdGhlIHBhZ2UiIGxpbmsgOicpKTsgICAgICAgICAgICAgICAgICAgICAKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9InRleHQiIGlkPSJvcHRfbGluayIgbmFtZT0ib3B0X2xpbmsiIHZhbHVlPSInLiRvcHRfbGluay4nIiBzaXplPSI0MCIvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzxwPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0IiB2YWx1ZT0iJyAuIF9fKCdTYXZlJykgLiAnIiAvPicpOwogIGJ1ZmZlcjo6c3RyKCc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZm9ybT4nKTsKCiAgLyogSFRNTCAtIEFkZCBhIG5ldyByZWZlcmVyIHRvIGF1dGhvcml6ZSAqLwogIGJ1ZmZlcjo6c3RyKCc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciIgbWV0aG9kPSJwb3N0Ij4nKTsKICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdBZGQgYSBuZXcgcmVmZXJlciB0byBhdXRob3JpemUnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPHAgY2xhc3M9ImZpZWxkIj4nKTsKICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0icmVmZXJlciIgY2xhc3M9ImZsb2F0Ij4nIC4gX18oJ1JlZmVyZXIgdG8gYXV0aG9yaXplIDonKSAuICc8L2xhYmVsPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9IndoaXRlbGlzdCIgaWQ9IndoaXRlbGlzdCIgLz4nKTsKICBidWZmZXI6OnN0cignJm5ic3A7Jm5ic3A7Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ1NhdmUnKSAuICciIC8+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvcD4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwoKICAvKiBIVE1MIC0gQXV0aG9yaXplZCByZWZlcmVyIGxpc3QgKi8KICBidWZmZXI6OnN0cignPGZvcm0gYWN0aW9uPSJ0b29scy5waHA/cD1ibG9ja3JlZmVyZXIiIG1ldGhvZD0icG9zdCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnQXV0aG9yaXplZCByZWZlcmVyIGxpc3QnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVsZXRlX3doaXRlbGlzdCIgdmFsdWU9InRydWUiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZGl2IHN0eWxlPSJoZWlnaHQ6IDIwMHB4OyBvdmVyZmxvdzogYXV0byI+PHRhYmxlPjx0cj48dGQgY29sc3Bhbj0iMiI+PGI+JyAuIF9fKCdSZWZlcmVyJykgLiAnPC9iPjwvdGQ+PC90cj4nKTsKICBpZihjb3VudCgkd2hpdGVMaXN0QXJyYXkpIDwgMSkgewogICAgYnVmZmVyOjpzdHIoJzx0cj48dGQgY29sc3Bhbj0iMiI+JyAuIF9fKCdObyByZWZlcmVyIGlzIGF1dGhvcml6ZWQgZm9yIG5vdycpIC4gJzwvdGQ+PC90cj4nKTsKICB9IGVsc2UgewogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJHdoaXRlTGlzdEFycmF5KSkgewogICAgICBidWZmZXI6OnN0cignPHRyIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOWYyIj4nKTsKICAgICAgYnVmZmVyOjpzdHIoJzx0ZD48aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IndodGlkJy4kd2hpdGVMaXN0QXJyYXlbJGxvb3BdLiciIHZhbHVlPSInLiR3aGl0ZUxpc3RBcnJheVskbG9vcF0uJyIvPicpOwogICAgICBidWZmZXI6OnN0cignPHRkPicgLiAkd2hpdGVMaXN0QXJyYXlbJGxvb3BdIC4gJzwvdGQ+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8L3RyPicpOwogICAgICAkbG9vcCsrOwogICAgfQogIH0KICBidWZmZXI6OnN0cignPC90YWJsZT48L2Rpdj4nKTsKICBidWZmZXI6OnN0cignPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IicgLiBfXygnRGVsZXRlJykgLiAnIi8+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvZm9ybT4nKTsKCiAgLyogSFRNTCAtIEFkZCBhIG5ldyByZWZlcmVyIHRvIGJsb2NrICovCiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0FkZCBhIG5ldyByZWZlcmVyIHRvIGJsb2NrJykgLiAnPC9sZWdlbmQ+Jyk7CiAgYnVmZmVyOjpzdHIoJzxwIGNsYXNzPSJmaWVsZCI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxsYWJlbCBmb3I9InJlZmVyZXIiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdSZWZlcmVyIHRvIGJsb2NrIDonKSAuICc8L2xhYmVsPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9InJlZmVyZXIiIGlkPSJyZWZlcmVyIiAvPicpOwogIGJ1ZmZlcjo6c3RyKCcmbmJzcDsmbmJzcDsnKTsKICBidWZmZXI6OnN0cignPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9IicgLiBfXygnU2F2ZScpIC4gJyIgLz4nKTsKICBidWZmZXI6OnN0cignPC9wPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIGJ1ZmZlcjo6c3RyKCc8L2Zvcm0+Jyk7CgogIC8qIEhUTUwgLSBCbG9ja2VkIHJlZmVyZXIgbGlzdCAqLwogIGJ1ZmZlcjo6c3RyKCc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciIgbWV0aG9kPSJwb3N0Ij4nKTsKICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdCbG9ja2VkIHJlZmVyZXIgbGlzdCcpIC4gJzwvbGVnZW5kPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWxldGUiIHZhbHVlPSJ0cnVlIj4nKTsKICBidWZmZXI6OnN0cignPGRpdiBzdHlsZT0iaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3c6IGF1dG87Ij48dGFibGU+PHRyPjx0ZCBjb2xzcGFuPSIyIj48Yj4nIC4gX18oJ1JlZmVyZXInKSAuICc8L2I+PC90ZD48L3RyPicpOwogIGlmKGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkgPCAxKSB7CiAgICBidWZmZXI6OnN0cignPHRyPjx0ZCBjb2xzcGFuPSIyIj4nIC4gX18oJ05vIHJlZmVyZXIgaXMgYmxvY2tlZCBmb3Igbm93JykgLiAnPC90ZD48L3RyPicpOwogIH0gZWxzZSB7CiAgICAkbG9vcCA9IDA7CiAgICB3aGlsZSAoJGxvb3AgPCBjb3VudCgkcmVmZXJlcnNMaXN0QXJyYXkpKSB7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dHIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmNmY5ZjIiPicpOwogICAgICBidWZmZXI6OnN0cignPHRkPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0icmVmaWQnLiRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0uJyIgdmFsdWU9IicuJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXS4nIi8+Jyk7CiAgICAgIGJ1ZmZlcjo6c3RyKCc8dGQ+JyAuICRyZWZlcmVyc0xpc3RBcnJheVskbG9vcF0gLiAnPC90ZD4nKTsKICAgICAgYnVmZmVyOjpzdHIoJzwvdHI+Jyk7CiAgICAgICRsb29wKys7CiAgICB9CiAgfQogIGJ1ZmZlcjo6c3RyKCc8L3RhYmxlPjwvZGl2PicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iJyAuIF9fKCdEZWxldGUnKSAuICciLz4nKTsKICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwoKICAvKiBIVE1MIC0gU3luY2hyb25pemUgd2l0aCBTcGFtcGxlbW91c3NlICovCiAgaWYgKCFpc3NldCgkb3B0X3JlZ2V4cCkgfHwgJG9wdF9yZWdleHAhPXRydWUpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ1N5bmNocm9uaXplIHdpdGggU3BhbXBsZW1vdXNzZScpIC4gJzwvbGVnZW5kPicpOwogICAgYnVmZmVyOjpzdHIoJzxwPicuX18oJ1lvdSBjYW4gc3luY2hyb25pemUgU3BhbXBsZW1vdXNzZSBzcGFtIHdvcmRzIGFuZCBCbG9jayBieSBSZWZlcmVyIHJlZmVyZXJzIHdpdGggdGhlIGZvbGxvd2luZyBidXR0b24uJykuJzwvcD4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPWJsb2NrcmVmZXJlciIgbWV0aG9kPSJwb3N0Ij4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzeW5jaHJvbml6ZSIgdmFsdWU9InRydWUiPicpOwogICAgYnVmZmVyOjpzdHIoJzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ1N5bmNocm9uaXplJykgLiAnIi8+Jyk7CiAgICBidWZmZXI6OnN0cignPC9mb3JtPicpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgfQoKICAvKiBIVE1MIC0gSW5zdGFsbGF0aW9uIGhlbHAgKi8KICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdJbnN0YWxsYXRpb24nKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cignPHA+PGI+Jy5fXygnUmVmZXJlciB0byBibG9jayA6JykuJzwvYj4gJy5fXygnVG8gdXNlIHBsdWdpbiwganVzdCBhZGQgcGFydCBvZiB0aGUgcmVmZXJlciB5b3Ugd2FudCB0byBibG9jazsgaS5lIGFkZCAic29tZWJ1enp3b3JkIiB0byBibG9jayBhbnkgcmVmZXJlciB3aGljaCBoYXZlICJzb21lYnV6endvcmQiIGluLicpIC4gJzwvcD4nKTsKICBidWZmZXI6OnN0cignPHA+PGI+Jy5fXygnUmVmZXJlciB0byBhdXRob3JpemUgOicpLic8L2I+ICcpOwogIGJ1ZmZlcjo6c3RyKF9fKCdUaGVzZSByZWZlcmVycyBhcmUgaGVyZSBvbmx5IHRvIGV4Y2VwdGlvbm5hbHkgYXV0aG9yaXplIGEgYmxvY2tlZCBvbmUsIGFuIGVtcHR5IGxpc3Qgd29uXCd0IGJsb2NrIGFueW9uZS4nKSk7CiAgYnVmZmVyOjpzdHIoJyAnLl9fKCdJZiBhIHJlZmVyZXIgaXMgYmxvY2tlZCAoYW5kIG9ubHkgaW4gdGhpcyBjYXNlKSwgaXQgd2lsbCBiZSBjaGVja2VkIGlmIGl0IGV4aXN0cyBpbnRvIGF1dGhvcml6ZWQgcmVmZXJlcnMgbGlzdC4nKSk7CiAgYnVmZmVyOjpzdHIoJyAnLl9fKCdpLmUuIDogaWYgc29tZW9uZSBmaW5kcyB5b3VyIGJsb2cgd2hpbGUgbG9va2luZyBmb3IgInNvbWVidXp6d29yZCIgd2l0aCBHb29nbGUsIGFuZCB5b3UgZG9uXCd0IHdhbnQgdG8gYmxvY2sgdXNlcnMgZnJvbSBHb29nbGUsIHlvdSBtYXkgYWRkICJodHRwOi8vd3d3Lmdvb2dsZS4iIHRvIHlvdXIgYXV0aG9yaXplZCByZWZlcmVycyBsaXN0LicpKTsKICBidWZmZXI6OnN0cignICcuX18oJ090aGVyIHJlZmVyZXJzIHdpdGggInNvbWVidXp6d29yZCIgd2l0aGluIHRoZWlyIHJlZmVyZXIgd2lsbCBzdGF5IGJsb2NrZWQuJykpOwogIGJ1ZmZlcjo6c3RyKCc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzx1bD4nKTsKICBidWZmZXI6OnN0cignPGxpPicgLiAnIicuX18oJ1VzZSByZWd1bGFyIGV4cHJlc3Npb24nKSAuICciICcgLiBfXygnaXMgbm90IGNoZWNrZWQnKSAuICcgOiAnIC5fXygnWW91IGhhdmUgdG8gdXNlIHBhcnQgb2YgcmVmZXJlcnMsIG9yIHRoZWlyIGZ1bGwgYWRkcmVzcy4nKSAuICc8L2xpPicpOwogIGJ1ZmZlcjo6c3RyKCc8bGk+JyAuICciJy5fXygnVXNlIHJlZ3VsYXIgZXhwcmVzc2lvbicpIC4gJyIgJyAuIF9fKCdpcyBjaGVja2VkJykgLiAnIDogJyAuX18oJ1lvdSBoYXZlIHRvIHVzZSByZWd1bGFyIGV4cHJlc3Npb24gKGNhc2UgaW5zZW5zaXRpdmUpLicpIC4gJzwvbGk+Jyk7CiAgYnVmZmVyOjpzdHIoJzwvdWw+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ0lmIHlvdSBtb2RpZnkgZGlmZmVyZW50IGZvcm1zIGF0IHRoZSBzYW1lIHRpbWUsIG9ubHkgdGhlIG9uZSB5b3UgY2hvc2UgdG8gc2F2ZSBjaGFuZ2VzIHdpbGwgYmUgc2F2ZWQuJykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPjxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ1RoZSBhdXRob3JpemF0aW9uIGhhcyBwcmlvcml0eSBvbiBibG9ja2luZywgYW5kIG1heSB1c2UgcmVndWxhciBleHByZXNzaW9ucyB0b28uJykpOwogIGJ1ZmZlcjo6c3RyKCc8aHI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxwPicgLiBfXygnSWYgeW91IHVwZ3JhZGUgZnJvbSB2ZXJzaW9uIDEuMCBvciAxLjEsIHlvdSB3aWxsIGhhdmUgdG8gY29udmVydCB0aGUgcmVmZXJlcnMgbGlzdCB0byB0aGUgbmV3IGZvcm1hdC4nKSAuICc8L3A+Jyk7CiAgYnVmZmVyOjpzdHIoJzxmb3JtIGFjdGlvbj0idG9vbHMucGhwP3A9YmxvY2tyZWZlcmVyIiBtZXRob2Q9InBvc3QiPicpOwogIGJ1ZmZlcjo6c3RyKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb252ZXJ0IiB2YWx1ZT0idHJ1ZSI+Jyk7CiAgYnVmZmVyOjpzdHIoJzxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInIC4gX18oJ0NvbnZlcnQnKSAuICciLz4nKTsKICBidWZmZXI6OnN0cignPC9mb3JtPicpOwogIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwp9IGVsc2UgewovKioqKiogU3RhdGlzdGljcyBwYWdlICoqKioqLwogIAogIC8qIFVzZWZ1bGwgYXJyYXlzIAogICAqICRhcnJheVRpbWUgOiBBcnJheSB3aXRoIHRpbWUgc3RhdGlzdGljcyA6IGxhc3QgMjRoLCB3ZWVrLCBtb250aCwgeWVhcgogICAqICAgICAgICAgICAgICBhbmQgYWxsIHRpbWUuCiAgICogJGFycmF5UmVmZXJlbnQgOiBBcnJheSB3aXRoIHJlZmVyZW50cyBzdGF0aXN0aWNzCiAgICogJGFycmF5SG9zdHMgOiBBcnJheSB3aXRoIGJsb2NrZWQgcmVmZXJlbnRzIChob3N0bmFtZSkKICAgKi8KCiAgLyogSW5pdCB2YXJpYWJsZXMgKi8KICAkY3VyVGltZSA9IHRpbWUoKTsKCiAgLyogSW5pdCB0aW1lIHN0YXRpc3RpY3MgYXJyYXkgKi8KICAkYXJyYXlUaW1lID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAnZGF5JyAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAnd2VlaycgID0+IDAsCiAgICAgICAgICAgICAgICAgICAnbW9udGgnID0+IDAsCiAgICAgICAgICAgICAgICAgICAneWVhcicgID0+IDAsCiAgICAgICAgICAgICAgICAgICAnYWxsJyAgID0+IDAKICAgICAgICAgICAgICAgKTsKICAKICAvKiBJbml0IHJlZmVyZW50IHN0YXRpc3RpY3MgYXJyYXkgKi8KICBpZiAoZmlsZV9leGlzdHMoJHJlZmVyZXJzTGlzdEZpbGUpKSB7CiAgICAkcmVmZXJlcnNMaXN0QXJyYXkgPSBmaWxlKCRyZWZlcmVyc0xpc3RGaWxlKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRyZWZlcmVyc0xpc3RBcnJheSkpIHsKICAgICAgJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSA9IHRyaW0oJHJlZmVyZXJzTGlzdEFycmF5WyRsb29wXSk7CiAgICAgICRsb29wKys7CiAgICB9CiAgICAkYXJyYXlSZWZlcmVycyA9IGFycmF5X2ZsaXAoJHJlZmVyZXJzTGlzdEFycmF5KTsKICAgIHJlc2V0KCRhcnJheVJlZmVyZXJzKTsKICAgICRsb29wID0gMDsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRhcnJheVJlZmVyZXJzKSkgewogICAgICAkYXJyYXlSZWZlcmVyc1trZXkoJGFycmF5UmVmZXJlcnMpXSA9IDA7CiAgICAgIG5leHQoJGFycmF5UmVmZXJlcnMpOwogICAgICAkbG9vcCsrOwogICAgfQogIH0gZWxzZSB7CiAgICAkYXJyYXlSZWZlcmVycyA9IGFycmF5KCk7CiAgfQogCiAgLyogSW5pdCByZWZlcmVudCBob3N0cyBzdGF0aXN0aWNzIGFycmF5ICovCiAgJGFycmF5SG9zdHMgPSBhcnJheSgpOwogCiAgLyogU3RlcCBmb3J3YXJkIGxvZyBmaWxlIHRvIGZpbGwgYXJyYXlzICovIAogIGlmIChmaWxlX2V4aXN0cygkcmVmZXJlcnNMb2dGaWxlKSkgewogICAgJGZwb2ludGVyID0gZm9wZW4oJHJlZmVyZXJzTG9nRmlsZSwgJ3InKTsKICAgIHdoaWxlICghZmVvZigkZnBvaW50ZXIpKSB7CiAgICAgIHVuc2V0KCRjdXJMaW5lKTsKICAgICAgdW5zZXQoJGxpbmVBcnJheSk7CiAgICAgIHVuc2V0KCR0aW1lU3RhbXApOwogICAgICB1bnNldCgkcmVmZXJlcik7CiAgICAgICRjdXJsaW5lID0gZmdldHMoJGZwb2ludGVyKTsKICAgICAgJGxpbmVBcnJheSA9IGV4cGxvZGUoJzsnLCAkY3VybGluZSk7CiAgICAgICR0aW1lU3RhbXAgPSAkbGluZUFycmF5WzBdOwogICAgICAkaG9zdCA9ICRsaW5lQXJyYXlbNF07CiAgICAgICRyZWZlcmVyID0gJGxpbmVBcnJheVs1XTsKICAgICAgLyogZmlsbCBob3N0cyBhcnJheSAqLwogICAgICAkaG9zdG5hbWUgPSBzdWJzdHIoJGhvc3QsIHN0cnBvcygkaG9zdCwgJzovLycpKzMgKTsKICAgICAgJGhvc3RuYW1lID0gc3Vic3RyKCRob3N0bmFtZSwgMCwgc3RycG9zKCRob3N0bmFtZSwgJy8nKSApOwogICAgICAkYXJyYXlIb3N0c1t0cmltKCRob3N0bmFtZSldKys7CiAgICAgIC8qIGZpbGwgcmVmZXJlcnMgYXJyYXkgKi8KICAgICAgaWYgKHRyaW0oJHJlZmVyZXIpICE9ICcnKQogICAgICAgICRhcnJheVJlZmVyZXJzW3RyaW0oJHJlZmVyZXIpXSsrOwogICAgICAvKiBmaWxsIHRpbWUgYXJyYXkgKi8KICAgICAgaWYgKHRyaW0oJHRpbWVTdGFtcCkpIHsKICAgICAgICAkYXJyYXlUaW1lWydhbGwnXSsrOwogICAgICAgIGlmICgoJHRpbWVTdGFtcCszNjAwKjI0KjM2NSkgPj0gJGN1clRpbWUpCiAgICAgICAgICAkYXJyYXlUaW1lWyd5ZWFyJ10rKzsKICAgICAgICBpZiAoKCR0aW1lU3RhbXArMzYwMCoyNCozMCkgPj0gJGN1clRpbWUpCiAgICAgICAgICAkYXJyYXlUaW1lWydtb250aCddKys7CiAgICAgICAgaWYgKCgkdGltZVN0YW1wKzM2MDAqMjQqNykgPj0gJGN1clRpbWUpCiAgICAgICAgICAkYXJyYXlUaW1lWyd3ZWVrJ10rKzsKICAgICAgICBpZiAoKCR0aW1lU3RhbXArMzYwMCoyNCkgPj0gJGN1clRpbWUpCiAgICAgICAgICAkYXJyYXlUaW1lWydkYXknXSsrOyAKICAgICAgfQogICAgfQogICAgZmNsb3NlKCRmcG9pbnRlcik7CiAgfQoKICAvKiBIVE1MIC0gSGVscCAqLwogIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ0hlbHAnKSAuICc8L2xlZ2VuZD4nKTsKICBidWZmZXI6OnN0cihfXygnQWxsIGJsb2NraW5ncyA6IG51bWJlciBvZiBibG9ja2VkIHJlZmVyZXJzIHNpbmNlIGJlZ2lubmluZyBvZiB0aGUgbG9nLicpKTsKICBidWZmZXI6OnN0cignPGJyLz4nKTsKICBidWZmZXI6OnN0cihfXygnWWVhcmx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAzNjUgZGF5cy4nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ01vbnRobHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDMwIGRheXMuJykpOwogIGJ1ZmZlcjo6c3RyKCc8YnIvPicpOwogIGJ1ZmZlcjo6c3RyKF9fKCdXZWVrbHkgOiBudW1iZXIgb2YgYmxvY2tlZCByZWZlcmVycyBzaW5jZSBsYXN0IDcgZGF5cy4nKSk7CiAgYnVmZmVyOjpzdHIoJzxici8+Jyk7CiAgYnVmZmVyOjpzdHIoX18oJ0RhaWx5IDogbnVtYmVyIG9mIGJsb2NrZWQgcmVmZXJlcnMgc2luY2UgbGFzdCAyNCBob3Vycy4nKSk7CiAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CgogIC8qIERvZXMgc3RhdGlzdGljcyBmaWxlIGV4aXN0cyA/ICovCiAgaWYgKGZpbGVfZXhpc3RzKCRyZWZlcmVyc0xvZ0ZpbGUpKSB7IAogICAgLyogSFRNTCAtIExvZyBmaWxlICovCiAgICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdWaWV3IGxvZycpIC4gJzwvbGVnZW5kPicpOwogICAgYnVmZmVyOjpzdHIoJzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IG92ZXJmbG93OiBhdXRvIj4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8cHJlPicpOwogICAgJHJlZmVyZXJzTG9nRmlsZUFycmF5ID0gZmlsZSgkcmVmZXJlcnNMb2dGaWxlKTsKICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRyZWZlcmVyc0xvZ0ZpbGVBcnJheSk7ICRpKyspIHsKICAgICAgYnVmZmVyOjpzdHIoJHJlZmVyZXJzTG9nRmlsZUFycmF5WyRpXSk7CiAgICB9CiAgICB1bnNldCgkcmVmZXJlcnNMb2dGaWxlQXJyYXkpOwogICAgYnVmZmVyOjpzdHIoJzwvcHJlPicpOwogICAgYnVmZmVyOjpzdHIoJzwvZGl2PicpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CgogICAgLyogSFRNTCAtIFRpbWUgc3RhdGlzdGljcyAqLwogICAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnVGltZSBzdGF0aXN0aWNzJykgLiAnPC9sZWdlbmQ+Jyk7CiAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0iYWxsIiBjbGFzcz0iZmxvYXQiPicgLiBfXygnQWxsIGJsb2NraW5ncyA6JykgLiAnPC9sYWJlbD4nKTsKICAgIGJ1ZmZlcjo6c3RyKCRhcnJheVRpbWVbJ2FsbCddLic8YnIvPicpOwogICAgYnVmZmVyOjpzdHIoJzxsYWJlbCBmb3I9InllYXIiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdZZWFybHkgOicpIC4gJzwvbGFiZWw+Jyk7CiAgICBidWZmZXI6OnN0cigkYXJyYXlUaW1lWyd5ZWFyJ10uJzxici8+Jyk7CiAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0ibW9udGgiIGNsYXNzPSJmbG9hdCI+JyAuIF9fKCdNb250aGx5IDonKSAuICc8L2xhYmVsPicpOwogICAgYnVmZmVyOjpzdHIoJGFycmF5VGltZVsnbW9udGgnXS4nPGJyLz4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSJ3ZWVrIiBjbGFzcz0iZmxvYXQiPicgLiBfXygnV2Vla2x5IDonKSAuICc8L2xhYmVsPicpOwogICAgYnVmZmVyOjpzdHIoJGFycmF5VGltZVsnd2VlayddLic8YnIvPicpOwogICAgYnVmZmVyOjpzdHIoJzxsYWJlbCBmb3I9ImRheSIgY2xhc3M9ImZsb2F0Ij4nIC4gX18oJ0RhaWx5IDonKSAuICc8L2xhYmVsPicpOwogICAgYnVmZmVyOjpzdHIoJGFycmF5VGltZVsnZGF5J10uJzxici8+Jyk7CiAgICBidWZmZXI6OnN0cignPC9maWVsZHNldD4nKTsKCiAgICAvKiBIVE1MIC0gUmVmZXJlciBzdGF0aXN0aWNzICovCiAgICBhcnNvcnQoJGFycmF5UmVmZXJlcnMpOwogICAgJGxvb3AgPSAwOwogICAgcmVzZXQoJGFycmF5UmVmZXJlcnMpOwogICAgYnVmZmVyOjpzdHIoJzxmaWVsZHNldD48bGVnZW5kPicgLiBfXygnUmVmZXJlcnMgc3RhdGlzdGljcycpIC4gJzwvbGVnZW5kPicpOwogICAgYnVmZmVyOjpzdHIoJzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IG92ZXJmbG93OiBhdXRvIj4nKTsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRhcnJheVJlZmVyZXJzKSkgewogICAgICBidWZmZXI6OnN0cignPGxhYmVsIGZvcj0iJy5rZXkoJGFycmF5UmVmZXJlcnMpLiciIHN0eWxlPSJ3aWR0aDogNDAwcHgiIGNsYXNzPSJmbG9hdCI+Jy5rZXkoJGFycmF5UmVmZXJlcnMpLicgOiA8L2xhYmVsPicpOwogICAgICBpZiAoJGFycmF5VGltZVsnYWxsJ10hPTApIHsKICAgICAgICBidWZmZXI6OnN0cigkYXJyYXlSZWZlcmVyc1trZXkoJGFycmF5UmVmZXJlcnMpXS4nICgnLm51bWJlcl9mb3JtYXQoJGFycmF5UmVmZXJlcnNba2V5KCRhcnJheVJlZmVyZXJzKV0vJGFycmF5VGltZVsnYWxsJ10qMTAwLCAyKS4nJSk8YnIvPicpOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZmZlcjo6c3RyKCcwICgwLjAwJSk8YnIvPicpOwogICAgICB9CiAgICAgIG5leHQoJGFycmF5UmVmZXJlcnMpOwogICAgICAkbG9vcCsrOwogICAgfQogICAgYnVmZmVyOjpzdHIoJzwvZGl2PicpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CgogICAgLyogSFRNTCAtIFJlZmVyZXIgaG9zdHMgc3RhdGlzdGljcyAqLwogICAgYXJzb3J0KCRhcnJheUhvc3RzKTsKICAgICRsb29wID0gMDsKICAgIHJlc2V0KCRhcnJheUhvc3RzKTsKICAgIGJ1ZmZlcjo6c3RyKCc8ZmllbGRzZXQ+PGxlZ2VuZD4nIC4gX18oJ1JlZmVyZXIgaG9zdHMgc3RhdGlzdGljcycpIC4gJzwvbGVnZW5kPicpOwogICAgYnVmZmVyOjpzdHIoJzxkaXYgc3R5bGU9ImhlaWdodDogMjAwcHg7IG92ZXJmbG93OiBhdXRvIj4nKTsKICAgIHdoaWxlICgkbG9vcCA8IGNvdW50KCRhcnJheUhvc3RzKSkgewogICAgICBpZiAoa2V5KCRhcnJheUhvc3RzKSAhPSAnJykgewogICAgICAgIGJ1ZmZlcjo6c3RyKCc8bGFiZWwgZm9yPSInLmtleSgkYXJyYXlIb3N0cykuJyIgc3R5bGU9IndpZHRoOiA0MDBweCIgY2xhc3M9ImZsb2F0Ij4nLmtleSgkYXJyYXlIb3N0cykuJyA6IDwvbGFiZWw+Jyk7CiAgICAgICAgaWYgKCRhcnJheVRpbWVbJ2FsbCddICE9IDApIHsKICAgICAgICAgIGJ1ZmZlcjo6c3RyKCRhcnJheUhvc3RzW2tleSgkYXJyYXlIb3N0cyldLicgKCcubnVtYmVyX2Zvcm1hdCgkYXJyYXlIb3N0c1trZXkoJGFycmF5SG9zdHMpXS8kYXJyYXlUaW1lWydhbGwnXSoxMDAsIDIpLiclKTxici8+Jyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlcjo6c3RyKCcwICgwLjAwJSk8YnIvPicpOwogICAgICAgIH0KICAgICAgfQogICAgICBuZXh0KCRhcnJheUhvc3RzKTsKICAgICAgJGxvb3ArKzsKICAgIH0KICAgIGJ1ZmZlcjo6c3RyKCc8L2Rpdj4nKTsKICAgIGJ1ZmZlcjo6c3RyKCc8L2ZpZWxkc2V0PicpOwogIH0gZWxzZSB7CiAgICBidWZmZXI6OnN0cignPGZpZWxkc2V0PjxsZWdlbmQ+JyAuIF9fKCdTdGF0aXN0aWNzJykgLiAnPC9sZWdlbmQ+Jyk7CiAgICBidWZmZXI6OnN0cihfXygnVGhlcmUgYXJlIG5vIGF2YWlsYWJsZSBzdGF0aXN0aWNzJykpOwogICAgYnVmZmVyOjpzdHIoJzwvZmllbGRzZXQ+Jyk7CiAgfQp9CgovKioqKiogRnVuY3Rpb25zIGRlY2xhcmF0aW9uICoqKioqLwpmdW5jdGlvbiBzYXZlUmVmZXJlckxpc3QoJHJlZmVyZXJBcnJheSwgJGZpbGVOYW1lKSB7CiAgJHRtcFJlZmVyZXJzRmlsZSA9IGRpcm5hbWUoX19GSUxFX18pLicvdG1wLnR4dCc7CgogIGlmICghKCRmcG9pbnRlciA9IGZvcGVuKCR0bXBSZWZlcmVyc0ZpbGUsICd3KycpKSkgewogICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gX18oJ0NvdWxkIG5vdCBjcmVhdGUgdGVtcCBmaWxlJykgLiAnICcgLiAkdG1wUmVmZXJlcnNGaWxlLiAnPC9oND4nKTsKICAgIHJldHVybiBmYWxzZTsKICB9IGVsc2UgewogICAgJGxvb3AgPSAwOwogICAgd2hpbGUgKCRsb29wIDwgY291bnQoJHJlZmVyZXJBcnJheSkpIHsKICAgICAgZndyaXRlKCRmcG9pbnRlciwgJHJlZmVyZXJBcnJheVskbG9vcF0uIlxuIik7CiAgICAgICRsb29wKys7CiAgICB9CiAgICBmY2xvc2UoJGZwb2ludGVyKTsKICAgIGlmICghY29weSgkdG1wUmVmZXJlcnNGaWxlLCAkZmlsZU5hbWUpKSB7CiAgICAgICBidWZmZXI6OnN0cignPGg0PicgLiBfXygnQ291bGQgbm90IGNvcHkgdGVtcCBmaWxlJykgLiAnICcgLiAkdG1wUmVmZXJlcnNGaWxlLicgJy4gX18oJ3RvIGZpbmFsIGZpbGUnKSAuICcgJyAuICRmaWxlTmFtZSAuICc8L2g0PicpOwogICAgICAgdW5saW5rKCR0bXBSZWZlcmVyc0ZpbGUpOwogICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgIHVubGluaygkdG1wUmVmZXJlcnNGaWxlKTsKICAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KfQoKZnVuY3Rpb24gc2F2ZU9wdGlvbnMoJiRwb3N0KSB7CiAgJHRtcE9wdGlvbnNGaWxlID0gZGlybmFtZShfX0ZJTEVfXykuJy9yZWZlcmVyc19vcHRpb25zLnBocCc7CiAgJG9wdGlvbnNGaWxlID0gRENfU0hBUkVfRElSLicvYmxvY2tyZWZlcmVyL3JlZmVyZXJzX29wdGlvbnMucGhwJzsKCiAgaWYgKCEoJGZwb2ludGVyID0gZm9wZW4oJHRtcE9wdGlvbnNGaWxlLCAndysnKSkpIHsKICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdDb3VsZCBub3QgY3JlYXRlIHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLiAnPC9oND4nKTsKICAgIHJldHVybiBmYWxzZTsKICB9IGVsc2UgewogICAgZndyaXRlKCRmcG9pbnRlciwgJzw/cGhwJy4iXG4iKTsKICAgIGZ3cml0ZSgkZnBvaW50ZXIsICckb3B0X2NoYXJzZXQ9IicuZGNfZW5jb2RpbmcuIlwiO1xuIik7CiAgICAkcG9zdGNvdW50ID0gY291bnQoJHBvc3QpOwogICAgJGxvb3AgPSAwOwogICAgcmVzZXQoJHBvc3QpOwogICAgd2hpbGUgKCRsb29wIDwgJHBvc3Rjb3VudCkgewogICAgICAkcG9zdGtleSA9IGtleSgkcG9zdCk7CiAgICAgIGlmICgkcG9zdGtleSAhPSAnb3B0aW9ucycpIHsKICAgICAgICBmd3JpdGUoJGZwb2ludGVyLCAnJCcuJHBvc3RrZXkuJz0iJy5zdHJfcmVwbGFjZSgnIicsJ1wiJyxjdXJyZW50KCRwb3N0KSkuIlwiO1xuIik7CiAgICAgIH0KICAgICAgbmV4dCgkcG9zdCk7CiAgICAgICRsb29wKys7CiAgICB9CiAgICBmd3JpdGUoJGZwb2ludGVyLCAnPz4nKTsKICAgIGZjbG9zZSgkZnBvaW50ZXIpOwogICAgaWYgKCFjb3B5KCR0bXBPcHRpb25zRmlsZSwgJG9wdGlvbnNGaWxlKSkgewogICAgICAgYnVmZmVyOjpzdHIoJzxoND4nIC4gX18oJ0NvdWxkIG5vdCBjb3B5IHRlbXAgZmlsZScpIC4gJyAnIC4gJHRtcE9wdGlvbnNGaWxlLicgJy4gX18oJ3RvIGZpbmFsIGZpbGUnKSAuICcgJyAuICRvcHRpb25zRmlsZSAuICc8L2g0PicpOwogICAgfSBlbHNlIHsKICAgICAgIGJ1ZmZlcjo6c3RyKCc8aDQ+JyAuIF9fKCdPcHRpb25zIHN1Y2Nlc3NmdWxseSBzYXZlZCcpIC4gJzwvaDQ+Jyk7CiAgICB9CiAgICB1bmxpbmsoJHRtcE9wdGlvbnNGaWxlKTsKICB9Cn0KPz4K";s:20:"blockreferer/LICENSE";s:1704:"Q29weXJpZ2h0IChDKSAyMDA1LTIwMDYgQXJuYXVkIEJvdWRvdS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKYXJlIG1ldDoKMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgoyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCklNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCkFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCkhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCkxJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgpTVUNIIERBTUFHRS4K";}}