# Name: smd_write_cats v0.20 # Type: Admin side plugin # Add categories directly from the Write tab # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE0OiJzbWRfd3JpdGVfY2F0cyI7czo2OiJhdXRob3IiO3M6 MTE6IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRh d3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4yMCI7czoxMToiZGVzY3JpcHRpb24i O3M6NDI6IkFkZCBjYXRlZ29yaWVzIGRpcmVjdGx5IGZyb20gdGhlIFdyaXRlIHRhYiI7czo0 OiJjb2RlIjtzOjMwNTE6ImlmIChAdHhwaW50ZXJmYWNlID09ICdhZG1pbicpIHsNCglyZWdp c3Rlcl9jYWxsYmFjaygnc21kX3dyaXRlY2F0JywgJ2FydGljbGVfdWknLCAnY2F0ZWdvcmll cycpOw0KCXJlZ2lzdGVyX2NhbGxiYWNrKCdzbWRfd3JpdGVjYXRfaW5zZXJ0JywgJ2FydGlj bGUnLCAnZWRpdCcsIDEpOw0KCXJlZ2lzdGVyX2NhbGxiYWNrKCdzbWRfd3JpdGVjYXRfaW5z ZXJ0JywgJ2FydGljbGUnLCAnY3JlYXRlJywgMSk7DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KZnVuY3Rpb24gc21kX3dyaXRlY2F0KCRldnQsICRzdHAsICRkZmx0LCAk cnMpIHsNCgkkY2F0Ym94ID0gJyc7DQoJaWYoaGFzX3ByaXZzKCdjYXRlZ29yeScpKSB7DQoJ CSRjYXRib3ggPSBncmFmKCc8bGFiZWwgZm9yPSJzbWRfd3JpdGVjYXQiPicuc21kX3dyaXRl Y2F0X2dUeHQoJ25ld19jYXRfbGFiZWwnKS4nPC9sYWJlbD4nLmJyLmZJbnB1dCgndGV4dCcs ICdzbWRfY2F0ZWdvcnknLCAnJywgJ2VkaXQnLCAnJywgJycsICcnLCAnJywgJ3NtZF93cml0 ZWNhdCcpLCAnIGNsYXNzPSJjYXRlZ29yeSInKTsNCgl9DQoJcmV0dXJuICRkZmx0LiRjYXRi b3g7DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gc21kX3dy aXRlY2F0X2luc2VydCgkZXZ0LCAkc3RwKSB7DQoJJHNhdmUgPSBncHMoJ3NhdmUnKTsNCgkk cHVibGlzaCA9IGdwcygncHVibGlzaCcpOw0KCSRkbG0gPSBnZXRfcHJlZignc21kX3dyaXRl X2NhdHNfcGFyZW50X2RlbGltJywgJy0+Jyk7DQoJJG9yZCA9IGdldF9wcmVmKCdzbWRfd3Jp dGVfY2F0c19jaGlsZF9maXJzdCcsICcwJyk7DQoNCglpZiAoaGFzX3ByaXZzKCdjYXRlZ29y eScpICYmICgkc2F2ZSB8fCAkcHVibGlzaCkpIHsNCgkJJG5ld2NhdHMgPSBncHMoJ3NtZF9j YXRlZ29yeScpOw0KCQlpZiAoJG5ld2NhdHMpIHsNCgkJCSRuZXdjYXRzID0gZG9fbGlzdCgk bmV3Y2F0cyk7DQoJCQkkY2F0cyA9ICRwYXJlbnRzID0gYXJyYXkoKTsNCgkJCWZvcmVhY2gg KCRuZXdjYXRzIGFzICRuZXdjYXQpIHsNCgkJCQkkY2F0cGFydHMgPSBkb19saXN0KCRuZXdj YXQsICRkbG0pOw0KCQkJCWlmIChjb3VudCgkY2F0cGFydHMpID09IDIpIHsNCgkJCQkJaWYo aXNzZXQoJGNhdHBhcnRzWyRvcmRdKSkgew0KCQkJCQkJaWYgKCRjYXRwYXJ0c1skb3JkXSA9 PSAnJykgew0KCQkJCQkJCSRwYXJlbnRzW10gPSAncm9vdCc7DQoJCQkJCQl9IGVsc2Ugew0K CQkJCQkJCSRwYXJlbnRzW10gPSAkY2F0cGFydHNbJG9yZF07DQoJCQkJCQl9DQoJCQkJCX0g ZWxzZSB7DQoJCQkJCQkkcGFyZW50c1tdID0gJ3Jvb3QnOw0KCQkJCQl9DQoJCQkJCSRjYXRz W10gPSBpc3NldCgkY2F0cGFydHNbISRvcmRdKSA/ICRjYXRwYXJ0c1shJG9yZF0gOiAnJzsN CgkJCQl9IGVsc2Ugew0KCQkJCQkkcGFyZW50c1tdID0gJ3Jvb3QnOw0KCQkJCQkkY2F0c1td ID0gJGNhdHBhcnRzWzBdOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gR2V0IGFsbCBjYXRzIGFu ZCBwYXJlbnRzIGluIG9uZSBzd29vcCAtLSBtb3JlIGVmZmljaWVudCB0aGFuIG9uZSBieSBv bmUNCgkJCSRmaW5kYWxsID0gInRpdGxlIElOICgnIi5qb2luKCInLCciLCBkb1NsYXNoKGFy cmF5X3VuaXF1ZShhcnJheV9tZXJnZSgkcGFyZW50cywgJGNhdHMpKSkpLiInKSBBTkQgdHlw ZT0nYXJ0aWNsZSciOw0KCQkJJGV4aXN0cyA9IHNhZmVfY29sdW1uKCd0aXRsZScsICd0eHBf Y2F0ZWdvcnknLCAkZmluZGFsbCk7DQoJCQkkZXhpc3RzID0gYXJyYXlfbWFwKCdzdHJ0b2xv d2VyJywgJGV4aXN0cyk7DQoNCgkJCSRjdHIgPSAxOw0KCQkJZm9yZWFjaCAoJGNhdHMgYXMg JGlkeCA9PiAkbmV3Y2F0KSB7DQoJCQkJaWYgKCFlbXB0eSgkbmV3Y2F0KSkgew0KCQkJCQkk Y2F0Y21wID0gc3RydG9sb3dlcigkbmV3Y2F0KTsNCgkJCQkJaWYgKGluX2FycmF5KCRjYXRj bXAsICRleGlzdHMpKSB7DQoJCQkJCQkkcmV0ID0gdHJ1ZTsNCgkJCQkJCSRuYW1lID0gc3Ry dG9sb3dlcihzYW5pdGl6ZUZvclVybCgkbmV3Y2F0KSk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJ CQkkdGl0bGUgPSBkb1NsYXNoKCRuZXdjYXQpOw0KCQkJCQkJJG5hbWUgPSBzdHJ0b2xvd2Vy KHNhbml0aXplRm9yVXJsKCR0aXRsZSkpOw0KCQkJCQkJJHBhcmNtcCA9IHN0cnRvbG93ZXIo JHBhcmVudHNbJGlkeF0pOw0KCQkJCQkJJHBhcmVudCA9IGluX2FycmF5KCRwYXJjbXAsICRl eGlzdHMpID8gc3RydG9sb3dlcihzYW5pdGl6ZUZvclVybCgkcGFyZW50c1skaWR4XSkpIDog J3Jvb3QnOw0KCQkJCQkJJHJldCA9IHNhZmVfaW5zZXJ0KCd0eHBfY2F0ZWdvcnknLCAibmFt ZT0nJG5hbWUnLCB0eXBlPSdhcnRpY2xlJywgcGFyZW50PSckcGFyZW50JywgdGl0bGU9JyR0 aXRsZSciKTsNCg0KCQkJCQkJLy8gTWFrZSBhIG5vdGUgb2YgdGhpcyBvbmUgc28gaXQgY2Fu IGJlIHJlamVjdGVkIGlmIGl0IGFwcGVhcnMgbGF0ZXIgaW4gdGhlIGxpc3QsIG9yIHVzZWQg YXMgYSBwYXJlbnQgaW4gc3Vic2VxdWVudCBlbnRyaWVzDQoJCQkJCQkkZXhpc3RzWyR0aXRs ZV0gPSBzdHJ0b2xvd2VyKCR0aXRsZSk7DQoJCQkJCX0NCg0KCQkJCQlpZiAoJHJldCAmJiAk Y3RyIDw9IDIgJiYgJG5hbWUgIT0gJ3Jvb3QnKSB7DQoJCQkJCQkkX1BPU1RbJ0NhdGVnb3J5 Jy4kY3RyXSA9ICRuYW1lOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCSRjdHIrKzsNCgkJCX0NCgkJ CXJlYnVpbGRfdHJlZV9mdWxsKCdhcnRpY2xlJyk7DQoJCX0NCgl9DQp9DQoNCi8vIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gUGx1Z2luLXNwZWNpZmljIHJlcGxhY2VtZW50IHN0 cmluZ3MgLSBsb2NhbGlzZSBhcyByZXF1aXJlZA0KLy8gVE9ETzogbWFrZSB0aGVzZSBpbnRv IGEgdGV4dHBhY2sgd2hlbiBwbHVnaW4gY29tcG9zZXIgc3VwcG9ydHMgdGhlbQ0KZnVuY3Rp b24gc21kX3dyaXRlY2F0X2dUeHQoJHdoYXQsICRhdHRzID0gYXJyYXkoKSkgew0KCSRsYW5n ID0gYXJyYXkoDQoJCSduZXdfY2F0X2xhYmVsJyA9PiAnT3IgbmV3IGNhdGVnb3JpZXMnLA0K CSk7DQoJcmV0dXJuIHN0cnRyKCRsYW5nWyR3aGF0XSwgJGF0dHMpOw0KfSI7czo0OiJ0eXBl IjtzOjE6IjMiO3M6NToib3JkZXIiO3M6MToiNSI7czo1OiJmbGFncyI7czoxOiIwIjtzOjQ6 ImhlbHAiO3M6NTQwMzoiPGRpdiBpZD0ic21kX2hlbHAiPgoKCTxoMT5zbWRfd3JpdGVfY2F0 czwvaDE+CgoJPHA+QWRkIGNhdGVnb3JpZXMgZGlyZWN0bHkgZnJvbSB0aGUgV3JpdGUgdGFi IHdpdGhvdXQgaGF2aW5nIHRvIHZpc2l0IHRoZSBDYXRlZ29yaWVzIHRhYiBmaXJzdC48L3A+ CgoJPGgyPkF1dGhvciAvIGNyZWRpdHM8L2gyPgoKCTxwPldyaXR0ZW4gYnkgPGEgaHJlZj0i aHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbnRhY3QiPlN0ZWYgRGF3c29uPC9hPjwvcD4KCgk8 aDI+SW5zdGFsbGF0aW9uIC8gdW5pbnN0YWxsYXRpb248L2gyPgoKCTxwIGNsYXNzPSJpbXBv cnRhbnQiPlJlcXVpcmVzIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQuMi4wKzwv cD4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6 Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy8xMTgyL3NtZF93cml0ZV9jYXRzIj50ZXh0cGF0 dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3 Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxs IGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1 bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0zNDA5NCI+Zm9ydW0gdGhyZWFk PC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhl cndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VG8gdW5pbnN0YWxsLCBkZWxldGUgZnJv bSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoK CTxwPlR5cGUgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjYXRlZ29yaWVzIGludG8gdGhl IDxlbT5PciBuZXcgY2F0ZWdvcmllczwvZW0+IGJveCBvbiB0aGUgV3JpdGUgdGFiIGFuZCB3 aGVuIHlvdSBoaXQgU2F2ZSBvciBQdWJsaXNoIHRoZXkgd2lsbCBiZSBjcmVhdGVkIGlmIHRo ZXkgZG9uJiM4MjE3O3QgYWxyZWFkeSBleGlzdC48L3A+CgoJPHA+WW91IGNhbiBjcmVhdGUg YXMgbWFueSBhcyB5b3UgbGlrZSAoanVzdCBrZWVwIGNvbW1hLXNlcGFyYXRpbmcgdGhlbSkg YW5kIG9ubHkgdGhlIGZpcnN0IHR3byB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQg dG8gdGhlIGFydGljbGU7IHJlcGxhY2luZyBhbnkgY2F0ZWdvcmllcyB0aGF0IHdlcmUgYWxy ZWFkeSBhc3NpZ25lZC4gSWYgb25lIG9yIGJvdGggb2YgdGhlIGZpcnN0IHR3byBjYXRlZ29y aWVzIHlvdSB0eXBlIGFscmVhZHkgZXhpc3RzIHRoZXkgd2lsbCBiZSBhc3NpZ25lZCB0byB0 aGUgYXJ0aWNsZSAoaXQgaWdub3JlcyB0aGUgY2FzZSB3aGVuIGNoZWNraW5nIHRoZSBkYXRh YmFzZSBmb3IgbWF0Y2hlcykuPC9wPgoKCTxwPklmIHlvdSB3YW50IHRvIHNldCBDYXRlZ29y eSAyIG9ubHksIGp1c3Qgc3RhcnQgeW91ciBsaXN0IHdpdGggYSBjb21tYSwgZS5nLiA8Y29k ZT4sIE15IG5ldyBjYXRlZ29yeTwvY29kZT4uIFNpbWlsYXJseSwgaWYgZm9yIHNvbWUgcmVh c29uIHlvdSB3YW50IHRvIGNyZWF0ZSBtb3JlIGNhdGVnb3JpZXMgYnV0IGRvbiYjODIxNzt0 IHdhbnQgdG8gYXNzaWduIHRoZW0gdG8gdGhlIGN1cnJlbnQgYXJ0aWNsZSwgcHV0IHR3byBj b21tYXMgYXQgdGhlIHN0YXJ0OiA8Y29kZT4sICwgU29tZSB1bmxpbmtlZCBjYXRlZ29yeSwg QW5kIGFub3RoZXI8L2NvZGU+LjwvcD4KCgk8aDI+UGFyZW50IGNhdGVnb3JpZXM8L2gyPgoK CTxwPkJ5IGRlZmF1bHQgYWxsIGNhdGVnb3JpZXMgeW91IGNyZWF0ZSB3aWxsIGJlIHN0b3Jl ZCB1bmRlciB0aGUgJiM4MjE2O3Jvb3QmIzgyMTc7IG9mIHRoZSBhcnRpY2xlIHRyZWUuIElm IHlvdSB3aXNoIHRvIGFzc2lnbiB5b3VyIG5ldyBjYXRlZ29yeSBiZW5lYXRoIGFuIGV4aXN0 aW5nIGNhdGVnb3J5IHlvdSBjYW4gc3BlY2lmeSBhbiBhbHRlcm5hdGl2ZSBzeW50YXg6PC9w PgoKCTxwPjxjb2RlPlBhcmVudCBjYXRlZ29yeSAtJmd0OyBOZXcgY2F0ZWdvcnk8L2NvZGU+ PC9wPgoKCTxwPklmIHRoZSBkZXNpZ25hdGVkIHBhcmVudCBjYXRlZ29yeSBleGlzdHMsIHlv dXIgbmV3IGNhdGVnb3J5IHdpbGwgYmUgYXNzaWduZWQgdG8gaXQuIElmIGl0IGRvZXNuJiM4 MjE3O3QgZXhpc3QgKHRoZSBwbHVnaW4gaWdub3JlcyB0aGUgY2FzZSBvZiB0aGUgcGFyZW50 IGNhdGVnb3J5KSB0aGVuIGl0IHdpbGwgYmUgYXNzaWduZWQgdG8gcm9vdC48L3A+CgoJPHA+ WW91IGNhbiBjdXN0b21pemUgdGhlIG1lY2hhbmlzbSBmb3Igc3VwcGx5aW5nIHBhcmVudC1j aGlsZCByZWxhdGlvbnNoaXBzIGJ5IGNyZWF0aW5nIHRoZSBmb2xsb3dpbmcgcHJlZnMgKHNt ZF9wcmVmYWxpemVyIGNhbiBoZWxwIGhlcmUpOjwvcD4KCgk8dGFibGU+CgkJPHRyPgoJCQk8 dGg+UHJlZiBuYW1lIDwvdGg+CgkJCTx0aD5WYWx1ZSA8L3RoPgoJCQk8dGg+VmlzaWJsaXR5 IDwvdGg+CgkJCTx0aD5FdmVudCA8L3RoPgoJCQk8dGg+Tm90ZXMgPC90aD4KCQk8L3RyPgoJ CTx0cj4KCQkJPHRkPiBzbWRfd3JpdGVfY2F0c19jaGlsZF9maXJzdCA8L3RkPgoJCQk8dGQ+ IDA9cGFyZW50IGZpcnN0IDE9Y2hpbGQgZmlyc3QgPC90ZD4KCQkJPHRkPiBIaWRkZW4gPC90 ZD4KCQkJPHRkPiBzbWR3cml0ZWNhdHMgPC90ZD4KCQkJPHRkPiBTZXR0aW5nIHRoaXMgdG8g MSBtZWFucyB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBuZXcgY2F0ZWdvcnkgZmlyc3QgYW5kIDxl bT50aGVuPC9lbT4gc3BlY2lmeSB0aGUgcGFyZW50IHlvdSB3YW50IGl0IGFzc2lnbmVkIHRv IDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gc21kX3dyaXRlX2NhdHNfcGFyZW50X2Rl bGltIDwvdGQ+CgkJCTx0ZD4gYW55IHN0cmluZyA8L3RkPgoJCQk8dGQ+IEhpZGRlbiA8L3Rk PgoJCQk8dGQ+IHNtZHdyaXRlY2F0cyA8L3RkPgoJCQk8dGQ+IE92ZXJyaWRlcyB0aGUgZGVm YXVsdCA8Y29kZT4tJmd0OzwvY29kZT4uIFdoYXRldmVyIHlvdSBzcGVjaWZ5IGhlcmUgd2ls bCBiZSB1c2VkIGFzIGEgcGFyZW50L2NoaWxkIGRlbGltaXRlci4gQmUgY2FyZWZ1bCB0byBj aG9vc2Ugc29tZXRoaW5nIHRoYXQgd291bGQgbm90IG5vcm1hbGx5IGJlIHVzZWQgaW4gYSBj YXRlZ29yeSBuYW1lISA8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTxwPklmIHlvdSBjcmVh dGUgYSBuZXcgY2F0ZWdvcnksIHlvdSBtYXkgdXNlIHRoYXQgY2F0ZWdvcnkgYXMgYSBwYXJl bnQgaW4gc3Vic2VxdWVudCBjYXRlZ29yeSBkZWNsYXJhdGlvbnMuIEZvciBleGFtcGxlOjwv cD4KCgk8cD48Y29kZT5GcnVpdCwgRnJ1aXQtJmd0O0FwcGxlPC9jb2RlPjwvcD4KCgk8cD53 aWxsIGNyZWF0ZSB0aGUgY2F0ZWdvcnkgPGNvZGU+RnJ1aXQ8L2NvZGU+IChhdCB0aGUgcm9v dCBvZiB0aGUgdHJlZSkgYW5kIGFzc2lnbiBpdCB0byBDYXRlZ29yeTEuIEl0IHdpbGwgdGhl biBjcmVhdGUgPGNvZGU+QXBwbGU8L2NvZGU+IGJlbmVhdGggdGhlIDxjb2RlPkZydWl0PC9j b2RlPiBjYXRlZ29yeSwgYW5kIGFzc2lnbiBpdCB0byBDYXRlZ29yeTIuPC9wPgoKCTxoMiBp ZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MDYgSnVsIDEwIHwg MC4xMCB8IEluaXRpYWwgcmVsZWFzZTwvbGk+CgkJPGxpPjExIEp1bCAxMCB8IDAuMjAgfCBB ZGRlZCBwYXJlbnQtJmd0O2NoaWxkIGFiaWxpdHkgOyBmaXhlZCAmIzgyMTY7YXJ0aWNsZSYj ODIxNzsgdHlwZSBzZWxlY3Rpb24gKHRoYW5rcyBtb25rZXluaW5qYS9VbGkpIDsgbWFkZSB0 ZXN0cyBjYXNlIGluc2Vuc2l0aXZlIHRvIHByZXZlbnQgZHVwbGljYXRlIGNhdHMgYmVpbmcg Y3JlYXRlZCA7IHByZXZlbnRlZCAmIzgyMTY7cm9vdCYjODIxNzsgYmVpbmcgYWRkZWQgdG8g Y2F0ZWdvcnkxLzIgOyBhZGRlZCA8Y29kZT5lZGl0PC9jb2RlPiBjbGFzcyB0byBpbnB1dCBi b3ggYW5kIG1hZGUgc3VyZSBvbmx5IHBlb3BsZSB3aG8gaGF2ZSBjYXRlZ29yeSBwcml2cyBj YW4gY3JlYXRlIHRoZW0gKHRoYW5rcyBVbGkpPC9saT4KCTwvdWw+Cgo8L2Rpdj4KCgo8IS0t ICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K I3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13 ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1v bm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJs b2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNr Z3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4 IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9u dDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNl bnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7 IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNh bnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMyNzU2ODU7IGZvbnQ6IGJvbGQg MTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAx MHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5k ZXJsaW5lO30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNl cmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7 IGNvbG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3Jk ZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0 LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtOyBib3JkZXItY29sbGFwc2U6Y29s bGFwc2U7bWFyZ2luOjAgYXV0byAxZW07fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7 Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5nOi41ZW07fQojc21kX2hlbHAgdWwgeyBs aXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCAuaW1wb3J0YW50IHtjb2xvcjpy ZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0KI3NtZF9o ZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioqIEVORCBQ TFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiNjE0M2M3ZmQ0ZjgyNTY4OTA3 Nzc4NjU1MjQ4M2MwYjMiO30=