<?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>190681</bug_id>
          
          <creation_ts>2018-10-17 12:48:39 -0700</creation_ts>
          <short_desc>Handle MDNS resolution of candidates through libwebrtc directly</short_desc>
          <delta_ts>2018-10-29 14:31:25 -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>WebRTC</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1470276</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-17 12:48:39 -0700</bug_when>
    <thetext>Libwebrtc has proper support for MDNS name resolution.
Let&apos;s use that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470319</commentid>
    <comment_count>1</comment_count>
      <attachid>352633</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-17 13:49:17 -0700</bug_when>
    <thetext>Created attachment 352633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470600</commentid>
    <comment_count>2</comment_count>
      <attachid>352633</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 11:15:26 -0700</bug_when>
    <thetext>Comment on attachment 352633
Patch

Clearing flags on attachment: 352633

Committed r237261: &lt;https://trac.webkit.org/changeset/237261&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470601</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-18 11:15:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1470602</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-18 11:16:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/45377118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471664</commentid>
    <comment_count>5</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-10-23 14:07:20 -0700</bug_when>
    <thetext>Reverted r237261 for reason:

The layout test for this change crashes under GuardMalloc.

Committed r237367: &lt;https://trac.webkit.org/changeset/237367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471665</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-10-23 14:07:53 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #5)
&gt; Reverted r237261 for reason:
&gt; 
&gt; The layout test for this change crashes under GuardMalloc.
&gt; 
&gt; Committed r237367: &lt;https://trac.webkit.org/changeset/237367&gt;
Details in radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472907</commentid>
    <comment_count>7</comment_count>
      <attachid>353288</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-10-29 07:37:01 -0700</bug_when>
    <thetext>Created attachment 353288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472965</commentid>
    <comment_count>8</comment_count>
      <attachid>353288</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-10-29 11:31:04 -0700</bug_when>
    <thetext>Comment on attachment 353288
Patch

still looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473065</commentid>
    <comment_count>9</comment_count>
      <attachid>353288</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-29 14:31:24 -0700</bug_when>
    <thetext>Comment on attachment 353288
Patch

Clearing flags on attachment: 353288

Committed r237568: &lt;https://trac.webkit.org/changeset/237568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473066</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-29 14:31:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352633</attachid>
            <date>2018-10-17 13:49:17 -0700</date>
            <delta_ts>2018-10-29 07:36:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190681-20181017134917.patch</filename>
            <type>text/plain</type>
            <size>32491</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwMDYyOTU0YjhiZjUxNWZmNGI3NGRhMWI3YzczZDdkMDQ5NTM4Yzk4Li4zMmUz
