<?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>165650</bug_id>
          
          <creation_ts>2016-12-08 21:49:23 -0800</creation_ts>
          <short_desc>Fix string specification in print format</short_desc>
          <delta_ts>2016-12-09 13:59:55 -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>WebKit 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1258064</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 21:49:23 -0800</bug_when>
    <thetext>As Alex noted in Bug 164527, Comment 40, the string specifications in format strings are not standard and don&apos;t build with non-Cocoa SDKs or even with Cocoa SDKs that are not recent enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258081</commentid>
    <comment_count>1</comment_count>
      <attachid>296645</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 22:59:24 -0800</bug_when>
    <thetext>Created attachment 296645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258082</commentid>
    <comment_count>2</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 23:03:21 -0800</bug_when>
    <thetext>I thought about using &quot;PRIs&quot; instead of &quot;STRING_SPECIFICATION&quot; (as an analog to &quot;PRId8&quot;, et al), but wasn&apos;t sure everyone would get the reference. Also, I&apos;ve been encouraged by multiple parties to spell out my symbol names, so I went with &quot;STRING_SPECIFICATION&quot;. But if there&apos;s support for &quot;PRIs&quot; (or perhaps &quot;PRIsPUBLIC&quot;), I could use that instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258100</commentid>
    <comment_count>3</comment_count>
      <attachid>296645</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-12-09 00:20:22 -0800</bug_when>
    <thetext>Comment on attachment 296645
Patch

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

We do use a lot of PRI* in places like NetworkCacheStatistics.cpp, but PRIs isn&apos;t standardized and I think this is indeed better.

&gt; Source/WebKit2/NetworkProcess/capture/NetworkCaptureLogging.h:46
&gt; +#define DEBUG_LOG(format, ...)          RELEASE_LOG(Network, &quot;#PLT: %p - &quot; STRING_SPECIFICATION &quot;::&quot; STRING_SPECIFICATION &quot;: &quot; format, this, DEBUG_LOG_EXPAND_AND_QUOTE(DEBUG_CLASS), __FUNCTION__, ##__VA_ARGS__)

http://www.cplusplus.com/reference/cstdio/printf/ calls this a &quot;specifier&quot; not a &quot;specification&quot;.  Let&apos;s call them specifiers.  If they&apos;re called specifications somewhere I&apos;m not familiar with, that&apos;s ok, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258207</commentid>
    <comment_count>4</comment_count>
      <attachid>296664</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-09 11:32:35 -0800</bug_when>
    <thetext>Created attachment 296664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258313</commentid>
    <comment_count>5</comment_count>
      <attachid>296664</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-09 13:59:51 -0800</bug_when>
    <thetext>Comment on attachment 296664
Patch

Clearing flags on attachment: 296664

Committed r209625: &lt;http://trac.webkit.org/changeset/209625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258314</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-09 13:59:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296645</attachid>
            <date>2016-12-08 22:59:24 -0800</date>
            <delta_ts>2016-12-09 11:32:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165650-20161208225843.patch</filename>
            <type>text/plain</type>
            <size>29361</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmUxN2ZmN2MwYzJlMmVi
