<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>92814</bug_id>
          
          <creation_ts>2012-07-31 16:58:53 -0700</creation_ts>
          <short_desc>Make it possible to run the WebProcess as an XPC service</short_desc>
          <delta_ts>2012-08-11 17:00:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683647</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-07-31 16:58:53 -0700</bug_when>
    <thetext>Make it possible to run the WebProcess as an XPC service</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683686</commentid>
    <comment_count>1</comment_count>
      <attachid>155688</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-07-31 17:33:47 -0700</bug_when>
    <thetext>Created attachment 155688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693152</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-08-11 17:00:48 -0700</bug_when>
    <thetext>Committed r125358: &lt;http://trac.webkit.org/changeset/125358&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155688</attachid>
            <date>2012-07-31 17:33:47 -0700</date>
            <delta_ts>2012-08-06 18:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92814-20120731173332.patch</filename>
            <type>text/plain</type>
            <size>64265</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNDI3MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyNCBAQAorMjAxMi0wNy0zMSAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gcnVu
IHRoZSBXZWJQcm9jZXNzIGFzIGFuIFhQQyBzZXJ2aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHRoaXMgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiwg
d2UgYXJlIG9ubHkgdXNpbmcgdGhlIFhQQyBzZXJ2aWNlCisgICAgICAgIHRvIGxhdW5jaCB0aGUg
V2ViUHJvY2VzcywgYW5kIHRoZW4gdXNpbmcgdGhlIHhwY19jb25uZWN0aW9uIHRvIHNlbmQKKyAg
ICAgICAgb3ZlciBhIG1hY2hfcG9ydCB0byB0aGUgV2ViUHJvY2VzcyB3aGljaCBpcyB0aGVuIHVz
ZWQgZm9yIGNyZWF0aW5nCisgICAgICAgIHRoZSBDb3JlSVBDIGNvbm5lY3Rpb24uICBJbiB0aGUg
ZnV0dXJlLCB3ZSB3aWxsIHN3aXRjaCB0byB1c2luZyB0aGUKKyAgICAgICAgeHBjX2Nvbm5lY3Rp
b24gZm9yIGFsbCBtZXNzYWdpbmcuCisKKyAgICAgICAgV2hlbiB0aGUgWFBDIHNlcnZpY2UgaXMg
ZW5hYmxlZCAoaXQgaXMgY29tcGlsZWQgb3V0IGJ5IGRlZmF1bHQgZm9yIG5vdyksIGJvdGgKKyAg
ICAgICAgdGhlIFhQQyBzZXJ2aWNlIGFuZCB0aGUgb2xkIHNwYXduZWQgcHJvY2VzcyBhcmUgcnVu
dGltZSBjaG9vc2FibGUuICBUaGlzIGFsbG93cworICAgICAgICB0aGUgY29ubmVjdCB0byBwcmUt
ZXhpc3RpbmcgcHJvY2VzcyB3b3JrZmxvdyB0byBjb250aW51ZSB0byB3b3JrLgorCisgICAgICAg
IFRoZXJlIGFyZSBhIGZldyBhZGRpdGlvbmFsIGNhdmVhdHMgb2YgdGhpcyBpbml0aWFsIGltcGxl
bWVudGF0aW9uOgorICAgICAgICAgICAgLSBJdCBpcyBvbmx5IHNldCB1cCBmb3IgdGhlIFdlYlBy
b2Nlc3MgKG5vdCBmb3IgdGhlIFBsdWdpblByb2Nlc3MpCisgICAgICAgICAgICAtIFRoZSBXZWJQ
cm9jZXNzIHNoaW0gZG9lcyBub3Qgd29yay4KKyAgICAgICAgICAgIC0gSXQgcmVxdWlyZXMgYSBu
ZXcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYmUgc2V0IHdoZW4gbGF1bmNoaW5nCisgICAgICAg
ICAgICAgIHRvIGZpbmQgdGhlIHJpZ2h0IHNlcnZpY2UgdG8gbGF1bmNoIChfX1hQQ19EWUxEX0ZS
QU1FV09SS19QQVRIKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdDJTZXJ2aWNl
LnhjY29uZmlnOiBBZGRlZC4KKyAgICAgICAgQWRkIG5ldyBjb25maWd1cmF0aW9uIGZpbGUgZm9y
IHRoZSBzZXJ2aWNlLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6
CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyOjpJZGVudGlmaWVyKToK
KyAgICAgICAgKENvcmVJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc051bGwpOgorICAgICAg
ICBBZGRlZCB0byBlbmNhcHN1bGF0ZSB0aGUgY29uY2VwdCBvZiBhIG51bGwgaWRlbnRpZmllciwg
bm93IHRoYXQgaXQKKyAgICAgICAgaXMgbm90IHBvc3NpYmxlIHRvIGp1c3QgY29tcGFyZSB0byBu
dWxsLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6
CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpwbGF0Zm9ybUludmFsaWRhdGUpOgorICAg
ICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAg
Q2hhbmdlIENvbm5lY3Rpb246OklkZW50aWZpZXIgb24gdGhlIE1hYyB0byBiZSBhIHN0cnVjdCBp
bnN0ZWFkIG9mCisgICAgICAgIGEgdHlwZWRlZiB0byBhIG1hY2hfcG9ydC4gVGhpcyBhbGxvd3Mg
Zm9yIHRoZSBDb25uZWN0aW9uIHRvIGdldCBib3RoCisgICAgICAgIHRoZSBsaXN0ZW5pbmcgcG9y
dCBhbmQgYSByZWZlcmVuY2UgdG8gdGhlIHhwY19jb25uZWN0aW9uIChpZiBpdAorICAgICAgICBj
b21waWxlZCBpbikuIEZvciBub3csIGFsbCB3ZSBkbyBpcyByZXRhaW4gdGhlIHhwY19jb25uZWN0
aW9uIHdoZW4gaXQKKyAgICAgICAgaXMgZ2l2ZW4gdG8gdXMsIGFuZCByZWxlYXNlIG9uIENvbm5l
Y3Rpb24gaW52YWxpZGF0aW9uLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWluTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFpbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6Z2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICBVc2UgdGhlIENvbm5lY3Rpb246OklkZW50
aWZpZXIgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmg6CisgICAgICAgIChMYXVuY2hPcHRpb25zKToKKyAgICAgICAgQWRkIGEgVXNl
WFBDIG9wdGlvbiB0byB0aGUgTGF1bmNoT3B0aW9ucyBzbyB3ZSBjYW4gZHluYW1pY2FsbHkgY2hv
b3NlIHdoZXRoZXIgdG8gdXNlIGl0LgorCisgICAgICAgIChQcm9jZXNzTGF1bmNoZXIpOgorICAg
ICAgICBNYWtlIHByb2Nlc3NUeXBlQXNTdHJpbmcgcHVibGljIHRvIGFsbG93IGJldHRlciBmYWN0
b3JpbmcgaW4gdGhlIGltcGxlbWVudGF0aW9uIGZpbGUKKyAgICAgICAgdXNpbmcgc3RhdGljIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tOgorICAgICAgICBGYWN0b3Igb3V0IHRoZSBkaWZmZXJlbnQgbGF1bmNoaW5nIG9w
dGlvbnMgaW50byBoZWxwZXIgZnVuY3Rpb25zLiBBbHdheXMgc3RhcnQgYnkKKyAgICAgICAgdHJ5
aW5nIHRvIGNvbm5lY3QgdG8gYSBwcmUtZXhpc3RpbmcgcHJvY2Vzcy4KKworICAgICAgICAoV2Vi
S2l0OjpsYXVuY2hYUENTZXJ2aWNlKToKKyAgICAgICAgQ3JlYXRlIGEgbmV3IHhwY19jb25uZWN0
aW9uIHRvIG91ciBzZXJ2aWNlLCBhbmQgZ2l2ZSBpdCBhIHVuaXF1ZSBpbnN0YW5jZSBVVUlELgor
ICAgICAgICBUaGVuLCBzZW5kIGEgYm9vdHN0cmFwIG1lc3NhZ2Ugd2l0aCBhIG1hY2hfcG9ydCBh
bmQgd2FpdCBmb3IgYSByZXBseSB0byBjb21wbGV0ZQorICAgICAgICB0aGUgbGF1bmNoIHByb2Nl
ZHVyZS4KKyAKKyAgICAgICAgKFdlYktpdDo6dHJ5UHJlZXhpc3RpbmdQcm9jZXNzKToKKyAgICAg
ICAgTW92ZSB0aGUgY29kZSB0byBjb25uZWN0IHRvIGEgcHJlZXhpc3RpbmcgcHJvY2VzcyB0byBp
dHMgb3duIGhlbHBlciBmdW5jdGlvbi4KKworICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNo
ZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICBDbGVhbiB1cCBhIGJpdCwgY2FsbGluZyB0aGUg
aGVscGVyIGZ1bmN0aW9ucyBhbmQgYWRkaW5nIGNhbGwgdG8gbGF1bmNoIHRoZSBYUEMgc2Vydmlj
ZQorICAgICAgICBpZiBpdCBpcyBlbmFibGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6d2ViVGhyZWFk
Qm9keSk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZExhdW5jaGVyOjpjcmVhdGVXZWJUaHJlYWQp
OgorICAgICAgICBTd2l0Y2ggdG8gdXNpbmcgdGhlIGNvbnN0cnVjdG9yIHZlcnNpb24gb2YgSWRl
bnRpZmllci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6UGx1Z2luUHJvY2Vz
c1Byb3h5KToKKyAgICAgICAgRG9uJ3QgdHJ5IHRvIHVzZSB0aGUgWFBDIHNlcnZpY2UgZm9yIHBs
dWdpbnMgeWV0LgorIAorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZp
bmlzaExhdW5jaGluZyk6CisgICAgICAgIFVzZSBDb25uZWN0aW9uOjppZGVudGlmaWVySXNOdWxs
IGluc3RlYWQgb2YgZXhwbGljaXQgbnVsbCBjaGVjay4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNv
bm5lY3QpOgorICAgICAgICBJZiBYUEMgaXMgY29tcGlsZWQgaW4gKGl0IGN1cnJlbnRseSBpcyBu
b3QpIGVuYWJsZSBpdCBieSBkZWZhdWx0LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgdGhlIG5ldyBmaWxlcyBhbmQgdGFyZ2V0cy4K
KworICAgICAgICAqIFdlYktpdDJTZXJ2aWNlOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQyU2Vy
dmljZS9JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBwYXBlciB3b3JrIG5lZWRl
ZCBmb3IgYW4gWFBDIHNlcnZpY2UuIEltcG9ydGFudGx5LCBzZXQgdXAgdGhlIFhQQworICAgICAg
ICBzZXJ2aWNlIHRvIGJlIGFuIEFwcGxpY2F0aW9uIHNlcnZpY2UgdHlwZSwgdXNlIE5TQXBwbGlj
YXRpb25NYWluIGFzIGl0cyBydW4KKyAgICAgICAgbG9vcCwgYW5kIGFsbG93IGZvciBtdWx0aXBs
ZSBpbnN0YW50aWF0aW9ucy4gQWxzbyBtYWtlIHN1cmUgdGhlIHNlcnZpY2UgYWN0cworICAgICAg
ICBsaWtlIHRoZSBXZWJQcm9jZXNzIGJpbmFyeSBieSBtYWtpbmcgaXQgYSBMU1VJRWxlbWVudCwg
ZW5hYmxpbmcgTFNGaWxlUXVhcmFudGluZSwKKyAgICAgICAgYW5kIHNldHRpbmcgdGhlIHByaW5j
aXBsZSBjbGFzcyB0byBOU0FwcGxpY2F0aW9uLgorCisgICAgICAgICogV2ViS2l0MlNlcnZpY2Uv
TWFpbk1hY1NlcnZpY2UubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0MlNlcnZpY2VFdmVudEhh
bmRsZXIpOgorICAgICAgICAobWFpbik6CisgICAgICAgIFRoZSBpbml0aWFsaXphdGlvbiBvZiB0
aGUgWFBDIHNlcnZpY2UgaXMgcXVpdGUgYSBiaXQgZGlmZmVyZW50IHRoYW4gdGhlCisgICAgICAg
IFdlYlByb2Nlc3MgdmVyc2lvbiwgc2luY2Ugd2UgZG9uJ3QgZ2V0IHBhc3NlZCBwYXJhbWV0ZXJz
IGluIGFyZ3YuIEluc3RlYWQsCisgICAgICAgIHdlIGluaXRpYXRlIHRoZSBYUEMgc2VydmljZSB2
aWEgeHBjX21haW4sIGFuZCB3YWl0IGZvciB0aGUgYm9vdHN0cmFwIG1lc3NhZ2UKKyAgICAgICAg
d2Ugc2VudCBpbiBQcm9jZXNzTGF1bmNoZXJNYWMubW0uIFdoZW4gd2UgcmVjZWl2ZSB0aGF0IG1l
c3NhZ2Ugd2UgY2FuIGxvYWQgCisgICAgICAgIFdlYktpdDIgZnJhbWV3b3JrIGFuZCBpbml0aWFs
aXplIHRoZSBXZWJQcm9jZXNzIG5vcm1hbGx5ICh3ZSBhbHNvIGdldCB0aGUgbWFjaF9wb3J0Cisg
ICAgICAgIGZvciB0aGUgQ29yZUlQQyBjb25uZWN0aW9uIGluIHRoYXQgYm9vdHN0cmFwIG1lc3Nh
Z2UpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NNYWluWFBDKToKKyAgICAgICAgQWRkIGEgdmFyaWFu
dCBvZiBXZWJQcm9jZXNzTWFpbiB0aGF0IGlzIHVzZWQgZm9yIHRoZSBYUEMgc2VydmljZSBjYXNl
LCB3aGVyZSB3ZSBkb24ndAorICAgICAgICBoYXZlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgYW5k
IGRvbid0IG5lZWQgdG8gdGFsayB0byB0aGUgbWFjaCBib290c3RyYXAgc2VydmVyLgorCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NNYWluKToKKyAgICAgICAgKiBtYWMvTWFpbk1hYy5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogbWFjL01haW5NYWNQcm9jZXNzLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvbWFjL01haW5NYWMuY3BwLgorICAgICAgICBSZW5hbWUgTWFpbk1hYyB0
byBNYWluTWFjUHJvY2VzcyB0byBzaWduaWZ5IHRoYXQgaXQgaXMgZGlmZmVyZW50IGZyb20gdGhl
IFhQQworICAgICAgICBzZXJ2aWNlIG1haW4uCisKIDIwMTItMDctMzEgIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVmZXIgdGhlIE9yYWNsZSBKYXZh
IHBsdWctaW4gb3ZlciB0aGUgQXBwbGUgSmF2YSBwbHVnLWluCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQyU2VydmljZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQyU2VydmljZS54Y2NvbmZpZwkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdDJTZXJ2aWNl
LnhjY29uZmlnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvLyBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
Ly8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisvLyBhcmUgbWV0OgorLy8gMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisvLyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisvLyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorLy8KKy8vIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
Ly8gRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKy8vIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorLy8gUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKy8vIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorLy8gRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorLy8gUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisvLyBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisvLyBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisKKyNpbmNsdWRlICJCYXNlVGFyZ2V0LnhjY29uZmlnIgorCitH
Q0NfRU5BQkxFX09CSkNfR0MgPSBOTzsKK1BST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQy
LiQoVEFSR0VUX05BTUU6cmZjMTAzNGlkZW50aWZpZXIpOworSU5GT1BMSVNUX0ZJTEUgPSBXZWJL
aXQyU2VydmljZS9JbmZvLnBsaXN0OworSU5TVEFMTF9QQVRIID0gJChXRUJLSVQyX0ZSQU1FV09S
S1NfRElSKS9XZWJLaXQyLmZyYW1ld29yazsKKworQVBQX0lDT04gPSAkKEFQUF9JQ09OXyQoQ09O
RklHVVJBVElPTikpOworQVBQX0lDT05fRGVidWcgPSBXZWJLaXQuaWNuczsKK0FQUF9JQ09OX1Jl
bGVhc2UgPSBXZWJLaXQuaWNuczsKK0FQUF9JQ09OX1Byb2R1Y3Rpb24gPSA7CisKK0VYQ0xVREVE
X1NPVVJDRV9GSUxFX05BTUVTID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU18kKENPTkZJ
R1VSQVRJT04pKTsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX1Byb2R1Y3Rpb24gPSBXZWJL
aXQuaWNuczsKKworV1JBUFBFUl9FWFRFTlNJT04gPSB4cGM7CitNQUNIX09fVFlQRSA9IG1oX2V4
ZWN1dGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uaAkocmV2aXNpb24gMTI0MjY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMiArMTE0LDQ0IEBAIHB1Ymxp
YzoKICAgICB9OwogCiAjaWYgT1MoREFSV0lOKQotICAgIHR5cGVkZWYgbWFjaF9wb3J0X3QgSWRl
bnRpZmllcjsKKyAgICBzdHJ1Y3QgSWRlbnRpZmllciB7CisgICAgICAgIElkZW50aWZpZXIoKQor
ICAgICAgICAgICAgOiBwb3J0KE1BQ0hfUE9SVF9OVUxMKQorI2lmIEhBVkUoWFBDKQorICAgICAg
ICAgICAgLCB4cGNDb25uZWN0aW9uKDApCisjZW5kaWYKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgSWRlbnRpZmllcihtYWNoX3BvcnRfdCBwb3J0KQorICAgICAgICAgICAgOiBwb3J0
KHBvcnQpCisjaWYgSEFWRShYUEMpCisgICAgICAgICAgICAsIHhwY0Nvbm5lY3Rpb24oMCkKKyNl
bmRpZgorICAgICAgICB7CisgICAgICAgIH0KKworI2lmIEhBVkUoWFBDKQorICAgICAgICBJZGVu
dGlmaWVyKG1hY2hfcG9ydF90IHBvcnQsIHhwY19jb25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbikK
KyAgICAgICAgICAgIDogcG9ydChwb3J0KQorICAgICAgICAgICAgLCB4cGNDb25uZWN0aW9uKHhw
Y0Nvbm5lY3Rpb24pCisgICAgICAgIHsKKyAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgbWFj
aF9wb3J0X3QgcG9ydDsKKyNpZiBIQVZFKFhQQykKKyAgICAgICAgeHBjX2Nvbm5lY3Rpb25fdCB4
cGNDb25uZWN0aW9uOworI2VuZGlmCisgICAgfTsKKyAgICBzdGF0aWMgYm9vbCBpZGVudGlmaWVy
SXNOdWxsKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gaWRlbnRpZmllci5wb3J0ID09
IE1BQ0hfUE9SVF9OVUxMOyB9CiAjZWxpZiBQTEFURk9STShXSU4pCiAgICAgdHlwZWRlZiBIQU5E
TEUgSWRlbnRpZmllcjsKICAgICBzdGF0aWMgYm9vbCBjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVu
dGlmaWVycyhJZGVudGlmaWVyJiBzZXJ2ZXJJZGVudGlmaWVyLCBJZGVudGlmaWVyJiBjbGllbnRJ
ZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgYm9vbCBpZGVudGlmaWVySXNOdWxsKElkZW50aWZpZXIg
aWRlbnRpZmllcikgeyByZXR1cm4gIWlkZW50aWZpZXI7IH0KICNlbGlmIFVTRShVTklYX0RPTUFJ
Tl9TT0NLRVRTKQogICAgIHR5cGVkZWYgaW50IElkZW50aWZpZXI7CisgICAgc3RhdGljIGJvb2wg
aWRlbnRpZmllcklzTnVsbChJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuICFpZGVudGlm
aWVyOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0
ZVNlcnZlckNvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCog
Y2xpZW50UnVuTG9vcCk7CkBAIC0zMzcsNiArMzY5LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gdGhl
IGV4Y2VwdGlvbiBwb3J0IHRoYXQgZXhjZXB0aW9ucyBmcm9tIHRoZSBvdGhlciBlbmQgd2lsbCBi
ZSBzZW50IG9uLgogICAgIG1hY2hfcG9ydF90IG1fZXhjZXB0aW9uUG9ydDsKIAorI2lmIEhBVkUo
WFBDKQorICAgIHhwY19jb25uZWN0aW9uX3QgbV94cGNDb25uZWN0aW9uOworI2VuZGlmCisKICNl
bGlmIFBMQVRGT1JNKFdJTikKICAgICAvLyBDYWxsZWQgb24gdGhlIGNvbm5lY3Rpb24gcXVldWUu
CiAgICAgdm9pZCByZWFkRXZlbnRIYW5kbGVyKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAkocmV2aXNpb24g
MTI0MjY5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSA8bWFj
aC9tYWNoX2Vycm9yLmg+CiAjaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KIAorI2lmIEhBVkUoWFBD
KQorI2luY2x1ZGUgPHhwYy94cGMuaD4KKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTY1LDYgKzY5LDEzIEBAIHZvaWQgQ29ubmVj
dGlvbjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKICAgICAgICAgbV9jb25uZWN0aW9uUXVldWUudW5y
ZWdpc3Rlck1hY2hQb3J0RXZlbnRIYW5kbGVyKG1fZXhjZXB0aW9uUG9ydCk7CiAgICAgICAgIG1f
ZXhjZXB0aW9uUG9ydCA9IE1BQ0hfUE9SVF9OVUxMOwogICAgIH0KKworI2lmIEhBVkUoWFBDKQor
ICAgIGlmIChtX3hwY0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgeHBjX3JlbGVhc2UobV94cGNDb25u
ZWN0aW9uKTsKKyAgICAgICAgbV94cGNDb25uZWN0aW9uID0gMDsKKyAgICB9CisjZW5kaWYKIH0K
IAogdm9pZCBDb25uZWN0aW9uOjpwbGF0Zm9ybUluaXRpYWxpemUoSWRlbnRpZmllciBpZGVudGlm
aWVyKQpAQCAtNzIsMTIgKzgzLDE2IEBAIHZvaWQgQ29ubmVjdGlvbjo6cGxhdGZvcm1Jbml0aWFs
aXplKElkZW4KICAgICBtX2V4Y2VwdGlvblBvcnQgPSBNQUNIX1BPUlRfTlVMTDsKIAogICAgIGlm
IChtX2lzU2VydmVyKSB7Ci0gICAgICAgIG1fcmVjZWl2ZVBvcnQgPSBpZGVudGlmaWVyOworICAg
ICAgICBtX3JlY2VpdmVQb3J0ID0gaWRlbnRpZmllci5wb3J0OwogICAgICAgICBtX3NlbmRQb3J0
ID0gTUFDSF9QT1JUX05VTEw7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9yZWNlaXZlUG9ydCA9
IE1BQ0hfUE9SVF9OVUxMOwotICAgICAgICBtX3NlbmRQb3J0ID0gaWRlbnRpZmllcjsKKyAgICAg
ICAgbV9zZW5kUG9ydCA9IGlkZW50aWZpZXIucG9ydDsKICAgICB9CisKKyNpZiBIQVZFKFhQQykK
KyAgICBtX3hwY0Nvbm5lY3Rpb24gPSBpZGVudGlmaWVyLnhwY0Nvbm5lY3Rpb247CisjZW5kaWYK
IH0KIAogYm9vbCBDb25uZWN0aW9uOjpvcGVuKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkocmV2aXNpb24gMTI0MjY5KQorKysgU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTczLDcgKzE3Myw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzczo6Y3JlYXRlV2ViUHJvY2Vz
c0Nvbm4KICAgICBtYWNoX3BvcnRfYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JU
X1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQb3J0KTsKIAogICAgIC8vIENyZWF0ZSBhIGxpc3Rl
bmluZyBjb25uZWN0aW9uLgotICAgIFJlZlB0cjxXZWJQcm9jZXNzQ29ubmVjdGlvbj4gY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUobGlzdGVuaW5nUG9ydCk7CisgICAg
UmVmUHRyPFdlYlByb2Nlc3NDb25uZWN0aW9uPiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb246OmNyZWF0ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGxpc3RlbmluZ1Bv
cnQpKTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxl
YXNlKCkpOwogCiAgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1Bv
cnQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tCShyZXZp
c2lvbiAxMjQyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Q
cm9jZXNzTWFpbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE4LDkgKzExOCw5IEBAIGludCBQ
bHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYKIAogICAgIC8vIEluaXRpYWxpemUg
dGhlIHNoaW0uCiAgICAgUGx1Z2luUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlhbGl6ZVNoaW0oKTsK
LSAgICAKKwogICAgIC8vIEluaXRpYWxpemUgdGhlIHBsdWctaW4gcHJvY2VzcyBjb25uZWN0aW9u
LgotICAgIFBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUoc2VydmVyUG9ydCwgUnVu
TG9vcDo6bWFpbigpKTsKKyAgICBQbHVnaW5Qcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoc2VydmVyUG9ydCksIFJ1bkxvb3A6Om1haW4o
KSk7CiAKICAgICBbTlNBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl07CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lvbiAx
MjQyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpj
b25uZWN0KCkKICAgICAgICAgLy8gV2Ugd2FudCB0aGUgd2ViIHByb2Nlc3MgdG8gbWF0Y2ggdGhl
IGFyY2hpdGVjdHVyZSBvZiB0aGUgVUkgcHJvY2Vzcy4KICAgICAgICAgbGF1bmNoT3B0aW9ucy5h
cmNoaXRlY3R1cmUgPSBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnM6Ok1hdGNoQ3VycmVu
dEFyY2hpdGVjdHVyZTsKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leGVjdXRhYmxlSGVhcCA9IGZh
bHNlOworI2lmIEhBVkUoWFBDKQorICAgICAgICBsYXVuY2hPcHRpb25zLnVzZVhQQyA9IHRydWU7
IC8vIEZJWE1FOiBUaGlzIG5lZWRzIHRvIGJlIGNvbmZpZ3VyYWJsZS4KKyNlbmRpZgogI2VuZGlm
CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBjb25zdCBjaGFyKiB3ZWJQcm9jZXNzQ21kUHJlZml4
ID0gZ2V0ZW52KCJXRUJfUFJPQ0VTU19DTURfUFJFRklYIik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCShyZXZpc2lv
biAxMjQyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xh
dW5jaGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogICAgICAg
ICBzdGF0aWMgY29uc3QgY3B1X3R5cGVfdCBNYXRjaEN1cnJlbnRBcmNoaXRlY3R1cmUgPSAwOwog
ICAgICAgICBjcHVfdHlwZV90IGFyY2hpdGVjdHVyZTsKICAgICAgICAgYm9vbCBleGVjdXRhYmxl
SGVhcDsKKyNpZiBIQVZFKFhQQykKKyAgICAgICAgYm9vbCB1c2VYUEM7CisjZW5kaWYKICNlbmRp
ZgogI2lmbmRlZiBOREVCVUcKICAgICAgICAgU3RyaW5nIHByb2Nlc3NDbWRQcmVmaXg7CkBAIC03
NSwxMSArNzgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgc3Rh
dGljIGJvb2wgZ2V0UHJvY2Vzc1R5cGVGcm9tU3RyaW5nKGNvbnN0IGNoYXIqLCBQcm9jZXNzVHlw
ZSYpOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBwcm9jZXNzVHlwZUFzU3RyaW5nKFByb2Nlc3NU
eXBlKTsKKwogcHJpdmF0ZToKICAgICBQcm9jZXNzTGF1bmNoZXIoQ2xpZW50KiwgY29uc3QgTGF1
bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucyk7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogcHJv
Y2Vzc1R5cGVBc1N0cmluZyhQcm9jZXNzVHlwZSk7Ci0KICAgICB2b2lkIGxhdW5jaFByb2Nlc3Mo
KTsKICAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MoUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllciwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vz
c0xhdW5jaGVyTWFjLm1tCShyZXZpc2lvbiAxMjQyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDUsMTEgKzQ1LDIwIEBACiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIEhBVkUoWFBDKQorI2ltcG9ydCA8eHBjL3hw
Yy5oPgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAvLyBGSVhNRTogV2Ug
c2hvdWxkIGJlIGRvaW5nIHRoaXMgYW5vdGhlciB3YXkuCiBleHRlcm4gIkMiIGtlcm5fcmV0dXJu
X3QgYm9vdHN0cmFwX3JlZ2lzdGVyMihtYWNoX3BvcnRfdCwgbmFtZV90LCBtYWNoX3BvcnRfdCwg
dWludDY0X3QpOwogCisjaWYgSEFWRShYUEMpCitleHRlcm4gIkMiIHZvaWQgeHBjX2Nvbm5lY3Rp
b25fc2V0X2luc3RhbmNlKHhwY19jb25uZWN0aW9uX3QsIHV1aWRfdCk7CitleHRlcm4gIkMiIHZv
aWQgeHBjX2RpY3Rpb25hcnlfc2V0X21hY2hfc2VuZCh4cGNfb2JqZWN0X3QsIGNvbnN0IGNoYXIq
LCBtYWNoX3BvcnRfdCk7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyB2
b2lkIHNldFVwVGVybWluYXRpb25Ob3RpZmljYXRpb25IYW5kbGVyKHBpZF90IHBpZCkKQEAgLTY4
LDggKzc3LDI3IEBAIHN0YXRpYyB2b2lkIHNldFVwVGVybWluYXRpb25Ob3RpZmljYXRpb24KICNl
bmRpZgogfQogCi12b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit0eXBlZGVm
IHZvaWQgKFByb2Nlc3NMYXVuY2hlcjo6KkRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3NGdW5jdGlv
bikoUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
Zmllcik7CisKKyNpZiBIQVZFKFhQQykKK3N0YXRpYyB2b2lkIGxhdW5jaFhQQ1NlcnZpY2UoY29u
c3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiwgY29uc3QgRW52aXJvbm1lbnRWYXJp
YWJsZXMmLCBQcm9jZXNzTGF1bmNoZXIqIHRoYXQsIERpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3NG
dW5jdGlvbiBkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzRnVuY3Rpb24pCiB7CisgICAgLy8gQ3Jl
YXRlIGEgY29ubmVjdGlvbiB0byB0aGUgV2ViS2l0MiBYUEMgc2VydmljZS4KKyAgICB4cGNfY29u
bmVjdGlvbl90IGNvbm5lY3Rpb24gPSB4cGNfY29ubmVjdGlvbl9jcmVhdGUoImNvbS5hcHBsZS5X
ZWJLaXQyU2VydmljZSIsIDApOworCisgICAgdXVpZF90IHV1aWQ7CisgICAgdXVpZF9nZW5lcmF0
ZSh1dWlkKTsKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfaW5zdGFuY2UoY29ubmVjdGlvbiwgdXVp
ZCk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLCBe
KHhwY19vYmplY3RfdCBldmVudCkgeworICAgICAgICB4cGNfdHlwZV90IHR5cGUgPSB4cGNfZ2V0
X3R5cGUoZXZlbnQpOworICAgICAgICBpZiAodHlwZSA9PSBYUENfVFlQRV9FUlJPUikgeworICAg
ICAgICAgICAgaWYgKGV2ZW50ID09IFhQQ19FUlJPUl9DT05ORUNUSU9OX0lOVkFMSUQgfHwgZXZl
bnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJT05fSU5URVJSVVBURUQpCisgICAgICAgICAgICAgICAg
TlNMb2coQCJXZWJLaXQyIFdlYiBDb250ZW50IHNlcnZpY2UgZXhpdGVkLiIpOworICAgICAgICB9
CisgICAgfSk7CisgICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKGNvbm5lY3Rpb24pOworCiAgICAg
Ly8gQ3JlYXRlIHRoZSBsaXN0ZW5pbmcgcG9ydC4KICAgICBtYWNoX3BvcnRfdCBsaXN0ZW5pbmdQ
b3J0OwogICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRf
UklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOwpAQCAtNzcsNDEgKzEwNSwxMDkgQEAgdm9p
ZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIC8vIEluc2VydCBhIHNlbmQg
cmlnaHQgc28gd2UgY2FuIHNlbmQgdG8gaXQuCiAgICAgbWFjaF9wb3J0X2luc2VydF9yaWdodCht
YWNoX3Rhc2tfc2VsZigpLCBsaXN0ZW5pbmdQb3J0LCBsaXN0ZW5pbmdQb3J0LCBNQUNIX01TR19U
WVBFX01BS0VfU0VORCk7CiAKLSAgICBwaWRfdCBwcm9jZXNzSWRlbnRpZmllciA9IDA7CisgICAg
eHBjX29iamVjdF90IGJvb3RTdHJhcE1lc3NhZ2UgPSB4cGNfZGljdGlvbmFyeV9jcmVhdGUoMCwg
MCwgMCk7CisgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmluZyhib290U3RyYXBNZXNzYWdlLCAi
bWVzc2FnZS1uYW1lIiwgImJvb3RzdHJhcCIpOworICAgIHhwY19kaWN0aW9uYXJ5X3NldF9zdHJp
bmcoYm9vdFN0cmFwTWVzc2FnZSwgImZyYW1ld29yay1leGVjdXRhYmxlLXBhdGgiLCBbW1tOU0J1
bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQyIl0gZXhlY3V0YWJs
ZVBhdGhdIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0pOworICAgIHhwY19kaWN0aW9uYXJ5X3Nl
dF9tYWNoX3NlbmQoYm9vdFN0cmFwTWVzc2FnZSwgInNlcnZlci1wb3J0IiwgbGlzdGVuaW5nUG9y
dCk7CisKKyAgICB0aGF0LT5yZWYoKTsKKworICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2Fn
ZV93aXRoX3JlcGx5KGNvbm5lY3Rpb24sIGJvb3RTdHJhcE1lc3NhZ2UsIGRpc3BhdGNoX2dldF9n
bG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF4oeHBjX29i
amVjdF90IHJlcGx5KSB7CisgICAgICAgIHhwY190eXBlX3QgdHlwZSA9IHhwY19nZXRfdHlwZShy
ZXBseSk7CisgICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0VSUk9SKSB7CisgICAgICAgICAg
ICAvLyBXZSBmYWlsZWQgdG8gbGF1bmNoLiBSZWxlYXNlIHRoZSBzZW5kIHJpZ2h0LgorICAgICAg
ICAgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9y
dCk7CisKKyAgICAgICAgICAgIC8vIEFuZCB0aGUgcmVjZWl2ZSByaWdodC4KKyAgICAgICAgICAg
IG1hY2hfcG9ydF9tb2RfcmVmcyhtYWNoX3Rhc2tfc2VsZigpLCBsaXN0ZW5pbmdQb3J0LCBNQUNI
X1BPUlRfUklHSFRfUkVDRUlWRSwgLTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICBSdW5M
b29wOjptYWluKCktPmRpc3BhdGNoKGJpbmQoZGlkRmluaXNoTGF1bmNoaW5nUHJvY2Vzc0Z1bmN0
aW9uLCB0aGlzLCAwLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKCkpKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVCh0eXBlID09IFhQQ19UWVBFX0RJQ1RJT05B
UlkpOworICAgICAgICAgICAgQVNTRVJUKCFzdHJjbXAoeHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmlu
ZyhyZXBseSwgIm1lc3NhZ2UtbmFtZSIpLCAicHJvY2Vzcy1maW5pc2hlZC1sYXVuY2hpbmciKSk7
CisgICAgCisgICAgICAgICAgICAvLyBUaGUgcHJvY2VzcyBoYXMgZmluaXNoZWQgbGF1bmNoaW5n
LCBncmFiIHRoZSBwaWQgZnJvbSB0aGUgY29ubmVjdGlvbi4KKyAgICAgICAgICAgIHBpZF90IHBy
b2Nlc3NJZGVudGlmaWVyID0geHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChjb25uZWN0aW9uKTsKKwor
ICAgICAgICAgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5nIHRoZSBwcm9jZXNzLCBtZXNz
YWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAgICAgICAgICBSdW5Mb29wOjptYWlu
KCktPmRpc3BhdGNoKGJpbmQoZGlkRmluaXNoTGF1bmNoaW5nUHJvY2Vzc0Z1bmN0aW9uLCB0aGF0
LCBwcm9jZXNzSWRlbnRpZmllciwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0
ZW5pbmdQb3J0LCBjb25uZWN0aW9uKSkpOworICAgICAgICB9CisKKyAgICAgICAgdGhhdC0+ZGVy
ZWYoKTsKKyAgICB9KTsKKyAgICB4cGNfcmVsZWFzZShib290U3RyYXBNZXNzYWdlKTsKK30KKyNl
bmRpZgogCi0gICAgRW52aXJvbm1lbnRWYXJpYWJsZXMgZW52aXJvbm1lbnRWYXJpYWJsZXM7CiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCitzdGF0aWMgYm9vbCB0
cnlQcmVleGlzdGluZ1Byb2Nlc3MoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25z
JiBsYXVuY2hPcHRpb25zLCBjb25zdCBFbnZpcm9ubWVudFZhcmlhYmxlcyYgZW52aXJvbm1lbnRW
YXJpYWJsZXMsIFByb2Nlc3NMYXVuY2hlciogdGhhdCwgRGlkRmluaXNoTGF1bmNoaW5nUHJvY2Vz
c0Z1bmN0aW9uIGRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3NGdW5jdGlvbikKK3sKICAgICBzdGF0
aWMgY29uc3QgY2hhciogcHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWUgPSBlbnZpcm9ubWVu
dFZhcmlhYmxlcy5nZXQoRW52aXJvbm1lbnRWYXJpYWJsZXM6OnByZWV4aXN0aW5nUHJvY2Vzc1Nl
cnZpY2VOYW1lS2V5KCkpOwotICAgIFByb2Nlc3NUeXBlIHByZWV4aXN0aW5nUHJvY2Vzc1R5cGU7
CisKKyAgICBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlIHByZWV4aXN0aW5nUHJvY2Vzc1R5
cGU7CiAgICAgaWYgKHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lKQotICAgICAgICBnZXRQ
cm9jZXNzVHlwZUZyb21TdHJpbmcoZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KEVudmlyb25tZW50
VmFyaWFibGVzOjpwcmVleGlzdGluZ1Byb2Nlc3NUeXBlS2V5KCkpLCBwcmVleGlzdGluZ1Byb2Nl
c3NUeXBlKTsKKyAgICAgICAgUHJvY2Vzc0xhdW5jaGVyOjpnZXRQcm9jZXNzVHlwZUZyb21TdHJp
bmcoZW52aXJvbm1lbnRWYXJpYWJsZXMuZ2V0KEVudmlyb25tZW50VmFyaWFibGVzOjpwcmVleGlz
dGluZ1Byb2Nlc3NUeXBlS2V5KCkpLCBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlKTsKIAotICAgIGJv
b2wgdXNlUHJlZXhpc3RpbmdQcm9jZXNzID0gcHJlZXhpc3RpbmdQcm9jZXNzU2VydmljZU5hbWUg
JiYgcHJlZXhpc3RpbmdQcm9jZXNzVHlwZSA9PSBtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGU7
CisgICAgYm9vbCB1c2VQcmVleGlzdGluZ1Byb2Nlc3MgPSBwcmVleGlzdGluZ1Byb2Nlc3NTZXJ2
aWNlTmFtZSAmJiBwcmVleGlzdGluZ1Byb2Nlc3NUeXBlID09IGxhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGU7CisgICAgaWYgKCF1c2VQcmVleGlzdGluZ1Byb2Nlc3MpCisgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICh1c2VQcmVleGlzdGluZ1Byb2Nlc3MpIHsKLSAgICAgICAgbWFjaF9w
b3J0X3QgbG9va3VwUG9ydDsKLSAgICAgICAgYm9vdHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3Bv
cnQsIHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZpY2VOYW1lLCAmbG9va3VwUG9ydCk7Ci0KLSAgICAg
ICAgbWFjaF9tc2dfaGVhZGVyX3QgaGVhZGVyOwotICAgICAgICBoZWFkZXIubXNnaF9iaXRzID0g
TUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9DT1BZX1NFTkQsIE1BQ0hfTVNHX1RZUEVfTUFL
RV9TRU5EKTsKLSAgICAgICAgaGVhZGVyLm1zZ2hfaWQgPSAwOwotICAgICAgICBoZWFkZXIubXNn
aF9sb2NhbF9wb3J0ID0gbGlzdGVuaW5nUG9ydDsKLSAgICAgICAgaGVhZGVyLm1zZ2hfcmVtb3Rl
X3BvcnQgPSBsb29rdXBQb3J0OwotICAgICAgICBoZWFkZXIubXNnaF9zaXplID0gc2l6ZW9mKGhl
YWRlcik7Ci0gICAgICAgIGtlcm5fcmV0dXJuX3Qga3IgPSBtYWNoX21zZygmaGVhZGVyLCBNQUNI
X1NFTkRfTVNHLCBzaXplb2YoaGVhZGVyKSwgMCwgTUFDSF9QT1JUX05VTEwsIE1BQ0hfTVNHX1RJ
TUVPVVRfTk9ORSwgTUFDSF9QT1JUX05VTEwpOwotCi0gICAgICAgIGlmIChrcikgewotICAgICAg
ICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gcGljayB1cCBwcmVleGlzdGluZyBwcm9jZXNzIGF0
ICVzICgleCkuIExhdW5jaGluZyBhIG5ldyBwcm9jZXNzIG9mIHR5cGUgJXMgaW5zdGVhZC4iLCBw
cmVleGlzdGluZ1Byb2Nlc3NTZXJ2aWNlTmFtZSwga3IsIHByb2Nlc3NUeXBlQXNTdHJpbmcobV9s
YXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSk7Ci0gICAgICAgICAgICB1c2VQcmVleGlzdGluZ1By
b2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgfQorICAgIC8vIENyZWF0ZSB0aGUgbGlzdGVuaW5nIHBv
cnQuCisgICAgbWFjaF9wb3J0X3QgbGlzdGVuaW5nUG9ydDsKKyAgICBtYWNoX3BvcnRfYWxsb2Nh
dGUobWFjaF90YXNrX3NlbGYoKSwgTUFDSF9QT1JUX1JJR0hUX1JFQ0VJVkUsICZsaXN0ZW5pbmdQ
b3J0KTsKKyAgICAKKyAgICAvLyBJbnNlcnQgYSBzZW5kIHJpZ2h0IHNvIHdlIGNhbiBzZW5kIHRv
IGl0LgorICAgIG1hY2hfcG9ydF9pbnNlcnRfcmlnaHQobWFjaF90YXNrX3NlbGYoKSwgbGlzdGVu
aW5nUG9ydCwgbGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOworCisgICAg
cGlkX3QgcHJvY2Vzc0lkZW50aWZpZXIgPSAwOwogCi0gICAgICAgIG1hY2hfcG9ydF9kZWFsbG9j
YXRlKG1hY2hfdGFza19zZWxmKCksIGxvb2t1cFBvcnQpOworICAgIG1hY2hfcG9ydF90IGxvb2t1
cFBvcnQ7CisgICAgYm9vdHN0cmFwX2xvb2tfdXAoYm9vdHN0cmFwX3BvcnQsIHByZWV4aXN0aW5n
UHJvY2Vzc1NlcnZpY2VOYW1lLCAmbG9va3VwUG9ydCk7CiAKLSAgICAgICAgcHJlZXhpc3RpbmdQ
cm9jZXNzU2VydmljZU5hbWUgPSAwOworICAgIG1hY2hfbXNnX2hlYWRlcl90IGhlYWRlcjsKKyAg
ICBoZWFkZXIubXNnaF9iaXRzID0gTUFDSF9NU0dIX0JJVFMoTUFDSF9NU0dfVFlQRV9DT1BZX1NF
TkQsIE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKyAgICBoZWFkZXIubXNnaF9pZCA9IDA7Cisg
ICAgaGVhZGVyLm1zZ2hfbG9jYWxfcG9ydCA9IGxpc3RlbmluZ1BvcnQ7CisgICAgaGVhZGVyLm1z
Z2hfcmVtb3RlX3BvcnQgPSBsb29rdXBQb3J0OworICAgIGhlYWRlci5tc2doX3NpemUgPSBzaXpl
b2YoaGVhZGVyKTsKKyAgICBrZXJuX3JldHVybl90IGtyID0gbWFjaF9tc2coJmhlYWRlciwgTUFD
SF9TRU5EX01TRywgc2l6ZW9mKGhlYWRlciksIDAsIE1BQ0hfUE9SVF9OVUxMLCBNQUNIX01TR19U
SU1FT1VUX05PTkUsIE1BQ0hfUE9SVF9OVUxMKTsKKworICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGxvb2t1cFBvcnQpOworICAgIHByZWV4aXN0aW5nUHJvY2Vzc1Nl
cnZpY2VOYW1lID0gMDsKKworICAgIGlmIChrcikgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxl
ZCB0byBwaWNrIHVwIHByZWV4aXN0aW5nIHByb2Nlc3MgYXQgJXMgKCV4KS4gTGF1bmNoaW5nIGEg
bmV3IHByb2Nlc3Mgb2YgdHlwZSAlcyBpbnN0ZWFkLiIsIHByZWV4aXN0aW5nUHJvY2Vzc1NlcnZp
Y2VOYW1lLCBrciwgUHJvY2Vzc0xhdW5jaGVyOjpwcm9jZXNzVHlwZUFzU3RyaW5nKGxhdW5jaE9w
dGlvbnMucHJvY2Vzc1R5cGUpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKyAgICAK
KyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFj
ayB0byB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICBSdW5Mb29wOjptYWluKCktPmRpc3BhdGNoKGJp
bmQoZGlkRmluaXNoTGF1bmNoaW5nUHJvY2Vzc0Z1bmN0aW9uLCB0aGF0LCBwcm9jZXNzSWRlbnRp
ZmllciwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0ZW5pbmdQb3J0KSkpOwor
ICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCiAKLSAgICBpZiAoIXVzZVByZWV4aXN0aW5nUHJv
Y2Vzcykgewordm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEVu
dmlyb25tZW50VmFyaWFibGVzIGVudmlyb25tZW50VmFyaWFibGVzOworI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorICAgIGlmICh0cnlQcmVleGlzdGluZ1Byb2Nl
c3MobV9sYXVuY2hPcHRpb25zLCBlbnZpcm9ubWVudFZhcmlhYmxlcywgdGhpcywgJlByb2Nlc3NM
YXVuY2hlcjo6ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcykpCisgICAgICAgIHJldHVybjsKICNl
bmRpZgorCisjaWYgSEFWRShYUEMpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy51c2VYUEMpIHsK
KyAgICAgICAgbGF1bmNoWFBDU2VydmljZShtX2xhdW5jaE9wdGlvbnMsIGVudmlyb25tZW50VmFy
aWFibGVzLCB0aGlzLCAmUHJvY2Vzc0xhdW5jaGVyOjpkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgICAgIC8vIENyZWF0ZSB0
aGUgbGlzdGVuaW5nIHBvcnQuCisgICAgICAgIG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Cisg
ICAgICAgIG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklH
SFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpOworICAgIAorICAgICAgICAvLyBJbnNlcnQgYSBz
ZW5kIHJpZ2h0IHNvIHdlIGNhbiBzZW5kIHRvIGl0LgorICAgICAgICBtYWNoX3BvcnRfaW5zZXJ0
X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1BvcnQsIE1B
Q0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKKwogICAgICAgICBOU0J1bmRsZSAqd2ViS2l0MkJ1bmRs
ZSA9IFtOU0J1bmRsZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQyIl07
CiAgICAgICAgIE5TU3RyaW5nICpmcmFtZXdvcmtzUGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBidW5k
bGVQYXRoXSBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdOwogICAgICAgICBjb25z
dCBjaGFyKiBmcmFtZXdvcmtFeGVjdXRhYmxlUGF0aCA9IFtbd2ViS2l0MkJ1bmRsZSBleGVjdXRh
YmxlUGF0aF0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXTsKQEAgLTE5Miw3ICsyODgsOCBAQCB2
b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgICAgICBpZiAoc3Rh
dChwcm9jZXNzU2hpbVBhdGgsICZzdGF0QnVmKSA9PSAwICYmIChzdGF0QnVmLnN0X21vZGUgJiBT
X0lGTVQpID09IFNfSUZSRUcpCiAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnRWYXJpYWJsZXMu
YXBwZW5kVmFsdWUoIkRZTERfSU5TRVJUX0xJQlJBUklFUyIsIHByb2Nlc3NTaGltUGF0aCwgJzon
KTsKICAgICAgICAgfQotICAgICAgICAKKworICAgICAgICBwaWRfdCBwcm9jZXNzSWRlbnRpZmll
ciA9IDA7CiAgICAgICAgIGludCByZXN1bHQgPSBwb3NpeF9zcGF3bigmcHJvY2Vzc0lkZW50aWZp
ZXIsIGFyZ3NbMF0sIDAsICZhdHRyLCBjb25zdF9jYXN0PGNoYXIqKj4oYXJncyksIGVudmlyb25t
ZW50VmFyaWFibGVzLmVudmlyb25tZW50UG9pbnRlcigpKTsKIAogICAgICAgICBwb3NpeF9zcGF3
bmF0dHJfZGVzdHJveSgmYXR0cik7CkBAIC0yMTEsMTIgKzMwOCw5IEBAIHZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKICAgICAgICAgICAgIGxpc3RlbmluZ1BvcnQgPSBNQUNI
X1BPUlRfTlVMTDsKICAgICAgICAgICAgIHByb2Nlc3NJZGVudGlmaWVyID0gMDsKICAgICAgICAg
fQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAotICAgIH0KLSNl
bmRpZgogCiAgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5nIHRoZSBwcm9jZXNzLCBtZXNz
YWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCi0gICAgUnVuTG9vcDo6bWFpbigpLT5kaXNw
YXRjaChiaW5kKCZQcm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MsIHRo
aXMsIHByb2Nlc3NJZGVudGlmaWVyLCBsaXN0ZW5pbmdQb3J0KSk7CisgICAgUnVuTG9vcDo6bWFp
bigpLT5kaXNwYXRjaChiaW5kKCZQcm9jZXNzTGF1bmNoZXI6OmRpZEZpbmlzaExhdW5jaGluZ1By
b2Nlc3MsIHRoaXMsIHByb2Nlc3NJZGVudGlmaWVyLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKGxpc3RlbmluZ1BvcnQpKSk7CiB9CiAKIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJt
aW5hdGVQcm9jZXNzKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQkocmV2aXNpb24gMTI0MjY5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hl
ck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgdm9pZCB3ZWJU
aHJlYWRCb2R5KHZvaWQqIGNvbnRleHQpCiAgICAgSlNDOjppbml0aWFsaXplVGhyZWFkaW5nKCk7
CiAgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwogCi0gICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuaW5pdGlhbGl6ZShzZXJ2ZXJQb3J0LCBSdW5Mb29wOjpjdXJyZW50KCkpOworICAgIFdl
YlByb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllcihzZXJ2ZXJQb3J0KSwgUnVuTG9vcDo6Y3VycmVudCgpKTsKIAogICAgIFtwb29sIGRyYWlu
XTsKIApAQCAtNjUsMTAgKzY1LDEwIEBAIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
VGhyZWFkTGEKIAogICAgIGlmICghY3JlYXRlVGhyZWFkKHdlYlRocmVhZEJvZHksIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGxpc3RlbmluZ1BvcnQpLCAiV2ViS2l0MjogV2ViVGhyZWFkIikpIHsK
ICAgICAgICAgbWFjaF9wb3J0X2Rlc3Ryb3kobWFjaF90YXNrX3NlbGYoKSwgbGlzdGVuaW5nUG9y
dCk7Ci0gICAgICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKKyAgICAgICAgcmV0dXJuIENvcmVJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoKTsKICAgICB9CiAKLSAgICByZXR1cm4gbGlzdGVu
aW5nUG9ydDsKKyAgICByZXR1cm4gQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihsaXN0
ZW5pbmdQb3J0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAJKHJldmlzaW9uIDEyNDI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDYgKzY3LDkgQEAg
UGx1Z2luUHJvY2Vzc1Byb3h5OjpQbHVnaW5Qcm9jZXNzUHJveHkoUAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBsYXVuY2hPcHRpb25zLmFyY2hpdGVjdHVyZSA9IHBsdWdpbkluZm8ucGx1Z2luQXJj
aGl0ZWN0dXJlOwogICAgIGxhdW5jaE9wdGlvbnMuZXhlY3V0YWJsZUhlYXAgPSBQbHVnaW5Qcm9j
ZXNzUHJveHk6OnBsdWdpbk5lZWRzRXhlY3V0YWJsZUhlYXAocGx1Z2luSW5mbyk7CisjaWYgSEFW
RShYUEMpCisgICAgbGF1bmNoT3B0aW9ucy51c2VYUEMgPSBmYWxzZTsKKyNlbmRpZgogI2VuZGlm
CiAKICAgICBtX3Byb2Nlc3NMYXVuY2hlciA9IFByb2Nlc3NMYXVuY2hlcjo6Y3JlYXRlKHRoaXMs
IGxhdW5jaE9wdGlvbnMpOwpAQCAtMTkwLDcgKzE5Myw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2gKIHsKICAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CiAKLSAg
ICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKSB7CisgICAgaWYgKENvcmVJUEM6OkNvbm5lY3Rp
b246OmlkZW50aWZpZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7CiAgICAgICAgIHBs
dWdpblByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTI0MjY5KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMiwxMCArMTIsMTIg
QEAKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxQTUwREI0ODExMEEzQzI3MDAwRDNGRTUg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkFsbCIg
Ki87CiAJCQlidWlsZFBoYXNlcyA9ICgKIAkJCQkxQTUwREI3MDExMEEzRDY3MDAwRDNGRTUgLyog
Q29weUZpbGVzICovLAorCQkJCUJDQThENDZCMTVCQ0UzM0MwMDlEQzFGMSAvKiBDb3B5RmlsZXMg
Ki8sCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAogCQkJCTFBNTBEQjNDMTEwQTNDMTkwMDBE
M0ZFNSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDREUwQUMxMTMyNzI3MTIwMDEy
NTlGQiAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJCUJDQThENDY4MTVCQ0UwRDYwMDlE
QzFGMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBBbGw7CiAJ
CQlwcm9kdWN0TmFtZSA9IFdlYktpdDI7CkBAIC0xNDYsNyArMTQ4LDcgQEAKIAkJMUE2RjlGQjcx
MUUxNDA4NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBD
b21tYW5kTGluZU1hYy5jcHAgKi87IH07CiAJCTFBNkZBMDFFMTFFMTUyNjMwMERCMTM3MSAvKiBX
ZWJQcm9jZXNzTWFpbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNkZBMDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFpbk1hYy5t
bSAqLzsgfTsKIAkJMUE2RkEwMjAxMUUxNTI4NzAwREIxMzcxIC8qIFdlYlByb2Nlc3NNYWluLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQTAxRjEx
RTE1Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLzsgfTsKLQkJMUE2RkEzMTExMUUz
OTIxRTAwREIxMzcxIC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWMuY3Bw
ICovOyB9OworCQkxQTZGQTMxMTExRTM5MjFFMDBEQjEzNzEgLyogTWFpbk1hY1Byb2Nlc3MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAx
MUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9jZXNzLmNwcCAqLzsgfTsKIAkJMUE2RkEzMTYx
MUUzOTIzNjAwREIxMzcxIC8qIFdlYktpdE1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTUxMUUzOTIzNjAwREIxMzcxIC8qIFdlYktp
dE1haW4uY3BwICovOyB9OwogCQkxQTZGQjdBRTExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmll
dy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZG
QjdBQzExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5jcHAgKi87IH07CiAJCTFBNkZCN0FG
MTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZGQjdBRDExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2lu
Vmlldy5oICovOyB9OwpAQCAtNTc4LDYgKzU4MCw4IEBACiAJCUJDMzNERDY4MTIzODQ2NDYwMDM2
MEYzRiAvKiBXZWJOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMzNERDY3MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJOdW1iZXIuaCAqLzsgfTsK
IAkJQkMzM0UwRDExMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMENG
MTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggKi87IH07CiAJ
CUJDMzNFMEQyMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMEQw
MTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLzsgfTsK
KwkJQkMzREU0NjkxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5
MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQlCQzNERTQ3MjE1
QTkxNzY0MDA4RDI2RkMgLyogTWFpbk1hY1NlcnZpY2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ3MTE1QTkxNzY0MDA4RDI2RkMgLyogTWFp
bk1hY1NlcnZpY2UubW0gKi87IH07CiAJCUJDNDA3NUYzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Fy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NDA3NUQ3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmNwcCAqLzsgfTsKIAkJQkM0MDc1RjQx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUQ4MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM0MDc1
RjUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUQ5MTI0RkYwMjcwMDY4RjIw
QSAvKiBXS0NlcnRpZmljYXRlSW5mby5jcHAgKi87IH07CkBAIC02NzcsNiArNjgxLDcgQEAKIAkJ
QkM4MTQ3QUExMkY2NENEQTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgx
NDdBODEyRjY0Q0RBMDA3QjJDMzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNw
cCAqLzsgfTsKIAkJQkM4MTQ3RDUxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2
aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM4MTQ3RDMxMkY2NkQzMTAwN0IyQzMyIC8qIEluamVjdGVkQnVuZGxlTmF2aWdhdGlv
bkFjdGlvbi5oICovOyB9OwogCQlCQzgxNDdENjEyRjY2RDMxMDA3QjJDMzIgLyogSW5qZWN0ZWRC
dW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDODE0N0Q0MTJGNjZEMzEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uY3BwICovOyB9OworCQlCQzgyREYyMjE1QkRGNDIyMDBGQzI4NDEg
LyogY29tLmFwcGxlLldlYlByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYiAqLzsgfTsKIAkJQkM4NDUyQTcxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdp
bmdBcmVhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDODQ1MkE1MTE2MkM4MDkwMENBQjlCNSAvKiBEcmF3aW5nQXJlYS5jcHAgKi87IH07CiAJCUJD
ODQ1MkE4MTE2MkM4MDkwMENBQjlCNSAvKiBEcmF3aW5nQXJlYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NDUyQTYxMTYyQzgwOTAwQ0FCOUI1IC8q
IERyYXdpbmdBcmVhLmggKi87IH07CiAJCUJDODRFQjE4MTJBNzEwMEMwMDgzRjJEQSAvKiBXZWJQ
cmVmZXJlbmNlc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDODRFQjE3MTJBNzEwMEMwMDgzRjJEQSAvKiBXZWJQcmVmZXJlbmNlc01hYy5tbSAq
LzsgfTsKQEAgLTcyMCw2ICs3MjUsNyBAQAogCQlCQ0E4QzZBOTExRTNCQTVGMDA4MTJGQjcgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4QzZBNzExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggKi87IH07CiAJCUJDQThDNkFGMTFFM0MwODcwMDgx
MkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4QzZBRDExRTNDMDg3MDA4MTJGQjcgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuY3BwICovOyB9OwogCQlCQ0E4QzZCMDExRTNDMDg3
MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQThDNkFFMTFFM0MwODcwMDgxMkZCNyAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oICovOyB9OworCQlCQ0E4RDQ2QzE1QkNFMzRC
MDA5REMxRjEgLyogY29tLmFwcGxlLldlYktpdDIuV2ViS2l0MlNlcnZpY2UueHBjIGluIENvcHlG
aWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2NjE1QTkxNzYz
MDA4RDI2RkMgLyogY29tLmFwcGxlLldlYktpdDIuV2ViS2l0MlNlcnZpY2UueHBjICovOyB9Owog
CQlCQ0FDMTExRjEyQzkyQzFGMDBCMDhFRUUgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQUMx
MTFEMTJDOTJDMUYwMEIwOEVFRSAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5oICov
OyB9OwogCQlCQ0FDMTEyMDEyQzkyQzFGMDBCMDhFRUUgLyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJv
eHlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNBQzExMUUxMkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xp
ZW50LmNwcCAqLzsgfTsKIAkJQkNCMEFEMzMxMjJGMjg1ODAwQjEzNDFFIC8qIE11dGFibGVBcnJh
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M4
MDQ5RDEyMkYwRDZCMDAxMDM1MjkgLyogTXV0YWJsZUFycmF5LmNwcCAqLzsgfTsKQEAgLTc5NCw3
ICs4MDAsNyBAQAogCQlCQ0REQjMyRDEyNEVDMkUxMDA0OEQxM0MgLyogV0tBUElDYXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0REQjMyQzEyNEVD
MkUxMDA0OEQxM0MgLyogV0tBUElDYXN0LmggKi87IH07CiAJCUJDREUwNTlCMTFDREE4QUUwMEU0
MUFGMSAvKiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUwNTk5MTFDREE4QUUwMEU0MUFGMSAv
KiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKIAkJQkNERTA1OUMxMUNE
QThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0RFMDU5QTExQ0RBOEFF
MDBFNDFBRjEgLyogV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLzsgfTsKLQkJ
QkNERTA5M0IxMzI3MjQ5NjAwMTI1OUZCIC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8q
IE1haW5NYWMuY3BwICovOyB9OworCQlCQ0RFMDkzQjEzMjcyNDk2MDAxMjU5RkIgLyogTWFpbk1h
Y1Byb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9jZXNzLmNwcCAqLzsgfTsK
IAkJQkNERTA5M0QxMzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGliIGlu
IENvcHkgUGx1Zy1pbiBQcm9jZXNzIFNoaW0gKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFDMjVGQjAxMkE0OEVBNzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLmR5bGli
ICovOyB9OwogCQlCQ0RFMEFCRjEzMjcyNzA4MDAxMjU5RkIgLyogUGx1Z2luUHJvY2Vzcy5hcHAg
aW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREUwOTQy
MTMyNzI0OTYwMDEyNTlGQiAvKiBQbHVnaW5Qcm9jZXNzLmFwcCAqLzsgfTsKIAkJQkNFMDkzNzcx
NEZCMTI4QzAwMTEzOEQ5IC8qIExheWVySG9zdGluZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UwOTM3NTE0RkIxMjhCMDAxMTM4RDkg
LyogTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSAqLzsgfTsKQEAgLTk2MSw2ICs5NjcsMTMgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0OwogCQkJcmVt
b3RlSW5mbyA9IFdlYlByb2Nlc3NTaGltOwogCQl9OworCQlCQ0E4RDQ2NzE1QkNFMEQ2MDA5REMx
RjEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2Jh
bElEU3RyaW5nID0gQkMzREU0NjUxNUE5MTc2MzAwOEQyNkZDOworCQkJcmVtb3RlSW5mbyA9IFdl
YktpdDJTZXJ2aWNlOworCQl9OwogCQlCQ0RFMDkzNTEzMjcyNDk2MDAxMjU5RkIgLyogUEJYQ29u
dGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5Owog
CQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qg
b2JqZWN0ICovOwpAQCAtMTAwNyw2ICsxMDIwLDE2IEBACiAJCQluYW1lID0gIkNvcHkgV2ViIFBy
b2Nlc3MgU2hpbSI7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKKwkJQkNBOEQ0NkIxNUJDRTMzQzAwOURDMUYxIC8qIENvcHlGaWxlcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZHN0UGF0aCA9IFdlYktpdDIuZnJhbWV3b3JrL1hQQ1NlcnZpY2VzOworCQkJ
ZHN0U3ViZm9sZGVyU3BlYyA9IDE7CisJCQlmaWxlcyA9ICgKKwkJCQlCQ0E4RDQ2QzE1QkNFMzRC
MDA5REMxRjEgLyogY29tLmFwcGxlLldlYktpdDIuV2ViS2l0MlNlcnZpY2UueHBjIGluIENvcHlG
aWxlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJfTsKIAkJQkNERTA5M0MxMzI3MjQ5NjAwMTI1OUZCIC8qIENvcHkgUGx1Zy1pbiBQcm9j
ZXNzIFNoaW0gKi8gPSB7CiAJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTExNDgsNyArMTE3MSw3IEBACiAJCTFBNkY5
RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21tYW5kTGluZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBNkZBMDFEMTFFMTUyNjMwMERCMTM3MSAvKiBXZWJQcm9jZXNzTWFp
bk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nl
c3NNYWluTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQTAxRjExRTE1
Mjg3MDBEQjEzNzEgLyogV2ViUHJvY2Vzc01haW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViUHJvY2Vzc01haW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTWFpbk1hYy5jcHA7IHBhdGggPSBtYWMvTWFpbk1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNkZBMzEwMTFFMzkyMUUwMERCMTM3MSAv
KiBNYWluTWFjUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBNYWluTWFjUHJvY2Vzcy5jcHA7IHBhdGggPSBtYWMvTWFpbk1hY1Byb2Nlc3MuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGQTMxNTExRTM5MjM2MDBEQjEzNzEgLyogV2Vi
S2l0TWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRN
YWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RkI3QUMxMUU2NEI2ODAw
REIxMzcxIC8qIFBsdWdpblZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGx1Z2luVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNkZC
N0FEMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsdWdpblZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2MjQsNiArMTY0NywxMCBAQAogCQlCQzMzREQ2NzEyMzg0NjQ2MDAzNjBGM0YgLyogV2ViTnVt
YmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk51bWJlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMzRTBDRjEyNDA4RTg2MDAzNjBGM0YgLyogSW5q
ZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMzNFMEQwMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UmFuZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNERTQ2NjE1
QTkxNzYzMDA4RDI2RkMgLyogY29tLmFwcGxlLldlYktpdDIuV2ViS2l0MlNlcnZpY2UueHBjICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNm
YnVuZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0Mi5XZWJL
aXQyU2VydmljZS54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUJD
M0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gRm91bmRhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0ZvdW5kYXRpb24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJ
QkMzREU0NkMxNUE5MTc2MzAwOEQyNkZDIC8qIEluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgbmFtZSA9IElu
Zm8ucGxpc3Q7IHBhdGggPSBXZWJLaXQyU2VydmljZS9JbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzNERTQ3MTE1QTkxNzY0MDA4RDI2RkMgLyogTWFpbk1hY1NlcnZp
Y2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBNYWluTWFjU2VydmljZS5tbTsgcGF0aCA9IFdl
YktpdDJTZXJ2aWNlL01haW5NYWNTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzQwNzVENzEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0FycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM0MDc1RDgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzQwNzVEOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tDZXJ0aWZpY2F0ZUlu
Zm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc2Niw2ICsxNzkzLDcgQEAK
IAkJQkNBOEM2QTcxMUUzQkE1RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBOEM2QUQx
MUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBOEM2QUUxMUUzQzA4NzAwODEy
RkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDQThENDZBMTVCQ0UxNjAwMDlEQzFGMSAvKiBXZWJLaXQyU2Vydmlj
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJLaXQyU2VydmljZS54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBQzExMUQxMkM5MkMxRjAwQjA4RUVFIC8qIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkRhdGFiYXNlTWFuYWdlclByb3h5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQUMxMTFFMTJDOTJDMUYwMEIwOEVFRSAvKiBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJE
YXRhYmFzZU1hbmFnZXJQcm94eUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDQjBBRUU3MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRhYmxlRGljdGlvbmFyeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdXRhYmxlRGljdGlvbmFyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzNSw2ICsyMDYzLDE0IEBACiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CisJCUJDM0RFNDYzMTVB
OTE3NjMwMDhEMjZGQyAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jr
c0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMg
PSAoCisJCQkJQkMzREU0NjkxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CisJCX07CiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlv
biAqLwogCiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCkBAIC0yMDQ2LDYgKzIwODIsNyBA
QAogCQkJCThEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLywK
IAkJCQkxQTUwREIxRTExMEEzQkRDMDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgKi8sCiAJCQkJ
NTEwMDMxRjYxMzc5Q0FDQjAwQzhERkU0IC8qIFdlYlByb2Nlc3NTaGltLmR5bGliICovLAorCQkJ
CUJDM0RFNDY2MTVBOTE3NjMwMDhEMjZGQyAvKiBjb20uYXBwbGUuV2ViS2l0Mi5XZWJLaXQyU2Vy
dmljZS54cGMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTIwNTYsNiArMjA5Myw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUIzOTZFQTU1MTJFMEVEMkQwMEY0RkVCNyAvKiBjb25maWcuaCAq
LywKKwkJCQkzMkRCQ0Y1RTAzNzBBREVFMDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovLAog
CQkJCUMwQ0U3MkRCMTI0N0U4RjcwMEJDMEVDNCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLAog
CQkJCUJDMkU2RTc0MTE0MTk2RjAwMEE2M0IxRSAvKiBQbGF0Zm9ybSAqLywKIAkJCQkxQUFEREY0
QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVkICovLApAQCAtMjA5MCw2ICsyMTI4LDcgQEAKIAkJ
CQlCQzEyMkZBNTEzMjcwODVEMDBGN0VBQzEgLyogUGx1Z2luUHJvY2VzcyAqLywKIAkJCQlCQzhB
NTAwRTExNzY1QUQ0MDA3NTc1NzMgLyogV2ViS2l0MiAqLywKIAkJCQlCQzhBNTAwRjExNzY1QUUz
MDA3NTc1NzMgLyogV2ViUHJvY2VzcyAqLywKKwkJCQlCQzNERTQ3ODE1QTkxN0M2MDA4RDI2RkMg
LyogV2ViS2l0MlNlcnZpY2UgKi8sCiAJCQkJNkQ4QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNv
bS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluICovLAogCQkJCTA4OUMxNjY2RkU4NDExNThDMDJBQUMw
NyAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLywKIAkJCSk7CkBAIC0yMTA2LDYgKzIxNDUsNyBAQAog
CQkJCTFBQTFDRDA2MTAwRkExQkEwMDc4REVCQyAvKiBDYXJib24uZnJhbWV3b3JrICovLAogCQkJ
CTEwNThDN0IxRkVBNTU4NUUxMUNBMkNCQiAvKiBDb2NvYS5mcmFtZXdvcmsgKi8sCiAJCQkJQkNE
MDA0MkMxMTBDMUUyNzAwM0I4QTY3IC8qIENvcmVTZXJ2aWNlcy5mcmFtZXdvcmsgKi8sCisJCQkJ
QkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovLAogCQkJ
CUNEQ0E4NUQ0MTMyQUMyQjMwMEU5NjFERiAvKiBJT0tpdC5mcmFtZXdvcmsgKi8sCiAJCQkJMUFB
MUM3REUxMDBFODQ2RTAwNzhERUJDIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLywKIAkJ
CQlCQzg3REZBOTEwMTgxMDE0MDA1NjQyMTYgLyogbGliaWN1Y29yZS5keWxpYiAqLywKQEAgLTIx
OTAsNiArMjIzMCw3IEBACiAJCQkJMUE0Rjk3NkUxMDBFN0I2NjAwNjM3QTE4IC8qIFZlcnNpb24u
eGNjb25maWcgKi8sCiAJCQkJQkNCODZGNEIxMTZBQUFDRDAwQ0UyMEI3IC8qIFdlYktpdDIueGNj
b25maWcgKi8sCiAJCQkJNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlByb2Nlc3MueGNj
b25maWcgKi8sCisJCQkJQkNBOEQ0NkExNUJDRTE2MDAwOURDMUYxIC8qIFdlYktpdDJTZXJ2aWNl
LnhjY29uZmlnICovLAogCQkJKTsKIAkJCXBhdGggPSBDb25maWd1cmF0aW9uczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNTkxLDggKzI2MzIsOCBAQAogCQkzMkM4OERGRjAzNzFD
MjQyMDBDOTE3ODMgLyogT3RoZXIgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCi0JCQkJMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWMu
Y3BwICovLAotCQkJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4Lmgg
Ki8sCisJCQkJMUE2RkEzMTAxMUUzOTIxRTAwREIxMzcxIC8qIE1haW5NYWNQcm9jZXNzLmNwcCAq
LywKKwkJCQlCQzNERTQ3MTE1QTkxNzY0MDA4RDI2RkMgLyogTWFpbk1hY1NlcnZpY2UubW0gKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJPdGhlciBTb3VyY2VzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0zMzQ5LDYgKzMzOTAsMTQgQEAKIAkJCXRhYldpZHRoID0gODsKIAkJCXVzZXNU
YWJzID0gMDsKIAkJfTsKKwkJQkMzREU0NzgxNUE5MTdDNjAwOEQyNkZDIC8qIFdlYktpdDJTZXJ2
aWNlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzNE
RTQ2QzE1QTkxNzYzMDA4RDI2RkMgLyogSW5mby5wbGlzdCAqLywKKwkJCSk7CisJCQluYW1lID0g
V2ViS2l0MlNlcnZpY2U7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlCQzQw
NzVENTEyNEZFRkZBMDA2OEYyMEEgLyogY2YgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtNDI5Myw2ICs0MzQyLDIzIEBACiAJCQlwcm9kdWN0UmVmZXJlbmNl
ID0gOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovOwogCQkJ
cHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5mcmFtZXdvcmsiOwogCQl9Owor
CQlCQzNERTQ2NTE1QTkxNzYzMDA4RDI2RkMgLyogV2ViS2l0MlNlcnZpY2UgKi8gPSB7CisJCQlp
c2EgPSBQQlhOYXRpdmVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQkMzREU0
NzYxNUE5MTc2NDAwOEQyNkZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0
aXZlVGFyZ2V0ICJXZWJLaXQyU2VydmljZSIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQlC
QzNERTQ2MjE1QTkxNzYzMDA4RDI2RkMgLyogU291cmNlcyAqLywKKwkJCQlCQzNERTQ2MzE1QTkx
NzYzMDA4RDI2RkMgLyogRnJhbWV3b3JrcyAqLywKKwkJCQlCQzNERTQ2NDE1QTkxNzYzMDA4RDI2
RkMgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJ
ZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSBXZWJLaXQyU2VydmljZTsKKwkJCXBy
b2R1Y3ROYW1lID0gV2ViS2l0MlNlcnZpY2U7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gQkMzREU0
NjYxNUE5MTc2MzAwOEQyNkZDIC8qIGNvbS5hcHBsZS5XZWJLaXQyLldlYktpdDJTZXJ2aWNlLnhw
YyAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYnVuZGxlIjsK
KwkJfTsKIAkJQkNERTA5MzMxMzI3MjQ5NjAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
QkNERTA5M0UxMzI3MjQ5NjAwMTI1OUZCIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJQbHVnaW5Qcm9jZXNzIiAqLzsKQEAgLTQzMzAsNiArNDM5Niw3IEBA
CiAJCQkJSmFwYW5lc2UsCiAJCQkJRnJlbmNoLAogCQkJCUdlcm1hbiwKKwkJCQllbiwKIAkJCSk7
CiAJCQltYWluR3JvdXAgPSAwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0MiAqLzsK
IAkJCXByb2R1Y3RSZWZHcm91cCA9IDAzNDc2OERGRkYzOEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0
cyAqLzsKQEAgLTQzNDMsNiArNDQxMCw3IEBACiAJCQkJQzBDRTcyODUxMjQ3RTY2ODAwQkMwRUM0
IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQkxQUMyNUZBRjEyQTQ4RUE3MDBCRDI2NzEgLyog
UGx1Z2luUHJvY2Vzc1NoaW0gKi8sCiAJCQkJNTEwMDMxRUExMzc5Q0FDQjAwQzhERkU0IC8qIFdl
YlByb2Nlc3NTaGltICovLAorCQkJCUJDM0RFNDY1MTVBOTE3NjMwMDhEMjZGQyAvKiBXZWJLaXQy
U2VydmljZSAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCkBA
IC00MzY1LDYgKzQ0MzMsMTQgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQkMzREU0NjQxNUE5MTc2MzAwOEQyNkZDIC8qIFJlc291
cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJQkM4MkRGMjIxNUJERjQy
MjAwRkMyODQxIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKKwkJ
CSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJ
QkNERTA5MzgxMzI3MjQ5NjAwMTI1OUZCIC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpA
QCAtNDUwMCw3ICs0NTc2LDcgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJ
YnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTFBNkZBMzEx
MTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBNkZB
MzExMTFFMzkyMUUwMERCMTM3MSAvKiBNYWluTWFjUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ5NjAsMTEgKzUwMzYsMTkgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKKwkJQkMzREU0NjIxNUE5MTc2MzAwOEQyNkZDIC8qIFNv
dXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQlCQzNERTQ3MjE1QTkxNzY0
MDA4RDI2RkMgLyogTWFpbk1hY1NlcnZpY2UubW0gaW4gU291cmNlcyAqLywKKwkJCSk7CisJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJQkNERTA5M0Ex
MzI3MjQ5NjAwMTI1OUZCIC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVp
bGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgK
LQkJCQlCQ0RFMDkzQjEzMjcyNDk2MDAxMjU5RkIgLyogTWFpbk1hYy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlCQ0RFMDkzQjEzMjcyNDk2MDAxMjU5RkIgLyogTWFpbk1hY1Byb2Nlc3MuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC00OTkxLDYgKzUwNzUsMTEgQEAKIAkJCXRhcmdldCA9IDUxMDAzMUVB
MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hpbSAqLzsKIAkJCXRhcmdldFByb3h5ID0g
NTE4M0IzOEQxMzc5RjU0NjAwRTg3NTRFIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJ
fTsKKwkJQkNBOEQ0NjgxNUJDRTBENjAwOURDMUYxIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gQkMzREU0NjUx
NUE5MTc2MzAwOEQyNkZDIC8qIFdlYktpdDJTZXJ2aWNlICovOworCQkJdGFyZ2V0UHJveHkgPSBC
Q0E4RDQ2NzE1QkNFMEQ2MDA5REMxRjEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9
OwogCQlCQ0RFMDkzNDEzMjcyNDk2MDAxMjU5RkIgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9
IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSAxQUMyNUZBRjEy
QTQ4RUE3MDBCRDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0gKi87CkBAIC01MTgwLDYgKzUyNjks
MjcgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJQkMzREU0NzMxNUE5
MTc2NDAwOEQyNkZDIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRp
b247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDQThENDZBMTVCQ0UxNjAwMDlE
QzFGMSAvKiBXZWJLaXQyU2VydmljZS54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7
CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlCQzNERTQ3NDE1QTkxNzY0MDA4RDI2
RkMgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQ0E4RDQ2QTE1QkNFMTYwMDA5REMxRjEgLyog
V2ViS2l0MlNlcnZpY2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsK
KwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQlCQzNERTQ3NTE1QTkxNzY0MDA4RDI2RkMgLyog
UHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFz
ZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQ0E4RDQ2QTE1QkNFMTYwMDA5REMxRjEgLyogV2Vi
S2l0MlNlcnZpY2UueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsKKwkJ
CW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlCQ0RFMDkzRjEzMjcyNDk2MDAxMjU5RkIgLyog
RGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25m
aWd1cmF0aW9uUmVmZXJlbmNlID0gQkMxMjJGQTMxMzI3MDdGMzAwRjdFQUMxIC8qIFBsdWdpblBy
b2Nlc3MueGNjb25maWcgKi87CkBAIC01MjkzLDYgKzU0MDMsMTYgQEAKIAkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CiAJCX07CisJCUJDM0RFNDc2MTVBOTE3NjQwMDhEMjZGQyAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0MlNlcnZpY2UiICovID0g
eworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMg
PSAoCisJCQkJQkMzREU0NzMxNUE5MTc2NDAwOEQyNkZDIC8qIERlYnVnICovLAorCQkJCUJDM0RF
NDc0MTVBOTE3NjQwMDhEMjZGQyAvKiBSZWxlYXNlICovLAorCQkJCUJDM0RFNDc1MTVBOTE3NjQw
MDhEMjZGQyAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9u
SXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247
CisJCX07CiAJCUJDREUwOTNFMTMyNzI0OTYwMDEyNTlGQiAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiUGx1Z2luUHJvY2VzcyIgKi8gPSB7CiAJCQlpc2Eg
PSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDJTZXJ2aWNlL0luZm8ucGxpc3QKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViS2l0MlNlcnZpY2UvSW5mby5wbGlzdAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDJTZXJ2aWNlL0luZm8ucGxpc3QJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRw
Oi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJz
aW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+
CisJPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tl
eT4KKwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJ
ZGVudGlmaWVyPC9rZXk+CisJPHN0cmluZz5jb20uYXBwbGUuV2ViS2l0MlNlcnZpY2U8L3N0cmlu
Zz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42
LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgorCTxzdHJpbmc+JHtQUk9EVUNU
X05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+CisJPHN0cmlu
Zz5YUEMhPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5Pgor
CTxzdHJpbmc+MS4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgorCTxz
dHJpbmc+Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+CisJPHN0cmlu
Zz4xPC9zdHJpbmc+CisJPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgorCTx0cnVl
Lz4KKwk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KKwk8c3RyaW5nPk5TQXBwbGljYXRpb248
L3N0cmluZz4KKwk8a2V5PkxTVUlFbGVtZW50PC9rZXk+CisJPHRydWUvPgorCTxrZXk+WFBDU2Vy
dmljZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+CisJCTxzdHJpbmc+
QXBwbGljYXRpb248L3N0cmluZz4KKwkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgorCQk8c3RyaW5n
Pl9OU0FwcGxpY2F0aW9uTWFpbjwvc3RyaW5nPgorCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlPC9r
ZXk+CisJCTx0cnVlLz4KKwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViS2l0MlNlcnZpY2UvTWFpbk1hY1NlcnZpY2UubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViS2l0MlNlcnZpY2UvTWFpbk1hY1NlcnZpY2UubW0JKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyU2VydmljZS9NYWluTWFjU2VydmljZS5tbQko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlIDxBdmFp
bGFiaWxpdHlNYWNyb3MuaD4KKworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwNzAKKworI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx4cGMveHBjLmg+CisKK2V4dGVybiAiQyIgbWFjaF9wb3J0
X3QgeHBjX2RpY3Rpb25hcnlfY29weV9tYWNoX3NlbmQoeHBjX29iamVjdF90LCBjb25zdCBjaGFy
Kik7CisKK3N0YXRpYyB2b2lkIFdlYktpdDJTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0
aW9uX3QgcGVlcikKK3sKKyAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKHBlZXIs
IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVu
dF9oYW5kbGVyKHBlZXIsIF4oeHBjX29iamVjdF90IGV2ZW50KSB7CisgICAgICAgIHhwY190eXBl
X3QgdHlwZSA9IHhwY19nZXRfdHlwZShldmVudCk7CisgICAgICAgIGlmICh0eXBlID09IFhQQ19U
WVBFX0VSUk9SKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQgPT0gWFBDX0VSUk9SX0NPTk5FQ1RJ
T05fSU5WQUxJRCB8fCBldmVudCA9PSBYUENfRVJST1JfVEVSTUlOQVRJT05fSU1NSU5FTlQpIHsK
KyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoaXMgY2FzZSBtb3JlIGdyYWNlZnVs
bHkuCisgICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0KHR5cGUgPT0gWFBDX1RZUEVfRElD
VElPTkFSWSk7CisKKyAgICAgICAgICAgIGlmICghc3RyY21wKHhwY19kaWN0aW9uYXJ5X2dldF9z
dHJpbmcoZXZlbnQsICJtZXNzYWdlLW5hbWUiKSwgImJvb3RzdHJhcCIpKSB7CisgICAgICAgICAg
ICAgICAgc3RhdGljIHZvaWQqIGZyYW1ld29ya0xpYnJhcnkgPSBkbG9wZW4oeHBjX2RpY3Rpb25h
cnlfZ2V0X3N0cmluZyhldmVudCwgImZyYW1ld29yay1leGVjdXRhYmxlLXBhdGgiKSwgUlRMRF9O
T1cpOworICAgICAgICAgICAgICAgIGlmICghZnJhbWV3b3JrTGlicmFyeSkgeworICAgICAgICAg
ICAgICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBsb2FkIFdlYktpdDIuZnJhbWV3b3JrOiAlc1xu
IiwgZGxlcnJvcigpKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOwor
ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHR5cGVkZWYgaW50ICgqV2ViS2l0
TWFpbkZ1bmN0aW9uKSh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIG1hY2hfcG9ydF90IHNl
cnZlclBvcnQpOworICAgICAgICAgICAgICAgIFdlYktpdE1haW5GdW5jdGlvbiB3ZWJLaXRNYWlu
WFBDID0gcmVpbnRlcnByZXRfY2FzdDxXZWJLaXRNYWluRnVuY3Rpb24+KGRsc3ltKGZyYW1ld29y
a0xpYnJhcnksICJXZWJLaXRNYWluWFBDIikpOworICAgICAgICAgICAgICAgIGlmICghd2ViS2l0
TWFpblhQQykgeworICAgICAgICAgICAgICAgICAgICBOU0xvZyhAIlVuYWJsZSB0byBmaW5kIGVu
dHJ5IHBvaW50IGluIFdlYktpdDIuZnJhbWV3b3JrOiAlc1xuIiwgZGxlcnJvcigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIHhwY19vYmplY3RfdCByZXBseSA9IHhwY19kaWN0aW9uYXJ5X2NyZWF0
ZV9yZXBseShldmVudCk7CisgICAgICAgICAgICAgICAgeHBjX2RpY3Rpb25hcnlfc2V0X3N0cmlu
ZyhyZXBseSwgIm1lc3NhZ2UtbmFtZSIsICJwcm9jZXNzLWZpbmlzaGVkLWxhdW5jaGluZyIpOwor
ICAgICAgICAgICAgICAgIHhwY19jb25uZWN0aW9uX3NlbmRfbWVzc2FnZSh4cGNfZGljdGlvbmFy
eV9nZXRfcmVtb3RlX2Nvbm5lY3Rpb24oZXZlbnQpLCByZXBseSk7CisgICAgICAgICAgICAgICAg
eHBjX3JlbGVhc2UocmVwbHkpOworCisgICAgICAgICAgICAgICAgd2ViS2l0TWFpblhQQyhwZWVy
LCB4cGNfZGljdGlvbmFyeV9jb3B5X21hY2hfc2VuZChldmVudCwgInNlcnZlci1wb3J0IikpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICB4cGNfY29ubmVjdGlvbl9y
ZXN1bWUocGVlcik7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAg
ICB4cGNfbWFpbihXZWJLaXQyU2VydmljZUV2ZW50SGFuZGxlcik7CisgICAgcmV0dXJuIDA7Cit9
CisKKyNlbHNlCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICByZXR1
cm4gMDsKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5h
Z2VyLmNwcAkocmV2aXNpb24gMTI0MjY5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYyLDggKzYyLDggQEAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24qIFBsdWdpblByb2Nlc3ND
bwogICAgICAgICByZXR1cm4gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBDb3JlSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyLnBvcnQoKTsKLSAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQor
ICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIo
ZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CisgICAgaWYgKENvcmVJUEM6OkNv
bm5lY3Rpb246OmlkZW50aWZpZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIpKQogICAgICAg
ICByZXR1cm4gMDsKICNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIENvcmVJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBlbmNvZGVkQ29u
bmVjdGlvbklkZW50aWZpZXIuZmlsZURlc2NyaXB0b3IoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCShyZXZpc2lvbiAx
MjQyNjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsMTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIEhB
VkUoWFBDKQorI2ltcG9ydCA8eHBjL3hwYy5oPgorI2VuZGlmCisKICNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzAKIGV4dGVybiAiQyIga2Vybl9yZXR1cm5fdCBib290
c3RyYXBfcmVnaXN0ZXIyKG1hY2hfcG9ydF90LCBuYW1lX3QsIG1hY2hfcG9ydF90LCB1aW50NjRf
dCk7CiAjZW5kaWYKQEAgLTYxLDE0ICs2NSw1MSBAQCAtKHZvaWQpX2luc3RhbGxBdXRvcmVsZWFz
ZVBvb2xzT25DdXJyZW50CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgSEFWRShY
UEMpCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2ludCBXZWJQcm9jZXNzTWFpblhQQyh4cGNfY29ubmVj
dGlvbl90IHhwY0Nvbm5lY3Rpb24sIG1hY2hfcG9ydF90IHNlcnZlclBvcnQpOworfQogCi1pbnQg
V2ViUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5lKQorZXh0ZXJuICJD
IiBXS19FWFBPUlQgaW50IFdlYktpdE1haW5YUEMoeHBjX2Nvbm5lY3Rpb25fdCB4cGNDb25uZWN0
aW9uLCBtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0KTsKKworaW50IFdlYktpdE1haW5YUEMoeHBjX2Nv
bm5lY3Rpb25fdCB4cGNDb25uZWN0aW9uLCBtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0KQogewotICAg
IC8vIFJlbW92ZSB0aGUgV2ViUHJvY2VzcyBzaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJB
UklFUyBlbnZpcm9ubWVudCB2YXJpYWJsZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKLSAg
ICAvLyB0aGUgV2ViUHJvY2VzcyBkb24ndCB0cnkgdG8gaW5zZXJ0IHRoZSBzaGltIGFuZCBjcmFz
aC4KLSAgICBFbnZpcm9ubWVudFV0aWxpdGllczo6c3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5n
KCJEWUxEX0lOU0VSVF9MSUJSQVJJRVMiLCAiL1dlYlByb2Nlc3NTaGltLmR5bGliIik7CisgICAg
QVNTRVJUKCFvYmpjX2NvbGxlY3RpbmdFbmFibGVkKCkpOworCisgICAgcmV0dXJuIFdlYktpdDo6
V2ViUHJvY2Vzc01haW5YUEMoeHBjQ29ubmVjdGlvbiwgc2VydmVyUG9ydCk7Cit9CisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBIQVZFKFhQQykKKworaW50IFdlYlByb2Nlc3NN
YWluWFBDKHhwY19jb25uZWN0aW9uX3QgeHBjQ29ubmVjdGlvbiwgbWFjaF9wb3J0X3Qgc2VydmVy
UG9ydCkKK3sKKyAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBv
b2wgYWxsb2NdIGluaXRdOworCisgICAgSW5pdFdlYkNvcmVTeXN0ZW1JbnRlcmZhY2UoKTsKKyAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkKCk7CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAgICAvLyBJ
bml0aWFsaXplIHRoZSBzaGltLgorICAgIC8vIEZJWE1FOiBNYWtlIHRoZSBzaGltIHdvcmsuCisg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuaW5pdGlhbGl6ZVNoaW0oKTsKKworICAgIC8vIENyZWF0
ZSB0aGUgY29ubmVjdGlvbi4KKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplKENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoc2VydmVyUG9ydCwgeHBjQ29ubmVjdGlvbiks
IFJ1bkxvb3A6Om1haW4oKSk7CisKKyAgICBXS0FYUmVnaXN0ZXJSZW1vdGVBcHAoKTsKIAorICAg
IFtwb29sIGRyYWluXTsKKworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKK2ludCBXZWJQcm9j
ZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExpbmUpCit7CiAgICAgTlNBdXRvcmVs
ZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKIAogICAg
IFN0cmluZyBzZXJ2aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2aWNlbmFtZSJdOwpAQCAtMTY1
LDcgKzIwNiw3IEBAIGludCBXZWJQcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY28KICAg
ICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0aWFsaXplU2hpbSgpOwogCiAgICAgLy8gQ3JlYXRl
IHRoZSBjb25uZWN0aW9uLgotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUoc2Vy
dmVyUG9ydCwgUnVuTG9vcDo6bWFpbigpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5pbml0
aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoc2VydmVyUG9ydCksIFJ1bkxv
b3A6Om1haW4oKSk7CiAKICAgICBbcG9vbCBkcmFpbl07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L21hYy9NYWluTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9tYWMvTWFpbk1h
Yy5jcHAJKHJldmlzaW9uIDEyNDI2OSkKKysrIFNvdXJjZS9XZWJLaXQyL21hYy9NYWluTWFjLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw2OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
PGRsZmNuLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNs
dWRlIDxzeXMvZXZlbnQuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotc3RhdGljIHZvaWQgY2xv
c2VVbnVzZWRGaWxlRGVzY3JpcHRvcnMoKQotewotICAgIGludCBudW1GRHMgPSBnZXRkdGFibGVz
aXplKCk7Ci0KLSAgICAvLyBDbG9zZSBhbGwgZmlsZSBkZXNjcmlwdG9ycyBleGNlcHQgc3RkaW4s
IHN0ZG91dCBhbmQgc3RkZXJyLgotICAgIGZvciAoaW50IGZkID0gMzsgZmQgPCBudW1GRHM7ICsr
ZmQpIHsKLSAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBhIGtxdWV1ZSBmaWxlIGRlc2NyaXB0
b3IuIElmIGl0IGlzLCB3ZSBkb24ndCB3YW50IHRvIGNsb3NlIGl0IGJlY2F1c2UgaXQgaGFzCi0g
ICAgICAgIC8vIGJlZW4gY3JlYXRlZCBieSBpbml0aWFsaXppbmcgbGliZGlzcGF0Y2ggZnJvbSBh
IGdsb2JhbCBpbml0aWFsaXplci4gU2VlIDxyZGFyOi8vcHJvYmxlbS85ODI4NDc2PiBmb3IgbW9y
ZSBkZXRhaWxzLgotICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdGltZVNwZWMgPSB7IDAsIDAgfTsK
LSAgICAgICAgaWYgKCFrZXZlbnQoZmQsIDAsIDAsIDAsIDAsICZ0aW1lU3BlYykpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBjbG9zZShmZCk7Ci0gICAgfQotfQotCi1pbnQgbWFp
bihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgY2xvc2VVbnVzZWRGaWxlRGVzY3JpcHRv
cnMoKTsKLQotICAgIGlmIChhcmdjIDwgMikKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsK
LQotICAgIHN0YXRpYyB2b2lkKiBmcmFtZXdvcmtMaWJyYXJ5ID0gZGxvcGVuKGFyZ3ZbMV0sIFJU
TERfTk9XKTsKLSAgICBpZiAoIWZyYW1ld29ya0xpYnJhcnkpIHsKLSAgICAgICAgZnByaW50Zihz
dGRlcnIsICJVbmFibGUgdG8gbG9hZCBXZWJLaXQyLmZyYW1ld29yazogJXNcbiIsIGRsZXJyb3Io
KSk7Ci0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgfQotCi0gICAgdHlwZWRlZiBp
bnQgKCpXZWJLaXRNYWluRnVuY3Rpb24pKGludCBhcmdjLCBjaGFyKiogYXJndik7Ci0gICAgV2Vi
S2l0TWFpbkZ1bmN0aW9uIHdlYktpdE1haW4gPSByZWludGVycHJldF9jYXN0PFdlYktpdE1haW5G
dW5jdGlvbj4oZGxzeW0oZnJhbWV3b3JrTGlicmFyeSwgIldlYktpdE1haW4iKSk7Ci0gICAgaWYg
KCF3ZWJLaXRNYWluKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5hYmxlIHRvIGZpbmQg
ZW50cnkgcG9pbnQgaW4gV2ViS2l0Mi5mcmFtZXdvcms6ICVzXG4iLCBkbGVycm9yKCkpOwotICAg
ICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwotICAgIH0KLQotICAgIHJldHVybiB3ZWJLaXRNYWlu
KGFyZ2MsIGFyZ3YpOwotfQpJbmRleDogU291cmNlL1dlYktpdDIvbWFjL01haW5NYWNQcm9jZXNz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9tYWMvTWFpbk1hY1Byb2Nlc3MuY3Bw
CShyZXZpc2lvbiAxMjIwNTUpCShmcm9tIFNvdXJjZS9XZWJLaXQyL21hYy9NYWluTWFjLmNwcDox
MjIwNTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9tYWMvTWFpbk1hY1Byb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8ZGxmY24uaD4K
KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN5cy9l
dmVudC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitzdGF0aWMgdm9pZCBjbG9zZVVudXNlZEZp
bGVEZXNjcmlwdG9ycygpCit7CisgICAgaW50IG51bUZEcyA9IGdldGR0YWJsZXNpemUoKTsKKwor
ICAgIC8vIENsb3NlIGFsbCBmaWxlIGRlc2NyaXB0b3JzIGV4Y2VwdCBzdGRpbiwgc3Rkb3V0IGFu
ZCBzdGRlcnIuCisgICAgZm9yIChpbnQgZmQgPSAzOyBmZCA8IG51bUZEczsgKytmZCkgeworICAg
ICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEga3F1ZXVlIGZpbGUgZGVzY3JpcHRvci4gSWYgaXQg
aXMsIHdlIGRvbid0IHdhbnQgdG8gY2xvc2UgaXQgYmVjYXVzZSBpdCBoYXMKKyAgICAgICAgLy8g
YmVlbiBjcmVhdGVkIGJ5IGluaXRpYWxpemluZyBsaWJkaXNwYXRjaCBmcm9tIGEgZ2xvYmFsIGlu
aXRpYWxpemVyLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk4Mjg0NzY+IGZvciBtb3JlIGRldGFpbHMu
CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lU3BlYyA9IHsgMCwgMCB9OworICAgICAgICBp
ZiAoIWtldmVudChmZCwgMCwgMCwgMCwgMCwgJnRpbWVTcGVjKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cit9CisKK2ludCBtYWluKGludCBhcmdj
LCBjaGFyKiogYXJndikKK3sKKyAgICBjbG9zZVVudXNlZEZpbGVEZXNjcmlwdG9ycygpOworCisg
ICAgaWYgKGFyZ2MgPCAyKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgc3Rh
dGljIHZvaWQqIGZyYW1ld29ya0xpYnJhcnkgPSBkbG9wZW4oYXJndlsxXSwgUlRMRF9OT1cpOwor
ICAgIGlmICghZnJhbWV3b3JrTGlicmFyeSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVu
YWJsZSB0byBsb2FkIFdlYktpdDIuZnJhbWV3b3JrOiAlc1xuIiwgZGxlcnJvcigpKTsKKyAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICB9CisKKyAgICB0eXBlZGVmIGludCAoKldlYktp
dE1haW5GdW5jdGlvbikoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KTsKKyAgICBXZWJLaXRNYWluRnVu
Y3Rpb24gd2ViS2l0TWFpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViS2l0TWFpbkZ1bmN0aW9uPihk
bHN5bShmcmFtZXdvcmtMaWJyYXJ5LCAiV2ViS2l0TWFpbiIpKTsKKyAgICBpZiAoIXdlYktpdE1h
aW4pIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gZmluZCBlbnRyeSBwb2lu
dCBpbiBXZWJLaXQyLmZyYW1ld29yazogJXNcbiIsIGRsZXJyb3IoKSk7CisgICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgcmV0dXJuIHdlYktpdE1haW4oYXJnYywgYXJn
dik7Cit9CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMjQyNzQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNy0zMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgorCisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gcnVuIHRoZSBXZWJQcm9jZXNzIGFzIGFu
IFhQQyBzZXJ2aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MjgxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAocnVuTWFjV2ViS2l0QXBwKToK
KyAgICAgICAgKGV4ZWNNYWNXZWJLaXRBcHBGb3JEZWJ1Z2dpbmcpOgorICAgICAgICBBZGQgX19Y
UENfRFlMRF9GUkFNRVdPUktfUEFUSCB0byB0aGUgZW52aXJvbm1lbnQgc28gdGhhdAorICAgICAg
ICBhbnkgWFBDIHNlcnZpY2Ugd2UgbGF1bmNoIGFsc28gZ2V0cyB0aGUgY29ycmVjdCBidWlsdCBm
cmFtZXdvcmtzLgorCiAyMDEyLTA3LTMxICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIG5yd3Q6IHJlbmFtZSB3b3JrZXIucHkgdG8gbGF5b3V0X3Rlc3RfcnVu
bmVyLnB5CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCShyZXZpc2lvbiAxMjQxNjEpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcgY29weSkKQEAgLTI3MDQsNiArMjcwNCw4IEBA
IHN1YiBydW5NYWNXZWJLaXRBcHAoJDskKQogICAgIG15ICRwcm9kdWN0RGlyID0gcHJvZHVjdERp
cigpOwogICAgIHByaW50ICJTdGFydGluZyBAe1tiYXNlbmFtZSgkYXBwUGF0aCldfSB3aXRoIERZ
TERfRlJBTUVXT1JLX1BBVEggc2V0IHRvIHBvaW50IHRvIGJ1aWx0IFdlYktpdCBpbiAkcHJvZHVj
dERpci5cbiI7CiAgICAgJEVOVntEWUxEX0ZSQU1FV09SS19QQVRIfSA9ICRwcm9kdWN0RGlyOwor
ICAgICRFTlZ7X19YUENfRFlMRF9GUkFNRVdPUktfUEFUSH0gPSAkcHJvZHVjdERpcjsKKwogICAg
ICRFTlZ7V0VCS0lUX1VOU0VUX0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gIllFUyI7CiAKICAgICBz
ZXRVcEd1YXJkTWFsbG9jSWZOZWVkZWQoKTsKQEAgLTI3MzksNiArMjc0MSw4IEBAIHN1YiBleGVj
TWFjV2ViS2l0QXBwRm9yRGVidWdnaW5nKCQpCiAKICAgICBteSAkcHJvZHVjdERpciA9IHByb2R1
Y3REaXIoKTsKICAgICAkRU5We0RZTERfRlJBTUVXT1JLX1BBVEh9ID0gJHByb2R1Y3REaXI7Cisg
ICAgJEVOVntfX1hQQ19EWUxEX0ZSQU1FV09SS19QQVRIfSA9ICRwcm9kdWN0RGlyOworCiAgICAg
JEVOVntXRUJLSVRfVU5TRVRfRFlMRF9GUkFNRVdPUktfUEFUSH0gPSAiWUVTIjsKIAogICAgIHNl
dFVwR3VhcmRNYWxsb2NJZk5lZWRlZCgpOwo=
</data>
<flag name="review"
          id="165201"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>