<?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>183384</bug_id>
          
          <creation_ts>2018-03-06 14:19:33 -0800</creation_ts>
          <short_desc>Match unsupported plugins based on domains and not origin</short_desc>
          <delta_ts>2018-03-07 18:07:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404153</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-06 14:19:33 -0800</bug_when>
    <thetext>Origins are too restrictive.
API should be able to allow a plug-in for a subdomain like example.com or example.co.uk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404195</commentid>
    <comment_count>1</comment_count>
      <attachid>335153</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-06 15:47:35 -0800</bug_when>
    <thetext>Created attachment 335153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404215</commentid>
    <comment_count>2</comment_count>
      <attachid>335157</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-06 16:54:51 -0800</bug_when>
    <thetext>Created attachment 335157
Fixing win</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404452</commentid>
    <comment_count>3</comment_count>
      <attachid>335157</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-07 13:12:11 -0800</bug_when>
    <thetext>Comment on attachment 335157
Fixing win

View in context: https://bugs.webkit.org/attachment.cgi?id=335157&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        We iterate through the vector and a matc happens if the page host name ends with the provided matching domain.

typo: matc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404455</commentid>
    <comment_count>4</comment_count>
      <attachid>335211</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-07 13:26:43 -0800</bug_when>
    <thetext>Created attachment 335211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404560</commentid>
    <comment_count>5</comment_count>
      <attachid>335211</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-07 18:06:44 -0800</bug_when>
    <thetext>Comment on attachment 335211
Patch

Clearing flags on attachment: 335211

Committed r229390: &lt;https://trac.webkit.org/changeset/229390&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404561</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-07 18:06:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404562</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-07 18:07:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/38245892&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335153</attachid>
            <date>2018-03-06 15:47:35 -0800</date>
            <delta_ts>2018-03-06 16:54:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183384-20180306154734.patch</filename>
            <type>text/plain</type>
            <size>32002</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjNzZiODA1NWJmOGRk