YzdjYzZhNzJmMzkxYWJkMWQzYTZjN2Y1Ni4uODI3MDIwYjVlZTFjYzNmN2JhNzc0NmE0MWJjOGI0
OGMzZmRlN2MyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDE2LTEyLTA4ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAorICAgICAgICBGaXggc3RyaW5nIHNwZWNp
ZmljYXRpb24gaW4gcHJpbnQgZm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjU2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDaGFuZ2UgIiV7cHVibGljfXMiIHN0cmluZyBzcGVjaWZpY2F0aW9u
IHRvIHNvbWV0aGluZyB0aGF0IGNhbiBiZQorICAgICAgICBjaGFuZ2VkIHRvICIlcyIgYXQgY29t
cGlsZSB0aW1lIHdoZW4gdGhlIGJ1aWxkIGVudmlyb25tZW50IGRvZXNuJ3QKKyAgICAgICAgc3Vw
cG9ydCB0aGUgZm9ybWVyLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrQ2FwdHVyZUxvZ2dpbmcuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05l
dHdvcmtDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJl
OjpNYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6
Ok1hbmFnZXI6OmZpbmRNYXRjaCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpN
YW5hZ2VyOjpmaW5kRXhhY3RNYXRjaCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJl
OjpNYW5hZ2VyOjpmaW5kQmVzdEZ1enp5TWF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FwdHVyZTo6TWFuYWdlcjo6ZnV6enlNYXRjaFVSTHMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nUGxheWVkQmFja1Jlc291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Om9wZW5DYWNoZUZpbGUpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6Z2V0TGluZSk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhcHR1cmU6OlJlY29yZGVyOjpyZWNvcmRSZXF1ZXN0U2VudCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpSZWNvcmRlcjo6cmVjb3JkUmVzcG9uc2VS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpSZWNvcmRlcjo6cmVj
b3JkUmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpS
ZWNvcmRlcjo6cmVjb3JkUmVkaXJlY3RTZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
cHR1cmU6OlJlY29yZGVyOjp3cml0ZUV2ZW50cyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhcHR1cmU6OlJlc291cmNlOjp1cmwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fw
dHVyZTo6UmVzb3VyY2U6OkV2ZW50U3RyZWFtOjpuZXh0RXZlbnQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRhVGFza1JlcGxheTo6TmV0d29ya0RhdGFU
YXNrUmVwbGF5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRh
VGFza1JlcGxheTo6fk5ldHdvcmtEYXRhVGFza1JlcGxheSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnN1c3BlbmQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5Ojpj
b21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRh
c2tSZXBsYXk6OmludmFsaWRhdGVBbmRDYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjplbnF1ZXVlRXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRhVGFza1JlcGxheTo6cmVw
bGF5UmVxdWVzdFNlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29y
a0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRhVGFza1JlcGxheTo6cmVwbGF5UmVkaXJlY3RS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRh
c2tSZXBsYXk6OnJlcGxheVJlZGlyZWN0U2VudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxheURhdGFSZWNlaXZlZCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxh
eUZpbmlzaGVkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRh
VGFza1JlcGxheTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKworMjAxNi0xMi0wOCAgS2VpdGggUm9s
bGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKICAgICAgICAgTW92ZSBGaWxlSGFuZGxlIHRvIFdl
YkNvcmUgRmlsZUhhbmRsZS5oCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjU1NjIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVMb2dnaW5nLmgKaW5kZXggNTJmMGQ3
NmMyZGUzNWQ3YWJiMTRhNTM1YzI3N2Q1Zjc3ZDIwNzEwZC4uMDAzNWEwYTgxZmMyYmQ4YzlmOGRk
NzQ4OGM5MTc3YWI5N2YzZTcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTG9nZ2luZy5oCkBAIC0zNCwx
MSArMzQsMTcgQEAKIAogI2RlZmluZSBERUJVR19TVFIocykgICAgICAgICAgICAgICAgICAgIChz
KS5hc2NpaSgpLmRhdGEoKQogCisjaWYgUkVMRUFTRV9MT0dfRElTQUJMRUQKKyNkZWZpbmUgU1RS
SU5HX1NQRUNJRklDQVRJT04gICAgICAgICAgICAiJXMiCisjZWxzZQorI2RlZmluZSBTVFJJTkdf
U1BFQ0lGSUNBVElPTiAgICAgICAgICAgICIle3B1YmxpY31zIgorI2VuZGlmCisKICNpZiBFTkFC
TEUoV1RGX0NBUFRVUkVfSU5URVJOQUxfREVCVUdHSU5HKQogI2RlZmluZSBERUJVR19MT0dfUVVP
VEUoc3RyKSAgICAgICAgICAgICNzdHIKICNkZWZpbmUgREVCVUdfTE9HX0VYUEFORF9BTkRfUVVP
VEUoc3RyKSBERUJVR19MT0dfUVVPVEUoc3RyKQotI2RlZmluZSBERUJVR19MT0coZm9ybWF0LCAu
Li4pICAgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIjUExUOiAlcCAtICV7cHVibGljfXM6
OiV7cHVibGljfXM6ICIgZm9ybWF0LCB0aGlzLCBERUJVR19MT0dfRVhQQU5EX0FORF9RVU9URShE
RUJVR19DTEFTUyksIF9fRlVOQ1RJT05fXywgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgREVCVUdf
TE9HX0VSUk9SKGZvcm1hdCwgLi4uKSAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAiI1BM
VDogJXAgLSAle3B1YmxpY31zOjole3B1YmxpY31zOiAiIGZvcm1hdCwgdGhpcywgREVCVUdfTE9H
X0VYUEFORF9BTkRfUVVPVEUoREVCVUdfQ0xBU1MpLCBfX0ZVTkNUSU9OX18sICMjX19WQV9BUkdT
X18pCisjZGVmaW5lIERFQlVHX0xPRyhmb3JtYXQsIC4uLikgICAgICAgICAgUkVMRUFTRV9MT0co
TmV0d29yaywgIiNQTFQ6ICVwIC0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiOjoiIFNUUklOR19T
UEVDSUZJQ0FUSU9OICI6ICIgZm9ybWF0LCB0aGlzLCBERUJVR19MT0dfRVhQQU5EX0FORF9RVU9U
RShERUJVR19DTEFTUyksIF9fRlVOQ1RJT05fXywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgREVC
VUdfTE9HX0VSUk9SKGZvcm1hdCwgLi4uKSAgICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
I1BMVDogJXAgLSAiIFNUUklOR19TUEVDSUZJQ0FUSU9OICI6OiIgU1RSSU5HX1NQRUNJRklDQVRJ
T04gIjogIiBmb3JtYXQsIHRoaXMsIERFQlVHX0xPR19FWFBBTkRfQU5EX1FVT1RFKERFQlVHX0NM
QVNTKSwgX19GVU5DVElPTl9fLCAjI19fVkFfQVJHU19fKQogI2lmIEVOQUJMRShXVEZfVkVSQk9T
RV9DQVBUVVJFX0lOVEVSTkFMX0RFQlVHR0lORykKICNkZWZpbmUgREVCVUdfTE9HX1ZFUkJPU0Uo
Zm9ybWF0LCAuLi4pICBERUJVR19MT0coZm9ybWF0LCAjI19fVkFfQVJHU19fKQogI2Vsc2UKQEAg
LTQ2LDcgKzUyLDcgQEAKICNlbmRpZgogI2Vsc2UKICNkZWZpbmUgREVCVUdfTE9HKC4uLikgICAg
ICAgICAgICAgICAgICAoKHZvaWQpMCkKLSNkZWZpbmUgREVCVUdfTE9HX0VSUk9SKC4uLikgICAg
ICAgICAgICAoKHZvaWQpMCkKKyNkZWZpbmUgREVCVUdfTE9HX0VSUk9SKC4uLikgICAgICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgREVCVUdf
TE9HX1ZFUkJPU0UoLi4uKSAgICAgICAgICAoKHZvaWQpMCkKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtD
YXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMGRmODgzYzcwYzdhYmZkZjI5MDFhNWViNGRhM2ZkZmY2
MDhmYzdlNy4uMjA0OGMxYTI3YTI3YjA5ZmU4NmQ1ZjhlM2FmYzY4ZjRmY2UwYjYxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVy
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUv
TmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIE1hbmFnZXI6
OmluaXRpYWxpemUoY29uc3QgU3RyaW5nJiByZWNvcmRSZXBsYXlNb2RlLCBjb25zdCBTdHJpbmcm
IHJlY29yZFJlcAogICAgIG1fcmVjb3JkRmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUo
cmVwb3J0UmVjb3JkUGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOwogICAgIG1fcmVwbGF5
RmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVwbGF5UGF0aCgpLCBXZWJD
b3JlOjpPcGVuRm9yV3JpdGUpOwogCi0gICAgREVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9ICV7
cHVibGljfXMiLCBERUJVR19TVFIobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uKSk7CisgICAg
REVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVH
X1NUUihtX3JlY29yZFJlcGxheUNhY2hlTG9jYXRpb24pKTsKIAogICAgIGlmIChpc1JlcGxheWlu
ZygpKQogICAgICAgICBsb2FkUmVzb3VyY2VzKCk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgTWFu
YWdlcjo6dGVybWluYXRlKCkKIAogUmVzb3VyY2UqIE1hbmFnZXI6OmZpbmRNYXRjaChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgREVCVUdfTE9HX1ZFUkJP
U0UoIlVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OworICAgIERFQlVHX0xPR19WRVJCT1NFKCJVUkwgPSAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBE
RUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogCiAgICAgYXV0byBiZXN0TWF0Y2gg
PSBmaW5kRXhhY3RNYXRjaChyZXF1ZXN0KTsKICAgICBpZiAoIWJlc3RNYXRjaCkKQEAgLTk5LDEy
ICs5OSwxMiBAQCBSZXNvdXJjZSogTWFuYWdlcjo6ZmluZE1hdGNoKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIAogI2lmIEVOQUJMRShXVEZfQ0FQVFVSRV9JTlRFUk5B
TF9ERUJVR0dJTkcpCiAgICAgaWYgKCFiZXN0TWF0Y2gpCi0gICAgICAgIERFQlVHX0xPRygiQ291
bGQgbm90IGZpbmQgbWF0Y2ggZm9yOiAle3B1YmxpY31zIiwgREVCVUdfU1RSKHJlcXVlc3QudXJs
KCkuc3RyaW5nKCkpKTsKKyAgICAgICAgREVCVUdfTE9HKCJDb3VsZCBub3QgZmluZCBtYXRjaCBm
b3I6ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmlu
ZygpKSk7CiAgICAgZWxzZSBpZiAocmVxdWVzdC51cmwoKSA9PSBiZXN0TWF0Y2gtPnVybCgpKQot
ICAgICAgICBERUJVR19MT0coIkZvdW5kIGV4YWN0IG1hdGNoIGZvcjogJXtwdWJsaWN9cyIsIERF
QlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgICAgIERFQlVHX0xPRygiRm91
bmQgZXhhY3QgbWF0Y2ggZm9yOiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIocmVx
dWVzdC51cmwoKS5zdHJpbmcoKSkpOwogICAgIGVsc2UgewotICAgICAgICBERUJVR19MT0coIkZv
dW5kIGZ1enp5IG1hdGNoIGZvcjogJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0LnVybCgp
LnN0cmluZygpKSk7Ci0gICAgICAgIERFQlVHX0xPRygiICAgICAgIHJlcGxhY2VkIHdpdGggOiAl
e3B1YmxpY31zIiwgREVCVUdfU1RSKGJlc3RNYXRjaC0+dXJsKCkuc3RyaW5nKCkpKTsKKyAgICAg
ICAgREVCVUdfTE9HKCJGb3VuZCBmdXp6eSBtYXRjaCBmb3I6ICIgU1RSSU5HX1NQRUNJRklDQVRJ
T04sIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgICAgIERFQlVHX0xP
RygiICAgICAgIHJlcGxhY2VkIHdpdGggOiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19T
VFIoYmVzdE1hdGNoLT51cmwoKS5zdHJpbmcoKSkpOwogICAgIH0KICNlbmRpZgogCkBAIC0xMTks
NyArMTE5LDcgQEAgUmVzb3VyY2UqIE1hbmFnZXI6OmZpbmRFeGFjdE1hdGNoKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICB9KTsKIAogICAgIGlmIChsb3dlciAh
PSBzdGQ6OmVuZChtX2NhY2hlZFJlc291cmNlcykgJiYgbG93ZXItPnVybCgpID09IHVybCkgewot
ICAgICAgICBERUJVR19MT0dfVkVSQk9TRSgiRm91bmQgZXhhY3QgbWF0Y2g6ICV7cHVibGljfXMi
LCBERUJVR19TVFIobG93ZXItPnVybCgpLnN0cmluZygpKSk7CisgICAgICAgIERFQlVHX0xPR19W
RVJCT1NFKCJGb3VuZCBleGFjdCBtYXRjaDogIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdf
U1RSKGxvd2VyLT51cmwoKS5zdHJpbmcoKSkpOwogICAgICAgICByZXR1cm4gJipsb3dlcjsKICAg
ICB9CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBSZXNvdXJjZSogTWFuYWdlcjo6ZmluZEJlc3RGdXp6
eU1hdGNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAg
aW50IHRoaXNTY29yZSA9IGZ1enp5TWF0Y2hVUkxzKHVybCwgcmVxdWVzdFBhcmFtZXRlcnMsIGlS
ZXNvdXJjZS0+dXJsKCksIGlSZXNvdXJjZS0+cXVlcnlQYXJhbWV0ZXJzKCkpOwogICAgICAgICAv
LyBUT0RPOiBDb25zaWRlciBpZ25vcmluZyBhbnkgbWF0Y2hlcyA8IDAgYXMgYmVpbmcgdG9vIGRp
ZmZlcmVudC4KICAgICAgICAgaWYgKGJlc3RTY29yZSA8IHRoaXNTY29yZSkgewotICAgICAgICAg
ICAgREVCVUdfTE9HKCJOZXcgYmVzdCBtYXRjaCAoJWQpOiAle3B1YmxpY31zIiwgdGhpc1Njb3Jl
LCBERUJVR19TVFIoaVJlc291cmNlLT51cmwoKS5zdHJpbmcoKSkpOworICAgICAgICAgICAgREVC
VUdfTE9HKCJOZXcgYmVzdCBtYXRjaCAoJWQpOiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCB0aGlz
U2NvcmUsIERFQlVHX1NUUihpUmVzb3VyY2UtPnVybCgpLnN0cmluZygpKSk7CiAgICAgICAgICAg
ICBiZXN0U2NvcmUgPSB0aGlzU2NvcmU7CiAgICAgICAgICAgICBiZXN0TWF0Y2ggPSAmKmlSZXNv
dXJjZTsKICAgICAgICAgICAgIGlmIChiZXN0U2NvcmUgPT0ga01heE1hdGNoKQpAQCAtMTcxLDIw
ICsxNzEsMjAgQEAgaW50IE1hbmFnZXI6OmZ1enp5TWF0Y2hVUkxzKGNvbnN0IFdlYkNvcmU6OlVS
TCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6VVJMUGEKICAgICAvLyBtYXRjaC4KIAogICAg
IGlmICghcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFsKHJlcXVlc3RVUkwsIHJlc291cmNlVVJM
KSkgewotICAgICAgICBERUJVR19MT0coIlNjaGVtZS9ob3N0L3BvcnQgbWlzbWF0Y2g6ICV7cHVi
bGljfXMgIT0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0VVJMLnN0cmluZygpKSwgREVC
VUdfU1RSKHJlc291cmNlVVJMLnN0cmluZygpKSk7CisgICAgICAgIERFQlVHX0xPRygiU2NoZW1l
L2hvc3QvcG9ydCBtaXNtYXRjaDogIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiICE9ICIgU1RSSU5H
X1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihyZXF1ZXN0VVJMLnN0cmluZygpKSwgREVCVUdfU1RS
KHJlc291cmNlVVJMLnN0cmluZygpKSk7CiAgICAgICAgIHJldHVybiBrTWluTWF0Y2g7CiAgICAg
fQogCiAgICAgLy8gSWYgZnJhZ21lbnRzIGRvbid0IG1hdGNoLCByZXR1cm4gdGhpcyBhcyB0aGUg
IndvcnN0IiBtYXRjaC4KIAogICAgIGlmIChyZXF1ZXN0VVJMLmZyYWdtZW50SWRlbnRpZmllcigp
ICE9IHJlc291cmNlVVJMLmZyYWdtZW50SWRlbnRpZmllcigpKSB7Ci0gICAgICAgIERFQlVHX0xP
RygiRnJhZ21lbnRzIG1pc21hdGNoOiAle3B1YmxpY31zICE9ICV7cHVibGljfXMiLCBERUJVR19T
VFIocmVxdWVzdFVSTC5zdHJpbmcoKSksIERFQlVHX1NUUihyZXNvdXJjZVVSTC5zdHJpbmcoKSkp
OworICAgICAgICBERUJVR19MT0coIkZyYWdtZW50cyBtaXNtYXRjaDogIiBTVFJJTkdfU1BFQ0lG
SUNBVElPTiAiICE9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihyZXF1ZXN0VVJM
LnN0cmluZygpKSwgREVCVUdfU1RSKHJlc291cmNlVVJMLnN0cmluZygpKSk7CiAgICAgICAgIHJl
dHVybiBrTWluTWF0Y2g7CiAgICAgfQogCiAgICAgREVCVUdfTE9HKCJGdXp6eSBtYXRjaGluZzoi
KTsKLSAgICBERUJVR19MT0coIiAgIDogJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0VVJM
LnN0cmluZygpKSk7Ci0gICAgREVCVUdfTE9HKCIgICA6ICV7cHVibGljfXMiLCBERUJVR19TVFIo
cmVzb3VyY2VVUkwuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIiAgIDogIiBTVFJJTkdfU1BF
Q0lGSUNBVElPTiwgREVCVUdfU1RSKHJlcXVlc3RVUkwuc3RyaW5nKCkpKTsKKyAgICBERUJVR19M
T0coIiAgIDogIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKHJlc291cmNlVVJMLnN0
cmluZygpKSk7CiAKICAgICAvLyBDb21wYXJlIHRoZSBwYXRoIGNvbXBvbmVudHMgYW5kIHRoZSBx
dWVyeSBwYXJhbWV0ZXJzLiBTY29yZSBlYWNoIHBhcnRpYWwKICAgICAvLyBtYXRjaCBhcyArNCwg
ZWFjaCBtaXNtYXRjaCBhcyAtMSwgYW5kIGVhY2ggbWlzc2luZyBjb21wb25lbnQgYXMgLTEuCkBA
IC0yODUsMTQgKzI4NSwxNCBAQCBpbnQgTWFuYWdlcjo6ZnV6enlNYXRjaFVSTHMoY29uc3QgV2Vi
Q29yZTo6VVJMJiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpVUkxQYQogICAgICAgICBpZiAo
cmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QgPT0gcmVzb3VyY2VQYXJhbWV0ZXItPmZpcnN0KSB7CiAj
aWYgRU5BQkxFKFdURl9DQVBUVVJFX0lOVEVSTkFMX0RFQlVHR0lORykKICAgICAgICAgICAgIGlm
IChyZXF1ZXN0UGFyYW1ldGVyLT5zZWNvbmQgPT0gcmVzb3VyY2VQYXJhbWV0ZXItPnNlY29uZCkK
LSAgICAgICAgICAgICAgICBERUJVR19MT0coIk1hdGNoaW5nIHBhcmFtZXRlciBuYW1lcyBhbmQg
dmFsdWVzOiBcIiV7cHVibGljfXNcIiA9IFwiJXtwdWJsaWN9c1wiIiwgREVCVUdfU1RSKHJlcXVl
c3RQYXJhbWV0ZXItPmZpcnN0KSwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPnNlY29uZCkp
OworICAgICAgICAgICAgICAgIERFQlVHX0xPRygiTWF0Y2hpbmcgcGFyYW1ldGVyIG5hbWVzIGFu
ZCB2YWx1ZXM6IFwiIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiXCIgPSBcIiIgU1RSSU5HX1NQRUNJ
RklDQVRJT04gIlwiIiwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPmZpcnN0KSwgREVCVUdf
U1RSKHJlcXVlc3RQYXJhbWV0ZXItPnNlY29uZCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIERFQlVHX0xPRygiTWlzbWF0Y2hpbmcgcGFyYW1ldGVyIHZhbHVlczogXCIle3B1
YmxpY31zXCIgPSBcIiV7cHVibGljfXNcIiB2cy4gXCIle3B1YmxpY31zXCIiLCBERUJVR19TVFIo
cmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QpLCBERUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+c2Vj
b25kKSwgREVCVUdfU1RSKHJlc291cmNlUGFyYW1ldGVyLT5zZWNvbmQpKTsKKyAgICAgICAgICAg
ICAgICBERUJVR19MT0coIk1pc21hdGNoaW5nIHBhcmFtZXRlciB2YWx1ZXM6IFwiIiBTVFJJTkdf
U1BFQ0lGSUNBVElPTiAiXCIgPSBcIiIgU1RSSU5HX1NQRUNJRklDQVRJT04gIlwiIHZzLiBcIiIg
U1RSSU5HX1NQRUNJRklDQVRJT04gIlwiIiwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPmZp
cnN0KSwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPnNlY29uZCksIERFQlVHX1NUUihyZXNv
dXJjZVBhcmFtZXRlci0+c2Vjb25kKSk7CiAjZW5kaWYKICAgICAgICAgICAgIHNjb3JlICs9IChy
ZXF1ZXN0UGFyYW1ldGVyLT5zZWNvbmQgPT0gcmVzb3VyY2VQYXJhbWV0ZXItPnNlY29uZCkgPyBr
UGFyYW1ldGVyTWF0Y2hTY29yZSA6IGtQYXJhbWV0ZXJNaXNtYXRjaFNjb3JlOwogICAgICAgICAg
ICAgREVCVUdfTE9HKCJTY29yZSA9ICVkIiwgc2NvcmUpOwogICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgREVCVUdfTE9HKCJNaXNtYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXM6ICV7cHVibGlj
fXMsICV7cHVibGljfXMiLCBERUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QpLCBERUJV
R19TVFIocmVzb3VyY2VQYXJhbWV0ZXItPmZpcnN0KSk7CisgICAgICAgICAgICBERUJVR19MT0co
Ik1pc21hdGNoaW5nIHBhcmFtZXRlciBuYW1lczogIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiLCAi
IFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+Zmlyc3Qp
LCBERUJVR19TVFIocmVzb3VyY2VQYXJhbWV0ZXItPmZpcnN0KSk7CiAKICAgICAgICAgICAgIGNv
bnN0IGF1dG8gc2NhbkZvcndhcmRGb3JNYXRjaCA9IFt0aGlzLCAmc2NvcmUsIGtQYXJhbWV0ZXJN
YXRjaFNjb3JlLCBrUGFyYW1ldGVyTWlzbWF0Y2hTY29yZSwga1BhcmFtZXRlck1pc3NpbmdTY29y
ZV0oY29uc3QgYXV0byYgZml4ZWRJdGVyLCBhdXRvJiBzY2FubmluZ0l0ZXIsIGNvbnN0IGF1dG8m
IHNjYW5uZXJFbmQpIHsKICAgICAgICAgICAgICAgICBhdXRvIHNjYW5uZXIgPSBzY2FubmluZ0l0
ZXI7CkBAIC0zMDUsOSArMzA1LDkgQEAgaW50IE1hbmFnZXI6OmZ1enp5TWF0Y2hVUkxzKGNvbnN0
IFdlYkNvcmU6OlVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6VVJMUGEKICAgICAgICAg
ICAgICAgICBERUJVR19MT0coIlNjb3JlID0gJWQiLCBzY29yZSk7CiAjaWYgRU5BQkxFKFdURl9D
QVBUVVJFX0lOVEVSTkFMX0RFQlVHR0lORykKICAgICAgICAgICAgICAgICBpZiAoZml4ZWRJdGVy
LT5zZWNvbmQgPT0gc2Nhbm5lci0+c2Vjb25kKQotICAgICAgICAgICAgICAgICAgICBERUJVR19M
T0coIk1hdGNoaW5nIHBhcmFtZXRlciBuYW1lcyBhbmQgdmFsdWVzOiBcIiV7cHVibGljfXNcIiA9
IFwiJXtwdWJsaWN9c1wiIiwgREVCVUdfU1RSKGZpeGVkSXRlci0+Zmlyc3QpLCBERUJVR19TVFIo
Zml4ZWRJdGVyLT5zZWNvbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgREVCVUdfTE9HKCJNYXRj
aGluZyBwYXJhbWV0ZXIgbmFtZXMgYW5kIHZhbHVlczogXCIiIFNUUklOR19TUEVDSUZJQ0FUSU9O
ICJcIiA9IFwiIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiXCIiLCBERUJVR19TVFIoZml4ZWRJdGVy
LT5maXJzdCksIERFQlVHX1NUUihmaXhlZEl0ZXItPnNlY29uZCkpOwogICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgREVCVUdfTE9HKCJNaXNtYXRjaGluZyBwYXJhbWV0
ZXIgdmFsdWVzOiBcIiV7cHVibGljfXNcIiA9IFwiJXtwdWJsaWN9c1wiIHZzLiBcIiV7cHVibGlj
fXNcIiIsIERFQlVHX1NUUihmaXhlZEl0ZXItPmZpcnN0KSwgREVCVUdfU1RSKGZpeGVkSXRlci0+
c2Vjb25kKSwgREVCVUdfU1RSKHNjYW5uZXItPnNlY29uZCkpOworICAgICAgICAgICAgICAgICAg
ICBERUJVR19MT0coIk1pc21hdGNoaW5nIHBhcmFtZXRlciB2YWx1ZXM6IFwiIiBTVFJJTkdfU1BF
Q0lGSUNBVElPTiAiXCIgPSBcIiIgU1RSSU5HX1NQRUNJRklDQVRJT04gIlwiIHZzLiBcIiIgU1RS
SU5HX1NQRUNJRklDQVRJT04gIlwiIiwgREVCVUdfU1RSKGZpeGVkSXRlci0+Zmlyc3QpLCBERUJV
R19TVFIoZml4ZWRJdGVyLT5zZWNvbmQpLCBERUJVR19TVFIoc2Nhbm5lci0+c2Vjb25kKSk7CiAj
ZW5kaWYKICAgICAgICAgICAgICAgICBzY29yZSArPSAoZml4ZWRJdGVyLT5zZWNvbmQgPT0gc2Nh
bm5lci0+c2Vjb25kKSA/IGtQYXJhbWV0ZXJNYXRjaFNjb3JlIDoga1BhcmFtZXRlck1pc21hdGNo
U2NvcmU7CiAgICAgICAgICAgICAgICAgREVCVUdfTE9HKCJTY29yZSA9ICVkIiwgc2NvcmUpOwpA
QCAtMzE3LDggKzMxNyw4IEBAIGludCBNYW5hZ2VyOjpmdXp6eU1hdGNoVVJMcyhjb25zdCBXZWJD
b3JlOjpVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlVSTFBhCiAKICAgICAgICAgICAg
IGlmICghc2NhbkZvcndhcmRGb3JNYXRjaChyZXF1ZXN0UGFyYW1ldGVyLCByZXNvdXJjZVBhcmFt
ZXRlciwgc3RkOjplbmQocmVzb3VyY2VQYXJhbWV0ZXJzKSkpIHsKICAgICAgICAgICAgICAgICBp
ZiAoIXNjYW5Gb3J3YXJkRm9yTWF0Y2gocmVzb3VyY2VQYXJhbWV0ZXIsIHJlcXVlc3RQYXJhbWV0
ZXIsIHN0ZDo6ZW5kKHJlcXVlc3RQYXJhbWV0ZXJzKSkpIHsKLSAgICAgICAgICAgICAgICAgICAg
REVCVUdfTE9HKCJVbm1hdGNoZWQgcGFyYW1ldGVyOiAle3B1YmxpY31zPSV7cHVibGljfXMiLCBE
RUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QpLCBERUJVR19TVFIocmVxdWVzdFBhcmFt
ZXRlci0+c2Vjb25kKSk7Ci0gICAgICAgICAgICAgICAgICAgIERFQlVHX0xPRygiVW5tYXRjaGVk
IHBhcmFtZXRlcjogJXtwdWJsaWN9cz0le3B1YmxpY31zIiwgREVCVUdfU1RSKHJlc291cmNlUGFy
YW1ldGVyLT5maXJzdCksIERFQlVHX1NUUihyZXNvdXJjZVBhcmFtZXRlci0+c2Vjb25kKSk7Cisg
ICAgICAgICAgICAgICAgICAgIERFQlVHX0xPRygiVW5tYXRjaGVkIHBhcmFtZXRlcjogIiBTVFJJ
TkdfU1BFQ0lGSUNBVElPTiAiPSIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihyZXF1
ZXN0UGFyYW1ldGVyLT5maXJzdCksIERFQlVHX1NUUihyZXF1ZXN0UGFyYW1ldGVyLT5zZWNvbmQp
KTsKKyAgICAgICAgICAgICAgICAgICAgREVCVUdfTE9HKCJVbm1hdGNoZWQgcGFyYW1ldGVyOiAi
IFNUUklOR19TUEVDSUZJQ0FUSU9OICI9IiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RS
KHJlc291cmNlUGFyYW1ldGVyLT5maXJzdCksIERFQlVHX1NUUihyZXNvdXJjZVBhcmFtZXRlci0+
c2Vjb25kKSk7CiAgICAgICAgICAgICAgICAgICAgIHNjb3JlICs9IGtQYXJhbWV0ZXJNaXNzaW5n
U2NvcmUgKyBrUGFyYW1ldGVyTWlzc2luZ1Njb3JlOwogICAgICAgICAgICAgICAgICAgICBERUJV
R19MT0coIlNjb3JlID0gJWQiLCBzY29yZSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDM2LDkg
KzQzNiw5IEBAIHZvaWQgTWFuYWdlcjo6bG9nUGxheWVkQmFja1Jlc291cmNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vCiAgICAgY29uc3QgYXV0byYgdXJsID0g
cmVxdWVzdC51cmwoKTsKIAogICAgIGlmICh3YXNDYWNoZU1pc3MpCi0gICAgICAgIERFQlVHX0xP
RygiQ2FjaGUgbWlzczogVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkp
KTsKKyAgICAgICAgREVCVUdfTE9HKCJDYWNoZSBtaXNzOiBVUkwgPSAiIFNUUklOR19TUEVDSUZJ
Q0FUSU9OLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7CiAgICAgZWxzZQotICAgICAgICBERUJV
R19MT0coIkNhY2hlIGhpdDogIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIodXJsLnN0cmlu
ZygpKSk7CisgICAgICAgIERFQlVHX0xPRygiQ2FjaGUgaGl0OiAgVVJMID0gIiBTVFJJTkdfU1BF
Q0lGSUNBVElPTiwgREVCVUdfU1RSKHVybC5zdHJpbmcoKSkpOwogCiAgICAgbV9yZXBsYXlGaWxl
SGFuZGxlLnByaW50ZigiJXMgJXNcbiIsIHdhc0NhY2hlTWlzcyA/ICJtaXNzIiA6ICJoaXQgIiwg
REVCVUdfU1RSKHVybC5zdHJpbmcoKSkpOwogfQpAQCAtNDU4LDcgKzQ1OCw3IEBAIFdlYkNvcmU6
OkZpbGVIYW5kbGUgTWFuYWdlcjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRo
LCBXZWJDb3JlOjpGaWxlCiAgICAgaWYgKG1vZGUgIT0gV2ViQ29yZTo6T3BlbkZvclJlYWQpIHsK
ICAgICAgICAgY29uc3QgYXV0byYgcGFyZW50RGlyID0gV2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShm
aWxlUGF0aCk7CiAgICAgICAgIGlmICghV2ViQ29yZTo6bWFrZUFsbERpcmVjdG9yaWVzKHBhcmVu
dERpcikpIHsKLSAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgJWQgdHJ5aW5nIHRv
IGNyZWF0ZSBpbnRlcm1lZGlhdGUgZGlyZWN0b3JpZXM6ICV7cHVibGljfXMiLCBlcnJubywgREVC
VUdfU1RSKHBhcmVudERpcikpOworICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJvciAl
ZCB0cnlpbmcgdG8gY3JlYXRlIGludGVybWVkaWF0ZSBkaXJlY3RvcmllczogIiBTVFJJTkdfU1BF
Q0lGSUNBVElPTiwgZXJybm8sIERFQlVHX1NUUihwYXJlbnREaXIpKTsKICAgICAgICAgICAgIHJl
dHVybiBmaWxlSGFuZGxlOwogICAgICAgICB9CiAKQEAgLTQ3MSw5ICs0NzEsOSBAQCBXZWJDb3Jl
OjpGaWxlSGFuZGxlIE1hbmFnZXI6Om9wZW5DYWNoZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0
aCwgV2ViQ29yZTo6RmlsZQogICAgIC8vIGZpbGUgaGFuZGxlLgogCiAgICAgaWYgKG1vZGUgPT0g
V2ViQ29yZTo6T3BlbkZvclJlYWQpCi0gICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgJWQg
dHJ5aW5nIHRvIG9wZW4gJXtwdWJsaWN9cyBmb3IgcmVhZGluZyIsIGVycm5vLCBERUJVR19TVFIo
ZmlsZVBhdGgpKTsKKyAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJvciAlZCB0cnlpbmcgdG8g
b3BlbiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OICIgZm9yIHJlYWRpbmciLCBlcnJubywgREVCVUdf
U1RSKGZpbGVQYXRoKSk7CiAgICAgZWxzZQotICAgICAgICBERUJVR19MT0dfRVJST1IoIkVycm9y
ICVkIHRyeWluZyB0byBvcGVuICV7cHVibGljfXMgZm9yIHdyaXRpbmciLCBlcnJubywgREVCVUdf
U1RSKGZpbGVQYXRoKSk7CisgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgJWQgdHJ5aW5n
IHRvIG9wZW4gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiAiIGZvciB3cml0aW5nIiwgZXJybm8sIERF
QlVHX1NUUihmaWxlUGF0aCkpOwogCiAgICAgcmV0dXJuIGZpbGVIYW5kbGU7CiB9CkBAIC01MTMs
NyArNTEzLDcgQEAgYm9vbCBNYW5hZ2VyOjpnZXRMaW5lKHVpbnQ4X3QgY29uc3QgKiYgcCwgdWlu
dDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgVmVjdG9yPFN0cmkKICAgICBTdHJpbmcgd29yZDsKICAg
ICB3aGlsZSAoZ2V0V29yZChwLCBlbmQsIHdvcmQpKSB7CiAgICAgICAgIGlmICghd29yZC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIERFQlVHX0xPR19WRVJCT1NFKCJBZGRpbmcgd29yZDogJXtw
dWJsaWN9cyIsIERFQlVHX1NUUih3b3JkKSk7CisgICAgICAgICAgICBERUJVR19MT0dfVkVSQk9T
RSgiQWRkaW5nIHdvcmQ6ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUih3b3JkKSk7
CiAgICAgICAgICAgICBsaW5lLmFwcGVuZCh3b3JkKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1
cmVSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05l
dHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwCmluZGV4IDU5MWViNGZjMjk2ZDIzNmUxZmRlODBiMzk1
MDQ2ZmFkODI1M2RjOWYuLjYzYjUzNjU0NzEyMDU2NDQyNWNmM2E3MDQyNWFhYzY3MDJhNWNlNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0NhcHR1cmVSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lk
IFJlY29yZGVyOjpyZWNvcmRSZXF1ZXN0U2VudChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCiAgICAgaWYgKG1fZXZlbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgREVCVUdfTE9HKCJTZW50IHJlcXVlc3QgZm9yIFVSTCA9ICV7cHVibGljfXMiLCBERUJV
R19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiU2VudCByZXF1
ZXN0IGZvciBVUkwgPSAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIocmVxdWVzdC51
cmwoKS5zdHJpbmcoKSkpOwogCiAgICAgbV9pbml0aWFsUmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAg
cmVjb3JkRXZlbnQoUmVxdWVzdFNlbnRFdmVudChyZXF1ZXN0KSk7CkBAIC02OCw3ICs2OCw3IEBA
IHZvaWQgUmVjb3JkZXI6OnJlY29yZFJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgLy8gQ2FsbGVkIHdoZW4gcmVjZWl2aW5n
IGEgcmVzcG9uc2Ugb3RoZXIgdGhhbiBhIHJlZGlyZWN0IG9yIGVycm9yLgogCi0gICAgREVCVUdf
TE9HKCJSZWNlaXZlZCByZXNwb25zZSBmcm9tIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIo
cmVzcG9uc2UudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIlJlY2VpdmVkIHJlc3Bv
bnNlIGZyb20gVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKHJlc3BvbnNl
LnVybCgpLnN0cmluZygpKSk7CiAgICAgQVNTRVJUKG1fZXZlbnRzLnNpemUoKSk7CiAKICAgICAv
LyBUT0RPOiBJcyB0aGVyZSBhIGJldHRlciByZXNwb25zZSB0byByZWNlaXZpbmcgYSBtdWx0aS1w
YXJ0IHJlc291cmNlPwpAQCAtODMsNyArODMsNyBAQCB2b2lkIFJlY29yZGVyOjpyZWNvcmRSZXNw
b25zZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
CiB2b2lkIFJlY29yZGVyOjpyZWNvcmRSZWRpcmVjdFJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB7Ci0gICAgREVCVUdfTE9HKCJSZWNlaXZlZCByZWRpcmVjdCB0byBVUkwgPSAl
e3B1YmxpY31zIiwgREVCVUdfU1RSKHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJV
R19MT0coIlJlY2VpdmVkIHJlZGlyZWN0IHRvIFVSTCA9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04s
IERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgQVNTRVJUKG1fZXZlbnRz
LnNpemUoKSk7CiAKICAgICByZWNvcmRFdmVudChSZWRpcmVjdFJlY2VpdmVkRXZlbnQocmVxdWVz
dCwgcmVzcG9uc2UpKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVk
aXJlY3RSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGMK
IAogdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVkaXJlY3RTZW50KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBERUJVR19MT0coIlNlbnQgcmVkaXJlY3QgZm9y
IFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwor
ICAgIERFQlVHX0xPRygiU2VudCByZWRpcmVjdCBmb3IgVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNB
VElPTiwgREVCVUdfU1RSKHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKICAgICBBU1NFUlQobV9l
dmVudHMuc2l6ZSgpKTsKIAogICAgIHJlY29yZEV2ZW50KFJlZGlyZWN0U2VudEV2ZW50KHJlcXVl
c3QpKTsKQEAgLTE0Miw3ICsxNDIsNyBAQCB2b2lkIFJlY29yZGVyOjp3cml0ZUV2ZW50cygpCiAg
ICAgICAgIC8vIGZpbGUuIEl0IGFsc28gd29ya3MgYmV0dGVyIHdpdGggSlNPTiBwYXJzZXJzIHRo
YXQgZXhwZWN0IHRvIGZpbmQgYQogICAgICAgICAvLyBOVUwgYXQgdGhlIGVuZCBvZiB0aGVpciBp
bnB1dC4KICAgICAgICAgaWYgKGhhbmRsZS53cml0ZShhc1N0cmluZy5jX3N0cigpLCBhc1N0cmlu
Zy5zaXplKCkgKyAxKSA9PSAtMSkgewotICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJv
ciB0cnlpbmcgdG8gd3JpdGUgdG8gZmlsZSBmb3IgVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NU
UihtX2luaXRpYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgICAgICAgICBERUJVR19M
T0dfRVJST1IoIkVycm9yIHRyeWluZyB0byB3cml0ZSB0byBmaWxlIGZvciBVUkwgPSAiIFNUUklO
R19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIobV9pbml0aWFsUmVxdWVzdC51cmwoKS5zdHJpbmco
KSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlc291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0Nh
cHR1cmVSZXNvdXJjZS5jcHAKaW5kZXggZTYyMDdkOTRlNjY3MTNkYTI3ZWJiMGRhNDZlYWEwOGRh
YjZlZWZhNi4uYjFjODI1YjJmZDA2MWQxNzRjYmQ1ZWYwYzdkMDY0MDY4ZjQ4MjEyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVy
ZVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJl
L05ldHdvcmtDYXB0dXJlUmVzb3VyY2UuY3BwCkBAIC00Niw5ICs0Niw5IEBAIGNvbnN0IFdlYkNv
cmU6OlVSTCYgUmVzb3VyY2U6OnVybCgpCiAgICAgICAgIGF1dG8gZXZlbnRzID0gZXZlbnRTdHJl
YW0oKTsKICAgICAgICAgYXV0byBldmVudCA9IGV2ZW50cy5uZXh0RXZlbnQoKTsKICAgICAgICAg
aWYgKCFldmVudCkKLSAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXZlbnQgc3RyZWFtIGRv
ZXMgbm90IGNvbnRhaW4gZXZlbnRzOiBmaWxlID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2V2
ZW50RmlsZVBhdGgpKTsKKyAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXZlbnQgc3RyZWFt
IGRvZXMgbm90IGNvbnRhaW4gZXZlbnRzOiBmaWxlID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwg
REVCVUdfU1RSKG1fZXZlbnRGaWxlUGF0aCkpOwogICAgICAgICBlbHNlIGlmICghV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxSZXF1ZXN0U2VudEV2ZW50PigqZXZlbnQpKQotICAgICAgICAgICAgREVC
VUdfTE9HX0VSUk9SKCJFdmVudCBzdHJlYW0gZG9lcyBub3QgaGF2ZSBhIHJlcXVlc3RTZW50IGV2
ZW50OiBmaWxlID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2V2ZW50RmlsZVBhdGgpKTsKKyAg
ICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXZlbnQgc3RyZWFtIGRvZXMgbm90IGhhdmUgYSBy
ZXF1ZXN0U2VudCBldmVudDogZmlsZSA9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NU
UihtX2V2ZW50RmlsZVBhdGgpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBhdXRvIHJl
cXVlc3RTZW50RXZlbnQgPSBXVEY6OmdldDxSZXF1ZXN0U2VudEV2ZW50PigqZXZlbnQpOwogICAg
ICAgICAgICAgV2ViQ29yZTo6VVJMUGFyc2VyIHBhcnNlcihyZXF1ZXN0U2VudEV2ZW50LnJlcXVl
c3QudXJsKTsKQEAgLTkzLDcgKzkzLDcgQEAgUmVzb3VyY2U6OkV2ZW50U3RyZWFtOjpFdmVudFN0
cmVhbShjb25zdCBTdHJpbmcmIGV2ZW50RmlsZVBhdGgpCiBPcHRpb25hbENhcHR1cmVFdmVudCBS
ZXNvdXJjZTo6RXZlbnRTdHJlYW06Om5leHRFdmVudCgpCiB7CiAgICAgaWYgKG1fb2Zmc2V0ID09
IG1fbWFwcGVkRXZlbnRGaWxlLnNpemUoKSkgewotICAgICAgICBERUJVR19MT0dfRVJST1IoIlVu
YWJsZSB0byByZXR1cm4gZXZlbnQgLSBhdCBlbmQgb2YgZmlsZTogJXtwdWJsaWN9cyIsIERFQlVH
X1NUUihtX2V2ZW50RmlsZVBhdGgpKTsKKyAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJVbmFibGUg
dG8gcmV0dXJuIGV2ZW50IC0gYXQgZW5kIG9mIGZpbGU6ICIgU1RSSU5HX1NQRUNJRklDQVRJT04s
IERFQlVHX1NUUihtX2V2ZW50RmlsZVBhdGgpKTsKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBPcHRpb25hbENhcHR1cmVFdmVudCBSZXNv
dXJjZTo6RXZlbnRTdHJlYW06Om5leHRFdmVudCgpCiAgICAgICAgICsrbV9vZmZzZXQ7CiAKICAg
ICBpZiAobV9vZmZzZXQgPT0gbV9tYXBwZWRFdmVudEZpbGUuc2l6ZSgpKSB7Ci0gICAgICAgIERF
QlVHX0xPR19FUlJPUigiVW5hYmxlIHRvIHJldHVybiBldmVudCAtIG5vIHRlcm1pbmF0aW5nIE5V
TDogJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2V2ZW50RmlsZVBhdGgpKTsKKyAgICAgICAgREVC
VUdfTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0dXJuIGV2ZW50IC0gbm8gdGVybWluYXRpbmcgTlVM
OiAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIobV9ldmVudEZpbGVQYXRoKSk7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1Jl
cGxheS5jcHAKaW5kZXggOGIzNWM4MTZkZTE5ZDY5NzEyNzc3ZTZjN2Y3YzczYTlmN2VmYjBlZS4u
MTI5YjUzMjAxYWY0M2I1YjI5MTY4MGVlNDY0MDdlMzU3MWUzZTcwZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0Rh
dGFUYXNrUmVwbGF5LmNwcApAQCAtNTAsOCArNTAsOCBAQCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6
Ok5ldHdvcmtEYXRhVGFza1JlcGxheShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dAogICAgICwgbV9jdXJyZW50UmVxdWVzdChtX2ZpcnN0UmVxdWVzdCkKICAgICAsIG1fcmVzb3Vy
Y2UocmVzb3VyY2UpCiB7Ci0gICAgREVCVUdfTE9HKCJyZXF1ZXN0IFVSTCA9ICV7cHVibGljfXMi
LCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKLSAgICBERUJVR19M
T0coImNhY2hlZCBVUkwgPSAle3B1YmxpY31zIiwgcmVzb3VyY2UgPyBERUJVR19TVFIocmVzb3Vy
Y2UtPnVybCgpLnN0cmluZygpKSA6ICI8bm90IGZvdW5kPiIpOworICAgIERFQlVHX0xPRygicmVx
dWVzdCBVUkwgPSAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIobV9maXJzdFJlcXVl
c3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coImNhY2hlZCBVUkwgPSAiIFNUUklO
R19TUEVDSUZJQ0FUSU9OLCByZXNvdXJjZSA/IERFQlVHX1NUUihyZXNvdXJjZS0+dXJsKCkuc3Ry
aW5nKCkpIDogIjxub3QgZm91bmQ+Iik7CiAKICAgICBtX3Nlc3Npb24tPnJlZ2lzdGVyTmV0d29y
a0RhdGFUYXNrKCp0aGlzKTsKIApAQCAtNjEsMTQgKzYxLDE0IEBAIE5ldHdvcmtEYXRhVGFza1Jl
cGxheTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3
b3JrRGF0CiAKIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6fk5ldHdvcmtEYXRhVGFza1JlcGxheSgp
CiB7Ci0gICAgREVCVUdfTE9HKCJVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fZmlyc3RS
ZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HKCJVUkwgPSAiIFNUUklOR19T
UEVDSUZJQ0FUSU9OLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsK
IAogICAgIG1fc2Vzc2lvbi0+dW5yZWdpc3Rlck5ldHdvcmtEYXRhVGFzaygqdGhpcyk7CiB9CiAK
IHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXN1bWUoKQogewotICAgIERFQlVHX0xPRygi
VVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmco
KSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdf
U1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBpZiAobV9zdGF0ZSA9
PSBTdGF0ZTo6Q2FuY2VsaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkNvbXBsZXRlZCkKICAgICAg
ICAgcmV0dXJuOwpAQCAtODUsNyArODUsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6
cmVzdW1lKCkKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnN1c3BlbmQoKQogewotICAg
IERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51
cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNB
VElPTiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBp
ZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q2FuY2VsaW5nIHx8IG1fc3RhdGUgPT0gU3RhdGU6OkNvbXBs
ZXRlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrUmVwbGF5OjpjYW5jZWwoKQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6Y29t
cGxldGUoKQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUiht
X2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBT
VFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmlu
ZygpKSk7CiAKICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q29tcGxldGVkKQogICAgICAgICBy
ZXR1cm47CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OmNv
bXBsZXRlKCkKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OmludmFsaWRhdGVBbmRDYW5j
ZWwoKQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2Zp
cnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJ
TkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygp
KSk7CiAKICAgICBjYW5jZWwoKTsKICAgICBjb21wbGV0ZSgpOwpAQCAtMTI0LDcgKzEyNCw3IEBA
IHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKIAogdm9p
ZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OmVucXVldWVFdmVudEhhbmRsZXIoKQogewotICAgIERF
QlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwo
KS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElP
TiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gewogICAgICAgICBERUJVR19MT0coImVucXVldWVFdmVudEhhbmRsZXIgY2FsbGJhY2siKTsK
QEAgLTEzOCwyMCArMTM4LDIwIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjplbnF1ZXVl
RXZlbnRIYW5kbGVyKCkKICAgICAgICAgfQogCiAgICAgICAgIGlmICghbV9yZXNvdXJjZSkgewot
ICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiBjb3Vs
ZCBub3QgZmluZCBjYWNoZWQgcmVzb3VyY2UsIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIo
bV9jdXJyZW50UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgICAgICAgICAgREVCVUdfTE9H
X0VSUk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiBjb3VsZCBub3QgZmluZCBjYWNoZWQgcmVz
b3VyY2UsIFVSTCA9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihtX2N1cnJlbnRS
ZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgICAgICAgICBkaWRGaW5pc2goRXJyb3I6Ok5v
dEZvdW5kRXJyb3IpOyAvLyBUT0RPOiBUdXJuIHRoaXMgaW50byBhIDQwND8KICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UobV9jdXJyZW50UmVxdWVzdC5odHRwTWV0aG9kKCksICJnZXQiKSkgewotICAgICAg
ICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiB1bnN1cHBvcnRl
ZCBtZXRob2QgKCV7cHVibGljfXMpLCBVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fY3Vy
cmVudFJlcXVlc3QuaHR0cE1ldGhvZCgpKSwgREVCVUdfU1RSKG1fY3VycmVudFJlcXVlc3QudXJs
KCkuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgbG9hZGlu
ZyByZXNvdXJjZTogdW5zdXBwb3J0ZWQgbWV0aG9kICgiIFNUUklOR19TUEVDSUZJQ0FUSU9OICIp
LCBVUkwgPSAiIFNUUklOR19TUEVDSUZJQ0FUSU9OLCBERUJVR19TVFIobV9jdXJyZW50UmVxdWVz
dC5odHRwTWV0aG9kKCkpLCBERUJVR19TVFIobV9jdXJyZW50UmVxdWVzdC51cmwoKS5zdHJpbmco
KSkpOwogICAgICAgICAgICAgZGlkRmluaXNoKEVycm9yOjpNZXRob2ROb3RBbGxvd2VkKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIGF1dG8gZXZlbnQgPSBtX2V2
ZW50U3RyZWFtLm5leHRFdmVudCgpOwogICAgICAgICBpZiAoIWV2ZW50KSB7Ci0gICAgICAgICAg
ICBERUJVR19MT0dfRVJST1IoIkVycm9yIGxvYWRpbmcgcmVzb3VyY2U6IG5leHRFdmVudCByZXR1
cm4gbnVsbCwgVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2N1cnJlbnRSZXF1ZXN0LnVy
bCgpLnN0cmluZygpKSk7CisgICAgICAgICAgICBERUJVR19MT0dfRVJST1IoIkVycm9yIGxvYWRp
bmcgcmVzb3VyY2U6IG5leHRFdmVudCByZXR1cm4gbnVsbCwgVVJMID0gIiBTVFJJTkdfU1BFQ0lG
SUNBVElPTiwgREVCVUdfU1RSKG1fY3VycmVudFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKICAg
ICAgICAgICAgIGRpZEZpbmlzaChFcnJvcjo6Tm90Rm91bmRFcnJvcik7IC8vIFRPRE86IFR1cm4g
dGhpcyBpbnRvIGEgNDA0PwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIs
MTQgKzE4MiwxNCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6ZW5xdWV1ZUV2ZW50SGFu
ZGxlcigpCiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlSZXF1ZXN0U2VudChj
b25zdCBSZXF1ZXN0U2VudEV2ZW50JiBldmVudCkKIHsKLSAgICBERUJVR19MT0coIlVSTCA9ICV7
cHVibGljfXMiLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAg
ICBERUJVR19MT0coIlVSTCA9ICIgU1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihtX2Zp
cnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogCiAgICAgZW5xdWV1ZUV2ZW50SGFuZGxlcigp
OwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6cmVwbGF5UmVzcG9uc2VSZWNlaXZl
ZChjb25zdCBSZXNwb25zZVJlY2VpdmVkRXZlbnQmIGV2ZW50KQogewotICAgIERFQlVHX0xPRygi
VVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmco
KSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdf
U1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlc3BvbnNlKGV2ZW50LnJlc3BvbnNlKTsKICAgICBkaWRSZWNlaXZlUmVz
cG9uc2UoV1RGTW92ZShyZXNwb25zZSkpOwpAQCAtMTk3LDE0ICsxOTcsMTQgQEAgdm9pZCBOZXR3
b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxheVJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzcG9uc2VS
ZWNlaXZlZEV2ZW50JgogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6cmVwbGF5UmVkaXJl
Y3RSZWNlaXZlZChjb25zdCBSZWRpcmVjdFJlY2VpdmVkRXZlbnQmIGV2ZW50KQogewotICAgIERF
QlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwo
KS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElP
TiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlY2VpdmVkUmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVjZWl2ZWRSZXF1ZXN0ID0gZXZlbnQucmVx
dWVzdDsKIAogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgbV9jbGllbnQtPndpbGxQZXJmb3Jt
SFRUUFJlZGlyZWN0aW9uKFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSksIFdURk1vdmUocmVjZWl2
ZWRSZXF1ZXN0KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgdXBkYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgREVC
VUdfTE9HKCJyZXBsYXlSZWRpcmVjdFJlY2VpdmVkIGNhbGxiYWNrOiBVUkwgPSAle3B1YmxpY31z
IiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgICAgIERF
QlVHX0xPRygicmVwbGF5UmVkaXJlY3RSZWNlaXZlZCBjYWxsYmFjazogVVJMID0gIiBTVFJJTkdf
U1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7
CiAKICAgICAgICAgbV9jdXJyZW50UmVxdWVzdCA9IHVwZGF0ZWRSZXF1ZXN0OwogICAgICAgICBl
bnF1ZXVlRXZlbnRIYW5kbGVyKCk7CkBAIC0yMTMsMTQgKzIxMywxNCBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza1JlcGxheTo6cmVwbGF5UmVkaXJlY3RSZWNlaXZlZChjb25zdCBSZWRpcmVjdFJlY2Vp
dmVkRXZlbnQmCiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlSZWRpcmVjdFNl
bnQoY29uc3QgUmVkaXJlY3RTZW50RXZlbnQmIGV2ZW50KQogewotICAgIERFQlVHX0xPRygiVVJM
ID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RS
KG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBlbnF1ZXVlRXZlbnRIYW5k
bGVyKCk7CiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlEYXRhUmVjZWl2
ZWQoY29uc3QgRGF0YVJlY2VpdmVkRXZlbnQmIGV2ZW50KQogewotICAgIERFQlVHX0xPRygiVVJM
ID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUNBVElPTiwgREVCVUdfU1RS
KG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBBU1NFUlQobV9jbGllbnQp
OwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YShldmVudC5kYXRhLmNvcHlSZWYoKSk7CkBA
IC0yMzAsMTQgKzIzMCwxNCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6cmVwbGF5RGF0
YVJlY2VpdmVkKGNvbnN0IERhdGFSZWNlaXZlZEV2ZW50JiBldmVudCkKIAogdm9pZCBOZXR3b3Jr
RGF0YVRhc2tSZXBsYXk6OnJlcGxheUZpbmlzaGVkKGNvbnN0IEZpbmlzaGVkRXZlbnQmIGV2ZW50
KQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0
UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdf
U1BFQ0lGSUNBVElPTiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7
CiAKICAgICBkaWRGaW5pc2goZXZlbnQuZXJyb3IpOwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFz
a1JlcGxheTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZXNwb25zZSkKIHsKLSAgICBERUJVR19MT0coIlVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIo
bV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIlVSTCA9ICIg
U1RSSU5HX1NQRUNJRklDQVRJT04sIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJp
bmcoKSkpOwogCiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV1RGTW92ZShyZXNwb25zZSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24pIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296664</attachid>
            <date>2016-12-09 11:32:35 -0800</date>
            <delta_ts>2016-12-09 13:59:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165650-20161209113157.patch</filename>
            <type>text/plain</type>
            <size>29083</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmUxN2ZmN2MwYzJlMmVi
