Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: fa32d77e2b
Fetching contributors…

Cannot retrieve contributors at this time

file 270 lines (268 sloc) 19.494 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270
# mcw_ma_gnolia v0.4
# Ma.gnolia Linkroll
# Mike West
# http://mikewest.org/

# ......................................................................
# This is a plugin for Textpattern - http://textpattern.com/
# To install: textpattern > admin > plugins
# Paste the following text into the 'Install plugin' box:
# ......................................................................

YTo5OntzOjc6InZlcnNpb24iO3M6MzoiMC40IjtzOjY6ImF1dGhvciI7czo5OiJNaWtlIFdl
c3QiO3M6NDoibmFtZSI7czoxMzoibWN3X21hX2dub2xpYSI7czoxMDoiYXV0aG9yX3VyaSI7
czoyMDoiaHR0cDovL21pa2V3ZXN0Lm9yZy8iO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjE4OiJN
YS5nbm9saWEgTGlua3JvbGwiO3M6NDoidHlwZSI7aToxO3M6NDoiaGVscCI7czo1NTY4OiI8
aDI+PGNvZGU+bWN3X21hX2dub2xpYTwvY29kZT48L2gyPgoKPHA+PGNvZGU+bWN3X21hX2du
b2xpYTwvY29kZT4gaXMgYSBUZXh0UGF0dGVybiBwbHVnaW4gdGhhdCBnZW5lcmF0ZXMgYSBj
dXN0b21pemFibGUgTWEuZ25vbGlhIGxpbmsgcm9sbCBmb3IgdXNlIG9uIHlvdXIgd2Vic2l0
ZS4gIDxhIGhyZWY9Imh0dHA6Ly9taWtld2VzdC5vcmcvZmlsZV9kb3dubG9hZC81IiB0aXRs
ZT0iYG1jd19tYV9nbm9saWFgIGRvd25sb2FkIj5Eb3dubG9hZCBpdCBub3c8L2E+LCBhbmQg
c3RhcnQgcGxheWluZyE8L3A+Cgo8aDM+V2hhdCBpcyBpdD88L2gzPgoKPHA+PGEgaHJlZj0i
aHR0cDovL21hLmdub2xpYS5jb20iIHRpdGxlPSJtYS5nbm9saWEuY29tOiBhIHNvY2lhbCBi
b29rbWFya2luZyBzaXRlIj5NYS5nbm9saWE8L2E+IGlzIGEgc29jaWFsIGJvb2ttYXJraW5n
IHNpdGUgKHNvbWV3aGF0IGxpa2UgPGEgaHJlZj0iaHR0cDovL2RlbC5pY2lvLnVzIiB0aXRs
ZT0iZGVsLmljaW8udXM6IGEgc29jaWFsIGJvb2ttYXJraW5nIHNpdGUiPmRlbC5pY2lvLnVz
PC9hPikgdGhhdCBJIHVzZSB0byBrZWVwIHRyYWNrIG9mIGludGVyZXN0aW5nIHdlYnNpdGVz
IEkgY29tZSBhY3Jvc3MuICBJdCBwcm92aWRlcyB0aGUgYnVpbHQgaW4gYWJpbGl0eSB0byBk
aXNwbGF5IHlvdXIgbW9zdCByZWNlbnQgYm9va21hcmtzIG9uIHlvdXIgcGVyc29uYWwgd2Vi
c2l0ZSAoYSAmIzgyMTY7bGluayByb2xsJiM4MjE3OyksIGJ1dCBJIGRvbiYjODIxNzt0IGxp
a2UgdGhlIG1lY2hhbmlzbSBpdCB1c2VzIHRvIG1ha2UgdGhhdCBoYXBwZW4uPC9wPgoKPHA+
PGEgaHJlZj0iaHR0cDovL21hLmdub2xpYS5jb20iIHRpdGxlPSJtYS5nbm9saWEuY29tOiBh
IHNvY2lhbCBib29rbWFya2luZyBzaXRlIj5NYS5nbm9saWE8L2E+IHByb3ZpZGVzIHlvdSB3
aXRoIGEgSmF2YVNjcmlwdCBmaWxlIHRoYXQgdXNlcyA8Y29kZT5kb2N1bWVudC53cml0ZTwv
Y29kZT4gdG8gZHVtcCB0aGUgbGluayByb2xsIHRvIHlvdXIgc2l0ZS4gIFRoaXMgd29ya3Ms
IGJ1dCBpdCYjODIxNztzIG5vdCBleGFjdGx5IGFjY2Vzc2libGUsIG5vciBpcyBpdCB2ZXJ5
IGZsZXhpYmxlLiAgPGNvZGU+bWN3X21hX2dub2xpYTwvY29kZT4gbGV2ZXJhZ2VzIHRoaXMg
YnVpbHQtaW4gbWVjaGFuaXNtIHRvIHByb3ZpZGUgd2hhdCBJIGhvcGUgaXMgYW4gZXh0cmVt
ZWx5IGZsZXhpYmxlIGFuZCBhY2Nlc3NpYmxlIGxpbmsgcm9sbCB3aXRob3V0IHRoZSB1c2Ug
b2YgY2xpZW50LXNpZGUgSmF2YVNjcmlwdC48L3A+Cgo8cD5JbiBhIG51dHNoZWxsLCB0aGUg
cGx1Z2luIGRvd25sb2FkcyBhbmQgY2FjaGVzIHRoZSBKYXZhU2NyaXB0IGZpbGUgc2VydmVy
LXNpZGUgb24gYSBxdWFzaS1ob3VybHkgYmFzaXMsIGV4dHJhY3RzIHRoZSBsaW5rIGluZm9y
bWF0aW9uLCBhbmQgbWFrZXMgdGhlIGRhdGEgYXZhaWxhYmxlIGZvciB5b3UgdmlhIGEgc2Vy
aWVzIG9mIFRleHRQYXR0ZXJuIHRhZ3MgdGhhdCB5b3UgY2FuIHVzZSBpbiB5b3VyIDxjb2Rl
PmZvcm1zPC9jb2RlPiBhbmQgPGNvZGU+cGFnZXM8L2NvZGU+LjwvcD4KCjxoMz5Ib3cgRG8g
SSBVc2UgPGNvZGU+bWN3X21hX2dub2xpYTwvY29kZT4/IChlLmcuIHF1aWNrc3RhcnQpPC9o
Mz4KCjxwPlN0YXJ0IGJ5IDxhIGhyZWY9Imh0dHA6Ly9taWtld2VzdC5vcmcvZmlsZV9kb3du
bG9hZC81IiB0aXRsZT0iYG1jd19tYV9nbm9saWFgIGRvd25sb2FkIj5kb3dubG9hZGluZyB0
aGUgcGx1Z2luPC9hPiBhbmQgaW5zdGFsbGluZyBpdCBsaWtlIHlvdSB3b3VsZCBhbnkgb3Ro
ZXIuICBPbmNlIHlvdSYjODIxNzt2ZSBnb3R0ZW4gdGhlIHBsdWdpbiBpbnN0YWxsZWQsIDxj
b2RlPmVkaXQ8L2NvZGU+IGl0LCBhbmQgZW50ZXIgeW91ciBtYS5nbm9saWEgdXNlcm5hbWUg
YW5kIHRoZSBudW1iZXIgb2YgbGlua3MgeW91JiM4MjE3O2QgbGlrZSBkaXNwbGF5ZWQgaW50
byB0aGUgcHVibGljIGNvbmZpZyBzZWN0aW9uIG9mIHRoZSBQSFAgY29kZSAoc2hvdWxkIGJl
IGxpbmVzIDYgYW5kIDcgb3Igc28pLiAgSWYgeW91IGRvbiYjODIxNzt0IGRvIHRoaXMsIHlv
dSYjODIxNztsbCBiZSBzZWVpbmcgbXkgbGlua3MuICBUaGF0JiM4MjE3O3MgYSBmaW5lIHdh
eSB0byB0ZXN0LCBidXQgeW91JiM4MjE3O2xsIHByb2JhYmx5IHdhbnQgdG8gbWFrZSB0aGlz
IGNoYW5nZSBiZWZvcmUgeW91IGdvIGxpdmUuPC9wPgoKPHA+TmV4dCwgY2xpY2sgb24gdGhl
IDxjb2RlPmV4dGVuc2lvbnM8L2NvZGU+IHRhYiwgYW5kIHRoZW4gb24gdGhlIDxjb2RlPk1h
Lmdub2xpYSBMaW5rcm9sbDwvY29kZT4gc3VidGFiLiAgSGl0dGluZyB0aGlzIHBhZ2Ugd2ls
bCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIDxjb2RlPmZvcm08L2NvZGU+IGNhbGxlZCA8Y29k
ZT5tY3dfbWFfZ25vbGlhPC9jb2RlPiwgYW5kIG9mZmVyIHlvdSB0aGUgb3Bwb3J0dW5pdHkg
dG8gZm9yY2UtdXBkYXRlIHlvdXIgY2FjaGVkIG1hLmdub2xpYSBsaW5rcy4gIEdvIGFoZWFk
IGFuZCBoaXQgdGhhdCBidXR0b24gbm93IHRvIHNwZWVkIHRoaW5ncyB1cCBsYXRlci48L3A+
Cgo8cD5GaW5hbGx5LCBlZGl0IGEgPGNvZGU+cGFnZTwvY29kZT4gdG8gaW5jbHVkZSB0aGUg
PGNvZGU+Jmx0O3R4cDptY3dfbWFfZ25vbGlhIC8mZ3Q7PC9jb2RlPiB0YWcuICBWaW9sYSwg
bWEuZ25vbGlhIGxpbmtzIG9uIHlvdXIgcGFnZS4gIEFzdG91bmRpbmchPC9wPgoKPGgzPkhv
dyBkbyBJIGNvbmZpZ3VyZSB0aGUgb3V0cHV0PzwvaDM+Cgo8cD5FeGNlbGxlbnQgcXVlc3Rp
b24uICBIZXJlJiM4MjE3O3MgYnJpZWYgZG9jdW1lbnRhdGlvbiBvZiBlYWNoIG9mIHRoZSB0
YWdzIHRoaXMgcGx1Z2luIGVuYWJsZXM6PC9wPgoKPHVsPgo8bGk+PHA+PGNvZGU+dHhwOm1j
d19tYV9nbm9saWE8L2NvZGU+ICYjODIxMjsgVGggPGNvZGU+bWN3X21hX2dub2xpYTwvY29k
ZT4gdGFnIGlzIGEgPGVtPnNpbmdsZSB0YWc8L2VtPiB0aGF0IGdldHMKcmVwbGFjZWQgd2l0
aCB0aGUgTGluayBSb2xsLiAgSXQgY2FuIGJlIGluY2x1ZGVkIG9uIGEgPGNvZGU+cGFnZTwv
Y29kZT4gZGlyZWN0bHksIG9yCmFzIHBhcnQgb2YgYSA8Y29kZT5mb3JtPC9jb2RlPiB0aGF0
JiM4MjE3O3MgZGlzcGxheWVkIG9uIGEgcGFnZS48L3A+Cgo8cD5BdHRyaWJ1dGVzOiAgICA8
L3A+Cgo8dWw+CjxsaT48Y29kZT5mb3JtPC9jb2RlPiAmIzgyMTI7IHRoaXMgc3BlY2lmaWVz
IHRoZSA8Y29kZT5mb3JtPC9jb2RlPiB0byBiZSB1c2VkIGZvciBlYWNoIG9mIHRoZQpkaXNw
bGF5ZWQgbGlua3MuICBEZWZhdWx0cyB0byA8Y29kZT5tY3dfbWFfZ25vbGlhPC9jb2RlPi48
L2xpPgo8bGk+PGNvZGU+d3JhcF90YWc8L2NvZGU+ICYjODIxMjsgc3BlY2lmaWVzIHRoZSBi
bG9jay1sZXZlbCB0YWcgdG8gd3JhcCB0aGUgbGlua3MuCkRlZmF1bHRzIHRvIDxjb2RlPnVs
PC9jb2RlPi48L2xpPgoKPGxpPjxjb2RlPmNsYXNzPC9jb2RlPiAmIzgyMTI7IGFwcGxpZXMg
YSBDU1MgY2xhc3MgdG8gdGhlIGJsb2NrLWxldmVsIHRhZyBzcGVjaWZpZWQKIGluIHRoZSA8
Y29kZT53cmFwX3RhZzwvY29kZT4gYXR0cmlidXRlLjwvbGk+CjwvdWw+PC9saT4KPGxpPjxw
Pjxjb2RlPnR4cDptY3dfbWFfZ25vbGlhX3VyaTwvY29kZT4gJiM4MjEyOyBUaGUgPGNvZGU+
bWN3X21hX2dub2xpYV91cmk8L2NvZGU+IHRhZyBpcyBhIDxlbT5zaW5nbGUgdGFnPC9lbT4K
CnRoYXQgZ2V0cyByZXBsYWNlZCB3aXRoIGEgbGluayYjODIxNztzIFVSSSAodGhlIGFjdHVh
bCBhZGRyZXNzIG9mIHRoZSBsaW5rKS48L3A+PC9saT4KPGxpPjxjb2RlPnR4cDptY3dfbWFf
Z25vbGlhX2xpbms8L2NvZGU+ICYjODIxMjsgVGhlIDxjb2RlPm1jd19tYV9nbm9saWFfbGlu
azwvY29kZT4gdGFnIGlzIGEgPGVtPnNpbmdsZSB0YWc8L2VtPgp0aGF0IGdldHMgcmVwbGFj
ZWQgd2l0aCBhIGxpbmsmIzgyMTc7cyBtYS5nbm9saWEgcmVkaXJlY3QgKGUuZy4gPGNvZGU+
aHR0cDovL21hLmdub2xpYS5jb20vYm9va21hcmtzL2J1cHV4ZXNlcS9kaXNwYXRjaDwvY29k
ZT4pPC9saT4KCjxsaT48Y29kZT50eHA6bWN3X21hX2dub2xpYV90aXRsZTwvY29kZT4gJiM4
MjEyOyBUaGUgPGNvZGU+bWN3X21hX2dub2xpYV90aXRsZTwvY29kZT4gdGFnIGlzIGEgPGVt
PnNpbmdsZQp0YWc8L2VtPiB0aGF0IGdldHMgcmVwbGFjZWQgd2l0aCBhIGxpbmsmIzgyMTc7
cyB0aXRsZS48L2xpPgo8bGk+PGNvZGU+dHhwOm1jd19tYV9nbm9saWFfZGVzYzwvY29kZT4g
JiM4MjEyOyBUaGUgPGNvZGU+bWN3X21hX2dub2xpYV9kZXNjPC9jb2RlPiB0YWcgaXMgYSA8
ZW0+c2luZ2xlIHRhZzwvZW0+Cgp0aGF0IGdldHMgcmVwbGFjZWQgd2l0aCBhIGxpbmsmIzgy
MTc7cyBkZXNjcmlwdGlvbi48L2xpPgo8L3VsPgoKPHA+RXhhbXBsZSBwYWdlOjwvcD4KCjxw
cmU+PGNvZGU+UGFnZTogZGVmYXVsdAoKLi4uCiAgICAmbHQ7ZGl2IGlkPSdtYV9nbm9saWFf
bGlua3JvbGwnJmd0OwogICAgICAgICZsdDtoMiZndDtNeSBSZWNlbnQgQm9va21hcmtzJmx0
Oy9oMiZndDsKICAgICAgICAmbHQ7dHhwOm1jd19tYV9nbm9saWEKICAgICAgICAgICAgZm9y
bT0nbWN3X21hX2dub2xpYScKICAgICAgICAgICAgd3JhcF90YWc9J29sJwogICAgICAgICAg
ICBjbGFzcz0nbWFfZ25vbGlhX2xpc3QnCiAgICAgICAgLyZndDsKCiAgICAmbHQ7L2RpdiZn
dDsKLi4uCjwvY29kZT48L3ByZT4KCjxwPkV4YW1wbGUgZm9ybTo8L3A+Cgo8cHJlPjxjb2Rl
PkZvcm06IG1jd19tYV9nbm9saWEKCiZsdDtsaSZndDsKICAgICZsdDthCiAgICAgICAgaHJl
Zj0nJmx0O3R4cDptY3dfbWFfZ25vbGlhX2xpbmsgLyZndDsnCiAgICAgICAgdGl0bGU9JyZs
dDt0eHA6bWN3X21hX2dub2xpYV90aXRsZSAvJmd0OycKICAgICZndDsmbHQ7dHhwOm1jd19t
YV9nbm9saWFfdGl0bGUgLyZndDsmbHQ7L2EmZ3Q7IC0gJmx0O3R4cDptY3dfbWFfZ25vbGlh
X2Rlc2MgLyZndDsKCiZsdDsvbGkmZ3Q7CjwvY29kZT48L3ByZT4KCjxwPldvdWxkIHByb2R1
Y2U6PC9wPgoKPHByZT48Y29kZT4mbHQ7ZGl2IGlkPSdtYV9nbm9saWFfbGlua3JvbGwnJmd0
OwogICAgJmx0O2gyJmd0O015IFJlY2VudCBCb29rbWFya3MmbHQ7L2gyJmd0OwogICAgJmx0
O29sIGNsYXNzPSdtYV9nbm9saWFfbGlzdCcmZ3Q7CgogICAgICAgICZsdDtsaSZndDsKICAg
ICAgICAgICAgJmx0O2EKICAgICAgICAgICAgICAgIGhyZWY9J0xJTktfR09fSEVSRScKICAg
ICAgICAgICAgICAgIHRpdGxlPSdUSVRMRV9HT19IRVJFJwogICAgICAgICAgICAmZ3Q7VElU
TEVfR09fSEVSRSZsdDsvYSZndDsgLSBERVNDUklQVElPTiBHTyBIRVJFCiAgICAgICAgJmx0
Oy9saSZndDsKICAgICAgICAuLi4KICAgICAgICAmbHQ7bGkmZ3Q7CiAgICAgICAgICAgICZs
dDthCiAgICAgICAgICAgICAgICBocmVmPSdMSU5LX0dPX0hFUkUnCiAgICAgICAgICAgICAg
ICB0aXRsZT0nVElUTEVfR09fSEVSRScKICAgICAgICAgICAgJmd0O1RJVExFX0dPX0hFUkUm
bHQ7L2EmZ3Q7IC0gREVTQ1JJUFRJT04gR08gSEVSRQogICAgICAgICZsdDsvbGkmZ3Q7Cgog
ICAgJmx0Oy9vbCZndDsKJmx0Oy9kaXYmZ3Q7CjwvY29kZT48L3ByZT4KCjxwPk5pY2UsIGVo
PzwvcD4iO3M6NDoiY29kZSI7czo4MDc4OiIvKgogICAgUFVCTElDIFBMVUdJTiBDT05GSUcK
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKi8KICAgICRtY3dfbWFfZ25vbGlhID0gYXJyYXko
CiAgICAgICAgInVzZXJuYW1lIiAgICAgID0+ICJtaWtld2VzdCIsCiAgICAgICAgIm51bV9s
aW5rcyIgICAgID0+ICI0IiwKICAgICAgICAiZmlsdGVyX2J5X3RhZyIgPT4gIiIKICAgICk7
CgovKgogICAgUExVR0lOIENPREUgKG5vIGVkaXRpbmcgYmVsb3cgdGhpcyBsaW5lLCBwbGVh
c2UpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiovCiAgICBpZiAoJG1jd19tYV9nbm9saWFb
J2ZpbHRlcl9ieV90YWcnXSkgewogICAgICAgICRsaW5rcm9sbF9wYXRoID0gIi9qcy9ub25l
L3Blb3BsZS8iLiRtY3dfbWFfZ25vbGlhWyd1c2VybmFtZSddLiIvdGFncy8iLiRtY3dfbWFf
Z25vbGlhWydmaWx0ZXJfYnlfdGFnJ10uIi8/bGVuZ3RoPSIuJG1jd19tYV9nbm9saWFbJ251
bV9saW5rcyddOwogICAgfSBlbHNlIHsKICAgICAgICAkbGlua3JvbGxfcGF0aCA9ICIvanMv
bm9uZS9wZW9wbGUvIi4kbWN3X21hX2dub2xpYVsndXNlcm5hbWUnXS4iLz9sZW5ndGg9Ii4k
bWN3X21hX2dub2xpYVsnbnVtX2xpbmtzJ107CiAgICB9CiAgICAkbWN3X21hX2dub2xpYVsn
bGlua3JvbGxfcGF0aCddID0gJGxpbmtyb2xsX3BhdGg7CiAgICAkbWN3X21hX2dub2xpYVsn
bGlua3JvbGxfdXJpJ10gID0gImh0dHA6Ly9tYS5nbm9saWEuY29tIi4kbWN3X21hX2dub2xp
YVsnbGlua3JvbGxfcGF0aCddOwogICAgJG1jd19tYV9nbm9saWFbJ2NhY2hlX2ZpbGUnXSAg
ICA9IGZpbmRfdGVtcF9kaXIoKS4iLyIuJEdMT0JBTFNbJ3ByZWZzJ11bJ2Jsb2dfdWlkJ10u
Ii0tbWN3X21hX2dub2xpYS5kYXRhIjsKCiAgICAkR0xPQkFMU1snX01DV19NQV9HTk9MSUEn
XSA9ICRtY3dfbWFfZ25vbGlhOwoKCgogICAgLyoKICAgICAgICBQTFVHSU4gQ09ERTo6SU5T
VEFOVElBVElPTgogICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICovCiAgICAgICAgaWYgKEB0eHBpbnRl
cmZhY2UgPT0gJ2FkbWluJykgewogICAgICAgIAkkZXZlbnQgICAgICA9ICdtY3dfbWFfZ25v
bGlhJzsKICAgICAgICAJJGV2ZW50X3RhYiAgPSAnTWEuZ25vbGlhIExpbmtyb2xsJzsKCiAg
ICAgICAgCWFkZF9wcml2cygkZXZlbnQsICcxLDInKTsKICAgICAgICAJcmVnaXN0ZXJfdGFi
KCJleHRlbnNpb25zIiwgJGV2ZW50LCAkZXZlbnRfdGFiKTsKICAgICAgICAJcmVnaXN0ZXJf
Y2FsbGJhY2soJ21jd19tYV9nbm9saWFfYWRtaW4nLCAkZXZlbnQpOwogICAgICAgIH0KCiAg
ICAvKgogICAgICAgIFBMVUdJTiBDT0RFOjpNQUlOIEFETUlOIENBTExCQUNLCiAgICAgICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogICAgKi8KICAgICAgICBmdW5jdGlvbiBtY3dfbWFfZ25vbGlhX2FkbWluKCRl
dmVudCwgJHN0ZXApIHsKICAgICAgICAgICAgZ2xvYmFsICRfTUNXX01BX0dOT0xJQTsKCiAg
ICAgICAgICAgIGlmICghc2FmZV9yb3coIioiLCAndHhwX2Zvcm0nLCAibmFtZSA9ICdtY3df
bWFfZ25vbGlhJyIpICkgewogICAgICAgICAgICAgICAgJGZvcm0gPSAnPGxpPjxhIGhyZWY9
Ijx0eHA6bWN3X21hX2dub2xpYV9saW5rIC8+IiB0aXRsZT0iPHR4cDptY3dfbWFfZ25vbGlh
X3RpdGxlIC8+Ij48dHhwOm1jd19tYV9nbm9saWFfdGl0bGUgLz48L2E+IDx0eHA6bWN3X21h
X2dub2xpYV9kZXNjIC8+PC9saT4nOwogICAgICAgICAgICAgICAgc2FmZV9pbnNlcnQoJ3R4
cF9mb3JtJywgIm5hbWU9J21jd19tYV9nbm9saWEnLCB0eXBlPSdtaXNjJywgZm9ybT0nIi4k
Zm9ybS4iJyIpOwogICAgICAgICAgICB9CgogICAgCQlwYWdldG9wKCJNYW51YWxseSBVcGRh
dGUgTWEuR25vbGlhIENhY2hlIiwgIiIpOwoKICAgICAgICAgICAgcHJpbnQgIgoJICAgICAg
ICA8c3R5bGUgdHlwZT0ndGV4dC9jc3MnPgoJICAgICAgICAgICAgLnN1Y2Nlc3MgeyBjb2xv
cjogIzAwOTkwMDsgfQoJICAgICAgICAgICAgLmZhaWx1cmUgeyBjb2xvcjogI0ZGMDAwMDsg
fQoJICAgICAgICA8L3N0eWxlPgoKCSAgICAgICAgPHRhYmxlIGNlbGxwYWRkaW5nPScwJyBj
ZWxsc3BhY2luZz0nMCcgYm9yZGVyPScwJyBpZD0nbGlzdCcgYWxpZ249J2NlbnRlcic+Cgkg
ICAgICAgICAgICA8dHI+CgkgICAgICAgICAgICAgICAgPHRkPgoJICAgICAgICAiOwoKICAg
ICAgICAgICAgaWYgKCRzdGVwID09ICdmb3JjZV91cGRhdGUnKSB7CiAgICAgICAgICAgICAg
ICBpZiAodXBkYXRlX21hX2dub2xpYV9jYWNoZSh0cnVlKSAhPSAtMSkgewogICAgICAgICAg
ICAgICAgICAgIHByaW50ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMT5NYW51
YWwgVXBkYXRlIFJlc3VsdHM8L2gxPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+
Q2FjaGUgbWFudWFsIHVwZGF0ZSA8c3Ryb25nIGNsYXNzPSdzdWNjZXNzJz5zdWNjZWVkZWQ8
L3N0cm9uZz4hPC9wPgogICAgICAgICAgICAgICAgICAgICI7CiAgICAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHByaW50ICIKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxoMT5NYW51YWwgVXBkYXRlIFJlc3VsdHM8L2gxPgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPHA+Q2FjaGUgbWFudWFsIHVwZGF0ZSA8c3Ryb25nIGNsYXNzPSdm
YWlsdXJlJz5mYWlsZWQ8L3N0cm9uZz4hPC9wPgogICAgICAgICAgICAgICAgICAgICI7CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNfZmls
ZSgkX01DV19NQV9HTk9MSUFbJ2NhY2hlX2ZpbGUnXSkpIHsKICAgICAgICAgICAgICAgICR0
ZXh0ID0gIkNhY2hlIGZpbGUgZG9lcyBub3QgeWV0IGV4aXN0IjsKICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICRmcCAgID0gZm9wZW4oJF9NQ1dfTUFfR05PTElBWydj
YWNoZV9maWxlJ10sICdyJyk7CiAgICAgICAgICAgICAgICAkc3RhdCA9IGZzdGF0KCRmcCk7
CiAgICAgICAgICAgICAgICBmY2xvc2UoJGZwKTsKICAgICAgICAgICAgICAgICR0ZXh0ID0g
IkNhY2hlIGxhc3QgdXBkYXRlZCAiLmRhdGUoJ3InLCAkc3RhdFsnbXRpbWUnXSk7CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIHByaW50ICIKICAgICAgICAgICAgICAgICAgICA8aDE+
TWFudWFsbHkgdXBkYXRlIG1hLmdub2xpYSBjYWNoZTwvaDE+CiAgICAgICAgICAgICAgICAg
ICAgPHA+Ii4kdGV4dC4iPC9wPgogICAgICAgICAgICAgICAgIi5mb3JtKAogICAgICAgICAg
ICAgICAgICAgICAgICBmSW5wdXQoJ3N1Ym1pdCcsICdGb3JjZSBVcGRhdGUnLCAnRm9yY2Ug
VXBkYXRlJywgJ3NtYWxsZXJib3gnKS4KICAgICAgICAgICAgICAgICAgICAgICAgZUlucHV0
KCdtY3dfbWFfZ25vbGlhJykuc0lucHV0KCdmb3JjZV91cGRhdGUnKQogICAgICAgICAgICAg
ICAgKTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHVwZGF0ZV9tYV9nbm9saWFfY2Fj
aGUoJGZvcmNlID0gZmFsc2UpIHsKICAgICAgICAgICAgZ2xvYmFsICRfTUNXX01BX0dOT0xJ
QTsKCiAgICAgICAgICAgIGlmIChpc19maWxlKCRfTUNXX01BX0dOT0xJQVsnY2FjaGVfZmls
ZSddKSkgewogICAgICAgICAgICAgICAgJGZwICAgPSBmb3BlbigkX01DV19NQV9HTk9MSUFb
J2NhY2hlX2ZpbGUnXSwgJ3InKTsKICAgICAgICAgICAgICAgICRzdGF0ID0gZnN0YXQoJGZw
KTsKICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgJHN0YXQgPSBhcnJheSgnbXRpbWUnID0+IDApOwogICAgICAgICAg
ICB9CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAg
ICAgICAgKCRzdGF0WydtdGltZSddICsgMzYwMCkgPCB0aW1lKCkKICAgICAgICAgICAgICAg
ICkKICAgICAgICAgICAgICAgIHx8CiAgICAgICAgICAgICAgICAkZm9yY2UgPT0gdHJ1ZQog
ICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIC8vIHRyeSBmc29ja29wZW4gZmlyc3QK
ICAgICAgICAgICAgICAgICRmcCA9IGZzb2Nrb3BlbigKICAgICAgICAgICAgICAgICAgICAi
bWEuZ25vbGlhLmNvbSIsCiAgICAgICAgICAgICAgICAgICAgODAsCiAgICAgICAgICAgICAg
ICAgICAgJGVycm5vLAogICAgICAgICAgICAgICAgICAgICRlcnJzdHIsCiAgICAgICAgICAg
ICAgICAgICAgMjAKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoJGZw
KSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcXVlc3QgID0gIkdFVCAiLiRfTUNXX01BX0dO
T0xJQVsnbGlua3JvbGxfcGF0aCddLiIgSFRUUC8xLjBcclxuIjsKICAgICAgICAgICAgICAg
ICAgICAkcmVxdWVzdCAuPSAiSG9zdDogbWEuZ25vbGlhLmNvbVxyXG4iOwogICAgICAgICAg
ICAgICAgICAgICRyZXF1ZXN0IC49ICJVc2VyLUFnZW50OiBtY3dfbWFfZ25vbGlhIDAuM1xy
XG4iOwogICAgICAgICAgICAgICAgICAgICRyZXF1ZXN0IC49ICJDb25uZWN0aW9uOiBDbG9z
ZVxyXG5cclxuIjsKICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgPSAiIjsKICAgICAg
ICAgICAgICAgICAgICBmd3JpdGUoJGZwLCAkcmVxdWVzdCk7CiAgICAgICAgICAgICAgICAg
ICAgJGluSGVhZGVycyA9IDE7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRm
cCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpbkhlYWRlcnMpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRidWZmZXIgPSBmZ2V0cygkZnAsIDEyOCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15ccyokLycsICRidWZm
ZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGluSGVhZGVycyA9IDA7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVzcG9uc2UgLj0gZmdl
dHMoJGZwLCAxMjgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICAg
ICAgICAgICRkYXRhID0gJHJlc3BvbnNlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICAgICAvLyBmc29ja29wZW4gZmFpbGVkIHNvbWVob3c6CiAgICAgICAg
ICAgICAgICAgICAgcHJpbnQgIjxwPkEgY29ubmVjdGlvbiBjb3VsZG4ndCBiZSBvcGVuZWQg
dG8gcmV0cmlldmUgdGhlIG1hLmdub2xpYSBkYXRhLiAgSGVyZSdzIHRoZSBjcmF6eS10ZWNo
bmljYWwgZXJyb3IgbWVzc2FnZTo8YnIgLz4kZXJyc3RyPGJyIC8+UGxlYXNlIHRyeSBhZ2Fp
biBsYXRlciE8L3A+IjsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAg
ICAgICAgICB9CgogICAgICAgICAgICAgICAgJGRhdGEgPSBzcGxpdCgnPGR0IGNsYXNzPSJt
YWdub2xpYS1tYXJrIj4nLCAkZGF0YSk7CgkJCQlhcnJheV9zaGlmdCgkZGF0YSk7CiAgICAg
ICAgICAgICAgICAkZGF0YUFycmF5ID0gYXJyYXkoKTsKCgkJCQlmb3JlYWNoICgkZGF0YSBh
cyAkbGluaykgewoJCQkJCSR0ZW1wbGluayA9IGFycmF5KCk7CgkJCQkJcHJlZ19tYXRjaCgi
L1xzKzxhIGhyZWY9XCIoLis/KVwiW14+XSs+XHMqKC4rPylccyo8XC9hPi4rPzxkZC4rPz4o
Lis/KTxcL2RkPi8iLCAkbGluaywgJG91dCk7CgoJCQkJCSR0ZW1wbGlua1sndXJsJ10JPSAk
b3V0WzFdOwoJCQkJCSR0ZW1wbGlua1snbGluayddCT0gJG91dFsxXTsKCQkJCQkkdGVtcGxp
bmtbJ3RpdGxlJ10JPSAkb3V0WzJdOwoJCQkJCSR0ZW1wbGlua1snZGVzYyddCT0gJG91dFsz
XTsKCgkJCQkJYXJyYXlfcHVzaCgkZGF0YUFycmF5LCAkdGVtcGxpbmspOwoJCQkJfQoKICAg
ICAgICAgICAgICAgICRkYXRhID0gc2VyaWFsaXplKCRkYXRhQXJyYXkpOwoKICAgICAgICAg
ICAgICAgICR0ZW1wZmlsZSA9ICRfTUNXX01BX0dOT0xJQVsnY2FjaGVfZmlsZSddOwoKICAg
ICAgICAgICAgICAgICRmaWxlID0gZm9wZW4oJHRlbXBmaWxlLCAidysiKTsKICAgICAgICAg
ICAgICAgIGZ3cml0ZSgkZmlsZSwgJGRhdGEpOwogICAgICAgICAgICAgICAgcmV0dXJuIDE7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoKICAgIC8q
CiAgICAgICAgUExVR0lOIENPREU6OkNMSUVOVCBTSURFIFRBR1MKICAgICAgICAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAgICAqLwogICAgICAgIGZ1bmN0aW9uIG1jd19tYV9nbm9saWEoJGF0dHMpIHsKICAgICAg
ICAgICAgZ2xvYmFsICRfTUNXX01BX0dOT0xJQTsKICAgICAgICAgICAgZXh0cmFjdCgKICAg
ICAgICAgICAgICAgIGxBdHRzKAogICAgICAgICAgICAgICAgICAgIGFycmF5KAogICAgICAg
ICAgICAgICAgICAgICAgICAiZm9ybSIgICAgID0+ICJtY3dfbWFfZ25vbGlhIiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIndyYXBfdGFnIiA9PiAidWwiLAogICAgICAgICAgICAgICAg
ICAgICAgICAiY2xhc3MiICAgID0+ICJtYV9nbm9saWFfbGlua3MiLAogICAgICAgICAgICAg
ICAgICAgICAgICAiaWQiICAgICAgID0+ICIiCiAgICAgICAgICAgICAgICAgICAgKSwKICAg
ICAgICAgICAgICAgICAgICAkYXR0cwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAp
OwoKICAgICAgICAgICAgdXBkYXRlX21hX2dub2xpYV9jYWNoZSgpOwoKICAgICAgICAgICAg
JGRhdGEgICAgICA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRfTUNXX01BX0dOT0xJQVsnY2FjaGVf
ZmlsZSddKTsKICAgICAgICAgICAgJGxpbmtBcnJheSA9IHVuc2VyaWFsaXplKCRkYXRhKTsK
CiAgICAgICAgICAgIGlmICgkd3JhcF90YWcpIHsKICAgICAgICAgICAgICAgICRzdHJpbmcg
PSAiPCIuJHdyYXBfdGFnLiIgY2xhc3M9JyIuJGNsYXNzLiInPiI7CiAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAkc3RyaW5nID0gIiI7CiAgICAgICAgICAgIH0KCiAg
ICAgICAgICAgICRmb3JtID0gZmV0Y2hfZm9ybSgkZm9ybSk7CgovLyAgICAgICAgICAgIHBy
aW50ICRmb3JtOwoKICAgICAgICAgICAgZm9yZWFjaCgkbGlua0FycmF5IGFzICR0ZW1wbGlu
aykgewogICAgICAgICAgICAgICAgJEdMT0JBTFNbJ19NQ1dfTUFfR05PTElBX0RBVEEnXSA9
ICR0ZW1wbGluazsKICAgICAgICAgICAgICAgICRzdHJpbmcgLj0gcGFyc2UoJGZvcm0pOwog
ICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHdyYXBfdGFnKSB7CiAgICAgICAgICAg
ICAgICAkc3RyaW5nIC49ICI8LyIuJHdyYXBfdGFnLiI+IjsKICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICRzdHJpbmcgLj0gIiI7CiAgICAgICAgICAgIH0KCiAgICAg
ICAgICAgIHJldHVybiAkc3RyaW5nOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gbWN3
X21hX2dub2xpYV91cmkoKSAgIHsgcmV0dXJuIG1jd19tYV9nbm9saWFfZGF0YSgndXJsJyk7
IH0KICAgICAgICBmdW5jdGlvbiBtY3dfbWFfZ25vbGlhX2xpbmsoKSAgeyByZXR1cm4gbWN3
X21hX2dub2xpYV9kYXRhKCdsaW5rJyk7IH0KICAgICAgICBmdW5jdGlvbiBtY3dfbWFfZ25v
bGlhX3RpdGxlKCkgeyByZXR1cm4gbWN3X21hX2dub2xpYV9kYXRhKCd0aXRsZScpOyB9CiAg
ICAgICAgZnVuY3Rpb24gbWN3X21hX2dub2xpYV9kZXNjKCkgIHsgcmV0dXJuIG1jd19tYV9n
bm9saWFfZGF0YSgnZGVzYycpOyB9CgogICAgICAgIGZ1bmN0aW9uIG1jd19tYV9nbm9saWFf
ZGF0YSgkdHlwZSkgewogICAgICAgICAgICBnbG9iYWwgJF9NQ1dfTUFfR05PTElBX0RBVEE7
CiAgICAgICAgICAgIHJldHVybiAkX01DV19NQV9HTk9MSUFfREFUQVskdHlwZV07CiAgICAg
ICAgfSI7czozOiJtZDUiO3M6MzI6Ijg1YTA5YzcwZTZmOGQ0N2NhNzI4MWE5NmY3ZWI2NTE0
Ijt9
Something went wrong with that request. Please try again.