Yzc4N2U1YjFiNGRkM2QzM2NiM2JhMmFlNi4uOTUwOTIwZGUxNWUwYjE3NzNmZWI2YjUyZjk3ZDIz
ODZjMzg5MGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAzLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRl
ZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFpbnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSBhbiBvcmlnaW4ta2V5
ZWQgbWFwIHRvIGEgdmVjdG9yIG9mIHBsdWdpbnMuCisgICAgICAgIFdlIGl0ZXJhdGUgdGhyb3Vn
aCB0aGUgdmVjdG9yIGFuZCBhIG1hdGMgaGFwcGVucyBpZiB0aGUgcGFnZSBob3N0IG5hbWUgZW5k
cyB3aXRoIHRoZSBwcm92aWRlZCBtYXRjaGluZyBkb21haW4uCisgICAgICAgIFRoaXMgYWxsb3dz
IHN1cHBvcnRpbmcgcnVsZXMgZm9yICoubXlkb21haW4uY29tIGJ5IHBhc3NpbmcgJ215ZG9tYWlu
LmNvbScuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisgICAgICAgIFdlIGFy
ZSBub3QgdGVzdGluZyBzdWJkb21haW5zIGxpa2Ugd3d3LmxvY2FsaG9zdCBzaW5jZSB0aGVyZSBp
cyBubyBzdXBwb3J0IGluIG91ciBDSSBidXQgdGhpcyBpcyB0ZXN0ZWQgdGhyb3VnaCBVbml0IHRl
c3RzLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6aXNNYXRjaGluZ0RvbWFpbiBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3VwcG9ydGVkUGx1Z2luTmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBwbHVnaW5z
L1BsdWdpbkluZm9Qcm92aWRlci5oOgorCiAyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
OjpyZWFkeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjQyY2NlZDg4ODViN2VmOGQzYzRkMjZmNWVkZDUwOGFiNTI5
ZTIxLi5kZWM4NjMzZTY4NDUxNmM4N2Y2YWVhMWU1MDJhODEwMTgzZTAxOGY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM0IEBACisyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRlZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFp
bnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmVkIGZyb20gYSBIYXNoTWFwIG9mIHBsdWdpbnMgdG8gYSBWZWN0b3Igb2Yg
cGx1Z2lucyBzaW5jZSB3ZSBjYW5ub3QgbWF0Y2ggZXhhY3RseSBiYXNlZCBvbiB0aGUgb3JpZ2lu
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRBZGRTdXBwb3J0
ZWRQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfYWRkU3VwcG9ydGVkUGx1Z2luOm5hbWVkOndp
dGhNaW1lVHlwZXM6d2l0aEV4dGVuc2lvbnM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3Jl
Ojppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6
c3VwcG9ydGVkUGx1Z2luTmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6
OmFkZFN1cHBvcnRlZFBsdWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
SW5mb1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFkZFN1cHBvcnRlZFBsdWdpbik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0
UGx1Z2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaDoKKwogMjAx
OC0wMy0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgQXV0b21hdGlvbjogY2xpY2tpbmcgb24gYSBkaXNhYmxlZCBvcHRpb24gZWxlbWVudCBz
aG91bGRuJ3QgcHJvZHVjZSBhbiBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDhmZmYzODVjZTBjM2Y5ZTI1YzI0NmE0NzgyMTU5ZTM5NTY5ZWIzZTcuLmYyYzczNTU3ZTM2ZGY0
YTY2YjFmMzgzOTE4YWZiMmUxMGMzZWU4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWF0Y2ggdW5zdXBwb3J0ZWQgcGx1Z2lucyBiYXNlZCBvbiBkb21h
aW5zIGFuZCBub3Qgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAg
KFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKToKKwogMjAxOC0wMy0wNCAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBN
b3ZlIGN1cnJlbnRDUFVUaW1lIGFuZCBzbGVlcChTZWNvbmRzKSB0byBDUFVUaW1lLmggYW5kIFNl
Y29uZHMuaCByZXNwZWN0aXZlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggMzM4NjgwMmQ4MmE4ZGUwMGZlZjc1NDJhNTY3ODQxNTFkMzlhYTNhZC4uZDg4NTBmZmFh
NTA1MGIwZGNlZDIyN2JhYjA1MDRmMGY2MTgzZTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTMyNSw3ICszMjUsNyBAQCBjbGFzcyBFbXB0eVBheW1lbnRDb29y
ZGluYXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgewog
CiBjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBQbHVnaW5JbmZv
UHJvdmlkZXIgewogICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBmaW5hbCB7IH07Ci0gICAgdm9p
ZCBnZXRQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFs
PFN1cHBvcnRlZFBsdWdpbk5hbWVzPiYpIGZpbmFsIHsgfQorICAgIHZvaWQgZ2V0UGx1Z2luSW5m
byhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9y
dGVkUGx1Z2luTmFtZT4+JikgZmluYWwgeyB9CiAgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2lu
SW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+JikgZmluYWwgeyB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmNwcAppbmRleCA1OTdhNTZjM2I2ZTY2M2I4YjA2MjM1NjYzZTdhY2RmNTgyYzk1
NGY1Li45N2Q5MWYzNjI4NjRhODI5ZDdlNjE3OWU2M2FhMzU5N2JiNTMzZmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAKQEAgLTc3Niw2ICs3NzYsMjIgQEAgYm9vbCBob3N0c0FyZUVxdWFsKGNv
bnN0IFVSTCYgYSwgY29uc3QgVVJMJiBiKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFVS
TDo6aXNNYXRjaGluZ0RvbWFpbihjb25zdCBTdHJpbmcmIGRvbWFpbikgY29uc3QKK3sKKyAgICAv
LyBXZSByZXN0cmljdCBpdCB0byBIVFRQIGZvciBzaW1wbGljaXR5IHNpbmNlIHdlIGRvIG5vdCB3
YW50IHRvIG1hdGNoIGRhdGEsIGJsb2Igb3IgZmlsZSBiYXNlZCBVUkxzLgorICAgIGlmIChpc051
bGwoKSB8fCAhcHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBhdXRvIGhvc3QgPSB0aGlzLT5ob3N0KCk7CisgICAgaWYgKCFob3N0LmVuZHNXaXRoKGRvbWFp
bikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBob3N0Lmxlbmd0aCgpID09
IGRvbWFpbi5sZW5ndGgoKSB8fCBob3N0LmNoYXJhY3RlckF0KGhvc3QubGVuZ3RoKCkgLSBkb21h
aW4ubGVuZ3RoKCkgLSAxKSA9PSAnLic7Cit9CisKIFN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBl
U2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgaW5wdXQpCiB7CiAgICAgcmV0dXJuIHBlcmNlbnRFbmNv
ZGVDaGFyYWN0ZXJzKGlucHV0LCBVUkxQYXJzZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTC5oCmluZGV4IGI4ZWQ3NzhlNjdkMWE2N2YwYmMzYzFhOGM1MWFmMThjMjMw
ZjQwZjguLjQ1YTdiMzFjMDIwMzAwOGMzZDAwMzM5MGZhMzU5MjAyYTM4M2EyNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5oCkBAIC0xNDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaXNCbGFua1VSTCgpIGNvbnN0OwogICAgIGJvb2wgY2Fubm90QmVBQmFzZVVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2Fubm90QmVBQmFzZVVSTDsgfQogCisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc01hdGNoaW5nRG9tYWluKGNvbnN0IFN0cmluZyYpIGNvbnN0OworCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXRQcm90b2NvbChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNl
dEhvc3QoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKaW5k
ZXggNjkwYmE3Mjc3NzA4NzRlNWI0NTU4OTNmYjgwNGYzY2ZhZjhhNGU5NC4uYTlhOWZmZjBkNzg3
ZWMxMGYyY2M3NGU5MThhZmY5NjAwYTI3MjhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
YXRhLmgKQEAgLTIwLDcgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTg4LDEyICs4OCwxMiBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFBsdWdpbkluZm8m
IGEsIFBsdWdpbkluZm8mIGIpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RydWN0IFN1cHBv
cnRlZFBsdWdpbk5hbWVzIHsKLSAgICBIYXNoU2V0PFN0cmluZz4gYWxsT3JpZ2luUGx1Z2luczsK
LSAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgSGFzaFNldDxTdHJpbmc+PiBvcmlnaW5T
cGVjaWZpY1BsdWdpbnM7CitzdHJ1Y3QgU3VwcG9ydGVkUGx1Z2luTmFtZSB7CisgICAgU3RyaW5n
IG1hdGNoaW5nRG9tYWluOworICAgIFN0cmluZyBwbHVnaW5OYW1lOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVz
PiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWU+IGRlY29kZShEZWNvZGVyJik7CiB9Owog
CiAvLyBGSVhNRTogbWVyZ2Ugd2l0aCBQbHVnaW5EYXRhYmFzZSBpbiB0aGUgZnV0dXJlCkBAIC0x
MjYsMzkgKzEyNiwzNSBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFBhZ2UmIG1fcGFnZTsK
ICAgICBWZWN0b3I8UGx1Z2luSW5mbz4gbV9wbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8U3Vw
cG9ydGVkUGx1Z2luTmFtZXM+IG1fc3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+IG1fc3VwcG9ydGVkUGx1Z2luTmFtZXM7
CiB9OwogCi1pbmxpbmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdpbihTdXBwb3J0ZWRQbHVnaW5OYW1l
cyYgcGx1Z2luTmFtZXMsIFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IHBsdWdpbk5hbWUpCitpbmxpbmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdpbihjb25zdCBWZWN0b3I8
U3VwcG9ydGVkUGx1Z2luTmFtZT4mIHBsdWdpbk5hbWVzLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNv
bnN0IFN0cmluZyYgcGx1Z2luTmFtZSkKIHsKLSAgICBhdXRvIGl0ZXJhdG9yID0gcGx1Z2luTmFt
ZXMub3JpZ2luU3BlY2lmaWNQbHVnaW5zLmZpbmQob3JpZ2luKTsKLSAgICBpZiAoaXRlcmF0b3Ig
IT0gcGx1Z2luTmFtZXMub3JpZ2luU3BlY2lmaWNQbHVnaW5zLmVuZCgpKSB7Ci0gICAgICAgIGlm
IChpdGVyYXRvci0+dmFsdWUuY29udGFpbnMocGx1Z2luTmFtZSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGx1Z2luTmFtZXMuYWxsT3JpZ2luUGx1Z2lu
cy5jb250YWlucyhwbHVnaW5OYW1lKTsKKyAgICByZXR1cm4gcGx1Z2luTmFtZXMuZmluZE1hdGNo
aW5nKFsmXSAoYXV0byYmIHBsdWdpbikgeworICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01hdGNo
aW5nRG9tYWluKHBsdWdpbi5tYXRjaGluZ0RvbWFpbikgJiYgcGx1Z2luLnBsdWdpbk5hbWUgPT0g
cGx1Z2luTmFtZTsKKyAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFtZXM+IFN1cHBvcnRl
ZFBsdWdpbk5hbWVzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IGlubGluZSBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWU+IFN1cHBvcnRl
ZFBsdWdpbk5hbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaFNldDxTdHJpbmc+PiBhbGxPcmlnaW5QbHVnaW5zOwotICAgIGRlY29kZXIgPj4gYWxs
T3JpZ2luUGx1Z2luczsKLSAgICBpZiAoIWFsbE9yaWdpblBsdWdpbnMpCisgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG1hdGNoaW5nRG9tYWluOworICAgIGRlY29kZXIgPj4gbWF0Y2hpbmdEb21h
aW47CisgICAgaWYgKCFtYXRjaGluZ0RvbWFpbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIEhhc2hT
ZXQ8U3RyaW5nPj4+IG9yaWdpblNwZWNpZmljUGx1Z2luczsKLSAgICBkZWNvZGVyID4+IG9yaWdp
blNwZWNpZmljUGx1Z2luczsKLSAgICBpZiAoIW9yaWdpblNwZWNpZmljUGx1Z2lucykKKyAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gcGx1Z2luTmFtZTsKKyAgICBkZWNvZGVyID4+IHBsdWdpbk5h
bWU7CisgICAgaWYgKCFwbHVnaW5OYW1lKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci0gICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbk5hbWVzIHsgV1RGTW92ZShhbGxPcmlnaW5QbHVn
aW5zLnZhbHVlKCkpLCBXVEZNb3ZlKG9yaWdpblNwZWNpZmljUGx1Z2lucy52YWx1ZSgpKSB9Owor
ICAgIHJldHVybiBTdXBwb3J0ZWRQbHVnaW5OYW1lIHsgV1RGTW92ZShtYXRjaGluZ0RvbWFpbi52
YWx1ZSgpKSwgV1RGTW92ZShwbHVnaW5OYW1lLnZhbHVlKCkpIH07CiB9CiAKLXRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IGlubGluZSB2b2lkIFN1cHBvcnRlZFBsdWdpbk5hbWVzOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lk
IFN1cHBvcnRlZFBsdWdpbk5hbWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIgPDwgYWxsT3JpZ2luUGx1Z2luczsKLSAgICBlbmNvZGVyIDw8IG9yaWdpblNw
ZWNpZmljUGx1Z2luczsKKyAgICBlbmNvZGVyIDw8IG1hdGNoaW5nRG9tYWluOworICAgIGVuY29k
ZXIgPDwgcGx1Z2luTmFtZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmgKaW5kZXggNmUwNWVmYmI3OWNjY2Zj
NjQ3ZTkzNGIwYTIwYWZmNjY3ZjMwMDliMy4uYjAzY2QyZTIzZmQwNGZiMmQxZmMyZDE0NzhkMGNm
ZGE1NWJiNTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZv
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRl
ci5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBhZ2UoUGFnZSYpOwog
ICAgIHZvaWQgcmVtb3ZlUGFnZShQYWdlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2lu
SW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQ
bHVnaW5OYW1lcz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oUGFnZSYs
IFZlY3RvcjxQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdp
bk5hbWU+PiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8o
UGFnZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYpID0gMDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDRiYTNhZGI3NTdiNDU1YWEzNzhkNWQ0
YjA5ZTAxNGVjMGQ3NDY5ZmMuLjcxN2MxMjAxODUyYmFjNGFjZjA3ZTc4MWZhMDIyOGVmZTZjYjg3
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzk4LDcg
KzM5OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQn
OiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2hvdWxkU2FtcGxlJzogWyc8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPiddLAot
ICAgICAgICAnV2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXMnOiBbJzxXZWJDb3JlL1BsdWdp
bkRhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWUnOiBbJzxX
ZWJDb3JlL1BsdWdpbkRhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAppbmRleCBkZWUwYTA5YzA1NWQ4NDg1YTAyM2E0NWZhMTc0NGNmZTNhYTE4MTQ0Li4xNTI4
OTAzYzAzYTc4YmZmYjU0OGNiMjc1ZDNmMDNmN2E0OTAzMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYzNCwxMCArNjM0LDcgQEAgdm9pZCBX
S0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3Ry
aW5nUmVmIG9yaWdpblJlZiwKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kp
CiAgICAgICAgIGV4dGVuc2lvbnMuYWRkKHRvV1RGU3RyaW5nKHN0YXRpY19jYXN0PFdLU3RyaW5n
UmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoZXh0ZW5zaW9uc1JlZiwgaSkpKSk7CiAKLSAgICBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbjsKLSAgICBpZiAoIVdLU3RyaW5nSXNFbXB0eShv
cmlnaW5SZWYpKQotICAgICAgICBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyh0b1dURlN0cmluZyhvcmlnaW5SZWYpKTsKLSAgICB0b0ltcGwoY29udGV4dFJlZiktPmFk
ZFN1cHBvcnRlZFBsdWdpbihvcmlnaW4uZ2V0KCksIHRvV1RGU3RyaW5nKG5hbWVSZWYpLCBXVEZN
b3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIHRvSW1wbChjb250ZXh0
UmVmKS0+YWRkU3VwcG9ydGVkUGx1Z2luKHRvV1RGU3RyaW5nKG9yaWdpblJlZiksIHRvV1RGU3Ry
aW5nKG5hbWVSZWYpLCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KaW5kZXggNWYwYzMyNjg2NjU0MmZlMGI0ZGVkMjIyODYxMTkwMTA5Yzc0
MjQ0OS4uY2ZkNjliNGY2NzBlODgzNjNkN2VhZThkMTc1MDU3ZTk4MTk4ZjAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTQwNiw3ICs0MDYsNyBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpwb2xpY2llc0hhc2hNYXBUb0Rp
Y3Rpb25hcnkoY29uc3QgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8UwogICAgIGZvciAoTlNTdHJp
bmcgKmV4dGVuc2lvbiBpbiBuc0V4dGVuc2lvbnMpCiAgICAgICAgIGV4dGVuc2lvbnMuYWRkKGV4
dGVuc2lvbik7CiAKLSAgICBfcHJvY2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihbb3JpZ2lu
IGxlbmd0aF0gPyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmln
aW4pLnB0cigpIDogbnVsbHB0ciwgbmFtZSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4
dGVuc2lvbnMpKTsKKyAgICBfcHJvY2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihvcmlnaW4s
IG5hbWUsIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSk7CiB9CiAKIC0g
KHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCmluZGV4IDYxYzAwZWU5NmUwYTBhODQy
OGFlODRiMWMwMmI1YTRjNzYwYzBkYjQuLjIzZGIzMzQ5YjQ4ODk2NDJlNzIwZjc4YTc5MTFmNDUy
YWQ0YWVmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luSW5mb1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5jcHAKQEAgLTI5LDggKzI5LDkgQEAKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKIAogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VSTC5o
PgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yMTQsNTMgKzIxNSwzMSBAQCBib29sIFBs
dWdpbkluZm9TdG9yZTo6aXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgUGx1Z2luSW5mb1N0b3JlOjpT
dXBwb3J0ZWRQbHVnaW4mCiAKIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjppc1N1cHBvcnRlZFBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBVUkwmIHBsdWdpblVSTCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVVJMJiBwYWdlVVJMKQogewotICAgIC8vIFdlIGNoZWNrIG9ubHkgcGFnZVVS
TFN0cmluZyBmb3IgY29uc2lzdGVuY3kgd2l0aCBXZWJQcm9jZXNzIHZpc2libGUgcGx1Z2lucy4K
KyAgICAvLyBXZSBjaGVjayBvbmx5IHBhZ2VVUkwgZm9yIGNvbnNpc3RlbmN5IHdpdGggV2ViUHJv
Y2VzcyB2aXNpYmxlIHBsdWdpbnMuCiAgICAgaWYgKCFtX3N1cHBvcnRlZFBsdWdpbnMpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgZm9yIChhdXRvJiBwbHVnaW4gOiBtX3N1cHBvcnRlZFBs
dWdpbnMtPm9yaWdpblNwZWNpZmljUGx1Z2lucy5nZXQoU2VjdXJpdHlPcmlnaW5EYXRhIHsgcGFn
ZVVSTC5wcm90b2NvbCgpLnRvU3RyaW5nKCksIHBhZ2VVUkwuaG9zdCgpLCBwYWdlVVJMLnBvcnQo
KSB9KSkgewotICAgICAgICBpZiAoaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwg
cGx1Z2luVVJMKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKGF1
dG8mIHBsdWdpbiA6IG1fc3VwcG9ydGVkUGx1Z2lucy0+YWxsT3JpZ2luUGx1Z2lucykgewotICAg
ICAgICBpZiAoaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwgcGx1Z2luVVJMKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG1fc3VwcG9ydGVkUGx1Z2lucy0+ZmluZE1hdGNoaW5nKFsmXSAoYXV0byYmIHBsdWdp
bikgeworICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01hdGNoaW5nRG9tYWluKHBsdWdpbi5tYXRj
aGluZ0RvbWFpbikgJiYgaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwgcGx1Z2lu
VVJMKTsKKyAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQ
bHVnaW5OYW1lcz4gUGx1Z2luSW5mb1N0b3JlOjpzdXBwb3J0ZWRQbHVnaW5OYW1lcygpCitzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gUGx1Z2luSW5mb1N0b3JlOjpz
dXBwb3J0ZWRQbHVnaW5OYW1lcygpCiB7CiAgICAgaWYgKCFtX3N1cHBvcnRlZFBsdWdpbnMpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBIYXNoU2V0PFN0cmluZz4gYWxsT3Jp
Z2luUGx1Z2luczsKLSAgICBmb3IgKGF1dG8mIHBsdWdpbiA6IG1fc3VwcG9ydGVkUGx1Z2lucy0+
YWxsT3JpZ2luUGx1Z2lucykKLSAgICAgICAgYWxsT3JpZ2luUGx1Z2lucy5hZGQocGx1Z2luLm5h
bWUpOwotCi0gICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIEhhc2hTZXQ8U3RyaW5nPj4g
b3JpZ2luU3BlY2lmaWNQbHVnaW5zOwotICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX3N1cHBv
cnRlZFBsdWdpbnMtPm9yaWdpblNwZWNpZmljUGx1Z2lucykgewotICAgICAgICBIYXNoU2V0PFN0
cmluZz4gbmFtZXM7Ci0gICAgICAgIGZvciAoYXV0byYgcGx1Z2luIDoga2V5VmFsdWUudmFsdWUp
Ci0gICAgICAgICAgICBuYW1lcy5hZGQocGx1Z2luLm5hbWUpOwotICAgICAgICBvcmlnaW5TcGVj
aWZpY1BsdWdpbnMuYWRkKGtleVZhbHVlLmtleSwgV1RGTW92ZShuYW1lcykpOwotICAgIH0KLSAg
ICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luTmFtZXMgeyBXVEZNb3ZlKGFsbE9yaWdpblBsdWdpbnMp
LCBXVEZNb3ZlKG9yaWdpblNwZWNpZmljUGx1Z2lucykgfTsKKyAgICByZXR1cm4gV1RGOjptYXAo
Km1fc3VwcG9ydGVkUGx1Z2lucywgW10gKGF1dG8mJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBT
dXBwb3J0ZWRQbHVnaW5OYW1lIHsgaXRlbS5tYXRjaGluZ0RvbWFpbiwgaXRlbS5uYW1lIH07Cisg
ICAgfSk7CiB9CiAKLXZvaWQgUGx1Z2luSW5mb1N0b3JlOjphZGRTdXBwb3J0ZWRQbHVnaW4oY29u
c3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgU3RyaW5nJiYgbmFtZSwgSGFzaFNldDxTdHJpbmc+
JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9ucykKK3ZvaWQgUGx1Z2luSW5m
b1N0b3JlOjphZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgZG9tYWluTmFtZSwgU3RyaW5nJiYg
bmFtZSwgSGFzaFNldDxTdHJpbmc+JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5z
aW9ucykKIHsKICAgICBpZiAoIW1fc3VwcG9ydGVkUGx1Z2lucykKLSAgICAgICAgbV9zdXBwb3J0
ZWRQbHVnaW5zID0gU3VwcG9ydGVkUGx1Z2lucyB7IH07CisgICAgICAgIG1fc3VwcG9ydGVkUGx1
Z2lucyA9IFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW4+IHsgfTsKIAotICAgIFN1cHBvcnRlZFBsdWdp
biBwbHVnaW4geyBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0
ZW5zaW9ucykgfTsKLSAgICBpZiAoIW9yaWdpbikgewotICAgICAgICBtX3N1cHBvcnRlZFBsdWdp
bnMtPmFsbE9yaWdpblBsdWdpbnMuYXBwZW5kKFdURk1vdmUocGx1Z2luKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgbV9zdXBwb3J0ZWRQbHVnaW5zLT5vcmlnaW5TcGVjaWZpY1BsdWdp
bnMuZW5zdXJlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4p
LCBbXSB7Ci0gICAgICAgIHJldHVybiBWZWN0b3I8U3VwcG9ydGVkUGx1Z2luPiB7IH07Ci0gICAg
fSkuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChXVEZNb3ZlKHBsdWdpbikpOworICAgIG1fc3VwcG9y
dGVkUGx1Z2lucy0+YXBwZW5kKFN1cHBvcnRlZFBsdWdpbiB7IFdURk1vdmUoZG9tYWluTmFtZSks
IFdURk1vdmUobmFtZSksIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSB9
KTsKIH0KIAogUGx1Z2luTW9kdWxlSW5mbyBQbHVnaW5JbmZvU3RvcmU6OmluZm9Gb3JQbHVnaW5X
aXRoUGF0aChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaAppbmRleCBkM2ExMDlmYjBl
NmIzYTI0YjdmMmJlZmQ4NjIwMTkyM2Y1MjIxY2NmLi4yZGExNTQ5Mjc1ZGUxYTQwZTg3Y2M2ZjE0
MzY1Y2YyZjJlOTNhMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHN0YXRp
YyBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luKGNvbnN0
IFBsdWdpbk1vZHVsZUluZm8mKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6VVJMJiBwbHVnaW5VUkwsIGNvbnN0IFN0
cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcGFnZVVSTCk7Ci0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9ydGVkUGx1
Z2luTmFtZXMoKTsKLSAgICB2b2lkIGFkZFN1cHBvcnRlZFBsdWdpbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiosIFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBl
cywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lcygpOwor
ICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWluLCBTdHJp
bmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBl
eHRlbnNpb25zKTsKICAgICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpIHsgbV9zdXBwb3J0
ZWRQbHVnaW5zID0gc3RkOjpudWxsb3B0OyB9CiAKIHByaXZhdGU6CkBAIC05NywxNyArOTcsMTQg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2luTGlzdElzVXBUb0RhdGU7CiAKICAgICBzdHJ1
Y3QgU3VwcG9ydGVkUGx1Z2luIHsKKyAgICAgICAgU3RyaW5nIG1hdGNoaW5nRG9tYWluOwogICAg
ICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlczsKICAg
ICAgICAgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnM7CiAgICAgfTsKLSAgICBzdHJ1Y3QgU3Vw
cG9ydGVkUGx1Z2lucyB7Ci0gICAgICAgIFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW4+IGFsbE9yaWdp
blBsdWdpbnM7Ci0gICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBW
ZWN0b3I8U3VwcG9ydGVkUGx1Z2luPj4gb3JpZ2luU3BlY2lmaWNQbHVnaW5zOwotICAgIH07CiAg
ICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgU3VwcG9ydGVkUGx1Z2luJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6VVJMJiBwbHVnaW5VUkwpOwog
Ci0gICAgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5zPiBtX3N1cHBvcnRlZFBsdWdpbnM7
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luPj4gbV9zdXBwb3J0ZWRQ
bHVnaW5zOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDNmY2FmNWFiNDVkNDY4YzUxZTY0NDA0
MjFhMzI0ZDVjZWZkYzZlZjcuLjUzZjk5ZmJkNzlmM2ExN2M0Y2YzYWVlMDZkOTQyOWRlMGViZTE2
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTE3
OTMsMTIgKzE3OTMsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJQbHVnaW5DbGllbnRQ
b2xpY2llcygpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWRkU3VwcG9ydGVk
UGx1Z2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3Ry
aW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjphZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgbWF0Y2hpbmdEb21haW4sIFN0
cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+
IGV4dGVuc2lvbnMpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgbV9w
bHVnaW5JbmZvU3RvcmUuYWRkU3VwcG9ydGVkUGx1Z2luKG9yaWdpbiwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICBtX3BsdWdpbklu
Zm9TdG9yZS5hZGRTdXBwb3J0ZWRQbHVnaW4oV1RGTW92ZShtYXRjaGluZ0RvbWFpbiksIFdURk1v
dmUobmFtZSksIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSk7CiAjZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXRjaGluZ0Rv
bWFpbik7CiAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOwogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlw
ZXMpOwogICAgIFVOVVNFRF9QQVJBTShleHRlbnNpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDkwN2VmN2I5ZjI2NmFhYWE2YWFiMmNjYTRiOGVjZTdh
MjAzMzA0NmMuLmI4OTI2ZWQwY2JiNTY2Y2RlYzYxMjRhMGZhMzE2ZWM3ODAxZTQzMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjAyLDcgKzIwMiw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hN
YXA8U3RyaW5nLCB1aW50OF90Pj4+JiBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoKSBjb25zdCB7
IHJldHVybiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llczsgfQogI2VuZGlmCiAKLSAgICB2b2lk
IGFkZFN1cHBvcnRlZFBsdWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFN0cmluZyYmIG5h
bWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lv
bnMpOworICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWlu
LCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3Ry
aW5nPiBleHRlbnNpb25zKTsKICAgICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogCiAg
ICAgUHJvY2Vzc0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYTExOThiMzk5NTdjOGY4YWFiZDQw
OTczYmMzNjcyMTdkNzM5OGMzNC4uYWU4YjhmZDJiZTUyNzQzZjBiNjEzMDY5YjZjMjQzMzEyNzU3
OWZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC01NzAsNyArNTcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEJhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QKIH0KIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpbnMo
Ym9vbCByZWZyZXNoLCBWZWN0b3I8UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxQbHVnaW5J
bmZvPiYgYXBwbGljYXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRl
ZFBsdWdpbk5hbWVzPiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMpCit2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywg
VmVjdG9yPFBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMp
CiB7CiAgICAgaWYgKHJlZnJlc2gpCiAgICAgICAgIG1fcHJvY2Vzc1Bvb2wtPnBsdWdpbkluZm9T
dG9yZSgpLnJlZnJlc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggMWI2NjU0MDg1ZDA1ZTRkNGI3MjViM2JkOGYwOGI1Mzc2NmM5OTNkZi4uNjk3ZWI5
MDhkNjFjZmM3MzNjZDIxMWYzZGFjMTBkN2E0ZjQ0NGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIzOCw3ICsyMzgsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gUGx1Z2lucwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQg
Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1
Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+Jik7CisgICAgdm9pZCBn
ZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVn
aW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIGFwcGxpY2F0aW9uUGx1Z2lucywgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+Jik7CiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBw
bHVnaW5Qcm9jZXNzVG9rZW4sIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZjgwOWY4
ZGM4N2JmMTEyYjlkMjJlODE0YTUxYWI3ZTk0NGQwZjgwLi45OGM3MTJhY2MzZjc5ZDRlMTA4YmY1
YWIzNTRhNDFlMGFkZDg2MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICAjIFBsdWdpbiBtZXNzYWdl
cy4KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wg
cmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9ydGVkUGx1Z2luTmFtZXMp
CisgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxpY2F0aW9uUGx1
Z2lucywgc3RydWN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdp
bk5hbWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29u
bmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBE
ZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3Bw
CmluZGV4IGQ5N2MwMjBiNTk2MDUxZDMxMDY4M2NiZGE4YzI4MDE4ODRjYjdmMDAuLjQ0ODg5YTA4
ODAwYjQwMjM0NWM3ZWQyZGUyYmI3MzQ4NzA1MjVmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAt
OTcsNyArOTYsNyBAQCB2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVzaFBsdWdpbnMo
KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5JbmZv
KFBhZ2UmIHBhZ2UsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywgc3RkOjpvcHRpb25hbDxT
dXBwb3J0ZWRQbHVnaW5OYW1lcz4mIHN1cHBvcnRlZFBsdWdpbk5hbWVzKQordm9pZCBXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oUGFnZSYgcGFnZSwgVmVjdG9yPFBsdWdpbklu
Zm8+JiBwbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4m
IHN1cHBvcnRlZFBsdWdpbk5hbWVzKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgIHBvcHVsYXRlUGx1Z2luQ2FjaGUocGFnZSk7CkBAIC0xMjEsMjAgKzEyMCwxOSBAQCB2
b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29y
ZTo6UGFnZSYgcGFnZSwgVmVjdG9yPAogewogICAgIEFTU0VSVF9BUkcocGx1Z2lucywgcGx1Z2lu
cy5pc0VtcHR5KCkpOwogCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5OYW1lcz4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+IHN1cHBvcnRlZFBsdWdpbk5hbWVzOwogICAg
IGdldFBsdWdpbkluZm8ocGFnZSwgcGx1Z2lucywgc3VwcG9ydGVkUGx1Z2luTmFtZXMpOwogCiAg
ICAgYXV0byogZG9jdW1lbnQgPSBwYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50KCk7Ci0gICAgYXV0
byogb3JpZ2luID0gZG9jdW1lbnQgPyAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk6IG51bGxw
dHI7CiAKLSAgICBpZiAob3JpZ2luICYmIHN1cHBvcnRlZFBsdWdpbk5hbWVzKSB7Ci0gICAgICAg
IGF1dG8gb3JpZ2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2lu
KCpvcmlnaW4pOworICAgIGlmIChkb2N1bWVudCAmJiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykgewog
ICAgICAgICBwbHVnaW5zLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgcGx1Z2luKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gIWlzU3VwcG9ydGVkUGx1Z2luKCpzdXBwb3J0ZWRQbHVnaW5OYW1l
cywgb3JpZ2luRGF0YSwgcGx1Z2luLm5hbWUpOworICAgICAgICAgICAgcmV0dXJuICFpc1N1cHBv
cnRlZFBsdWdpbigqc3VwcG9ydGVkUGx1Z2luTmFtZXMsIGRvY3VtZW50LT51cmwoKSwgcGx1Z2lu
Lm5hbWUpOwogICAgICAgICB9KTsKICAgICB9CiAKICNpZiBQTEFURk9STShNQUMpCisgICAgYXV0
byogb3JpZ2luID0gZG9jdW1lbnQgPyAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk6IG51bGxw
dHI7CiAgICAgaWYgKG9yaWdpbiAmJiBvcmlnaW4tPmlzTG9jYWwoKSkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBs
dWdpbkluZm9Qcm92aWRlci5oCmluZGV4IGM1Y2IxZDg1NzQzZDljZjNlOTVjN2Q1NGQwZDNiYzIw
NWE0MDZmZDAuLjNmNjQwZjFkMTI5YWQ1OWNhYWI2OThjZDVkNTUwOWNjZjlkYzA2ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbklu
Zm9Qcm92aWRlci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyKCk7CiAKLSAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6
UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+JikgZmluYWw7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZv
KFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSBmaW5hbDsKICAgICB2
b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mKSBmaW5hbDsKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJp
ZGU7CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVmcmVz
aFBsdWdpbnMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2Nh
Y2hlZFBsdWdpbnM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IG1fY2FjaGVkQXBw
bGljYXRpb25QbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1
Z2luTmFtZXM+IG1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+IG1fY2FjaGVkU3VwcG9ydGVk
UGx1Z2luTmFtZXM7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKaW5k
ZXggNGE5MWJhYjM5N2Q0ZGIxY2NkZTYyNjM2ODJhNjM4NGJjZjlhYTBkMC4uM2U2OTVlZTdhY2Jj
MDQwZWQzZGE3M2EzM2U1ZjExZjk1ZTNlMzYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmgKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgcmVmcmVz
aFBsdWdpbnMoKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFn
ZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U3VwcG9ydGVkUGx1Z2luTmFtZXM+JikgZmluYWw7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdl
YkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSBmaW5hbDsKICAgICB2b2lk
IGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mKSBmaW5hbDsKIAogICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDk4MmRiNzI3N2U4YmE2ZTVhY2FlZmFiNWJh
ZWIxMTk0OGE3MzVmODEuLmNkNThmODIxNWE4NjQ5MTdlNmE3Y2UyYjc0YjcyOGRmMzAwMGEzZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
dWdpbkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKICAgICBbW1dlYlBsdWdpbkRh
dGFiYXNlIHNoYXJlZERhdGFiYXNlSWZFeGlzdHNdIHJlZnJlc2hdOwogfQogCi12b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVk
UGx1Z2luTmFtZXM+JikKK3ZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5JbmZv
KFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lu
cywgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+JikKIHsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKQEAgLTcxLDYgKzcxLDYgQEAgdm9pZCBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVj
dG9yPFdlYkNvcmU6OlAKIAogdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2li
bGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5J
bmZvPiYgcGx1Z2lucykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVz
PiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0
ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7CiAgICAgZ2V0UGx1Z2luSW5mbyhw
YWdlLCBwbHVnaW5zLCBzdXBwb3J0ZWRQbHVnaW5OYW1lcyk7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmM4OTk3MTRjOTg3MjA2ZmNiYTRj
MzNlMDk5YmNhNjg5OTU2MjVmMy4uNzNkNDcyZTc5MTQ5MWFjYWVjYjk4NDU3MDI4ZGMyMDQ5ODll
MTUxOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRlZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFp
bnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHA6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UGx1Z2lu
U3VwcG9ydGVkTW9kZSk6IFVwZGF0ZSB0byB3aGl0ZWxpc3QKKyAgICAgICAgbG9jYWxob3N0IGFu
ZCBub3QgaHR0cDovL2xvY2FsaG9zdDo4MDgwCisKIDIwMTgtMDMtMDUgIENsYXVkaW8gU2FhdmVk
cmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgV1RS
J3MgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleSgpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9VUkwuY3BwCmluZGV4IDdjNzg4YTdiNzZhYzg3MWVjMmJjMjZhMTI4ZWI0
MTJhZWMxNjFkODIuLmUwN2I0NzVjNDcwNDBiNTY2OTUzMjk5ZDg5MWE0Y2NkMjkyZjQ0YmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCkBAIC0yNjQsNCArMjY0
LDMyIEBAIFRFU1RfRihVUkxUZXN0LCBIb3N0SXNJUEFkZHJlc3MpCiAgICAgRVhQRUNUX1RSVUUo
VVJMOjpob3N0SXNJUEFkZHJlc3MoIjo6MTIzLjQ1LjY3Ljg5IikpOwogfQogCitURVNUX0YoVVJM
VGVzdCwgSG9zdElzTWF0Y2hpbmdEb21haW4pCit7CisgICAgVVJMIHVybCA9IGNyZWF0ZVVSTCgi
aHR0cDovL3d3dy53ZWJraXQub3JnIik7CisKKyAgICBFWFBFQ1RfVFJVRSh1cmwuaXNNYXRjaGlu
Z0RvbWFpbihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX1RSVUUodXJsLmlzTWF0Y2hpbmdEb21h
aW4oZW1wdHlTdHJpbmcoKSkpOworICAgIEVYUEVDVF9UUlVFKHVybC5pc01hdGNoaW5nRG9tYWlu
KEFTQ0lJTGl0ZXJhbCgib3JnIikpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cmwuaXNNYXRjaGluZ0Rv
bWFpbihBU0NJSUxpdGVyYWwoIndlYmtpdC5vcmciKSkpOworICAgIEVYUEVDVF9UUlVFKHVybC5p
c01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgid3d3LndlYmtpdC5vcmciKSkpOworCisgICAg
RVhQRUNUX0ZBTFNFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgicmciKSkpOwor
ICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIi5vcmci
KSkpOworICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwo
Ind3LndlYmtpdC5vcmciKSkpOworICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFp
bihBU0NJSUxpdGVyYWwoImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpKSk7CisKKyAgICB1cmwgPSBj
cmVhdGVVUkwoImZpbGU6Ly8vd3d3LndlYmtpdC5vcmciKTsKKworICAgIEVYUEVDVF9GQUxTRSh1
cmwuaXNNYXRjaGluZ0RvbWFpbihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5p
c01hdGNoaW5nRG9tYWluKGVtcHR5U3RyaW5nKCkpKTsKKyAgICBFWFBFQ1RfRkFMU0UodXJsLmlz
TWF0Y2hpbmdEb21haW4oQVNDSUlMaXRlcmFsKCJvcmciKSkpOworICAgIEVYUEVDVF9GQUxTRSh1
cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIndlYmtpdC5vcmciKSkpOworICAgIEVY
UEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoInd3dy53ZWJraXQu
b3JnIikpKTsKKworICAgIFVSTCBlbXB0eVVSTDsKKyAgICBFWFBFQ1RfRkFMU0UoZW1wdHlVUkwu
aXNNYXRjaGluZ0RvbWFpbihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX0ZBTFNFKGVtcHR5VVJM
LmlzTWF0Y2hpbmdEb21haW4oZW1wdHlTdHJpbmcoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDllOWRiOTRiZjAyZjU3OTk2MGFhY2NjOTk2ZDEyNzE2ZjNlZWYyN2IuLjM2ZmIwYTM4NzYw
MzAwOTQzNDJjYzViZTcxODY1NWU1YzJmNTYyM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjk2LDcgKzE2OTYsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpzZXRQbHVnaW5TdXBwb3J0ZWRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKIAogICAgIFdL
UmV0YWluUHRyPFdLTXV0YWJsZUFycmF5UmVmPiBlbXB0eUFycmF5ID0gYWRvcHRXSyhXS011dGFi
bGVBcnJheUNyZWF0ZSgpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWxsT3JpZ2lu
cyA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKTsKLSAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gc3BlY2lmaWNPcmlnaW4gPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vbG9jYWxob3N0OjgwODAiKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHNwZWNpZmljT3JpZ2luID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygibG9jYWxob3N0IikpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IHBkZk5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJN
eSBwZXJzb25hbCBQREYiKSk7CiAgICAgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKG1fY29u
dGV4dC5nZXQoKSwgYWxsT3JpZ2lucy5nZXQoKSwgcGRmTmFtZS5nZXQoKSwgZW1wdHlBcnJheS5n
ZXQoKSwgZW1wdHlBcnJheS5nZXQoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335157</attachid>
            <date>2018-03-06 16:54:51 -0800</date>
            <delta_ts>2018-03-07 13:26:42 -0800</delta_ts>
            <desc>Fixing win</desc>
            <filename>bug-183384-20180306165450.patch</filename>
            <type>text/plain</type>
            <size>34305</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjNzZiODA1NWJmOGRk