MDhhOTAyNDg0ZjA0NzM4OTcyNTIzZWQyNGJjNzA2NWEyZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0xMC0xNyAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIE1ETlMgcmVzb2x1dGlv
biBvZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndl
YnJ0Yy5pT1MuZXhwOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0u
ZXhwOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorCiAyMDE4
LTEwLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBw
b3J0IFJUQ0NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE0NmI3NzY0
NzJmODlkZTBlYWNjMTBlNjZmNTc0M2ZjMDhlNDQwOC4uZDIxNTI5MDQ0YzUzNzYzOWY1NGYwZjYw
MjVhNzYxYzM5YTMxMTZmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTEwLTE3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBIYW5kbGUgTURO
UyByZXNvbHV0aW9uIG9mIGNhbmRpZGF0ZXMgdGhyb3VnaCBsaWJ3ZWJydGMgZGlyZWN0bHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
cHJldmlvdXMgTUROUyByZXNvbHV0aW9uIG1lY2hhbmlzbS4KKyAgICAgICAgSW5zdGVhZCwgYWRk
IHN1cHBvcnQgZm9yIHRoZSBBc3luY1Jlc29sdmVyIG1lY2hhbmlzbSBhZGRlZCB0byBsaWJ3ZWJy
dGMuCisgICAgICAgIENvdmVyZWQgYnkgY3VycmVudCBtZG5zIHdlYnJ0YyB0ZXN0IHRoYXQgaXMg
dW5mbGFrZWQuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmFk
ZEljZUNhbmRpZGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3Zp
ZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogdGVzdGluZy9Nb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeTo6Q3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg6CisKIDIwMTgtMTAtMTcg
IEFsaSBKdW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZsYWt5IEludGVyc2Vj
dGlvbk9ic2VydmVyIHdlYiBwbGF0Zm9ybSB0ZXN0cyBpbnZvbHZpbmcgc3R5bGUgdXBkYXRlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAzZGE1ZDI2Yjk4YThjYTAwZmI0MWY2OTJkZDI1NTZlYjY5YmVjYzRlLi4xNzIy
ZjMzNzUzYWNkYTZiMzU4NWNiNjY2Yzk1MjcxNmI2NzE0ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDE4LTEwLTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBIYW5kbGUgTUROUyByZXNvbHV0aW9uIG9mIGNhbmRpZGF0ZXMgdGhyb3VnaCBsaWJ3
ZWJydGMgZGlyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MDY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciBBc3luY1Jlc29sdmVyIHRvIHJlc29sdmUgTUROUy4KKyAg
ICAgICAgVGhpcyBiYXNpY2FsbHkgcmV1c2UgdGhlIGNvZGUgcGF0aCB1c2VkIHRvIHJlc29sdmUg
U1RVTiBzZXJ2ZXIgYWRkcmVzc2VzLgorICAgICAgICBSZW1vdmVkIE1ETlMgc3BlY2lmaWMgcmVz
b2x1dGlvbi4KKyAgICAgICAgVXNlIGV4aXN0aW5nIENGSG9zdCByZXNvbHV0aW9uIG1lY2hhbmlz
bSB0byBkbyB0aGUgYWN0dWFsIHJlc29sdXRpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5tZXNz
YWdlcy5pbjoKKwogMjAxOC0xMC0xNyAgQWxpIEp1bWEgIDxhanVtYUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgRmxha3kgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgd2ViIHBsYXRmb3JtIHRlc3RzIGlu
dm9sdmluZyBzdHlsZSB1cGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAKaW5kZXggNGVlNDRi
NDEwYmI2MGUzZWY2MWYxMmVmODAyMWU0Y2IyZDZiZmI2NS4uZmRmOTUwM2YyNmZiOTcwMjVmYWJi
NTY4MmM4ZjYwNDMxZjlkOTJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cApAQCAtMjI5LDMg
KzIyOSw1IEBAIF9fWk5LM3J0YzE0UlRDQ2VydGlmaWNhdGUxNXNzbF9jZXJ0aWZpY2F0ZUV2CiBf
X1pOSzNydGMxNFJUQ0NlcnRpZmljYXRlNVRvUEVNRXYKIF9fWk5LM3J0YzE0U1NMQ2VydGlmaWNh
dGU4R2V0U3RhdHNFdgogX19aTjNydGMxNFJUQ0NlcnRpZmljYXRlN0Zyb21QRU1FUktOU18xN1JU
Q0NlcnRpZmljYXRlUEVNRQorX19aTjZ3ZWJydGMyNlBlZXJDb25uZWN0aW9uRGVwZW5kZW5jaWVz
QzFFUE5TXzIyUGVlckNvbm5lY3Rpb25PYnNlcnZlckUKK19fWk42d2VicnRjMzBQZWVyQ29ubmVj
dGlvbkZhY3RvcnlJbnRlcmZhY2UyMENyZWF0ZVBlZXJDb25uZWN0aW9uRVJLTlNfMjNQZWVyQ29u
bmVjdGlvbkludGVyZmFjZTE2UlRDQ29uZmlndXJhdGlvbkVOU3QzX18xMTB1bmlxdWVfcHRySU43
Y3JpY2tldDEzUG9ydEFsbG9jYXRvckVOUzVfMTRkZWZhdWx0X2RlbGV0ZUlTOF9FRUVFTlM2X0lO
M3J0YzMyUlRDQ2VydGlmaWNhdGVHZW5lcmF0b3JJbnRlcmZhY2VFTlM5X0lTRF9FRUVFUE5TXzIy
UGVlckNvbm5lY3Rpb25PYnNlcnZlckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cAppbmRl
eCAyYjQ5MzBjYjVlMmQzY2IyYmE4ZjczYjdiZWVkMjRmZGNjNWRkYzU5Li4wMjk0NjA3NTRkNzk3
ZDA2ZmM3MmJlMDVkNTNhMDlhMDU0ZTg1OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0u
ZXhwCkBAIC0yMzAsMyArMjMwLDUgQEAgX19aTkszcnRjMTRSVENDZXJ0aWZpY2F0ZTE1c3NsX2Nl
cnRpZmljYXRlRXYKIF9fWk5LM3J0YzE0UlRDQ2VydGlmaWNhdGU1VG9QRU1FdgogX19aTkszcnRj
MTRTU0xDZXJ0aWZpY2F0ZThHZXRTdGF0c0V2CiBfX1pOM3J0YzE0UlRDQ2VydGlmaWNhdGU3RnJv
bVBFTUVSS05TXzE3UlRDQ2VydGlmaWNhdGVQRU1FCitfX1pONndlYnJ0YzI2UGVlckNvbm5lY3Rp
b25EZXBlbmRlbmNpZXNDMUVQTlNfMjJQZWVyQ29ubmVjdGlvbk9ic2VydmVyRQorX19aTjZ3ZWJy
dGMzMFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZTIwQ3JlYXRlUGVlckNvbm5lY3Rpb25F
UktOU18yM1BlZXJDb25uZWN0aW9uSW50ZXJmYWNlMTZSVENDb25maWd1cmF0aW9uRU5TdDNfXzEx
MHVuaXF1ZV9wdHJJTjdjcmlja2V0MTNQb3J0QWxsb2NhdG9yRU5TNV8xNGRlZmF1bHRfZGVsZXRl
SVM4X0VFRUVOUzZfSU4zcnRjMzJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvckludGVyZmFjZUVOUzlf
SVNEX0VFRUVQTlNfMjJQZWVyQ29ubmVjdGlvbk9ic2VydmVyRQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMu
ZXhwCmluZGV4IDJiNDkzMGNiNWUyZDNjYjJiYThmNzNiN2JlZWQyNGZkY2M1ZGRjNTkuLjAyOTQ2
MDc1NGQ3OTdkMDZmYzcyYmUwNWQ1M2EwOWEwNTRlODU5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1h
Yy5leHAKQEAgLTIzMCwzICsyMzAsNSBAQCBfX1pOSzNydGMxNFJUQ0NlcnRpZmljYXRlMTVzc2xf
Y2VydGlmaWNhdGVFdgogX19aTkszcnRjMTRSVENDZXJ0aWZpY2F0ZTVUb1BFTUV2CiBfX1pOSzNy
dGMxNFNTTENlcnRpZmljYXRlOEdldFN0YXRzRXYKIF9fWk4zcnRjMTRSVENDZXJ0aWZpY2F0ZTdG
cm9tUEVNRVJLTlNfMTdSVENDZXJ0aWZpY2F0ZVBFTUUKK19fWk42d2VicnRjMjZQZWVyQ29ubmVj
dGlvbkRlcGVuZGVuY2llc0MxRVBOU18yMlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXJFCitfX1pONndl
YnJ0YzMwUGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlMjBDcmVhdGVQZWVyQ29ubmVjdGlv
bkVSS05TXzIzUGVlckNvbm5lY3Rpb25JbnRlcmZhY2UxNlJUQ0NvbmZpZ3VyYXRpb25FTlN0M19f
MTEwdW5pcXVlX3B0cklON2NyaWNrZXQxM1BvcnRBbGxvY2F0b3JFTlM1XzE0ZGVmYXVsdF9kZWxl
dGVJUzhfRUVFRU5TNl9JTjNydGMzMlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9ySW50ZXJmYWNlRU5T
OV9JU0RfRUVFRVBOU18yMlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXJFCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKaW5kZXggMTJhYTlmYWU5OWZmYjViYzJlNzI3NGM3MGU0ZjNiN2ZiMmEwYWY1ZS4uNjBl
MzM2MTQzMmVlNzJmY2Y0MWE4NDQzMWRhNjgyZWI2MmJkZjQ1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNr
ZW5kLmNwcApAQCAtMjc0LDQyICsyNzQsMTAgQEAgdm9pZCBQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6
OmFkZEljZUNhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGUqIGljZUNhbmRpZGF0ZSwgRE9NUHIKICAg
ICBBU1NFUlQoIW1fcGVlckNvbm5lY3Rpb24uaXNDbG9zZWQoKSk7CiAKICAgICBpZiAoIWljZUNh
bmRpZGF0ZSkgewotICAgICAgICBpZiAobV93YWl0aW5nRm9yTUROU1Jlc29sdXRpb24pIHsKLSAg
ICAgICAgICAgIG1fZmluaXNoZWRSZWNlaXZpbmdDYW5kaWRhdGVzID0gdHJ1ZTsKLSAgICAgICAg
ICAgIG1fZW5kT2ZJY2VDYW5kaWRhdGVQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQogICAgICAgICBlbmRPZkljZUNhbmRpZGF0ZXMoV1RG
TW92ZShwcm9taXNlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5tZG5zSUNFQ2FuZGlkYXRlc0VuYWJs
ZWQoKSkgewotICAgICAgICBhdXRvIG5hbWUgPSBleHRyYWN0SVBBZGRyZXMoaWNlQ2FuZGlkYXRl
LT5jYW5kaWRhdGUoKSk7Ci0gICAgICAgIGlmIChuYW1lLmVuZHNXaXRoKCIubG9jYWwiKSkgewot
ICAgICAgICAgICAgKyttX3dhaXRpbmdGb3JNRE5TUmVzb2x1dGlvbjsKLSAgICAgICAgICAgIGF1
dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3BlZXJDb25uZWN0aW9uLnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgICAgICAgICBhdXRvJiBwcm92aWRlciA9IGRvY3Vt
ZW50LnBhZ2UoKS0+bGliV2ViUlRDUHJvdmlkZXIoKTsKLSAgICAgICAgICAgIHByb3ZpZGVyLnJl
c29sdmVNRE5TTmFtZShkb2N1bWVudC5zZXNzaW9uSUQoKSwgbmFtZSwgW3BlZXJDb25uZWN0aW9u
ID0gbWFrZVJlZihtX3BlZXJDb25uZWN0aW9uKSwgdGhpcywgbmFtZSwgaWNlQ2FuZGlkYXRlID0g
bWFrZVJlZigqaWNlQ2FuZGlkYXRlKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldIChMaWJX
ZWJSVENQcm92aWRlcjo6SVBBZGRyZXNzT3JFcnJvciYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHBlZXJDb25uZWN0aW9uLT5pc1N0b3BwZWQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgLS1tX3dhaXRpbmdGb3JNRE5TUmVz
b2x1dGlvbjsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5oYXNfdmFsdWUoKSkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKCkgIT0gTUROU1JlZ2lzdGVyRXJyb3I6
OlRpbWVvdXQpCi0gICAgICAgICAgICAgICAgICAgICAgICBwZWVyQ29ubmVjdGlvbi0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJNRE5TIHJlc29sdXRpb24gb2YgYSBo
b3N0IGNhbmRpZGF0ZSBmYWlsZWQgd2l0aCBlcnJvciIsICh1bnNpZ25lZClyZXN1bHQuZXJyb3Io
KSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICAgICAgYXV0byBjYW5kaWRhdGUgPSBpY2VDYW5kaWRhdGUtPmNhbmRpZGF0ZSgp
OwotICAgICAgICAgICAgICAgIGNhbmRpZGF0ZS5yZXBsYWNlKG5hbWUsIHJlc3VsdC52YWx1ZSgp
KTsKLSAgICAgICAgICAgICAgICBpY2VDYW5kaWRhdGUtPnNldENhbmRpZGF0ZShXVEZNb3ZlKGNh
bmRpZGF0ZSkpOwotICAgICAgICAgICAgICAgIG1fYWRkSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSk7Ci0gICAgICAgICAgICAgICAgdGhpcy0+ZG9BZGRJY2VDYW5kaWRhdGUo
aWNlQ2FuZGlkYXRlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgfQotCiAgICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL3czYy5naXRodWIu
aW8vd2VicnRjLXBjLyNkb20tcnRjcGVlcmNvbm5lY3Rpb24tYWRkaWNlY2FuZGlkYXRlKCksIHRo
aXMgY2hlY2sgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIGVucXVldWluZyB0aGUgdGFzay4KICAgICBp
ZiAoaWNlQ2FuZGlkYXRlLT5zZHBNaWQoKS5pc051bGwoKSAmJiAhaWNlQ2FuZGlkYXRlLT5zZHBN
TGluZUluZGV4KCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiVHJ5aW5nIHRvIGFkZCBhIGNhbmRpZGF0ZSB0aGF0IGlzIG1pc3NpbmcgYm90aCBzZHBN
aWQgYW5kIHNkcE1MaW5lSW5kZXgiX3MgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcAppbmRleCA2NGUzODBlMzAzNTkxMWIxYjFjYzBhOThkNjc3MjJjMGJjNjdhZDMyLi5l
OTgxMTk2MGM1N2QwZmNlNWZjNjI4Nzg3ZWVhZmQ3ODI2YTE0NjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogQUxMT1dfVU5VU0VE
X1BBUkFNRVRFUlNfQkVHSU4KIAorI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXN5bmNyZXNvbHZlcmZh
Y3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL2F1ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlv
X2RlY29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvYXVkaW9fY29kZWNzL2J1
aWx0aW5fYXVkaW9fZW5jb2Rlcl9mYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9wZWVy
Y29ubmVjdGlvbmZhY3Rvcnlwcm94eS5oPgpAQCAtMjQ0LDEwICsyNDUsMTAgQEAgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3Zp
ZGVyOjpjcmVhdGVQZWUKICAgICAgICAgZmFjdG9yeUFuZFRocmVhZHMucGFja2V0U29ja2V0RmFj
dG9yeSA9IHN0ZDo6bWFrZV91bmlxdWU8QmFzaWNQYWNrZXRTb2NrZXRGYWN0b3J5PigqZmFjdG9y
eUFuZFRocmVhZHMubmV0d29ya1RocmVhZCk7CiAgICAgZmFjdG9yeUFuZFRocmVhZHMucGFja2V0
U29ja2V0RmFjdG9yeS0+c2V0RGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKG1fZGlzYWJs
ZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKTsKIAotICAgIHJldHVybiBjcmVhdGVQZWVyQ29ubmVj
dGlvbihvYnNlcnZlciwgKmZhY3RvcnlBbmRUaHJlYWRzLm5ldHdvcmtNYW5hZ2VyLCAqZmFjdG9y
eUFuZFRocmVhZHMucGFja2V0U29ja2V0RmFjdG9yeSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CisgICAgcmV0dXJuIGNyZWF0ZVBlZXJDb25uZWN0aW9uKG9ic2VydmVyLCAqZmFjdG9yeUFuZFRo
cmVhZHMubmV0d29ya01hbmFnZXIsICpmYWN0b3J5QW5kVGhyZWFkcy5wYWNrZXRTb2NrZXRGYWN0
b3J5LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBudWxscHRyKTsKIH0KIAotcnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGVQZWVyQ29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9i
c2VydmVyLCBydGM6Ok5ldHdvcmtNYW5hZ2VyJiBuZXR3b3JrTWFuYWdlciwgcnRjOjpQYWNrZXRT
b2NrZXRGYWN0b3J5JiBwYWNrZXRTb2NrZXRGYWN0b3J5LCB3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3J0Yzo6c2NvcGVk
X3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRl
cjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBv
YnNlcnZlciwgcnRjOjpOZXR3b3JrTWFuYWdlciYgbmV0d29ya01hbmFnZXIsIHJ0Yzo6UGFja2V0
U29ja2V0RmFjdG9yeSYgcGFja2V0U29ja2V0RmFjdG9yeSwgd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIHN0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OkFzeW5jUmVzb2x2ZXJGYWN0b3J5PiYmIGFzeW5jUmVzb2x2ZUZhY3Rvcnkp
CiB7CiAgICAgYXV0byYgZmFjdG9yeUFuZFRocmVhZHMgPSBnZXRTdGF0aWNGYWN0b3J5QW5kVGhy
ZWFkcyhtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKTsKIApAQCAtMjYzLDcgKzI2
NCwxMSBAQCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZQogICAgIGlmICghZmFjdG9yeSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICByZXR1cm4gbV9mYWN0b3J5LT5DcmVhdGVQZWVyQ29u
bmVjdGlvbihjb25maWd1cmF0aW9uLCBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpLCBudWxscHRyLCAm
b2JzZXJ2ZXIpOworICAgIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25EZXBlbmRlbmNpZXMgZGVwZW5k
ZW5jaWVzIHsgJm9ic2VydmVyIH07CisgICAgZGVwZW5kZW5jaWVzLmFsbG9jYXRvciA9IFdURk1v
dmUocG9ydEFsbG9jYXRvcik7CisgICAgZGVwZW5kZW5jaWVzLmFzeW5jX3Jlc29sdmVyX2ZhY3Rv
cnkgPSBXVEZNb3ZlKGFzeW5jUmVzb2x2ZUZhY3RvcnkpOworCisgICAgcmV0dXJuIG1fZmFjdG9y
eS0+Q3JlYXRlUGVlckNvbm5lY3Rpb24oY29uZmlndXJhdGlvbiwgV1RGTW92ZShkZXBlbmRlbmNp
ZXMpKTsKIH0KIAogcnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvciYgTGliV2ViUlRDUHJvdmlk
ZXI6OmNlcnRpZmljYXRlR2VuZXJhdG9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKaW5kZXggZDgwOGM0ODBiNWQxOWZhNzQ5Nzc4ZWRiZDViNjAyODFkNzRhOTA0NC4uNWQxMmU3
YjhmNmM3ZTY5OGU5NTZjOWU0MmYyODhlMzk3ZjUwMzY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKQEAgLTUxLDYgKzUxLDcgQEAgY2xhc3MgUlRDQ2VydGlmaWNhdGVHZW5l
cmF0b3I7CiB9CiAKIG5hbWVzcGFjZSB3ZWJydGMgeworY2xhc3MgQXN5bmNSZXNvbHZlckZhY3Rv
cnk7CiBjbGFzcyBQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U7CiB9CiAjZW5kaWYKQEAg
LTg4LDEyICs4OSw2IEBAIHB1YmxpYzoKICAgICAgICAgY2FsbGJhY2sobWFrZVVuZXhwZWN0ZWQo
TUROU1JlZ2lzdGVyRXJyb3I6Ok5vdEltcGxlbWVudGVkKSk7CiAgICAgfQogCi0gICAgdmlydHVh
bCB2b2lkIHJlc29sdmVNRE5TTmFtZShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQWRkcmVzc09yRXJyb3ImJik+JiYgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBVTlVTRURfUEFSQU0obmFtZSk7Ci0gICAgICAgIGNhbGxiYWNrKG1h
a2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpOb3RJbXBsZW1lbnRlZCkpOwotICAgIH0K
LQogI2lmIFVTRShMSUJXRUJSVEMpCiAgICAgdmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRj
OjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKIApAQCAtMTE3LDcgKzExMiw3IEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBMaWJXZWJSVENQcm92aWRlcigpID0gZGVmYXVsdDsKIAotICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVy
Q29ubmVjdGlvbih3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6Ok5ldHdvcmtN
YW5hZ2VyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Jiwgd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKTsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpOZXR3b3JrTWFuYWdlciYsIHJ0Yzo6
UGFja2V0U29ja2V0RmFjdG9yeSYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJU
Q0NvbmZpZ3VyYXRpb24mJiwgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6QXN5bmNSZXNvbHZlckZh
Y3Rvcnk+JiYpOwogCiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25GYWN0b3J5SW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbkZhY3RvcnkocnRjOjpUaHJl
YWQqIG5ldHdvcmtUaHJlYWQsIHJ0Yzo6VGhyZWFkKiBzaWduYWxpbmdUaHJlYWQsIExpYldlYlJU
Q0F1ZGlvTW9kdWxlKik7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRl
b0RlY29kZXJGYWN0b3J5PiBjcmVhdGVEZWNvZGVyRmFjdG9yeSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4
IDhjMjY4NThkODFhNjMwZGM5YzVlY2FlZTc2ZmExZjYwNjc4MDc5YWEuLjE1OTdlYjcxZWRkNWY3
YzAzYmU4NmI2NWI4ZDkxNGNmMDJlNjJlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTE3MiwyNCArMTcy
LDI0IEBAIE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3Rvcnk6Ok1vY2tMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvbkZhY3RvcnkoU3RyaW5nJiYKIHsKIH0KIAotcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkZhY3Rvcnk6OkNyZWF0ZVBlZXJDb25uZWN0aW9uKGNvbnN0IHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mLCBzdGQ6OnVuaXF1ZV9wdHI8Y3JpY2tl
dDo6UG9ydEFsbG9jYXRvcj4sIHN0ZDo6dW5pcXVlX3B0cjxydGM6OlJUQ0NlcnRpZmljYXRlR2Vu
ZXJhdG9ySW50ZXJmYWNlPiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyKiBvYnNlcnZl
cikKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBN
b2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbihj
b25zdCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiwg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbkRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXMpCiB7CiAgICAg
aWYgKG1fdGVzdENhc2UgPT0gIklDRUNhbmRpZGF0ZXMiKQotICAgICAgICByZXR1cm4gbmV3IHJ0
Yzo6UmVmQ291bnRlZE9iamVjdDxNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25Gb3JJY2VDYW5k
aWRhdGVzPigqb2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9i
amVjdDxNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25Gb3JJY2VDYW5kaWRhdGVzPigqZGVwZW5k
ZW5jaWVzLm9ic2VydmVyKTsKIAogICAgIGlmIChtX3Rlc3RDYXNlID09ICJJQ0VDb25uZWN0aW9u
U3RhdGUiKQotICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxNb2NrTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25Gb3JJY2VDb25uZWN0aW9uU3RhdGU+KCpvYnNlcnZlcik7Cisg
ICAgICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbkZvckljZUNvbm5lY3Rpb25TdGF0ZT4oKmRlcGVuZGVuY2llcy5vYnNlcnZlcik7
CiAKICAgICBpZiAobV90ZXN0Q2FzZSA9PSAiTGliV2ViUlRDUmVsZWFzaW5nV2hpbGVDcmVhdGlu
Z09mZmVyIikKLSAgICAgICAgcmV0dXJuIG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xp
YldlYlJUQ1BlZXJDb25uZWN0aW9uUmVsZWFzZWRJbk5ldHdvcmtUaHJlYWRXaGlsZUNyZWF0aW5n
T2ZmZXI+KCpvYnNlcnZlcik7CisgICAgICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2Jq
ZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFkV2hp
bGVDcmVhdGluZ09mZmVyPigqZGVwZW5kZW5jaWVzLm9ic2VydmVyKTsKIAogICAgIGlmIChtX3Rl
c3RDYXNlID09ICJMaWJXZWJSVENSZWxlYXNpbmdXaGlsZUdldHRpbmdTdGF0cyIpCi0gICAgICAg
IHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFkV2hpbGVHZXR0aW5nU3RhdHM+KCpvYnNlcnZlcik7
CisgICAgICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQ
ZWVyQ29ubmVjdGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFkV2hpbGVHZXR0aW5nU3RhdHM+KCpk
ZXBlbmRlbmNpZXMub2JzZXJ2ZXIpOwogCiAgICAgaWYgKG1fdGVzdENhc2UgPT0gIkxpYldlYlJU
Q1JlbGVhc2luZ1doaWxlU2V0dGluZ0Rlc2NyaXB0aW9uIikKLSAgICAgICAgcmV0dXJuIG5ldyBy
dGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uUmVsZWFzZWRJ
bk5ldHdvcmtUaHJlYWRXaGlsZVNldHRpbmdEZXNjcmlwdGlvbj4oKm9ic2VydmVyKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uUmVsZWFzZWRJbk5ldHdvcmtUaHJlYWRXaGlsZVNldHRpbmdEZXNjcmlwdGlvbj4oKmRl
cGVuZGVuY2llcy5vYnNlcnZlcik7CiAKLSAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9i
amVjdDxNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24+KCpvYnNlcnZlcik7CisgICAgcmV0dXJu
IG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uPigq
ZGVwZW5kZW5jaWVzLm9ic2VydmVyKTsKIH0KIAogcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6
VmlkZW9UcmFja0ludGVyZmFjZT4gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeTo6
Q3JlYXRlVmlkZW9UcmFjayhjb25zdCBzdGQ6OnN0cmluZyYgaWQsIHdlYnJ0Yzo6VmlkZW9UcmFj
a1NvdXJjZUludGVyZmFjZSogc291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKaW5kZXggMDg3NjEyOTMyMzFmNGJlYTA2
YzE2NmJjYjA5ZjQwZDA0OTk0OTA0MC4uNzdhMjE3MGUzMTcxMDllYjA1NDAwNDQ1YjQ5MzU2MDE1
NDg0YzdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRD
UGVlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5oCkBAIC0yNDEsNyArMjQxLDcgQEAgcHJvdGVjdGVkOgogICAgIE1v
Y2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoU3RyaW5nJiYpOwogCiBwcml2YXRlOgot
ICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBD
cmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjpSVENDb25maWd1cmF0aW9uJiwgc3RkOjp1bmlxdWVfcHRyPGNyaWNrZXQ6OlBvcnRBbGxvY2F0
b3I+LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvckludGVyZmFj
ZT4sIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciopIGZpbmFsOworICAgIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBDcmVhdGVQZWVyQ29u
bmVjdGlvbihjb25zdCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1
cmF0aW9uJiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkRlcGVuZGVuY2llcykgZmluYWw7CiAKICAg
ICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpNZWRpYVN0cmVhbUludGVyZmFjZT4gQ3JlYXRl
TG9jYWxNZWRpYVN0cmVhbShjb25zdCBzdGQ6OnN0cmluZyYpIGZpbmFsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVn
aXN0ZXIuY3BwCmluZGV4IDVlMDkyZDU3YzM5NzhmNmQxYzU0OWRlMGExOWY2ZTE2NWNkNzUyN2Mu
LjVjMTliODEzMjViOGFmYTc0NjNiZGZhMGVhZTc5MmM4OWE3ZTEwOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVn
aXN0ZXIuY3BwCkBAIC0xNTYsOTcgKzE1Niw2IEBAIHZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6
cmVnaXN0ZXJNRE5TTmFtZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzCiAg
ICAgfQogICAgIHBlbmRpbmdSZWdpc3RyYXRpb25SZXF1ZXN0cygpLmFkZChwZW5kaW5nUmVnaXN0
cmF0aW9uUmVxdWVzdENvdW50KyssIFdURk1vdmUocGVuZGluZ1JlcXVlc3QpKTsKIH0KLQotc3Ry
dWN0IFBlbmRpbmdSZXNvbHV0aW9uUmVxdWVzdCB7Ci0gICAgUGVuZGluZ1Jlc29sdXRpb25SZXF1
ZXN0KFJlZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb24sIHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgICAgIDogY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQotICAgICAgICAsIHJlcXVlc3RJZGVudGlmaWVyKHJlcXVlc3RJ
ZGVudGlmaWVyKQotICAgICAgICAsIHRpbWVvdXRUaW1lcigqdGhpcywgJlBlbmRpbmdSZXNvbHV0
aW9uUmVxdWVzdDo6dGltZW91dCkKLSAgICAgICAgLCBzZXNzaW9uSUQoc2Vzc2lvbklEKQotICAg
IHsKLSAgICAgICAgdGltZW91dFRpbWVyLnN0YXJ0T25lU2hvdCg1MDBfbXMpOwotICAgIH0KLQot
ICAgIH5QZW5kaW5nUmVzb2x1dGlvblJlcXVlc3QoKQotICAgIHsKLSAgICAgICAgaWYgKHNlcnZp
Y2UpCi0gICAgICAgICAgICBETlNTZXJ2aWNlUmVmRGVhbGxvY2F0ZShzZXJ2aWNlKTsKLSAgICAg
ICAgaWYgKG9wZXJhdGlvblNlcnZpY2UpCi0gICAgICAgICAgICBETlNTZXJ2aWNlUmVmRGVhbGxv
Y2F0ZShvcGVyYXRpb25TZXJ2aWNlKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRpbWVvdXQoKQotICAg
IHsKLSAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVyOjpG
aW5pc2hlZFJlc29sdmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVj
dGVkKE1ETlNSZWdpc3RlckVycm9yOjpUaW1lb3V0KSB9LCAwKTsKLSAgICAgICAgcmVxdWVzdElk
ZW50aWZpZXIgPSAwOwotICAgIH0KLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rp
b247Ci0gICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgeyAwIH07Ci0gICAgRE5TU2Vydmlj
ZVJlZiBzZXJ2aWNlIHsgbnVsbHB0ciB9OwotICAgIEROU1NlcnZpY2VSZWYgb3BlcmF0aW9uU2Vy
dmljZSB7IG51bGxwdHIgfTsKLSAgICBUaW1lciB0aW1lb3V0VGltZXI7Ci0gICAgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEOwotfTsKLQotc3RhdGljIHZvaWQgcmVzb2x2ZU1ETlNOYW1lQ2FsbGJh
Y2soRE5TU2VydmljZVJlZiwgRE5TU2VydmljZUZsYWdzLCB1aW50MzJfdCwgRE5TU2VydmljZUVy
cm9yVHlwZSBlcnJvckNvZGUsIGNvbnN0IGNoYXIgKmhvc3RuYW1lLCBjb25zdCBzdHJ1Y3Qgc29j
a2FkZHIgKnNvY2tldEFkZHJlc3MsIHVpbnQzMl90IHR0bCwgdm9pZCAqY29udGV4dCkKLXsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ1Jlc29sdXRpb25SZXF1ZXN0PiByZXF1ZXN0IHsgc3Rh
dGljX2Nhc3Q8UGVuZGluZ1Jlc29sdXRpb25SZXF1ZXN0Kj4oY29udGV4dCkgfTsKLQotICAgIGlm
ICghcmVxdWVzdC0+cmVxdWVzdElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
IChlcnJvckNvZGUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9JTl9DQUxMQkFD
SyhyZXF1ZXN0LT5zZXNzaW9uSUQsICJyZXNvbHZlTUROU05hbWVDYWxsYmFjayBNRE5TIGVycm9y
ICVkIiwgZXJyb3JDb2RlKTsKLSAgICAgICAgcmVxdWVzdC0+Y29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6V2ViTUROU1JlZ2lzdGVyOjpGaW5pc2hlZFJlc29sdmluZ01ETlNOYW1lIHsgcmVxdWVz
dC0+cmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpE
TlNTRCkgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjb25zdCB2b2lkKiBh
ZGRyZXNzID0gc29ja2V0QWRkcmVzcy0+c2FfZmFtaWx5ID09IEFGX0lORVQ2ID8gKGNvbnN0IHZv
aWQqKSAmKChjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW42Kilzb2NrZXRBZGRyZXNzKS0+c2luNl9h
ZGRyIDogKGNvbnN0IHZvaWQqKSYoKGNvbnN0IHN0cnVjdCBzb2NrYWRkcl9pbiopc29ja2V0QWRk
cmVzcyktPnNpbl9hZGRyOwotCi0gICAgY2hhciBidWZmZXJbSU5FVDZfQUREUlNUUkxFTl0gPSB7
IDAgfTsKLSAgICBpZiAoIWluZXRfbnRvcChzb2NrZXRBZGRyZXNzLT5zYV9mYW1pbHksIGFkZHJl
c3MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRURfSU5fQ0FMTEJBQ0socmVxdWVzdC0+c2Vzc2lvbklELCAicmVzb2x2ZU1ETlNOYW1lQ2Fs
bGJhY2sgaW5ldF9udG9wIGVycm9yIik7Ci0gICAgICAgIHJlcXVlc3QtPmNvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OldlYk1ETlNSZWdpc3Rlcjo6RmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZSB7
IHJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChNRE5TUmVnaXN0ZXJF
cnJvcjo6RE5TU0QpIH0sIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcmVxdWVz
dC0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVyOjpGaW5pc2hlZFJl
c29sdmluZ01ETlNOYW1lIHsgcmVxdWVzdC0+cmVxdWVzdElkZW50aWZpZXIsIFN0cmluZyB7IGJ1
ZmZlciB9IH0sIDApOwotfQotCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlc29sdmVNRE5T
TmFtZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHNlc3Npb25JRCk7Ci0g
ICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IHN0ZDo6bWFrZV91bmlxdWU8UGVuZGluZ1Jlc29sdXRp
b25SZXF1ZXN0PihtYWtlUmVmKG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkpLCByZXF1ZXN0SWRl
bnRpZmllciwgc2Vzc2lvbklEKTsKLQotICAgIGlmIChhdXRvIGVycm9yID0gRE5TU2VydmljZUNy
ZWF0ZUNvbm5lY3Rpb24oJnBlbmRpbmdSZXF1ZXN0LT5zZXJ2aWNlKSkgewotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgInJlc29sdmVNRE5TTmFtZSBETlNTZXJ2aWNl
Q3JlYXRlQ29ubmVjdGlvbiBlcnJvciAlZCIsIGVycm9yKTsKLSAgICAgICAgbV9jb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVz
b2x2aW5nTUROU05hbWUgeyByZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQoTUROU1Jl
Z2lzdGVyRXJyb3I6OkROU1NEKSB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IEROU1NlcnZpY2VSZWYgc2VydmljZTsKLSAgICBhdXRvIGVycm9yID0gRE5TU2VydmljZUdldEFk
ZHJJbmZvKCZzZXJ2aWNlLAotICAgICAgICBrRE5TU2VydmljZUZsYWdzVW5pcXVlLAotICAgICAg
ICAwLAotICAgICAgICBrRE5TU2VydmljZVByb3RvY29sX0lQdjQsCi0gICAgICAgIG5hbWUudXRm
OCgpLmRhdGEoKSwKLSAgICAgICAgcmVzb2x2ZU1ETlNOYW1lQ2FsbGJhY2ssCi0gICAgICAgIHBl
bmRpbmdSZXF1ZXN0LmdldCgpKTsKLSAgICBwZW5kaW5nUmVxdWVzdC0+b3BlcmF0aW9uU2Vydmlj
ZSA9IHNlcnZpY2U7Ci0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoc2Vzc2lvbklELCAicmVzb2x2ZU1ETlNOYW1lIEROU1NlcnZpY2VHZXRBZGRySW5mbyBl
cnJvciAlZCIsIGVycm9yKTsKLSAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVzb2x2aW5nTUROU05hbWUgeyBy
ZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQoTUROU1JlZ2lzdGVyRXJyb3I6OkROU1NE
KSB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBwZW5kaW5nUmVxdWVzdC5yZWxl
YXNlKCk7Ci0KLSAgICBlcnJvciA9IEROU1NlcnZpY2VTZXREaXNwYXRjaFF1ZXVlKHNlcnZpY2Us
IGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgInJlc29sdmVNRE5TTmFtZSBETlNTZXJ2
aWNlU2V0RGlzcGF0Y2hRdWV1ZSBlcnJvciAlZCIsIGVycm9yKTsKLSAgICAgICAgbV9jb25uZWN0
aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVk
UmVzb2x2aW5nTUROU05hbWUgeyByZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQoTURO
U1JlZ2lzdGVyRXJyb3I6OkROU1NEKSB9LCAwKTsKLSAgICB9Ci19CiAjZWxzZQogdm9pZCBOZXR3
b3JrTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllcikKIHsKQEAgLTI1OCwxMiArMTY3LDYgQEAgdm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVy
OjpyZWdpc3Rlck1ETlNOYW1lKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBQQUw6OlNlc3MK
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdp
c3Rlcjo6RmluaXNoZWRSZWdpc3RlcmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1h
a2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpOb3RJbXBsZW1lbnRlZCkgfSwgMCk7CiB9
CiAKLXZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6cmVzb2x2ZU1ETlNOYW1lKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYg
bmFtZSkKLXsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgInJlc29sdmVN
RE5TTmFtZSBub3QgaW1wbGVtZW50ZWQiKTsKLSAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdpc3Rlcjo6RmluaXNoZWRSZXNvbHZpbmdNRE5TTmFt
ZSB7IHJlcXVlc3RJZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChNRE5TUmVnaXN0ZXJFcnJvcjo6
Tm90SW1wbGVtZW50ZWQpIH0sIDApOwotfQotCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgppbmRleCBhODhmNzcwYWM1
MmZkOTIyZmU1NDczODUwYWE2OTYzZGEwZWUwNWMwLi42MmJlZDdlMzYyNTBhYzI3YTAzMTU1MDk4
OGZmMmUzNTNjNjViZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4K
QEAgLTI1LDcgKzI1LDYgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtNRE5TUmVnaXN0ZXIgewogICAg
IFVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50
SWRlbnRpZmllcikKICAgICBSZWdpc3Rlck1ETlNOYW1lKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
ciBkb2N1bWVudElkZW50aWZpZXIsIFN0cmluZyBpcEFkZHJlc3MpCi0gICAgUmVzb2x2ZU1ETlNO
YW1lKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFN0cmluZyBuYW1lKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmNwcAppbmRleCBmZGNiN2Q0ZTExZTIyMzFlZjVkYWRlNjg1YWM0YzRhYzIyMmY4
Y2QzLi5hZmUyNDA4ODRjM2NiYWFhNmFkMjM4YmJlMjNmOTU5MzE1OTE5MjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5jcHAKQEAgLTMwLDE0ICszMCwyMyBAQAogCiAjaW5jbHVkZSAiTGliV2Vi
UlRDTmV0d29yay5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDx3ZWJydGMv
YXBpL2FzeW5jcmVzb2x2ZXJmYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL3BjL3BlZXJjb25u
ZWN0aW9uZmFjdG9yeS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCitjbGFzcyBBc3luY1Jlc29sdmVyRmFjdG9yeSA6IHB1YmxpYyB3ZWJydGM6OkFz
eW5jUmVzb2x2ZXJGYWN0b3J5IHsKK3ByaXZhdGU6CisgICAgcnRjOjpBc3luY1Jlc29sdmVySW50
ZXJmYWNlKiBDcmVhdGUoKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkuY3JlYXRlQXN5
bmNSZXNvbHZlcigpOworICAgIH0KK307CisKIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5l
Y3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29u
bmVjdGlvbihvYnNlcnZlciwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29y
aygpLm1vbml0b3IoKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
LnNvY2tldEZhY3RvcnkoKSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgcmV0dXJuIFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLm1vbml0b3IoKSwgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygpLnNvY2tldEZhY3RvcnkoKSwg
V1RGTW92ZShjb25maWd1cmF0aW9uKSwgc3RkOjptYWtlX3VuaXF1ZTxBc3luY1Jlc29sdmVyRmFj
dG9yeT4oKSk7CiB9CiAKIHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpCkBAIC01NSwxMSArNjQsNiBAQCB2b2lkIExpYldlYlJUQ1Byb3ZpZGVy
OjpyZWdpc3Rlck1ETlNOYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZG9j
dQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tZG5zUmVn
aXN0ZXIoKS5yZWdpc3Rlck1ETlNOYW1lKHNlc3Npb25JRCwgZG9jdW1lbnRJZGVudGlmaWVyLCBp
cEFkZHJlc3MsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAotdm9pZCBMaWJXZWJSVENQcm92aWRl
cjo6cmVzb2x2ZU1ETlNOYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQWRkcmVzc09yRXJyb3ImJik+JiYgY2Fs
bGJhY2spCi17Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDTmV0d29yaygp
Lm1kbnNSZWdpc3RlcigpLnJlc29sdmVNRE5TTmFtZShzZXNzaW9uSUQsIG5hbWUsIFdURk1vdmUo
Y2FsbGJhY2spKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0Uo
TElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBlNzA4YTU1MjlmNDNjYWUxMjYz
NDdjNTcxNGExOTg4Y2IwZjdlNTE1Li4wYmJhMjVhMjg4MWNkZmVkNWRjZjg4ZGMxNjRiZGZmZDk0
NDA4ODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTQsNyArNTQsNiBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRp
ZmllcikgZmluYWw7CiAgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFBBTDo6U2Vzc2lvbklELCB1
aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE1ETlNOYW1lT3JFcnJvciYmKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCByZXNvbHZlTUROU05hbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChJUEFkZHJlc3NPckVycm9yJiYpPiYmKSBmaW5hbDsKICAgICB2
b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIGZpbmFsOwogfTsKICNlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDU29ja2V0RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuaAppbmRleCA4ZGE0OWEzYWQ2ZjViODU2MDZhNWRh
ZjNjZDUxYTE0N2ZhOTkwYTYzLi5mMGI0MTk1NzEzZmI3NTVhMDA0OTczOWE2MjVhMjAxY2M0OTJl
YzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDU29ja2V0RmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgKQEAgLTUxLDYgKzUxLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCisgICAgcnRjOjpBc3lu
Y1Jlc29sdmVySW50ZXJmYWNlKiBjcmVhdGVBc3luY1Jlc29sdmVyKCkgeyByZXR1cm4gQ3JlYXRl
QXN5bmNSZXNvbHZlcigpOyB9CisKIHByaXZhdGU6CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tl
dCogQ3JlYXRlVWRwU29ja2V0KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1p
blBvcnQsIHVpbnQxNl90IG1heFBvcnQpIGZpbmFsOwogICAgIHJ0Yzo6QXN5bmNQYWNrZXRTb2Nr
ZXQqIENyZWF0ZVNlcnZlclRjcFNvY2tldChjb25zdCBydGM6OlNvY2tldEFkZHJlc3MmLCB1aW50
MTZfdCBtaW5fcG9ydCwgdWludDE2X3QgbWF4X3BvcnQsIGludCBvcHRpb25zKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5T
UmVnaXN0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
Yk1ETlNSZWdpc3Rlci5jcHAKaW5kZXggZjE5Yzc0NDk1YzY3ZjY1MWIzOTVmMWQxYTI5YzA3YzJh
YTc0NmVlMS4uZjIyNzAwODYzZjViY2U3Y2QzNWNhYTZlMGM4MGE0ODNmMmZmYTdjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdp
c3Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
Yk1ETlNSZWdpc3Rlci5jcHAKQEAgLTUyLDEzICs1Miw2IEBAIHZvaWQgV2ViTUROU1JlZ2lzdGVy
OjpmaW5pc2hlZFJlZ2lzdGVyaW5nTUROU05hbWUodWludDY0X3QgaWRlbnRpZmllciwgTGliV2Vi
UlRDCiAgICAgcGVuZGluZ1JlZ2lzdHJhdGlvbi5jYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwog
fQogCi12b2lkIFdlYk1ETlNSZWdpc3Rlcjo6ZmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZSh1aW50
NjRfdCBpZGVudGlmaWVyLCBMaWJXZWJSVENQcm92aWRlcjo6SVBBZGRyZXNzT3JFcnJvciYmIHJl
c3VsdCkKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nUmVzb2x1dGlvbnMudGFrZShp
ZGVudGlmaWVyKTsKLSAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7Ci19Ci0KIHZvaWQgV2ViTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVz
KHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxEb2N1bWVudElkZW50aWZpZXJUeXBlPihkb2N1bWVudElkZW50
aWZpZXIpOwpAQCAtODksMTUgKzgyLDYgQEAgdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVy
TUROU05hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb2N1bWUKICAgICAg
ICAgZmluaXNoZWRSZWdpc3RlcmluZ01ETlNOYW1lKG1fcGVuZGluZ1JlcXVlc3RzSWRlbnRpZmll
ciwgbWFrZVVuZXhwZWN0ZWQoTUROU1JlZ2lzdGVyRXJyb3I6OkludGVybmFsKSk7CiB9CiAKLXZv
aWQgV2ViTUROU1JlZ2lzdGVyOjpyZXNvbHZlTUROU05hbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTGliV2ViUlRD
UHJvdmlkZXI6OklQQWRkcmVzc09yRXJyb3ImJik+JiYgY2FsbGJhY2spCi17Ci0gICAgbV9wZW5k
aW5nUmVzb2x1dGlvbnMuYWRkKCsrbV9wZW5kaW5nUmVxdWVzdHNJZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7Ci0KLSAgICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwotICAg
IGlmICghY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrTUROU1JlZ2lzdGVyOjpSZXNv
bHZlTUROU05hbWUgeyBtX3BlbmRpbmdSZXF1ZXN0c0lkZW50aWZpZXIsIHNlc3Npb25JRCwgbmFt
ZSB9LCAwKSkKLSAgICAgICAgZmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZShtX3BlbmRpbmdSZXF1
ZXN0c0lkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpJbnRlcm5h
bCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYk1ETlNSZWdpc3Rlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYk1ETlNSZWdpc3Rlci5oCmluZGV4IGJkNmU5ZDFjN2RkNjc2ZGQyMDIzODYzNmE3N2Q1
NGMwOThkNjAzMmEuLmMxYmJjYWMyMThlMzA4YWJjYjk2ODBiZjM2MTMyNzNlN2M5MGExZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5T
UmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViTUROU1JlZ2lzdGVyLmgKQEAgLTQ2LDEzICs0NiwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHVucmVnaXN0ZXJNRE5TTmFtZXModWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKTsKICAgICB2
b2lkIHJlZ2lzdGVyTUROU05hbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGRvY3VtZW50SWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6Ok1ETlNOYW1lT3JFcnJvciYmKT4mJik7Ci0gICAg
dm9pZCByZXNvbHZlTUROU05hbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6SVBBZGRy
ZXNzT3JFcnJvciYmKT4mJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZmluaXNoZWRS
ZWdpc3RlcmluZ01ETlNOYW1lKHVpbnQ2NF90LCBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
TUROU05hbWVPckVycm9yJiYpOwotICAgIHZvaWQgZmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZSh1
aW50NjRfdCwgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OklQQWRkcmVzc09yRXJyb3ImJik7
CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1JlZ2lzdHJhdGlvbiB7CiAgICAgICAgIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6Ok1ETlNOYW1lT3JFcnJvciYm
KT4gY2FsbGJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgppbmRleCBl
OTQzZTk5OGVhYmU1MWRjMzUxZGE5N2U4NWViYWE3YmRkMDJmMDk0Li42ZTUyMWNjOTc5OWY4NDNh
ZmYzOTIzMmYxYTBkNjFjMTNkNGM2YTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIubWVz
c2FnZXMuaW4KQEAgLTI0LDcgKzI0LDYgQEAKIAogbWVzc2FnZXMgLT4gV2ViTUROU1JlZ2lzdGVy
IHsKICAgICB2b2lkIEZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFtZSh1aW50NjRfdCBpZGVudGlm
aWVyLCBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6TUROU05hbWVPckVycm9yIHJlc3VsdCkK
LSAgICB2b2lkIEZpbmlzaGVkUmVzb2x2aW5nTUROU05hbWUodWludDY0X3QgaWRlbnRpZmllciwg
V2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OklQQWRkcmVzc09yRXJyb3IgcmVzdWx0KQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDQxMGYyMGZhZDcwOWQwNjA4MmJh
YzBiZTM1N2YxNjU0NGE3YWExNi4uZDhjNmFkMTQ4ODM5ZTM2NzJmODAzMzNjNzc5MTdiMDc4MmNk
NDlkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTEwLTE3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBIYW5kbGUgTUROUyByZXNvbHV0aW9uIG9mIGNh
bmRpZGF0ZXMgdGhyb3VnaCBsaWJ3ZWJydGMgZGlyZWN0bHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MDY4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
VGVzdCBzaG91bGQgbm8gbG9uZ2VyIGJlIGZsYWt5IGFzIHdlIG5vIGxvbmdlciBlbmZvcmNlIGEg
dGltZXIgZm9yIHJlc29sdmluZyBNRE5TIGNhbmRpZGF0ZXMuCisKIDIwMTgtMTAtMTcgIEFsaSBK
dW1hICA8YWp1bWFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZsYWt5IEludGVyc2VjdGlvbk9i
c2VydmVyIHdlYiBwbGF0Zm9ybSB0ZXN0cyBpbnZvbHZpbmcgc3R5bGUgdXBkYXRlcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMDc0NDUwOTM5OTIyM2RlNDVkNjljYzg4NDU2MDU4MmU3NTlkY2E5Yy4u
ZTk1MDg0NWU2MjE1YWM4ZGViN2YzOTZiNmYwZTY2YmZjMTlkNDM4MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xMjE2LDcgKzEyMTYsNiBAQCBtZWRpYS9zZXNzaW9uIFsgU2tpcCBdCiAKIHdlYnJ0
Yy9zaW11bGNhc3QtaDI2NC5odG1sIFsgU2xvdyBdCiB3ZWJydGMvZGF0YWNoYW5uZWwvbXVsdGlw
bGUtY29ubmVjdGlvbnMuaHRtbCBbIFNsb3cgXQotd2Via2l0Lm9yZy9iLzE4NzE4MCB3ZWJydGMv
ZGF0YWNoYW5uZWwvbWRucy1pY2UtY2FuZGlkYXRlcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xNzEwOTQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cnRjcGVlcmNvbm5lY3Rpb24vcnRjcGVlcmNvbm5lY3Rpb24taWRsLmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8xNzJmMjEgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvZ2V0c3RhdHMuaHRtbCBbIEZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sIFsgU2tpcCBd
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353288</attachid>
            <date>2018-10-29 07:37:01 -0700</date>
            <delta_ts>2018-10-29 14:31:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190681-20181029153659.patch</filename>
            <type>text/plain</type>
            <size>35244</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA2NDYyZjM5YjM0OTYzZjdlNzM3ODg5NTdmOTZkOTVmYWRkNzg4NWQ5Li4yMDk1
