<?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>165562</bug_id>
          
          <creation_ts>2016-12-07 16:20:01 -0800</creation_ts>
          <short_desc>Move FileHandle to WebCore FileHandle.h</short_desc>
          <delta_ts>2016-12-08 18:57:58 -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></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>
    
    <cc>koivisto</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1257432</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-07 16:20:01 -0800</bug_when>
    <thetext>Bug 164527 introduces a FileHandle class into WebKit2/NetworkProcess. This should be moved to WebCore. While doing this, we should consider what this class should actually be. Should is just be a C++ wrapper around the plain functionality in FileSystem.h? Or should it provide more?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257643</commentid>
    <comment_count>1</comment_count>
      <attachid>296498</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-07 23:31:56 -0800</bug_when>
    <thetext>Created attachment 296498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257764</commentid>
    <comment_count>2</comment_count>
      <attachid>296498</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-12-08 10:40:01 -0800</bug_when>
    <thetext>Comment on attachment 296498
Patch

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

&gt; Source/WebCore/platform/FileHandle.cpp:40
&gt; +    , m_fileHandle(invalidPlatformFileHandle)

This isn&apos;t necessary because of the initializer list in the header.

&gt; Source/WebCore/platform/FileHandle.cpp:47
&gt; +    , m_fileHandle(invalidPlatformFileHandle)

I think this is confusing.  Maybe we should = delete this constructor.

&gt; Source/WebCore/platform/FileHandle.cpp:69
&gt; +        m_fileHandle = invalidPlatformFileHandle;

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257768</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 10:51:58 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebCore/platform/FileHandle.cpp:47
&gt; &gt; +    , m_fileHandle(invalidPlatformFileHandle)
&gt; 
&gt; I think this is confusing.  Maybe we should = delete this constructor.
&gt; 
&gt; &gt; Source/WebCore/platform/FileHandle.cpp:69
&gt; &gt; +        m_fileHandle = invalidPlatformFileHandle;
&gt; 
&gt; ditto

Heh. I concur. I originally had them &quot;= delete&quot;, but tried adding them into this version in the interests of completeness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257814</commentid>
    <comment_count>4</comment_count>
      <attachid>296547</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 12:31:47 -0800</bug_when>
    <thetext>Created attachment 296547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257838</commentid>
    <comment_count>5</comment_count>
      <attachid>296555</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 13:14:52 -0800</bug_when>
    <thetext>Created attachment 296555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257864</commentid>
    <comment_count>6</comment_count>
      <attachid>296562</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 13:50:13 -0800</bug_when>
    <thetext>Created attachment 296562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257957</commentid>
    <comment_count>7</comment_count>
      <attachid>296562</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-08 16:57:18 -0800</bug_when>
    <thetext>Comment on attachment 296562
Patch

Clearing flags on attachment: 296562

Committed r209583: &lt;http://trac.webkit.org/changeset/209583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257958</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-08 16:57:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257984</commentid>
    <comment_count>9</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-12-08 17:49:13 -0800</bug_when>
    <thetext>This change appears to have broken the Windows build:

https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/82532

