Committing changes
Tanguy LE CARROUR <[email protected]> Thu, 2 Feb 2012 15:09:10 +0100
| Newsgroups | gmane.os.hurd.web.devel |
|---|---|
| Message-ID | <CAJbrmLCDAfi9iOJr=6hYc1_YrVY8GPL_5JA+-QEa9bYqzAqgNg@mail.gmail.com> |
--e89a8f234bfb7fdf1f04b7fbbda2 Content-Type: text/plain; charset=ISO-8859-1 Hi! I failed to push my changes to the wiki! But as it's the first time... I may lack permissions to do so?! I'm attaching the patch to create my user page and some sub pages. Hope you can push it to the master. Cheers, Tanguy --e89a8f234bfb7fdf1f04b7fbbda2 Content-Type: application/octet-stream; name="0001-Add-user-page-and-patch-pages-for-tlecarrour.patch" Content-Disposition: attachment; filename="0001-Add-user-page-and-patch-pages-for-tlecarrour.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gy5v1arr0 RnJvbSAyOWQxYTllM2U0ZDUzMDU3YmMzN2FkMzJkZGNiNzM0YTBiODhhOGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYW5ndXkgTEUgQ0FSUk9VUiA8dGFuZ3V5QGJpb25lbGFuZC5v cmc+CkRhdGU6IFRodSwgMiBGZWIgMjAxMiAxNTowMjoyMyArMDEwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCB1c2VyIHBhZ2UgYW5kIHBhdGNoIHBhZ2VzIGZvciB0bGVjYXJyb3VyLgoKLS0tCiB1c2Vy L3RsZWNhcnJvdXIubWR3biAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNyArKysrKwog dXNlci90bGVjYXJyb3VyL2F1dG8tYXB0Lm1kd24gICAgICAgICAgICAgICAgICB8ICAgNTcgKysr KysrKwogdXNlci90bGVjYXJyb3VyL21lbXN0YXQubWR3biAgICAgICAgICAgICAgICAgICB8ICAx NjIgKysrKysrKysrKysrKysrKysrKwogdXNlci90bGVjYXJyb3VyL3BhdGNoX2xpZmVfY3ljbGUu bWR3biAgICAgICAgICB8ICAgODggKysrKysrKysrKwogdXNlci90bGVjYXJyb3VyL3BvcnRpbmdf Z3VpZGVfZm9yX2R1bW1pZXMubWR3biB8ICAyMDMgKysrKysrKysrKysrKysrKysrKysrKysrCiB1 c2VyL3RsZWNhcnJvdXIvcm5nLXRvb2xzLm1kd24gICAgICAgICAgICAgICAgIHwgICA1NiArKysr KysrCiB1c2VyL3RsZWNhcnJvdXIvc3Vja2xlc3MtdG9vbHMubWR3biAgICAgICAgICAgIHwgICA3 OSArKysrKysrKysKIHVzZXIvdGxlY2Fycm91ci91cC1pbWFwcHJveHkubWR3biAgICAgICAgICAg ICAgfCAgIDU0ICsrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgNzM2IGluc2VydGlvbnMoKyksIDAg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdXNlci90bGVjYXJyb3VyLm1kd24KIGNy ZWF0ZSBtb2RlIDEwMDY0NCB1c2VyL3RsZWNhcnJvdXIvYXV0by1hcHQubWR3bgogY3JlYXRlIG1v ZGUgMTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9tZW1zdGF0Lm1kd24KIGNyZWF0ZSBtb2RlIDEwMDY0 NCB1c2VyL3RsZWNhcnJvdXIvcGF0Y2hfbGlmZV9jeWNsZS5tZHduCiBjcmVhdGUgbW9kZSAxMDA2 NDQgdXNlci90bGVjYXJyb3VyL3BvcnRpbmdfZ3VpZGVfZm9yX2R1bW1pZXMubWR3bgogY3JlYXRl IG1vZGUgMTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9ybmctdG9vbHMubWR3bgogY3JlYXRlIG1vZGUg MTAwNjQ0IHVzZXIvdGxlY2Fycm91ci9zdWNrbGVzcy10b29scy5tZHduCiBjcmVhdGUgbW9kZSAx MDA2NDQgdXNlci90bGVjYXJyb3VyL3VwLWltYXBwcm94eS5tZHduCgpkaWZmIC0tZ2l0IGEvdXNl ci90bGVjYXJyb3VyLm1kd24gYi91c2VyL3RsZWNhcnJvdXIubWR3bgpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4xMmZjNDZiCi0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVj YXJyb3VyLm1kd24KQEAgLTAsMCArMSwzNyBAQAorW1shbWV0YSBjb3B5cmlnaHQ9IkNvcHlyaWdo dCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiJdXQorCitbWyFtZXRhIGxp Y2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJHRkRMIDEuMisiXV1bWyF0b2dn bGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHks IGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVudCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIgb3IKK2Fu eSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQg bm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZQoraXMgaW5jbHVkZWQg aW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1bWVudGF0aW9uCitMaWNlbnNl fC9mZGxdXS4iXV0iIiJdXQorCisKK1Rhbmd1eSBMRSBDQVJST1VSCis9PT09PT09PT09PT09PT09 PQorCitIb21lcGFnZTogKm5vbmUqICAKK0UtbWFpbDogW3Rhbmd1eUBiaW9uZWxhbmQub3JnXSht YWlsdG86dGFuZ3V5QGJpb25lbGFuZC5vcmcpCisKK0kgYW0gYSBIdXJkIGVudGh1c2lhc3QgYW5k IG5ldyBjb250cmlidXRvciwgbW9zdGx5IHdvcmtpbmcgb24gcG9ydGluZyBwYWNrYWdlcyAKK2Zv ciAqKkRlYmlhbiBHTlUvSHVyZCoqLgorCisKK0NvbnRyaWJ1dGlvbnMKKy0tLS0tLS0tLS0tLS0K KworCisjIyMgUG9ydGluZyBEZWJpYW4gUGFja2FnZXM6CisKK1NlZSB0aGUgW1twYWNrYWdlIHBv cnRpbmcgZ2VuZXJhbCBpbnRyb2R1Y3Rpb258aHVyZC9wb3J0aW5nL2d1aWRlbGluZXNdXSBhbmQg CitteSBbW3BvcnRpbmcgZ3VpZGUgZm9yIGR1bW1pZXN8cG9ydGluZ19ndWlkZV9mb3JfZHVtbWll c11dLgorCitGb3IgZWFjaCBwYXRjaCBtYWtlIHN1cmUgdG8gcmVzcGVjdCB0aGUgW1twYXRjaCBs aWZlIGN5Y2xlfHBhdGNoX2xpZmVfY3ljbGVdXS4KKworKiBbW21lbXN0YXRdXSAoUEFUSF9NQVgp LCAqKmRyYWZ0KioKKyogW1thdXRvLWFwdF1dIChQQVRIX01BWCksICoqZGlzY3Vzc2luZyoqCisq IFtbcm5nLXRvb2xzXV0gKFBBVEhfTUFYKSwgKipkaXNjdXNzaW5nKioKKyogW1tzdWNrbGVzcy10 b29sc11dIChQQVRIX01BWCksICoqZHJhZnQqKgorKiBbW3VwLWltYXBwcm94eV1dIChQQVRIX01B WCksICoqc3RhcnRlZCoqCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvYXV0by1hcHQubWR3 biBiL3VzZXIvdGxlY2Fycm91ci9hdXRvLWFwdC5tZHduCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjZhNWFkYjgKLS0tIC9kZXYvbnVsbAorKysgYi91c2VyL3RsZWNhcnJvdXIv YXV0by1hcHQubWR3bgpAQCAtMCwwICsxLDU3IEBACitbWyFtZXRhIGNvcHlyaWdodD0iQ29weXJp Z2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisKK1tbIW1ldGEg bGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4yKyJdXVtbIXRv Z2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29w eSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMiBvcgor YW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFu ZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitpcyBpbmNsdWRl ZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRpb24KK0xpY2Vu c2V8L2ZkbF1dLiJdXSIiIl1dCisKKworYXV0by1hcHQKKz09PT09PT09CisKK1doZW4geW91IHdh bnQgdG8gYnVpbGQgYSBwcm9ncmFtIGZyb20gc291cmNlIGFuZCBpdCBmYWlscyBkdWUgdG8gbWlz c2luZyBoZWFkZXJzLiBBdXRvLWFwdCBjYW4gc2VhcmNoIHdoYXQgcGFja2FnZSB3b3VsZCBwcm92 aWRlIHRoZSBoZWFkZXIgZmlsZXMuICAKKyhmcm9tIFtbaHR0cHM6Ly9oZWxwLnVidW50dS5jb20v Y29tbXVuaXR5L0F1dG9BcHRdXSkKKworCitbWyF0b2Mgc3RhcnRsZXZlbD0yXV0KKworCisqICog KgorCisKK0xvZworLS0tCisKKyogKipTdGFydGVkKio6IDIwMTItMDEtMjQKKyogKipEaXNjdXNz ZWQqKjogWzIwMTItMDEtMjZdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJkLzIw MTIvMDEvbXNnMDAxMjkuaHRtbCkKKyogKipEcmFmdCBTdWJtaXR0ZWQqKjogLQorKiAqKlN1Ym1p dHRlZCoqOiAtCisqICoqQWNjZXB0ZWQqKjogLQorCisKKyogKiAqCisKKworVG9EbworLS0tLQor CitUaGUgb3V0cHV0IG9mIGBncmVwIC1SIFBBVEhfTUFYIGF1dG8tYXB0LTAuMy4yMi8qYCBpcyBh IGJpdCBsb25nLiBJdCBjb250YWlucyBmaWxlcyB0aGF0IGhhdmUgYmVlbiBwYXRjaGVkIHVzaW5n IGAjZGVmaW5lIFBBVEhfTUFYIFhZWmAuICAKK0hlcmUgaXMgdGhlIG9ubHkgZmlsZSBvZiBpbnRl cmVzdDoKKworICAgIHBrZ2NkYi9wa2d0YWIuYzogICAgY2hhciBidWZbUEFUSF9NQVhdOworICAg IHBrZ2NkYi9wa2d0YWIuYzogICAgYXNzZXJ0KHAgLSBwa2cgPCBQQVRIX01BWCk7CisgICAgcGtn Y2RiL3BrZ3RhYi5jOiAgICBzdGF0aWMgY2hhciBidWZbUEFUSF9NQVhdOworICAgIHBrZ2NkYi9w a2d0YWIuYzogICAgYXNzZXJ0KGxlbiA8IFBBVEhfTUFYKTsKKworCisqICogKgorCisKK0NvbW1l bnRzCistLS0tLS0tLQorCitXb3JrIGluIHByb2dyZXNzLCBzZWUgcmVsYXRlZCBbdGhyZWFkXSho dHRwOi8vbGlzdHMuZGViaWFuLm9yZy9kZWJpYW4taHVyZC8yMDEyLzAxL21zZzAwMTI5Lmh0bWwp LgorCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvbWVtc3RhdC5tZHduIGIvdXNlci90bGVj YXJyb3VyL21lbXN0YXQubWR3bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k OGM2NTg4Ci0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVjYXJyb3VyL21lbXN0YXQubWR3bgpA QCAtMCwwICsxLDE2MiBAQAorW1shbWV0YSBjb3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1sh dG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJHRkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0i bGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUg YW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBG cmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJz aW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIElu dmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3Zl ciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGljZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rp b24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0i IiJdXQorCisKK21lbXN0YXQKKz09PT09PT0KKworTGlzdHMgYWxsIHRoZSBwcm9jZXNzZXMsIGV4 ZWN1dGFibGVzLCBhbmQgc2hhcmVkIGxpYnJhcmllcyB0aGF0IGFyZSB1c2luZyB1cCB2aXJ0dWFs IG1lbW9yeS4gSXQncyBoZWxwZnVsIHRvIHNlZSBob3cgdGhlIHNoYXJlZCBtZW1vcnkgaXMgdXNl ZCBhbmQgd2hpY2ggJ29sZCcgbGlicyBhcmUgbG9hZGVkLiAgCisqKkhvbWUgcGFnZSoqOiBbW2h0 dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvbWVtc3RhdHRvb2xdXQorCitbWyF0b2Mgc3Rh cnRsZXZlbD0yXV0KKworCisqICogKgorCisKK0xvZworLS0tCisKKyogKipTdGFydGVkKio6IDIw MTItMDEtMjAKKyogKipEaXNjdXNzZWQqKjogWzIwMTItMDEtMjFdKGh0dHA6Ly9saXN0cy5kZWJp YW4ub3JnL2RlYmlhbi1odXJkLzIwMTIvMDEvbXNnMDAwODEuaHRtbCkKKyogKipEcmFmdCBTdWJt aXR0ZWQqKjogWzIwMTItMDEtMjVdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJk LzIwMTIvMDEvbXNnMDAxMjIuaHRtbCkKKyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2VwdGVk Kio6IC0KKworCisqICogKgorCisKK1RvRG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0IG9m IGBncmVwIC1SIFBBVEhfTUFYIG1lbXN0YXQtMC45LypgOgorCisgICAgbWVtc3RhdC5jOiAgICBj aGFyICpwLCBtYWpvcls4XSwgbWlub3JbOF0sIGJ1ZmZbUEFUSF9NQVggKyAzMDBdLCAqcGF0aCwg cGVybVs0XTsKKyAgICBtZW1zdGF0LmM6ICAgIGNoYXIgbGlua25hbWVbUEFUSF9NQVhdLCBmaWxl bmFtZVtQQVRIX01BWF07CisgICAgbWVtc3RhdC5jOiAgICBpZiAoKGxlbiA9IHJlYWRsaW5rKGZp bGVuYW1lLCBsaW5rbmFtZSwgUEFUSF9NQVgpKSA9PSAtMSkgeworCisKKyogKiAqCisKKworQ29t bWVudHMKKy0tLS0tLS0tCisKK0hlcmUgYXJlIGNvbW1lbnRzIG9uIHRoZSBwYXRjaC4uLgorCisg ICAgKyNkZWZpbmUgRk1UX1BST0NfTUFQUyAiL3Byb2MvJWQvbWFwcyIKKyAgICArI2RlZmluZSBG TVRfUFJPQ19FWEUgICIvcHJvYy8lZC9leGUiCisKK0RlZmluZSBzdHJpbmcgZm9ybWF0cy4KKwor ICAgICBzdGF0aWMgdm9pZCByZWFkX3Byb2Modm9pZCkKKyAgICAgeworICAgICAgICAgdW5zaWdu ZWQgaW50IG5yZWFkLCBwaWQ7CisgICAgICAgICB1bnNpZ25lZCBsb25nIGlub2RlLCBsbywgaGks IG9mZnM7CisgICAgLSAgICBjaGFyICpwLCBtYWpvcls4XSwgbWlub3JbOF0sIGJ1ZmZbUEFUSF9N QVggKyAzMDBdLCAqcGF0aCwgcGVybVs0XTsKKyAgICArICAgIGNoYXIgKnAsIG1ham9yWzhdLCBt aW5vcls4XSwgKnBhdGgsIHBlcm1bNF07CisgICAgKyAgICBjaGFyICpidWZmID0gTlVMTDsKKyAg ICArICAgIHNpemVfdCBidWZmX3NpemUgPSAwOworCitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4g YGJ1ZmZgIGludG8gZHluYW1pY2FsbHkgYWxsb2NhdGVkIHN0cmluZy4KKworCisgICAgLSAgIHNw cmludGYoYnVmZiwgIi9wcm9jLyVkL21hcHMiLCBwaWQpOworICAgIC0gICBmID0gZm9wZW4oYnVm ZiwgInIiKTsKKyAgICArICAgY2hhciBmaWxlbmFtZVtzaXplb2YoRk1UX1BST0NfTUFQUykgKyAo c2l6ZW9mKGludCkgKiAzKSArIDFdOworICAgICsgICBzcHJpbnRmKGZpbGVuYW1lLCBGTVRfUFJP Q19NQVBTLCBwaWQpOworICAgICsgICBmID0gZm9wZW4oZmlsZW5hbWUsICJyIik7CisKK0NvbXB1 dGUgdGhlIG1heGltdW0gc2l6ZSBvZiBgZmlsZW5hbWVgIHVzaW5nIGBzaXplb2YoaW50KSAqIDNg IGFzIGV4cGxhaW5lbmQgaW4gdGhlIFtbcG9ydGluZyBndWlkZXxwb3J0aW5nX2d1aWRlX2Zvcl9k dW1taWVzXV0uCisKKworICAgIC0gICB3aGlsZSAoZmdldHMoYnVmZiwgc2l6ZW9mKGJ1ZmYpLCBm KSkgeworICAgICsgICB3aGlsZSAoIWZlb2YoZikpIHsKKyAgICArICAgICAgIGJ1ZmYgPSBnZXRf bGluZShmKTsKKyAgICArICAgICAgIGlmIChidWZmID09IE5VTEwpCisgICAgKyAgICAgICBicmVh azsKKworUmVhZCBhIGxpbmUgZnJvbSB0aGUgZmlsZSB1c2luZyBbW2dldF9saW5lKCl8cG9ydGlu Z19ndWlkZV9mb3JfZHVtbWllc11dLgorCisKKyAgICAtICAgICAgIGlmICgoc3RybGVuKGJ1ZmYp ID09IDEwKSAmJiAoc3RyY21wKGJ1ZmYsICIgKGRlbGV0ZWQpIikgPT0gMCkpCisgICAgKyAgICAg ICBpZiAoKHN0cmxlbihidWZmKSA9PSAxMCkgJiYgKHN0cmNtcChidWZmLCAiIChkZWxldGVkKSIp ID09IDApKSB7CisgICAgKyAgICAgICBmcmVlKGJ1ZmYpOworICAgICAgICAgICAgY29udGludWU7 CisgICAgKyAgICAgICB9CisgICAgICAgICAgICBucmVhZCA9IHNzY2FuZihidWZmLCAiJWx4ICVs eCAlNHMgJWx4ICVzICVzICVsdSAlYXMiLCAmbG8sICZoaSwgcGVybSwgJm9mZnMsIG1ham9yLCBt aW5vciwgJmlub2RlLCAmcGF0aCk7CisgICAgKyAgICAgICBmcmVlKGJ1ZmYpOworCitGcmVlIHRo ZSBgYnVmZmAgd2hlbiBpdCdzIG5vdCB1c2VkIGFueW1vcmUuCisKKworICAgICsgICAgICAgYnVm Zl9zaXplID0gNDsgLyogc2l6ZSBvZiB0aGUgZm9ybWF0IHN0cmluZyB3aXRob3V0ICIleCIgZXhw cmVzc2lvbnMgKi8KKyAgICArICAgICAgIGJ1ZmZfc2l6ZSArPSBzdHJsZW4obWFqb3IpOworICAg ICsgICAgICAgYnVmZl9zaXplICs9IHN0cmxlbihtaW5vcik7CisgICAgKyAgICAgICBidWZmX3Np emUgKz0gc2l6ZW9mKGludCkgKiAzICsgMTsgLyogaW5vZGUgKi8KKyAgICArICAgICAgIGJ1ZmZf c2l6ZSArPSAxOyAvKiAnXDAnICovCisgICAgKyAgICAgICBidWZmID0gbWFsbG9jKGJ1ZmZfc2l6 ZSk7CisgICAgKyAgICAgICBpZiAoYnVmZiA9PSBOVUxMKSB7CisgICAgKyAgICAgICAgICAgcGVy cm9yKCJDYW5ub3QgYWxsb2NhdGUgbWVtb3J5ISIpOworICAgICsgICAgICAgICAgIGV4aXQoMSk7 CisgICAgKyAgICAgICB9CisKK0NvbXB1dGUgdGhlIHNpemUgdGhhdCB0aGUgYGJ1ZmZgIG11c3Qg aGF2ZS4KKworCisgICAgLSAgIGNoYXIgbGlua25hbWVbUEFUSF9NQVhdLCBmaWxlbmFtZVtQQVRI X01BWF07CisgICAgLSAgIHNzaXplX3QgbGVuOworICAgICsgICBjaGFyICpsaW5rbmFtZSA9IE5V TEw7CisgICAgKyAgIHN0cnVjdCBzdGF0IHNiOworICAgICsgICBzc2l6ZV90IGxlbiA9IC0xOwor CitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4gbGlua25hbWUgaW50byBkeW5hbWljYWxseSBhbGxv Y2F0ZWQgc3RyaW5nLiAKK2ZpbGVuYW1lIHdpbGwgYmUgZGVjbGFyZWQgbGF0ZXIuCisKKworICAg IC0gICBzcHJpbnRmKGZpbGVuYW1lLCAiL3Byb2MvJWQvZXhlIiwgcGlkKTsKKyAgICAtICAgaWYg KChsZW4gPSByZWFkbGluayhmaWxlbmFtZSwgbGlua25hbWUsIFBBVEhfTUFYKSkgPT0gLTEpIHsK KyAgICArICAgY2hhciBmaWxlbmFtZVtzaXplb2YoRk1UX1BST0NfRVhFKSArIChzaXplb2YoaW50 KSAqIDMpICsgMV07CisgICAgKyAgIHNwcmludGYoZmlsZW5hbWUsIEZNVF9QUk9DX0VYRSwgcGlk KTsKKworU2FtZSBhcyBhYm92ZSB3aXRoIGBGTVRfUFJPQ19NQVBTYC4KKworCisgICAgKyAgIGlm IChsc3RhdChmaWxlbmFtZSwgJnNiKSA9PSAtMSkgeworICAgICsgICAgICAgcGVycm9yKCJsc3Rh dCIpOworICAgICsgICAgICAgZGVsZXRlZCA9IDE7CisgICAgKyAgIH0KKyAgICArICAgZWxzZSB7 CisgICAgKyAgICAgICBsaW5rbmFtZSA9IG1hbGxvYyhzYi5zdF9zaXplICsgMSk7CisgICAgKyAg ICAgICBpZiAobGlua25hbWUgPT0gTlVMTCkgeworICAgICsgICAgICAgZnByaW50ZihzdGRlcnIs ICJpbnN1ZmZpY2llbnQgbWVtb3J5XG4iKTsKKyAgICArICAgICAgIGRlbGV0ZWQgPSAxOworICAg ICsgICAgICAgfQorICAgICsgICAgICAgZWxzZSB7CisgICAgKyAgICAgICBsZW4gPSByZWFkbGlu ayhmaWxlbmFtZSwgbGlua25hbWUsIHNiLnN0X3NpemUgKyAxKTsKKyAgICArICAgICAgIH0KKyAg ICArICAgfQorICAgICsgICBpZiAobGVuIDwgMCB8fCBsZW4gPiBzYi5zdF9zaXplKSB7CisgICAg ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCByZWFkIGxpbmsgaW5mb3JtYXRpb24gZm9y ICVzXG4iLCBmaWxlbmFtZSk7CisgICAgICAgICAgICBkZWxldGVkID0gMTsKKyAgICAgICAgfQor ICAgIC0gICBsaW5rbmFtZVtsZW5dID0gJ1wwJzsKKyAgICArICAgZWxzZSB7CisgICAgKyAgICAg ICBsaW5rbmFtZVtzYi5zdF9zaXplXSA9ICdcMCc7CisgICAgKyAgIH0KKworVXNlIGByZWFkbGlu aygpYCBhcyBleHBsYWluZWQgaW4gdGhlIHBvcnRpbmcgZ3VpZGUuIAorUmVxdWlyZSBsc3RhdCB0 byBnZXQgdGhlIGxpbmsgc2l6ZS4KKworCisgICAgKyAgIGZyZWUobGlua25hbWUpOworRnJlZSBk eW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgdGhhdCBpcyBub3QgdXNlZCBhbnltb3JlLgor CmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvcGF0Y2hfbGlmZV9jeWNsZS5tZHduIGIvdXNl ci90bGVjYXJyb3VyL3BhdGNoX2xpZmVfY3ljbGUubWR3bgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wZDljMzFmCi0tLSAvZGV2L251bGwKKysrIGIvdXNlci90bGVjYXJyb3Vy L3BhdGNoX2xpZmVfY3ljbGUubWR3bgpAQCAtMCwwICsxLDg4IEBACitbWyFtZXRhIGNvcHlyaWdo dD0iQ29weXJpZ2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisK K1tbIW1ldGEgbGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4y KyJdXVtbIXRvZ2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50 ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9u IDEuMiBvcgorYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIg VGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitp cyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRp b24KK0xpY2Vuc2V8L2ZkbF1dLiJdXSIiIl1dCisKKworUGF0Y2ggTGlmZSBDeWNsZQorPT09PT09 PT09PT09PT09PQorCitbWyF0b2Mgc3RhcnRsZXZlbD0yXV0KKworCisqICogKgorCisKK1N0YXJ0 CistLS0tLQorCitGb2xsb3cgdGhlIHN0ZXBzIGxpc3RlZCBvbiB0aGUgW1twYWNrYWdlIHBvcnRp bmcgcGFnZXxwb3J0aW5nX2d1aWRlX2Zvcl9kdW1taWVzXV0uCisKKworRGlzY3VzcworLS0tLS0t LQorCitTZW5kIHRoZSBwYXRjaCBmb3IgcmV2aWV3IHRvIFtkZWJpYW4taHVyZEBsaXN0cy5kZWJp YW4ub3JnXShtYWlsdG86ZGViaWFuLWh1cmRAbGlzdHMuZGViaWFuLm9yZykuICAKKyoqQmVmb3Jl Kiogc2VuZGluZyB0aGUgcGF0Y2gsIG1ha2Ugc3VyZSB0aGF0IHlvdSd2ZSBzb2x2ZWQgYWxsIHRo ZSBrbm93biBwcm9ibGVtcyBsaXN0ZWQgaW4gdGhlIFtbcGFja2FnZSBwb3J0aW5nIGdlbmVyYWwg aW50cm9kdWN0aW9ufGh1cmQvcG9ydGluZy9ndWlkZWxpbmVzXV0gCithbmQgdGhlIFtbcG9ydGlu ZyBndWlkZSBmb3IgZHVtbWllc3xwb3J0aW5nX2d1aWRlX2Zvcl9kdW1taWVzXV0uCisKKworU3Vi bWl0IERyYWZ0CistLS0tLS0tLS0tLS0KKworV2hlbiB0aGUgcGF0Y2ggaXMgZ29vZCBlbm91Z2gs IHlvdSBjYW4gd3JpdGUgdGhlIGRyYWZ0IG9mIHRoZSBvZmZpY2lhbCBidWcgcmVwb3J0LiAgCitU aGlzIGRyYWZ0IHNob3VsZCBmaXJzdCBiZSBzZW50IGZvciByZXZpZXcgdG8gW2RlYmlhbi1odXJk QGxpc3RzLmRlYmlhbi5vcmddKG1haWx0bzpkZWJpYW4taHVyZEBsaXN0cy5kZWJpYW4ub3JnKSB3 aXRoIHRoZSBwYXRjaCBhdHRhY2hlZC4KKworSGVyZSBpcyBhbiBleGFtcGxlIGZvciBtZW1zdGF0 OgorCisgICAgU291cmNlOiBtZW1zdGF0CisgICAgVmVyc2lvbjogMC45CisgICAgU2V2ZXJpdHk6 IGltcG9ydGFudAorICAgIFRhZ3M6IHBhdGNoCisgICAgVXNlcjogZGViaWFuLWh1cmRAbGlzdHMu ZGViaWFuLm9yZworICAgIFVzZXJ0YWdzOiBodXJkCisgICAgWC1EZWJCdWdzLUNDOiBkZWJpYW4t aHVyZEBsaXN0cy5kZWJpYW4ub3JnCisKKyAgICBIaSwKKworICAgIFRoaXMgcGF0Y2ggc29sdmVz IHRoZSBidWlsZCBwcm9ibGVtcyBmb3IgR05VL0h1cmQgZHVlIHRvIFBBVEhfTUFYCisgICAgaXNz dWVzLiBUaGUgc29sdXRpb24gaXMgdG8gbWFrZSBkeW5hbWljIHN0cmluZyBhbGxvY2F0aW9ucyBp bnN0ZWFkIG9mCisgICAgdXNpbmcgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuIFRoZSBwYXRjaCBpbnZv bHZlcyBvbmUgZmlsZSwgYW5kIGlzCisgICAgdHJpdmlhbC4KKworICAgIEZJWE1FOgorICAgIElz IGl0IHJlYWxseSB1c2VmdWwgdG8gY2hlY2sgaWYgQlVGU0laIGlzIGRlZmluZWQ/CisKKyAgICBU T0RPOgorICAgIFNob3VsZCB0aGUgIndob2xlIHBhY2thZ2UiIGJlIHRlc3RlZCB3aXRoIHZhbGdy aW5kIG9uIEdOVS9MaW51eD8hCisgICAgSWYgeWVzLCBpcyB0aGVyZSBhIHN0YW5kYXJkIHByb2Nl ZHVyZSB0byBkbyBpdD8hCisKKyAgICBUaGFua3MhIAorICAgIFNwZWNpYWwgdGhhbmtzIHRvIErD qXLDqW1pZSBhbmQgUmljaGFyZCBmb3IgdGhlaXIgY29tbWVudHMhCisKKyAgICAoTm90IHN1Ym1p dHRlZCB5ZXQsIGNvbW1lbnRzIGFyZSB3ZWxjb21lLikKKworT25jZSBpdCdzIGJlZW4gYXBwcm92 ZWQsIHlvdSBjYW4gcHJvY2VlZCB0byB0aGUgc3VibWlzc2lvbi4KKworCitTdWJtaXQKKy0tLS0t LQorCitUaGUgYnVnIHJlcG9ydCBpcyB0aGUgc2FtZSBhcyBhYm92ZSwgd2l0aCBhbGwgdGhlICoq RklYTUUqKiwgKipUT0RPKiogYW5kIGZpbmFsIGNvbW1lbnQgcmVtb3ZlZC4gIAorQXR0YWNoIHRo ZSBwYXRjaCBhbmQgc2VuZCBpdCB0byBbc3VibWl0QGRlYmlhbi5vcmddKG1haWx0bzpzdWJtaXRA ZGViaWFuLm9yZykuICAKK0NvbnZlbnRpb24gZm9yIHRoZSBhdHRhY2htZW50IG5hbWUgaXM6IGBm aXhfRlRCRlM0SHVyZC5wYXRjaGAKKworCitBY2NlcHQKKy0tLS0tLQorCitPbmNlIHRoZSBwYXRj aCBoYXMgYmVlbiBhY2NlcHRlZCwgdXBkYXRlIHlvdXIgcGF0Y2ggcGFnZSEgIAorKipDb25ncmF0 dWxhdGlvbnMhKioKKworCisKZGlmZiAtLWdpdCBhL3VzZXIvdGxlY2Fycm91ci9wb3J0aW5nX2d1 aWRlX2Zvcl9kdW1taWVzLm1kd24gYi91c2VyL3RsZWNhcnJvdXIvcG9ydGluZ19ndWlkZV9mb3Jf ZHVtbWllcy5tZHduCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0OTM0NGYK LS0tIC9kZXYvbnVsbAorKysgYi91c2VyL3RsZWNhcnJvdXIvcG9ydGluZ19ndWlkZV9mb3JfZHVt bWllcy5tZHduCkBAIC0wLDAgKzEsMjAzIEBACitbWyFtZXRhIGNvcHlyaWdodD0iQ29weXJpZ2h0 IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIl1dCisKK1tbIW1ldGEgbGlj ZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdGREwgMS4yKyJdXVtbIXRvZ2ds ZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwg ZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMiBvcgorYW55 IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBu byBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlCitpcyBpbmNsdWRlZCBp biB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3VtZW50YXRpb24KK0xpY2Vuc2V8 L2ZkbF1dLiJdXSIiIl1dCisKKworUG9ydGluZyBHdWlkZSBmb3IgRHVtbWllcworPT09PT09PT09 PT09PT09PT09PT09PT09PQorCitUaGUgcHJvYmxlbXMgYWRkcmVzc2VkIGhlcmUgd2VyZSBlbmNv dW50ZXJlZCB3aGlsZSB3b3JraW5nIAorb24gZml4aW5nICoqUEFUSF9NQVgqKiBhbmQgKipNQVhQ QVRITEVOKiouCisKK1tbIXRvYyBzdGFydGxldmVsPTIgbGV2ZWxzPTNdXQorCisKKyogKiAqCisK KworVGVzdCBvbiBIdXJkCistLS0tLS0tLS0tLS0KKworCisjIyMgSW5zdGFsbGluZyB0aGUgcmVx dWlyZWQgZmlsZXMKKworQXMgYGFwdC1nZXQgc291cmNlYCB3aWxsIGRvd25sb2FkIGFuZCBleHRy YWN0IG1hbnkgZmlsZXMsIHlvdSBtYXkgd2FudCB0byBjcmVhdGUgYSBkZWRpY2F0ZWQgZm9sZGVy IGZvciB0aGUgcGFja2FnZSBhbmQgd29yayBmcm9tIHRoZXJlLgorCisgICAgbWtkaXIgUEFDS0FH RQorICAgIGNkIFBBQ0tBR0UKKyAgICBzdWRvIGFwdC1nZXQgYnVpbGQtZGVwIFBBQ0tBR0UKKyAg ICBhcHQtZ2V0IHNvdXJjZSBQQUNLQUdFCisKKworIyMjIFRyeWluZyB0byBidWlsZCB0aGUgcGFj a2FnZQorCisgICAgY2QgUEFDS0FHRV9TT1VSQ0UKKyAgICBkcGtnLWJ1aWxkcGFja2FnZSAtdXMg LXVjIC1yZmFrZXJvb3QgLXRjCisKKworIyMjIFRlc3QgYSBxdWljayBmaXgKKworSW4gYWxsIHRo ZSBmaWxlcyB0aGF0IHVzZSAqKlBBVEhfTUFYKiosIGluY2x1ZGUgdGhvc2UgbGluZXMgYXQgdGhl IGJlZ2lubmluZy4KKworICAgICNpZm5kZWYgUEFUSF9NQVgKKyAgICAjZGVmaW5lIFBBVEhfTUFY IDQxOTYKKyAgICAjZW5kaWYKKworVHJ5IHRvIHJlYnVpbGQgdGhlIHBhY2thZ2UgYW5kIHNlZSBp ZiBpdCdzIHNvbHZlZCB0aGUgcHJvYmxlbS4gIAorSWYgeWVzLCB5b3UgY2FuIHN0YXJ0IHdvcmtp bmcgb24gdGhlIHBhY2thZ2UuCisKKworKiAqICoKKworCitCYXNpYyB0aGluZ3MKKy0tLS0tLS0t LS0tLQorCisjIyMgTWFpbnRhaW5pbmcgYSBvcmlnaW5hbCB2ZXJzaW9uCisKKyAgICBta2RpciBv bGQKKyAgICBjcCAtciBQQUNLQUdFX1NPVVJDRSBvbGQvCisKKworIyMjIENvZGluZyBzdHlsZQor CitGb2xsb3cgdGhlIGNvbnZlbnRpb25zIHVzZWQgaW4gdGhlIHNvdXJjZSBjb2RlIQorCisgICAg aWYgKGNvbmRpdGlvbikgeworICAgICAgICBkb19zbXRoZygpOworICAgIH0KKworaXMgbm90IHRo ZSBzYW1lIGFzOgorCisgICAgaWYgKGNvbmRpdGlvbikgCisgICAgeworICAgICAgICBkb19zbXRo ZygpOworICAgIH0KKworYW5kIGlzIG5vdCB0aGUgc2FtZSBhczoKKworICAgIGlmIChjb25kaXRp b24pCisgICAgICAgIGRvX3NtdGhnKCk7CisKK1BheSBhdHRlbnRpb24gdG8gc3BhY2VzIHN1cnJv dW5kaW5nLCBvciBub3QsIGFyaXRobWV0aWMgc2lnbnMgYW5kIHN5bWJvbHM6CisKKyAgICBhID0g ZG9fc210aGcoIGIgKyBjICk7CisgICAgYSA9IGRvX3NtdGhnKGIrYyk7CisKKworIyMjIEluZGVu dGF0aW9uCisKK0J5IGRlZmF1bHQgdXNlIDggc3BhY2VzIGFzIHRoZSBzaXplIGZvciAxIHRhYi4g CitUaGVuIGZpZ3VyZSBvdXQgaWYgdGhlIGNvZGUgdXNlcyB0YWIgKyAxLzIgdGFiOgorCisgICAg Li4uLmlmIChjb25kaXRpb24pIHsKKyAgICAtLS0tLS0tPmRvX3NtdGhnKCk7CisgICAgLi4uLn0K Kworb3IgdGFiIG9ubHk6CisKKyAgICAtLS0tLS0tPmlmIChjb25kaXRpb24pIHsKKyAgICAtLS0t LS0tPi0tLS0tLS0+ZG9fc210aGcoKTsKKyAgICAtLS0tLS0tPn0KKworCisjIyMgQ3JlYXRpbmcg YSBwYXRjaAorCisgICAgZGlmZiAtTmF1ciBvbGQvUEFDS0FHRS1WRVJTSU9OIFBBQ0tBR0UtVkVS U0lPTiA+IGZpeF9GVEJGUzRIdXJkLnBhdGNoCisKKworKiAqICoKKworCitLbm93biBwcm9ibGVt cworLS0tLS0tLS0tLS0tLS0KKworIyMjIER5bmFtaWNhbGx5IGFsbG9jYXRlZCBidWZmZXIgcmV0 dXJuZWQgYnkgYSBmdW5jdGlvbgorCitVc2UgYSBzdGF0aWMgYnVmZmVyCisKKyMjIyBCdWZmZXIg dXNlZCB0byBmb3JtYXQgYW4gZXhwcmVzc2lvbiBjb250YWluaW5nIGFuIElOVEVHRVIKKworVGhl IGxlbmd0aCBvZiBhbiBJTlRFR0VSIGluIGEgc3RyaW5nIGNhbiBiZSB1cCB0byBzaXplb2YgKGlu dCkgKiAzICsgMS4KKworPiBUaGUgdXN1YWwgdHJpY2sgZm9yICIlZCIgaXMgdG8gdXNlIHRoZSBj b25zdGFudCAnc2l6ZW9mIChpbnQpICogMyArIDEnLiAKK0kgaW5jbHVkZWQgKyAxIGZvciB0aGUg c2lnbiwgYnV0IGl0J3Mgbm90IHJlYWxseSBuZWNlc3NhcnkgCitpZiB3ZSBleGVwZWN0IHNpemVv ZihpbnQpID49IDIsIHdoaWNoIHdlIHByb2JhYmx5IHNob3VsZC4gCisqKkrDqXLDqW1pZSBLb2Vu aWcqKgorCisgICAgbG9nKE1BWF9JTlQpCisgICAgID0gbG9nKDIgXiAzMikKKyAgICAgPSAzMiAq IGxvZygyKQorICAgICA9IDQgKiA4ICogbG9nKDIpCisgICAgID0gc2l6ZW9mKGludCkgKiAyLjQw ODIzOTk3CisgICAgIDwgc2l6ZW9mKGludCkgKiAzCisKKworIyMjIFByb3BlciB1c2Ugb2YgcmVh bGxvYygpCisKK3VzZSBhIG5ld19idWZmIHRvIGNoZWNrIGlmIGV2ZXJ5dGhpbmcgd2VudCBmaW5l IEZyZWUgYnVmIGlmIHJlYWxsb2MgZmFpbGVkIChhbmQgcHJvZyBkb2Vzbid0IGV4aXQpCisKKwor IyMjIFJlYWRpbmcgbGluZXMgZnJvbSBmaWxlCisKK0Z1bmN0aW9uIHRvIHJlYWQgbGluZSAobm8g c2l6ZSBsaW1pdCwgZW5kaW5nIHdpdGggIlxuIikgZnJvbSBhIGZpbGUuCisKKyAgICArc3RhdGlj IGNoYXIgKmdldF9saW5lKEZJTEUgKmYpCisgICAgK3sKKyAgICArICAgIGNoYXIgKmJ1ZmYgID0g TlVMTDsKKyAgICArICAgIGNoYXIgKm5ld19idWZmICA9IE5VTEw7CisgICAgKyAgICBzaXplX3Qg YnVmZl9zaXplID0gMDsKKyAgICArICAgIHNpemVfdCBsYXN0ID0gMDsKKyAgICArCisgICAgKyAg ICB3aGlsZSAoIWZlb2YoZikpIHsKKyAgICArICAgYnVmZl9zaXplID0gYnVmZl9zaXplID8gYnVm Zl9zaXplICogMiA6IEJVRlNJWjsKKyAgICArICAgbmV3X2J1ZmYgPSByZWFsbG9jKGJ1ZmYsIGJ1 ZmZfc2l6ZSk7CisgICAgKyAgIGlmIChuZXdfYnVmZiA9PSBOVUxMKSB7CisgICAgKyAgICAgICBm cmVlKGJ1ZmYpOworICAgICsgICAgICAgcmV0dXJuIE5VTEw7CisgICAgKyAgIH0KKyAgICArICAg YnVmZiA9IG5ld19idWZmOworICAgICsgICBpZiAoZmdldHMoYnVmZiArIGxhc3QsIGJ1ZmZfc2l6 ZSAtIGxhc3QsIGYpID09IE5VTEwpIHsKKyAgICArICAgICAgIGZyZWUoYnVmZik7CisgICAgKyAg ICAgICByZXR1cm4gTlVMTDsKKyAgICArICAgfQorICAgICsgICBsYXN0ID0gc3RybGVuKGJ1ZmYp OworICAgICsgICBpZiAoYnVmZltsYXN0IC0gMV0gPT0gJ1xuJykKKyAgICArICAgICAgIHJldHVy biBidWZmOworICAgICsgICAgfQorICAgICsgICAgcmV0dXJuIGJ1ZmY7CisgICAgK30KKworCisj IyMgUHJvcGVyIHVzZSBvZiByZWFkbGluaygpCisKK09uZSBoYXMgdG8gcmVseSBvbiBsc3RhdCgp IHRvIGdldCB0aGUgc2l6ZSBvZiB0aGUgbGluayB0aGF0IHJlYWRsaW5rKCkgcmV0dXJucy4KKwor RGVjbGFyZSB3aGF0IHlvdSBuZWVkOgorCisgICAgY2hhciAqbGlua25hbWUgPSBOVUxMOworICAg IHN0cnVjdCBzdGF0IHNiOworICAgIHNzaXplX3QgbGVuID0gLTE7CisKK0NhbGwgbHN0YXQoKSBh bmQgY2hlY2sgcmV0dXJuIHZhbHVlOgorCisgICAgaWYgKGxzdGF0KGZpbGVuYW1lLCAmc2IpID09 IC0xKSB7CisKK0NyZWF0ZSBhIGJ1ZmZlciBvZiB0aGUgYXBwcm9wcmlhdGUgc2l6ZSBhbmQgY2hl Y2sgdGhlIHJldHVybiB2YWx1ZToKKworICAgIGxpbmtuYW1lID0gbWFsbG9jKHNiLnN0X3NpemUg KyAxKTsKKyAgICBpZiAobGlua25hbWUgPT0gTlVMTCkgeworCitDYWxsIHJlYWRsaW5rKCksIGNo ZWNrIHJldHVybiB2YWx1ZSBhbmQgc2V0IHRoZSBudWxsIGNoYXIgaW4gdGhlIGxpbmtuYW1lOgor CisgICAgbGVuID0gcmVhZGxpbmsoZmlsZW5hbWUsIGxpbmtuYW1lLCBzYi5zdF9zaXplICsgMSk7 CisgICAgaWYgKGxlbiA8IDAgfHwgbGVuID4gc2Iuc3Rfc2l6ZSkgeworICAgIC4uLgorICAgIGxp bmtuYW1lW3NiLnN0X3NpemVdID0gJ1wwJzsKKwpkaWZmIC0tZ2l0IGEvdXNlci90bGVjYXJyb3Vy L3JuZy10b29scy5tZHduIGIvdXNlci90bGVjYXJyb3VyL3JuZy10b29scy5tZHduCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyOTg1MmEKLS0tIC9kZXYvbnVsbAorKysgYi91 c2VyL3RsZWNhcnJvdXIvcm5nLXRvb2xzLm1kd24KQEAgLTAsMCArMSw1NiBAQAorW1shbWV0YSBj b3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0PSJH RkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lvbiBp cyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1bWVu dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwg VmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZyb250 LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUgbGlj ZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBEb2N1 bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0iIiJdXQorCisKK3JuZy10b29scworPT09PT09 PT09CisKK0RhZW1vbiB0byB1c2UgYSBIYXJkd2FyZSBUUk5HLiBUaGUgcm5nZCBkYWVtb24gYWN0 cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIGEgSGFyZHdhcmUgVFJORyAodHJ1ZSByYW5kb20gbnVtYmVy IGdlbmVyYXRvcikgc3VjaCBhcyB0aGUgb25lcyBpbiBzb21lIEludGVsL0FNRC9WSUEgY2hpcHNl dHMsIGFuZCB0aGUga2VybmVsJ3MgUFJORyAocHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9y KS4gIAorKGZyb20gW1todHRwOi8vcGFja2FnZXMuZGViaWFuLm9yZy9sZW5ueS9ybmctdG9vbHNd XSkKKworW1shdG9jIHN0YXJ0bGV2ZWw9Ml1dCisKKworKiAqICoKKworCitMb2cKKy0tLQorCisq ICoqU3RhcnRlZCoqOiAyMDEyLTAxLTI4CisqICoqRGlzY3Vzc2VkKio6IFsyMDEyLTAxLTMwXSho dHRwOi8vbGlzdHMuZGViaWFuLm9yZy9kZWJpYW4taHVyZC8yMDEyLzAxL21zZzAwMTc3Lmh0bWwp CisqICoqRHJhZnQgU3VibWl0dGVkKio6IC0KKyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2Vw dGVkKio6IC0KKworCisqICogKgorCisKK1RvRG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0 IG9mIGBncmVwIC1SIFBBVEhfTUFYIHJuZy10b29scy0yLXVub2ZmaWNpYWwtbXQuMTQvKmA6CisK KyAgICB2aWFwYWRsb2NrX2VuZ2luZS5jOnN0YXRpYyBjaGFyIGNwdWRldl9wYXRoW1BBVEhfTUFY KzFdOworICAgIHZpYXBhZGxvY2tfZW5naW5lLmM6Y2hhciBkZXZwYXRoW1BBVEhfTUFYKzFdOwor CisKKyogKiAqCisKKworQ29tbWVudHMKKy0tLS0tLS0tCisKK1dvcmsgaW4gcHJvZ3Jlc3MsIHNl ZSByZWxhdGVkIFt0aHJlYWRdKGh0dHA6Ly9saXN0cy5kZWJpYW4ub3JnL2RlYmlhbi1odXJkLzIw MTIvMDEvbXNnMDAxNzcuaHRtbCkuCisKK0V2ZW4gaWYgdGhlICoqUEFUSF9NQVgqKiBjYW4gYmUg ZWFzaWx5IGZpeGVkLCBzb21lIHByb2JsZW1zIHJlbWFpbi4gIAorVGhlIGNvZGUgdXNlcyBgbGlu dXgvdHlwZXMuaGAsIHRoYXQgaGFzIHRvIGJlIHJlcGxhY2VkIGJ5IGBzeXMvdHlwZXMuaGAsIGJ1 dCBhbHNvIHVzZXMgYGxpbnV4L3JhbmRvbS5oYCB3aGljaCBoYXMgbm8gZXF1aXZhbGVudCBJIGtu b3cgb2YuICAKK0F0IGxlYXN0IG9uZSBzb3VyY2UgZmlsZSBpcyBuYW1lZCBhZnRlciB0aGUgT1M6 IGBybmdkX2xpbnV4LmNgLgpkaWZmIC0tZ2l0IGEvdXNlci90bGVjYXJyb3VyL3N1Y2tsZXNzLXRv b2xzLm1kd24gYi91c2VyL3RsZWNhcnJvdXIvc3Vja2xlc3MtdG9vbHMubWR3bgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjQ2ZmFjCi0tLSAvZGV2L251bGwKKysrIGIvdXNl ci90bGVjYXJyb3VyL3N1Y2tsZXNzLXRvb2xzLm1kd24KQEAgLTAsMCArMSw3OSBAQAorW1shbWV0 YSBjb3B5cmlnaHQ9IkNvcHlyaWdodCDCqSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLiJdXQorCitbWyFtZXRhIGxpY2Vuc2U9IiIiW1shdG9nZ2xlIGlkPSJsaWNlbnNlIiB0ZXh0 PSJHRkRMIDEuMisiXV1bWyF0b2dnbGVhYmxlCitpZD0ibGljZW5zZSIgdGV4dD0iUGVybWlzc2lv biBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzCitkb2N1 bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5z ZSwgVmVyc2lvbiAxLjIgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vIEludmFyaWFudAorU2VjdGlvbnMsIG5vIEZy b250LUNvdmVyIFRleHRzLCBhbmQgbm8gQmFjay1Db3ZlciBUZXh0cy4gIEEgY29weSBvZiB0aGUg bGljZW5zZQoraXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgW1tHTlUgRnJlZSBE b2N1bWVudGF0aW9uCitMaWNlbnNlfC9mZGxdXS4iXV0iIiJdXQorCisKK3N1Y2tsZXNzLXRvb2xz Cis9PT09PT09PT09PT09PQorCitIb21lIG9mIGR3bSwgZG1lbnUgYW5kIG90aGVyIHF1YWxpdHkg c29mdHdhcmUgd2l0aCBhIGZvY3VzIG9uIHNpbXBsaWNpdHksIGNsYXJpdHksIGFuZCBmcnVnYWxp dHkuICAKKyoqSG9tZSBwYWdlKio6IFtbaHR0cDovL3N1Y2tsZXNzLm9yZ11dCisKK1tbIXRvYyBz dGFydGxldmVsPTJdXQorCisKKyogKiAqCisKKworTG9nCistLS0KKworKiAqKlN0YXJ0ZWQqKjog MjAxMi0wMS0zMQorKiAqKkRpc2N1c3NlZCoqOiBbMjAxMi0wMS0zMV0oaHR0cDovL2xpc3RzLmRl Ymlhbi5vcmcvZGViaWFuLWh1cmQvMjAxMi8wMS9tc2cwMDE5MS5odG1sKQorKiAqKkRyYWZ0IFN1 Ym1pdHRlZCoqOiBbMjAxMi0wMi0wMV0oaHR0cDovL2xpc3RzLmRlYmlhbi5vcmcvZGViaWFuLWh1 cmQvMjAxMi8wMi9tc2cwMDAwMS5odG1sKQorKiAqKlN1Ym1pdHRlZCoqOiAtCisqICoqQWNjZXB0 ZWQqKjogLQorCisKKyogKiAqCisKKworVG9EbworLS0tLQorCitIZXJlIGlzIHRoZSBvdXRwdXQg b2YgYGdyZXAgLVIgUEFUSF9NQVggc3Vja2xlc3MtdG9vbHMtMzgvKmA6CisKKyAgICBkbWVudS9k bWVudV9wYXRoLmM6IGNoYXIgYnVmW1BBVEhfTUFYXTsKKworCisqICogKgorCisKK0NvbW1lbnRz CistLS0tLS0tLQorCitIZXJlIGFyZSBjb21tZW50cyBvbiB0aGUgcGF0Y2guLi4KKworICAgICB2 b2lkCisgICAgIHNjYW4odm9pZCkgeworICAgIC0gICBjaGFyIGJ1ZltQQVRIX01BWF07CisgICAg KyAgIGNoYXIgKmJ1ZiA9IE5VTEw7CisgICAgKyAgIGNoYXIgKm5ld19idWYgPSBOVUxMOworICAg ICsgICBzaXplX3QgYnVmX3NpemUgPSAwOworCitJbiB0aGlzIGZ1bmN0aW9uIHdlIHR1cm4gYGJ1 ZmAgaW50byBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RyaW5nLgorCisKKyAgICAgICAgICAgIHdo aWxlKChlbnQgPSByZWFkZGlyKGRwKSkpIHsKKyAgICArICAgICAgICAgICBidWZfc2l6ZSA9IHN0 cmxlbihkaXIpK3N0cmxlbihlbnQtPmRfbmFtZSkrMjsKKyAgICArICAgICAgICAgICBpZighYnVm IHx8IHN0cmxlbihidWYpIDwgYnVmX3NpemUpIHsKKyAgICArICAgICAgICAgICAgICAgbmV3X2J1 ZiA9IHJlYWxsb2MoYnVmLCBidWZfc2l6ZSk7CisgICAgKyAgICAgICAgICAgICAgIGlmKCFuZXdf YnVmKQorICAgICsgICAgICAgICAgICAgICAgICAgZGllKCJyZWFsbG9jIGZhaWxlZCIpOworICAg ICsgICAgICAgICAgICAgICBidWYgPSBuZXdfYnVmOworICAgICsgICAgICAgICAgIH0KKworRm9y IGVhY2ggZGlyZWN0b3J5IGVudHJ5IHdlIGNyZWF0ZSBvciBhZGFwdCB0aGUgYnVmZmVyIHNpemUu CisKKworICAgICAgICAgICAgfQorICAgICsgICAgICAgZnJlZShidWYpOworCitXZSBmcmVlIHRo ZSBidWYgd2hlbiBkb25lLgorCmRpZmYgLS1naXQgYS91c2VyL3RsZWNhcnJvdXIvdXAtaW1hcHBy b3h5Lm1kd24gYi91c2VyL3RsZWNhcnJvdXIvdXAtaW1hcHByb3h5Lm1kd24KbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNlZWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL3VzZXIv dGxlY2Fycm91ci91cC1pbWFwcHJveHkubWR3bgpAQCAtMCwwICsxLDU0IEBACitbWyFtZXRhIGNv cHlyaWdodD0iQ29weXJpZ2h0IMKpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Il1dCisKK1tbIW1ldGEgbGljZW5zZT0iIiJbWyF0b2dnbGUgaWQ9ImxpY2Vuc2UiIHRleHQ9IkdG REwgMS4yKyJdXVtbIXRvZ2dsZWFibGUKK2lkPSJsaWNlbnNlIiB0ZXh0PSJQZXJtaXNzaW9uIGlz IGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMKK2RvY3VtZW50 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBW ZXJzaW9uIDEuMiBvcgorYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IHdpdGggbm8gSW52YXJpYW50CitTZWN0aW9ucywgbm8gRnJvbnQt Q292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLiAgQSBjb3B5IG9mIHRoZSBsaWNl bnNlCitpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBbW0dOVSBGcmVlIERvY3Vt ZW50YXRpb24KK0xpY2Vuc2V8L2ZkbF1dLiJdXSIiIl1dCisKKwordXAtaW1hcHByb3h5Cis9PT09 PT09PT09PT0KKworU3F1aXJyZWxNYWlsJ3MgSU1BUCBQcm94eSBpcyBhIGNhY2hpbmcgSU1BUCBw cm94eSBzZXJ2ZXIgaW50ZW5kZWQgZm9yIHVzZSB3aXRoIHdlYm1haWwgY2xpZW50cyB0aGF0IGNh bm5vdCBtYWludGFpbiBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zIHRvIGFuIElNQVAgc2VydmVyLiAg CisqKkhvbWUgcGFnZSoqOiBbW2h0dHA6Ly93d3cuaW1hcHByb3h5Lm9yZ11dCisKK1tbIXRvYyBz dGFydGxldmVsPTJdXQorCisKKyogKiAqCisKKworTG9nCistLS0KKworKiAqKlN0YXJ0ZWQqKjog MjAxMi0wMS0zMQorKiAqKkRpc2N1c3NlZCoqOiAtCisqICoqRHJhZnQgU3VibWl0dGVkKio6IC0K KyogKipTdWJtaXR0ZWQqKjogLQorKiAqKkFjY2VwdGVkKio6IC0KKworCisqICogKgorCisKK1Rv RG8KKy0tLS0KKworSGVyZSBpcyB0aGUgb3V0cHV0IG9mIGBncmVwIC1SIFBBVEhfTUFYIHVwLWlt YXBwcm94eS0xLjIuNy8qYDoKKworICAgIHNyYy9tYWluLmM6ICAgIGNoYXIgZl9yYW5kZmlsZVsg UEFUSF9NQVggXTsKKworCisqICogKgorCisKK0NvbW1lbnRzCistLS0tLS0tLQorCitXb3JrIGlu IHByb2dyZXNzLi4uCisKK09ubHkgdGhlIGZ1bmN0aW9uIHRoYXQgZmlsbHMgdGhlIGJ1ZmZlciBr bm93cyBob3cgbG9uZyBpdCBjYW4gYmUuICAKK1RoaXMgZnVuY3Rpb24gaXMgYFJBTkRfZmlsZV9u YW1lKClgIGFuZCBpcyBwYXJ0IG9mICoqT3BlblNTTCoqLgotLSAKMS43LjUuNAoK --e89a8f234bfb7fdf1f04b7fbbda2--