<?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>172133</bug_id>
          
          <creation_ts>2017-05-15 14:13:55 -0700</creation_ts>
          <short_desc>Make the application PID available to WebCore</short_desc>
          <delta_ts>2017-05-16 16:05:09 -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>WebKit 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>
          
          <blocked>172152</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>kling</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308789</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 14:13:55 -0700</bug_when>
    <thetext>Make the application PID available to WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308798</commentid>
    <comment_count>1</comment_count>
      <attachid>310165</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 14:22:57 -0700</bug_when>
    <thetext>Created attachment 310165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308841</commentid>
    <comment_count>2</comment_count>
      <attachid>310176</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 15:53:59 -0700</bug_when>
    <thetext>Created attachment 310176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308843</commentid>
    <comment_count>3</comment_count>
      <attachid>310176</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-05-15 16:15:39 -0700</bug_when>
    <thetext>Comment on attachment 310176
Patch

r=me
I liked the old name better. applicationPID is rather ambiguous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308901</commentid>
    <comment_count>4</comment_count>
      <attachid>310197</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 17:41:10 -0700</bug_when>
    <thetext>Created attachment 310197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308908</commentid>
    <comment_count>5</comment_count>
      <attachid>310198</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 17:50:11 -0700</bug_when>
    <thetext>Created attachment 310198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308963</commentid>
    <comment_count>6</comment_count>
      <attachid>310216</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-15 21:02:43 -0700</bug_when>
    <thetext>Created attachment 310216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308997</commentid>
    <comment_count>7</comment_count>
      <attachid>310216</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 23:07:02 -0700</bug_when>
    <thetext>Comment on attachment 310216
Patch

Clearing flags on attachment: 310216

Committed r216903: &lt;http://trac.webkit.org/changeset/216903&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1308998</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-15 23:07:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309205</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 11:19:59 -0700</bug_when>
    <thetext>Is PID really what you want here? More and more, we have been moving away from using the PID and instead using the audit_token.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309219</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-05-16 11:39:26 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #9)
&gt; Is PID really what you want here? More and more, we have been moving away
&gt; from using the PID and instead using the audit_token.

The patch in bug #172152 should hopefully answer your question about why we want a PID.

