Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161020AbVIOU6o (ORCPT ); Thu, 15 Sep 2005 16:58:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161021AbVIOU6n (ORCPT ); Thu, 15 Sep 2005 16:58:43 -0400 Received: from web51001.mail.yahoo.com ([206.190.38.132]:17576 "HELO web51001.mail.yahoo.com") by vger.kernel.org with SMTP id S1161020AbVIOU6m (ORCPT ); Thu, 15 Sep 2005 16:58:42 -0400 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=n6fYar88X/dQ8gm1Y3Fg67t9j+Z4cznmAHbt5I7CP9TLy6N4ihJK1TFR/pR35bT3ipjIffiahDM6lyb9ozx6OHzDDE4O9UGUdtqw1mVMMU5VnM1snFuZ0IOUdy7pgv+Cpyd9+UB7AqgX67CJNxvmpxu3OYPRtPlkBXFOwVrkawQ= ; Message-ID: <20050915205837.88151.qmail@web51001.mail.yahoo.com> Date: Thu, 15 Sep 2005 13:58:37 -0700 (PDT) From: Ahmad Reza Cheraghi Subject: Re: Automatic Configuration of a Kernel To: Daniel Thaler , Lee Revell Cc: David Lang , Hua Zhong , marekw1977@yahoo.com.au, linux-kernel@vger.kernel.org In-Reply-To: <4328EC72.6050507@in.tum.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1435845163-1126817917=:87422" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 97855 Lines: 1624 --0-1435845163-1126817917=:87422 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Id: Content-Disposition: inline --- Daniel Thaler wrote: > Lee Revell wrote: > > Why does this have to be in the kernel again? > Isn't this exactly what > > you get with a fully modular config and hotplug? > > It doesn't go in the kernel. If I understand > correctly, it's a script that is > invoked by 'make autoconfig'. Note that I didn't > read the patch, because it's a > .tgz on a website and I couldn't be bothered to > download it. Since im a new Bee, I didn't know that I patched shouldnt be tgz. So here is a new patch as URL and attachment. The URL : www.energyparty.de/ahmad/autoconfig.patch __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --0-1435845163-1126817917=:87422 Content-Type: application/octet-stream; name="autoconfig.patch" Content-Transfer-Encoding: base64 Content-Description: 1146041466-autoconfig.patch Content-Disposition: attachment; filename="autoconfig.patch" ZGlmZiAtdXJOIGxpbnV4Lm9yZy9Eb2N1bWVudGF0aW9uL2F1dG9jb25mLnR4 dCBsaW51eC0yLjYuMTMvRG9jdW1lbnRhdGlvbi9hdXRvY29uZi50eHQKLS0t IGxpbnV4Lm9yZy9Eb2N1bWVudGF0aW9uL2F1dG9jb25mLnR4dAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42LjEz L0RvY3VtZW50YXRpb24vYXV0b2NvbmYudHh0CTIwMDUtMDktMTUgMTU6MzY6 MzUuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsMTYxIEBACisKK0NvbnN0 aXN0OgorKioqKioqKioKKworVGhlIExpbnV4IEF1dG8tQ29uZmlnIGNvbnNp c3Qgb2YgRmlsZXMsIGF1dG9fY29uZi5jLCBhbiB1cGdyYWRlZCBjb25mLmMg YW5kIE1ha2VmaWxlLCBhIGRpcmVjdG9yeQorKHJ1bGVzKSB3aGljaCBjb250 YWlucyBhIHJ1bGVzX2xpc3QgYW5kIHRoZSBzY3JpcHRzLCBhbmQgYSB4bWxw YXJzZXIgd3JpdHRlbiBieSBUaW0gSG9ja2luLgorCisKKworCitIb3cgZG9l cyBpdCB3b3JrOgorKioqKioqKioqKioqKioqKioKKworVGhlIHRyaWNrIG9m IGFsbCBpcyBhIGZyYW13b3JraW5nIHByb2dyYW0sIHRoYXQgbWVhbnMgYWRk aW5nIGJpbmFyaWVzIG9yIHNjcmlwdHMgd2l0aG91dCAKK3RvdWNoaW5nIHRo ZSByZWFsIHByb2dyYW0uIFRoZSBwcm9ncmFtIHN0YXJ0cyBsaWtlIGlmIHlv dSBhcmUgc3RhcnRpbmcgYSAgbWFrZSBjb25maWcsIGJ1dCBhdCB0aGF0IHBv aW50IAord2hlcmUgaXQgd2FudHMgYW4gaW5wdXQgZnJvbSB5b3UsIHRoZSBm dW5jdGlvbiBhdXRvX2NvbmYgZ2V0cyBjYWxsZWQgd2l0aCB0aGF0IG9wdGlv bi1xdWVzdGlvbgorYXMgYSBwYXJhbWV0ZXIuIFdlIGFyZSBjb21wYXJpbmcg dGhpcyBvcHRpb24gd2l0aCBpbiBhIGxpc3QgbWFudWFsLXdyaXR0ZW4KK0tj b25maWcgb3B0aW9uLiBFYWNoIG9mIHRob3NlIG9wdGlvbnMgaW4gdGhlIGxp c3QgaGFzIGl0cyBvd24gc2NyaXB0IHdoaWNoIHdpbGwgYmUgCitleGVjdXRl ZCBpbiBwYXJhbGxlbCBieSBhY2NvcmRhbmNlLiBGb3IgcHV0dGluZyBhbiBv cHRpb24gaW4gdGhlIHJ1bGVzX2xpc3QgeW91IG5lZWQKK3RoZSBPcHRpb24g YW5kIGEgc2NyaXB0IHRoYXQgZG9lcyB0aGUgd29yayBmb3IgdGhlIG9wdGlv biBhbmQgdGhlbiBnaXZlcyBhIHZhbHVlCit0byB0aGUgc3RvdXQuIFRoaXMg dmFsdWUgd2lsbCBiZSByZWRpcmVjdGVkIHRocm91Z2ggYSBwaXBlIHRvIG91 ciBtYWluIHByb2dyYW0gd2hpY2ggd2lsbAord3JpdGUgdGhlIGNvbmZpZy1u YW1lIGZvciB0aGUgb3B0aW9uIGludG8gdGhlIC5jb25maWcgZmlsZS4gCisK KworCisKK0hvdyB0byBhZGQgYSBydWxlOgorKioqKioqKioqKioqKioqKioq KgorCisKK1RoZSBiYXNpYyBvZiB0aGUgc2NyaXB0IGlzIHRoYXQgaXQgbXVz dCBnaXZlIGFuIGFuc3dlciB0byBzdGRvdXQuIAorU2luY2UgdGhlIHJ1bGVz X2xpc3QgaXMgd3JpdHRlbiBpbiB4bWwgdGhlcmUgYXJlIHNvbWUgY29uZGl0 aW9ucyBmb3IgYWRkaW5nIHJ1bGVzLgorVG8gYWRkIGEgcnVsZSAoZm9yIHRo ZSBzcGVjaWZpZWQgb3B0aW9uKSwgeW91IGhhdmUgdG8ga25vdyBmaXJzdCB0 aGUgb3B0aW9uIG5hbWUKK2FuZCB0aGUgbmFtZSBvZiB0aGUgbWVudSB0aGF0 IGNvbnRhaW5zIGl0LiAKK1RoZSBlYXNpZXN0IHdheSwgdG8gZG8gdGhpcywg aXMgdG8gcnVuIG1ha2UgbWVudWNvbmZpZywgYW5kIHNlZSBpbiB3aGljaCBt ZW51IG9yIHN1Ym1lbnUgeW91ciBvcHRpb24gYmVsb25ncyB0by4gCitFYWNo IG9mIHRob3NlIGhhcyBpdHMgb3duIFhNTC1UYWc6CisKKworPHJ1bGVzPjog YmVnaW5uZ2luZyBvZiB0aGUgbGlzdC4KKworPG1lbnUgbmFtZT0ibWVudSBu YW1lIiBtdXN0X2hhdmU9IiBudW1iZXIgIj46CisJICAgIEhhcyB0aGUgYXR0 cmlidXRlICJuYW1lIiBhbmQgIm11c3RfaGF2ZSIuIEluIGF0dHJpYnV0ZSAi bmFtZSIgdGhlIG5hbWUgb2YgdGhlIG1lbnUgc2hvdWxkIGJlIHdyaXR0ZW4u CisJICAgIEF0dHJpYnV0ZSAibXVzdF9oYXZlIiBzaG93cyB0aGUgbWluLiBu dW1iZXIgb2Ygb3B0aW9uLCB0aGF0IGluIGEgbWVudSBzaG91bGQgYmUgY2hv b3NlbiBmb3IgYSBwcm9wZXIgS2VybmVsLiAKKwkgICAgPG1lbnU+IGNhbiBj b250YWlucyBvcHRpb25zIG9yIHN1Ym1lbnVzKHRoZSBzYW1lIGFzIDxtZW51 PikuIAorCis8b3B0aW9uIG5hbWU9Im9wdGlvbiBuYW1lIj4gcnVsZSA8L29w dGlvbj4KKyAJICAgIEluIHRoZSBhdHRyaWJ1dCBuYW1lIHRoZSBvcHRpb24g bmFtZSBzaG91bGQgYmUgd3JpdHRlbi4gQW5kIHRoZSBjb250YWluIG9mIHRo ZSBPcHRpb24gVGFnIAorCSAgICBpcyB0aGUgbmFtZSBvZiBydWxlIHRoYXQg YmVsb25ncyB0byB0aGF0IG9wdGlvbi4KKworZXhhbXBsZToKKworPHJ1bGVz PgorICAgICAgPG1lbnUgbmFtZT0iTmV0d29ya2luZyBzdXBwb3J0IiBtdXN0 X2hhdmU9IjEiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJOZXR3b3JraW5n IHN1cHBvcnQiPmVncmVwMS5wbSAiTmV0d29ya3xFdGhlcm5ldCI8L29wdGlv bj4KKyAgICAgICAgIDxtZW51IG5hbWU9Ik5ldHdvcmtpbmcgbWVudXMiPgor ICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJQYWNrZXQgc29ja2V0Ij55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IlBhY2tl dCBzb2NrZXQ6IG1tYXBwZWQgSU8iPnllczEucG08L29wdGlvbj4KKwk8L21l bnU+CisgICAgICA8L21lbnU+Cis8L3J1bGVzPgorCisKK0hvdyB0byBtYWtl IGEgcnVsZQorKioqKioqKioqKioqKioqKioqKgorCitBIHJ1bGUgY2FuIGJl IGVpdGhlciBhIHNjcmlwdCBvciBiaW5hcnkgb3IuLi4gVGhlIG1haW4gam9i IGlzIHRvIAorZ2l2ZSBvdXQgYW4gYW5zd2VyIHRvIHN0b3V0IGZvciB0aGUg YWN0dWFsbHkgb3B0aW9uLXF1ZXN0aW9uLCBpdCBkb2Vzbid0IG1hdHRlcgor aG93LgorIAorV2UgaGF2ZSB0aHJlZSB0eXBlcyBvZiBhbnN3ZXI6CisKK3N5 bS1hbnN3ZXJzOiAgICAgZWl0aGVyIHksIG4sIG0gb3IgXG4uCisKK3N0cmlu Zy1hbnN3ZXI6ICAgY2FuIGJlIG1heGltYWwgMTI4IGNoYXJhY3RlcnMKKwor b3B0aW9uLWFuc3dlcjogCSBCeSB0aGUgbWFudWFsIGNvbmZpZ3VyYXRpb24g bm9ybWFsbHkgeW91IGhhdmUgdG8gdHlwZSBhbiBudW1iZXIKKwkJIGJ1dCBh IHJ1bGUgZm9yIGFuIG9wdGlvbiBzaG91bGQgZ2l2ZSBvdXQgYW4geSwgaWYg aXQgd2FudCB0byBiZSBjaG9vc2VuLiAKKwkJCisKKworCisKK0ZvciBleGFt cGxlOiAgICB0aGUgb3B0aW9uIGlzICJOZXR3b3JraW5nIFN1cHBvcnQiCisJ CXRoZSBwcm9ncmFtIGxvb2tzIGluIHRoZSBvdXIgbGlzdCAod2hpY2ggaXMg Y2FsbGVkIHJ1bGVzX2xpc3QpCisJCXRvIGZpbmQgdGhlICJOZXR3b3JraW5n IFN1cHBvcnQiIGFuZCBpZiB0aGlzIG9wdGlvbiBpcyBpbiB0aGVyZSwKKwkJ YSBjZXJ0YWluIHNjcmlwdCAod2hpY2ggd2UgY2FsbCBpdCBhIHJ1bGUpICB3 aWxsIGJlIGV4ZWN1dGVkLiAKKwkJSW4gdGhpcyBleGFtcGxlIHRoZSBzY3Jp cHQgbmFtZSBpcyBod19ncmVwMS5wbSB3aGljaCAKKwkJcmVhZHMgYSBnaXZl biBQYXJhbWV0ZXIgYW5kIHNlYXJjaGVzIGZvciB0aGlzIFBhcmFtZXRlciwK KwkJbHNwY2kgYW5kIGRtZXNnIHdpdGggdGhlIGhlbHAgb2YgZ3JlcC4gSW4g dGhpcyBDYXNlIHRoZSBQYXJhbWV0ZXIgCisJCXdpbGwgYmUgIkV0aGVybmV0 fE5ldHdvcmsiLgorCQkKKwkJaHdfZ3JlcDEucG06CisKKwkJJGZvdW5kPScn OworCQkkZm91bmQ9YGxzcGNpIHwgZ3JlcCAiQEFSR1YiYDsKKwkJaWYoJGZv dW5kIG5lICcnKSB7CisgICAgICAgIAkJcHJpbnQoInlcbiIpOworCQl9CisJ CWVsc2UgeworICAgICAgICAJCSRmb3VuZD1gZ3JlcCAtRSAiQEFSR1YiIC92 YXIvbG9nL2RtZXNnIGA7CisgICAgICAgIAkJaWYoJGZvdW5kIG5lICcnKXsK KyAgICAgICAgICAgICAgICAJCXByaW50KCJ5XG4iKTsKKyAgICAgICAgCQl9 CisgICAgICAgIAkJZWxzZSB7CisJCSAgICAgICAgICAgICAgICBwcmludCgi blxuIik7CisgICAgICAgIAkJfQorCQl9CisJCTE7CisKKwkJCisJCQkgICAg CisKKwkJCisJCVRoaXMgc2NyaXB0IGNoZWNrcyBpZiB0aGVyZSBpcyBhbiBF dGhlcm5ldCBvciAKKwkJYSBOZXR3b3JrIGNhcmQgIG9uIHRoZSB0YXJnZXQg U3lzdGVtLgorCQlJZiBpdCBpcyB0cnVlLCBpdCBnaXZlcyAgaW4gdGhpcyBj YXNlIGEgJ3knIHRvIHN0ZG91dC4gCisJCUFuZCBmb3Igc29tZSBvcHRpb25z IHRoZXJlIGNhbid0IGJlIGFueSBzY3JpcHQtcnVsZXMsIGZvciBpbnN0YW5j ZSBzb2Z0d2FyZSBzdWNoIGFzIEZUUCBvciBUQ1BJUCBldGMuLi4sCisJCXRo b3NlIHF1ZXN0aW9uIGVpdGhlciBnZXQgYW5zd2VyZWQgYXMgJ2J1aWxkIGlu JyBvciBhcyAnbW9kdWxlJy4KKwkJISEgdGhlIGFuc3dlcnMgbXVzdCBhbHdh eXMgaGF2ZSBhICdcbicgYXQgdGhlIGVuZAorCitUaGUgcnVsZS1iaW5hcnkg c2hvdWxkIGJlIGNvcGllZCBpbiB0aGUgZGlyZWN0b3J5IDxLRVJORUxWRVJT SU9OPi9zY3JpcHRzL2tjb25maWcvcnVsZXMvCisKKworCitNZXNzYWdlczoK KyoqKioqKioqKioqKioqKioqKioKKworV2hlbiB0aGUgYW1vdW50IG9mIG5l ZWRlZCBPcHRpb25zIGluIHNvbWUgbWVudXMgYXJlIG5vdCBjaG9vc2VuLAor bWVzc2FnZXMgd2lsbCBiZSBnaXZlbiBvdXQgaW4gdGhlIHN0ZG91dCwgYXQg dGhlIGVuZCBvZiB0aGUgY29uZmlndXJhdGlvbi4KK0NvbnRhaW5pZyBOYW1l IG9mIHRoZSBtZW51cy4KKworVGhpcyBjYW4gYmUgaGFwcGVuOgorCisxLiBp ZiBmb3Igc29tZSBvcHRpb25zIHRoZXkgcnVsZXMgYXJlIG5vdCBhcHBsaWVk LiBUaGUgcmVhc29uIGZvciB0aGF0IGlzIGZvciBzb21lIEhhcmR3YXJlIE9w dGlvbiB0aGVyZSBpcyBubyBydWxlLgorCisyLiBpZiB5b3VyIFN5c3RlbSBk b2Vzbid0IHN1cHBvcnQgdGhlIEhhcmR3YXJlIGkuZS4geW91IGRvbid0IGhh dmUgYW4gZXRoZXJuZXQgQ2FyZC4KKworSW4gdGhpcyBjYXNlIGVpdGhlciB5 b3VyIHVwZ3JhZGUgdGhlIGF1dG9jb25maWcgd2l0aCBydWxlcyBvciB5b3Vy IGNvbnRhY3QgbWUuIAorCitJZiB5b3UgYXJlIGdldHRpbmcgbWVzc2FnZXMg cGxlYXNlIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoKKwor MS4gYSBjb3B5IG9mIHlvdXIgbHNwY2ksIC9wcm9jL2NwdWluZm8gYW5kIC92 YXIvbG9nL2RtZXNnCisKKzIuIGEgY29weSBvZiB5b3VyIG1lc3NhZ2VzCisK KworCitUTyBETzoKKyoqKioqKioqKioqKioqKioqKioKKworMS4gVGhlIEZy YW1ld29yayBoYXMgdG8gYmUgZXh0ZW5kIGZvciB0aGUgU3lzdGVtcyB0aGF0 IGFyZW4ndCBzdXBwb3J0ZWQuCisKKzIgLkEgd2F5IHRvIGFzayBmb3IgdGhl IEhhcmR3YXJlLURldmljZXMgZGlyZWN0bHkgZnJvbSB0aGUgSS9PLgorIAor CitDb250YWN0OgorKioqKioqKioqKioqKioqKioqKgorCitTdWdnZXN0aW9u IGFuZCBjb21tZW50cyBhcmUgd2VsY29tZS4gCisKK0VtYWlsOiBBaG1hZCBS ZXphIENoZXJhZ2hpIDxhX3JfY2hlcmFnaGlAeWFob28uY29tPgpkaWZmIC11 ck4gbGludXgub3JnL3NjcmlwdHMva2NvbmZpZy9hdXRvX2NvbmYuYyBsaW51 eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL2F1dG9fY29uZi5jCi0tLSBsaW51 eC5vcmcvc2NyaXB0cy9rY29uZmlnL2F1dG9fY29uZi5jCTE5NzAtMDEtMDEg MDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKyBsaW51eC0yLjYuMTMvc2Ny aXB0cy9rY29uZmlnL2F1dG9fY29uZi5jCTIwMDUtMDktMTUgMTU6Mzk6NDAu MDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsMzAyIEBACisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoJCQkJCQkJCQkJ ICAgICAgKgorKglhdXRvX2NvbmYuYzogIEZyYW1ld29yayBmb3IgYXV0b2dl bmVyYXRpb24gYSBLZXJuZWwgQ29uZmlndXJhdGlvbgkgICAgICAqIAorKgkJ CQkJCQkJCSAgIAkgICAgICAqCisqCVRoaXMgcHJvamVjdCB3YXMgZG9uZSBp biB0aGUgTmllZGVycmhlaW4gVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVu Y2VzCSAgICAgICogIAorKiAgCQkJCQkJCQkJCSAgICAgICoKKyoJQ29weXJp Z2h0IChDKSAyMDA1ICBBaG1hZCBSZXphIENoZXJhZ2hpICA8YV9yX2NoZXJh Z2hpQHlhaG9vLmNvbT4gICAJICAgICAgKgorKglUaGlzIGlzIGZyZWUgc29m dHdhcmUsIHNlZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAyIGZvciBk ZXRhaWxzLgkgICAgICAqCisqCQkJCQkJCQkJCSAgICAgICoKKyoJCQkJCQkJ CQkJICAgICAgKgorKglUaGlzIEZyYW1ld29yayBhdXRvZ2VuZXJhdGUgYSBD b25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBnaXZlbiBydWxlcwkgICAgICAq CQorKglJdCBkb2VzIG5vdCBndWFyYW50eSB0aGF0IGEgS2VybmVsIGNhbiB3 b3JrIGFmdGVyIHRoaXMgZ2VuZXJhdGlvbiBzaW5jZQkgICAgICAqCisqCWl0 IGlzIGluIGhpcyB0ZXN0LXN0YWdlLgkJCQkJCSAgICAgICoKKyoJCQkJCQkJ CQkJICAgICAgKgorKgkJCQkJCQkJCQkgICAgICAqCisqCVJlcG9ydCBlcnJv cnMsIGJ1Z3MsIGFkZGl0aW9ucywgd2lzaGVzIGFuZCBjb21tZW50cyB0byBt ZToJCSAgICAgICogCQorKgk8YV9yX2NoZXJhZ2hpQHlhaG9vLmNvbT4JCQkJ CQkgICAgICAqCisqCQkJCQkJCQkJCSAgICAgICoKKyoJRm9yIGZ1dGhlciBp bmZvcm1hdGlvbiBwbGVhc2UgcmVmZXIgdG8gdGhlIFJFQURNRS50eHQJCQkg ICAgICAqCisqICAJCQkJCQkJCQkJICAgICAgKgorKiAgICAJCQkJCQkJCQkJ ICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRp by5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5o PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3dhaXQuaD4K KworI2luY2x1ZGUgInhtbHBhcnNlci5oIgorCitzdGF0aWMgc3RydWN0IHht bF9lbGVtZW50ICpyZXQ7CitzaWduZWQgY2hhciBhbnN3ZXJidWZbMTI4XTsg IAoraW50IGVycm9yX2ZsYWcgPSAwOyAgCisKK3N0YXRpYyBpbnQgcmVhZGlu Z194bWxfdHJlZShzdHJ1Y3QgeG1sX2VsZW1lbnQqIGVsZW1lbnQsIGNvbnN0 IGNoYXIgKiBvcHRpb24pOworCitlbnVtIHsKKwlyZWFkX3RyZWUsCisJY2hl Y2tfdHJlZQorfSB0cmVlX21vZGUgPSByZWFkX3RyZWU7CisKKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisgKiAJCQlleGVjX3J1bGUoKQkJ CQkJKgorICogCQkJCQkJCQkJKgorICogCWNhbGxzIGEgY2hpbGQgcHJvY2Vz cywgdGhhdCByZWRpcmVjdCBzdG91dCB0byB0aGUgcGlwZQkJKgorICogCWFu ZCBleGVjdXRlIHRoZSBydWxlLXNjcmlwdCB0aHJvdWdodCB0aGUgVW5peCBQ cm9jZXNzCQkqCisgKiAJc3lzdGVtKCkuCQkJCQkJCSoKKyAqIAlUaGUgcGFy ZW50IHJlYWRzIGZyb20gdGhlIHBpcGUsIGFuZCBjb3BpZWQgaW4gdGhlIHZh cmlhYmxlCSoKKyAqIAlhbnN3ZXIuCQkJCQkJCQkqCisgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgZXhlY19ydWxlKGNvbnN0 IGNoYXIqIHJ1bGUpCit7CisJaW50IHBkWzJdOworCXBpZF90IGNoaWxkcGlk OworCWNoYXIgZGlyZWN0b3J5WzEyOF07CisJCisgCS8qIAorCSAqIHJlYWRp bmcgdGhlIGRpcmN0b3J5IHdoZXJlIHRoZSBydWxlcyBhcmUgCisJICovCisJ c3RybmNweShkaXJlY3RvcnksInNjcmlwdHMva2NvbmZpZy9ydWxlcy8iLCAx MjgpOworCQorCXN0cmNhdChkaXJlY3RvcnksIHJ1bGUpOyAgICAKKwkKKwlw aXBlKHBkKTsKKwkKKwlpZiAoKCBjaGlsZHBpZCA9IGZvcmsoKSApID09IDAp IHsgCisJCWR1cDIocGRbMV0sIFNURE9VVF9GSUxFTk8pOworCisJCWNsb3Nl KHBkWzBdKTsJCSAgICAgCisJCWNsb3NlKHBkWzFdKTsJCSAgCisJIAkgLyog CisJCSAgKiAgY2FsbGluZyB0aGUgcnVsZSAKKwkJICAqLyAKKwkJc3lzdGVt KGRpcmVjdG9yeSk7CisJCWV4aXQoMCk7CisJfQorCWNsb3NlKHBkWzFdKTsK KwkvKgorCSAqICB3YWl0aW5nIGZvciB0aGUgY2hpbGQgcHJvY2VzcyB0byBj b21wbGV0ZQorCSAqLyAgCisJIHdoaWxlICggd2FpdCAoKGludCAqKSAwKSAh PSBjaGlsZHBpZCkKKwkJCSBjb250aW51ZTsgCQkKKwkvKiAKKwkgKiByZWFk aW5nIGZyb20gdGhlIHBpcGUsIHRoYXQgaXMgdGhlIGFuc3dlciBmcm9tIHRo ZSBydWxlCisJICovCisJcmVhZCggcGRbMF0sIGFuc3dlcmJ1ZiwgMTI4ICk7 CisJY2xvc2UocGRbMF0pOworCXJldHVybiAwOworfQorCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKyogCQkJZ2V0X3J1bGUoKQkJCQkJKgor KiAJCQkJCQkJCQkqCisqIAljb21wYXJlcyB0aGUgb3B0aW9uIGZyb20gdGhl IHJ1bGVzX2xpc3Qgd2l0aCB0aGUgYWN0dWFsIAkqCisqIAlvcHRpb24sIGlm IHRoZXkgYXJlIHRoZSBzYW1lLCB0aGUgcnVsZSB0aGF0IGlzIGNvbnRhaW5p bmcJKgorKiAJaW50IHRoZSBsaXN0IHdpbGwgYmUgcmVhZCBhbmQgZ2l2ZSB0 byB0aGUgZnVuY3Rpb24gZXhlY19ydWxlCSoKKyogCQkJCQkJCQkJKgkJCisq IAlBZnRlciB0aGF0LCBpdCB3aWxsIGJlIGNoZWNrZWQgaWYgdGhlIGFuc3dl ciBpcyBwb3NpdGl2ZSBhbmQgaXQJKgorKiAJc28gYW5kIGlmIHRoZSBtZW51 IGhhcyBhIHByaW9yaXR5IGZvciBhcmlzaW5nIHRoZSBtdXN0X2hhdmUJKgor KiAJY291bnRlci4JCQkJCQkJKgorKiAJCQkJCQkJCQkqCisqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludCBnZXRfcnVsZSAoc3Ry dWN0IHhtbF9lbGVtZW50KiBjaGlsZCwgY29uc3QgY2hhciAqIG9wdGlvbikK K3sKKwlzdHJ1Y3QgeG1sX3Byb3AgKmF0dHJpYnV0ZTsKKwljaGFyIGNvbnRl bnRbMTI4XTsKKwlhdHRyaWJ1dGUgPSBOVUxMOworCQorCWF0dHJpYnV0ZSA9 IGdldF9uZXh0X2F0dHJpYnV0ZShjaGlsZCwgYXR0cmlidXRlKTsKKwkKKwlp ZiAoYXR0cmlidXRlPT1OVUxMKSB7CisJCXJldHVybiAwOworCX0JCisJCisJ aWYgKHN0cmNtcChnZXRfYXR0cmlidXRlX25hbWUoYXR0cmlidXRlKSwibmFt ZSIpICE9IDApIHsKKwkJcHJpbnRmKCJlcnJvciBpbiBydWxlc19saXN0IGJ5 IFRhZyA8b3B0aW9uPlxuIik7CisJCWV4aXQoMSk7CisJfQkKKwkvKgorCSog Y29tcGFyaW5nIGFjdHVhbCBvcHRpb24gd2l0aCBhdHRyaWJ1dGUKKwkqLwor CWlmICgoIHN0cmNtcChnZXRfYXR0cmlidXRlX3ZhbHVlKGF0dHJpYnV0ZSks b3B0aW9uKSkgIT0gMCkgeworCQlyZXR1cm4gMDsKKwl9CisJCisJLyoKKwkq IHJlYWRpbmcgaW4gdGhlIHJ1bGUoc2NyaXB0LSktbmFtZWkgZnJvbSBsaXN0 CisJKi8KKwlzdHJjcHkoY29udGVudCwgZ2V0X2VsZW1lbnRfY29udGVudChj aGlsZCkpOworCS8qCisJKiBleGVjdXRpbmcgdGhlIHNjcmlwdAorCSovCisJ ZXhlY19ydWxlKGNvbnRlbnQpOworCWlmIChjaGlsZC0+cGFyZW50LT5tX2hf cHJpb3IgPT0gMSkgeyAKKwkJLyoKKwkJKiBpZiBhbnN3ZXIgaXMgcG9zaXRp dmUKKwkJKi8KKwkJaWYoYW5zd2VyYnVmWzBdID09ICd5JyAmJiBhbnN3ZXJi dWZbMV0gPT0gJ1xuJykgeworCQkJLyogCisJCQkqIHRoZW4gYXJpc2UgdGhl IG11c3RfaGF2ZQorCQkJKiBjb3VudGVyCisJCQkqLworCQkJY2hpbGQtPnBh cmVudC0+bV9oX2NudCsrOworCQl9CisJfQorCXJldHVybiAwOwkKK30KKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgCQkJaW5p dF9tdXN0X2hhdmUoKQkJCQkqCisqIAkJCQkJCQkJCSoKKyogCWlmIHRoZXJl IGlzIGFueSBtdXN0X2hhdmUgYXR0cmlidXRlIGluIHRoZSA8bWVudT4gdGFn IAkJKgorKiAJaXQgd2lsbCBiZSBpbml0aWFsaXNlZCwgaGVyZS4JCQkJCSoK KyogCQkJCQkJCQkJKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK KworCitzdGF0aWMgaW50IGluaXRfbXVzdF9oYXZlKHN0cnVjdCB4bWxfZWxl bWVudCogY2hpbGQpeworCisJc3RydWN0IHhtbF9wcm9wICphdHRyaWJ1dGU7 CQorCWF0dHJpYnV0ZSA9IE5VTEw7CisJd2hpbGUgKCAoYXR0cmlidXRlID0g Z2V0X25leHRfYXR0cmlidXRlKGNoaWxkLCBhdHRyaWJ1dGUpKSkgeworCQlp ZiAoc3RyY21wKGdldF9hdHRyaWJ1dGVfbmFtZShhdHRyaWJ1dGUpLCJtdXN0 X2hhdmUiKSA9PSAwKSB7CisJCQlpZiAoIGNoaWxkLT5tX2hfcHJpb3IgIT0g MSkgeyAKKwkJCQljaGlsZC0+bV9oX3ByaW9yID0gMTsKKwkJCQlpZiAoYXR0 cmlidXRlLT5wcmV2KSB7CisJCQkJCXN0cm5jcHkoY2hpbGQtPm9wdGlvbl9u YW1lLAorCQkJCQlnZXRfYXR0cmlidXRlX3ZhbHVlKGF0dHJpYnV0ZS0+cHJl dikKKwkJCQkJLDEyOCk7CisJCQkJfSBlbHNlIHsKKwkJCQkJcHJpbnRmKCJl cnJvciBpbiIKKwkJCQkJCSJydWxlc19saXN0IGJ5IFRhZyA8bWVudT5cbiIp OworCQkJCQlleGl0KDEpOworCQkJCX0KKwkJCQljaGlsZC0+bV9oX3ZhbHVl ID0gCisJCQkJCWF0b2koZ2V0X2F0dHJpYnV0ZV92YWx1ZShhdHRyaWJ1dGUp KTsKKwkJCQljaGlsZC0+bV9oX2NudCA9IDA7CisJCQl9CisJCX0KKwl9CisJ cmV0dXJuIDA7CQkJCQorfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyogICAgICAJCQlyZWFkaW5nX3htbF90YWcoKQkJCQkqCisqIAkJ CQkJCQkJCSoKKyogCVRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIG5lZWRlZCB4 bWwgdGFncywgdGhleSBhcmUgdGhlIDxvcHRpb24+CSoKKyogCWFuZCA8bWVu dT4gdGFnLgkJCQkJCSAJKgorKiAJCQkJCQkJCQkqCisqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKworCitzdGF0aWMgaW50IHJlYWRpbmdfeG1sX3Rh ZyhzdHJ1Y3QgeG1sX2VsZW1lbnQqIGNoaWxkLCAgY29uc3QgY2hhciAqIG9w dGlvbikKK3sKKwlzd2l0Y2ggKHRyZWVfbW9kZSkgeworCWNhc2UgcmVhZF90 cmVlOgorCQlpZiAoc3RyY21wKGdldF9lbGVtZW50X25hbWUoY2hpbGQpLCAi bWVudSIpID09IDApIHsKKwkJCWluaXRfbXVzdF9oYXZlKGNoaWxkKTsKKwkJ fSBlbHNlIGlmICgoc3RyY21wKGdldF9lbGVtZW50X25hbWUoY2hpbGQpLCAi b3B0aW9uIikpID09IDApIHsKKwkJCWdldF9ydWxlKGNoaWxkLCBvcHRpb24p OworCQl9CQorCQlicmVhazsKKwkJCisJY2FzZSBjaGVja190cmVlOgorCQlp ZiAoc3RyY21wKGdldF9lbGVtZW50X25hbWUoY2hpbGQpLCAibWVudSIpID09 IDApIHsKKwkJCWlmIChjaGlsZC0+bV9oX3ByaW9yPT0wKSB7CisJCQkJcmV0 dXJuIDA7CisJCQl9CisJCQlpZiAoKGNoaWxkLT5tX2hfY250KSA8IChjaGls ZC0+bV9oX3ZhbHVlKSApIHsKKwkJCQllcnJvcl9mbGFnID0gMTsKKwkJCQlw cmludGYoIlxuXG4qKioqKioqKioqKioqKioqKioqKiplcnJvcioqIgorCQkJ CQkiKioqKioqKioqKioqKioqKioqKlxuIik7CisJCQkJcHJpbnRmKCJmcm9t ICVpIG5lZWRlZCBvcHRpb25zIGFyZSAlaSIgCisJCQkJCSIgY2hvb3NlbiBp biBtZW51IFwiICVzIFwiXG4iCisJCQkJLCBjaGlsZC0+bV9oX3ZhbHVlLGNo aWxkLT5tX2hfY250LAorCQkJCWNoaWxkLT5vcHRpb25fbmFtZSk7CisJCQl9 CQorCQl9CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK30KKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgCQkJcmVhZGluZ194 bWxfdHJlZSgpCQkJCSoKKyogCQkJCQkJCQkJKgorKiAJdGhlIHhtbCBsaXN0 IGlzIGNvcGllZCBpbiBzdHJ1Y3QgdmFyaWFibGUsIHdoaWNoIGNvbmlzdCBv ZgkqIAorKiAJY2hpbGRzIGFuZCBub2Rlcy4JCQkJCQkqCisqIAlUaGUgcmVh ZGluZyBvZiB0aGlzIHZhcmlhYmxlIHdpbGwgYmUgZG9uZSBieSByZWN1cnNp dmUJCSoKKyogCSBjYWxsaW5nIHRoZSByYWVkaW5nX3htbF90cmVlKCkJCQkJ CSoKKyogCQkJCQkJCQkJKgorKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisKKworaW50CityZWFkaW5nX3htbF90cmVlKHN0cnVjdCB4bWxfZWxlbWVu dCogZWxlbWVudCwgIGNvbnN0IGNoYXIgKiBvcHRpb24pCit7CisJc3RydWN0 IHhtbF9lbGVtZW50ICpjaGlsZDsJCisJY2hpbGQgPSBOVUxMOworCS8qCisJ ICogQXNraW5nIGZvciBhIGNoaWxkCisJICovCisJaWYoKGNoaWxkID0gZ2V0 X2ZpcnN0X2NoaWxkKGVsZW1lbnQpKSkgeworCQlyZWFkaW5nX3htbF90YWco Y2hpbGQsIG9wdGlvbik7CisJCXJlYWRpbmdfeG1sX3RyZWUoY2hpbGQsIG9w dGlvbik7CisJfQorCisJaWYoIChjaGlsZCA9IGdldF9uZXh0X25vZGUoZWxl bWVudCkpICkgeworCQlyZWFkaW5nX3htbF90YWcoY2hpbGQsIG9wdGlvbik7 CisJCXJlYWRpbmdfeG1sX3RyZWUoY2hpbGQsIG9wdGlvbik7CisJfQorCXJl dHVybiAwOworfQorCisKK2ludAorYXV0b19jb25mKGNoYXIgKm9wdGlvbiwg IGNoYXIgYW5zd2VyWzEyOF0pCit7CisJc3RhdGljIGludCBmbGFnID0gMDsK KwlzdHJ1Y3QgeG1sX2J1ZmZlciBidWZmZXI7CisJdHJlZV9tb2RlID0gcmVh ZF90cmVlOworCWFuc3dlcmJ1ZlswXSA9ICdcbic7CisJYW5zd2VyYnVmWzFd ID0gMDsKKwlhbnN3ZXJidWZbMl0gPSAwOworCisJaWYgKGZsYWcgPT0gMCkg eworCQlidWZmZXIgPSBsb2FkX3htbF9maWxlKCJzY3JpcHRzL2tjb25maWcv cnVsZXMvcnVsZXNfbGlzdC54bWwiKTsKKwkJaWYgKCB4bWxfcGFyc2VfYnVm ZmVyKGJ1ZmZlciwgJnJldCkgKSB7CisJCQlwcmludGYoImVycm9yIGJ5IHBh cnNpbmcgXG4iKTsKKwkJfQorCQlmcmVlKGJ1ZmZlci50ZXh0KTsKKwkJZmxh ZyA9IDE7CisJfQorCXJlYWRpbmdfeG1sX3RyZWUocmV0LCAgb3B0aW9uKTsK KwlzdHJuY3B5KGFuc3dlcixhbnN3ZXJidWYsMTI4KTsKKwlwcmludGYoIiVz IiwgYW5zd2VyKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBtdXN0X2hhdmUo dm9pZCkKK3sKKwl0cmVlX21vZGUgPSBjaGVja190cmVlOworCXJlYWRpbmdf eG1sX3RyZWUocmV0LCBOVUxMKTsKKwlpZihlcnJvcl9mbGFnKQorCQlwcmlu dGYoIlxuSWYgbWVzc2FnZXMgYXJlIHNob3duIGFib3ZlIGl0IGlzIG5vdCBn dWFyYW50aWVkXG4iCisJCQkidGhhdCB0aGUgS2VybmVsIHdpbGwgIHdvcmsg cHJvcGVybHkgYWZ0ZXIgaW5zdGFsbGluZ1xuIgorCQkJIm9yIHlvdXIgU3lz dGVtIGRvZXMndCBzdXBwb3J0IHRoZSBhYm92ZSBIV1xuICIKKwkJCSJmb3Ig ZnVydGhlciBoZWxwIHBsZWFzZSByZWZlciB0byB0aGUgRG9jdW1lbnRhdGlv bi9hdXRvY29uZi50eHRcbiIpOworfQpkaWZmIC11ck4gbGludXgub3JnL3Nj cmlwdHMva2NvbmZpZy9jb25mLmMgbGludXgtMi42LjEzL3NjcmlwdHMva2Nv bmZpZy9jb25mLmMKLS0tIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvY29u Zi5jCTIwMDUtMDgtMjkgMDE6NDE6MDEuMDAwMDAwMDAwICswMjAwCisrKyBs aW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL2NvbmYuYwkyMDA1LTA5LTA2 IDExOjA3OjQyLjAwMDAwMDAwMCArMDIwMApAQCAtMTIsNyArMTIsOCBAQAog CiAjZGVmaW5lIExLQ19ESVJFQ1RfTElOSwogI2luY2x1ZGUgImxrYy5oIgot CitpbnQgYXV0b19jb25mKGNvbnN0IGNoYXIgKm9wdGlvbiwgY2hhciBsaW5l WzEyOF0pOwordm9pZCBtdXN0X2hhdmUodm9pZCk7CiBzdGF0aWMgdm9pZCBj b25mKHN0cnVjdCBtZW51ICptZW51KTsKIHN0YXRpYyB2b2lkIGNoZWNrX2Nv bmYoc3RydWN0IG1lbnUgKm1lbnUpOwogCkBAIC0yNCwyMSArMjUsMjIgQEAK IAlzZXRfeWVzLAogCXNldF9tb2QsCiAJc2V0X25vLAotCXNldF9yYW5kb20K KwlzZXRfcmFuZG9tLAorCXNldF9hdXRvCiB9IGlucHV0X21vZGUgPSBhc2tf YWxsOwogY2hhciAqZGVmY29uZmlnX2ZpbGU7CiAKIHN0YXRpYyBpbnQgaW5k ZW50ID0gMTsKIHN0YXRpYyBpbnQgdmFsaWRfc3RkaW4gPSAxOwogc3RhdGlj IGludCBjb25mX2NudDsKLXN0YXRpYyBjaGFyIGxpbmVbMTI4XTsKK3N0YXRp YyBzaWduZWQgY2hhciBsaW5lWzEyOF07CiBzdGF0aWMgc3RydWN0IG1lbnUg KnJvb3RFbnRyeTsKIAogc3RhdGljIGNoYXIgbm9oZWxwX3RleHRbXSA9IE5f KCJTb3JyeSwgbm8gaGVscCBhdmFpbGFibGUgZm9yIHRoaXMgb3B0aW9uIHll dC5cbiIpOwogCi1zdGF0aWMgdm9pZCBzdHJpcChjaGFyICpzdHIpCitzdGF0 aWMgdm9pZCBzdHJpcChzaWduZWQgY2hhciAqc3RyKQogewotCWNoYXIgKnAg PSBzdHI7CisJc2lnbmVkIGNoYXIgKnAgPSBzdHI7CiAJaW50IGw7CiAKIAl3 aGlsZSAoKGlzc3BhY2UoKnApKSkKQEAgLTYzLDcgKzY1LDcgQEAKIAl9CiB9 CiAKLXN0YXRpYyB2b2lkIGNvbmZfYXNrdmFsdWUoc3RydWN0IHN5bWJvbCAq c3ltLCBjb25zdCBjaGFyICpkZWYpCitzdGF0aWMgdm9pZCBjb25mX2Fza3Zh bHVlKHN0cnVjdCBzeW1ib2wgKnN5bSwgY29uc3QgY2hhciAqZGVmLCBjb25z dCBjaGFyICpvcHRpb24pCiB7CiAJZW51bSBzeW1ib2xfdHlwZSB0eXBlID0g c3ltX2dldF90eXBlKHN5bSk7CiAJdHJpc3RhdGUgdmFsOwpAQCAtODAsNyAr ODIsNiBAQAogCQlsaW5lWzFdID0gMDsKIAkJcmV0dXJuOwogCX0KLQogCXN3 aXRjaCAoaW5wdXRfbW9kZSkgewogCWNhc2UgYXNrX25ldzoKIAljYXNlIGFz a19zaWxlbnQ6CkBAIC04OSw2ICs5MCwyNCBAQAogCQkJcmV0dXJuOwogCQl9 CiAJCWNoZWNrX3N0ZGluKCk7CisJY2FzZSBzZXRfYXV0bzoKKwkJZmZsdXNo KHN0ZG91dCk7CisJCWF1dG9fY29uZihvcHRpb24sIGxpbmUpOworCQlpZihs aW5lWzBdPT0neScpeworCQkJaWYgKCEoc3ltX3RyaXN0YXRlX3dpdGhpbl9y YW5nZShzeW0sIHllcykpKXsKKwkJCQlsaW5lWzBdID0gJ20nOworCQkJCWxp bmVbMV0gPSAnXG4nOworCQkJCWxpbmVbMl0gPSAwOworCQkJfQorCQl9CisJ CWlmKGxpbmVbMF09PSdtJyl7CisJCQlpZiAoIShzeW1fdHJpc3RhdGVfd2l0 aGluX3JhbmdlKHN5bSwgbW9kKSkpeworCQkJCWxpbmVbMF0gPSAneSc7CisJ CQkJbGluZVsxXSA9ICdcbic7CisJCQkJbGluZVsyXSA9IDA7CisJCQl9CisJ CX0KKwkJcmV0dXJuOwogCWNhc2UgYXNrX2FsbDoKIAkJZmZsdXNoKHN0ZG91 dCk7CiAJCWZnZXRzKGxpbmUsIDEyOCwgc3RkaW4pOwpAQCAtMTY5LDcgKzE4 OCw3IEBACiAJCWRlZiA9IHN5bV9nZXRfc3RyaW5nX3ZhbHVlKHN5bSk7CiAJ CWlmIChzeW1fZ2V0X3N0cmluZ192YWx1ZShzeW0pKQogCQkJcHJpbnRmKCJb JXNdICIsIGRlZik7Ci0JCWNvbmZfYXNrdmFsdWUoc3ltLCBkZWYpOworCQlj b25mX2Fza3ZhbHVlKHN5bSwgZGVmLCAgbWVudV9nZXRfcHJvbXB0KG1lbnUp KTsKIAkJc3dpdGNoIChsaW5lWzBdKSB7CiAJCWNhc2UgJ1xuJzoKIAkJCWJy ZWFrOwpAQCAtMjI2LDkgKzI0NSwxMCBAQAogCQlpZiAoc3ltLT5oZWxwKQog CQkJcHJpbnRmKCIvPyIpOwogCQlwcmludGYoIl0gIik7Ci0JCWNvbmZfYXNr dmFsdWUoc3ltLCBzeW1fZ2V0X3N0cmluZ192YWx1ZShzeW0pKTsKKwkJY29u Zl9hc2t2YWx1ZShzeW0sIHN5bV9nZXRfc3RyaW5nX3ZhbHVlKHN5bSksIG1l bnVfZ2V0X3Byb21wdChtZW51KSk7CisJCWlmKGlucHV0X21vZGU9PXNldF9h dXRvKQorCQkJbGluZVsxXT0wOwogCQlzdHJpcChsaW5lKTsKLQogCQlzd2l0 Y2ggKGxpbmVbMF0pIHsKIAkJY2FzZSAnbic6CiAJCWNhc2UgJ04nOgpAQCAt MzI2LDYgKzM0NiwyMyBAQAogCQkJaWYgKCFzeW1faGFzX3ZhbHVlKGNoaWxk LT5zeW0pKQogCQkJCXByaW50ZigiIChORVcpIik7CiAJCQlwcmludGYoIlxu Iik7CisvKioqKioqKioqKioqKioqeyoqKioqKioqKioqKioqKioqKiBORVcg ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworI2lmIDEKKwkJCWlmKGlucHV0X21vZGU9PXNldF9hdXRvKXsKKyAg ICAgICAgICAgICAgICAgICAgICAgIGF1dG9fY29uZihtZW51X2dldF9wcm9t cHQoY2hpbGQpLCBsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm KGxpbmVbMF09PSd5Jyl7CisJCQkJICAgIHNwcmludGYobGluZSwgIiVpIiwg Y250KTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWVsc2UgeworCQkJCWxpbmVb MF0gPSAnXG4nOworCQkJCWxpbmVbMV0gPSAwOworCQkJfQkKKwkJCX0KKyNl bmRpZgorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisKKyAKIAkJfQogCQlwcmludGYoIiUqc2Nob2ljZSIsIGluZGVudCAt IDEsICIiKTsKIAkJaWYgKGNudCA9PSAxKSB7CkBAIC0zNDgsNiArMzg1LDcg QEAKIAkJY2FzZSBhc2tfYWxsOgogCQkJZmZsdXNoKHN0ZG91dCk7CiAJCQlm Z2V0cyhsaW5lLCAxMjgsIHN0ZGluKTsKKwkJY2FzZSBzZXRfYXV0bzoKIAkJ CXN0cmlwKGxpbmUpOwogCQkJaWYgKGxpbmVbMF0gPT0gJz8nKSB7CiAJCQkJ cHJpbnRmKCJcbiVzXG4iLCBtZW51LT5zeW0tPmhlbHAgPwpAQCAtNDg0LDcg KzUyMiw3IEBACiAKIGludCBtYWluKGludCBhYywgY2hhciAqKmF2KQogewot CWludCBpID0gMTsKKwkgaW50IGkgPSAxOwogCWNvbnN0IGNoYXIgKm5hbWU7 CiAJc3RydWN0IHN0YXQgdG1wc3RhdDsKIApAQCAtNDkzLDYgKzUzMSw5IEBA CiAJCWNhc2UgJ28nOgogCQkJaW5wdXRfbW9kZSA9IGFza19uZXc7CiAJCQli cmVhazsKKwkJY2FzZSAnYSc6CisJCQlpbnB1dF9tb2RlID0gc2V0X2F1dG87 CisJCQlicmVhazsKIAkJY2FzZSAncyc6CiAJCQlpbnB1dF9tb2RlID0gYXNr X3NpbGVudDsKIAkJCXZhbGlkX3N0ZGluID0gaXNhdHR5KDApICYmIGlzYXR0 eSgxKSAmJiBpc2F0dHkoMik7CkBAIC01NTcsNiArNTk4LDcgQEAKIAkJfQog CWNhc2UgYXNrX2FsbDoKIAljYXNlIGFza19uZXc6CisJY2FzZSBzZXRfYXV0 bzoKIAkJY29uZl9yZWFkKE5VTEwpOwogCQlicmVhazsKIAlkZWZhdWx0OgpA QCAtNTY2LDcgKzYwOCw3IEBACiAJaWYgKGlucHV0X21vZGUgIT0gYXNrX3Np bGVudCkgewogCQlyb290RW50cnkgPSAmcm9vdG1lbnU7CiAJCWNvbmYoJnJv b3RtZW51KTsKLQkJaWYgKGlucHV0X21vZGUgPT0gYXNrX2FsbCkgeworCQlp ZiAoaW5wdXRfbW9kZSA9PSBhc2tfYWxsIHx8IGlucHV0X21vZGUgPT0gc2V0 X2F1dG8pIHsKIAkJCWlucHV0X21vZGUgPSBhc2tfc2lsZW50OwogCQkJdmFs aWRfc3RkaW4gPSAxOwogCQl9CkBAIC01NzUsNiArNjE3LDggQEAKIAkJY29u Zl9jbnQgPSAwOwogCQljaGVja19jb25mKCZyb290bWVudSk7CiAJfSB3aGls ZSAoY29uZl9jbnQpOworCQlpZihhdlsxXVsxXT09J2EnKQorCQkJbXVzdF9o YXZlKCk7CiAJaWYgKGNvbmZfd3JpdGUoTlVMTCkpIHsKIAkJZnByaW50Zihz dGRlcnIsIF8oIlxuKioqIEVycm9yIGR1cmluZyB3cml0aW5nIG9mIHRoZSBr ZXJuZWwgY29uZmlndXJhdGlvbi5cblxuIikpOwogCQlyZXR1cm4gMTsKZGlm ZiAtdXJOIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvTWFrZWZpbGUgbGlu dXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9NYWtlZmlsZQotLS0gbGludXgu b3JnL3NjcmlwdHMva2NvbmZpZy9NYWtlZmlsZQkyMDA1LTA4LTI5IDAxOjQx OjAxLjAwMDAwMDAwMCArMDIwMAorKysgbGludXgtMi42LjEzL3NjcmlwdHMv a2NvbmZpZy9NYWtlZmlsZQkyMDA1LTA5LTA2IDExOjA3OjQyLjAwMDAwMDAw MCArMDIwMApAQCAtMiw3ICsyLDcgQEAKICMgS2VybmVsIGNvbmZpZ3VyYXRp b24gdGFyZ2V0cwogIyBUaGVzZSB0YXJnZXRzIGFyZSB1c2VkIGZyb20gdG9w LWxldmVsIG1ha2VmaWxlCiAKLS5QSE9OWTogb2xkY29uZmlnIHhjb25maWcg Z2NvbmZpZyBtZW51Y29uZmlnIGNvbmZpZyBzaWxlbnRvbGRjb25maWcgdXBk YXRlLXBvLWNvbmZpZworLlBIT05ZOiBvbGRjb25maWcgeGNvbmZpZyBnY29u ZmlnIG1lbnVjb25maWcgY29uZmlnIHNpbGVudG9sZGNvbmZpZwogCiB4Y29u ZmlnOiAkKG9iaikvcWNvbmYKIAkkPCBhcmNoLyQoQVJDSCkvS2NvbmZpZwpA QCAtMTcsMTkgKzE3LDE2IEBACiBjb25maWc6ICQob2JqKS9jb25mCiAJJDwg YXJjaC8kKEFSQ0gpL0tjb25maWcKIAorYXV0b2NvbmZpZzogJChvYmopL2Nv bmYKKwlAaWYgWyAtZiAuY29uZmlnIF07IHRoZW4gIHJtIC5jb25maWc7IGZp OworCSQ8IC1hIGFyY2gvJChBUkNIKS9LY29uZmlnCisJCiBvbGRjb25maWc6 ICQob2JqKS9jb25mCiAJJDwgLW8gYXJjaC8kKEFSQ0gpL0tjb25maWcKIAog c2lsZW50b2xkY29uZmlnOiAkKG9iaikvY29uZgogCSQ8IC1zIGFyY2gvJChB UkNIKS9LY29uZmlnCiAKLXVwZGF0ZS1wby1jb25maWc6ICQob2JqKS9reGdl dHRleHQKLQl4Z2V0dGV4dCAtLWRlZmF1bHQtZG9tYWluPWxpbnV4IFwKLSAg ICAgICAgICAtLWFkZC1jb21tZW50cyAtLWtleXdvcmQ9XyAtLWtleXdvcmQ9 Tl8gXAotICAgICAgICAgIC0tZmlsZXMtZnJvbT1zY3JpcHRzL2tjb25maWcv UE9URklMRVMuaW4gXAotCS1vIHNjcmlwdHMva2NvbmZpZy9saW51eC5wb3QK LQlzY3JpcHRzL2tjb25maWcva3hnZXR0ZXh0IGFyY2gvJChBUkNIKS9LY29u ZmlnID4+IHNjcmlwdHMva2NvbmZpZy9saW51eC5wb3QKLQogLlBIT05ZOiBy YW5kY29uZmlnIGFsbHllc2NvbmZpZyBhbGxub2NvbmZpZyBhbGxtb2Rjb25m aWcgZGVmY29uZmlnCiAKIHJhbmRjb25maWc6ICQob2JqKS9jb25mCkBAIC01 NywxMiArNTQsMTAgQEAKIAogIyBIZWxwIHRleHQgdXNlZCBieSBtYWtlIGhl bHAKIGhlbHA6Ci0JQGVjaG8gICcgIGNvbmZpZwkgIC0gVXBkYXRlIGN1cnJl bnQgY29uZmlnIHV0aWxpc2luZyBhIGxpbmUtb3JpZW50ZWQgcHJvZ3JhbScK KwlAZWNobyAgJyAgb2xkY29uZmlnCSAgLSBVcGRhdGUgY3VycmVudCBjb25m aWcgdXRpbGlzaW5nIGEgbGluZS1vcmllbnRlZCBwcm9ncmFtJwogCUBlY2hv ICAnICBtZW51Y29uZmlnCSAgLSBVcGRhdGUgY3VycmVudCBjb25maWcgdXRp bGlzaW5nIGEgbWVudSBiYXNlZCBwcm9ncmFtJwogCUBlY2hvICAnICB4Y29u ZmlnCSAgLSBVcGRhdGUgY3VycmVudCBjb25maWcgdXRpbGlzaW5nIGEgUVQg YmFzZWQgZnJvbnQtZW5kJwogCUBlY2hvICAnICBnY29uZmlnCSAgLSBVcGRh dGUgY3VycmVudCBjb25maWcgdXRpbGlzaW5nIGEgR1RLIGJhc2VkIGZyb250 LWVuZCcKLQlAZWNobyAgJyAgb2xkY29uZmlnCSAgLSBVcGRhdGUgY3VycmVu dCBjb25maWcgdXRpbGlzaW5nIGEgcHJvdmlkZWQgLmNvbmZpZyBhcyBiYXNl JwotCUBlY2hvICAnICByYW5kY29uZmlnCSAgLSBOZXcgY29uZmlnIHdpdGgg cmFuZG9tIGFuc3dlciB0byBhbGwgb3B0aW9ucycKIAlAZWNobyAgJyAgZGVm Y29uZmlnCSAgLSBOZXcgY29uZmlnIHdpdGggZGVmYXVsdCBhbnN3ZXIgdG8g YWxsIG9wdGlvbnMnCiAJQGVjaG8gICcgIGFsbG1vZGNvbmZpZwkgIC0gTmV3 IGNvbmZpZyBzZWxlY3RpbmcgbW9kdWxlcyB3aGVuIHBvc3NpYmxlJwogCUBl Y2hvICAnICBhbGx5ZXNjb25maWcJICAtIE5ldyBjb25maWcgd2hlcmUgYWxs IG9wdGlvbnMgYXJlIGFjY2VwdGVkIHdpdGggeWVzJwpAQCAtNzksMTEgKzc0 LDkgQEAKICMgICAgICAgICBCYXNlZCBvbiBHVEsgd2hpY2ggbmVlZHMgdG8g YmUgaW5zdGFsbGVkIHRvIGNvbXBpbGUgaXQKICMgb2JqZWN0IGZpbGVzIHVz ZWQgYnkgYWxsIGtjb25maWcgZmxhdm91cnMKIAotaG9zdHByb2dzLXkJOj0g Y29uZiBtY29uZiBxY29uZiBnY29uZiBreGdldHRleHQKLWNvbmYtb2Jqcwk6 PSBjb25mLm8gIHpjb25mLnRhYi5vCitob3N0cHJvZ3MteQk6PSBjb25mIG1j b25mIHFjb25mIGdjb25mCitjb25mLW9ianMJOj0gY29uZi5vIGF1dG9fY29u Zi5vIHhtbHBhcnNlci5vIHhtbHV0aWwubyB6Y29uZi50YWIubwogbWNvbmYt b2Jqcwk6PSBtY29uZi5vIHpjb25mLnRhYi5vCi1reGdldHRleHQtb2Jqcwk6 PSBreGdldHRleHQubyB6Y29uZi50YWIubwotCiBpZmVxICgkKE1BS0VDTURH T0FMUykseGNvbmZpZykKIAlxY29uZi10YXJnZXQgOj0gMQogZW5kaWYKQEAg LTExNSwxMSArMTA4LDcgQEAKIEhPU1RDRkxBR1NfZ2NvbmYubwk9IGBwa2ct Y29uZmlnIGd0aystMi4wIGdtb2R1bGUtMi4wIGxpYmdsYWRlLTIuMCAtLWNm bGFnc2AgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAtRCBMS0NfRElS RUNUX0xJTksKIAotJChvYmopL2NvbmYubyAkKG9iaikvbWNvbmYubyAkKG9i aikvcWNvbmYubyAkKG9iaikvZ2NvbmYubyAkKG9iaikva3hnZXR0ZXh0OiAk KG9iaikvemNvbmYudGFiLmgKLQotJChvYmopL3pjb25mLnRhYi5oOiAkKHNy YykvemNvbmYudGFiLmhfc2hpcHBlZAotJChvYmopL3pjb25mLnRhYi5jOiAk KHNyYykvemNvbmYudGFiLmNfc2hpcHBlZAotJChvYmopL2xleC56Y29uZi5j OiAkKHNyYykvbGV4Lnpjb25mLmNfc2hpcHBlZAorJChvYmopL2NvbmYubyAk KG9iaikvbWNvbmYubyAkKG9iaikvcWNvbmYubyAkKG9iaikvZ2NvbmYubzog JChvYmopL3pjb25mLnRhYi5oCiAKICQob2JqKS9xY29uZi5vOiAkKG9iaikv LnRtcF9xdGNoZWNrCiAKZGlmZiAtdXJOIGxpbnV4Lm9yZy9zY3JpcHRzL2tj b25maWcvcnVsZXMvNGdibWVtLnBtIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tj b25maWcvcnVsZXMvNGdibWVtLnBtCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9r Y29uZmlnL3J1bGVzLzRnYm1lbS5wbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAorKysgbGludXgtMi42LjEzL3NjcmlwdHMva2NvbmZp Zy9ydWxlcy80Z2JtZW0ucG0JMjAwNS0wOS0wNiAxMTowNzo0Mi4wMDAwMDAw MDAgKzAyMDAKQEAgLTAsMCArMSwxNCBAQAorIyEvdXNyL2Jpbi9wZXJsCisK KyRtZW1fdmFyPWBjYXQgL3Byb2MvbWVtaW5mbyB8IGdyZXAgTWVtVG90YWxg OworY2hvcCgkbWVtX3Zhcik7CiskbWVtX3Zhcj1+L1snMC05J10rL2c7Cisk bWVtX3Zhcj0kJjsKKworaWYoNDI5MDAwMCA8ICRtZW1fdmFyICYmICRtZW1f dmFyIDwgNjQwMDAwMDAwKSB7CisJcHJpbnQoInlcbiIpOworfQorCitlbHNl IHsKKwlwcmludCgiblxuIik7Cit9CmRpZmYgLXVyTiBsaW51eC5vcmcvc2Ny aXB0cy9rY29uZmlnL3J1bGVzL2FyY2gucG0gbGludXgtMi42LjEzL3Njcmlw dHMva2NvbmZpZy9ydWxlcy9hcmNoLnBtCi0tLSBsaW51eC5vcmcvc2NyaXB0 cy9rY29uZmlnL3J1bGVzL2FyY2gucG0JMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25m aWcvcnVsZXMvYXJjaC5wbQkyMDA1LTA5LTE1IDEyOjE2OjE5LjAwMDAwMDAw MCArMDIwMApAQCAtMCwwICsxLDkgQEAKKyMhL3Vzci9iaW4vcGVybAorCisk dGVzdD0nJzsKKyR0ZXN0PWB1bmFtZSAtbSB8IHNlZCAtZSBzL2kuODYvaTM4 Ni8gLWUgcy9zdW40dS9zcGFyYzY0LyAtZSBzL2FybS4qL2FybS8gLWUgcy9z YTExMC9hcm0vYDsKK2Nob3AoJHRlc3QpOworaWYoJHRlc3QgZXEgIkBBUkdW Iil7IHByaW50KCJ5XG4iKTt9CitlbHNle3ByaW50KCJuXG4iKTt9CisxOwor CmRpZmYgLXVyTiBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3J1bGVzL2Nw dWdyZXAucG0gbGludXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9ydWxlcy9j cHVncmVwLnBtCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3J1bGVz L2NwdWdyZXAucG0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25maWcvcnVsZXMvY3B1 Z3JlcC5wbQkyMDA1LTA5LTA2IDExOjA3OjQyLjAwMDAwMDAwMCArMDIwMApA QCAtMCwwICsxLDIzIEBACisjIS91c3IvYmluL3BlcmwKKworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIwkJCQkJCQkJCSMKKyMJY3B1Z3JlcCBj YW4gYmUgdXNlZCB3aXRoIGEgUGFyYW1ldGVyLgkJCQkjCisjCUl0IHNlYXJj aGVzIGFmdGVyIHRoZSBuYW1lIG9mIHRoZSBjcHUuIAkJCQkjCisjCUlmIHRo ZXJlIGlzIGEgc3VjY2VzcyBpdCBnaXZlcyBhIHkgdG8gc3RvdXQuCQkJIwor IwkJCQkJCQkJCSMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor CiskZm91bmQ9Jyc7CiskZm91bmQ9YGdyZXAgIkBBUkdWIiAvcHJvYy9jcHVp bmZvYDsKKworaWYgKCRmb3VuZCBuZSAnJykgeworCSBwcmludCgieVxuIik7 Cit9CisKK2Vsc2UgeworCXByaW50KCJuXG4iKTsKK30KKzE7CisKZGlmZiAt dXJOIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvcnVsZXMvZ2V0Y2hhci5w bSBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1bGVzL2dldGNoYXIu cG0KLS0tIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvcnVsZXMvZ2V0Y2hh ci5wbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysg bGludXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9ydWxlcy9nZXRjaGFyLnBt CTIwMDUtMDktMDYgMTE6MDc6NDIuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAg KzEsMyBAQAorIyEvdXNyL2Jpbi9wZXJsCisKK2dldGMoKTsKZGlmZiAtdXJO IGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvcnVsZXMvaGlnaG1lbS5wbSBs aW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1bGVzL2hpZ2htZW0ucG0K LS0tIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvcnVsZXMvaGlnaG1lbS5w bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgbGlu dXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9ydWxlcy9oaWdobWVtLnBtCTIw MDUtMDktMDYgMTE6MDc6NDIuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEs MTIgQEAKKyMhL3Vzci9iaW4vcGVybAorCiskbWVtX3Zhcj1gY2F0IC9wcm9j L21lbWluZm8gfCBncmVwIE1lbVRvdGFsYDsKK2Nob3AoJG1lbV92YXIpOwor JG1lbV92YXI9fi9bJzAtOSddKy9nOworJG1lbV92YXI9JCY7CisKK2lmKCRt ZW1fdmFyID4gNjQwMDAwMDAwKXsKKwlwcmludCgieVxuIik7CisJfQorCitl bHNle3ByaW50KCJuXG4iKTt9CmRpZmYgLXVyTiBsaW51eC5vcmcvc2NyaXB0 cy9rY29uZmlnL3J1bGVzL2h3X2VncmVwLnBtIGxpbnV4LTIuNi4xMy9zY3Jp cHRzL2tjb25maWcvcnVsZXMvaHdfZWdyZXAucG0KLS0tIGxpbnV4Lm9yZy9z Y3JpcHRzL2tjb25maWcvcnVsZXMvaHdfZWdyZXAucG0JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNi4xMy9zY3Jp cHRzL2tjb25maWcvcnVsZXMvaHdfZWdyZXAucG0JMjAwNS0wOS0wNiAxMTow Nzo0Mi4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwxNyBAQAorIyEvdXNy L2Jpbi9wZXJsCisKKyRmb3VuZD0nJzsKKyRmb3VuZD1gbHNwY2kgfCBncmVw IC1FICJAQVJHViIgYDsKK2lmKCRmb3VuZCBuZSAnJykgeworCXByaW50KCJ5 XG4iKTsKK30KK2Vsc2UgeworCSRmb3VuZD1gZ3JlcCAtRSAiQEFSR1YiIC92 YXIvbG9nL2RtZXNnIGA7CisJaWYoJGZvdW5kIG5lICcnKSB7CisJCSBwcmlu dCgieVxuIik7CisJfQorCWVsc2UgeworCQlwcmludCgiblxuIik7CisJfQor fQorMTsKZGlmZiAtdXJOIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcvcnVs ZXMvaHdfZ3JlcC5wbSBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1 bGVzL2h3X2dyZXAucG0KLS0tIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcv cnVsZXMvaHdfZ3JlcC5wbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAorKysgbGludXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9ydWxl cy9od19ncmVwLnBtCTIwMDUtMDktMTUgMTI6MTY6MDkuMDAwMDAwMDAwICsw MjAwCkBAIC0wLDAgKzEsMjYgQEAKKyMhL3Vzci9iaW4vcGVybAorCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCQkJCQkJCQkJIworIwlod19n cmVwIGNhbiBiZSB1c2VkIHdpdGggYSBQYXJhbWV0ZXIuCQkJCSMKKyMJSXQg c2VhcmNoZXMgdGhlbiBpbiBsc3BjaSBhZnRlciB0aGUgTmFtZSBvZiB0aGUg UGFyYW1ldGVyCSMKKyMJSWYgdGhlcmUgaXMgYSBzdWNjZXNzIGl0IGdpdmVz IGEgeSB0byBzdG91dC4JCQkjCisjCQkJCQkJCQkJIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCiskZm91bmQ9Jyc7CiskZm91bmQ9YGxzcGNp IHwgZ3JlcCAiQEFSR1YiYDsKK2lmKCRmb3VuZCBuZSAnJykgeworCXByaW50 KCJ5XG4iKTsKK30KK2Vsc2UgeworCSRmb3VuZD1gZ3JlcCAtRSAiQEFSR1Yi IC92YXIvbG9nL2RtZXNnIGA7CisJaWYoJGZvdW5kIG5lICcnKXsgCisJCXBy aW50KCJ5XG4iKTsKKwl9CisJZWxzZSB7CisJCXByaW50KCJuXG4iKTsKKwl9 Cit9CisxOworCmRpZmYgLXVyTiBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmln L3J1bGVzL21vZDEucG0gbGludXgtMi42LjEzL3NjcmlwdHMva2NvbmZpZy9y dWxlcy9tb2QxLnBtCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3J1 bGVzL21vZDEucG0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKKysrIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25maWcvcnVsZXMvbW9k MS5wbQkyMDA1LTA5LTA2IDExOjA3OjQyLjAwMDAwMDAwMCArMDIwMApAQCAt MCwwICsxLDUgQEAKKyMhL3Vzci9iaW4vcGVybAorCisKK3ByaW50KCJtXG4i KTsKKwpkaWZmIC11ck4gbGludXgub3JnL3NjcmlwdHMva2NvbmZpZy9ydWxl cy9vZmZoaW1lbS5wbSBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1 bGVzL29mZmhpbWVtLnBtCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmln L3J1bGVzL29mZmhpbWVtLnBtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCisrKyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1 bGVzL29mZmhpbWVtLnBtCTIwMDUtMDktMDYgMTE6MDc6NDIuMDAwMDAwMDAw ICswMjAwCkBAIC0wLDAgKzEsMTIgQEAKKyMhL3Vzci9iaW4vcGVybAorCisk bWVtX3Zhcj1gY2F0IC9wcm9jL21lbWluZm8gfCBncmVwIE1lbVRvdGFsYDsK K2Nob3AoJG1lbV92YXIpOworJG1lbV92YXI9fi9bJzAtOSddKy9nOworJG1l bV92YXI9JCY7CisKK2lmKCRtZW1fdmFyIDwgNDI5MDAwMCl7CisJcHJpbnQo InlcbiIpOworCX0KKworZWxzZXtwcmludCgiblxuIik7fQpkaWZmIC11ck4g bGludXgub3JnL3NjcmlwdHMva2NvbmZpZy9ydWxlcy9ydWxlc19saXN0Lnht bCBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1bGVzL3J1bGVzX2xp c3QueG1sCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3J1bGVzL3J1 bGVzX2xpc3QueG1sCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1bGVzL3J1 bGVzX2xpc3QueG1sCTIwMDUtMDktMTMgMTc6NTQ6MTMuMDAwMDAwMDAwICsw MjAwCkBAIC0wLDAgKzEsMzAxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu Y29kaW5nPSJVVEYtOCI/PgorPHJ1bGVzPgorICAgPG1lbnUgbmFtZT0iQ29k ZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zIj4KKyAgICAgIDxvcHRpb24gbmFt ZT0iUHJvbXB0IGZvciBkZXZlbG9wbWVudCBhbmQvb3IgaW5jb21wbGV0ZSBj b2RlL2RyaXZlcnMiPiB5ZXMxLnBtPC9vcHRpb24+CisgICAgICA8b3B0aW9u IG5hbWU9IlNlbGVjdCBvbmx5IGRyaXZlcnMgZXhwZWN0ZWQgdG8gY29tcGls ZSBjbGVhbmx5Ij55ZXMxLnBtPC9vcHRpb24+CisgICA8L21lbnU+CisgICA8 bWVudSBuYW1lPSJHZW5lcmFsIHNldHVwIj4KKyAgICAgIDxvcHRpb24gbmFt ZT0iU3VwcG9ydCBmb3IgcGFnaW5nIG9mIGFub255bW91cyBtZW1vcnkgKHN3 YXApIj4geWVzMS5wbTwvb3B0aW9uPgorICAgICAgPG9wdGlvbiBuYW1lPSJT eXN0ZW0gViBJUEMiPnllczEucG08L29wdGlvbj4KKyAgICAgIDxvcHRpb24g bmFtZT0iU3lzY3RsIHN1cHBvcnQiPnllczEucG08L29wdGlvbj4KKyAgICAg IDxvcHRpb24gbmFtZT0iU3VwcG9ydCBmb3IgaG90LXBsdWdnYWJsZSBkZXZp Y2VzIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICA8b3B0aW9uIG5hbWU9Iktl cm5lbCBVc2Vyc3BhY2UgRXZlbnRzIj55ZXMxLnBtPC9vcHRpb24+CisgICAg ICA8b3B0aW9uIG5hbWU9Iktlcm5lbCAuY29uZmlnIHN1cHBvcnQiPnllczEu cG08L29wdGlvbj4KKyAgICAgIDxvcHRpb24gbmFtZT0iRW5hYmxlIGFjY2Vz cyB0byAuY29uZmlnIHRocm91Z2ggL3Byb2MvY29uZmlnLmd6Ij55ZXMxLnBt PC9vcHRpb24+CisgICA8L21lbnU+CisgICA8bWVudSBuYW1lPSJMb2FkYWJs ZSBtb2R1bGUgc3VwcG9ydCI+CisgICAgICA8b3B0aW9uIG5hbWU9IkVuYWJs ZSBsb2FkYWJsZSBtb2R1bGUgc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9uPgor ICAgICAgPG9wdGlvbiBuYW1lPSJNb2R1bGUgdW5sb2FkaW5nIj55ZXMxLnBt PC9vcHRpb24+CisgICAgICA8b3B0aW9uIG5hbWU9IkZvcmNlZCBtb2R1bGUg dW5sb2FkaW5nIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICA8b3B0aW9uIG5h bWU9Ik1vZHVsZSB2ZXJzaW9uaW5nIHN1cHBvcnQgKEVYUEVSSU1FTlRBTCki PnllczEucG08L29wdGlvbj4KKyAgICAgIDxvcHRpb24gbmFtZT0iQXV0b21h dGljIGtlcm5lbCBtb2R1bGUgbG9hZGluZyI+eWVzMS5wbTwvb3B0aW9uPgor ICAgPC9tZW51PgorICAgPG1lbnUgbmFtZT0iUHJvY2Vzc29yIHR5cGUgYW5k IGZlYXR1cmVzIj4KKyAgICAgIDxtZW51IG5hbWU9IlN1YmFyY2hpdGVjdHVy ZSBUeXBlIiBtdXN0X2hhdmU9IjEiPgorCTxvcHRpb24gbmFtZT0iUEMtY29t cGF0aWJsZSI+YXJjaC5wbSBpMzg2PC9vcHRpb24+CisgICAgICA8L21lbnU+ CisgICAgICA8bWVudSBuYW1lPSJQcm9jZXNzb3IgZmFtaWx5IiBtdXN0X2hh dmU9IjEiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJQZW50aXVtIE0iPmNw dWdyZXAucG0gIlBlbnRpdW0oUikgTSI8L29wdGlvbj4KKyAgICAgICAgIDxv cHRpb24gbmFtZT0iQXRobG9uL0R1cm9uL0s3Ij5jcHVncmVwLnBtICJBdGhs b24iPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlBlbnRpdW0t NC9DZWxlcm9uKFA0LWJhc2VkKS9QZW50aXVtLTQgTS9YZW9uIj5jcHVncmVw LnBtICJQZW50aXVtKFIpIDQiPC9vcHRpb24+CisgICAgICA8L21lbnU+Cisg ICAgICA8b3B0aW9uIG5hbWU9IlByZWVtcHRpYmxlIEtlcm5lbCI+eWVzMS5w bTwvb3B0aW9uPgorICAgICAgPG9wdGlvbiBuYW1lPSJMb2NhbCBBUElDIHN1 cHBvcnQgb24gdW5pcHJvY2Vzc29ycyI+eWVzMS5wbTwvb3B0aW9uPgorICAg ICAgPG9wdGlvbiBuYW1lPSJJTy1BUElDIHN1cHBvcnQgb24gdW5pcHJvY2Vz c29ycyI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgPG9wdGlvbiBuYW1lPSJN YWNoaW5lIENoZWNrIEV4Y2VwdGlvbiI+eWVzMS5wbTwvb3B0aW9uPgorICAg ICAgPG9wdGlvbiBuYW1lPSIvZGV2L2NwdS8qL21zciAtIE1vZGVsLXNwZWNp ZmljIHJlZ2lzdGVyIHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAg IDxvcHRpb24gbmFtZT0iL2Rldi9jcHUvKi9jcHVpZCAtIENQVSBpbmZvcm1h dGlvbiBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICA8bWVudSBu YW1lPSJIaWdoIE1lbW9yeSBTdXBwb3J0Ij4KKyAgICAgICAgIDxvcHRpb24g bmFtZT0ib2ZmIj5vZmZoaW1lbS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9w dGlvbiBuYW1lPSI0R0IiPjRnYm1lbS5wbTwvb3B0aW9uPgorICAgICAgICAg PG9wdGlvbiBuYW1lPSI2NEdCIj5oaWdobWVtLnBtPC9vcHRpb24+CisgICAg ICA8L21lbnU+CisgICAgICA8b3B0aW9uIG5hbWU9Ik1UUlIgKE1lbW9yeSBU eXBlIFJhbmdlIFJlZ2lzdGVyKSBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+ CisgICA8L21lbnU+CisgICA8bWVudSBuYW1lPSJQb3dlciBtYW5hZ2VtZW50 IG1lbnVzIChBQ1BJLCBBUE0pIj4KKyAgICAgIDxvcHRpb24gbmFtZT0iUG93 ZXIgTWFuYWdlbWVudCBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAg ICA8b3B0aW9uIG5hbWU9IlNvZnR3YXJlIFN1c3BlbmQgKEVYUEVSSU1FTlRB TCkiPnllczEucG08L29wdGlvbj4KKyAgICAgIDxvcHRpb24gbmFtZT0iU2xl ZXAgU3RhdGVzIChFWFBFUklNRU5UQUwpIj55ZXMxLnBtPC9vcHRpb24+Cisg ICAgICA8bWVudSBuYW1lPSJBQ1BJIChBZHZhbmNlZCBDb25maWd1cmF0aW9u IGFuZCBQb3dlciBJbnRlcmZhY2UpIFN1cHBvcnQiPgorICAgICAgICAgPG9w dGlvbiBuYW1lPSJBQ1BJIFN1cHBvcnQiPlBlbnRpdW1NLnBtPC9vcHRpb24+ CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkFDIEFkYXB0ZXIiPnllczEucG08 L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iQnV0dG9uIj55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8bWVudSBuYW1lPSJWaWRlbyI+bW9k MS5wbTwvbWVudT4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iRmFuIj55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlByb2Nlc3Nv ciI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJU aGVybWFsIFpvbmUiPnllczEucG08L29wdGlvbj4KKyAgICAgIDwvbWVudT4K KyAgICAgIDxtZW51IG5hbWU9IkFQTSAoQWR2YW5jZWQgUG93ZXIgTWFuYWdl bWVudCkgQklPUyBTdXBwb3J0Ij4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0i QVBNIChBZHZhbmNlZCBQb3dlciBNYW5hZ2VtZW50KSBCSU9TIHN1cHBvcnQi Pm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iUlRD IHN0b3JlcyB0aW1lIGluIEdNVCI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAg ICAgPG9wdGlvbiBuYW1lPSJVc2UgcmVhbCBtb2RlIEFQTSBCSU9TIGNhbGwg dG8gcG93ZXIgb2ZmIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICA8L21lbnU+ CisgICAgICA8bWVudSBuYW1lPSJDUFUgRnJlcXVlbmN5IHNjYWxpbmciPgor ICAgICAgICAgPG9wdGlvbiBuYW1lPSJDUFUgRnJlcXVlbmN5IHNjYWxpbmci PnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0icG93 ZXJzYXZlJyBnb3Zlcm5vciI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAg PG9wdGlvbiBuYW1lPSIndXNlcnNwYWNlJyBnb3Zlcm5vciBmb3IgdXNlcnNw YWNlIGZyZXF1ZW5jeSBzY2FsaW5nIj5tb2QxLnBtPC9vcHRpb24+CisgICAg ICAgICA8b3B0aW9uIG5hbWU9IkFDUEkgUHJvY2Vzc29yIFAtU3RhdGVzIGRy aXZlciI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1l PSJJbnRlbCBFbmhhbmNlZCBTcGVlZFN0ZXAiPmNwdWdyZXAucG0gIlBlbnRp dW0oUikgTSI8L29wdGlvbj4KKyAgICAgIDwvbWVudT4KKyAgIDwvbWVudT4K KyAgIDxtZW51IG5hbWU9IkJ1cyBtZW51cyAoUENJLCBQQ01DSUEsIEVJU0Es IE1DQSwgSVNBKSIgbXVzdF9oYXZlPSIxIj4KKyAgICAgIDxvcHRpb24gbmFt ZT0iUENJIHN1cHBvcnQiPmh3X2dyZXAucG0gIlBDSSBicmlkZ2UiPC9vcHRp b24+CisgICAgICA8b3B0aW9uIG5hbWU9IlBDSSBkZXZpY2UgbmFtZSBkYXRh YmFzZSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgPG1lbnUgbmFtZT0iUENJ IEhvdHBsdWcgU3VwcG9ydCI+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlN1 cHBvcnQgZm9yIFBDSSBIb3RwbHVnIChFWFBFUklNRU5UQUwpIj5tb2QxLnBt PC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkZha2UgUENJIEhv dHBsdWcgZHJpdmVyIj5tb2QxLnBtPC9vcHRpb24+CisgICAgICA8L21lbnU+ CisgICA8L21lbnU+CisgICA8bWVudSBuYW1lPSIgRXhlY3V0YWJsZSBmaWxl IGZvcm1hdHMiPgorICAgICAgPG9wdGlvbiBuYW1lPSJLZXJuZWwgc3VwcG9y dCBmb3IgRUxGIGJpbmFyaWVzIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICA8 b3B0aW9uIG5hbWU9Iktlcm5lbCBzdXBwb3J0IGZvciBhLm91dCBhbmQgRUNP RkYgYmluYXJpZXMiPm1vZDEucG08L29wdGlvbj4KKyAgICAgIDxvcHRpb24g bmFtZT0iS2VybmVsIHN1cHBvcnQgZm9yIE1JU0MgYmluYXJpZXMiPm1vZDEu cG08L29wdGlvbj4KKyAgIDwvbWVudT4KKyAgIDxtZW51IG5hbWU9IkRldmlj ZSBEcml2ZXJzIj4KKyAgICAgIDxtZW51IG5hbWU9IkdlbmVyaWMgRHJpdmVy IE9wdGlvbnMiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJTZWxlY3Qgb25s eSBkcml2ZXJzIHRoYXQgZG9uJ3QgbmVlZCBjb21waWxlLXRpbWUgZXh0ZXJu YWwgZmlybXdhcmUiPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRp b24gbmFtZT0iUHJldmVudCBmaXJtd2FyZSBmcm9tIGJlaW5nIGJ1aWx0Ij55 ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkhvdHBs dWcgZmlybXdhcmUgbG9hZGluZyBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+ CisgICAgICA8L21lbnU+CisgICAgICA8bWVudSBuYW1lPSJBVEEvQVRBUEkv TUZNL1JMTCBzdXBwb3J0IiBtdXN0X2hhdmU9IjYiPgorICAgICAgICAgPG9w dGlvbiBuYW1lPSJBVEEvQVRBUEkvTUZNL1JMTCBzdXBwb3J0Ij5od19lZ3Jl cC5wbSAiQVRBfEFUQVBJfE1GTXxSTEwiPC9vcHRpb24+CisgICAgICAgICA8 b3B0aW9uIG5hbWU9IkVuaGFuY2VkIElERS9NRk0vUkxMIGRpc2svY2Ryb20v dGFwZS9mbG9wcHkgc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAg ICAgPG9wdGlvbiBuYW1lPSJJbmNsdWRlIElERS9BVEEtMiBESVNLIHN1cHBv cnQiPmh3X2VncmVwLnBtICJBVEF8SURFIjwvb3B0aW9uPgorICAgICAgICAg PG9wdGlvbiBuYW1lPSJVc2UgbXVsdGktbW9kZSBieSBkZWZhdWx0Ij55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkluY2x1ZGUg SURFL0FUQVBJIENEUk9NIHN1cHBvcnQiPnllczEucG08L29wdGlvbj4KKyAg ICAgICAgIDxvcHRpb24gbmFtZT0iU0NTSSBlbXVsYXRpb24gc3VwcG9ydCI+ bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJnZW5l cmljL2RlZmF1bHQgSURFIGNoaXBzZXQgc3VwcG9ydCI+eWVzMS5wbTwvb3B0 aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJQQ0kgSURFIGNoaXBzZXQg c3VwcG9ydCI+aHdfZWdyZXAucG0gIklERXxQQ0kiPC9vcHRpb24+CisgICAg ICAgICA8b3B0aW9uIG5hbWU9IkdlbmVyaWMgUENJIElERSBDaGlwc2V0IFN1 cHBvcnQiPmh3X2VncmVwLnBtICJJREV8UENJIjwvb3B0aW9uPgorICAgICAg ICAgPG9wdGlvbiBuYW1lPSJHZW5lcmljIFBDSSBidXMtbWFzdGVyIERNQSBz dXBwb3J0Ij5od19ncmVwLnBtICJQQ0kiPC9vcHRpb24+CisgICAgICAgICA8 b3B0aW9uIG5hbWU9IkludGVsIFBJSVhuIGNoaXBzZXRzIHN1cHBvcnQiPmh3 X2VncmVwLnBtICJJQ0giPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5h bWU9IlZJQTgyQ1hYWCBjaGlwc2V0IHN1cHBvcnQiPmh3X2VncmVwLnBtICJW VDgyQyoiPC9vcHRpb24+CisgICAgICA8L21lbnU+CisgICAgICA8bWVudSBu YW1lPSJJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0IiBtdXN0X2hhdmU9 IjEiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJJRUVFIDEzOTQgKEZpcmVX aXJlKSBzdXBwb3J0Ij5od19ncmVwLnBtICJGaXJlV2lyZSAoSUVFRSAxMzk0 KSI8L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iT1VJIERhdGFi YXNlIGJ1aWx0LWluIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0 aW9uIG5hbWU9Ik9IQ0ktMTM5NCBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+ CisgICAgICAgICA8b3B0aW9uIG5hbWU9Ik9IQ0ktMTM5NCBWaWRlbyBzdXBw b3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9 IlNCUC0yIHN1cHBvcnQgKEhhcmRkaXNrcyBldGMuKSI+bW9kMS5wbTwvb3B0 aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJPSENJLURWIEkvTyBzdXBw b3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9 IlJhdyBJRUVFMTM5NCBJL08gc3VwcG9ydCI+bW9kMS5wbTwvb3B0aW9uPgor ICAgICAgICAgPG9wdGlvbiBuYW1lPSJJRUM2MTg4My0xIFBsdWcgc3VwcG9y dCI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJJ RUM2MTg4My02IChBdWRpbyB0cmFuc21pc3Npb24pIHN1cHBvcnQiPm1vZDEu cG08L29wdGlvbj4KKyAgICAgIDwvbWVudT4KKyAgICAgIDxtZW51IG5hbWU9 Ik5ldHdvcmtpbmcgc3VwcG9ydCIgbXVzdF9oYXZlPSIxIj4KKyAgICAgICAg IDxvcHRpb24gbmFtZT0iTmV0d29ya2luZyBzdXBwb3J0Ij5od19lZ3JlcC5w bSAiTmV0d29ya3xFdGhlcm5ldCI8L29wdGlvbj4gCisgICAgICAgICA8bWVu dSBuYW1lPSJOZXR3b3JraW5nIG1lbnVzIj4KKyAgICAgICAgICAgIDxvcHRp b24gbmFtZT0iUGFja2V0IHNvY2tldCI+eWVzMS5wbTwvb3B0aW9uPgorICAg ICAgICAgICAgPG9wdGlvbiBuYW1lPSJQYWNrZXQgc29ja2V0OiBtbWFwcGVk IElPIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0aW9uIG5h bWU9IlVuaXggZG9tYWluIHNvY2tldHMiPnllczEucG08L29wdGlvbj4KKyAg ICAgICAgICAgIDxvcHRpb24gbmFtZT0iUEZfS0VZIHNvY2tldHMiPm1vZDEu cG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iVENQL0lQ IG5ldHdvcmtpbmciPnllczEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxv cHRpb24gbmFtZT0iSVA6IG11bHRpY2FzdGluZyI+eWVzMS5wbTwvb3B0aW9u PgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJJUDogQUggdHJhbnNmb3Jt YXRpb24iPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24g bmFtZT0iSVA6IEVTUCB0cmFuc2Zvcm1hdGlvbiI+bW9kMS5wbTwvb3B0aW9u PgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJJUDogSVBDb21wIHRyYW5z Zm9ybWF0aW9uIj5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0 aW9uIG5hbWU9IklQOiB0dW5uZWwgdHJhbnNmb3JtYXRpb24iPm1vZDEucG08 L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iSVA6IFRDUCBz b2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2UiPnllczEucG08L29wdGlvbj4K KyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iTmV0d29yayBwYWNrZXQgZmls dGVyaW5nIChyZXBsYWNlcyBpcGNoYWlucykiPnllczEucG08L29wdGlvbj4K KyAgICAgICAgICAgIDxtZW51IG5hbWU9Ik5ldHdvcmsgcGFja2V0IGZpbHRl cmluZyAocmVwbGFjZXMgaXBjaGFpbnMpIj4KKyAgICAgICAgICAgICAgIDxt ZW51IG5hbWU9IklQOiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbiI+CisgICAg ICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IkNvbm5lY3Rpb24gdHJhY2tp bmcgKHJlcXVpcmVkIGZvciBtYXNxL05BVCkiPm1vZDEucG08L29wdGlvbj4K KyAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iRlRQIHByb3RvY29s IHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgICAgICAg IDxvcHRpb24gbmFtZT0iSVJDIHByb3RvY29sIHN1cHBvcnQiPm1vZDEucG08 L29wdGlvbj4KKyAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iSVJD IHByb3RvY29sIHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAg ICAgICAgICAgIDxvcHRpb24gbmFtZT0iSVAgdGFibGVzIHN1cHBvcnQgKHJl cXVpcmVkIGZvciBmaWx0ZXJpbmcvbWFzcS9OQVQpIj5tb2QxLnBtPC9vcHRp b24+CisgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9ImxpbWl0IG1h dGNoIHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgICAg ICAgIDxvcHRpb24gbmFtZT0iTUFDIGFkZHJlc3MgbWF0Y2ggc3VwcG9ydCI+ bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgICAgICAgICAgPG9wdGlvbiBu YW1lPSJQYWNrZXQgdHlwZSBtYXRjaCBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRp b24+CisgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Im5ldGZpbHRl ciBNQVJLIG1hdGNoIHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAg ICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iTXVsdGlwbGUgcG9ydCBtYXRj aCBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICAgICAgICAg ICA8b3B0aW9uIG5hbWU9IlRPUyBtYXRjaCBzdXBwb3J0Ij5tb2QxLnBtPC9v cHRpb24+CisgICAgICAgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IkVDTiBt YXRjaCBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICAgICAg ICAgICA8b3B0aW9uIG5hbWU9IkRTQ1AgdGFyZ2V0IHN1cHBvcnQiPm1vZDEu cG08L29wdGlvbj4KKyAgICAgICAgICAgICAgICAgIDxvcHRpb24gbmFtZT0i TUFSSyB0YXJnZXQgc3VwcG9ydCI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAg ICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJBUlAgdGFibGVzIHN1cHBvcnQi Pm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgICAgIDwvbWVudT4KKyAg ICAgICAgICAgIDwvbWVudT4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0i SVBzZWMgdXNlciBjb25maWd1cmF0aW9uIGludGVyZmFjZSI+bW9kMS5wbTwv b3B0aW9uPgorICAgICAgICAgPC9tZW51PgorICAgICAgICAgPG9wdGlvbiBu YW1lPSJOZXR3b3JrIGRldmljZSBzdXBwb3J0Ij5od19lZ3JlcC5wbSAiTmV0 d29ya3xFdGhlcm5ldCI8L29wdGlvbj4KKyAgICAgICAgIDxtZW51IG5hbWU9 IkV0aGVybmV0ICgxMCBvciAxMDBNYml0KSIgbXVzdF9oYXZlPSIxIj4KKyAg ICAgICAgICAgIDxvcHRpb24gbmFtZT0iRXRoZXJuZXQgKDEwIG9yIDEwME1i aXQpIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0aW9uIG5h bWU9IkdlbmVyaWMgTWVkaWEgSW5kZXBlbmRlbnQgSW50ZXJmYWNlIGRldmlj ZSBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0 aW9uIG5hbWU9IkVJU0EsIFZMQiwgUENJIGFuZCBvbiBib2FyZCBjb250cm9s bGVycyI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBu YW1lPSIzQ09NIGNhcmRzIj5od19ncmVwLnBtICIzQ29tIjwvb3B0aW9uPgor ICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSIzYzU5MC8zYzkwMCBzZXJpZXMg KDU5Mi81OTUvNTk3KSAmcXVvdDtWb3J0ZXgvQm9vbWVyYW5nJnF1b3Q7IHN1 cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24g bmFtZT0iM2NyOTkwIHNlcmllcyAmcXVvdDtUeXBob29uJnF1b3Q7IHN1cHBv cnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFt ZT0iSW50ZWwoUikgUFJPLzEwMCsgc3VwcG9ydCI+aHdfZ3JlcC5wbSAiUFJP LzEwMCI8L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iUmVh bFRlayBSVEwtODEyOS84MTMwLzgxMzkgUENJIEZhc3QgRXRoZXJuZXQgQWRh cHRlciBzdXBwb3J0Ij4KKwkJaHdfZWdyZXAucG0gIlJUTC04MTI5fFJUTC04 MTMwfFJUTC04MTM5Ijwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBu YW1lPSJSZWFsVGVrIFJUTC04MTM5IFBDSSBGYXN0IEV0aGVybmV0IEFkYXB0 ZXIgc3VwcG9ydCI+aHdfZ3JlcC5wbSAiUlRMLTgxMzkiPC9vcHRpb24+Cisg ICAgICAgICAgICA8b3B0aW9uIG5hbWU9IlN1cHBvcnQgZm9yIHVuY29tbW9u IFJUTC04MTM5IHJldi4gSyAoYXV0b21hdGljIGNoYW5uZWwgZXF1YWxpemF0 aW9uKSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPC9tZW51PgorICAg ICAgICAgPG1lbnUgbmFtZT0iV2lyZWxlc3MgTEFOIChub24taGFtcmFkaW8p IiBtdXN0X2hhdmU9IjEiPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJX aXJlbGVzcyBMQU4gZHJpdmVycyAobm9uLWhhbXJhZGlvKSAmYW1wOyBXaXJl bGVzcyBFeHRlbnNpb25zIj5od19lZ3JlcC5wbSAiV2lyZWxlc3N8V0xhbnxX TEFOIjwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJTVFJJ UCAoTWV0cmljb20gc3Rhcm1vZGUgcmFkaW8gSVApIj5tb2QxLnBtPC9vcHRp b24+CisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Ikhlcm1lcyBjaGlwc2V0 IDgwMi4xMWIgc3VwcG9ydCAoT3Jpbm9jby9QcmlzbTIvU3ltYm9sKSI+bW9k MS5wbTwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJQcmlz bSAyLjUgUENJIDgwMi4xMWIgYWRhcHRvciBzdXBwb3J0IChFWFBFUklNRU5U QUwpIj5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICA8L21lbnU+CisgICAg ICAgICA8b3B0aW9uIG5hbWU9IlBMSVAgKHBhcmFsbGVsIHBvcnQpIHN1cHBv cnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0i UFBQIChwb2ludC10by1wb2ludCBwcm90b2NvbCkgc3VwcG9ydCI+bW9kMS5w bTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJQUFAgbXVsdGls aW5rIHN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiPnllczEucG08L29wdGlvbj4K KyAgICAgICAgIDxvcHRpb24gbmFtZT0iUFBQIHN1cHBvcnQgZm9yIGFzeW5j IHNlcmlhbCBwb3J0cyI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9w dGlvbiBuYW1lPSJQUFAgc3VwcG9ydCBmb3Igc3luYyB0dHkgcG9ydHMiPm1v ZDEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iUFBQIERl ZmxhdGUgY29tcHJlc3Npb24iPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAg IDxvcHRpb24gbmFtZT0iUFBQIEJTRC1Db21wcmVzcyBjb21wcmVzc2lvbiI+ bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJQUFAg b3ZlciBFdGhlcm5ldCAoRVhQRVJJTUVOVEFMKSI+bW9kMS5wbTwvb3B0aW9u PgorICAgICAgPC9tZW51PgorICAgICAgPG1lbnUgbmFtZT0iSW5wdXQgZGV2 aWNlIHN1cHBvciI+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlByb3ZpZGUg bGVnYWN5IC9kZXYvcHNhdXggZGV2aWNlIj55ZXMxLnBtPC9vcHRpb24+Cisg ICAgICAgICA8b3B0aW9uIG5hbWU9IkV2ZW50IGludGVyZmFjZSI+eWVzMS5w bTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJNaWNlIj55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlBTLzIgbW91 c2UiPnllczEucG08L29wdGlvbj4KKyAgICAgIDwvbWVudT4KKyAgICAgIDxt ZW51IG5hbWU9IkNoYXJhY3RlciBkZXZpY2VzIiBtdXN0X2hhdmU9IjIiPgor ICAgICAgICAgPG9wdGlvbiBuYW1lPSJMZWdhY3kgKEJTRCkgUFRZIHN1cHBv cnQiPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0i L2Rldi9hZ3BnYXJ0IChBR1AgU3VwcG9ydCkiPmh3X2dyZXAucG0gIkFHUCI8 L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iRGlyZWN0IFJlbmRl cmluZyBNYW5hZ2VyIChYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIgRFJJIHN1 cHBvcnQpIj5od19lZ3JlcC5wbSAiUmFnZXxSYWRlb258QmFuc2hlZXxWb29k b28iPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkFUSSBSYWRl b24iPmh3X2dyZXAucG0gIlJhZGVvbiI8L29wdGlvbj4KKyAgICAgICAgIDxv cHRpb24gbmFtZT0iTlZJRElBIG5Gb3JjZS9uRm9yY2UyIGNoaXBzZXQgc3Vw cG9ydCI+aHdfZWdyZXAucG0gIipGb3JjZSoiPC9vcHRpb24+CisJIDxvcHRp b24gbmFtZT0iSW50ZWwgODMwTSwgODQ1RywgODUyR00sIDg1NUdNLCA4NjVH Ij5od19lZ3JlcC5wbSAiODMwTXw4NDVHfDg1MkdNfDg1NUdNfDg2NUciPC9v cHRpb24+CisJIAorICAgICAgPC9tZW51PgorICAgICAgPG1lbnUgbmFtZT0i TXVsdGltZWRpYSBkZXZpY2VzIj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0i VmlkZW8gRm9yIExpbnV4Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICA8L21l bnU+CisgICAgICA8bWVudSBuYW1lPSJHcmFwaGljcyBzdXBwb3J0IiBtdXN0 X2hhdmU9IjIiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJTdXBwb3J0IGZv ciBmcmFtZSBidWZmZXIgZGV2aWNlcyI+aHdfZ3JlcC5wbSAiVkdBIjwvb3B0 aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJBVEkgUmFkZW9uIGRpc3Bs YXkgc3VwcG9ydCI+aHdfZ3JlcC5wbSAiUmFkZW9uIjwvb3B0aW9uPgorICAg ICAgICAgPG9wdGlvbiBuYW1lPSJJbnRlbCA4MzBNLzg0NUcvODUyR00vODU1 R00vODY1RyBzdXBwb3J0Ij5od19lZ3JlcC5wbSAiODMwTXw4NDVHfDg1MkdN fDg1NUdNfDg2NUciPC9vcHRpb24+CisJIDxvcHRpb24gbmFtZT0iblZpZGlh IFJpdmEgc3VwcG9ydCI+aHdfZWdyZXAucG0gIlJpdmF8R2VGb3JjZSI8L29w dGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iRERDL0kyQyBmb3IgQVRJ IFJhZGVvbiBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICA8 bWVudSBuYW1lPSJDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQiPgor ICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJWaWRlbyBtb2RlIHNlbGVjdGlv biBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0 aW9uIG5hbWU9IkZyYW1lYnVmZmVyIENvbnNvbGUgc3VwcG9ydCI+eWVzMS5w bTwvb3B0aW9uPgorICAgICAgICAgPC9tZW51PgorICAgICAgICAgPG1lbnUg bmFtZT0iTG9nbyBjb25maWd1cmF0aW9uIj4KKyAgICAgICAgICAgIDxvcHRp b24gbmFtZT0iQm9vdHVwIGxvZ28iPnllczEucG08L29wdGlvbj4KKyAgICAg ICAgICAgIDxvcHRpb24gbmFtZT0iU3RhbmRhcmQgMjI0LWNvbG9yIExpbnV4 IGxvZ28iPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDwvbWVudT4KKyAg ICAgIDwvbWVudT4KKyAgICAgIDxtZW51IG5hbWU9IlNvdW5kIiBtdXN0X2hh dmU9IjEiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJTb3VuZCBjYXJkIHN1 cHBvcnQiPmh3X2dyZXAucG0gImF1ZGlvIjwvb3B0aW9uPgorICAgICAgICAg PG1lbnUgbmFtZT0iQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJl IiBtdXN0X2hhdmU9IjEiPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJB ZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUiPmh3X2dyZXAucG0g ImF1ZGlvIjwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJT ZXF1ZW5jZXIgc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAg ICAgPG9wdGlvbiBuYW1lPSJPU1MgTWl4ZXIgQVBJIj55ZXMxLnBtPC9vcHRp b24+CisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Ik9TUyBQQ00gKGRpZ2l0 YWwgYXVkaW8pIEFQSSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgICAg PG9wdGlvbiBuYW1lPSJPU1MgU2VxdWVuY2VyIEFQSSI+eWVzMS5wbTwvb3B0 aW9uPgorICAgICAgICAgPC9tZW51PgorICAgICAgICAgPG1lbnUgbmFtZT0i R2VuZXJpYyBkZXZpY2VzIj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0i VmlydHVhbCBNSURJIHNvdW5kY2FyZCI+bW9kMS5wbTwvb3B0aW9uPgorICAg ICAgICAgICAgPG9wdGlvbiBuYW1lPSJNT1RVIE1pZGlUaW1lUGllY2UgQVYg bXVsdGlwb3J0IE1JREkiPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgICAg IDxvcHRpb24gbmFtZT0iVUFSVDE2NTUwIHNlcmlhbCBNSURJIGRyaXZlciI+ bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJH ZW5lcmljIE1QVS00MDEgVUFSVCBkcml2ZXIiPm1vZDEucG08L29wdGlvbj4K KyAgICAgICAgIDwvbWVudT4KKyAgICAgICAgIDxtZW51IG5hbWU9IlBDSSBk ZXZpY2VzIiBtdXN0X2hhdmU9IjEiPgorICAgICAgICAgICAgPG9wdGlvbiBu YW1lPSJJbnRlbC9TaVMvblZpZGlhL0FNRC9BTGkgQUM5NyBDb250cm9sbGVy Ij5od19lZ3JlcC5wbSAiSW50ZWx8U2lTfG5WaWRpYXxBTUR8QUxpIEFDJzk3 IgorPC9vcHRpb24+CisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9IihDcmVh dGl2ZSkgRW5zb25pcSBBdWRpb1BDSSAxMzcwIj5od19lZ3JlcC5wbSAiRW5z b25pcXxBdWRpb1BDSSI8L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24g bmFtZT0iKENyZWF0aXZlKSBFbnNvbmlxIEF1ZGlvUENJIDEzNzEvMTM3MyI+ aHdfZWdyZXAucG0gIkVuc29uaXF8QXVkaW9QQ0kiPC9vcHRpb24+CisgICAg ICAgICA8L21lbnU+CisgICAgICA8L21lbnU+CisgICAgICA8bWVudSBuYW1l PSJVU0Igc3VwcG9ydCIgbXVzdF9oYXZlPSIzIj4KKyAgICAgICAgIDxvcHRp b24gbmFtZT0iU3VwcG9ydCBmb3IgSG9zdC1zaWRlIFVTQiI+aHdfZ3JlcC5w bSAiVVNCIjwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0Ig ZGV2aWNlIGZpbGVzeXN0ZW0iPnllczEucG08L29wdGlvbj4KKyAgICAgICAg IDxvcHRpb24gbmFtZT0iRW5mb3JjZSBVU0IgYmFuZHdpZHRoIGFsbG9jYXRp b24iPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0i RUhDSSBIQ0QgKFVTQiAyLjApIHN1cHBvcnQiPmh3X2dyZXAucG0gIkVIQ0ki PC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlVIQ0kgSENEICht b3N0IEludGVsIGFuZCBWSUEpIHN1cHBvcnQiPmh3X2dyZXAucG0gIlVIQ0ki PC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlVTQiBIdW1hbiBJ bnRlcmZhY2UgRGV2aWNlIChmdWxsIEhJRCkgc3VwcG9ydCI+eWVzMS5wbTwv b3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0IgQXVkaW8gc3Vw cG9ydCI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1l PSJVU0IgQmx1ZXRvb3RoIFRUWSBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+ CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlVTQiBNSURJIHN1cHBvcnQiPm1v ZDEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iVVNCIE1v ZGVtIChDREMgQUNNKSBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAg ICAgICA8b3B0aW9uIG5hbWU9IlVTQiBQcmludGVyIHN1cHBvcnQiPm1vZDEu cG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iVVNCIE1hc3Mg U3RvcmFnZSBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICA8 b3B0aW9uIG5hbWU9IlVTQiBNYXNzIFN0b3JhZ2UgdmVyYm9zZSBkZWJ1ZyI+ eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJGcmVl Y29tIFVTQi9BVEFQSSBCcmlkZ2Ugc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9u PgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJJU0QtMjAwIFVTQi9BVEEgQnJp ZGdlIHN1cHBvcnQiPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRp b24gbmFtZT0iTWljcm90ZWNoL1ppTyEgQ29tcGFjdEZsYXNoL1NtYXJ0TWVk aWEgc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9wdGlv biBuYW1lPSJIUCBDRC1Xcml0ZXIgODJ4eCBzdXBwb3J0IChFWFBFUklNRU5U QUwpIj55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9 IlNhbkRpc2sgU0REUi0wOSAoYW5kIG90aGVyIFNtYXJ0TWVkaWEpIHN1cHBv cnQgKEVYUEVSSU1FTlRBTCkiPnllczEucG08L29wdGlvbj4KKyAgICAgICAg IDxvcHRpb24gbmFtZT0iU2FuRGlzayBTRERSLTU1IFNtYXJ0TWVkaWEgc3Vw cG9ydCAoRVhQRVJJTUVOVEFMKSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAg ICAgPG9wdGlvbiBuYW1lPSJMZXhhciBKdW1wc2hvdCBDb21wYWN0IEZsYXNo IFJlYWRlciAoRVhQRVJJTUVOVEFMKSI+eWVzMS5wbTwvb3B0aW9uPgorICAg ICAgICAgPG9wdGlvbiBuYW1lPSJVU0IgdGVzdGluZyBkcml2ZXIgKERFVkVM T1BNRU5UKSI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgPC9tZW51PgorICAg ICAgPC9tZW51PgorICAgICAgPG1lbnUgbmFtZT0iRmlsZSBzeXN0ZW1zIj4K KyAgICAgICAgIDxvcHRpb24gbmFtZT0iU2Vjb25kIGV4dGVuZGVkIGZzIHN1 cHBvcnQiPnllczEucG08L29wdGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFt ZT0iRXh0MyBqb3VybmFsbGluZyBmaWxlIHN5c3RlbSBzdXBwb3J0Ij55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IkV4dDMgZXh0 ZW5kZWQgYXR0cmlidXRlcyI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAg PG9wdGlvbiBuYW1lPSJLZXJuZWwgYXV0b21vdW50ZXIgdmVyc2lvbiA0IHN1 cHBvcnQgKGFsc28gc3VwcG9ydHMgdjMpIj55ZXMxLnBtPC9vcHRpb24+Cisg ICAgICAgICA8bWVudSBuYW1lPSJDRC1ST00vRFZEIEZpbGVzeXN0ZW1zIj4K KyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iSVNPIDk2NjAgQ0RST00gZmls ZSBzeXN0ZW0gc3VwcG9ydCI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAg ICAgPG9wdGlvbiBuYW1lPSJNaWNyb3NvZnQgSm9saWV0IENEUk9NIGV4dGVu c2lvbnMiPnllczEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24g bmFtZT0iVHJhbnNwYXJlbnQgZGVjb21wcmVzc2lvbiBleHRlbnNpb24iPnll czEucG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iVURG IGZpbGUgc3lzdGVtIHN1cHBvcnQiPm1vZDEucG08L29wdGlvbj4KKyAgICAg ICAgIDwvbWVudT4KKyAgICAgICAgIDxtZW51IG5hbWU9IkRPUy9GQVQvTlQg RmlsZXN5c3RlbXMiPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJNU0RP UyBmcyBzdXBwb3J0Ij5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICAgICA8 b3B0aW9uIG5hbWU9IlZGQVQgKFdpbmRvd3MtOTUpIGZzIHN1cHBvcnQiPm1v ZDEucG08L29wdGlvbj4KKyAgICAgICAgIDwvbWVudT4KKyAgICAgICAgIDxt ZW51IG5hbWU9IlBzZXVkbyBmaWxlc3lzdGVtcyI+CisgICAgICAgICAgICA8 b3B0aW9uIG5hbWU9Ii9wcm9jIGZpbGUgc3lzdGVtIHN1cHBvcnQiPnllczEu cG08L29wdGlvbj4KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0iL3Byb2Mv a2NvcmUgc3VwcG9ydCI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPC9t ZW51PgorICAgICAgICAgPG1lbnUgbmFtZT0iTmF0aXZlIExhbmd1YWdlIFN1 cHBvcnQiPgorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJCYXNlIG5hdGl2 ZSBsYW5ndWFnZSBzdXBwb3J0Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICAg ICAgICA8b3B0aW9uIG5hbWU9IkNvZGVwYWdlIDQzNyAoVW5pdGVkIFN0YXRl cywgQ2FuYWRhKSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgICAgPG9w dGlvbiBuYW1lPSJOTFMgSVNPIDg4NTktMSAgKExhdGluIDE7IFdlc3Rlcm4g RXVyb3BlYW4gTGFuZ3VhZ2VzKSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAg ICAgICAgPG9wdGlvbiBuYW1lPSJOTFMgSVNPIDg4NTktMTUgKExhdGluIDk7 IFdlc3Rlcm4gRXVyb3BlYW4gTGFuZ3VhZ2VzIHdpdGggRXVybykiCisgICAg ICAgICAgICA+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgICAgPC9tZW51Pgor ICAgICAgPC9tZW51PgorICAgICAgPG1lbnUgbmFtZT0iS2VybmVsIGhhY2tp bmciPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJLZXJuZWwgZGVidWdnaW5n Ij55ZXMxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9Ik1h Z2ljIFN5c1JxIGtleSI+eWVzMS5wbTwvb3B0aW9uPgorICAgICAgPC9tZW51 PgorICAgICAgPG1lbnUgbmFtZT0iQ3J5cHRvZ3JhcGhpYyBtZW51cyI+Cisg ICAgICAgICA8b3B0aW9uIG5hbWU9IkNyeXB0b2dyYXBoaWMgQVBJIj55ZXMx LnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0aW9uIG5hbWU9IlNIQTEgZGln ZXN0IGFsZ29yaXRobSI+bW9kMS5wbTwvb3B0aW9uPgorICAgICAgICAgPG9w dGlvbiBuYW1lPSJBUkM0IGNpcGhlciBhbGdvcml0aG0iPm1vZDEucG08L29w dGlvbj4KKyAgICAgICAgIDxvcHRpb24gbmFtZT0iRGVmbGF0ZSBjb21wcmVz c2lvbiBhbGdvcml0aG0iPm1vZDEucG08L29wdGlvbj4KKyAgICAgICAgIDxv cHRpb24gbmFtZT0iQ1JDMzJjIENSQyBhbGdvcml0aG0iPm1vZDEucG08L29w dGlvbj4KKyAgICAgIDwvbWVudT4KKyAgICAgIDxtZW51IG5hbWU9IkxpYnJh cnkgcm91dGluZXMiPgorICAgICAgICAgPG9wdGlvbiBuYW1lPSJDUkMtQ0NJ VFQgZnVuY3Rpb25zIj5tb2QxLnBtPC9vcHRpb24+CisgICAgICAgICA8b3B0 aW9uIG5hbWU9IkNSQzMyYyAoQ2FzdGFnbm9saSwgZXQgYWwpIEN5Y2xpYyBS ZWR1bmRhbmN5LUNoZWNrIj5tb2QxLnBtPC9vcHRpb24+CisgICAgICA8L21l bnU+Cis8L3J1bGVzPgpkaWZmIC11ck4gbGludXgub3JnL3NjcmlwdHMva2Nv bmZpZy9ydWxlcy95ZXMxLnBtIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25m aWcvcnVsZXMveWVzMS5wbQotLS0gbGludXgub3JnL3NjcmlwdHMva2NvbmZp Zy9ydWxlcy95ZXMxLnBtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCisrKyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3J1bGVz L3llczEucG0JMjAwNS0wOS0wNiAxMTowNzo0Mi4wMDAwMDAwMDAgKzAyMDAK QEAgLTAsMCArMSw1IEBACisjIS91c3IvYmluL3BlcmwKKworCitwcmludCgi eWVzXG4iKTsKKwpkaWZmIC11ck4gbGludXgub3JnL3NjcmlwdHMva2NvbmZp Zy94bWxwYXJzZXIuYyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3ht bHBhcnNlci5jCi0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3htbHBh cnNlci5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3htbHBhcnNlci5jCTIw MDUtMDktMDYgMTE6MDc6NDIuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEs OTE5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgU2ltcGxlIFhNTCBQ YXJzZXIuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqCisgKiAgICAgY29weXJpZ2h0IChDKSAgVGltIEhv Y2tpbiA8dGhvY2tpbkBob2NraW4ub3JnPiAgICAgICAgICAgICAgICAgICAg ICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgSGVh dmlseSBtb2RpZmllZCBieSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqCisgKiAgICAgY29weXJpZ2h0IChD KSAyMDA0LCAyMDA1ICBNaWNoYWVsIEJ1ZXNjaCA8bWJ1ZXNjaEBmcmVlbmV0 LmRlPiAgICAgICAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq CisgKiBSZWxlYXNlZCB1bmRlciB0aGUgTEdQTCB2ZXJzaW9uIDIuMSAoaHR0 cDovL3d3dy5nbnUub3JnKSAgICAgICAgICAgICAgICAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeSAgICAqCisgKiBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJz aW9uIDIuMSAqCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAqCisg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworCisjaW5jbHVkZSAieG1scGFyc2VyLmgi CisjaW5jbHVkZSAieG1sdXRpbC5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+ CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwor I2RlZmluZSBYTUxfUEFHRSAiPGZpZWxkYnVzIG5hbWU9QWhtYWQgbGVuZ3Ro PTEyPjxib2FyZCAgdHlwZT1JTlRFTD5Bc3VzPC9ib2FyZD48Ym9hcmQ+PGJv YXJkIGRldmljZSBuYW1lPlwKKwkgICAgICAgICAgICAgICAgL2Rldi9wYmJv YXJkMDwvYm9hcmQgZGV2aWNlIG5hbWU+PC9ib2FyZD48L2ZpZWxkYnVzPiIK KworCisjZGVmaW5lIFNUUklOR19DQVBfU1RFUAkJMTAwIC8qIGJ5dGUgKi8K KworCitzdHJ1Y3QgeG1sX2NvbnRleHQKK3sKKwljb25zdCBjaGFyICpidWY7 CisJc2l6ZV90IHNpemU7CisJc2l6ZV90IHBvczsKKwl1bnNpZ25lZCBpbnQg bGluZW5vOworfTsKKwordHlwZWRlZiBlbnVtIHhtbF9zdGF0ZQoreworCVNU X1RBR1NUQVJULAorCVNUX1NUQVJUX1NUQUcsCisJU1RfU1RBR19OQU1FX0RP TkUsCisJU1RfUFJPUE5BTUUsCisJU1RfR0VURVEsCisJU1RfR09URVEsCisJ U1RfUFJPUFZBTCwKKwlTVF9TUV9QUk9QVkFMLAorCVNUX1BPU1RfUFJPUFZB TCwKKwlTVF9FTkRfU0VUQUcsCisJU1RfRU5EX1NUQUcsCisJU1RfQ09OVEVO VCwKKwlTVF9NQVlCRV9DT01NRU5ULAorCVNUX05FV1RBR19TVEFSVCwKKwlT VF9TVEFSVF9FVEFHLAorCVNUX0VUQUdfTkFNRSwKKwlTVF9FTkRfRVRBRwor fSBzdGF0ZV90OworCisKK3N0cnVjdCB4bWxfZWxlbWVudCogZ2V0X2ZpcnN0 X2NoaWxkKHN0cnVjdCB4bWxfZWxlbWVudCAqcGFyZW50KXsKKwkKKwlpZihw YXJlbnQtPmZpcnN0X2NoaWxkKQorCQlyZXR1cm4gcGFyZW50LT5maXJzdF9j aGlsZDsJCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0cnVjdCB4bWxfZWxlbWVu dCogZ2V0X25leHRfZWxlbWVudChzdHJ1Y3QgeG1sX2VsZW1lbnQgKmVsZW1l bnQsIHN0cnVjdCB4bWxfZWxlbWVudCAqY2hpbGQpeworCQorCWlmKGNoaWxk KQorCQlyZXR1cm4gY2hpbGQtPm5leHQ7CisJCQorCXJldHVybiBOVUxMOwor CQorfQorCitzdHJ1Y3QgeG1sX2VsZW1lbnQqIGdldF9uZXh0X25vZGUoc3Ry dWN0IHhtbF9lbGVtZW50ICplbGVtZW50KXsKKwkKKwlpZihlbGVtZW50LT5u ZXh0KQorCQlyZXR1cm4gZWxlbWVudC0+bmV4dDsJCisJcmV0dXJuIE5VTEw7 CisJCit9CisKK2NoYXIgKiBnZXRfZWxlbWVudF9uYW1lKHN0cnVjdCB4bWxf ZWxlbWVudCAqZWxlbWVudCl7CisKKwkgaWYoZWxlbWVudC0+bmFtZSkKKwkJ cmV0dXJuIGVsZW1lbnQtPm5hbWUtPnM7CisJIHJldHVybiAwOworfQorCitj aGFyICogZ2V0X2VsZW1lbnRfY29udGVudChzdHJ1Y3QgeG1sX2VsZW1lbnQg KmVsZW1lbnQpeworCisJaWYoZWxlbWVudC0+Y29udGVudCkJCisJCXJldHVy biBlbGVtZW50LT5jb250ZW50LT5zOworCXJldHVybiAwOworfQorc3RydWN0 IHhtbF9wcm9wICpnZXRfbmV4dF9hdHRyaWJ1dGUoIHN0cnVjdCB4bWxfZWxl bWVudCAqZWxlbWVudCwgc3RydWN0IHhtbF9wcm9wKiBhdHRyaWJ1dGUpewor CWlmKCFlbGVtZW50LT5maXJzdF9wcm9wKQorCQlyZXR1cm4gTlVMTDsKKwlp ZihhdHRyaWJ1dGUpeworCQlyZXR1cm4gYXR0cmlidXRlLT5uZXh0O30KKwll bHNlCisJCXJldHVybiBlbGVtZW50LT5maXJzdF9wcm9wOworfQorCitjaGFy ICpnZXRfYXR0cmlidXRlX25hbWUoc3RydWN0IHhtbF9wcm9wKiBhdHRyaWJ1 dGUpeworCWlmKGF0dHJpYnV0ZS0+bmFtZS0+cykKKwlyZXR1cm4gYXR0cmli dXRlLT5uYW1lLT5zOworCXJldHVybiBOVUxMOworfQorCisKK2NoYXIgKmdl dF9hdHRyaWJ1dGVfdmFsdWUoc3RydWN0IHhtbF9wcm9wKiBhdHRyaWJ1dGUp eworCXJldHVybiBhdHRyaWJ1dGUtPnZhbHVlLT5zOworfQorCitzdHJ1Y3Qg eG1sX2VsZW1lbnQgKmdldF9lbGVtZW50X3BhcmVudChzdHJ1Y3QgeG1sX2Vs ZW1lbnQgKmVsZW1lbnQpeworCWlmKGVsZW1lbnQtPnBhcmVudCkKKwlyZXR1 cm4gZWxlbWVudC0+cGFyZW50OworCWVsc2UgcmV0dXJuIE5VTEw7Cit9CisK KworCisKK3N0YXRpYyBzdHJ1Y3QgeG1sX3N0cmluZyAqIGFsbG9jX3htbF9z dHJpbmcodm9pZCkKK3sKKwlzdHJ1Y3QgeG1sX3N0cmluZyAqczsKKworCXMg PSBtYWxsb2Moc2l6ZW9mKCpzKSk7CisJaWYgKCFzKSB7CisJCXByaW50Zigi T3V0IG9mIG1lbW9yeVxuIik7CisJCXJldHVybiAwOworCX0KKwlzLT5zID0g bWFsbG9jKFNUUklOR19DQVBfU1RFUCk7CisJaWYgKCFzLT5zKSB7CisJCXBy aW50ZigiT3V0IG9mIG1lbW9yeVxuIik7CisJCWZyZWUocyk7CisJCXJldHVy biAwOworCX0KKwlzLT5zWzBdID0gJ1wwJzsKKwlzLT5zaXplID0gMDsKKwlz LT5fY2FwYWNpdHkgPSBTVFJJTkdfQ0FQX1NURVA7CisKKwlyZXR1cm4gczsK K30KKworc3RhdGljIHZvaWQgZnJlZV94bWxfc3RyaW5nKHN0cnVjdCB4bWxf c3RyaW5nICpzKQoreworCWlmICghcykKKwkJcmV0dXJuOworCWZyZWUocy0+ cyk7CisJZnJlZShzKTsKK30KKworc3RhdGljIGludCB4bWxfc3RyaW5nX2Fw cGVuZF9jKHN0cnVjdCB4bWxfc3RyaW5nICpzLCBjaGFyIGMpCit7CisJaWYg KHMtPnNpemUgKyAxID09IHMtPl9jYXBhY2l0eSkgeworCQlzaXplX3QgbmV3 X2NhcDsKKwkJY2hhciAqbmV3X2J1ZjsKKworCQluZXdfY2FwID0gcy0+X2Nh cGFjaXR5ICsgU1RSSU5HX0NBUF9TVEVQOworCQluZXdfYnVmID0gcmVhbGxv YyhzLT5zLCBuZXdfY2FwKTsKKwkJaWYgKCFuZXdfYnVmKSB7CisJCQlwcmlu dGYoIk91dCBvZiBtZW1vcnlcbiIpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJ cy0+cyA9IG5ld19idWY7CisJCXMtPl9jYXBhY2l0eSA9IG5ld19jYXA7CisJ fQorCXMtPnNpemUrKzsKKwlzLT5zW3MtPnNpemUgLSAxXSA9IGM7CisJcy0+ c1tzLT5zaXplXSA9ICdcMCc7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgeG1sX3N0cmluZ19jb3B5KHN0cnVjdCB4bWxfc3RyaW5nICp0bywgc3Ry dWN0IHhtbF9zdHJpbmcgKmZyb20pCit7CisJaWYgKGZyb20tPnNpemUgKyAx ID4gdG8tPl9jYXBhY2l0eSkgeworCQljaGFyICpuZXdfYnVmOworCisJCW5l d19idWYgPSByZWFsbG9jKHRvLT5zLCBmcm9tLT5zaXplICsgMSk7CisJCWlm ICghbmV3X2J1ZikgeworCQkJcHJpbnRmKCJPdXQgb2YgbWVtb3J5XG4iKTsK KwkJCXJldHVybiAxOworCQl9CisJCXRvLT5zID0gbmV3X2J1ZjsKKwkJdG8t Pl9jYXBhY2l0eSA9IGZyb20tPnNpemUgKyAxOworCX0KKwltZW1jcHkodG8t PnMsIGZyb20tPnMsIGZyb20tPnNpemUgKyAxKTsKKwl0by0+c2l6ZSA9IGZy b20tPnNpemU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHhtbF9z dHJpbmdfY2xlYXIoc3RydWN0IHhtbF9zdHJpbmcgKnMpCit7CisJcy0+c2l6 ZSA9IDA7CisJLyogV2UgZG9uJ3QgcmVzZXQgY2FwYWNpdHkgaGVyZS4gKi8K K30KKworc3RhdGljIHN0cnVjdCB4bWxfcHJvcCAqIGFsbG9jX3htbF9wcm9w KHZvaWQpCit7CisJc3RydWN0IHhtbF9wcm9wICpwOworCisJcCA9IG1hbGxv YyhzaXplb2YoKnApKTsKKwlpZiAoIXApIHsKKwkJcHJpbnRmKCJPdXQgb2Yg bWVtb3J5XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCXAtPm5hbWUgPSBhbGxv Y194bWxfc3RyaW5nKCk7CisJaWYgKCFwLT5uYW1lKSB7CisJCWZyZWUocCk7 CisJCXJldHVybiAwOworCX0KKwlwLT52YWx1ZSA9IGFsbG9jX3htbF9zdHJp bmcoKTsKKwlpZiAoIXAtPnZhbHVlKSB7CisJCWZyZWVfeG1sX3N0cmluZyhw LT5uYW1lKTsKKwkJZnJlZShwKTsKKwkJcmV0dXJuIDA7CisJfQorCXAtPm5l eHQgPSAwOworCXAtPnByZXYgPSAwOworCisJcmV0dXJuIHA7Cit9CisKK3N0 YXRpYyB2b2lkIGZyZWVfeG1sX3Byb3Aoc3RydWN0IHhtbF9wcm9wICpwKQor eworCWlmICghcCkKKwkJcmV0dXJuOworCWZyZWVfeG1sX3N0cmluZyhwLT52 YWx1ZSk7CisJZnJlZV94bWxfc3RyaW5nKHAtPm5hbWUpOworCWZyZWUocCk7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgeG1sX2VsZW1lbnQgKiBhbGxvY194bWxf ZWxlbWVudCh2b2lkKQoreworCXN0cnVjdCB4bWxfZWxlbWVudCAqZTsKKwor CWUgPSBtYWxsb2Moc2l6ZW9mKCplKSk7CisJaWYgKCFlKSB7CisJCXByaW50 ZigiT3V0IG9mIG1lbW9yeVxuIik7CisJCXJldHVybiAwOworCX0KKwllLT5u YW1lID0gYWxsb2NfeG1sX3N0cmluZygpOworCWlmICghZS0+bmFtZSkgewor CQlmcmVlKGUpOworCQlyZXR1cm4gMDsKKwl9CisJZS0+Y29udGVudCA9IGFs bG9jX3htbF9zdHJpbmcoKTsKKwlpZiAoIWUtPmNvbnRlbnQpIHsKKwkJZnJl ZV94bWxfc3RyaW5nKGUtPm5hbWUpOworCQlmcmVlKGUpOworCQlyZXR1cm4g MDsKKwl9CisJZS0+Zmlyc3RfcHJvcCA9IDA7CisJZS0+bGFzdF9wcm9wID0g MDsKKwllLT5maXJzdF9jaGlsZCA9IDA7CisJZS0+bGFzdF9jaGlsZCA9IDA7 CisJZS0+bmV4dCA9IDA7CisJZS0+cHJldiA9IDA7CisJZS0+cGFyZW50ID0g MDsKKwlyZXR1cm4gZTsKK30KKwordm9pZCB4bWxfZnJlZV9lbGVtZW50KHN0 cnVjdCB4bWxfZWxlbWVudCAqZSkKK3sKKwlzdHJ1Y3QgeG1sX2VsZW1lbnQg KmNoaWxkOworCXN0cnVjdCB4bWxfcHJvcCAqcHJvcDsKKworCWlmICghZSkK KwkJcmV0dXJuOworCisJY2hpbGQgPSBlLT5maXJzdF9jaGlsZDsKKwl3aGls ZSAoY2hpbGQpIHsKKwkJc3RydWN0IHhtbF9lbGVtZW50ICpkZWw7CisKKwkJ ZGVsID0gY2hpbGQ7CisJCWNoaWxkID0gY2hpbGQtPm5leHQ7CisJCXhtbF9m cmVlX2VsZW1lbnQoZGVsKTsKKwl9CisKKwlwcm9wID0gZS0+Zmlyc3RfcHJv cDsKKwl3aGlsZSAocHJvcCkgeworCQlzdHJ1Y3QgeG1sX3Byb3AgKmRlbDsK KworCQlkZWwgPSBwcm9wOworCQlwcm9wID0gcHJvcC0+bmV4dDsKKwkJZnJl ZV94bWxfcHJvcChkZWwpOworCX0KKworCWZyZWVfeG1sX3N0cmluZyhlLT5u YW1lKTsKKwlmcmVlX3htbF9zdHJpbmcoZS0+Y29udGVudCk7CisJZnJlZShl KTsKK30KKworc3RhdGljIHZvaWQgeG1sX2VsZW1lbnRfYXBwZW5kX2NoaWxk KHN0cnVjdCB4bWxfZWxlbWVudCAqcGFyZW50LAorCQkJCSAgICAgc3RydWN0 IHhtbF9lbGVtZW50ICpjaGlsZCkKK3sKKwljaGlsZC0+bmV4dCA9IDA7CisJ Y2hpbGQtPnByZXYgPSAwOworCWlmICghcGFyZW50LT5maXJzdF9jaGlsZCkK KwkJcGFyZW50LT5maXJzdF9jaGlsZCA9IGNoaWxkOworCWlmIChwYXJlbnQt Pmxhc3RfY2hpbGQpIHsKKwkJcGFyZW50LT5sYXN0X2NoaWxkLT5uZXh0ID0g Y2hpbGQ7CisJCWNoaWxkLT5wcmV2ID0gcGFyZW50LT5sYXN0X2NoaWxkOwor CX0KKwlwYXJlbnQtPmxhc3RfY2hpbGQgPSBjaGlsZDsKKwljaGlsZC0+cGFy ZW50PXBhcmVudDsKK30KKworc3RhdGljIHZvaWQgeG1sX2VsZW1lbnRfYXBw ZW5kX3Byb3Aoc3RydWN0IHhtbF9lbGVtZW50ICplLAorCQkJCSAgICBzdHJ1 Y3QgeG1sX3Byb3AgKnByb3ApCit7CisJcHJvcC0+bmV4dCA9IDA7CisJcHJv cC0+cHJldiA9IDA7CisJaWYgKCFlLT5maXJzdF9wcm9wKQorCQllLT5maXJz dF9wcm9wID0gcHJvcDsKKwlpZiAoZS0+bGFzdF9wcm9wKSB7CisJCWUtPmxh c3RfcHJvcC0+bmV4dCA9IHByb3A7CisJCXByb3AtPnByZXYgPSBlLT5sYXN0 X3Byb3A7CisJfQorCWUtPmxhc3RfcHJvcCA9IHByb3A7Cit9CisKK3N0YXRp YyBpbnQgaXNfbmFtZV9zdGFydChjaGFyIGMpCit7CisJcmV0dXJuIChzaW1w bGVfaXNhbHBoYShjKSB8fCBjID09ICdfJyB8fCBjID09ICc6Jyk7Cit9CisK K3N0YXRpYyBpbnQgaXNfbmFtZShjaGFyIGMpCit7CisJcmV0dXJuIChpc19u YW1lX3N0YXJ0KGMpIHx8CisJCXNpbXBsZV9pc2RpZ2l0KGMpIHx8CisJCWMg PT0gJy4nIHx8CisJCWMgPT0gJy0nKTsKK30KKworc3RhdGljIGludCBuZXh0 X2NoYXIoc3RydWN0IHhtbF9jb250ZXh0ICpjdHgsIGNoYXIgKmMpCit7CisJ aWYgKGN0eC0+cG9zID09IGN0eC0+c2l6ZSl7CisJCXJldHVybiAwO30KKwkq YyA9IGN0eC0+YnVmW2N0eC0+cG9zXTsKKworCWlmICgqYyA9PSAnXDAnKXsK KwkJcmV0dXJuIDA7fQorCWlmICgqYyA9PSAnXG4nKXsKKwkJY3R4LT5saW5l bm8rKzt9CisJY3R4LT5wb3MrKzsKKwlyZXR1cm4gMTsKK30KKworc3RhdGlj IHZvaWQgcHJvbG9nKHN0cnVjdCB4bWxfY29udGV4dCAqY3R4KQoreworCWNo YXIgY3VyID0gJyAnOworCWNoYXIgcHJldiA9ICcgJzsKKworCXdoaWxlIChu ZXh0X2NoYXIoY3R4LCAmY3VyKSkgeworCQlpZiAoY3VyID09ICc+JyAmJiBw cmV2ID09ICc/JykKKwkJCXJldHVybjsKKwkJcHJldiA9IGN1cjsKKwl9Cit9 CisKK3N0YXRpYyB2b2lkIGNvbW1lbnQoc3RydWN0IHhtbF9jb250ZXh0ICpj dHgpCit7CisJY2hhciBjdXIgPSAnICc7CisJY2hhciBwcmV2ID0gJyAnOwor CWNoYXIgcHJldjIgPSAnICc7CisKKwl3aGlsZSAobmV4dF9jaGFyKGN0eCwg JmN1cikpIHsKKwkJaWYgKGN1ciA9PSAnPicgJiYgcHJldiA9PSAnLScgJiYg cHJldjIgPT0gJy0nKQorCQkJcmV0dXJuOworCQlwcmV2MiA9IHByZXY7CisJ CXByZXYgPSBjdXI7CisJfQorfQorCitzdGF0aWMgY2hhciB1bmVzY2FwZShz dHJ1Y3QgeG1sX2NvbnRleHQgKmN0eCkKK3sKKwljaGFyIGJ1ZlsxNl07CisJ dW5zaWduZWQgaW50IGkgPSAwOworCWNvbnN0IGNoYXIgKmVzY2FwZXNbXSA9 IHsKKwkJImx0OyIsCisJCSJndDsiLAorCQkiYW1wOyIsCisJCSJhcG9zOyIs CisJCSJxdW90OyIsCisJCSJuYnNwOyIsCisJCU5VTEwKKwl9OworCWNvbnN0 IGNoYXIgZXNjX3ZhbHNbXSA9IHsKKwkJJzwnLAorCQknPicsCisJCScmJywK KwkJJ1wnJywKKwkJJyInLAorCQknICcsCisJCSdcMCcKKwl9OworCisJLyog d2UgYXNzdW1lIHdlIGdvdCBhICcmJyBiZWZvcmUgd2UgZ290IGhlcmUgKi8K KwlpZiAoIW5leHRfY2hhcihjdHgsIGJ1ZiArIGkpKSB7CisJCXByaW50Zigi RVJST1I6IHByZW1hdHVyZSBFT0YgKGxpbmUgJWQpXG4iLCBjdHgtPmxpbmVu byk7CisJCXJldHVybiAtMTsKKwl9CisJd2hpbGUgKChidWZbaV0gIT0gJzsn KSAmJiAoIXNpbXBsZV9pc3NwYWNlKGJ1ZltpXSkpICYmIChpIDwgc2l6ZW9m KGJ1ZiktMSkpIHsKKwkJaSsrOworCQlpZiAoIW5leHRfY2hhcihjdHgsIGJ1 ZiArIGkpKSB7CisJCQlwcmludGYoIkVSUk9SOiBwcmVtYXR1cmUgRU9GIChs aW5lICVkKVxuIiwgY3R4LT5saW5lbm8pOworCQkJcmV0dXJuIC0xOworCQl9 CisJfQorCWJ1ZltpICsgMV0gPSAnXDAnOworCisJLyogZ290IGFuIGVzY2Fw ZSAqLworCWlmIChidWZbaV0gPT0gJzsnKSB7CisJCWkgPSAwOworCQkvKiBn b3QgYSAmIyBzdHlsZSBlc2NhcGUgKi8KKwkJaWYgKGJ1ZlswXSA9PSAnIycp IHsKKwkJCWNoYXIgY2hhcmVzYyA9IC0xOworCQkJaW50IGJhc2UgPSAxMDsK KwkJCWkrKzsKKwkJCWlmIChzaW1wbGVfdG9sb3dlcihidWZbaV0pID09ICd4 JykgeworCQkJCWJhc2UgPSAxNjsKKwkJCQlpKys7CisJCQl9CisJCQl3aGls ZSAoYnVmW2ldICE9ICc7JykgeworCQkJCWludCBkZWN2YWw7CisKKwkJCQkv KiBjb252ZXJ0IGJ1ZltpXSkgKi8KKwkJCQlpZiAoc2ltcGxlX2lzZGlnaXQo YnVmW2ldKSkgeworCQkJCQlkZWN2YWwgPSBidWZbaV0gLSAnMCc7CisJCQkJ fSBlbHNlIGlmIChzaW1wbGVfaXN4ZGlnaXQoYnVmW2ldKSkgeworCQkJCQlk ZWN2YWwgPSAoc2ltcGxlX3RvbG93ZXIoYnVmW2ldKSAtICdhJykgKyAxMDsK KwkJCQl9IGVsc2UgeworCQkJCQlyZXR1cm4gLTE7CisJCQkJfQorCQkJCWNo YXJlc2MgKj0gYmFzZTsKKwkJCQljaGFyZXNjICs9IGRlY3ZhbDsKKwkJCX0K KwkJCXJldHVybiBjaGFyZXNjOworCQl9CisJCS8qIGdvdCBhICdub3JtYWwn IGVzY2FwZSAqLworCQl3aGlsZSAoZXNjYXBlc1tpXSkgeworCQkJaWYgKCFz aW1wbGVfc3RyY2FzZWNtcChidWYsIGVzY2FwZXNbaV0pKSB7CisJCQkJcmV0 dXJuIGVzY192YWxzW2ldOworCQkJfQorCQkJaSsrOworCQl9CisJfQorCisJ cmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50IGFkZF9jb250ZW50X2NoYXIo c3RydWN0IHhtbF9jb250ZXh0ICpjdHgsCisJCQkgICAgc3RydWN0IHhtbF9l bGVtZW50ICplLAorCQkJICAgIGNoYXIgYykKK3sKKwlpZiAoZS0+Y29udGVu dC0+c2l6ZSA9PSAwKSB7CisJCS8qIFRoaXMgaXMgdGhlIGZpcnN0IHBoYXNl IG9mIHRoZSBjb250ZW50CisJCSAqIHN0cmluZyB3aGl0ZXNwYWNlIGNsZWFu dXAuCisJCSAqIFNlY29uZCBwaGFzZSBpcyBpbiBjbGVhbnVwX3N0cmluZygp CisJCSAqLworCQlpZiAoc2ltcGxlX2lzc3BhY2UoYykgfHwgYyA9PSAnXG4n KXsKKworCQkJcmV0dXJuIDA7fQorCX0KKwlyZXR1cm4geG1sX3N0cmluZ19h cHBlbmRfYyhlLT5jb250ZW50LCBjKTsKK30KKworc3RhdGljIHZvaWQgY2xl YW51cF9zdHJpbmcoc3RydWN0IHhtbF9zdHJpbmcgKnMpCit7CisJc2l6ZV90 IGk7CisJY2hhciBjOworCisJLyogVGhpcyBpcyB0aGUgc2Vjb25kIHBoYXNl IG9mIHRoZSBjb250ZW50CisJICogc3RyaW5nIHdoaXRlc3BhY2UgY2xlYW51 cC4KKwkgKiBUaGUgZmlyc3QgcGhhc2UgaXMgaW4gYWRkX2NvbnRlbnRfY2hh cigpCisJICovCisJaWYgKHMtPnNpemUgPD0gMCkKKwkJcmV0dXJuOworCWkg PSBzLT5zaXplIC0gMTsKKwlkbyB7CisJCWMgPSBzLT5zW2ldOworCX0gd2hp bGUgKChzaW1wbGVfaXNzcGFjZShjKSB8fCBjID09ICdcbicpICYmIChpLS0g PiAwKSk7CisJcy0+c2l6ZSA9IGkgKyAxOworCXMtPnNbcy0+c2l6ZV0gPSAn XDAnOworfQorCitzdHJ1Y3QgeG1sX2VsZW1lbnQgKiBwYXJzZV9lbGVtZW50 KHN0cnVjdCB4bWxfY29udGV4dCAqY3R4LCBjaGFyIGZpcnN0KQoreworCWNo YXIgYzsKKwlzdGF0ZV90IHN0YXRlID0gU1RfVEFHU1RBUlQ7CisJc3RydWN0 IHhtbF9lbGVtZW50ICplID0gMDsKKwlzdHJ1Y3QgeG1sX3Byb3AgKnAgPSAw OworCXN0cnVjdCB4bWxfZWxlbWVudCAqcmV0ID0gMDsKKwlpbnQgZmxhZz0w OworCisJc3RydWN0IHhtbF9zdHJpbmcgKnByb3BuYW1lID0gMDsKKwlzdHJ1 Y3QgeG1sX3N0cmluZyAqcHJvcHZhbCA9IDA7CisJc3RydWN0IHhtbF9zdHJp bmcgKmVuZG5hbWUgPSAwOworCisJcmV0ID0gYWxsb2NfeG1sX2VsZW1lbnQo KTsKKwlpZiAoIXJldCkKKwkJZ290byBvdXRfZmFpbDsKKwlwcm9wbmFtZSA9 IGFsbG9jX3htbF9zdHJpbmcoKTsKKwlpZiAoIXByb3BuYW1lKQorCQlnb3Rv IG91dF9mYWlsOworCXByb3B2YWwgPSBhbGxvY194bWxfc3RyaW5nKCk7CisJ aWYgKCFwcm9wdmFsKQorCQlnb3RvIG91dF9mYWlsOworCWVuZG5hbWUgPSBh bGxvY194bWxfc3RyaW5nKCk7CisJaWYgKCFlbmRuYW1lKQorCQlnb3RvIG91 dF9mYWlsOworCisJLyogd2UgZ290IGEgJzwnICovCisJaWYgKGlzX25hbWVf c3RhcnQoZmlyc3QpKSB7CisJCWlmICh4bWxfc3RyaW5nX2FwcGVuZF9jKHJl dC0+bmFtZSwgc2ltcGxlX3RvbG93ZXIoZmlyc3QpKSkKKwkJCWdvdG8gb3V0 X2ZhaWw7CisJCXN0YXRlID0gU1RfU1RBUlRfU1RBRzsKKwl9IGVsc2UKKwkJ c3RhdGUgPSBTVF9UQUdTVEFSVDsKKworCXdoaWxlIChuZXh0X2NoYXIoY3R4 LCAmYykpIHsKKwkJc3dpdGNoIChzdGF0ZSkgeworCQkJLyogc3RhcnQgKi8K KwkJCWNhc2UgU1RfVEFHU1RBUlQ6CisJCQkJaWYgKHNpbXBsZV9pc3NwYWNl KGMpKSB7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFURTsgKi8KKwkJ CQl9IGVsc2UgaWYgKGlzX25hbWVfc3RhcnQoYykpIHsKKwkJCQkJaWYgKHht bF9zdHJpbmdfYXBwZW5kX2MocmV0LT5uYW1lLCBzaW1wbGVfdG9sb3dlcihj KSkpCisJCQkJCQlnb3RvIG91dF9mYWlsOworCQkJCQlzdGF0ZSA9IFNUX1NU QVJUX1NUQUc7CisJCQkJfSBlbHNlCisJCQkJCWdvdG8gb3V0X2ludmFsX2No YXI7CisJCQkJYnJlYWs7CisJCQkvKiB3ZSBnb3QgdGhlIHN0YXJ0IG9mIGEg a2V5d29yZCBmb3IgYW4gc3RhZyAqLworCQkJY2FzZSBTVF9TVEFSVF9TVEFH OgorCQkJCWlmIChpc19uYW1lKGMpKSB7CisJCQkJCWlmICh4bWxfc3RyaW5n X2FwcGVuZF9jKHJldC0+bmFtZSwgc2ltcGxlX3RvbG93ZXIoYykpKQorCQkJ CQkJZ290byBvdXRfZmFpbDsKKwkJCQkJLyogc3RhdGUgPSBDVVJSRU5UX1NU QVRFOyAqLworCQkJCX0gZWxzZSBpZiAoc2ltcGxlX2lzc3BhY2UoYykpCisJ CQkJCXN0YXRlID0gU1RfU1RBR19OQU1FX0RPTkU7CisJCQkJZWxzZSBpZiAo YyA9PSAnPicpCisJCQkJCXN0YXRlID0gU1RfRU5EX1NUQUc7CisJCQkJZWxz ZSBpZiAoYyA9PSAnLycpCisJCQkJCXN0YXRlID0gU1RfRU5EX1NFVEFHOwor CQkJCWVsc2UKKwkJCQkJZ290byBvdXRfaW52YWxfY2hhcjsKKwkJCQlicmVh azsKKwkJCS8qIGtleXdvcmQgZG9uZSAtIGxvb2sgZm9yIG5leHQgcHJvcCBv ciBvdGhlciAqLworCQkJY2FzZSBTVF9TVEFHX05BTUVfRE9ORToKKwkJCQlp ZiAoc2ltcGxlX2lzc3BhY2UoYykpIHsKKwkJCQkJLyogc3RhdGUgPSBDVVJS RU5UX1NUQVRFOyAqLworCQkJCX0gZWxzZSBpZiAoYyA9PSAnPicpeworCQkJ CQlzdGF0ZSA9IFNUX0VORF9TVEFHO30KKwkJCQllbHNlIGlmIChjID09ICcv JykKKwkJCQkJc3RhdGUgPSBTVF9FTkRfU0VUQUc7CisJCQkJZWxzZSBpZiAo aXNfbmFtZV9zdGFydChjKSkgeworCQkJCQkvKiBtdXN0IGJlIGEgcHJvcG5h bWUgKi8KKwkJCQkJaWYgKHhtbF9zdHJpbmdfYXBwZW5kX2MocHJvcG5hbWUs IHNpbXBsZV90b2xvd2VyKGMpKSkKKwkJCQkJCWdvdG8gb3V0X2ZhaWw7CisJ CQkJCXN0YXRlID0gU1RfUFJPUE5BTUU7CisJCQkJfSBlbHNlCisJCQkJCWdv dG8gb3V0X2ludmFsX2NoYXI7CisJCQkJYnJlYWs7CisJCQkvKiBmb3VuZCBz dGFydCBvZiBhIHByb3BuYW1lICovCisJCQljYXNlIFNUX1BST1BOQU1FOgor CQkJCWlmIChpc19uYW1lKGMpKSB7CisJCQkJCWlmICh4bWxfc3RyaW5nX2Fw cGVuZF9jKHByb3BuYW1lLCBzaW1wbGVfdG9sb3dlcihjKSkpCisJCQkJCQln b3RvIG91dF9mYWlsOworCQkJCQkvKiBzdGF0ZSA9IENVUlJFTlRfU1RBVEU7 ICovCisJCQkJfSBlbHNlIGlmIChjID09ICc9JykKKwkJCQkJc3RhdGUgPSBT VF9HT1RFUTsKKwkJCQllbHNlIGlmIChzaW1wbGVfaXNzcGFjZShjKSkKKwkJ CQkJc3RhdGUgPSBTVF9HRVRFUTsKKwkJCQllbHNlCisJCQkJCWdvdG8gb3V0 X2ludmFsX2NoYXI7CisJCQkJYnJlYWs7CisJCQkvKiBnb3QgcHJvcG5hbWUs IGdldCAnPScgKi8KKwkJCWNhc2UgU1RfR0VURVE6CisJCQkJaWYgKHNpbXBs ZV9pc3NwYWNlKGMpKSB7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFU RTsgKi8KKwkJCQl9IGVsc2UgaWYgKGMgPT0gJz0nKQorCQkJCQlzdGF0ZSA9 IFNUX0dPVEVROworCQkJCWVsc2UKKwkJCQkJZ290byBvdXRfaW52YWxfY2hh cjsKKwkJCQlicmVhazsKKwkJCS8qIGdvdCAnPScgLSBmaW5kIHByb3B2YWwg Ki8KKwkJCWNhc2UgU1RfR09URVE6CisJCQkJaWYgKHNpbXBsZV9pc3NwYWNl KGMpKSB7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFURTsgKi8KKwkJ CQl9IGVsc2UgaWYgKGMgPT0gJyInKQorCQkJCQlzdGF0ZSA9IFNUX1BST1BW QUw7CisJCQkJZWxzZSBpZiAoYyA9PSAnXCcnKQorCQkJCQlzdGF0ZSA9IFNU X1NRX1BST1BWQUw7CisJCQkJZWxzZQorCQkJCQlnb3RvIG91dF9pbnZhbF9j aGFyOworCQkJCWJyZWFrOworCQkJLyogZ290IGEgcXVvdGVkIHByb3B2YWwg Ki8KKwkJCWNhc2UgU1RfUFJPUFZBTDoKKwkJCQlpZiAoYyA9PSAnJicpIHsK KwkJCQkJY2hhciBsYyA9IHVuZXNjYXBlKGN0eCk7CisJCQkJCWlmIChsYyA+ IDApIHsKKwkJCQkJCWlmICh4bWxfc3RyaW5nX2FwcGVuZF9jKHByb3B2YWws IGxjKSkKKwkJCQkJCQlnb3RvIG91dF9mYWlsOworCQkJCQl9CisJCQkJfSBl bHNlIGlmIChjID09ICciJykgeworCQkJCQlwID0gYWxsb2NfeG1sX3Byb3Ao KTsKKwkJCQkJaWYgKCFwKQorCQkJCQkJZ290byBvdXRfZmFpbDsKKwkJCQkJ aWYgKHhtbF9zdHJpbmdfY29weShwLT5uYW1lLCBwcm9wbmFtZSkpCisJCQkJ CQlnb3RvIG91dF9mYWlsOworCQkJCQlpZiAoeG1sX3N0cmluZ19jb3B5KHAt PnZhbHVlLCBwcm9wdmFsKSkKKwkJCQkJCWdvdG8gb3V0X2ZhaWw7CisJCQkJ CXhtbF9lbGVtZW50X2FwcGVuZF9wcm9wKHJldCwgcCk7CisJCQkJCXAgPSAw OworCQkJCQl4bWxfc3RyaW5nX2NsZWFyKHByb3BuYW1lKTsKKwkJCQkJeG1s X3N0cmluZ19jbGVhcihwcm9wdmFsKTsKKwkJCQkJc3RhdGUgPSBTVF9TVEFH X05BTUVfRE9ORTsKKwkJCQl9IGVsc2UgaWYgKGMgPT0gJzwnKQorCQkJCQln b3RvIG91dF9pbnZhbF9jaGFyOworCQkJCWVsc2UgeworCQkJCQlpZiAoeG1s X3N0cmluZ19hcHBlbmRfYyhwcm9wdmFsLCBjKSkKKwkJCQkJCWdvdG8gb3V0 X2ZhaWw7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFURTsgKi8KKwkJ CQl9CisJCQkJYnJlYWs7CisJCQkvKiBnb3QgYSBzaW5nbGUtcXVvdGVkIHBy b3B2YWwgKi8KKwkJCWNhc2UgU1RfU1FfUFJPUFZBTDoKKwkJCQlpZiAoYyA9 PSAnJicpIHsKKwkJCQkJY2hhciBsYyA9IHVuZXNjYXBlKGN0eCk7CisJCQkJ CWlmIChsYyA+IDApIHsKKwkJCQkJCWlmICh4bWxfc3RyaW5nX2FwcGVuZF9j KHByb3B2YWwsIGxjKSkKKwkJCQkJCQlnb3RvIG91dF9mYWlsOworCQkJCQl9 CisJCQkJfSBlbHNlIGlmIChjID09ICdcJycpIHsKKwkJCQkJcCA9IGFsbG9j X3htbF9wcm9wKCk7CisJCQkJCWlmICghcCkKKwkJCQkJCWdvdG8gb3V0X2Zh aWw7CisJCQkJCWlmICh4bWxfc3RyaW5nX2NvcHkocC0+bmFtZSwgcHJvcG5h bWUpKQorCQkJCQkJZ290byBvdXRfZmFpbDsKKwkJCQkJaWYgKHhtbF9zdHJp bmdfY29weShwLT52YWx1ZSwgcHJvcHZhbCkpCisJCQkJCQlnb3RvIG91dF9m YWlsOworCQkJCQl4bWxfZWxlbWVudF9hcHBlbmRfcHJvcChyZXQsIHApOwor CQkJCQlwID0gMDsKKwkJCQkJeG1sX3N0cmluZ19jbGVhcihwcm9wbmFtZSk7 CisJCQkJCXhtbF9zdHJpbmdfY2xlYXIocHJvcHZhbCk7CisJCQkJCXN0YXRl ID0gU1RfU1RBR19OQU1FX0RPTkU7CisJCQkJfSBlbHNlIGlmIChjID09ICc8 JykgeworCQkJCQkvKiBzcGVjIHNheXMgdGhpcyBpcyBhbiBlcnJvciAqLwor CQkJCQlnb3RvIG91dF9pbnZhbF9jaGFyOworCQkJCX0gZWxzZSB7CisJCQkJ CWlmICh4bWxfc3RyaW5nX2FwcGVuZF9jKHByb3B2YWwsIGMpKQorCQkJCQkJ Z290byBvdXRfZmFpbDsKKwkJCQkJLyogc3RhdGUgPSBDVVJSRU5UX1NUQVRF OyAqLworCQkJCX0KKwkJCQlicmVhazsKKwkJCS8qIHNwZWMgc2F5cyB3ZSBt dXN0IGhhdmUgYSBzcGFjZSBiZXR3ZWVuIHByb3BzICovCisJCQljYXNlIFNU X1BPU1RfUFJPUFZBTDoKKwkJCQlpZiAoc2ltcGxlX2lzc3BhY2UoYykpCisJ CQkJCXN0YXRlID0gU1RfU1RBR19OQU1FX0RPTkU7CisJCQkJZWxzZSBpZiAo YyA9PSAnPicpCisJCQkJCXN0YXRlID0gU1RfRU5EX1NUQUc7CisJCQkJZWxz ZSBpZiAoYyA9PSAnLycpCisJCQkJCXN0YXRlID0gU1RfRU5EX1NFVEFHOwor CQkJCWVsc2UKKwkJCQkJZ290byBvdXRfaW52YWxfY2hhcjsKKwkJCQlicmVh azsKKwkJCS8qIGdvdCBhICcvJywgc3VnZ2VzdGluZyBhbiBlbXB0eSBlbGVt ZW50ICovCisJCQljYXNlIFNUX0VORF9TRVRBRzoKKwkJCQlpZiAoc2ltcGxl X2lzc3BhY2UoYykpIHsKKwkJCQkJLyogc3RhdGUgPSBDVVJSRU5UX1NUQVRF OyAqLworCQkJCX0gZWxzZSBpZiAoYyA9PSAnPicpCisJCQkJCWdvdG8gb3V0 X3N1Y2Nlc3M7CisJCQkJZWxzZQorCQkJCQlnb3RvIG91dF9pbnZhbF9jaGFy OworCQkJCWJyZWFrOworCQkJLyogdGltZSB0byBsb29rIGZvciBjb250ZW50 ICovCisJCQljYXNlIFNUX0VORF9TVEFHOgorCQkJCWlmIChzaW1wbGVfaXNz cGFjZShjKSkgeworCQkJCQkvKiBzdGF0ZSA9IENVUlJFTlRfU1RBVEU7ICov CisJCQkJfSBlbHNlIGlmIChjID09ICcmJykgeworCQkJCQljaGFyIGxjID0g dW5lc2NhcGUoY3R4KTsKKwkJCQkJaWYgKGxjID4gMCkgeworCQkJCQkJaWYg KGFkZF9jb250ZW50X2NoYXIoY3R4LCByZXQsIGxjKSkKKwkJCQkJCQlnb3Rv IG91dF9mYWlsOworCQkJCQl9CisJCQkJCXN0YXRlID0gU1RfQ09OVEVOVDsK KwkJCQl9IGVsc2UgaWYgKGMgPT0gJzwnKXsKKwkJCQkJc3RhdGUgPSBTVF9N QVlCRV9DT01NRU5UO30KKwkJCQllbHNlIHsKKwkJCQkJaWYgKGFkZF9jb250 ZW50X2NoYXIoY3R4LCByZXQsIGMpKQorCQkJCQkJZ290byBvdXRfZmFpbDsK KwkJCQkJc3RhdGUgPSBTVF9DT05URU5UOworCQkJCX0KKwkJCQlicmVhazsK KwkJCS8qIHByb2Nlc3NpbmcgY29udGVudCAqLworCQkJY2FzZSBTVF9DT05U RU5UOgorCQkJCWlmIChzaW1wbGVfaXNzcGFjZShjKSkgeworCQkJCQlpZiAo YWRkX2NvbnRlbnRfY2hhcihjdHgsIHJldCwgYykpewkJCisJCQkJCQlwcmlu dGYoImVsZW1lbnQgJXNcbiIsIGdldF9lbGVtZW50X25hbWUocmV0KSApOwor CQkJCQkJcHJpbnRmKCJmYWlsMlxuIik7CisJCQkJCQlnb3RvIG91dF9mYWls O30KKwkJCQkJLyogc3RhdGUgPSBDVVJSRU5UX1NUQVRFOyAqLworCQkJCX0J CSAgIAorCQkJCWVsc2UgaWYgKGMgPT0gJzwnKQorCQkJCQlzdGF0ZSA9IFNU X01BWUJFX0NPTU1FTlQ7CisJCQkJZWxzZSBpZiAoYyA9PSAnJicpIHsKKwkJ CQkJY2hhciBsYyA9IHVuZXNjYXBlKGN0eCk7CisJCQkJCWlmIChsYyA+IDAp IHsKKwkJCQkJCWlmIChhZGRfY29udGVudF9jaGFyKGN0eCwgcmV0LCBsYykp CisJCQkJCQkJCQlnb3RvIG91dF9mYWlsOworCQkJCQkJCX0KKwkJCQl9CQkJ CQkJCQkJCQkJCQkJCSAgICAgIAorCQkJCWVsc2UgeworCQkJCQlpZiAoYWRk X2NvbnRlbnRfY2hhcihjdHgsIHJldCwgYykpeworCQkJCQkJZ290byBvdXRf ZmFpbDt9CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFURTsgKi8KKwkJ CQl9CisJCQkJYnJlYWs7CisJCQkvKiBnb3QgYSAnPCcgLSBjaGVjayBmb3Ig YSBjb21tZW50ICovCisJCQljYXNlIFNUX01BWUJFX0NPTU1FTlQ6CisJCQkJ aWYgKGMgPT0gJyEnKQorCQkJCQljb21tZW50KGN0eCk7CisJCQkJZWxzZSBp ZiAoc2ltcGxlX2lzc3BhY2UoYykpCisJCQkJCXN0YXRlID0gU1RfTkVXVEFH X1NUQVJUOworCQkJCWVsc2UgaWYgKGMgPT0gJy8nKQorCQkJCQlzdGF0ZSA9 IFNUX1NUQVJUX0VUQUc7CisJCQkJZWxzZSB7CisJCQkJCWUgPSBwYXJzZV9l bGVtZW50KGN0eCwgYyk7CisJCQkJCWlmICghZSkKKwkJCQkJCWdvdG8gb3V0 X2ZhaWw7CisJCQkJCXhtbF9lbGVtZW50X2FwcGVuZF9jaGlsZChyZXQsIGUp OworCQkJCQllID0gMDsKKwkJCQkJc3RhdGUgPSBTVF9DT05URU5UOworCQkJ CQlmbGFnPTE7CisJCQkJfQorCQkJCWJyZWFrOworCQkJLyogZ290IGEgJzwn IGluIGNvbnRlbnQgLSBmaWd1cmUgaXQgb3V0ICovCisJCQljYXNlIFNUX05F V1RBR19TVEFSVDoKKwkJCQlpZiAoc2ltcGxlX2lzc3BhY2UoYykpIHsKKwkJ CQkJLyogc3RhdGUgPSBDVVJSRU5UX1NUQVRFOyAqLworCQkJCX0gZWxzZSBp ZiAoYyA9PSAnLycpCisJCQkJCXN0YXRlID0gU1RfU1RBUlRfRVRBRzsKKwkJ CQllbHNlIHsKKwkJCQkJZSA9IHBhcnNlX2VsZW1lbnQoY3R4LCBjKTsKKwkJ CQkJaWYgKCFlKQorCQkJCQkJZ290byBvdXRfZmFpbDsKKwkJCQkJeG1sX2Vs ZW1lbnRfYXBwZW5kX2NoaWxkKHJldCwgZSk7CisJCQkJCWUgPSAwOworCQkJ CQlzdGF0ZSA9IFNUX0NPTlRFTlQ7CisJCQkJfQorCQkJCWJyZWFrOworCQkJ LyogZ290IGEgPC8gKi8KKwkJCWNhc2UgU1RfU1RBUlRfRVRBRzoKKwkJCQlp ZiAoc2ltcGxlX2lzc3BhY2UoYykpIHsKKwkJCQkJLyogc3RhdGUgPSBDVVJS RU5UX1NUQVRFOyAqLworCQkJCX0gZWxzZSBpZiAoaXNfbmFtZV9zdGFydChj KSkgeworCQkJCQlpZiAoeG1sX3N0cmluZ19hcHBlbmRfYyhlbmRuYW1lLCBj KSkKKwkJCQkJCWdvdG8gb3V0X2ZhaWw7CisJCQkJCXN0YXRlID0gU1RfRVRB R19OQU1FOworCQkJCX0gZWxzZQorCQkJCQlnb3RvIG91dF9pbnZhbF9jaGFy OworCQkJCWJyZWFrOworCQkJLyogcmVhZGluZyBhbGwgb2YgPC9uYW1lICov CisJCQljYXNlIFNUX0VUQUdfTkFNRToKKwkJCQlpZiAoaXNfbmFtZShjKSkg eworCQkJCQlpZiAoeG1sX3N0cmluZ19hcHBlbmRfYyhlbmRuYW1lLCBjKSkK KwkJCQkJCWdvdG8gb3V0X2ZhaWw7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVO VF9TVEFURTsgKi8KKwkJCQl9IGVsc2UgaWYgKHNpbXBsZV9pc3NwYWNlKGMp KQorCQkJCQlzdGF0ZSA9IFNUX0VORF9FVEFHOworCQkJCWVsc2UgaWYgKGMg PT0gJz4nKSB7CisJCQkJCWlmIChyZXQtPm5hbWUtPnNpemUgPT0gZW5kbmFt ZS0+c2l6ZSAmJgorCQkJCQkgICAgc2ltcGxlX3N0cm5jYXNlY21wKHJldC0+ bmFtZS0+cywgZW5kbmFtZS0+cywgZW5kbmFtZS0+c2l6ZSkgPT0gMCkgewor CQkJCQkJZ290byBvdXRfc3VjY2VzczsKKwkJCQkJfSBlbHNlIHsKKwkJCQkJ CS8qIG5vdCBhIG1hdGNoISAqLworCQkJCQkJcHJpbnRmKCJlbmRuYW1lICgl cykgIT0gZWxlbWVudC0+bmFtZSAoJXMpXG4iLAorCQkJCQkJICAgICAgIGVu ZG5hbWUtPnMsIHJldC0+bmFtZS0+cyk7CisJCQkJCQlzdGF0ZSA9IFNUX0NP TlRFTlQ7CisJCQkJCQl4bWxfc3RyaW5nX2NsZWFyKGVuZG5hbWUpOworCQkJ CQl9CisJCQkJfSBlbHNlCisJCQkJCWdvdG8gb3V0X2ludmFsX2NoYXI7CisJ CQkJYnJlYWs7CisJCQkvKiBqdXN0IGdldCAnPicgYW5kIHdyYXAgdXAgKi8K KwkJCWNhc2UgU1RfRU5EX0VUQUc6CisJCQkJaWYgKHNpbXBsZV9pc3NwYWNl KGMpKSB7CisJCQkJCS8qIHN0YXRlID0gQ1VSUkVOVF9TVEFURTsgKi8KKwkJ CQl9IGVsc2UgaWYgKGMgPT0gJz4nKSB7CisJCQkJCWlmIChyZXQtPm5hbWUt PnNpemUgPT0gZW5kbmFtZS0+c2l6ZSAmJgorCQkJCQkgICAgc2ltcGxlX3N0 cm5jYXNlY21wKHJldC0+bmFtZS0+cywgZW5kbmFtZS0+cywgZW5kbmFtZS0+ c2l6ZSkgPT0gMCkgeworCQkJCQkJZ290byBvdXRfc3VjY2VzczsKKwkJCQkJ fSBlbHNlIHsKKwkJCQkJCS8qIG5vdCBhIG1hdGNoISAqLworCQkJCQkJcHJp bnRmKCJlbmRuYW1lICglcykgIT0gZWxlbWVudC0+bmFtZSAoJXMpXG4iLAor CQkJCQkJICAgICAgIGVuZG5hbWUtPnMsIHJldC0+bmFtZS0+cyk7CisJCQkJ CQlzdGF0ZSA9IFNUX0NPTlRFTlQ7CisJCQkJCQl4bWxfc3RyaW5nX2NsZWFy KGVuZG5hbWUpOworCQkJCQl9CisJCQkJfSBlbHNlCisJCQkJCWdvdG8gb3V0 X2ludmFsX2NoYXI7CisJCQkJYnJlYWs7CisJCX0KKwl9CisJcHJpbnRmKCJF UlJPUjogcHJlbWF0dXJlIEVPRiAobGluZSAlZClcbiIsIGN0eC0+bGluZW5v KTsKKwlnb3RvIG91dF9mYWlsOworCitvdXRfaW52YWxfY2hhcjoKKwlwcmlu dGYoImludmFsaWQgY2hhciAnJWMnIGluIHN0YXRlICVkIChsaW5lICVkKVxu IiwKKwkgICAgICAgYywgc3RhdGUsIGN0eC0+bGluZW5vKTsKK291dF9mYWls OgorCXhtbF9mcmVlX2VsZW1lbnQocmV0KTsKKwl4bWxfZnJlZV9lbGVtZW50 KGUpOworCWZyZWVfeG1sX3Byb3AocCk7CisJZnJlZV94bWxfc3RyaW5nKHBy b3BuYW1lKTsKKwlmcmVlX3htbF9zdHJpbmcocHJvcHZhbCk7CisJZnJlZV94 bWxfc3RyaW5nKGVuZG5hbWUpOworCXJldHVybiAwOworCitvdXRfc3VjY2Vz czoKKwlmcmVlX3htbF9zdHJpbmcocHJvcG5hbWUpOworCWZyZWVfeG1sX3N0 cmluZyhwcm9wdmFsKTsKKwlmcmVlX3htbF9zdHJpbmcoZW5kbmFtZSk7CisJ Y2xlYW51cF9zdHJpbmcocmV0LT5jb250ZW50KTsKKwlyZXR1cm4gcmV0Owor fQorCitpbnQgeG1sX3BhcnNlX2J1ZmZlcihzdHJ1Y3QgeG1sX2J1ZmZlciBi dWZmZXIsIHN0cnVjdCB4bWxfZWxlbWVudCAqKnJldCkKK3sKKwlzdHJ1Y3Qg eG1sX2VsZW1lbnQgKnJvb3Q7CisJc3RydWN0IHhtbF9lbGVtZW50ICplOwor CXN0cnVjdCB4bWxfY29udGV4dCBjdHg7CisJY2hhciBjOworCWludCBjYW5f cHJvbG9nID0gMTsKKworCXJvb3QgPSBhbGxvY194bWxfZWxlbWVudCgpOwor CXN0cmNweShyb290LT5uYW1lLT5zLCAicm9vdCIpOworCWlmICghcm9vdCkK KwkJcmV0dXJuIDE7CisJY3R4LmJ1ZiA9IGJ1ZmZlci50ZXh0OworCWN0eC5z aXplID0gYnVmZmVyLnRleHRfc2l6ZTsKKwljdHgucG9zID0gMDsKKwljdHgu bGluZW5vID0gMTsKKworCXdoaWxlIChuZXh0X2NoYXIoJmN0eCwgJmMpKSB7 CisJCWlmIChzaW1wbGVfaXNzcGFjZShjKSkKKwkJY29udGludWU7CisJCWVs c2UgaWYgKGMgPT0gJzwnKSB7CisJCQlpZiAoIW5leHRfY2hhcigmY3R4LCAm YykpCisJCQkJZ290byBvdXRfcHJlbWF0X2VvZjsKKwkJCS8qIGhhbmRsZSBh IHByb2xvZyAoIjw/IikgKi8KKwkJCWlmIChjID09ICc/JyAmJiBjYW5fcHJv bG9nKSB7CisJCQkJcHJvbG9nKCZjdHgpOworCQkJCWNvbnRpbnVlOworCQkJ fQorCQkJY2FuX3Byb2xvZyA9IDA7CisKKwkJCS8qIGhhbmRsZSBhIGNvbW1l bnQgKCI8ISIpICovCisJCQlpZiAoYyA9PSAnIScpIHsKKwkJCQljb21tZW50 KCZjdHgpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQllID0gcGFyc2Vf ZWxlbWVudCgmY3R4LCBjKTsKKwkJCWlmICghZSkKKwkJCQlnb3RvIG91dF9m YWlsOworCQkJeG1sX2VsZW1lbnRfYXBwZW5kX2NoaWxkKHJvb3QsIGUpOwor CQl9IGVsc2UKKwkJCWdvdG8gb3V0X2ludmFsX2NoYXI7CisJfQorCS8vcHJp bnRmKCJibGEiKTsKKwkqcmV0ID0gcm9vdDsKKwlyZXR1cm4gMDsKKworb3V0 X3ByZW1hdF9lb2Y6CisJcHJpbnRmKCJFUlJPUjogcHJlbWF0dXJlIEVPRiAo bGluZSAlZClcbiIsIGN0eC5saW5lbm8pOworCWdvdG8gb3V0X2ZhaWw7CisK K291dF9pbnZhbF9jaGFyOgorCXByaW50ZigiaW52YWxpZCBjaGFyICclYycg aW4gc3RhdGUgdG9wIChsaW5lICVkKVxuIiwKKwkgICAgICAgYywgY3R4Lmxp bmVubyk7CisKK291dF9mYWlsOgorCXByaW50Zigib3V0X2ZhaWxcbiIpOwor CXhtbF9mcmVlX2VsZW1lbnQocm9vdCk7CisJcmV0dXJuIDE7Cit9IAorCitz dHJ1Y3QgeG1sX2J1ZmZlciAgbG9hZF94bWxfZmlsZShjaGFyICpzb3VyY2Up eworCQorCUZJTEUgKnBfSW5UZXh0OworCXN0cnVjdCB4bWxfYnVmZmVyIGJ1 ZmZlcjsKKwkKKyAgICAJcF9JblRleHQgPSBmb3BlbiAoc291cmNlICwgInIi KTsKKworCWlmIChwX0luVGV4dCA9PSBOVUxMKQorCXsKKwkJIHByaW50Zigi RmVobGVyIGJlaW0gbGVzZW4gZGVyIERhdGVpIFxuIik7CisJCSBleGl0KDEp OworCX0gLypFbmQgSWYgKi8KKworCWVsc2UKKwl7CisJCSBmc2VlayggcF9J blRleHQsIDAgLCBTRUVLX0VORCk7CisJCSBidWZmZXIudGV4dF9zaXplID0g ZnRlbGwocF9JblRleHQpOworCQkgYnVmZmVyLnRleHQgPSAgKGNoYXIqKSBt YWxsb2Moc2l6ZW9mKGNoYXIpKmJ1ZmZlci50ZXh0X3NpemUpOworCQkgcmV3 aW5kKHBfSW5UZXh0KTsKKwkJIGZyZWFkKGJ1ZmZlci50ZXh0LCAxLCBidWZm ZXIudGV4dF9zaXplLCBwX0luVGV4dCk7CisJCXJldHVybiBidWZmZXI7CisJ IH0gLyogRW5kIGVsc2UgKi8KKwkKK30KKworCmRpZmYgLXVyTiBsaW51eC5v cmcvc2NyaXB0cy9rY29uZmlnL3htbHBhcnNlci5oIGxpbnV4LTIuNi4xMy9z Y3JpcHRzL2tjb25maWcveG1scGFyc2VyLmgKLS0tIGxpbnV4Lm9yZy9zY3Jp cHRzL2tjb25maWcveG1scGFyc2VyLmgJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25m aWcveG1scGFyc2VyLmgJMjAwNS0wOS0xMyAxNzo1Mjo1OS4wMDAwMDAwMDAg KzAyMDAKQEAgLTAsMCArMSw3NiBAQAorLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgor ICogIFNpbXBsZSBYTUwgUGFyc2VyLiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICogICAgIGNvcHly aWdodCAoQykgIFRpbSBIb2NraW4gPHRob2NraW5AaG9ja2luLm9yZz4gICAg ICAgICAgICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKgorICogIEhlYXZpbHkgbW9kaWZpZWQgYnkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICog ICAgIGNvcHlyaWdodCAoQykgMjAwNCwgMjAwNSAgTWljaGFlbCBCdWVzY2gg PG1idWVzY2hAZnJlZW5ldC5kZT4gICAgICAgKgorICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKgorICogUmVsZWFzZWQgdW5kZXIgdGhlIExHUEwg dmVyc2lvbiAyLjEgKGh0dHA6Ly93d3cuZ251Lm9yZykgICAgICAgICAgICAg ICAgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgICAgKgorICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgdmVyc2lvbiAyLjEgKgorICogYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICAgICAgICAgICAgICAg ICAgICAgICAgICAgKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRl ZiBQV01BTkFHRVJfRFVNUF9YTUxQQVJTRVJfSF8KKyNkZWZpbmUgUFdNQU5B R0VSX0RVTVBfWE1MUEFSU0VSX0hfCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4K KworCitzdHJ1Y3QgeG1sX3N0cmluZworeworCWNoYXIgKnM7CisJc2l6ZV90 IHNpemU7CisJLyogaW50ZXJuYWw6ICovCisJc2l6ZV90IF9jYXBhY2l0eTsK K307CisKK3N0cnVjdCB4bWxfcHJvcAoreworCXN0cnVjdCB4bWxfc3RyaW5n ICpuYW1lOworCXN0cnVjdCB4bWxfc3RyaW5nICp2YWx1ZTsKKworCXN0cnVj dCB4bWxfcHJvcCAqbmV4dDsKKwlzdHJ1Y3QgeG1sX3Byb3AgKnByZXY7Cit9 OworCitzdHJ1Y3QgeG1sX2VsZW1lbnQKK3sKKwlzdHJ1Y3QgeG1sX3N0cmlu ZyAqbmFtZTsKKwlzdHJ1Y3QgeG1sX3N0cmluZyAqY29udGVudDsKKworCXN0 cnVjdCB4bWxfcHJvcCAqZmlyc3RfcHJvcDsKKwlzdHJ1Y3QgeG1sX3Byb3Ag Kmxhc3RfcHJvcDsKKworCXN0cnVjdCB4bWxfZWxlbWVudCAqZmlyc3RfY2hp bGQ7CisJc3RydWN0IHhtbF9lbGVtZW50ICpsYXN0X2NoaWxkOworCXN0cnVj dCB4bWxfZWxlbWVudCAqcGFyZW50OworCXN0cnVjdCB4bWxfZWxlbWVudCAq bmV4dDsKKwlzdHJ1Y3QgeG1sX2VsZW1lbnQgKnByZXY7CisJY2hhciBvcHRp b25fbmFtZVsxMjhdOworCWludCBtX2hfdmFsdWU7CisJaW50IG1faF9jbnQ7 CisJaW50IG1faF9wcmlvcjsKK307CisKK3N0cnVjdCB4bWxfYnVmZmVyewor CWNoYXIgKnRleHQ7CisJc2l6ZV90IHRleHRfc2l6ZTsKK307CisKK2ludCB4 bWxfcGFyc2VfYnVmZmVyKHN0cnVjdCB4bWxfYnVmZmVyIGJ1ZmZlciwgc3Ry dWN0IHhtbF9lbGVtZW50ICoqcmV0KTsKK3ZvaWQgeG1sX2ZyZWVfZWxlbWVu dChzdHJ1Y3QgeG1sX2VsZW1lbnQgKmUpOworCitzdHJ1Y3QgeG1sX2VsZW1l bnQqIGdldF9maXJzdF9jaGlsZChzdHJ1Y3QgeG1sX2VsZW1lbnQgKnBhcmVu dCk7CitzdHJ1Y3QgeG1sX2VsZW1lbnQqIGdldF9uZXh0X25vZGUoc3RydWN0 IHhtbF9lbGVtZW50ICplbGVtZW50KTsKK2NoYXIgKiBnZXRfZWxlbWVudF9u YW1lKHN0cnVjdCB4bWxfZWxlbWVudCAqZWxlbWVudCk7CitjaGFyICogZ2V0 X2VsZW1lbnRfY29udGVudChzdHJ1Y3QgeG1sX2VsZW1lbnQgKmVsZW1lbnQp Oworc3RydWN0IHhtbF9wcm9wICpnZXRfbmV4dF9hdHRyaWJ1dGUoIHN0cnVj dCB4bWxfZWxlbWVudCAqZWxlbWVudCwgc3RydWN0IHhtbF9wcm9wKiBhdHRy aWJ1dGUpOworY2hhciAqZ2V0X2F0dHJpYnV0ZV9uYW1lKHN0cnVjdCB4bWxf cHJvcCogYXR0cmlidXRlKTsKK2NoYXIgKmdldF9hdHRyaWJ1dGVfdmFsdWUo c3RydWN0IHhtbF9wcm9wKiBhdHRyaWJ1dGUpOworc3RydWN0IHhtbF9lbGVt ZW50ICpnZXRfZWxlbWVudF9wYXJlbnQoc3RydWN0IHhtbF9lbGVtZW50ICpl bGVtZW50KTsKK3N0cnVjdCB4bWxfYnVmZmVyICBsb2FkX3htbF9maWxlKGNo YXIgKnNvdXJjZSk7CisKKyNlbmRpZiAvKiBQV01BTkFHRVJfRFVNUF9YTUxQ QVJTRVJfSF8gKi8gCmRpZmYgLXVyTiBsaW51eC5vcmcvc2NyaXB0cy9rY29u ZmlnL3htbHV0aWwuYyBsaW51eC0yLjYuMTMvc2NyaXB0cy9rY29uZmlnL3ht bHV0aWwuYwotLS0gbGludXgub3JnL3NjcmlwdHMva2NvbmZpZy94bWx1dGls LmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIGxp bnV4LTIuNi4xMy9zY3JpcHRzL2tjb25maWcveG1sdXRpbC5jCTIwMDUtMDkt MDYgMTE6MDc6NDIuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsMTA1IEBA CisjaW5jbHVkZSAieG1sdXRpbC5oIgorCitpbnQgc2ltcGxlX2lzdXBwZXIo aW50IGMpCit7CisJcmV0dXJuIChjID49ICdBJyAmJiBjIDw9ICdaJyk7Cit9 CisKK2ludCBzaW1wbGVfaXNsb3dlcihpbnQgYykKK3sKKwlyZXR1cm4gKGMg Pj0gJ2EnICYmIGMgPD0gJ3onKTsKK30KKworaW50IHNpbXBsZV9pc2FscGhh KGludCBjKQoreworCXJldHVybiAoc2ltcGxlX2lzdXBwZXIoYykgfHwgc2lt cGxlX2lzbG93ZXIoYykpOworfQorCitpbnQgc2ltcGxlX2lzZGlnaXQoaW50 IGMpCit7CisJcmV0dXJuIChjID49ICcwJyAmJiBjIDw9ICc5Jyk7Cit9CisK K2ludCBzaW1wbGVfaXNkaWdpdF9zdHJpbmcoY29uc3QgY2hhciAqcykKK3sK Kwl3aGlsZSAoKnMpIHsKKwkJaWYgKCFzaW1wbGVfaXNkaWdpdCgqcykpCisJ CQlyZXR1cm4gMDsKKwkJcysrOworCX0KKwlyZXR1cm4gMTsKK30KKworaW50 IHNpbXBsZV9pc3NwYWNlKGludCBjKQoreworCXN3aXRjaCAoYykgeworCWNh c2UgJyAnOgorCWNhc2UgJ1xmJzoKKwljYXNlICdcbic6CisJY2FzZSAnXHIn OgorCWNhc2UgJ1x0JzoKKwljYXNlICdcdic6CisJCXJldHVybiAxOworCX0K KwlyZXR1cm4gMDsKK30KKworaW50IHNpbXBsZV90b2xvd2VyKGludCBjKQor eworCWlmICghc2ltcGxlX2lzdXBwZXIoYykpCisJCXJldHVybiBjOworCXJl dHVybiAoYyAtICdBJyArICdhJyk7Cit9CisKK2ludCBzaW1wbGVfdG91cHBl cihpbnQgYykKK3sKKwlpZiAoIXNpbXBsZV9pc2xvd2VyKGMpKQorCQlyZXR1 cm4gYzsKKwlyZXR1cm4gKGMgLSAnYScgKyAnQScpOworfQorCitpbnQgc2lt cGxlX2lzeGRpZ2l0KGludCBjKQoreworCWlmIChzaW1wbGVfaXNkaWdpdChj KSkKKwkJcmV0dXJuIDE7CisJaWYgKGMgPj0gJ0EnICYmIGMgPD0gJ0YnKQor CQlyZXR1cm4gMTsKKwlpZiAoYyA+PSAnYScgJiYgYyA8PSAnZicpCisJCXJl dHVybiAxOworCXJldHVybiAwOworfQorCitpbnQgc2ltcGxlX3N0cmNhc2Vj bXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyKQoreworCXVuc2ln bmVkIGNoYXIgKmMxLCAqYzI7CisKKwljMSA9ICh1bnNpZ25lZCBjaGFyICop czE7CisJYzIgPSAodW5zaWduZWQgY2hhciAqKXMyOworCXdoaWxlICgqYzEg JiYgKmMyICYmCisJICAgICAgIHNpbXBsZV90b2xvd2VyKCpjMSkgPT0gc2lt cGxlX3RvbG93ZXIoKmMyKSkgeworCQljMSsrOworCQljMisrOworCX0KKwor CXJldHVybiAqYzEgLSAqYzI7Cit9CisKK2ludCBzaW1wbGVfc3RybmNhc2Vj bXAoY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLCBzaXplX3QgbikK K3sKKwl1bnNpZ25lZCBjaGFyICpjMSwgKmMyOworCisJaWYgKG4gPD0gMCkK KwkJcmV0dXJuIDA7CisJYzEgPSAodW5zaWduZWQgY2hhciAqKXMxOworCWMy ID0gKHVuc2lnbmVkIGNoYXIgKilzMjsKKwl3aGlsZSAoKmMxICYmICpjMiAm JgorCSAgICAgICBzaW1wbGVfdG9sb3dlcigqYzEpID09IHNpbXBsZV90b2xv d2VyKCpjMikpIHsKKwkJbi0tOworCQlpZiAobiA8PSAwKQorCQkJcmV0dXJu IDA7CisJCWMxKys7CisJCWMyKys7CisJfQorCisJcmV0dXJuICpjMSAtICpj MjsKK30KZGlmZiAtdXJOIGxpbnV4Lm9yZy9zY3JpcHRzL2tjb25maWcveG1s dXRpbC5oIGxpbnV4LTIuNi4xMy9zY3JpcHRzL2tjb25maWcveG1sdXRpbC5o Ci0tLSBsaW51eC5vcmcvc2NyaXB0cy9rY29uZmlnL3htbHV0aWwuaAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysgbGludXgtMi42 LjEzL3NjcmlwdHMva2NvbmZpZy94bWx1dGlsLmgJMjAwNS0wOS0wNiAxMTow Nzo0Mi4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwxOCBAQAorI2lmbmRl ZiBQV01BTkFHRVJfRFVNUF9TVFJJTkdDQVNFX0hfCisjZGVmaW5lIFBXTUFO QUdFUl9EVU1QX1NUUklOR0NBU0VfSF8KKworI2luY2x1ZGUgPHN0ZGRlZi5o PgorCitpbnQgc2ltcGxlX2lzdXBwZXIoaW50IGMpOworaW50IHNpbXBsZV9p c2xvd2VyKGludCBjKTsKK2ludCBzaW1wbGVfaXNhbHBoYShpbnQgYyk7Citp bnQgc2ltcGxlX2lzZGlnaXQoaW50IGMpOworaW50IHNpbXBsZV9pc2RpZ2l0 X3N0cmluZyhjb25zdCBjaGFyICpzKTsKK2ludCBzaW1wbGVfaXNzcGFjZShp bnQgYyk7CitpbnQgc2ltcGxlX3RvbG93ZXIoaW50IGMpOworaW50IHNpbXBs ZV90b3VwcGVyKGludCBjKTsKK2ludCBzaW1wbGVfaXN4ZGlnaXQoaW50IGMp OworaW50IHNpbXBsZV9zdHJjYXNlY21wKGNvbnN0IGNoYXIgKnMxLCBjb25z dCBjaGFyICpzMik7CitpbnQgc2ltcGxlX3N0cm5jYXNlY21wKGNvbnN0IGNo YXIgKnMxLCBjb25zdCBjaGFyICpzMiwgc2l6ZV90IG4pOworCisjZW5kaWYg LyogUFdNQU5BR0VSX0RVTVBfU1RSSU5HQ0FTRV9IXyAqLwo= --0-1435845163-1126817917=:87422-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/