Yzc4N2U1YjFiNGRkM2QzM2NiM2JhMmFlNi4uOTUwOTIwZGUxNWUwYjE3NzNmZWI2YjUyZjk3ZDIz
ODZjMzg5MGJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAzLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRl
ZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFpbnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSBhbiBvcmlnaW4ta2V5
ZWQgbWFwIHRvIGEgdmVjdG9yIG9mIHBsdWdpbnMuCisgICAgICAgIFdlIGl0ZXJhdGUgdGhyb3Vn
aCB0aGUgdmVjdG9yIGFuZCBhIG1hdGMgaGFwcGVucyBpZiB0aGUgcGFnZSBob3N0IG5hbWUgZW5k
cyB3aXRoIHRoZSBwcm92aWRlZCBtYXRjaGluZyBkb21haW4uCisgICAgICAgIFRoaXMgYWxsb3dz
IHN1cHBvcnRpbmcgcnVsZXMgZm9yICoubXlkb21haW4uY29tIGJ5IHBhc3NpbmcgJ215ZG9tYWlu
LmNvbScuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisgICAgICAgIFdlIGFy
ZSBub3QgdGVzdGluZyBzdWJkb21haW5zIGxpa2Ugd3d3LmxvY2FsaG9zdCBzaW5jZSB0aGVyZSBp
cyBubyBzdXBwb3J0IGluIG91ciBDSSBidXQgdGhpcyBpcyB0ZXN0ZWQgdGhyb3VnaCBVbml0IHRl
c3RzLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vVVJMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVSTDo6aXNNYXRjaGluZ0RvbWFpbiBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vVVJMLmg6CisgICAgICAgICogcGx1Z2lucy9QbHVn
aW5EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3VwcG9ydGVkUGx1Z2luTmFtZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKiBwbHVnaW5z
L1BsdWdpbkluZm9Qcm92aWRlci5oOgorCiAyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
OjpyZWFkeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBmNjQyY2NlZDg4ODViN2VmOGQzYzRkMjZmNWVkZDUwOGFiNTI5
ZTIxLi5kZWM4NjMzZTY4NDUxNmM4N2Y2YWVhMWU1MDJhODEwMTgzZTAxOGY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM0IEBACisyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRlZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFp
bnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmVkIGZyb20gYSBIYXNoTWFwIG9mIHBsdWdpbnMgdG8gYSBWZWN0b3Igb2Yg
cGx1Z2lucyBzaW5jZSB3ZSBjYW5ub3QgbWF0Y2ggZXhhY3RseSBiYXNlZCBvbiB0aGUgb3JpZ2lu
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRBZGRTdXBwb3J0
ZWRQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBfYWRkU3VwcG9ydGVkUGx1Z2luOm5hbWVkOndp
dGhNaW1lVHlwZXM6d2l0aEV4dGVuc2lvbnM6XSk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3Jl
Ojppc1N1cHBvcnRlZFBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6
c3VwcG9ydGVkUGx1Z2luTmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6
OmFkZFN1cHBvcnRlZFBsdWdpbik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
SW5mb1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFkZFN1cHBvcnRlZFBsdWdpbik6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0
UGx1Z2lucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaDoKKwogMjAx
OC0wMy0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgQXV0b21hdGlvbjogY2xpY2tpbmcgb24gYSBkaXNhYmxlZCBvcHRpb24gZWxlbWVudCBz
aG91bGRuJ3QgcHJvZHVjZSBhbiBlcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDhmZmYzODVjZTBjM2Y5ZTI1YzI0NmE0NzgyMTU5ZTM5NTY5ZWIzZTcuLmYyYzczNTU3ZTM2ZGY0
YTY2YjFmMzgzOTE4YWZiMmUxMGMzZWU4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWF0Y2ggdW5zdXBwb3J0ZWQgcGx1Z2lucyBiYXNlZCBvbiBkb21h
aW5zIGFuZCBub3Qgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODMzODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAg
KFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKToKKwogMjAxOC0wMy0wNCAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBN
b3ZlIGN1cnJlbnRDUFVUaW1lIGFuZCBzbGVlcChTZWNvbmRzKSB0byBDUFVUaW1lLmggYW5kIFNl
Y29uZHMuaCByZXNwZWN0aXZlbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
aW5kZXggMzM4NjgwMmQ4MmE4ZGUwMGZlZjc1NDJhNTY3ODQxNTFkMzlhYTNhZC4uZDg4NTBmZmFh
NTA1MGIwZGNlZDIyN2JhYjA1MDRmMGY2MTgzZTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKQEAgLTMyNSw3ICszMjUsNyBAQCBjbGFzcyBFbXB0eVBheW1lbnRDb29y
ZGluYXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgewog
CiBjbGFzcyBFbXB0eVBsdWdpbkluZm9Qcm92aWRlciBmaW5hbCA6IHB1YmxpYyBQbHVnaW5JbmZv
UHJvdmlkZXIgewogICAgIHZvaWQgcmVmcmVzaFBsdWdpbnMoKSBmaW5hbCB7IH07Ci0gICAgdm9p
ZCBnZXRQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFs
PFN1cHBvcnRlZFBsdWdpbk5hbWVzPiYpIGZpbmFsIHsgfQorICAgIHZvaWQgZ2V0UGx1Z2luSW5m
byhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9y
dGVkUGx1Z2luTmFtZT4+JikgZmluYWwgeyB9CiAgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2lu
SW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+JikgZmluYWwgeyB9CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vVVJMLmNwcAppbmRleCA1OTdhNTZjM2I2ZTY2M2I4YjA2MjM1NjYzZTdhY2RmNTgyYzk1
NGY1Li45N2Q5MWYzNjI4NjRhODI5ZDdlNjE3OWU2M2FhMzU5N2JiNTMzZmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5jcHAKQEAgLTc3Niw2ICs3NzYsMjIgQEAgYm9vbCBob3N0c0FyZUVxdWFsKGNv
bnN0IFVSTCYgYSwgY29uc3QgVVJMJiBiKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFVS
TDo6aXNNYXRjaGluZ0RvbWFpbihjb25zdCBTdHJpbmcmIGRvbWFpbikgY29uc3QKK3sKKyAgICAv
LyBXZSByZXN0cmljdCBpdCB0byBIVFRQIGZvciBzaW1wbGljaXR5IHNpbmNlIHdlIGRvIG5vdCB3
YW50IHRvIG1hdGNoIGRhdGEsIGJsb2Igb3IgZmlsZSBiYXNlZCBVUkxzLgorICAgIGlmIChpc051
bGwoKSB8fCAhcHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBhdXRvIGhvc3QgPSB0aGlzLT5ob3N0KCk7CisgICAgaWYgKCFob3N0LmVuZHNXaXRoKGRvbWFp
bikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBob3N0Lmxlbmd0aCgpID09
IGRvbWFpbi5sZW5ndGgoKSB8fCBob3N0LmNoYXJhY3RlckF0KGhvc3QubGVuZ3RoKCkgLSBkb21h
aW4ubGVuZ3RoKCkgLSAxKSA9PSAnLic7Cit9CisKIFN0cmluZyBlbmNvZGVXaXRoVVJMRXNjYXBl
U2VxdWVuY2VzKGNvbnN0IFN0cmluZyYgaW5wdXQpCiB7CiAgICAgcmV0dXJuIHBlcmNlbnRFbmNv
ZGVDaGFyYWN0ZXJzKGlucHV0LCBVUkxQYXJzZXI6OmlzSW5Vc2VySW5mb0VuY29kZVNldCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1VSTC5oCmluZGV4IGI4ZWQ3NzhlNjdkMWE2N2YwYmMzYzFhOGM1MWFmMThjMjMw
ZjQwZjguLjQ1YTdiMzFjMDIwMzAwOGMzZDAwMzM5MGZhMzU5MjAyYTM4M2EyNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1VSTC5oCkBAIC0xNDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgaXNCbGFua1VSTCgpIGNvbnN0OwogICAgIGJvb2wgY2Fubm90QmVBQmFzZVVSTCgp
IGNvbnN0IHsgcmV0dXJuIG1fY2Fubm90QmVBQmFzZVVSTDsgfQogCisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc01hdGNoaW5nRG9tYWluKGNvbnN0IFN0cmluZyYpIGNvbnN0OworCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXRQcm90b2NvbChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNl
dEhvc3QoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhLmgKaW5k
ZXggNjkwYmE3Mjc3NzA4NzRlNWI0NTU4OTNmYjgwNGYzY2ZhZjhhNGU5NC4uYTlhOWZmZjBkNzg3
ZWMxMGYyY2M3NGU5MThhZmY5NjAwYTI3MjhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
YXRhLmgKQEAgLTIwLDcgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTg4LDEyICs4OCwxMiBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KFBsdWdpbkluZm8m
IGEsIFBsdWdpbkluZm8mIGIpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RydWN0IFN1cHBv
cnRlZFBsdWdpbk5hbWVzIHsKLSAgICBIYXNoU2V0PFN0cmluZz4gYWxsT3JpZ2luUGx1Z2luczsK
LSAgICBIYXNoTWFwPFNlY3VyaXR5T3JpZ2luRGF0YSwgSGFzaFNldDxTdHJpbmc+PiBvcmlnaW5T
cGVjaWZpY1BsdWdpbnM7CitzdHJ1Y3QgU3VwcG9ydGVkUGx1Z2luTmFtZSB7CisgICAgU3RyaW5n
IG1hdGNoaW5nRG9tYWluOworICAgIFN0cmluZyBwbHVnaW5OYW1lOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVz
PiBkZWNvZGUoRGVjb2RlciYpOworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWU+IGRlY29kZShEZWNvZGVyJik7CiB9Owog
CiAvLyBGSVhNRTogbWVyZ2Ugd2l0aCBQbHVnaW5EYXRhYmFzZSBpbiB0aGUgZnV0dXJlCkBAIC0x
MjYsMzkgKzEyNiwzNSBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFBhZ2UmIG1fcGFnZTsK
ICAgICBWZWN0b3I8UGx1Z2luSW5mbz4gbV9wbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8U3Vw
cG9ydGVkUGx1Z2luTmFtZXM+IG1fc3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+IG1fc3VwcG9ydGVkUGx1Z2luTmFtZXM7
CiB9OwogCi1pbmxpbmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdpbihTdXBwb3J0ZWRQbHVnaW5OYW1l
cyYgcGx1Z2luTmFtZXMsIFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IHBsdWdpbk5hbWUpCitpbmxpbmUgYm9vbCBpc1N1cHBvcnRlZFBsdWdpbihjb25zdCBWZWN0b3I8
U3VwcG9ydGVkUGx1Z2luTmFtZT4mIHBsdWdpbk5hbWVzLCBjb25zdCBVUkwmIHBhZ2VVUkwsIGNv
bnN0IFN0cmluZyYgcGx1Z2luTmFtZSkKIHsKLSAgICBhdXRvIGl0ZXJhdG9yID0gcGx1Z2luTmFt
ZXMub3JpZ2luU3BlY2lmaWNQbHVnaW5zLmZpbmQob3JpZ2luKTsKLSAgICBpZiAoaXRlcmF0b3Ig
IT0gcGx1Z2luTmFtZXMub3JpZ2luU3BlY2lmaWNQbHVnaW5zLmVuZCgpKSB7Ci0gICAgICAgIGlm
IChpdGVyYXRvci0+dmFsdWUuY29udGFpbnMocGx1Z2luTmFtZSkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGx1Z2luTmFtZXMuYWxsT3JpZ2luUGx1Z2lu
cy5jb250YWlucyhwbHVnaW5OYW1lKTsKKyAgICByZXR1cm4gcGx1Z2luTmFtZXMuZmluZE1hdGNo
aW5nKFsmXSAoYXV0byYmIHBsdWdpbikgeworICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01hdGNo
aW5nRG9tYWluKHBsdWdpbi5tYXRjaGluZ0RvbWFpbikgJiYgcGx1Z2luLnBsdWdpbk5hbWUgPT0g
cGx1Z2luTmFtZTsKKyAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gaW5saW5lIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFtZXM+IFN1cHBvcnRl
ZFBsdWdpbk5hbWVzOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IGlubGluZSBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWU+IFN1cHBvcnRl
ZFBsdWdpbk5hbWU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIHN0ZDo6b3B0aW9u
YWw8SGFzaFNldDxTdHJpbmc+PiBhbGxPcmlnaW5QbHVnaW5zOwotICAgIGRlY29kZXIgPj4gYWxs
T3JpZ2luUGx1Z2luczsKLSAgICBpZiAoIWFsbE9yaWdpblBsdWdpbnMpCisgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IG1hdGNoaW5nRG9tYWluOworICAgIGRlY29kZXIgPj4gbWF0Y2hpbmdEb21h
aW47CisgICAgaWYgKCFtYXRjaGluZ0RvbWFpbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIEhhc2hT
ZXQ8U3RyaW5nPj4+IG9yaWdpblNwZWNpZmljUGx1Z2luczsKLSAgICBkZWNvZGVyID4+IG9yaWdp
blNwZWNpZmljUGx1Z2luczsKLSAgICBpZiAoIW9yaWdpblNwZWNpZmljUGx1Z2lucykKKyAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gcGx1Z2luTmFtZTsKKyAgICBkZWNvZGVyID4+IHBsdWdpbk5h
bWU7CisgICAgaWYgKCFwbHVnaW5OYW1lKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owog
Ci0gICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbk5hbWVzIHsgV1RGTW92ZShhbGxPcmlnaW5QbHVn
aW5zLnZhbHVlKCkpLCBXVEZNb3ZlKG9yaWdpblNwZWNpZmljUGx1Z2lucy52YWx1ZSgpKSB9Owor
ICAgIHJldHVybiBTdXBwb3J0ZWRQbHVnaW5OYW1lIHsgV1RGTW92ZShtYXRjaGluZ0RvbWFpbi52
YWx1ZSgpKSwgV1RGTW92ZShwbHVnaW5OYW1lLnZhbHVlKCkpIH07CiB9CiAKLXRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IGlubGluZSB2b2lkIFN1cHBvcnRlZFBsdWdpbk5hbWVzOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lk
IFN1cHBvcnRlZFBsdWdpbk5hbWU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIgPDwgYWxsT3JpZ2luUGx1Z2luczsKLSAgICBlbmNvZGVyIDw8IG9yaWdpblNw
ZWNpZmljUGx1Z2luczsKKyAgICBlbmNvZGVyIDw8IG1hdGNoaW5nRG9tYWluOworICAgIGVuY29k
ZXIgPDwgcGx1Z2luTmFtZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmgKaW5kZXggNmUwNWVmYmI3OWNjY2Zj
NjQ3ZTkzNGIwYTIwYWZmNjY3ZjMwMDliMy4uYjAzY2QyZTIzZmQwNGZiMmQxZmMyZDE0NzhkMGNm
ZGE1NWJiNTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZv
UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkluZm9Qcm92aWRl
ci5oCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBhZ2UoUGFnZSYpOwog
ICAgIHZvaWQgcmVtb3ZlUGFnZShQYWdlJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2lu
SW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQ
bHVnaW5OYW1lcz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oUGFnZSYs
IFZlY3RvcjxQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdp
bk5hbWU+PiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8o
UGFnZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYpID0gMDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDRiYTNhZGI3NTdiNDU1YWEzNzhkNWQ0
YjA5ZTAxNGVjMGQ3NDY5ZmMuLjcxN2MxMjAxODUyYmFjNGFjZjA3ZTc4MWZhMDIyOGVmZTZjYjg3
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzk4LDcg
KzM5OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQn
OiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2hvdWxkU2FtcGxlJzogWyc8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPiddLAot
ICAgICAgICAnV2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXMnOiBbJzxXZWJDb3JlL1BsdWdp
bkRhdGEuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWUnOiBbJzxX
ZWJDb3JlL1BsdWdpbkRhdGEuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAppbmRleCBkZWUwYTA5YzA1NWQ4NDg1YTAyM2E0NWZhMTc0NGNmZTNhYTE4MTQ0Li4xNTI4
OTAzYzAzYTc4YmZmYjU0OGNiMjc1ZDNmMDNmN2E0OTAzMzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTYzNCwxMCArNjM0LDcgQEAgdm9pZCBX
S0NvbnRleHRBZGRTdXBwb3J0ZWRQbHVnaW4oV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3Ry
aW5nUmVmIG9yaWdpblJlZiwKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kp
CiAgICAgICAgIGV4dGVuc2lvbnMuYWRkKHRvV1RGU3RyaW5nKHN0YXRpY19jYXN0PFdLU3RyaW5n
UmVmPihXS0FycmF5R2V0SXRlbUF0SW5kZXgoZXh0ZW5zaW9uc1JlZiwgaSkpKSk7CiAKLSAgICBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbjsKLSAgICBpZiAoIVdLU3RyaW5nSXNFbXB0eShv
cmlnaW5SZWYpKQotICAgICAgICBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyh0b1dURlN0cmluZyhvcmlnaW5SZWYpKTsKLSAgICB0b0ltcGwoY29udGV4dFJlZiktPmFk
ZFN1cHBvcnRlZFBsdWdpbihvcmlnaW4uZ2V0KCksIHRvV1RGU3RyaW5nKG5hbWVSZWYpLCBXVEZN
b3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykpOworICAgIHRvSW1wbChjb250ZXh0
UmVmKS0+YWRkU3VwcG9ydGVkUGx1Z2luKHRvV1RGU3RyaW5nKG9yaWdpblJlZiksIHRvV1RGU3Ry
aW5nKG5hbWVSZWYpLCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykpOwog
I2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KaW5kZXggNWYwYzMyNjg2NjU0MmZlMGI0ZGVkMjIyODYxMTkwMTA5Yzc0
MjQ0OS4uY2ZkNjliNGY2NzBlODgzNjNkN2VhZThkMTc1MDU3ZTk4MTk4ZjAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAg
LTQwNiw3ICs0MDYsNyBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpwb2xpY2llc0hhc2hNYXBUb0Rp
Y3Rpb25hcnkoY29uc3QgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8UwogICAgIGZvciAoTlNTdHJp
bmcgKmV4dGVuc2lvbiBpbiBuc0V4dGVuc2lvbnMpCiAgICAgICAgIGV4dGVuc2lvbnMuYWRkKGV4
dGVuc2lvbik7CiAKLSAgICBfcHJvY2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihbb3JpZ2lu
IGxlbmd0aF0gPyBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmln
aW4pLnB0cigpIDogbnVsbHB0ciwgbmFtZSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4
dGVuc2lvbnMpKTsKKyAgICBfcHJvY2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihvcmlnaW4s
IG5hbWUsIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSk7CiB9CiAKIC0g
KHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCmluZGV4IDYxYzAwZWU5NmUwYTBhODQy
OGFlODRiMWMwMmI1YTRjNzYwYzBkYjQuLjIzZGIzMzQ5YjQ4ODk2NDJlNzIwZjc4YTc5MTFmNDUy
YWQ0YWVmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luSW5mb1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5jcHAKQEAgLTI5LDggKzI5LDkgQEAKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKIAogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8uaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VSTC5o
PgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yMTQsNTMgKzIxNSwzMSBAQCBib29sIFBs
dWdpbkluZm9TdG9yZTo6aXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgUGx1Z2luSW5mb1N0b3JlOjpT
dXBwb3J0ZWRQbHVnaW4mCiAKIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjppc1N1cHBvcnRlZFBsdWdp
bihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBVUkwmIHBsdWdpblVSTCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgVVJMJiBwYWdlVVJMKQogewotICAgIC8vIFdlIGNoZWNrIG9ubHkgcGFnZVVS
TFN0cmluZyBmb3IgY29uc2lzdGVuY3kgd2l0aCBXZWJQcm9jZXNzIHZpc2libGUgcGx1Z2lucy4K
KyAgICAvLyBXZSBjaGVjayBvbmx5IHBhZ2VVUkwgZm9yIGNvbnNpc3RlbmN5IHdpdGggV2ViUHJv
Y2VzcyB2aXNpYmxlIHBsdWdpbnMuCiAgICAgaWYgKCFtX3N1cHBvcnRlZFBsdWdpbnMpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgZm9yIChhdXRvJiBwbHVnaW4gOiBtX3N1cHBvcnRlZFBs
dWdpbnMtPm9yaWdpblNwZWNpZmljUGx1Z2lucy5nZXQoU2VjdXJpdHlPcmlnaW5EYXRhIHsgcGFn
ZVVSTC5wcm90b2NvbCgpLnRvU3RyaW5nKCksIHBhZ2VVUkwuaG9zdCgpLCBwYWdlVVJMLnBvcnQo
KSB9KSkgewotICAgICAgICBpZiAoaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwg
cGx1Z2luVVJMKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBmb3IgKGF1
dG8mIHBsdWdpbiA6IG1fc3VwcG9ydGVkUGx1Z2lucy0+YWxsT3JpZ2luUGx1Z2lucykgewotICAg
ICAgICBpZiAoaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwgcGx1Z2luVVJMKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG1fc3VwcG9ydGVkUGx1Z2lucy0+ZmluZE1hdGNoaW5nKFsmXSAoYXV0byYmIHBsdWdp
bikgeworICAgICAgICByZXR1cm4gcGFnZVVSTC5pc01hdGNoaW5nRG9tYWluKHBsdWdpbi5tYXRj
aGluZ0RvbWFpbikgJiYgaXNTdXBwb3J0ZWRQbHVnaW4ocGx1Z2luLCBtaW1lVHlwZSwgcGx1Z2lu
VVJMKTsKKyAgICB9KSAhPSBub3RGb3VuZDsKIH0KIAotc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQ
bHVnaW5OYW1lcz4gUGx1Z2luSW5mb1N0b3JlOjpzdXBwb3J0ZWRQbHVnaW5OYW1lcygpCitzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gUGx1Z2luSW5mb1N0b3JlOjpz
dXBwb3J0ZWRQbHVnaW5OYW1lcygpCiB7CiAgICAgaWYgKCFtX3N1cHBvcnRlZFBsdWdpbnMpCiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBIYXNoU2V0PFN0cmluZz4gYWxsT3Jp
Z2luUGx1Z2luczsKLSAgICBmb3IgKGF1dG8mIHBsdWdpbiA6IG1fc3VwcG9ydGVkUGx1Z2lucy0+
YWxsT3JpZ2luUGx1Z2lucykKLSAgICAgICAgYWxsT3JpZ2luUGx1Z2lucy5hZGQocGx1Z2luLm5h
bWUpOwotCi0gICAgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIEhhc2hTZXQ8U3RyaW5nPj4g
b3JpZ2luU3BlY2lmaWNQbHVnaW5zOwotICAgIGZvciAoYXV0byYga2V5VmFsdWUgOiBtX3N1cHBv
cnRlZFBsdWdpbnMtPm9yaWdpblNwZWNpZmljUGx1Z2lucykgewotICAgICAgICBIYXNoU2V0PFN0
cmluZz4gbmFtZXM7Ci0gICAgICAgIGZvciAoYXV0byYgcGx1Z2luIDoga2V5VmFsdWUudmFsdWUp
Ci0gICAgICAgICAgICBuYW1lcy5hZGQocGx1Z2luLm5hbWUpOwotICAgICAgICBvcmlnaW5TcGVj
aWZpY1BsdWdpbnMuYWRkKGtleVZhbHVlLmtleSwgV1RGTW92ZShuYW1lcykpOwotICAgIH0KLSAg
ICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luTmFtZXMgeyBXVEZNb3ZlKGFsbE9yaWdpblBsdWdpbnMp
LCBXVEZNb3ZlKG9yaWdpblNwZWNpZmljUGx1Z2lucykgfTsKKyAgICByZXR1cm4gV1RGOjptYXAo
Km1fc3VwcG9ydGVkUGx1Z2lucywgW10gKGF1dG8mJiBpdGVtKSB7CisgICAgICAgIHJldHVybiBT
dXBwb3J0ZWRQbHVnaW5OYW1lIHsgaXRlbS5tYXRjaGluZ0RvbWFpbiwgaXRlbS5uYW1lIH07Cisg
ICAgfSk7CiB9CiAKLXZvaWQgUGx1Z2luSW5mb1N0b3JlOjphZGRTdXBwb3J0ZWRQbHVnaW4oY29u
c3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgU3RyaW5nJiYgbmFtZSwgSGFzaFNldDxTdHJpbmc+
JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9ucykKK3ZvaWQgUGx1Z2luSW5m
b1N0b3JlOjphZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgZG9tYWluTmFtZSwgU3RyaW5nJiYg
bmFtZSwgSGFzaFNldDxTdHJpbmc+JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5z
aW9ucykKIHsKICAgICBpZiAoIW1fc3VwcG9ydGVkUGx1Z2lucykKLSAgICAgICAgbV9zdXBwb3J0
ZWRQbHVnaW5zID0gU3VwcG9ydGVkUGx1Z2lucyB7IH07CisgICAgICAgIG1fc3VwcG9ydGVkUGx1
Z2lucyA9IFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW4+IHsgfTsKIAotICAgIFN1cHBvcnRlZFBsdWdp
biBwbHVnaW4geyBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKG1pbWVUeXBlcyksIFdURk1vdmUoZXh0
ZW5zaW9ucykgfTsKLSAgICBpZiAoIW9yaWdpbikgewotICAgICAgICBtX3N1cHBvcnRlZFBsdWdp
bnMtPmFsbE9yaWdpblBsdWdpbnMuYXBwZW5kKFdURk1vdmUocGx1Z2luKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgbV9zdXBwb3J0ZWRQbHVnaW5zLT5vcmlnaW5TcGVjaWZpY1BsdWdp
bnMuZW5zdXJlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4p
LCBbXSB7Ci0gICAgICAgIHJldHVybiBWZWN0b3I8U3VwcG9ydGVkUGx1Z2luPiB7IH07Ci0gICAg
fSkuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChXVEZNb3ZlKHBsdWdpbikpOworICAgIG1fc3VwcG9y
dGVkUGx1Z2lucy0+YXBwZW5kKFN1cHBvcnRlZFBsdWdpbiB7IFdURk1vdmUoZG9tYWluTmFtZSks
IFdURk1vdmUobmFtZSksIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSB9
KTsKIH0KIAogUGx1Z2luTW9kdWxlSW5mbyBQbHVnaW5JbmZvU3RvcmU6OmluZm9Gb3JQbHVnaW5X
aXRoUGF0aChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaAppbmRleCBkM2ExMDlmYjBl
NmIzYTI0YjdmMmJlZmQ4NjIwMTkyM2Y1MjIxY2NmLi4yZGExNTQ5Mjc1ZGUxYTQwZTg3Y2M2ZjE0
MzY1Y2YyZjJlOTNhMmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbkluZm9TdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luSW5mb1N0b3JlLmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHN0YXRp
YyBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luKGNvbnN0
IFBsdWdpbk1vZHVsZUluZm8mKTsKIAogICAgIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6VVJMJiBwbHVnaW5VUkwsIGNvbnN0IFN0
cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFdlYkNvcmU6OlVSTCYgcGFnZVVSTCk7Ci0gICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9ydGVkUGx1
Z2luTmFtZXMoKTsKLSAgICB2b2lkIGFkZFN1cHBvcnRlZFBsdWdpbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiosIFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBl
cywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lcygpOwor
ICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWluLCBTdHJp
bmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBl
eHRlbnNpb25zKTsKICAgICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpIHsgbV9zdXBwb3J0
ZWRQbHVnaW5zID0gc3RkOjpudWxsb3B0OyB9CiAKIHByaXZhdGU6CkBAIC05NywxNyArOTcsMTQg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcGx1Z2luTGlzdElzVXBUb0RhdGU7CiAKICAgICBzdHJ1
Y3QgU3VwcG9ydGVkUGx1Z2luIHsKKyAgICAgICAgU3RyaW5nIG1hdGNoaW5nRG9tYWluOwogICAg
ICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlczsKICAg
ICAgICAgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnM7CiAgICAgfTsKLSAgICBzdHJ1Y3QgU3Vw
cG9ydGVkUGx1Z2lucyB7Ci0gICAgICAgIFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW4+IGFsbE9yaWdp
blBsdWdpbnM7Ci0gICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBW
ZWN0b3I8U3VwcG9ydGVkUGx1Z2luPj4gb3JpZ2luU3BlY2lmaWNQbHVnaW5zOwotICAgIH07CiAg
ICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgU3VwcG9ydGVkUGx1Z2luJiwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6VVJMJiBwbHVnaW5VUkwpOwog
Ci0gICAgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5zPiBtX3N1cHBvcnRlZFBsdWdpbnM7
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luPj4gbV9zdXBwb3J0ZWRQ
bHVnaW5zOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDNmY2FmNWFiNDVkNDY4YzUxZTY0NDA0
MjFhMzI0ZDVjZWZkYzZlZjcuLjUzZjk5ZmJkNzlmM2ExN2M0Y2YzYWVlMDZkOTQyOWRlMGViZTE2
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTE3
OTMsMTIgKzE3OTMsMTIgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Y2xlYXJQbHVnaW5DbGllbnRQ
b2xpY2llcygpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6YWRkU3VwcG9ydGVk
UGx1Z2luKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3Ry
aW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjphZGRTdXBwb3J0ZWRQbHVnaW4oU3RyaW5nJiYgbWF0Y2hpbmdEb21haW4sIFN0
cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+
IGV4dGVuc2lvbnMpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgbV9w
bHVnaW5JbmZvU3RvcmUuYWRkU3VwcG9ydGVkUGx1Z2luKG9yaWdpbiwgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICBtX3BsdWdpbklu
Zm9TdG9yZS5hZGRTdXBwb3J0ZWRQbHVnaW4oV1RGTW92ZShtYXRjaGluZ0RvbWFpbiksIFdURk1v
dmUobmFtZSksIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSk7CiAjZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShvcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXRjaGluZ0Rv
bWFpbik7CiAgICAgVU5VU0VEX1BBUkFNKG5hbWUpOwogICAgIFVOVVNFRF9QQVJBTShtaW1lVHlw
ZXMpOwogICAgIFVOVVNFRF9QQVJBTShleHRlbnNpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDkwN2VmN2I5ZjI2NmFhYWE2YWFiMmNjYTRiOGVjZTdh
MjAzMzA0NmMuLmI4OTI2ZWQwY2JiNTY2Y2RlYzYxMjRhMGZhMzE2ZWM3ODAxZTQzMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjAyLDcgKzIwMiw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hN
YXA8U3RyaW5nLCB1aW50OF90Pj4+JiBwbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMoKSBjb25zdCB7
IHJldHVybiBtX3BsdWdpbkxvYWRDbGllbnRQb2xpY2llczsgfQogI2VuZGlmCiAKLSAgICB2b2lk
IGFkZFN1cHBvcnRlZFBsdWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFN0cmluZyYmIG5h
bWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lv
bnMpOworICAgIHZvaWQgYWRkU3VwcG9ydGVkUGx1Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWlu
LCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3Ry
aW5nPiBleHRlbnNpb25zKTsKICAgICB2b2lkIGNsZWFyU3VwcG9ydGVkUGx1Z2lucygpOwogCiAg
ICAgUHJvY2Vzc0lEIG5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggYTExOThiMzk5NTdjOGY4YWFiZDQw
OTczYmMzNjcyMTdkNzM5OGMzNC4uYWU4YjhmZDJiZTUyNzQzZjBiNjEzMDY5YjZjMjQzMzEyNzU3
OWZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC01NzAsNyArNTcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEJhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QKIH0KIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpbnMo
Ym9vbCByZWZyZXNoLCBWZWN0b3I8UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxQbHVnaW5J
bmZvPiYgYXBwbGljYXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRl
ZFBsdWdpbk5hbWVzPiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMpCit2b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywg
VmVjdG9yPFBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMp
CiB7CiAgICAgaWYgKHJlZnJlc2gpCiAgICAgICAgIG1fcHJvY2Vzc1Bvb2wtPnBsdWdpbkluZm9T
dG9yZSgpLnJlZnJlc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggMWI2NjU0MDg1ZDA1ZTRkNGI3MjViM2JkOGYwOGI1Mzc2NmM5OTNkZi4uNjk3ZWI5
MDhkNjFjZmM3MzNjZDIxMWYzZGFjMTBkN2E0ZjQ0NGZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIzOCw3ICsyMzgsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gUGx1Z2lucwogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIHZvaWQg
Z2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1
Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+Jik7CisgICAgdm9pZCBn
ZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBwbHVn
aW5zLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIGFwcGxpY2F0aW9uUGx1Z2lucywgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+Jik7CiAjZW5k
aWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCiAgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBw
bHVnaW5Qcm9jZXNzVG9rZW4sIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3ZjgwOWY4
ZGM4N2JmMTEyYjlkMjJlODE0YTUxYWI3ZTk0NGQwZjgwLi45OGM3MTJhY2MzZjc5ZDRlMTA4YmY1
YWIzNTRhNDFlMGFkZDg2MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMyw3ICszMyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICAjIFBsdWdpbiBtZXNzYWdl
cy4KICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBHZXRQbHVnaW5zKGJvb2wg
cmVmcmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8
V2ViQ29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zLCBzdHJ1Y3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9ydGVkUGx1Z2luTmFtZXMp
CisgICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxpY2F0aW9uUGx1
Z2lucywgc3RydWN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdp
bk5hbWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykKICAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChJUEM6OkF0dGFjaG1lbnQgY29u
bmVjdGlvbkhhbmRsZSwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c0luaXRpYWxpemF0aW9uKSBE
ZWxheWVkCiAjZW5kaWYKICAgICBHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKSAtPiAoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpIERlbGF5ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3Bw
CmluZGV4IGQ5N2MwMjBiNTk2MDUxZDMxMDY4M2NiZGE4YzI4MDE4ODRjYjdmMDAuLjQ0ODg5YTA4
ODAwYjQwMjM0NWM3ZWQyZGUyYmI3MzQ4NzA1MjVmMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcApA
QCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
dWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIApAQCAt
OTcsNyArOTYsNyBAQCB2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cmVmcmVzaFBsdWdpbnMo
KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5JbmZv
KFBhZ2UmIHBhZ2UsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywgc3RkOjpvcHRpb25hbDxT
dXBwb3J0ZWRQbHVnaW5OYW1lcz4mIHN1cHBvcnRlZFBsdWdpbk5hbWVzKQordm9pZCBXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oUGFnZSYgcGFnZSwgVmVjdG9yPFBsdWdpbklu
Zm8+JiBwbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4m
IHN1cHBvcnRlZFBsdWdpbk5hbWVzKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogICAgIHBvcHVsYXRlUGx1Z2luQ2FjaGUocGFnZSk7CkBAIC0xMjEsMjAgKzEyMCwxOSBAQCB2
b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29y
ZTo6UGFnZSYgcGFnZSwgVmVjdG9yPAogewogICAgIEFTU0VSVF9BUkcocGx1Z2lucywgcGx1Z2lu
cy5pc0VtcHR5KCkpOwogCi0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5OYW1lcz4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+IHN1cHBvcnRlZFBsdWdpbk5hbWVzOwogICAg
IGdldFBsdWdpbkluZm8ocGFnZSwgcGx1Z2lucywgc3VwcG9ydGVkUGx1Z2luTmFtZXMpOwogCiAg
ICAgYXV0byogZG9jdW1lbnQgPSBwYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50KCk7Ci0gICAgYXV0
byogb3JpZ2luID0gZG9jdW1lbnQgPyAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk6IG51bGxw
dHI7CiAKLSAgICBpZiAob3JpZ2luICYmIHN1cHBvcnRlZFBsdWdpbk5hbWVzKSB7Ci0gICAgICAg
IGF1dG8gb3JpZ2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2lu
KCpvcmlnaW4pOworICAgIGlmIChkb2N1bWVudCAmJiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykgewog
ICAgICAgICBwbHVnaW5zLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoYXV0byYgcGx1Z2luKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gIWlzU3VwcG9ydGVkUGx1Z2luKCpzdXBwb3J0ZWRQbHVnaW5OYW1l
cywgb3JpZ2luRGF0YSwgcGx1Z2luLm5hbWUpOworICAgICAgICAgICAgcmV0dXJuICFpc1N1cHBv
cnRlZFBsdWdpbigqc3VwcG9ydGVkUGx1Z2luTmFtZXMsIGRvY3VtZW50LT51cmwoKSwgcGx1Z2lu
Lm5hbWUpOwogICAgICAgICB9KTsKICAgICB9CiAKICNpZiBQTEFURk9STShNQUMpCisgICAgYXV0
byogb3JpZ2luID0gZG9jdW1lbnQgPyAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk6IG51bGxw
dHI7CiAgICAgaWYgKG9yaWdpbiAmJiBvcmlnaW4tPmlzTG9jYWwoKSkKICAgICAgICAgcmV0dXJu
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBs
dWdpbkluZm9Qcm92aWRlci5oCmluZGV4IGM1Y2IxZDg1NzQzZDljZjNlOTVjN2Q1NGQwZDNiYzIw
NWE0MDZmZDAuLjNmNjQwZjFkMTI5YWQ1OWNhYWI2OThjZDVkNTUwOWNjZjlkYzA2ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbklu
Zm9Qcm92aWRlci5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyKCk7CiAKLSAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6
UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+JikgZmluYWw7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZv
KFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSBmaW5hbDsKICAgICB2
b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mKSBmaW5hbDsKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJp
ZGU7CiAKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkUmVmcmVz
aFBsdWdpbnMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2Nh
Y2hlZFBsdWdpbnM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IG1fY2FjaGVkQXBw
bGljYXRpb25QbHVnaW5zOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1
Z2luTmFtZXM+IG1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+IG1fY2FjaGVkU3VwcG9ydGVk
UGx1Z2luTmFtZXM7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKaW5k
ZXggNGE5MWJhYjM5N2Q0ZGIxY2NkZTYyNjM2ODJhNjM4NGJjZjlhYTBkMC4uM2U2OTVlZTdhY2Jj
MDQwZWQzZGE3M2EzM2U1ZjExZjk1ZTNlMzYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmgKQEAgLTM0LDcgKzM0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgcmVmcmVz
aFBsdWdpbnMoKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFn
ZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U3VwcG9ydGVkUGx1Z2luTmFtZXM+JikgZmluYWw7CisgICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdl
YkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKSBmaW5hbDsKICAgICB2b2lk
IGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mKSBmaW5hbDsKIAogICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDk4MmRiNzI3N2U4YmE2ZTVhY2FlZmFiNWJh
ZWIxMTk0OGE3MzVmODEuLmNkNThmODIxNWE4NjQ5MTdlNmE3Y2UyYjc0YjcyOGRmMzAwMGEzZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
dWdpbkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBX
ZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKICAgICBbW1dlYlBsdWdpbkRh
dGFiYXNlIHNoYXJlZERhdGFiYXNlSWZFeGlzdHNdIHJlZnJlc2hdOwogfQogCi12b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVk
UGx1Z2luTmFtZXM+JikKK3ZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5JbmZv
KFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lu
cywgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+JikKIHsKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKQEAgLTcxLDYgKzcxLDYgQEAgdm9pZCBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVj
dG9yPFdlYkNvcmU6OlAKIAogdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2li
bGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5J
bmZvPiYgcGx1Z2lucykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVz
PiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0
ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7CiAgICAgZ2V0UGx1Z2luSW5mbyhw
YWdlLCBwbHVnaW5zLCBzdXBwb3J0ZWRQbHVnaW5OYW1lcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyLmNwcAppbmRleCA4ZGI5ZDA5YzZmNTVmYzRlZWNmMmIyY2NjNGYxZTEwZDI1MDk2
NWMyLi5kYzhmYWI2OGEwYTcxYTlmMDUxZGYxMTU1YTRjMmQyOGY1MmZmMWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgdm9pZCBXZWJQbHVnaW5J
bmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKICAgICBQbHVnaW5EYXRhYmFzZTo6aW5zdGFs
bGVkUGx1Z2lucygpLT5yZWZyZXNoKCk7CiB9CiAKLXZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
OjpnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiYgb3V0UGx1Z2lucywgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5OYW1lcz4mKQordm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2Vi
Q29yZTo6UGFnZSYgcGFnZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBvdXRQbHVnaW5z
LCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4mKQog
ewogICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5QYWNrYWdlKj4mIHBsdWdpbnMgPSBQbHVnaW5EYXRh
YmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5wbHVnaW5zKCk7CiAKQEAgLTg0LDYgKzg0LDYgQEAg
dm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYg
cGFnZSwgVmVjdG9yPFdlYkNvcmU6OlAKIAogdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6Omdl
dFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3Jl
OjpQbHVnaW5JbmZvPiYgcGx1Z2lucykKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1
cHBvcnRlZFBsdWdpbk5hbWVzPiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKKyAgICBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2lu
TmFtZXM7CiAgICAgZ2V0UGx1Z2luSW5mbyhwYWdlLCBwbHVnaW5zLCBzdXBwb3J0ZWRQbHVnaW5O
YW1lcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCmluZGV4IGJiYzliZGM3NTMwNmE1
ZGQ2NTE2YjA4YzAzZTYwOGU1OWI2NTFmMTQuLmU3MzI1Y2FjM2UzNWFjN2E1NmQ2YzcwYzc4MmY5
YzQ0YTcwOGUyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCkBAIC0zNiw3ICszNiw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgZmluYWw7
Ci0gICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6
UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWVz
PiYpIGZpbmFsOworICAgIHZvaWQgZ2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgVmVjdG9y
PFdlYkNvcmU6OlBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3Vw
cG9ydGVkUGx1Z2luTmFtZT4+JikgZmluYWw7CiAgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2lu
SW5mbyhXZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JikgZmluYWw7
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0UGx1Z2luTG9hZENsaWVudFBvbGljeShX
ZWJDb3JlOjpQbHVnaW5Mb2FkQ2xpZW50UG9saWN5LCBjb25zdCBTdHJpbmcmIGhvc3QsIGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBiYzg5OTcxNGM5ODcyMDZmY2JhNGMzM2UwOTliY2E2ODk5NTYyNWYzLi43M2Q0NzJlNzkxNDkx
YWNhZWNiOTg0NTcwMjhkYzIwNDk4OWUxNTE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMDMtMDYgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1hdGNoIHVuc3VwcG9ydGVk
IHBsdWdpbnMgYmFzZWQgb24gZG9tYWlucyBhbmQgbm90IG9yaWdpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzg0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRQbHVnaW5TdXBwb3J0ZWRNb2RlKTogVXBkYXRlIHRvIHdoaXRlbGlz
dAorICAgICAgICBsb2NhbGhvc3QgYW5kIG5vdCBodHRwOi8vbG9jYWxob3N0OjgwODAKKwogMjAx
OC0wMy0wNSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIEltcGxlbWVudCBXVFIncyBQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKaW5kZXggN2M3ODhh
N2I3NmFjODcxZWMyYmMyNmExMjhlYjQxMmFlYzE2MWQ4Mi4uZTA3YjQ3NWM0NzA0MGI1NjY5NTMy
OTlkODkxYTRjY2QyOTJmNDRiYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1VSTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1VSTC5jcHAKQEAgLTI2NCw0ICsyNjQsMzIgQEAgVEVTVF9GKFVSTFRlc3QsIEhvc3RJc0lQQWRk
cmVzcykKICAgICBFWFBFQ1RfVFJVRShVUkw6Omhvc3RJc0lQQWRkcmVzcygiOjoxMjMuNDUuNjcu
ODkiKSk7CiB9CiAKK1RFU1RfRihVUkxUZXN0LCBIb3N0SXNNYXRjaGluZ0RvbWFpbikKK3sKKyAg
ICBVUkwgdXJsID0gY3JlYXRlVVJMKCJodHRwOi8vd3d3LndlYmtpdC5vcmciKTsKKworICAgIEVY
UEVDVF9UUlVFKHVybC5pc01hdGNoaW5nRG9tYWluKFN0cmluZyB7IH0pKTsKKyAgICBFWFBFQ1Rf
VFJVRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihlbXB0eVN0cmluZygpKSk7CisgICAgRVhQRUNUX1RS
VUUodXJsLmlzTWF0Y2hpbmdEb21haW4oQVNDSUlMaXRlcmFsKCJvcmciKSkpOworICAgIEVYUEVD
VF9UUlVFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgid2Via2l0Lm9yZyIpKSk7
CisgICAgRVhQRUNUX1RSVUUodXJsLmlzTWF0Y2hpbmdEb21haW4oQVNDSUlMaXRlcmFsKCJ3d3cu
d2Via2l0Lm9yZyIpKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UodXJsLmlzTWF0Y2hpbmdEb21haW4o
QVNDSUlMaXRlcmFsKCJyZyIpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNoaW5nRG9t
YWluKEFTQ0lJTGl0ZXJhbCgiLm9yZyIpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNo
aW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgid3cud2Via2l0Lm9yZyIpKSk7CisgICAgRVhQRUNUX0ZB
TFNFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgiaHR0cDovL3d3dy53ZWJraXQu
b3JnIikpKTsKKworICAgIHVybCA9IGNyZWF0ZVVSTCgiZmlsZTovLy93d3cud2Via2l0Lm9yZyIp
OworCisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNoaW5nRG9tYWluKFN0cmluZyB7IH0pKTsK
KyAgICBFWFBFQ1RfRkFMU0UodXJsLmlzTWF0Y2hpbmdEb21haW4oZW1wdHlTdHJpbmcoKSkpOwor
ICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIm9yZyIp
KSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgi
d2Via2l0Lm9yZyIpKSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNoaW5nRG9tYWluKEFT
Q0lJTGl0ZXJhbCgid3d3LndlYmtpdC5vcmciKSkpOworCisgICAgVVJMIGVtcHR5VVJMOworICAg
IEVYUEVDVF9GQUxTRShlbXB0eVVSTC5pc01hdGNoaW5nRG9tYWluKFN0cmluZyB7IH0pKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZW1wdHlVUkwuaXNNYXRjaGluZ0RvbWFpbihlbXB0eVN0cmluZygpKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWU5ZGI5NGJmMDJmNTc5OTYwYWFjY2M5OTZkMTI3
MTZmM2VlZjI3Yi4uMzZmYjBhMzg3NjAzMDA5NDM0MmNjNWJlNzE4NjU1ZTVjMmY1NjIzZiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2OTYsNyArMTY5
Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFBsdWdpblN1cHBvcnRlZE1vZGUoY29uc3Qg
U3RyaW5nJiBtb2RlKQogCiAgICAgV0tSZXRhaW5QdHI8V0tNdXRhYmxlQXJyYXlSZWY+IGVtcHR5
QXJyYXkgPSBhZG9wdFdLKFdLTXV0YWJsZUFycmF5Q3JlYXRlKCkpOwogICAgIFdLUmV0YWluUHRy
PFdLU3RyaW5nUmVmPiBhbGxPcmlnaW5zID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiIikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzcGVjaWZpY09yaWdp
biA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9sb2NhbGhv
c3Q6ODA4MCIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc3BlY2lmaWNPcmlnaW4g
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJsb2NhbGhvc3QiKSk7CiAK
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gcGRmTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIk15IHBlcnNvbmFsIFBERiIpKTsKICAgICBXS0NvbnRleHRB
ZGRTdXBwb3J0ZWRQbHVnaW4obV9jb250ZXh0LmdldCgpLCBhbGxPcmlnaW5zLmdldCgpLCBwZGZO
YW1lLmdldCgpLCBlbXB0eUFycmF5LmdldCgpLCBlbXB0eUFycmF5LmdldCgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335211</attachid>
            <date>2018-03-07 13:26:43 -0800</date>
            <delta_ts>2018-03-07 18:06:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183384-20180307132642.patch</filename>
            <type>text/plain</type>
            <size>37639</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5Mjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRjNzZiODA1NWJmOGRk
