# Name: smd_lately v0.12 # 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 LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjEyIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz NzoiU2hvdyByZWNlbnRseSB2aWV3ZWQvcG9wdWxhciBhcnRpY2xlcyI7czo0OiJjb2RlIjtz OjM4ODM6ImZ1bmN0aW9uIHNtZF9sYXRlbHkoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xv YmFsICRwcmVmcywgJHRoaXNhcnRpY2xlLCAkcGVybWxpbmtfbW9kZTsNCg0KCS8vIENoZWNr IGxvZ2dpbmcgaXMgb24NCglpZiAoICRwcmVmc1snbG9nZ2luZyddICE9ICdhbGwnKSB7DQoJ CXRyaWdnZXJfZXJyb3Ioc21kX3J2X2dUeHQoJ2xvZ2dpbmdfZW5hYmxlZCcpLCBFX1VTRVJf Tk9USUNFKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdi eScgPT4gJ1NNRF9DVVJSRU5UJywgLy8gRGVmYXVsdCBpcyB0aGUgSVAgYWRkcmVzcyBvZiB0 aGUgY3VycmVudCB2aXNpdG9yLiBDYW4gYmUgZW1wdHkgZm9yICdhbGwnIHZpc2l0b3JzDQoJ CSdzZWN0aW9uJyA9PiAnJywNCgkJJ3Nob3dfY3VycmVudCcgPT4gMCwNCgkJJ2Zvcm0nID0+ ICcnLA0KCQknbGltaXQnID0+IDEwLA0KCQknc29ydCcgPT4gJ3RpbWUgZGVzYycsDQoJCSd3 cmFwdGFnJyA9PiAnJywNCgkJJ2JyZWFrJyA9PiAnYnInLA0KCQknY2xhc3MnID0+ICdfX0ZV TkNUSU9OX18nLA0KCQknbGFiZWwnID0+ICcnLA0KCQknbGFiZWx0YWcnID0+ICcnLA0KCQkn ZGVidWcnID0+IDAsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNhbml0aXplIHNvcnQgb3B0aW9u cw0KCSRzb3J0Qml0cyA9IGRvX2xpc3QoJHNvcnQsICIgIik7DQoJaWYgKCFpc3NldCgkc29y dEJpdHNbMV0pIHx8ICFpbl9hcnJheSgkc29ydEJpdHNbMV0sIGFycmF5KCdkZXNjJywgJ2Fz YycpKSkgew0KCQkkc29ydEJpdHNbMV0gPSAnZGVzYyc7DQoJCSRzb3J0ID0gam9pbigiICIs ICRzb3J0Qml0cyk7DQoJfQ0KDQoJLy8gSVAgYWRkcmVzcyBjbGF1c2UNCgkkaXAgPSAnJzsN CglpZiAoJGJ5ID09ICdTTURfQ1VSUkVOVCcpIHsNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygn cmVtb3RlX2FkZHInKSkgew0KCQkJJGlwID0gcmVtb3RlX2FkZHIoKTsNCgkJfSBlbHNlIHsN CgkJCSRpcCA9IHNlcnZlclNldCgnUkVNT1RFX0FERFInKTsNCgkJCWlmICgoJGlwID09ICcx MjcuMC4wLjEnIHx8ICRpcCA9PSBzZXJ2ZXJTZXQoJ1NFUlZFUl9BRERSJykpICYmIHNlcnZl clNldCgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKSkgew0KCQkJCSRpcHMgPSBleHBsb2RlKCcs ICcsIHNlcnZlclNldCgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKSk7DQoJCQkJJGlwID0gJGlw c1swXTsNCgkJCX0NCgkJfQ0KCQlpZiAoJGlwKSB7DQoJCQkkaXAgPSAiIEFORCBpcD0nIi5k b1NsYXNoKCRpcCkuIiciOw0KCQl9DQoJfSBlbHNlIGlmICgkYnkgPT0gJ1NNRF9BTEwnKSB7 DQoJCSRieSA9ICcnOw0KCX0NCg0KCS8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBpbmNsdWRlIHRo ZSBjdXJyZW50IGFydGljbGUNCgkvLyBOb3RlIHRoZSByZWdleHAgaXMgYW5jaG9yZWQgdG8g dGhlIGVuZCB3aXRoIGEgJA0KCSR0aGlzaWNsZSA9ICcnOw0KCWlmIChpc3NldCgkdGhpc2Fy dGljbGUpKSB7DQoJCWlmICghJHNob3dfY3VycmVudCkgew0KCQkJJHVybHRpdGxlID0gJHRo aXNhcnRpY2xlWyd1cmxfdGl0bGUnXTsNCgkJCSR0aGlzaWNsZSA9ICIgQU5EIHBhZ2UgTk9U IFJFR0VYUCAnJHVybHRpdGxlJCciOw0KCQl9DQoJfQ0KDQoJLy8gRmlsdGVyIG91dCBhcnRp Y2xlX2xpc3QgcGFnZXMgYW5kIG90aGVyICh1bilkZXNpcmFibGVzDQoJJHJ1bGVzID0gYXJy YXkoDQoJCSJwYWdlIE5PVCBSRUdFWFAgJ14vJCciLCAvLyBHb29kYnllIGZyb250IHBhZ2UN CgkJInBhZ2UgTk9UIFJFR0VYUCAncT0nIiwgLy8gR29vZGJ5ZSBzZWFyY2hlcw0KCQkicGFn ZSBOT1QgUkVHRVhQICdjPSciLCAvLyBHb29kYnllIGNhdCBsaXN0cw0KCQkicGFnZSBOT1Qg UkVHRVhQICdjYXRlZ29yeT0nIiwNCgkJInBhZ2UgTk9UIFJFR0VYUCAnXi9jYXRlZ29yeS8n IiwNCgkJInBhZ2UgTk9UIFJFR0VYUCAnYXV0aG9yPSciLA0KCQkicGFnZSBOT1QgUkVHRVhQ ICdeL2F1dGhvci8nIiwNCgkpOw0KDQoJaWYgKCRzZWN0aW9uKSB7DQoJCSRzZWN0aW9uID0g ZG9fbGlzdCgkc2VjdGlvbik7DQoJCSRzdWJydWxlID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAo JHNlY3Rpb24gYXMgJHNlYykgew0KCQkJaWYgKCRwZXJtbGlua19tb2RlID09ICdtZXNzeScp IHsNCgkJCQkkc3VicnVsZVtdID0gInBhZ2UgUkVHRVhQICdzPSRzZWMnIjsNCgkJCX0gZWxz ZSB7DQoJCQkJJHN1YnJ1bGVbXSA9ICJwYWdlIFJFR0VYUCAnXi8kc2VjJyBBTkQgcGFnZSBO T1QgUkVHRVhQICdeLyRzZWMvPyQnIjsNCgkJCX0NCgkJfQ0KCQkkc3VicnVsZSA9ICcoJyAu IGpvaW4oJyBPUiAnLCAkc3VicnVsZSkgLiAnKSc7DQoJCSRydWxlc1tdID0gJHN1YnJ1bGU7 DQoJfSBlbHNlIHsNCgkJLy8gRXhjbHVkZSBhbnkgcm93cyB0aGF0IGp1c3QgY29udGFpbiB0 aGUgc2VjdGlvbiAoaS5lLiBhcnRpY2xlIGxpc3QgcGFnZXMpDQoJCSRhbGxTZWNzID0gc2Fm ZV9jb2x1bW4oJ25hbWUnLCAndHhwX3NlY3Rpb24nLCAiMT0xIiwgJGRlYnVnKTsNCgkJJHJ1 bGVzW10gPSAicGFnZSBOT1QgUkVHRVhQICdeLygiIC4gam9pbigifCIsICRhbGxTZWNzKSAu ICIpLz8kJyI7DQoJfQ0KDQoJJHJ1bGVzID0gJyBBTkQgJyAuIGpvaW4oJyBBTkQgJywgJHJ1 bGVzKTsNCg0KCSRxdWVyeSA9ICdTRUxFQ1QgY291bnQocGFnZSkgYXMgcG9wdWxhcml0eSwg cGFnZSwgTUFYKHRpbWUpIGFzIHRpbWUgRlJPTSAnLlBGWC4ndHhwX2xvZyBXSEVSRSAxPTEn LiRpcC4kdGhpc2ljbGUuJHJ1bGVzLicgQU5EIHN0YXR1cyA9IDIwMCBHUk9VUCBCWSBwYWdl IE9SREVSIEJZICcuJHNvcnQ7DQoJJHJzID0gZ2V0Um93cygkcXVlcnksICRkZWJ1Zyk7DQoN CglpZiAoJGRlYnVnID4gMSkgew0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBMb29wIHVudGls IGxpbWl0IHJlYWNoZWQNCgkkY291bnQgPSAwOw0KCSRvdXQgPSBhcnJheSgpOw0KCWlmICgk cnMpIHsNCgkJZm9yZWFjaCAoJHJzIGFzICRyb3cpIHsNCgkJCWlmICgkbGltaXQgPiAwICYm IGlzX251bWVyaWMoJGxpbWl0KSAmJiAkY291bnQgPT0gJGxpbWl0KSBicmVhazsNCgkJCSR1 cmxwYXJ0cyA9IGV4cGxvZGUoJy8nLCAkcm93WydwYWdlJ10pOw0KCQkJJGRhcnRpY2xlID0g c2FmZV9yb3coJyosIHVuaXhfdGltZXN0YW1wKFBvc3RlZCkgYXMgdVBvc3RlZCwgdW5peF90 aW1lc3RhbXAoRXhwaXJlcykgYXMgdUV4cGlyZXMsIHVuaXhfdGltZXN0YW1wKExhc3RNb2Qp IGFzIHVMYXN0TW9kJywgJ3RleHRwYXR0ZXJuJywgInVybF90aXRsZT0nIi4kdXJscGFydHNb Y291bnQoJHVybHBhcnRzKS0xXS4iJyIpOw0KCQkJaWYgKCRkYXJ0aWNsZSkgew0KCQkJCWFy dGljbGVfcHVzaCgpOw0KCQkJCXBvcHVsYXRlQXJ0aWNsZURhdGEoJGRhcnRpY2xlKTsNCgkJ CQkkb3V0W10gPSAoJHRoaW5nKSA/IHBhcnNlKCR0aGluZykgOiAoKCRmb3JtKSA/IHBhcnNl X2Zvcm0oJGZvcm0pIDogaHJlZigkZGFydGljbGVbJ1RpdGxlJ10sIHBlcm1saW5rdXJsKCRk YXJ0aWNsZSkpKTsNCgkJCQlhcnRpY2xlX3BvcCgpOw0KCQkJCSRjb3VudCsrOw0KCQkJfQ0K CQl9DQoJfQ0KCXJldHVybiAoJG91dCkgPyBkb0xhYmVsKCRsYWJlbCwgJGxhYmVsdGFnKS5k b1dyYXAoJG91dCwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKSA6ICcnOw0KfQ0KDQovLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIFBsdWdpbi1zcGVjaWZpYyByZXBsYWNlbWVu dCBzdHJpbmdzIC0gbG9jYWxpc2UgYXMgcmVxdWlyZWQNCmZ1bmN0aW9uIHNtZF9ydl9nVHh0 KCR3aGF0LCAkYXR0cyA9IGFycmF5KCkpIHsNCgkkbGFuZyA9IGFycmF5KA0KCQknbG9nZ2lu Z19lbmFibGVkJyA9PiAnTG9nZ2luZyBtdXN0IGJlIHNldCB0byAiQWxsIGhpdHMiIGluIEJh c2ljIFBlZnMuJywNCgkpOw0KCXJldHVybiBzdHJ0cigkbGFuZ1skd2hhdF0sICRhdHRzKTsN Cn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3Mi O3M6MToiMCI7czo0OiJoZWxwIjtzOjcxMjQ6IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8aDE+ c21kX2xhdGVseTwvaDE+CgoJPHA+TGlzdCB0aGUgbW9zdCByZWNlbnQgYXJ0aWNsZXMgdmll d2VkIGJ5IHRoZSBjdXJyZW50IHZpc2l0b3Igb3IsIGFsdGVybmF0aXZlbHksIGFsbCB2aXNp dG9ycy4gQ2FuIGFsc28gb3JkZXIgYnkgcG9wdWxhcml0eSAobW9zdCB2aWV3ZWQpLjwvcD4K Cgk8aDIgaWQ9ImZlYXR1cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5MaXN0IHJl Y2VudGx5IHZpZXdlZCBhcnRpY2xlczogdXNlZnVsIG9uIHByb2R1Y3QgcGFnZXMgb3IgaW4g c2hvcHBpbmcgY2FydDwvbGk+CgkJPGxpPlNob3cgYSBsaXN0IG9mIHRoZSBtb3N0IHBvcHVs YXIgYXJ0aWNsZXM8L2xpPgoJCTxsaT5MaW1pdCBlaXRoZXIgbGlzdCBieSBzZWN0aW9uIGlm IHlvdSB3aXNoPC9saT4KCQk8bGk+VXNlcyB0aGUgdmlzaXRvciBsb2dzPC9saT4KCQk8bGk+ QXV0b21hdGljYWxseSBmaWx0ZXJzIG91dCBhcnRpY2xlIGxpc3QgcGFnZXMsIGNhdGVnb3J5 LCBhdXRob3Igb3Igc2VhcmNoIHZpc2l0czwvbGk+Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9y Ij5BdXRob3IgLyBjcmVkaXRzPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nv bi5jb20vY29udGFjdCI+U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDIgaWQ9Imluc3RhbGwi Pkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8cCBjbGFzcz0icmVxdWly ZWQiPlJlcXVpcmVzIExvZ2dpbmcgdG8gYmUgc2V0IHRvIDxlbT5BbGwgaGl0czwvZW0+ICh3 aWxsIGlzc3VlIGEgd2FybmluZyBvZiBub3QpPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVn aW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5z LzExMTAvc21kX2xhdGVseSI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9 Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRo ZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0m Z3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0 IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5w aHA/aWQ9MzEzNDEiPmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBv cnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxw PlRvIHVuaW5zdGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVn aW5zIHBhZ2UuPC9wPgoKCTxoMiBpZD0ibnAiPjxjb2RlPiZsdDt0eHA6c21kX2xhdGVseSZn dDs8L2NvZGU+PC9oMj4KCgk8cD5QbGFjZSB0aGlzIHRhZyBhbnl3aGVyZSB5b3Ugd2lzaCB0 byBkaXNwbGF5IGEgbGlzdCBvZiByZWNlbnRseSB2aWV3ZWQgYXJ0aWNsZXMuIFRoZSB0YWcg bWF5IGJlIHVzZWQgYXMgYSBzaW5nbGUgdGFnICh3aXRoIGFuIG9wdGlvbmFsIGZvcm0pIG9y IGFzIGEgY29udGFpbmVyLiBJbnNpZGUgdGhlIGZvcm0vY29udGFpbmVyIHlvdSBjYW4gdXNl IGFueSBzdGFuZGFyZCBhcnRpY2xlIHRhZ3MgJiM4MjEyOyA8Y29kZT4mbHQ7dHhwOnRpdGxl IC8mZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0O3R4cDpleGNlcnB0IC8mZ3Q7PC9jb2RlPiwgPGNv ZGU+Jmx0O3R4cDpwb3N0ZWQgLyZndDs8L2NvZGU+LCBldGMgJiM4MjEyOyB0byBmb3JtYXQg dGhlIGxpc3QgaG93ZXZlciB5b3UgbGlrZS4gV2l0aG91dCBlaXRoZXIgYSBmb3JtIG9yIGEg Y29udGFpbmVyLCB0aGUgcGx1Z2luIGRpc3BsYXlzIGEgaHlwZXJsaW5rZWQgdGl0bGUgdG8g dGhlIGFydGljbGUuPC9wPgoKCTxwPlRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBjYW4gYmUg dXNlZCB0byBtb2RpZnkgdGhlIHBsdWdpbiYjODIxNztzIG91dHB1dDo8L3A+CgoJPGgzIGNs YXNzPSJhdHRzIj5BdHRyaWJ1dGVzPC9oMz4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5ieTwvc3Bhbj4gOiB1c2UgPGNvZGU+Ynk9JnF1b3Q7JnF1b3Q7PC9jb2RlPiBvciA8 Y29kZT5ieT0mcXVvdDtTTURfQUxMJnF1b3Q7PC9jb2RlPiB0byB2aWV3IHRoZSBtb3N0IHJl Y2VudCBhcnRpY2xlcyBieSBhbGwgc2l0ZSB2aXNpdG9ycy4gQnkgZGVmYXVsdCAoaS5lLiBp ZiB0aGUgYXR0cmlidXRlIGlzIG9taXR0ZWQpIHRoZSBwbHVnaW4gb25seSBzaG93cyB0aGUg cmVjZW50IGFydGljbGVzIHZpZXdlZCBieSB0aGUgY3VycmVudCB2aXNpdG9yPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNlY3Rpb248L3NwYW4+IDogY2hvb3NlIHRvIHNob3cg YXJ0aWNsZXMgb25seSBmcm9tIHRoaXMgbGlzdCBvZiBzZWN0aW9ucy4gRGVmYXVsdDogdW5z ZXQgKGkuZS4gZnJvbSBhbGwgc2VjdGlvbnMpLiA8c3BhbiBjbGFzcz0icmVxdWlyZWQiPk5v dGUgdGhhdCB5b3UgbXVzdCBiZSB1c2luZyBlaXRoZXIgbWVzc3kgbW9kZSBvciBhIHBlcm1s aW5rIG1vZGUgd2l0aCA8Y29kZT4vc2VjdGlvbjwvY29kZT4gaW4gaXQgdG8gZmlsdGVyIGJ5 IHNlY3Rpb248L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNob3dfY3Vy cmVudDwvc3Bhbj4gOiBEaXNwbGF5IHRoZSBhcnRpY2xlIGJlaW5nIHZpZXdlZCBpbiB0aGUg bGlzdDogMT1ZZXM7IDA9Tm8uIElnbm9yZWQgaWYgaW4gYW4gYXJ0aWNsZV9saXN0IHBhZ2Uu IERlZmF1bHQ6IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+c29ydDwvc3Bhbj4g OiBvcmRlciB0aGUgbGlzdCBieSBlaXRoZXIgPGNvZGU+dGltZTwvY29kZT4sIG9yIDxjb2Rl PnBvcHVsYXJpdHk8L2NvZGU+LiBBZGQgPGNvZGU+YXNjPC9jb2RlPiBvciA8Y29kZT5kZXNj PC9jb2RlPiB0byBjaG9vc2UgYXNjZW5kaW5nIG9yIGRlc2NlbmRpbmcgc29ydCBvcmRlci4g RGVmYXVsdDogPGNvZGU+dGltZSBkZXNjPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdG5tIj5mb3JtPC9zcGFuPiA6IGlmIHlvdSBwcmVmZXIgdG8gdXNlIGEgZm9ybSBpbnN0 ZWFkIG9mIHRoZSBjb250YWluZXIgdG8gaG9sZCB5b3VyIG1hcmt1cCBhbmQgdGFncywgc3Bl Y2lmeSBpdCBoZXJlLiBEZWZhdWx0OiB1bnNldC48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+bGltaXQ8L3NwYW4+IDogc2hvdyB0aGlzIG1hbnkgaXRlbXMgaW4gdGhlIGxpc3Qu IDAgPSB1bmxpbWl0ZWQuIERlZmF1bHQ6IDEwPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPndyYXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0cyBicmFj a2V0cywgdG8gd3JhcCB0aGUgbGlzdCB3aXRoLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgd3JhcHRhZy4gRGVm YXVsdDogPGNvZGU+c21kX2xhdGVseTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+YnJlYWs8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0cyBicmFj a2V0cywgdG8gd3JhcCBlYWNoIGl0ZW0gd2l0aC4gRGVmYXVsdDogPGNvZGU+YnI8L2NvZGU+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxhYmVsPC9zcGFuPiA6IHRoZSBsYWJl bCB0ZXh0IHRvIGFkZCB0byB0aGUgdG9wIG9mIHRoZSBsaXN0LiBEZWZhdWx0OiB1bnNldDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5sYWJlbHRhZzwvc3Bhbj4gOiB0aGUgKFgp SFRNTCB0YWcsIHdpdGhvdXQgaXRzIGJyYWNrZXRzLCB0byB3cmFwIHRoZSBsYWJlbCB3aXRo LiBEZWZhdWx0OiB1bnNldDwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0iY2F2ZWF0cyI+Q2F2ZWF0 czwvaDM+CgoJPHA+U2luY2UgdGhlIHBsdWdpbiB1c2VzIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBsb2dzIHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGV5IGFyZSBiZWlu ZyB1c2VkIChBZG1pbi0mZ3Q7QmFzaWMgUHJlZnMpLiBJdCBhbHNvIG1lYW5zIHRoYXQgYW55 IHZpc2l0b3JzIHVzaW5nIGFuIGFub255bWlzaW5nIHByb3h5IHdpbGwgZ2V0IHNwdXJpb3Vz IChvciBubykgcmVzdWx0cy4gVGhlaXIgbG9zcy48L3A+CgoJPGgyIGNsYXNzPSJleGFtcGxl cyI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IHJlY2VudCBhcnRp Y2xlIGxpc3QgZm9yIGN1cnJlbnQgdmlzaXRvcjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkgLyZndDsKPC9jb2RlPjwv cHJlPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI6IHJlY2VudCBhcnRpY2xlcyBmb3IgYWxs IHZpc2l0b3JzPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX2xhdGVseSBieT0mcXVvdDsmcXVvdDsgc2VjdGlvbj0mcXVvdDthcmNo aXZlLCBhYm91dCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+T25seSBzaG93cyB0 aGUgYXJ0aWNsZXMgdmlld2VkIGZyb20gdGhlICYjODIxNjthcmNoaXZlJiM4MjE3OyBhbmQg JiM4MjE2O2Fib3V0JiM4MjE3OyBzZWN0aW9ucy48L3A+CgoJPGgzIGlkPSJlZzMiPkV4YW1w bGUgMzogbW9zdCBwb3B1bGFyIGFydGljbGVzIGFjcm9zcyB0aGUgc2l0ZTwvaDM+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkg Ynk9JnF1b3Q7JnF1b3Q7IHNvcnQ9JnF1b3Q7cG9wdWxhcml0eSZxdW90OyAgLyZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPldpdGhvdXQgdXNpbmcgdGhlIDxjb2RlPmJ5PC9jb2RlPiBhdHRy aWJ1dGUsIHRoaXMgd291bGQgZ2l2ZSB0aGUgbW9zdCBwb3B1bGFyIGFydGljbGVzIGZvciB0 aGUgY3VycmVudCB2aXNpdG9yICYjODIxMjsgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQh PC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ6IHRhZyBhcyBhIGNvbnRhaW5lcjwvaDM+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9s YXRlbHkgYnk9JnF1b3Q7JnF1b3Q7CiAgICAgd3JhcHRhZz0mcXVvdDt1bCZxdW90OyBicmVh az0mcXVvdDtsaSZxdW90OyBsaW1pdD0mcXVvdDs2JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnBl cm1saW5rJmd0OyZsdDt0eHA6dGl0bGUgLyZndDsmbHQ7L3R4cDpwZXJtbGluayZndDsmbHQ7 YnIgLyZndDsKICAgJmx0O3R4cDpwb3N0ZWQgLyZndDsgYnkgJmx0O3R4cDphdXRob3IgLyZn dDsKJmx0Oy90eHA6c21kX2xhdGVseSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPlNob3dzIHRo ZSA2IG1vc3QgcmVjZW50IGFydGljbGVzIGFjY2Vzc2VkIGJ5IGFueSBzaXRlIHZpc2l0b3Iu IFRoZSB1bm9yZGVyZWQgbGlzdCBvdXRwdXQgY29udGFpbnMgYSBwZXJtbGlua2VkIHRpdGxl LCB0aGUgZGF0ZSB0aGUgYXJ0aWNsZSB3YXMgcG9zdGVkIGFuZCB0aGUgYXJ0aWNsZSYjODIx NztzIGF1dGhvci48L3A+CgoJPGgzIGlkPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDM+CgoJ PHA+MjMgSnVsIDA5IHwgMC4xIHwgSW5pdGlhbCByZWxlYXNlPGJyIC8+CjI0IEp1bCAwOSB8 IDAuMTEgfCBNYWRlIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggPHNwYW4gY2xhc3M9ImNh cHMiPlRYUDwvc3Bhbj4gNC4wLjg8YnIgLz4KMTAgQXVnIDA5IHwgMC4xMiB8IE5ldmVyIGFz c3VtZSB3aGF0IHJlbWFpbnMgaW4gdGhlIGZpbHRlcmVkIDxzcGFuIGNsYXNzPSJjYXBzIj5V Ukw8L3NwYW4+IGlzIGFjdHVhbGx5IGFuIGFydGljbGU8L3A+Cgo8L2Rpdj4KPCEtLSAqKiog QkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiNzbWRf aGVscCB7IGxpbmUtaGVpZ2h0OjEuNSA7fQojc21kX2hlbHAgY29kZSB7IGZvbnQtd2VpZ2h0 OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3VyaWVyLCBtb25vc3Bh Y2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAgY29kZS5ibG9jayB7 IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgYmFja2dyb3Vu ZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEwcHggMTBweCAyMHB4 OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIw cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7 IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRk aW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNl cmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMjc1Njg1OyBmb250OiBib2xkIDEycHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsg bGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xv cjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFw eCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGln bjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxw IHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxw IHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtj b2xvcjpyZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0K I3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioq IEVORCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiNzY5ZmNkZWQ0Njcx MTM3MzFiNTVkMmU0MTQ5YmI1MzUiO30=