Maybe NEFilterSource should be asking us for audit tokens instead of PIDs, but they aren&apos;t at present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309356</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-05-16 16:05:09 -0700</bug_when>
    <thetext>(In reply to Andy Estes from comment #10)
&gt; (In reply to Sam Weinig from comment #9)
&gt; &gt; Is PID really what you want here? More and more, we have been moving away
&gt; &gt; from using the PID and instead using the audit_token.
&gt; 
&gt; The patch in bug #172152 should hopefully answer your question about why we
&gt; want a PID.
&gt; 
&gt; Maybe NEFilterSource should be asking us for audit tokens instead of PIDs,
&gt; but they aren&apos;t at present.

The almost certainly should :(.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310165</attachid>
            <date>2017-05-15 14:22:57 -0700</date>
            <delta_ts>2017-05-15 15:53:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172133-20170515142257.patch</filename>
            <type>text/plain</type>
            <size>17193</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNzlkMzAxZGMzOGU2
Yjk4NjcyZjZlYzc0YmQ5ZDkzM2VkZmQ5My4uYjExZTM2MzJhNzg5NWI1YzhkY2MzOTdjYzg4ZDMz
OTMxYjgyNGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNhdGlv
biBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg6
CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwbGljYXRpb25QSURPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjph
cHBsaWNhdGlvblBJRCk6IFJldHVybnMgdGhlIG92ZXJyaWRlIFBJRCBpZiBzZXQsIG9yIGdldHBp
ZCgpIG90aGVyd2lzZS4KKyAgICAgICAgKFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uUElEKToKKwog
MjAxNy0wNS0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMV0gRG8gbm90IHRyeSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0byBzdWJmcmFtZXMg
aWYgdGhlaXIgZG9jdW1lbnRzIGhhdmUgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDJlYTQ3NjQxZTM5ZWI3NTlkOTZiM2FjNDcyN2E3MGYwN2JiMmFlNjYuLjQ0NWZmZWFm
M2RmNzcwNTVmZmQ4Njg4MDk1NjY2OWVkMTFmNTBlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MCBAQAorMjAxNy0wNS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSB0aGUgYXBwbGljYXRpb24gUElEIGF2YWlsYWJsZSB0byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB1aVByb2Nlc3NQ
SUQgdG8gV2ViIGFuZCBOZXR3b3JraW5nIHByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4gVGhl
IFVJIHByb2Nlc3MKKyAgICAgICAgaW5pdGlhbGl6ZXMgdGhlc2UgdG8gZ2V0cGlkKCksIGFuZCB0
aGUgY2hpbGQgcHJvY2Vzc2VzIGNhbGwgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25QSUQoKQorICAg
ICAgICBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgorCisgICAgICAgIFRoaXMgcmVwbGFjZXMgcHJl
c2VudGVyQXBwbGljYXRpb25QaWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2Vi
UHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlc2VudGVyQXBwbGljYXRpb25Q
aWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKwogMjAxNy0wNS0xNSAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIGRlYnVnIGJ1aWxkIGZpeApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCAw
ZTQyYjBjNTIxNTk0ZTllYzYyMTdmZTZjZjRhODg4MGJhMDJkZTQwLi40NWJlYzYyNzczNDIwMzNj
Mzk0MGJlYjAwZmRiZTRmNmFjYzFjY2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCiAKLSNpZm5kZWYgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzX2gKLSNkZWZp
bmUgUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTM0LDYgKzMzLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCk7CiAKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25QSUQocGlkX3Qp
OworV0VCQ09SRV9FWFBPUlQgcGlkX3QgYXBwbGljYXRpb25QSUQoKTsKKwogI2lmIFBMQVRGT1JN
KE1BQykKIAogbmFtZXNwYWNlIE1hY0FwcGxpY2F0aW9uIHsKQEAgLTg0LDUgKzg2LDMgQEAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCk7CiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLQotI2VuZGlm
IC8vIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0KaW5kZXggMGVjYTg3MGFlNGNjZmU5
OGFiMTA5YWUxZTBiMTlmMjg3MjMxMDQzZC4uZTQ2ZDJkZDA5YTVmOGI3ZmZjODBiY2MyN2ZkMDgz
NDY5OWFlZmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5tbQpAQCAtMzQsNyArMzQsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKLXN0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVu
ZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCA9IGZhbHNlOworc3RhdGljIGJvb2wgYXBw
bGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkOworc3RhdGljIGJvb2wg
YXBwbGljYXRpb25QSURPdmVycmlkZVdhc1F1ZXJpZWQ7CiAjZW5kaWYKIAogLy8gVGhlIGFwcGxp
Y2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyIGdldHMgc2V0IHRvIHRoZSBVSVByb2Nlc3MgYnVuZGxl
IGlkZW50aWZpZXIgYnkgdGhlIFdlYlByb2Nlc3MgYW5kCkBAIC02Myw2ICs2NCwyOSBAQCB2b2lk
IHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50
aWZpZXIpCiAgICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGJ1bmRs
ZUlkZW50aWZpZXI7CiB9CiAKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPHBpZF90PiYgYXBwbGljYXRp
b25QSURPdmVycmlkZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9u
YWw8cGlkX3Q+PiBwaWQ7CisjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKKyAgICBhcHBsaWNhdGlv
blBJRE92ZXJyaWRlV2FzUXVlcmllZCA9IHRydWU7CisjZW5kaWYKKyAgICByZXR1cm4gcGlkOwor
fQorCitwaWRfdCBhcHBsaWNhdGlvblBJRCgpCit7CisgICAgY29uc3QgYXV0byYgcGlkID0gYXBw
bGljYXRpb25QSURPdmVycmlkZSgpOworICAgIEFTU0VSVCghcGlkIHx8IFJ1bkxvb3A6OmlzTWFp
bigpKTsKKyAgICByZXR1cm4gcGlkID8gcGlkLnZhbHVlKCkgOiBnZXRwaWQoKTsKK30KKwordm9p
ZCBzZXRBcHBsaWNhdGlvblBJRChwaWRfdCBwaWQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhcHBsaWNhdGlvblBJRE92ZXJyaWRl
V2FzUXVlcmllZCwgImFwcGxpY2F0aW9uUElEKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldEFwcGxpY2F0aW9uUElEKCkiKTsKKyAgICBhcHBsaWNhdGlvblBJRE92ZXJyaWRlKCkgPSBw
aWQ7Cit9CisKIHN0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0
cmluZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykKIHsKICAgICByZXR1cm4gYXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCkgPT0gYnVuZGxlSWRlbnRpZmllclN0cmluZzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAwNmUyMWQ1
NzUxNjVkNzVkY2ZhNjFjNDIxNjUxM2ZhMDA2ZGMzOWM1Li41NGEyZmYzMzkyYTgzZDhhOGM5ZGNm
NWRmZGU4YzBiMjM2YmY5YjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMDIsNiArMjAyLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCBjcml0aWNhbCkKIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKKyAgICBXZWJDb3JlOjpzZXRBcHBsaWNhdGlvblBJ
RChwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MocGFyYW1ldGVycyk7CiAKICAgICBXVEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVh
ZElzVXNlckluaXRpYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDdkNmRmM2Q1NzFiOTQ5OTlkZTY0YjgzNmQxNDQzMzg1Nzk3ZWEwYWEuLmY0ZTMwNTM3NjM5
NWM0NjFiNWYyM2MwNmUwOWJkZmUyMGYzZDNjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNv
ZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IGxv
YWRUaHJvdHRsZUxhdGVuY3k7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZv
ckN1c3RvbVByb3RvY29sczsKKyAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1BJRDsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29k
ZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKQEAgLTE0OCw2ICsxNDksOCBAQCBib29s
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
dWlQcm9jZXNzUElEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBhcmVudFByb2Nlc3NOYW1lKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXgg
ZDM0Mjk3ODRjNmNkOTAxOWY2MGRjNmEwMmIyOGI4YWFjZjViZmM1OS4uY2UxY2Y2YmYzODQ2Zjdi
Y2UyMjNkMDU3NWRhYjNhODJjYjFlYTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgU2Vjb25kcyBsb2FkVGhyb3R0bGVMYXRlbmN5OwogCiAgICAgVmVjdG9yPFN0
cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHM7CisgICAgcGlkX3Qg
dWlQcm9jZXNzUElEIHsgMCB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHBh
cmVudFByb2Nlc3NOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDJiZGZmMDg5ZjBkOGVhZTA1MWRmYmY3
ZDY4OTBkZGFhZDk5NTJjNmEuLjk4Njc1YWYxYmE4ZmVlNzQxYjM3ZTg0NWZhMTA3NTY2M2YyOTQz
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk4LDggKzk4LDggQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBM
QVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGVuY29kZXIgPDwgdWlQ
cm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwgdWlQcm9jZXNz
UElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGlj
YXRpb25QaWQ7CiAgICAgZW5jb2RlciA8PCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJm
YWNlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0Owog
ICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOwpAQCAtMjQ4LDEwICsy
NDgsOSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMucHJlc2VudGVyQXBwbGljYXRpb25QaWQpKQorICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NQSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUG9ydCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxZmQwNmQzM2NhM2U1NTJjYWY3ZWUxODQx
ZGJhYjcyMDg2YmYxMDUwLi40YTQ5MmQ5MTg1NDJjMTRkMDAxOWU1OTI0MGQ3ZjRlYzg2MjQzNTEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTEzNSw5ICsxMzUsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9u
UGlkIHsgMCB9OworICAgIHBpZF90IHVpUHJvY2Vzc1BJRCB7IDAgfTsKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z1BvcnQ7CiAKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQppbmRleCBmMzFhNDFhMjYxZmUyNTU4YzhhMjgzYjFhNDlmNDZkMzdmYTQ3NWI2Li41MTdjZGJk
ZDYxODFlZWEwMTA0ZjllNjMwNzZjZDQxOGY0MTkyZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTc4LDgg
KzE3OCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2Fu
ZGJveEV4dGVuc2lvbnMoKQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7
Ci0gICAgcGFyYW1ldGVycy5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IGdldHBpZCgpOwotCiAj
aWYgUExBVEZPUk0oTUFDKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzI4MTA5ZjE3
NWZlYWEyMGM2NzAxYWE4NTRiZDc3MzQ3YjAzZTQ5Yy4uZGI0ODcwZDAzZWNmZjZiODk5ZTk4ODBk
YzdhOTc5MWMwNWMzOWQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC00NjAsNiArNDYwLDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgcGFyYW1ldGVy
cy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbjsKKyAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCA9IGdldHBpZCgpOwogCiAg
ICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1J
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CkBAIC03NTIsNiArNzUzLDggQEAg
V2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJz
aXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRp
b0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJv
Y2VzcygpOwogI2VuZGlmCiAKKyAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCA9IGdldHBpZCgp
OworCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGY4OGY5
ZDIxMGM1YWMwYTI5MGUzZGUxYTk4MDAxMDIwZDA2MjMzMTcuLjQyMTZlY2JhM2VlNzBlZThkMDNh
ZTg1ZGE5NmM5YTNlZTFkZmY4ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMTIsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg0LDYgKzg0LDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVu
ZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Ny
b2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERhdGEuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CkBAIC05Myw4ICs5NCw4IEBACiAjaW1wb3J0IDx3
dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRp
YVBsYXliYWNrVGFyZ2V0TWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJn
ZXRNb2NrLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDYsNyAr
MTA3LDcgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3QqIG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCA9IFtbW1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKIAogICAg
IC8vIEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KLSAgICBwaWRfdCBwaWQg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpOworICAg
IHBpZF90IHBpZCA9IFdlYkNvcmU6OmFwcGxpY2F0aW9uUElEKCk7CiAgICAgV0tBWEluaXRpYWxp
emVFbGVtZW50V2l0aFByZXNlbnRlclBpZChtb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQsIHBpZCk7
CiAgICAgW21vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCBzZXRXZWJQYWdlOnRoaXNdOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzE4OTlmODUwMzU5
YjI5MDQzMWZjNjRkMGM2OGRiZjkxNmRmODUxYS4uODEyZGNlYWNlNzE5MGM4NGYwMDZkMzFiZTk3
Mjk3MzNiMDA5ZTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0yNTAsNiArMjUwLDggQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsgICAgCiAgICAg
QVNTRVJUKG1fcGFnZU1hcC5pc0VtcHR5KCkpOwogCisgICAgV2ViQ29yZTo6c2V0QXBwbGljYXRp
b25QSUQocGFyYW1ldGVycy51aVByb2Nlc3NQSUQpOworCiAjaWYgT1MoTElOVVgpCiAgICAgaWYg
KHBhcmFtZXRlcnMubWVtb3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlLmZpbGVEZXNjcmlwdG9yKCkg
IT0gLTEpCiAgICAgICAgIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuc2V0TWVt
b3J5UHJlc3N1cmVNb25pdG9ySGFuZGxlKHBhcmFtZXRlcnMubWVtb3J5UHJlc3N1cmVNb25pdG9y
SGFuZGxlLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKQEAgLTM4OCw3ICszOTAsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIGF1ZGl0X3Rva2VuX3QgYXVkaXRUb2tlbjsKICAgICBp
ZiAocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbihhdWRpdFRva2VuKSkg
ewogICAgICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBhdWRpdERhdGEgPSBhZG9wdENGKENGRGF0
YUNyZWF0ZShudWxscHRyLCAoY29uc3QgVUludDgqKSZhdWRpdFRva2VuLCBzaXplb2YoYXVkaXRU
b2tlbikpKTsKLSAgICAgICAgSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNpbmdsZXRvbigp
LnNldFBhcmVudFByb2Nlc3NJbmZvcm1hdGlvbihwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpLCBh
dWRpdERhdGEpOworICAgICAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9u
KCkuc2V0UGFyZW50UHJvY2Vzc0luZm9ybWF0aW9uKFdlYkNvcmU6OmFwcGxpY2F0aW9uUElEKCks
IGF1ZGl0RGF0YSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKaW5kZXggYWVjYmFkYjc2YmQ1OTY1YWFhN2E0ODdmNjYzNDFhNGEwYTFjNWI5OC4u
YjgyOGI3NTQ1YmJjYTNiMjBmYzkwNDA5NmNjZTBkZDkxMmMzNzNlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0NywxMCArMTQ3LDYgQEAgcHVibGljOgogCiAg
ICAgdWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIoUmVmUHRyPFdlYkNvcmU6OlVz
ZXJHZXN0dXJlVG9rZW4+KTsKICAgICB2b2lkIHVzZXJHZXN0dXJlVG9rZW5EZXN0cm95ZWQoV2Vi
Q29yZTo6VXNlckdlc3R1cmVUb2tlbiYpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGlk
X3QgcHJlc2VudGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlbnRlckFw
cGxpY2F0aW9uUGlkOyB9Ci0jZW5kaWYKICAgICAKICAgICBjb25zdCBUZXh0Q2hlY2tlclN0YXRl
JiB0ZXh0Q2hlY2tlclN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q2hlY2tlclN0YXRlOyB9
CiAgICAgdm9pZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUmKTsK
QEAgLTM2OCw3ICszNjQsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
V2ViQ29yZTo6TWFjaFNlbmRSaWdodCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKLSAg
ICBwaWRfdCBtX3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogI2VuZGlmCiAKICAgICBib29sIG1f
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDRkZjhlYzQzN2Uz
N2Q2MWFkZDg2MTMzN2VmM2QyNTA3NDZmNmY0YzAuLmUzZDA3NTQ1NGNjZDJiYTdmNzU3ZDIzZGJl
ODRhZTMwYjM2YjQ1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBACiAjZW5kaWYKIAogI2lmIFVT
RShPU19TVEFURSkKLSNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+CisjaW1wb3J0IDxvcy9z
dGF0ZV9wcml2YXRlLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE0OSw3ICsx
NDksNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcgogI2VuZGlmCiAKICAgICBtX2NvbXBvc2l0
aW5nUmVuZGVyU2VydmVyUG9ydCA9IFdURk1vdmUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBv
c2l0aW5nUG9ydCk7Ci0gICAgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IHBhcmFtZXRlcnMu
cHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAKICAgICBXZWJDb3JlOjpyZWdpc3Rlck1lbW9yeVJl
bGVhc2VOb3RpZnlDYWxsYmFja3MoKTsKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGll
ZkxvZ2dlcjo6c2V0TG9nZ2luZ0VuYWJsZWQocGFyYW1ldGVycy5zaG91bGRFbmFibGVNZW1vcnlQ
cmVzc3VyZVJlbGllZkxvZ2dpbmcpOwpAQCAtMTc1LDcgKzE3NCw3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiYgcGFyCiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNv
bnRyb2xsZXJfUElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20oKSkgewotICAgICAgICBw
aWRfdCBwaWQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBp
ZCgpOworICAgICAgICBwaWRfdCBwaWQgPSBXZWJDb3JlOjphcHBsaWNhdGlvblBJRCgpOwogICAg
ICAgICBOU0Vycm9yICplcnJvciA9IG5pbDsKICAgICAgICAgW1tnZXRBVlN5c3RlbUNvbnRyb2xs
ZXJDbGFzcygpIHNoYXJlZEFWU3lzdGVtQ29udHJvbGxlcl0gc2V0QXR0cmlidXRlOkAocGlkKSBm
b3JLZXk6QVZTeXN0ZW1Db250cm9sbGVyX1BJRFRvSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9t
IGVycm9yOiZlcnJvcl07CiAgICAgICAgIGlmIChlcnJvcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310176</attachid>
            <date>2017-05-15 15:53:59 -0700</date>
            <delta_ts>2017-05-15 17:41:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172133-20170515155358.patch</filename>
            <type>text/plain</type>
            <size>17156</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNzlkMzAxZGMzOGU2
Yjk4NjcyZjZlYzc0YmQ5ZDkzM2VkZmQ5My4uYjExZTM2MzJhNzg5NWI1YzhkY2MzOTdjYzg4ZDMz
OTMxYjgyNGM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA1LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNhdGlv
biBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg6
CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6YXBwbGljYXRpb25QSURPdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlOjph
cHBsaWNhdGlvblBJRCk6IFJldHVybnMgdGhlIG92ZXJyaWRlIFBJRCBpZiBzZXQsIG9yIGdldHBp
ZCgpIG90aGVyd2lzZS4KKyAgICAgICAgKFdlYkNvcmU6OnNldEFwcGxpY2F0aW9uUElEKToKKwog
MjAxNy0wNS0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TIFdLMV0gRG8gbm90IHRyeSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0byBzdWJmcmFtZXMg
aWYgdGhlaXIgZG9jdW1lbnRzIGhhdmUgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDJlYTQ3NjQxZTM5ZWI3NTlkOTZiM2FjNDcyN2E3MGYwN2JiMmFlNjYuLjQ0NWZmZWFm
M2RmNzcwNTVmZmQ4Njg4MDk1NjY2OWVkMTFmNTBlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0
MCBAQAorMjAxNy0wNS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSB0aGUgYXBwbGljYXRpb24gUElEIGF2YWlsYWJsZSB0byBXZWJDb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB1aVByb2Nlc3NQ
SUQgdG8gV2ViIGFuZCBOZXR3b3JraW5nIHByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4gVGhl
IFVJIHByb2Nlc3MKKyAgICAgICAgaW5pdGlhbGl6ZXMgdGhlc2UgdG8gZ2V0cGlkKCksIGFuZCB0
aGUgY2hpbGQgcHJvY2Vzc2VzIGNhbGwgV2ViQ29yZTo6c2V0QXBwbGljYXRpb25QSUQoKQorICAg
ICAgICBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgorCisgICAgICAgIFRoaXMgcmVwbGFjZXMgcHJl
c2VudGVyQXBwbGljYXRpb25QaWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2Vi
UHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlc2VudGVyQXBwbGljYXRpb25Q
aWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKwogMjAxNy0wNS0xNSAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIGRlYnVnIGJ1aWxkIGZpeApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCAw
ZTQyYjBjNTIxNTk0ZTllYzYyMTdmZTZjZjRhODg4MGJhMDJkZTQwLi45MzA4YTJkMjQ3MDVlYThh
MWU2YWJhZWU0OTI0YzYxOWY0MjVlZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNCArMjMsMTcgQEAKICAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NfaAotI2Rl
ZmluZSBSdW50aW1lQXBwbGljYXRpb25DaGVja3NfaAorI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXBwbGljYXRpb25QSUQocGlkX3QpOworV0VC
Q09SRV9FWFBPUlQgcGlkX3QgYXBwbGljYXRpb25QSUQoKTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcihj
b25zdCBTdHJpbmcmKTsKIFN0cmluZyBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKTsKIApA
QCAtODQsNSArODcsMyBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGlzVGhlU2VjcmV0U29jaWV0eUhp
ZGRlbk15c3RlcnkoKTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQotCi0jZW5kaWYgLy8gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbQpp
bmRleCAwZWNhODcwYWU0Y2NmZTk4YWIxMDlhZTFlMGIxOWYyODcyMzEwNDNkLi5lNDZkMmRkMDlh
NWY4YjdmZmM4MGJjYzI3ZmQwODM0Njk5YWVmZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tCkBAIC0zNCw3ICszNCw4IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAotc3RhdGlj
IGJvb2wgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gZmFs
c2U7CitzdGF0aWMgYm9vbCBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZVdhc1F1
ZXJpZWQ7CitzdGF0aWMgYm9vbCBhcHBsaWNhdGlvblBJRE92ZXJyaWRlV2FzUXVlcmllZDsKICNl
bmRpZgogCiAvLyBUaGUgYXBwbGljYXRpb24gYnVuZGxlIGlkZW50aWZpZXIgZ2V0cyBzZXQgdG8g
dGhlIFVJUHJvY2VzcyBidW5kbGUgaWRlbnRpZmllciBieSB0aGUgV2ViUHJvY2VzcyBhbmQKQEAg
LTYzLDYgKzY0LDI5IEBAIHZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKICAgICBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXJPdmVycmlkZSgpID0gYnVuZGxlSWRlbnRpZmllcjsKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9u
YWw8cGlkX3Q+JiBhcHBsaWNhdGlvblBJRE92ZXJyaWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxwaWRfdD4+IHBpZDsKKyNpZiAhQVNTRVJUX01TR19ESVNB
QkxFRAorICAgIGFwcGxpY2F0aW9uUElET3ZlcnJpZGVXYXNRdWVyaWVkID0gdHJ1ZTsKKyNlbmRp
ZgorICAgIHJldHVybiBwaWQ7Cit9CisKK3BpZF90IGFwcGxpY2F0aW9uUElEKCkKK3sKKyAgICBj
b25zdCBhdXRvJiBwaWQgPSBhcHBsaWNhdGlvblBJRE92ZXJyaWRlKCk7CisgICAgQVNTRVJUKCFw
aWQgfHwgUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHJldHVybiBwaWQgPyBwaWQudmFsdWUoKSA6
IGdldHBpZCgpOworfQorCit2b2lkIHNldEFwcGxpY2F0aW9uUElEKHBpZF90IHBpZCkKK3sKKyAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWFw
cGxpY2F0aW9uUElET3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25QSUQoKSBzaG91bGQg
bm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25QSUQoKSIpOworICAgIGFwcGxpY2F0
aW9uUElET3ZlcnJpZGUoKSA9IHBpZDsKK30KKwogc3RhdGljIGJvb2wgYXBwbGljYXRpb25CdW5k
bGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQogewogICAg
IHJldHVybiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSBidW5kbGVJZGVudGlmaWVy
U3RyaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCmluZGV4IDA2ZTIxZDU3NTE2NWQ3NWRjZmE2MWM0MjE2NTEzZmEwMDZkYzM5YzUuLjU0
YTJmZjMzOTJhODNkOGE4YzlkY2Y1ZGZkZThjMGIyMzZiZjliMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIwMiw2ICsyMDIs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRp
Y2FsKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogeworICAgIFdlYkNv
cmU6OnNldEFwcGxpY2F0aW9uUElEKHBhcmFtZXRlcnMudWlQcm9jZXNzUElEKTsKICAgICBwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIAogICAgIFdURjo6VGhy
ZWFkOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggN2Q2ZGYzZDU3MWI5NDk5OWRlNjRiODM2ZDE0NDMzODU3
OTdlYTBhYS4uZjRlMzA1Mzc2Mzk1YzQ2MWI1ZjIzYzA2ZTA5YmRmZTIwZjNkM2MwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjYsNiArNjYsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9u
OwogICAgIGVuY29kZXIgPDwgbG9hZFRocm90dGxlTGF0ZW5jeTsKICAgICBlbmNvZGVyIDw8IHVy
bFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOworICAgIGVuY29kZXIgPDwgdWlQ
cm9jZXNzUElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgcGFyZW50UHJv
Y2Vzc05hbWU7CiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwpAQCAt
MTQ4LDYgKzE0OSw4IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIE5ldHdvcmtQcm9jCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51cmxTY2hlbWVzUmVnaXN0ZXJl
ZEZvckN1c3RvbVByb3RvY29scykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC51aVByb2Nlc3NQSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucGFy
ZW50UHJvY2Vzc05hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCBkMzQyOTc4NGM2Y2Q5MDE5ZjYwZGM2YTAyYjI4YjhhYWNmNWJm
YzU5Li5jZTFjZjZiZjM4NDZmN2JjZTIyM2QwNTc1ZGFiM2E4MmNiMWVhOTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTc2LDYgKzc2LDcgQEAgc3RydWN0IE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTZWNvbmRzIGxvYWRUaHJvdHRsZUxhdGVu
Y3k7CiAKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVBy
b3RvY29sczsKKyAgICBwaWRfdCB1aVByb2Nlc3NQSUQgeyAwIH07CiAKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICBTdHJpbmcgcGFyZW50UHJvY2Vzc05hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMmJk
ZmYwODlmMGQ4ZWFlMDUxZGZiZjdkNjg5MGRkYWFkOTk1MmM2YS4uOTg2NzVhZjFiYThmZWU3NDFi
MzdlODQ1ZmExMDc1NjYzZjI5NDMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtOTgsOCArOTgsOCBAQCB2
b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShDRlVSTENPTk5FQ1RJT04p
CiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwogI2VuZGlmCisgICAg
ZW5jb2RlciA8PCB1aVByb2Nlc3NQSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZW5jb2Rl
ciA8PCBwcmVzZW50ZXJBcHBsaWNhdGlvblBpZDsKICAgICBlbmNvZGVyIDw8IGFjY2Vzc2liaWxp
dHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkOwogICAgIGVuY29kZXIgPDwgYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ1BvcnQ7CiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NCdW5kbGVSZXNvdXJj
ZVBhdGg7CkBAIC0yNDgsMTAgKzI0OCw5IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wcmVzZW50ZXJBcHBsaWNhdGlvblBp
ZCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVu
YWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDFmZDA2
ZDMzY2EzZTU1MmNhZjdlZTE4NDFkYmFiNzIwODZiZjEwNTAuLjRhNDkyZDkxODU0MmMxNGQwMDE5
ZTU5MjQwZDdmNGVjODYyNDM1MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTM1LDkgKzEzNSw5IEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVu
ZGxlSWRlbnRpZmllcjsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGlkX3Qg
cHJlc2VudGVyQXBwbGljYXRpb25QaWQgeyAwIH07CisgICAgcGlkX3QgdWlQcm9jZXNzUElEIHsg
MCB9OwogCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCBh
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydDsKIAogICAgIFN0cmluZyB1aVByb2Nlc3NCdW5kbGVS
ZXNvdXJjZVBhdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IGYzMWE0MWEyNjFmZTI1NThjOGEyODNiMWE0OWY0
NmQzN2ZhNDc1YjYuLjUxN2NkYmRkNjE4MWVlYTAxMDRmOWU2MzA3NmNkNDE4ZjQxOTJlOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCkBAIC0xNzgsOCArMTc4LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBwYXJhbWV0ZXJzLnByZXNlbnRlckFwcGxpY2F0aW9u
UGlkID0gZ2V0cGlkKCk7Ci0KICNpZiBQTEFURk9STShNQUMpCiAjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRl
ZC1kZWNsYXJhdGlvbnMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAppbmRleCAzMjgxMDlmMTc1ZmVhYTIwYzY3MDFhYTg1NGJkNzczNDdiMDNlNDljLi5kYjQ4
NzBkMDNlY2ZmNmI4OTllOTg4MGRjN2E5NzkxYzA1YzM5ZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQ2MCw2ICs0NjAsNyBAQCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlTmV0d29ya1Byb2Nlc3MoKQogI2Vu
ZGlmCiAKICAgICBwYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbiA9IG1f
c2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uOworICAgIHBhcmFtZXRlcnMudWlQcm9jZXNz
UElEID0gZ2V0cGlkKCk7CiAKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmljIHBhcmFt
ZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKTsK
QEAgLTc1Miw2ICs3NTMsOCBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVh
dGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYQogICAgIHBhcmFtZXRl
cnMuc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgPSBtX2NvbmZpZ3VyYXRpb24tPnNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzKCk7CiAjZW5kaWYKIAorICAgIHBhcmFtZXRlcnMudWlQ
cm9jZXNzUElEID0gZ2V0cGlkKCk7CisKICAgICAvLyBBZGQgYW55IHBsYXRmb3JtIHNwZWNpZmlj
IHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKHBhcmFtZXRlcnMp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KaW5kZXggZjg4ZjlkMjEwYzVhYzBhMjkwZTNkZTFhOTgwMDEwMjBkMDYyMzMxNy4u
NDIxNmVjYmEzZWU3MGVlOGQwM2FlODVkYTk2YzlhM2VlMWRmZjhmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMiwgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtODQsNiArODQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJTdHlsZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgog
I2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0eWxlSW5o
ZXJpdGVkRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KQEAgLTkzLDgg
Kzk0LDggQEAKICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJn
ZXRNYWMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRNYWMuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaD4KICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTEwNiw3ICsxMDcsNyBAQCB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCiAgICAgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogbW9ja0FjY2Vzc2liaWxp
dHlFbGVtZW50ID0gW1tbV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOwogCiAgICAgLy8gR2V0IHRoZSBwaWQgZm9yIHRoZSBzdGFydGluZyBwcm9j
ZXNzLgotICAgIHBpZF90IHBpZCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnByZXNlbnRlckFw
cGxpY2F0aW9uUGlkKCk7CisgICAgcGlkX3QgcGlkID0gV2ViQ29yZTo6YXBwbGljYXRpb25QSUQo
KTsKICAgICBXS0FYSW5pdGlhbGl6ZUVsZW1lbnRXaXRoUHJlc2VudGVyUGlkKG1vY2tBY2Nlc3Np
YmlsaXR5RWxlbWVudCwgcGlkKTsKICAgICBbbW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50IHNldFdl
YlBhZ2U6dGhpc107CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA3MTg5OWY4NTAzNTliMjkwNDMxZmM2NGQwYzY4ZGJmOTE2ZGY4NTFhLi44MTJkY2Vh
Y2U3MTkwYzg0ZjAwNmQzMWJlOTcyOTczM2IwMDllM2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTI1MCw2ICsyNTAsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogeyAgICAKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAKKyAgICBX
ZWJDb3JlOjpzZXRBcHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCk7CisKICNp
ZiBPUyhMSU5VWCkKICAgICBpZiAocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5k
bGUuZmlsZURlc2NyaXB0b3IoKSAhPSAtMSkKICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVy
OjpzaW5nbGV0b24oKS5zZXRNZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUocGFyYW1ldGVycy5t
ZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOwpAQCAt
Mzg4LDcgKzM5MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgYXVkaXRfdG9rZW5f
dCBhdWRpdFRva2VuOwogICAgIGlmIChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5nZXRBdWRp
dFRva2VuKGF1ZGl0VG9rZW4pKSB7CiAgICAgICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGF1ZGl0
RGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKG51bGxwdHIsIChjb25zdCBVSW50OCopJmF1ZGl0
VG9rZW4sIHNpemVvZihhdWRpdFRva2VuKSkpOwotICAgICAgICBJbnNwZWN0b3I6OlJlbW90ZUlu
c3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0UGFyZW50UHJvY2Vzc0luZm9ybWF0aW9uKHByZXNlbnRl
ckFwcGxpY2F0aW9uUGlkKCksIGF1ZGl0RGF0YSk7CisgICAgICAgIEluc3BlY3Rvcjo6UmVtb3Rl
SW5zcGVjdG9yOjpzaW5nbGV0b24oKS5zZXRQYXJlbnRQcm9jZXNzSW5mb3JtYXRpb24oV2ViQ29y
ZTo6YXBwbGljYXRpb25QSUQoKSwgYXVkaXREYXRhKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhZWNiYWRiNzZiZDU5NjVhYWE3YTQ4
N2Y2NjM0MWE0YTBhMWM1Yjk4Li5iODI4Yjc1NDViYmNhM2IyMGZjOTA0MDk2Y2NlMGRkOTEyYzM3
M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTQ3LDEwICsx
NDcsNiBAQCBwdWJsaWM6CiAKICAgICB1aW50NjRfdCB1c2VyR2VzdHVyZVRva2VuSWRlbnRpZmll
cihSZWZQdHI8V2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbj4pOwogICAgIHZvaWQgdXNlckdlc3R1
cmVUb2tlbkRlc3Ryb3llZChXZWJDb3JlOjpVc2VyR2VzdHVyZVRva2VuJik7Ci0KLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBwaWRfdCBwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7IH0KLSNlbmRpZgogICAgIAogICAgIGNv
bnN0IFRleHRDaGVja2VyU3RhdGUmIHRleHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVybiBt
X3RleHRDaGVja2VyU3RhdGU7IH0KICAgICB2b2lkIHNldFRleHRDaGVja2VyU3RhdGUoY29uc3Qg
VGV4dENoZWNrZXJTdGF0ZSYpOwpAQCAtMzY4LDcgKzM2NCw2IEBAIHByaXZhdGU6CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBXZWJDb3JlOjpNYWNoU2VuZFJpZ2h0IG1fY29tcG9zaXRpbmdS
ZW5kZXJTZXJ2ZXJQb3J0OwotICAgIHBpZF90IG1fcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAj
ZW5kaWYKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0KaW5kZXggNGRmOGVjNDM3ZTM3ZDYxYWRkODYxMzM3ZWYzZDI1MDc0NmY2ZjRjMC4uZTNkMDc1
NDU0Y2NkMmJhN2Y3NTdkMjNkYmU4NGFlMzBiMzZiNDVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTc0LDcgKzc0LDcg
QEAKICNlbmRpZgogCiAjaWYgVVNFKE9TX1NUQVRFKQotI2luY2x1ZGUgPG9zL3N0YXRlX3ByaXZh
dGUuaD4KKyNpbXBvcnQgPG9zL3N0YXRlX3ByaXZhdGUuaD4KICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TKQpAQCAtMTQ5LDcgKzE0OSw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyCiAjZW5k
aWYKIAogICAgIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2ZXJQb3J0ID0gV1RGTW92ZShwYXJhbWV0
ZXJzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KTsKLSAgICBtX3ByZXNlbnRlckFwcGxpY2F0
aW9uUGlkID0gcGFyYW1ldGVycy5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZDsKIAogICAgIFdlYkNv
cmU6OnJlZ2lzdGVyTWVtb3J5UmVsZWFzZU5vdGlmeUNhbGxiYWNrcygpOwogICAgIE1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzZXRMb2dnaW5nRW5hYmxlZChwYXJhbWV0ZXJz
LnNob3VsZEVuYWJsZU1lbW9yeVByZXNzdXJlUmVsaWVmTG9nZ2luZyk7CkBAIC0xNzUsNyArMTc0
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXIKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBp
ZiAoY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRl
RnJvbSgpKSB7Ci0gICAgICAgIHBpZF90IHBpZCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBy
ZXNlbnRlckFwcGxpY2F0aW9uUGlkKCk7CisgICAgICAgIHBpZF90IHBpZCA9IFdlYkNvcmU6OmFw
cGxpY2F0aW9uUElEKCk7CiAgICAgICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwogICAgICAgICBb
W2dldEFWU3lzdGVtQ29udHJvbGxlckNsYXNzKCkgc2hhcmVkQVZTeXN0ZW1Db250cm9sbGVyXSBz
ZXRBdHRyaWJ1dGU6QChwaWQpIGZvcktleTpBVlN5c3RlbUNvbnRyb2xsZXJfUElEVG9Jbmhlcml0
QXBwbGljYXRpb25TdGF0ZUZyb20gZXJyb3I6JmVycm9yXTsKICAgICAgICAgaWYgKGVycm9yKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310197</attachid>
            <date>2017-05-15 17:41:10 -0700</date>
            <delta_ts>2017-05-15 17:50:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172133-20170515174109.patch</filename>
            <type>text/plain</type>
            <size>45523</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNzlkMzAxZGMzOGU2
Yjk4NjcyZjZlYzc0YmQ5ZDkzM2VkZmQ5My4uNzYzMWE3YjYzZjExZGNjZmU0MTQ3ZDZlMDkyMzRj
MjI3ZWE1MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA1LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNhdGlv
biBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU1h
Yy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSURPdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOiBSZXR1cm5zIHRoZSBvdmVy
cmlkZSBQSUQgaWYgc2V0LCBvciBnZXRwaWQoKSBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3Jl
OjpzZXRQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tLgorCiAyMDE3LTA1LTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV0sxXSBEbyBub3Qg
dHJ5IHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvIHN1YmZyYW1lcyBpZiB0aGVpciBkb2N1bWVudHMg
aGF2ZSBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmVhNDc2NDFlMzll
Yjc1OWQ5NmIzYWM0NzI3YTcwZjA3YmIyYWU2Ni4uYzI5MjY0YjBhNjRiZmQwYTYyOTk1NjYxNmE5
YTcyZTNkMDcyYTg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA1LTE1ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNh
dGlvbiBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCisKKyAgICAgICAgQWRkZWQgdWlQcm9jZXNzUElEIHRvIFdlYiBhbmQgTmV0d29y
a2luZyBwcm9jZXNzIGNyZWF0aW9uIHBhcmFtZXRlcnMuIFRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGluaXRpYWxpemVzIHRoZXNlIHRvIGdldHBpZCgpLCBhbmQgdGhlIGNoaWxkIHByb2Nlc3NlcyBj
YWxsIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpCisgICAgICAgIGF0IGlu
aXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgVGhpcyByZXBsYWNlcyBwcmVzZW50ZXJBcHBs
aWNhdGlvblBpZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgor
CiAyMDE3LTA1LTE1ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIFVucmV2aWV3ZWQgZGVidWcgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDRiMTA3NzhhZmIxMDlhNDUyZTA5Njc4YzMxZWNiOTNlNTFlNWNhZjIuLjFhODY0NzIzMWEz
NThkMmY4MTA3ZDU4ZTdiMmM3MzhkZDhmYTUzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
MTc0LDYgKzIxNzQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5jcHAKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCiAgICAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAorICAgIHBsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKICAgICBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAyYTM5MzQ3NzA3NDI3ZGY2
NjY1MTIxYzM1YTA5NTM0ZTA3Y2M3NzU4Li4yYzJlNGNjZjk4YzFlYjQ4ZTYyMTBkMTU3MTY4NDIw
ZDA2ZWQyNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzA4LDcgKzMwOCw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vQ1BVTW9uaXRvci5j
cHAKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAotICAgIHBsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5tbQogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAog
CiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMzQ3LDYgKzM0Niw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2NvY29hL01hY2hTZW5k
UmlnaHQuY3BwCiAgICAgcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW0KICAgICBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5t
bQorICAgIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCiAg
ICAgcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQogICAgIHBsYXRmb3JtL2NvY29h
L1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvU2VhcmNoUG9w
dXBNZW51Q29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBhMTc4YmNiMTkxYzIzYWM5NjQ2ODhjYmIyNDIyNzM5ZTg3YzY3
ZTZhLi5jYmUzMTVjN2IwZDJhNGJmZjRhMGI4MGFmNzA5ZDI4ZGY0MmJmZDUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM3
LDcgKzE5MzcsNyBAQAogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2
MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJNDY1MzA3RDAx
REI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTA0NUVGMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJ
RXZlbnRJbml0LmggKi87IH07CiAJCTQ2NTMwN0QxMURCNkVFNEEwMEU0MTM3QyAvKiBKU1VJRXZl
bnRJbml0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRTA0NUVFMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJRXZlbnRJbml0LmNwcCAqLzsgfTsKLQkJ
NDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUE4RTc4MUM4
QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi87IH07CisJCTQ2
NUE4RTc5MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLzsg
fTsKIAkJNDY3MUUwNjUxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MUUwNjMxRDY3QTU3QjAw
QzZCNDk3IC8qIENhbnZhc1BhdGguY3BwICovOyB9OwogCQk0NjcxRTA2NjFENjdBNTk2MDBDNkI0
OTcgLyogQ2FudmFzUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLzsgfTsK
IAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291
bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2Fk
Q291bnRJbmNyZW1lbnRlci5oICovOyB9OwpAQCAtNDI2Niw2ICs0MjY2LDcgQEAKIAkJQTE4NUI0
MkExRTgyMTFBMTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODVCNDI4MUU4MjExQTEwMERDOTExOCAvKiBQ
cmV2aWV3TG9hZGVyLmggKi87IH07CiAJCUExODg5MEFFMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJl
bnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENv
bnRyb2xzQ29udGVudEZpbHRlci5tbSAqLzsgfTsKIAkJQTE4ODkwQUYxQUExM0YyNTAwMjZDMzAx
IC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLzsgfTsKKwkJQTE4RjdBMzYxRUNBNzM2NDAw
NTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMThGN0EzNTFFQ0E3MzY0MDA1OUUxRTEgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLzsgfTsKIAkJQTE5QUVBMjExQUFBODA4NjAw
QjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5QUVBMUUxQUFBODA2RTAwQjUyQjI1IC8q
IEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovOyB9OwogCQlBMTlBRUEyMjFBQUE4MDhB
MDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUFFQTFEMUFBQTgwNkUwMEI1MkIy
NSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovOyB9OwogCQlBMTlEOTM0NjFB
OUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUQ5MzQ0MUE5RkVDNzIwMEI0NkMyNCAvKiBO
RUZpbHRlclNvdXJjZVNQSS5oICovOyB9OwpAQCAtOTYwMyw3ICs5NjA0LDcgQEAKIAkJNDYzNDU5
MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhZ0NvbGxlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMTFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNF
NCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyog
Q2FudmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52
YXNQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3
QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjczMDIwMTFD
NEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5s
b2FkQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0
NTgsNiArMTI0NTksNyBAQAogCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3TG9hZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAv
KiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTE4RjdBMzUxRUNBNzM2NDAwNTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlBRUExQzFBQUE3QzQ5MDBCNTJC
MjUgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExOUFFQTFEMUFB
QTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE5QUVBMUUxQUFBODA2RTAwQjUy
QjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDU0LDYgKzIxMDU2LDcgQEAKIAkJCQlBMTg4OTBBRDFBQTEz
RjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlB
MTg4OTBBQzFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIu
bW0gKi8sCiAJCQkJNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICov
LAorCQkJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVj
a3NDb2NvYS5tbSAqLywKIAkJCQkxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29u
dHJvbGxlci5oICovLAogCQkJCTFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250
cm9sbGVyLm1tICovLAogCQkJCUY0Nzg3NTUyMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZS5oICovLApAQCAtMjM5NzgsOCArMjM5ODEsOCBAQAogCQkJCTk4MzFBRTQ5
MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAogCQkJCUNERkMzNjAzMThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovLAogCQkJCUNERkMz
NjA0MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLywKKwkJCQlB
MThGN0EzNTFFQ0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAq
LywKIAkJCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmggKi8sCi0JCQkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5tbSAqLywKIAkJCQk1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovLAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVS
ZWdpc3RyeS5oICovLAogCQkJCTUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJk
LmggKi8sCkBAIC0zMjg2Nyw2ICszMjg3MCw3IEBACiAJCQkJN0VFNjg0NkIxMkQyNkUzODAwRTc5
NDE1IC8qIFJlc291cmNlRXJyb3JDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MDBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxNEM3Njc4MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBMThGN0EzNjFFQ0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZDMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2RkFFNENDMTg1
MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTI2QzE1Q0Y2MTg1N0UxNUQwMEYxNUMwMyAvKiBSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzI5MzIsNyArMzI5MzYsNyBAQAogCQkJCTFBNTY5RDIwMEQ3RTJCODIw
MDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQy
MjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE1NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0IC8q
IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M1
MjIyOUQxRTFEQUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0RENzA4OTYxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OUU5MTFDQTBFRjg2RDQ3MDA5RDBDQUYgLyogU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGE1
NzQ4MDk0Njg3ZjUwNmI3NDNhZmQ1NTk2OGZkYjFmOTUxZGM3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAt
MCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorCisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKK3N0
YXRpYyBib29sIHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92ZXJyaWRlV2FzUXVlcmllZDsKKyNl
bmRpZgorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxwaWRfdD4mIHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRE92ZXJyaWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpvcHRpb25h
bDxwaWRfdD4+IHBpZDsKKyNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAorICAgIHByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRE92ZXJyaWRlV2FzUXVlcmllZCA9IHRydWU7CisjZW5kaWYKKyAgICByZXR1
cm4gcGlkOworfQorCitwaWRfdCBwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQoreworICAgIGNv
bnN0IGF1dG8mIHBpZCA9IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92ZXJyaWRlKCk7CisgICAg
QVNTRVJUKCFwaWQgfHwgUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHJldHVybiBwaWQgPyBwaWQu
dmFsdWUoKSA6IGdldHBpZCgpOworfQorCit2b2lkIHNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RChwaWRfdCBwaWQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKCFwcmVzZW50aW5nQXBwbGljYXRpb25QSURPdmVycmlkZVdhc1F1ZXJp
ZWQsICJwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZv
cmUgc2V0UHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkiKTsKKyAgICBwcmVzZW50aW5nQXBwbGlj
YXRpb25QSURPdmVycmlkZSgpID0gcGlkOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5o
CmluZGV4IDBlNDJiMGM1MjE1OTRlOWVjNjIxN2ZlNmNmNGE4ODgwYmEwMmRlNDAuLmI5NmE3MTlk
ODY0YWYyYTk3OGFiNWMwNGZhM2E0ZGY3MDk2NzgwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDE0ICsyMywx
NyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c19oCi0jZGVmaW5lIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc19oCisjcHJhZ21hIG9uY2UKIAot
I2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmVzZW50aW5nQXBwbGljYXRp
b25QSUQocGlkX3QpOworV0VCQ09SRV9FWFBPUlQgcGlkX3QgcHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CiAKQEAgLTgxLDggKzg0LDYgQEAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCk7CiAKICNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQogI2VuZGlmIC8vIFBMQVRG
T1JNKENPQ09BKQogCi0jZW5kaWYgLy8gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzX2gKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGVj
YTg3MGFlNGNjZmU5OGFiMTA5YWUxZTBiMTlmMjg3MjMxMDQzZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MubW0KKysrIC9kZXYvbnVsbApAQCAtMSwyNTggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmgiCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KLSNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KLSNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNp
ZiAhQVNTRVJUX01TR19ESVNBQkxFRAotc3RhdGljIGJvb2wgYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gZmFsc2U7Ci0jZW5kaWYKLQotLy8gVGhlIGFwcGxp
Y2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyIGdldHMgc2V0IHRvIHRoZSBVSVByb2Nlc3MgYnVuZGxl
IGlkZW50aWZpZXIgYnkgdGhlIFdlYlByb2Nlc3MgYW5kCi0vLyB0aGUgTmV0d29ya2luZyB1cG9u
IGluaXRpYWxpemF0aW9uLiBJdCBpcyB1bnNldCBvdGhlcndpc2UuCi1zdGF0aWMgU3RyaW5nJiBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpCi17Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gaWRlbnRpZmllcjsKLSNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAot
ICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCA9IHRydWU7
Ci0jZW5kaWYKLSAgICByZXR1cm4gaWRlbnRpZmllcjsKLX0KLQotU3RyaW5nIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllcigpCi17Ci0gICAgLy8gVGhlIG92ZXJyaWRlIG9ubHkgZ2V0cyBzZXQg
aW4gV2ViS2l0MidzIFdlYlByb2Nlc3MgYW5kIE5ldHdvcmtQcm9jZXNzLiBJZiB1bnNldCwgd2Ug
dXNlIHRoZSBtYWluIGJ1bmRsZSBpZGVudGlmaWVyLgotICAgIGNvbnN0IGF1dG8mIGlkZW50aWZp
ZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpOwotICAgIEFTU0VSVChp
ZGVudGlmaWVyLmlzTnVsbCgpIHx8IFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICByZXR1cm4gaWRl
bnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlk
ZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7Ci19Ci0KLXZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCwgImFwcGxpY2F0aW9uQnVuZGxlSXNF
cXVhbFRvKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpIik7Ci0gICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUo
KSA9IGJ1bmRsZUlkZW50aWZpZXI7Ci19Ci0KLXN0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVuZGxl
SXNFcXVhbFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykKLXsKLSAgICBy
ZXR1cm4gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gYnVuZGxlSWRlbnRpZmllclN0
cmluZzsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNT
YWZhcmkoKQotewotICAgIHN0YXRpYyBib29sIGlzU2FmYXJpID0gYXBwbGljYXRpb25CdW5kbGVJ
c0VxdWFsVG8oImNvbS5hcHBsZS5TYWZhcmkiKTsKLSAgICByZXR1cm4gaXNTYWZhcmk7Ci19Ci0K
LWJvb2wgTWFjQXBwbGljYXRpb246OmlzQXBwbGVNYWlsKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBp
c0FwcGxlTWFpbCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUubWFpbCIp
OwotICAgIHJldHVybiBpc0FwcGxlTWFpbDsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNJ
Qm9va3MoKQotewotICAgIHN0YXRpYyBib29sIGlzSUJvb2tzID0gYXBwbGljYXRpb25CdW5kbGVJ
c0VxdWFsVG8oImNvbS5hcHBsZS5pQm9va3NYIik7Ci0gICAgcmV0dXJuIGlzSUJvb2tzOwotfQot
Ci1ib29sIE1hY0FwcGxpY2F0aW9uOjppc0lUdW5lcygpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNJ
VHVuZXMgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlUdW5lcyIpOwot
ICAgIHJldHVybiBpc0lUdW5lczsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNNaWNyb3Nv
ZnRNZXNzZW5nZXIoKQotewotICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0TWVzc2VuZ2VyID0g
YXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5taWNyb3NvZnQuTWVzc2VuZ2VyIik7Ci0g
ICAgcmV0dXJuIGlzTWljcm9zb2Z0TWVzc2VuZ2VyOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9u
Ojppc0Fkb2JlSW5zdGFsbGVyKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0Fkb2JlSW5zdGFsbGVy
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hZG9iZS5JbnN0YWxsZXJzLlNldHVw
Iik7Ci0gICAgcmV0dXJuIGlzQWRvYmVJbnN0YWxsZXI7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRp
b246OmlzQU9MSW5zdGFudE1lc3NlbmdlcigpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNBT0xJbnN0
YW50TWVzc2VuZ2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hb2wuYWltLmRl
c2t0b3AiKTsKLSAgICByZXR1cm4gaXNBT0xJbnN0YW50TWVzc2VuZ2VyOwotfQotCi1ib29sIE1h
Y0FwcGxpY2F0aW9uOjppc01pY3Jvc29mdE15RGF5KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc01p
Y3Jvc29mdE15RGF5ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5taWNyb3NvZnQu
bXlkYXkiKTsKLSAgICByZXR1cm4gaXNNaWNyb3NvZnRNeURheTsKLX0KLQotYm9vbCBNYWNBcHBs
aWNhdGlvbjo6aXNNaWNyb3NvZnRPdXRsb29rKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc01pY3Jv
c29mdE91dGxvb2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5P
dXRsb29rIik7Ci0gICAgcmV0dXJuIGlzTWljcm9zb2Z0T3V0bG9vazsKLX0KLQotYm9vbCBNYWNB
cHBsaWNhdGlvbjo6aXNRdWlja2VuRXNzZW50aWFscygpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNR
dWlja2VuRXNzZW50aWFscyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uaW50dWl0
LlF1aWNrZW5Fc3NlbnRpYWxzIik7Ci0gICAgcmV0dXJuIGlzUXVpY2tlbkVzc2VudGlhbHM7Ci19
Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246OmlzQXBlcnR1cmUoKQotewotICAgIHN0YXRpYyBib29s
IGlzQXBlcnR1cmUgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLkFwZXJ0
dXJlIik7Ci0gICAgcmV0dXJuIGlzQXBlcnR1cmU7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246
OmlzVmVyc2lvbnMoKQotewotICAgIHN0YXRpYyBib29sIGlzVmVyc2lvbnMgPSBhcHBsaWNhdGlv
bkJ1bmRsZUlzRXF1YWxUbygiY29tLmJsYWNrcGl4ZWwudmVyc2lvbnMiKTsKLSAgICByZXR1cm4g
aXNWZXJzaW9uczsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNIUkJsb2NrKCkKLXsKLSAg
ICBzdGF0aWMgYm9vbCBpc0hSQmxvY2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29t
LmhyYmxvY2sudGF4LjIwMTAiKTsKLSAgICByZXR1cm4gaXNIUkJsb2NrOwotfQotCi1ib29sIE1h
Y0FwcGxpY2F0aW9uOjppc0lBZFByb2R1Y2VyKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0lBZFBy
b2R1Y2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQWRQcm9kdWNl
ciIpOwotICAgIHJldHVybiBpc0lBZFByb2R1Y2VyOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9u
Ojppc1NvbGlkU3RhdGVOZXR3b3Jrc0Rvd25sb2FkZXIoKQotewotICAgIHN0YXRpYyBib29sIGlz
U29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlciA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRv
KCJjb20uc29saWRzdGF0ZW5ldHdvcmtzLmF3a2hvc3QiKTsKLSAgICByZXR1cm4gaXNTb2xpZFN0
YXRlTmV0d29ya3NEb3dubG9hZGVyOwotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCi0j
aWYgUExBVEZPUk0oSU9TKQotCi1ib29sIElPU0FwcGxpY2F0aW9uOjppc01vYmlsZU1haWwoKQot
ewotICAgIHN0YXRpYyBib29sIGlzTW9iaWxlTWFpbCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKCJjb20uYXBwbGUubW9iaWxlbWFpbCIpOwotICAgIHJldHVybiBpc01vYmlsZU1haWw7Ci19
Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkKLXsKLSAgICBzdGF0aWMg
Ym9vbCBpc01vYmlsZVNhZmFyaSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBw
bGUubW9iaWxlc2FmYXJpIik7Ci0gICAgcmV0dXJuIGlzTW9iaWxlU2FmYXJpOwotfQotCi1ib29s
IElPU0FwcGxpY2F0aW9uOjppc1dlYkJvb2ttYXJrc0QoKQotewotICAgIHN0YXRpYyBib29sIGlz
V2ViQm9va21hcmtzRCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUud2Vi
Ym9va21hcmtzZCIpOwotICAgIHJldHVybiBpc1dlYkJvb2ttYXJrc0Q7Ci19Ci0KLWJvb2wgSU9T
QXBwbGljYXRpb246OmlzRHVtcFJlbmRlclRyZWUoKQotewotICAgIC8vIFdlIHVzZSBhIHByZWZp
eCBtYXRjaCBpbnN0ZWFkIG9mIHN0cmljdCBlcXVhbGl0eSBzaW5jZSBtdWx0aXBsZSBpbnN0YW5j
ZXMgb2YgRHVtcFJlbmRlclRyZWUKLSAgICAvLyBtYXkgYmUgbGF1bmNoZWQsIHdoZXJlIHRoZSBi
dW5kbGUgaWRlbnRpZmllciBvZiBlYWNoIGluc3RhbmNlIGhhcyBhIHVuaXF1ZSBzdWZmaXguCi0g
ICAgc3RhdGljIGJvb2wgaXNEdW1wUmVuZGVyVHJlZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIik7IC8vIGUuZy4gb3JnLndlYmtpdC5EdW1w
UmVuZGVyVHJlZTAKLSAgICByZXR1cm4gaXNEdW1wUmVuZGVyVHJlZTsKLX0KLQotYm9vbCBJT1NB
cHBsaWNhdGlvbjo6aXNNb2JpbGVTdG9yZSgpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNNb2JpbGVT
dG9yZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuTW9iaWxlU3RvcmUi
KTsKLSAgICByZXR1cm4gaXNNb2JpbGVTdG9yZTsKLX0KLQotYm9vbCBJT1NBcHBsaWNhdGlvbjo6
aXNXZWJBcHAoKQotewotICAgIHN0YXRpYyBib29sIGlzV2ViQXBwID0gYXBwbGljYXRpb25CdW5k
bGVJc0VxdWFsVG8oImNvbS5hcHBsZS53ZWJhcHAiKTsKLSAgICByZXR1cm4gaXNXZWJBcHA7Ci19
Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzT2tDdXBpZCgpCi17Ci0gICAgc3RhdGljIGJvb2wg
aXNPa0N1cGlkID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5va2N1cGlkLmFwcCIp
OwotICAgIHJldHVybiBpc09rQ3VwaWQ7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRmFj
ZWJvb2soKQotewotICAgIHN0YXRpYyBib29sIGlzRmFjZWJvb2sgPSBhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbygiY29tLmZhY2Vib29rLkZhY2Vib29rIik7Ci0gICAgcmV0dXJuIGlzRmFjZWJv
b2s7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRGFpamlzZW5EaWN0aW9uYXJ5KCkKLXsK
LSAgICBzdGF0aWMgYm9vbCBpc0RhaWppc2VuRGljdGlvbmFyeSA9IGFwcGxpY2F0aW9uQnVuZGxl
SXNFcXVhbFRvKCJqcC5jby5zaG9nYWt1a2FuLmRhaWppc2VuMjAwOWkiKTsKLSAgICByZXR1cm4g
aXNEYWlqaXNlbkRpY3Rpb25hcnk7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzTkFTQUhE
KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc05BU0FIRCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKCJnb3YubmFzYS5OQVNBSEQiKTsKLSAgICByZXR1cm4gaXNOQVNBSEQ7Ci19Ci0KLWJvb2wg
SU9TQXBwbGljYXRpb246OmlzVGhlRWNvbm9taXN0T25JcGhvbmUoKQotewotICAgIHN0YXRpYyBi
b29sIGlzVGhlRWNvbm9taXN0T25JcGhvbmUgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygi
Y29tLmVjb25vbWlzdC5pcGhvbmUiKTsKLSAgICByZXR1cm4gaXNUaGVFY29ub21pc3RPbklwaG9u
ZTsKLX0KLQotLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgY2hhbmdlZCB3aGVuIHRoZSBXZWJQ
cm9jZXNzIGlzIGNoYW5nZWQgdG8gYW4gWFBDIHNlcnZpY2UuCi1ib29sIElPU0FwcGxpY2F0aW9u
Ojppc1dlYlByb2Nlc3MoKQotewotICAgIHN0YXRpYyBib29sIGlzV2ViUHJvY2VzcyA9IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCJdCi0gICAgICAgIHx8IFtbW05T
QnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdCi0gICAgICAgIHx8IFtbW05TQnVuZGxlIG1haW5C
dW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJQ
cm9jZXNzIl07Ci0gICAgcmV0dXJuIGlzV2ViUHJvY2VzczsKLX0KLQotYm9vbCBJT1NBcHBsaWNh
dGlvbjo6aXNJQm9va3MoKQotewotICAgIHN0YXRpYyBib29sIGlzSUJvb2tzID0gYXBwbGljYXRp
b25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQm9va3MiKTsKLSAgICByZXR1cm4gaXNJQm9v
a3M7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15
c3RlcnkoKQotewotICAgIHN0YXRpYyBib29sIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3Rl
cnkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmc1ZS5zZWNyZXRzb2NpZXR5Iik7
Ci0gICAgcmV0dXJuIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3Rlcnk7Ci19Ci0KLSNlbmRp
ZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQyZTI4Yjc4ZTc4MTNiMWQ5Y2EwMmQ1N2M4MmRlOTUzYmI3N2MyMjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3NDb2NvYS5tbQpAQCAtMCwwICsxLDI2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIK
KworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TQnVuZGxlLmg+
CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKK3N0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZDsKKyNlbmRpZgorCisvLyBUaGUgYXBwbGljYXRp
b24gYnVuZGxlIGlkZW50aWZpZXIgZ2V0cyBzZXQgdG8gdGhlIFVJUHJvY2VzcyBidW5kbGUgaWRl
bnRpZmllciBieSB0aGUgV2ViUHJvY2VzcyBhbmQKKy8vIHRoZSBOZXR3b3JraW5nIHVwb24gaW5p
dGlhbGl6YXRpb24uIEl0IGlzIHVuc2V0IG90aGVyd2lzZS4KK3N0YXRpYyBTdHJpbmcmIGFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiBpZGVudGlmaWVyOworI2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECisgICAg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gdHJ1ZTsKKyNl
bmRpZgorICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitTdHJpbmcgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyKCkKK3sKKyAgICAvLyBUaGUgb3ZlcnJpZGUgb25seSBnZXRzIHNldCBpbiBX
ZWJLaXQyJ3MgV2ViUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nlc3MuIElmIHVuc2V0LCB3ZSB1c2Ug
dGhlIG1haW4gYnVuZGxlIGlkZW50aWZpZXIuCisgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9
IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCk7CisgICAgQVNTRVJUKGlkZW50
aWZpZXIuaXNOdWxsKCkgfHwgUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHJldHVybiBpZGVudGlm
aWVyLmlzTnVsbCgpID8gU3RyaW5nKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRp
Zmllcl0pIDogaWRlbnRpZmllcjsKK30KKwordm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFs
VG8oKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCkiKTsKKyAgICBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpID0g
YnVuZGxlSWRlbnRpZmllcjsKK30KKworc3RhdGljIGJvb2wgYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQoreworICAgIHJldHVy
biBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSBidW5kbGVJZGVudGlmaWVyU3RyaW5n
OworfQorCisjaWYgUExBVEZPUk0oTUFDKQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc1NhZmFy
aSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1
YWxUbygiY29tLmFwcGxlLlNhZmFyaSIpOworICAgIHJldHVybiBpc1NhZmFyaTsKK30KKworYm9v
bCBNYWNBcHBsaWNhdGlvbjo6aXNBcHBsZU1haWwoKQoreworICAgIHN0YXRpYyBib29sIGlzQXBw
bGVNYWlsID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5tYWlsIik7Cisg
ICAgcmV0dXJuIGlzQXBwbGVNYWlsOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc0lCb29r
cygpCit7CisgICAgc3RhdGljIGJvb2wgaXNJQm9va3MgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1
YWxUbygiY29tLmFwcGxlLmlCb29rc1giKTsKKyAgICByZXR1cm4gaXNJQm9va3M7Cit9CisKK2Jv
b2wgTWFjQXBwbGljYXRpb246OmlzSVR1bmVzKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc0lUdW5l
cyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuaVR1bmVzIik7CisgICAg
cmV0dXJuIGlzSVR1bmVzOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc01pY3Jvc29mdE1l
c3NlbmdlcigpCit7CisgICAgc3RhdGljIGJvb2wgaXNNaWNyb3NvZnRNZXNzZW5nZXIgPSBhcHBs
aWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5NZXNzZW5nZXIiKTsKKyAgICBy
ZXR1cm4gaXNNaWNyb3NvZnRNZXNzZW5nZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246Omlz
QWRvYmVJbnN0YWxsZXIoKQoreworICAgIHN0YXRpYyBib29sIGlzQWRvYmVJbnN0YWxsZXIgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFkb2JlLkluc3RhbGxlcnMuU2V0dXAiKTsK
KyAgICByZXR1cm4gaXNBZG9iZUluc3RhbGxlcjsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6
aXNBT0xJbnN0YW50TWVzc2VuZ2VyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc0FPTEluc3RhbnRN
ZXNzZW5nZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFvbC5haW0uZGVza3Rv
cCIpOworICAgIHJldHVybiBpc0FPTEluc3RhbnRNZXNzZW5nZXI7Cit9CisKK2Jvb2wgTWFjQXBw
bGljYXRpb246OmlzTWljcm9zb2Z0TXlEYXkoKQoreworICAgIHN0YXRpYyBib29sIGlzTWljcm9z
b2Z0TXlEYXkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5teWRh
eSIpOworICAgIHJldHVybiBpc01pY3Jvc29mdE15RGF5OworfQorCitib29sIE1hY0FwcGxpY2F0
aW9uOjppc01pY3Jvc29mdE91dGxvb2soKQoreworICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0
T3V0bG9vayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20ubWljcm9zb2Z0Lk91dGxv
b2siKTsKKyAgICByZXR1cm4gaXNNaWNyb3NvZnRPdXRsb29rOworfQorCitib29sIE1hY0FwcGxp
Y2F0aW9uOjppc1F1aWNrZW5Fc3NlbnRpYWxzKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc1F1aWNr
ZW5Fc3NlbnRpYWxzID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5pbnR1aXQuUXVp
Y2tlbkVzc2VudGlhbHMiKTsKKyAgICByZXR1cm4gaXNRdWlja2VuRXNzZW50aWFsczsKK30KKwor
Ym9vbCBNYWNBcHBsaWNhdGlvbjo6aXNBcGVydHVyZSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNB
cGVydHVyZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuQXBlcnR1cmUi
KTsKKyAgICByZXR1cm4gaXNBcGVydHVyZTsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNW
ZXJzaW9ucygpCit7CisgICAgc3RhdGljIGJvb2wgaXNWZXJzaW9ucyA9IGFwcGxpY2F0aW9uQnVu
ZGxlSXNFcXVhbFRvKCJjb20uYmxhY2twaXhlbC52ZXJzaW9ucyIpOworICAgIHJldHVybiBpc1Zl
cnNpb25zOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc0hSQmxvY2soKQoreworICAgIHN0
YXRpYyBib29sIGlzSFJCbG9jayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uaHJi
bG9jay50YXguMjAxMCIpOworICAgIHJldHVybiBpc0hSQmxvY2s7Cit9CisKK2Jvb2wgTWFjQXBw
bGljYXRpb246OmlzSUFkUHJvZHVjZXIoKQoreworICAgIHN0YXRpYyBib29sIGlzSUFkUHJvZHVj
ZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlBZFByb2R1Y2VyIik7
CisgICAgcmV0dXJuIGlzSUFkUHJvZHVjZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246Omlz
U29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlcigpCit7CisgICAgc3RhdGljIGJvb2wgaXNTb2xp
ZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNv
bS5zb2xpZHN0YXRlbmV0d29ya3MuYXdraG9zdCIpOworICAgIHJldHVybiBpc1NvbGlkU3RhdGVO
ZXR3b3Jrc0Rvd25sb2FkZXI7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQ
TEFURk9STShJT1MpCisKK2Jvb2wgSU9TQXBwbGljYXRpb246OmlzTW9iaWxlTWFpbCgpCit7Cisg
ICAgc3RhdGljIGJvb2wgaXNNb2JpbGVNYWlsID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
ImNvbS5hcHBsZS5tb2JpbGVtYWlsIik7CisgICAgcmV0dXJuIGlzTW9iaWxlTWFpbDsKK30KKwor
Ym9vbCBJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKQoreworICAgIHN0YXRpYyBib29s
IGlzTW9iaWxlU2FmYXJpID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5t
b2JpbGVzYWZhcmkiKTsKKyAgICByZXR1cm4gaXNNb2JpbGVTYWZhcmk7Cit9CisKK2Jvb2wgSU9T
QXBwbGljYXRpb246OmlzV2ViQm9va21hcmtzRCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJC
b29rbWFya3NEID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS53ZWJib29r
bWFya3NkIik7CisgICAgcmV0dXJuIGlzV2ViQm9va21hcmtzRDsKK30KKworYm9vbCBJT1NBcHBs
aWNhdGlvbjo6aXNEdW1wUmVuZGVyVHJlZSgpCit7CisgICAgLy8gV2UgdXNlIGEgcHJlZml4IG1h
dGNoIGluc3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5IHNpbmNlIG11bHRpcGxlIGluc3RhbmNlcyBv
ZiBEdW1wUmVuZGVyVHJlZQorICAgIC8vIG1heSBiZSBsYXVuY2hlZCwgd2hlcmUgdGhlIGJ1bmRs
ZSBpZGVudGlmaWVyIG9mIGVhY2ggaW5zdGFuY2UgaGFzIGEgdW5pcXVlIHN1ZmZpeC4KKyAgICBz
dGF0aWMgYm9vbCBpc0R1bXBSZW5kZXJUcmVlID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
Im9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiKTsgLy8gZS5nLiBvcmcud2Via2l0LkR1bXBSZW5k
ZXJUcmVlMAorICAgIHJldHVybiBpc0R1bXBSZW5kZXJUcmVlOworfQorCitib29sIElPU0FwcGxp
Y2F0aW9uOjppc01vYmlsZVN0b3JlKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc01vYmlsZVN0b3Jl
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5Nb2JpbGVTdG9yZSIpOwor
ICAgIHJldHVybiBpc01vYmlsZVN0b3JlOworfQorCitib29sIElPU0FwcGxpY2F0aW9uOjppc1dl
YkFwcCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJBcHAgPSBhcHBsaWNhdGlvbkJ1bmRsZUlz
RXF1YWxUbygiY29tLmFwcGxlLndlYmFwcCIpOworICAgIHJldHVybiBpc1dlYkFwcDsKK30KKwor
Ym9vbCBJT1NBcHBsaWNhdGlvbjo6aXNPa0N1cGlkKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc09r
Q3VwaWQgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm9rY3VwaWQuYXBwIik7Cisg
ICAgcmV0dXJuIGlzT2tDdXBpZDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNGYWNlYm9v
aygpCit7CisgICAgc3RhdGljIGJvb2wgaXNGYWNlYm9vayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNF
cXVhbFRvKCJjb20uZmFjZWJvb2suRmFjZWJvb2siKTsKKyAgICByZXR1cm4gaXNGYWNlYm9vazsK
K30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNEYWlqaXNlbkRpY3Rpb25hcnkoKQoreworICAg
IHN0YXRpYyBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5ID0gYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oImpwLmNvLnNob2dha3VrYW4uZGFpamlzZW4yMDA5aSIpOworICAgIHJldHVybiBpc0Rh
aWppc2VuRGljdGlvbmFyeTsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNOQVNBSEQoKQor
eworICAgIHN0YXRpYyBib29sIGlzTkFTQUhEID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
Imdvdi5uYXNhLk5BU0FIRCIpOworICAgIHJldHVybiBpc05BU0FIRDsKK30KKworYm9vbCBJT1NB
cHBsaWNhdGlvbjo6aXNUaGVFY29ub21pc3RPbklwaG9uZSgpCit7CisgICAgc3RhdGljIGJvb2wg
aXNUaGVFY29ub21pc3RPbklwaG9uZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20u
ZWNvbm9taXN0LmlwaG9uZSIpOworICAgIHJldHVybiBpc1RoZUVjb25vbWlzdE9uSXBob25lOwor
fQorCisvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBjaGFuZ2VkIHdoZW4gdGhlIFdlYlByb2Nl
c3MgaXMgY2hhbmdlZCB0byBhbiBYUEMgc2VydmljZS4KK2Jvb2wgSU9TQXBwbGljYXRpb246Omlz
V2ViUHJvY2VzcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJQcm9jZXNzID0gW1tbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0KKyAgICAgICAgfHwgW1tbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50Il0KKyAgICAgICAgfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYlByb2Nl
c3MiXTsKKyAgICByZXR1cm4gaXNXZWJQcm9jZXNzOworfQorCitib29sIElPU0FwcGxpY2F0aW9u
Ojppc0lCb29rcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNJQm9va3MgPSBhcHBsaWNhdGlvbkJ1
bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlCb29rcyIpOworICAgIHJldHVybiBpc0lCb29rczsK
K30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVy
eSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeSA9
IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uZzVlLnNlY3JldHNvY2lldHkiKTsKKyAg
ICByZXR1cm4gaXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeTsKK30KKworI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4
IDA2ZTIxZDU3NTE2NWQ3NWRjZmE2MWM0MjE2NTEzZmEwMDZkYzM5YzUuLmU3N2FlNjJkNjcyOGNh
NzI4MzNkODg0ZDQyZGFhOTE5MjA1MTRiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIwMiw2ICsyMDIsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogeworICAgIFdlYkNvcmU6OnNldFByZXNl
bnRpbmdBcHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCk7CiAgICAgcGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CiAKICAgICBXVEY6OlRocmVh
ZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmluZGV4IDdkNmRmM2Q1NzFiOTQ5OTlkZTY0YjgzNmQxNDQzMzg1Nzk3
ZWEwYWEuLmY0ZTMwNTM3NjM5NWM0NjFiNWYyM2MwNmUwOWJkZmUyMGYzZDNjMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsK
ICAgICBlbmNvZGVyIDw8IGxvYWRUaHJvdHRsZUxhdGVuY3k7CiAgICAgZW5jb2RlciA8PCB1cmxT
Y2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsKKyAgICBlbmNvZGVyIDw8IHVpUHJv
Y2Vzc1BJRDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNvZGVyIDw8IHBhcmVudFByb2Nl
c3NOYW1lOwogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKQEAgLTE0
OCw2ICsxNDksOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJsU2NoZW1lc1JlZ2lzdGVyZWRG
b3JDdXN0b21Qcm90b2NvbHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzUElEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBhcmVu
dFByb2Nlc3NOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggZDM0Mjk3ODRjNmNkOTAxOWY2MGRjNmEwMmIyOGI4YWFjZjViZmM1
OS4uY2UxY2Y2YmYzODQ2ZjdiY2UyMjNkMDU3NWRhYjNhODJjYjFlYTk0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2Vjb25kcyBsb2FkVGhyb3R0bGVMYXRlbmN5
OwogCiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90
b2NvbHM7CisgICAgcGlkX3QgdWlQcm9jZXNzUElEIHsgMCB9OwogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgU3RyaW5nIHBhcmVudFByb2Nlc3NOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDJiZGZm
MDg5ZjBkOGVhZTA1MWRmYmY3ZDY4OTBkZGFhZDk5NTJjNmEuLjk4Njc1YWYxYmE4ZmVlNzQxYjM3
ZTg0NWZhMTA3NTY2M2YyOTQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk4LDggKzk4LDggQEAgdm9p
ZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQog
ICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVu
Y29kZXIgPDwgdWlQcm9jZXNzUElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGVuY29kZXIg
PDwgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5jb2RlciA8PCBhY2Nlc3NpYmlsaXR5
RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdQb3J0OwogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQ
YXRoOwpAQCAtMjQ4LDEwICsyNDgsOSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucHJlc2VudGVyQXBwbGljYXRpb25QaWQp
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NQSUQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFi
bGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxZmQwNmQz
M2NhM2U1NTJjYWY3ZWUxODQxZGJhYjcyMDg2YmYxMDUwLi40YTQ5MmQ5MTg1NDJjMTRkMDAxOWU1
OTI0MGQ3ZjRlYzg2MjQzNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzNSw5ICsxMzUsOSBAQCBzdHJ1Y3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRs
ZUlkZW50aWZpZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHBpZF90IHBy
ZXNlbnRlckFwcGxpY2F0aW9uUGlkIHsgMCB9OworICAgIHBpZF90IHVpUHJvY2Vzc1BJRCB7IDAg
fTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYkNvcmU6Ok1hY2hTZW5kUmlnaHQgYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQ7CiAKICAgICBTdHJpbmcgdWlQcm9jZXNzQnVuZGxlUmVz
b3VyY2VQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBmMzFhNDFhMjYxZmUyNTU4YzhhMjgzYjFhNDlmNDZk
MzdmYTQ3NWI2Li41MTdjZGJkZDYxODFlZWEwMTA0ZjllNjMwNzZjZDQxOGY0MTkyZThmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQpAQCAtMTc4LDggKzE3OCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
UmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogCiB2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgcGFyYW1ldGVycy5wcmVzZW50ZXJBcHBsaWNhdGlvblBp
ZCA9IGdldHBpZCgpOwotCiAjaWYgUExBVEZPUk0oTUFDKQogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggMzI4MTA5ZjE3NWZlYWEyMGM2NzAxYWE4NTRiZDc3MzQ3YjAzZTQ5Yy4uZGI0ODcw
ZDAzZWNmZjZiODk5ZTk4ODBkYzdhOTc5MWMwNWMzOWQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjAsNiArNDYwLDcgQEAgTmV0d29ya1By
b2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkKICNlbmRp
ZgogCiAgICAgcGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3No
b3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKKyAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJ
RCA9IGdldHBpZCgpOwogCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0
ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CkBA
IC03NTIsNiArNzUzLDggQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRl
TmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJz
LnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiAKKyAgICBwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc1BJRCA9IGdldHBpZCgpOworCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBw
YXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCmluZGV4IGY4OGY5ZDIxMGM1YWMwYTI5MGUzZGUxYTk4MDAxMDIwZDA2MjMzMTcuLjFl
YjA0MzcyODEyODBjY2QyMDE2ODI2N2I1YWZlNTRhOTY1ZmNkYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTIsIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTg0LDYgKzg0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhh
bmRsZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2Nyb2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVy
aXRlZERhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CkBAIC05Myw4ICs5
NCw4IEBACiAjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpCi0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0
TWFjLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2lt
cG9ydCA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogICAgIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QqIG1vY2tBY2Nlc3NpYmlsaXR5
RWxlbWVudCA9IFtbW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXTsKIAogICAgIC8vIEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vz
cy4KLSAgICBwaWRfdCBwaWQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBs
aWNhdGlvblBpZCgpOworICAgIHBpZF90IHBpZCA9IFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRCgpOwogICAgIFdLQVhJbml0aWFsaXplRWxlbWVudFdpdGhQcmVzZW50ZXJQaWQobW9j
a0FjY2Vzc2liaWxpdHlFbGVtZW50LCBwaWQpOwogICAgIFttb2NrQWNjZXNzaWJpbGl0eUVsZW1l
bnQgc2V0V2ViUGFnZTp0aGlzXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IDcxODk5Zjg1MDM1OWIyOTA0MzFmYzY0ZDBjNjhkYmY5MTZkZjg1MWEu
LjFiZGNiYTZlNzk2Mzg4ZDVmNmQzODQyMTkyOWEwNjQyYjI0YTMzMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjUwLDYgKzI1MCw4IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYmIHBhcmFtZXRlcnMpCiB7ICAgIAogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsK
IAorICAgIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnVp
UHJvY2Vzc1BJRCk7CisKICNpZiBPUyhMSU5VWCkKICAgICBpZiAocGFyYW1ldGVycy5tZW1vcnlQ
cmVzc3VyZU1vbml0b3JIYW5kbGUuZmlsZURlc2NyaXB0b3IoKSAhPSAtMSkKICAgICAgICAgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5zZXRNZW1vcnlQcmVzc3VyZU1vbml0b3JI
YW5kbGUocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUucmVsZWFzZUZpbGVE
ZXNjcmlwdG9yKCkpOwpAQCAtMzg4LDcgKzM5MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuOwogICAgIGlmIChwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKGF1ZGl0VG9rZW4pKSB7CiAgICAgICAgIFJldGFpblB0
cjxDRkRhdGFSZWY+IGF1ZGl0RGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKG51bGxwdHIsIChj
b25zdCBVSW50OCopJmF1ZGl0VG9rZW4sIHNpemVvZihhdWRpdFRva2VuKSkpOwotICAgICAgICBJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0UGFyZW50UHJvY2Vzc0lu
Zm9ybWF0aW9uKHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKCksIGF1ZGl0RGF0YSk7CisgICAgICAg
IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS5zZXRQYXJlbnRQcm9jZXNz
SW5mb3JtYXRpb24oV2ViQ29yZTo6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCksIGF1ZGl0RGF0
YSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
aW5kZXggYWVjYmFkYjc2YmQ1OTY1YWFhN2E0ODdmNjYzNDFhNGEwYTFjNWI5OC4uYjgyOGI3NTQ1
YmJjYTNiMjBmYzkwNDA5NmNjZTBkZDkxMmMzNzNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTE0NywxMCArMTQ3LDYgQEAgcHVibGljOgogCiAgICAgdWludDY0
X3QgdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIoUmVmUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJl
VG9rZW4+KTsKICAgICB2b2lkIHVzZXJHZXN0dXJlVG9rZW5EZXN0cm95ZWQoV2ViQ29yZTo6VXNl
ckdlc3R1cmVUb2tlbiYpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGlkX3QgcHJlc2Vu
dGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlbnRlckFwcGxpY2F0aW9u
UGlkOyB9Ci0jZW5kaWYKICAgICAKICAgICBjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiB0ZXh0Q2hl
Y2tlclN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q2hlY2tlclN0YXRlOyB9CiAgICAgdm9p
ZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUmKTsKQEAgLTM2OCw3
ICszNjQsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2ViQ29yZTo6
TWFjaFNlbmRSaWdodCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKLSAgICBwaWRfdCBt
X3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogI2VuZGlmCiAKICAgICBib29sIG1fZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDRkZjhlYzQzN2UzN2Q2MWFkZDg2
MTMzN2VmM2QyNTA3NDZmNmY0YzAuLmUyNGU4YzViOGEyMDU2MjVkZTdmYzBiMjdiZWU4ZDU2NDEz
YmE3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShPU19TVEFU
RSkKLSNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+CisjaW1wb3J0IDxvcy9zdGF0ZV9wcml2
YXRlLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE0OSw3ICsxNDksNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcgogI2VuZGlmCiAKICAgICBtX2NvbXBvc2l0aW5nUmVuZGVy
U2VydmVyUG9ydCA9IFdURk1vdmUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9y
dCk7Ci0gICAgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IHBhcmFtZXRlcnMucHJlc2VudGVy
QXBwbGljYXRpb25QaWQ7CiAKICAgICBXZWJDb3JlOjpyZWdpc3Rlck1lbW9yeVJlbGVhc2VOb3Rp
ZnlDYWxsYmFja3MoKTsKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6
c2V0TG9nZ2luZ0VuYWJsZWQocGFyYW1ldGVycy5zaG91bGRFbmFibGVNZW1vcnlQcmVzc3VyZVJl
bGllZkxvZ2dpbmcpOwpAQCAtMTc1LDcgKzE3NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJf
UElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20oKSkgewotICAgICAgICBwaWRfdCBwaWQg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpOworICAg
ICAgICBwaWRfdCBwaWQgPSBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKICAg
ICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgICAgIFtbZ2V0QVZTeXN0ZW1Db250cm9s
bGVyQ2xhc3MoKSBzaGFyZWRBVlN5c3RlbUNvbnRyb2xsZXJdIHNldEF0dHJpYnV0ZTpAKHBpZCkg
Zm9yS2V5OkFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRlRnJv
bSBlcnJvcjomZXJyb3JdOwogICAgICAgICBpZiAoZXJyb3IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310198</attachid>
            <date>2017-05-15 17:50:11 -0700</date>
            <delta_ts>2017-05-15 21:02:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172133-20170515175010.patch</filename>
            <type>text/plain</type>
            <size>45544</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNzlkMzAxZGMzOGU2
Yjk4NjcyZjZlYzc0YmQ5ZDkzM2VkZmQ5My4uNzYzMWE3YjYzZjExZGNjZmU0MTQ3ZDZlMDkyMzRj
MjI3ZWE1MTllMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA1LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNhdGlv
biBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU1h
Yy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSURPdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOiBSZXR1cm5zIHRoZSBvdmVy
cmlkZSBQSUQgaWYgc2V0LCBvciBnZXRwaWQoKSBvdGhlcndpc2UuCisgICAgICAgIChXZWJDb3Jl
OjpzZXRQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tLgorCiAyMDE3LTA1LTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV0sxXSBEbyBub3Qg
dHJ5IHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvIHN1YmZyYW1lcyBpZiB0aGVpciBkb2N1bWVudHMg
aGF2ZSBub3QgYmVlbiBjb25zdHJ1Y3RlZCB5ZXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmVhNDc2NDFlMzll
Yjc1OWQ5NmIzYWM0NzI3YTcwZjA3YmIyYWU2Ni4uYzI5MjY0YjBhNjRiZmQwYTYyOTk1NjYxNmE5
YTcyZTNkMDcyYTg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA1LTE1ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNh
dGlvbiBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCisKKyAgICAgICAgQWRkZWQgdWlQcm9jZXNzUElEIHRvIFdlYiBhbmQgTmV0d29y
a2luZyBwcm9jZXNzIGNyZWF0aW9uIHBhcmFtZXRlcnMuIFRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGluaXRpYWxpemVzIHRoZXNlIHRvIGdldHBpZCgpLCBhbmQgdGhlIGNoaWxkIHByb2Nlc3NlcyBj
YWxsIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpCisgICAgICAgIGF0IGlu
aXRpYWxpemF0aW9uIHRpbWUuCisKKyAgICAgICAgVGhpcyByZXBsYWNlcyBwcmVzZW50ZXJBcHBs
aWNhdGlvblBpZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgor
CiAyMDE3LTA1LTE1ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIFVucmV2aWV3ZWQgZGVidWcgYnVpbGQgZml4CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDRiMTA3NzhhZmIxMDlhNDUyZTA5Njc4YzMxZWNiOTNlNTFlNWNhZjIuLjFhODY0NzIzMWEz
NThkMmY4MTA3ZDU4ZTdiMmM3MzhkZDhmYTUzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0y
MTc0LDYgKzIxNzQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXplci5jcHAKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwCiAgICAgcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAorICAgIHBsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKICAgICBwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKICAgICBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCAyYTM5MzQ3NzA3NDI3ZGY2
NjY1MTIxYzM1YTA5NTM0ZTA3Y2M3NzU4Li4yYzJlNGNjZjk4YzFlYjQ4ZTYyMTBkMTU3MTY4NDIw
ZDA2ZWQyNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMzA4LDcgKzMwOCw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vQ1BVTW9uaXRvci5j
cHAKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAotICAgIHBsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5tbQogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAog
CiAgICAgcGxhdGZvcm0vYXVkaW8vQXVkaW9TZXNzaW9uLmNwcApAQCAtMzQ3LDYgKzM0Niw3IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2NvY29hL01hY2hTZW5k
UmlnaHQuY3BwCiAgICAgcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXIubW0KICAgICBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5t
bQorICAgIHBsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCiAg
ICAgcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQogICAgIHBsYXRmb3JtL2NvY29h
L1Njcm9sbFNuYXBBbmltYXRvclN0YXRlLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvU2VhcmNoUG9w
dXBNZW51Q29jb2EubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBhMTc4YmNiMTkxYzIzYWM5NjQ2ODhjYmIyNDIyNzM5ZTg3YzY3
ZTZhLi5jYmUzMTVjN2IwZDJhNGJmZjRhMGI4MGFmNzA5ZDI4ZGY0MmJmZDUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM3
LDcgKzE5MzcsNyBAQAogCQk0NjNFQjYyMzFCODc4OUUwMDA5NkVENTEgLyogVGFnQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2
MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJNDY1MzA3RDAx
REI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTA0NUVGMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJ
RXZlbnRJbml0LmggKi87IH07CiAJCTQ2NTMwN0QxMURCNkVFNEEwMEU0MTM3QyAvKiBKU1VJRXZl
bnRJbml0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzRTA0NUVFMURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJRXZlbnRJbml0LmNwcCAqLzsgfTsKLQkJ
NDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUE4RTc4MUM4
QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi87IH07CisJCTQ2
NUE4RTc5MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLzsg
fTsKIAkJNDY3MUUwNjUxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MUUwNjMxRDY3QTU3QjAw
QzZCNDk3IC8qIENhbnZhc1BhdGguY3BwICovOyB9OwogCQk0NjcxRTA2NjFENjdBNTk2MDBDNkI0
OTcgLyogQ2FudmFzUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLzsgfTsK
IAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291
bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5sb2Fk
Q291bnRJbmNyZW1lbnRlci5oICovOyB9OwpAQCAtNDI2Niw2ICs0MjY2LDcgQEAKIAkJQTE4NUI0
MkExRTgyMTFBMTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODVCNDI4MUU4MjExQTEwMERDOTExOCAvKiBQ
cmV2aWV3TG9hZGVyLmggKi87IH07CiAJCUExODg5MEFFMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJl
bnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENv
bnRyb2xzQ29udGVudEZpbHRlci5tbSAqLzsgfTsKIAkJQTE4ODkwQUYxQUExM0YyNTAwMjZDMzAx
IC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLzsgfTsKKwkJQTE4RjdBMzYxRUNBNzM2NDAw
NTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMThGN0EzNTFFQ0E3MzY0MDA1OUUxRTEgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLzsgfTsKIAkJQTE5QUVBMjExQUFBODA4NjAw
QjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE5QUVBMUUxQUFBODA2RTAwQjUyQjI1IC8q
IEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovOyB9OwogCQlBMTlBRUEyMjFBQUE4MDhB
MDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUFFQTFEMUFBQTgwNkUwMEI1MkIy
NSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovOyB9OwogCQlBMTlEOTM0NjFB
OUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUQ5MzQ0MUE5RkVDNzIwMEI0NkMyNCAvKiBO
RUZpbHRlclNvdXJjZVNQSS5oICovOyB9OwpAQCAtOTYwMyw3ICs5NjA0LDcgQEAKIAkJNDYzNDU5
MkIxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG93ZXJPYnNlcnZlck1hYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2M0VCNjIwMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhZ0NvbGxlY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMTFCODc4OUNCMDA5
NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUYWdDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2NUE4RTc4
MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNF
NCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyog
Q2FudmFzUGF0aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52
YXNQYXRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3
QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ2FudmFzUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjczMDIwMTFD
NEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5s
b2FkQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0
NTgsNiArMTI0NTksNyBAQAogCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xv
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3TG9hZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODg5MEFDMUFBMTNGMjUwMDI2QzMwMSAv
KiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4OTBBRDFBQTEzRjI1MDAyNkMzMDEgLyogUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTE4RjdBMzUxRUNBNzM2NDAwNTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTlBRUExQzFBQUE3QzQ5MDBCNTJC
MjUgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExOUFFQTFEMUFB
QTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE5QUVBMUUxQUFBODA2RTAwQjUy
QjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDU0LDYgKzIxMDU2LDcgQEAKIAkJCQlBMTg4OTBBRDFBQTEz
RjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlB
MTg4OTBBQzFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIu
bW0gKi8sCiAJCQkJNTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICov
LAorCQkJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVj
a3NDb2NvYS5tbSAqLywKIAkJCQkxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsQ29u
dHJvbGxlci5oICovLAogCQkJCTFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxDb250
cm9sbGVyLm1tICovLAogCQkJCUY0Nzg3NTUyMTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFw
QW5pbWF0b3JTdGF0ZS5oICovLApAQCAtMjM5NzgsOCArMjM5ODEsOCBAQAogCQkJCTk4MzFBRTQ5
MTU0MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAogCQkJCUNERkMzNjAzMThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovLAogCQkJCUNERkMz
NjA0MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLywKKwkJCQlB
MThGN0EzNTFFQ0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAq
LywKIAkJCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmggKi8sCi0JCQkJNDY1QThFNzgxQzhBMjRDRTAwRTdEM0U0IC8qIFJ1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5tbSAqLywKIAkJCQk1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1l
UmVnaXN0cnkuY3BwICovLAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVS
ZWdpc3RyeS5oICovLAogCQkJCTUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJk
LmggKi8sCkBAIC0zMjg2Nyw2ICszMjg3MCw3IEBACiAJCQkJN0VFNjg0NkIxMkQyNkUzODAwRTc5
NDE1IC8qIFJlc291cmNlRXJyb3JDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY1MDBD
RTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxNEM3Njc4MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBMThGN0EzNjFFQ0E3MzY0MDA1OUUxRTEgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFRTY4NDZDMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2RkFFNENDMTg1
MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTI2QzE1Q0Y2MTg1N0UxNUQwMEYxNUMwMyAvKiBSZXNvdXJj
ZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMzI5MzIsNyArMzI5MzYsNyBAQAogCQkJCTFBNTY5RDIwMEQ3RTJCODIw
MDdDMzk4MyAvKiBydW50aW1lX21ldGhvZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTU2OUQy
MjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUE1NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0IC8q
IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M1
MjIyOUQxRTFEQUU0NzAwMkNCOEY3IC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0RENzA4OTYxODM1OUY2RjAwMkIzREM2IC8qIFNhbXBsZU1hcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OUU5MTFDQTBFRjg2RDQ3MDA5RDBDQUYgLyogU2NhbGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzU1
ODhlMjI4Y2ViZWI5NmQ0OGFkM2UxODAwMDc4Mzc0NmUzMGMyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIgorCisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIUFT
U0VSVF9NU0dfRElTQUJMRUQKK3N0YXRpYyBib29sIHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92
ZXJyaWRlV2FzUXVlcmllZDsKKyNlbmRpZgorCitzdGF0aWMgc3RkOjpvcHRpb25hbDxwaWRfdD4m
IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92ZXJyaWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxwaWRfdD4+IHBpZDsKKyNpZiAhQVNTRVJUX01TR19ESVNB
QkxFRAorICAgIHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92ZXJyaWRlV2FzUXVlcmllZCA9IHRy
dWU7CisjZW5kaWYKKyAgICByZXR1cm4gcGlkOworfQorCitwaWRfdCBwcmVzZW50aW5nQXBwbGlj
YXRpb25QSUQoKQoreworICAgIGNvbnN0IGF1dG8mIHBpZCA9IHByZXNlbnRpbmdBcHBsaWNhdGlv
blBJRE92ZXJyaWRlKCk7CisgICAgQVNTRVJUKCFwaWQgfHwgUnVuTG9vcDo6aXNNYWluKCkpOwor
ICAgIHJldHVybiBwaWQgPyBwaWQudmFsdWUoKSA6IGdldHBpZCgpOworfQorCit2b2lkIHNldFBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwaWRfdCBwaWQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFwcmVzZW50aW5nQXBwbGljYXRp
b25QSURPdmVycmlkZVdhc1F1ZXJpZWQsICJwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKSBzaG91
bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0UHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkiKTsK
KyAgICBwcmVzZW50aW5nQXBwbGljYXRpb25QSURPdmVycmlkZSgpID0gcGlkOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrcy5oCmluZGV4IDBlNDJiMGM1MjE1OTRlOWVjNjIxN2ZlNmNmNGE4
ODgwYmEwMmRlNDAuLmI5NmE3MTlkODY0YWYyYTk3OGFiNWMwNGZhM2E0ZGY3MDk2NzgwMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIzLDE0ICsyMywxNyBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrc19oCi0jZGVmaW5lIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c19oCisjcHJhZ21hIG9uY2UKIAotI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRQcmVzZW50aW5nQXBwbGljYXRpb25QSUQocGlkX3QpOworV0VCQ09SRV9FWFBPUlQgcGlkX3Qg
cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwogV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3Ry
aW5nJik7CiBTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCk7CiAKQEAgLTgxLDgg
Kzg0LDYgQEAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0
ZXJ5KCk7CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCi0jZW5kaWYgLy8gUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzX2gKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGVjYTg3MGFlNGNjZmU5OGFiMTA5YWUxZTBiMTlmMjg3MjMxMDQz
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0KKysrIC9kZXYvbnVs
bApAQCAtMSwyNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi0KLSNpbXBvcnQgPEZvdW5k
YXRpb24vTlNCdW5kbGUuaD4KLSNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9y
dCA8d3RmL1J1bkxvb3AuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAotc3RhdGljIGJvb2wg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gZmFsc2U7Ci0j
ZW5kaWYKLQotLy8gVGhlIGFwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyIGdldHMgc2V0IHRv
IHRoZSBVSVByb2Nlc3MgYnVuZGxlIGlkZW50aWZpZXIgYnkgdGhlIFdlYlByb2Nlc3MgYW5kCi0v
LyB0aGUgTmV0d29ya2luZyB1cG9uIGluaXRpYWxpemF0aW9uLiBJdCBpcyB1bnNldCBvdGhlcndp
c2UuCi1zdGF0aWMgU3RyaW5nJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgp
Ci17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gaWRlbnRpZmllcjsKLSNpZiAh
QVNTRVJUX01TR19ESVNBQkxFRAotICAgIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJy
aWRlV2FzUXVlcmllZCA9IHRydWU7Ci0jZW5kaWYKLSAgICByZXR1cm4gaWRlbnRpZmllcjsKLX0K
LQotU3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpCi17Ci0gICAgLy8gVGhlIG92
ZXJyaWRlIG9ubHkgZ2V0cyBzZXQgaW4gV2ViS2l0MidzIFdlYlByb2Nlc3MgYW5kIE5ldHdvcmtQ
cm9jZXNzLiBJZiB1bnNldCwgd2UgdXNlIHRoZSBtYWluIGJ1bmRsZSBpZGVudGlmaWVyLgotICAg
IGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVy
cmlkZSgpOwotICAgIEFTU0VSVChpZGVudGlmaWVyLmlzTnVsbCgpIHx8IFJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICByZXR1cm4gaWRlbnRpZmllci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdKSA6IGlkZW50aWZpZXI7Ci19Ci0KLXZvaWQg
c2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllcikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIWFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCwg
ImFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcigpIik7Ci0gICAgYXBwbGljYXRpb25CdW5k
bGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGJ1bmRsZUlkZW50aWZpZXI7Ci19Ci0KLXN0YXRpYyBi
b29sIGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllclN0cmluZykKLXsKLSAgICByZXR1cm4gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkg
PT0gYnVuZGxlSWRlbnRpZmllclN0cmluZzsKLX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLQotYm9v
bCBNYWNBcHBsaWNhdGlvbjo6aXNTYWZhcmkoKQotewotICAgIHN0YXRpYyBib29sIGlzU2FmYXJp
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5TYWZhcmkiKTsKLSAgICBy
ZXR1cm4gaXNTYWZhcmk7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246OmlzQXBwbGVNYWlsKCkK
LXsKLSAgICBzdGF0aWMgYm9vbCBpc0FwcGxlTWFpbCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKCJjb20uYXBwbGUubWFpbCIpOwotICAgIHJldHVybiBpc0FwcGxlTWFpbDsKLX0KLQotYm9v
bCBNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3MoKQotewotICAgIHN0YXRpYyBib29sIGlzSUJvb2tz
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQm9va3NYIik7Ci0gICAg
cmV0dXJuIGlzSUJvb2tzOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9uOjppc0lUdW5lcygpCi17
Ci0gICAgc3RhdGljIGJvb2wgaXNJVHVuZXMgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygi
Y29tLmFwcGxlLmlUdW5lcyIpOwotICAgIHJldHVybiBpc0lUdW5lczsKLX0KLQotYm9vbCBNYWNB
cHBsaWNhdGlvbjo6aXNNaWNyb3NvZnRNZXNzZW5nZXIoKQotewotICAgIHN0YXRpYyBib29sIGlz
TWljcm9zb2Z0TWVzc2VuZ2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5taWNy
b3NvZnQuTWVzc2VuZ2VyIik7Ci0gICAgcmV0dXJuIGlzTWljcm9zb2Z0TWVzc2VuZ2VyOwotfQot
Ci1ib29sIE1hY0FwcGxpY2F0aW9uOjppc0Fkb2JlSW5zdGFsbGVyKCkKLXsKLSAgICBzdGF0aWMg
Ym9vbCBpc0Fkb2JlSW5zdGFsbGVyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5h
ZG9iZS5JbnN0YWxsZXJzLlNldHVwIik7Ci0gICAgcmV0dXJuIGlzQWRvYmVJbnN0YWxsZXI7Ci19
Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246OmlzQU9MSW5zdGFudE1lc3NlbmdlcigpCi17Ci0gICAg
c3RhdGljIGJvb2wgaXNBT0xJbnN0YW50TWVzc2VuZ2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oImNvbS5hb2wuYWltLmRlc2t0b3AiKTsKLSAgICByZXR1cm4gaXNBT0xJbnN0YW50TWVz
c2VuZ2VyOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9uOjppc01pY3Jvc29mdE15RGF5KCkKLXsK
LSAgICBzdGF0aWMgYm9vbCBpc01pY3Jvc29mdE15RGF5ID0gYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oImNvbS5taWNyb3NvZnQubXlkYXkiKTsKLSAgICByZXR1cm4gaXNNaWNyb3NvZnRNeURh
eTsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNNaWNyb3NvZnRPdXRsb29rKCkKLXsKLSAg
ICBzdGF0aWMgYm9vbCBpc01pY3Jvc29mdE91dGxvb2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1
YWxUbygiY29tLm1pY3Jvc29mdC5PdXRsb29rIik7Ci0gICAgcmV0dXJuIGlzTWljcm9zb2Z0T3V0
bG9vazsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNRdWlja2VuRXNzZW50aWFscygpCi17
Ci0gICAgc3RhdGljIGJvb2wgaXNRdWlja2VuRXNzZW50aWFscyA9IGFwcGxpY2F0aW9uQnVuZGxl
SXNFcXVhbFRvKCJjb20uaW50dWl0LlF1aWNrZW5Fc3NlbnRpYWxzIik7Ci0gICAgcmV0dXJuIGlz
UXVpY2tlbkVzc2VudGlhbHM7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246OmlzQXBlcnR1cmUo
KQotewotICAgIHN0YXRpYyBib29sIGlzQXBlcnR1cmUgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1
YWxUbygiY29tLmFwcGxlLkFwZXJ0dXJlIik7Ci0gICAgcmV0dXJuIGlzQXBlcnR1cmU7Ci19Ci0K
LWJvb2wgTWFjQXBwbGljYXRpb246OmlzVmVyc2lvbnMoKQotewotICAgIHN0YXRpYyBib29sIGlz
VmVyc2lvbnMgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmJsYWNrcGl4ZWwudmVy
c2lvbnMiKTsKLSAgICByZXR1cm4gaXNWZXJzaW9uczsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlv
bjo6aXNIUkJsb2NrKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0hSQmxvY2sgPSBhcHBsaWNhdGlv
bkJ1bmRsZUlzRXF1YWxUbygiY29tLmhyYmxvY2sudGF4LjIwMTAiKTsKLSAgICByZXR1cm4gaXNI
UkJsb2NrOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9uOjppc0lBZFByb2R1Y2VyKCkKLXsKLSAg
ICBzdGF0aWMgYm9vbCBpc0lBZFByb2R1Y2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
ImNvbS5hcHBsZS5pQWRQcm9kdWNlciIpOwotICAgIHJldHVybiBpc0lBZFByb2R1Y2VyOwotfQot
Ci1ib29sIE1hY0FwcGxpY2F0aW9uOjppc1NvbGlkU3RhdGVOZXR3b3Jrc0Rvd25sb2FkZXIoKQot
ewotICAgIHN0YXRpYyBib29sIGlzU29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlciA9IGFwcGxp
Y2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uc29saWRzdGF0ZW5ldHdvcmtzLmF3a2hvc3QiKTsK
LSAgICByZXR1cm4gaXNTb2xpZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyOwotfQotCi0jZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQotCi0jaWYgUExBVEZPUk0oSU9TKQotCi1ib29sIElPU0FwcGxpY2F0
aW9uOjppc01vYmlsZU1haWwoKQotewotICAgIHN0YXRpYyBib29sIGlzTW9iaWxlTWFpbCA9IGFw
cGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUubW9iaWxlbWFpbCIpOwotICAgIHJl
dHVybiBpc01vYmlsZU1haWw7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2Fm
YXJpKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc01vYmlsZVNhZmFyaSA9IGFwcGxpY2F0aW9uQnVu
ZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUubW9iaWxlc2FmYXJpIik7Ci0gICAgcmV0dXJuIGlzTW9i
aWxlU2FmYXJpOwotfQotCi1ib29sIElPU0FwcGxpY2F0aW9uOjppc1dlYkJvb2ttYXJrc0QoKQot
ewotICAgIHN0YXRpYyBib29sIGlzV2ViQm9va21hcmtzRCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNF
cXVhbFRvKCJjb20uYXBwbGUud2ViYm9va21hcmtzZCIpOwotICAgIHJldHVybiBpc1dlYkJvb2tt
YXJrc0Q7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRHVtcFJlbmRlclRyZWUoKQotewot
ICAgIC8vIFdlIHVzZSBhIHByZWZpeCBtYXRjaCBpbnN0ZWFkIG9mIHN0cmljdCBlcXVhbGl0eSBz
aW5jZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2YgRHVtcFJlbmRlclRyZWUKLSAgICAvLyBtYXkgYmUg
bGF1bmNoZWQsIHdoZXJlIHRoZSBidW5kbGUgaWRlbnRpZmllciBvZiBlYWNoIGluc3RhbmNlIGhh
cyBhIHVuaXF1ZSBzdWZmaXguCi0gICAgc3RhdGljIGJvb2wgaXNEdW1wUmVuZGVyVHJlZSA9IGFw
cGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIik7IC8v
IGUuZy4gb3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZTAKLSAgICByZXR1cm4gaXNEdW1wUmVuZGVy
VHJlZTsKLX0KLQotYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTdG9yZSgpCi17Ci0gICAg
c3RhdGljIGJvb2wgaXNNb2JpbGVTdG9yZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJj
b20uYXBwbGUuTW9iaWxlU3RvcmUiKTsKLSAgICByZXR1cm4gaXNNb2JpbGVTdG9yZTsKLX0KLQot
Ym9vbCBJT1NBcHBsaWNhdGlvbjo6aXNXZWJBcHAoKQotewotICAgIHN0YXRpYyBib29sIGlzV2Vi
QXBwID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS53ZWJhcHAiKTsKLSAg
ICByZXR1cm4gaXNXZWJBcHA7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzT2tDdXBpZCgp
Ci17Ci0gICAgc3RhdGljIGJvb2wgaXNPa0N1cGlkID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFs
VG8oImNvbS5va2N1cGlkLmFwcCIpOwotICAgIHJldHVybiBpc09rQ3VwaWQ7Ci19Ci0KLWJvb2wg
SU9TQXBwbGljYXRpb246OmlzRmFjZWJvb2soKQotewotICAgIHN0YXRpYyBib29sIGlzRmFjZWJv
b2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmZhY2Vib29rLkZhY2Vib29rIik7
Ci0gICAgcmV0dXJuIGlzRmFjZWJvb2s7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRGFp
amlzZW5EaWN0aW9uYXJ5KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0RhaWppc2VuRGljdGlvbmFy
eSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJqcC5jby5zaG9nYWt1a2FuLmRhaWppc2Vu
MjAwOWkiKTsKLSAgICByZXR1cm4gaXNEYWlqaXNlbkRpY3Rpb25hcnk7Ci19Ci0KLWJvb2wgSU9T
QXBwbGljYXRpb246OmlzTkFTQUhEKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc05BU0FIRCA9IGFw
cGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJnb3YubmFzYS5OQVNBSEQiKTsKLSAgICByZXR1cm4g
aXNOQVNBSEQ7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzVGhlRWNvbm9taXN0T25JcGhv
bmUoKQotewotICAgIHN0YXRpYyBib29sIGlzVGhlRWNvbm9taXN0T25JcGhvbmUgPSBhcHBsaWNh
dGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmVjb25vbWlzdC5pcGhvbmUiKTsKLSAgICByZXR1cm4g
aXNUaGVFY29ub21pc3RPbklwaG9uZTsKLX0KLQotLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUg
Y2hhbmdlZCB3aGVuIHRoZSBXZWJQcm9jZXNzIGlzIGNoYW5nZWQgdG8gYW4gWFBDIHNlcnZpY2Uu
Ci1ib29sIElPU0FwcGxpY2F0aW9uOjppc1dlYlByb2Nlc3MoKQotewotICAgIHN0YXRpYyBib29s
IGlzV2ViUHJvY2VzcyA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJd
IGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVu
dCJdCi0gICAgICAgIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJd
IGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCJdCi0gICAgICAg
IHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0
cmluZzpAImNvbS5hcHBsZS5XZWJQcm9jZXNzIl07Ci0gICAgcmV0dXJuIGlzV2ViUHJvY2VzczsK
LX0KLQotYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNJQm9va3MoKQotewotICAgIHN0YXRpYyBib29s
IGlzSUJvb2tzID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQm9va3Mi
KTsKLSAgICByZXR1cm4gaXNJQm9va3M7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzVGhl
U2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkoKQotewotICAgIHN0YXRpYyBib29sIGlzVGhlU2Vj
cmV0U29jaWV0eUhpZGRlbk15c3RlcnkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29t
Lmc1ZS5zZWNyZXRzb2NpZXR5Iik7Ci0gICAgcmV0dXJuIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRl
bk15c3Rlcnk7Ci19Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVj
a3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrc0NvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyZTI4Yjc4ZTc4MTNiMWQ5Y2EwMmQ1N2M4
MmRlOTUzYmI3N2MyMjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbQpAQCAtMCwwICsxLDI2MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxG
b3VuZGF0aW9uL05TQnVuZGxlLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKK3N0YXRpYyBi
b29sIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZDsKKyNlbmRp
ZgorCisvLyBUaGUgYXBwbGljYXRpb24gYnVuZGxlIGlkZW50aWZpZXIgZ2V0cyBzZXQgdG8gdGhl
IFVJUHJvY2VzcyBidW5kbGUgaWRlbnRpZmllciBieSB0aGUgV2ViUHJvY2VzcyBhbmQKKy8vIHRo
ZSBOZXR3b3JraW5nIHVwb24gaW5pdGlhbGl6YXRpb24uIEl0IGlzIHVuc2V0IG90aGVyd2lzZS4K
K3N0YXRpYyBTdHJpbmcmIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBpZGVudGlmaWVyOworI2lmICFBU1NF
UlRfTVNHX0RJU0FCTEVECisgICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVX
YXNRdWVyaWVkID0gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitT
dHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkKK3sKKyAgICAvLyBUaGUgb3ZlcnJp
ZGUgb25seSBnZXRzIHNldCBpbiBXZWJLaXQyJ3MgV2ViUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nl
c3MuIElmIHVuc2V0LCB3ZSB1c2UgdGhlIG1haW4gYnVuZGxlIGlkZW50aWZpZXIuCisgICAgY29u
c3QgYXV0byYgaWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRl
KCk7CisgICAgQVNTRVJUKGlkZW50aWZpZXIuaXNOdWxsKCkgfHwgUnVuTG9vcDo6aXNNYWluKCkp
OworICAgIHJldHVybiBpZGVudGlmaWVyLmlzTnVsbCgpID8gU3RyaW5nKFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0pIDogaWRlbnRpZmllcjsKK30KKwordm9pZCBzZXRB
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVy
KQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBw
bGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBzaG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0
QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkiKTsKKyAgICBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXJPdmVycmlkZSgpID0gYnVuZGxlSWRlbnRpZmllcjsKK30KKworc3RhdGljIGJvb2wg
YXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVy
U3RyaW5nKQoreworICAgIHJldHVybiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSBi
dW5kbGVJZGVudGlmaWVyU3RyaW5nOworfQorCisjaWYgUExBVEZPUk0oTUFDKQorCitib29sIE1h
Y0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLlNhZmFyaSIpOworICAgIHJldHVy
biBpc1NhZmFyaTsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNBcHBsZU1haWwoKQorewor
ICAgIHN0YXRpYyBib29sIGlzQXBwbGVNYWlsID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
ImNvbS5hcHBsZS5tYWlsIik7CisgICAgcmV0dXJuIGlzQXBwbGVNYWlsOworfQorCitib29sIE1h
Y0FwcGxpY2F0aW9uOjppc0lCb29rcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNJQm9va3MgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlCb29rc1giKTsKKyAgICByZXR1
cm4gaXNJQm9va3M7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246OmlzSVR1bmVzKCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBpc0lUdW5lcyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20u
YXBwbGUuaVR1bmVzIik7CisgICAgcmV0dXJuIGlzSVR1bmVzOworfQorCitib29sIE1hY0FwcGxp
Y2F0aW9uOjppc01pY3Jvc29mdE1lc3NlbmdlcigpCit7CisgICAgc3RhdGljIGJvb2wgaXNNaWNy
b3NvZnRNZXNzZW5nZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29m
dC5NZXNzZW5nZXIiKTsKKyAgICByZXR1cm4gaXNNaWNyb3NvZnRNZXNzZW5nZXI7Cit9CisKK2Jv
b2wgTWFjQXBwbGljYXRpb246OmlzQWRvYmVJbnN0YWxsZXIoKQoreworICAgIHN0YXRpYyBib29s
IGlzQWRvYmVJbnN0YWxsZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFkb2Jl
Lkluc3RhbGxlcnMuU2V0dXAiKTsKKyAgICByZXR1cm4gaXNBZG9iZUluc3RhbGxlcjsKK30KKwor
Ym9vbCBNYWNBcHBsaWNhdGlvbjo6aXNBT0xJbnN0YW50TWVzc2VuZ2VyKCkKK3sKKyAgICBzdGF0
aWMgYm9vbCBpc0FPTEluc3RhbnRNZXNzZW5nZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxU
bygiY29tLmFvbC5haW0uZGVza3RvcCIpOworICAgIHJldHVybiBpc0FPTEluc3RhbnRNZXNzZW5n
ZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246OmlzTWljcm9zb2Z0TXlEYXkoKQoreworICAg
IHN0YXRpYyBib29sIGlzTWljcm9zb2Z0TXlEYXkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxU
bygiY29tLm1pY3Jvc29mdC5teWRheSIpOworICAgIHJldHVybiBpc01pY3Jvc29mdE15RGF5Owor
fQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc01pY3Jvc29mdE91dGxvb2soKQoreworICAgIHN0
YXRpYyBib29sIGlzTWljcm9zb2Z0T3V0bG9vayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRv
KCJjb20ubWljcm9zb2Z0Lk91dGxvb2siKTsKKyAgICByZXR1cm4gaXNNaWNyb3NvZnRPdXRsb29r
OworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc1F1aWNrZW5Fc3NlbnRpYWxzKCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBpc1F1aWNrZW5Fc3NlbnRpYWxzID0gYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oImNvbS5pbnR1aXQuUXVpY2tlbkVzc2VudGlhbHMiKTsKKyAgICByZXR1cm4gaXNRdWlj
a2VuRXNzZW50aWFsczsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNBcGVydHVyZSgpCit7
CisgICAgc3RhdGljIGJvb2wgaXNBcGVydHVyZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRv
KCJjb20uYXBwbGUuQXBlcnR1cmUiKTsKKyAgICByZXR1cm4gaXNBcGVydHVyZTsKK30KKworYm9v
bCBNYWNBcHBsaWNhdGlvbjo6aXNWZXJzaW9ucygpCit7CisgICAgc3RhdGljIGJvb2wgaXNWZXJz
aW9ucyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYmxhY2twaXhlbC52ZXJzaW9u
cyIpOworICAgIHJldHVybiBpc1ZlcnNpb25zOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjpp
c0hSQmxvY2soKQoreworICAgIHN0YXRpYyBib29sIGlzSFJCbG9jayA9IGFwcGxpY2F0aW9uQnVu
ZGxlSXNFcXVhbFRvKCJjb20uaHJibG9jay50YXguMjAxMCIpOworICAgIHJldHVybiBpc0hSQmxv
Y2s7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246OmlzSUFkUHJvZHVjZXIoKQoreworICAgIHN0
YXRpYyBib29sIGlzSUFkUHJvZHVjZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29t
LmFwcGxlLmlBZFByb2R1Y2VyIik7CisgICAgcmV0dXJuIGlzSUFkUHJvZHVjZXI7Cit9CisKK2Jv
b2wgTWFjQXBwbGljYXRpb246OmlzU29saWRTdGF0ZU5ldHdvcmtzRG93bmxvYWRlcigpCit7Cisg
ICAgc3RhdGljIGJvb2wgaXNTb2xpZFN0YXRlTmV0d29ya3NEb3dubG9hZGVyID0gYXBwbGljYXRp
b25CdW5kbGVJc0VxdWFsVG8oImNvbS5zb2xpZHN0YXRlbmV0d29ya3MuYXdraG9zdCIpOworICAg
IHJldHVybiBpc1NvbGlkU3RhdGVOZXR3b3Jrc0Rvd25sb2FkZXI7Cit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCisKKyNpZiBQTEFURk9STShJT1MpCisKK2Jvb2wgSU9TQXBwbGljYXRpb246
OmlzTW9iaWxlTWFpbCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNNb2JpbGVNYWlsID0gYXBwbGlj
YXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5tb2JpbGVtYWlsIik7CisgICAgcmV0dXJu
IGlzTW9iaWxlTWFpbDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmko
KQoreworICAgIHN0YXRpYyBib29sIGlzTW9iaWxlU2FmYXJpID0gYXBwbGljYXRpb25CdW5kbGVJ
c0VxdWFsVG8oImNvbS5hcHBsZS5tb2JpbGVzYWZhcmkiKTsKKyAgICByZXR1cm4gaXNNb2JpbGVT
YWZhcmk7Cit9CisKK2Jvb2wgSU9TQXBwbGljYXRpb246OmlzV2ViQm9va21hcmtzRCgpCit7Cisg
ICAgc3RhdGljIGJvb2wgaXNXZWJCb29rbWFya3NEID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFs
VG8oImNvbS5hcHBsZS53ZWJib29rbWFya3NkIik7CisgICAgcmV0dXJuIGlzV2ViQm9va21hcmtz
RDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNEdW1wUmVuZGVyVHJlZSgpCit7CisgICAg
Ly8gV2UgdXNlIGEgcHJlZml4IG1hdGNoIGluc3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5IHNpbmNl
IG11bHRpcGxlIGluc3RhbmNlcyBvZiBEdW1wUmVuZGVyVHJlZQorICAgIC8vIG1heSBiZSBsYXVu
Y2hlZCwgd2hlcmUgdGhlIGJ1bmRsZSBpZGVudGlmaWVyIG9mIGVhY2ggaW5zdGFuY2UgaGFzIGEg
dW5pcXVlIHN1ZmZpeC4KKyAgICBzdGF0aWMgYm9vbCBpc0R1bXBSZW5kZXJUcmVlID0gYXBwbGlj
YXRpb25CdW5kbGVJc0VxdWFsVG8oIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiKTsgLy8gZS5n
LiBvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVlMAorICAgIHJldHVybiBpc0R1bXBSZW5kZXJUcmVl
OworfQorCitib29sIElPU0FwcGxpY2F0aW9uOjppc01vYmlsZVN0b3JlKCkKK3sKKyAgICBzdGF0
aWMgYm9vbCBpc01vYmlsZVN0b3JlID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5h
cHBsZS5Nb2JpbGVTdG9yZSIpOworICAgIHJldHVybiBpc01vYmlsZVN0b3JlOworfQorCitib29s
IElPU0FwcGxpY2F0aW9uOjppc1dlYkFwcCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJBcHAg
PSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLndlYmFwcCIpOworICAgIHJl
dHVybiBpc1dlYkFwcDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNPa0N1cGlkKCkKK3sK
KyAgICBzdGF0aWMgYm9vbCBpc09rQ3VwaWQgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygi
Y29tLm9rY3VwaWQuYXBwIik7CisgICAgcmV0dXJuIGlzT2tDdXBpZDsKK30KKworYm9vbCBJT1NB
cHBsaWNhdGlvbjo6aXNGYWNlYm9vaygpCit7CisgICAgc3RhdGljIGJvb2wgaXNGYWNlYm9vayA9
IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uZmFjZWJvb2suRmFjZWJvb2siKTsKKyAg
ICByZXR1cm4gaXNGYWNlYm9vazsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNEYWlqaXNl
bkRpY3Rpb25hcnkoKQoreworICAgIHN0YXRpYyBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5ID0g
YXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImpwLmNvLnNob2dha3VrYW4uZGFpamlzZW4yMDA5
aSIpOworICAgIHJldHVybiBpc0RhaWppc2VuRGljdGlvbmFyeTsKK30KKworYm9vbCBJT1NBcHBs
aWNhdGlvbjo6aXNOQVNBSEQoKQoreworICAgIHN0YXRpYyBib29sIGlzTkFTQUhEID0gYXBwbGlj
YXRpb25CdW5kbGVJc0VxdWFsVG8oImdvdi5uYXNhLk5BU0FIRCIpOworICAgIHJldHVybiBpc05B
U0FIRDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNUaGVFY29ub21pc3RPbklwaG9uZSgp
Cit7CisgICAgc3RhdGljIGJvb2wgaXNUaGVFY29ub21pc3RPbklwaG9uZSA9IGFwcGxpY2F0aW9u
QnVuZGxlSXNFcXVhbFRvKCJjb20uZWNvbm9taXN0LmlwaG9uZSIpOworICAgIHJldHVybiBpc1Ro
ZUVjb25vbWlzdE9uSXBob25lOworfQorCisvLyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBjaGFu
Z2VkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMgY2hhbmdlZCB0byBhbiBYUEMgc2VydmljZS4KK2Jv
b2wgSU9TQXBwbGljYXRpb246OmlzV2ViUHJvY2VzcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNX
ZWJQcm9jZXNzID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNF
cXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0K
KyAgICAgICAgfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNF
cXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50Il0KKyAgICAgICAgfHwg
W1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5n
OkAiY29tLmFwcGxlLldlYlByb2Nlc3MiXTsKKyAgICByZXR1cm4gaXNXZWJQcm9jZXNzOworfQor
Citib29sIElPU0FwcGxpY2F0aW9uOjppc0lCb29rcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNJ
Qm9va3MgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlCb29rcyIpOwor
ICAgIHJldHVybiBpc0lCb29rczsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNUaGVTZWNy
ZXRTb2NpZXR5SGlkZGVuTXlzdGVyeSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNUaGVTZWNyZXRT
b2NpZXR5SGlkZGVuTXlzdGVyeSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uZzVl
LnNlY3JldHNvY2lldHkiKTsKKyAgICByZXR1cm4gaXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlz
dGVyeTsKK30KKworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCmluZGV4IDA2ZTIxZDU3NTE2NWQ3NWRjZmE2MWM0MjE2NTEzZmEwMDZk
YzM5YzUuLmU3N2FlNjJkNjcyOGNhNzI4MzNkODg0ZDQyZGFhOTE5MjA1MTRiZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIw
Miw2ICsyMDIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRp
Y2FsIGNyaXRpY2FsKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1By
b2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogewor
ICAgIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnVpUHJv
Y2Vzc1BJRCk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVy
cyk7CiAKICAgICBXVEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDdkNmRmM2Q1NzFiOTQ5
OTlkZTY0YjgzNmQxNDQzMzg1Nzk3ZWEwYWEuLmY0ZTMwNTM3NjM5NWM0NjFiNWYyM2MwNmUwOWJk
ZmUyMGYzZDNjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY2
LDYgKzY2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRl
c3RpbmdOZXR3b3JrU2Vzc2lvbjsKICAgICBlbmNvZGVyIDw8IGxvYWRUaHJvdHRsZUxhdGVuY3k7
CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsK
KyAgICBlbmNvZGVyIDw8IHVpUHJvY2Vzc1BJRDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBl
bmNvZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVu
ZGxlSWRlbnRpZmllcjsKQEAgLTE0OCw2ICsxNDksOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJv
YwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
dXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzUElEKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnBhcmVudFByb2Nlc3NOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZDM0Mjk3ODRjNmNkOTAxOWY2
MGRjNmEwMmIyOGI4YWFjZjViZmM1OS4uY2UxY2Y2YmYzODQ2ZjdiY2UyMjNkMDU3NWRhYjNhODJj
YjFlYTk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC03Niw2ICs3Niw3
IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU2Vjb25k
cyBsb2FkVGhyb3R0bGVMYXRlbmN5OwogCiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1Jl
Z2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHM7CisgICAgcGlkX3QgdWlQcm9jZXNzUElEIHsgMCB9
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5nIHBhcmVudFByb2Nlc3NOYW1lOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IDJiZGZmMDg5ZjBkOGVhZTA1MWRmYmY3ZDY4OTBkZGFhZDk5NTJjNmEu
Ljk4Njc1YWYxYmE4ZmVlNzQxYjM3ZTg0NWZhMTA3NTY2M2YyOTQzMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
QEAgLTk4LDggKzk4LDggQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlSWRlbnRp
ZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzUElEOwogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIGVuY29kZXIgPDwgcHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5j
b2RlciA8PCBhY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKICAgICBl
bmNvZGVyIDw8IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0OwogICAgIGVuY29kZXIgPDwgdWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOwpAQCAtMjQ4LDEwICsyNDgsOSBAQCBib29sIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdl
YlByb2Nlc3NDcmVhdAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nl
c3NCdW5kbGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucHJl
c2VudGVyQXBwbGljYXRpb25QaWQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy51aVByb2Nlc3NQSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhh
bmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAppbmRleCAxZmQwNmQzM2NhM2U1NTJjYWY3ZWUxODQxZGJhYjcyMDg2YmYxMDUwLi40
YTQ5MmQ5MTg1NDJjMTRkMDAxOWU1OTI0MGQ3ZjRlYzg2MjQzNTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEz
NSw5ICsxMzUsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAg
U3RyaW5nIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9uUGlkIHsgMCB9OworICAgIHBp
ZF90IHVpUHJvY2Vzc1BJRCB7IDAgfTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYkNv
cmU6Ok1hY2hTZW5kUmlnaHQgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQ7CiAKICAgICBTdHJp
bmcgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBmMzFhNDFhMjYx
ZmUyNTU4YzhhMjgzYjFhNDlmNDZkMzdmYTQ3NWI2Li41MTdjZGJkZDYxODFlZWEwMTA0ZjllNjMw
NzZjZDQxOGY0MTkyZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTc4LDggKzE3OCw2IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgcGFyYW1ldGVycy5w
cmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IGdldHBpZCgpOwotCiAjaWYgUExBVEZPUk0oTUFDKQog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzI4MTA5ZjE3NWZlYWEyMGM2NzAxYWE4NTRi
ZDc3MzQ3YjAzZTQ5Yy4uZGI0ODcwZDAzZWNmZjZiODk5ZTk4ODBkYzdhOTc5MWMwNWMzOWQyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjAs
NiArNDYwLDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5l
dHdvcmtQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5n
TmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKKyAgICBw
YXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCA9IGdldHBpZCgpOwogCiAgICAgLy8gQWRkIGFueSBwbGF0
Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1By
b2Nlc3MocGFyYW1ldGVycyk7CkBAIC03NTIsNiArNzUzLDggQEAgV2ViUHJvY2Vzc1Byb3h5JiBX
ZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlJiB3ZWJz
aXRlRGEKICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzID0gbV9j
b25maWd1cmF0aW9uLT5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcygpOwogI2VuZGlmCiAK
KyAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCA9IGdldHBpZCgpOworCiAgICAgLy8gQWRkIGFu
eSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IGY4OGY5ZDIxMGM1YWMwYTI5MGUzZGUx
YTk4MDAxMDIwZDA2MjMzMTcuLjFlYjA0MzcyODEyODBjY2QyMDE2ODI2N2I1YWZlNTRhOTY1ZmNk
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dl
YlBhZ2VNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIw
MTIsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg0LDYgKzg0LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsVmlldy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEl0
ZXJhdG9yLmg+CkBAIC05Myw4ICs5NCw4IEBACiAjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0jaW5jbHVkZSA8V2ViQ29y
ZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXli
YWNrVGFyZ2V0TW9jay5oPgorI2ltcG9ydCA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFj
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg+CiAjZW5kaWYK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDYsNyArMTA3LDcgQEAgdm9pZCBXZWJQ
YWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QqIG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCA9IFtbW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKIAogICAgIC8vIEdldCB0aGUgcGlkIGZv
ciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KLSAgICBwaWRfdCBwaWQgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpOworICAgIHBpZF90IHBpZCA9IFdlYkNv
cmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwogICAgIFdLQVhJbml0aWFsaXplRWxlbWVu
dFdpdGhQcmVzZW50ZXJQaWQobW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50LCBwaWQpOwogICAgIFtt
b2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgc2V0V2ViUGFnZTp0aGlzXTsKICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDcxODk5Zjg1MDM1OWIyOTA0MzFm
YzY0ZDBjNjhkYmY5MTZkZjg1MWEuLjFiZGNiYTZlNzk2Mzg4ZDVmNmQzODQyMTkyOWEwNjQyYjI0
YTMzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjUw
LDYgKzI1MCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7ICAgIAogICAgIEFTU0VSVCht
X3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAorICAgIFdlYkNvcmU6OnNldFByZXNlbnRpbmdBcHBsaWNh
dGlvblBJRChwYXJhbWV0ZXJzLnVpUHJvY2Vzc1BJRCk7CisKICNpZiBPUyhMSU5VWCkKICAgICBp
ZiAocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUuZmlsZURlc2NyaXB0b3Io
KSAhPSAtMSkKICAgICAgICAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5zZXRN
ZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZU1vbml0
b3JIYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOwpAQCAtMzg4LDcgKzM5MCw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuOwogICAg
IGlmIChwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKGF1ZGl0VG9rZW4p
KSB7CiAgICAgICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGF1ZGl0RGF0YSA9IGFkb3B0Q0YoQ0ZE
YXRhQ3JlYXRlKG51bGxwdHIsIChjb25zdCBVSW50OCopJmF1ZGl0VG9rZW4sIHNpemVvZihhdWRp
dFRva2VuKSkpOwotICAgICAgICBJbnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9u
KCkuc2V0UGFyZW50UHJvY2Vzc0luZm9ybWF0aW9uKHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKCks
IGF1ZGl0RGF0YSk7CisgICAgICAgIEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0
b24oKS5zZXRQYXJlbnRQcm9jZXNzSW5mb3JtYXRpb24oV2ViQ29yZTo6cHJlc2VudGluZ0FwcGxp
Y2F0aW9uUElEKCksIGF1ZGl0RGF0YSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggYWVjYmFkYjc2YmQ1OTY1YWFhN2E0ODdmNjYzNDFh
NGEwYTFjNWI5OC4uYjgyOGI3NTQ1YmJjYTNiMjBmYzkwNDA5NmNjZTBkZDkxMmMzNzNlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE0NywxMCArMTQ3LDYgQEAg
cHVibGljOgogCiAgICAgdWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIoUmVmUHRy
PFdlYkNvcmU6OlVzZXJHZXN0dXJlVG9rZW4+KTsKICAgICB2b2lkIHVzZXJHZXN0dXJlVG9rZW5E
ZXN0cm95ZWQoV2ViQ29yZTo6VXNlckdlc3R1cmVUb2tlbiYpOwotCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgcGlkX3QgcHJlc2VudGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBt
X3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOyB9Ci0jZW5kaWYKICAgICAKICAgICBjb25zdCBUZXh0
Q2hlY2tlclN0YXRlJiB0ZXh0Q2hlY2tlclN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q2hl
Y2tlclN0YXRlOyB9CiAgICAgdm9pZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVj
a2VyU3RhdGUmKTsKQEAgLTM2OCw3ICszNjQsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgV2ViQ29yZTo6TWFjaFNlbmRSaWdodCBtX2NvbXBvc2l0aW5nUmVuZGVyU2Vy
dmVyUG9ydDsKLSAgICBwaWRfdCBtX3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogI2VuZGlmCiAK
ICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4
IDRkZjhlYzQzN2UzN2Q2MWFkZDg2MTMzN2VmM2QyNTA3NDZmNmY0YzAuLmUyNGU4YzViOGEyMDU2
MjVkZTdmYzBiMjdiZWU4ZDU2NDEzYmE3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBACiAjZW5k
aWYKIAogI2lmIFVTRShPU19TVEFURSkKLSNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+Cisj
aW1wb3J0IDxvcy9zdGF0ZV9wcml2YXRlLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykK
QEAgLTE0OSw3ICsxNDksNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcgogI2VuZGlmCiAKICAg
ICBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydCA9IFdURk1vdmUocGFyYW1ldGVycy5hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7Ci0gICAgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9
IHBhcmFtZXRlcnMucHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAKICAgICBXZWJDb3JlOjpyZWdp
c3Rlck1lbW9yeVJlbGVhc2VOb3RpZnlDYWxsYmFja3MoKTsKICAgICBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OlJlbGllZkxvZ2dlcjo6c2V0TG9nZ2luZ0VuYWJsZWQocGFyYW1ldGVycy5zaG91bGRF
bmFibGVNZW1vcnlQcmVzc3VyZVJlbGllZkxvZ2dpbmcpOwpAQCAtMTc1LDcgKzE3NCw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyCiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGNhbkxv
YWRBVlN5c3RlbUNvbnRyb2xsZXJfUElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20oKSkg
ewotICAgICAgICBwaWRfdCBwaWQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJB
cHBsaWNhdGlvblBpZCgpOworICAgICAgICBwaWRfdCBwaWQgPSBXZWJDb3JlOjpwcmVzZW50aW5n
QXBwbGljYXRpb25QSUQoKTsKICAgICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgICAg
IFtbZ2V0QVZTeXN0ZW1Db250cm9sbGVyQ2xhc3MoKSBzaGFyZWRBVlN5c3RlbUNvbnRyb2xsZXJd
IHNldEF0dHJpYnV0ZTpAKHBpZCkgZm9yS2V5OkFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVy
aXRBcHBsaWNhdGlvblN0YXRlRnJvbSBlcnJvcjomZXJyb3JdOwogICAgICAgICBpZiAoZXJyb3Ip
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310216</attachid>
            <date>2017-05-15 21:02:43 -0700</date>
            <delta_ts>2017-05-15 23:07:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172133-20170515210242.patch</filename>
            <type>text/plain</type>
            <size>45694</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QwNzlkMzAxZGMzOGU2
Yjk4NjcyZjZlYzc0YmQ5ZDkzM2VkZmQ5My4uOTg1NTMzNmM3ZmRmY2NiMzk1YzMwYzVhYjMyOTZk
OTM3NjUzN2RiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA1LTE1ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBhcHBsaWNhdGlv
biBQSUQgYXZhaWxhYmxlIHRvIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MjEzMworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMg
S2xpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU1h
Yy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSURPdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOiBSZXR1cm5zIHRoZSBvdmVy
cmlkZSBQSUQgaWYgc2V0LCBvciBnZXRDdXJyZW50UHJvY2Vzc0lEKCkKKyAgICAgICAgb3RoZXJ3
aXNlLgorICAgICAgICAoV2ViQ29yZTo6c2V0UHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbTogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbS4K
KwogMjAxNy0wNS0xNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TIFdLMV0gRG8gbm90IHRyeSB0byBkaXNwYXRjaCBtZXNzYWdlcyB0byBzdWJmcmFt
ZXMgaWYgdGhlaXIgZG9jdW1lbnRzIGhhdmUgbm90IGJlZW4gY29uc3RydWN0ZWQgeWV0LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDJlYTQ3NjQxZTM5ZWI3NTlkOTZiM2FjNDcyN2E3MGYwN2JiMmFlNjYuLmMyOTI2
NGIwYTY0YmZkMGE2Mjk5NTY2MTZhOWE3MmUzZDA3MmE4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MCBAQAorMjAxNy0wNS0xNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSB0aGUgYXBwbGljYXRpb24gUElEIGF2YWlsYWJsZSB0byBXZWJDb3JlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMzMKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgIEFkZGVkIHVpUHJvY2Vz
c1BJRCB0byBXZWIgYW5kIE5ldHdvcmtpbmcgcHJvY2VzcyBjcmVhdGlvbiBwYXJhbWV0ZXJzLiBU
aGUgVUkgcHJvY2VzcworICAgICAgICBpbml0aWFsaXplcyB0aGVzZSB0byBnZXRwaWQoKSwgYW5k
IHRoZSBjaGlsZCBwcm9jZXNzZXMgY2FsbCBXZWJDb3JlOjpzZXRQcmVzZW50aW5nQXBwbGljYXRp
b25QSUQoKQorICAgICAgICBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgorCisgICAgICAgIFRoaXMg
cmVwbGFjZXMgcHJlc2VudGVyQXBwbGljYXRpb25QaWQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
ZW5zdXJlTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6
Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJlc2VudGVy
QXBwbGljYXRpb25QaWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAxNy0wNS0xNSAgR3dhbmcgWW9vbiBId2FuZyAgPHlv
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIGRlYnVnIGJ1aWxkIGZp
eApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjEwNzc4YWZiMTA5YTQ1MmUwOTY3OGMzMWVjYjkz
ZTUxZTVjYWYyLi4xYTg2NDcyMzFhMzU4ZDJmODEwN2Q1OGU3YjJjNzM4ZGQ4ZmE1MzBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMjE3NCw2ICsyMTc0LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogICAgIHBsYXRmb3JtL1BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwCiAgICAgcGxhdGZv
cm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAogICAgIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0
ZW5lci5jcHAKKyAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAg
cGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3Iu
Y3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UK
aW5kZXggMmEzOTM0NzcwNzQyN2RmNjY2NTEyMWMzNWEwOTUzNGUwN2NjNzc1OC4uMmMyZTRjY2Y5
OGMxZWI0OGU2MjEwZDE1NzE2ODQyMGQwNmVkMjc4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21h
a2UKQEAgLTMwOCw3ICszMDgsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIAogICAg
IHBsYXRmb3JtL0NQVU1vbml0b3IuY3BwCiAgICAgcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5j
cHAKLSAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0KICAgICBwbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAKIAogICAgIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvU2Vzc2lvbi5j
cHAKQEAgLTM0Nyw2ICszNDYsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBw
bGF0Zm9ybS9jb2NvYS9NYWNoU2VuZFJpZ2h0LmNwcAogICAgIHBsYXRmb3JtL2NvY29hL05ldHdv
cmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCiAgICAgcGxhdGZvcm0vY29jb2EvUGFyZW50YWxD
b250cm9sc0NvbnRlbnRGaWx0ZXIubW0KKyAgICBwbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3NDb2NvYS5tbQogICAgIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIu
bW0KICAgICBwbGF0Zm9ybS9jb2NvYS9TY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbQogICAgIHBs
YXRmb3JtL2NvY29hL1NlYXJjaFBvcHVwTWVudUNvY29hLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTE3OGJjYjE5MWMyM2Fj
OTY0Njg4Y2JiMjQyMjczOWU4N2M2N2U2YS4uY2JlMzE1YzdiMGQyYTRiZmY0YTBiODBhZjcwOWQy
OGRmNDJiZmQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTkzNyw3ICsxOTM3LDcgQEAKIAkJNDYzRUI2MjMxQjg3ODlFMDAw
OTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2M0VCNjIxMUI4Nzg5Q0IwMDk2RUQ1MSAvKiBUYWdDb2xsZWN0aW9u
LmggKi87IH07CiAJCTQ2NTMwN0QwMURCNkVFNDgwMEU0MTM3QyAvKiBKU1VJRXZlbnRJbml0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UwNDVFRjFE
QUExMDRGMDBCMEQ4QjkgLyogSlNVSUV2ZW50SW5pdC5oICovOyB9OwogCQk0NjUzMDdEMTFEQjZF
RTRBMDBFNDEzN0MgLyogSlNVSUV2ZW50SW5pdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0UwNDVFRTFEQUExMDRGMDBCMEQ4QjkgLyogSlNVSUV2
ZW50SW5pdC5jcHAgKi87IH07Ci0JCTQ2NUE4RTc5MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1l
QXBwbGljYXRpb25DaGVja3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLm1tICovOyB9OworCQk0NjVBOEU3OTFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzQ29jb2EubW0gKi87IH07CiAJCTQ2NzFFMDY1MUQ2N0E1OTYwMEM2QjQ5NyAvKiBD
YW52YXNQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ2NzFFMDYzMUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmNwcCAqLzsgfTsKIAkJ
NDY3MUUwNjYxRDY3QTU5NjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAv
KiBDYW52YXNQYXRoLmggKi87IH07CiAJCTQ2NzMwMjAyMUM0RUZFNzgwMEJDQjM1NyAvKiBJZ25v
cmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NzMwMjAxMUM0RUZFNjYwMEJDQjM1NyAvKiBJ
Z25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaCAqLzsgfTsKQEAgLTQyNjYs
NiArNDI2Niw3IEBACiAJCUExODVCNDJBMUU4MjExQTEwMERDOTExOCAvKiBQcmV2aWV3TG9hZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg1QjQy
ODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRlci5oICovOyB9OwogCQlBMTg4OTBBRTFB
QTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg4OTBBQzFBQTEzRjI1
MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCUEx
ODg5MEFGMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4ODkwQUQx
QUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggKi87IH07
CisJCUExOEY3QTM2MUVDQTczNjQwMDU5RTFFMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4RjdB
MzUxRUNBNzM2NDAwNTlFMUUxIC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi87IH07
CiAJCUExOUFFQTIxMUFBQTgwODYwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOUFF
QTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLzsg
fTsKIAkJQTE5QUVBMjIxQUFBODA4QTAwQjUyQjI1IC8qIEpTTW9ja0NvbnRlbnRGaWx0ZXJTZXR0
aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNw
cCAqLzsgfTsKIAkJQTE5RDkzNDYxQTlGRUM3MjAwQjQ2QzI0IC8qIE5FRmlsdGVyU291cmNlU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlEOTM0
NDFBOUZFQzcyMDBCNDZDMjQgLyogTkVGaWx0ZXJTb3VyY2VTUEkuaCAqLzsgfTsKQEAgLTk2MDMs
NyArOTYwNCw3IEBACiAJCTQ2MzQ1OTJCMUFDMjI3MTAwMEVDQjcxQyAvKiBQb3dlck9ic2VydmVy
TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvd2VyT2JzZXJ2
ZXJNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNFQjYyMDFCODc4OUNC
MDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWdDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW50aW1lQXBwbGlj
YXRpb25DaGVja3NDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUw
NjMxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ2FudmFzUGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2NzFFMDY0MUQ2N0E1N0IwMEM2QjQ5NyAvKiBDYW52YXNQYXRoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc1BhdGguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5n
VW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNDU4LDYgKzEyNDU5LDcgQEAKIAkJQTE4NUI0MjgxRTgyMTFB
MTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHJldmlld0xvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTg4
OTBBQzFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE4ODkwQUQx
QUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExOEY3QTM1MUVDQTczNjQwMDU5RTFF
MSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVu
dGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTE5QUVBMUMxQUFBN0M0OTAwQjUyQjI1IC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMTlBRUExRDFBQUE4MDZFMDBCNTJCMjUgLyogSlNNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExOUFFQTFFMUFBQTgwNkUwMEI1MkIyNSAvKiBKU01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTA1NCw2ICsyMTA1Niw3
IEBACiAJCQkJQTE4ODkwQUQxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHNDb250
ZW50RmlsdGVyLmggKi8sCiAJCQkJQTE4ODkwQUMxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFs
Q29udHJvbHNDb250ZW50RmlsdGVyLm1tICovLAogCQkJCTUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1
MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLywKKwkJCQk0NjVBOEU3ODFDOEEyNENFMDBFN0QzRTQgLyog
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EubW0gKi8sCiAJCQkJMUFBODRGMDMxNDNCQTdC
RDAwNTFEMTUzIC8qIFNjcm9sbENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQUE4NEYwMjE0M0JBN0JE
MDA1MUQxNTMgLyogU2Nyb2xsQ29udHJvbGxlci5tbSAqLywKIAkJCQlGNDc4NzU1MjE5OTgzQUZG
MDAyNEEyODcgLyogU2Nyb2xsU25hcEFuaW1hdG9yU3RhdGUuaCAqLywKQEAgLTIzOTc4LDggKzIz
OTgxLDggQEAKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3ku
aCAqLywKIAkJCQlDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmNwcCAqLywKIAkJCQlDREZDMzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmggKi8sCisJCQkJQTE4RjdBMzUxRUNBNzM2NDAwNTlFMUUxIC8qIFJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8q
IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAotCQkJCTQ2NUE4RTc4MUM4QTI0Q0UwMEU3
RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MubW0gKi8sCiAJCQkJNTE2MkM3RjIxMUY3
N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk1MTYyQzdGMzExRjc3
RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKIAkJCQk1MTQxMjk4RjFDNjAxQTg5
MDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oICovLApAQCAtMzI4NjcsNiArMzI4NzAsNyBAQAogCQkJ
CTdFRTY4NDZCMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVycm9yQ0YuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTE0Qzc2NTAwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlRXJyb3JNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY3ODBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTE4RjdBMzYxRUNBNzM2NDAwNTlFMUUx
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3RUU2
ODQ2QzEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyNkZBRTRDQzE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNkMxNUNGNjE4NTdF
MTVEMDBGMTVDMDMgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhP
cGVyYXRpb25RdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMyOTMyLDcgKzMyOTM2LDcgQEAK
IAkJCQkxQTU2OUQyMDBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE1NjlEMjIwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfb2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNTY5RDI0MEQ3RTJCODIwMDdDMzk4MyAvKiBydW50
aW1lX3Jvb3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDY1QThFNzkxQzhBMjRDRTAwRTdEM0U0
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQ2NUE4
RTc5MUM4QTI0Q0UwMEU3RDNFNCAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDNTIyMjlEMUUxREFFNDcwMDJDQjhGNyAvKiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERDcwODk2MTgzNTlGNkYwMDJC
M0RDNiAvKiBTYW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFOTExQ0EwRUY4NkQ0
NzAwOUQwQ0FGIC8qIFNjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmZlNDJhOWYzYTE5ZTViMGI0YTAxYjNjOGRhZGYyNzY2ZTI5N2Q0
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
I2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAorc3RhdGljIGJv
b2wgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElET3ZlcnJpZGVXYXNRdWVyaWVkOworI2VuZGlmCisK
K3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGludD4mIHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRE92ZXJy
aWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxpbnQ+PiBw
aWQ7CisjaWYgIUFTU0VSVF9NU0dfRElTQUJMRUQKKyAgICBwcmVzZW50aW5nQXBwbGljYXRpb25Q
SURPdmVycmlkZVdhc1F1ZXJpZWQgPSB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIHBpZDsKK30K
KworaW50IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpCit7CisgICAgY29uc3QgYXV0byYgcGlk
ID0gcHJlc2VudGluZ0FwcGxpY2F0aW9uUElET3ZlcnJpZGUoKTsKKyAgICBBU1NFUlQoIXBpZCB8
fCBSdW5Mb29wOjppc01haW4oKSk7CisgICAgcmV0dXJuIHBpZCA/IHBpZC52YWx1ZSgpIDogZ2V0
Q3VycmVudFByb2Nlc3NJRCgpOworfQorCit2b2lkIHNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RChpbnQgcGlkKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghcHJlc2VudGluZ0FwcGxpY2F0aW9uUElET3ZlcnJpZGVXYXNRdWVyaWVk
LCAicHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3Jl
IHNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpIik7CisgICAgcHJlc2VudGluZ0FwcGxpY2F0
aW9uUElET3ZlcnJpZGUoKSA9IHBpZDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApp
bmRleCAwZTQyYjBjNTIxNTk0ZTllYzYyMTdmZTZjZjRhODg4MGJhMDJkZTQwLi5hYjg4ZTY3NDRk
MGU4ZWM0ZjNmZTQ4NDJiMjk1ZTYzMTI2ZmQ0MTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxNCArMjMsMTcg
QEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSdW50aW1lQXBwbGljYXRpb25DaGVja3Nf
aAotI2RlZmluZSBSdW50aW1lQXBwbGljYXRpb25DaGVja3NfaAorI3ByYWdtYSBvbmNlCiAKLSNp
ZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK1dFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKGludCk7CitXRUJDT1JFX0VYUE9SVCBpbnQgcHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKwogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiBTdHJpbmcgYXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyKCk7CiAKQEAgLTgxLDggKzg0LDYgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc1RoZVNlY3JldFNvY2lldHlIaWRkZW5NeXN0ZXJ5KCk7CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1MpCiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKQogCi0jZW5kaWYgLy8gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzX2gKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGVjYTg3MGFl
NGNjZmU5OGFiMTA5YWUxZTBiMTlmMjg3MjMxMDQzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MubW0KKysrIC9kZXYvbnVsbApAQCAtMSwyNTggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmgiCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vTlNCdW5kbGUuaD4KLSNpbXBvcnQg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KLSNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiAhQVNT
RVJUX01TR19ESVNBQkxFRAotc3RhdGljIGJvb2wgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
T3ZlcnJpZGVXYXNRdWVyaWVkID0gZmFsc2U7Ci0jZW5kaWYKLQotLy8gVGhlIGFwcGxpY2F0aW9u
IGJ1bmRsZSBpZGVudGlmaWVyIGdldHMgc2V0IHRvIHRoZSBVSVByb2Nlc3MgYnVuZGxlIGlkZW50
aWZpZXIgYnkgdGhlIFdlYlByb2Nlc3MgYW5kCi0vLyB0aGUgTmV0d29ya2luZyB1cG9uIGluaXRp
YWxpemF0aW9uLiBJdCBpcyB1bnNldCBvdGhlcndpc2UuCi1zdGF0aWMgU3RyaW5nJiBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gaWRlbnRpZmllcjsKLSNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAotICAgIGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCA9IHRydWU7Ci0jZW5k
aWYKLSAgICByZXR1cm4gaWRlbnRpZmllcjsKLX0KLQotU3RyaW5nIGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllcigpCi17Ci0gICAgLy8gVGhlIG92ZXJyaWRlIG9ubHkgZ2V0cyBzZXQgaW4gV2Vi
S2l0MidzIFdlYlByb2Nlc3MgYW5kIE5ldHdvcmtQcm9jZXNzLiBJZiB1bnNldCwgd2UgdXNlIHRo
ZSBtYWluIGJ1bmRsZSBpZGVudGlmaWVyLgotICAgIGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpOwotICAgIEFTU0VSVChpZGVudGlm
aWVyLmlzTnVsbCgpIHx8IFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICByZXR1cm4gaWRlbnRpZmll
ci5pc051bGwoKSA/IFN0cmluZyhbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZp
ZXJdKSA6IGlkZW50aWZpZXI7Ci19Ci0KLXZvaWQgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlm
aWVyKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIWFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllck92ZXJyaWRlV2FzUXVlcmllZCwgImFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRv
KCkgc2hvdWxkIG5vdCBiZSBjYWxsZWQgYmVmb3JlIHNldEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllcigpIik7Ci0gICAgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGUoKSA9IGJ1
bmRsZUlkZW50aWZpZXI7Ci19Ci0KLXN0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllclN0cmluZykKLXsKLSAgICByZXR1cm4g
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKCkgPT0gYnVuZGxlSWRlbnRpZmllclN0cmluZzsK
LX0KLQotI2lmIFBMQVRGT1JNKE1BQykKLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNTYWZhcmko
KQotewotICAgIHN0YXRpYyBib29sIGlzU2FmYXJpID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFs
VG8oImNvbS5hcHBsZS5TYWZhcmkiKTsKLSAgICByZXR1cm4gaXNTYWZhcmk7Ci19Ci0KLWJvb2wg
TWFjQXBwbGljYXRpb246OmlzQXBwbGVNYWlsKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0FwcGxl
TWFpbCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUubWFpbCIpOwotICAg
IHJldHVybiBpc0FwcGxlTWFpbDsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNJQm9va3Mo
KQotewotICAgIHN0YXRpYyBib29sIGlzSUJvb2tzID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFs
VG8oImNvbS5hcHBsZS5pQm9va3NYIik7Ci0gICAgcmV0dXJuIGlzSUJvb2tzOwotfQotCi1ib29s
IE1hY0FwcGxpY2F0aW9uOjppc0lUdW5lcygpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNJVHVuZXMg
PSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlUdW5lcyIpOwotICAgIHJl
dHVybiBpc0lUdW5lczsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNNaWNyb3NvZnRNZXNz
ZW5nZXIoKQotewotICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0TWVzc2VuZ2VyID0gYXBwbGlj
YXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5taWNyb3NvZnQuTWVzc2VuZ2VyIik7Ci0gICAgcmV0
dXJuIGlzTWljcm9zb2Z0TWVzc2VuZ2VyOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9uOjppc0Fk
b2JlSW5zdGFsbGVyKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0Fkb2JlSW5zdGFsbGVyID0gYXBw
bGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hZG9iZS5JbnN0YWxsZXJzLlNldHVwIik7Ci0g
ICAgcmV0dXJuIGlzQWRvYmVJbnN0YWxsZXI7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246Omlz
QU9MSW5zdGFudE1lc3NlbmdlcigpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNBT0xJbnN0YW50TWVz
c2VuZ2VyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hb2wuYWltLmRlc2t0b3Ai
KTsKLSAgICByZXR1cm4gaXNBT0xJbnN0YW50TWVzc2VuZ2VyOwotfQotCi1ib29sIE1hY0FwcGxp
Y2F0aW9uOjppc01pY3Jvc29mdE15RGF5KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc01pY3Jvc29m
dE15RGF5ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5taWNyb3NvZnQubXlkYXki
KTsKLSAgICByZXR1cm4gaXNNaWNyb3NvZnRNeURheTsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlv
bjo6aXNNaWNyb3NvZnRPdXRsb29rKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc01pY3Jvc29mdE91
dGxvb2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5PdXRsb29r
Iik7Ci0gICAgcmV0dXJuIGlzTWljcm9zb2Z0T3V0bG9vazsKLX0KLQotYm9vbCBNYWNBcHBsaWNh
dGlvbjo6aXNRdWlja2VuRXNzZW50aWFscygpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNRdWlja2Vu
RXNzZW50aWFscyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uaW50dWl0LlF1aWNr
ZW5Fc3NlbnRpYWxzIik7Ci0gICAgcmV0dXJuIGlzUXVpY2tlbkVzc2VudGlhbHM7Ci19Ci0KLWJv
b2wgTWFjQXBwbGljYXRpb246OmlzQXBlcnR1cmUoKQotewotICAgIHN0YXRpYyBib29sIGlzQXBl
cnR1cmUgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLkFwZXJ0dXJlIik7
Ci0gICAgcmV0dXJuIGlzQXBlcnR1cmU7Ci19Ci0KLWJvb2wgTWFjQXBwbGljYXRpb246OmlzVmVy
c2lvbnMoKQotewotICAgIHN0YXRpYyBib29sIGlzVmVyc2lvbnMgPSBhcHBsaWNhdGlvbkJ1bmRs
ZUlzRXF1YWxUbygiY29tLmJsYWNrcGl4ZWwudmVyc2lvbnMiKTsKLSAgICByZXR1cm4gaXNWZXJz
aW9uczsKLX0KLQotYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNIUkJsb2NrKCkKLXsKLSAgICBzdGF0
aWMgYm9vbCBpc0hSQmxvY2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmhyYmxv
Y2sudGF4LjIwMTAiKTsKLSAgICByZXR1cm4gaXNIUkJsb2NrOwotfQotCi1ib29sIE1hY0FwcGxp
Y2F0aW9uOjppc0lBZFByb2R1Y2VyKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBpc0lBZFByb2R1Y2Vy
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQWRQcm9kdWNlciIpOwot
ICAgIHJldHVybiBpc0lBZFByb2R1Y2VyOwotfQotCi1ib29sIE1hY0FwcGxpY2F0aW9uOjppc1Nv
bGlkU3RhdGVOZXR3b3Jrc0Rvd25sb2FkZXIoKQotewotICAgIHN0YXRpYyBib29sIGlzU29saWRT
dGF0ZU5ldHdvcmtzRG93bmxvYWRlciA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20u
c29saWRzdGF0ZW5ldHdvcmtzLmF3a2hvc3QiKTsKLSAgICByZXR1cm4gaXNTb2xpZFN0YXRlTmV0
d29ya3NEb3dubG9hZGVyOwotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCi0jaWYgUExB
VEZPUk0oSU9TKQotCi1ib29sIElPU0FwcGxpY2F0aW9uOjppc01vYmlsZU1haWwoKQotewotICAg
IHN0YXRpYyBib29sIGlzTW9iaWxlTWFpbCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJj
b20uYXBwbGUubW9iaWxlbWFpbCIpOwotICAgIHJldHVybiBpc01vYmlsZU1haWw7Ci19Ci0KLWJv
b2wgSU9TQXBwbGljYXRpb246OmlzTW9iaWxlU2FmYXJpKCkKLXsKLSAgICBzdGF0aWMgYm9vbCBp
c01vYmlsZVNhZmFyaSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUubW9i
aWxlc2FmYXJpIik7Ci0gICAgcmV0dXJuIGlzTW9iaWxlU2FmYXJpOwotfQotCi1ib29sIElPU0Fw
cGxpY2F0aW9uOjppc1dlYkJvb2ttYXJrc0QoKQotewotICAgIHN0YXRpYyBib29sIGlzV2ViQm9v
a21hcmtzRCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUud2ViYm9va21h
cmtzZCIpOwotICAgIHJldHVybiBpc1dlYkJvb2ttYXJrc0Q7Ci19Ci0KLWJvb2wgSU9TQXBwbGlj
YXRpb246OmlzRHVtcFJlbmRlclRyZWUoKQotewotICAgIC8vIFdlIHVzZSBhIHByZWZpeCBtYXRj
aCBpbnN0ZWFkIG9mIHN0cmljdCBlcXVhbGl0eSBzaW5jZSBtdWx0aXBsZSBpbnN0YW5jZXMgb2Yg
RHVtcFJlbmRlclRyZWUKLSAgICAvLyBtYXkgYmUgbGF1bmNoZWQsIHdoZXJlIHRoZSBidW5kbGUg
aWRlbnRpZmllciBvZiBlYWNoIGluc3RhbmNlIGhhcyBhIHVuaXF1ZSBzdWZmaXguCi0gICAgc3Rh
dGljIGJvb2wgaXNEdW1wUmVuZGVyVHJlZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJv
cmcud2Via2l0LkR1bXBSZW5kZXJUcmVlIik7IC8vIGUuZy4gb3JnLndlYmtpdC5EdW1wUmVuZGVy
VHJlZTAKLSAgICByZXR1cm4gaXNEdW1wUmVuZGVyVHJlZTsKLX0KLQotYm9vbCBJT1NBcHBsaWNh
dGlvbjo6aXNNb2JpbGVTdG9yZSgpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNNb2JpbGVTdG9yZSA9
IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuTW9iaWxlU3RvcmUiKTsKLSAg
ICByZXR1cm4gaXNNb2JpbGVTdG9yZTsKLX0KLQotYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNXZWJB
cHAoKQotewotICAgIHN0YXRpYyBib29sIGlzV2ViQXBwID0gYXBwbGljYXRpb25CdW5kbGVJc0Vx
dWFsVG8oImNvbS5hcHBsZS53ZWJhcHAiKTsKLSAgICByZXR1cm4gaXNXZWJBcHA7Ci19Ci0KLWJv
b2wgSU9TQXBwbGljYXRpb246OmlzT2tDdXBpZCgpCi17Ci0gICAgc3RhdGljIGJvb2wgaXNPa0N1
cGlkID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5va2N1cGlkLmFwcCIpOwotICAg
IHJldHVybiBpc09rQ3VwaWQ7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRmFjZWJvb2so
KQotewotICAgIHN0YXRpYyBib29sIGlzRmFjZWJvb2sgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1
YWxUbygiY29tLmZhY2Vib29rLkZhY2Vib29rIik7Ci0gICAgcmV0dXJuIGlzRmFjZWJvb2s7Ci19
Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzRGFpamlzZW5EaWN0aW9uYXJ5KCkKLXsKLSAgICBz
dGF0aWMgYm9vbCBpc0RhaWppc2VuRGljdGlvbmFyeSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVh
bFRvKCJqcC5jby5zaG9nYWt1a2FuLmRhaWppc2VuMjAwOWkiKTsKLSAgICByZXR1cm4gaXNEYWlq
aXNlbkRpY3Rpb25hcnk7Ci19Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzTkFTQUhEKCkKLXsK
LSAgICBzdGF0aWMgYm9vbCBpc05BU0FIRCA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJn
b3YubmFzYS5OQVNBSEQiKTsKLSAgICByZXR1cm4gaXNOQVNBSEQ7Ci19Ci0KLWJvb2wgSU9TQXBw
bGljYXRpb246OmlzVGhlRWNvbm9taXN0T25JcGhvbmUoKQotewotICAgIHN0YXRpYyBib29sIGlz
VGhlRWNvbm9taXN0T25JcGhvbmUgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmVj
b25vbWlzdC5pcGhvbmUiKTsKLSAgICByZXR1cm4gaXNUaGVFY29ub21pc3RPbklwaG9uZTsKLX0K
LQotLy8gRklYTUU6IHRoaXMgbmVlZHMgdG8gYmUgY2hhbmdlZCB3aGVuIHRoZSBXZWJQcm9jZXNz
IGlzIGNoYW5nZWQgdG8gYW4gWFBDIHNlcnZpY2UuCi1ib29sIElPU0FwcGxpY2F0aW9uOjppc1dl
YlByb2Nlc3MoKQotewotICAgIHN0YXRpYyBib29sIGlzV2ViUHJvY2VzcyA9IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudCJdCi0gICAgICAgIHx8IFtbW05TQnVuZGxl
IG1haW5CdW5kbGVdIGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBs
ZS5XZWJLaXQuV2ViQ29udGVudCJdCi0gICAgICAgIHx8IFtbW05TQnVuZGxlIG1haW5CdW5kbGVd
IGJ1bmRsZUlkZW50aWZpZXJdIGlzRXF1YWxUb1N0cmluZzpAImNvbS5hcHBsZS5XZWJQcm9jZXNz
Il07Ci0gICAgcmV0dXJuIGlzV2ViUHJvY2VzczsKLX0KLQotYm9vbCBJT1NBcHBsaWNhdGlvbjo6
aXNJQm9va3MoKQotewotICAgIHN0YXRpYyBib29sIGlzSUJvb2tzID0gYXBwbGljYXRpb25CdW5k
bGVJc0VxdWFsVG8oImNvbS5hcHBsZS5pQm9va3MiKTsKLSAgICByZXR1cm4gaXNJQm9va3M7Ci19
Ci0KLWJvb2wgSU9TQXBwbGljYXRpb246OmlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3Rlcnko
KQotewotICAgIHN0YXRpYyBib29sIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3RlcnkgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmc1ZS5zZWNyZXRzb2NpZXR5Iik7Ci0gICAg
cmV0dXJuIGlzVGhlU2VjcmV0U29jaWV0eUhpZGRlbk15c3Rlcnk7Ci19Ci0KLSNlbmRpZgotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQyZTI4Yjc4ZTc4MTNiMWQ5Y2EwMmQ1N2M4MmRlOTUzYmI3N2MyMjUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25D
aGVja3NDb2NvYS5tbQpAQCAtMCwwICsxLDI2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCisjaW1wb3J0IDxGb3VuZGF0aW9uL05TQnVuZGxlLmg+CisjaW1w
b3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CisjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisjaWYg
IUFTU0VSVF9NU0dfRElTQUJMRUQKK3N0YXRpYyBib29sIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
Zmllck92ZXJyaWRlV2FzUXVlcmllZDsKKyNlbmRpZgorCisvLyBUaGUgYXBwbGljYXRpb24gYnVu
ZGxlIGlkZW50aWZpZXIgZ2V0cyBzZXQgdG8gdGhlIFVJUHJvY2VzcyBidW5kbGUgaWRlbnRpZmll
ciBieSB0aGUgV2ViUHJvY2VzcyBhbmQKKy8vIHRoZSBOZXR3b3JraW5nIHVwb24gaW5pdGlhbGl6
YXRpb24uIEl0IGlzIHVuc2V0IG90aGVyd2lzZS4KK3N0YXRpYyBTdHJpbmcmIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBpZGVudGlmaWVyOworI2lmICFBU1NFUlRfTVNHX0RJU0FCTEVECisgICAgYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkID0gdHJ1ZTsKKyNlbmRpZgor
ICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitTdHJpbmcgYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyKCkKK3sKKyAgICAvLyBUaGUgb3ZlcnJpZGUgb25seSBnZXRzIHNldCBpbiBXZWJLaXQy
J3MgV2ViUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nlc3MuIElmIHVuc2V0LCB3ZSB1c2UgdGhlIG1h
aW4gYnVuZGxlIGlkZW50aWZpZXIuCisgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9IGFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllck92ZXJyaWRlKCk7CisgICAgQVNTRVJUKGlkZW50aWZpZXIu
aXNOdWxsKCkgfHwgUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHJldHVybiBpZGVudGlmaWVyLmlz
TnVsbCgpID8gU3RyaW5nKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0p
IDogaWRlbnRpZmllcjsKK30KKwordm9pZCBzZXRBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyT3ZlcnJpZGVXYXNRdWVyaWVkLCAiYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oKSBz
aG91bGQgbm90IGJlIGNhbGxlZCBiZWZvcmUgc2V0QXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
KCkiKTsKKyAgICBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXJPdmVycmlkZSgpID0gYnVuZGxl
SWRlbnRpZmllcjsKK30KKworc3RhdGljIGJvb2wgYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
Y29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyU3RyaW5nKQoreworICAgIHJldHVybiBhcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIoKSA9PSBidW5kbGVJZGVudGlmaWVyU3RyaW5nOworfQor
CisjaWYgUExBVEZPUk0oTUFDKQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpCit7
CisgICAgc3RhdGljIGJvb2wgaXNTYWZhcmkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygi
Y29tLmFwcGxlLlNhZmFyaSIpOworICAgIHJldHVybiBpc1NhZmFyaTsKK30KKworYm9vbCBNYWNB
cHBsaWNhdGlvbjo6aXNBcHBsZU1haWwoKQoreworICAgIHN0YXRpYyBib29sIGlzQXBwbGVNYWls
ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5tYWlsIik7CisgICAgcmV0
dXJuIGlzQXBwbGVNYWlsOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc0lCb29rcygpCit7
CisgICAgc3RhdGljIGJvb2wgaXNJQm9va3MgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygi
Y29tLmFwcGxlLmlCb29rc1giKTsKKyAgICByZXR1cm4gaXNJQm9va3M7Cit9CisKK2Jvb2wgTWFj
QXBwbGljYXRpb246OmlzSVR1bmVzKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc0lUdW5lcyA9IGFw
cGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuaVR1bmVzIik7CisgICAgcmV0dXJu
IGlzSVR1bmVzOworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc01pY3Jvc29mdE1lc3Nlbmdl
cigpCit7CisgICAgc3RhdGljIGJvb2wgaXNNaWNyb3NvZnRNZXNzZW5nZXIgPSBhcHBsaWNhdGlv
bkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5NZXNzZW5nZXIiKTsKKyAgICByZXR1cm4g
aXNNaWNyb3NvZnRNZXNzZW5nZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246OmlzQWRvYmVJ
bnN0YWxsZXIoKQoreworICAgIHN0YXRpYyBib29sIGlzQWRvYmVJbnN0YWxsZXIgPSBhcHBsaWNh
dGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFkb2JlLkluc3RhbGxlcnMuU2V0dXAiKTsKKyAgICBy
ZXR1cm4gaXNBZG9iZUluc3RhbGxlcjsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNBT0xJ
bnN0YW50TWVzc2VuZ2VyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc0FPTEluc3RhbnRNZXNzZW5n
ZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFvbC5haW0uZGVza3RvcCIpOwor
ICAgIHJldHVybiBpc0FPTEluc3RhbnRNZXNzZW5nZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRp
b246OmlzTWljcm9zb2Z0TXlEYXkoKQoreworICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0TXlE
YXkgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm1pY3Jvc29mdC5teWRheSIpOwor
ICAgIHJldHVybiBpc01pY3Jvc29mdE15RGF5OworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjpp
c01pY3Jvc29mdE91dGxvb2soKQoreworICAgIHN0YXRpYyBib29sIGlzTWljcm9zb2Z0T3V0bG9v
ayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20ubWljcm9zb2Z0Lk91dGxvb2siKTsK
KyAgICByZXR1cm4gaXNNaWNyb3NvZnRPdXRsb29rOworfQorCitib29sIE1hY0FwcGxpY2F0aW9u
Ojppc1F1aWNrZW5Fc3NlbnRpYWxzKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc1F1aWNrZW5Fc3Nl
bnRpYWxzID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5pbnR1aXQuUXVpY2tlbkVz
c2VudGlhbHMiKTsKKyAgICByZXR1cm4gaXNRdWlja2VuRXNzZW50aWFsczsKK30KKworYm9vbCBN
YWNBcHBsaWNhdGlvbjo6aXNBcGVydHVyZSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNBcGVydHVy
ZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uYXBwbGUuQXBlcnR1cmUiKTsKKyAg
ICByZXR1cm4gaXNBcGVydHVyZTsKK30KKworYm9vbCBNYWNBcHBsaWNhdGlvbjo6aXNWZXJzaW9u
cygpCit7CisgICAgc3RhdGljIGJvb2wgaXNWZXJzaW9ucyA9IGFwcGxpY2F0aW9uQnVuZGxlSXNF
cXVhbFRvKCJjb20uYmxhY2twaXhlbC52ZXJzaW9ucyIpOworICAgIHJldHVybiBpc1ZlcnNpb25z
OworfQorCitib29sIE1hY0FwcGxpY2F0aW9uOjppc0hSQmxvY2soKQoreworICAgIHN0YXRpYyBi
b29sIGlzSFJCbG9jayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uaHJibG9jay50
YXguMjAxMCIpOworICAgIHJldHVybiBpc0hSQmxvY2s7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRp
b246OmlzSUFkUHJvZHVjZXIoKQoreworICAgIHN0YXRpYyBib29sIGlzSUFkUHJvZHVjZXIgPSBh
cHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLmFwcGxlLmlBZFByb2R1Y2VyIik7CisgICAg
cmV0dXJuIGlzSUFkUHJvZHVjZXI7Cit9CisKK2Jvb2wgTWFjQXBwbGljYXRpb246OmlzU29saWRT
dGF0ZU5ldHdvcmtzRG93bmxvYWRlcigpCit7CisgICAgc3RhdGljIGJvb2wgaXNTb2xpZFN0YXRl
TmV0d29ya3NEb3dubG9hZGVyID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5zb2xp
ZHN0YXRlbmV0d29ya3MuYXdraG9zdCIpOworICAgIHJldHVybiBpc1NvbGlkU3RhdGVOZXR3b3Jr
c0Rvd25sb2FkZXI7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNpZiBQTEFURk9S
TShJT1MpCisKK2Jvb2wgSU9TQXBwbGljYXRpb246OmlzTW9iaWxlTWFpbCgpCit7CisgICAgc3Rh
dGljIGJvb2wgaXNNb2JpbGVNYWlsID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5h
cHBsZS5tb2JpbGVtYWlsIik7CisgICAgcmV0dXJuIGlzTW9iaWxlTWFpbDsKK30KKworYm9vbCBJ
T1NBcHBsaWNhdGlvbjo6aXNNb2JpbGVTYWZhcmkoKQoreworICAgIHN0YXRpYyBib29sIGlzTW9i
aWxlU2FmYXJpID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5tb2JpbGVz
YWZhcmkiKTsKKyAgICByZXR1cm4gaXNNb2JpbGVTYWZhcmk7Cit9CisKK2Jvb2wgSU9TQXBwbGlj
YXRpb246OmlzV2ViQm9va21hcmtzRCgpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJCb29rbWFy
a3NEID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS53ZWJib29rbWFya3Nk
Iik7CisgICAgcmV0dXJuIGlzV2ViQm9va21hcmtzRDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlv
bjo6aXNEdW1wUmVuZGVyVHJlZSgpCit7CisgICAgLy8gV2UgdXNlIGEgcHJlZml4IG1hdGNoIGlu
c3RlYWQgb2Ygc3RyaWN0IGVxdWFsaXR5IHNpbmNlIG11bHRpcGxlIGluc3RhbmNlcyBvZiBEdW1w
UmVuZGVyVHJlZQorICAgIC8vIG1heSBiZSBsYXVuY2hlZCwgd2hlcmUgdGhlIGJ1bmRsZSBpZGVu
dGlmaWVyIG9mIGVhY2ggaW5zdGFuY2UgaGFzIGEgdW5pcXVlIHN1ZmZpeC4KKyAgICBzdGF0aWMg
Ym9vbCBpc0R1bXBSZW5kZXJUcmVlID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oIm9yZy53
ZWJraXQuRHVtcFJlbmRlclRyZWUiKTsgLy8gZS5nLiBvcmcud2Via2l0LkR1bXBSZW5kZXJUcmVl
MAorICAgIHJldHVybiBpc0R1bXBSZW5kZXJUcmVlOworfQorCitib29sIElPU0FwcGxpY2F0aW9u
Ojppc01vYmlsZVN0b3JlKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc01vYmlsZVN0b3JlID0gYXBw
bGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImNvbS5hcHBsZS5Nb2JpbGVTdG9yZSIpOworICAgIHJl
dHVybiBpc01vYmlsZVN0b3JlOworfQorCitib29sIElPU0FwcGxpY2F0aW9uOjppc1dlYkFwcCgp
Cit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJBcHAgPSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxU
bygiY29tLmFwcGxlLndlYmFwcCIpOworICAgIHJldHVybiBpc1dlYkFwcDsKK30KKworYm9vbCBJ
T1NBcHBsaWNhdGlvbjo6aXNPa0N1cGlkKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpc09rQ3VwaWQg
PSBhcHBsaWNhdGlvbkJ1bmRsZUlzRXF1YWxUbygiY29tLm9rY3VwaWQuYXBwIik7CisgICAgcmV0
dXJuIGlzT2tDdXBpZDsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNGYWNlYm9vaygpCit7
CisgICAgc3RhdGljIGJvb2wgaXNGYWNlYm9vayA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRv
KCJjb20uZmFjZWJvb2suRmFjZWJvb2siKTsKKyAgICByZXR1cm4gaXNGYWNlYm9vazsKK30KKwor
Ym9vbCBJT1NBcHBsaWNhdGlvbjo6aXNEYWlqaXNlbkRpY3Rpb25hcnkoKQoreworICAgIHN0YXRp
YyBib29sIGlzRGFpamlzZW5EaWN0aW9uYXJ5ID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8o
ImpwLmNvLnNob2dha3VrYW4uZGFpamlzZW4yMDA5aSIpOworICAgIHJldHVybiBpc0RhaWppc2Vu
RGljdGlvbmFyeTsKK30KKworYm9vbCBJT1NBcHBsaWNhdGlvbjo6aXNOQVNBSEQoKQoreworICAg
IHN0YXRpYyBib29sIGlzTkFTQUhEID0gYXBwbGljYXRpb25CdW5kbGVJc0VxdWFsVG8oImdvdi5u
YXNhLk5BU0FIRCIpOworICAgIHJldHVybiBpc05BU0FIRDsKK30KKworYm9vbCBJT1NBcHBsaWNh
dGlvbjo6aXNUaGVFY29ub21pc3RPbklwaG9uZSgpCit7CisgICAgc3RhdGljIGJvb2wgaXNUaGVF
Y29ub21pc3RPbklwaG9uZSA9IGFwcGxpY2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uZWNvbm9t
aXN0LmlwaG9uZSIpOworICAgIHJldHVybiBpc1RoZUVjb25vbWlzdE9uSXBob25lOworfQorCisv
LyBGSVhNRTogdGhpcyBuZWVkcyB0byBiZSBjaGFuZ2VkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaXMg
Y2hhbmdlZCB0byBhbiBYUEMgc2VydmljZS4KK2Jvb2wgSU9TQXBwbGljYXRpb246OmlzV2ViUHJv
Y2VzcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNXZWJQcm9jZXNzID0gW1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50Il0KKyAgICAgICAgfHwgW1tbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50Il0KKyAgICAgICAgfHwgW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVu
ZGxlSWRlbnRpZmllcl0gaXNFcXVhbFRvU3RyaW5nOkAiY29tLmFwcGxlLldlYlByb2Nlc3MiXTsK
KyAgICByZXR1cm4gaXNXZWJQcm9jZXNzOworfQorCitib29sIElPU0FwcGxpY2F0aW9uOjppc0lC
b29rcygpCit7CisgICAgc3RhdGljIGJvb2wgaXNJQm9va3MgPSBhcHBsaWNhdGlvbkJ1bmRsZUlz
RXF1YWxUbygiY29tLmFwcGxlLmlCb29rcyIpOworICAgIHJldHVybiBpc0lCb29rczsKK30KKwor
Ym9vbCBJT1NBcHBsaWNhdGlvbjo6aXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeSgpCit7
CisgICAgc3RhdGljIGJvb2wgaXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeSA9IGFwcGxp
Y2F0aW9uQnVuZGxlSXNFcXVhbFRvKCJjb20uZzVlLnNlY3JldHNvY2lldHkiKTsKKyAgICByZXR1
cm4gaXNUaGVTZWNyZXRTb2NpZXR5SGlkZGVuTXlzdGVyeTsKK30KKworI2VuZGlmCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDA2ZTIx
ZDU3NTE2NWQ3NWRjZmE2MWM0MjE2NTEzZmEwMDZkYzM5YzUuLmFlOGZlM2QyYTI5ZmI1MWE2ZWI2
MGQ5NWJjODM2MWMxZmJjNjFlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIwMiw2ICsyMDIsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogeworICAgIFdlYkNvcmU6OnNldFByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCk7CiAgICAg
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CiAKICAgICBXVEY6
OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDdkNmRmM2Q1NzFiOTQ5OTlkZTY0YjgzNmQxNDQz
Mzg1Nzk3ZWEwYWEuLjU2ZmJkOGQyNjA5N2YwMmJiYjlhMWZkOTY3MDA4ZDY1YWVhNGY5MDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHNob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vz
c2lvbjsKICAgICBlbmNvZGVyIDw8IGxvYWRUaHJvdHRsZUxhdGVuY3k7CiAgICAgZW5jb2RlciA8
PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29sczsKKyAgICBlbmNvZGVyIDw8
IHByZXNlbnRpbmdBcHBsaWNhdGlvblBJRDsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBlbmNv
ZGVyIDw8IHBhcmVudFByb2Nlc3NOYW1lOwogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxl
SWRlbnRpZmllcjsKQEAgLTE0OCw2ICsxNDksOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3b3JrUHJvYwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudXJs
U2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucHJlc2VudGluZ0FwcGxpY2F0aW9u
UElEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnBhcmVudFByb2Nlc3NOYW1lKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZDM0Mjk3ODRj
NmNkOTAxOWY2MGRjNmEwMmIyOGI4YWFjZjViZmM1OS4uMjBhYzU4NzQ5NWJiODRiMTIyMDVkYzNk
YTJlYTgxOTg5ZDBmMzFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC03
Niw2ICs3Niw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAg
ICAgU2Vjb25kcyBsb2FkVGhyb3R0bGVMYXRlbmN5OwogCiAgICAgVmVjdG9yPFN0cmluZz4gdXJs
U2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHM7CisgICAgcGlkX3QgcHJlc2VudGlu
Z0FwcGxpY2F0aW9uUElEIHsgMCB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgU3RyaW5n
IHBhcmVudFByb2Nlc3NOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDJiZGZmMDg5ZjBkOGVhZTA1MWRm
YmY3ZDY4OTBkZGFhZDk5NTJjNmEuLmYwMzgxNWJlMTZkZTFmZTU1MmM0NjhjNGM1ZDU5ZTFhYmM5
YzlkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk4LDggKzk4LDggQEAgdm9pZCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQ0ZVUkxDT05ORUNUSU9OKQogICAgIGVuY29kZXIgPDwg
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKICNlbmRpZgorICAgIGVuY29kZXIgPDwgcHJlc2Vu
dGluZ0FwcGxpY2F0aW9uUElEOwogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGVuY29kZXIgPDwg
cHJlc2VudGVyQXBwbGljYXRpb25QaWQ7CiAgICAgZW5jb2RlciA8PCBhY2Nlc3NpYmlsaXR5RW5o
YW5jZWRVc2VySW50ZXJmYWNlRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdQb3J0OwogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRo
OwpAQCAtMjQ4LDEwICsyNDgsOSBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMucHJlc2VudGVyQXBwbGljYXRpb25QaWQpKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wcmVzZW50aW5nQXBwbGljYXRpb25Q
SUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRl
cmZhY2VFbmFibGVkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRl
eCAxZmQwNmQzM2NhM2U1NTJjYWY3ZWUxODQxZGJhYjcyMDg2YmYxMDUwLi4xNjNmNTExMGY1NDU5
Mjg4ZGRhYjIyODczMmY5ZGI0ZDNmNzVlNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEzNSw5ICsxMzUsOSBA
QCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgU3RyaW5nIHVpUHJv
Y2Vzc0J1bmRsZUlkZW50aWZpZXI7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9uUGlkIHsgMCB9OworICAgIHBpZF90IHByZXNlbnRp
bmdBcHBsaWNhdGlvblBJRCB7IDAgfTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFdlYkNv
cmU6Ok1hY2hTZW5kUmlnaHQgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQ7CiAKICAgICBTdHJp
bmcgdWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBmMzFhNDFhMjYx
ZmUyNTU4YzhhMjgzYjFhNDlmNDZkMzdmYTQ3NWI2Li41MTdjZGJkZDYxODFlZWEwMTA0ZjllNjMw
NzZjZDQxOGY0MTkyZThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtMTc4LDggKzE3OCw2IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQog
CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgcGFyYW1ldGVycy5w
cmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IGdldHBpZCgpOwotCiAjaWYgUExBVEZPUk0oTUFDKQog
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzI4MTA5ZjE3NWZlYWEyMGM2NzAxYWE4NTRi
ZDc3MzQ3YjAzZTQ5Yy4uZWJhYTk2ZmMxMjdkNDI2ZmE3YTk2NGE3ZTRmMDQ5YWEwZjY2NmJhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00NjAs
NiArNDYwLDcgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5l
dHdvcmtQcm9jZXNzKCkKICNlbmRpZgogCiAgICAgcGFyYW1ldGVycy5zaG91bGRVc2VUZXN0aW5n
TmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbjsKKyAgICBw
YXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCA9IGdldHBpZCgpOwogCiAgICAgLy8g
QWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CkBAIC03NTIsNiArNzUzLDggQEAgV2ViUHJv
Y2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0
YVN0b3JlJiB3ZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJzLnNob3VsZENhcHR1cmVBdWRpb0luVUlQ
cm9jZXNzID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcygp
OwogI2VuZGlmCiAKKyAgICBwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCA9IGdl
dHBpZCgpOworCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAg
ICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0ZXJzKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4
IGY4OGY5ZDIxMGM1YWMwYTI5MGUzZGUxYTk4MDAxMDIwZDA2MjMzMTcuLjFlYjA0MzcyODEyODBj
Y2QyMDE2ODI2N2I1YWZlNTRhOTY1ZmNkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTIsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg0LDYg
Kzg0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2Nyb2xsVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZUluaGVyaXRlZERhdGEuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CkBAIC05Myw4ICs5NCw4IEBACiAjaW1w
b3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpCi0jaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NZWRpYVBsYXliYWNrVGFyZ2V0TWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWJh
Y2tUYXJnZXRNb2NrLmg+CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0x
MDYsNyArMTA3LDcgQEAgdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QqIG1vY2tBY2Nlc3NpYmlsaXR5RWxlbWVudCA9IFtb
W1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsK
IAogICAgIC8vIEdldCB0aGUgcGlkIGZvciB0aGUgc3RhcnRpbmcgcHJvY2Vzcy4KLSAgICBwaWRf
dCBwaWQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgp
OworICAgIHBpZF90IHBpZCA9IFdlYkNvcmU6OnByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwog
ICAgIFdLQVhJbml0aWFsaXplRWxlbWVudFdpdGhQcmVzZW50ZXJQaWQobW9ja0FjY2Vzc2liaWxp
dHlFbGVtZW50LCBwaWQpOwogICAgIFttb2NrQWNjZXNzaWJpbGl0eUVsZW1lbnQgc2V0V2ViUGFn
ZTp0aGlzXTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDcxODk5Zjg1MDM1OWIyOTA0MzFmYzY0ZDBjNjhkYmY5MTZkZjg1MWEuLmU4N2NiZWM1NGEz
ZDcyYzA4ZjQ5YjAwNGZjMTBjZmM2NjdmZDFhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMjUwLDYgKzI1MCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5p
dGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiB7ICAgIAogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAorICAgIFdlYkNv
cmU6OnNldFByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwYXJhbWV0ZXJzLnByZXNlbnRpbmdBcHBs
aWNhdGlvblBJRCk7CisKICNpZiBPUyhMSU5VWCkKICAgICBpZiAocGFyYW1ldGVycy5tZW1vcnlQ
cmVzc3VyZU1vbml0b3JIYW5kbGUuZmlsZURlc2NyaXB0b3IoKSAhPSAtMSkKICAgICAgICAgTWVt
b3J5UHJlc3N1cmVIYW5kbGVyOjpzaW5nbGV0b24oKS5zZXRNZW1vcnlQcmVzc3VyZU1vbml0b3JI
YW5kbGUocGFyYW1ldGVycy5tZW1vcnlQcmVzc3VyZU1vbml0b3JIYW5kbGUucmVsZWFzZUZpbGVE
ZXNjcmlwdG9yKCkpOwpAQCAtMzg4LDcgKzM5MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAgICAgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuOwogICAgIGlmIChwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5nZXRBdWRpdFRva2VuKGF1ZGl0VG9rZW4pKSB7CiAgICAgICAgIFJldGFpblB0
cjxDRkRhdGFSZWY+IGF1ZGl0RGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3JlYXRlKG51bGxwdHIsIChj
b25zdCBVSW50OCopJmF1ZGl0VG9rZW4sIHNpemVvZihhdWRpdFRva2VuKSkpOwotICAgICAgICBJ
bnNwZWN0b3I6OlJlbW90ZUluc3BlY3Rvcjo6c2luZ2xldG9uKCkuc2V0UGFyZW50UHJvY2Vzc0lu
Zm9ybWF0aW9uKHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKCksIGF1ZGl0RGF0YSk7CisgICAgICAg
IEluc3BlY3Rvcjo6UmVtb3RlSW5zcGVjdG9yOjpzaW5nbGV0b24oKS5zZXRQYXJlbnRQcm9jZXNz
SW5mb3JtYXRpb24oV2ViQ29yZTo6cHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCksIGF1ZGl0RGF0
YSk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
aW5kZXggYWVjYmFkYjc2YmQ1OTY1YWFhN2E0ODdmNjYzNDFhNGEwYTFjNWI5OC4uYjgyOGI3NTQ1
YmJjYTNiMjBmYzkwNDA5NmNjZTBkZDkxMmMzNzNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTE0NywxMCArMTQ3LDYgQEAgcHVibGljOgogCiAgICAgdWludDY0
X3QgdXNlckdlc3R1cmVUb2tlbklkZW50aWZpZXIoUmVmUHRyPFdlYkNvcmU6OlVzZXJHZXN0dXJl
VG9rZW4+KTsKICAgICB2b2lkIHVzZXJHZXN0dXJlVG9rZW5EZXN0cm95ZWQoV2ViQ29yZTo6VXNl
ckdlc3R1cmVUb2tlbiYpOwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcGlkX3QgcHJlc2Vu
dGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlbnRlckFwcGxpY2F0aW9u
UGlkOyB9Ci0jZW5kaWYKICAgICAKICAgICBjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiB0ZXh0Q2hl
Y2tlclN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Q2hlY2tlclN0YXRlOyB9CiAgICAgdm9p
ZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUmKTsKQEAgLTM2OCw3
ICszNjQsNiBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgV2ViQ29yZTo6
TWFjaFNlbmRSaWdodCBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsKLSAgICBwaWRfdCBt
X3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogI2VuZGlmCiAKICAgICBib29sIG1fZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDRkZjhlYzQzN2UzN2Q2MWFkZDg2
MTMzN2VmM2QyNTA3NDZmNmY0YzAuLmUyNGU4YzViOGEyMDU2MjVkZTdmYzBiMjdiZWU4ZDU2NDEz
YmE3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBACiAjZW5kaWYKIAogI2lmIFVTRShPU19TVEFU
RSkKLSNpbmNsdWRlIDxvcy9zdGF0ZV9wcml2YXRlLmg+CisjaW1wb3J0IDxvcy9zdGF0ZV9wcml2
YXRlLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE0OSw3ICsxNDksNiBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcgogI2VuZGlmCiAKICAgICBtX2NvbXBvc2l0aW5nUmVuZGVy
U2VydmVyUG9ydCA9IFdURk1vdmUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9y
dCk7Ci0gICAgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCA9IHBhcmFtZXRlcnMucHJlc2VudGVy
QXBwbGljYXRpb25QaWQ7CiAKICAgICBXZWJDb3JlOjpyZWdpc3Rlck1lbW9yeVJlbGVhc2VOb3Rp
ZnlDYWxsYmFja3MoKTsKICAgICBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcjo6
c2V0TG9nZ2luZ0VuYWJsZWQocGFyYW1ldGVycy5zaG91bGRFbmFibGVNZW1vcnlQcmVzc3VyZVJl
bGllZkxvZ2dpbmcpOwpAQCAtMTc1LDcgKzE3NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJf
UElEVG9Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb20oKSkgewotICAgICAgICBwaWRfdCBwaWQg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVzZW50ZXJBcHBsaWNhdGlvblBpZCgpOworICAg
ICAgICBwaWRfdCBwaWQgPSBXZWJDb3JlOjpwcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKICAg
ICAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CiAgICAgICAgIFtbZ2V0QVZTeXN0ZW1Db250cm9s
bGVyQ2xhc3MoKSBzaGFyZWRBVlN5c3RlbUNvbnRyb2xsZXJdIHNldEF0dHJpYnV0ZTpAKHBpZCkg
Zm9yS2V5OkFWU3lzdGVtQ29udHJvbGxlcl9QSURUb0luaGVyaXRBcHBsaWNhdGlvblN0YXRlRnJv
bSBlcnJvcjomZXJyb3JdOwogICAgICAgICBpZiAoZXJyb3IpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>