OThmNzFjYjFlYzViNDE0YzljMDk5ZTMxY2I1NjAwMjBlMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0xMC0yOSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIE1ETlMgcmVzb2x1dGlv
biBvZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMuaU9TLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4
cDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKwogMjAxOC0x
MC0yMyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMjM3MjYxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY4ZWZhYzY4MWI4ODdj
YWM5ZGI4NjJlOWFhYzBkYzJhMmJjMTVjMGYuLjMwMGQ2N2U2OWMxYTFhMzU0NDZiMDlmZWVjY2Qz
NzdlNzRkZjk2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0xMC0yOSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIE1ETlMgcmVz
b2x1dGlvbiBvZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVtb3ZlIHRoZSBwcmV2aW91
cyBNRE5TIHJlc29sdXRpb24gbWVjaGFuaXNtLgorICAgICAgICBJbnN0ZWFkLCBhZGQgc3VwcG9y
dCBmb3IgdGhlIEFzeW5jUmVzb2x2ZXIgbWVjaGFuaXNtIGFkZGVkIHRvIGxpYndlYnJ0Yy4KKyAg
ICAgICAgQ292ZXJlZCBieSBjdXJyZW50IG1kbnMgd2VicnRjIHRlc3QgdGhhdCBpcyB1bmZsYWtl
ZC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25CYWNrZW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlZXJDb25uZWN0aW9uQmFja2VuZDo6YWRkSWNlQ2Fu
ZGlkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNy
ZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tMaWJXZWJS
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbik6CisgICAgICAgICogdGVz
dGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaDoKKwogMjAxOC0xMC0yOSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW52YWxpZCBzc3JjIHZhbHVl
IGluIHRoZSBzdGF0cyBvZiB0eXBlICdpbmJvdW5kLXJ0cCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGFjY2Y0OWFh
NGYxYjg1ZTY1NGZjODhjYWUzNmYzYTVhYTgyY2NkMC4uODNhYzYzODllODAwNzliMGJmNzQzYmE3
ZDNiZTI5NzI1NmJhY2UxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOC0xMC0yOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSGFuZGxlIE1ETlMg
cmVzb2x1dGlvbiBvZiBjYW5kaWRhdGVzIHRocm91Z2ggbGlid2VicnRjIGRpcmVjdGx5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA2ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IEFzeW5jUmVzb2x2ZXIgdG8gcmVzb2x2ZSBNRE5TLgorICAgICAgICBUaGlzIGJhc2ljYWxseSBy
ZXVzZSB0aGUgY29kZSBwYXRoIHVzZWQgdG8gcmVzb2x2ZSBTVFVOIHNlcnZlciBhZGRyZXNzZXMu
CisgICAgICAgIFJlbW92ZWQgTUROUyBzcGVjaWZpYyByZXNvbHV0aW9uLgorICAgICAgICBVc2Ug
ZXhpc3RpbmcgQ0ZIb3N0IHJlc29sdXRpb24gbWVjaGFuaXNtIHRvIGRvIHRoZSBhY3R1YWwgcmVz
b2x1dGlvbi4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBhIHJlc29sdmVyIGlzIGtlcHQgYWxp
dmUgd2hpbGUgaXRlcmF0aW5nIHRocm91Z2ggaXRzIGNsaWVudHMgd2hlbiBzaWduYWxpbmcgZG9u
ZS4KKyAgICAgICAgU29tZSBvZiBpdHMgY2xpZW50cyBtYXkgaW5kZWVkIGNhbGwgRGVzdHJveSgp
IG9uIHRoZSByZXNvbHZlciBkdXJpbmcgdGhhdCBpdGVyYXRpb24uCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcjo6RGVzdHJveSk6CisgICAgICAgIChX
ZWJLaXQ6OkxpYldlYlJUQ1Jlc29sdmVyOjpkb0Rlc3Ryb3kpOgorICAgICAgICAoV2ViS2l0OjpM
aWJXZWJSVENSZXNvbHZlcjo6c2V0UmVzb2x2ZWRBZGRyZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TGliV2ViUlRDUmVzb2x2ZXI6OnNldEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
UHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW46CisKIDIwMTgt
MTAtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtX
UEVdIEFkZCB0aGUgV2ViS2l0VmVyc2lvbi5oIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
CmluZGV4IDRlZTQ0YjQxMGJiNjBlM2VmNjFmMTJlZjgwMjFlNGNiMmQ2YmZiNjUuLmZkZjk1MDNm
MjZmYjk3MDI1ZmFiYjU2ODJjOGY2MDQzMWY5ZDkyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5l
eHAKQEAgLTIyOSwzICsyMjksNSBAQCBfX1pOSzNydGMxNFJUQ0NlcnRpZmljYXRlMTVzc2xfY2Vy
dGlmaWNhdGVFdgogX19aTkszcnRjMTRSVENDZXJ0aWZpY2F0ZTVUb1BFTUV2CiBfX1pOSzNydGMx
NFNTTENlcnRpZmljYXRlOEdldFN0YXRzRXYKIF9fWk4zcnRjMTRSVENDZXJ0aWZpY2F0ZTdGcm9t
UEVNRVJLTlNfMTdSVENDZXJ0aWZpY2F0ZVBFTUUKK19fWk42d2VicnRjMjZQZWVyQ29ubmVjdGlv
bkRlcGVuZGVuY2llc0MxRVBOU18yMlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXJFCitfX1pONndlYnJ0
YzMwUGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlMjBDcmVhdGVQZWVyQ29ubmVjdGlvbkVS
S05TXzIzUGVlckNvbm5lY3Rpb25JbnRlcmZhY2UxNlJUQ0NvbmZpZ3VyYXRpb25FTlN0M19fMTEw
dW5pcXVlX3B0cklON2NyaWNrZXQxM1BvcnRBbGxvY2F0b3JFTlM1XzE0ZGVmYXVsdF9kZWxldGVJ
UzhfRUVFRU5TNl9JTjNydGMzMlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9ySW50ZXJmYWNlRU5TOV9J
U0RfRUVFRVBOU18yMlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXJFCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlP
U3NpbS5leHAKaW5kZXggMmI0OTMwY2I1ZTJkM2NiMmJhOGY3M2I3YmVlZDI0ZmRjYzVkZGM1OS4u
MDI5NDYwNzU0ZDc5N2QwNmZjNzJiZTA1ZDUzYTA5YTA1NGU4NTljMyAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0u
ZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMuaU9Tc2ltLmV4cApAQCAtMjMwLDMgKzIzMCw1IEBAIF9fWk5LM3J0YzE0UlRDQ2VydGlm
aWNhdGUxNXNzbF9jZXJ0aWZpY2F0ZUV2CiBfX1pOSzNydGMxNFJUQ0NlcnRpZmljYXRlNVRvUEVN
RXYKIF9fWk5LM3J0YzE0U1NMQ2VydGlmaWNhdGU4R2V0U3RhdHNFdgogX19aTjNydGMxNFJUQ0Nl
cnRpZmljYXRlN0Zyb21QRU1FUktOU18xN1JUQ0NlcnRpZmljYXRlUEVNRQorX19aTjZ3ZWJydGMy
NlBlZXJDb25uZWN0aW9uRGVwZW5kZW5jaWVzQzFFUE5TXzIyUGVlckNvbm5lY3Rpb25PYnNlcnZl
ckUKK19fWk42d2VicnRjMzBQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UyMENyZWF0ZVBl
ZXJDb25uZWN0aW9uRVJLTlNfMjNQZWVyQ29ubmVjdGlvbkludGVyZmFjZTE2UlRDQ29uZmlndXJh
dGlvbkVOU3QzX18xMTB1bmlxdWVfcHRySU43Y3JpY2tldDEzUG9ydEFsbG9jYXRvckVOUzVfMTRk
ZWZhdWx0X2RlbGV0ZUlTOF9FRUVFTlM2X0lOM3J0YzMyUlRDQ2VydGlmaWNhdGVHZW5lcmF0b3JJ
bnRlcmZhY2VFTlM5X0lTRF9FRUVFUE5TXzIyUGVlckNvbm5lY3Rpb25PYnNlcnZlckUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJy
dGMubWFjLmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9s
aWJ3ZWJydGMubWFjLmV4cAppbmRleCAyYjQ5MzBjYjVlMmQzY2IyYmE4ZjczYjdiZWVkMjRmZGNj
NWRkYzU5Li4wMjk0NjA3NTRkNzk3ZDA2ZmM3MmJlMDVkNTNhMDlhMDU0ZTg1OWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
Lm1hYy5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25z
L2xpYndlYnJ0Yy5tYWMuZXhwCkBAIC0yMzAsMyArMjMwLDUgQEAgX19aTkszcnRjMTRSVENDZXJ0
aWZpY2F0ZTE1c3NsX2NlcnRpZmljYXRlRXYKIF9fWk5LM3J0YzE0UlRDQ2VydGlmaWNhdGU1VG9Q
RU1FdgogX19aTkszcnRjMTRTU0xDZXJ0aWZpY2F0ZThHZXRTdGF0c0V2CiBfX1pOM3J0YzE0UlRD
Q2VydGlmaWNhdGU3RnJvbVBFTUVSS05TXzE3UlRDQ2VydGlmaWNhdGVQRU1FCitfX1pONndlYnJ0
YzI2UGVlckNvbm5lY3Rpb25EZXBlbmRlbmNpZXNDMUVQTlNfMjJQZWVyQ29ubmVjdGlvbk9ic2Vy
dmVyRQorX19aTjZ3ZWJydGMzMFBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZTIwQ3JlYXRl
UGVlckNvbm5lY3Rpb25FUktOU18yM1BlZXJDb25uZWN0aW9uSW50ZXJmYWNlMTZSVENDb25maWd1
cmF0aW9uRU5TdDNfXzExMHVuaXF1ZV9wdHJJTjdjcmlja2V0MTNQb3J0QWxsb2NhdG9yRU5TNV8x
NGRlZmF1bHRfZGVsZXRlSVM4X0VFRUVOUzZfSU4zcnRjMzJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRv
ckludGVyZmFjZUVOUzlfSVNEX0VFRUVQTlNfMjJQZWVyQ29ubmVjdGlvbk9ic2VydmVyRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEyYWE5ZmFlOTlmZmI1YmMyZTcyNzRjNzBlNGYzYjdm
YjJhMGFmNWUuLjYwZTMzNjE0MzJlZTcyZmNmNDFhODQ0MzFkYTY4MmViNjJiZGY0NTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTI3NCw0MiArMjc0LDEwIEBAIHZvaWQgUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjphZGRJY2VDYW5kaWRhdGUoUlRDSWNlQ2FuZGlkYXRlKiBpY2VDYW5kaWRh
dGUsIERPTVByCiAgICAgQVNTRVJUKCFtX3BlZXJDb25uZWN0aW9uLmlzQ2xvc2VkKCkpOwogCiAg
ICAgaWYgKCFpY2VDYW5kaWRhdGUpIHsKLSAgICAgICAgaWYgKG1fd2FpdGluZ0Zvck1ETlNSZXNv
bHV0aW9uKSB7Ci0gICAgICAgICAgICBtX2ZpbmlzaGVkUmVjZWl2aW5nQ2FuZGlkYXRlcyA9IHRy
dWU7Ci0gICAgICAgICAgICBtX2VuZE9mSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgZW5kT2ZJY2VD
YW5kaWRhdGVzKFdURk1vdmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubWRuc0lDRUNh
bmRpZGF0ZXNFbmFibGVkKCkpIHsKLSAgICAgICAgYXV0byBuYW1lID0gZXh0cmFjdElQQWRkcmVz
KGljZUNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkpOwotICAgICAgICBpZiAobmFtZS5lbmRzV2l0aCgi
LmxvY2FsIikpIHsKLSAgICAgICAgICAgICsrbV93YWl0aW5nRm9yTUROU1Jlc29sdXRpb247Ci0g
ICAgICAgICAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9wZWVyQ29u
bmVjdGlvbi5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICAgICAgYXV0byYgcHJv
dmlkZXIgPSBkb2N1bWVudC5wYWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCk7Ci0gICAgICAgICAg
ICBwcm92aWRlci5yZXNvbHZlTUROU05hbWUoZG9jdW1lbnQuc2Vzc2lvbklEKCksIG5hbWUsIFtw
ZWVyQ29ubmVjdGlvbiA9IG1ha2VSZWYobV9wZWVyQ29ubmVjdGlvbiksIHRoaXMsIG5hbWUsIGlj
ZUNhbmRpZGF0ZSA9IG1ha2VSZWYoKmljZUNhbmRpZGF0ZSksIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXSAoTGliV2ViUlRDUHJvdmlkZXI6OklQQWRkcmVzc09yRXJyb3ImJiByZXN1bHQpIG11
dGFibGUgewotICAgICAgICAgICAgICAgIGlmIChwZWVyQ29ubmVjdGlvbi0+aXNTdG9wcGVkKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIC0tbV93YWl0
aW5nRm9yTUROU1Jlc29sdXRpb247Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3Zh
bHVlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcigpICE9IE1ETlNS
ZWdpc3RlckVycm9yOjpUaW1lb3V0KQotICAgICAgICAgICAgICAgICAgICAgICAgcGVlckNvbm5l
Y3Rpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWFrZVN0cmluZygiTUROUyByZXNv
bHV0aW9uIG9mIGEgaG9zdCBjYW5kaWRhdGUgZmFpbGVkIHdpdGggZXJyb3IiLCAodW5zaWduZWQp
cmVzdWx0LmVycm9yKCkpKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAg
ICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGF1dG8gY2FuZGlkYXRlID0gaWNlQ2FuZGlkYXRl
LT5jYW5kaWRhdGUoKTsKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGUucmVwbGFjZShuYW1lLCBy
ZXN1bHQudmFsdWUoKSk7Ci0gICAgICAgICAgICAgICAgaWNlQ2FuZGlkYXRlLT5zZXRDYW5kaWRh
dGUoV1RGTW92ZShjYW5kaWRhdGUpKTsKLSAgICAgICAgICAgICAgICBtX2FkZEljZUNhbmRpZGF0
ZVByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpOwotICAgICAgICAgICAgICAgIHRoaXMtPmRvQWRk
SWNlQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQogICAgIC8vIEZJWE1FOiBBcyBwZXIgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1wYy8jZG9tLXJ0Y3BlZXJjb25uZWN0aW9uLWFkZGljZWNh
bmRpZGF0ZSgpLCB0aGlzIGNoZWNrIHNob3VsZCBiZSBkb25lIGJlZm9yZSBlbnF1ZXVpbmcgdGhl
IHRhc2suCiAgICAgaWYgKGljZUNhbmRpZGF0ZS0+c2RwTWlkKCkuaXNOdWxsKCkgJiYgIWljZUNh
bmRpZGF0ZS0+c2RwTUxpbmVJbmRleCgpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlRyeWluZyB0byBhZGQgYSBjYW5kaWRhdGUgdGhhdCBpcyBtaXNz
aW5nIGJvdGggc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4Il9zIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggNjRlMzgwZTMwMzU5MTFiMWIxY2MwYTk4ZDY3NzIy
YzBiYzY3YWQzMi4uZTk4MTE5NjBjNTdkMGZjZTVmYzYyODc4N2VlYWZkNzgyNmExNDY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAK
IEFMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lOCiAKKyNpbmNsdWRlIDx3ZWJydGMvYXBpL2Fz
eW5jcmVzb2x2ZXJmYWN0b3J5Lmg+CiAjaW5jbHVkZSA8d2VicnRjL2FwaS9hdWRpb19jb2RlY3Mv
YnVpbHRpbl9hdWRpb19kZWNvZGVyX2ZhY3RvcnkuaD4KICNpbmNsdWRlIDx3ZWJydGMvYXBpL2F1
ZGlvX2NvZGVjcy9idWlsdGluX2F1ZGlvX2VuY29kZXJfZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdl
YnJ0Yy9hcGkvcGVlcmNvbm5lY3Rpb25mYWN0b3J5cHJveHkuaD4KQEAgLTI0NCwxMCArMjQ1LDEw
IEBAIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlCiAgICAgICAgIGZhY3RvcnlBbmRUaHJlYWRzLnBh
Y2tldFNvY2tldEZhY3RvcnkgPSBzdGQ6Om1ha2VfdW5pcXVlPEJhc2ljUGFja2V0U29ja2V0RmFj
dG9yeT4oKmZhY3RvcnlBbmRUaHJlYWRzLm5ldHdvcmtUaHJlYWQpOwogICAgIGZhY3RvcnlBbmRU
aHJlYWRzLnBhY2tldFNvY2tldEZhY3RvcnktPnNldERpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0
aW9ucyhtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucyk7CiAKLSAgICByZXR1cm4gY3Jl
YXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsICpmYWN0b3J5QW5kVGhyZWFkcy5uZXR3b3JrTWFu
YWdlciwgKmZhY3RvcnlBbmRUaHJlYWRzLnBhY2tldFNvY2tldEZhY3RvcnksIFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOworICAgIHJldHVybiBjcmVhdGVQZWVyQ29ubmVjdGlvbihvYnNlcnZlciwg
KmZhY3RvcnlBbmRUaHJlYWRzLm5ldHdvcmtNYW5hZ2VyLCAqZmFjdG9yeUFuZFRocmVhZHMucGFj
a2V0U29ja2V0RmFjdG9yeSwgV1RGTW92ZShjb25maWd1cmF0aW9uKSwgbnVsbHB0cik7CiB9CiAK
LXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlv
bk9ic2VydmVyJiBvYnNlcnZlciwgcnRjOjpOZXR3b3JrTWFuYWdlciYgbmV0d29ya01hbmFnZXIs
IHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSYgcGFja2V0U29ja2V0RmFjdG9yeSwgd2VicnRjOjpQ
ZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24p
CitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGli
V2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rp
b25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6TmV0d29ya01hbmFnZXImIG5ldHdvcmtNYW5hZ2Vy
LCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkmIHBhY2tldFNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
LCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpBc3luY1Jlc29sdmVyRmFjdG9yeT4mJiBhc3luY1Jl
c29sdmVGYWN0b3J5KQogewogICAgIGF1dG8mIGZhY3RvcnlBbmRUaHJlYWRzID0gZ2V0U3RhdGlj
RmFjdG9yeUFuZFRocmVhZHMobV91c2VOZXR3b3JrVGhyZWFkV2l0aFNvY2tldFNlcnZlcik7CiAK
QEAgLTI2Myw3ICsyNjQsMTEgQEAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWUKICAgICBpZiAoIWZh
Y3RvcnkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIG1fZmFjdG9yeS0+
Q3JlYXRlUGVlckNvbm5lY3Rpb24oY29uZmlndXJhdGlvbiwgV1RGTW92ZShwb3J0QWxsb2NhdG9y
KSwgbnVsbHB0ciwgJm9ic2VydmVyKTsKKyAgICB3ZWJydGM6OlBlZXJDb25uZWN0aW9uRGVwZW5k
ZW5jaWVzIGRlcGVuZGVuY2llcyB7ICZvYnNlcnZlciB9OworICAgIGRlcGVuZGVuY2llcy5hbGxv
Y2F0b3IgPSBXVEZNb3ZlKHBvcnRBbGxvY2F0b3IpOworICAgIGRlcGVuZGVuY2llcy5hc3luY19y
ZXNvbHZlcl9mYWN0b3J5ID0gV1RGTW92ZShhc3luY1Jlc29sdmVGYWN0b3J5KTsKKworICAgIHJl
dHVybiBtX2ZhY3RvcnktPkNyZWF0ZVBlZXJDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb24sIFdURk1v
dmUoZGVwZW5kZW5jaWVzKSk7CiB9CiAKIHJ0Yzo6UlRDQ2VydGlmaWNhdGVHZW5lcmF0b3ImIExp
YldlYlJUQ1Byb3ZpZGVyOjpjZXJ0aWZpY2F0ZUdlbmVyYXRvcigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQcm92aWRlci5oCmluZGV4IGQ4MDhjNDgwYjVkMTlmYTc0OTc3OGVkYmQ1YjYwMjgxZDc0
YTkwNDQuLjVkMTJlN2I4ZjZjN2U2OThlOTU2YzllNDJmMjg4ZTM5N2Y1MDM2ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01MSw2ICs1MSw3IEBAIGNsYXNzIFJUQ0Nl
cnRpZmljYXRlR2VuZXJhdG9yOwogfQogCiBuYW1lc3BhY2Ugd2VicnRjIHsKK2NsYXNzIEFzeW5j
UmVzb2x2ZXJGYWN0b3J5OwogY2xhc3MgUGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlOwog
fQogI2VuZGlmCkBAIC04OCwxMiArODksNiBAQCBwdWJsaWM6CiAgICAgICAgIGNhbGxiYWNrKG1h
a2VVbmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpOb3RJbXBsZW1lbnRlZCkpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlTUROU05hbWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEFkZHJlc3NPckVycm9yJiYp
PiYmIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOwotICAgICAg
ICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChNRE5TUmVnaXN0ZXJFcnJvcjo6Tm90SW1wbGVtZW50
ZWQpKTsKLSAgICB9Ci0KICNpZiBVU0UoTElCV0VCUlRDKQogICAgIHZpcnR1YWwgcnRjOjpzY29w
ZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25u
ZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7CiAKQEAgLTExNyw3ICsxMTIsNyBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgTGliV2ViUlRDUHJvdmlkZXIoKSA9IGRlZmF1bHQ7
CiAKLSAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24od2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwg
cnRjOjpOZXR3b3JrTWFuYWdlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSYsIHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7CisgICAgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJD
b25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6TmV0d29ya01h
bmFnZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkmLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYsIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkFz
eW5jUmVzb2x2ZXJGYWN0b3J5PiYmKTsKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb25GYWN0
b3J5KHJ0Yzo6VGhyZWFkKiBuZXR3b3JrVGhyZWFkLCBydGM6OlRocmVhZCogc2lnbmFsaW5nVGhy
ZWFkLCBMaWJXZWJSVENBdWRpb01vZHVsZSopOwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlRGVjb2RlckZhY3RvcnkoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmNwcAppbmRleCA4YzI2ODU4ZDgxYTYzMGRjOWM1ZWNhZWU3NmZhMWY2MDY3ODA3OWFhLi4x
NTk3ZWI3MWVkZDVmN2MwM2JlODZiNjViOGQ5MTRjZjAyZTYyZTljIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzIsMjQgKzE3MiwyNCBAQCBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpN
b2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KFN0cmluZyYmCiB7CiB9CiAKLXJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5OjpDcmVhdGVQZWVyQ29ubmVjdGlvbihjb25zdCB3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiwgc3RkOjp1bmlx
dWVfcHRyPGNyaWNrZXQ6OlBvcnRBbGxvY2F0b3I+LCBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpSVEND
ZXJ0aWZpY2F0ZUdlbmVyYXRvckludGVyZmFjZT4sIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNl
cnZlciogb2JzZXJ2ZXIpCitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZT4gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeTo6Q3JlYXRlUGVl
ckNvbm5lY3Rpb24oY29uc3Qgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29u
ZmlndXJhdGlvbiYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25EZXBlbmRlbmNpZXMgZGVwZW5kZW5j
aWVzKQogewogICAgIGlmIChtX3Rlc3RDYXNlID09ICJJQ0VDYW5kaWRhdGVzIikKLSAgICAgICAg
cmV0dXJuIG5ldyBydGM6OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uRm9ySWNlQ2FuZGlkYXRlcz4oKm9ic2VydmVyKTsKKyAgICAgICAgcmV0dXJuIG5ldyBydGM6
OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRm9ySWNlQ2FuZGlk
YXRlcz4oKmRlcGVuZGVuY2llcy5vYnNlcnZlcik7CiAKICAgICBpZiAobV90ZXN0Q2FzZSA9PSAi
SUNFQ29ubmVjdGlvblN0YXRlIikKLSAgICAgICAgcmV0dXJuIG5ldyBydGM6OlJlZkNvdW50ZWRP
YmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uRm9ySWNlQ29ubmVjdGlvblN0YXRlPigq
b2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxNb2Nr
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25Gb3JJY2VDb25uZWN0aW9uU3RhdGU+KCpkZXBlbmRlbmNp
ZXMub2JzZXJ2ZXIpOwogCiAgICAgaWYgKG1fdGVzdENhc2UgPT0gIkxpYldlYlJUQ1JlbGVhc2lu
Z1doaWxlQ3JlYXRpbmdPZmZlciIpCi0gICAgICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVk
T2JqZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFk
V2hpbGVDcmVhdGluZ09mZmVyPigqb2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6
UmVmQ291bnRlZE9iamVjdDxNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25SZWxlYXNlZEluTmV0
d29ya1RocmVhZFdoaWxlQ3JlYXRpbmdPZmZlcj4oKmRlcGVuZGVuY2llcy5vYnNlcnZlcik7CiAK
ICAgICBpZiAobV90ZXN0Q2FzZSA9PSAiTGliV2ViUlRDUmVsZWFzaW5nV2hpbGVHZXR0aW5nU3Rh
dHMiKQotICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxNb2NrTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25SZWxlYXNlZEluTmV0d29ya1RocmVhZFdoaWxlR2V0dGluZ1N0YXRz
Pigqb2JzZXJ2ZXIpOworICAgICAgICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDxN
b2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25SZWxlYXNlZEluTmV0d29ya1RocmVhZFdoaWxlR2V0
dGluZ1N0YXRzPigqZGVwZW5kZW5jaWVzLm9ic2VydmVyKTsKIAogICAgIGlmIChtX3Rlc3RDYXNl
ID09ICJMaWJXZWJSVENSZWxlYXNpbmdXaGlsZVNldHRpbmdEZXNjcmlwdGlvbiIpCi0gICAgICAg
IHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFkV2hpbGVTZXR0aW5nRGVzY3JpcHRpb24+KCpvYnNl
cnZlcik7CisgICAgICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvblJlbGVhc2VkSW5OZXR3b3JrVGhyZWFkV2hpbGVTZXR0aW5nRGVz
Y3JpcHRpb24+KCpkZXBlbmRlbmNpZXMub2JzZXJ2ZXIpOwogCi0gICAgcmV0dXJuIG5ldyBydGM6
OlJlZkNvdW50ZWRPYmplY3Q8TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uPigqb2JzZXJ2ZXIp
OworICAgIHJldHVybiBuZXcgcnRjOjpSZWZDb3VudGVkT2JqZWN0PE1vY2tMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbj4oKmRlcGVuZGVuY2llcy5vYnNlcnZlcik7CiB9CiAKIHJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkZhY3Rvcnk6OkNyZWF0ZVZpZGVvVHJhY2soY29uc3Qgc3RkOjpzdHJpbmcmIGlkLCB3ZWJy
dGM6OlZpZGVvVHJhY2tTb3VyY2VJbnRlcmZhY2UqIHNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5oCmluZGV4IDA4NzYx
MjkzMjMxZjRiZWEwNmMxNjZiY2IwOWY0MGQwNDk5NDkwNDAuLjc3YTIxNzBlMzE3MTA5ZWIwNTQw
MDQ0NWI0OTM1NjAxNTQ4NGM3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaApAQCAtMjQxLDcgKzI0MSw3IEBAIHByb3Rl
Y3RlZDoKICAgICBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KFN0cmluZyYmKTsK
IAogcHJpdmF0ZToKLSAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkludGVyZmFjZT4gQ3JlYXRlUGVlckNvbm5lY3Rpb24oY29uc3Qgd2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYsIHN0ZDo6dW5pcXVlX3B0cjxjcmlja2V0
OjpQb3J0QWxsb2NhdG9yPiwgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6UlRDQ2VydGlmaWNhdGVHZW5l
cmF0b3JJbnRlcmZhY2U+LCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXIqKSBmaW5hbDsK
KyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4g
Q3JlYXRlUGVlckNvbm5lY3Rpb24oY29uc3Qgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZTo6UlRDQ29uZmlndXJhdGlvbiYsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25EZXBlbmRlbmNpZXMp
IGZpbmFsOwogCiAgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6TWVkaWFTdHJlYW1JbnRl
cmZhY2U+IENyZWF0ZUxvY2FsTWVkaWFTdHJlYW0oY29uc3Qgc3RkOjpzdHJpbmcmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29y
a01ETlNSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrTUROU1JlZ2lzdGVyLmNwcAppbmRleCA1ZTA5MmQ1N2MzOTc4ZjZkMWM1NDlkZTBhMTlm
NmUxNjVjZDc1MjdjLi41YzE5YjgxMzI1YjhhZmE3NDYzYmRmYTBlYWU3OTJjODlhN2UxMDllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTURO
U1JlZ2lzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrTUROU1JlZ2lzdGVyLmNwcApAQCAtMTU2LDk3ICsxNTYsNiBAQCB2b2lkIE5ldHdvcmtN
RE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IFBBTDo6U2VzcwogICAgIH0KICAgICBwZW5kaW5nUmVnaXN0cmF0aW9uUmVxdWVzdHMoKS5hZGQo
cGVuZGluZ1JlZ2lzdHJhdGlvblJlcXVlc3RDb3VudCsrLCBXVEZNb3ZlKHBlbmRpbmdSZXF1ZXN0
KSk7CiB9Ci0KLXN0cnVjdCBQZW5kaW5nUmVzb2x1dGlvblJlcXVlc3QgewotICAgIFBlbmRpbmdS
ZXNvbHV0aW9uUmVxdWVzdChSZWY8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uLCB1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgICAgICA6
IGNvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAgICAgLCByZXF1ZXN0SWRlbnRp
ZmllcihyZXF1ZXN0SWRlbnRpZmllcikKLSAgICAgICAgLCB0aW1lb3V0VGltZXIoKnRoaXMsICZQ
ZW5kaW5nUmVzb2x1dGlvblJlcXVlc3Q6OnRpbWVvdXQpCi0gICAgICAgICwgc2Vzc2lvbklEKHNl
c3Npb25JRCkKLSAgICB7Ci0gICAgICAgIHRpbWVvdXRUaW1lci5zdGFydE9uZVNob3QoNTAwX21z
KTsKLSAgICB9Ci0KLSAgICB+UGVuZGluZ1Jlc29sdXRpb25SZXF1ZXN0KCkKLSAgICB7Ci0gICAg
ICAgIGlmIChzZXJ2aWNlKQotICAgICAgICAgICAgRE5TU2VydmljZVJlZkRlYWxsb2NhdGUoc2Vy
dmljZSk7Ci0gICAgICAgIGlmIChvcGVyYXRpb25TZXJ2aWNlKQotICAgICAgICAgICAgRE5TU2Vy
dmljZVJlZkRlYWxsb2NhdGUob3BlcmF0aW9uU2VydmljZSk7Ci0gICAgfQotCi0gICAgdm9pZCB0
aW1lb3V0KCkKLSAgICB7Ci0gICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYk1E
TlNSZWdpc3Rlcjo6RmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZSB7IHJlcXVlc3RJZGVudGlmaWVy
LCBtYWtlVW5leHBlY3RlZChNRE5TUmVnaXN0ZXJFcnJvcjo6VGltZW91dCkgfSwgMCk7Ci0gICAg
ICAgIHJlcXVlc3RJZGVudGlmaWVyID0gMDsKLSAgICB9Ci0KLSAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBjb25uZWN0aW9uOwotICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyIHsgMCB9Owot
ICAgIEROU1NlcnZpY2VSZWYgc2VydmljZSB7IG51bGxwdHIgfTsKLSAgICBETlNTZXJ2aWNlUmVm
IG9wZXJhdGlvblNlcnZpY2UgeyBudWxscHRyIH07Ci0gICAgVGltZXIgdGltZW91dFRpbWVyOwot
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKLX07Ci0KLXN0YXRpYyB2b2lkIHJlc29sdmVN
RE5TTmFtZUNhbGxiYWNrKEROU1NlcnZpY2VSZWYsIEROU1NlcnZpY2VGbGFncywgdWludDMyX3Qs
IEROU1NlcnZpY2VFcnJvclR5cGUgZXJyb3JDb2RlLCBjb25zdCBjaGFyICpob3N0bmFtZSwgY29u
c3Qgc3RydWN0IHNvY2thZGRyICpzb2NrZXRBZGRyZXNzLCB1aW50MzJfdCB0dGwsIHZvaWQgKmNv
bnRleHQpCi17Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBlbmRpbmdSZXNvbHV0aW9uUmVxdWVzdD4g
cmVxdWVzdCB7IHN0YXRpY19jYXN0PFBlbmRpbmdSZXNvbHV0aW9uUmVxdWVzdCo+KGNvbnRleHQp
IH07Ci0KLSAgICBpZiAoIXJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVyKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBpZiAoZXJyb3JDb2RlKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RURfSU5fQ0FMTEJBQ0socmVxdWVzdC0+c2Vzc2lvbklELCAicmVzb2x2ZU1ETlNOYW1lQ2FsbGJh
Y2sgTUROUyBlcnJvciAlZCIsIGVycm9yQ29kZSk7Ci0gICAgICAgIHJlcXVlc3QtPmNvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdpc3Rlcjo6RmluaXNoZWRSZXNvbHZpbmdNRE5T
TmFtZSB7IHJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChNRE5TUmVn
aXN0ZXJFcnJvcjo6RE5TU0QpIH0sIDApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
Y29uc3Qgdm9pZCogYWRkcmVzcyA9IHNvY2tldEFkZHJlc3MtPnNhX2ZhbWlseSA9PSBBRl9JTkVU
NiA/IChjb25zdCB2b2lkKikgJigoY29uc3Qgc3RydWN0IHNvY2thZGRyX2luNiopc29ja2V0QWRk
cmVzcyktPnNpbjZfYWRkciA6IChjb25zdCB2b2lkKikmKChjb25zdCBzdHJ1Y3Qgc29ja2FkZHJf
aW4qKXNvY2tldEFkZHJlc3MpLT5zaW5fYWRkcjsKLQotICAgIGNoYXIgYnVmZmVyW0lORVQ2X0FE
RFJTVFJMRU5dID0geyAwIH07Ci0gICAgaWYgKCFpbmV0X250b3Aoc29ja2V0QWRkcmVzcy0+c2Ff
ZmFtaWx5LCBhZGRyZXNzLCBidWZmZXIsIHNpemVvZihidWZmZXIpKSkgewotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEX0lOX0NBTExCQUNLKHJlcXVlc3QtPnNlc3Npb25JRCwgInJlc29s
dmVNRE5TTmFtZUNhbGxiYWNrIGluZXRfbnRvcCBlcnJvciIpOwotICAgICAgICByZXF1ZXN0LT5j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVzb2x2
aW5nTUROU05hbWUgeyByZXF1ZXN0LT5yZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQo
TUROU1JlZ2lzdGVyRXJyb3I6OkROU1NEKSB9LCAwKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHJlcXVlc3QtPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdpc3Rl
cjo6RmluaXNoZWRSZXNvbHZpbmdNRE5TTmFtZSB7IHJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVy
LCBTdHJpbmcgeyBidWZmZXIgfSB9LCAwKTsKLX0KLQotdm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVy
OjpyZXNvbHZlTUROU05hbWUodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIFVOVVNFRF9QQVJBTShz
ZXNzaW9uSUQpOwotICAgIGF1dG8gcGVuZGluZ1JlcXVlc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPFBl
bmRpbmdSZXNvbHV0aW9uUmVxdWVzdD4obWFrZVJlZihtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigp
KSwgcmVxdWVzdElkZW50aWZpZXIsIHNlc3Npb25JRCk7Ci0KLSAgICBpZiAoYXV0byBlcnJvciA9
IEROU1NlcnZpY2VDcmVhdGVDb25uZWN0aW9uKCZwZW5kaW5nUmVxdWVzdC0+c2VydmljZSkpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJyZXNvbHZlTUROU05h
bWUgRE5TU2VydmljZUNyZWF0ZUNvbm5lY3Rpb24gZXJyb3IgJWQiLCBlcnJvcik7Ci0gICAgICAg
IG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVy
OjpGaW5pc2hlZFJlc29sdmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4
cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpETlNTRCkgfSwgMCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBETlNTZXJ2aWNlUmVmIHNlcnZpY2U7Ci0gICAgYXV0byBlcnJvciA9IERO
U1NlcnZpY2VHZXRBZGRySW5mbygmc2VydmljZSwKLSAgICAgICAga0ROU1NlcnZpY2VGbGFnc1Vu
aXF1ZSwKLSAgICAgICAgMCwKLSAgICAgICAga0ROU1NlcnZpY2VQcm90b2NvbF9JUHY0LAotICAg
ICAgICBuYW1lLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgIHJlc29sdmVNRE5TTmFtZUNhbGxiYWNr
LAotICAgICAgICBwZW5kaW5nUmVxdWVzdC5nZXQoKSk7Ci0gICAgcGVuZGluZ1JlcXVlc3QtPm9w
ZXJhdGlvblNlcnZpY2UgPSBzZXJ2aWNlOwotICAgIGlmIChlcnJvcikgewotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHNlc3Npb25JRCwgInJlc29sdmVNRE5TTmFtZSBETlNTZXJ2aWNl
R2V0QWRkckluZm8gZXJyb3IgJWQiLCBlcnJvcik7Ci0gICAgICAgIG1fY29ubmVjdGlvbi5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVyOjpGaW5pc2hlZFJlc29sdmlu
Z01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4cGVjdGVkKE1ETlNSZWdpc3Rl
ckVycm9yOjpETlNTRCkgfSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcGVuZGlu
Z1JlcXVlc3QucmVsZWFzZSgpOwotCi0gICAgZXJyb3IgPSBETlNTZXJ2aWNlU2V0RGlzcGF0Y2hR
dWV1ZShzZXJ2aWNlLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKLSAgICBpZiAoZXJyb3Ip
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJyZXNvbHZlTURO
U05hbWUgRE5TU2VydmljZVNldERpc3BhdGNoUXVldWUgZXJyb3IgJWQiLCBlcnJvcik7Ci0gICAg
ICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lz
dGVyOjpGaW5pc2hlZFJlc29sdmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1ha2VV
bmV4cGVjdGVkKE1ETlNSZWdpc3RlckVycm9yOjpETlNTRCkgfSwgMCk7Ci0gICAgfQotfQogI2Vs
c2UKIHZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6dW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXIpCiB7CkBAIC0yNTgsMTIgKzE2Nyw2IEBAIHZvaWQgTmV0d29y
a01ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgUEFMOjpTZXNzCiAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFtZSB7IHJlcXVlc3RJ
ZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChNRE5TUmVnaXN0ZXJFcnJvcjo6Tm90SW1wbGVtZW50
ZWQpIH0sIDApOwogfQogCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlc29sdmVNRE5TTmFt
ZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIG5hbWUpCi17Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChzZXNzaW9u
SUQsICJyZXNvbHZlTUROU05hbWUgbm90IGltcGxlbWVudGVkIik7Ci0gICAgbV9jb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVz
b2x2aW5nTUROU05hbWUgeyByZXF1ZXN0SWRlbnRpZmllciwgbWFrZVVuZXhwZWN0ZWQoTUROU1Jl
Z2lzdGVyRXJyb3I6Ok5vdEltcGxlbWVudGVkKSB9LCAwKTsKLX0KLQogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4KaW5k
ZXggYTg4Zjc3MGFjNTJmZDkyMmZlNTQ3Mzg1MGFhNjk2M2RhMGVlMDVjMC4uNjJiZWQ3ZTM2MjUw
YWMyN2EwMzE1NTA5ODhmZjJlMzUzYzY1YmU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVy
Lm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw2IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrTUROU1Jl
Z2lzdGVyIHsKICAgICBVbnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRp
ZmllciBkb2N1bWVudElkZW50aWZpZXIpCiAgICAgUmVnaXN0ZXJNRE5TTmFtZSh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpEb2N1
bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBTdHJpbmcgaXBBZGRyZXNzKQotICAg
IFJlc29sdmVNRE5TTmFtZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTdHJpbmcgbmFtZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggZmRjYjdkNGUxMWUyMjMxZWY1ZGFkZTY4
NWFjNGM0YWMyMjJmOGNkMy4uYWZlMjQwODg0YzNjYmFhYTZhZDIzOGJiZTIzZjk1OTMxNTkxOTIx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0zMCwxNCArMzAsMjMgQEAKIAogI2lu
Y2x1ZGUgIkxpYldlYlJUQ05ldHdvcmsuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8d2VicnRjL2FwaS9hc3luY3Jlc29sdmVyZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0
Yy9wYy9wZWVyY29ubmVjdGlvbmZhY3RvcnkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorY2xhc3MgQXN5bmNSZXNvbHZlckZhY3RvcnkgOiBwdWJs
aWMgd2VicnRjOjpBc3luY1Jlc29sdmVyRmFjdG9yeSB7Citwcml2YXRlOgorICAgIHJ0Yzo6QXN5
bmNSZXNvbHZlckludGVyZmFjZSogQ3JlYXRlKCkgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkuc29ja2V0RmFjdG9y
eSgpLmNyZWF0ZUFzeW5jUmVzb2x2ZXIoKTsKKyAgICB9Cit9OworCiBydGM6OnNjb3BlZF9yZWZw
dHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNy
ZWF0ZVBlZXJDb25uZWN0aW9uKHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2
ZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uKQogewotICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlUGVlckNvbm5lY3Rpb24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxp
YldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwor
ICAgIHJldHVybiBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rp
b24ob2JzZXJ2ZXIsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5t
b25pdG9yKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5zb2Nr
ZXRGYWN0b3J5KCksIFdURk1vdmUoY29uZmlndXJhdGlvbiksIHN0ZDo6bWFrZV91bmlxdWU8QXN5
bmNSZXNvbHZlckZhY3Rvcnk+KCkpOwogfQogCiB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyOjpkaXNh
YmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKQpAQCAtNTUsMTEgKzY0LDYgQEAgdm9pZCBMaWJX
ZWJSVENQcm92aWRlcjo6cmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IGRvY3UKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3
b3JrKCkubWRuc1JlZ2lzdGVyKCkucmVnaXN0ZXJNRE5TTmFtZShzZXNzaW9uSUQsIGRvY3VtZW50
SWRlbnRpZmllciwgaXBBZGRyZXNzLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKLXZvaWQgTGli
V2ViUlRDUHJvdmlkZXI6OnJlc29sdmVNRE5TTmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChJUEFkZHJlc3NPckVy
cm9yJiYpPiYmIGNhbGxiYWNrKQotewotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldl
YlJUQ05ldHdvcmsoKS5tZG5zUmVnaXN0ZXIoKS5yZXNvbHZlTUROU05hbWUoc2Vzc2lvbklELCBu
YW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggZTcwOGE1
NTI5ZjQzY2FlMTI2MzQ3YzU3MTRhMTk4OGNiMGY3ZTUxNS4uMGJiYTI1YTI4ODFjZGZlZDVkY2Y4
OGRjMTY0YmRmZmQ5NDQwODg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU0LDcgKzU0
LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50NjRfdCBk
b2N1bWVudElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZShQQUw6
OlNlc3Npb25JRCwgdWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlw
QWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNRE5TTmFtZU9yRXJyb3ImJik+JiYpIGZp
bmFsOwotICAgIHZvaWQgcmVzb2x2ZU1ETlNOYW1lKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJp
bmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSVBBZGRyZXNzT3JFcnJvciYmKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSBmaW5hbDsK
IH07CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKaW5kZXggZTVhZGRiYzdiYThjYjYz
YTZiOTNmZmI1NzI1NzNjZGRiMmNhMWQ0Mi4uZmJkMmJlYmJiM2E5NDEwMGJiNTM3NDg2NjdiNTQz
Y2IxNjVjZWRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3BwCkBAIC03NywxMSArNzcsMjEg
QEAgdm9pZCBMaWJXZWJSVENSZXNvbHZlcjo6RGVzdHJveShib29sKQogICAgIGlmICghaXNSZXNv
bHZpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1faXNQcm92aWRpbmdSZXN1bHRz
KSB7CisgICAgICAgIG1fc2hvdWxkRGVzdHJveSA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBhdXRvIGlkZW50aWZpZXIgPSBtX2lkZW50aWZpZXI7CiAgICAgc2VuZE9uTWFp
blRocmVhZChbaWRlbnRpZmllcl0oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7CiAgICAg
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpTdG9wUmVz
b2x2ZXIoaWRlbnRpZmllciksIDApOwogICAgIH0pOwogCisgICAgZG9EZXN0cm95KCk7Cit9CisK
K3ZvaWQgTGliV2ViUlRDUmVzb2x2ZXI6OmRvRGVzdHJveSgpCit7CiAgICAgLy8gTGV0J3MgdGFr
ZSB0aGUgcmVzb2x2ZXIgc28gdGhhdCBpdCBnZXRzIGRlc3Ryb3llZCBhdCB0aGUgZW5kIG9mIHRo
aXMgZnVuY3Rpb24uCiAgICAgYXV0byByZXNvbHZlciA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmxpYldlYlJUQ05ldHdvcmsoKS5zb2NrZXRGYWN0b3J5KCkudGFrZVJlc29sdmVyKG1faWRlbnRp
Zmllcik7CiAgICAgQVNTRVJUKHJlc29sdmVyKTsKQEAgLTkwLDEzICsxMDAsMjEgQEAgdm9pZCBM
aWJXZWJSVENSZXNvbHZlcjo6RGVzdHJveShib29sKQogdm9pZCBMaWJXZWJSVENSZXNvbHZlcjo6
c2V0UmVzb2x2ZWRBZGRyZXNzKGNvbnN0IFZlY3RvcjxydGM6OklQQWRkcmVzcz4mIGFkZHJlc3Nl
cykKIHsKICAgICBtX2FkZHJlc3NlcyA9IGFkZHJlc3NlczsKKyAgICBtX2lzUHJvdmlkaW5nUmVz
dWx0cyA9IHRydWU7CiAgICAgU2lnbmFsRG9uZSh0aGlzKTsKKyAgICBtX2lzUHJvdmlkaW5nUmVz
dWx0cyA9IGZhbHNlOworICAgIGlmIChtX3Nob3VsZERlc3Ryb3kpCisgICAgICAgIGRvRGVzdHJv
eSgpOwogfQogCiB2b2lkIExpYldlYlJUQ1Jlc29sdmVyOjpzZXRFcnJvcihpbnQgZXJyb3IpCiB7
CiAgICAgbV9lcnJvciA9IGVycm9yOworICAgIG1faXNQcm92aWRpbmdSZXN1bHRzID0gdHJ1ZTsK
ICAgICBTaWduYWxEb25lKHRoaXMpOworICAgIG1faXNQcm92aWRpbmdSZXN1bHRzID0gZmFsc2U7
CisgICAgaWYgKG1fc2hvdWxkRGVzdHJveSkKKyAgICAgICAgZG9EZXN0cm95KCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuaAppbmRleCA3YTQ2NWQzMWIw
MDM2Njg2OTc3NjhmOGEwZGMxMzQ3ZjEwZDQ4ZmFlLi41ZDYzODNmNmI1MDY1M2I1YzY3MDcwNzA1
YzZjMTAyODcwZmEwMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuaApAQCAtNTUsNiArNTUsNyBA
QCBwcml2YXRlOgogICAgIGludCBHZXRFcnJvcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZXJy
b3I7IH0KICAgICB2b2lkIERlc3Ryb3koYm9vbCkgZmluYWw7CiAKKyAgICB2b2lkIGRvRGVzdHJv
eSgpOwogICAgIHZvaWQgc2V0RXJyb3IoaW50KTsKICAgICB2b2lkIHNldFJlc29sdmVkQWRkcmVz
cyhjb25zdCBWZWN0b3I8cnRjOjpJUEFkZHJlc3M+Jik7CiAKQEAgLTY2LDYgKzY3LDggQEAgcHJp
dmF0ZToKICAgICBpbnQgbV9lcnJvciB7IDAgfTsKICAgICB1aW50MTZfdCBtX3BvcnQgeyAwIH07
CiAgICAgYm9vbCBtX2lzUmVzb2x2aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQcm92aWRp
bmdSZXN1bHRzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkRGVzdHJveSB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9y
eS5oCmluZGV4IDhkYTQ5YTNhZDZmNWI4NTYwNmE1ZGFmM2NkNTFhMTQ3ZmE5OTBhNjMuLmYwYjQx
OTU3MTNmYjc1NWEwMDQ5NzM5YTYyNWEyMDFjYzQ5MmVjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Nv
Y2tldEZhY3RvcnkuaApAQCAtNTEsNiArNTEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpc2Fi
bGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVj
dGlvbnMgPSB0cnVlOyB9CiAKKyAgICBydGM6OkFzeW5jUmVzb2x2ZXJJbnRlcmZhY2UqIGNyZWF0
ZUFzeW5jUmVzb2x2ZXIoKSB7IHJldHVybiBDcmVhdGVBc3luY1Jlc29sdmVyKCk7IH0KKwogcHJp
dmF0ZToKICAgICBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBDcmVhdGVVZHBTb2NrZXQoY29uc3Qg
cnRjOjpTb2NrZXRBZGRyZXNzJiwgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4UG9ydCkg
ZmluYWw7CiAgICAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogQ3JlYXRlU2VydmVyVGNwU29ja2V0
KGNvbnN0IHJ0Yzo6U29ja2V0QWRkcmVzcyYsIHVpbnQxNl90IG1pbl9wb3J0LCB1aW50MTZfdCBt
YXhfcG9ydCwgaW50IG9wdGlvbnMpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcAppbmRleCBm
MTljNzQ0OTVjNjdmNjUxYjM5NWYxZDFhMjljMDdjMmFhNzQ2ZWUxLi5mMjI3MDA4NjNmNWJjZTdj
ZDM1Y2FhNmUwYzgwYTQ4M2YyZmZhN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcApAQCAtNTIs
MTMgKzUyLDYgQEAgdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OmZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5T
TmFtZSh1aW50NjRfdCBpZGVudGlmaWVyLCBMaWJXZWJSVEMKICAgICBwZW5kaW5nUmVnaXN0cmF0
aW9uLmNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV2ViTUROU1JlZ2lzdGVy
OjpmaW5pc2hlZFJlc29sdmluZ01ETlNOYW1lKHVpbnQ2NF90IGlkZW50aWZpZXIsIExpYldlYlJU
Q1Byb3ZpZGVyOjpJUEFkZHJlc3NPckVycm9yJiYgcmVzdWx0KQotewotICAgIGF1dG8gY2FsbGJh
Y2sgPSBtX3BlbmRpbmdSZXNvbHV0aW9ucy50YWtlKGlkZW50aWZpZXIpOwotICAgIGlmIChjYWxs
YmFjaykKLSAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLX0KLQogdm9pZCBXZWJN
RE5TUmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXModWludDY0X3QgZG9jdW1lbnRJZGVudGlm
aWVyKQogewogICAgIGF1dG8gaWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPERvY3Vt
ZW50SWRlbnRpZmllclR5cGU+KGRvY3VtZW50SWRlbnRpZmllcik7CkBAIC04OSwxNSArODIsNiBA
QCB2b2lkIFdlYk1ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIHVpbnQ2NF90IGRvY3VtZQogICAgICAgICBmaW5pc2hlZFJlZ2lzdGVyaW5nTURO
U05hbWUobV9wZW5kaW5nUmVxdWVzdHNJZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChNRE5TUmVn
aXN0ZXJFcnJvcjo6SW50ZXJuYWwpKTsKIH0KIAotdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnJlc29s
dmVNRE5TTmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChMaWJXZWJSVENQcm92aWRlcjo6SVBBZGRyZXNzT3JFcnJv
ciYmKT4mJiBjYWxsYmFjaykKLXsKLSAgICBtX3BlbmRpbmdSZXNvbHV0aW9ucy5hZGQoKyttX3Bl
bmRpbmdSZXF1ZXN0c0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLQotICAgIGF1dG8m
IGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtNRE5TUmVnaXN0ZXI6OlJlc29sdmVNRE5TTmFtZSB7IG1fcGVuZGluZ1Jl
cXVlc3RzSWRlbnRpZmllciwgc2Vzc2lvbklELCBuYW1lIH0sIDApKQotICAgICAgICBmaW5pc2hl
ZFJlc29sdmluZ01ETlNOYW1lKG1fcGVuZGluZ1JlcXVlc3RzSWRlbnRpZmllciwgbWFrZVVuZXhw
ZWN0ZWQoTUROU1JlZ2lzdGVyRXJyb3I6OkludGVybmFsKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmgKaW5k
ZXggYmQ2ZTlkMWM3ZGQ2NzZkZDIwMjM4NjM2YTc3ZDU0YzA5OGQ2MDMyYS4uYzFiYmNhYzIxOGUz
MDhhYmNiOTY4MGJmMzYxMzI3M2U3YzkwYTFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuaApAQCAtNDYs
MTMgKzQ2LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyh1aW50
NjRfdCBkb2N1bWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZShQQUw6
OlNlc3Npb25JRCwgdWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlw
QWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRl
cjo6TUROU05hbWVPckVycm9yJiYpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVNRE5TTmFtZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpJUEFkZHJlc3NPckVycm9yJiYpPiYmKTsKIAogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hlZFJlZ2lzdGVyaW5nTUROU05hbWUodWludDY0
X3QsIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpNRE5TTmFtZU9yRXJyb3ImJik7Ci0gICAg
dm9pZCBmaW5pc2hlZFJlc29sdmluZ01ETlNOYW1lKHVpbnQ2NF90LCBXZWJDb3JlOjpMaWJXZWJS
VENQcm92aWRlcjo6SVBBZGRyZXNzT3JFcnJvciYmKTsKIAogICAgIHN0cnVjdCBQZW5kaW5nUmVn
aXN0cmF0aW9uIHsKICAgICAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6TUROU05hbWVPckVycm9yJiYpPiBjYWxsYmFjazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2Vi
TUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCmluZGV4IGU5NDNlOTk4ZWFiZTUxZGMzNTFkYTk3ZTg1
ZWJhYTdiZGQwMmYwOTQuLjZlNTIxY2M5Nzk5Zjg0M2FmZjM5MjMyZjFhMGQ2MWMxM2Q0YzZhMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJN
RE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNiBA
QAogCiBtZXNzYWdlcyAtPiBXZWJNRE5TUmVnaXN0ZXIgewogICAgIHZvaWQgRmluaXNoZWRSZWdp
c3RlcmluZ01ETlNOYW1lKHVpbnQ2NF90IGlkZW50aWZpZXIsIFdlYkNvcmU6OkxpYldlYlJUQ1By
b3ZpZGVyOjpNRE5TTmFtZU9yRXJyb3IgcmVzdWx0KQotICAgIHZvaWQgRmluaXNoZWRSZXNvbHZp
bmdNRE5TTmFtZSh1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3JlOjpMaWJXZWJSVENQcm92aWRl
cjo6SVBBZGRyZXNzT3JFcnJvciByZXN1bHQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JU
QykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5ZDkyNGJhYzI1ZTU1MDA5ZmIyZWM1MzI1YTc0NzU4OTE5MTNmMmRmLi5kYzg2
YjVlNjQ2NjU0MWE1MzVkNWRlYzlhYjE5MDFiMTI4NmVlNTE2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTgtMTAtMjkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEhhbmRsZSBNRE5TIHJlc29sdXRpb24gb2YgY2FuZGlkYXRlcyB0aHJvdWdoIGxpYndlYnJ0
YyBkaXJlY3RseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTkwNjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
ICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgVGVzdCBzaG91bGQgbm8gbG9uZ2VyIGJlIGZs
YWt5IGFzIHdlIG5vIGxvbmdlciBlbmZvcmNlIGEgdGltZXIgZm9yIHJlc29sdmluZyBNRE5TIGNh
bmRpZGF0ZXMuCisKIDIwMTgtMTAtMjkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEludmFsaWQgc3NyYyB2YWx1ZSBpbiB0aGUgc3RhdHMgb2YgdHlwZSAnaW5i
b3VuZC1ydHAnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MjFlOGE3ZWVhOGRmZGU5MjY0YWI4NWU0
NjQwOWMwMzFhNzM0MDk5Li40MmU2NzNiY2FkZWI3ZDYxNWNiNzhlYTVmZjU1MmFkMTZlNTdhMDA1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyMTYsNyArMTIxNiw2IEBAIG1lZGlhL3Nlc3Npb24g
WyBTa2lwIF0KIAogd2VicnRjL3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTbG93IF0KIHdlYnJ0Yy9k
YXRhY2hhbm5lbC9tdWx0aXBsZS1jb25uZWN0aW9ucy5odG1sIFsgU2xvdyBdCi13ZWJraXQub3Jn
L2IvMTg3MTgwIHdlYnJ0Yy9kYXRhY2hhbm5lbC9tZG5zLWljZS1jYW5kaWRhdGVzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3MTA5NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9ydGNwZWVyY29ubmVjdGlvbi9ydGNwZWVyY29ubmVjdGlvbi1pZGwu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE3MmYyMSBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9nZXRzdGF0cy5odG1sIFsgRmFpbHVyZSBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0
dHBzLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>