C:\cygwin\home\buildbot\slave\win-release\build\Source\WebCore\platform\FileHandle.cpp(107): error C3861: &apos;vasprintf&apos;: identifier not found [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebCore\WebCore.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257995</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 18:18:32 -0800</bug_when>
    <thetext>OK, I&apos;ll fix it if you haven&apos;t already rolled it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258007</commentid>
    <comment_count>11</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2016-12-08 18:57:58 -0800</bug_when>
    <thetext>Fixed in Bug 165642.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296498</attachid>
            <date>2016-12-07 23:31:56 -0800</date>
            <delta_ts>2016-12-08 12:31:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165562-20161207233123.patch</filename>
            <type>text/plain</type>
            <size>33471</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIxNGJmOTJlZDEyMTE4
NjExY2Y3NmYxYjUwMDdhZTY2NGEyYjVkOS4uMTI5OTdhM2YxYjkyMTk2OGI3MDIxMTg1NWEzYWQw
MTljNmNmNDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTEyLTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEZpbGVIYW5kbGUg
dG8gV2ViQ29yZSBGaWxlSGFuZGxlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBGaWxlSGFuZGxlLCBhIHNtYWxsIHdyYXBwZXIgYXJvdW5kIEZp
bGVTeXN0ZW0gZmFjaWxpdGllcyB0byBtYW5hZ2UKKyAgICAgICAgdGhlIGxpZmV0aW1lIG9mIGFu
IG9wZW4gZmlsZSBhbmQgZ2l2ZSB0aGUgZmFjaWxpdGllcyBhIEMrKyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIC0tIGFmZmVjdGVkIGZhY2lsaXR5IGlzIGN1cnJlbnRseSBvbmx5
IHVzZWQgaW4gdGVzdGluZworICAgICAgICBjb2RlIGFuZCBpcyBub3QgdXNlciByZWFjaGFibGUu
CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogcGxhdGZvcm0vRmlsZUhhbmRsZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUhhbmRsZTo6RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjp+Rmls
ZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6b3BlcmF0b3IgYm9vbCk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlSGFuZGxlOjpvcGVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6OnJl
YWQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6d3JpdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZUhhbmRsZTo6cHJpbnRmKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6
OmNsb3NlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlSGFuZGxlLmg6IEFkZGVkLgorCiAyMDE2
LTEyLTA3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
cnVudGltZSB0b2dnbGUgZm9yIHBvaW50ZXItbG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQ5YWE2NzY2NTNh
YjIwOGM0NmI1NzhhNTAyNDk3MTYxN2YzNzM4YzMuLjY2Zjg4OWMyMzk4YjRhZTE5ZDM4NDllMGM5
NmUyZWFjZDIyZDI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNi0xMi0wNyAg
S2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBGaWxlSGFu
ZGxlIHRvIFdlYkNvcmUgRmlsZUhhbmRsZS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU1NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNb3ZlIEZpbGVIYW5kbGUgZnJvbSBOZXR3b3JrQ2FwdHVyZVR5
cGVzLmggKHdoaWNoIGNhbiBub3cgYmUgZGVsZXRlZCkKKyAgICAgICAgdG8gV2ViQ29yZS4gVXBk
YXRlIGNsaWVudCBjb2RlIHRvIHVzZSB0aGUgbmV3IHZlcnNpb24uCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ1JlY29yZGVkUmVzb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nTG9hZGVkUmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nUGxheWVkQmFj
a1Jlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Om9w
ZW5DYWNoZUZpbGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6
ZW5zdXJlRmlsZUhhbmRsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0
dXJlOjpNYW5hZ2VyOjpwcmludFRvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ2FwdHVyZTo6UmVjb3JkZXI6OndyaXRlRXZlbnRzKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlVHlwZXMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMDcg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBydW50aW1l
IHRvZ2dsZSBmb3IgcG9pbnRlci1sb2NrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGI0ZTMwMGNjNDIxM2QyZTc0ZTg3NGJlM2Ix
MzM1Zjg2MTYxNmQ5Zi4uMGM5NTY2ZmQxZjJiNTU4MjFjYjNjODViYTI1YWNhMGI0MzA1NDcxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjMyMCw2ICsyMzIwLDggQEAKIAkJNTJGNTJFMTExNEEwMTM0RjAwQUNDMzk3IC8qIE5T
U2Nyb2xsZXJJbXBEZXRhaWxzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTJGNTJFMTAxNEEwMTM0RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRh
aWxzLm1tICovOyB9OwogCQk1MzE3NjEyMjEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJs
ZUJveERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMxNzYxMjAxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAq
LzsgfTsKIAkJNTMxNzYxMjMxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzE3NjEy
MTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MzUxRDRCMDFERjkxNkI0MDA4
MDEwQ0QgLyogRmlsZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzUxRDRBRTFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5jcHAg
Ki87IH07CisJCTUzNTFENEIxMURGOTE2QjQwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzUxRDRBRjFERjkxNkFD
MDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTUzNkQ1QTIwMTkzRTE4RTkwMENFNENBQiAvKiBIVE1MU3Jjc2V0
UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MzZENUExRjE5M0UxOEU5MDBDRTRDQUIgLyogSFRNTFNyY3NldFBhcnNlci5oICovOyB9OwogCQk1
MzZENUEyMTE5M0UxOEVFMDBDRTRDQUIgLyogSFRNTFNyY3NldFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzZENUExRTE5M0UxOEQwMDBD
RTRDQUIgLyogSFRNTFNyY3NldFBhcnNlci5jcHAgKi87IH07CiAJCTUzNkQ1QTIzMTkzRThFMEMw
MENFNENBQiAvKiBQYXJzaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MzZENUEyMjE5M0U4RTBDMDBDRTRDQUIgLyogUGFyc2luZ1V0
aWxpdGllcy5oICovOyB9OwpAQCAtOTU2Niw2ICs5NTY4LDggQEAKIAkJNTJGNTJFMTAxNEEwMTM0
RjAwQUNDMzk3IC8qIE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTlNTY3JvbGxlckltcERldGFpbHMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhp
YmxlQm94RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHls
ZUZsZXhpYmxlQm94RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMTc2
MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUZsZXhpYmxlQm94RGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MzUxRDRBRTFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhhbmRs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlSGFuZGxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTM1MUQ0QUYxREY5MTZBQzAwODAxMENE
IC8qIEZpbGVIYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUhh
bmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzZENUExRTE5M0UxOEQwMDBD
RTRDQUIgLyogSFRNTFNyY3NldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MU3Jjc2V0UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTM2RDVBMUYxOTNFMThFOTAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFNyY3NldFBhcnNlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzZENUEyMjE5M0U4RTBDMDBDRTRDQUIgLyogUGFyc2lu
Z1V0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzaW5nVXRp
bGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjUwOCw2ICsyMjUxMiw4
IEBACiAJCQkJMjYyRUM0MTkxRDA3OEYzRDAwQkE3OEZDIC8qIEV2ZW50VHJhY2tpbmdSZWdpb25z
LmggKi8sCiAJCQkJOTM0RkU5RTQwQjVDQTUzOTAwM0U0QTczIC8qIEZpbGVDaG9vc2VyLmNwcCAq
LywKIAkJCQkwNjZDNzcyQTBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCAqLywKKwkJ
CQk1MzUxRDRBRTFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5jcHAgKi8sCisJCQkJNTM1
MUQ0QUYxREY5MTZBQzAwODAxMENEIC8qIEZpbGVIYW5kbGUuaCAqLywKIAkJCQk0Njg5RjFBRTEy
NjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi8sCiAJCQkJMkVGMUJGRTgxMjFDOUY0
MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uY3BwICovLAogCQkJCTJFRjFCRkU5MTIxQzlGNDIwMEMy
NzYyNyAvKiBGaWxlU3RyZWFtLmggKi8sCkBAIC0yNzM3Miw2ICsyNzM3OCw3IEBACiAJCQkJNTdF
MjMzNjMxREM3REEyNDAwRjI4RDAxIC8qIFJzYU90aGVyUHJpbWVzSW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDdBQjk5NjkxOERBM0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTA3QUI5OTZGMThEQTNDNzQwMDE4NzcxRSAvKiBSVENDb25maWd1
cmF0aW9uUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTM1MUQ0QjExREY5MTZCNDAwODAx
MENEIC8qIEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTFFMTdEMTREMUMw
MDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MUYx
N0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3OEUwOTNDMTdEMTZFMUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjg0MDksNyArMjg0MTYsNyBAQAogCQkJCTM3QTFFQUEzMTQyNjk5
QkMwMDg3RjQyNSAvKiBDaGVjayBGb3IgSW5hcHByb3ByaWF0ZSBPYmplY3RpdmUtQyBDbGFzcyBO
YW1lcyAqLywKIAkJCQk1REY1MDg4NzExNkYzMDc3MDA1MjAyQUIgLyogQ2hlY2sgRm9yIEluYXBw
cm9wcmlhdGUgRmlsZXMgSW4gRnJhbWV3b3JrICovLAogCQkJCTcxRDZBQTM4MURBNEU2OTQwMEIy
Mzk2OSAvKiBDb3B5IG1vZGVybiBtZWRpYSBjb250cm9scyBjb2RlIGFuZCBhc3NldHMgKi8sCi0J
CQkJNTFEMzk0NzcxREYyNDg2NzAwQUJFODc1IC8qIENvcHkgaW50ZXJuYWwgc2NyaXB0cyAqLywK
KwkJCQk1MUQzOTQ3NzFERjI0ODY3MDBBQkU4NzUgLyogQ29weSBJbnRlcm5hbCBTY3JpcHRzICov
LAogCQkJKTsKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwpAQCAtMzE3MjQsNiArMzE3MzEsNyBA
QAogCQkJCTJEMDYyMTQ0MURBNjM5QjYwMEE3RkIyNiAvKiBXZWJLaXRNZWRpYUtleU1lc3NhZ2VF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDA2MjE1MjFEQTYzQUEyMDBBN0ZCMjYgLyog
V2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDA2MjE0
RDFEQTYzQThCMDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTUzNTFENEIwMURGOTE2QjQwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEMDYyMTRGMURBNjNBOTEwMEE3RkIyNiAvKiBXZWJLaXRNZWRpYUtleVNlc3Np
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDc2MTNBNTAxNDc0RjEzRjAwREI4NjA2IC8qIFdl
YktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ4QTZEMDE5MUM5RDY1MDAw
MjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlSGFuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmIxMTU4ZjFmYjY3MDI3OWUzNjY5
YjlmOGViOGQ1OTM2Njg1MDcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZUhhbmRsZS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkZpbGVIYW5kbGUuaCIKKworI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGlv
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRmlsZUhhbmRsZTo6RmlsZUhhbmRsZShjb25z
dCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQorICAgIDogbV9wYXRoKHBhdGgpCisg
ICAgLCBtX21vZGUobW9kZSkKKyAgICAsIG1fZmlsZUhhbmRsZShpbnZhbGlkUGxhdGZvcm1GaWxl
SGFuZGxlKQoreworfQorCitGaWxlSGFuZGxlOjpGaWxlSGFuZGxlKGNvbnN0IEZpbGVIYW5kbGUm
IG90aGVyKQorICAgIDogbV9wYXRoKG90aGVyLm1fcGF0aCkKKyAgICAsIG1fbW9kZShvdGhlci5t
X21vZGUpCisgICAgLCBtX2ZpbGVIYW5kbGUoaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKK3sK
K30KKworRmlsZUhhbmRsZTo6RmlsZUhhbmRsZShGaWxlSGFuZGxlJiYgb3RoZXIpCisgICAgOiBt
X3BhdGgoV1RGTW92ZShvdGhlci5tX3BhdGgpKQorICAgICwgbV9tb2RlKFdURk1vdmUob3RoZXIu
bV9tb2RlKSkKKyAgICAsIG1fZmlsZUhhbmRsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZUhh
bmRsZSwgaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkpCit7Cit9CisKK0ZpbGVIYW5kbGU6On5G
aWxlSGFuZGxlKCkKK3sKKyAgICBjbG9zZSgpOworfQorCitGaWxlSGFuZGxlJiBGaWxlSGFuZGxl
OjpvcGVyYXRvcj0oY29uc3QgRmlsZUhhbmRsZSYgb3RoZXIpCit7CisgICAgaWYgKCZvdGhlciAh
PSB0aGlzKSB7CisgICAgICAgIGNsb3NlKCk7CisgICAgICAgIG1fcGF0aCA9IG90aGVyLm1fcGF0
aDsKKyAgICAgICAgbV9tb2RlID0gb3RoZXIubV9tb2RlOworICAgICAgICBtX2ZpbGVIYW5kbGUg
PSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9
CisKK0ZpbGVIYW5kbGUmIEZpbGVIYW5kbGU6Om9wZXJhdG9yPShGaWxlSGFuZGxlJiYgb3RoZXIp
Cit7CisgICAgY2xvc2UoKTsKKyAgICBtX3BhdGggPSBXVEZNb3ZlKG90aGVyLm1fcGF0aCk7Cisg
ICAgbV9tb2RlID0gV1RGTW92ZShvdGhlci5tX21vZGUpOworICAgIG1fZmlsZUhhbmRsZSA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0ZpbGVIYW5kbGU6Om9wZXJhdG9yIGJvb2woKSBj
b25zdAoreworICAgIHJldHVybiBpc0hhbmRsZVZhbGlkKG1fZmlsZUhhbmRsZSk7Cit9CisKK2Jv
b2wgRmlsZUhhbmRsZTo6b3Blbihjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2Rl
KQoreworICAgIGlmICgqdGhpcyAmJiBwYXRoID09IG1fcGF0aCAmJiBtb2RlID09IG1fbW9kZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjbG9zZSgpOworICAgIG1fcGF0aCA9IHBhdGg7
CisgICAgbV9tb2RlID0gbW9kZTsKKyAgICByZXR1cm4gb3BlbigpOworfQorCitib29sIEZpbGVI
YW5kbGU6Om9wZW4oKQoreworICAgIGlmICghKnRoaXMpCisgICAgICAgIG1fZmlsZUhhbmRsZSA9
IG9wZW5GaWxlKG1fcGF0aCwgbV9tb2RlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4o
KnRoaXMpOworfQorCitpbnQgRmlsZUhhbmRsZTo6cmVhZCh2b2lkKiBkYXRhLCBpbnQgbGVuZ3Ro
KQoreworICAgIGlmICghb3BlbigpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHJl
YWRGcm9tRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgbGVuZ3Ro
KTsKK30KKworaW50IEZpbGVIYW5kbGU6OndyaXRlKGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5n
dGgpCit7CisgICAgaWYgKCFvcGVuKCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4g
d3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSks
IGxlbmd0aCk7Cit9CisKK2Jvb2wgRmlsZUhhbmRsZTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQp
OworCisgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKKyAgICB2YXNwcmludGYoJmJ1ZmZlciwg
Zm9ybWF0LCBhcmdzKTsKKyAgICBhdXRvIHdyaXRlUmVzdWx0ID0gd3JpdGUoYnVmZmVyLCBzdHJs
ZW4oYnVmZmVyKSk7CisgICAgZnJlZShidWZmZXIpOworCisgICAgdmFfZW5kKGFyZ3MpOworCisg
ICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49IDA7Cit9CisKK3ZvaWQgRmlsZUhhbmRsZTo6Y2xvc2Uo
KQoreworICAgIGNsb3NlRmlsZShtX2ZpbGVIYW5kbGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBmYTQ2
YzQwNTFjY2E5ZjQ3M2EzYjA3MTYxNzI3YzgyNjA4OGRjZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuaApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBGaWxlSGFuZGxl
IGZpbmFsIHsKK3B1YmxpYzoKKyAgICBGaWxlSGFuZGxlKCkgPSBkZWZhdWx0OworICAgIEZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUpOworICAgIEZpbGVIYW5kbGUo
Y29uc3QgRmlsZUhhbmRsZSYgb3RoZXIpOworICAgIEZpbGVIYW5kbGUoRmlsZUhhbmRsZSYmIG90
aGVyKTsKKworICAgIH5GaWxlSGFuZGxlKCk7CisKKyAgICBGaWxlSGFuZGxlJiBvcGVyYXRvcj0o
Y29uc3QgRmlsZUhhbmRsZSYgb3RoZXIpOworICAgIEZpbGVIYW5kbGUmIG9wZXJhdG9yPShGaWxl
SGFuZGxlJiYgb3RoZXIpOworCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0Owor
CisgICAgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlKTsKKyAgICBi
b29sIG9wZW4oKTsKKyAgICBpbnQgcmVhZCh2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICBp
bnQgd3JpdGUoY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCk7CisgICAgYm9vbCBwcmludGYo
Y29uc3QgY2hhciogZm9ybWF0LCAuLi4pIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDMpOworICAg
IHZvaWQgY2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9wYXRoOworICAgIEZpbGVP
cGVuTW9kZSBtX21vZGUgeyBPcGVuRm9yUmVhZCB9OworICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBt
X2ZpbGVIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcAppbmRleCA5NTA4YmE3MTNh
YjY0ZTRmODU3NTMxODQ2YzFjMDNlODFiOGJjNWE2Li4zMWYwYTk4ZmNjOGY1MmIxNzNkOTNmZDJl
MWU1YzlhMTEyODgzY2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHAKQEAgLTI4LDcgKzI4
LDYgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBUFRVUkUpCiAKLQogI2luY2x1ZGUgIk5ldHdv
cmtDYXB0dXJlTG9nZ2luZy5oIgogI2luY2x1ZGUgImpzb24uaHBwIgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VFcnJvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaAppbmRleCAwYTc5N2VjOTk3
MTUxZmM3YTk1OTIyNTQ0MjM0NGIxYzRkMjVkYzgwLi43M2IyNDBiMGMyNmNmNjYzMzUxMDdjMWQy
MzA2OWY2M2MzMmZjZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaApAQCAtMjcsNyArMjcsNiBA
QAogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKIAotI2luY2x1ZGUgIk5ldHdvcmtDYXB0
dXJlVHlwZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJl
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdv
cmtDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZmM0ODc0ZTQ2NzQxMzY1MjQ0MDU2NzRjY2YwYWFh
OWYwYzhlYzkwNy4uMGRmODgzYzcwYzdhYmZkZjI5MDFhNWViNGRhM2ZkZmY2MDhmYzdlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDxpdGVyYXRvcj4KICNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5j
bHVkZSA8c3RkYXJnLmg+CiAKICNkZWZpbmUgREVCVUdfQ0xBU1MgTWFuYWdlcgogCkBAIC03Myw2
ICs3Miw5IEBAIHZvaWQgTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIHJlY29yZFJl
cGxheU1vZGUsIGNvbnN0IFN0cmluZyYgcmVjb3JkUmVwCiAgICAgICAgIG1fcmVjb3JkUmVwbGF5
TW9kZSA9IERpc2FibGVkOwogCiAgICAgbV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uID0gV2Vi
Q29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJlY29yZFJlcGxheUNhY2hlTG9jYXRpb24s
IGtEaXJOYW1lUmVjb3JkUmVwbGF5KTsKKyAgICBtX2xvYWRGaWxlSGFuZGxlID0gV2ViQ29yZTo6
RmlsZUhhbmRsZShyZXBvcnRMb2FkUGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOworICAg
IG1fcmVjb3JkRmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVjb3JkUGF0
aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOworICAgIG1fcmVwbGF5RmlsZUhhbmRsZSA9IFdl
YkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVwbGF5UGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3Jp
dGUpOwogCiAgICAgREVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9ICV7cHVibGljfXMiLCBERUJV
R19TVFIobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uKSk7CiAKQEAgLTgyLDkgKzg0LDkgQEAg
dm9pZCBNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgcmVjb3JkUmVwbGF5TW9kZSwg
Y29uc3QgU3RyaW5nJiByZWNvcmRSZXAKIAogdm9pZCBNYW5hZ2VyOjp0ZXJtaW5hdGUoKQogewot
ICAgIG1fbG9hZEZpbGVIYW5kbGUuY2xvc2VGaWxlKCk7Ci0gICAgbV9yZXBsYXlGaWxlSGFuZGxl
LmNsb3NlRmlsZSgpOwotICAgIG1fcmVjb3JkRmlsZUhhbmRsZS5jbG9zZUZpbGUoKTsKKyAgICBt
X2xvYWRGaWxlSGFuZGxlLmNsb3NlKCk7CisgICAgbV9yZWNvcmRGaWxlSGFuZGxlLmNsb3NlKCk7
CisgICAgbV9yZXBsYXlGaWxlSGFuZGxlLmNsb3NlKCk7CiB9CiAKIFJlc291cmNlKiBNYW5hZ2Vy
OjpmaW5kTWF0Y2goY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAt
NDE2LDE4ICs0MTgsMTUgQEAgdm9pZCBNYW5hZ2VyOjpsb2dSZWNvcmRlZFJlc291cmNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBMb2cgbmV0d29y
ayByZXNvdXJjZXMgYXMgdGhleSBhcmUgY2FjaGVkIHRvIGRpc2suCiAKLSAgICBpZiAoZW5zdXJl
RmlsZUhhbmRsZShyZXBvcnRSZWNvcmRQYXRoKCksIG1fcmVjb3JkRmlsZUhhbmRsZSkpIHsKLSAg
ICAgICAgY29uc3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsKLSAgICAgICAgcHJpbnRUb0Zp
bGUobV9yZWNvcmRGaWxlSGFuZGxlLCAiJXMgJXNcbiIsIERFQlVHX1NUUihzdHJpbmdUb0hhc2go
dXJsLnN0cmluZygpKSksIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKLSAgICB9CisgICAgY29u
c3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsKKyAgICBtX3JlY29yZEZpbGVIYW5kbGUucHJp
bnRmKCIlcyAlc1xuIiwgREVCVUdfU1RSKHN0cmluZ1RvSGFzaCh1cmwuc3RyaW5nKCkpKSwgREVC
VUdfU1RSKHVybC5zdHJpbmcoKSkpOwogfQogCiB2b2lkIE1hbmFnZXI6OmxvZ0xvYWRlZFJlc291
cmNlKFJlc291cmNlJiByZXNvdXJjZSkKIHsKICAgICAvLyBMb2cgY2FjaGVkIHJlc291cmNlcyBh
cyB0aGV5IGFyZSBsb2FkZWQgZnJvbSBkaXNrLgogCi0gICAgaWYgKGVuc3VyZUZpbGVIYW5kbGUo
cmVwb3J0TG9hZFBhdGgoKSwgbV9sb2FkRmlsZUhhbmRsZSkpCi0gICAgICAgIHByaW50VG9GaWxl
KG1fbG9hZEZpbGVIYW5kbGUsICIlc1xuIiwgREVCVUdfU1RSKHJlc291cmNlLnVybCgpLnN0cmlu
ZygpKSk7CisgICAgbV9sb2FkRmlsZUhhbmRsZS5wcmludGYoIiVzXG4iLCBERUJVR19TVFIocmVz
b3VyY2UudXJsKCkuc3RyaW5nKCkpKTsKIH0KIAogdm9pZCBNYW5hZ2VyOjpsb2dQbGF5ZWRCYWNr
UmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHdh
c0NhY2hlTWlzcykKQEAgLTQ0MSwyNCArNDQwLDE2IEBAIHZvaWQgTWFuYWdlcjo6bG9nUGxheWVk
QmFja1Jlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
CiAgICAgZWxzZQogICAgICAgICBERUJVR19MT0coIkNhY2hlIGhpdDogIFVSTCA9ICV7cHVibGlj
fXMiLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7CiAKLSAgICBpZiAoZW5zdXJlRmlsZUhhbmRs
ZShyZXBvcnRSZXBsYXlQYXRoKCksIG1fcmVwbGF5RmlsZUhhbmRsZSkpCi0gICAgICAgIHByaW50
VG9GaWxlKG1fcmVwbGF5RmlsZUhhbmRsZSwgIiVzICVzXG4iLCB3YXNDYWNoZU1pc3MgPyAibWlz
cyIgOiAiaGl0ICIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKLX0KLQotYm9vbCBNYW5hZ2Vy
OjplbnN1cmVGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIEZpbGVIYW5kbGUmIGZp
bGVIYW5kbGUpCi17Ci0gICAgaWYgKCFmaWxlSGFuZGxlKQotICAgICAgICBmaWxlSGFuZGxlID0g
b3BlbkNhY2hlRmlsZShmaWxlUGF0aCwgV2ViQ29yZTo6T3BlbkZvcldyaXRlKTsKLSAgICByZXR1
cm4gZmlsZUhhbmRsZTsKKyAgICBtX3JlcGxheUZpbGVIYW5kbGUucHJpbnRmKCIlcyAlc1xuIiwg
d2FzQ2FjaGVNaXNzID8gIm1pc3MiIDogImhpdCAiLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7
CiB9CiAKLUZpbGVIYW5kbGUgTWFuYWdlcjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVQYXRoLCBXZWJDb3JlOjpGaWxlT3Blbk1vZGUgbW9kZSkKK1dlYkNvcmU6OkZpbGVIYW5kbGUg
TWFuYWdlcjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBXZWJDb3JlOjpG
aWxlT3Blbk1vZGUgbW9kZSkKIHsKICAgICAvLyBJZiB3ZSBjYW4gdHJpdmlhbGx5IG9wZW4gdGhl
IGZpbGUsIHRoZW4gZG8gdGhhdCBhbmQgcmV0dXJuIHRoZSBuZXcgZmlsZQogICAgIC8vIGhhbmRs
ZS4KIAotICAgIGF1dG8gZmlsZUhhbmRsZSA9IEZpbGVIYW5kbGU6Om9wZW5GaWxlKGZpbGVQYXRo
LCBtb2RlKTsKLSAgICBpZiAoZmlsZUhhbmRsZSkKKyAgICBhdXRvIGZpbGVIYW5kbGUgPSBXZWJD
b3JlOjpGaWxlSGFuZGxlKGZpbGVQYXRoLCBtb2RlKTsKKyAgICBpZiAoZmlsZUhhbmRsZS5vcGVu
KCkpCiAgICAgICAgIHJldHVybiBmaWxlSGFuZGxlOwogCiAgICAgLy8gSWYgd2UncmUgb3Blbmlu
ZyB0aGUgZmlsZSBmb3Igd3JpdGluZyAoaW5jbHVkaW5nIGFwcGVuZGluZyksIHRoZW4gdHJ5CkBA
IC00NzEsOCArNDYyLDggQEAgRmlsZUhhbmRsZSBNYW5hZ2VyOjpvcGVuQ2FjaGVGaWxlKGNvbnN0
IFN0cmluZyYgZmlsZVBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZQogICAgICAgICAgICAgcmV0
dXJuIGZpbGVIYW5kbGU7CiAgICAgICAgIH0KIAotICAgICAgICBmaWxlSGFuZGxlID0gRmlsZUhh
bmRsZTo6b3BlbkZpbGUoZmlsZVBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZmlsZUhhbmRsZSkK
KyAgICAgICAgZmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUoZmlsZVBhdGgsIG1vZGUp
OworICAgICAgICBpZiAoZmlsZUhhbmRsZS5vcGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gZmls
ZUhhbmRsZTsKICAgICB9CiAKQEAgLTU3OCwyMSArNTY5LDYgQEAgYm9vbCBNYW5hZ2VyOjpnZXRX
b3JkKHVpbnQ4X3QgY29uc3QgKiYgcCwgdWludDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgU3RyaW5n
JiB3b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNYW5hZ2VyOjpwcmludFRvRmlsZShj
b25zdCBGaWxlSGFuZGxlJiBmaWxlSGFuZGxlLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKLXsK
LSAgICB2YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKLQotICAgIGNo
YXIqIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgdmFzcHJpbnRmKCZidWZmZXIsIGZvcm1hdCwgYXJn
cyk7Ci0gICAgYXV0byB3cml0ZVJlc3VsdCA9IGZpbGVIYW5kbGUud3JpdGVUb0ZpbGUoYnVmZmVy
LCBzdHJsZW4oYnVmZmVyKSk7Ci0gICAgZnJlZShidWZmZXIpOwotCi0gICAgdmFfZW5kKGFyZ3Mp
OwotCi0gICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49IDA7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIE5l
dHdvcmtDYXB0dXJlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5h
Z2VyLmgKaW5kZXggMjY5YWUyNGVkOWFlNDZhMWFhMzdjODY5MDNhN2NkMzJkZWFkOWU4OC4uNDUw
YzA2YWM2MDM3YWIyMmQ1ZGFkZTMxZTljODRiMzI3YTMyOGNmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJl
TWFuYWdlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19DQVBUVVJF
KQogCi0jaW5jbHVkZSAiTmV0d29ya0NhcHR1cmVUeXBlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CkBAIC04MCw3
ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ0xvYWRlZFJlc291cmNlKFJlc291cmNlJik7
CiAgICAgdm9pZCBsb2dQbGF5ZWRCYWNrUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgYm9vbCB3YXNDYWNoZU1pc3MpOwogCi0gICAgRmlsZUhhbmRsZSBvcGVuQ2FjaGVG
aWxlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSk7CisgICAgV2ViQ29yZTo6
RmlsZUhhbmRsZSBvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbGVPcGVu
TW9kZSk7CiAKICAgICBTdHJpbmcgcmVxdWVzdFRvUGF0aChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKIApAQCAtMTAxLDE5ICsxMDEsMTYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
c3RyaW5nVG9IYXNoKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBoYXNoVG9QYXRoKGNvbnN0
IFN0cmluZyYgaGFzaCk7CiAKLSAgICBib29sIGVuc3VyZUZpbGVIYW5kbGUoY29uc3QgU3RyaW5n
JiBmaWxlUGF0aCwgRmlsZUhhbmRsZSYpOwotCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VmVj
dG9yPFN0cmluZz4+PiByZWFkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKICAgICBib29s
IGdldExpbmUodWludDhfdCBjb25zdCAqJiBwLCB1aW50OF90IGNvbnN0ICogY29uc3QgZW5kLCBW
ZWN0b3I8U3RyaW5nPiYgbGluZSk7CiAgICAgYm9vbCBnZXRXb3JkKHVpbnQ4X3QgY29uc3QgKiYg
cCwgdWludDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgU3RyaW5nJiB3b3JkKTsKLSAgICBib29sIHBy
aW50VG9GaWxlKGNvbnN0IEZpbGVIYW5kbGUmLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLik7CiAK
ICAgICBSZWNvcmRSZXBsYXlNb2RlIG1fcmVjb3JkUmVwbGF5TW9kZSB7IERpc2FibGVkIH07CiAg
ICAgU3RyaW5nIG1fcmVjb3JkUmVwbGF5Q2FjaGVMb2NhdGlvbjsKIAotICAgIEZpbGVIYW5kbGUg
bV9sb2FkRmlsZUhhbmRsZTsKLSAgICBGaWxlSGFuZGxlIG1fcmVwbGF5RmlsZUhhbmRsZTsKLSAg
ICBGaWxlSGFuZGxlIG1fcmVjb3JkRmlsZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpGaWxlSGFuZGxl
IG1fbG9hZEZpbGVIYW5kbGU7CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBtX3JlY29yZEZpbGVI
YW5kbGU7CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBtX3JlcGxheUZpbGVIYW5kbGU7CiAKICAg
ICBWZWN0b3I8UmVzb3VyY2U+IG1fY2FjaGVkUmVzb3VyY2VzOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0
dXJlUmVjb3JkZXIuY3BwCmluZGV4IGI2YzFjNTJhOTAwMzBkYzg3N2ZiYzgxMzkyMmM1MTJjMGM0
YTk0MDMuLjU5MWViNGZjMjk2ZDIzNmUxZmRlODBiMzk1MDQ2ZmFkODI1M2RjOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVS
ZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9O
ZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CiAKLSNkZWZpbmUgREVCVUdfQ0xBU1MgTWFuYWdlcgorI2RlZmluZSBERUJVR19DTEFTUyBS
ZWNvcmRlcgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZSB7
CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBSZWNvcmRlcjo6d3JpdGVFdmVudHMoKQogICAgICAg
ICAvLyB0byBiZXR0ZXIgZmluZCB0aGUgc2VwYXJhdGUgSlNPTiBvYmplY3RzIHRoYXQgd2Ugd3Jp
dGUgdG8gYSBzaW5nbGUKICAgICAgICAgLy8gZmlsZS4gSXQgYWxzbyB3b3JrcyBiZXR0ZXIgd2l0
aCBKU09OIHBhcnNlcnMgdGhhdCBleHBlY3QgdG8gZmluZCBhCiAgICAgICAgIC8vIE5VTCBhdCB0
aGUgZW5kIG9mIHRoZWlyIGlucHV0LgotICAgICAgICBpZiAoaGFuZGxlLndyaXRlVG9GaWxlKGFz
U3RyaW5nLmNfc3RyKCksIGFzU3RyaW5nLnNpemUoKSArIDEpID09IC0xKSB7CisgICAgICAgIGlm
IChoYW5kbGUud3JpdGUoYXNTdHJpbmcuY19zdHIoKSwgYXNTdHJpbmcuc2l6ZSgpICsgMSkgPT0g
LTEpIHsKICAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgdHJ5aW5nIHRvIHdyaXRl
IHRvIGZpbGUgZm9yIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9pbml0aWFsUmVxdWVz
dC51cmwoKS5zdHJpbmcoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0
dXJlVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29y
a0NhcHR1cmVUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTZjMTY0NWRl
NTc0YWY3ZTZiOGFhMWJhZTk3MTQ5MDljOGEwMjFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkK
LQotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LW5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZSB7Ci0KLWNsYXNzIEZpbGVIYW5kbGUgZmluYWwgewot
cHVibGljOgotICAgIEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Ci0KLSAgICBGaWxlSGFuZGxlKFdl
YkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlKQotICAgICAgICA6IG1fZmlsZUhh
bmRsZShmaWxlSGFuZGxlKSB7IH0KLQotICAgIEZpbGVIYW5kbGUoRmlsZUhhbmRsZSYmIG90aGVy
KQotICAgICAgICA6IG1fZmlsZUhhbmRsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZUhhbmRs
ZSwgV2ViQ29yZTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkpIHsgfQotCi0gICAgfkZpbGVI
YW5kbGUoKQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgfQotCi0gICAgRmlsZUhh
bmRsZSYgb3BlcmF0b3I9KFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlKQot
ICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgICAgIG1fZmlsZUhhbmRsZSA9IGZpbGVI
YW5kbGU7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBGaWxlSGFuZGxlJiBv
cGVyYXRvcj0oRmlsZUhhbmRsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7
Ci0gICAgICAgIG1fZmlsZUhhbmRsZSA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxl
LCBXZWJDb3JlOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKLSAgICAgICAgcmV0dXJuICp0
aGlzOwotICAgIH0KLQotICAgIEZpbGVIYW5kbGUoY29uc3QgRmlsZUhhbmRsZSYpID0gZGVsZXRl
OwotICAgIEZpbGVIYW5kbGUmIG9wZXJhdG9yPShjb25zdCBGaWxlSGFuZGxlJikgPSBkZWxldGU7
Ci0KLSAgICBvcGVyYXRvciBXZWJDb3JlOjpQbGF0Zm9ybUZpbGVIYW5kbGUoKSBjb25zdCB7IHJl
dHVybiBtX2ZpbGVIYW5kbGU7IH0KLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3Qg
eyByZXR1cm4gV2ViQ29yZTo6aXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpOyB9Ci0KLSAgICBz
dGF0aWMgRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZp
bGVPcGVuTW9kZSBtb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEZpbGVIYW5kbGUoV2ViQ29y
ZTo6b3BlbkZpbGUocGF0aCwgbW9kZSkpOwotICAgIH0KLQotICAgIGludCByZWFkRnJvbUZpbGUo
dm9pZCogZGF0YSwgaW50IGxlbmd0aCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJD
b3JlOjpyZWFkRnJvbUZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjaGFyKj4oZGF0YSks
IGxlbmd0aCk7Ci0gICAgfQotCi0gICAgaW50IHdyaXRlVG9GaWxlKGNvbnN0IHZvaWQqIGRhdGEs
IGludCBsZW5ndGgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gV2ViQ29yZTo6d3JpdGVU
b0ZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxlbmd0
aCk7Ci0gICAgfQotCi0gICAgdm9pZCBjbG9zZUZpbGUoKQotICAgIHsKLSAgICAgICAgV2ViQ29y
ZTo6Y2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFdlYkNv
cmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGVIYW5kbGUgeyBXZWJDb3JlOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19DQVBUVVJF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDIyYWI1ZjBkMDZjODQ3NzM3ZDAzMmVkYzZmYWViNDM5MmM2MzgzZTMuLmUxMWZhZjk1
YjM1NTQzZmFjOWRmMGI2OTg2YmY2ZWFkMWQ5ZGIyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNzYsNyArMTA3Niw2IEBA
CiAJCTUzQkE0N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ2MURD
MkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLzsgfTsKIAkJNTNCQTQ3
RDExREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhD
RiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzREVBMzY2MURERTQyMzEwMEU4
MjY0OCAvKiBqc29uLmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLzsgfTsKLQkJNTNF
MjYwNjUxRERBOTQ4RTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRTI2MDY0MUREQTk0ODEwMDU5
MDgxOCAvKiBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggKi87IH07CiAJCTVDMDUyRjI2MUM2RDNCRDMw
MDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDUyRjI0MUM2RDNBQjYwMDc2RTkxOSAv
KiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLzsgfTsKIAkJNUMxNDI2RUMxQzIzRjgw
OTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTQyNkUyMUMyM0Y4MDUw
MEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi87IH07CiAJ
CTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMx
NDI2RTMxQzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggKi87IH07CkBAIC0zMTg0LDcgKzMxODMsNyBAQAogCQk1MkQ1QTFCMzFDNTc0OUYyMDBERTM0
QTMgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFCNDFDNTc0OUYyMDBERTM0QTMgLyogV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzMDI1ODJFMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291
cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtDYXB0
dXJlUmVzb3VyY2UuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2Fw
dHVyZVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTMwMjU4MkYx
RENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrZUNhY2hlZFJlc291cmNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTUzMDI1ODJGMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2Fw
dHVyZVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtD
YXB0dXJlUmVzb3VyY2UuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0Nh
cHR1cmVSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzMDFE
Q0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcDsgcGF0aCA9IE5l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUzMDI1ODMxMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2Fw
dHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDYXB0
dXJlRXZlbnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVF
dmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzMjFEQ0JCRDFEMDBE
QTg5QzIgLyogTmV0d29ya0NhcHR1cmVMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlTG9nZ2luZy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTMyMDMsNyArMzIwMiw2IEBACiAJCTUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBO
ZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ3
MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuaDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuaDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9qc29uLmhwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTNFMjYwNjQxRERBOTQ4
MTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVUeXBlcy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3OUQxOEI3MUNDRkUzNEIwMEIxOTc0QyAvKiBQaG90b3NTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGhvdG9zU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMDUyRjI0MUM2
RDNBQjYwMDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29h
Lm1tOyBwYXRoID0gQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTQyNkUyMUMyM0Y4MDUwMEQ0
MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODY4LDcgKzU4NjYsNiBA
QAogCQkJCTUzMDI1ODM2MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlY29yZGVy
LmggKi8sCiAJCQkJNTMwMjU4MzcxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVw
bGF5ZXIuY3BwICovLAogCQkJCTUzMDI1ODM4MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2Fw
dHVyZVJlcGxheWVyLmggKi8sCi0JCQkJNTNFMjYwNjQxRERBOTQ4MTAwNTkwODE4IC8qIE5ldHdv
cmtDYXB0dXJlVHlwZXMuaCAqLywKIAkJCQk1MzAyNTgzOTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0
d29ya0RhdGFUYXNrUmVwbGF5LmNwcCAqLywKIAkJCQk1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmggKi8sCiAJCQkpOwpAQCAtNzg5Miw3ICs3ODg5LDYg
QEAKIAkJCQk1MzAyNTg0MTFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzAyNTg0MzFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29y
a0NhcHR1cmVSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMwMjU4NDUxRENCQkQyMjAw
REE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUz
RTI2MDY1MUREQTk0OEUwMDU5MDgxOCAvKiBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTNBMTY0RDE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhF
OSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0JDOUI4RTFDNjUyQ0EwMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggaW4g
SGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296547</attachid>
            <date>2016-12-08 12:31:47 -0800</date>
            <delta_ts>2016-12-08 13:14:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165562-20161208123108.patch</filename>
            <type>text/plain</type>
            <size>33032</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWIxNGJmOTJlZDEyMTE4
NjExY2Y3NmYxYjUwMDdhZTY2NGEyYjVkOS4uODBkZjBlMzFkNjU1YzdkY2Y0M2IwNzhkYjA2ZDJh
ZGJjZTZkODBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTEyLTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEZpbGVIYW5kbGUg
dG8gV2ViQ29yZSBGaWxlSGFuZGxlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgQWRkIEZpbGVIYW5kbGUsIGEgc21hbGwgd3JhcHBlciBhcm91bmQg
RmlsZVN5c3RlbSBmYWNpbGl0aWVzIHRvIG1hbmFnZQorICAgICAgICB0aGUgbGlmZXRpbWUgb2Yg
YW4gb3BlbiBmaWxlIGFuZCBnaXZlIHRoZSBmYWNpbGl0aWVzIGEgQysrIGludGVyZmFjZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgLS0gYWZmZWN0ZWQgZmFjaWxpdHkgaXMgY3VycmVudGx5IG9u
bHkgdXNlZCBpbiB0ZXN0aW5nCisgICAgICAgIGNvZGUgYW5kIGlzIG5vdCB1c2VyIHJlYWNoYWJs
ZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWxlSGFuZGxlOjpGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6On5G
aWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6Om9wZXJhdG9yPSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVIYW5kbGU6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6
cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjp3cml0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlSGFuZGxlOjpwcmludGYpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUhhbmRs
ZTo6Y2xvc2UpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVIYW5kbGUuaDogQWRkZWQuCisKIDIw
MTYtMTItMDcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBydW50aW1lIHRvZ2dsZSBmb3IgcG9pbnRlci1sb2NrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDlhYTY3NjY1
M2FiMjA4YzQ2YjU3OGE1MDI0OTcxNjE3ZjM3MzhjMy4uMGJmY2Q4Mzg3NDExZTVlNTljZjg5ZGYx
MDQ4ZGI2NWEzZGRiN2IxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTEyLTA3
ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEZpbGVI
YW5kbGUgdG8gV2ViQ29yZSBGaWxlSGFuZGxlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTW92ZSBGaWxlSGFuZGxlIGZyb20gTmV0d29ya0NhcHR1
cmVUeXBlcy5oICh3aGljaCBjYW4gbm93IGJlIGRlbGV0ZWQpCisgICAgICAgIHRvIFdlYkNvcmUu
IFVwZGF0ZSBjbGllbnQgY29kZSB0byB1c2UgdGhlIG5ldyB2ZXJzaW9uLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OnRlcm1pbmF0ZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2VyOjpsb2dSZWNvcmRlZFJlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ0xvYWRlZFJlc291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ1BsYXll
ZEJhY2tSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2Vy
OjpvcGVuQ2FjaGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFn
ZXI6OmVuc3VyZUZpbGVIYW5kbGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FwdHVyZTo6TWFuYWdlcjo6cHJpbnRUb0ZpbGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0NhcHR1cmU6OlJlY29yZGVyOjp3cml0ZUV2ZW50cyk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmg6IFJlbW92ZWQu
CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE2LTEy
LTA3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgcnVu
dGltZSB0b2dnbGUgZm9yIHBvaW50ZXItbG9jawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhiNGUzMDBjYzQyMTNkMmU3NGU4NzRi
ZTNiMTMzNWY4NjE2MTZkOWYuLjBjOTU2NmZkMWYyYjU1ODIxY2IzYzg1YmEyNWFjYTBiNDMwNTQ3
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzMjAsNiArMjMyMCw4IEBACiAJCTUyRjUyRTExMTRBMDEzNEYwMEFDQzM5NyAv
KiBOU1Njcm9sbGVySW1wRGV0YWlscy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUyRjUyRTEwMTRBMDEzNEYwMEFDQzM5NyAvKiBOU1Njcm9sbGVySW1w
RGV0YWlscy5tbSAqLzsgfTsKIAkJNTMxNzYxMjIxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5j
cHAgKi87IH07CiAJCTUzMTc2MTIzMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMx
NzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTM1MUQ0QjAxREY5MTZC
NDAwODAxMENEIC8qIEZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM1MUQ0QUUxREY5MTZBQzAwODAxMENEIC8qIEZpbGVIYW5kbGUu
Y3BwICovOyB9OworCQk1MzUxRDRCMTFERjkxNkI0MDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM1MUQ0QUYxREY5
MTZBQzAwODAxMENEIC8qIEZpbGVIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MzZENUEyMDE5M0UxOEU5MDBDRTRDQUIgLyogSFRNTFNy
Y3NldFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTM2RDVBMUYxOTNFMThFOTAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuaCAqLzsgfTsK
IAkJNTM2RDVBMjExOTNFMThFRTAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM2RDVBMUUxOTNFMThE
MDAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuY3BwICovOyB9OwogCQk1MzZENUEyMzE5M0U4
RTBDMDBDRTRDQUIgLyogUGFyc2luZ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM2RDVBMjIxOTNFOEUwQzAwQ0U0Q0FCIC8qIFBhcnNp
bmdVdGlsaXRpZXMuaCAqLzsgfTsKQEAgLTk1NjYsNiArOTU2OCw4IEBACiAJCTUyRjUyRTEwMTRB
MDEzNEYwMEFDQzM5NyAvKiBOU1Njcm9sbGVySW1wRGV0YWlscy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TU2Nyb2xsZXJJbXBEZXRhaWxzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MzE3NjEyMDEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVG
bGV4aWJsZUJveERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3R5bGVGbGV4aWJsZUJveERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MzE3NjEyMTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVGbGV4aWJsZUJveERhdGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTM1MUQ0QUUxREY5MTZBQzAwODAxMENEIC8qIEZpbGVI
YW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZUhhbmRs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNTFENEFGMURGOTE2QUMwMDgw
MTBDRCAvKiBGaWxlSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZp
bGVIYW5kbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM2RDVBMUUxOTNFMThE
MDAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSFRNTFNyY3NldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzNkQ1QTFGMTkzRTE4RTkwMENFNENBQiAvKiBIVE1MU3Jjc2V0UGFyc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxTcmNzZXRQYXJzZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTM2RDVBMjIxOTNFOEUwQzAwQ0U0Q0FCIC8qIFBh
cnNpbmdVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2lu
Z1V0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI1MDgsNiArMjI1
MTIsOCBAQAogCQkJCTI2MkVDNDE5MUQwNzhGM0QwMEJBNzhGQyAvKiBFdmVudFRyYWNraW5nUmVn
aW9ucy5oICovLAogCQkJCTkzNEZFOUU0MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5j
cHAgKi8sCiAJCQkJMDY2Qzc3MkEwQUI2MDNCNzAwMjM4Q0M0IC8qIEZpbGVDaG9vc2VyLmggKi8s
CisJCQkJNTM1MUQ0QUUxREY5MTZBQzAwODAxMENEIC8qIEZpbGVIYW5kbGUuY3BwICovLAorCQkJ
CTUzNTFENEFGMURGOTE2QUMwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmggKi8sCiAJCQkJNDY4OUYx
QUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oICovLAogCQkJCTJFRjFCRkU4MTIx
QzlGNDIwMEMyNzYyNyAvKiBGaWxlU3RyZWFtLmNwcCAqLywKIAkJCQkyRUYxQkZFOTEyMUM5RjQy
MDBDMjc2MjcgLyogRmlsZVN0cmVhbS5oICovLApAQCAtMjczNzIsNiArMjczNzgsNyBAQAogCQkJ
CTU3RTIzMzYzMURDN0RBMjQwMEYyOEQwMSAvKiBSc2FPdGhlclByaW1lc0luZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3QUI5OTY5MThEQTNDMDEwMDE4NzcxRSAvKiBSVENDb25maWd1cmF0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FCOTk2RjE4REEzQzc0MDAxODc3MUUgLyogUlRDQ29u
ZmlndXJhdGlvblByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUzNTFENEIxMURGOTE2QjQw
MDgwMTBDRCAvKiBGaWxlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxRTE3RDE0
RDFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5uZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUw
OTFGMTdEMTREMUMwMDQyMEFBMSAvKiBSVENEYXRhQ2hhbm5lbEV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzhFMDkzQzE3RDE2RTFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5uZWxIYW5kbGVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTI4NDA5LDcgKzI4NDE2LDcgQEAKIAkJCQkzN0ExRUFBMzE0
MjY5OUJDMDA4N0Y0MjUgLyogQ2hlY2sgRm9yIEluYXBwcm9wcmlhdGUgT2JqZWN0aXZlLUMgQ2xh
c3MgTmFtZXMgKi8sCiAJCQkJNURGNTA4ODcxMTZGMzA3NzAwNTIwMkFCIC8qIENoZWNrIEZvciBJ
bmFwcHJvcHJpYXRlIEZpbGVzIEluIEZyYW1ld29yayAqLywKIAkJCQk3MUQ2QUEzODFEQTRFNjk0
MDBCMjM5NjkgLyogQ29weSBtb2Rlcm4gbWVkaWEgY29udHJvbHMgY29kZSBhbmQgYXNzZXRzICov
LAotCQkJCTUxRDM5NDc3MURGMjQ4NjcwMEFCRTg3NSAvKiBDb3B5IGludGVybmFsIHNjcmlwdHMg
Ki8sCisJCQkJNTFEMzk0NzcxREYyNDg2NzAwQUJFODc1IC8qIENvcHkgSW50ZXJuYWwgU2NyaXB0
cyAqLywKIAkJCSk7CiAJCQlidWlsZFJ1bGVzID0gKAogCQkJKTsKQEAgLTMxNzI0LDYgKzMxNzMx
LDcgQEAKIAkJCQkyRDA2MjE0NDFEQTYzOUI2MDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlNZXNz
YWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQwNjIxNTIxREE2M0FBMjAwQTdGQjI2
IC8qIFdlYktpdE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQw
NjIxNEQxREE2M0E4QjAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MzUxRDRCMDFERjkxNkI0MDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRDA2MjE0RjFEQTYzQTkxMDBBN0ZCMjYgLyogV2ViS2l0TWVkaWFLZXlT
ZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAv
KiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0OEE2RDAxOTFDOUQ2
NTAwMDI2Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZUhhbmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQzNjczOTU4MGQ3NTM3ZWVl
NjNhNzA0NmEyZjY0OTU4MzU4YjdjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVIYW5kbGUuY3BwCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJGaWxlSGFuZGxlLmgiCisKKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxz
dGRpby5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ZpbGVIYW5kbGU6OkZpbGVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKKyAgICA6IG1fcGF0aChwYXRo
KQorICAgICwgbV9tb2RlKG1vZGUpCit7Cit9CisKK0ZpbGVIYW5kbGU6OkZpbGVIYW5kbGUoRmls
ZUhhbmRsZSYmIG90aGVyKQorICAgIDogbV9wYXRoKFdURk1vdmUob3RoZXIubV9wYXRoKSkKKyAg
ICAsIG1fbW9kZShXVEZNb3ZlKG90aGVyLm1fbW9kZSkpCisgICAgLCBtX2ZpbGVIYW5kbGUoc3Rk
OjpleGNoYW5nZShvdGhlci5tX2ZpbGVIYW5kbGUsIGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUp
KQoreworfQorCitGaWxlSGFuZGxlOjp+RmlsZUhhbmRsZSgpCit7CisgICAgY2xvc2UoKTsKK30K
KworRmlsZUhhbmRsZSYgRmlsZUhhbmRsZTo6b3BlcmF0b3I9KEZpbGVIYW5kbGUmJiBvdGhlcikK
K3sKKyAgICBjbG9zZSgpOworICAgIG1fcGF0aCA9IFdURk1vdmUob3RoZXIubV9wYXRoKTsKKyAg
ICBtX21vZGUgPSBXVEZNb3ZlKG90aGVyLm1fbW9kZSk7CisgICAgbV9maWxlSGFuZGxlID0gc3Rk
OjpleGNoYW5nZShvdGhlci5tX2ZpbGVIYW5kbGUsIGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUp
OworICAgIHJldHVybiAqdGhpczsKK30KKworRmlsZUhhbmRsZTo6b3BlcmF0b3IgYm9vbCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGlzSGFuZGxlVmFsaWQobV9maWxlSGFuZGxlKTsKK30KKworYm9v
bCBGaWxlSGFuZGxlOjpvcGVuKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlIG1vZGUp
Cit7CisgICAgaWYgKCp0aGlzICYmIHBhdGggPT0gbV9wYXRoICYmIG1vZGUgPT0gbV9tb2RlKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNsb3NlKCk7CisgICAgbV9wYXRoID0gcGF0aDsK
KyAgICBtX21vZGUgPSBtb2RlOworICAgIHJldHVybiBvcGVuKCk7Cit9CisKK2Jvb2wgRmlsZUhh
bmRsZTo6b3BlbigpCit7CisgICAgaWYgKCEqdGhpcykKKyAgICAgICAgbV9maWxlSGFuZGxlID0g
b3BlbkZpbGUobV9wYXRoLCBtX21vZGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPigq
dGhpcyk7Cit9CisKK2ludCBGaWxlSGFuZGxlOjpyZWFkKHZvaWQqIGRhdGEsIGludCBsZW5ndGgp
Cit7CisgICAgaWYgKCFvcGVuKCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gcmVh
ZEZyb21GaWxlKG1fZmlsZUhhbmRsZSwgc3RhdGljX2Nhc3Q8Y2hhcio+KGRhdGEpLCBsZW5ndGgp
OworfQorCitpbnQgRmlsZUhhbmRsZTo6d3JpdGUoY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0
aCkKK3sKKyAgICBpZiAoIW9wZW4oKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiB3
cml0ZVRvRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihkYXRhKSwg
bGVuZ3RoKTsKK30KKworYm9vbCBGaWxlSGFuZGxlOjpwcmludGYoY29uc3QgY2hhciogZm9ybWF0
LCAuLi4pCit7CisgICAgdmFfbGlzdCBhcmdzOworICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7
CisKKyAgICBjaGFyKiBidWZmZXIgPSBudWxscHRyOworICAgIHZhc3ByaW50ZigmYnVmZmVyLCBm
b3JtYXQsIGFyZ3MpOworICAgIGF1dG8gd3JpdGVSZXN1bHQgPSB3cml0ZShidWZmZXIsIHN0cmxl
bihidWZmZXIpKTsKKyAgICBmcmVlKGJ1ZmZlcik7CisKKyAgICB2YV9lbmQoYXJncyk7CisKKyAg
ICByZXR1cm4gd3JpdGVSZXN1bHQgPj0gMDsKK30KKwordm9pZCBGaWxlSGFuZGxlOjpjbG9zZSgp
Cit7CisgICAgY2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzYyNDNk
ZTQwZDc3ZWUwNDE2OTA3MTIzNDcwZDM5YjdhZDAwMGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZUhhbmRsZS5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIEZpbGVIYW5kbGUg
ZmluYWwgeworcHVibGljOgorICAgIEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgRmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSk7CisgICAgRmlsZUhhbmRsZShj
b25zdCBGaWxlSGFuZGxlJiBvdGhlcikgPSBkZWxldGU7CisgICAgRmlsZUhhbmRsZShGaWxlSGFu
ZGxlJiYgb3RoZXIpOworCisgICAgfkZpbGVIYW5kbGUoKTsKKworICAgIEZpbGVIYW5kbGUmIG9w
ZXJhdG9yPShjb25zdCBGaWxlSGFuZGxlJiBvdGhlcikgPSBkZWxldGU7CisgICAgRmlsZUhhbmRs
ZSYgb3BlcmF0b3I9KEZpbGVIYW5kbGUmJiBvdGhlcik7CisKKyAgICBleHBsaWNpdCBvcGVyYXRv
ciBib29sKCkgY29uc3Q7CisKKyAgICBib29sIG9wZW4oY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxl
T3Blbk1vZGUpOworICAgIGJvb2wgb3BlbigpOworICAgIGludCByZWFkKHZvaWQqIGRhdGEsIGlu
dCBsZW5ndGgpOworICAgIGludCB3cml0ZShjb25zdCB2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsK
KyAgICBib29sIHByaW50Zihjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikgV1RGX0FUVFJJQlVURV9Q
UklOVEYoMiwgMyk7CisgICAgdm9pZCBjbG9zZSgpOworCitwcml2YXRlOgorICAgIFN0cmluZyBt
X3BhdGg7CisgICAgRmlsZU9wZW5Nb2RlIG1fbW9kZSB7IE9wZW5Gb3JSZWFkIH07CisgICAgUGxh
dGZvcm1GaWxlSGFuZGxlIG1fZmlsZUhhbmRsZSB7IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUg
fTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3Bw
CmluZGV4IDk1MDhiYTcxM2FiNjRlNGY4NTc1MzE4NDZjMWMwM2U4MWI4YmM1YTYuLjMxZjBhOThm
Y2M4ZjUyYjE3M2Q5M2ZkMmUxZTVjOWExMTI4ODNjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50
LmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKIAot
CiAjaW5jbHVkZSAiTmV0d29ya0NhcHR1cmVMb2dnaW5nLmgiCiAjaW5jbHVkZSAianNvbi5ocHAi
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5o
CmluZGV4IDBhNzk3ZWM5OTcxNTFmYzdhOTU5MjI1NDQyMzQ0YjFjNGQyNWRjODAuLjczYjI0MGIw
YzI2Y2Y2NjMzNTEwN2MxZDIzMDY5ZjYzYzMyZmNkZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5o
CkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19DQVBUVVJFKQogCi0jaW5j
bHVkZSAiTmV0d29ya0NhcHR1cmVUeXBlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBmYzQ4NzRlNDY3NDEz
NjUyNDQwNTY3NGNjZjBhYWE5ZjBjOGVjOTA3Li4wZGY4ODNjNzBjN2FiZmRmMjkwMWE1ZWI0ZGEz
ZmRmZjYwOGZjN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zOSw3ICsz
OSw2IEBACiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGl0ZXJhdG9yPgogI2luY2x1
ZGUgPGxpbWl0cz4KLSNpbmNsdWRlIDxzdGRhcmcuaD4KIAogI2RlZmluZSBERUJVR19DTEFTUyBN
YW5hZ2VyCiAKQEAgLTczLDYgKzcyLDkgQEAgdm9pZCBNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0
IFN0cmluZyYgcmVjb3JkUmVwbGF5TW9kZSwgY29uc3QgU3RyaW5nJiByZWNvcmRSZXAKICAgICAg
ICAgbV9yZWNvcmRSZXBsYXlNb2RlID0gRGlzYWJsZWQ7CiAKICAgICBtX3JlY29yZFJlcGxheUNh
Y2hlTG9jYXRpb24gPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocmVjb3JkUmVw
bGF5Q2FjaGVMb2NhdGlvbiwga0Rpck5hbWVSZWNvcmRSZXBsYXkpOworICAgIG1fbG9hZEZpbGVI
YW5kbGUgPSBXZWJDb3JlOjpGaWxlSGFuZGxlKHJlcG9ydExvYWRQYXRoKCksIFdlYkNvcmU6Ok9w
ZW5Gb3JXcml0ZSk7CisgICAgbV9yZWNvcmRGaWxlSGFuZGxlID0gV2ViQ29yZTo6RmlsZUhhbmRs
ZShyZXBvcnRSZWNvcmRQYXRoKCksIFdlYkNvcmU6Ok9wZW5Gb3JXcml0ZSk7CisgICAgbV9yZXBs
YXlGaWxlSGFuZGxlID0gV2ViQ29yZTo6RmlsZUhhbmRsZShyZXBvcnRSZXBsYXlQYXRoKCksIFdl
YkNvcmU6Ok9wZW5Gb3JXcml0ZSk7CiAKICAgICBERUJVR19MT0coIkNhY2hlIGxvY2F0aW9uID0g
JXtwdWJsaWN9cyIsIERFQlVHX1NUUihtX3JlY29yZFJlcGxheUNhY2hlTG9jYXRpb24pKTsKIApA
QCAtODIsOSArODQsOSBAQCB2b2lkIE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBy
ZWNvcmRSZXBsYXlNb2RlLCBjb25zdCBTdHJpbmcmIHJlY29yZFJlcAogCiB2b2lkIE1hbmFnZXI6
OnRlcm1pbmF0ZSgpCiB7Ci0gICAgbV9sb2FkRmlsZUhhbmRsZS5jbG9zZUZpbGUoKTsKLSAgICBt
X3JlcGxheUZpbGVIYW5kbGUuY2xvc2VGaWxlKCk7Ci0gICAgbV9yZWNvcmRGaWxlSGFuZGxlLmNs
b3NlRmlsZSgpOworICAgIG1fbG9hZEZpbGVIYW5kbGUuY2xvc2UoKTsKKyAgICBtX3JlY29yZEZp
bGVIYW5kbGUuY2xvc2UoKTsKKyAgICBtX3JlcGxheUZpbGVIYW5kbGUuY2xvc2UoKTsKIH0KIAog
UmVzb3VyY2UqIE1hbmFnZXI6OmZpbmRNYXRjaChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpCkBAIC00MTYsMTggKzQxOCwxNSBAQCB2b2lkIE1hbmFnZXI6OmxvZ1JlY29y
ZGVkUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewog
ICAgIC8vIExvZyBuZXR3b3JrIHJlc291cmNlcyBhcyB0aGV5IGFyZSBjYWNoZWQgdG8gZGlzay4K
IAotICAgIGlmIChlbnN1cmVGaWxlSGFuZGxlKHJlcG9ydFJlY29yZFBhdGgoKSwgbV9yZWNvcmRG
aWxlSGFuZGxlKSkgewotICAgICAgICBjb25zdCBhdXRvJiB1cmwgPSByZXF1ZXN0LnVybCgpOwot
ICAgICAgICBwcmludFRvRmlsZShtX3JlY29yZEZpbGVIYW5kbGUsICIlcyAlc1xuIiwgREVCVUdf
U1RSKHN0cmluZ1RvSGFzaCh1cmwuc3RyaW5nKCkpKSwgREVCVUdfU1RSKHVybC5zdHJpbmcoKSkp
OwotICAgIH0KKyAgICBjb25zdCBhdXRvJiB1cmwgPSByZXF1ZXN0LnVybCgpOworICAgIG1fcmVj
b3JkRmlsZUhhbmRsZS5wcmludGYoIiVzICVzXG4iLCBERUJVR19TVFIoc3RyaW5nVG9IYXNoKHVy
bC5zdHJpbmcoKSkpLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7CiB9CiAKIHZvaWQgTWFuYWdl
cjo6bG9nTG9hZGVkUmVzb3VyY2UoUmVzb3VyY2UmIHJlc291cmNlKQogewogICAgIC8vIExvZyBj
YWNoZWQgcmVzb3VyY2VzIGFzIHRoZXkgYXJlIGxvYWRlZCBmcm9tIGRpc2suCiAKLSAgICBpZiAo
ZW5zdXJlRmlsZUhhbmRsZShyZXBvcnRMb2FkUGF0aCgpLCBtX2xvYWRGaWxlSGFuZGxlKSkKLSAg
ICAgICAgcHJpbnRUb0ZpbGUobV9sb2FkRmlsZUhhbmRsZSwgIiVzXG4iLCBERUJVR19TVFIocmVz
b3VyY2UudXJsKCkuc3RyaW5nKCkpKTsKKyAgICBtX2xvYWRGaWxlSGFuZGxlLnByaW50ZigiJXNc
biIsIERFQlVHX1NUUihyZXNvdXJjZS51cmwoKS5zdHJpbmcoKSkpOwogfQogCiB2b2lkIE1hbmFn
ZXI6OmxvZ1BsYXllZEJhY2tSZXNvdXJjZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgd2FzQ2FjaGVNaXNzKQpAQCAtNDQxLDI0ICs0NDAsMTYgQEAgdm9pZCBN
YW5hZ2VyOjpsb2dQbGF5ZWRCYWNrUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBib28KICAgICBlbHNlCiAgICAgICAgIERFQlVHX0xPRygiQ2FjaGUgaGl0
OiAgVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKIAotICAgIGlm
IChlbnN1cmVGaWxlSGFuZGxlKHJlcG9ydFJlcGxheVBhdGgoKSwgbV9yZXBsYXlGaWxlSGFuZGxl
KSkKLSAgICAgICAgcHJpbnRUb0ZpbGUobV9yZXBsYXlGaWxlSGFuZGxlLCAiJXMgJXNcbiIsIHdh
c0NhY2hlTWlzcyA/ICJtaXNzIiA6ICJoaXQgIiwgREVCVUdfU1RSKHVybC5zdHJpbmcoKSkpOwot
fQotCi1ib29sIE1hbmFnZXI6OmVuc3VyZUZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0
aCwgRmlsZUhhbmRsZSYgZmlsZUhhbmRsZSkKLXsKLSAgICBpZiAoIWZpbGVIYW5kbGUpCi0gICAg
ICAgIGZpbGVIYW5kbGUgPSBvcGVuQ2FjaGVGaWxlKGZpbGVQYXRoLCBXZWJDb3JlOjpPcGVuRm9y
V3JpdGUpOwotICAgIHJldHVybiBmaWxlSGFuZGxlOworICAgIG1fcmVwbGF5RmlsZUhhbmRsZS5w
cmludGYoIiVzICVzXG4iLCB3YXNDYWNoZU1pc3MgPyAibWlzcyIgOiAiaGl0ICIsIERFQlVHX1NU
Uih1cmwuc3RyaW5nKCkpKTsKIH0KIAotRmlsZUhhbmRsZSBNYW5hZ2VyOjpvcGVuQ2FjaGVGaWxl
KGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSBtb2RlKQorV2Vi
Q29yZTo6RmlsZUhhbmRsZSBNYW5hZ2VyOjpvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYgZmls
ZVBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSBtb2RlKQogewogICAgIC8vIElmIHdlIGNhbiB0
cml2aWFsbHkgb3BlbiB0aGUgZmlsZSwgdGhlbiBkbyB0aGF0IGFuZCByZXR1cm4gdGhlIG5ldyBm
aWxlCiAgICAgLy8gaGFuZGxlLgogCi0gICAgYXV0byBmaWxlSGFuZGxlID0gRmlsZUhhbmRsZTo6
b3BlbkZpbGUoZmlsZVBhdGgsIG1vZGUpOwotICAgIGlmIChmaWxlSGFuZGxlKQorICAgIGF1dG8g
ZmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUoZmlsZVBhdGgsIG1vZGUpOworICAgIGlm
IChmaWxlSGFuZGxlLm9wZW4oKSkKICAgICAgICAgcmV0dXJuIGZpbGVIYW5kbGU7CiAKICAgICAv
LyBJZiB3ZSdyZSBvcGVuaW5nIHRoZSBmaWxlIGZvciB3cml0aW5nIChpbmNsdWRpbmcgYXBwZW5k
aW5nKSwgdGhlbiB0cnkKQEAgLTQ3MSw4ICs0NjIsOCBAQCBGaWxlSGFuZGxlIE1hbmFnZXI6Om9w
ZW5DYWNoZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgV2ViQ29yZTo6RmlsZU9wZW5Nb2Rl
CiAgICAgICAgICAgICByZXR1cm4gZmlsZUhhbmRsZTsKICAgICAgICAgfQogCi0gICAgICAgIGZp
bGVIYW5kbGUgPSBGaWxlSGFuZGxlOjpvcGVuRmlsZShmaWxlUGF0aCwgbW9kZSk7Ci0gICAgICAg
IGlmIChmaWxlSGFuZGxlKQorICAgICAgICBmaWxlSGFuZGxlID0gV2ViQ29yZTo6RmlsZUhhbmRs
ZShmaWxlUGF0aCwgbW9kZSk7CisgICAgICAgIGlmIChmaWxlSGFuZGxlLm9wZW4oKSkKICAgICAg
ICAgICAgIHJldHVybiBmaWxlSGFuZGxlOwogICAgIH0KIApAQCAtNTc4LDIxICs1NjksNiBAQCBi
b29sIE1hbmFnZXI6OmdldFdvcmQodWludDhfdCBjb25zdCAqJiBwLCB1aW50OF90IGNvbnN0ICog
Y29uc3QgZW5kLCBTdHJpbmcmIHdvcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1hbmFn
ZXI6OnByaW50VG9GaWxlKGNvbnN0IEZpbGVIYW5kbGUmIGZpbGVIYW5kbGUsIGNvbnN0IGNoYXIq
IGZvcm1hdCwgLi4uKQotewotICAgIHZhX2xpc3QgYXJnczsKLSAgICB2YV9zdGFydChhcmdzLCBm
b3JtYXQpOwotCi0gICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKLSAgICB2YXNwcmludGYoJmJ1
ZmZlciwgZm9ybWF0LCBhcmdzKTsKLSAgICBhdXRvIHdyaXRlUmVzdWx0ID0gZmlsZUhhbmRsZS53
cml0ZVRvRmlsZShidWZmZXIsIHN0cmxlbihidWZmZXIpKTsKLSAgICBmcmVlKGJ1ZmZlcik7Ci0K
LSAgICB2YV9lbmQoYXJncyk7Ci0KLSAgICByZXR1cm4gd3JpdGVSZXN1bHQgPj0gMDsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgTmV0d29ya0NhcHR1cmUKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtD
YXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9O
ZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaAppbmRleCAyNjlhZTI0ZWQ5YWU0NmExYWEzN2M4NjkwM2E3
Y2QzMmRlYWQ5ZTg4Li40NTBjMDZhYzYwMzdhYjIyZDVkYWRlMzFlOWM4NGIzMjdhMzI4Y2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtD
YXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShORVRXT1JLX0NBUFRVUkUpCiAKLSNpbmNsdWRlICJOZXR3b3JrQ2FwdHVyZVR5cGVzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9nTG9hZGVkUmVz
b3VyY2UoUmVzb3VyY2UmKTsKICAgICB2b2lkIGxvZ1BsYXllZEJhY2tSZXNvdXJjZShjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIHdhc0NhY2hlTWlzcyk7CiAKLSAgICBGaWxl
SGFuZGxlIG9wZW5DYWNoZUZpbGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6RmlsZU9wZW5Nb2Rl
KTsKKyAgICBXZWJDb3JlOjpGaWxlSGFuZGxlIG9wZW5DYWNoZUZpbGUoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6RmlsZU9wZW5Nb2RlKTsKIAogICAgIFN0cmluZyByZXF1ZXN0VG9QYXRoKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCkBAIC0xMDEsMTkgKzEwMSwxNiBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBzdHJpbmdUb0hhc2goY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5n
IGhhc2hUb1BhdGgoY29uc3QgU3RyaW5nJiBoYXNoKTsKIAotICAgIGJvb2wgZW5zdXJlRmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBGaWxlSGFuZGxlJik7Ci0KICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4+IHJlYWRGaWxlKGNvbnN0IFN0cmluZyYgZmls
ZVBhdGgpOwogICAgIGJvb2wgZ2V0TGluZSh1aW50OF90IGNvbnN0IComIHAsIHVpbnQ4X3QgY29u
c3QgKiBjb25zdCBlbmQsIFZlY3RvcjxTdHJpbmc+JiBsaW5lKTsKICAgICBib29sIGdldFdvcmQo
dWludDhfdCBjb25zdCAqJiBwLCB1aW50OF90IGNvbnN0ICogY29uc3QgZW5kLCBTdHJpbmcmIHdv
cmQpOwotICAgIGJvb2wgcHJpbnRUb0ZpbGUoY29uc3QgRmlsZUhhbmRsZSYsIGNvbnN0IGNoYXIq
IGZvcm1hdCwgLi4uKTsKIAogICAgIFJlY29yZFJlcGxheU1vZGUgbV9yZWNvcmRSZXBsYXlNb2Rl
IHsgRGlzYWJsZWQgfTsKICAgICBTdHJpbmcgbV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uOwog
Ci0gICAgRmlsZUhhbmRsZSBtX2xvYWRGaWxlSGFuZGxlOwotICAgIEZpbGVIYW5kbGUgbV9yZXBs
YXlGaWxlSGFuZGxlOwotICAgIEZpbGVIYW5kbGUgbV9yZWNvcmRGaWxlSGFuZGxlOworICAgIFdl
YkNvcmU6OkZpbGVIYW5kbGUgbV9sb2FkRmlsZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpGaWxlSGFu
ZGxlIG1fcmVjb3JkRmlsZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpGaWxlSGFuZGxlIG1fcmVwbGF5
RmlsZUhhbmRsZTsKIAogICAgIFZlY3RvcjxSZXNvdXJjZT4gbV9jYWNoZWRSZXNvdXJjZXM7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3
b3JrQ2FwdHVyZVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
cHR1cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRlci5jcHAKaW5kZXggYjZjMWM1MmE5MDAzMGRjODc3
ZmJjODEzOTIyYzUxMmMwYzRhOTQwMy4uNTkxZWI0ZmMyOTZkMjM2ZTFmZGU4MGIzOTUwNDZmYWQ4
MjUzZGM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWRCdWZmZXIuaD4KIAotI2RlZmluZSBERUJVR19DTEFTUyBNYW5hZ2VyCisjZGVm
aW5lIERFQlVHX0NMQVNTIFJlY29yZGVyCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogbmFtZXNwYWNl
IE5ldHdvcmtDYXB0dXJlIHsKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIFJlY29yZGVyOjp3cml0
ZUV2ZW50cygpCiAgICAgICAgIC8vIHRvIGJldHRlciBmaW5kIHRoZSBzZXBhcmF0ZSBKU09OIG9i
amVjdHMgdGhhdCB3ZSB3cml0ZSB0byBhIHNpbmdsZQogICAgICAgICAvLyBmaWxlLiBJdCBhbHNv
IHdvcmtzIGJldHRlciB3aXRoIEpTT04gcGFyc2VycyB0aGF0IGV4cGVjdCB0byBmaW5kIGEKICAg
ICAgICAgLy8gTlVMIGF0IHRoZSBlbmQgb2YgdGhlaXIgaW5wdXQuCi0gICAgICAgIGlmIChoYW5k
bGUud3JpdGVUb0ZpbGUoYXNTdHJpbmcuY19zdHIoKSwgYXNTdHJpbmcuc2l6ZSgpICsgMSkgPT0g
LTEpIHsKKyAgICAgICAgaWYgKGhhbmRsZS53cml0ZShhc1N0cmluZy5jX3N0cigpLCBhc1N0cmlu
Zy5zaXplKCkgKyAxKSA9PSAtMSkgewogICAgICAgICAgICAgREVCVUdfTE9HX0VSUk9SKCJFcnJv
ciB0cnlpbmcgdG8gd3JpdGUgdG8gZmlsZSBmb3IgVVJMID0gJXtwdWJsaWN9cyIsIERFQlVHX1NU
UihtX2luaXRpYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2Nh
cHR1cmUvTmV0d29ya0NhcHR1cmVUeXBlcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM5NmMxNjQ1ZGU1NzRhZjdlNmI4YWExYmFlOTcxNDkwOWM4YTAyMWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
TkVUV09SS19DQVBUVVJFKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotbmFtZXNwYWNlIE5ldHdvcmtDYXB0dXJlIHsKLQotY2xhc3MgRmls
ZUhhbmRsZSBmaW5hbCB7Ci1wdWJsaWM6Ci0gICAgRmlsZUhhbmRsZSgpID0gZGVmYXVsdDsKLQot
ICAgIEZpbGVIYW5kbGUoV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGUpCi0g
ICAgICAgIDogbV9maWxlSGFuZGxlKGZpbGVIYW5kbGUpIHsgfQotCi0gICAgRmlsZUhhbmRsZShG
aWxlSGFuZGxlJiYgb3RoZXIpCi0gICAgICAgIDogbV9maWxlSGFuZGxlKHN0ZDo6ZXhjaGFuZ2Uo
b3RoZXIubV9maWxlSGFuZGxlLCBXZWJDb3JlOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSkg
eyB9Ci0KLSAgICB+RmlsZUhhbmRsZSgpCi0gICAgewotICAgICAgICBjbG9zZUZpbGUoKTsKLSAg
ICB9Ci0KLSAgICBGaWxlSGFuZGxlJiBvcGVyYXRvcj0oV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFu
ZGxlIGZpbGVIYW5kbGUpCi0gICAgewotICAgICAgICBjbG9zZUZpbGUoKTsKLSAgICAgICAgbV9m
aWxlSGFuZGxlID0gZmlsZUhhbmRsZTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQot
ICAgIEZpbGVIYW5kbGUmIG9wZXJhdG9yPShGaWxlSGFuZGxlJiYgb3RoZXIpCi0gICAgewotICAg
ICAgICBjbG9zZUZpbGUoKTsKLSAgICAgICAgbV9maWxlSGFuZGxlID0gc3RkOjpleGNoYW5nZShv
dGhlci5tX2ZpbGVIYW5kbGUsIFdlYkNvcmU6OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOwot
ICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgRmlsZUhhbmRsZShjb25zdCBGaWxl
SGFuZGxlJikgPSBkZWxldGU7Ci0gICAgRmlsZUhhbmRsZSYgb3BlcmF0b3I9KGNvbnN0IEZpbGVI
YW5kbGUmKSA9IGRlbGV0ZTsKLQotICAgIG9wZXJhdG9yIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhh
bmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUhhbmRsZTsgfQotICAgIGV4cGxpY2l0IG9wZXJh
dG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBXZWJDb3JlOjppc0hhbmRsZVZhbGlkKG1fZmlsZUhh
bmRsZSk7IH0KLQotICAgIHN0YXRpYyBGaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCwgV2ViQ29yZTo6RmlsZU9wZW5Nb2RlIG1vZGUpCi0gICAgewotICAgICAgICByZXR1cm4g
RmlsZUhhbmRsZShXZWJDb3JlOjpvcGVuRmlsZShwYXRoLCBtb2RlKSk7Ci0gICAgfQotCi0gICAg
aW50IHJlYWRGcm9tRmlsZSh2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIFdlYkNvcmU6OnJlYWRGcm9tRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19j
YXN0PGNoYXIqPihkYXRhKSwgbGVuZ3RoKTsKLSAgICB9Ci0KLSAgICBpbnQgd3JpdGVUb0ZpbGUo
Y29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBXZWJDb3JlOjp3cml0ZVRvRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihkYXRhKSwgbGVuZ3RoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNsb3NlRmlsZSgpCi0gICAg
ewotICAgICAgICBXZWJDb3JlOjpjbG9zZUZpbGUobV9maWxlSGFuZGxlKTsKLSAgICB9Ci0KLXBy
aXZhdGU6Ci0gICAgV2ViQ29yZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZUhhbmRsZSB7IFdl
YkNvcmU6OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IE5ldHdvcmtDYXB0dXJlCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJM
RShORVRXT1JLX0NBUFRVUkUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjJhYjVmMGQwNmM4NDc3MzdkMDMyZWRjNmZhZWI0Mzky
YzYzODNlMy4uZTExZmFmOTViMzU1NDNmYWM5ZGYwYjY5ODZiZjZlYWQxZDlkYjJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTA3Niw3ICsxMDc2LDYgQEAKIAkJNTNCQTQ3RDAxREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtE
YXRhVGFza0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTM5RUI1NDYxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3Bw
ICovOyB9OwogCQk1M0JBNDdEMTFEQzJFRjVFMDA0REY0QUQgLyogTmV0d29ya0RhdGFUYXNrQmxv
Yi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTM5RUI1
NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCAqLzsgfTsKIAkJNTNE
RUEzNjYxRERFNDIzMTAwRTgyNjQ4IC8qIGpzb24uaHBwIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24u
aHBwICovOyB9OwotCQk1M0UyNjA2NTFEREE5NDhFMDA1OTA4MTggLyogTmV0d29ya0NhcHR1cmVU
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNF
MjYwNjQxRERBOTQ4MTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCAqLzsgfTsKIAkJ
NUMwNTJGMjYxQzZEM0JEMzAwNzZFOTE5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwNTJGMjQx
QzZEM0FCNjAwNzZFOTE5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29hLm1tICovOyB9Owog
CQk1QzE0MjZFQzFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUMxNDI2RTIxQzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcCAqLzsgfTsKIAkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzE0MjZFMzFDMjNGODA1MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKQEAgLTMxODQsNyArMzE4Myw3IEBACiAJCTUyRDVB
MUIzMUM1NzQ5RjIwMERFMzRBMyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUI0MUM1NzQ5RjIw
MERFMzRBMyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4MkUxRENCQkQxRDAwREE4OUMyIC8qIE5l
dHdvcmtDYXB0dXJlUmVzb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1MzAyNTgyRjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXNvdXJj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZVJlc291
cmNlLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtlQ2FjaGVkUmVzb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTMwMjU4MkYxRENCQkQxRDAwREE4
OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzMDI1ODMwMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlRXZl
bnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMwMjU4MzExRENCQkQxRDAwREE4
OUMyIC8qIE5ldHdvcmtDYXB0dXJlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTmV0d29ya0NhcHR1cmVFdmVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUz
MDI1ODMyMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVMb2dnaW5nLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTG9nZ2luZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzIwMyw3ICszMjAyLDYgQEAKIAkJNTM5RUI1NDYxREMy
RUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2tCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTM5RUI1NDcxREMyRUU0MDAwOUQ0OENGIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0RhdGFUYXNrQmxvYi5o
OyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1M0RFQTM2NTFEREU0MjJFMDBFODI2NDggLyoganNvbi5ocHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBuYW1lID0ganNvbi5ocHA7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9jYXB0dXJlL2pzb24uaHBwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1M0UyNjA2NDFEREE5NDgxMDA1OTA4MTggLyogTmV0d29ya0NhcHR1cmVUeXBlcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZVR5cGVzLmg7IHBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5RDE4QjcxQ0NGRTM0QjAwQjE5NzRDIC8qIFBob3Rvc1NQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQaG90b3NTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUMwNTJGMjQxQzZEM0FCNjAwNzZFOTE5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlckNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQXV0aGVudGlj
YXRpb25NYW5hZ2VyQ29jb2EubW07IHBhdGggPSBBdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50
aWNhdGlvbk1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMx
NDI2RTIxQzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTU4NjgsNyArNTg2Niw2IEBACiAJCQkJNTMwMjU4MzYxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdv
cmtDYXB0dXJlUmVjb3JkZXIuaCAqLywKIAkJCQk1MzAyNTgzNzFEQ0JCRDFEMDBEQTg5QzIgLyog
TmV0d29ya0NhcHR1cmVSZXBsYXllci5jcHAgKi8sCiAJCQkJNTMwMjU4MzgxRENCQkQxRDAwREE4
OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCAqLywKLQkJCQk1M0UyNjA2NDFEREE5NDgx
MDA1OTA4MTggLyogTmV0d29ya0NhcHR1cmVUeXBlcy5oICovLAogCQkJCTUzMDI1ODM5MURDQkJE
MUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuY3BwICovLAogCQkJCTUzMDI1ODNB
MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrRGF0YVRhc2tSZXBsYXkuaCAqLywKIAkJCSk7CkBA
IC03ODkyLDcgKzc4ODksNiBAQAogCQkJCTUzMDI1ODQxMURDQkJEMjIwMERBODlDMiAvKiBOZXR3
b3JrQ2FwdHVyZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUzMDI1ODQzMURDQkJEMjIw
MERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MzAyNTg0NTFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZXBsYXllci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTNFMjYwNjUxRERBOTQ4RTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJl
VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFERDlG
MjkxNjM2N0RBMjAwMTU3OEU5IC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQkM5QjhFMUM2NTJDQTAwMEE4RkRDRiAvKiBOZXR3
b3JrRGF0YVRhc2suaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296555</attachid>
            <date>2016-12-08 13:14:52 -0800</date>
            <delta_ts>2016-12-08 13:50:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165562-20161208131414.patch</filename>
            <type>text/plain</type>
            <size>33147</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlMzQyNjQ2MzExYWY4
MjBhNzQyMDEyMTgxMDFlZjRiMTVjOGVhNC4uOTFlZGVlMTQ4NTFjNDI2ZGMwYmFhZjdiYTM4NDk3
ZWU5OWU5MDZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTEyLTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEZpbGVIYW5kbGUg
dG8gV2ViQ29yZSBGaWxlSGFuZGxlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgQWRkIEZpbGVIYW5kbGUsIGEgc21hbGwgd3JhcHBlciBhcm91bmQg
RmlsZVN5c3RlbSBmYWNpbGl0aWVzIHRvIG1hbmFnZQorICAgICAgICB0aGUgbGlmZXRpbWUgb2Yg
YW4gb3BlbiBmaWxlIGFuZCBnaXZlIHRoZSBmYWNpbGl0aWVzIGEgQysrIGludGVyZmFjZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgLS0gYWZmZWN0ZWQgZmFjaWxpdHkgaXMgY3VycmVudGx5IG9u
bHkgdXNlZCBpbiB0ZXN0aW5nCisgICAgICAgIGNvZGUgYW5kIGlzIG5vdCB1c2VyIHJlYWNoYWJs
ZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpGaWxlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6On5GaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVIYW5kbGU6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpv
cGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6Om9wZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
SGFuZGxlOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpwcmludGYpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVIYW5kbGUuaDogQWRkZWQuCisKIDIwMTYtMTItMDggIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgogCiAgICAgICAgIHBvaW50ZXIgbG9jayBzaG91bGQgZXhpdCB3aGVuIGEg
anMgYWxlcnQgaXMgc2hvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MWYxYTBiNGM5OTcxNGViODM0ODA5ZGIy
OWRjZjg1Y2U0NjZiZDg1Li5lYjRlZTExYzZkODY3M2FlN2Q0NDgwOGEzMmE2ZmRiMzgwNTg4ZmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTYtMTItMDcgIEtlaXRoIFJvbGxpbiAg
PGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgRmlsZUhhbmRsZSB0byBXZWJDb3Jl
IEZpbGVIYW5kbGUuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY1NTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBNb3ZlIEZpbGVIYW5kbGUgZnJvbSBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggKHdoaWNo
IGNhbiBub3cgYmUgZGVsZXRlZCkKKyAgICAgICAgdG8gV2ViQ29yZS4gVXBkYXRlIGNsaWVudCBj
b2RlIHRvIHVzZSB0aGUgbmV3IHZlcnNpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ2FwdHVyZTo6TWFuYWdlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ1JlY29yZGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nTG9hZGVkUmVzb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nUGxheWVkQmFja1Jlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Om9wZW5DYWNoZUZpbGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6ZW5zdXJlRmlsZUhh
bmRsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2Vy
OjpwcmludFRvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FwdHVyZTo6UmVjb3JkZXI6OndyaXRlRXZlbnRzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMDggIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNhbHQgbmV0d29yayBjYWNoZSBoYXNo
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGM4Njc2NjgzN2YyY2VhZWViZjc0ZDMyNDdiMTc0
OTFhNWQyNjU0Yy4uZjAzMzFjZTU2YWNhZjIwY2ExMmJmNzNjOWE0OTJiMmU0YjVjMjY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNDIsNiArMjE0Miw3IEBAIHNldChXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisgICAgcGxhdGZvcm0v
RmlsZUhhbmRsZS5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwCiAgICAgcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
YTBhM2QwZGM0YTE1OWFmZmVhODBjZDQ5ZWM4MjZmNGIwYjFiYjA2Li44M2NiOTI1ZmEyN2Y1ZjA1
ZjdlYTI1YzIzOTA0Nzk2NDFkMzhkOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzIwLDYgKzIzMjAsOCBAQAogCQk1MkY1
MkUxMTE0QTAxMzRGMDBBQ0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkY1MkUxMDE0QTAxMzRGMDBB
Q0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gKi87IH07CiAJCTUzMTc2MTIyMTNDNTE2
NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzE3NjEyMDEzQzUxNjY5MDAyNkU0NTQgLyog
U3R5bGVGbGV4aWJsZUJveERhdGEuY3BwICovOyB9OwogCQk1MzE3NjEyMzEzQzUxNjY5MDAyNkU0
NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhp
YmxlQm94RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTUzNTFENEIwMURGOTE2QjQwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTFENEFFMURGOTE2QUMw
MDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCAqLzsgfTsKKwkJNTM1MUQ0QjExREY5MTZCNDAwODAx
MENEIC8qIEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzNTFENEFGMURGOTE2QUMwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTM2RDVBMjAxOTNF
MThFOTAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNkQ1QTFGMTkzRTE4RTkwMENFNENBQiAvKiBIVE1M
U3Jjc2V0UGFyc2VyLmggKi87IH07CiAJCTUzNkQ1QTIxMTkzRTE4RUUwMENFNENBQiAvKiBIVE1M
U3Jjc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzNkQ1QTFFMTkzRTE4RDAwMENFNENBQiAvKiBIVE1MU3Jjc2V0UGFyc2VyLmNwcCAq
LzsgfTsKIAkJNTM2RDVBMjMxOTNFOEUwQzAwQ0U0Q0FCIC8qIFBhcnNpbmdVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNkQ1QTIyMTkz
RThFMEMwMENFNENBQiAvKiBQYXJzaW5nVXRpbGl0aWVzLmggKi87IH07CkBAIC05NTY0LDYgKzk1
NjYsOCBAQAogCQk1MkY1MkUxMDE0QTAxMzRGMDBBQ0MzOTcgLyogTlNTY3JvbGxlckltcERldGFp
bHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU1Njcm9sbGVy
SW1wRGV0YWlscy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMxNzYxMjAxM0M1
MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlRmxl
eGlibGVCb3hEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNTFENEFFMURG
OTE2QUMwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZpbGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MzUxRDRBRjFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzNkQ1QTFFMTkzRTE4RDAwMENFNENBQiAvKiBIVE1MU3Jjc2V0UGFyc2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxTcmNzZXRQYXJzZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzZENUExRjE5M0UxOEU5MDBDRTRDQUIg
LyogSFRNTFNyY3NldFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MU3Jjc2V0UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNkQ1QTIy
MTkzRThFMEMwMENFNENBQiAvKiBQYXJzaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhcnNpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyNTAyLDYgKzIyNTA2LDggQEAKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4
RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5MDAz
RTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOEND
NCAvKiBGaWxlQ2hvb3Nlci5oICovLAorCQkJCTUzNTFENEFFMURGOTE2QUMwMDgwMTBDRCAvKiBG
aWxlSGFuZGxlLmNwcCAqLywKKwkJCQk1MzUxRDRBRjFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhh
bmRsZS5oICovLAogCQkJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEu
aCAqLywKIAkJCQkyRUYxQkZFODEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5jcHAgKi8s
CiAJCQkJMkVGMUJGRTkxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCAqLywKQEAgLTI3
MzY1LDYgKzI3MzcxLDcgQEAKIAkJCQk1N0UyMzM2MzFEQzdEQTI0MDBGMjhEMDEgLyogUnNhT3Ro
ZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FCOTk2OTE4REEzQzAxMDAxODc3
MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBQjk5NkYxOERB
M0M3NDAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MzUxRDRCMTFERjkxNkI0MDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc4RTA5MUUxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzhFMDkxRjE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5u
ZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5M0MxN0QxNkUxQzAwNDIwQUExIC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcxNiw2ICszMTcy
Myw3IEBACiAJCQkJMkQwNjIxNDQxREE2MzlCNjAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5TWVz
c2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMDYyMTUyMURBNjNBQTIwMEE3RkIy
NiAvKiBXZWJLaXRNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
MDYyMTREMURBNjNBOEIwMEE3RkIyNiAvKiBXZWJLaXRNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTM1MUQ0QjAxREY5MTZCNDAwODAxMENEIC8qIEZpbGVIYW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQwNjIxNEYxREE2M0E5MTAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5
U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYg
LyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNDhBNkQwMTkxQzlE
NjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MzY3Mzk1ODBkNzUzN2Vl
ZTYzYTcwNDZhMmY2NDk1ODM1OGI3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmlsZUhhbmRsZS5oIgorCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8
c3RkaW8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGaWxlSGFuZGxlOjpGaWxlSGFuZGxl
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlIG1vZGUpCisgICAgOiBtX3BhdGgocGF0
aCkKKyAgICAsIG1fbW9kZShtb2RlKQoreworfQorCitGaWxlSGFuZGxlOjpGaWxlSGFuZGxlKEZp
bGVIYW5kbGUmJiBvdGhlcikKKyAgICA6IG1fcGF0aChXVEZNb3ZlKG90aGVyLm1fcGF0aCkpCisg
ICAgLCBtX21vZGUoV1RGTW92ZShvdGhlci5tX21vZGUpKQorICAgICwgbV9maWxlSGFuZGxlKHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KSkKK3sKK30KKworRmlsZUhhbmRsZTo6fkZpbGVIYW5kbGUoKQoreworICAgIGNsb3NlKCk7Cit9
CisKK0ZpbGVIYW5kbGUmIEZpbGVIYW5kbGU6Om9wZXJhdG9yPShGaWxlSGFuZGxlJiYgb3RoZXIp
Cit7CisgICAgY2xvc2UoKTsKKyAgICBtX3BhdGggPSBXVEZNb3ZlKG90aGVyLm1fcGF0aCk7Cisg
ICAgbV9tb2RlID0gV1RGTW92ZShvdGhlci5tX21vZGUpOworICAgIG1fZmlsZUhhbmRsZSA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0ZpbGVIYW5kbGU6Om9wZXJhdG9yIGJvb2woKSBj
b25zdAoreworICAgIHJldHVybiBpc0hhbmRsZVZhbGlkKG1fZmlsZUhhbmRsZSk7Cit9CisKK2Jv
b2wgRmlsZUhhbmRsZTo6b3Blbihjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2Rl
KQoreworICAgIGlmICgqdGhpcyAmJiBwYXRoID09IG1fcGF0aCAmJiBtb2RlID09IG1fbW9kZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjbG9zZSgpOworICAgIG1fcGF0aCA9IHBhdGg7
CisgICAgbV9tb2RlID0gbW9kZTsKKyAgICByZXR1cm4gb3BlbigpOworfQorCitib29sIEZpbGVI
YW5kbGU6Om9wZW4oKQoreworICAgIGlmICghKnRoaXMpCisgICAgICAgIG1fZmlsZUhhbmRsZSA9
IG9wZW5GaWxlKG1fcGF0aCwgbV9tb2RlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4o
KnRoaXMpOworfQorCitpbnQgRmlsZUhhbmRsZTo6cmVhZCh2b2lkKiBkYXRhLCBpbnQgbGVuZ3Ro
KQoreworICAgIGlmICghb3BlbigpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHJl
YWRGcm9tRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgbGVuZ3Ro
KTsKK30KKworaW50IEZpbGVIYW5kbGU6OndyaXRlKGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5n
dGgpCit7CisgICAgaWYgKCFvcGVuKCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4g
d3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSks
IGxlbmd0aCk7Cit9CisKK2Jvb2wgRmlsZUhhbmRsZTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQp
OworCisgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKKyAgICB2YXNwcmludGYoJmJ1ZmZlciwg
Zm9ybWF0LCBhcmdzKTsKKyAgICBhdXRvIHdyaXRlUmVzdWx0ID0gd3JpdGUoYnVmZmVyLCBzdHJs
ZW4oYnVmZmVyKSk7CisgICAgZnJlZShidWZmZXIpOworCisgICAgdmFfZW5kKGFyZ3MpOworCisg
ICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49IDA7Cit9CisKK3ZvaWQgRmlsZUhhbmRsZTo6Y2xvc2Uo
KQoreworICAgIGNsb3NlRmlsZShtX2ZpbGVIYW5kbGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM2MjQz
ZGU0MGQ3N2VlMDQxNjkwNzEyMzQ3MGQzOWI3YWQwMDBiZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuaApAQCAtMCwwICsxLDY0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBGaWxlSGFuZGxl
IGZpbmFsIHsKK3B1YmxpYzoKKyAgICBGaWxlSGFuZGxlKCkgPSBkZWZhdWx0OworICAgIEZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUpOworICAgIEZpbGVIYW5kbGUo
Y29uc3QgRmlsZUhhbmRsZSYgb3RoZXIpID0gZGVsZXRlOworICAgIEZpbGVIYW5kbGUoRmlsZUhh
bmRsZSYmIG90aGVyKTsKKworICAgIH5GaWxlSGFuZGxlKCk7CisKKyAgICBGaWxlSGFuZGxlJiBv
cGVyYXRvcj0oY29uc3QgRmlsZUhhbmRsZSYgb3RoZXIpID0gZGVsZXRlOworICAgIEZpbGVIYW5k
bGUmIG9wZXJhdG9yPShGaWxlSGFuZGxlJiYgb3RoZXIpOworCisgICAgZXhwbGljaXQgb3BlcmF0
b3IgYm9vbCgpIGNvbnN0OworCisgICAgYm9vbCBvcGVuKGNvbnN0IFN0cmluZyYgcGF0aCwgRmls
ZU9wZW5Nb2RlKTsKKyAgICBib29sIG9wZW4oKTsKKyAgICBpbnQgcmVhZCh2b2lkKiBkYXRhLCBp
bnQgbGVuZ3RoKTsKKyAgICBpbnQgd3JpdGUoY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCk7
CisgICAgYm9vbCBwcmludGYoY29uc3QgY2hhciogZm9ybWF0LCAuLi4pIFdURl9BVFRSSUJVVEVf
UFJJTlRGKDIsIDMpOworICAgIHZvaWQgY2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBTdHJpbmcg
bV9wYXRoOworICAgIEZpbGVPcGVuTW9kZSBtX21vZGUgeyBPcGVuRm9yUmVhZCB9OworICAgIFBs
YXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGVIYW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmNw
cAppbmRleCBlNTdkNmE5MmE3YTljODZmNTQxYjU4NGRkN2UzZmU2ZDRiMTcyOWQ1Li5jYjdiYmRj
NDk2NTExNmM4ZGIxMzYwZjY2ZWE3M2JlZjhjNDE1ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVu
dC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShORVRXT1JLX0NBUFRVUkUpCiAK
LQogI2luY2x1ZGUgIk5ldHdvcmtDYXB0dXJlTG9nZ2luZy5oIgogI2luY2x1ZGUgImpzb24uaHBw
IgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQu
aAppbmRleCAwYTc5N2VjOTk3MTUxZmM3YTk1OTIyNTQ0MjM0NGIxYzRkMjVkYzgwLi43M2IyNDBi
MGMyNmNmNjYzMzUxMDdjMWQyMzA2OWY2M2MzMmZjZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQu
aApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKIAotI2lu
Y2x1ZGUgIk5ldHdvcmtDYXB0dXJlVHlwZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggZmM0ODc0ZTQ2NzQx
MzY1MjQ0MDU2NzRjY2YwYWFhOWYwYzhlYzkwNy4uMGRmODgzYzcwYzdhYmZkZjI5MDFhNWViNGRh
M2ZkZmY2MDhmYzdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzksNyAr
MzksNiBAQAogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxpdGVyYXRvcj4KICNpbmNs
dWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8c3RkYXJnLmg+CiAKICNkZWZpbmUgREVCVUdfQ0xBU1Mg
TWFuYWdlcgogCkBAIC03Myw2ICs3Miw5IEBAIHZvaWQgTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25z
dCBTdHJpbmcmIHJlY29yZFJlcGxheU1vZGUsIGNvbnN0IFN0cmluZyYgcmVjb3JkUmVwCiAgICAg
ICAgIG1fcmVjb3JkUmVwbGF5TW9kZSA9IERpc2FibGVkOwogCiAgICAgbV9yZWNvcmRSZXBsYXlD
YWNoZUxvY2F0aW9uID0gV2ViQ29yZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJlY29yZFJl
cGxheUNhY2hlTG9jYXRpb24sIGtEaXJOYW1lUmVjb3JkUmVwbGF5KTsKKyAgICBtX2xvYWRGaWxl
SGFuZGxlID0gV2ViQ29yZTo6RmlsZUhhbmRsZShyZXBvcnRMb2FkUGF0aCgpLCBXZWJDb3JlOjpP
cGVuRm9yV3JpdGUpOworICAgIG1fcmVjb3JkRmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5k
bGUocmVwb3J0UmVjb3JkUGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOworICAgIG1fcmVw
bGF5RmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVwbGF5UGF0aCgpLCBX
ZWJDb3JlOjpPcGVuRm9yV3JpdGUpOwogCiAgICAgREVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9
ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uKSk7CiAK
QEAgLTgyLDkgKzg0LDkgQEAgdm9pZCBNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYg
cmVjb3JkUmVwbGF5TW9kZSwgY29uc3QgU3RyaW5nJiByZWNvcmRSZXAKIAogdm9pZCBNYW5hZ2Vy
Ojp0ZXJtaW5hdGUoKQogewotICAgIG1fbG9hZEZpbGVIYW5kbGUuY2xvc2VGaWxlKCk7Ci0gICAg
bV9yZXBsYXlGaWxlSGFuZGxlLmNsb3NlRmlsZSgpOwotICAgIG1fcmVjb3JkRmlsZUhhbmRsZS5j
bG9zZUZpbGUoKTsKKyAgICBtX2xvYWRGaWxlSGFuZGxlLmNsb3NlKCk7CisgICAgbV9yZWNvcmRG
aWxlSGFuZGxlLmNsb3NlKCk7CisgICAgbV9yZXBsYXlGaWxlSGFuZGxlLmNsb3NlKCk7CiB9CiAK
IFJlc291cmNlKiBNYW5hZ2VyOjpmaW5kTWF0Y2goY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQpAQCAtNDE2LDE4ICs0MTgsMTUgQEAgdm9pZCBNYW5hZ2VyOjpsb2dSZWNv
cmRlZFJlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
ICAgICAvLyBMb2cgbmV0d29yayByZXNvdXJjZXMgYXMgdGhleSBhcmUgY2FjaGVkIHRvIGRpc2su
CiAKLSAgICBpZiAoZW5zdXJlRmlsZUhhbmRsZShyZXBvcnRSZWNvcmRQYXRoKCksIG1fcmVjb3Jk
RmlsZUhhbmRsZSkpIHsKLSAgICAgICAgY29uc3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsK
LSAgICAgICAgcHJpbnRUb0ZpbGUobV9yZWNvcmRGaWxlSGFuZGxlLCAiJXMgJXNcbiIsIERFQlVH
X1NUUihzdHJpbmdUb0hhc2godXJsLnN0cmluZygpKSksIERFQlVHX1NUUih1cmwuc3RyaW5nKCkp
KTsKLSAgICB9CisgICAgY29uc3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsKKyAgICBtX3Jl
Y29yZEZpbGVIYW5kbGUucHJpbnRmKCIlcyAlc1xuIiwgREVCVUdfU1RSKHN0cmluZ1RvSGFzaCh1
cmwuc3RyaW5nKCkpKSwgREVCVUdfU1RSKHVybC5zdHJpbmcoKSkpOwogfQogCiB2b2lkIE1hbmFn
ZXI6OmxvZ0xvYWRlZFJlc291cmNlKFJlc291cmNlJiByZXNvdXJjZSkKIHsKICAgICAvLyBMb2cg
Y2FjaGVkIHJlc291cmNlcyBhcyB0aGV5IGFyZSBsb2FkZWQgZnJvbSBkaXNrLgogCi0gICAgaWYg
KGVuc3VyZUZpbGVIYW5kbGUocmVwb3J0TG9hZFBhdGgoKSwgbV9sb2FkRmlsZUhhbmRsZSkpCi0g
ICAgICAgIHByaW50VG9GaWxlKG1fbG9hZEZpbGVIYW5kbGUsICIlc1xuIiwgREVCVUdfU1RSKHJl
c291cmNlLnVybCgpLnN0cmluZygpKSk7CisgICAgbV9sb2FkRmlsZUhhbmRsZS5wcmludGYoIiVz
XG4iLCBERUJVR19TVFIocmVzb3VyY2UudXJsKCkuc3RyaW5nKCkpKTsKIH0KIAogdm9pZCBNYW5h
Z2VyOjpsb2dQbGF5ZWRCYWNrUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBib29sIHdhc0NhY2hlTWlzcykKQEAgLTQ0MSwyNCArNDQwLDE2IEBAIHZvaWQg
TWFuYWdlcjo6bG9nUGxheWVkQmFja1Jlc291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vCiAgICAgZWxzZQogICAgICAgICBERUJVR19MT0coIkNhY2hlIGhp
dDogIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7CiAKLSAgICBp
ZiAoZW5zdXJlRmlsZUhhbmRsZShyZXBvcnRSZXBsYXlQYXRoKCksIG1fcmVwbGF5RmlsZUhhbmRs
ZSkpCi0gICAgICAgIHByaW50VG9GaWxlKG1fcmVwbGF5RmlsZUhhbmRsZSwgIiVzICVzXG4iLCB3
YXNDYWNoZU1pc3MgPyAibWlzcyIgOiAiaGl0ICIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsK
LX0KLQotYm9vbCBNYW5hZ2VyOjplbnN1cmVGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgZmlsZVBh
dGgsIEZpbGVIYW5kbGUmIGZpbGVIYW5kbGUpCi17Ci0gICAgaWYgKCFmaWxlSGFuZGxlKQotICAg
ICAgICBmaWxlSGFuZGxlID0gb3BlbkNhY2hlRmlsZShmaWxlUGF0aCwgV2ViQ29yZTo6T3BlbkZv
cldyaXRlKTsKLSAgICByZXR1cm4gZmlsZUhhbmRsZTsKKyAgICBtX3JlcGxheUZpbGVIYW5kbGUu
cHJpbnRmKCIlcyAlc1xuIiwgd2FzQ2FjaGVNaXNzID8gIm1pc3MiIDogImhpdCAiLCBERUJVR19T
VFIodXJsLnN0cmluZygpKSk7CiB9CiAKLUZpbGVIYW5kbGUgTWFuYWdlcjo6b3BlbkNhY2hlRmls
ZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBXZWJDb3JlOjpGaWxlT3Blbk1vZGUgbW9kZSkKK1dl
YkNvcmU6OkZpbGVIYW5kbGUgTWFuYWdlcjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVQYXRoLCBXZWJDb3JlOjpGaWxlT3Blbk1vZGUgbW9kZSkKIHsKICAgICAvLyBJZiB3ZSBjYW4g
dHJpdmlhbGx5IG9wZW4gdGhlIGZpbGUsIHRoZW4gZG8gdGhhdCBhbmQgcmV0dXJuIHRoZSBuZXcg
ZmlsZQogICAgIC8vIGhhbmRsZS4KIAotICAgIGF1dG8gZmlsZUhhbmRsZSA9IEZpbGVIYW5kbGU6
Om9wZW5GaWxlKGZpbGVQYXRoLCBtb2RlKTsKLSAgICBpZiAoZmlsZUhhbmRsZSkKKyAgICBhdXRv
IGZpbGVIYW5kbGUgPSBXZWJDb3JlOjpGaWxlSGFuZGxlKGZpbGVQYXRoLCBtb2RlKTsKKyAgICBp
ZiAoZmlsZUhhbmRsZS5vcGVuKCkpCiAgICAgICAgIHJldHVybiBmaWxlSGFuZGxlOwogCiAgICAg
Ly8gSWYgd2UncmUgb3BlbmluZyB0aGUgZmlsZSBmb3Igd3JpdGluZyAoaW5jbHVkaW5nIGFwcGVu
ZGluZyksIHRoZW4gdHJ5CkBAIC00NzEsOCArNDYyLDggQEAgRmlsZUhhbmRsZSBNYW5hZ2VyOjpv
cGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9k
ZQogICAgICAgICAgICAgcmV0dXJuIGZpbGVIYW5kbGU7CiAgICAgICAgIH0KIAotICAgICAgICBm
aWxlSGFuZGxlID0gRmlsZUhhbmRsZTo6b3BlbkZpbGUoZmlsZVBhdGgsIG1vZGUpOwotICAgICAg
ICBpZiAoZmlsZUhhbmRsZSkKKyAgICAgICAgZmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5k
bGUoZmlsZVBhdGgsIG1vZGUpOworICAgICAgICBpZiAoZmlsZUhhbmRsZS5vcGVuKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmlsZUhhbmRsZTsKICAgICB9CiAKQEAgLTU3OCwyMSArNTY5LDYgQEAg
Ym9vbCBNYW5hZ2VyOjpnZXRXb3JkKHVpbnQ4X3QgY29uc3QgKiYgcCwgdWludDhfdCBjb25zdCAq
IGNvbnN0IGVuZCwgU3RyaW5nJiB3b3IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNYW5h
Z2VyOjpwcmludFRvRmlsZShjb25zdCBGaWxlSGFuZGxlJiBmaWxlSGFuZGxlLCBjb25zdCBjaGFy
KiBmb3JtYXQsIC4uLikKLXsKLSAgICB2YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQoYXJncywg
Zm9ybWF0KTsKLQotICAgIGNoYXIqIGJ1ZmZlciA9IG51bGxwdHI7Ci0gICAgdmFzcHJpbnRmKCZi
dWZmZXIsIGZvcm1hdCwgYXJncyk7Ci0gICAgYXV0byB3cml0ZVJlc3VsdCA9IGZpbGVIYW5kbGUu
d3JpdGVUb0ZpbGUoYnVmZmVyLCBzdHJsZW4oYnVmZmVyKSk7Ci0gICAgZnJlZShidWZmZXIpOwot
Ci0gICAgdmFfZW5kKGFyZ3MpOwotCi0gICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49IDA7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIE5ldHdvcmtDYXB0dXJlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3Jr
Q2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUv
TmV0d29ya0NhcHR1cmVNYW5hZ2VyLmgKaW5kZXggMjY5YWUyNGVkOWFlNDZhMWFhMzdjODY5MDNh
N2NkMzJkZWFkOWU4OC4uNDUwYzA2YWM2MDM3YWIyMmQ1ZGFkZTMxZTljODRiMzI3YTMyOGNmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3Jr
Q2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFC
TEUoTkVUV09SS19DQVBUVVJFKQogCi0jaW5jbHVkZSAiTmV0d29ya0NhcHR1cmVUeXBlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5
c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ0xvYWRlZFJl
c291cmNlKFJlc291cmNlJik7CiAgICAgdm9pZCBsb2dQbGF5ZWRCYWNrUmVzb3VyY2UoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCB3YXNDYWNoZU1pc3MpOwogCi0gICAgRmls
ZUhhbmRsZSBvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbGVPcGVuTW9k
ZSk7CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OkZpbGVPcGVuTW9kZSk7CiAKICAgICBTdHJpbmcgcmVxdWVzdFRvUGF0aChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIApAQCAtMTAxLDE5ICsxMDEsMTYgQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgc3RyaW5nVG9IYXNoKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmlu
ZyBoYXNoVG9QYXRoKGNvbnN0IFN0cmluZyYgaGFzaCk7CiAKLSAgICBib29sIGVuc3VyZUZpbGVI
YW5kbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCwgRmlsZUhhbmRsZSYpOwotCiAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+PiByZWFkRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVQYXRoKTsKICAgICBib29sIGdldExpbmUodWludDhfdCBjb25zdCAqJiBwLCB1aW50OF90IGNv
bnN0ICogY29uc3QgZW5kLCBWZWN0b3I8U3RyaW5nPiYgbGluZSk7CiAgICAgYm9vbCBnZXRXb3Jk
KHVpbnQ4X3QgY29uc3QgKiYgcCwgdWludDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgU3RyaW5nJiB3
b3JkKTsKLSAgICBib29sIHByaW50VG9GaWxlKGNvbnN0IEZpbGVIYW5kbGUmLCBjb25zdCBjaGFy
KiBmb3JtYXQsIC4uLik7CiAKICAgICBSZWNvcmRSZXBsYXlNb2RlIG1fcmVjb3JkUmVwbGF5TW9k
ZSB7IERpc2FibGVkIH07CiAgICAgU3RyaW5nIG1fcmVjb3JkUmVwbGF5Q2FjaGVMb2NhdGlvbjsK
IAotICAgIEZpbGVIYW5kbGUgbV9sb2FkRmlsZUhhbmRsZTsKLSAgICBGaWxlSGFuZGxlIG1fcmVw
bGF5RmlsZUhhbmRsZTsKLSAgICBGaWxlSGFuZGxlIG1fcmVjb3JkRmlsZUhhbmRsZTsKKyAgICBX
ZWJDb3JlOjpGaWxlSGFuZGxlIG1fbG9hZEZpbGVIYW5kbGU7CisgICAgV2ViQ29yZTo6RmlsZUhh
bmRsZSBtX3JlY29yZEZpbGVIYW5kbGU7CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBtX3JlcGxh
eUZpbGVIYW5kbGU7CiAKICAgICBWZWN0b3I8UmVzb3VyY2U+IG1fY2FjaGVkUmVzb3VyY2VzOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0
d29ya0NhcHR1cmVSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwCmluZGV4IGI2YzFjNTJhOTAwMzBkYzg3
N2ZiYzgxMzkyMmM1MTJjMGM0YTk0MDMuLjU5MWViNGZjMjk2ZDIzNmUxZmRlODBiMzk1MDQ2ZmFk
ODI1M2RjOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmNwcApAQCAtMzMsNyArMzMs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKLSNkZWZpbmUgREVCVUdfQ0xBU1MgTWFuYWdlcgorI2Rl
ZmluZSBERUJVR19DTEFTUyBSZWNvcmRlcgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFj
ZSBOZXR3b3JrQ2FwdHVyZSB7CkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBSZWNvcmRlcjo6d3Jp
dGVFdmVudHMoKQogICAgICAgICAvLyB0byBiZXR0ZXIgZmluZCB0aGUgc2VwYXJhdGUgSlNPTiBv
YmplY3RzIHRoYXQgd2Ugd3JpdGUgdG8gYSBzaW5nbGUKICAgICAgICAgLy8gZmlsZS4gSXQgYWxz
byB3b3JrcyBiZXR0ZXIgd2l0aCBKU09OIHBhcnNlcnMgdGhhdCBleHBlY3QgdG8gZmluZCBhCiAg
ICAgICAgIC8vIE5VTCBhdCB0aGUgZW5kIG9mIHRoZWlyIGlucHV0LgotICAgICAgICBpZiAoaGFu
ZGxlLndyaXRlVG9GaWxlKGFzU3RyaW5nLmNfc3RyKCksIGFzU3RyaW5nLnNpemUoKSArIDEpID09
IC0xKSB7CisgICAgICAgIGlmIChoYW5kbGUud3JpdGUoYXNTdHJpbmcuY19zdHIoKSwgYXNTdHJp
bmcuc2l6ZSgpICsgMSkgPT0gLTEpIHsKICAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJy
b3IgdHJ5aW5nIHRvIHdyaXRlIHRvIGZpbGUgZm9yIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19T
VFIobV9pbml0aWFsUmVxdWVzdC51cmwoKS5zdHJpbmcoKSkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzOTZjMTY0NWRlNTc0YWY3ZTZiOGFhMWJhZTk3MTQ5MDljOGEwMjFmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVUeXBlcy5oCisrKyAvZGV2L251bGwK
QEAgLTEsOTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxF
KE5FVFdPUktfQ0FQVFVSRSkKLQotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLW5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZSB7Ci0KLWNsYXNzIEZp
bGVIYW5kbGUgZmluYWwgewotcHVibGljOgotICAgIEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Ci0K
LSAgICBGaWxlSGFuZGxlKFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlKQot
ICAgICAgICA6IG1fZmlsZUhhbmRsZShmaWxlSGFuZGxlKSB7IH0KLQotICAgIEZpbGVIYW5kbGUo
RmlsZUhhbmRsZSYmIG90aGVyKQotICAgICAgICA6IG1fZmlsZUhhbmRsZShzdGQ6OmV4Y2hhbmdl
KG90aGVyLm1fZmlsZUhhbmRsZSwgV2ViQ29yZTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkp
IHsgfQotCi0gICAgfkZpbGVIYW5kbGUoKQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0g
ICAgfQotCi0gICAgRmlsZUhhbmRsZSYgb3BlcmF0b3I9KFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhh
bmRsZSBmaWxlSGFuZGxlKQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgICAgIG1f
ZmlsZUhhbmRsZSA9IGZpbGVIYW5kbGU7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0K
LSAgICBGaWxlSGFuZGxlJiBvcGVyYXRvcj0oRmlsZUhhbmRsZSYmIG90aGVyKQotICAgIHsKLSAg
ICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgICAgIG1fZmlsZUhhbmRsZSA9IHN0ZDo6ZXhjaGFuZ2Uo
b3RoZXIubV9maWxlSGFuZGxlLCBXZWJDb3JlOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsK
LSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIEZpbGVIYW5kbGUoY29uc3QgRmls
ZUhhbmRsZSYpID0gZGVsZXRlOwotICAgIEZpbGVIYW5kbGUmIG9wZXJhdG9yPShjb25zdCBGaWxl
SGFuZGxlJikgPSBkZWxldGU7Ci0KLSAgICBvcGVyYXRvciBXZWJDb3JlOjpQbGF0Zm9ybUZpbGVI
YW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVIYW5kbGU7IH0KLSAgICBleHBsaWNpdCBvcGVy
YXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gV2ViQ29yZTo6aXNIYW5kbGVWYWxpZChtX2ZpbGVI
YW5kbGUpOyB9Ci0KLSAgICBzdGF0aWMgRmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcm
IHBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSBtb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IEZpbGVIYW5kbGUoV2ViQ29yZTo6b3BlbkZpbGUocGF0aCwgbW9kZSkpOwotICAgIH0KLQotICAg
IGludCByZWFkRnJvbUZpbGUodm9pZCogZGF0YSwgaW50IGxlbmd0aCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBXZWJDb3JlOjpyZWFkRnJvbUZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNf
Y2FzdDxjaGFyKj4oZGF0YSksIGxlbmd0aCk7Ci0gICAgfQotCi0gICAgaW50IHdyaXRlVG9GaWxl
KGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5ndGgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1
cm4gV2ViQ29yZTo6d3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4oZGF0YSksIGxlbmd0aCk7Ci0gICAgfQotCi0gICAgdm9pZCBjbG9zZUZpbGUoKQotICAg
IHsKLSAgICAgICAgV2ViQ29yZTo6Y2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7Ci0gICAgfQotCi1w
cml2YXRlOgotICAgIFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGVIYW5kbGUgeyBX
ZWJDb3JlOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBOZXR3b3JrQ2FwdHVyZQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoTkVUV09SS19DQVBUVVJFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIyYWI1ZjBkMDZjODQ3NzM3ZDAzMmVkYzZmYWViNDM5
MmM2MzgzZTMuLmUxMWZhZjk1YjM1NTQzZmFjOWRmMGI2OTg2YmY2ZWFkMWQ5ZGIyYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEwNzYsNyArMTA3Niw2IEBACiAJCTUzQkE0N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNw
cCAqLzsgfTsKIAkJNTNCQTQ3RDExREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Js
b2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVC
NTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUz
REVBMzY2MURERTQyMzEwMEU4MjY0OCAvKiBqc29uLmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29u
LmhwcCAqLzsgfTsKLQkJNTNFMjYwNjUxRERBOTQ4RTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJl
VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUz
RTI2MDY0MUREQTk0ODEwMDU5MDgxOCAvKiBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggKi87IH07CiAJ
CTVDMDUyRjI2MUM2RDNCRDMwMDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDUyRjI0
MUM2RDNBQjYwMDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLzsgfTsK
IAkJNUMxNDI2RUMxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAgKi87IH07CiAJCTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUMxNDI2RTMxQzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggKi87IH07CkBAIC0zMTg0LDcgKzMxODMsNyBAQAogCQk1MkQ1
QTFCMzFDNTc0OUYyMDBERTM0QTMgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFCNDFDNTc0OUYy
MDBERTM0QTMgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMDI1ODJFMURDQkJEMUQwMERBODlDMiAvKiBO
ZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTMwMjU4MkYxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVSZXNv
dXJjZS5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrZUNhY2hlZFJlc291
cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzMDI1ODJGMURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MzAyNTgzMDFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZUV2
ZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMDI1ODMxMURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IE5ldHdvcmtDYXB0dXJlRXZlbnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1
cmUvTmV0d29ya0NhcHR1cmVFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MzAyNTgzMjFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVMb2dnaW5nLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlTG9nZ2luZy5oOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyMDMsNyArMzIwMiw2IEBACiAJCTUzOUVCNTQ2MURD
MkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9i
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2Iu
aDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNERUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3MvY2FwdHVyZS9qc29uLmhwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTNFMjYwNjQxRERBOTQ4MTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVUeXBlcy5oOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OUQxOEI3MUNDRkUzNEIwMEIxOTc0QyAvKiBQaG90b3NT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGhvdG9zU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDMDUyRjI0MUM2RDNBQjYwMDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJD
b2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEF1dGhlbnRp
Y2F0aW9uTWFuYWdlckNvY29hLm1tOyBwYXRoID0gQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVu
dGljYXRpb25NYW5hZ2VyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
MTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01ODY4LDcgKzU4NjYsNiBAQAogCQkJCTUzMDI1ODM2MURDQkJEMUQwMERBODlDMiAvKiBOZXR3
b3JrQ2FwdHVyZVJlY29yZGVyLmggKi8sCiAJCQkJNTMwMjU4MzcxRENCQkQxRDAwREE4OUMyIC8q
IE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuY3BwICovLAogCQkJCTUzMDI1ODM4MURDQkJEMUQwMERB
ODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlcGxheWVyLmggKi8sCi0JCQkJNTNFMjYwNjQxRERBOTQ4
MTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCAqLywKIAkJCQk1MzAyNTgzOTFEQ0JC
RDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmNwcCAqLywKIAkJCQk1MzAyNTgz
QTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0RhdGFUYXNrUmVwbGF5LmggKi8sCiAJCQkpOwpA
QCAtNzg5Miw3ICs3ODg5LDYgQEAKIAkJCQk1MzAyNTg0MTFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0
d29ya0NhcHR1cmVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MzAyNTg0MzFEQ0JCRDIy
MDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTMwMjU4NDUxRENCQkQyMjAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTUzRTI2MDY1MUREQTk0OEUwMDU5MDgxOCAvKiBOZXR3b3JrQ2FwdHVy
ZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTNBMTY0RDE2MzBBOUJGMDA1RDdEMjIgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxREQ5
RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0JDOUI4RTFDNjUyQ0EwMDBBOEZEQ0YgLyogTmV0
d29ya0RhdGFUYXNrLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296562</attachid>
            <date>2016-12-08 13:50:13 -0800</date>
            <delta_ts>2016-12-08 16:57:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165562-20161208134935.patch</filename>
            <type>text/plain</type>
            <size>33180</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlMzQyNjQ2MzExYWY4
MjBhNzQyMDEyMTgxMDFlZjRiMTVjOGVhNC4uOTFlZGVlMTQ4NTFjNDI2ZGMwYmFhZjdiYTM4NDk3
ZWU5OWU5MDZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE2LTEyLTA3ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEZpbGVIYW5kbGUg
dG8gV2ViQ29yZSBGaWxlSGFuZGxlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2NTU2MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0
ZW5zZW4uCisKKyAgICAgICAgQWRkIEZpbGVIYW5kbGUsIGEgc21hbGwgd3JhcHBlciBhcm91bmQg
RmlsZVN5c3RlbSBmYWNpbGl0aWVzIHRvIG1hbmFnZQorICAgICAgICB0aGUgbGlmZXRpbWUgb2Yg
YW4gb3BlbiBmaWxlIGFuZCBnaXZlIHRoZSBmYWNpbGl0aWVzIGEgQysrIGludGVyZmFjZS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgLS0gYWZmZWN0ZWQgZmFjaWxpdHkgaXMgY3VycmVudGx5IG9u
bHkgdXNlZCBpbiB0ZXN0aW5nCisgICAgICAgIGNvZGUgYW5kIGlzIG5vdCB1c2VyIHJlYWNoYWJs
ZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpGaWxlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6On5GaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVIYW5kbGU6Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpv
cGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVIYW5kbGU6Om9wZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6cmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
SGFuZGxlOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSGFuZGxlOjpwcmludGYpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVIYW5kbGUuaDogQWRkZWQuCisKIDIwMTYtMTItMDggIEplcmVteSBKb25lcyAgPGplcmVt
eWpAYXBwbGUuY29tPgogCiAgICAgICAgIHBvaW50ZXIgbG9jayBzaG91bGQgZXhpdCB3aGVuIGEg
anMgYWxlcnQgaXMgc2hvd24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MWYxYTBiNGM5OTcxNGViODM0ODA5ZGIy
OWRjZjg1Y2U0NjZiZDg1Li5lYjRlZTExYzZkODY3M2FlN2Q0NDgwOGEzMmE2ZmRiMzgwNTg4ZmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTYtMTItMDcgIEtlaXRoIFJvbGxpbiAg
PGtyb2xsaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgRmlsZUhhbmRsZSB0byBXZWJDb3Jl
IEZpbGVIYW5kbGUuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY1NTYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKwor
ICAgICAgICBNb3ZlIEZpbGVIYW5kbGUgZnJvbSBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggKHdoaWNo
IGNhbiBub3cgYmUgZGVsZXRlZCkKKyAgICAgICAgdG8gV2ViQ29yZS4gVXBkYXRlIGNsaWVudCBj
b2RlIHRvIHVzZSB0aGUgbmV3IHZlcnNpb24uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9j
YXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0NhcHR1cmU6Ok1hbmFnZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ2FwdHVyZTo6TWFuYWdlcjo6dGVybWluYXRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0NhcHR1cmU6Ok1hbmFnZXI6OmxvZ1JlY29yZGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nTG9hZGVkUmVzb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6bG9nUGxheWVkQmFja1Jlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NhcHR1cmU6Ok1hbmFnZXI6Om9wZW5DYWNoZUZpbGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FwdHVyZTo6TWFuYWdlcjo6ZW5zdXJlRmlsZUhh
bmRsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYXB0dXJlOjpNYW5hZ2Vy
OjpwcmludFRvRmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q2FwdHVyZTo6UmVjb3JkZXI6OndyaXRlRXZlbnRzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlVHlwZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTYtMTItMDggIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNhbHQgbmV0d29yayBjYWNoZSBoYXNo
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGM4Njc2NjgzN2YyY2VhZWViZjc0ZDMyNDdiMTc0
OTFhNWQyNjU0Yy4uZjAzMzFjZTU2YWNhZjIwY2ExMmJmNzNjOWE0OTJiMmU0YjVjMjY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNDIsNiArMjE0Miw3IEBAIHNldChXZWJDb3JlX1NPVVJD
RVMKICAgICBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuY3BwCiAgICAgcGxhdGZvcm0vRmlsZUNob29zZXIuY3BwCisgICAgcGxhdGZvcm0v
RmlsZUhhbmRsZS5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcAogICAgIHBsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwCiAgICAgcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
YTBhM2QwZGM0YTE1OWFmZmVhODBjZDQ5ZWM4MjZmNGIwYjFiYjA2Li44M2NiOTI1ZmEyN2Y1ZjA1
ZjdlYTI1YzIzOTA0Nzk2NDFkMzhkOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzIwLDYgKzIzMjAsOCBAQAogCQk1MkY1
MkUxMTE0QTAxMzRGMDBBQ0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkY1MkUxMDE0QTAxMzRGMDBB
Q0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gKi87IH07CiAJCTUzMTc2MTIyMTNDNTE2
NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzE3NjEyMDEzQzUxNjY5MDAyNkU0NTQgLyog
U3R5bGVGbGV4aWJsZUJveERhdGEuY3BwICovOyB9OwogCQk1MzE3NjEyMzEzQzUxNjY5MDAyNkU0
NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhp
YmxlQm94RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTUzNTFENEIwMURGOTE2QjQwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTFENEFFMURGOTE2QUMw
MDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCAqLzsgfTsKKwkJNTM1MUQ0QjExREY5MTZCNDAwODAx
MENEIC8qIEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzNTFENEFGMURGOTE2QUMwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTM2RDVBMjAxOTNF
MThFOTAwQ0U0Q0FCIC8qIEhUTUxTcmNzZXRQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNkQ1QTFGMTkzRTE4RTkwMENFNENBQiAvKiBIVE1M
U3Jjc2V0UGFyc2VyLmggKi87IH07CiAJCTUzNkQ1QTIxMTkzRTE4RUUwMENFNENBQiAvKiBIVE1M
U3Jjc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzNkQ1QTFFMTkzRTE4RDAwMENFNENBQiAvKiBIVE1MU3Jjc2V0UGFyc2VyLmNwcCAq
LzsgfTsKIAkJNTM2RDVBMjMxOTNFOEUwQzAwQ0U0Q0FCIC8qIFBhcnNpbmdVdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNkQ1QTIyMTkz
RThFMEMwMENFNENBQiAvKiBQYXJzaW5nVXRpbGl0aWVzLmggKi87IH07CkBAIC05NTY0LDYgKzk1
NjYsOCBAQAogCQk1MkY1MkUxMDE0QTAxMzRGMDBBQ0MzOTcgLyogTlNTY3JvbGxlckltcERldGFp
bHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOU1Njcm9sbGVy
SW1wRGV0YWlscy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMxNzYxMjAxM0M1
MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlRmxl
eGlibGVCb3hEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzNTFENEFFMURG
OTE2QUMwMDgwMTBDRCAvKiBGaWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEZpbGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MzUxRDRBRjFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUzNkQ1QTFFMTkzRTE4RDAwMENFNENBQiAvKiBIVE1MU3Jjc2V0UGFyc2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxTcmNzZXRQYXJzZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzZENUExRjE5M0UxOEU5MDBDRTRDQUIg
LyogSFRNTFNyY3NldFBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MU3Jjc2V0UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzNkQ1QTIy
MTkzRThFMEMwMENFNENBQiAvKiBQYXJzaW5nVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhcnNpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTIyNTAyLDYgKzIyNTA2LDggQEAKIAkJCQkyNjJFQzQxOTFEMDc4RjNEMDBCQTc4
RkMgLyogRXZlbnRUcmFja2luZ1JlZ2lvbnMuaCAqLywKIAkJCQk5MzRGRTlFNDBCNUNBNTM5MDAz
RTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovLAogCQkJCTA2NkM3NzJBMEFCNjAzQjcwMDIzOEND
NCAvKiBGaWxlQ2hvb3Nlci5oICovLAorCQkJCTUzNTFENEFFMURGOTE2QUMwMDgwMTBDRCAvKiBG
aWxlSGFuZGxlLmNwcCAqLywKKwkJCQk1MzUxRDRBRjFERjkxNkFDMDA4MDEwQ0QgLyogRmlsZUhh
bmRsZS5oICovLAogCQkJCTQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEu
aCAqLywKIAkJCQkyRUYxQkZFODEyMUM5RjQyMDBDMjc2MjcgLyogRmlsZVN0cmVhbS5jcHAgKi8s
CiAJCQkJMkVGMUJGRTkxMjFDOUY0MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCAqLywKQEAgLTI3
MzY1LDYgKzI3MzcxLDcgQEAKIAkJCQk1N0UyMzM2MzFEQzdEQTI0MDBGMjhEMDEgLyogUnNhT3Ro
ZXJQcmltZXNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FCOTk2OTE4REEzQzAxMDAxODc3
MUUgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdBQjk5NkYxOERB
M0M3NDAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MzUxRDRCMTFERjkxNkI0MDA4MDEwQ0QgLyogRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc4RTA5MUUxN0QxNEQxQzAwNDIwQUExIC8qIFJUQ0RhdGFDaGFubmVsLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzhFMDkxRjE3RDE0RDFDMDA0MjBBQTEgLyogUlRDRGF0YUNoYW5u
ZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5M0MxN0QxNkUxQzAwNDIwQUExIC8q
IFJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTcxNiw2ICszMTcy
Myw3IEBACiAJCQkJMkQwNjIxNDQxREE2MzlCNjAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5TWVz
c2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEMDYyMTUyMURBNjNBQTIwMEE3RkIy
NiAvKiBXZWJLaXRNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
MDYyMTREMURBNjNBOEIwMEE3RkIyNiAvKiBXZWJLaXRNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNTM1MUQ0QjAxREY5MTZCNDAwODAxMENEIC8qIEZpbGVIYW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkQwNjIxNEYxREE2M0E5MTAwQTdGQjI2IC8qIFdlYktpdE1lZGlhS2V5
U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYg
LyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNDhBNkQwMTkxQzlE
NjUwMDAyNjY3NCAvKiBXZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZpbGVIYW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MWY0NGU3MDlmZjE2ZjA1
MjJhNDY3ZDU0NjY3NWI5ODkzZmRjMGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRmlsZUhhbmRsZS5oIgorCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8
c3RkaW8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGaWxlSGFuZGxlOjpGaWxlSGFuZGxl
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlIG1vZGUpCisgICAgOiBtX3BhdGgocGF0
aCkKKyAgICAsIG1fbW9kZShtb2RlKQoreworfQorCitGaWxlSGFuZGxlOjpGaWxlSGFuZGxlKEZp
bGVIYW5kbGUmJiBvdGhlcikKKyAgICA6IG1fcGF0aChXVEZNb3ZlKG90aGVyLm1fcGF0aCkpCisg
ICAgLCBtX21vZGUoV1RGTW92ZShvdGhlci5tX21vZGUpKQorICAgICwgbV9maWxlSGFuZGxlKHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KSkKK3sKK30KKworRmlsZUhhbmRsZTo6fkZpbGVIYW5kbGUoKQoreworICAgIGNsb3NlKCk7Cit9
CisKK0ZpbGVIYW5kbGUmIEZpbGVIYW5kbGU6Om9wZXJhdG9yPShGaWxlSGFuZGxlJiYgb3RoZXIp
Cit7CisgICAgY2xvc2UoKTsKKyAgICBtX3BhdGggPSBXVEZNb3ZlKG90aGVyLm1fcGF0aCk7Cisg
ICAgbV9tb2RlID0gV1RGTW92ZShvdGhlci5tX21vZGUpOworICAgIG1fZmlsZUhhbmRsZSA9IHN0
ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxl
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0ZpbGVIYW5kbGU6Om9wZXJhdG9yIGJvb2woKSBj
b25zdAoreworICAgIHJldHVybiBpc0hhbmRsZVZhbGlkKG1fZmlsZUhhbmRsZSk7Cit9CisKK2Jv
b2wgRmlsZUhhbmRsZTo6b3Blbihjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2Rl
KQoreworICAgIGlmICgqdGhpcyAmJiBwYXRoID09IG1fcGF0aCAmJiBtb2RlID09IG1fbW9kZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBjbG9zZSgpOworICAgIG1fcGF0aCA9IHBhdGg7
CisgICAgbV9tb2RlID0gbW9kZTsKKyAgICByZXR1cm4gb3BlbigpOworfQorCitib29sIEZpbGVI
YW5kbGU6Om9wZW4oKQoreworICAgIGlmICghKnRoaXMpCisgICAgICAgIG1fZmlsZUhhbmRsZSA9
IG9wZW5GaWxlKG1fcGF0aCwgbV9tb2RlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4o
KnRoaXMpOworfQorCitpbnQgRmlsZUhhbmRsZTo6cmVhZCh2b2lkKiBkYXRhLCBpbnQgbGVuZ3Ro
KQoreworICAgIGlmICghb3BlbigpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHJl
YWRGcm9tRmlsZShtX2ZpbGVIYW5kbGUsIHN0YXRpY19jYXN0PGNoYXIqPihkYXRhKSwgbGVuZ3Ro
KTsKK30KKworaW50IEZpbGVIYW5kbGU6OndyaXRlKGNvbnN0IHZvaWQqIGRhdGEsIGludCBsZW5n
dGgpCit7CisgICAgaWYgKCFvcGVuKCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4g
d3JpdGVUb0ZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSks
IGxlbmd0aCk7Cit9CisKK2Jvb2wgRmlsZUhhbmRsZTo6cHJpbnRmKGNvbnN0IGNoYXIqIGZvcm1h
dCwgLi4uKQoreworICAgIHZhX2xpc3QgYXJnczsKKyAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQp
OworCisgICAgY2hhciogYnVmZmVyID0gbnVsbHB0cjsKKyAgICBpZiAodmFzcHJpbnRmKCZidWZm
ZXIsIGZvcm1hdCwgYXJncykgPT0gLTEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRv
IHdyaXRlUmVzdWx0ID0gd3JpdGUoYnVmZmVyLCBzdHJsZW4oYnVmZmVyKSk7CisgICAgZnJlZShi
dWZmZXIpOworCisgICAgdmFfZW5kKGFyZ3MpOworCisgICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49
IDA7Cit9CisKK3ZvaWQgRmlsZUhhbmRsZTo6Y2xvc2UoKQoreworICAgIGNsb3NlRmlsZShtX2Zp
bGVIYW5kbGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlSGFuZGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM2MjQzZGU0MGQ3N2VlMDQxNjkwNzEyMzQ3MGQz
OWI3YWQwMDBiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVIYW5kbGUuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5o
IgorCisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBGaWxlSGFuZGxlIGZpbmFsIHsKK3B1YmxpYzoKKyAgICBG
aWxlSGFuZGxlKCkgPSBkZWZhdWx0OworICAgIEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBwYXRo
LCBGaWxlT3Blbk1vZGUpOworICAgIEZpbGVIYW5kbGUoY29uc3QgRmlsZUhhbmRsZSYgb3RoZXIp
ID0gZGVsZXRlOworICAgIEZpbGVIYW5kbGUoRmlsZUhhbmRsZSYmIG90aGVyKTsKKworICAgIH5G
aWxlSGFuZGxlKCk7CisKKyAgICBGaWxlSGFuZGxlJiBvcGVyYXRvcj0oY29uc3QgRmlsZUhhbmRs
ZSYgb3RoZXIpID0gZGVsZXRlOworICAgIEZpbGVIYW5kbGUmIG9wZXJhdG9yPShGaWxlSGFuZGxl
JiYgb3RoZXIpOworCisgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OworCisgICAg
Ym9vbCBvcGVuKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU9wZW5Nb2RlKTsKKyAgICBib29sIG9w
ZW4oKTsKKyAgICBpbnQgcmVhZCh2b2lkKiBkYXRhLCBpbnQgbGVuZ3RoKTsKKyAgICBpbnQgd3Jp
dGUoY29uc3Qgdm9pZCogZGF0YSwgaW50IGxlbmd0aCk7CisgICAgYm9vbCBwcmludGYoY29uc3Qg
Y2hhciogZm9ybWF0LCAuLi4pIFdURl9BVFRSSUJVVEVfUFJJTlRGKDIsIDMpOworICAgIHZvaWQg
Y2xvc2UoKTsKKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9wYXRoOworICAgIEZpbGVPcGVuTW9k
ZSBtX21vZGUgeyBPcGVuRm9yUmVhZCB9OworICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGVI
YW5kbGUgeyBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlIH07Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcAppbmRleCBlNTdkNmE5MmE3YTljODZm
NTQxYjU4NGRkN2UzZmU2ZDRiMTcyOWQ1Li5jYjdiYmRjNDk2NTExNmM4ZGIxMzYwZjY2ZWE3M2Jl
ZjhjNDE1ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAK
IAogI2lmIEVOQUJMRShORVRXT1JLX0NBUFRVUkUpCiAKLQogI2luY2x1ZGUgIk5ldHdvcmtDYXB0
dXJlTG9nZ2luZy5oIgogI2luY2x1ZGUgImpzb24uaHBwIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VFcnJvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
Y2FwdHVyZS9OZXR3b3JrQ2FwdHVyZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaAppbmRleCAwYTc5N2VjOTk3MTUxZmM3
YTk1OTIyNTQ0MjM0NGIxYzRkMjVkYzgwLi43M2IyNDBiMGMyNmNmNjYzMzUxMDdjMWQyMzA2OWY2
M2MzMmZjZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0
dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlRXZlbnQuaApAQCAtMjcsNyArMjcsNiBAQAogCiAj
aWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKIAotI2luY2x1ZGUgIk5ldHdvcmtDYXB0dXJlVHlw
ZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9N
b25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0
dXJlTWFuYWdlci5jcHAKaW5kZXggZmM0ODc0ZTQ2NzQxMzY1MjQ0MDU2NzRjY2YwYWFhOWYwYzhl
YzkwNy4uMGRmODgzYzcwYzdhYmZkZjI5MDFhNWViNGRhM2ZkZmY2MDhmYzdlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0
d29ya0NhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGFsZ29y
aXRobT4KICNpbmNsdWRlIDxpdGVyYXRvcj4KICNpbmNsdWRlIDxsaW1pdHM+Ci0jaW5jbHVkZSA8
c3RkYXJnLmg+CiAKICNkZWZpbmUgREVCVUdfQ0xBU1MgTWFuYWdlcgogCkBAIC03Myw2ICs3Miw5
IEBAIHZvaWQgTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBTdHJpbmcmIHJlY29yZFJlcGxheU1v
ZGUsIGNvbnN0IFN0cmluZyYgcmVjb3JkUmVwCiAgICAgICAgIG1fcmVjb3JkUmVwbGF5TW9kZSA9
IERpc2FibGVkOwogCiAgICAgbV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uID0gV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHJlY29yZFJlcGxheUNhY2hlTG9jYXRpb24sIGtEaXJO
YW1lUmVjb3JkUmVwbGF5KTsKKyAgICBtX2xvYWRGaWxlSGFuZGxlID0gV2ViQ29yZTo6RmlsZUhh
bmRsZShyZXBvcnRMb2FkUGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOworICAgIG1fcmVj
b3JkRmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUocmVwb3J0UmVjb3JkUGF0aCgpLCBX
ZWJDb3JlOjpPcGVuRm9yV3JpdGUpOworICAgIG1fcmVwbGF5RmlsZUhhbmRsZSA9IFdlYkNvcmU6
OkZpbGVIYW5kbGUocmVwb3J0UmVwbGF5UGF0aCgpLCBXZWJDb3JlOjpPcGVuRm9yV3JpdGUpOwog
CiAgICAgREVCVUdfTE9HKCJDYWNoZSBsb2NhdGlvbiA9ICV7cHVibGljfXMiLCBERUJVR19TVFIo
bV9yZWNvcmRSZXBsYXlDYWNoZUxvY2F0aW9uKSk7CiAKQEAgLTgyLDkgKzg0LDkgQEAgdm9pZCBN
YW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFN0cmluZyYgcmVjb3JkUmVwbGF5TW9kZSwgY29uc3Qg
U3RyaW5nJiByZWNvcmRSZXAKIAogdm9pZCBNYW5hZ2VyOjp0ZXJtaW5hdGUoKQogewotICAgIG1f
bG9hZEZpbGVIYW5kbGUuY2xvc2VGaWxlKCk7Ci0gICAgbV9yZXBsYXlGaWxlSGFuZGxlLmNsb3Nl
RmlsZSgpOwotICAgIG1fcmVjb3JkRmlsZUhhbmRsZS5jbG9zZUZpbGUoKTsKKyAgICBtX2xvYWRG
aWxlSGFuZGxlLmNsb3NlKCk7CisgICAgbV9yZWNvcmRGaWxlSGFuZGxlLmNsb3NlKCk7CisgICAg
bV9yZXBsYXlGaWxlSGFuZGxlLmNsb3NlKCk7CiB9CiAKIFJlc291cmNlKiBNYW5hZ2VyOjpmaW5k
TWF0Y2goY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQpAQCAtNDE2LDE4
ICs0MTgsMTUgQEAgdm9pZCBNYW5hZ2VyOjpsb2dSZWNvcmRlZFJlc291cmNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBMb2cgbmV0d29yayByZXNv
dXJjZXMgYXMgdGhleSBhcmUgY2FjaGVkIHRvIGRpc2suCiAKLSAgICBpZiAoZW5zdXJlRmlsZUhh
bmRsZShyZXBvcnRSZWNvcmRQYXRoKCksIG1fcmVjb3JkRmlsZUhhbmRsZSkpIHsKLSAgICAgICAg
Y29uc3QgYXV0byYgdXJsID0gcmVxdWVzdC51cmwoKTsKLSAgICAgICAgcHJpbnRUb0ZpbGUobV9y
ZWNvcmRGaWxlSGFuZGxlLCAiJXMgJXNcbiIsIERFQlVHX1NUUihzdHJpbmdUb0hhc2godXJsLnN0
cmluZygpKSksIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKLSAgICB9CisgICAgY29uc3QgYXV0
byYgdXJsID0gcmVxdWVzdC51cmwoKTsKKyAgICBtX3JlY29yZEZpbGVIYW5kbGUucHJpbnRmKCIl
cyAlc1xuIiwgREVCVUdfU1RSKHN0cmluZ1RvSGFzaCh1cmwuc3RyaW5nKCkpKSwgREVCVUdfU1RS
KHVybC5zdHJpbmcoKSkpOwogfQogCiB2b2lkIE1hbmFnZXI6OmxvZ0xvYWRlZFJlc291cmNlKFJl
c291cmNlJiByZXNvdXJjZSkKIHsKICAgICAvLyBMb2cgY2FjaGVkIHJlc291cmNlcyBhcyB0aGV5
IGFyZSBsb2FkZWQgZnJvbSBkaXNrLgogCi0gICAgaWYgKGVuc3VyZUZpbGVIYW5kbGUocmVwb3J0
TG9hZFBhdGgoKSwgbV9sb2FkRmlsZUhhbmRsZSkpCi0gICAgICAgIHByaW50VG9GaWxlKG1fbG9h
ZEZpbGVIYW5kbGUsICIlc1xuIiwgREVCVUdfU1RSKHJlc291cmNlLnVybCgpLnN0cmluZygpKSk7
CisgICAgbV9sb2FkRmlsZUhhbmRsZS5wcmludGYoIiVzXG4iLCBERUJVR19TVFIocmVzb3VyY2Uu
dXJsKCkuc3RyaW5nKCkpKTsKIH0KIAogdm9pZCBNYW5hZ2VyOjpsb2dQbGF5ZWRCYWNrUmVzb3Vy
Y2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIHdhc0NhY2hl
TWlzcykKQEAgLTQ0MSwyNCArNDQwLDE2IEBAIHZvaWQgTWFuYWdlcjo6bG9nUGxheWVkQmFja1Jl
c291cmNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vCiAgICAg
ZWxzZQogICAgICAgICBERUJVR19MT0coIkNhY2hlIGhpdDogIFVSTCA9ICV7cHVibGljfXMiLCBE
RUJVR19TVFIodXJsLnN0cmluZygpKSk7CiAKLSAgICBpZiAoZW5zdXJlRmlsZUhhbmRsZShyZXBv
cnRSZXBsYXlQYXRoKCksIG1fcmVwbGF5RmlsZUhhbmRsZSkpCi0gICAgICAgIHByaW50VG9GaWxl
KG1fcmVwbGF5RmlsZUhhbmRsZSwgIiVzICVzXG4iLCB3YXNDYWNoZU1pc3MgPyAibWlzcyIgOiAi
aGl0ICIsIERFQlVHX1NUUih1cmwuc3RyaW5nKCkpKTsKLX0KLQotYm9vbCBNYW5hZ2VyOjplbnN1
cmVGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIEZpbGVIYW5kbGUmIGZpbGVIYW5k
bGUpCi17Ci0gICAgaWYgKCFmaWxlSGFuZGxlKQotICAgICAgICBmaWxlSGFuZGxlID0gb3BlbkNh
Y2hlRmlsZShmaWxlUGF0aCwgV2ViQ29yZTo6T3BlbkZvcldyaXRlKTsKLSAgICByZXR1cm4gZmls
ZUhhbmRsZTsKKyAgICBtX3JlcGxheUZpbGVIYW5kbGUucHJpbnRmKCIlcyAlc1xuIiwgd2FzQ2Fj
aGVNaXNzID8gIm1pc3MiIDogImhpdCAiLCBERUJVR19TVFIodXJsLnN0cmluZygpKSk7CiB9CiAK
LUZpbGVIYW5kbGUgTWFuYWdlcjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRo
LCBXZWJDb3JlOjpGaWxlT3Blbk1vZGUgbW9kZSkKK1dlYkNvcmU6OkZpbGVIYW5kbGUgTWFuYWdl
cjo6b3BlbkNhY2hlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoLCBXZWJDb3JlOjpGaWxlT3Bl
bk1vZGUgbW9kZSkKIHsKICAgICAvLyBJZiB3ZSBjYW4gdHJpdmlhbGx5IG9wZW4gdGhlIGZpbGUs
IHRoZW4gZG8gdGhhdCBhbmQgcmV0dXJuIHRoZSBuZXcgZmlsZQogICAgIC8vIGhhbmRsZS4KIAot
ICAgIGF1dG8gZmlsZUhhbmRsZSA9IEZpbGVIYW5kbGU6Om9wZW5GaWxlKGZpbGVQYXRoLCBtb2Rl
KTsKLSAgICBpZiAoZmlsZUhhbmRsZSkKKyAgICBhdXRvIGZpbGVIYW5kbGUgPSBXZWJDb3JlOjpG
aWxlSGFuZGxlKGZpbGVQYXRoLCBtb2RlKTsKKyAgICBpZiAoZmlsZUhhbmRsZS5vcGVuKCkpCiAg
ICAgICAgIHJldHVybiBmaWxlSGFuZGxlOwogCiAgICAgLy8gSWYgd2UncmUgb3BlbmluZyB0aGUg
ZmlsZSBmb3Igd3JpdGluZyAoaW5jbHVkaW5nIGFwcGVuZGluZyksIHRoZW4gdHJ5CkBAIC00NzEs
OCArNDYyLDggQEAgRmlsZUhhbmRsZSBNYW5hZ2VyOjpvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmlu
ZyYgZmlsZVBhdGgsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZQogICAgICAgICAgICAgcmV0dXJuIGZp
bGVIYW5kbGU7CiAgICAgICAgIH0KIAotICAgICAgICBmaWxlSGFuZGxlID0gRmlsZUhhbmRsZTo6
b3BlbkZpbGUoZmlsZVBhdGgsIG1vZGUpOwotICAgICAgICBpZiAoZmlsZUhhbmRsZSkKKyAgICAg
ICAgZmlsZUhhbmRsZSA9IFdlYkNvcmU6OkZpbGVIYW5kbGUoZmlsZVBhdGgsIG1vZGUpOworICAg
ICAgICBpZiAoZmlsZUhhbmRsZS5vcGVuKCkpCiAgICAgICAgICAgICByZXR1cm4gZmlsZUhhbmRs
ZTsKICAgICB9CiAKQEAgLTU3OCwyMSArNTY5LDYgQEAgYm9vbCBNYW5hZ2VyOjpnZXRXb3JkKHVp
bnQ4X3QgY29uc3QgKiYgcCwgdWludDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgU3RyaW5nJiB3b3IK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBNYW5hZ2VyOjpwcmludFRvRmlsZShjb25zdCBG
aWxlSGFuZGxlJiBmaWxlSGFuZGxlLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLikKLXsKLSAgICB2
YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKLQotICAgIGNoYXIqIGJ1
ZmZlciA9IG51bGxwdHI7Ci0gICAgdmFzcHJpbnRmKCZidWZmZXIsIGZvcm1hdCwgYXJncyk7Ci0g
ICAgYXV0byB3cml0ZVJlc3VsdCA9IGZpbGVIYW5kbGUud3JpdGVUb0ZpbGUoYnVmZmVyLCBzdHJs
ZW4oYnVmZmVyKSk7Ci0gICAgZnJlZShidWZmZXIpOwotCi0gICAgdmFfZW5kKGFyZ3MpOwotCi0g
ICAgcmV0dXJuIHdyaXRlUmVzdWx0ID49IDA7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIE5ldHdvcmtD
YXB0dXJlCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmgK
aW5kZXggMjY5YWUyNGVkOWFlNDZhMWFhMzdjODY5MDNhN2NkMzJkZWFkOWU4OC4uNDUwYzA2YWM2
MDM3YWIyMmQ1ZGFkZTMxZTljODRiMzI3YTMyOGNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlTWFuYWdl
ci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTkVUV09SS19DQVBUVVJFKQogCi0j
aW5jbHVkZSAiTmV0d29ya0NhcHR1cmVUeXBlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUhh
bmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CkBAIC04MCw3ICs4MCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ0xvYWRlZFJlc291cmNlKFJlc291cmNlJik7CiAgICAg
dm9pZCBsb2dQbGF5ZWRCYWNrUmVzb3VyY2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCB3YXNDYWNoZU1pc3MpOwogCi0gICAgRmlsZUhhbmRsZSBvcGVuQ2FjaGVGaWxlKGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSk7CisgICAgV2ViQ29yZTo6RmlsZUhh
bmRsZSBvcGVuQ2FjaGVGaWxlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkZpbGVPcGVuTW9kZSk7
CiAKICAgICBTdHJpbmcgcmVxdWVzdFRvUGF0aChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKIApAQCAtMTAxLDE5ICsxMDEsMTYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgc3RyaW5n
VG9IYXNoKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBoYXNoVG9QYXRoKGNvbnN0IFN0cmlu
ZyYgaGFzaCk7CiAKLSAgICBib29sIGVuc3VyZUZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBmaWxl
UGF0aCwgRmlsZUhhbmRsZSYpOwotCiAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8VmVjdG9yPFN0
cmluZz4+PiByZWFkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVQYXRoKTsKICAgICBib29sIGdldExp
bmUodWludDhfdCBjb25zdCAqJiBwLCB1aW50OF90IGNvbnN0ICogY29uc3QgZW5kLCBWZWN0b3I8
U3RyaW5nPiYgbGluZSk7CiAgICAgYm9vbCBnZXRXb3JkKHVpbnQ4X3QgY29uc3QgKiYgcCwgdWlu
dDhfdCBjb25zdCAqIGNvbnN0IGVuZCwgU3RyaW5nJiB3b3JkKTsKLSAgICBib29sIHByaW50VG9G
aWxlKGNvbnN0IEZpbGVIYW5kbGUmLCBjb25zdCBjaGFyKiBmb3JtYXQsIC4uLik7CiAKICAgICBS
ZWNvcmRSZXBsYXlNb2RlIG1fcmVjb3JkUmVwbGF5TW9kZSB7IERpc2FibGVkIH07CiAgICAgU3Ry
aW5nIG1fcmVjb3JkUmVwbGF5Q2FjaGVMb2NhdGlvbjsKIAotICAgIEZpbGVIYW5kbGUgbV9sb2Fk
RmlsZUhhbmRsZTsKLSAgICBGaWxlSGFuZGxlIG1fcmVwbGF5RmlsZUhhbmRsZTsKLSAgICBGaWxl
SGFuZGxlIG1fcmVjb3JkRmlsZUhhbmRsZTsKKyAgICBXZWJDb3JlOjpGaWxlSGFuZGxlIG1fbG9h
ZEZpbGVIYW5kbGU7CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBtX3JlY29yZEZpbGVIYW5kbGU7
CisgICAgV2ViQ29yZTo6RmlsZUhhbmRsZSBtX3JlcGxheUZpbGVIYW5kbGU7CiAKICAgICBWZWN0
b3I8UmVzb3VyY2U+IG1fY2FjaGVkUmVzb3VyY2VzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlUmVj
b3JkZXIuY3BwCmluZGV4IGI2YzFjNTJhOTAwMzBkYzg3N2ZiYzgxMzkyMmM1MTJjMGM0YTk0MDMu
LjU5MWViNGZjMjk2ZDIzNmUxZmRlODBiMzk1MDQ2ZmFkODI1M2RjOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVSZWNvcmRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3Jr
Q2FwdHVyZVJlY29yZGVyLmNwcApAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAK
LSNkZWZpbmUgREVCVUdfQ0xBU1MgTWFuYWdlcgorI2RlZmluZSBERUJVR19DTEFTUyBSZWNvcmRl
cgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIG5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZSB7CkBAIC0x
NDEsNyArMTQxLDcgQEAgdm9pZCBSZWNvcmRlcjo6d3JpdGVFdmVudHMoKQogICAgICAgICAvLyB0
byBiZXR0ZXIgZmluZCB0aGUgc2VwYXJhdGUgSlNPTiBvYmplY3RzIHRoYXQgd2Ugd3JpdGUgdG8g
YSBzaW5nbGUKICAgICAgICAgLy8gZmlsZS4gSXQgYWxzbyB3b3JrcyBiZXR0ZXIgd2l0aCBKU09O
IHBhcnNlcnMgdGhhdCBleHBlY3QgdG8gZmluZCBhCiAgICAgICAgIC8vIE5VTCBhdCB0aGUgZW5k
IG9mIHRoZWlyIGlucHV0LgotICAgICAgICBpZiAoaGFuZGxlLndyaXRlVG9GaWxlKGFzU3RyaW5n
LmNfc3RyKCksIGFzU3RyaW5nLnNpemUoKSArIDEpID09IC0xKSB7CisgICAgICAgIGlmIChoYW5k
bGUud3JpdGUoYXNTdHJpbmcuY19zdHIoKSwgYXNTdHJpbmcuc2l6ZSgpICsgMSkgPT0gLTEpIHsK
ICAgICAgICAgICAgIERFQlVHX0xPR19FUlJPUigiRXJyb3IgdHJ5aW5nIHRvIHdyaXRlIHRvIGZp
bGUgZm9yIFVSTCA9ICV7cHVibGljfXMiLCBERUJVR19TVFIobV9pbml0aWFsUmVxdWVzdC51cmwo
KS5zdHJpbmcoKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jYXB0dXJlL05ldHdvcmtDYXB0dXJlVHlw
ZXMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1
cmVUeXBlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTZjMTY0NWRlNTc0YWY3
ZTZiOGFhMWJhZTk3MTQ5MDljOGEwMjFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0
d29ya0NhcHR1cmVUeXBlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKE5FVFdPUktfQ0FQVFVSRSkKLQotI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLW5hbWVz
cGFjZSBOZXR3b3JrQ2FwdHVyZSB7Ci0KLWNsYXNzIEZpbGVIYW5kbGUgZmluYWwgewotcHVibGlj
OgotICAgIEZpbGVIYW5kbGUoKSA9IGRlZmF1bHQ7Ci0KLSAgICBGaWxlSGFuZGxlKFdlYkNvcmU6
OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlKQotICAgICAgICA6IG1fZmlsZUhhbmRsZShm
aWxlSGFuZGxlKSB7IH0KLQotICAgIEZpbGVIYW5kbGUoRmlsZUhhbmRsZSYmIG90aGVyKQotICAg
ICAgICA6IG1fZmlsZUhhbmRsZShzdGQ6OmV4Y2hhbmdlKG90aGVyLm1fZmlsZUhhbmRsZSwgV2Vi
Q29yZTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkpIHsgfQotCi0gICAgfkZpbGVIYW5kbGUo
KQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgfQotCi0gICAgRmlsZUhhbmRsZSYg
b3BlcmF0b3I9KFdlYkNvcmU6OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFuZGxlKQotICAgIHsK
LSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAgICAgIG1fZmlsZUhhbmRsZSA9IGZpbGVIYW5kbGU7
Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBGaWxlSGFuZGxlJiBvcGVyYXRv
cj0oRmlsZUhhbmRsZSYmIG90aGVyKQotICAgIHsKLSAgICAgICAgY2xvc2VGaWxlKCk7Ci0gICAg
ICAgIG1fZmlsZUhhbmRsZSA9IHN0ZDo6ZXhjaGFuZ2Uob3RoZXIubV9maWxlSGFuZGxlLCBXZWJD
b3JlOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwot
ICAgIH0KLQotICAgIEZpbGVIYW5kbGUoY29uc3QgRmlsZUhhbmRsZSYpID0gZGVsZXRlOwotICAg
IEZpbGVIYW5kbGUmIG9wZXJhdG9yPShjb25zdCBGaWxlSGFuZGxlJikgPSBkZWxldGU7Ci0KLSAg
ICBvcGVyYXRvciBXZWJDb3JlOjpQbGF0Zm9ybUZpbGVIYW5kbGUoKSBjb25zdCB7IHJldHVybiBt
X2ZpbGVIYW5kbGU7IH0KLSAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1
cm4gV2ViQ29yZTo6aXNIYW5kbGVWYWxpZChtX2ZpbGVIYW5kbGUpOyB9Ci0KLSAgICBzdGF0aWMg
RmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIFdlYkNvcmU6OkZpbGVPcGVu
TW9kZSBtb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEZpbGVIYW5kbGUoV2ViQ29yZTo6b3Bl
bkZpbGUocGF0aCwgbW9kZSkpOwotICAgIH0KLQotICAgIGludCByZWFkRnJvbUZpbGUodm9pZCog
ZGF0YSwgaW50IGxlbmd0aCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpy
ZWFkRnJvbUZpbGUobV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjaGFyKj4oZGF0YSksIGxlbmd0
aCk7Ci0gICAgfQotCi0gICAgaW50IHdyaXRlVG9GaWxlKGNvbnN0IHZvaWQqIGRhdGEsIGludCBs
ZW5ndGgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gV2ViQ29yZTo6d3JpdGVUb0ZpbGUo
bV9maWxlSGFuZGxlLCBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oZGF0YSksIGxlbmd0aCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBjbG9zZUZpbGUoKQotICAgIHsKLSAgICAgICAgV2ViQ29yZTo6Y2xv
c2VGaWxlKG1fZmlsZUhhbmRsZSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFdlYkNvcmU6OlBs
YXRmb3JtRmlsZUhhbmRsZSBtX2ZpbGVIYW5kbGUgeyBXZWJDb3JlOjppbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBOZXR3b3JrQ2FwdHVyZQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19DQVBUVVJFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDIyYWI1ZjBkMDZjODQ3NzM3ZDAzMmVkYzZmYWViNDM5MmM2MzgzZTMuLmUxMWZhZjk1YjM1NTQz
ZmFjOWRmMGI2OTg2YmY2ZWFkMWQ5ZGIyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNzYsNyArMTA3Niw2IEBACiAJCTUz
QkE0N0QwMURDMkVGNUUwMDRERjRBRCAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ2MURDMkVFNDAw
MDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmNwcCAqLzsgfTsKIAkJNTNCQTQ3RDExREMy
RUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBO
ZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzREVBMzY2MURERTQyMzEwMEU4MjY0OCAv
KiBqc29uLmhwcCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUzREVBMzY1MURERTQyMkUwMEU4MjY0OCAvKiBqc29uLmhwcCAqLzsgfTsKLQkJNTNFMjYwNjUx
RERBOTQ4RTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzRTI2MDY0MUREQTk0ODEwMDU5MDgxOCAv
KiBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggKi87IH07CiAJCTVDMDUyRjI2MUM2RDNCRDMwMDc2RTkx
OSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDUyRjI0MUM2RDNBQjYwMDc2RTkxOSAvKiBBdXRo
ZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLzsgfTsKIAkJNUMxNDI2RUMxQzIzRjgwOTAwRDQx
MTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4
MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi87IH07CiAJCTVDMTQy
NkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMxNDI2RTMx
QzIzRjgwNTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi87
IH07CkBAIC0zMTg0LDcgKzMxODMsNyBAQAogCQk1MkQ1QTFCMzFDNTc0OUYyMDBERTM0QTMgLyog
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MkQ1QTFCNDFDNTc0OUYyMDBERTM0QTMgLyogV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUzMDI1ODJFMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlc291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlUmVz
b3VyY2UuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9OZXR3b3JrQ2FwdHVyZVJl
c291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTMwMjU4MkYxRENCQkQx
RDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya0NhcHR1cmVSZXNvdXJjZS5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvY2FwdHVyZS9OZXR3b3JrZUNhY2hlZFJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUzMDI1ODJGMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJl
c291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJl
UmVzb3VyY2UuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVS
ZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzMDFEQ0JCRDFE
MDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrQ2FwdHVyZUV2ZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUzMDI1ODMxMURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtDYXB0dXJlRXZl
bnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhcHR1cmUvTmV0d29ya0NhcHR1cmVFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzAyNTgzMjFEQ0JCRDFEMDBEQTg5QzIg
LyogTmV0d29ya0NhcHR1cmVMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE5ldHdvcmtDYXB0dXJlTG9nZ2luZy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZUxvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyMDMsNyArMzIwMiw2IEBACiAJCTUzOUVCNTQ2MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3Jr
RGF0YVRhc2tCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5l
dHdvcmtEYXRhVGFza0Jsb2IuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzOUVCNTQ3MURDMkVF
NDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE5ldHdvcmtEYXRhVGFza0Jsb2IuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtEYXRhVGFza0Jsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTNE
RUEzNjUxRERFNDIyRTAwRTgyNjQ4IC8qIGpzb24uaHBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuaDsgbmFtZSA9IGpzb24uaHBwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVyZS9qc29u
LmhwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTNFMjYwNjQxRERBOTQ4MTAwNTkw
ODE4IC8qIE5ldHdvcmtDYXB0dXJlVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTmV0d29ya0NhcHR1cmVUeXBlcy5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FwdHVy
ZS9OZXR3b3JrQ2FwdHVyZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
OUQxOEI3MUNDRkUzNEIwMEIxOTc0QyAvKiBQaG90b3NTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGhv
dG9zU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMDUyRjI0MUM2RDNBQjYw
MDc2RTkxOSAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEF1dGhlbnRpY2F0aW9uTWFuYWdlckNvY29hLm1tOyBw
YXRoID0gQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMTQyNkUyMUMyM0Y4MDUwMEQ0MTE4MyAv
KiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODY4LDcgKzU4NjYsNiBAQAogCQkJ
CTUzMDI1ODM2MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJlY29yZGVyLmggKi8s
CiAJCQkJNTMwMjU4MzcxRENCQkQxRDAwREE4OUMyIC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIu
Y3BwICovLAogCQkJCTUzMDI1ODM4MURDQkJEMUQwMERBODlDMiAvKiBOZXR3b3JrQ2FwdHVyZVJl
cGxheWVyLmggKi8sCi0JCQkJNTNFMjYwNjQxRERBOTQ4MTAwNTkwODE4IC8qIE5ldHdvcmtDYXB0
dXJlVHlwZXMuaCAqLywKIAkJCQk1MzAyNTgzOTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0d29ya0Rh
dGFUYXNrUmVwbGF5LmNwcCAqLywKIAkJCQk1MzAyNTgzQTFEQ0JCRDFEMDBEQTg5QzIgLyogTmV0
d29ya0RhdGFUYXNrUmVwbGF5LmggKi8sCiAJCQkpOwpAQCAtNzg5Miw3ICs3ODg5LDYgQEAKIAkJ
CQk1MzAyNTg0MTFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1cmVNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MzAyNTg0MzFEQ0JCRDIyMDBEQTg5QzIgLyogTmV0d29ya0NhcHR1
cmVSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTMwMjU4NDUxRENCQkQyMjAwREE4OUMy
IC8qIE5ldHdvcmtDYXB0dXJlUmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUzRTI2MDY1
MUREQTk0OEUwMDU5MDgxOCAvKiBOZXR3b3JrQ2FwdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MTNBMTY0RDE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxREQ5RjI5MTYzNjdEQTIwMDE1NzhFOSAvKiBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0JDOUI4RTFDNjUyQ0EwMDBBOEZEQ0YgLyogTmV0d29ya0RhdGFUYXNrLmggaW4gSGVhZGVy
cyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>