Re: [siesta-dev] my play with nacho

[prev] [thread] [next] [lurker] [Date index for 2003/08/02]

From: Jody Belka
Subject: Re: [siesta-dev] my play with nacho
Date: 00:52 on 02 Aug 2003
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@xxxxxxxxx.xxx.xxxxxxxxxx.xxx for more info.

---1463760359-894031124-1059781923=:5155
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Fri, 1 Aug 2003, Jody Belka wrote:
> Over the last couple of days i've been playing about with the dispatch
> engine of nacho. Attached is the result, together with a modified version
> of a module that is required by it.
>

After a discussion with richard, here's a new version.  The script from last
time (with some small modifications), has been renamed nacho-ex, and there
is a new script that proxies into it, converting from the positional
parameter system into the named parameter system.

As before, feedback welcome and preferred.

Jody

---1463760359-894031124-1059781923=:5155
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=nacho-ex
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0308020052030.5155@xxxx.xxxx.xxxxxxxxxxx.xxx>
Content-Description: 'nacho' from last time, with small changes
Content-Disposition: attachment; filename=nacho-ex

IyEvdXNyL2Jpbi9wZXJsIC13DQojICRJZCQNCnVzZSBzdHJpY3Q7DQp1c2Ug
RmlsZTo6UGF0aCBxdyhta3BhdGgpOw0KdXNlIEZpbGU6OkJhc2VuYW1lOw0K
dXNlIERhdGE6OkR1bXBlcjsNCnVzZSBTdHJpbmc6OlNoZWxsUXVvdGU7DQp1
c2UgVU5JVkVSU0FMOjpyZXF1aXJlOw0KdXNlIFBvZDo6VXNhZ2U7DQp1c2Ug
R2V0b3B0OjpBcmd2RmlsZSBxdyhhcmd2RmlsZSk7DQp1c2UgR2V0b3B0OjpM
b25nOw0KDQp1c2UgdmFycyBxdy8gJFZFUlNJT04gJUNPTU1BTkRTIC87DQok
VkVSU0lPTiA9ICIxLjEiOw0KDQojIyBUT0RPDQojIHNldHRpbmcgcGVyc29u
YWwgcGx1Z2lucw0KDQoNCj1oZWFkMSBOQU1FDQoNCm5hY2hvLWV4IC0gdGhl
IHNpZXN0YSBjb21tYW5kIGxpbmUgY29uZmlndXJhdGlvbiB0b29sDQoNCj1o
ZWFkMSBTWU5PUFNJUw0KDQpuYWNoby1leCBbY29tbWFuZCBbb3B0aW9uc10u
Li5dDQoNCiBHZW5lcmljIE9wdGlvbnM6DQogICAtZCwgLS1kYXRhYmFzZT1E
QklfVVJJICBcIHRoZXNlIHR3byBvcHRpb25zIGFsbG93IHlvdSB0byBvdmVy
cmlkZQ0KICAgLWYsIC0tY29uZmlnLWZpbGU9RklMRSAgLyB0aGUgdmFsdWVz
IGRlZmluZWQgaW4gU2llc3RhOjpDb25maWcNCg0KICAgLWgsIC0taGVscCAg
ICAgICAgICAgaGVscCB0ZXh0IGRldGFpbGluZyB0aGUgY29tbWFuZHMgYW5k
IHRoZWlyIG9wdGlvbnMNCiAgIC1WLCAtLXZlcnNpb24gICAgICAgIHByaW50
cyB0aGUgdmVyc2lvbiBudW1iZXINCg0KDQogTWlzYyBDb21tYW5kczogICBj
cmVhdGUtZGF0YWJhc2UgIHJ1bi1tYXJpYWNoZSAgICAgIGNyZWF0ZS1iYWNr
dXANCiBMaXN0IENvbW1hbmRzOiAgIHNob3ctbGlzdHMgICAgICAgc2hvdy1h
bGlhcyAgICAgICAgZGVzY3JpYmUtbGlzdA0KICAgICAgICAgICAgICAgICAg
Y3JlYXRlLWxpc3QgICAgICBtb2RpZnktbGlzdCAgICAgICBkZWxldGUtbGlz
dCAgICANCiAgICAgICAgICAgICAgICAgIHNldC1wbHVnaW5zICAgICAgYWRk
LW1lbWJlciAgICAgICAgcmVtb3ZlLW1lbWJlcg0KIE1lbWJlciBDb21tYW5k
czogc2hvdy1tZW1iZXJzICAgICBkZXNjcmliZS1tZW1iZXIgICBjcmVhdGUt
bWVtYmVyDQogICAgICAgICAgICAgICAgICBtb2RpZnktbWVtYmVyICAgIGRl
bGV0ZS1tZW1iZXINCiBQbHVnaW4gQ29tbWFuZHM6IHNob3ctcGx1Z2lucyAg
ICAgZGVzY3JpYmUtcGx1Z2lucyAgbW9kaWZ5LXBsdWdpbg0KDQogT3B0aW9u
cyBhbmQgY29tbWFuZHMgbWF5IGJlIHJlYWQgZnJvbSBhIGZpbGUgYnkgZ2l2
aW5nIHRoZSBuYW1lIG9mIHRoZQ0KIGZpbGUgcHJlZml4ZWQgYnkgYSBALiBU
aGUgZGF0YWJhc2UgYW5kIGNvbmZpZy1maWxlIG9wdGlvbnMgYWZmZWN0IGFs
bA0KIG9mIHRoZSBzdXBwbGllZCBjb21tYW5kcy4gaWYgZWl0aGVyIG9mIHRo
ZW0gaXMgc3VwcGxpZWQgbW9yZSB0aGFuIG9uY2UsDQogdGhlIGxhc3Qgb25l
IHdpbGwgdGFrZSBwcmlvcml0eS4NCg0KPWhlYWQxIE9QVElPTlMNCiANCiBO
T1RFOiBBbGwgY29tbWFuZCBvcHRpb25zIGFyZSBtYW5kYXRvcnkgdW5sZXNz
IG90aGVyd2lzZSBzdGF0ZWQNCg0KIE1pc2MgQ29tbWFuZHM6DQogICBjcmVh
dGUtZGF0YWJhc2UgICAgICBpbml0aWFsaXNlcyBhIG5ldyBkYXRhYmFzZQ0K
ICAgcnVuLW1hcmlhY2hpICAgICAgICAgaW52b2tlIG1hcmlhY2hpIHRvIG1h
a2Ugd2ViaWZpZWQgYXJjaGl2ZXMNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGRlcGVuZHMgb24gdGhlIEFyY2hpdmUgcGx1Z2luKQ0KICAgY3JlYXRl
LWJhY2t1cCAgICAgICAgcHJpbnRzIG91dCBhIHNoZWxsIHNjcmlwdCB0aGF0
IHdpbGwgcmVzdG9yZSB5b3VyIHN5c3RlbSB3aGVuIHJ1bg0KICAgICAtbCwg
LS1saXN0PU5BTUUgICAgbGltaXQgdGhlIGJhY2t1cCBzY3JpcHQgdG8gdGhp
cyBsaXN0IChvcHRpb25hbCkNCg0KICBMaXN0IENvbW1hbmRzOg0KICAgc2hv
dy1saXN0cyAgICAgICAgICAgc2hvd3MgYWxsIHRoZSBsaXN0cyB0aGF0IGFy
ZSBpbiB0aGUgc3lzdGVtDQogICBjcmVhdGUtbGlzdCAgICAgICAgICBjcmVh
dGVzIGEgbmV3IGxpc3QNCiAgICAgLWwsIC0tbGlzdD1OQU1FICAgICAgICB0
aGUgbmFtZSBvZiB0aGUgbGlzdA0KICAgICAtbywgLS1vd25lcj1FTUFJTCAg
ICAgIHRoZSBhZG1pbmlzdHJhdG9yIG9mIHRoZSBsaXN0DQogICAgIC1wLCAt
LXBvc3Q9RU1BSUwgICAgICAgdGhlIGFkZHJlc3MgdG8gc2VuZCBtYWlsIHRv
IGZvciBwb3N0aW5nIHRvIHRoZSBsaXN0DQogICAgIC1iLCAtLWJvdW5jZXM9
RU1BSUwgICAgdGhlIGFkZHJlc3MgdGhhdCBib3VuY2VzIHNob3VsZCBjb21l
IGJhY2sgdG8NCg0KICAgc2hvdy1hbGlhcyAgICAgICAgICAgcHJpbnRzIG91
dCBhbiBhbGlhcyBmaWxlIGVudHJ5IGZvciBhIGxpc3QNCiAgICAgLWwsIC0t
bGlzdD1OQU1FfElEICAgICB0aGUgbmFtZSBvciBpZCBvZiB0aGUgbGlzdA0K
DQogICBkZXNjcmliZS1saXN0ICAgICAgICBzaG93cyBhbGwgdGhlIHByb3Bl
cnRpZXMgb2YgYSBsaXN0IGFuZCB0aGVpciB2YWx1ZXMNCiAgICAgLWwsIC0t
bGlzdD1OQU1FfElEICAgICB0aGUgbmFtZSBvciBpZCBvZiB0aGUgbGlzdA0K
DQogICBtb2RpZnktbGlzdCAgICAgICAgICBjaGFuZ2Ugb25lIG9yIG1vcmUg
cHJvcGVydGllcyBvZiBhIGxpc3QNCiAgICAgLWwsIC0tbGlzdD1OQU1FfElE
ICAgICB0aGUgbmFtZSBvciBpZCBvZiB0aGUgbGlzdA0KICAgICAtcHIsIC0t
cHJvcGVydHkgS0VZPVZBTFVFDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0cyB0aGUgcHJvcGVydHkgS0VZIHRvIFZBTFVFIChyZXBlYXRhYmxl
KQ0KDQogICAgICBOb3RlOiB5b3UgY2FuIGVmZmVjdGl2ZWx5IGNvcHkgdGhl
IGNvbmZpZ3VyYXRpb24gb2YgYSBsaXN0IGJ5IG1vZGlmaXlpbmcNCiAgICAg
ICAgICAgIHRoZSAnaWQnIHByb3BlcnR5IC0gYSBuZXcgbGlzdCB3aXRoIHRo
ZSBuZXcgaWQgd2lsbCBiZSBjcmVhdGVkIGZvciB5b3UuDQoNCiAgIGRlbGV0
ZS1saXN0ICAgICAgICAgIHJlbW92ZSBhIGxpc3RzIGZyb20gdGhlIHN5c3Rl
bQ0KICAgICAtbCwgLS1saXN0PU5BTUV8SUQgICAgIHRoZSBuYW1lIG9yIGlk
IG9mIHRoZSBsaXN0DQoNCiAgIHNldC1wbHVnaW5zICAgICAgICAgIHNldHMg
dGhlIHBsdWdpbnMgb2YgYSBsaXN0DQogICAgICAgICAgICAgICAgICAgICAg
ICAgIChhbnkgZXhpc3RpbmcgcGx1Z2lucyBub3Qgc3BlY2lmaWVkIHdpbGwg
YmUgZGVsZXRlZCkNCiAgICAgLWwsIC0tbGlzdD1OQU1FfElEICAgICB0aGUg
bmFtZSBvciBpZCBvZiB0aGUgbGlzdA0KICAgICAtcSwgLS1xdWV1ZT1OQU1F
ICAgICAgIHRoZSBuYW1lIG9mIHRoZSBxdWV1ZSAoZWcgcG9zdCwgc3ViLCB1
bnN1YiwgLi4uKQ0KICAgICAtcCwgLS1wbHVnaW49TkFNRSAgICAgIHRoZSBu
YW1lIG9mIGEgcGx1Z2luIChyZXBlYXRhYmxlKQ0KICAgICANCiAgIGFkZC1t
ZW1iZXIgICAgICAgICAgIGFkZHMgb25lIG9yIG1vcmUgbWVtYmVycyB0byBh
IGxpc3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpbGwgY3JlYXRl
IG5ldyBtZW1iZXJzIGlmIG5lY2Vzc2FyeSkNCiAgICAgLWwsIC0tbGlzdD1O
QU1FfElEICAgICB0aGUgbmFtZSBvciBpZCBvZiB0aGUgbGlzdA0KICAgICAt
bSwgLS1tZW1iZXI9RU1BSUwgICAgIHRoZSBlbWFpbCBhZGRyZXNzIG9mIGEg
bWVtYmVyIChyZXBlYXRhYmxlKQ0KDQogICByZW1vdmUtbWVtYmVyICAgICAg
ICByZW1vdmVzIG9uZSBvciBtb3JlIG1lbWJlcnMgZnJvbSBhIGxpc3QNCiAg
ICAgLWwsIC0tbGlzdD1OQU1FfElEICAgICB0aGUgbmFtZSBvciBpZCBvZiB0
aGUgbGlzdA0KICAgICAtbSwgLS1tZW1iZXI9RU1BSUwgICAgIHRoZSBlbWFp
bCBhZGRyZXNzIG9mIGEgbWVtYmVyIChyZXBlYXRhYmxlKQ0KDQogICANCiBN
ZW1iZXIgQ29tbWFuZHM6DQogICBzaG93LW1lbWJlcnMgICAgICAgICBzaG93
cyB0aGUgbWVtYmVycyBpbiB0aGUgc3lzdGVtLCBvciBvbmUgb3IgbW9yZSBs
aXN0cw0KICAgICAtbCwgLS1saXN0PU5BTUV8SUQgICAgIHNob3cgdGhlIG1l
bWJlcnMgc3ViYmVkIHRvIHRoaXMgbGlzdCAob3B0aW9uYWwsIHJlcGVhdGFi
bGUpDQoNCiAgIGNyZWF0ZS1tZW1iZXIgICAgICAgIGFkZHMgb25lIG9yIG1v
cmUgbmV3IG1lbWJlcnMgdG8gdGhlIHN5c3RlbQ0KICAgICAtbSwgLS1tZW1i
ZXI9RU1BSUwgICAgIHRoZSBlbWFpbCBhZGRyZXNzIG9mIGEgbWVtYmVyIChy
ZXBlYXRhYmxlKQ0KDQogICBkZXNjcmliZS1tZW1iZXIgICAgICBzaG93cyBh
bGwgdGhlIHByb3BlcnRpZXMgb2YgYSBtZW1iZXIgYW5kIHRoZWlyIHZhbHVl
cw0KICAgICAtbSwgLS1tZW1iZXI9RU1BSUx8SUQgIHRoZSBlbWFpbCBhZGRy
ZXNzIG9yIGlkIG9mIGEgbWVtYmVyDQoNCiAgIG1vZGlmeS1tZW1iZXIgICAg
ICAgIGNoYW5nZSBvbmUgb3IgbW9yZSBwcm9wZXJ0aWVzIG9mIGEgbWVtYmVy
DQogICAgIC1tLCAtLW1lbWJlcj1FTUFJTHxJRCAgdGhlIGVtYWlsIGFkZHJl
c3Mgb3IgaWQgb2YgYSBtZW1iZXINCiAgICAgLXByLCAtLXByb3BlcnR5IEtF
WT1WQUxVRQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHMgdGhl
IHByb3BlcnR5IEtFWSB0byBWQUxVRSAocmVwZWF0YWJsZSkNCg0KICAgICAg
Tm90ZTogeW91IGNhbiBlZmZlY3RpdmVseSBjb3B5IHRoZSBjb25maWd1cmF0
aW9uIG9mIGEgbWVtYmVyIGJ5IG1vZGlmaXlpbmcNCiAgICAgICAgICAgIHRo
ZSAnaWQnIHByb3BlcnR5IC0gYSBuZXcgbWVtYmVyIHdpdGggdGhlIG5ldyBp
ZCB3aWxsIGJlIGNyZWF0ZWQgZm9yIHlvdS4NCg0KICAgZGVsZXRlLW1lbWJl
ciAgICAgICAgcmVtb3ZlcyBvbmUgb3IgbW9yZSBtZW1iZXJzIGZyb20gdGhl
IHN5c3RlbQ0KICAgICAtbSwgLS1tZW1iZXI9RU1BSUx8SUQgIHRoZSBlbWFp
bCBhZGRyZXNzIG9yIGlkIG9mIGEgbWVtYmVyIChyZXBlYXRhYmxlKQ0KDQog
UGx1Z2luIENvbW1hbmRzOg0KICAgc2hvdy1wbHVnaW5zICAgICAgICAgZGlz
cGxheSBhIGxpc3Qgb2YgcGx1Z2lucyAob24gdGhlIHN5c3RlbSwgb3Igc2V0
IG9uIGxpc3RzKSAgDQogICAgIC1sLCAtLWxpc3Q9TkFNRXxJRCAgICAgc2hv
dyB0aGUgcGx1Z2lucyBzZXQgb24gdGhpcyBsaXN0IChvcHRpb25hbCwgcmVw
ZWF0YWJsZSkNCg0KICAgZGVzY3JpYmUtcGx1Z2luICAgICAgc2hvd3MgYWxs
IHRoZSBvcHRpb25zIGZvciBhIHBhcnRpY3VsYXIgcGx1Z2luDQogICAgIC1w
LCAtLXBsdWdpbj1OQU1FICAgICAgdGhlIG5hbWUgb2YgdGhlIHBsdWdpbg0K
ICAgICAtbCwgLS1saXN0PU5BTUV8SUQgICAgIHNob3cgdGhlIGN1cnJlbnQg
c2V0dGluZ3MgZm9yIHRoaXMgbGlzdCAob3B0aW9uYWwpDQogICAgIC1tLCAt
LW1lbWJlcj1FTUFJTHxJRCAgc2hvdyB0aGUgb3B0aW9ucyBmb3IgdGhpcyBt
ZW1iZXIgZm9yIHRoZSBzcGVjaWZpZWQgbGlzdCAob3B0aW9uYWwpDQoNCiAg
IG1vZGlmeS1wbHVnaW4gICAgICAgIHNldHMgb25lIG9yIG1vcmUgcGx1Z2lu
IHByZWZlcmVuY2VzIGZvciBhIGxpc3QNCiAgICAgLXBsLCAtLXBsdWdpbj1O
QU1FICAgICB0aGUgbmFtZSBvZiB0aGUgcGx1Z2luDQogICAgIC1sLCAtLWxp
c3Q9TkFNRXxJRCAgICAgdGhlIG5hbWUgb3IgaWQgb2YgYSBsaXN0DQogICAg
IC1tLCAtLW1lbWJlcj1FTUFJTHxJRCAgc2V0IHRoZSBwZXJzb25hbCBwcmVm
ZXJlbmNlIG9mIHRoaXMgbWVtYmVyIGZvciB0aGlzIGxpc3QgKG9wdGlvbmFs
KQ0KICAgICAtcHIsIC0tcHJlZmVyZW5jZSBLRVk9VkFMVUUNCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZXRzIHRoZSBwcm9wZXJ0eSBLRVkgdG8g
VkFMVUUgKHJlcGVhdGFibGUpDQoNCj1jdXQNCg0KQkVHSU57DQoNCgkjIyMj
Iw0KCSMNCgkjIE1pc2Mgc3R1ZmYNCgkjDQoJIyMjIyMNCg0KCSRDT01NQU5E
U3snY3JlYXRlLWRhdGFiYXNlJ30gPSB7DQoJYWN0aW9uID0+IHN1YiB7DQoJ
CXJlcXVpcmUgU2llc3RhOjpEQkk7DQoJCVNpZXN0YTo6REJJLT5pbml0X2Ri
Ow0KCX0NCgl9Ow0KDQoJJENPTU1BTkRTeydydW4tbWFyaWFjaGknfSA9IHsN
CglhY3Rpb24gPT4gc3ViIHsNCgkgICAgZm9yIG15ICRsaXN0ICggbWFwIHsg
JF8tPm5hbWUgfSBTaWVzdGE6Okxpc3QtPnJldHJpZXZlX2FsbCApIHsNCgkJ
CW15ICRpbnB1dDsNCgkJCW15ICRvdXRwdXQ7DQoJCQl7DQoJCQkJbm8gd2Fy
bmluZ3M7DQoJCSAgICAgICAgJGlucHV0ICA9ICRTaWVzdGE6OkNvbmZpZzo6
QVJDSElWRSAuICIvJGxpc3QiOw0KCQkgICAgICAgICRvdXRwdXQgPSAkU2ll
c3RhOjpDb25maWc6OlJPT1QgLiAiL21hcmlhY2hpLWh0bWwvJGxpc3QiOw0K
CQkJfQ0KCSAgICAgICAgbWtwYXRoKCRvdXRwdXQpOw0KCSAgICAgICAgcHJp
bnQgImludm9raW5nIG1hcmlhY2hpIGZvciAkbGlzdFxuIjsNCgkgICAgICAg
IHN5c3RlbSAnbWFyaWFjaGknLCAnLWknLCAkaW5wdXQsICctbycsICRvdXRw
dXQsICctbicsICRsaXN0Ow0KCSAgICB9DQoJfQ0KCX07DQoNCgkkQ09NTUFO
RFN7J2NyZWF0ZS1iYWNrdXAnfSA9IHsNCglvcHRpb25hbCA9PiBbcXcvIGxp
c3Q9cyAvXSwNCglhY3Rpb24gPT4gc3ViIHsNCgkJbXkgJW9wdHMgPSBAXzsN
Cg0KCQlteSBAbWVtYmVyczsNCgkJbXkgQGxpc3RzOw0KCQkNCgkJI2hhdmUg
d2UgYmVlbiBwYXNzZWQgYSBsaXN0DQoJCWlmIChkZWZpbmVkICRvcHRze2xp
c3R9KSB7DQoJCQlteSAkbGlzdCA9IFNpZXN0YTo6TGlzdC0+bG9hZCgkXykg
DQoJCQkgIG9yIGRpZSAiY3JlYXRlLWJhY2t1cDogTm8gc3VjaCBsaXN0ICck
XydcbiI7DQoJCQlwdXNoIEBsaXN0cywgJGxpc3Q7DQoJCQlAbWVtYmVycyA9
ICRsaXN0LT5tZW1iZXJzKCk7DQoJCQ0KCQkjIG90aGVyd2lzZSBkbyBldmVy
eXRoaW5nDQoJCX0gZWxzZSB7DQoJCQlAbWVtYmVycyA9IFNpZXN0YTo6TWVt
YmVyLT5yZXRyaWV2ZV9hbGw7DQoJCQlAbGlzdHMgICA9IFNpZXN0YTo6TGlz
dC0+cmV0cmVpdmVfYWxsOw0KCQl9DQoNCgkJcHJpbnQgU2llc3RhLT5iYWtl
KCdiYWNrdXAnLA0KCQkgICAgICAgICAgICAgICAgICAgJ21lbWJlcnMnID0+
IFxAbWVtYmVycywNCgkJICAgICAgICAgICAgICAgICAgICdsaXN0cycgICA9
PiBcQGxpc3RzLA0KCQkgICAgICAgICAgICAgICAgICAgJ3NoZWxscScgID0+
IHN1YiB7IHJldHVybiBzaGVsbF9xdW90ZSAkX1swXSB9LA0KCQkgICAgICAg
ICAgICAgICAgICApOw0KCX0NCgl9OyANCg0KCSMjIyMjDQoJIw0KCSMgTGlz
dCBzdHVmZg0KCSMNCgkjIyMjIw0KDQoNCgkkQ09NTUFORFN7J3Nob3ctbGlz
dHMnfSA9IHsNCglhY3Rpb24gPT4gc3ViIHsNCgkJZm9yZWFjaCBteSAkbGlz
dCAoIFNpZXN0YTo6TGlzdC0+cmV0cmlldmVfYWxsICkgew0KCQkJcHJpbnQg
JGxpc3QtPm5hbWUgLiAiXG4iOw0KCQl9DQoJfQ0KCX07DQoJDQoJJENPTU1B
TkRTeydjcmVhdGUtbGlzdCd9ID0gew0KCXJlcXVpcmVkID0+IFtxdy8gbGlz
dD1zIG93bmVyPXMgcG9zdD1zIGJvdW5jZT1zIC9dLA0KCWFjdGlvbiA9PiBz
dWIgew0KCQlteSAlb3B0cyA9IEBfOw0KDQoJCW15ICRsaXN0ID0gU2llc3Rh
OjpMaXN0LT5uZXcoDQoJCQluYW1lICAgICAgICAgPT4gJG9wdHN7bGlzdH0s
DQoJCQlvd25lciAgICAgICAgPT4gU2llc3RhOjpNZW1iZXItPmZpbmRfb3Jf
Y3JlYXRlKHsgZW1haWwgPT4gJG9wdHN7b3duZXJ9IH0pLA0KCQkJcG9zdF9h
ZGRyZXNzID0+ICRvcHRze3Bvc3R9LA0KCQkJcmV0dXJuX3BhdGggID0+ICRv
cHRze2JvdW5jZX0sDQoJCSAgICkNCgkJICBvciBkaWUgImNyZWF0ZS1saXN0
OiBGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IGxpc3RcbiI7DQoNCgkJIyBzZXQg
dXAgZGVmYXVsdCBwbHVnaW4gcXVldWVzDQoJCSRsaXN0LT5zZXRfcGx1Z2lu
cyggcG9zdCAgPT4gcXcoIEFyY2hpdmUgU2VuZCApICk7DQoJCSRsaXN0LT5z
ZXRfcGx1Z2lucyggc3ViICAgPT4gcXcoIFN1YnNjcmliZSApICk7DQoJCSRs
aXN0LT5zZXRfcGx1Z2lucyggdW5zdWIgPT4gcXcoIFVuU3Vic2NyaWJlICkg
KTsNCg0KCQlwcmludCAiQ3JlYXRlZCB0aGUgbmV3IGxpc3QgJyRvcHRze2xp
c3R9JyA8JG9wdHN7cG9zdH0+XG4iOw0KCQlwcmludCAibmFjaG8gc2hvdy1h
bGlhcyB3aWxsIHNob3cgeW91IHdoYXQgdG8gaW5jbHVkZSBpbiAvZXRjL2Fs
aWFzZXNcbiI7DQoJfQ0KCX07DQoNCgkkQ09NTUFORFN7J3Nob3ctYWxpYXMn
fSA9IHsNCglyZXF1aXJlZCA9PiBbcXcvIGxpc3Q9cyAvXSwNCglhY3Rpb24g
PT4gc3ViIHsNCgkJbXkgJW9wdHMgPSBAXzsNCg0KCQlteSAkbGlzdCA9IFNp
ZXN0YTo6TGlzdC0+bG9hZCggJG9wdHN7bGlzdH0gKQ0KCQkgIG9yIGRpZSAi
c2hvdy1hbGlhczogTm90IGEgdmFsaWQgbGlzdCBuYW1lIG9yIGlkXG4iOw0K
DQoJCXByaW50ICRsaXN0LT5hbGlhcygnbmFjaG8gKHRoZSBzaWVzdGEgY29u
ZmlndXJhdGlvbiB0b29sKScpOw0KCX0NCgl9Ow0KDQoJJENPTU1BTkRTeydk
ZXNjcmliZS1saXN0J30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3LyBsaXN0PXMg
L10sDQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoNCgkJ
bXkgJGxpc3QgPSBTaWVzdGE6Okxpc3QtPmxvYWQoICRvcHRze2xpc3R9ICkN
CgkJICBvciBkaWUgImRlc2NyaWJlLWxpc3Q6IE5vdCBhIHZhbGlkIGxpc3Qg
bmFtZSBvciBpZFxuIjsNCgkJDQoJCWZvcmVhY2ggbXkgJGtleSAoJGxpc3Qt
PmNvbHVtbnMpIHsNCgkJCW15ICR2YWx1ZSA9ICRsaXN0LT4ka2V5KCkgfHwg
Jyc7DQoJCQlwcmludCAiJGtleSA9ICR2YWx1ZVxuIjsNCgkJfQ0KDQoJCWZv
ciBteSAkcXVldWUgKCRsaXN0LT5xdWV1ZXMpIHsgDQoJCQlwcmludCAiJHF1
ZXVlIHBsdWdpbnM6ICIsIGpvaW4oICcgJywgbWFwIHsgKCRfLT5wZXJzb25h
bCk/ICIrIi4kXy0+bmFtZTokXy0+bmFtZSAgfSAkbGlzdC0+cGx1Z2lucygg
JHF1ZXVlICkpLCAiXG4iOw0KCQl9DQoJfQ0KCX07DQoNCgkkQ09NTUFORFN7
J21vZGlmeS1saXN0J30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3LyBsaXN0PXMg
cHJvcGVydHk9cyUgL10sDQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRz
ID0gQF87DQoNCgkJbXkgJGxpc3QgPSBTaWVzdGE6Okxpc3QtPmxvYWQoICRv
cHRze2xpc3R9ICkNCgkJICBvciBkaWUgIm1vZGlmeS1saXN0OiBOb3QgYSB2
YWxpZCBsaXN0IG5hbWUgb3IgaWRcbiI7DQoNCgkJd2hpbGUgKG15ICgka2V5
LCAkdmFsdWUpID0gZWFjaCAleyRvcHRze3Byb3BlcnR5fX0pIHsNCgkJCW15
ICVmaWVsZHMgPSBtYXAgeyAkXyA9PiAxIH0gJGxpc3QtPmNvbHVtbnM7DQoJ
CQlkaWUgIm1vZGlmeS1saXN0OiAnJGtleScgaXMgbm90IGEgdmFsaWQgcHJv
cGVydHkgLSB2YWxpZCBwcm9wZXJ0aWVzIGFyZVxuIiwNCgkJCQkoam9pbiAi
XG4iLCRsaXN0LT5jb2x1bW5zKSwiXG4iIHVubGVzcyAkZmllbGRzeyRrZXl9
Ow0KDQoJCQkkbGlzdC0+JGtleSgkdmFsdWUpOw0KCQkJcHJpbnQgIlByb3Bl
cnR5ICcka2V5JyBzZXQgdG8gJyR2YWx1ZScgZm9yIHRoZSBsaXN0ICRvcHRz
e2xpc3R9XG4iOw0KCQl9DQoJfQ0KCX07DQoNCgkkQ09NTUFORFN7J2RlbGV0
ZS1saXN0J30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3LyBsaXN0PXMgL10sDQoJ
YWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoNCgkJbXkgJGxp
c3QgPSBTaWVzdGE6Okxpc3QtPmxvYWQoICRvcHRze2xpc3R9ICkNCgkJICBv
ciBkaWUgImRlbGV0ZS1saXN0OiBOb3QgYSB2YWxpZCBsaXN0IG5hbWUgb3Ig
aWRcbiI7DQoJDQoJCSMgZ29zaCwgQ2xhc3M6OkRCSSBtYWtlcyB0aGlzIGVh
c3kNCgkJJGxpc3QtPmRlbGV0ZTsNCgkJDQoJCXByaW50ICJMaXN0ICckb3B0
c3tsaXN0fScgZGVsZXRlZFxuIjsNCgl9DQoJfTsNCg0KCSRDT01NQU5EU3sn
c2V0LXBsdWdpbnMnfSA9IHsNCglyZXF1aXJlZCA9PiBbcXcvIGxpc3Q9cyBx
dWV1ZT1zIC9dLA0KCW9wdGlvbmFsID0+IFtxdy8gcGx1Z2luPXNAIC9dLA0K
CWFjdGlvbiA9PiBzdWIgew0KCQlteSAlb3B0cyA9IEBfOw0KDQoJCW15ICRs
aXN0ID0gU2llc3RhOjpMaXN0LT5sb2FkKCAkb3B0c3tsaXN0fSApDQoJCSAg
b3IgZGllICJzZXQtcGx1Z2luczogTm90IGEgdmFsaWQgbGlzdCBuYW1lIG9y
IGlkXG4iOw0KDQoJCSRsaXN0LT5zZXRfcGx1Z2lucyggJG9wdHN7cXVldWV9
ID0+IEB7JG9wdHN7cGx1Z2lufX0gKQ0KCQkgIG9yIGRpZSAic2V0LXBsdWdp
bnM6IFNvcnJ5LCBjb3VsZG4ndCBkbyB0aGF0IGZvciBzb21lIHJlYXNvblxu
IjsNCg0KCQl1bmxlc3MgKEB7JG9wdHN7cGx1Z2lufX0pIHsNCgkJCXByaW50
ICJEZWxldGVkIHBsdWdpbnMgZnJvbSAkb3B0c3tsaXN0fVxuIjsNCgkJCXJl
dHVybjsNCgkJfQ0KCX0NCgl9Ow0KDQoJJENPTU1BTkRTeydhZGQtbWVtYmVy
J30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3LyBsaXN0PXMgbWVtYmVyPXNAIC9d
LA0KCWFjdGlvbiA9PiBzdWIgew0KCQlteSAlb3B0cyA9IEBfOw0KDQoJCW15
ICRsaXN0ID0gU2llc3RhOjpMaXN0LT5sb2FkKCAkb3B0c3tsaXN0fSApDQoJ
CSAgb3IgZGllICJhZGQtbWVtYmVyOiBOb3QgYSB2YWxpZCBsaXN0IG5hbWUg
b3IgaWRcbiI7DQoNCgkJZm9yIG15ICRtZW1iZXJfaWQgKEB7JG9wdHN7bWVt
YmVyfX0pIHsNCgkJCW15ICRtZW1iZXIgPSBTaWVzdGE6Ok1lbWJlci0+Zmlu
ZF9vcl9jcmVhdGUoeyBlbWFpbCA9PiAkbWVtYmVyX2lkIH0pDQoJCQkgIG9y
IGRpZSAiYWRkLW1lbWJlcjogQ291bGRuJ3QgZ2V0L2NyZWF0ZSBhIG1lbWJl
ciAnJG1lbWJlcl9pZCdcbiI7DQoNCgkJCSRsaXN0LT5hZGRfbWVtYmVyKCRt
ZW1iZXIpOw0KCQkJcHJpbnQgIk1lbWJlciA8Ii4kbWVtYmVyLT5lbWFpbC4i
PiAoIi4kbWVtYmVyLT5pZC4iKSBhZGRlZCB0byBsaXN0ICckb3B0c3tsaXN0
fSdcbiI7DQoJCX07DQoJfQ0KCX07DQoNCgkkQ09NTUFORFN7J3JlbW92ZS1t
ZW1iZXInfSA9IHsNCglyZXF1aXJlZCA9PiBbcXcvIGxpc3Q9cyBtZW1iZXI9
c0AgL10sDQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoN
CgkJbXkgJGxpc3QgPSBTaWVzdGE6Okxpc3QtPmxvYWQoICRvcHRze2xpc3R9
ICkNCgkJICBvciBkaWUgInJlbW92ZS1tZW1iZXI6IE5vdCBhIHZhbGlkIGxp
c3QgbmFtZSBvciBpZFxuIjsNCg0KCQlmb3IgbXkgJG1lbWJlcl9pZCAoQHsk
b3B0c3ttZW1iZXJ9fSkgew0KCQkJbXkgJG1lbWJlciA9IFNpZXN0YTo6TWVt
YmVyLT5sb2FkKCRtZW1iZXJfaWQpDQoJCQkgIG9yIGRpZSAicmVtb3ZlLW1l
bWJlcjogJG1lbWJlcl9pZCBpcyBub3QgYSB2YWxpZCBtZW1iZXIgaWRcbiI7
DQoJCQkNCgkJCSRsaXN0LT5yZW1vdmVfbWVtYmVyKCRtZW1iZXIpOw0KCQkJ
cHJpbnQgIk1lbWJlciAnJG1lbWJlcl9pZCcgcmVtb3ZlZCBmcm9tIGxpc3Qg
JyRvcHRze2xpc3R9J1xuIjsNCgkJfTsNCgl9DQoJfTsNCg0KCSMjIyMjDQoJ
Iw0KCSMgTWVtYmVyIHN0dWZmDQoJIw0KCSMjIyMjDQoNCg0KCSRDT01NQU5E
U3snc2hvdy1tZW1iZXJzJ30gPSB7DQoJb3B0aW9uYWwgPT4gW3F3LyBsaXN0
PXNAIC9dLA0KCWFjdGlvbiA9PiBzdWIgew0KCQlteSAlb3B0cyA9IEBfOw0K
DQoJCWlmICghZGVmaW5lZCAkb3B0c3tsaXN0fSkgew0KCQkJcHJpbnQgIkFs
bCBtZW1iZXJzIGZvciBzeXN0ZW06XG4iOw0KCQkJZm9yZWFjaCBteSAkbWVt
YmVyICggU2llc3RhOjpNZW1iZXItPnJldHJpZXZlX2FsbCApIHsNCgkJCQlw
cmludCAkbWVtYmVyLT5lbWFpbCwgIlxuIjsNCgkJCX0NCgkJCXJldHVybjsN
CgkJfSBlbHNlIHsNCgkJCWZvciAoQHskb3B0c3tsaXN0fX0pIHsNCgkJCQlt
eSAkbGlzdCA9IFNpZXN0YTo6TGlzdC0+bG9hZCgkXykNCgkJCQkgIG9yIGRp
ZSAic2hvdy1tZW1iZXJzOiBObyBsaXN0ICckXychXG4iOw0KCQkJCXByaW50
ICJNZW1iZXJzIG9mICRfOlxuIjsNCgkNCgkJCQlmb3JlYWNoIG15ICRtZW1i
ZXIgKCRsaXN0LT5tZW1iZXJzKSB7DQoJCQkJCXByaW50ICRtZW1iZXItPmVt
YWlsLCAiXG4iOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgl9Ow0KDQoJJENP
TU1BTkRTeydjcmVhdGUtbWVtYmVyJ30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3
LyBtZW1iZXI9c0AgL10sDQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRz
ID0gQF87DQoNCgkJZm9yIG15ICRtZW1iZXJfaWQgKEB7JG9wdHN7bWVtYmVy
fX0pIHsNCgkJCW15ICRtZW1iZXIgPSBTaWVzdGE6Ok1lbWJlci0+ZmluZF9v
cl9jcmVhdGUoeyBlbWFpbCA9PiAkbWVtYmVyX2lkIH0pDQoJCQkgIG9yIGRp
ZSAiYWRkLW1lbWJlcjogQ291bGRuJ3QgY3JlYXRlIGEgbWVtYmVyICckbWVt
YmVyX2lkJ1xuIjsNCg0KCQkJcHJpbnQgIk1lbWJlciAkbWVtYmVyX2lkIGFk
ZGVkXG4iOw0KCQl9DQoJfQ0KCX07DQoNCgkkQ09NTUFORFN7J2Rlc2NyaWJl
LW1lbWJlcid9ID0gew0KCXJlcXVpcmVkID0+IFtxdy8gbWVtYmVyPXMgL10s
DQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoNCgkJbXkg
JG1lbWJlciA9IFNpZXN0YTo6TWVtYmVyLT5sb2FkKCRvcHRze21lbWJlcn0p
IA0KCQkgIG9yIGRpZSAiZGVzY3JpYmUtbWVtYmVyOiAkb3B0c3ttZW1iZXJ9
IGlzIG5vdCBhIHZhbGlkIG1lbWJlciBpZFxuIjsNCg0KCQlmb3JlYWNoIG15
ICRrZXkgKCRtZW1iZXItPmNvbHVtbnMpIHsNCgkJCW15ICR2YWx1ZSA9ICRt
ZW1iZXItPiRrZXkoKSB8fCAnJzsNCgkJCXByaW50ICIka2V5ID0gJHZhbHVl
XG4iOw0KCQl9DQoNCgkJcHJpbnQgIlN1YnNjcmliZWQgdG8gOiAiLCAoam9p
biAiLCAiLCBtYXAgeyAkXy0+bmFtZSB9ICRtZW1iZXItPmxpc3RzKSwgIlxu
IjsNCgl9DQoJfTsNCg0KCSRDT01NQU5EU3snbW9kaWZ5LW1lbWJlcid9ID0g
ew0KCXJlcXVpcmVkID0+IFtxdy8gbWVtYmVyPXMgcHJvcGVydHk9cyUgL10s
DQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoNCgkJbXkg
JG1lbWJlciA9IFNpZXN0YTo6TWVtYmVyLT5sb2FkKCAkb3B0c3ttZW1iZXJ9
ICkNCgkJICBvciBkaWUgIm1vZGlmeS1tZW1iZXI6IE5vdCBhIHZhbGlkIG1l
bWJlciBpZFxuIjsNCg0KCQl3aGlsZSAobXkgKCRrZXksICR2YWx1ZSkgPSBl
YWNoICV7JG9wdHN7cHJvcGVydHl9fSkgew0KCQkJbXkgJWZpZWxkcyA9IG1h
cCB7ICRfID0+IDEgfSAkbWVtYmVyLT5jb2x1bW5zOw0KCQkJZGllICJtb2Rp
ZnktbWVtYmVyOiAnJGtleScgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgLSB2
YWxpZCBwcm9wZXJ0aWVzIGFyZVxuIiwNCgkJCQkoam9pbiAiXG4iLCRtZW1i
ZXItPmNvbHVtbnMpLCJcbiIgdW5sZXNzICRmaWVsZHN7JGtleX07DQoNCgkJ
CSRtZW1iZXItPiRrZXkoJHZhbHVlKTsNCgkJCXByaW50ICJQcm9wZXJ0eSAn
JGtleScgc2V0IHRvICckdmFsdWUnIGZvciB0aGUgbWVtYmVyICRvcHRze21l
bWJlcn1cbiI7DQoJCX0NCgl9DQoJfTsNCg0KCSRDT01NQU5EU3snZGVsZXRl
LW1lbWJlcid9ID0gew0KCXJlcXVpcmVkID0+IFtxdy8gbWVtYmVyPXNAIC9d
LA0KCWFjdGlvbiA9PiBzdWIgew0KCQlteSAlb3B0cyA9IEBfOw0KDQoJCWZv
cmVhY2ggbXkgJG1lbWJlcl9pZCAoQHskb3B0c3ttZW1iZXJ9fSkgew0KCQkJ
bXkgJG1lbWJlciA9IFNpZXN0YTo6TWVtYmVyLT5sb2FkKCRtZW1iZXJfaWQp
DQoJCQkgIG9yIGRpZSAiZGVsZXRlLW1lbWJlcjogJG1lbWJlcl9pZCBpcyBu
b3QgYSB2YWxpZCBtZW1iZXIgaWRcbiI7DQoJCQkNCgkJCWZvcmVhY2ggbXkg
JGxpc3QgKCBTaWVzdGE6Okxpc3QtPnJldHJpZXZlX2FsbCApIHsNCgkJCQkk
bGlzdC0+cmVtb3ZlX21lbWJlcigkbWVtYmVyKTsNCgkJCX0NCg0KCQkJJG1l
bWJlci0+ZGVsZXRlOw0KDQoJCQlwcmludCAiTWVtYmVyICckbWVtYmVyX2lk
JyBkZWxldGVkXG4iOw0KCQl9DQoJfQ0KCX07DQoNCgkjIyMjIw0KCSMNCgkj
IFBsdWdpbiBzdHVmZg0KCSMNCgkjIyMjIw0KDQoNCgkkQ09NTUFORFN7J3No
b3ctcGx1Z2lucyd9ID0gew0KCW9wdGlvbmFsID0+IFtxdy8gbGlzdD1zQCAv
XSwNCglhY3Rpb24gPT4gc3ViIHsNCgkJbXkgJW9wdHMgPSBAXzsNCg0KCQlp
ZiAoIWRlZmluZWQgJG9wdHN7bGlzdH0pIHsNCgkJCXByaW50ICJUaGlzIHN5
c3RlbSBjdXJyZW50bHkgaGFzIHRoZXNlIHBsdWdpbnMgaW5zdGFsbGVkOiBc
blxuIjsNCgkJCWZvcmVhY2ggbXkgJG5hbWUgKCBTaWVzdGEtPmF2YWlsYWJs
ZV9wbHVnaW5zICkgew0KCQkJCW15ICRwID0gIlNpZXN0YTo6UGx1Z2luOjok
bmFtZSI7DQoJCQkJJHAtPnJlcXVpcmU7DQoJCQkJcHJpbnRmICIlc1xuIC1c
biAlc1xuXG4iLCAkbmFtZSwgJHAtPmRlc2NyaXB0aW9uOw0KCQkJfQ0KCQl9
IGVsc2Ugew0KCQkJZm9yIChAeyRvcHRze2xpc3R9fSkgew0KCQkJCW15ICRs
aXN0ID0gU2llc3RhOjpMaXN0LT5sb2FkKCRfKQ0KCQkJCSAgb3IgZGllICJz
aG93LXBsdWdpbnM6IE5vIGxpc3QgJyRfJyFcbiI7DQoJCQkJcHJpbnQgIlBs
dWdpbnMgZm9yICRfOlxuIjsNCgkJCQlmb3JlYWNoIG15ICRwbHVnaW4gKCRs
aXN0LT5wbHVnaW5zKCdwb3N0JykpIHsNCgkJCQkJcHJpbnQgJHBsdWdpbi0+
bmFtZSwgIlxuIjsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoJfTsNCg0KCSRD
T01NQU5EU3snZGVzY3JpYmUtcGx1Z2luJ30gPSB7DQoJcmVxdWlyZWQgPT4g
W3F3LyBwbHVnaW49cyAvXSwNCglvcHRpb25hbCA9PiBbcXcvIGxpc3Q9cyBt
ZW1iZXI9cyAvXSwNCglkZXBlbmRlbmNpZXMgPT4geyBtZW1iZXIgPT4gJ2xp
c3QnIH0sDQoJYWN0aW9uID0+IHN1YiB7DQoJCW15ICVvcHRzID0gQF87DQoN
CgkJaWYgKGRlZmluZWQgJG9wdHN7bGlzdH0pIHsNCgkJCV9wbHVnaW5fbGlz
dF9vcHRpb25zKCVvcHRzKTsNCgkJfSBlbHNlIHsNCgkJCV9wbHVnaW5fb3B0
aW9ucygkb3B0c3twbHVnaW59KTsNCgkJfQ0KCX0NCgl9Ow0KDQoJJENPTU1B
TkRTeydtb2RpZnktcGx1Z2luJ30gPSB7DQoJcmVxdWlyZWQgPT4gW3F3LyBw
bHVnaW49cyBsaXN0PXMgL10sDQoJb3B0aW9uYWwgPT4gW3F3LyBtZW1iZXI9
cyBwcmVmZXJlbmNlPXMlIC9dLA0KCWFjdGlvbiA9PiBzdWIgew0KCQlteSAl
b3B0cyA9IEBfOw0KDQoJCW15ICRsaXN0ID0gU2llc3RhOjpMaXN0LT5sb2Fk
KCRvcHRze2xpc3R9KQ0KCQkgIG9yIGRpZSAibW9kaWZ5LXBsdWdpbjogTm90
IGEgdmFsaWQgbGlzdCAkb3B0c3tsaXN0fVxuIjsNCg0KCQlteSAlcGx1Z2lu
cyA9IG1hcCB7ICRfLT5uYW1lID0+ICRfIH0gJGxpc3QtPnBsdWdpbnM7DQoJ
CW15ICRwbHVnaW4gID0gJHBsdWdpbnN7JG9wdHN7cGx1Z2lufX0NCgkJICBv
ciBkaWUgIm1vZGlmeS1wbHVnaW46IE5vdCBhIHZhbGlkIHBsdWdpbiAkb3B0
c3twbHVnaW59XG4iOw0KDQoJCW15ICRtZW1iZXI7DQoJCWlmIChkZWZpbmVk
ICRvcHRze21lbWJlcn0pIHsNCgkJCSRtZW1iZXIgPSBTaWVzdGE6Ok1lbWJl
ci0+bG9hZCgkb3B0c3ttZW1iZXJ9KQ0KCQkJICBvciBkaWUgIm1vZGlmeS1w
bHVnaW46IE5vIHN1Y2ggbWVtYmVyICRvcHRze21lbWJlcn1cbiI7DQoNCgkJ
CWRpZSAibW9kaWZ5LXBsdWdpbjogJG9wdHN7bWVtYmVyfSBpcyBub3Qgc3Vi
c2NyaWJlZCB0byAkb3B0c3tsaXN0fVxuIg0KCQkJICB1bmxlc3MgJGxpc3Qt
PmlzX21lbWJlcigkbWVtYmVyKTsNCg0KCQkJJHBsdWdpbi0+bWVtYmVyKCRt
ZW1iZXIpOw0KCQl9DQoNCgkJd2hpbGUgKG15ICgka2V5LCAkdmFsdWUpID0g
ZWFjaCAleyRvcHRze3ByZWZlcmVuY2V9fSkgew0KCQkJJHBsdWdpbi0+cHJl
Zigka2V5LCAkdmFsdWUpOw0KCQl9DQoNCgkJbXkgJG9wdGlvbnMgPSAkcGx1
Z2luLT5vcHRpb25zOw0KDQoJCWlmIChkZWZpbmVkICRtZW1iZXIpIHsNCgkJ
CXByaW50ZiAiUGVyc29uYWwgcHJlZmVyZW5jZXMgZm9yIG1lbWJlciAlcyBv
biBsaXN0ICVzXG4iLA0KCQkJICAkb3B0c3ttZW1iZXJ9LCAkb3B0c3tsaXN0
fTsNCgkJfSBlbHNlIHsNCgkJCXByaW50ZiAiUHJlZmVyZW5jZXMgZm9yIGxp
c3QgJXNcbiIsICRvcHRze2xpc3R9Ow0KCQl9DQoNCgkJZm9yZWFjaCBteSAk
b3B0aW9uICgga2V5cyAleyRvcHRpb25zfSApIHsNCgkJCXByaW50ICIgLSAi
LCAkb3B0aW9uLCAiIDogIiwgJHBsdWdpbi0+cHJlZigkb3B0aW9uKSwgIlxu
IjsNCgkJfQ0KCX0NCgl9Ow0KDQoJYXJndkZpbGU7DQp9DQoNCnN1YiBfcGx1
Z2luX29wdGlvbnMgew0KCW15ICRwbHVnaW5faWQgPSBzaGlmdDsNCg0KICAg
IG15ICVwbHVnaW5zID0gbWFwIHsgJF8gPT4gMSB9IFNpZXN0YS0+YXZhaWxh
YmxlX3BsdWdpbnM7DQoNCiAgICBkaWUgImRlc2NyaWJlLXBsdWdpbjogTm90
IGEgdmFsaWQgcGx1Z2luXG4iIHVubGVzcyAkcGx1Z2luc3skcGx1Z2luX2lk
fTsNCg0KICAgIG15ICRjbGFzcyA9ICJTaWVzdGE6OlBsdWdpbjo6JHBsdWdp
bl9pZCI7DQogICAgJGNsYXNzLT5yZXF1aXJlOw0KDQogICAgbXkgJG9wdGlv
bnMgPSAkY2xhc3MtPm9wdGlvbnM7DQoNCiAgICBwcmludCAiXG5cblRoZSBw
bHVnaW4gJHBsdWdpbl9pZCBoYXMgdGhlIGZvbGxvd2luZyBvcHRpb25zIDpc
biI7DQogICAgZm9yZWFjaCBteSAkb3B0aW9uICgga2V5cyAleyRvcHRpb25z
fSApIHsNCiAgICAgICAgcHJpbnQgIiAtICIsICRvcHRpb24sICIgOiAiLCAk
b3B0aW9ucy0+eyRvcHRpb259LT57ZGVzY3JpcHRpb259LCAiXG4iOw0KICAg
IH0NCiAgICBwcmludCAiXG4iOw0KfQ0KDQpzdWIgX3BsdWdpbl9saXN0X29w
dGlvbnMgew0KCW15ICVvcHRzID0gQF87DQoNCiAgICBteSAkbGlzdCA9IFNp
ZXN0YTo6TGlzdC0+bG9hZCgkb3B0c3tsaXN0fSkNCiAgICAgIG9yIGRpZSAi
ZGVzY3JpYmUtcGx1Z2luOiBOb3QgYSB2YWxpZCBsaXN0ICRvcHRze2xpc3R9
XG4iOw0KDQogICAgbXkgJXBsdWdpbnMgPSBtYXAgeyAkXy0+bmFtZSA9PiAk
XyB9ICRsaXN0LT5wbHVnaW5zOw0KICAgIG15ICRwbHVnaW4gID0gJHBsdWdp
bnN7JG9wdHN7cGx1Z2lufX0NCiAgICAgIG9yIGRpZSAiZGVzY3JpYmUtcGx1
Z2luOiBUaGF0IHBsdWdpbiBpcyBub3QgdXNlZCBpbiB0aGUgbGlzdCAnJG9w
dHN7bGlzdH0nXG4iOw0KDQoNCiAgICBteSAkbWVtYmVyOw0KICAgIGlmIChk
ZWZpbmVkICRvcHRze21lbWJlcn0pIHsNCiAgICAgICAgJG1lbWJlciA9IFNp
ZXN0YTo6TWVtYmVyLT5sb2FkKCRvcHRze21lbWJlcn0pDQogICAgICAgICAg
b3IgZGllICJkZXNjcmliZS1wbHVnaW46IE5vdCBhIHZhbGlkIG1lbWJlciBp
ZFxuIjsNCg0KICAgICAgICBkaWUgImRlc2NyaWJlLXBsdWdpbjogJG9wdHN7
bWVtYmVyfSBpcyBub3Qgc3Vic2NyaWJlZCB0byAkb3B0c3tsaXN0fVxuIg0K
ICAgICAgICAgIHVubGVzcyAkbGlzdC0+aXNfbWVtYmVyKCRtZW1iZXIpOw0K
DQogICAgICAgICRwbHVnaW4tPm1lbWJlcigkbWVtYmVyKTsNCiAgICB9DQoN
CiAgICBteSAkb3B0aW9ucyA9ICRwbHVnaW4tPm9wdGlvbnM7DQoNCiAgICBp
ZiAoZGVmaW5lZCAkbWVtYmVyKSB7DQogICAgICAgIHByaW50ZiAiUGVyc29u
YWwgcHJlZmVyZW5jZXMgZm9yIG1lbWJlciAlcyBvbiBsaXN0ICVzXG4iLCAk
b3B0c3ttZW1iZXJ9LCAkb3B0c3tsaXN0fTsNCiAgICB9DQogICAgZWxzZSB7
DQogICAgICAgIHByaW50ZiAiUHJlZmVyZW5jZXMgZm9yIGxpc3QgJXNcbiIs
ICRvcHRze2xpc3R9Ow0KICAgIH0NCg0KICAgIGZvcmVhY2ggbXkgJG9wdGlv
biAoIGtleXMgJXskb3B0aW9uc30gKSB7DQogICAgICAgIHByaW50ICIgLSAi
LCAkb3B0aW9uLCAiIDogIiwgJHBsdWdpbi0+cHJlZigkb3B0aW9uKSwgIlxu
IjsNCiAgICB9DQogICAgICAgIHByaW50ICRwbHVnaW4tPm5hbWUsIiBpcyBz
ZXQgcGVyc29uYWxcbiIgaWYgJHBsdWdpbi0+cGVyc29uYWwoKTsNCn0NCg0K
IyMjIyMNCiMNCiMgRGlzcGF0Y2ggc3R1ZmYNCiMNCiMjIyMjDQoNCg0KdXNl
IEdldG9wdDo6QXV0byAoDQoJbWFwIHsgbXkgJG5hbWUgPSAkXzsgWyAkbmFt
ZSwgJycsIHN1YiB7IHJ1bigkbmFtZSkgfSBdIH0gDQoJCWtleXMgJUNPTU1B
TkRTDQopOw0KDQpCRUdJTnsNCglubyB3YXJuaW5nczsNCgkqR2V0b3B0OjpB
dXRvOjpoZWxwbWUgPSBcJmhlbHBtZTsNCgkqR2V0b3B0OjpBdXRvOjp1bnJl
Y29nbml6ZWQgPSBcJnVucmVjb2duaXplZDsNCn0NCg0KdXNlIFNpZXN0YTo6
Q29uZmlnOw0KQkVHSU57DQoJbXkgJGRhdGFiYXNlOw0KCW15ICRjb25maWc7
DQoNCglHZXRvcHQ6Okxvbmc6OkNvbmZpZ3VyZSAoInBhc3NfdGhyb3VnaCIp
Ow0KCUdldE9wdGlvbnMoJ2RhdGFiYXNlPXMnID0+IFwkZGF0YWJhc2UsDQog
ICAgICAgICAgICAgICAnY29uZmlnLWZpbGV8Zj1zJyA9PiBcJGNvbmZpZyk7
DQoNCglAU2llc3RhOjpDb25maWc6OlNUT1JBR0UgPSBzcGxpdCAvIC8sICRk
YXRhYmFzZSBpZiBkZWZpbmVkICRkYXRhYmFzZTsNCgkkU2llc3RhOjpDb25m
aWc6OkNPTkZJR19GSUxFID0gJGNvbmZpZyBpZiBkZWZpbmVkICRjb25maWc7
DQp9DQoNCnN1YiBydW4gew0KCW15ICRjb21tYW5kID0gc2hpZnQ7DQoJDQoJ
aWYgKCRjb21tYW5kIG5lICJjcmVhdGUtZGF0YWJhc2UiKSB7DQoJCWV2YWwg
ew0KCQkJcmVxdWlyZSBTaWVzdGE7DQoJCQlyZXF1aXJlIFNpZXN0YTo6TGlz
dDsNCgkJfTsNCgkJaWYgKCRAKSB7DQoJCQlwcmludCAiRXJyb3IgaW5pdGlh
bGl6aW5nIFNpZXN0YTpcbiRAXG4iOw0KCQkJcHJpbnQgIlxuXG5UcnkgJ25h
Y2hvIGNyZWF0ZS1kYXRhYmFzZScgaWYgeW91IGFyZSBpbnN0YWxsaW5nIHNp
ZXN0YSBmb3IgdGhlIGZpcnN0IHRpbWVcbiI7DQoJCQlleGl0Ow0KCQl9DQoJ
fQ0KDQoJbXkgJWggPSAoKTsNCglteSBAb3B0aW9ucyA9IGdyZXAgeyBkZWZp
bmVkIH0gKA0KCQlAeyRDT01NQU5EU3skY29tbWFuZH17cmVxdWlyZWR9fSwg
DQoJCUB7JENPTU1BTkRTeyRjb21tYW5kfXtvcHRpb25hbH19DQoJKTsNCgkN
CglHZXRvcHQ6Okxvbmc6OkNvbmZpZ3VyZSAoIm5vX3Bhc3NfdGhyb3VnaCIs
ICJyZXF1aXJlX29yZGVyIik7DQoJR2V0T3B0aW9ucyhcJWgsIEBvcHRpb25z
KSBvciBleGl0KDIpOw0KDQoJbXkgQG1pc3Npbmc7DQoJZm9yIG15ICRyZXF1
aXJlZCAoQHskQ09NTUFORFN7JGNvbW1hbmR9e3JlcXVpcmVkfX0pIHsNCgkJ
bXkgJHJlcXVpcmVkMiA9ICRyZXF1aXJlZDsNCgkJJHJlcXVpcmVkMiA9fiBz
L1teYS16QS1aXS4qLy87DQoJCXB1c2ggQG1pc3NpbmcsICRyZXF1aXJlZDIg
aWYgIWRlZmluZWQgJGh7JHJlcXVpcmVkMn07DQoJfQ0KCXdoaWxlIChteSAo
JGtleSwgJHZhbHVlKSA9IGVhY2ggJXskQ09NTUFORFN7JGNvbW1hbmR9e2Rl
cGVuZGVuY2llc319ICkgew0KCQlwdXNoIEBtaXNzaW5nLCAkdmFsdWUgaWYg
ZGVmaW5lZCAkaHska2V5fSBhbmQgIWRlZmluZWQgJGh7JHZhbHVlfTsNCgl9
DQoJaWYgKHNjYWxhciBAbWlzc2luZykgew0KCQlsb2NhbCAkIiA9ICIsICI7
DQoJCXByaW50ICJUaGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlIGNvbW1h
bmQgJGNvbW1hbmQgYXJlIG1pc3Npbmc6XG4iOw0KCQlwcmludCAiICAgICIg
LiAiQG1pc3NpbmdcbiI7DQoJCWV4aXQoMik7DQoJfQ0KCQ0KCWV2YWwgeyAk
Q09NTUFORFN7JGNvbW1hbmR9e2FjdGlvbn0tPiglaCk7IH07DQoJaWYgKCRA
KSB7DQoJCXByaW50ICRAOw0KCQlyZXR1cm4gMDsNCgl9DQoNCglpZiAoc2Nh
bGFyIEBBUkdWICE9IDApIHsNCgkJcHJpbnQgIiMjIyMjIyMjIyMjIyMjIyMj
XG4iOw0KCQlwcmludCAiIyMgZW5kIG9mIGNvbW1hbmRcbiI7DQoJCXByaW50
ICIjIyMjIyMjIyMjIyMjIyMjI1xuIjsNCgkNCgkJcmV0dXJuIDE7DQoJfSBl
bHNlIHsNCgkJcmV0dXJuIDA7DQoJfQ0KfQ0KDQpzdWIgdW5yZWNvZ25pemVk
IHsNCiAgICBteSAkY29tbWFuZCA9IHNoaWZ0Ow0KDQogICAgcHJpbnQgU1RE
RVJSICJVbnJlY29nbmlzZWQgY29tbWFuZCAkY29tbWFuZFxuIjsNCiAgICBo
ZWxwbWUoMCk7DQp9DQoNCiMjIyMjDQojDQojIEhlbHAgc3R1ZmYNCiMNCiMj
IyMjDQoNCg0Kc3ViIGhlbHBtZSB7DQoJbXkgJHZlcmJvc2l0eSA9IHNoaWZ0
Ow0KCQ0KCSR2ZXJib3NpdHkgPSAxIGlmICFkZWZpbmVkICR2ZXJib3NpdHk7
DQoNCglwb2QydXNhZ2UoLXZlcmJvc2UgPT4gJHZlcmJvc2l0eSk7DQp9DQoN
CnN1YiBkZWZhdWx0IHsNCgloZWxwbWUoMCk7DQp9DQoNCj1oZWFkMSBTRUUg
QUxTTw0KDQpMPFNpZXN0YT4sIEw8U2llc3RhOjpVc2VyR3VpZGU+DQoNCj1o
ZWFkMSBBVVRIT1INCg0KV3JpdHRlbiBieSBTaW1vbiBXaXN0b24gPHNpbW9u
QHRoZWdlc3RhbHQub3JnPg0KDQpOZXcgZGlzcGF0Y2ggY29kZSB3cml0dGVu
IGJ5IEpvZHkgQmVsa2EgPGJlbGtham0tY3BhbkBhYXJkdmFyay1zcy5jb20+
DQoNCj1oZWFkMSBDT1BZUklHSFQNCg0KKEMpb3B5cmlnaHQgMjAwMiB0aGUg
U2llc3RhIGRldiB0ZWFtLg0KDQpEaXN0cmlidXRlZCB1bmRlciB0aGUgc2Ft
ZSB0ZXJtcyBhcyBQZXJsIGl0c2VsZi4NCg0KPWN1dA0KDQo=
---1463760359-894031124-1059781923=:5155
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=nacho
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.44.0308020052031.5155@xxxx.xxxx.xxxxxxxxxxx.xxx>
Content-Description: nacho-ex proxy
Content-Disposition: attachment; filename=nacho