YzdjYzZhNzJmMzkxYWJkMWQzYTZjN2Y1Ni4uYWI4NDIwYmZjYWYzZGQ1YzFmNzRmZGM5NDk4Mjg5
ZTA4OTkzMGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDE2LTEyLTA4ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAorICAgICAgICBGaXggc3RyaW5nIHNwZWNp
ZmljYXRpb24gaW4gcHJpbnQgZm9ybWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjU2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlz
dGVuc2VuLgorCisgICAgICAgIENoYW5nZSAiJXtwdWJsaWN9cyIgc3RyaW5nIHNwZWNpZmllciB0
byBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY2hhbmdlZAorICAgICAgICB0byAiJXMiIGF0IGNvbXBp
bGUgdGltZSB3aGVuIHRoZSBidWlsZCBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgdGhlCisg
ICAgICAgIGZvcm1lci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0NhcHR1cmVMb2dnaW5nLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrQ2FwdHVyZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6
TWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpN
YW5hZ2VyOjpmaW5kTWF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFu
YWdlcjo6ZmluZEV4YWN0TWF0Y2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6
TWFuYWdlcjo6ZmluZEJlc3RGdXp6eU1hdGNoKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
cHR1cmU6Ok1hbmFnZXI6OmZ1enp5TWF0Y2hVUkxzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ1BsYXllZEJhY2tSZXNvdXJjZSk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjpvcGVuQ2FjaGVGaWxlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmdldExpbmUpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpSZWNvcmRlcjo6cmVjb3JkUmVxdWVzdFNlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6UmVjb3JkZXI6OnJlY29yZFJlc3BvbnNlUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6UmVjb3JkZXI6OnJlY29y
ZFJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6UmVj
b3JkZXI6OnJlY29yZFJlZGlyZWN0U2VudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0
dXJlOjpSZWNvcmRlcjo6d3JpdGVFdmVudHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
cHR1cmUvTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYXB0dXJlOjpSZXNvdXJjZTo6dXJsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1
cmU6OlJlc291cmNlOjpFdmVudFN0cmVhbTo6bmV4dEV2ZW50KToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6Ok5ldHdvcmtEYXRhVGFz
a1JlcGxheSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRh
c2tSZXBsYXk6On5OZXR3b3JrRGF0YVRhc2tSZXBsYXkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXN1bWUpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjpzdXNwZW5kKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtEYXRhVGFza1JlcGxheTo6Y29t
cGxldGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNr
UmVwbGF5OjppbnZhbGlkYXRlQW5kQ2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nh
cHR1cmU6Ok5ldHdvcmtEYXRhVGFza1JlcGxheTo6ZW5xdWV1ZUV2ZW50SGFuZGxlcik6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxh
eVJlcXVlc3RTZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok5ldHdvcmtE
YXRhVGFza1JlcGxheTo6cmVwbGF5UmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxheVJlZGlyZWN0UmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNr
UmVwbGF5OjpyZXBsYXlSZWRpcmVjdFNlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2Fw
dHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlEYXRhUmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlG
aW5pc2hlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpOZXR3b3JrRGF0YVRh
c2tSZXBsYXk6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisKKzIwMTYtMTItMDggIEtlaXRoIFJvbGxp
biAgPGtyb2xsaW5AYXBwbGUuY29tPgorCiAgICAgICAgIE1vdmUgRmlsZUhhbmRsZSB0byBXZWJD
b3JlIEZpbGVIYW5kbGUuaAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1NTYyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVMb2dnaW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTG9nZ2luZy5oCmluZGV4IDUyZjBkNzZj
MmRlMzVkN2FiYjE0YTUzNWMyNzdkNWY3N2QyMDcxMGQuLjlhYTg0Y2Y3YWE2MjlmYzVmYjM3MWY3
NGZlNmMzNzliZDUyN2I3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVMb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaApAQCAtMzQsMTEg
KzM0LDE3IEBACiAKICNkZWZpbmUgREVCVUdfU1RSKHMpICAgICAgICAgICAgICAgICAgICAocyku
YXNjaWkoKS5kYXRhKCkKIAorI2lmIFJFTEVBU0VfTE9HX0RJU0FCTEVECisjZGVmaW5lIFNUUklO
R19TUEVDSUZJRVIgICAgICAgICAgICAgICAgIiVzIgorI2Vsc2UKKyNkZWZpbmUgU1RSSU5HX1NQ
RUNJRklFUiAgICAgICAgICAgICAgICAiJXtwdWJsaWN9cyIKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFdURl9DQVBUVVJFX0lOVEVSTkFMX0RFQlVHR0lORykKICNkZWZpbmUgREVCVUdfTE9HX1FVT1RF
KHN0cikgICAgICAgICAgICAjc3RyCiAjZGVmaW5lIERFQlVHX0xPR19FWFBBTkRfQU5EX1FVT1RF
KHN0cikgREVCVUdfTE9HX1FVT1RFKHN0cikKLSNkZWZpbmUgREVCVUdfTE9HKGZvcm1hdCwgLi4u
KSAgICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiI1BMVDogJXAgLSAle3B1YmxpY31zOjol
e3B1YmxpY31zOiAiIGZvcm1hdCwgdGhpcywgREVCVUdfTE9HX0VYUEFORF9BTkRfUVVPVEUoREVC
VUdfQ0xBU1MpLCBfX0ZVTkNUSU9OX18sICMjX19WQV9BUkdTX18pCi0jZGVmaW5lIERFQlVHX0xP
R19FUlJPUihmb3JtYXQsIC4uLikgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiNQTFQ6
ICVwIC0gJXtwdWJsaWN9czo6JXtwdWJsaWN9czogIiBmb3JtYXQsIHRoaXMsIERFQlVHX0xPR19F
WFBBTkRfQU5EX1FVT1RFKERFQlVHX0NMQVNTKSwgX19GVU5DVElPTl9fLCAjI19fVkFfQVJHU19f
KQorI2RlZmluZSBERUJVR19MT0coZm9ybWF0LCAuLi4pICAgICAgICAgIFJFTEVBU0VfTE9HKE5l
dHdvcmssICIjUExUOiAlcCAtICIgU1RSSU5HX1NQRUNJRklFUiAiOjoiIFNUUklOR19TUEVDSUZJ
RVIgIjogIiBmb3JtYXQsIHRoaXMsIERFQlVHX0xPR19FWFBBTkRfQU5EX1FVT1RFKERFQlVHX0NM
QVNTKSwgX19GVU5DVElPTl9fLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBERUJVR19MT0dfRVJS
T1IoZm9ybWF0LCAuLi4pICAgIFJFTEVBU0VfTE9HX0VSUk9SKE5ldHdvcmssICIjUExUOiAlcCAt
ICIgU1RSSU5HX1NQRUNJRklFUiAiOjoiIFNUUklOR19TUEVDSUZJRVIgIjogIiBmb3JtYXQsIHRo
aXMsIERFQlVHX0xPR19FWFBBTkRfQU5EX1FVT1RFKERFQlVHX0NMQVNTKSwgX19GVU5DVElPTl9f
LCAjI19fVkFfQVJHU19fKQogI2lmIEVOQUJMRShXVEZfVkVSQk9TRV9DQVBUVVJFX0lOVEVSTkFM
X0RFQlVHR0lORykKICNkZWZpbmUgREVCVUdfTE9HX1ZFUkJPU0UoZm9ybWF0LCAuLi4pICBERUJV
R19MT0coZm9ybWF0LCAjI19fVkFfQVJHU19fKQogI2Vsc2UKQEAgLTQ2LDcgKzUyLDcgQEAKICNl
bmRpZgogI2Vsc2UKICNkZWZpbmUgREVCVUdfTE9HKC4uLikgICAgICAgICAgICAgICAgICAoKHZv
aWQpMCkKLSNkZWZpbmUgREVCVUdfTE9HX0VSUk9SKC4uLikgICAgICAgICAgICAoKHZvaWQpMCkK
KyNkZWZpbmUgREVCVUdfTE9HX0VSUk9SKC4uLikgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihOZXR3b3JrLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgREVCVUdfTE9HX1ZFUkJPU0UoLi4uKSAg
ICAgICAgICAoKHZvaWQpMCkKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAK
aW5kZXggMGRmODgzYzcwYzdhYmZkZjI5MDFhNWViNGRhM2ZkZmY2MDhmYzdlNy4uYmU4MGFlOTZh
NDkxOTBiOWFlN2UzZDk4NWU2NzJmNzllMzYyOTgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5h
Z2VyLmNwcApAQCAtNzYsNyArNzYsNyBAQCB2b2lkIE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3Qg
U3RyaW5nJiByZWNvcmRSZXBsYXlNb2RlLCBjb25zdCBTdHJpbmcmIHJlY29yZFJlcAogICAgIG1f
cmVjb3JkRmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVjb3JkUGF0aCgp
LCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOwogICAgIG1fcmVwbGF5RmlsZUhhbmRsZSA9IFdlYkNv
cmU6OkZpbGVIYW5kbGUocmVwb3J0UmVwbGF5UGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUp
OwogCi0gICAgREVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9ICV7cHVibGljfXMiLCBERUJVR19T
VFIobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uKSk7CisgICAgREVCVUdfTE9HKCJDYWNoZSBs
b2NhdGlvbiA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fcmVjb3JkUmVwbGF5Q2Fj
aGVMb2NhdGlvbikpOwogCiAgICAgaWYgKGlzUmVwbGF5aW5nKCkpCiAgICAgICAgIGxvYWRSZXNv
dXJjZXMoKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBNYW5hZ2VyOjp0ZXJtaW5hdGUoKQogCiBS
ZXNvdXJjZSogTWFuYWdlcjo6ZmluZE1hdGNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKLSAgICBERUJVR19MT0dfVkVSQk9TRSgiVVJMID0gJXtwdWJsaWN9cyIs
IERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HX1ZFUkJP
U0UoIlVSTCA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkpKTsKIAogICAgIGF1dG8gYmVzdE1hdGNoID0gZmluZEV4YWN0TWF0Y2gocmVxdWVzdCk7
CiAgICAgaWYgKCFiZXN0TWF0Y2gpCkBAIC05OSwxMiArOTksMTIgQEAgUmVzb3VyY2UqIE1hbmFn
ZXI6OmZpbmRNYXRjaChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAK
ICNpZiBFTkFCTEUoV1RGX0NBUFRVUkVfSU5URVJOQUxfREVCVUdHSU5HKQogICAgIGlmICghYmVz
dE1hdGNoKQotICAgICAgICBERUJVR19MT0coIkNvdWxkIG5vdCBmaW5kIG1hdGNoIGZvcjogJXtw
dWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgICAgIERF
QlVHX0xPRygiQ291bGQgbm90IGZpbmQgbWF0Y2ggZm9yOiAiIFNUUklOR19TUEVDSUZJRVIsIERF
QlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgZWxzZSBpZiAocmVxdWVzdC51
cmwoKSA9PSBiZXN0TWF0Y2gtPnVybCgpKQotICAgICAgICBERUJVR19MT0coIkZvdW5kIGV4YWN0
IG1hdGNoIGZvcjogJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygp
KSk7CisgICAgICAgIERFQlVHX0xPRygiRm91bmQgZXhhY3QgbWF0Y2ggZm9yOiAiIFNUUklOR19T
UEVDSUZJRVIsIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgZWxzZSB7
Ci0gICAgICAgIERFQlVHX0xPRygiRm91bmQgZnV6enkgbWF0Y2ggZm9yOiAle3B1YmxpY31zIiwg
REVCVUdfU1RSKHJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKLSAgICAgICAgREVCVUdfTE9HKCIg
ICAgICAgcmVwbGFjZWQgd2l0aCA6ICV7cHVibGljfXMiLCBERUJVR19TVFIoYmVzdE1hdGNoLT51
cmwoKS5zdHJpbmcoKSkpOworICAgICAgICBERUJVR19MT0coIkZvdW5kIGZ1enp5IG1hdGNoIGZv
cjogIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OworICAgICAgICBERUJVR19MT0coIiAgICAgICByZXBsYWNlZCB3aXRoIDogIiBTVFJJTkdfU1BF
Q0lGSUVSLCBERUJVR19TVFIoYmVzdE1hdGNoLT51cmwoKS5zdHJpbmcoKSkpOwogICAgIH0KICNl
bmRpZgogCkBAIC0xMTksNyArMTE5LDcgQEAgUmVzb3VyY2UqIE1hbmFnZXI6OmZpbmRFeGFjdE1h
dGNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICB9KTsKIAog
ICAgIGlmIChsb3dlciAhPSBzdGQ6OmVuZChtX2NhY2hlZFJlc291cmNlcykgJiYgbG93ZXItPnVy
bCgpID09IHVybCkgewotICAgICAgICBERUJVR19MT0dfVkVSQk9TRSgiRm91bmQgZXhhY3QgbWF0
Y2g6ICV7cHVibGljfXMiLCBERUJVR19TVFIobG93ZXItPnVybCgpLnN0cmluZygpKSk7CisgICAg
ICAgIERFQlVHX0xPR19WRVJCT1NFKCJGb3VuZCBleGFjdCBtYXRjaDogIiBTVFJJTkdfU1BFQ0lG
SUVSLCBERUJVR19TVFIobG93ZXItPnVybCgpLnN0cmluZygpKSk7CiAgICAgICAgIHJldHVybiAm
Kmxvd2VyOwogICAgIH0KIApAQCAtMTQ1LDcgKzE0NSw3IEBAIFJlc291cmNlKiBNYW5hZ2VyOjpm
aW5kQmVzdEZ1enp5TWF0Y2goY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogICAgICAgICBpbnQgdGhpc1Njb3JlID0gZnV6enlNYXRjaFVSTHModXJsLCByZXF1ZXN0UGFy
YW1ldGVycywgaVJlc291cmNlLT51cmwoKSwgaVJlc291cmNlLT5xdWVyeVBhcmFtZXRlcnMoKSk7
CiAgICAgICAgIC8vIFRPRE86IENvbnNpZGVyIGlnbm9yaW5nIGFueSBtYXRjaGVzIDwgMCBhcyBi
ZWluZyB0b28gZGlmZmVyZW50LgogICAgICAgICBpZiAoYmVzdFNjb3JlIDwgdGhpc1Njb3JlKSB7
Ci0gICAgICAgICAgICBERUJVR19MT0coIk5ldyBiZXN0IG1hdGNoICglZCk6ICV7cHVibGljfXMi
LCB0aGlzU2NvcmUsIERFQlVHX1NUUihpUmVzb3VyY2UtPnVybCgpLnN0cmluZygpKSk7CisgICAg
ICAgICAgICBERUJVR19MT0coIk5ldyBiZXN0IG1hdGNoICglZCk6ICIgU1RSSU5HX1NQRUNJRklF
UiwgdGhpc1Njb3JlLCBERUJVR19TVFIoaVJlc291cmNlLT51cmwoKS5zdHJpbmcoKSkpOwogICAg
ICAgICAgICAgYmVzdFNjb3JlID0gdGhpc1Njb3JlOwogICAgICAgICAgICAgYmVzdE1hdGNoID0g
JippUmVzb3VyY2U7CiAgICAgICAgICAgICBpZiAoYmVzdFNjb3JlID09IGtNYXhNYXRjaCkKQEAg
LTE3MSwyMCArMTcxLDIwIEBAIGludCBNYW5hZ2VyOjpmdXp6eU1hdGNoVVJMcyhjb25zdCBXZWJD
b3JlOjpVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IFdlYkNvcmU6OlVSTFBhCiAgICAgLy8gbWF0Y2gu
CiAKICAgICBpZiAoIXByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChyZXF1ZXN0VVJMLCByZXNv
dXJjZVVSTCkpIHsKLSAgICAgICAgREVCVUdfTE9HKCJTY2hlbWUvaG9zdC9wb3J0IG1pc21hdGNo
OiAle3B1YmxpY31zICE9ICV7cHVibGljfXMiLCBERUJVR19TVFIocmVxdWVzdFVSTC5zdHJpbmco
KSksIERFQlVHX1NUUihyZXNvdXJjZVVSTC5zdHJpbmcoKSkpOworICAgICAgICBERUJVR19MT0co
IlNjaGVtZS9ob3N0L3BvcnQgbWlzbWF0Y2g6ICIgU1RSSU5HX1NQRUNJRklFUiAiICE9ICIgU1RS
SU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKHJlcXVlc3RVUkwuc3RyaW5nKCkpLCBERUJVR19TVFIo
cmVzb3VyY2VVUkwuc3RyaW5nKCkpKTsKICAgICAgICAgcmV0dXJuIGtNaW5NYXRjaDsKICAgICB9
CiAKICAgICAvLyBJZiBmcmFnbWVudHMgZG9uJ3QgbWF0Y2gsIHJldHVybiB0aGlzIGFzIHRoZSAi
d29yc3QiIG1hdGNoLgogCiAgICAgaWYgKHJlcXVlc3RVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkg
IT0gcmVzb3VyY2VVUkwuZnJhZ21lbnRJZGVudGlmaWVyKCkpIHsKLSAgICAgICAgREVCVUdfTE9H
KCJGcmFnbWVudHMgbWlzbWF0Y2g6ICV7cHVibGljfXMgIT0gJXtwdWJsaWN9cyIsIERFQlVHX1NU
UihyZXF1ZXN0VVJMLnN0cmluZygpKSwgREVCVUdfU1RSKHJlc291cmNlVVJMLnN0cmluZygpKSk7
CisgICAgICAgIERFQlVHX0xPRygiRnJhZ21lbnRzIG1pc21hdGNoOiAiIFNUUklOR19TUEVDSUZJ
RVIgIiAhPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihyZXF1ZXN0VVJMLnN0cmluZygp
KSwgREVCVUdfU1RSKHJlc291cmNlVVJMLnN0cmluZygpKSk7CiAgICAgICAgIHJldHVybiBrTWlu
TWF0Y2g7CiAgICAgfQogCiAgICAgREVCVUdfTE9HKCJGdXp6eSBtYXRjaGluZzoiKTsKLSAgICBE
RUJVR19MT0coIiAgIDogJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0VVJMLnN0cmluZygp
KSk7Ci0gICAgREVCVUdfTE9HKCIgICA6ICV7cHVibGljfXMiLCBERUJVR19TVFIocmVzb3VyY2VV
Ukwuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIiAgIDogIiBTVFJJTkdfU1BFQ0lGSUVSLCBE
RUJVR19TVFIocmVxdWVzdFVSTC5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiICAgOiAiIFNU
UklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihyZXNvdXJjZVVSTC5zdHJpbmcoKSkpOwogCiAgICAg
Ly8gQ29tcGFyZSB0aGUgcGF0aCBjb21wb25lbnRzIGFuZCB0aGUgcXVlcnkgcGFyYW1ldGVycy4g
U2NvcmUgZWFjaCBwYXJ0aWFsCiAgICAgLy8gbWF0Y2ggYXMgKzQsIGVhY2ggbWlzbWF0Y2ggYXMg
LTEsIGFuZCBlYWNoIG1pc3NpbmcgY29tcG9uZW50IGFzIC0xLgpAQCAtMjg1LDE0ICsyODUsMTQg
QEAgaW50IE1hbmFnZXI6OmZ1enp5TWF0Y2hVUkxzKGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVxdWVz
dFVSTCwgY29uc3QgV2ViQ29yZTo6VVJMUGEKICAgICAgICAgaWYgKHJlcXVlc3RQYXJhbWV0ZXIt
PmZpcnN0ID09IHJlc291cmNlUGFyYW1ldGVyLT5maXJzdCkgewogI2lmIEVOQUJMRShXVEZfQ0FQ
VFVSRV9JTlRFUk5BTF9ERUJVR0dJTkcpCiAgICAgICAgICAgICBpZiAocmVxdWVzdFBhcmFtZXRl
ci0+c2Vjb25kID09IHJlc291cmNlUGFyYW1ldGVyLT5zZWNvbmQpCi0gICAgICAgICAgICAgICAg
REVCVUdfTE9HKCJNYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXMgYW5kIHZhbHVlczogXCIle3B1Ymxp
Y31zXCIgPSBcIiV7cHVibGljfXNcIiIsIERFQlVHX1NUUihyZXF1ZXN0UGFyYW1ldGVyLT5maXJz
dCksIERFQlVHX1NUUihyZXF1ZXN0UGFyYW1ldGVyLT5zZWNvbmQpKTsKKyAgICAgICAgICAgICAg
ICBERUJVR19MT0coIk1hdGNoaW5nIHBhcmFtZXRlciBuYW1lcyBhbmQgdmFsdWVzOiBcIiIgU1RS
SU5HX1NQRUNJRklFUiAiXCIgPSBcIiIgU1RSSU5HX1NQRUNJRklFUiAiXCIiLCBERUJVR19TVFIo
cmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QpLCBERUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+c2Vj
b25kKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgREVCVUdfTE9HKCJNaXNt
YXRjaGluZyBwYXJhbWV0ZXIgdmFsdWVzOiBcIiV7cHVibGljfXNcIiA9IFwiJXtwdWJsaWN9c1wi
IHZzLiBcIiV7cHVibGljfXNcIiIsIERFQlVHX1NUUihyZXF1ZXN0UGFyYW1ldGVyLT5maXJzdCks
IERFQlVHX1NUUihyZXF1ZXN0UGFyYW1ldGVyLT5zZWNvbmQpLCBERUJVR19TVFIocmVzb3VyY2VQ
YXJhbWV0ZXItPnNlY29uZCkpOworICAgICAgICAgICAgICAgIERFQlVHX0xPRygiTWlzbWF0Y2hp
bmcgcGFyYW1ldGVyIHZhbHVlczogXCIiIFNUUklOR19TUEVDSUZJRVIgIlwiID0gXCIiIFNUUklO
R19TUEVDSUZJRVIgIlwiIHZzLiBcIiIgU1RSSU5HX1NQRUNJRklFUiAiXCIiLCBERUJVR19TVFIo
cmVxdWVzdFBhcmFtZXRlci0+Zmlyc3QpLCBERUJVR19TVFIocmVxdWVzdFBhcmFtZXRlci0+c2Vj
b25kKSwgREVCVUdfU1RSKHJlc291cmNlUGFyYW1ldGVyLT5zZWNvbmQpKTsKICNlbmRpZgogICAg
ICAgICAgICAgc2NvcmUgKz0gKHJlcXVlc3RQYXJhbWV0ZXItPnNlY29uZCA9PSByZXNvdXJjZVBh
cmFtZXRlci0+c2Vjb25kKSA/IGtQYXJhbWV0ZXJNYXRjaFNjb3JlIDoga1BhcmFtZXRlck1pc21h
dGNoU2NvcmU7CiAgICAgICAgICAgICBERUJVR19MT0coIlNjb3JlID0gJWQiLCBzY29yZSk7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBERUJVR19MT0coIk1pc21hdGNoaW5nIHBhcmFt
ZXRlciBuYW1lczogJXtwdWJsaWN9cywgJXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0UGFy
YW1ldGVyLT5maXJzdCksIERFQlVHX1NUUihyZXNvdXJjZVBhcmFtZXRlci0+Zmlyc3QpKTsKKyAg
ICAgICAgICAgIERFQlVHX0xPRygiTWlzbWF0Y2hpbmcgcGFyYW1ldGVyIG5hbWVzOiAiIFNUUklO
R19TUEVDSUZJRVIgIiwgIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIocmVxdWVzdFBhcmFt
ZXRlci0+Zmlyc3QpLCBERUJVR19TVFIocmVzb3VyY2VQYXJhbWV0ZXItPmZpcnN0KSk7CiAKICAg
ICAgICAgICAgIGNvbnN0IGF1dG8gc2NhbkZvcndhcmRGb3JNYXRjaCA9IFt0aGlzLCAmc2NvcmUs
IGtQYXJhbWV0ZXJNYXRjaFNjb3JlLCBrUGFyYW1ldGVyTWlzbWF0Y2hTY29yZSwga1BhcmFtZXRl
ck1pc3NpbmdTY29yZV0oY29uc3QgYXV0byYgZml4ZWRJdGVyLCBhdXRvJiBzY2FubmluZ0l0ZXIs
IGNvbnN0IGF1dG8mIHNjYW5uZXJFbmQpIHsKICAgICAgICAgICAgICAgICBhdXRvIHNjYW5uZXIg
PSBzY2FubmluZ0l0ZXI7CkBAIC0zMDUsOSArMzA1LDkgQEAgaW50IE1hbmFnZXI6OmZ1enp5TWF0
Y2hVUkxzKGNvbnN0IFdlYkNvcmU6OlVSTCYgcmVxdWVzdFVSTCwgY29uc3QgV2ViQ29yZTo6VVJM
UGEKICAgICAgICAgICAgICAgICBERUJVR19MT0coIlNjb3JlID0gJWQiLCBzY29yZSk7CiAjaWYg
RU5BQkxFKFdURl9DQVBUVVJFX0lOVEVSTkFMX0RFQlVHR0lORykKICAgICAgICAgICAgICAgICBp
ZiAoZml4ZWRJdGVyLT5zZWNvbmQgPT0gc2Nhbm5lci0+c2Vjb25kKQotICAgICAgICAgICAgICAg
ICAgICBERUJVR19MT0coIk1hdGNoaW5nIHBhcmFtZXRlciBuYW1lcyBhbmQgdmFsdWVzOiBcIiV7
cHVibGljfXNcIiA9IFwiJXtwdWJsaWN9c1wiIiwgREVCVUdfU1RSKGZpeGVkSXRlci0+Zmlyc3Qp
LCBERUJVR19TVFIoZml4ZWRJdGVyLT5zZWNvbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgREVC
VUdfTE9HKCJNYXRjaGluZyBwYXJhbWV0ZXIgbmFtZXMgYW5kIHZhbHVlczogXCIiIFNUUklOR19T
UEVDSUZJRVIgIlwiID0gXCIiIFNUUklOR19TUEVDSUZJRVIgIlwiIiwgREVCVUdfU1RSKGZpeGVk
SXRlci0+Zmlyc3QpLCBERUJVR19TVFIoZml4ZWRJdGVyLT5zZWNvbmQpKTsKICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIERFQlVHX0xPRygiTWlzbWF0Y2hpbmcgcGFy
YW1ldGVyIHZhbHVlczogXCIle3B1YmxpY31zXCIgPSBcIiV7cHVibGljfXNcIiB2cy4gXCIle3B1
YmxpY31zXCIiLCBERUJVR19TVFIoZml4ZWRJdGVyLT5maXJzdCksIERFQlVHX1NUUihmaXhlZEl0
ZXItPnNlY29uZCksIERFQlVHX1NUUihzY2FubmVyLT5zZWNvbmQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgREVCVUdfTE9HKCJNaXNtYXRjaGluZyBwYXJhbWV0ZXIgdmFsdWVzOiBcIiIgU1RSSU5H
X1NQRUNJRklFUiAiXCIgPSBcIiIgU1RSSU5HX1NQRUNJRklFUiAiXCIgdnMuIFwiIiBTVFJJTkdf
U1BFQ0lGSUVSICJcIiIsIERFQlVHX1NUUihmaXhlZEl0ZXItPmZpcnN0KSwgREVCVUdfU1RSKGZp
eGVkSXRlci0+c2Vjb25kKSwgREVCVUdfU1RSKHNjYW5uZXItPnNlY29uZCkpOwogI2VuZGlmCiAg
ICAgICAgICAgICAgICAgc2NvcmUgKz0gKGZpeGVkSXRlci0+c2Vjb25kID09IHNjYW5uZXItPnNl
Y29uZCkgPyBrUGFyYW1ldGVyTWF0Y2hTY29yZSA6IGtQYXJhbWV0ZXJNaXNtYXRjaFNjb3JlOwog
ICAgICAgICAgICAgICAgIERFQlVHX0xPRygiU2NvcmUgPSAlZCIsIHNjb3JlKTsKQEAgLTMxNyw4
ICszMTcsOCBAQCBpbnQgTWFuYWdlcjo6ZnV6enlNYXRjaFVSTHMoY29uc3QgV2ViQ29yZTo6VVJM
JiByZXF1ZXN0VVJMLCBjb25zdCBXZWJDb3JlOjpVUkxQYQogCiAgICAgICAgICAgICBpZiAoIXNj
YW5Gb3J3YXJkRm9yTWF0Y2gocmVxdWVzdFBhcmFtZXRlciwgcmVzb3VyY2VQYXJhbWV0ZXIsIHN0
ZDo6ZW5kKHJlc291cmNlUGFyYW1ldGVycykpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzY2Fu
Rm9yd2FyZEZvck1hdGNoKHJlc291cmNlUGFyYW1ldGVyLCByZXF1ZXN0UGFyYW1ldGVyLCBzdGQ6
OmVuZChyZXF1ZXN0UGFyYW1ldGVycykpKSB7Ci0gICAgICAgICAgICAgICAgICAgIERFQlVHX0xP
RygiVW5tYXRjaGVkIHBhcmFtZXRlcjogJXtwdWJsaWN9cz0le3B1YmxpY31zIiwgREVCVUdfU1RS
KHJlcXVlc3RQYXJhbWV0ZXItPmZpcnN0KSwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPnNl
Y29uZCkpOwotICAgICAgICAgICAgICAgICAgICBERUJVR19MT0coIlVubWF0Y2hlZCBwYXJhbWV0
ZXI6ICV7cHVibGljfXM9JXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXNvdXJjZVBhcmFtZXRlci0+
Zmlyc3QpLCBERUJVR19TVFIocmVzb3VyY2VQYXJhbWV0ZXItPnNlY29uZCkpOworICAgICAgICAg
ICAgICAgICAgICBERUJVR19MT0coIlVubWF0Y2hlZCBwYXJhbWV0ZXI6ICIgU1RSSU5HX1NQRUNJ
RklFUiAiPSIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPmZp
cnN0KSwgREVCVUdfU1RSKHJlcXVlc3RQYXJhbWV0ZXItPnNlY29uZCkpOworICAgICAgICAgICAg
ICAgICAgICBERUJVR19MT0coIlVubWF0Y2hlZCBwYXJhbWV0ZXI6ICIgU1RSSU5HX1NQRUNJRklF
UiAiPSIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKHJlc291cmNlUGFyYW1ldGVyLT5maXJz
dCksIERFQlVHX1NUUihyZXNvdXJjZVBhcmFtZXRlci0+c2Vjb25kKSk7CiAgICAgICAgICAgICAg
ICAgICAgIHNjb3JlICs9IGtQYXJhbWV0ZXJNaXNzaW5nU2NvcmUgKyBrUGFyYW1ldGVyTWlzc2lu
Z1Njb3JlOwogICAgICAgICAgICAgICAgICAgICBERUJVR19MT0coIlNjb3JlID0gJWQiLCBzY29y
ZSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDM2LDkgKzQzNiw5IEBAIHZvaWQgTWFuYWdlcjo6
bG9nUGxheWVkQmFja1Jlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgYm9vCiAgICAgY29uc3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsKIAogICAgIGlm
ICh3YXNDYWNoZU1pc3MpCi0gICAgICAgIERFQlVHX0xPRygiQ2FjaGUgbWlzczogVVJMID0gJXtw
dWJsaWN9cyIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKKyAgICAgICAgREVCVUdfTE9HKCJD
YWNoZSBtaXNzOiBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUih1cmwuc3RyaW5n
KCkpKTsKICAgICBlbHNlCi0gICAgICAgIERFQlVHX0xPRygiQ2FjaGUgaGl0OiAgVVJMID0gJXtw
dWJsaWN9cyIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKKyAgICAgICAgREVCVUdfTE9HKCJD
YWNoZSBoaXQ6ICBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUih1cmwuc3RyaW5n
KCkpKTsKIAogICAgIG1fcmVwbGF5RmlsZUhhbmRsZS5wcmludGYoIiVzICVzXG4iLCB3YXNDYWNo
ZU1pc3MgPyAibWlzcyIgOiAiaGl0ICIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKIH0KQEAg
LTQ1OCw3ICs0NTgsNyBAQCBXZWJDb3JlOjpGaWxlSGFuZGxlIE1hbmFnZXI6Om9wZW5DYWNoZUZp
bGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgV2ViQ29yZTo6RmlsZQogICAgIGlmIChtb2RlICE9
IFdlYkNvcmU6Ok9wZW5Gb3JSZWFkKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHBhcmVudERpciA9
IFdlYkNvcmU6OmRpcmVjdG9yeU5hbWUoZmlsZVBhdGgpOwogICAgICAgICBpZiAoIVdlYkNvcmU6
Om1ha2VBbGxEaXJlY3RvcmllcyhwYXJlbnREaXIpKSB7Ci0gICAgICAgICAgICBERUJVR19MT0df
RVJST1IoIkVycm9yICVkIHRyeWluZyB0byBjcmVhdGUgaW50ZXJtZWRpYXRlIGRpcmVjdG9yaWVz
OiAle3B1YmxpY31zIiwgZXJybm8sIERFQlVHX1NUUihwYXJlbnREaXIpKTsKKyAgICAgICAgICAg
IERFQlVHX0xPR19FUlJPUigiRXJyb3IgJWQgdHJ5aW5nIHRvIGNyZWF0ZSBpbnRlcm1lZGlhdGUg
ZGlyZWN0b3JpZXM6ICIgU1RSSU5HX1NQRUNJRklFUiwgZXJybm8sIERFQlVHX1NUUihwYXJlbnRE
aXIpKTsKICAgICAgICAgICAgIHJldHVybiBmaWxlSGFuZGxlOwogICAgICAgICB9CiAKQEAgLTQ3
MSw5ICs0NzEsOSBAQCBXZWJDb3JlOjpGaWxlSGFuZGxlIE1hbmFnZXI6Om9wZW5DYWNoZUZpbGUo
Y29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgV2ViQ29yZTo6RmlsZQogICAgIC8vIGZpbGUgaGFuZGxl
LgogCiAgICAgaWYgKG1vZGUgPT0gV2ViQ29yZTo6T3BlbkZvclJlYWQpCi0gICAgICAgIERFQlVH
X0xPR19FUlJPUigiRXJyb3IgJWQgdHJ5aW5nIHRvIG9wZW4gJXtwdWJsaWN9cyBmb3IgcmVhZGlu
ZyIsIGVycm5vLCBERUJVR19TVFIoZmlsZVBhdGgpKTsKKyAgICAgICAgREVCVUdfTE9HX0VSUk9S
KCJFcnJvciAlZCB0cnlpbmcgdG8gb3BlbiAiIFNUUklOR19TUEVDSUZJRVIgIiBmb3IgcmVhZGlu
ZyIsIGVycm5vLCBERUJVR19TVFIoZmlsZVBhdGgpKTsKICAgICBlbHNlCi0gICAgICAgIERFQlVH
X0xPR19FUlJPUigiRXJyb3IgJWQgdHJ5aW5nIHRvIG9wZW4gJXtwdWJsaWN9cyBmb3Igd3JpdGlu
ZyIsIGVycm5vLCBERUJVR19TVFIoZmlsZVBhdGgpKTsKKyAgICAgICAgREVCVUdfTE9HX0VSUk9S
KCJFcnJvciAlZCB0cnlpbmcgdG8gb3BlbiAiIFNUUklOR19TUEVDSUZJRVIgIiBmb3Igd3JpdGlu
ZyIsIGVycm5vLCBERUJVR19TVFIoZmlsZVBhdGgpKTsKIAogICAgIHJldHVybiBmaWxlSGFuZGxl
OwogfQpAQCAtNTEzLDcgKzUxMyw3IEBAIGJvb2wgTWFuYWdlcjo6Z2V0TGluZSh1aW50OF90IGNv
bnN0IComIHAsIHVpbnQ4X3QgY29uc3QgKiBjb25zdCBlbmQsIFZlY3RvcjxTdHJpCiAgICAgU3Ry
aW5nIHdvcmQ7CiAgICAgd2hpbGUgKGdldFdvcmQocCwgZW5kLCB3b3JkKSkgewogICAgICAgICBp
ZiAoIXdvcmQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBERUJVR19MT0dfVkVSQk9TRSgiQWRk
aW5nIHdvcmQ6ICV7cHVibGljfXMiLCBERUJVR19TVFIod29yZCkpOworICAgICAgICAgICAgREVC
VUdfTE9HX1ZFUkJPU0UoIkFkZGluZyB3b3JkOiAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NU
Uih3b3JkKSk7CiAgICAgICAgICAgICBsaW5lLmFwcGVuZCh3b3JkKTsKICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0
d29ya0NhcHR1cmVSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwCmluZGV4IDU5MWViNGZjMjk2ZDIzNmUx
ZmRlODBiMzk1MDQ2ZmFkODI1M2RjOWYuLmU2NjAzZTYzNmQ3NDhmYTY5ZWU0MWE1NmQ5ZWY5ZjE2
Nzk1NTliMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcApAQCAtNTgsNyArNTgs
NyBAQCB2b2lkIFJlY29yZGVyOjpyZWNvcmRSZXF1ZXN0U2VudChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgaWYgKG1fZXZlbnRzLnNpemUoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgREVCVUdfTE9HKCJTZW50IHJlcXVlc3QgZm9yIFVSTCA9ICV7cHVibGlj
fXMiLCBERUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygi
U2VudCByZXF1ZXN0IGZvciBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihyZXF1
ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBtX2luaXRpYWxSZXF1ZXN0ID0gcmVxdWVzdDsK
ICAgICByZWNvcmRFdmVudChSZXF1ZXN0U2VudEV2ZW50KHJlcXVlc3QpKTsKQEAgLTY4LDcgKzY4
LDcgQEAgdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVzcG9uc2VSZWNlaXZlZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICAvLyBDYWxsZWQgd2hlbiByZWNl
aXZpbmcgYSByZXNwb25zZSBvdGhlciB0aGFuIGEgcmVkaXJlY3Qgb3IgZXJyb3IuCiAKLSAgICBE
RUJVR19MT0coIlJlY2VpdmVkIHJlc3BvbnNlIGZyb20gVVJMID0gJXtwdWJsaWN9cyIsIERFQlVH
X1NUUihyZXNwb25zZS51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiUmVjZWl2ZWQg
cmVzcG9uc2UgZnJvbSBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihyZXNwb25z
ZS51cmwoKS5zdHJpbmcoKSkpOwogICAgIEFTU0VSVChtX2V2ZW50cy5zaXplKCkpOwogCiAgICAg
Ly8gVE9ETzogSXMgdGhlcmUgYSBiZXR0ZXIgcmVzcG9uc2UgdG8gcmVjZWl2aW5nIGEgbXVsdGkt
cGFydCByZXNvdXJjZT8KQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVz
cG9uc2VSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IAogdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVkaXJlY3RSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlKQogewotICAgIERFQlVHX0xPRygiUmVjZWl2ZWQgcmVkaXJlY3QgdG8gVVJMID0g
JXtwdWJsaWN9cyIsIERFQlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVC
VUdfTE9HKCJSZWNlaXZlZCByZWRpcmVjdCB0byBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERF
QlVHX1NUUihyZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgQVNTRVJUKG1fZXZlbnRzLnNp
emUoKSk7CiAKICAgICByZWNvcmRFdmVudChSZWRpcmVjdFJlY2VpdmVkRXZlbnQocmVxdWVzdCwg
cmVzcG9uc2UpKTsKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVkaXJl
Y3RSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGMKIAog
dm9pZCBSZWNvcmRlcjo6cmVjb3JkUmVkaXJlY3RTZW50KGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBERUJVR19MT0coIlNlbnQgcmVkaXJlY3QgZm9yIFVS
TCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAg
IERFQlVHX0xPRygiU2VudCByZWRpcmVjdCBmb3IgVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUVSLCBE
RUJVR19TVFIocmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogICAgIEFTU0VSVChtX2V2ZW50cy5z
aXplKCkpOwogCiAgICAgcmVjb3JkRXZlbnQoUmVkaXJlY3RTZW50RXZlbnQocmVxdWVzdCkpOwpA
QCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgUmVjb3JkZXI6OndyaXRlRXZlbnRzKCkKICAgICAgICAg
Ly8gZmlsZS4gSXQgYWxzbyB3b3JrcyBiZXR0ZXIgd2l0aCBKU09OIHBhcnNlcnMgdGhhdCBleHBl
Y3QgdG8gZmluZCBhCiAgICAgICAgIC8vIE5VTCBhdCB0aGUgZW5kIG9mIHRoZWlyIGlucHV0Lgog
ICAgICAgICBpZiAoaGFuZGxlLndyaXRlKGFzU3RyaW5nLmNfc3RyKCksIGFzU3RyaW5nLnNpemUo
KSArIDEpID09IC0xKSB7Ci0gICAgICAgICAgICBERUJVR19MT0dfRVJST1IoIkVycm9yIHRyeWlu
ZyB0byB3cml0ZSB0byBmaWxlIGZvciBVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1faW5p
dGlhbFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgIERFQlVHX0xPR19FUlJP
UigiRXJyb3IgdHJ5aW5nIHRvIHdyaXRlIHRvIGZpbGUgZm9yIFVSTCA9ICIgU1RSSU5HX1NQRUNJ
RklFUiwgREVCVUdfU1RSKG1faW5pdGlhbFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVzb3Vy
Y2UuY3BwCmluZGV4IGU2MjA3ZDk0ZTY2NzEzZGEyN2ViYjBkYTQ2ZWFhMDhkYWI2ZWVmYTYuLjIz
ZWI2OWFlNzUwMjU4YzExYjUzNmM0MDcyNWM5M2NlYzcxZTQ2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2Fw
dHVyZVJlc291cmNlLmNwcApAQCAtNDYsOSArNDYsOSBAQCBjb25zdCBXZWJDb3JlOjpVUkwmIFJl
c291cmNlOjp1cmwoKQogICAgICAgICBhdXRvIGV2ZW50cyA9IGV2ZW50U3RyZWFtKCk7CiAgICAg
ICAgIGF1dG8gZXZlbnQgPSBldmVudHMubmV4dEV2ZW50KCk7CiAgICAgICAgIGlmICghZXZlbnQp
Ci0gICAgICAgICAgICBERUJVR19MT0dfRVJST1IoIkV2ZW50IHN0cmVhbSBkb2VzIG5vdCBjb250
YWluIGV2ZW50czogZmlsZSA9ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9ldmVudEZpbGVQYXRo
KSk7CisgICAgICAgICAgICBERUJVR19MT0dfRVJST1IoIkV2ZW50IHN0cmVhbSBkb2VzIG5vdCBj
b250YWluIGV2ZW50czogZmlsZSA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fZXZl
bnRGaWxlUGF0aCkpOwogICAgICAgICBlbHNlIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxS
ZXF1ZXN0U2VudEV2ZW50PigqZXZlbnQpKQotICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJF
dmVudCBzdHJlYW0gZG9lcyBub3QgaGF2ZSBhIHJlcXVlc3RTZW50IGV2ZW50OiBmaWxlID0gJXtw
dWJsaWN9cyIsIERFQlVHX1NUUihtX2V2ZW50RmlsZVBhdGgpKTsKKyAgICAgICAgICAgIERFQlVH
X0xPR19FUlJPUigiRXZlbnQgc3RyZWFtIGRvZXMgbm90IGhhdmUgYSByZXF1ZXN0U2VudCBldmVu
dDogZmlsZSA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fZXZlbnRGaWxlUGF0aCkp
OwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGF1dG8gcmVxdWVzdFNlbnRFdmVudCA9IFdU
Rjo6Z2V0PFJlcXVlc3RTZW50RXZlbnQ+KCpldmVudCk7CiAgICAgICAgICAgICBXZWJDb3JlOjpV
UkxQYXJzZXIgcGFyc2VyKHJlcXVlc3RTZW50RXZlbnQucmVxdWVzdC51cmwpOwpAQCAtOTMsNyAr
OTMsNyBAQCBSZXNvdXJjZTo6RXZlbnRTdHJlYW06OkV2ZW50U3RyZWFtKGNvbnN0IFN0cmluZyYg
ZXZlbnRGaWxlUGF0aCkKIE9wdGlvbmFsQ2FwdHVyZUV2ZW50IFJlc291cmNlOjpFdmVudFN0cmVh
bTo6bmV4dEV2ZW50KCkKIHsKICAgICBpZiAobV9vZmZzZXQgPT0gbV9tYXBwZWRFdmVudEZpbGUu
c2l6ZSgpKSB7Ci0gICAgICAgIERFQlVHX0xPR19FUlJPUigiVW5hYmxlIHRvIHJldHVybiBldmVu
dCAtIGF0IGVuZCBvZiBmaWxlOiAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fZXZlbnRGaWxlUGF0
aCkpOworICAgICAgICBERUJVR19MT0dfRVJST1IoIlVuYWJsZSB0byByZXR1cm4gZXZlbnQgLSBh
dCBlbmQgb2YgZmlsZTogIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9ldmVudEZpbGVQ
YXRoKSk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xMDQsNyAr
MTA0LDcgQEAgT3B0aW9uYWxDYXB0dXJlRXZlbnQgUmVzb3VyY2U6OkV2ZW50U3RyZWFtOjpuZXh0
RXZlbnQoKQogICAgICAgICArK21fb2Zmc2V0OwogCiAgICAgaWYgKG1fb2Zmc2V0ID09IG1fbWFw
cGVkRXZlbnRGaWxlLnNpemUoKSkgewotICAgICAgICBERUJVR19MT0dfRVJST1IoIlVuYWJsZSB0
byByZXR1cm4gZXZlbnQgLSBubyB0ZXJtaW5hdGluZyBOVUw6ICV7cHVibGljfXMiLCBERUJVR19T
VFIobV9ldmVudEZpbGVQYXRoKSk7CisgICAgICAgIERFQlVHX0xPR19FUlJPUigiVW5hYmxlIHRv
IHJldHVybiBldmVudCAtIG5vIHRlcm1pbmF0aW5nIE5VTDogIiBTVFJJTkdfU1BFQ0lGSUVSLCBE
RUJVR19TVFIobV9ldmVudEZpbGVQYXRoKSk7CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtEYXRhVGFza1JlcGxheS5jcHAKaW5kZXggOGIzNWM4MTZkZTE5
ZDY5NzEyNzc3ZTZjN2Y3YzczYTlmN2VmYjBlZS4uMzBkNzMwMjUyNzkyOTY0NDQ0OWUwOGQzOWI2
YzA0MDgwYzU0NzU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcApAQCAtNTAsOCAr
NTAsOCBAQCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6Ok5ldHdvcmtEYXRhVGFza1JlcGxheShOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICwgbV9jdXJyZW50UmVxdWVzdCht
X2ZpcnN0UmVxdWVzdCkKICAgICAsIG1fcmVzb3VyY2UocmVzb3VyY2UpCiB7Ci0gICAgREVCVUdf
TE9HKCJyZXF1ZXN0IFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkpKTsKLSAgICBERUJVR19MT0coImNhY2hlZCBVUkwgPSAle3B1YmxpY31z
IiwgcmVzb3VyY2UgPyBERUJVR19TVFIocmVzb3VyY2UtPnVybCgpLnN0cmluZygpKSA6ICI8bm90
IGZvdW5kPiIpOworICAgIERFQlVHX0xPRygicmVxdWVzdCBVUkwgPSAiIFNUUklOR19TUEVDSUZJ
RVIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVH
X0xPRygiY2FjaGVkIFVSTCA9ICIgU1RSSU5HX1NQRUNJRklFUiwgcmVzb3VyY2UgPyBERUJVR19T
VFIocmVzb3VyY2UtPnVybCgpLnN0cmluZygpKSA6ICI8bm90IGZvdW5kPiIpOwogCiAgICAgbV9z
ZXNzaW9uLT5yZWdpc3Rlck5ldHdvcmtEYXRhVGFzaygqdGhpcyk7CiAKQEAgLTYxLDE0ICs2MSwx
NCBAQCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6Ok5ldHdvcmtEYXRhVGFza1JlcGxheShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdAogCiBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6On5O
ZXR3b3JrRGF0YVRhc2tSZXBsYXkoKQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9
cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVH
X0xPRygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkpKTsKIAogICAgIG1fc2Vzc2lvbi0+dW5yZWdpc3Rlck5ldHdvcmtEYXRh
VGFzaygqdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXN1bWUoKQog
ewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX2ZpcnN0UmVx
dWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0gIiBTVFJJTkdfU1BF
Q0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKIAogICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpDYW5jZWxpbmcgfHwgbV9zdGF0ZSA9PSBTdGF0ZTo6Q29t
cGxldGVkKQogICAgICAgICByZXR1cm47CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrUmVwbGF5OjpyZXN1bWUoKQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6c3Vz
cGVuZCgpCiB7Ci0gICAgREVCVUdfTE9HKCJVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1f
Zmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HKCJVUkwgPSAiIFNU
UklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OwogCiAgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OkNhbmNlbGluZyB8fCBtX3N0YXRlID09IFN0
YXRlOjpDb21wbGV0ZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1JlcGxheTo6Y2FuY2VsKCkKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tS
ZXBsYXk6OmNvbXBsZXRlKCkKIHsKLSAgICBERUJVR19MT0coIlVSTCA9ICV7cHVibGljfXMiLCBE
RUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0co
IlVSTCA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgp
LnN0cmluZygpKSk7CiAKICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6Q29tcGxldGVkKQogICAg
ICAgICByZXR1cm47CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBs
YXk6OmNvbXBsZXRlKCkKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OmludmFsaWRhdGVB
bmRDYW5jZWwoKQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NU
UihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygiVVJMID0g
IiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5n
KCkpKTsKIAogICAgIGNhbmNlbCgpOwogICAgIGNvbXBsZXRlKCk7CkBAIC0xMjQsNyArMTI0LDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OmludmFsaWRhdGVBbmRDYW5jZWwoKQogCiB2
b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6ZW5xdWV1ZUV2ZW50SGFuZGxlcigpCiB7Ci0gICAg
REVCVUdfTE9HKCJVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HKCJVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIs
IERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogCiAgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgREVCVUdfTE9HKCJlbnF1ZXVlRXZlbnRIYW5kbGVyIGNhbGxiYWNrIik7CkBA
IC0xMzgsMjAgKzEzOCwyMCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxheTo6ZW5xdWV1ZUV2
ZW50SGFuZGxlcigpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW1fcmVzb3VyY2UpIHsKLSAg
ICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgbG9hZGluZyByZXNvdXJjZTogY291bGQg
bm90IGZpbmQgY2FjaGVkIHJlc291cmNlLCBVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1f
Y3VycmVudFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgIERFQlVHX0xPR19F
UlJPUigiRXJyb3IgbG9hZGluZyByZXNvdXJjZTogY291bGQgbm90IGZpbmQgY2FjaGVkIHJlc291
cmNlLCBVUkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihtX2N1cnJlbnRSZXF1ZXN0
LnVybCgpLnN0cmluZygpKSk7CiAgICAgICAgICAgICBkaWRGaW5pc2goRXJyb3I6Ok5vdEZvdW5k
RXJyb3IpOyAvLyBUT0RPOiBUdXJuIHRoaXMgaW50byBhIDQwND8KICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UobV9jdXJyZW50UmVxdWVzdC5odHRwTWV0aG9kKCksICJnZXQiKSkgewotICAgICAgICAgICAg
REVCVUdfTE9HX0VSUk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiB1bnN1cHBvcnRlZCBtZXRo
b2QgKCV7cHVibGljfXMpLCBVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fY3VycmVudFJl
cXVlc3QuaHR0cE1ldGhvZCgpKSwgREVCVUdfU1RSKG1fY3VycmVudFJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkpKTsKKyAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgbG9hZGluZyByZXNv
dXJjZTogdW5zdXBwb3J0ZWQgbWV0aG9kICgiIFNUUklOR19TUEVDSUZJRVIgIiksIFVSTCA9ICIg
U1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fY3VycmVudFJlcXVlc3QuaHR0cE1ldGhvZCgp
KSwgREVCVUdfU1RSKG1fY3VycmVudFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKICAgICAgICAg
ICAgIGRpZEZpbmlzaChFcnJvcjo6TWV0aG9kTm90QWxsb3dlZCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGV2ZW50ID0gbV9ldmVudFN0cmVhbS5uZXh0
RXZlbnQoKTsKICAgICAgICAgaWYgKCFldmVudCkgewotICAgICAgICAgICAgREVCVUdfTE9HX0VS
Uk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiBuZXh0RXZlbnQgcmV0dXJuIG51bGwsIFVSTCA9
ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9jdXJyZW50UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkp
OworICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJvciBsb2FkaW5nIHJlc291cmNlOiBu
ZXh0RXZlbnQgcmV0dXJuIG51bGwsIFVSTCA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RS
KG1fY3VycmVudFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKICAgICAgICAgICAgIGRpZEZpbmlz
aChFcnJvcjo6Tm90Rm91bmRFcnJvcik7IC8vIFRPRE86IFR1cm4gdGhpcyBpbnRvIGEgNDA0Pwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xODIsMTQgKzE4MiwxNCBAQCB2b2lk
IE5ldHdvcmtEYXRhVGFza1JlcGxheTo6ZW5xdWV1ZUV2ZW50SGFuZGxlcigpCiAKIHZvaWQgTmV0
d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlSZXF1ZXN0U2VudChjb25zdCBSZXF1ZXN0U2VudEV2
ZW50JiBldmVudCkKIHsKLSAgICBERUJVR19MT0coIlVSTCA9ICV7cHVibGljfXMiLCBERUJVR19T
VFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIlVSTCA9
ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmlu
ZygpKSk7CiAKICAgICBlbnF1ZXVlRXZlbnRIYW5kbGVyKCk7CiB9CiAKIHZvaWQgTmV0d29ya0Rh
dGFUYXNrUmVwbGF5OjpyZXBsYXlSZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc3BvbnNlUmVjZWl2
ZWRFdmVudCYgZXZlbnQpCiB7Ci0gICAgREVCVUdfTE9HKCJVUkwgPSAle3B1YmxpY31zIiwgREVC
VUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HKCJV
UkwgPSAiIFNUUklOR19TUEVDSUZJRVIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5z
dHJpbmcoKSkpOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShldmVu
dC5yZXNwb25zZSk7CiAgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKFdURk1vdmUocmVzcG9uc2UpKTsK
QEAgLTE5NywxNCArMTk3LDE0IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlS
ZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc3BvbnNlUmVjZWl2ZWRFdmVudCYKIAogdm9pZCBOZXR3
b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxheVJlZGlyZWN0UmVjZWl2ZWQoY29uc3QgUmVkaXJlY3RS
ZWNlaXZlZEV2ZW50JiBldmVudCkKIHsKLSAgICBERUJVR19MT0coIlVSTCA9ICV7cHVibGljfXMi
LCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19M
T0coIlVSTCA9ICIgU1RSSU5HX1NQRUNJRklFUiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpKSk7CiAKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlY2VpdmVk
UmVzcG9uc2UgPSBldmVudC5yZXNwb25zZTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVjZWl2ZWRSZXF1ZXN0ID0gZXZlbnQucmVxdWVzdDsKIAogICAgIEFTU0VSVChtX2NsaWVudCk7
CiAgICAgbV9jbGllbnQtPndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdURk1vdmUocmVjZWl2
ZWRSZXNwb25zZSksIFdURk1vdmUocmVjZWl2ZWRSZXF1ZXN0KSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKV0gKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgdXBk
YXRlZFJlcXVlc3QpIHsKLSAgICAgICAgREVCVUdfTE9HKCJyZXBsYXlSZWRpcmVjdFJlY2VpdmVk
IGNhbGxiYWNrOiBVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVy
bCgpLnN0cmluZygpKSk7CisgICAgICAgIERFQlVHX0xPRygicmVwbGF5UmVkaXJlY3RSZWNlaXZl
ZCBjYWxsYmFjazogVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJl
cXVlc3QudXJsKCkuc3RyaW5nKCkpKTsKIAogICAgICAgICBtX2N1cnJlbnRSZXF1ZXN0ID0gdXBk
YXRlZFJlcXVlc3Q7CiAgICAgICAgIGVucXVldWVFdmVudEhhbmRsZXIoKTsKQEAgLTIxMywxNCAr
MjEzLDE0IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrUmVwbGF5OjpyZXBsYXlSZWRpcmVjdFJlY2Vp
dmVkKGNvbnN0IFJlZGlyZWN0UmVjZWl2ZWRFdmVudCYKIAogdm9pZCBOZXR3b3JrRGF0YVRhc2tS
ZXBsYXk6OnJlcGxheVJlZGlyZWN0U2VudChjb25zdCBSZWRpcmVjdFNlbnRFdmVudCYgZXZlbnQp
CiB7Ci0gICAgREVCVUdfTE9HKCJVUkwgPSAle3B1YmxpY31zIiwgREVCVUdfU1RSKG1fZmlyc3RS
ZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CisgICAgREVCVUdfTE9HKCJVUkwgPSAiIFNUUklOR19T
UEVDSUZJRVIsIERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogCiAg
ICAgZW5xdWV1ZUV2ZW50SGFuZGxlcigpOwogfQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza1JlcGxh
eTo6cmVwbGF5RGF0YVJlY2VpdmVkKGNvbnN0IERhdGFSZWNlaXZlZEV2ZW50JiBldmVudCkKIHsK
LSAgICBERUJVR19MT0coIlVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9maXJzdFJlcXVl
c3QudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBERUJVR19MT0coIlVSTCA9ICIgU1RSSU5HX1NQRUNJ
RklFUiwgREVCVUdfU1RSKG1fZmlyc3RSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAKICAgICBB
U1NFUlQobV9jbGllbnQpOwogICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlRGF0YShldmVudC5kYXRh
LmNvcHlSZWYoKSk7CkBAIC0yMzAsMTQgKzIzMCwxNCBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Jl
cGxheTo6cmVwbGF5RGF0YVJlY2VpdmVkKGNvbnN0IERhdGFSZWNlaXZlZEV2ZW50JiBldmVudCkK
IAogdm9pZCBOZXR3b3JrRGF0YVRhc2tSZXBsYXk6OnJlcGxheUZpbmlzaGVkKGNvbnN0IEZpbmlz
aGVkRXZlbnQmIGV2ZW50KQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIsIERF
QlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xPRygi
VVJMID0gIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJsKCku
c3RyaW5nKCkpKTsKIAogICAgIGRpZEZpbmlzaChldmVudC5lcnJvcik7CiB9CiAKIHZvaWQgTmV0
d29ya0RhdGFUYXNrUmVwbGF5OjpkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmIHJlc3BvbnNlKQogewotICAgIERFQlVHX0xPRygiVVJMID0gJXtwdWJsaWN9cyIs
IERFQlVHX1NUUihtX2ZpcnN0UmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOworICAgIERFQlVHX0xP
RygiVVJMID0gIiBTVFJJTkdfU1BFQ0lGSUVSLCBERUJVR19TVFIobV9maXJzdFJlcXVlc3QudXJs
KCkuc3RyaW5nKCkpKTsKIAogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdURk1vdmUocmVzcG9uc2UpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>