--0-1589893821-1047011453=:71357 Content-Type: text/plain; charset=us-ascii Content-Id: Content-Disposition: inline Okay, new version. Fixed in this release: * Virtual functions are declared according to spec. Virtual methods inherited from parent classes are indicated with origin="QBase" instead of whatever I originally proposed * Fields work. Member variables and static variables in a class are now output as field tags. * Works better. Every class I've thrown at it works beautifully. QString, template classes, deeply nested virtual hierarchies. I can't find anything wrong. * Enums work better. Previously, it was only printing out enums actually used at arguments to a function. Now it prints out all enums. Missing features: * Signal/slot tags. I need to integrate slotnames.cpp into the xml generator. Give it a try. See if there's a class it doesn't work right on. I've been throwing lots of classes at it... The fact that QString and QPointArray (aka. QMemArray) will be fully available to the C binding scares me! :) Ashley Winters __________________________________________________ Do you Yahoo!? Yahoo! Tax Center - forms, calculators, tips, more http://taxes.yahoo.com/ --0-1589893821-1047011453=:71357 Content-Type: application/octet-stream; name="genxml.pl" Content-Transfer-Encoding: base64 Content-Description: genxml.pl Content-Disposition: attachment; filename="genxml.pl" IyEvdXNyL2Jpbi9wZXJsIC13DQp1c2UgR2V0b3B0OjpTdGQ7DQokZGIgPSAw OyAgICMgZGVidWcgZmxhZw0KZ2V0b3B0KCJjIiwgXCVvcHRzKTsNCiRvdXRw dXQgPSAkb3B0c3tjfSB8fCAiUVdpZGdldCI7ICAgIyB3aGF0IGNsYXNzIHRv IHNwaXQgb3V0DQpteSAlZW51bXM7DQpteSAlZHVtcGVkOyAgICAjIG9ubHkg ZHVtcCBhIGNsYXNzIG9uY2UNCg0KbXkgJW9wcyA9ICgNCiAgICAnbmV3JyA9 PiAibmV3IiwNCiAgICB2ZWNuZXcgPT4gIm5ld1tdIiwNCiAgICAnZGVsZXRl JyA9PiAiZGVsZXRlIiwNCiAgICB2ZWNkZWxldGUgPT4gImRlbGV0ZVtdIiwN CiAgICAncG9zJyA9PiAiKyIsDQogICAgbmVnID0+ICItIiwNCiAgICBhZGRy ID0+ICImIiwNCiAgICBkZXJlZiA9PiAiKiIsDQogICAgJ25vdCcgPT4gIn4i LA0KICAgIGxub3QgPT4gIiEiLA0KICAgIHByZWluYyA9PiAiKysiLA0KICAg IHByZWRlYyA9PiAiLS0iLA0KICAgIHBsdXMgPT4gIisiLA0KICAgIHBsdXNh c3NpZ24gPT4gIis9IiwNCiAgICBtaW51cyA9PiAiLSIsDQogICAgbWludXNh c3NpZ24gPT4gIi09IiwNCiAgICBtdWx0ID0+ICIqIiwNCiAgICBtdWx0YXNz aWduID0+ICIqPSIsDQogICAgZGl2ID0+ICIvIiwNCiAgICBkaXZhc3NpZ24g PT4gIi89IiwNCiAgICBtb2QgPT4gIiUiLA0KICAgIG1vZGFzc2lnbiA9PiAi JT0iLA0KICAgICdhbmQnID0+ICImIiwNCiAgICBhbmRhc3NpZ24gPT4gIiY9 IiwNCiAgICAnb3InID0+ICJ8IiwNCiAgICBvcmFzc2lnbiA9PiAifD0iLA0K ICAgICd4b3InID0+ICJeIiwNCiAgICB4b3Jhc3NpZ24gPT4gIl49IiwNCiAg ICBsc2hpZnQgPT4gIjw8IiwNCiAgICBsc2hpZnRhc3NpZ24gPT4gIjw8PSIs DQogICAgcnNoaWZ0ID0+ICI+PiIsDQogICAgcnNoaWZ0YXNzaWduID0+ICI+ Pj0iLA0KICAgICdlcScgPT4gIj09IiwNCiAgICAnbmUnID0+ICIhPSIsDQog ICAgJ2x0JyA9PiAiPCIsDQogICAgJ2d0JyA9PiAiPiIsDQogICAgJ2xlJyA9 PiAiPD0iLA0KICAgICdnZScgPT4gIj49IiwNCiAgICBsYW5kID0+ICImJiIs DQogICAgbG9yID0+ICJ8fCIsDQogICAgY29tcG91bmQgPT4gIiwiLA0KICAg IG1lbXJlZiA9PiAiLT4qIiwNCiAgICAncmVmJyA9PiAiLT4iLA0KICAgIHN1 YnMgPT4gIltdIiwNCiAgICBwb3N0aW5jID0+ICIrKyIsDQogICAgcG9zdGRl YyA9PiAiLS0iLA0KICAgIGNhbGwgPT4gIigpIiwNCiAgICBhc3NpZ24gPT4g Ij0iDQopOw0KDQpteSAkY3VyID0gMDsNCndoaWxlKDw+KSB7DQogICAgaWYo L15cQChcZCspXHMrKFx3KykvZ2MpIHsNCgkjIEAxMjMgICBmb29fZGVjbA0K CSRjdXIgPSAkMTsNCgkkdHVbJGN1cl0gfHw9IHsgaWRlbnQgPT4gJGN1ciB9 Ow0KCWJsZXNzICR0dVskY3VyXSwgIkdDQzo6JDIiOw0KCXdhcm4gIlJlYWQg JGN1clxuIiB1bmxlc3MgJGN1ciAlIDEwMDA7DQogICAgfQ0KICAgIHdoaWxl KDEpIHsNCglpZigvXEdccysoXFMuezN9KTogXEAoXGQrKS9nYykgew0KCSAg ICAjIGZvb3o6IEAxMjMNCgkgICAgbXkgJGtleSA9ICQxOw0KCSAgICBteSAk aSA9ICQyOw0KCSAgICAka2V5ID1+IHMvXHMrJC8vOw0KCSAgICAkdHVbJGld IHx8PSB7IGlkZW50ID0+ICRpIH07DQoJICAgIGlmKCRrZXkgZXEgJ2Jhc2Un ICYmIHJlZigkdHVbJGN1cl0pIG5lICdHQ0M6OmJpbmZvJykgeyAgICAjIGJh c2VjbGFzc2VzIGFyZSBvZGQNCgkJIyB1bmZvcnR1bmF0ZWx5LCBiYXNlIGNh biBoYXZlICd2aXJ0dWFsJyBhbmQgJ3Byb3RlY3RlZCcNCgkJIyBhZnRlciBp dA0KCQlteSAkc3VwZXIgPSB7IHN1cGVyID0+ICR0dVskaV0gfTsNCgkJDQoJ CXdoaWxlKC9cR1xzKyhwdWJsaWN8cHJpdmF0ZXxwcm90ZWN0ZWR8dmlydHVh bClcYnxcR1xzKiQvZ2MpIHsNCgkJICAgIHVubGVzcyhkZWZpbmVkICQxKSB7 DQoJCQkkXyA9IDw+Ow0KCQkJbmV4dDsNCgkJICAgIH0NCgkJICAgIGlmKCQx IGVxICd2aXJ0dWFsJykgew0KCQkJJHN1cGVyLT57dmlydHVhbH0gPSAxOw0K CQkJcHJpbnQgImluaGVyaXRpbmcgXEAkc3VwZXItPntzdXBlcn17aWRlbnR9 IHZpcnR1YWxcbiIgaWYgJGRiOw0KCQkgICAgfSBlbHNlIHsNCgkJCSRzdXBl ci0+e2FjY2Vzc30gPSAkMTsNCgkJCXByaW50ICJpbmhlcml0aW5nIFxAJHN1 cGVyLT57c3VwZXJ9e2lkZW50fSAkMVxuIiBpZiAkZGI7DQoJCSAgICB9DQoJ CX0NCgkJcHVzaCBAeyR0dVskY3VyXXtiYXNlfX0sICRzdXBlcjsNCgkgICAg fSBlbHNlIHsNCgkJJHR1WyRjdXJdeyRrZXl9ID0gJHR1WyRpXTsNCgkJcHJp bnQgInR1WyRjdXJdeyRrZXl9ID0gdHVbJGldXG4iIGlmICRkYjsNCgkgICAg fQ0KCX0gZWxzaWYoL1xHXHMrc3RyZzogKC4rPylccysoPz1cUy57M306ICkv Z2MgfHwNCgkJL1xHXHMrc3RyZzogKC4rPylccyokL2djKSB7DQoJICAgICR0 dVskY3VyXXtzdHJnfSA9ICQxOw0KCSAgICBwcmludCAidHVbJGN1cl17c3Ry Z30gPSBxKCQxKVxuIiBpZiAkZGI7DQoJfSBlbHNpZigvXEdccytzcmNwOiAo Lis/KSg/PVxzezIsfSl8XEdccytzcmNwOiAoLis/KVxzKiQvZ2MpIHsNCgkg ICAgJHR1WyRjdXJde3NyY3B9ID0gJDE7DQoJICAgIHByaW50ICJ0dVskY3Vy XXtzcmNwfSA9IHEoJDEpXG4iIGlmICRkYjsNCgl9IGVsc2lmKC9cR1xzKyhc Uy57M30pOiAoXFMqKS9nYykgew0KCSAgICAjIFBsYWluIHN0cmluZywgSSBo b3BlDQoJICAgIG15ICRrZXkgPSAkMTsNCgkgICAgbXkgJHZhbCA9ICQyOw0K CSAgICAka2V5ID1+IHMvXHMqJC8vOw0KCSAgICAkdHVbJGN1cl17JGtleX0g PSAkdmFsOw0KCSAgICBwcmludCAidHVbJGN1cl17JGtleX0gPSAkdmFsXG4i IGlmICRkYjsNCgl9IGVsc2lmKC9cR1xzKyhcUyspL2djKSB7DQoJICAgICMg aXQncyBhIGZsYWcNCgkgICAgaWYoJHR1WyRjdXJde29wZXJhdG9yfSAmJiAk b3BzeyQxfSkgew0KCQkkdHVbJGN1cl17b3BlcmF0b3J9ID0gJDE7DQoJCXBy aW50ICJvcGVyYXRvciAkb3BzeyQxfVxuIiBpZiAkZGI7DQoJICAgIH0gZWxz ZSB7DQoJCSR0dVskY3VyXXskMX0gPSAxOw0KCQlwcmludCAidHVbJGN1cl17 JDF9ID0gVFJVRVxuIiBpZiAkZGI7DQoJICAgIH0NCgl9IGVsc2Ugew0KCSAg ICBsYXN0OyAgICMgYnJlYWtzIGlubmVyIGxvb3ANCgl9DQogICAgfQ0KfQ0K DQpwYWNrYWdlIEdDQzo6aW50ZWdlcl9jc3Q7DQpzdWIgbG93IHsgc2hpZnQt Pntsb3d9IH0gICAgICMgdmFsdWUsIHVzdWFsbHkNCnN1YiBoaWdoIHsgc2hp ZnQtPntoaWdofSB9DQpzdWIgdHlwZSB7IHNoaWZ0LT57dHlwZX0gfQ0KDQpw YWNrYWdlIEdDQzo6dm9pZF90eXBlOw0Kc3ViIG5hbWUgeyBzaGlmdC0+e25h bWV9LT5uYW1lIH0NCnN1YiB0eXBlIHsgc2hpZnQtPntuYW1lfSB9DQpzdWIg dHlwZW5hbWUgeyBzaGlmdC0+bmFtZSB9DQpzdWIgcXVhbG5hbWUgeyBzaGlm dC0+dHlwZW5hbWUgfQ0KDQpwYWNrYWdlIEdDQzo6cmVjb3JkX3R5cGU7DQpz dWIgdHlwZW5hbWUgew0KICAgIHJldHVybiAiY2xhc3MgIiAuIHNoaWZ0LT5u YW1lOw0KfQ0Kc3ViIHF1YWxuYW1lIHsNCiAgICBteSAkc2VsZiA9IHNoaWZ0 Ow0KICAgIHJldHVybiAoJHNlbGYtPnt1bnFsfSAmJiAhJHNlbGYtPntxdWFs fSkgPyAkc2VsZi0+e25hbWV9LT5xdWFsbmFtZSA6ICRzZWxmLT50eXBlbmFt ZTsNCn0NCnN1YiBuYW1lIHsNCiAgICBteSAkc2VsZiA9IHNoaWZ0Ow0KICAg IHJldHVybiAkc2VsZi0+e25hbWV9LT5uYW1lIHVubGVzcyAkc2VsZi0+e3Vu cWx9Ow0KICAgIG15ICRyZXQgPSAkc2VsZi0+e3VucWx9LT5uYW1lOw0KICAg IGlmKCRzZWxmLT57cXVhbH0pIHsNCglpZigkc2VsZi0+e3F1YWx9ID1+IC9j Lykgew0KCSAgICAkcmV0IC49ICIgY29uc3QiOw0KCX0NCglpZigkc2VsZi0+ e3F1YWx9ID1+IC92Lykgew0KCSAgICAkcmV0IC49ICIgdm9sYXRpbGUiOw0K CX0NCiAgICB9DQogICAgcmV0dXJuICRyZXQ7DQp9DQpzdWIgdHlwZSB7IHNo aWZ0LT57bmFtZX0gfQ0Kc3ViIHVucWwgeyBzaGlmdC0+e3VucWx9IH0NCnN1 YiBiYXNlIHsgc2hpZnQtPntiYXNlfSB9DQoNCnBhY2thZ2UgR0NDOjp1bmlv bl90eXBlOw0Kc3ViIG5hbWUgeyBzaGlmdC0+e25hbWV9LT5uYW1lIH0NCnN1 YiB0eXBlIHsgc2hpZnQtPntuYW1lfSB9DQpzdWIgdHlwZW5hbWUgeyByZXR1 cm4gInVuaW9uICIgLiBzaGlmdC0+bmFtZSB9DQpzdWIgcXVhbG5hbWUgeyBy ZXR1cm4gc2hpZnQtPnR5cGVuYW1lIH0NCg0KcGFja2FnZSBHQ0M6OmVudW1l cmFsX3R5cGU7DQpzdWIgdHlwZW5hbWUgew0KICAgIHJldHVybiAiZW51bSAi IC4gc2hpZnQtPm5hbWU7DQp9DQpzdWIgcXVhbG5hbWUgeyBzaGlmdC0+dHlw ZW5hbWUgfQ0Kc3ViIG5hbWUgew0KICAgIG15ICRzZWxmID0gc2hpZnQ7DQog ICAgbXkgJG5hbWUgPSAkc2VsZi0+e25hbWV9LT5uYW1lOw0KICAgICRlbnVt c3skbmFtZX0gPSAkc2VsZjsNCiAgICByZXR1cm4gJG5hbWU7DQp9DQpzdWIg dHlwZSB7IHNoaWZ0LT57bmFtZX0gfQ0Kc3ViIGNvbnN0YW50cyB7DQogICAg bXkgJHNlbGYgPSBzaGlmdDsNCiAgICBteSAkZW51bSA9ICRzZWxmLT57Y3N0 c307DQogICAgbXkgJWVudW1lcmF0aW9uOw0KICAgIHdoaWxlKCRlbnVtKSB7 DQoJJGVudW1lcmF0aW9ueyRlbnVtLT5lbnVtfSA9ICRlbnVtLT52YWx1ZTsN CgkkZW51bSA9ICRlbnVtLT5jaGFpbjsNCiAgICB9DQogICAgcmV0dXJuIFwl ZW51bWVyYXRpb247DQp9DQoNCnBhY2thZ2UgR0NDOjpib29sZWFuX3R5cGU7 DQpzdWIgbmFtZSB7IHNoaWZ0LT57bmFtZX0tPm5hbWUgfQ0Kc3ViIHR5cGUg eyBzaGlmdC0+e25hbWV9IH0NCnN1YiB0eXBlbmFtZSB7IHNoaWZ0LT5uYW1l IH0NCnN1YiBxdWFsbmFtZSB7IHNoaWZ0LT50eXBlbmFtZSB9DQoNCnBhY2th Z2UgR0NDOjpyZWFsX3R5cGU7DQpzdWIgbmFtZSB7IHNoaWZ0LT57bmFtZX0t Pm5hbWUgfQ0Kc3ViIHR5cGVuYW1lIHsgc2hpZnQtPm5hbWUgfQ0Kc3ViIHF1 YWxuYW1lIHsgc2hpZnQtPnR5cGVuYW1lIH0NCg0KcGFja2FnZSBHQ0M6Omlu dGVnZXJfdHlwZTsNCnN1YiBxdWFsbmFtZSB7DQogICAgbXkgJHNlbGYgPSBz aGlmdDsNCiAgICByZXR1cm4gKCRzZWxmLT57dW5xbH0gJiYgISRzZWxmLT57 cXVhbH0pID8gJHNlbGYtPntuYW1lfS0+bmFtZSA6ICRzZWxmLT50eXBlbmFt ZTsNCn0NCnN1YiBuYW1lIHsNCiAgICBteSAkc2VsZiA9IHNoaWZ0Ow0KICAg IHJldHVybiAkc2VsZi0+e25hbWV9LT5uYW1lIHVubGVzcyAkc2VsZi0+e3Vu cWx9Ow0KICAgIG15ICRyZXQgPSAkc2VsZi0+e3VucWx9LT5uYW1lOw0KICAg IGlmKCRzZWxmLT57cXVhbH0pIHsNCglpZigkc2VsZi0+e3F1YWx9ID1+IC9j Lykgew0KCSAgICAkcmV0IC49ICIgY29uc3QiOw0KCX0NCglpZigkc2VsZi0+ e3F1YWx9ID1+IC92Lykgew0KCSAgICAkcmV0IC49ICIgdm9sYXRpbGUiOw0K CX0NCiAgICB9DQogICAgcmV0dXJuICRyZXQ7DQp9DQpzdWIgdHlwZSB7IHNo aWZ0LT57bmFtZX0gfQ0Kc3ViIHR5cGVuYW1lIHsgc2hpZnQtPm5hbWUgfQ0K DQpwYWNrYWdlIEdDQzo6cmVmZXJlbmNlX3R5cGU7DQpzdWIgbmFtZSB7IHNo aWZ0LT57cmVmZH0tPm5hbWUgLiAnJicgfQ0Kc3ViIHR5cGVuYW1lIHsgc2hp ZnQtPntyZWZkfS0+dHlwZW5hbWUgLiAnJicgfQ0Kc3ViIHF1YWxuYW1lIHsg c2hpZnQtPntyZWZkfS0+cXVhbG5hbWUgLiAnJicgfQ0KDQpwYWNrYWdlIEdD Qzo6cG9pbnRlcl90eXBlOw0KDQpzdWIgcXVhbG5hbWUgew0KICAgIG15ICRz ZWxmID0gc2hpZnQ7DQogICAgcmV0dXJuICgkc2VsZi0+e3VucWx9ICYmICEk c2VsZi0+e3F1YWx9KSA/ICRzZWxmLT57cHRkfS0+cXVhbG5hbWUgLiAnKicg OiAkc2VsZi0+dHlwZW5hbWU7DQp9DQpzdWIgbmFtZSB7DQogICAgbXkgJHNl bGYgPSBzaGlmdDsNCiAgICByZXR1cm4gJHNlbGYtPntwdGR9LT5uYW1lIC4g IioiIHVubGVzcyAkc2VsZi0+e3VucWx9Ow0KICAgIG15ICRyZXQgPSAkc2Vs Zi0+e3VucWx9e3B0ZH0tPm5hbWUgLiAiKiI7DQogICAgaWYoJHNlbGYtPntx dWFsfSkgew0KCWlmKCRzZWxmLT57cXVhbH0gPX4gL2MvKSB7DQoJICAgICRy ZXQgLj0gIiBjb25zdCI7DQoJfQ0KCWlmKCRzZWxmLT57cXVhbH0gPX4gL3Yv KSB7DQoJICAgICRyZXQgLj0gIiB2b2xhdGlsZSI7DQoJfQ0KICAgIH0NCiAg ICByZXR1cm4gJHJldDsNCn0NCg0Kc3ViIHR5cGVuYW1lIHsNCiAgICBteSAk c2VsZiA9IHNoaWZ0Ow0KICAgIHJldHVybiAkc2VsZi0+e3B0ZH0tPnR5cGVu YW1lIC4gIioiIHVubGVzcyAkc2VsZi0+e3VucWx9Ow0KICAgIG15ICRyZXQg PSAkc2VsZi0+e3VucWx9e3B0ZH0tPnR5cGVuYW1lIC4gIioiOw0KICAgIGlm KCRzZWxmLT57cXVhbH0pIHsNCglpZigkc2VsZi0+e3F1YWx9ID1+IC9jLykg ew0KCSAgICAkcmV0IC49ICIgY29uc3QiOw0KCX0NCglpZigkc2VsZi0+e3F1 YWx9ID1+IC92Lykgew0KCSAgICAkcmV0IC49ICIgdm9sYXRpbGUiOw0KCX0N CiAgICB9DQogICAgcmV0dXJuICRyZXQ7DQp9DQoNCnBhY2thZ2UgR0NDOjpm aWVsZF9kZWNsOw0Kc3ViIG5hbWUgeyBzaGlmdC0+e25hbWV9e3N0cmd9IH0N CnN1YiBjaGFpbiB7IHNoaWZ0LT57Y2hhbn0gfQ0Kc3ViIHB1YmxpYyB7IHNo aWZ0LT57cHVibGljfSB9DQpzdWIgcHJvdGVjdGVkIHsgc2hpZnQtPntwcm90 ZWN0ZWR9IH0NCnN1YiBwcml2YXRlIHsgc2hpZnQtPntwcml2YXRlfSB9DQoN CnBhY2thZ2UgR0NDOjpjb25zdF9kZWNsOw0Kc3ViIG5hbWUgeyBzaGlmdC0+ e25hbWV9e3N0cmd9IH0NCnN1YiBjaGFpbiB7IHNoaWZ0LT57Y2hhbn0gfQ0K DQpwYWNrYWdlIEdDQzo6dmFyX2RlY2w7DQpzdWIgbmFtZSB7IHNoaWZ0LT57 bmFtZX17c3RyZ30gfQ0Kc3ViIGNoYWluIHsgc2hpZnQtPntjaGFufSB9DQpz dWIgcHVibGljIHsgc2hpZnQtPntwdWJsaWN9IH0NCnN1YiBwcm90ZWN0ZWQg eyBzaGlmdC0+e3Byb3RlY3RlZH0gfQ0Kc3ViIHByaXZhdGUgeyBzaGlmdC0+ e3ByaXZhdGV9IH0NCg0KcGFja2FnZSBHQ0M6OnR5cGVfZGVjbDsNCnN1YiBj aGFpbiB7IHNoaWZ0LT57Y2hhbn0gfQ0Kc3ViIHNjb3BlIHsgc2hpZnQtPntz Y3BlfSB9DQpzdWIgbmFtZSB7DQogICAgbXkgJHNlbGYgPSBzaGlmdDsNCiAg ICBteSAkcmV0ID0gIiI7DQogICAgaWYoJHNlbGYtPnNjb3BlIGFuZCAkc2Vs Zi0+c2NvcGUtPm5hbWUpIHsNCgkjIGVudW1zIHdpdGhpbiBjbGFzc2VzIGhh dmUgc2NvcGUsIHNvIHdlIHF1YWxpZnkgdGhlIG5hbWUNCgkkcmV0IC49ICRz ZWxmLT5zY29wZS0+bmFtZSAuICI6OiI7DQogICAgfQ0KICAgICRyZXQgLj0g JHNlbGYtPntuYW1lfXtzdHJnfTsNCiAgICByZXR1cm4gJHJldDsNCn0NCg0K c3ViIHF1YWxuYW1lIHsgc2hpZnQtPm5hbWUgfQ0KDQpwYWNrYWdlIEdDQzo6 bmFtZXNwYWNlX2RlY2w7DQpzdWIgbmFtZSB7IHNoaWZ0LT57dHlwZX17c3Ry Z30gfQ0KDQpwYWNrYWdlIEdDQzo6cGFybV9kZWNsOw0Kc3ViIG5hbWUgeyBz aGlmdC0+e3R5cGV9LT5uYW1lIH0NCnN1YiBjaGFpbiB7IHNoaWZ0LT57Y2hh bn0gfQ0Kc3ViIGFyZyB7DQogICAgbXkgJHNlbGYgPSBzaGlmdDsNCiAgICBy ZXR1cm4gJHNlbGYtPntuYW1lfSA/ICRzZWxmLT57bmFtZX17c3RyZ30gOiAi Ig0KfQ0KDQpwYWNrYWdlIEdDQzo6dHJlZV9saXN0Ow0Kc3ViIHZhbHVlIHsg c2hpZnQtPnt2YWx1fSB9DQpzdWIgZGVmYXVsdCB7IHNoaWZ0LT57cHVycH0g fQ0Kc3ViIGVudW0geyBzaGlmdC0+e3B1cnB9e3N0cmd9IH0NCnN1YiBjaGFp biB7IHNoaWZ0LT57Y2hhbn0gfQ0Kc3ViIG5hbWUgeyBzaGlmdC0+e3ZhbHV9 LT5uYW1lIH0NCg0Kc3ViIGNfbmFtZSB7DQogICAgbXkgJHNlbGYgPSBzaGlm dDsNCiAgICBteSAkbmFtZSA9ICRzZWxmLT52YWx1ZS0+bmFtZTsNCgkgICAg aWYoJG5hbWUgPX4gL1sqJl0kLykgew0KCQlyZXR1cm4gInZvaWQqIjsNCgkg ICAgfSBlbHNpZigkbmFtZSA9fiAvXGIoaW50fGZsb2F0fGRvdWJsZSlcYi8p IHsNCgkJcmV0dXJuICIkbmFtZSI7DQoJICAgIH0gZWxzaWYoJG5hbWUgPX4g L1xiKGJvb2x8Y2hhcilcYi8pIHsgICAjIEphdmEgZG9uJ3QgbGlrZSBjaGFy LCBQZXJsIGRvbid0IGxpa2UgYm9vbA0KCQlyZXR1cm4gImludCI7DQoJICAg IH0gZWxzaWYocmVmICRzZWxmLT52YWx1ZSBlcSAnR0NDOjplbnVtZXJhbF90 eXBlJykgew0KCQlyZXR1cm4gImxvbmciOw0KCSAgICB9IGVsc2lmKHJlZiAk c2VsZi0+dmFsdWUgZXEgJ0dDQzo6cmVjb3JkX3R5cGUnKSB7DQoJCXJldHVy biAidm9pZCoiOw0KCSAgICB9IGVsc2Ugew0KCQlyZXR1cm4gIldIQVRJUyBA e1sgcmVmICRzZWxmIF19IEB7WyByZWYgJHNlbGYtPnZhbHVlIF19ICRuYW1l PyI7DQoJICAgIH0NCn0NCg0Kc3ViIGNfY2FzdCB7DQogICAgbXkgJHNlbGYg PSBzaGlmdDsNCiAgICBteSAkbmFtZSA9ICRzZWxmLT52YWx1ZS0+bmFtZTsN CiAgICBpZigkbmFtZSA9fiBzL1smXSQvLyBvciByZWYgJHNlbGYtPnZhbHVl IGVxICdHQ0M6OnJlY29yZF90eXBlJykgew0KCXJldHVybiAiKigkbmFtZSop IjsNCiAgICB9IGVsc2Ugew0KCXJldHVybiAiKCRuYW1lKSI7DQogICAgfQ0K fQ0KDQpwYWNrYWdlIEdDQzo6ZnVuY3Rpb25fZGVjbDsNCnN1YiBjX3JldCB7 DQogICAgbXkgJHNlbGYgPSBzaGlmdDsNCiAgICBteSAkcmV0ID0gJHNlbGYt PnJldDsNCiAgICAgICAgaWYoJHJldCA9fiAvWyomXSQvKSB7DQoJICAgIHJl dHVybiAidm9pZCoiOw0KCX0gZWxzaWYoJHJldCBlcSAndm9pZCcgfHwgJHJl dCA9fiAvXGIoaW50fGZsb2F0fGRvdWJsZSlcYi8pIHsNCgkgICAgcmV0dXJu ICRyZXQ7DQoJfSBlbHNpZigkcmV0ID1+IC9cYihib29sfGNoYXIpXGIvKSB7 DQoJICAgIHJldHVybiAiaW50IjsNCgl9IGVsc2lmKHJlZiAkc2VsZi0+e3R5 cGV9e3JldG59IGVxICdHQ0M6OmVudW1lcmFsX3R5cGUnKSB7DQoJICAgIHJl dHVybiAibG9uZyI7DQoJfSBlbHNpZihyZWYgJHNlbGYtPnt0eXBlfXtyZXRu fSBlcSAnR0NDOjpyZWNvcmRfdHlwZScpIHsNCgkgICAgcmV0dXJuICJ2b2lk KiI7DQoJfSBlbHNlIHsNCgkgICAgcmV0dXJuICJXSEFUSVMgJHJldD8iOw0K CX0NCn0NCg0Kc3ViIG9wZXJhdG9yIHsgc2hpZnQtPntvcGVyYXRvcn0gfQ0K c3ViIGNvbnZlcnNpb24geyBzaGlmdC0+e2NvbnZlcnNpb259IH0NCnN1YiBu YW1lIHsNCiAgICBteSAkc2VsZiA9IHNoaWZ0Ow0KICAgIGlmKCRzZWxmLT5v cGVyYXRvcikgew0KCWlmKCRzZWxmLT5jb252ZXJzaW9uKSB7DQoJICAgIHJl dHVybiAib3BlcmF0b3IgIiAuICRzZWxmLT5yZXQ7DQoJfSBlbHNlIHsNCgkg ICAgcmV0dXJuICJvcGVyYXRvciAkb3BzeyRzZWxmLT5vcGVyYXRvcn0iOw0K CX0NCiAgICB9DQogICAgcmV0dXJuICRzZWxmLT57bmFtZX17c3RyZ307DQp9 DQpzdWIgY2hhaW4geyBzaGlmdC0+e2NoYW59IH0NCnN1YiByZXQgeyBzaGlm dC0+e3R5cGV9e3JldG59LT50eXBlbmFtZSB9DQpzdWIgc3RhdGljIHsgc2hp ZnQtPntzdGF0aWN9IH0NCnN1YiB2aXJ0dWFsIHsgc2hpZnQtPnt2aXJ0dWFs fSB9DQpzdWIgcHVibGljIHsgc2hpZnQtPntwdWJsaWN9IH0NCnN1YiBwcm90 ZWN0ZWQgeyBzaGlmdC0+e3Byb3RlY3RlZH0gfQ0Kc3ViIGNvbnN0cnVjdG9y IHsgc2hpZnQtPntjb25zdHJ1Y3Rvcn0gfQ0Kc3ViIGRlc3RydWN0b3IgeyBz aGlmdC0+e2Rlc3RydWN0b3J9IH0NCnN1YiBwcml2YXRlIHsgc2hpZnQtPntw cml2YXRlfSB9DQpzdWIgcGFybXMgeyBzaGlmdC0+e3R5cGV9e3BybXN9IH0g ICAjIHRyZWVfbGlzdA0Kc3ViIGFyZ3MgeyBzaGlmdC0+e2FyZ3N9IH0NCg0K c3ViIGFyZ2xpc3Qgew0KICAgIG15ICRzZWxmID0gc2hpZnQ7DQogICAgIyBv a2F5LCBsZXRzIHJldHVybiBzb21lIGFyZ3VtZW50cw0KICAgIG15ICRwYXJt ID0gJHNlbGYtPnBhcm1zOw0KICAgIG15ICRhcmcgPSAkc2VsZi0+YXJnczsN CiAgICBteSBAYXJnczsNCiAgICB3aGlsZSgkYXJnKSB7DQoJIyB0aGUgcGFy bSBsaXN0IHRlcm1pbmF0ZXMgd2l0aCAndm9pZCcNCiMJbGFzdCBpZiByZWYg JGFyZy0+dmFsdWUgZXEgJ0dDQzo6dm9pZF90eXBlJyBhbmQgbm90ICRhcmct PmNoYWluOw0KCSRwYXJtLT57YXJnbmFtZX0gPSAkYXJnLT5hcmc7DQoJcHVz aCBAYXJncywgJHBhcm07DQoJJGFyZyA9ICRhcmctPmNoYWluOw0KCSRwYXJt ID0gJHBhcm0tPmNoYWluOw0KICAgIH0NCiAgICByZXR1cm4gXEBhcmdzOyAj IHVubGVzcyAkYXJnOw0KfQ0KDQpwYWNrYWdlIFRyYW5zbGF0aW9uVW5pdENs YXNzOw0KDQpzdWIgbmFtZSB7IHNoaWZ0LT57Y30gfQ0Kc3ViIGJhc2UgeyBz aGlmdC0+e3J9LT5iYXNlIHx8IFtdIH0NCg0Kc3ViIG5ldyB7DQogICAgbXko JHAsICR0dSwgJGNsYXNzKSA9IEBfOw0KICAgIG15ICRyZWNvcmQ7DQogICAg Zm9yIG15ICR1IChAJHR1KSB7DQoJaWYocmVmICR1IGVxICdHQ0M6OnJlY29y ZF90eXBlJyAmJiAhJHUtPnVucWwpIHsgICAjIGNsYXNzL3N0cnVjdC91bmlv bg0KCSAgICBpZigkdS0+bmFtZSBlcSAkY2xhc3MpIHsNCgkJJHJlY29yZCA9 ICR1Ow0KCQlsYXN0Ow0KCSAgICB9DQoJfQ0KICAgIH0NCiAgICBkaWUgIk5v IHN1Y2ggY2xhc3MgYCRjbGFzcyciIHVubGVzcyAkcmVjb3JkOw0KICAgIG15 ICRzZWxmID0gYmxlc3Mgew0KCWMgPT4gJGNsYXNzLA0KCXIgPT4gJHJlY29y ZA0KICAgIH0sICRwOw0KfQ0KDQpzdWIgbWV0aG9kcyB7DQogICAgbXkgJHNl bGYgPSBzaGlmdDsNCiAgICBteSAkZnVuYyA9ICRzZWxmLT57cn17Zm5jc307 DQogICAgbXkgQG1ldGhvZHM7DQogICAgd2hpbGUoJGZ1bmMpIHsNCglpZigk ZnVuYy0+bmFtZSkgew0KCSAgICBwdXNoIEBtZXRob2RzLCAkZnVuYzsNCgl9 IGVsc2Ugew0KCSAgICBkaWUgIlVua25vd24gZnVuY3Rpb246IEB7WyBrZXlz ICUkZnVuYyBdfSI7DQoJfQ0KCSRmdW5jID0gJGZ1bmMtPmNoYWluOw0KICAg IH0NCiAgICByZXR1cm4gXEBtZXRob2RzOw0KfQ0KDQpzdWIgZmllbGRzIHsN CiAgICBteSAkc2VsZiA9IHNoaWZ0Ow0KICAgIG15ICRmaWVsZCA9ICRzZWxm LT57cn17Zmxkc307DQogICAgbXkgQGZpZWxkczsNCiAgICB3aGlsZSgkZmll bGQpIHsNCglpZigkZmllbGQtPm5hbWUpIHsNCgkgICAgcHVzaCBAZmllbGRz LCAkZmllbGQ7DQogICAgICAgIH0gZWxzZSB7DQoJICAgIGRpZSAiVW5rbm93 biBmaWVsZDogQHtbIGtleXMgJSRmaWVsZCBdfSI7DQogICAgICAgIH0NCgkk ZmllbGQgPSAkZmllbGQtPmNoYWluOw0KICAgIH0NCiAgICByZXR1cm4gXEBm aWVsZHM7DQp9DQpwYWNrYWdlIG1haW47DQp1c2UgWE1MOjpTaW1wbGU7DQoN Cm15ICRjID0gVHJhbnNsYXRpb25Vbml0Q2xhc3MtPm5ldyhcQHR1LCAkb3V0 cHV0KTsNCg0KbXkgJVhNTENMQVNTOw0KDQokeG1sID0gew0KICAgIG5hbWUg PT4gJ1F0JywNCiAgICBjbGFzcyA9PiBbIGR1bXB4bWwoJGMpIF0gICAjIGVy ciwgJGMtPmR1bXB4bWw/DQp9Ow0KDQpwcmludCBYTUxvdXQoJHhtbCwgcm9v dG5hbWUgPT4gJ2FwaScpOw0KDQpzdWIgYmFzZWNsYXNzZXMgew0KICAgIG15 ICR4bWwgPSBzaGlmdDsNCiAgICBteSAkbGlzdCA9IHNoaWZ0IHx8IFtdOw0K ICAgICMgb2theSwgc3RhcnQgbXVuZ2luZyB0aHJvdWdoIGJhc2VjbGFzc2Vz DQogICAgZm9yIG15ICRiYXNlIChAeyAkeG1sLT57YmFzZX0gfHwgW10gfSkg ew0KCXB1c2ggQCRsaXN0LCAkWE1MQ0xBU1N7JGJhc2UtPntuYW1lfX07DQoJ YmFzZWNsYXNzZXMoJFhNTENMQVNTeyRiYXNlLT57bmFtZX19LCAkbGlzdCk7 DQogICAgfQ0KICAgIHJldHVybiBAJGxpc3Q7DQp9DQoNCnN1YiBkdW1weG1s IHsNCiAgICBteSAkY2xhc3MgPSBzaGlmdDsNCiAgICBteSAldmlydHVhbDsN CiAgICBteSAkeG1sID0geyBuYW1lID0+ICRjbGFzcy0+bmFtZSwgLXZpcnR1 YWwgPT4gXCV2aXJ0dWFsIH07DQogICAgJFhNTENMQVNTeyR4bWwtPntuYW1l fX0gPSAkeG1sOw0KICAgIG15IEB4bWxtZXRob2RzOw0KICAgIG15ICRtZXRo b2RzID0gJGNsYXNzLT5tZXRob2RzOw0KICAgIGZvciBteSAkbSAoQCRtZXRo b2RzKSB7DQoJbmV4dCBpZiAkbS0+bmFtZSA9fiAvXl9fLzsNCglteSAkcHJv dGVjdGlvbiA9ICRtLT5wdWJsaWMgPyAicHVibGljIiA6DQoJCQkgJG0tPnBy b3RlY3RlZCA/ICJwcm90ZWN0ZWQiIDoNCgkJCSAkbS0+cHJpdmF0ZSA/ICJw cml2YXRlIiA6DQoJCQkgIlVOS05PV04iOw0KCW15ICV4bWxtZXRob2QgPSAo DQoJICAgIG5hbWUgPT4gJG0tPm5hbWUsDQoJICAgIGFjY2VzcyA9PiAkcHJv dGVjdGlvbiwNCgkpOw0KCSR4bWxtZXRob2R7Y2FsbH0gPSAndmlydHVhbCcg aWYgJG0tPnZpcnR1YWw7DQoJJHhtbG1ldGhvZHtjYWxsfSA9ICdzdGF0aWMn IGlmICRtLT5zdGF0aWM7DQoNCgkkeG1sbWV0aG9ke2NhbGx9ID0gJ3N0YXRp YycgaWYgcmVmICRtLT57dHlwZX0gZXEgJ0dDQzo6ZnVuY3Rpb25fdHlwZSc7 DQoJJHhtbG1ldGhvZHtjYWxsfSA9ICdjb25zdHJ1Y3RvcicgaWYgJG0tPmNv bnN0cnVjdG9yOw0KCSR4bWxtZXRob2R7Y2FsbH0gPSAnZGVzdHJ1Y3Rvcicg aWYgJG0tPmRlc3RydWN0b3I7DQoJJHhtbG1ldGhvZHtjYWxsfSA9ICdvcGVy YXRvcicgaWYgJHhtbG1ldGhvZHtuYW1lfSA9fiBzL15vcGVyYXRvciAvLzsN Cg0KCWlmKCRtLT5yZXQgbmUgJ3ZvaWQnKSB7DQoJICAgICR4bWxtZXRob2R7 dHlwZX0gPSAkbS0+cmV0Ow0KCSAgICBteSAkdHlwZWRlZiA9ICRtLT57dHlw ZX17cmV0bn0tPnF1YWxuYW1lOw0KCSAgICAkeG1sbWV0aG9ke3R5cGVkZWZ9 ID0gJHR5cGVkZWYgaWYgJHR5cGVkZWYgbmUgJHhtbG1ldGhvZHt0eXBlfTsN Cgl9DQoNCglteSBAYXJnczsNCglteSAkYXJnbGlzdCA9ICRtLT5hcmdsaXN0 Ow0KCW15ICR0aGlzOw0KCSR0aGlzID0gc2hpZnQgQCRhcmdsaXN0IGlmICEk eG1sbWV0aG9ke2NhbGx9IG9yICR4bWxtZXRob2R7Y2FsbH0gIX4gL14oPzpz dGF0aWMpJC87DQoJaWYoJHRoaXMgYW5kICR0aGlzLT52YWx1ZS0+bmFtZSA9 fiAvXGIoY29uc3R8dm9sYXRpbGUpXCokLykgew0KCSAgICAkeG1sbWV0aG9k e3RoaXN9ID0gJDE7DQoJfQ0KCW15ICRhcmdYID0gMDsNCglmb3IgbXkgJGFy ZyAoQCRhcmdsaXN0KSB7DQoJICAgIGlmKCRhcmctPmRlZmF1bHQpIHsNCgkJ bXkgJHhtbG1ldGhvZCA9IHsgJXhtbG1ldGhvZCB9Ow0KCQkkeG1sbWV0aG9k LT57YXJndW1lbnR9ID0gWyBAYXJncyBdIGlmIEBhcmdzOw0KCQlwdXNoIEB4 bWxtZXRob2RzLCAkeG1sbWV0aG9kOw0KCSAgICB9DQoJICAgICRhcmdYKys7 DQoJICAgIG15ICR4bWxhcmcgPSB7DQoJCW5hbWUgPT4gJGFyZy0+e2FyZ25h bWV9IHx8ICJhcmckYXJnWCIsDQoJCXR5cGUgPT4gJGFyZy0+dmFsdWUtPnR5 cGVuYW1lDQoJICAgIH07DQoJICAgIG15ICR0eXBlZGVmID0gJGFyZy0+dmFs dWUtPnF1YWxuYW1lOw0KCSAgICAkeG1sYXJnLT57dHlwZWRlZn0gPSAkdHlw ZWRlZiBpZiAkdHlwZWRlZiBuZSAkeG1sYXJnLT57dHlwZX07DQoJICAgIHB1 c2ggQGFyZ3MsICR4bWxhcmc7DQoJfQ0KDQoJbXkgJHhtbG1ldGhvZCA9IHsg JXhtbG1ldGhvZCB9Ow0KCSR4bWxtZXRob2QtPnthcmd1bWVudH0gPSBbIEBh cmdzIF0gaWYgQGFyZ3MgYW5kIG5vdCAkbS0+ZGVzdHJ1Y3RvcjsNCg0KCSMg aGFuZGxlIHZpcnR1YWwgbWV0aG9kcw0KCWxvY2FsKCQiKSA9ICIsIjsNCglt eSAkY2FsbCA9ICR4bWxtZXRob2QtPntjYWxsfSB8fCAiIjsNCgkkY2FsbCA9 ICJtZXRob2QiIHVubGVzcyBsZW5ndGggJGNhbGw7DQoJbXkgJHNpZyA9ICIk Y2FsbCAkeG1sbWV0aG9kLT57bmFtZX1cKEB7WyBtYXAgeyAkXy0+e3R5cGV9 IH0gQGFyZ3MgXX0pIjsNCgkjJHhtbG1ldGhvZC0+e3NpZ30gPSAkc2lnOw0K CSR2aXJ0dWFseyRzaWd9ID0gJHhtbG1ldGhvZCBpZiAkY2FsbCBlcSAndmly dHVhbCc7DQoJcHVzaCBAeG1sbWV0aG9kcywgJHhtbG1ldGhvZDsNCiAgICB9 DQogICAgJHhtbC0+e21ldGhvZH0gPSBcQHhtbG1ldGhvZHM7DQoNCiAgIA0K ICAgIG15IEB4bWxiYXNlOw0KICAgIGZvciBteSAkYmFzZSAoQHsgJGNsYXNz LT5iYXNlIH0pIHsNCglteSAkeG1sYmFzZSA9IHsNCgkgICAgbmFtZSA9PiAk YmFzZS0+e3N1cGVyfS0+bmFtZSwNCgkgICAgYWNjZXNzID0+ICRiYXNlLT57 YWNjZXNzfQ0KCX07DQoJJHhtbGJhc2UtPnt0aGlzfSA9ICd2aXJ0dWFsJyBp ZiAkYmFzZS0+e3ZpcnR1YWx9Ow0KCXB1c2ggQHhtbGJhc2UsICR4bWxiYXNl Ow0KCXVubGVzcyhleGlzdHMgJFhNTENMQVNTeyR4bWxiYXNlLT57bmFtZX19 KSB7DQoJICAgICMgYWxzbyBkdW1wIG91dCBBTEwgc3VwZXJjbGFzc2VzIQ0K CSAgICBteSAkYmMgPSBUcmFuc2xhdGlvblVuaXRDbGFzcy0+bmV3KFxAdHUs ICR4bWxiYXNlLT57bmFtZX0pOw0KCSAgICBkdW1weG1sKCRiYyk7ICAgIyB0 aGlzIGdldHMgdmlydHVhbCBtZXRob2QgaW5mbyENCgl9DQogICAgfQ0KDQog ICAgJHhtbC0+e2Jhc2V9ID0gWyBAeG1sYmFzZSBdIGlmIEB4bWxiYXNlOw0K DQogICAgbXkgQHhtbGZpZWxkOw0KICAgIGZvciBteSAkZmllbGQgKEB7ICRj bGFzcy0+ZmllbGRzIH0pIHsNCglteSAkcmVmID0gcmVmICRmaWVsZDsNCglt eSAkbmFtZSA9ICRmaWVsZC0+bmFtZTsgICAgIyBkZWNsYXJlIGVudW0NCglu ZXh0IGlmICRmaWVsZC0+e2FydGlmaWNpYWx9Ow0KCSNuZXh0IHVubGVzcyAk ZmllbGQtPmNhbigncHVibGljJyk7DQoJbXkgJGFjY2VzczsNCiAgICAgICAg JGFjY2VzcyA9ICRmaWVsZC0+cHVibGljID8gInB1YmxpYyIgOg0KCSAgICAk ZmllbGQtPnByb3RlY3RlZCA/ICJwcm90ZWN0ZWQiIDoNCgkgICAgJGZpZWxk LT5wcml2YXRlID8gInByaXZhdGUiIDogIlVOS05PV04iIGlmICRmaWVsZC0+ Y2FuKCdwdWJsaWMnKTsNCglteSAkeG1sZmllbGQgPSB7DQoJICAgIG5hbWUg PT4gJG5hbWUsDQoJICAgIHR5cGUgPT4gJGZpZWxkLT57dHlwZX0tPnR5cGVu YW1lLA0KCSAgICBhY2Nlc3MgPT4gJGFjY2VzcywNCgl9Ow0KCW15ICR0eXBl ZGVmID0gJGZpZWxkLT57dHlwZX0tPnF1YWxuYW1lOw0KCSR4bWxmaWVsZC0+ e3R5cGVkZWZ9ID0gJHR5cGVkZWYgaWYgJHR5cGVkZWYgbmUgJHhtbGZpZWxk LT57dHlwZX07DQoJJHhtbGZpZWxkLT57dGhpc30gPSAic3RhdGljIiBpZiAk cmVmIGVxICdHQ0M6OnZhcl9kZWNsJzsNCgkkeG1sZmllbGQtPnt0aGlzfSA9 ICJtdXRhYmxlIiBpZiAkZmllbGQtPnttdXRhYmxlfTsNCglwdXNoIEB4bWxm aWVsZCwgJHhtbGZpZWxkIGlmICRmaWVsZC0+Y2FuKCdwdWJsaWMnKSBhbmQg JHJlZiBlcSAnR0NDOjp2YXJfZGVjbCcgb3IgJHJlZiBlcSAnR0NDOjpmaWVs ZF9kZWNsJzsNCiAgICB9DQoNCiAgICAkeG1sLT57ZmllbGR9ID0gWyBAeG1s ZmllbGQgXSBpZiBAeG1sZmllbGQ7DQoNCiAgICBteSBAeG1sZW51bTsNCiAg ICBmb3IgbXkgJGVudW0gKHNvcnQga2V5cyAlZW51bXMpIHsNCglteSAkZSA9 ICRlbnVtc3skZW51bX07DQoJbmV4dCB1bmxlc3MgJGVudW0gPX4gcy9eJHht bC0+e25hbWV9XDo6Ly87DQoJbXkgQGNvbnN0YW50czsNCiAgICAgICAgbXkg JGNzdHMgPSAkZS0+e2NzdHN9Ow0KICAgICAgICBteSAlZW51bWVyYXRpb247 DQoJd2hpbGUoJGNzdHMpIHsNCgkgICAgcHVzaCBAY29uc3RhbnRzLCB7DQoJ CW5hbWUgPT4gJGNzdHMtPmVudW0sDQoJCXZhbHVlID0+ICRjc3RzLT52YWx1 ZS0+bG93DQoJICAgIH07DQoJICAgICRjc3RzID0gJGNzdHMtPmNoYWluOw0K CX0NCglwdXNoIEB4bWxlbnVtLCB7IG5hbWUgPT4gJGVudW0sIGNvbnN0YW50 ID0+IFsgQGNvbnN0YW50cyBdIH07DQogICAgfQ0KICAgICR4bWwtPntlbnVt fSA9IFxAeG1sZW51bSBpZiBAeG1sZW51bTsNCg0KICAgIG15ICV2dGJsOw0K ICAgIGZvciBteSAkYmFzZSAoYmFzZWNsYXNzZXMoJHhtbCkpIHsNCglmb3Ig bXkgJHYgKGtleXMgJXsgJGJhc2UtPnstdmlydHVhbH0gfSkgew0KCSAgICB1 bmxlc3MoZXhpc3RzICR2aXJ0dWFseyR2fSB8fCBleGlzdHMgJHZ0Ymx7JHZ9 KSB7DQoJCSR2dGJseyR2fSA9IHsgJXskYmFzZS0+ey12aXJ0dWFsfXskdn19 LCBvcmlnaW4gPT4gJGJhc2UtPntuYW1lfSB9Ow0KCSAgICB9DQoJfQ0KICAg IH0NCiAgICBmb3IgbXkgJHYgKGtleXMgJXZ0YmwpIHsNCglpZigkdnRibHsk dn17b3JpZ2lufSkgew0KCSAgICBwdXNoIEB7ICR4bWwtPnttZXRob2R9IH0s ICR2dGJseyR2fTsNCgl9DQogICAgfQ0KICAgIHJldHVybiAkeG1sOw0KfQ0K DQpleGl0Ow0KDQo= --0-1589893821-1047011453=:71357-- _______________________________________________ Kde-bindings mailing list Kde-bindings@mail.kde.org http://mail.kde.org/mailman/listinfo/kde-bindings