Yzc4N2U1YjFiNGRkM2QzM2NiM2JhMmFlNi4uZGNlNTYxMGQ2MzE5YWNiM2IyOTRjMDc4YzI4MTg2
ZDU1YzYyYTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAzLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRl
ZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFpbnMgYW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIE1vdmUgZnJvbSBhbiBvcmlnaW4ta2V5ZWQg
bWFwIHRvIGEgdmVjdG9yIG9mIHBsdWdpbnMuCisgICAgICAgIFdlIGl0ZXJhdGUgdGhyb3VnaCB0
aGUgdmVjdG9yIGFuZCBhIG1hdGNoIGhhcHBlbnMgaWYgdGhlIHBhZ2UgaG9zdCBuYW1lIGVuZHMg
d2l0aCB0aGUgcHJvdmlkZWQgbWF0Y2hpbmcgZG9tYWluLgorICAgICAgICBUaGlzIGFsbG93cyBz
dXBwb3J0aW5nIHJ1bGVzIGZvciAqLm15ZG9tYWluLmNvbSBieSBwYXNzaW5nICdteWRvbWFpbi5j
b20nLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorICAgICAgICBXZSBhcmUg
bm90IHRlc3Rpbmcgc3ViZG9tYWlucyBsaWtlIHd3dy5sb2NhbGhvc3Qgc2luY2UgdGhlcmUgaXMg
bm8gc3VwcG9ydCBpbiBvdXIgQ0kgYnV0IHRoaXMgaXMgdGVzdGVkIHRocm91Z2ggVW5pdCB0ZXN0
cy4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL1VSTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkw6OmlzTWF0Y2hpbmdEb21haW4gY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL1VSTC5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2lu
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRQbHVnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbk5hbWU6OmVuY29kZSBjb25zdCk6CisgICAgICAgICogcGx1Z2lucy9Q
bHVnaW5JbmZvUHJvdmlkZXIuaDoKKwogMjAxOC0wMy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
cmVhZHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggZjY0MmNjZWQ4ODg1YjdlZjhkM2M0ZDI2ZjVlZGQ1MDhhYjUyOWUy
MS4uMTE3NmM4MmZlZDBkNzgyOGZkZDFjZGE2ZjQ4N2UzYWFhOGRjZGE3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNCBAQAorMjAxOC0wMy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgTWF0Y2ggdW5zdXBwb3J0ZWQgcGx1Z2lucyBiYXNlZCBvbiBkb21haW5z
IGFuZCBub3Qgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODMzODQKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAg
ICAgICBNb3ZlZCBmcm9tIGEgSGFzaE1hcCBvZiBwbHVnaW5zIHRvIGEgVmVjdG9yIG9mIHBsdWdp
bnMgc2luY2Ugd2UgY2Fubm90IG1hdGNoIGV4YWN0bHkgYmFzZWQgb24gdGhlIG9yaWdpbi4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1
Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06Cisg
ICAgICAgICgtW1dLUHJvY2Vzc1Bvb2wgX2FkZFN1cHBvcnRlZFBsdWdpbjpuYW1lZDp3aXRoTWlt
ZVR5cGVzOndpdGhFeHRlbnNpb25zOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbkluZm9TdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6aXNT
dXBwb3J0ZWRQbHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5JbmZvU3RvcmU6OnN1cHBv
cnRlZFBsdWdpbk5hbWVzKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luSW5mb1N0b3JlOjphZGRT
dXBwb3J0ZWRQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9T
dG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjphZGRTdXBwb3J0ZWRQbHVnaW4pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdp
bnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmg6CisKIDIwMTgtMDMt
MDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IEF1dG9tYXRpb246IGNsaWNraW5nIG9uIGEgZGlzYWJsZWQgb3B0aW9uIGVsZW1lbnQgc2hvdWxk
bid0IHByb2R1Y2UgYW4gZXJyb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4ZmZm
Mzg1Y2UwYzNmOWUyNWMyNDZhNDc4MjE1OWUzOTU2OWViM2U3Li5hMWE0NmEwZjdmMGU1NzdkZDVi
ZmY2ZDRkYWRhMGI1M2U3NTAwMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTgtMDMtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIE1hdGNoIHVuc3VwcG9ydGVkIHBsdWdpbnMgYmFzZWQgb24gZG9tYWlucyBh
bmQgbm90IG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzMzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW06CisgICAgICAgIChXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OmdldFBsdWdpbkluZm8pOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1By
b3ZpZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyk6CisKIDIwMTgtMDMtMDQgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW1dURl0gTW92ZSBjdXJy
ZW50Q1BVVGltZSBhbmQgc2xlZXAoU2Vjb25kcykgdG8gQ1BVVGltZS5oIGFuZCBTZWNvbmRzLmgg
cmVzcGVjdGl2ZWx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDMz
ODY4MDJkODJhOGRlMDBmZWY3NTQyYTU2Nzg0MTUxZDM5YWEzYWQuLmQ4ODUwZmZhYTUwNTBiMGRj
ZWQyMjdiYWIwNTA0ZjBmNjE4M2UyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuY3BwCkBAIC0zMjUsNyArMzI1LDcgQEAgY2xhc3MgRW1wdHlQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQgZmluYWwgOiBwdWJsaWMgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKIAogY2xhc3Mg
RW1wdHlQbHVnaW5JbmZvUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgUGx1Z2luSW5mb1Byb3ZpZGVy
IHsKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgZmluYWwgeyB9OwotICAgIHZvaWQgZ2V0UGx1
Z2luSW5mbyhQYWdlJiwgVmVjdG9yPFBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxTdXBwb3J0
ZWRQbHVnaW5OYW1lcz4mKSBmaW5hbCB7IH0KKyAgICB2b2lkIGdldFBsdWdpbkluZm8oUGFnZSYs
IFZlY3RvcjxQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1cHBvcnRlZFBsdWdp
bk5hbWU+PiYpIGZpbmFsIHsgfQogICAgIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oUGFn
ZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYpIGZpbmFsIHsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VS
TC5jcHAKaW5kZXggNTk3YTU2YzNiNmU2NjNiOGIwNjIzNTY2M2U3YWNkZjU4MmM5NTRmNS4uOTdk
OTFmMzYyODY0YTgyOWQ3ZTYxNzllNjNhYTM1OTdiYjUzM2ZkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVVJMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9V
UkwuY3BwCkBAIC03NzYsNiArNzc2LDIyIEBAIGJvb2wgaG9zdHNBcmVFcXVhbChjb25zdCBVUkwm
IGEsIGNvbnN0IFVSTCYgYikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBVUkw6OmlzTWF0
Y2hpbmdEb21haW4oY29uc3QgU3RyaW5nJiBkb21haW4pIGNvbnN0Cit7CisgICAgLy8gV2UgcmVz
dHJpY3QgaXQgdG8gSFRUUCBmb3Igc2ltcGxpY2l0eSBzaW5jZSB3ZSBkbyBub3Qgd2FudCB0byBt
YXRjaCBkYXRhLCBibG9iIG9yIGZpbGUgYmFzZWQgVVJMcy4KKyAgICBpZiAoaXNOdWxsKCkgfHwg
IXByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKGRvbWFpbi5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgYXV0byBo
b3N0ID0gdGhpcy0+aG9zdCgpOworICAgIGlmICghaG9zdC5lbmRzV2l0aChkb21haW4pKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gaG9zdC5sZW5ndGgoKSA9PSBkb21haW4u
bGVuZ3RoKCkgfHwgaG9zdC5jaGFyYWN0ZXJBdChob3N0Lmxlbmd0aCgpIC0gZG9tYWluLmxlbmd0
aCgpIC0gMSkgPT0gJy4nOworfQorCiBTdHJpbmcgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNl
cyhjb25zdCBTdHJpbmcmIGlucHV0KQogewogICAgIHJldHVybiBwZXJjZW50RW5jb2RlQ2hhcmFj
dGVycyhpbnB1dCwgVVJMUGFyc2VyOjppc0luVXNlckluZm9FbmNvZGVTZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9VUkwuaAppbmRleCBiOGVkNzc4ZTY3ZDFhNjdmMGJjM2MxYThjNTFhZjE4YzIzMGY0MGY4Li40
NWE3YjMxYzAyMDMwMDhjM2QwMDMzOTBmYTM1OTIwMmEzODNhMjYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9V
UkwuaApAQCAtMTQxLDYgKzE0MSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzQmxhbmtVUkwoKSBjb25zdDsKICAgICBib29sIGNhbm5vdEJlQUJhc2VVUkwoKSBjb25zdCB7
IHJldHVybiBtX2Nhbm5vdEJlQUJhc2VVUkw7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNNYXRjaGluZ0RvbWFpbihjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2V0UHJvdG9jb2woY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRIb3N0KGNv
bnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCmluZGV4IDY5MGJh
NzI3NzcwODc0ZTViNDU1ODkzZmI4MDRmM2NmYWY4YTRlOTQuLmE5YTlmZmYwZDc4N2VjMTBmMmNj
NzRlOTE4YWZmOTYwMGEyNzI4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YS5oCkBA
IC0yMCw3ICsyMCw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW5EYXRhLmgiCisjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC04
OCwxMiArODgsMTIgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShQbHVnaW5JbmZvJiBhLCBQbHVn
aW5JbmZvJiBiKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0cnVjdCBTdXBwb3J0ZWRQbHVn
aW5OYW1lcyB7Ci0gICAgSGFzaFNldDxTdHJpbmc+IGFsbE9yaWdpblBsdWdpbnM7Ci0gICAgSGFz
aE1hcDxTZWN1cml0eU9yaWdpbkRhdGEsIEhhc2hTZXQ8U3RyaW5nPj4gb3JpZ2luU3BlY2lmaWNQ
bHVnaW5zOworc3RydWN0IFN1cHBvcnRlZFBsdWdpbk5hbWUgeworICAgIFN0cmluZyBtYXRjaGlu
Z0RvbWFpbjsKKyAgICBTdHJpbmcgcGx1Z2luTmFtZTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gZGVjb2Rl
KERlY29kZXImKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTdXBwb3J0ZWRQbHVnaW5OYW1lPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogLy8gRklY
TUU6IG1lcmdlIHdpdGggUGx1Z2luRGF0YWJhc2UgaW4gdGhlIGZ1dHVyZQpAQCAtMTI2LDM5ICsx
MjYsMzUgQEAgcHJpdmF0ZToKIHByb3RlY3RlZDoKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgVmVj
dG9yPFBsdWdpbkluZm8+IG1fcGx1Z2luczsKLSAgICBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBs
dWdpbk5hbWVzPiBtX3N1cHBvcnRlZFBsdWdpbk5hbWVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN1cHBvcnRlZFBsdWdpbk5hbWU+PiBtX3N1cHBvcnRlZFBsdWdpbk5hbWVzOwogfTsKIAot
aW5saW5lIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oU3VwcG9ydGVkUGx1Z2luTmFtZXMmIHBsdWdp
bk5hbWVzLCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5O
YW1lKQoraW5saW5lIGJvb2wgaXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgVmVjdG9yPFN1cHBvcnRl
ZFBsdWdpbk5hbWU+JiBwbHVnaW5OYW1lcywgY29uc3QgVVJMJiBwYWdlVVJMLCBjb25zdCBTdHJp
bmcmIHBsdWdpbk5hbWUpCiB7Ci0gICAgYXV0byBpdGVyYXRvciA9IHBsdWdpbk5hbWVzLm9yaWdp
blNwZWNpZmljUGx1Z2lucy5maW5kKG9yaWdpbik7Ci0gICAgaWYgKGl0ZXJhdG9yICE9IHBsdWdp
bk5hbWVzLm9yaWdpblNwZWNpZmljUGx1Z2lucy5lbmQoKSkgewotICAgICAgICBpZiAoaXRlcmF0
b3ItPnZhbHVlLmNvbnRhaW5zKHBsdWdpbk5hbWUpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotCi0gICAgcmV0dXJuIHBsdWdpbk5hbWVzLmFsbE9yaWdpblBsdWdpbnMuY29udGFp
bnMocGx1Z2luTmFtZSk7CisgICAgcmV0dXJuIHBsdWdpbk5hbWVzLmZpbmRNYXRjaGluZyhbJl0g
KGF1dG8mJiBwbHVnaW4pIHsKKyAgICAgICAgcmV0dXJuIHBhZ2VVUkwuaXNNYXRjaGluZ0RvbWFp
bihwbHVnaW4ubWF0Y2hpbmdEb21haW4pICYmIHBsdWdpbi5wbHVnaW5OYW1lID09IHBsdWdpbk5h
bWU7CisgICAgfSkgIT0gbm90Rm91bmQ7CiB9CiAKLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlu
bGluZSBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVzPiBTdXBwb3J0ZWRQbHVnaW5O
YW1lczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBp
bmxpbmUgc3RkOjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5OYW1lPiBTdXBwb3J0ZWRQbHVnaW5O
YW1lOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBzdGQ6Om9wdGlvbmFsPEhhc2hT
ZXQ8U3RyaW5nPj4gYWxsT3JpZ2luUGx1Z2luczsKLSAgICBkZWNvZGVyID4+IGFsbE9yaWdpblBs
dWdpbnM7Ci0gICAgaWYgKCFhbGxPcmlnaW5QbHVnaW5zKQorICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBtYXRjaGluZ0RvbWFpbjsKKyAgICBkZWNvZGVyID4+IG1hdGNoaW5nRG9tYWluOworICAg
IGlmICghbWF0Y2hpbmdEb21haW4pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBzdGQ6Om9wdGlvbmFsPEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBIYXNoU2V0PFN0cmlu
Zz4+PiBvcmlnaW5TcGVjaWZpY1BsdWdpbnM7Ci0gICAgZGVjb2RlciA+PiBvcmlnaW5TcGVjaWZp
Y1BsdWdpbnM7Ci0gICAgaWYgKCFvcmlnaW5TcGVjaWZpY1BsdWdpbnMpCisgICAgc3RkOjpvcHRp
b25hbDxTdHJpbmc+IHBsdWdpbk5hbWU7CisgICAgZGVjb2RlciA+PiBwbHVnaW5OYW1lOworICAg
IGlmICghcGx1Z2luTmFtZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJl
dHVybiBTdXBwb3J0ZWRQbHVnaW5OYW1lcyB7IFdURk1vdmUoYWxsT3JpZ2luUGx1Z2lucy52YWx1
ZSgpKSwgV1RGTW92ZShvcmlnaW5TcGVjaWZpY1BsdWdpbnMudmFsdWUoKSkgfTsKKyAgICByZXR1
cm4gU3VwcG9ydGVkUGx1Z2luTmFtZSB7IFdURk1vdmUobWF0Y2hpbmdEb21haW4udmFsdWUoKSks
IFdURk1vdmUocGx1Z2luTmFtZS52YWx1ZSgpKSB9OwogfQogCi10ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiBpbmxpbmUgdm9pZCBTdXBwb3J0ZWRQbHVnaW5OYW1lczo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBTdXBwb3J0
ZWRQbHVnaW5OYW1lOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyIDw8IGFsbE9yaWdpblBsdWdpbnM7Ci0gICAgZW5jb2RlciA8PCBvcmlnaW5TcGVjaWZpY1Bs
dWdpbnM7CisgICAgZW5jb2RlciA8PCBtYXRjaGluZ0RvbWFpbjsKKyAgICBlbmNvZGVyIDw8IHBs
dWdpbk5hbWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpbkluZm9Qcm92aWRlci5oCmluZGV4IDZlMDVlZmJiNzljY2NmYzY0N2U5MzRi
MGEyMGFmZjY2N2YzMDA5YjMuLmIwM2NkMmUyM2ZkMDRmYjJkMWZjMmQxNDc4ZDBjZmRhNTViYjU0
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luSW5mb1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAt
MzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRQYWdlKFBhZ2UmKTsKICAgICB2b2lk
IHJlbW92ZVBhZ2UoUGFnZSYpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oUGFn
ZSYsIFZlY3RvcjxQbHVnaW5JbmZvPiYsIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFt
ZXM+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRQbHVnaW5JbmZvKFBhZ2UmLCBWZWN0b3I8
UGx1Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdXBwb3J0ZWRQbHVnaW5OYW1lPj4m
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldFdlYlZpc2libGVQbHVnaW5JbmZvKFBhZ2UmLCBW
ZWN0b3I8UGx1Z2luSW5mbz4mKSA9IDA7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0YmEzYWRiNzU3YjQ1NWFhMzc4ZDVkNGIwOWUwMTRl
YzBkNzQ2OWZjLi43MTdjMTIwMTg1MmJhYzRhY2YwN2U3ODFmYTAyMjhlZmU2Y2I4NzA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM5OCw3ICszOTgsNyBA
QCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNoaXBwaW5n
TWV0aG9kVXBkYXRlJzogWyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkJzogWyc8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNob3VsZFNh
bXBsZSc6IFsnPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4nXSwKLSAgICAgICAg
J1dlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWVzJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+
J10sCisgICAgICAgICdXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lJzogWyc8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSc6IFsnPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXN1bHQnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpUZXh0SW5kaWNhdG9yRGF0YSc6IFsnPFdlYkNvcmUvVGV4dEluZGljYXRv
ci5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5k
ZXggZGVlMGEwOWMwNTVkODQ4NWEwMjNhNDVmYTE3NDRjZmUzYWExODE0NC4uOWYyYmY2NGJmYTZm
MTJmNmYwYjJhMDgzYjIwYzQ3YmI4NzY5MTNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC02MjEsNyArNjIxLDcgQEAgUHJvY2Vzc0lEIFdLQ29u
dGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYp
CiAgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+c3RvcmFnZVByb2Nlc3NJZGVudGlmaWVy
KCk7CiB9CiAKLXZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1N0cmluZ1JlZiBvcmlnaW5SZWYsIFdLU3RyaW5nUmVmIG5hbWVSZWYsIFdL
QXJyYXlSZWYgbWltZVR5cGVzUmVmLCBXS0FycmF5UmVmIGV4dGVuc2lvbnNSZWYpCit2b2lkIFdL
Q29udGV4dEFkZFN1cHBvcnRlZFBsdWdpbihXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tTdHJp
bmdSZWYgZG9tYWluUmVmLCBXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS0FycmF5UmVmIG1pbWVUeXBl
c1JlZiwgV0tBcnJheVJlZiBleHRlbnNpb25zUmVmKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogICAgIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZXM7CkBAIC02MzQsMTAgKzYz
NCw3IEBAIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250
ZXh0UmVmLCBXS1N0cmluZ1JlZiBvcmlnaW5SZWYsCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKQogICAgICAgICBleHRlbnNpb25zLmFkZCh0b1dURlN0cmluZyhzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tBcnJheUdldEl0ZW1BdEluZGV4KGV4dGVuc2lvbnNSZWYsIGkp
KSkpOwogCi0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW47Ci0gICAgaWYgKCFXS1N0
cmluZ0lzRW1wdHkob3JpZ2luUmVmKSkKLSAgICAgICAgb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUZyb21TdHJpbmcodG9XVEZTdHJpbmcob3JpZ2luUmVmKSk7Ci0gICAgdG9JbXBsKGNv
bnRleHRSZWYpLT5hZGRTdXBwb3J0ZWRQbHVnaW4ob3JpZ2luLmdldCgpLCB0b1dURlN0cmluZyhu
YW1lUmVmKSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICB0
b0ltcGwoY29udGV4dFJlZiktPmFkZFN1cHBvcnRlZFBsdWdpbih0b1dURlN0cmluZyhkb21haW5S
ZWYpLCB0b1dURlN0cmluZyhuYW1lUmVmKSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4
dGVuc2lvbnMpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggMDY0ODBlMTM5M2QzN2Y5OTJhYmE3ZmUwOGM0
NzMzMDcyNDc1ZDk0OC4uZWNhNTJkMzBhODFkZWRkNTk5NjBiNzc3MzlhOTc3N2ZlYzhjMDI1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUu
aApAQCAtMTEyLDcgKzExMiw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5lY3RU
b1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyCiBXS19FWFBPUlQg
V0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXREYXRhYmFz
ZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAotV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0
cmluZ1JlZiBvcmlnaW4sIFdLU3RyaW5nUmVmIG5hbWUsIFdLQXJyYXlSZWYgbWltZVR5cGVzLCBX
S0FycmF5UmVmIGV4dGVuc2lvbnMpOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0QWRkU3VwcG9y
dGVkUGx1Z2luKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBkb21haW4sIFdLU3Ry
aW5nUmVmIG5hbWUsIFdLQXJyYXlSZWYgbWltZVR5cGVzLCBXS0FycmF5UmVmIGV4dGVuc2lvbnMp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJTdXBwb3J0ZWRQbHVnaW5zKFdLQ29udGV4
dFJlZiBjb250ZXh0KTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDVmMGMzMjY4NjY1
NDJmZTBiNGRlZDIyMjg2MTE5MDEwOWM3NDI0NDkuLjFkNmJiYjFmYWNmMzg1NjY2MjAwMzg0NzQ1
NDI0NzI1YTdmNTQ3MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIE5TRGljdGlv
bmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBI
YXNoTWFwPFMKICAgICBfcHJvY2Vzc1Bvb2wtPnNldEF1dG9tYXRpb25TZXNzaW9uKGF1dG9tYXRp
b25TZXNzaW9uID8gYXV0b21hdGlvblNlc3Npb24tPl9zZXNzaW9uLmdldCgpIDogbnVsbHB0cik7
CiB9CiAKLS0gKHZvaWQpX2FkZFN1cHBvcnRlZFBsdWdpbjooTlNTdHJpbmcgKikgb3JpZ2luIG5h
bWVkOihOU1N0cmluZyAqKSBuYW1lIHdpdGhNaW1lVHlwZXM6IChOU1NldDxOU1N0cmluZyAqPiAq
KSBuc01pbWVUeXBlcyB3aXRoRXh0ZW5zaW9uczogKE5TU2V0PE5TU3RyaW5nICo+ICopIG5zRXh0
ZW5zaW9ucworLSAodm9pZClfYWRkU3VwcG9ydGVkUGx1Z2luOihOU1N0cmluZyAqKSBkb21haW4g
bmFtZWQ6KE5TU3RyaW5nICopIG5hbWUgd2l0aE1pbWVUeXBlczogKE5TU2V0PE5TU3RyaW5nICo+
ICopIG5zTWltZVR5cGVzIHdpdGhFeHRlbnNpb25zOiAoTlNTZXQ8TlNTdHJpbmcgKj4gKikgbnNF
eHRlbnNpb25zCiB7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1pbWVUeXBlczsKICAgICBmb3IgKE5T
U3RyaW5nICptaW1lVHlwZSBpbiBuc01pbWVUeXBlcykKQEAgLTQwNiw3ICs0MDYsNyBAQCBzdGF0
aWMgTlNEaWN0aW9uYXJ5ICpwb2xpY2llc0hhc2hNYXBUb0RpY3Rpb25hcnkoY29uc3QgSGFzaE1h
cDxTdHJpbmcsIEhhc2hNYXA8UwogICAgIGZvciAoTlNTdHJpbmcgKmV4dGVuc2lvbiBpbiBuc0V4
dGVuc2lvbnMpCiAgICAgICAgIGV4dGVuc2lvbnMuYWRkKGV4dGVuc2lvbik7CiAKLSAgICBfcHJv
Y2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihbb3JpZ2luIGxlbmd0aF0gPyBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4pLnB0cigpIDogbnVsbHB0ciwg
bmFtZSwgV1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpKTsKKyAgICBfcHJv
Y2Vzc1Bvb2wtPmFkZFN1cHBvcnRlZFBsdWdpbihkb21haW4sIG5hbWUsIFdURk1vdmUobWltZVR5
cGVzKSwgV1RGTW92ZShleHRlbnNpb25zKSk7CiB9CiAKIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVk
UGx1Z2lucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCA4ZDE1MmI1MDdmYjczNzRiYTIyNDBhNWE5OTM3
YWE1NTI0NWIzMzI5Li43YjAwZWVhOGIzYmIzOGM3YzJiNTdiYmY5NzMxYmJjZjRkNGVjMWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaApAQCAtNzIsNyArNzIsNyBAQAogLSAodm9pZClfYXV0b21hdGlvbkNh
cGFiaWxpdGllc0RpZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygx
MC4wKSk7CiAtICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Np
b24gKilhdXRvbWF0aW9uU2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlv
cygxMC4wKSk7CiAKLS0gKHZvaWQpX2FkZFN1cHBvcnRlZFBsdWdpbjooTlNTdHJpbmcgKikgb3Jp
Z2luIG5hbWVkOihOU1N0cmluZyAqKSBuYW1lIHdpdGhNaW1lVHlwZXM6IChOU1NldDxOU1N0cmlu
ZyAqPiAqKSBtaW1lVHlwZXMgd2l0aEV4dGVuc2lvbnM6IChOU1NldDxOU1N0cmluZyAqPiAqKSBl
eHRlbnNpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfYWRkU3VwcG9ydGVkUGx1Z2luOihOU1N0cmluZyAqKSBkb21haW4g
bmFtZWQ6KE5TU3RyaW5nICopIG5hbWUgd2l0aE1pbWVUeXBlczogKE5TU2V0PE5TU3RyaW5nICo+
ICopIG1pbWVUeXBlcyB3aXRoRXh0ZW5zaW9uczogKE5TU2V0PE5TU3RyaW5nICo+ICopIGV4dGVu
c2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAtICh2b2lkKV9jbGVhclN1cHBvcnRlZFBsdWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxk
IGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5m
b1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luSW5mb1N0
b3JlLmNwcAppbmRleCA2MWMwMGVlOTZlMGEwYTg0MjhhZTg0YjFjMDJiNWE0Yzc2MGMwZGI0Li4y
M2RiMzM0OWI0ODg5NjQyZTcyMGY3OGE3OTExZjQ1MmFkNGFlZjc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwCkBAIC0yOSw4
ICsyOSw5IEBACiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKICNpbmNsdWRlICJQ
bHVnaW5Nb2R1bGVJbmZvLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9VUkwuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAj
aW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgpAQCAtMjE0LDUzICsyMTUsMzEgQEAgYm9vbCBQbHVnaW5JbmZvU3RvcmU6OmlzU3VwcG9ydGVk
UGx1Z2luKGNvbnN0IFBsdWdpbkluZm9TdG9yZTo6U3VwcG9ydGVkUGx1Z2luJgogCiBib29sIFBs
dWdpbkluZm9TdG9yZTo6aXNTdXBwb3J0ZWRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Y29uc3QgVVJMJiBwbHVnaW5VUkwsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYgcGFnZVVSTCkK
IHsKLSAgICAvLyBXZSBjaGVjayBvbmx5IHBhZ2VVUkxTdHJpbmcgZm9yIGNvbnNpc3RlbmN5IHdp
dGggV2ViUHJvY2VzcyB2aXNpYmxlIHBsdWdpbnMuCisgICAgLy8gV2UgY2hlY2sgb25seSBwYWdl
VVJMIGZvciBjb25zaXN0ZW5jeSB3aXRoIFdlYlByb2Nlc3MgdmlzaWJsZSBwbHVnaW5zLgogICAg
IGlmICghbV9zdXBwb3J0ZWRQbHVnaW5zKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGZv
ciAoYXV0byYgcGx1Z2luIDogbV9zdXBwb3J0ZWRQbHVnaW5zLT5vcmlnaW5TcGVjaWZpY1BsdWdp
bnMuZ2V0KFNlY3VyaXR5T3JpZ2luRGF0YSB7IHBhZ2VVUkwucHJvdG9jb2woKS50b1N0cmluZygp
LCBwYWdlVVJMLmhvc3QoKSwgcGFnZVVSTC5wb3J0KCkgfSkpIHsKLSAgICAgICAgaWYgKGlzU3Vw
cG9ydGVkUGx1Z2luKHBsdWdpbiwgbWltZVR5cGUsIHBsdWdpblVSTCkpCi0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgZm9yIChhdXRvJiBwbHVnaW4gOiBtX3N1cHBvcnRlZFBs
dWdpbnMtPmFsbE9yaWdpblBsdWdpbnMpIHsKLSAgICAgICAgaWYgKGlzU3VwcG9ydGVkUGx1Z2lu
KHBsdWdpbiwgbWltZVR5cGUsIHBsdWdpblVSTCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3N1cHBvcnRlZFBsdWdpbnMt
PmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mJiBwbHVnaW4pIHsKKyAgICAgICAgcmV0dXJuIHBhZ2VV
UkwuaXNNYXRjaGluZ0RvbWFpbihwbHVnaW4ubWF0Y2hpbmdEb21haW4pICYmIGlzU3VwcG9ydGVk
UGx1Z2luKHBsdWdpbiwgbWltZVR5cGUsIHBsdWdpblVSTCk7CisgICAgfSkgIT0gbm90Rm91bmQ7
CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFtZXM+IFBsdWdpbkluZm9TdG9y
ZTo6c3VwcG9ydGVkUGx1Z2luTmFtZXMoKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVk
UGx1Z2luTmFtZT4+IFBsdWdpbkluZm9TdG9yZTo6c3VwcG9ydGVkUGx1Z2luTmFtZXMoKQogewog
ICAgIGlmICghbV9zdXBwb3J0ZWRQbHVnaW5zKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCi0gICAgSGFzaFNldDxTdHJpbmc+IGFsbE9yaWdpblBsdWdpbnM7Ci0gICAgZm9yIChhdXRv
JiBwbHVnaW4gOiBtX3N1cHBvcnRlZFBsdWdpbnMtPmFsbE9yaWdpblBsdWdpbnMpCi0gICAgICAg
IGFsbE9yaWdpblBsdWdpbnMuYWRkKHBsdWdpbi5uYW1lKTsKLQotICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCBIYXNoU2V0PFN0cmluZz4+IG9yaWdpblNwZWNpZmljUGx1Z2luczsKLSAg
ICBmb3IgKGF1dG8mIGtleVZhbHVlIDogbV9zdXBwb3J0ZWRQbHVnaW5zLT5vcmlnaW5TcGVjaWZp
Y1BsdWdpbnMpIHsKLSAgICAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVzOwotICAgICAgICBmb3Ig
KGF1dG8mIHBsdWdpbiA6IGtleVZhbHVlLnZhbHVlKQotICAgICAgICAgICAgbmFtZXMuYWRkKHBs
dWdpbi5uYW1lKTsKLSAgICAgICAgb3JpZ2luU3BlY2lmaWNQbHVnaW5zLmFkZChrZXlWYWx1ZS5r
ZXksIFdURk1vdmUobmFtZXMpKTsKLSAgICB9Ci0gICAgcmV0dXJuIFN1cHBvcnRlZFBsdWdpbk5h
bWVzIHsgV1RGTW92ZShhbGxPcmlnaW5QbHVnaW5zKSwgV1RGTW92ZShvcmlnaW5TcGVjaWZpY1Bs
dWdpbnMpIH07CisgICAgcmV0dXJuIFdURjo6bWFwKCptX3N1cHBvcnRlZFBsdWdpbnMsIFtdIChh
dXRvJiYgaXRlbSkgeworICAgICAgICByZXR1cm4gU3VwcG9ydGVkUGx1Z2luTmFtZSB7IGl0ZW0u
bWF0Y2hpbmdEb21haW4sIGl0ZW0ubmFtZSB9OworICAgIH0pOwogfQogCi12b2lkIFBsdWdpbklu
Zm9TdG9yZTo6YWRkU3VwcG9ydGVkUGx1Z2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
IFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1pbWVUeXBlcywgSGFzaFNldDxTdHJp
bmc+IGV4dGVuc2lvbnMpCit2b2lkIFBsdWdpbkluZm9TdG9yZTo6YWRkU3VwcG9ydGVkUGx1Z2lu
KFN0cmluZyYmIGRvbWFpbk5hbWUsIFN0cmluZyYmIG5hbWUsIEhhc2hTZXQ8U3RyaW5nPiYmIG1p
bWVUeXBlcywgSGFzaFNldDxTdHJpbmc+IGV4dGVuc2lvbnMpCiB7CiAgICAgaWYgKCFtX3N1cHBv
cnRlZFBsdWdpbnMpCi0gICAgICAgIG1fc3VwcG9ydGVkUGx1Z2lucyA9IFN1cHBvcnRlZFBsdWdp
bnMgeyB9OworICAgICAgICBtX3N1cHBvcnRlZFBsdWdpbnMgPSBWZWN0b3I8U3VwcG9ydGVkUGx1
Z2luPiB7IH07CiAKLSAgICBTdXBwb3J0ZWRQbHVnaW4gcGx1Z2luIHsgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShtaW1lVHlwZXMpLCBXVEZNb3ZlKGV4dGVuc2lvbnMpIH07Ci0gICAgaWYgKCFvcmln
aW4pIHsKLSAgICAgICAgbV9zdXBwb3J0ZWRQbHVnaW5zLT5hbGxPcmlnaW5QbHVnaW5zLmFwcGVu
ZChXVEZNb3ZlKHBsdWdpbikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fc3VwcG9y
dGVkUGx1Z2lucy0+b3JpZ2luU3BlY2lmaWNQbHVnaW5zLmVuc3VyZShTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKSwgW10gewotICAgICAgICByZXR1cm4gVmVj
dG9yPFN1cHBvcnRlZFBsdWdpbj4geyB9OwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
V1RGTW92ZShwbHVnaW4pKTsKKyAgICBtX3N1cHBvcnRlZFBsdWdpbnMtPmFwcGVuZChTdXBwb3J0
ZWRQbHVnaW4geyBXVEZNb3ZlKGRvbWFpbk5hbWUpLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKG1p
bWVUeXBlcyksIFdURk1vdmUoZXh0ZW5zaW9ucykgfSk7CiB9CiAKIFBsdWdpbk1vZHVsZUluZm8g
UGx1Z2luSW5mb1N0b3JlOjppbmZvRm9yUGx1Z2luV2l0aFBhdGgoY29uc3QgU3RyaW5nJiBwbHVn
aW5QYXRoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5JbmZvU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luSW5mb1N0b3JlLmgKaW5kZXggZDNhMTA5ZmIwZTZiM2EyNGI3ZjJiZWZkODYyMDE5MjNmNTIy
MWNjZi4uMmRhMTU0OTI3NWRlMWE0MGU4N2NjNmYxNDM2NWNmMmYyZTkzYTJiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCkBAIC02
NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBk
ZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7CiAKICAg
ICBib29sIGlzU3VwcG9ydGVkUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFdl
YkNvcmU6OlVSTCYgcGx1Z2luVVJMLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25z
dCBXZWJDb3JlOjpVUkwmIHBhZ2VVUkwpOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3Vw
cG9ydGVkUGx1Z2luTmFtZXM+IHN1cHBvcnRlZFBsdWdpbk5hbWVzKCk7Ci0gICAgdm9pZCBhZGRT
dXBwb3J0ZWRQbHVnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBTdHJpbmcmJiBu
YW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBleHRlbnNp
b25zKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5O
YW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFtZXMoKTsKKyAgICB2b2lkIGFkZFN1cHBvcnRlZFBsdWdp
bihTdHJpbmcmJiBtYXRjaGluZ0RvbWFpbiwgU3RyaW5nJiYgbmFtZSwgSGFzaFNldDxTdHJpbmc+
JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9ucyk7CiAgICAgdm9pZCBjbGVh
clN1cHBvcnRlZFBsdWdpbnMoKSB7IG1fc3VwcG9ydGVkUGx1Z2lucyA9IHN0ZDo6bnVsbG9wdDsg
fQogCiBwcml2YXRlOgpAQCAtOTcsMTcgKzk3LDE0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Bs
dWdpbkxpc3RJc1VwVG9EYXRlOwogCiAgICAgc3RydWN0IFN1cHBvcnRlZFBsdWdpbiB7CisgICAg
ICAgIFN0cmluZyBtYXRjaGluZ0RvbWFpbjsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAg
IEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZXM7CiAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBleHRl
bnNpb25zOwogICAgIH07Ci0gICAgc3RydWN0IFN1cHBvcnRlZFBsdWdpbnMgewotICAgICAgICBW
ZWN0b3I8U3VwcG9ydGVkUGx1Z2luPiBhbGxPcmlnaW5QbHVnaW5zOwotICAgICAgICBIYXNoTWFw
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgVmVjdG9yPFN1cHBvcnRlZFBsdWdpbj4+IG9y
aWdpblNwZWNpZmljUGx1Z2luczsKLSAgICB9OwogICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVk
UGx1Z2luKGNvbnN0IFN1cHBvcnRlZFBsdWdpbiYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFdlYkNvcmU6OlVSTCYgcGx1Z2luVVJMKTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8U3VwcG9y
dGVkUGx1Z2lucz4gbV9zdXBwb3J0ZWRQbHVnaW5zOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN1cHBvcnRlZFBsdWdpbj4+IG1fc3VwcG9ydGVkUGx1Z2luczsKIH07CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAppbmRleCAzZmNhZjVhYjQ1ZDQ2OGM1MWU2NDQwNDIxYTMyNGQ1Y2VmZGM2ZWY3Li41M2Y5OWZi
ZDc5ZjNhMTdjNGNmM2FlZTA2ZDk0MjlkZTBlYmUxNjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNzkzLDEyICsxNzkzLDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmNsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQogfQogI2VuZGlmCiAKLXZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmFkZFN1cHBvcnRlZFBsdWdpbihTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8
U3RyaW5nPiBleHRlbnNpb25zKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6YWRkU3VwcG9ydGVkUGx1
Z2luKFN0cmluZyYmIG1hdGNoaW5nRG9tYWluLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmlu
Zz4mJiBtaW1lVHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBleHRlbnNpb25zKQogewogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIG1fcGx1Z2luSW5mb1N0b3JlLmFkZFN1cHBvcnRl
ZFBsdWdpbihvcmlnaW4sIFdURk1vdmUobmFtZSksIFdURk1vdmUobWltZVR5cGVzKSwgV1RGTW92
ZShleHRlbnNpb25zKSk7CisgICAgbV9wbHVnaW5JbmZvU3RvcmUuYWRkU3VwcG9ydGVkUGx1Z2lu
KFdURk1vdmUobWF0Y2hpbmdEb21haW4pLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKG1pbWVUeXBl
cyksIFdURk1vdmUoZXh0ZW5zaW9ucykpOwogI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob3JpZ2lu
KTsKKyAgICBVTlVTRURfUEFSQU0obWF0Y2hpbmdEb21haW4pOwogICAgIFVOVVNFRF9QQVJBTShu
YW1lKTsKICAgICBVTlVTRURfUEFSQU0obWltZVR5cGVzKTsKICAgICBVTlVTRURfUEFSQU0oZXh0
ZW5zaW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA5
MDdlZjdiOWYyNjZhYWFhNmFhYjJjY2E0YjhlY2U3YTIwMzMwNDZjLi5iODkyNmVkMGNiYjU2NmNk
ZWM2MTI0YTBmYTMxNmVjNzgwMWU0MzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKQEAgLTIwMiw3ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGFzaE1h
cDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgdWludDhfdD4+PiYgcGx1
Z2luTG9hZENsaWVudFBvbGljaWVzKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5Mb2FkQ2xpZW50
UG9saWNpZXM7IH0KICNlbmRpZgogCi0gICAgdm9pZCBhZGRTdXBwb3J0ZWRQbHVnaW4oV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4qLCBTdHJpbmcmJiBuYW1lLCBIYXNoU2V0PFN0cmluZz4mJiBtaW1l
VHlwZXMsIEhhc2hTZXQ8U3RyaW5nPiBleHRlbnNpb25zKTsKKyAgICB2b2lkIGFkZFN1cHBvcnRl
ZFBsdWdpbihTdHJpbmcmJiBtYXRjaGluZ0RvbWFpbiwgU3RyaW5nJiYgbmFtZSwgSGFzaFNldDxT
dHJpbmc+JiYgbWltZVR5cGVzLCBIYXNoU2V0PFN0cmluZz4gZXh0ZW5zaW9ucyk7CiAgICAgdm9p
ZCBjbGVhclN1cHBvcnRlZFBsdWdpbnMoKTsKIAogICAgIFByb2Nlc3NJRCBuZXR3b3JrUHJvY2Vz
c0lkZW50aWZpZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGExMTk4YjM5OTU3YzhmOGFhYmQ0MDk3M2JjMzY3MjE3ZDczOThjMzQuLmFlOGI4
ZmQyYmU1Mjc0M2YwYjYxMzA2OWI2YzI0MzMxMjc1NzlmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTcwLDcgKzU3MCw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjphZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRf
dCBwYWdlSUQsIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5zKGJvb2wgcmVmcmVzaCwgVmVjdG9yPFBsdWdp
bkluZm8+JiBwbHVnaW5zLCBWZWN0b3I8UGx1Z2luSW5mbz4mIGFwcGxpY2F0aW9uUGx1Z2lucywg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4mIHN1cHBvcnRlZFBs
dWdpbk5hbWVzKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpbnMoYm9vbCByZWZyZXNo
LCBWZWN0b3I8UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxQbHVnaW5JbmZvPiYgYXBwbGlj
YXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVn
aW5OYW1lPj4mIHN1cHBvcnRlZFBsdWdpbk5hbWVzKQogewogICAgIGlmIChyZWZyZXNoKQogICAg
ICAgICBtX3Byb2Nlc3NQb29sLT5wbHVnaW5JbmZvU3RvcmUoKS5yZWZyZXNoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDFiNjY1NDA4NWQwNWU0ZDRi
NzI1YjNiZDhmMDhiNTM3NjZjOTkzZGYuLjY5N2ViOTA4ZDYxY2ZjNzMzY2QyMTFmM2RhYzEwZDdh
NGY0NDRmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0yMzgsNyArMjM4LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFBsdWdpbnMKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMsIFZlY3RvcjxXZWJDb3JlOjpQbHVn
aW5JbmZvPiYgYXBwbGljYXRpb25QbHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBv
cnRlZFBsdWdpbk5hbWVzPiYpOworICAgIHZvaWQgZ2V0UGx1Z2lucyhib29sIHJlZnJlc2gsIFZl
Y3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYgcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdp
bkluZm8+JiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgZ2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBSZWY8TWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggN2Y4MDlmOGRjODdiZjExMmI5ZDIyZTgxNGE1MWFiN2U5
NDRkMGY4MC4uOThjNzEyYWNjM2Y3OWQ0ZTEwOGJmNWFiMzU0YTQxZTBhZGQ4NjI1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMzMsNyArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVj
ZWl2ZXIgewogCiAgICAgIyBQbHVnaW4gbWVzc2FnZXMuCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BM
VUdJTl9BUEkpCi0gICAgR2V0UGx1Z2lucyhib29sIHJlZnJlc2gpIC0+IChWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4gcGx1Z2lucywgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IGFwcGxp
Y2F0aW9uUGx1Z2lucywgc3RydWN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1
Z2luTmFtZXM+IHN1cHBvcnRlZFBsdWdpbk5hbWVzKQorICAgIEdldFBsdWdpbnMoYm9vbCByZWZy
ZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IHBsdWdpbnMsIFZlY3RvcjxXZWJD
b3JlOjpQbHVnaW5JbmZvPiBhcHBsaWNhdGlvblBsdWdpbnMsIHN0cnVjdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lPj4gc3VwcG9ydGVkUGx1Z2luTmFt
ZXMpCiAgICAgR2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vz
c1Rva2VuKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9y
dHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFu
ZGxlKSBEZWxheWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAppbmRleCBkOTdjMDIwYjU5NjA1MWQzMTA2
ODNjYmRhOGMyODAxODg0Y2I3ZjAwLi40NDg4OWEwODgwMGI0MDIzNDVjN2VkMmRlMmJiNzM0ODcw
NTI1ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTk3LDcgKzk2LDcgQEAgdm9pZCBXZWJQbHVn
aW5JbmZvUHJvdmlkZXI6OnJlZnJlc2hQbHVnaW5zKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhQYWdlJiBwYWdlLCBWZWN0b3I8UGx1Z2lu
SW5mbz4mIHBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8U3VwcG9ydGVkUGx1Z2luTmFtZXM+JiBzdXBw
b3J0ZWRQbHVnaW5OYW1lcykKK3ZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5J
bmZvKFBhZ2UmIHBhZ2UsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucywgc3RkOjpvcHRpb25h
bDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+JiBzdXBwb3J0ZWRQbHVnaW5OYW1lcykKIHsK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBwb3B1bGF0ZVBsdWdpbkNhY2hl
KHBhZ2UpOwpAQCAtMTIxLDIwICsxMjAsMTkgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6
OmdldFdlYlZpc2libGVQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjwKIHsK
ICAgICBBU1NFUlRfQVJHKHBsdWdpbnMsIHBsdWdpbnMuaXNFbXB0eSgpKTsKIAotICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+IHN1cHBvcnRlZFBsdWdpbk5h
bWVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5h
bWU+PiBzdXBwb3J0ZWRQbHVnaW5OYW1lczsKICAgICBnZXRQbHVnaW5JbmZvKHBhZ2UsIHBsdWdp
bnMsIHN1cHBvcnRlZFBsdWdpbk5hbWVzKTsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gcGFnZS5t
YWluRnJhbWUoKS5kb2N1bWVudCgpOwotICAgIGF1dG8qIG9yaWdpbiA9IGRvY3VtZW50ID8gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpOiBudWxscHRyOwogCi0gICAgaWYgKG9yaWdpbiAmJiBz
dXBwb3J0ZWRQbHVnaW5OYW1lcykgewotICAgICAgICBhdXRvIG9yaWdpbkRhdGEgPSBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKTsKKyAgICBpZiAoZG9jdW1l
bnQgJiYgc3VwcG9ydGVkUGx1Z2luTmFtZXMpIHsKICAgICAgICAgcGx1Z2lucy5yZW1vdmVBbGxN
YXRjaGluZyhbJl0gKGF1dG8mIHBsdWdpbikgewotICAgICAgICAgICAgcmV0dXJuICFpc1N1cHBv
cnRlZFBsdWdpbigqc3VwcG9ydGVkUGx1Z2luTmFtZXMsIG9yaWdpbkRhdGEsIHBsdWdpbi5uYW1l
KTsKKyAgICAgICAgICAgIHJldHVybiAhaXNTdXBwb3J0ZWRQbHVnaW4oKnN1cHBvcnRlZFBsdWdp
bk5hbWVzLCBkb2N1bWVudC0+dXJsKCksIHBsdWdpbi5uYW1lKTsKICAgICAgICAgfSk7CiAgICAg
fQogCiAjaWYgUExBVEZPUk0oTUFDKQorICAgIGF1dG8qIG9yaWdpbiA9IGRvY3VtZW50ID8gJmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpOiBudWxscHRyOwogICAgIGlmIChvcmlnaW4gJiYgb3Jp
Z2luLT5pc0xvY2FsKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAppbmRleCBj
NWNiMWQ4NTc0M2Q5Y2YzZTk1YzdkNTRkMGQzYmMyMDVhNDA2ZmQwLi4zZjY0MGYxZDEyOWFkNTlj
YWFiNjk4Y2Q1ZDU1MDljY2Y5ZGMwNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuaApAQCAtNDUsNyArNDUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlYlBsdWdpbkluZm9Qcm92aWRlcigpOwogCi0g
ICAgdm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1
Z2luSW5mbz4mLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWVzPiYp
IGZpbmFsOworICAgIHZvaWQgZ2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdl
YkNvcmU6OlBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9y
dGVkUGx1Z2luTmFtZT4+JikgZmluYWw7CiAgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2luSW5m
byhXZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JikgZmluYWw7CiAg
ICAgdm9pZCByZWZyZXNoUGx1Z2lucygpIG92ZXJyaWRlOwogCkBAIC02OCw3ICs2OCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFJlZnJlc2hQbHVnaW5zIHsgZmFsc2UgfTsKICAgICBW
ZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4gbV9jYWNoZWRQbHVnaW5zOwogICAgIFZlY3RvcjxX
ZWJDb3JlOjpQbHVnaW5JbmZvPiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKLSAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWVzPiBtX2NhY2hlZFN1cHBvcnRl
ZFBsdWdpbk5hbWVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRl
ZFBsdWdpbk5hbWU+PiBtX2NhY2hlZFN1cHBvcnRlZFBsdWdpbk5hbWVzOwogI2VuZGlmCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCmluZGV4IDRhOTFiYWIzOTdkNGRiMWNjZGU2MjYz
NjgyYTYzODRiY2Y5YWEwZDAuLjNlNjk1ZWU3YWNiYzA0MGVkM2RhNzNhMzNlNWYxMWY5NWUzZTM2
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5oCkBAIC0zNCw3ICszNCw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2lu
SW5mbz4mLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWVzPiYpIGZp
bmFsOworICAgIHZvaWQgZ2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9ydGVk
UGx1Z2luTmFtZT4+JikgZmluYWw7CiAgICAgdm9pZCBnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhX
ZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JikgZmluYWw7CiAKICAg
ICBXZWJQbHVnaW5JbmZvUHJvdmlkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpp
bmRleCA5ODJkYjcyNzdlOGJhNmU1YWNhZWZhYjViYWViMTE5NDhhNzM1ZjgxLi5jZDU4ZjgyMTVh
ODY0OTE3ZTZhN2NlMmI3NGI3MjhkZjMwMDBhM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLm1tCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZy
ZXNoUGx1Z2lucygpCiAgICAgW1tXZWJQbHVnaW5EYXRhYmFzZSBzaGFyZWREYXRhYmFzZUlmRXhp
c3RzXSByZWZyZXNoXTsKIH0KIAotdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OmdldFBsdWdp
bkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnZSwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+JiBw
bHVnaW5zLCBzdGQ6Om9wdGlvbmFsPFN1cHBvcnRlZFBsdWdpbk5hbWVzPiYpCit2b2lkIFdlYlBs
dWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWdlLCBWZWN0
b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMsIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN1
cHBvcnRlZFBsdWdpbk5hbWU+PiYpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCkBAIC03MSw2ICs3MSw2IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRQbHVn
aW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQCiAKIHZvaWQgV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdl
JiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMpCiB7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9ydGVkUGx1Z2luTmFtZXM7Cisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3VwcG9ydGVkUGx1Z2luTmFtZT4+IHN1cHBvcnRlZFBs
dWdpbk5hbWVzOwogICAgIGdldFBsdWdpbkluZm8ocGFnZSwgcGx1Z2lucywgc3VwcG9ydGVkUGx1
Z2luTmFtZXMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKaW5kZXggOGRiOWQw
OWM2ZjU1ZmM0ZWVjZjJiMmNjYzRmMWUxMGQyNTA5NjVjMi4uZGM4ZmFiNjhhMGE3MWE5ZjA1MWRm
MTE1NWE0YzJkMjhmNTJmZjFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCkBA
IC00OSw3ICs0OSw3IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpyZWZyZXNoUGx1Z2lu
cygpCiAgICAgUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMoKS0+cmVmcmVzaCgpOwog
fQogCi12b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6Z2V0UGx1Z2luSW5mbyhXZWJDb3JlOjpQ
YWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIG91dFBsdWdpbnMsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZXM+JikKK3ZvaWQgV2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxX
ZWJDb3JlOjpQbHVnaW5JbmZvPiYgb3V0UGx1Z2lucywgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6U3VwcG9ydGVkUGx1Z2luTmFtZT4+JikKIHsKICAgICBjb25zdCBWZWN0b3I8UGx1Z2lu
UGFja2FnZSo+JiBwbHVnaW5zID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMoKS0+
cGx1Z2lucygpOwogCkBAIC04NCw2ICs4NCw2IEBAIHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
OjpnZXRQbHVnaW5JbmZvKFdlYkNvcmU6OlBhZ2UmIHBhZ2UsIFZlY3RvcjxXZWJDb3JlOjpQCiAK
IHZvaWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpnZXRXZWJWaXNpYmxlUGx1Z2luSW5mbyhXZWJD
b3JlOjpQYWdlJiBwYWdlLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBsdWdpbnMpCiB7
Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4gc3VwcG9y
dGVkUGx1Z2luTmFtZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6U3VwcG9y
dGVkUGx1Z2luTmFtZT4+IHN1cHBvcnRlZFBsdWdpbk5hbWVzOwogICAgIGdldFBsdWdpbkluZm8o
cGFnZSwgcGx1Z2lucywgc3VwcG9ydGVkUGx1Z2luTmFtZXMpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVy
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZv
UHJvdmlkZXIuaAppbmRleCBiYmM5YmRjNzUzMDZhNWRkNjUxNmIwOGMwM2U2MDhlNTliNjUxZjE0
Li5lNzMyNWNhYzNlMzVhYzdhNTZkNmM3MGM3ODJmOWM0NGE3MDhlMmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJQbHVn
aW5JbmZvUHJvdmlkZXIuaApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCByZWZyZXNoUGx1Z2lucygpIGZpbmFsOwotICAgIHZvaWQgZ2V0UGx1Z2luSW5mbyhX
ZWJDb3JlOjpQYWdlJiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTdXBwb3J0ZWRQbHVnaW5OYW1lcz4mKSBmaW5hbDsKKyAgICB2b2lkIGdldFBs
dWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYsIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlN1cHBvcnRlZFBsdWdpbk5hbWU+PiYpIGZpbmFs
OwogICAgIHZvaWQgZ2V0V2ViVmlzaWJsZVBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYsIFZlY3Rv
cjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIGZpbmFsOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2
b2lkIHNldFBsdWdpbkxvYWRDbGllbnRQb2xpY3koV2ViQ29yZTo6UGx1Z2luTG9hZENsaWVudFBv
bGljeSwgY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZykgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmM4OTk3MTRjOTg3MjA2ZmNiYTRjMzNl
MDk5YmNhNjg5OTU2MjVmMy4uMGJiMDI2MWZjYmI3ZTc4MTRmYWIxZDUzZmI3MTZjMWJiN2Y1ODdh
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE4LTAzLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBNYXRjaCB1bnN1cHBvcnRlZCBwbHVnaW5zIGJhc2VkIG9uIGRvbWFpbnMg
YW5kIG5vdCBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MzM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1VSTC5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0UGx1Z2luU3VwcG9y
dGVkTW9kZSk6IFVwZGF0ZSB0byB3aGl0ZWxpc3QKKyAgICAgICAgbG9jYWxob3N0IGFuZCBub3Qg
aHR0cDovL2xvY2FsaG9zdDo4MDgwCisKIDIwMTgtMDMtMDUgIENsYXVkaW8gU2FhdmVkcmEgIDxj
c2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgV1RSJ3MgUGxh
dGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleSgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9VUkwuY3BwCmluZGV4IDdjNzg4YTdiNzZhYzg3MWVjMmJjMjZhMTI4ZWI0MTJhZWMx
NjFkODIuLmUwN2I0NzVjNDcwNDBiNTY2OTUzMjk5ZDg5MWE0Y2NkMjkyZjQ0YmEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCkBAIC0yNjQsNCArMjY0LDMyIEBA
IFRFU1RfRihVUkxUZXN0LCBIb3N0SXNJUEFkZHJlc3MpCiAgICAgRVhQRUNUX1RSVUUoVVJMOjpo
b3N0SXNJUEFkZHJlc3MoIjo6MTIzLjQ1LjY3Ljg5IikpOwogfQogCitURVNUX0YoVVJMVGVzdCwg
SG9zdElzTWF0Y2hpbmdEb21haW4pCit7CisgICAgVVJMIHVybCA9IGNyZWF0ZVVSTCgiaHR0cDov
L3d3dy53ZWJraXQub3JnIik7CisKKyAgICBFWFBFQ1RfVFJVRSh1cmwuaXNNYXRjaGluZ0RvbWFp
bihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX1RSVUUodXJsLmlzTWF0Y2hpbmdEb21haW4oZW1w
dHlTdHJpbmcoKSkpOworICAgIEVYUEVDVF9UUlVFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJ
TGl0ZXJhbCgib3JnIikpKTsKKyAgICBFWFBFQ1RfVFJVRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihB
U0NJSUxpdGVyYWwoIndlYmtpdC5vcmciKSkpOworICAgIEVYUEVDVF9UUlVFKHVybC5pc01hdGNo
aW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgid3d3LndlYmtpdC5vcmciKSkpOworCisgICAgRVhQRUNU
X0ZBTFNFKHVybC5pc01hdGNoaW5nRG9tYWluKEFTQ0lJTGl0ZXJhbCgicmciKSkpOworICAgIEVY
UEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIi5vcmciKSkpOwor
ICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoInd3Lndl
YmtpdC5vcmciKSkpOworICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJ
SUxpdGVyYWwoImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpKSk7CisKKyAgICB1cmwgPSBjcmVhdGVV
UkwoImZpbGU6Ly8vd3d3LndlYmtpdC5vcmciKTsKKworICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNN
YXRjaGluZ0RvbWFpbihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX0ZBTFNFKHVybC5pc01hdGNo
aW5nRG9tYWluKGVtcHR5U3RyaW5nKCkpKTsKKyAgICBFWFBFQ1RfRkFMU0UodXJsLmlzTWF0Y2hp
bmdEb21haW4oQVNDSUlMaXRlcmFsKCJvcmciKSkpOworICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNN
YXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIndlYmtpdC5vcmciKSkpOworICAgIEVYUEVDVF9G
QUxTRSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoInd3dy53ZWJraXQub3JnIikp
KTsKKworICAgIFVSTCBlbXB0eVVSTDsKKyAgICBFWFBFQ1RfRkFMU0UoZW1wdHlVUkwuaXNNYXRj
aGluZ0RvbWFpbihTdHJpbmcgeyB9KSk7CisgICAgRVhQRUNUX0ZBTFNFKGVtcHR5VVJMLmlzTWF0
Y2hpbmdEb21haW4oZW1wdHlTdHJpbmcoKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDll
OWRiOTRiZjAyZjU3OTk2MGFhY2NjOTk2ZDEyNzE2ZjNlZWYyN2IuLjM2ZmIwYTM4NzYwMzAwOTQz
NDJjYzViZTcxODY1NWU1YzJmNTYyM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xNjk2LDcgKzE2OTYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRQbHVnaW5TdXBwb3J0ZWRNb2RlKGNvbnN0IFN0cmluZyYgbW9kZSkKIAogICAgIFdLUmV0YWlu
UHRyPFdLTXV0YWJsZUFycmF5UmVmPiBlbXB0eUFycmF5ID0gYWRvcHRXSyhXS011dGFibGVBcnJh
eUNyZWF0ZSgpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWxsT3JpZ2lucyA9IGFk
b3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKTsKLSAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gc3BlY2lmaWNPcmlnaW4gPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJodHRwOi8vbG9jYWxob3N0OjgwODAiKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHNwZWNpZmljT3JpZ2luID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygibG9jYWxob3N0IikpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IHBkZk5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJNeSBwZXJz
b25hbCBQREYiKSk7CiAgICAgV0tDb250ZXh0QWRkU3VwcG9ydGVkUGx1Z2luKG1fY29udGV4dC5n
ZXQoKSwgYWxsT3JpZ2lucy5nZXQoKSwgcGRmTmFtZS5nZXQoKSwgZW1wdHlBcnJheS5nZXQoKSwg
ZW1wdHlBcnJheS5nZXQoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>