IyEvdXNyL2Jpbi9wZXJsIC13DQojICRJZCQNCnVzZSBzdHJpY3Q7DQp1c2Ug
RmlsZTo6UGF0aCBxdyhta3BhdGgpOw0KdXNlIEZpbGU6OkJhc2VuYW1lOw0K
dXNlIERhdGE6OkR1bXBlcjsNCnVzZSBTdHJpbmc6OlNoZWxsUXVvdGU7DQp1
c2UgVU5JVkVSU0FMOjpyZXF1aXJlOw0KdXNlIFBvZDo6VXNhZ2U7DQp1c2Ug
R2V0b3B0OjpBcmd2RmlsZSBxdyhhcmd2RmlsZSk7DQp1c2UgR2V0b3B0OjpM
b25nOw0KdXNlIEZpbmRCaW47DQoNCnVzZSB2YXJzIHF3LyAkVkVSU0lPTiAl
Q09NTUFORFMgLzsNCiRWRVJTSU9OID0gIjEuMSI7DQoNCiMjIFRPRE8NCiMg
c2V0dGluZyBwZXJzb25hbCBwbHVnaW5zDQoNCg0KPWhlYWQxIE5BTUUNCg0K
bmFjaG8gLSB0aGUgc2llc3RhIGNvbW1hbmQgbGluZSBjb25maWd1cmF0aW9u
IHRvb2wNCg0KPWhlYWQxIFNZTk9QU0lTDQoNCm5hY2hvIFtjb21tYW5kIFtv
cHRpb25zXS4uLl0NCg0KIEdlbmVyaWMgT3B0aW9uczoNCiAgIC1kLCAtLWRh
dGFiYXNlPURCSV9VUkkgIFwgdGhlc2UgdHdvIG9wdGlvbnMgYWxsb3cgeW91
IHRvIG92ZXJyaWRlDQogICAtZiwgLS1jb25maWctZmlsZT1GSUxFICAvIHRo
ZSB2YWx1ZXMgZGVmaW5lZCBpbiBTaWVzdGE6OkNvbmZpZw0KDQogICAtaCwg
LS1oZWxwICAgICAgICAgICBoZWxwIHRleHQgZGV0YWlsaW5nIHRoZSBjb21t
YW5kcyBhbmQgdGhlaXIgb3B0aW9ucw0KICAgLVYsIC0tdmVyc2lvbiAgICAg
ICAgcHJpbnRzIHRoZSB2ZXJzaW9uIG51bWJlcg0KDQoNCiBNaXNjIENvbW1h
bmRzOiAgIGNyZWF0ZS1kYXRhYmFzZSAgcnVuLW1hcmlhY2hlICAgICAgY3Jl
YXRlLWJhY2t1cA0KIExpc3QgQ29tbWFuZHM6ICAgc2hvdy1saXN0cyAgICAg
ICBzaG93LWFsaWFzICAgICAgICBkZXNjcmliZS1saXN0DQogICAgICAgICAg
ICAgICAgICBjcmVhdGUtbGlzdCAgICAgIG1vZGlmeS1saXN0ICAgICAgIGRl
bGV0ZS1saXN0ICAgIA0KICAgICAgICAgICAgICAgICAgc2V0LXBsdWdpbnMg
ICAgICBhZGQtbWVtYmVyICAgICAgICByZW1vdmUtbWVtYmVyDQogTWVtYmVy
IENvbW1hbmRzOiBzaG93LW1lbWJlcnMgICAgIGRlc2NyaWJlLW1lbWJlciAg
IGNyZWF0ZS1tZW1iZXINCiAgICAgICAgICAgICAgICAgIG1vZGlmeS1tZW1i
ZXIgICAgZGVsZXRlLW1lbWJlcg0KIFBsdWdpbiBDb21tYW5kczogc2hvdy1w
bHVnaW5zICAgICBkZXNjcmliZS1wbHVnaW5zICBtb2RpZnktcGx1Z2luDQoN
CiBPcHRpb25zIGFuZCBjb21tYW5kcyBtYXkgYmUgcmVhZCBmcm9tIGEgZmls
ZSBieSBnaXZpbmcgdGhlIG5hbWUgb2YgdGhlDQogZmlsZSBwcmVmaXhlZCBi
eSBhIEAuIFRoZSBkYXRhYmFzZSBhbmQgY29uZmlnLWZpbGUgb3B0aW9ucyBh
ZmZlY3QgYWxsDQogb2YgdGhlIHN1cHBsaWVkIGNvbW1hbmRzLiBpZiBlaXRo
ZXIgb2YgdGhlbSBpcyBzdXBwbGllZCBtb3JlIHRoYW4gb25jZSwNCiB0aGUg
bGFzdCBvbmUgd2lsbCB0YWtlIHByaW9yaXR5Lg0KDQo9aGVhZDEgT1BUSU9O
Uw0KIA0KIE5PVEU6IEFsbCBjb21tYW5kIG9wdGlvbnMgYXJlIG1hbmRhdG9y
eSB1bmxlc3Mgb3RoZXJ3aXNlIHN0YXRlZA0KDQogTWlzYyBDb21tYW5kczoN
CiAgIGNyZWF0ZS1kYXRhYmFzZQ0KICAgICAgaW5pdGlhbGlzZXMgYSBuZXcg
ZGF0YWJhc2UNCg0KICAgcnVuLW1hcmlhY2hpDQogICAgICBpbnZva2UgbWFy
aWFjaGkgdG8gbWFrZSB3ZWJpZmllZCBhcmNoaXZlcw0KICAgICAgZGVwZW5k
cyBvbiB0aGUgQXJjaGl2ZSBwbHVnaW4NCg0KICAgY3JlYXRlLWJhY2t1cCBb
IDxsaXN0X2lkPiBdDQogICAgICBwcmludHMgb3V0IGEgc2hlbGwgc2NyaXB0
IHRoYXQgd2lsbCByZXN0b3JlIHlvdXIgc3lzdGVtIHdoZW4gcnVuDQogICAg
ICBpZiBhIGxpc3RfaWQgaXMgc3VwcGxpZWQgd2lsbCBsaW1pdCB0aGUgYmFj
a3VwIHNjcmlwdCB0byB0aGF0IGxpc3QNCg0KICBMaXN0IENvbW1hbmRzOg0K
ICAgc2hvdy1saXN0cw0KICAgICAgc2hvd3MgYWxsIHRoZSBsaXN0cyB0aGF0
IGFyZSBpbiB0aGUgc3lzdGVtDQoNCiAgIGNyZWF0ZS1saXN0IDxsaXN0X25h
bWU+IDxsaXN0X293bmVyPiA8cG9zdF9hZGRyZXNzPiA8cmV0dXJuX3BhdGg+
DQogICAgICBjcmVhdGVzIGEgbmV3IGxpc3QNCg0KICAgc2hvdy1hbGlhcyA8
bGlzdF9pZD4NCiAgICAgIHByaW50cyBvdXQgYW4gYWxpYXMgZmlsZSBlbnRy
eSBmb3IgYSBsaXN0DQoNCiAgIGRlc2NyaWJlLWxpc3QgPGxpc3RfaWQ+DQog
ICAgICBzaG93cyBhbGwgdGhlIHByb3BlcnRpZXMgb2YgYSBsaXN0IGFuZCB0
aGVpciB2YWx1ZXMNCg0KICAgbW9kaWZ5LWxpc3QgPGxpc3RfaWQ+IDxrZXk+
IDx2YWx1ZT4NCiAgICAgIGNoYW5nZSBhIHByb3BlcnR5IG9mIGEgbGlzdA0K
ICAgICAgDQogICAgICB5b3UgY2FuIGVmZmVjdGl2ZWx5IGNvcHkgdGhlIGNv
bmZpZ3VyYXRpb24gb2YgYSBsaXN0IGJ5IG1vZGlmaXlpbmcNCiAgICAgIHRo
ZSAnaWQnIHByb3BlcnR5IC0gYSBuZXcgbGlzdCB3aXRoIHRoZSBuZXcgaWQg
d2lsbCBiZSBjcmVhdGVkIGZvciB5b3UuDQoNCiAgIGRlbGV0ZS1saXN0IDxs
aXN0X2lkPg0KICAgICAgcmVtb3ZlIGEgbGlzdHMgZnJvbSB0aGUgc3lzdGVt
DQoNCiAgIHNldC1wbHVnaW5zIDxsaXN0X2lkPiA8cXVldWU+IFsgPHBsdWdp
bj4gWyA8cGx1Z2luPi4uLiBdIF0NCiAgICAgIHNldHMgdGhlIHBsdWdpbnMg
b2YgYSBsaXN0LiANCiAgICAgIGFueSBleGlzdGluZyBwbHVnaW5zIG5vdCBz
cGVjaWZpZWQgd2lsbCBiZSByZW1vdmVkDQogICAgIA0KICAgYWRkLW1lbWJl
ciA8bGlzdF9pZD4gPG1lbWJlcj4gWyA8bWVtYmVyPi4uLiBdDQogICAgICBh
ZGRzIG9uZSBvciBtb3JlIG1lbWJlcnMgdG8gYSBsaXN0LiANCiAgICAgIHdp
bGwgY3JlYXRlIG5ldyBtZW1iZXJzIGlmIG5lY2Vzc2FyeQ0KDQogICByZW1v
dmUtbWVtYmVyIDxsaXN0X2lkPiA8bWVtYmVyPiBbIDxtZW1iZXI+Li4uIF0N
CiAgICAgIHJlbW92ZXMgb25lIG9yIG1vcmUgbWVtYmVycyBmcm9tIGEgbGlz
dA0KDQogICANCiBNZW1iZXIgQ29tbWFuZHM6DQogICBzaG93LW1lbWJlcnMg
PGxpc3RfaWQ+IFsgPGxpc3RfaWQ+Li4uIF0NCiAgICAgIHNob3dzIHRoZSBt
ZW1iZXJzIGluIHRoZSBzeXN0ZW0sIG9yIG9uZSBvciBtb3JlIGxpc3RzDQoN
CiAgIGNyZWF0ZS1tZW1iZXIgPG1lbWJlcl9lbWFpbD4NCiAgICAgIGFkZHMg
YSBuZXcgbWVtYmVyIHRvIHRoZSBzeXN0ZW0NCg0KICAgZGVzY3JpYmUtbWVt
YmVyIDxtZW1iZXJfaWQ+DQogICAgICBzaG93cyBhbGwgdGhlIHByb3BlcnRp
ZXMgb2YgYSBtZW1iZXIgYW5kIHRoZWlyIHZhbHVlcw0KDQogICBtb2RpZnkt
bWVtYmVyIDxtZW1iZXJfaWQ+IDxrZXk+IDx2YWx1ZT4NCiAgICAgIGNoYW5n
ZSBhIHByb3BlcnR5IG9mIGEgbWVtYmVyDQoNCiAgICAgIHlvdSBjYW4gZWZm
ZWN0aXZlbHkgY29weSB0aGUgY29uZmlndXJhdGlvbiBvZiBhIG1lbWJlciBi
eSBtb2RpZml5aW5nDQogICAgICB0aGUgJ2lkJyBwcm9wZXJ0eSAtIGEgbmV3
IG1lbWJlciB3aXRoIHRoZSBuZXcgaWQgd2lsbCBiZSBjcmVhdGVkIGZvciB5
b3UuDQoNCiAgIGRlbGV0ZS1tZW1iZXIgPG1lbWJlcl9pZD4NCiAgICAgIHJl
bW92ZXMgb25lIG9yIG1vcmUgbWVtYmVycyBmcm9tIHRoZSBzeXN0ZW0NCg0K
IFBsdWdpbiBDb21tYW5kczoNCiAgIHNob3ctcGx1Z2lucyA8bGlzdF9pZD4g
WyA8bGlzdF9pZD4uLi4gXQ0KICAgICAgZGlzcGxheSBhIGxpc3Qgb2YgcGx1
Z2lucyAob24gdGhlIHN5c3RlbSwgb3Igc2V0IG9uIGxpc3RzKSAgDQoNCiAg
IGRlc2NyaWJlLXBsdWdpbiA8cGx1Z2luPiBbIDxsaXN0X2lkPiBbIDxtZW1i
ZXJfaWQ+IF0gXQ0KICAgICAgc2hvd3MgYWxsIHRoZSBvcHRpb25zIGZvciBh
IHBhcnRpY3VsYXIgcGx1Z2luDQoNCiAgIG1vZGlmeS1wbHVnaW4gPHBsdWdp
bj4gPGxpc3RfaWQ+IDxrZXk+IDx2YWx1ZT4gWyA8bWVtYmVyX2lkPiBdDQog
ICAgICBzZXRzIGEgcGx1Z2luIHByZWZlcmVuY2UgZm9yIGEgbGlzdCAob3Ig
bWVtYmVyIG9mIGEgbGlzdCkNCg0KPWN1dA0KDQpCRUdJTnsNCg0KCSMjIyMj
DQoJIw0KCSMgTWlzYyBzdHVmZg0KCSMNCgkjIyMjIw0KDQoJJENPTU1BTkRT
eydjcmVhdGUtZGF0YWJhc2UnfSA9IHt9Ow0KDQoJJENPTU1BTkRTeydydW4t
bWFyaWFjaGknfSA9IHt9Ow0KDQoJJENPTU1BTkRTeydjcmVhdGUtYmFja3Vw
J30gPSB7DQoJCXBhcmFtcyA9PiBbcXcvIGxpc3QgL10sDQoJfTsgDQoNCgkj
IyMjIw0KCSMNCgkjIExpc3Qgc3R1ZmYNCgkjDQoJIyMjIyMNCg0KDQoJJENP
TU1BTkRTeydzaG93LWxpc3RzJ30gPSB7fTsNCgkNCgkkQ09NTUFORFN7J2Ny
ZWF0ZS1saXN0J30gPSB7DQoJCXBhcmFtcyA9PiBbcXcvIGxpc3Qgb3duZXIg
cG9zdCBib3VuY2UgL10NCgl9OwkNCg0KCSRDT01NQU5EU3snc2hvdy1hbGlh
cyd9ID0gew0KCQlwYXJhbXMgPT4gW3F3LyBsaXN0IC9dDQoJfTsNCg0KCSRD
T01NQU5EU3snZGVzY3JpYmUtbGlzdCd9ID0gew0KCQlwYXJhbXMgPT4gW3F3
LyBsaXN0IC9dDQoJfTsNCg0KCSRDT01NQU5EU3snbW9kaWZ5LWxpc3QnfSA9
IHsNCgkJcGFyYW1zID0+IFtxdy8gbGlzdCBwcm9wZXJ0eSA9IC9dDQoJfTsN
Cg0KCSRDT01NQU5EU3snZGVsZXRlLWxpc3QnfSA9IHsNCgkJcGFyYW1zID0+
IFtxdy8gbGlzdCAvXQ0KCX07DQoNCgkkQ09NTUFORFN7J3NldC1wbHVnaW5z
J30gPSB7DQoJCXBhcmFtcyA9PiBbcXcvIGxpc3QgcXVldWUgL10sDQoJCXJl
cGVhdCA9PiAncGx1Z2luJw0KCX07DQoNCgkkQ09NTUFORFN7J2FkZC1tZW1i
ZXInfSA9IHsNCgkJcGFyYW1zID0+IFtxdy8gbGlzdCBtZW1iZXIgL10sDQoJ
CXJlcGVhdCA9PiAnbWVtYmVyJw0KCX07DQoNCgkkQ09NTUFORFN7J3JlbW92
ZS1tZW1iZXInfSA9IHsNCgkJcGFyYW1zID0+IFtxdy8gbGlzdCBtZW1iZXIg
L10sDQoJCXJlcGVhdCA9PiAnbWVtYmVyJw0KCX07DQoNCgkjIyMjIw0KCSMN
CgkjIE1lbWJlciBzdHVmZg0KCSMNCgkjIyMjIw0KDQoNCgkkQ09NTUFORFN7
J3Nob3ctbWVtYmVycyd9ID0gew0KCQlyZXBlYXQgPT4gJ2xpc3QnDQoJfTsN
Cg0KCSRDT01NQU5EU3snY3JlYXRlLW1lbWJlcid9ID0gew0KCQlwYXJhbXMg
PT4gW3F3LyBtZW1iZXIgL10NCgl9Ow0KDQoJJENPTU1BTkRTeydkZXNjcmli
ZS1tZW1iZXInfSA9IHsNCgkJcGFyYW1zID0+IFtxdy8gbWVtYmVyIC9dDQoJ
fTsNCg0KCSRDT01NQU5EU3snbW9kaWZ5LW1lbWJlcid9ID0gew0KCQlwYXJh
bXMgPT4gW3F3LyBtZW1iZXIgcHJvcGVydHkgPSAvXQ0KCX07DQoNCgkkQ09N
TUFORFN7J2RlbGV0ZS1tZW1iZXInfSA9IHsNCgkJcGFyYW1zID0+IFtxdy8g
bWVtYmVyIC9dDQoJfTsNCg0KCSMjIyMjDQoJIw0KCSMgUGx1Z2luIHN0dWZm
DQoJIw0KCSMjIyMjDQoNCg0KCSRDT01NQU5EU3snc2hvdy1wbHVnaW5zJ30g
PSB7DQoJCXJlcGVhdCA9PiAnbGlzdCcNCgl9Ow0KDQoJJENPTU1BTkRTeydk
ZXNjcmliZS1wbHVnaW4nfSA9IHsNCgkJcGFyYW1zID0+IFtxdy8gcGx1Z2lu
IGxpc3QgbWVtYmVyIC9dDQoJfTsNCg0KCSRDT01NQU5EU3snbW9kaWZ5LXBs
dWdpbid9ID0gew0KCQlwYXJhbXMgPT4gW3F3LyBwbHVnaW4gbGlzdCBwcmVm
ZXJlbmNlID0gbWVtYmVyIC9dDQoJfTsNCg0KCWFyZ3ZGaWxlOw0KDQp9DQoN
Cg0KIyMjIyMNCiMNCiMgRGlzcGF0Y2ggc3R1ZmYNCiMNCiMjIyMjDQoNCnVz
ZSBHZXRvcHQ6OkF1dG8gKA0KCW1hcCB7IG15ICRuYW1lID0gJF87IFsgJG5h
bWUsICcnLCBzdWIgeyBydW4oJG5hbWUpIH0gXSB9IA0KCQlrZXlzICVDT01N
QU5EUw0KKTsNCg0KQkVHSU57DQoJbm8gd2FybmluZ3M7DQoJKkdldG9wdDo6
QXV0bzo6aGVscG1lID0gXCZoZWxwbWU7DQoJKkdldG9wdDo6QXV0bzo6dW5y
ZWNvZ25pemVkID0gXCZ1bnJlY29nbml6ZWQ7DQp9DQoNCg0KbXkgJGNvbW1h
bmRsaW5lOw0KDQpCRUdJTnsNCglteSAkZGF0YWJhc2U7DQoJbXkgJGNvbmZp
ZzsNCgkNCglHZXRvcHQ6Okxvbmc6OkNvbmZpZ3VyZSAoInBhc3NfdGhyb3Vn
aCIpOw0KCUdldE9wdGlvbnMoJ2RhdGFiYXNlPXMnID0+IFwkZGF0YWJhc2Us
DQogICAgICAgICAgICAgICAnY29uZmlnLWZpbGV8Zj1zJyA9PiBcJGNvbmZp
Zyk7DQoNCgkkY29tbWFuZGxpbmUgLj0gIiAtLWRhdGFiYXNlPVwiJGRhdGFi
YXNlXCIiIGlmIGRlZmluZWQgJGRhdGFiYXNlOw0KCSRjb21tYW5kbGluZSAu
PSAiIC0tY29uZmlnLWZpbGU9XCIkY29uZmlnXCIiIGlmIGRlZmluZWQgJGNv
bmZpZzsNCn0NCg0Kc3ViIHJ1biB7DQoJbXkgJGNvbW1hbmQgPSBzaGlmdDsN
Cg0KCWZvciBteSAkcGFyYW0gKEB7JENPTU1BTkRTeyRjb21tYW5kfXtwYXJh
bXN9fSkgew0KCQlteSAkYXJnID0gc2hpZnQgQEFSR1Y7DQoJCWlmIChkZWZp
bmVkICRhcmcpIHsNCgkJCWlmICgkcGFyYW0gZXEgIj0iKSB7DQoJCQkJJGNv
bW1hbmRsaW5lIC49ICI9XCIkYXJnXCIiOw0KCQkJfSBlbHNlIHsNCgkJCQkk
Y29tbWFuZGxpbmUgLj0gIiAtLSRwYXJhbT1cIiRhcmdcIiI7DQoJCQl9DQoJ
CX0NCgl9DQoNCglpZiAoZGVmaW5lZCBAeyRDT01NQU5EU3skY29tbWFuZH17
cmVwZWF0fX0pIHsNCgkJbXkgJHBhcmFtID0gQHskQ09NTUFORFN7JGNvbW1h
bmR9e3JlcGVhdH19Ow0KCQl3aGlsZSAoQEFSR1YpIHsNCgkJCSRjb21tYW5k
bGluZSAuPSAiIC0tJHBhcmFtPVwiJF9cIiI7DQoJCQlzaGlmdDsNCgkJfQ0K
CX0NCg0KCXN5c3RlbSAiJEZpbmRCaW46OkJpbi9uYWNoby1leCAkY29tbWFu
ZCAkY29tbWFuZGxpbmUiOw0KDQoJcmV0dXJuIDA7DQp9DQoNCnN1YiB1bnJl
Y29nbml6ZWQgew0KICAgIG15ICRjb21tYW5kID0gc2hpZnQ7DQoNCiAgICBw
cmludCBTVERFUlIgIlVucmVjb2duaXNlZCBjb21tYW5kICRjb21tYW5kXG4i
Ow0KICAgIGhlbHBtZSgwKTsNCn0NCg0KIyMjIyMNCiMNCiMgSGVscCBzdHVm
Zg0KIw0KIyMjIyMNCg0KDQpzdWIgaGVscG1lIHsNCglteSAkdmVyYm9zaXR5
ID0gc2hpZnQ7DQoJDQoJJHZlcmJvc2l0eSA9IDEgaWYgIWRlZmluZWQgJHZl
cmJvc2l0eTsNCg0KCXBvZDJ1c2FnZSgtdmVyYm9zZSA9PiAkdmVyYm9zaXR5
KTsNCn0NCg0Kc3ViIGRlZmF1bHQgew0KCWhlbHBtZSgwKTsNCn0NCg0KPWhl
YWQxIFNFRSBBTFNPDQoNCkw8U2llc3RhPiwgTDxTaWVzdGE6OlVzZXJHdWlk
ZT4NCg0KPWhlYWQxIEFVVEhPUg0KDQpXcml0dGVuIGJ5IEpvZHkgQmVsa2Eg
PGJlbGtham0tY3BhbkBhYXJkdmFyay1zcy5jb20+DQoNCj1oZWFkMSBDT1BZ
UklHSFQNCg0KKEMpb3B5cmlnaHQgMjAwMiB0aGUgU2llc3RhIGRldiB0ZWFt
Lg0KDQpEaXN0cmlidXRlZCB1bmRlciB0aGUgc2FtZSB0ZXJtcyBhcyBQZXJs
IGl0c2VsZi4NCg0KPWN1dA0KDQo=
---1463760359-894031124-1059781923=:5155--

Generated at 13:56 on 01 Jul 2004 by mariachi 0.52