<?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>178681</bug_id>
          
          <creation_ts>2017-10-23 14:18:58 -0700</creation_ts>
          <short_desc>Remove scopeguard from platform</short_desc>
          <delta_ts>2017-11-15 13:03:03 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christopher Reid">chris.reid</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>chris.reid</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>jsbell</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1363396</commentid>
    <comment_count>0</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-23 14:18:58 -0700</bug_when>
    <thetext>FileSystem uses scopeguard so filesystem can&apos;t be moved into PAL while scopeguard is in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363442</commentid>
    <comment_count>1</comment_count>
      <attachid>324604</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-23 16:01:27 -0700</bug_when>
    <thetext>Created attachment 324604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363444</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-23 16:05:10 -0700</bug_when>
    <thetext>Attachment 324604 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/IDBRequest.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363446</commentid>
    <comment_count>3</comment_count>
      <attachid>324606</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-23 16:13:04 -0700</bug_when>
    <thetext>Created attachment 324606
Patch

Fixing style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363460</commentid>
    <comment_count>4</comment_count>
      <attachid>324610</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-23 16:41:29 -0700</bug_when>
    <thetext>Created attachment 324610
Patch

Patch - Fixing a poorly merged line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363581</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-23 22:44:54 -0700</bug_when>
    <thetext>I&apos;m surprised so few places use this.

Regardless, there&apos;s nothing &quot;Platform&quot; about this class - It belongs in WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363664</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-24 05:37:49 -0700</bug_when>
    <thetext>WTF already has ScopeExit, which looks similar. Maybe we can just remove ScopeGuard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364028</commentid>
    <comment_count>7</comment_count>
      <attachid>324764</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-24 17:12:05 -0700</bug_when>
    <thetext>Created attachment 324764
patch

Here&apos;s a patch replacing Webcore::ScopeGuard with WTF::ScopeExit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364031</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-24 17:14:08 -0700</bug_when>
    <thetext>Attachment 324764 did not pass style-queue:


ERROR: Source/WebCore/workers/service/ServiceWorkerContainer.cpp:45:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit/Shared/mac/ChildProcessMac.mm:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/FileSystem.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:48:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/network/BlobRegistryImpl.cpp:44:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 6 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364033</commentid>
    <comment_count>9</comment_count>
      <attachid>324765</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-24 17:21:07 -0700</bug_when>
    <thetext>Created attachment 324765
Patch

Fixing style issues for scopeguard removal patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364034</commentid>
    <comment_count>10</comment_count>
      <attachid>324766</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-24 17:21:56 -0700</bug_when>
    <thetext>Created attachment 324766
Patch

Accidentally uploaded an older patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364534</commentid>
    <comment_count>11</comment_count>
      <attachid>324766</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-10-25 15:27:34 -0700</bug_when>
    <thetext>Comment on attachment 324766
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:174
&gt; +    std::unique_ptr&lt;WTF::ScopeExit&lt;std::function&lt;void()&gt;&gt;&gt; m_cursorRequestNotifier;

Is there a reason this needs to be std::function?  We&apos;re trying to use WTF::Function instead because it&apos;s non-copyable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364547</commentid>
    <comment_count>12</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-25 15:47:14 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; Comment on attachment 324766 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=324766&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBRequest.h:174
&gt; &gt; +    std::unique_ptr&lt;WTF::ScopeExit&lt;std::function&lt;void()&gt;&gt;&gt; m_cursorRequestNotifier;
&gt; 
&gt; Is there a reason this needs to be std::function?  We&apos;re trying to use
&gt; WTF::Function instead because it&apos;s non-copyable.

For some reason I thought ScopeGuard was using std::function, but I was mistaken. I&apos;ll change it to WTF::Function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364612</commentid>
    <comment_count>13</comment_count>
      <attachid>324932</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-25 18:07:44 -0700</bug_when>
    <thetext>Created attachment 324932
Patch

Using WTF::Function instead of std::function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364613</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-25 18:10:34 -0700</bug_when>
    <thetext>Attachment 324932 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364616</commentid>
    <comment_count>15</comment_count>
      <attachid>324934</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-25 18:15:23 -0700</bug_when>
    <thetext>Created attachment 324934
Patch

Using WTF::Function instead of std::function - Fixing style issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364623</commentid>
    <comment_count>16</comment_count>
      <attachid>324938</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2017-10-25 18:38:55 -0700</bug_when>
    <thetext>Created attachment 324938
Patch

Using WTF::Function instead of std::function -- Missed a new scope guard that was added today :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364651</commentid>
    <comment_count>17</comment_count>
      <attachid>324938</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-25 20:20:57 -0700</bug_when>
    <thetext>Comment on attachment 324938
Patch

LGTM once EWS is all green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364821</commentid>
    <comment_count>18</comment_count>
      <attachid>324938</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 07:06:30 -0700</bug_when>
    <thetext>Comment on attachment 324938
Patch

Clearing flags on attachment: 324938

Committed r224018: &lt;https://trac.webkit.org/changeset/224018&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364822</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 07:06:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372333</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:03:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568687&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324604</attachid>
            <date>2017-10-23 16:01:27 -0700</date>
            <delta_ts>2017-10-23 16:13:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681.diff</filename>
            <type>text/plain</type>
            <size>18023</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZGQ1ZDBmOTEzNC4uY2I5ZjFiNGNlODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9P
UFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoK
KwogMjAxNy0xMC0yMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
W1BheW1lbnQgUmVxdWVzdF0gUmVzb2x2ZSBQYXltZW50UmVxdWVzdC5zaG93KCkncyBhY2NlcHQg
cHJvbWlzZSB3aGVuIGEgcGF5bWVudCBpcyBhdXRob3JpemVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDA1ZDI4ZTMwOTMxLi5jNThk
ZTIyYWU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHAKQEAgLTQ1LDE1ICs0NSwxNiBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJl
cnMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgogI2luY2x1ZGUg
PGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgSlNDOwordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogUmVmPElEQlJlcXVlc3Q+IElEQlJl
cXVlc3Q6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RT
dG9yZSYgb2JqZWN0U3RvcmUsIElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBjMmFlMzZm
NzRmYS4uNGVlNzQxOTA4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmgKQEAgLTM0LDYgKzM0LDExIEBACiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJv
bmcuaD4KKyNpbmNsdWRlIDxwYWwvU2NvcGVHdWFyZC5oPgorCituYW1lc3BhY2UgUEFMIHsKKyAg
ICBjbGFzcyBTY29wZUd1YXJkOworfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDcg
KzUyLDYgQEAgY2xhc3MgSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBJREJSZXN1bHREYXRhOwogY2xh
c3MgSURCVHJhbnNhY3Rpb247CiBjbGFzcyBJREJWYWx1ZTsKLWNsYXNzIFNjb3BlR3VhcmQ7CiBj
bGFzcyBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjsKIAogbmFtZXNwYWNlIElEQkNsaWVudCB7CkBAIC0x
NzAsNyArMTc0LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxJREJDdXJzb3I+IG1fcGVuZGlu
Z0N1cnNvcjsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxTY29wZUd1YXJkPiBtX2N1cnNvclJlcXVl
c3ROb3RpZmllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTY29wZUd1YXJkPiBtX2N1cnNv
clJlcXVlc3ROb3RpZmllcjsKIAogICAgIFJlZjxJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eT4gbV9jb25uZWN0aW9uUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXgg
YWY4MjVlZjJiNTYuLjBjNDc4MWU2MGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAg
LTQwLDExICs0MCwxMSBAQAogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1
ZGUgIklEQlZhbHVlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlNjb3BlR3Vh
cmQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cGFsL1Njb3BlR3Vh
cmQuaD4KICNpbmNsdWRlIDxydW50aW1lL0F1eGlsaWFyeUJhcnJpZXJJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KQEAgLTk4NCw3ICs5ODQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3Jt
UHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIH0K
IAogICAgIGJvb2wgdXNlZEtleUlzR2VuZXJhdGVkID0gZmFsc2U7Ci0gICAgU2NvcGVHdWFyZCBn
ZW5lcmF0ZWRLZXlSZXNldHRlcjsKKyAgICBQQUw6OlNjb3BlR3VhcmQgZ2VuZXJhdGVkS2V5UmVz
ZXR0ZXI7CiAgICAgaWYgKG9iamVjdFN0b3JlSW5mby0+YXV0b0luY3JlbWVudCgpICYmICFrZXlE
YXRhLmlzVmFsaWQoKSkgewogICAgICAgICB1aW50NjRfdCBrZXlOdW1iZXI7CiAgICAgICAgIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPmdlbmVyYXRlS2V5TnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRp
Zmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cK
aW5kZXggNTYwMmEwMmM1NGEuLjZjYjZkNTdlMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhbC9TY29wZUd1YXJkLmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2VcV2ViQ29yZVxwbGF0Zm9ybVxTY29wZUd1YXJkLmguCisKIDIwMTctMTAtMjAgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBv
c2UgX2JvdW5kSW50ZXJmYWNlSWRlbnRpZmllciBhbmQgX2FsbG93c0NlbGx1bGFyQWNjZXNzIHRv
IFdLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNTFhZGIwMDgxMC4uNjdmNzA3NDc5MDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyNyw2ICsxMjcsNyBAQAogCQlBMzBENDEyMTFGMEREMEVBMDBCNzE5NTQgLyogS2ls
bFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
MEQ0MTFFMUYwREQwRUEwMEI3MTk1NCAvKiBLaWxsUmluZy5oICovOyB9OwogCQlBMzBENDEyMjFG
MEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5n
LmNwcCAqLzsgfTsKIAkJQTMwRDQxMjUxRjBERDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTMwRDQxMjQx
RjBERDEyRDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tICovOyB9OworCQlBMzUxQjYzODFGOUU4
RENCMDBBOUU4MTUgLyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTM1MUI2MzcxRjlFOERDQjAwQTlFODE1IC8qIFNjb3BlR3VhcmQu
aCAqLzsgfTsKIAkJQTM3ODhFOTgxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzc4OEU5NzFGMDVCNkNFMDA2
Nzk0MjUgLyogU291bmQuaCAqLzsgfTsKIAkJQTM3ODhFOUMxRjA1Qjc4MjAwNjc5NDI1IC8qIFNv
dW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEz
Nzg4RTlCMUYwNUI3ODIwMDY3OTQyNSAvKiBTb3VuZC5jcHAgKi87IH07CiAJCUEzNzg4RTlFMUYw
NUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzNzg4RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5t
bSAqLzsgfTsKQEAgLTI2OCw2ICsyNjksNyBAQAogCQlBMzBENDExRTFGMEREMEVBMDBCNzE5NTQg
LyogS2lsbFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMUYxRjBERDBFQTAwQjcxOTU0
IC8qIEtpbGxSaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtp
bGxSaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTMwRDQxMjQxRjBERDEy
RDAwQjcxOTU0IC8qIEtpbGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gS2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUEzNTFCNjM3MUY5RThEQ0IwMEE5RTgxNSAvKiBTY29wZUd1YXJkLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlR3VhcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTM3ODhFOTcxRjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNvdW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUEzNzg4RTlCMUYwNUI3ODIwMDY3OTQyNSAvKiBTb3VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTb3VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEzNzg4RTlEMUYwNUI3OEUwMDY3OTQyNSAvKiBTb3VuZE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNvdW5kTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDc4LDYgKzQ4MCw3IEBACiAJCQkJMUM0ODc2RDcxRjhEN0Y0RTAwQ0NF
RUJEIC8qIExvZ2dpbmcuaCAqLywKIAkJCQkxQzQ4NzZERDFGOEQ4MTJCMDBDQ0VFQkQgLyogTG9n
SW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQkxQzQ4NzZEQzFGOEQ3RkM2MDBDQ0VFQkQgLyogTG9n
TWFjcm9zLmggKi8sCisJCQkJQTM1MUI2MzcxRjlFOERDQjAwQTlFODE1IC8qIFNjb3BlR3VhcmQu
aCAqLywKIAkJCQlBM0M2NkNEQTFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmNwcCAqLywK
IAkJCQlBM0M2NkNEQjFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmggKi8sCiAJCQkpOwpA
QCAtNjc5LDYgKzY4Miw3IEBACiAJCQkJQTEwMjY1OEIxRjU2NzQ4QzAwQjRDODQ0IC8qIFF1aWNr
RHJhd1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM3Nzg1QTAxRjQ1MTMwRjAwRjRFQkI2IC8q
IFF1aWNrTG9va01hY1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5MjAxRjQzQTRDNzAw
MkVBQzAyIC8qIFF1aWNrTG9va1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTM1MUI2MzgxRjlF
OERDQjAwQTlFODE1IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU4
MUYzQkVCNDkwMERCQzMxNyAvKiBTZXJ2ZXJzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0M2
NkNERDFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLywKIAkJCQlB
M0FCNkU1NjFGM0QxRERCMDA5QzE0QjEgLyogU2xlZXBEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL1Njb3BlR3VhcmQuaApzaW1pbGFyaXR5IGluZGV4IDk0JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJkLmgKcmVuYW1lIHRvIFNv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvU2NvcGVHdWFyZC5oCmluZGV4IGQ0Y2IzYjlmOGViLi5jNzZm
MmNkYmYwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvU2NvcGVHdWFyZC5oCkBAIC0yMiwxMiArMjIs
MTEgQEAKICAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwotI2lmbmRlZiBTY29wZUd1YXJkX2gKLSNkZWZpbmUgU2NvcGVHdWFyZF9oCisjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgUEFMIHsKIAogY2xhc3MgU2NvcGVHdWFyZCB7CiBwdWJsaWM6CkBAIC02
MCw2ICs1OSw0IEBAIHByaXZhdGU6CiAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rp
b247CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTY29wZUd1YXJk
X2gKK30gLy8gbmFtZXNwYWNlIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcxY2I3YTc4YjVjLi4xNWFmYjA1N2Y5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTkxNiw3ICsxOTE2LDcgQEAKIAkJNTEzRjE0NTQwQUI2MzRDNDAwMDk0RERGIC8qIEljb25M
b2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
M0YxNDUyMEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggKi87IH07CiAJCTUxNDA1Qzg4
MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MDVDODYxOTBCMDE0NDAwNzU0
Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi87IH07CiAJCTUxNDA1Qzg5MTkwQjAx
NDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg3MTkwQjAxNDQwMDc1NEY5NCAvKiBT
ZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQgLyogU2NvcGVHdWFyZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OEYx
QzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTQxMjk5ODFDNjk3NjkwMDA1OUU3MTQgLyogSURC
UmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5NjFDNjk3NjE1MDA1OUU3MTQgLyogSURCUmVxdWVzdENv
bXBsZXRpb25FdmVudC5jcHAgKi87IH07CiAJCTUxNDEyOTk5MUM2OTc2OTAwMDU5RTcxNCAvKiBJ
REJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5NzFDNjk3NjE1MDA1OUU3MTQgLyogSURCUmVxdWVzdENv
bXBsZXRpb25FdmVudC5oICovOyB9OwogCQk1MTQzQjI2MzFEREQxNTIwMDAxNEZBQzYgLyogTGlu
a0ljb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NDNCMjYyMURERDE0OTAwMDE0RkFDNiAvKiBMaW5rSWNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxNDVCMTBBMUJDNDhFMkUwMEU4NjIxOSAv
KiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNDVCMTA4MUJDNDg5MEIwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlk
ZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtOTI0NSw3ICs5MjQ1LDYgQEAKIAkJNTE0MDVDODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNl
bGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvblJlY3RHYXRoZXJlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk4RDFDNUZEN0U5MDA1OUU3MTQg
LyogSlNJREJDdXJzb3JXaXRoVmFsdWVDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNJREJDdXJzb3JXaXRoVmFsdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1MTQxMjk4RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVHdWFy
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZUd1YXJkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTk2MUM2OTc2MTUwMDU5RTcxNCAvKiBJREJS
ZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTQxMjk5NzFDNjk3NjE1MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRp
b25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJSZXF1ZXN0Q29t
cGxldGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTlBMUM2
QzE2NkQwMDU5RTcxNCAvKiBKU0lEQkluZGV4Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCSW5kZXhDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjQzNTQsNyArMjQzNTMsNiBAQAogCQkJCTI5M0VBRTFFMTM1NkIyRkUw
MDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCAqLywKIAkJCQk1MTYyQzdGMjEx
Rjc3RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuY3BwICovLAogCQkJCTUxNjJDN0YzMTFG
NzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovLAotCQkJCTUxNDEyOThGMUM2MDFB
ODkwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggKi8sCiAJCQkJQkM4QUUzNEMxMkVBMDk2QTAwRUIz
QUU2IC8qIFNjcm9sbGFibGVBcmVhLmNwcCAqLywKIAkJCQlCQzhBRTM0RDEyRUEwOTZBMDBFQjNB
RTYgLyogU2Nyb2xsYWJsZUFyZWEuaCAqLywKIAkJCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMg
LyogU2Nyb2xsQW5pbWF0b3IuY3BwICovLApAQCAtMjk2MzAsNyArMjk2MjgsNiBAQAogCQkJCTVE
RkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBTY2hlZHVsZWRBY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxNjJDN0Y1MTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOUJEMEJGOTMxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVl
dWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxNDEyOTkwMUM2MDFBQ0MwMDU5RTcxNCAvKiBTY29w
ZUd1YXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFCRTBDMjc0REFDMDA5RjRFQzkgLyog
U2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODREODJDMTExRDM0NzQ4MDA5NzI5OTAgLyog
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYxRDIxRjBF
RjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKaW5kZXggYTEzZDZiYzdiZDguLmIx
NTE2ODU2OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMjgs
NyArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKIAogI2luY2x1ZGUgIkZpbGVNZXRh
ZGF0YS5oIgotI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKKyNpbmNsdWRlIDxwYWwvU2NvcGVHdWFy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMjEzLDcgKzIx
Myw3IEBAIGJvb2wgYXBwZW5kRmlsZUNvbnRlbnRzVG9GaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYg
cGF0aCwgUGxhdGZvcm1GaWxlSGFuZGxlJiB0YXJnCiAgICAgc3RhdGljIGludCBidWZmZXJTaXpl
ID0gMSA8PCAxOTsKICAgICBWZWN0b3I8Y2hhcj4gYnVmZmVyKGJ1ZmZlclNpemUpOwogCi0gICAg
U2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtzb3VyY2VdKCkgeworICAgIFBBTDo6U2NvcGVHdWFyZCBm
aWxlQ2xvc2VyKFtzb3VyY2VdKCkgewogICAgICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxl
ID0gc291cmNlOwogICAgICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKICAgICB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmlu
ZGV4IDViMjc0YzIxMjhkLi42ZmFhOTJiNmRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00MSw3ICs0MSw3IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5o
IgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjp3cml0
ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMKICAg
ICAgICAgICAgICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZTsKICAgICAgICAgICAgICAgICBT
dHJpbmcgdGVtcEZpbGVQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoQVNDSUlMaXRlcmFsKCJCbG9i
IiksIGZpbGUpOwogCi0gICAgICAgICAgICAgICAgU2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtmaWxl
XSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIFBBTDo6U2NvcGVHdWFyZCBmaWxlQ2xvc2Vy
KFtmaWxlXSgpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBjbG9zZUZpbGUoZmlsZSk7
CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
aW5kZXggZTgzMGE4ZGE3M2YuLmYyMTNmZWJhNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC0z
NSwxMyArMzUsMTMgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9y
QmFzZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJk
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYi5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiVVJMLmgiCisjaW5jbHVkZSA8cGFsL1Njb3BlR3VhcmQuaD4KICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjksNyArMTY5LDcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNl
cnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEpCiB7Ci0gICAgU2NvcGVHdWFyZCBndWFy
ZChbdGhpcywgJmpvYl0geworICAgIFBBTDo6U2NvcGVHdWFyZCBndWFyZChbdGhpcywgJmpvYl0g
ewogICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkODQ3
MDU4Mzc5Mi4uZjcyNjNkMjU1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMTAt
MjMgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgorCisgICAgICAgIFtQ
QUxdIE1vdmUgU2NvcGVHdWFyZCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKwog
MjAxNy0xMC0yMyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBzdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyB0byBmaXggdGhlIGJ1
aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXgg
OTU2NDQ1YzIyOTUuLmE5MTQ3ZjBmYTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9D
aGlsZFByb2Nlc3NNYWMubW0KQEAgLTMzLDEwICszMywxMCBAQAogI2ltcG9ydCAiUXVhcmFudGlu
ZVNQSS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2lt
cG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Njb3BlR3VhcmQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVmVyc2lvbi5oPgogI2ltcG9ydCA8bWFjaC9tYWNo
Lmg+CiAjaW1wb3J0IDxtYWNoL3Rhc2suaD4KKyNpbXBvcnQgPHBhbC9TY29wZUd1YXJkLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8cHdkLmg+CiAjaW1w
b3J0IDxzdGRsaWIuaD4KQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIE9TU3RhdHVzIGVuYWJsZVNh
bmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkKIHsKICAgICBpbnQgZXJyb3I7CiAgICAgcXRuX3By
b2NfdCBxdWFyYW50aW5lUHJvcGVydGllcyA9IHF0bl9wcm9jX2FsbG9jKCk7Ci0gICAgU2NvcGVH
dWFyZCBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0ZXIoW3F1YXJhbnRpbmVQcm9wZXJ0aWVzXSgp
IHsKKyAgICBQQUw6OlNjb3BlR3VhcmQgcXVhcmFudGluZVByb3BlcnRpZXNEZWxldGVyKFtxdWFy
YW50aW5lUHJvcGVydGllc10oKSB7CiAgICAgICAgIHF0bl9wcm9jX2ZyZWUocXVhcmFudGluZVBy
b3BlcnRpZXMpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggOWNmNjc5NGVmYTEuLjVjYmRiNGY5MGU5IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTctMTAtMjMgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgorCisgICAg
ICAgIFtQQUxdIE1vdmUgU2NvcGVHdWFyZCBpbnRvIFBBTAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RmlsZU1vbml0b3IuY3BwOgorCiAyMDE3LTEwLTIzICBMdWNhcyBGb3JzY2hsZXIgIDxsZm9yc2No
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwNDU0NDU+CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRl
eCBiZmNkMjk5N2M1OC4uN2Q4YjIxNDQwZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtMjgsOSArMjgsOSBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiVGVzdC5oIgogI2luY2x1ZGUgIldU
RlN0cmluZ1V0aWxpdGllcy5oIgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlTW9uaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU2NvcGVHdWFyZC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0
cmFzLmg+CkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIFN0cmluZyByZWFkQ29udGVudHNPZkZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoKQogCiAgICAgU3RyaW5nQnVmZmVyPExDaGFyPiBidWZmZXIo
YnVmZmVyU2l6ZSk7CiAKLSAgICBTY29wZUd1YXJkIGZpbGVDbG9zZXIoW3NvdXJjZV0oKSB7Cisg
ICAgUEFMOjpTY29wZUd1YXJkIGZpbGVDbG9zZXIoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUp
OwogICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324606</attachid>
            <date>2017-10-23 16:13:04 -0700</date>
            <delta_ts>2017-10-23 16:41:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681.diff</filename>
            <type>text/plain</type>
            <size>18033</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZGQ1ZDBmOTEzNC4uY2I5ZjFiNGNlODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5SW1wbC5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwOgorCiAyMDE3LTEwLTIzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBSZXNvbHZlIFBheW1lbnRSZXF1ZXN0LnNo
b3coKSdzIGFjY2VwdCBwcm9taXNlIHdoZW4gYSBwYXltZW50IGlzIGF1dGhvcml6ZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggMDVk
MjhlMzA5MzEuLmM1OGRlMjJhZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDUsMTUgKzQ1LDE2IEBACiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVy
LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cGFsL1Njb3Bl
R3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8SURC
UmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CmluZGV4IGMyYWUzNmY3NGZhLi40ZWU3NDE5MDg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAtMzQsNiArMzQsMTEgQEAKICNpbmNsdWRl
ICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbmRleGVkREIuaCIKICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CisKK25hbWVz
cGFjZSBQQUwgeworY2xhc3MgU2NvcGVHdWFyZDsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00Nyw3ICs1Miw2IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3MgSURCUmVzdWx0
RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBTY29w
ZUd1YXJkOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIG5hbWVzcGFjZSBJREJDbGll
bnQgewpAQCAtMTcwLDcgKzE3NCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29y
PiBtX3BlbmRpbmdDdXJzb3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9j
dXJzb3JSZXF1ZXN0Tm90aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6U2NvcGVHdWFy
ZD4gbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXI7CiAKICAgICBSZWY8SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk+IG1fY29ubmVjdGlvblByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwCmluZGV4IGFmODI1ZWYyYjU2Li4wYzQ3ODFlNjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCkBAIC00MCwxMSArNDAsMTEgQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8u
aCIKICNpbmNsdWRlICJJREJWYWx1ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5j
bHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9IZWFw
SW5saW5lcy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHBh
bC9TY29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BdXhpbGlhcnlCYXJyaWVySW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CkBAIC05ODQsNyArOTg0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
UmUKICAgICB9CiAKICAgICBib29sIHVzZWRLZXlJc0dlbmVyYXRlZCA9IGZhbHNlOwotICAgIFNj
b3BlR3VhcmQgZ2VuZXJhdGVkS2V5UmVzZXR0ZXI7CisgICAgUEFMOjpTY29wZUd1YXJkIGdlbmVy
YXRlZEtleVJlc2V0dGVyOwogICAgIGlmIChvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1lbnQo
KSAmJiAha2V5RGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgdWludDY0X3Qga2V5TnVtYmVyOwog
ICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDU2MDJhMDJjNTRhLi42Y2I2ZDU3ZTEzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMTAtMjMgIENocmlzdG9waGVyIFJlaWQgIDxjaHJp
cy5yZWlkQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2NvcGVHdWFyZCBpbnRvIFBB
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Njgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvU2NvcGVHdWFyZC5oOiBS
ZW5hbWVkIGZyb20gU291cmNlXFdlYkNvcmVccGxhdGZvcm1cU2NvcGVHdWFyZC5oLgorCiAyMDE3
LTEwLTIwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRXhwb3NlIF9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIgYW5kIF9hbGxvd3NDZWxsdWxh
ckFjY2VzcyB0byBXS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjUxYWRiMDA4MTAuLjY3
ZjcwNzQ3OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjcsNiArMTI3LDcgQEAKIAkJQTMwRDQxMjExRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMzBENDExRTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCAqLzsgfTsKIAkJ
QTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAv
KiBLaWxsUmluZy5jcHAgKi87IH07CiAJCUEzMEQ0MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxs
UmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzMEQ0MTI0MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSAqLzsgfTsKKwkJQTM1
MUI2MzgxRjlFOERDQjAwQTlFODE1IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNTFCNjM3MUY5RThEQ0IwMEE5RTgxNSAvKiBT
Y29wZUd1YXJkLmggKi87IH07CiAJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTM3ODhFOTcx
RjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggKi87IH07CiAJCUEzNzg4RTlDMUYwNUI3ODIwMDY3
OTQyNSAvKiBTb3VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovOyB9OwogCQlB
Mzc4OEU5RTFGMDVCNzhFMDA2Nzk0MjUgLyogU291bmRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzc4OEU5RDFGMDVCNzhFMDA2Nzk0MjUgLyog
U291bmRNYWMubW0gKi87IH07CkBAIC0yNjgsNiArMjY5LDcgQEAKIAkJQTMwRDQxMUUxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQw
RUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0
MTI0MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtpbGxSaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBMzUxQjYzNzFGOUU4RENCMDBBOUU4MTUgLyogU2NvcGVHdWFyZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZUd1YXJkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzNzg4RTk3MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMzc4OEU5RDFGMDVCNzhFMDA2Nzk0MjUgLyogU291bmRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTb3VuZE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3OCw2ICs0ODAsNyBAQAogCQkJCTFDNDg3NkQ3MUY4
RDdGNEUwMENDRUVCRCAvKiBMb2dnaW5nLmggKi8sCiAJCQkJMUM0ODc2REQxRjhEODEyQjAwQ0NF
RUJEIC8qIExvZ0luaXRpYWxpemF0aW9uLmggKi8sCiAJCQkJMUM0ODc2REMxRjhEN0ZDNjAwQ0NF
RUJEIC8qIExvZ01hY3Jvcy5oICovLAorCQkJCUEzNTFCNjM3MUY5RThEQ0IwMEE5RTgxNSAvKiBT
Y29wZUd1YXJkLmggKi8sCiAJCQkJQTNDNjZDREExRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25J
RC5jcHAgKi8sCiAJCQkJQTNDNjZDREIxRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25JRC5oICov
LAogCQkJKTsKQEAgLTY3OSw2ICs2ODIsNyBAQAogCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0
NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYw
MEY0RUJCNiAvKiBRdWlja0xvb2tNYWNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIw
MUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUEz
NTFCNjM4MUY5RThEQ0IwMEE5RTgxNSAvKiBTY29wZUd1YXJkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwQzJEQTE1ODFGM0JFQjQ5MDBEQkMzMTcgLyogU2VydmVyc1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTNDNjZDREQxRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTNBQjZFNTYxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFy
ZC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TY29wZUd1YXJkLmgKc2ltaWxhcml0eSBpbmRl
eCA5NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Njb3BlR3VhcmQuaAppbmRleCBkNGNiM2I5
ZjhlYi4uYzc2ZjJjZGJmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
b3BlR3VhcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Njb3BlR3VhcmQuaApAQCAt
MjIsMTIgKzIyLDExIEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KLSNpZm5kZWYgU2NvcGVHdWFyZF9oCi0jZGVmaW5lIFNjb3BlR3Vh
cmRfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAotbmFtZXNw
YWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBBTCB7CiAKIGNsYXNzIFNjb3BlR3VhcmQgewogcHVi
bGljOgpAQCAtNjAsNiArNTksNCBAQCBwcml2YXRlOgogICAgIFdURjo6RnVuY3Rpb248dm9pZCgp
PiBtX2Z1bmN0aW9uOwogfTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
U2NvcGVHdWFyZF9oCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MWNiN2E3OGI1Yy4uMTVhZmIw
NTdmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE5MTYsNyArMTkxNiw3IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERE
RiAvKiBJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9Owog
CQk1MTQwNUM4ODE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg2MTkw
QjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovOyB9OwogCQk1MTQw
NUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQwNUM4NzE5MEIwMTQ0MDA3
NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTE0MTI5OTAxQzYwMUFDQzAwNTlFNzE0IC8qIFNj
b3BlR3VhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE0MTI5OTgxQzY5NzY5MDAwNTlF
NzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTYxQzY5NzYxNTAwNTlFNzE0IC8qIElE
QlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwICovOyB9OwogCQk1MTQxMjk5OTFDNjk3NjkwMDA1
OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElE
QlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNTE0M0IyNjMxREREMTUyMDAwMTRG
QUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTQzQjI2MjFEREQxNDkwMDAxNEZBQzYgLyogTGlua0ljb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQ1QjEwQTFCQzQ4RTJF
MDBFODYyMTkgLyogSURCUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1QjEwODFCQzQ4OTBCMDBFODYyMTkgLyogSURC
UmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTkyNDUsNyArOTI0NSw2IEBACiAJCTUxNDA1Qzg2MTkwQjAxNDQwMDc1
NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RH
YXRoZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25SZWN0
R2F0aGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OEQxQzVGRDdF
OTAwNTlFNzE0IC8qIEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0IC8q
IFNjb3BlR3VhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVHdWFy
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NjFDNjk3NjE1MDA1OUU3
MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVl
c3RDb21wbGV0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
UmVxdWVzdENvbXBsZXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTQxMjk5QTFDNkMxNjZEMDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkluZGV4Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MzU0LDcgKzI0MzUzLDYgQEAKIAkJCQkyOTNFQUUx
RTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJCQkJ
NTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk1
MTYyQzdGMzExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKLQkJCQk1MTQx
Mjk4RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oICovLAogCQkJCUJDOEFFMzRDMTJF
QTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQxMkVB
MDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5OUJB
RTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKQEAgLTI5NjMwLDcgKzI5NjI4LDYg
QEAKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDBCRjkzMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29w
ZWRFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3
MTQgLyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQkUwQzI3NERBQzAw
OUY0RUM5IC8qIFNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzExMUQzNDc0ODAw
OTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFGMUQyMUYwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGExM2Q2
YmM3YmQ4Li5iMTUxNjg1NjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAKICNpbmNsdWRl
ICJGaWxlTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCisjaW5jbHVkZSA8cGFs
L1Njb3BlR3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAg
LTIxMyw3ICsyMTMsNyBAQCBib29sIGFwcGVuZEZpbGVDb250ZW50c1RvRmlsZUhhbmRsZShjb25z
dCBTdHJpbmcmIHBhdGgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgdGFyZwogICAgIHN0YXRpYyBpbnQg
YnVmZmVyU2l6ZSA9IDEgPDwgMTk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXpl
KTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBQQUw6OlNj
b3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKICAgICAgICAgUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSA9IHNvdXJjZTsKICAgICAgICAgY2xvc2VGaWxlKGhhbmRsZSk7CiAgICAgfSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcAppbmRleCA1YjI3NGMyMTI4ZC4uNmZhYTkyYjZkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcApAQCAtNDEs
NyArNDEsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2luY2x1ZGUgIlNj
b3BlR3VhcmQuaCIKKyNpbmNsdWRlIDxwYWwvU2NvcGVHdWFyZC5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5
SW1wbDo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJs
b2JVUkxzCiAgICAgICAgICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGZpbGU7CiAgICAgICAg
ICAgICAgICAgU3RyaW5nIHRlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxlKEFTQ0lJTGl0
ZXJhbCgiQmxvYiIpLCBmaWxlKTsKIAotICAgICAgICAgICAgICAgIFNjb3BlR3VhcmQgZmlsZUNs
b3NlcihbZmlsZV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBQQUw6OlNjb3BlR3VhcmQg
ZmlsZUNsb3NlcihbZmlsZV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgY2xvc2VG
aWxlKGZpbGUpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwCmluZGV4IGU4MzBhOGRhNzNmLi5mMjEzZmViYTU1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcApAQCAtMzUsMTMgKzM1LDEzIEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik5hdmlnYXRvckJhc2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCi0jaW5jbHVkZSAi
U2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQ
cm92aWRlci5oIgogI2luY2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTY5
LDcgKzE2OSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkV2l0aEV4
Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0CiAKIHZvaWQgU2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2Im
IGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiBkYXRhKQogewotICAgIFNjb3Bl
R3VhcmQgZ3VhcmQoW3RoaXMsICZqb2JdIHsKKyAgICBQQUw6OlNjb3BlR3VhcmQgZ3VhcmQoW3Ro
aXMsICZqb2JdIHsKICAgICAgICAgam9iRGlkRmluaXNoKGpvYik7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZDg0NzA1ODM3OTIuLmY3MjYzZDI1NTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE3LTEwLTIzICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KKwor
ICAgICAgICBbUEFMXSBNb3ZlIFNjb3BlR3VhcmQgaW50byBQQUwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NN
YWMubW06CisKIDIwMTctMTAtMjMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgdG8g
Zml4IHRoZSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGls
ZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCmluZGV4IDk1NjQ0NWMyMjk1Li5hOTE0N2YwZmExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0zMywxMCArMzMsMTAgQEAKICNpbXBvcnQg
IlF1YXJhbnRpbmVTUEkuaCIKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9T
Y29wZUd1YXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBvcnQg
PG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrLmg+CisjaW1wb3J0IDxwYWwvU2NvcGVH
dWFyZC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHB3
ZC5oPgogI2ltcG9ydCA8c3RkbGliLmg+CkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBPU1N0YXR1
cyBlbmFibGVTYW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpCiB7CiAgICAgaW50IGVycm9yOwog
ICAgIHF0bl9wcm9jX3QgcXVhcmFudGluZVByb3BlcnRpZXMgPSBxdG5fcHJvY19hbGxvYygpOwot
ICAgIFNjb3BlR3VhcmQgcXVhcmFudGluZVByb3BlcnRpZXNEZWxldGVyKFtxdWFyYW50aW5lUHJv
cGVydGllc10oKSB7CisgICAgUEFMOjpTY29wZUd1YXJkIHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVs
ZXRlcihbcXVhcmFudGluZVByb3BlcnRpZXNdKCkgewogICAgICAgICBxdG5fcHJvY19mcmVlKHF1
YXJhbnRpbmVQcm9wZXJ0aWVzKTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljZjY3OTRlZmExLi41Y2JkYjRmOTBlOSAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDE3LTEwLTIzICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNv
bT4KKworICAgICAgICBbUEFMXSBNb3ZlIFNjb3BlR3VhcmQgaW50byBQQUwKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKwogMjAxNy0xMC0yMyAgTHVjYXMgRm9yc2NobGVy
ICA8bGZvcnNjaGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MDQ1
NDQ1PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVN
b25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRv
ci5jcHAKaW5kZXggYmZjZDI5OTdjNTguLjdkOGIyMTQ0MGZhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTI4LDkgKzI4LDkg
QEAKICNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlRlc3QuaCIKICNp
bmNsdWRlICJXVEZTdHJpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVNb25p
dG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TY29wZUd1YXJkLmg+CisjaW5jbHVkZSA8cGFsL1Njb3BlR3VhcmQuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0cmluZ0V4dHJhcy5oPgpAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRpYyBTdHJpbmcgcmVhZENv
bnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIAogICAgIFN0cmluZ0J1ZmZlcjxMQ2hh
cj4gYnVmZmVyKGJ1ZmZlclNpemUpOwogCi0gICAgU2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtzb3Vy
Y2VdKCkgeworICAgIFBBTDo6U2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtzb3VyY2VdKCkgewogICAg
ICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlID0gc291cmNlOwogICAgICAgICBjbG9zZUZp
bGUoaGFuZGxlKTsKICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324610</attachid>
            <date>2017-10-23 16:41:29 -0700</date>
            <delta_ts>2017-10-24 17:12:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-2.diff</filename>
            <type>text/plain</type>
            <size>17809</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZGQ1ZDBmOTEzNC4uNjRiOTNlYzRjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgbm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVx
dWVzdC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5SW1wbC5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwOgorCiAyMDE3LTEwLTIzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBSZXNvbHZlIFBheW1lbnRSZXF1ZXN0LnNo
b3coKSdzIGFjY2VwdCBwcm9taXNlIHdoZW4gYSBwYXltZW50IGlzIGF1dGhvcml6ZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggMDVk
MjhlMzA5MzEuLmM1OGRlMjJhZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDUsMTUgKzQ1LDE2IEBACiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVy
LmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8cGFsL1Njb3Bl
R3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBSZWY8SURC
UmVxdWVzdD4gSURCUmVxdWVzdDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5o
CmluZGV4IGMyYWUzNmY3NGZhLi42OWZhNzNlYTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaApAQCAtMzQsNiArMzQsMTEgQEAKICNpbmNsdWRl
ICJJREJSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJbmRleGVkREIuaCIKICNpbmNs
dWRlIDxoZWFwL1N0cm9uZy5oPgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CisKK25hbWVz
cGFjZSBQQUwgeworY2xhc3MgU2NvcGVHdWFyZDsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC00Nyw3ICs1Miw2IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3MgSURCUmVzdWx0
RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBTY29w
ZUd1YXJkOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIG5hbWVzcGFjZSBJREJDbGll
bnQgewpAQCAtMTcwLDcgKzE3NCw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29y
PiBtX3BlbmRpbmdDdXJzb3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9j
dXJzb3JSZXF1ZXN0Tm90aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBBTDo6U2NvcGVHdWFy
ZD4gbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXI7CiAKICAgICBSZWY8SURCQ2xpZW50OjpJREJDb25u
ZWN0aW9uUHJveHk+IG1fY29ubmVjdGlvblByb3h5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwCmluZGV4IGFmODI1ZWYyYjU2Li4wYzQ3ODFlNjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCkBAIC00MCwxMSArNDAsMTEgQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8u
aCIKICNpbmNsdWRlICJJREJWYWx1ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5j
bHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9IZWFw
SW5saW5lcy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHBh
bC9TY29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BdXhpbGlhcnlCYXJyaWVySW5saW5l
cy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CkBAIC05ODQsNyArOTg0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
UmUKICAgICB9CiAKICAgICBib29sIHVzZWRLZXlJc0dlbmVyYXRlZCA9IGZhbHNlOwotICAgIFNj
b3BlR3VhcmQgZ2VuZXJhdGVkS2V5UmVzZXR0ZXI7CisgICAgUEFMOjpTY29wZUd1YXJkIGdlbmVy
YXRlZEtleVJlc2V0dGVyOwogICAgIGlmIChvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1lbnQo
KSAmJiAha2V5RGF0YS5pc1ZhbGlkKCkpIHsKICAgICAgICAgdWludDY0X3Qga2V5TnVtYmVyOwog
ICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDU2MDJhMDJjNTRhLi42Y2I2ZDU3ZTEzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMTAtMjMgIENocmlzdG9waGVyIFJlaWQgIDxjaHJp
cy5yZWlkQHNvbnkuY29tPgorCisgICAgICAgIFtQQUxdIE1vdmUgU2NvcGVHdWFyZCBpbnRvIFBB
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Njgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvU2NvcGVHdWFyZC5oOiBS
ZW5hbWVkIGZyb20gU291cmNlXFdlYkNvcmVccGxhdGZvcm1cU2NvcGVHdWFyZC5oLgorCiAyMDE3
LTEwLTIwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRXhwb3NlIF9ib3VuZEludGVyZmFjZUlkZW50aWZpZXIgYW5kIF9hbGxvd3NDZWxsdWxh
ckFjY2VzcyB0byBXS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjUxYWRiMDA4MTAuLjY3
ZjcwNzQ3OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xMjcsNiArMTI3LDcgQEAKIAkJQTMwRDQxMjExRjBERDBFQTAwQjcx
OTU0IC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMzBENDExRTFGMEREMEVBMDBCNzE5NTQgLyogS2lsbFJpbmcuaCAqLzsgfTsKIAkJ
QTMwRDQxMjIxRjBERDBFQTAwQjcxOTU0IC8qIEtpbGxSaW5nLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzMEQ0MTFGMUYwREQwRUEwMEI3MTk1NCAv
KiBLaWxsUmluZy5jcHAgKi87IH07CiAJCUEzMEQ0MTI1MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxs
UmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzMEQ0MTI0MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSAqLzsgfTsKKwkJQTM1
MUI2MzgxRjlFOERDQjAwQTlFODE1IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEzNTFCNjM3MUY5RThEQ0IwMEE5RTgxNSAvKiBT
Y29wZUd1YXJkLmggKi87IH07CiAJCUEzNzg4RTk4MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTM3ODhFOTcx
RjA1QjZDRTAwNjc5NDI1IC8qIFNvdW5kLmggKi87IH07CiAJCUEzNzg4RTlDMUYwNUI3ODIwMDY3
OTQyNSAvKiBTb3VuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovOyB9OwogCQlB
Mzc4OEU5RTFGMDVCNzhFMDA2Nzk0MjUgLyogU291bmRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzc4OEU5RDFGMDVCNzhFMDA2Nzk0MjUgLyog
U291bmRNYWMubW0gKi87IH07CkBAIC0yNjgsNiArMjY5LDcgQEAKIAkJQTMwRDQxMUUxRjBERDBF
QTAwQjcxOTU0IC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0MTFGMUYwREQw
RUEwMEI3MTk1NCAvKiBLaWxsUmluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBLaWxsUmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEzMEQ0
MTI0MUYwREQxMkQwMEI3MTk1NCAvKiBLaWxsUmluZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtpbGxSaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBMzUxQjYzNzFGOUU4RENCMDBBOUU4MTUgLyogU2NvcGVHdWFyZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZUd1YXJkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEzNzg4RTk3MUYwNUI2Q0UwMDY3OTQyNSAvKiBTb3VuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMzc4OEU5QjFGMDVCNzgyMDA2Nzk0MjUgLyogU291bmQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMzc4OEU5RDFGMDVCNzhFMDA2Nzk0MjUgLyogU291bmRNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTb3VuZE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3OCw2ICs0ODAsNyBAQAogCQkJCTFDNDg3NkQ3MUY4
RDdGNEUwMENDRUVCRCAvKiBMb2dnaW5nLmggKi8sCiAJCQkJMUM0ODc2REQxRjhEODEyQjAwQ0NF
RUJEIC8qIExvZ0luaXRpYWxpemF0aW9uLmggKi8sCiAJCQkJMUM0ODc2REMxRjhEN0ZDNjAwQ0NF
RUJEIC8qIExvZ01hY3Jvcy5oICovLAorCQkJCUEzNTFCNjM3MUY5RThEQ0IwMEE5RTgxNSAvKiBT
Y29wZUd1YXJkLmggKi8sCiAJCQkJQTNDNjZDREExRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25J
RC5jcHAgKi8sCiAJCQkJQTNDNjZDREIxRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25JRC5oICov
LAogCQkJKTsKQEAgLTY3OSw2ICs2ODIsNyBAQAogCQkJCUExMDI2NThCMUY1Njc0OEMwMEI0Qzg0
NCAvKiBRdWlja0RyYXdTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNzc4NUEwMUY0NTEzMEYw
MEY0RUJCNiAvKiBRdWlja0xvb2tNYWNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIw
MUY0M0E0QzcwMDJFQUMwMiAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUEz
NTFCNjM4MUY5RThEQ0IwMEE5RTgxNSAvKiBTY29wZUd1YXJkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwQzJEQTE1ODFGM0JFQjQ5MDBEQkMzMTcgLyogU2VydmVyc1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTNDNjZDREQxRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTNBQjZFNTYxRjNEMUREQjAwOUMxNEIxIC8qIFNsZWVwRGlzYWJsZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFy
ZC5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9TY29wZUd1YXJkLmgKc2ltaWxhcml0eSBpbmRl
eCA5NCUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCnJl
bmFtZSB0byBTb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Njb3BlR3VhcmQuaAppbmRleCBkNGNiM2I5
ZjhlYi4uYzc2ZjJjZGJmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
b3BlR3VhcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1Njb3BlR3VhcmQuaApAQCAt
MjIsMTIgKzIyLDExIEBACiAgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KLSNpZm5kZWYgU2NvcGVHdWFyZF9oCi0jZGVmaW5lIFNjb3BlR3Vh
cmRfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAotbmFtZXNw
YWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIFBBTCB7CiAKIGNsYXNzIFNjb3BlR3VhcmQgewogcHVi
bGljOgpAQCAtNjAsNiArNTksNCBAQCBwcml2YXRlOgogICAgIFdURjo6RnVuY3Rpb248dm9pZCgp
PiBtX2Z1bmN0aW9uOwogfTsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
U2NvcGVHdWFyZF9oCit9IC8vIG5hbWVzcGFjZSBQQUwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3MWNiN2E3OGI1Yy4uNzBlNTY3
Nzk2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE5MTYsNyArMTkxNiw2IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERE
RiAvKiBJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9Owog
CQk1MTQwNUM4ODE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg2MTkw
QjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovOyB9OwogCQk1MTQw
NUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQwNUM4NzE5MEIwMTQ0MDA3
NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTE0MTI5OTAxQzYwMUFDQzAwNTlFNzE0IC8qIFNj
b3BlR3VhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0MTI5OTkxQzY5NzY5MDAwNTlF
NzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEyOTk3MUM2OTc2MTUwMDU5RTcxNCAvKiBJREJS
ZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggKi87IH07CiAJCTUxNDNCMjYzMURERDE1MjAwMDE0RkFD
NiAvKiBMaW5rSWNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0M0IyNjIxREREMTQ5MDAwMTRGQUM2IC8qIExpbmtJY29uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0NUIxMEExQkM0OEUyRTAw
RTg2MjE5IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NUIxMDgxQkM0ODkwQjAwRTg2MjE5IC8qIElEQlJl
c291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC05MjQ1LDcgKzkyNDQsNiBAQAogCQk1MTQwNUM4NjE5MEIwMTQ0MDA3NTRG
OTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDA1Qzg3MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0
aGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VsZWN0aW9uUmVjdEdh
dGhlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOThEMUM1RkQ3RTkw
MDU5RTcxNCAvKiBKU0lEQkN1cnNvcldpdGhWYWx1ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkN1cnNvcldpdGhWYWx1ZUN1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBT
Y29wZUd1YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlR3VhcmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OTYxQzY5NzYxNTAwNTlFNzE0
IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTk3MUM2OTc2MTUwMDU5RTcxNCAvKiBJREJSZXF1ZXN0
Q29tcGxldGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlJl
cXVlc3RDb21wbGV0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
MTI5OUExQzZDMTY2RDAwNTlFNzE0IC8qIEpTSURCSW5kZXhDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJJbmRleEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDM1NCw3ICsyNDM1Miw2IEBACiAJCQkJMjkzRUFFMUUx
MzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLAogCQkJCTUx
NjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5jcHAgKi8sCiAJCQkJNTE2
MkM3RjMxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi8sCi0JCQkJNTE0MTI5
OEYxQzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAqLywKIAkJCQlCQzhBRTM0QzEyRUEw
OTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwICovLAogCQkJCUJDOEFFMzREMTJFQTA5
NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5oICovLAogCQkJCUNBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8sCkBAIC0yOTYzMCw3ICsyOTYyNyw2IEBA
CiAJCQkJNURGRThGNTcwRDE2NDc3QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE2MkM3RjUxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkQwQkY5MzEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVk
RXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE0MTI5OTAxQzYwMUFDQzAwNTlFNzE0
IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUMwMUJFMEMyNzREQUMwMDlG
NEVDOSAvKiBTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NEQ4MkMxMTFEMzQ3NDgwMDk3
Mjk5MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
RjFEMjFGMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNoZWRGcmFtZURhdGEuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCBhMTNkNmJj
N2JkOC4uYjE1MTY4NTY5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3Bw
CkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgogCiAjaW5jbHVkZSAi
RmlsZU1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgorI2luY2x1ZGUgPHBhbC9T
Y29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0y
MTMsNyArMjEzLDcgQEAgYm9vbCBhcHBlbmRGaWxlQ29udGVudHNUb0ZpbGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBQbGF0Zm9ybUZpbGVIYW5kbGUmIHRhcmcKICAgICBzdGF0aWMgaW50IGJ1
ZmZlclNpemUgPSAxIDw8IDE5OwogICAgIFZlY3RvcjxjaGFyPiBidWZmZXIoYnVmZmVyU2l6ZSk7
CiAKLSAgICBTY29wZUd1YXJkIGZpbGVDbG9zZXIoW3NvdXJjZV0oKSB7CisgICAgUEFMOjpTY29w
ZUd1YXJkIGZpbGVDbG9zZXIoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOwogICAgIH0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1w
bC5jcHAKaW5kZXggNWIyNzRjMjEyOGQuLjZmYWE5MmI2ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTY29w
ZUd1YXJkLmgiCisjaW5jbHVkZSA8cGFsL1Njb3BlR3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTI4Niw3ICsyODYsNyBAQCB2b2lkIEJsb2JSZWdpc3RyeUlt
cGw6OndyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibG9i
VVJMcwogICAgICAgICAgICAgICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlOwogICAgICAgICAg
ICAgICAgIFN0cmluZyB0ZW1wRmlsZVBhdGggPSBvcGVuVGVtcG9yYXJ5RmlsZShBU0NJSUxpdGVy
YWwoIkJsb2IiKSwgZmlsZSk7CiAKLSAgICAgICAgICAgICAgICBTY29wZUd1YXJkIGZpbGVDbG9z
ZXIoW2ZpbGVdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgUEFMOjpTY29wZUd1YXJkIGZp
bGVDbG9zZXIoW2ZpbGVdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNsb3NlRmls
ZShmaWxlKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcAppbmRleCBlODMwYThkYTczZi4uZjIxM2ZlYmE1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTM1LDEzICszNSwxMyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJO
YXZpZ2F0b3JCYXNlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlNj
b3BlR3VhcmQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDxwYWwvU2NvcGVHdWFyZC5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE2OSw3
ICsxNjksNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZFdpdGhFeGNl
cHRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLCBjb25zdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJD
b250YWluZXI6OmpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiBq
b2IsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgZGF0YSkKIHsKLSAgICBTY29wZUd1
YXJkIGd1YXJkKFt0aGlzLCAmam9iXSB7CisgICAgUEFMOjpTY29wZUd1YXJkIGd1YXJkKFt0aGlz
LCAmam9iXSB7CiAgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgIH0pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IGQ4NDcwNTgzNzkyLi5mNzI2M2QyNTU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+CisKKyAg
ICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tOgorCiAyMDE3LTEwLTIzICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNzIGRlcHJlY2F0aW9uIHdhcm5pbmdzIHRvIGZp
eCB0aGUgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQ
cm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5t
bQppbmRleCA5NTY0NDVjMjI5NS4uYTkxNDdmMGZhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQpAQCAtMzMsMTAgKzMzLDEwIEBACiAjaW1wb3J0ICJR
dWFyYW50aW5lU1BJLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbXBvcnQgPFdlYkNvcmUvU2Nv
cGVHdWFyZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1WZXJzaW9uLmg+CiAjaW1wb3J0IDxt
YWNoL21hY2guaD4KICNpbXBvcnQgPG1hY2gvdGFzay5oPgorI2ltcG9ydCA8cGFsL1Njb3BlR3Vh
cmQuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDxwd2Qu
aD4KICNpbXBvcnQgPHN0ZGxpYi5oPgpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgT1NTdGF0dXMg
ZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKQogewogICAgIGludCBlcnJvcjsKICAg
ICBxdG5fcHJvY190IHF1YXJhbnRpbmVQcm9wZXJ0aWVzID0gcXRuX3Byb2NfYWxsb2MoKTsKLSAg
ICBTY29wZUd1YXJkIHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVsZXRlcihbcXVhcmFudGluZVByb3Bl
cnRpZXNdKCkgeworICAgIFBBTDo6U2NvcGVHdWFyZCBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0
ZXIoW3F1YXJhbnRpbmVQcm9wZXJ0aWVzXSgpIHsKICAgICAgICAgcXRuX3Byb2NfZnJlZShxdWFy
YW50aW5lUHJvcGVydGllcyk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5Y2Y2Nzk0ZWZhMS4uNWNiZGI0ZjkwZTkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxNy0xMC0yMyAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+
CisKKyAgICAgICAgW1BBTF0gTW92ZSBTY29wZUd1YXJkIGludG8gUEFMCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHA6CisKIDIwMTctMTAtMjMgIEx1Y2FzIEZvcnNjaGxlciAg
PGxmb3JzY2hsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTA0NTQ0
NT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9u
aXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3Iu
Y3BwCmluZGV4IGJmY2QyOTk3YzU4Li5hMjIwNjViYzIwZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCkBAIC0zMCw3ICszMCw3IEBA
CiAjaW5jbHVkZSAiV1RGU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
TW9uaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvU2NvcGVHdWFyZC5oPgorI2luY2x1ZGUgPHBhbC9TY29wZUd1YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9TdHJpbmdFeHRyYXMuaD4KQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHJl
YWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAKICAgICBTdHJpbmdCdWZmZXI8
TENoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihb
c291cmNlXSgpIHsKKyAgICBQQUw6OlNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsK
ICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSA9IHNvdXJjZTsKICAgICAgICAgY2xv
c2VGaWxlKGhhbmRsZSk7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324764</attachid>
            <date>2017-10-24 17:12:05 -0700</date>
            <delta_ts>2017-10-24 17:21:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>178681-3.diff</filename>
            <type>text/plain</type>
            <size>17729</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMWVhNWU4ZjEwNy4uNTk4ZjgzMzY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0xMC0yNCAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjaW5nIHBsYXRm
b3JtL1Njb3BlR3VhcmQgd2l0aCBXVEY6OlNjb3BlRXhpdC4KKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY29wZUd1YXJkLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5jcHA6CisKIDIwMTctMTAtMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRW5hYmxlIFdlYktpdCBsb2dn
aW5nIGNvbmZpZ3VyYXRpb24gYW5kIGRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggMDVkMjhlMzA5MzEuLjgyM2VlNWE0MGIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cApAQCAtNDUsMTAgKzQ1LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
LSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVyLmgiCiAjaW5jbHVkZSA8aGVhcC9T
dHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1Zh
cmlhbnQuaD4KIAogCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpzZXRTb3Vy
Y2UoSURCQ3Vyc29yJiBjdXJzb3IpCiAgICAgQVNTRVJUKCFtX2N1cnNvclJlcXVlc3ROb3RpZmll
cik7CiAKICAgICBtX3NvdXJjZSA9IFNvdXJjZSB7ICZjdXJzb3IgfTsKLSAgICBtX2N1cnNvclJl
cXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgewor
ICAgIG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3Bl
RXhpdDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+PihbdGhpc10oKSB7CiAgICAgICAgIEFTU0VSVChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxJREJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgp
KSk7CiAgICAgICAgIFdURjo6Z2V0PFJlZlB0cjxJREJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgp
KS0+ZGVjcmVtZW50T3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsKICAgICB9KTsKQEAgLTQ4Nyw3
ICs0ODcsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OndpbGxJdGVyYXRlQ3Vyc29yKElEQkN1cnNvciYg
Y3Vyc29yKQogICAgIG1fZG9tRXJyb3IgPSBudWxscHRyOwogICAgIG1faWRiRXJyb3IgPSBJREJF
cnJvciB7IH07CiAKLSAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlx
dWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgeworICAgIG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3BlRXhpdDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+Pihb
dGhpc10oKSB7CiAgICAgICAgIG1fcGVuZGluZ0N1cnNvci0+ZGVjcmVtZW50T3V0c3RhbmRpbmdS
ZXF1ZXN0Q291bnQoKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBjMmFlMzZmNzRmYS4uNjVmMzE0M2I3OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDcg
KzMzLDkgQEAKICNpbmNsdWRlICJJREJFcnJvci5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0OSw2IEBAIGNsYXNzIElEQk9iamVjdFN0b3Jl
OwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uOwogY2xhc3MgSURC
VmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAK
IG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcwLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAKICAg
ICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJzb3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXI7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdURjo6U2NvcGVFeGl0PHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4+IG1fY3Vyc29yUmVxdWVz
dE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nv
bm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBhZjgyNWVm
MmI1Ni4uYzY3NWRmOTcyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNDAsMTEg
KzQwLDEyIEBACiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiSURC
VmFsdWUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8aGVh
cC9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1
ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQXV4aWxpYXJ5QmFycmllcklubGlu
ZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVjdHVyZUlubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgpAQCAtOTg0LDkgKzk4NSwxMiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJ
REJSZQogICAgIH0KIAogICAgIGJvb2wgdXNlZEtleUlzR2VuZXJhdGVkID0gZmFsc2U7Ci0gICAg
U2NvcGVHdWFyZCBnZW5lcmF0ZWRLZXlSZXNldHRlcjsKKyAgICB1aW50NjRfdCBrZXlOdW1iZXI7
CisgICAgV1RGOjpTY29wZUV4aXQ8c3RkOjpmdW5jdGlvbjx2b2lkKCk+PiBnZW5lcmF0ZWRLZXlS
ZXNldHRlcihbdGhpcywgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsICZrZXlOdW1iZXIsICZ1c2VkS2V5SXNHZW5lcmF0ZWRdKCkgeworICAgICAgICBpZiAodXNl
ZEtleUlzR2VuZXJhdGVkKQorICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPnJldmVydEdlbmVy
YXRlZEtleU51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmll
ciwga2V5TnVtYmVyKTsKKyAgICB9KTsKICAgICBpZiAob2JqZWN0U3RvcmVJbmZvLT5hdXRvSW5j
cmVtZW50KCkgJiYgIWtleURhdGEuaXNWYWxpZCgpKSB7Ci0gICAgICAgIHVpbnQ2NF90IGtleU51
bWJlcjsKICAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2VuZXJhdGVLZXlOdW1iZXIo
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleU51bWJlcik7
CiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIHBvc3REYXRhYmFz
ZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFz
ZTo6ZGlkUGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5
KSk7CkBAIC05OTUsOSArOTk5LDYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1
dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmUKICAgICAgICAg
CiAgICAgICAgIHVzZWRLZXkuc2V0TnVtYmVyVmFsdWUoa2V5TnVtYmVyKTsKICAgICAgICAgdXNl
ZEtleUlzR2VuZXJhdGVkID0gdHJ1ZTsKLSAgICAgICAgZ2VuZXJhdGVkS2V5UmVzZXR0ZXIuZW5h
YmxlKFt0aGlzLCB0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwg
a2V5TnVtYmVyXSgpIHsKLSAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5yZXZlcnRHZW5lcmF0
ZWRLZXlOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGtleU51bWJlcik7Ci0gICAgICAgIH0pOwogICAgIH0gZWxzZQogICAgICAgICB1c2VkS2V5ID0g
a2V5RGF0YTsKIApAQCAtMTA2NSw3ICsxMDY2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmUK
ICAgICBpZiAob3ZlcndyaXRlTW9kZSAhPSBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRl
TW9kZTo6T3ZlcndyaXRlRm9yQ3Vyc29yICYmIG9iamVjdFN0b3JlSW5mby0+YXV0b0luY3JlbWVu
dCgpICYmIGtleURhdGEudHlwZSgpID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyKQogICAg
ICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5tYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJl
cih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5RGF0YS5u
dW1iZXIoKSk7CiAKLSAgICBnZW5lcmF0ZWRLZXlSZXNldHRlci5kaXNhYmxlKCk7CisgICAgZ2Vu
ZXJhdGVkS2V5UmVzZXR0ZXIucmVsZWFzZSgpOwogICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9y
bVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5KSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwYTZjYzRkNmU2Yy4uOGJiNDMxYTE0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MzUsNyArMTgzNSw2IEBACiAJCTUx
M0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyog
SWNvbkxvYWRlci5oICovOyB9OwogCQk1MTQwNUM4ODE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0
aW9uUmVjdEdhdGhlcmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNDA1Qzg2MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVy
ZXIuY3BwICovOyB9OwogCQk1MTQwNUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVj
dEdhdGhlcmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTE0MTI5OTAx
QzYwMUFDQzAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1
YXJkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTE0MTI5OTkxQzY5NzY5MDAwNTlFNzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEyOTk3MUM2
OTc2MTUwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggKi87IH07CiAJCTUx
NDNCMjYzMURERDE1MjAwMDE0RkFDNiAvKiBMaW5rSWNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0M0IyNjIxREREMTQ5MDAwMTRGQUM2IC8qIExp
bmtJY29uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNTE0NUIxMEExQkM0OEUyRTAwRTg2MjE5IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0NUIxMDgxQkM0
ODkwQjAwRTg2MjE5IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04ODk3LDcgKzg4OTYsNiBAQAogCQk1
MTQwNUM4NjE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlbGVjdGlvblJlY3RHYXRoZXJlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDA1Qzg3MTkwQjAxNDQwMDc1NEY5
NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxNDEyOThEMUM1RkQ3RTkwMDU5RTcxNCAvKiBKU0lEQkN1cnNvcldpdGhWYWx1ZUN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkN1cnNvcldp
dGhWYWx1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNDEyOThG
MUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjb3BlR3VhcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
MTI5OTYxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCUmVxdWVzdENvbXBsZXRpb25F
dmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTk3MUM2OTc2MTUw
MDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OUExQzZDMTY2RDAwNTlFNzE0IC8qIEpTSURCSW5kZXhD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJJbmRl
eEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDE5MCw3ICsyNDE4
OCw2IEBACiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oICovLAogCQkJCTUxNjJDN0YyMTFGNzdFRkEwMDYxMkVGRSAvKiBTY2hlbWVSZWdp
c3RyeS5jcHAgKi8sCiAJCQkJNTE2MkM3RjMxMUY3N0VGQjAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lz
dHJ5LmggKi8sCi0JCQkJNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAq
LywKIAkJCQlCQzhBRTM0QzEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwICov
LAogCQkJCUJDOEFFMzREMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5oICovLAog
CQkJCUNBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8sCkBA
IC0yOTQ3NCw3ICsyOTQ3MSw2IEBACiAJCQkJNURGRThGNTcwRDE2NDc3QzAwNzZFOTM3IC8qIFNj
aGVkdWxlZEFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE2MkM3RjUxMUY3N0VGQjAwNjEy
RUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkQwQkY5MzEyQTQy
QkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE0
MTI5OTAxQzYwMUFDQzAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRUMwMUJFMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4NEQ4MkMxMTFEMzQ3NDgwMDk3Mjk5MCAvKiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxRjFEMjFGMEVGMzVDMkEwMERBODc1MyAvKiBTY3JpcHRDYWNo
ZWRGcmFtZURhdGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcAppbmRleCBhMTNkNmJjN2JkOC4uODgyNWY4OGYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiRmlsZVN5
c3RlbS5oIgogCiAjaW5jbHVkZSAiRmlsZU1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFy
ZC5oIgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgpAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgYXBwZW5kRmlsZUNvbnRlbnRzVG9G
aWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGxhdGZvcm1GaWxlSGFuZGxlJiB0YXJnCiAg
ICAgc3RhdGljIGludCBidWZmZXJTaXplID0gMSA8PCAxOTsKICAgICBWZWN0b3I8Y2hhcj4gYnVm
ZmVyKGJ1ZmZlclNpemUpOwogCi0gICAgU2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtzb3VyY2VdKCkg
eworICAgIGF1dG8gZmlsZUNsb3NlciA9IFdURjo6bWFrZVNjb3BlRXhpdChbc291cmNlXSgpIHsK
ICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSA9IHNvdXJjZTsKICAgICAgICAgY2xv
c2VGaWxlKGhhbmRsZSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY29wZUd1YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJkLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0Y2IzYjlmOGViLi4wMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJkLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpZm5kZWYgU2NvcGVHdWFyZF9oCi0jZGVmaW5l
IFNjb3BlR3VhcmRfaAotCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgU2NvcGVHdWFyZCB7Ci1wdWJsaWM6Ci0gICAgU2NvcGVHdWFyZCgp
Ci0gICAgewotICAgIH0KLQotICAgIFNjb3BlR3VhcmQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYg
ZnVuY3Rpb24pCi0gICAgICAgIDogbV9mdW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKLSAgICB7
Ci0gICAgfQotCi0gICAgflNjb3BlR3VhcmQoKQotICAgIHsKLSAgICAgICAgaWYgKG1fZnVuY3Rp
b24pCi0gICAgICAgICAgICBtX2Z1bmN0aW9uKCk7Ci0gICAgfQotCi0gICAgdm9pZCBlbmFibGUo
V1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCi0gICAgewotICAgICAgICBtX2Z1bmN0
aW9uID0gV1RGTW92ZShmdW5jdGlvbik7Ci0gICAgfQotCi0gICAgdm9pZCBkaXNhYmxlKCkKLSAg
ICB7Ci0gICAgICAgIG1fZnVuY3Rpb24gPSBudWxscHRyOwotICAgIH0KLQotcHJpdmF0ZToKLSAg
ICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjb3BlR3VhcmRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXggNWIyNzRjMjEy
OGQuLjI5NDU2YmE5MDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJS
ZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCisjaW5jbHVkZSA8
d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yODYs
NyArMjg2LDcgQEAgdm9pZCBCbG9iUmVnaXN0cnlJbXBsOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvYlVSTHMKICAgICAgICAgICAgICAgICBQbGF0
Zm9ybUZpbGVIYW5kbGUgZmlsZTsKICAgICAgICAgICAgICAgICBTdHJpbmcgdGVtcEZpbGVQYXRo
ID0gb3BlblRlbXBvcmFyeUZpbGUoQVNDSUlMaXRlcmFsKCJCbG9iIiksIGZpbGUpOwogCi0gICAg
ICAgICAgICAgICAgU2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtmaWxlXSgpIG11dGFibGUgeworICAg
ICAgICAgICAgICAgIGF1dG8gZmlsZUNsb3NlciA9IFdURjo6bWFrZVNjb3BlRXhpdChbZmlsZV0o
KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICAgICAgY2xvc2VGaWxlKGZpbGUpOwogICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDU2
ZDU2YzdmODQyLi40NDMyYWY4ODZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzUsNyArMzUs
NiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCkBAIC00Myw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNzcsNyArMTc3LDcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNl
cnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEpCiB7Ci0gICAgU2NvcGVHdWFyZCBndWFy
ZChbdGhpcywgJmpvYl0geworICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3Ro
aXMsICZqb2JdIHsKICAgICAgICAgam9iRGlkRmluaXNoKGpvYik7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjMwODFlZWMwNDYuLmM4NGM4Mjg4Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE3LTEwLTI0ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KKwor
ICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNz
TWFjLm1tOgorCiAyMDE3LTEwLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9z
dE1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0K
aW5kZXggOTU2NDQ1YzIyOTUuLmI5MGNlMzI2ZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTMzLDEwICszMywxMCBAQAogI2ltcG9ydCAiUXVh
cmFudGluZVNQSS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5o
IgogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Njb3Bl
R3VhcmQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVmVyc2lvbi5oPgogI2ltcG9ydCA8bWFj
aC9tYWNoLmg+CiAjaW1wb3J0IDxtYWNoL3Rhc2suaD4KKyNpbXBvcnQgPHd0Zi9TY29wZS5oPgog
I2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHB3ZC5oPgogI2lt
cG9ydCA8c3RkbGliLmg+CkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBPU1N0YXR1cyBlbmFibGVT
YW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpCiB7CiAgICAgaW50IGVycm9yOwogICAgIHF0bl9w
cm9jX3QgcXVhcmFudGluZVByb3BlcnRpZXMgPSBxdG5fcHJvY19hbGxvYygpOwotICAgIFNjb3Bl
R3VhcmQgcXVhcmFudGluZVByb3BlcnRpZXNEZWxldGVyKFtxdWFyYW50aW5lUHJvcGVydGllc10o
KSB7CisgICAgYXV0byBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0ZXIgPSBtYWtlU2NvcGVFeGl0
KFtxdWFyYW50aW5lUHJvcGVydGllc10oKSB7CiAgICAgICAgIHF0bl9wcm9jX2ZyZWUocXVhcmFu
dGluZVByb3BlcnRpZXMpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWRiMjZhYjliMWEuLjFlMjhiYWQxMGY0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTctMTAtMjQgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgor
CisgICAgICAgIFJlbW92ZSBzY29wZWd1YXJkIGZyb20gcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKwogMjAxNy0xMC0yNCAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbmFibGUgV2Vi
S2l0IGxvZ2dpbmcgY29uZmlndXJhdGlvbiBhbmQgZGlzcGxheQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggYmZjZDI5OTdjNTgu
LjA3NGJkZmNhNDQ1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVV0
aWxpdGllcy5oIgogI2luY2x1ZGUgIlRlc3QuaCIKICNpbmNsdWRlICJXVEZTdHJpbmdVdGlsaXRp
ZXMuaCIKKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVNb25p
dG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TY29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KQEAgLTEyMCw3ICsx
MjAsNyBAQCBzdGF0aWMgU3RyaW5nIHJlYWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBh
dGgpCiAKICAgICBTdHJpbmdCdWZmZXI8TENoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKIAotICAg
IFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRvIGZpbGVDbG9zZXIg
PSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOwogICAgIH0p
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324765</attachid>
            <date>2017-10-24 17:21:07 -0700</date>
            <delta_ts>2017-10-24 17:21:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-3-pre.diff</filename>
            <type>text/plain</type>
            <size>11870</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5k
ZXggMDVkMjhlMzA5MzEuLjgyM2VlNWE0MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtNDUsMTAgKzQ1LDEwIEBACiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNl
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRh
QnVmZmVyLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogCkBAIC0xNzcsNyArMTc3LDcg
QEAgdm9pZCBJREJSZXF1ZXN0OjpzZXRTb3VyY2UoSURCQ3Vyc29yJiBjdXJzb3IpCiAgICAgQVNT
RVJUKCFtX2N1cnNvclJlcXVlc3ROb3RpZmllcik7CiAKICAgICBtX3NvdXJjZSA9IFNvdXJjZSB7
ICZjdXJzb3IgfTsKLSAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlx
dWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgeworICAgIG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3BlRXhpdDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+Pihb
dGhpc10oKSB7CiAgICAgICAgIEFTU0VSVChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxJ
REJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgpKSk7CiAgICAgICAgIFdURjo6Z2V0PFJlZlB0cjxJ
REJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgpKS0+ZGVjcmVtZW50T3V0c3RhbmRpbmdSZXF1ZXN0
Q291bnQoKTsKICAgICB9KTsKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIElEQlJlcXVlc3Q6Ondp
bGxJdGVyYXRlQ3Vyc29yKElEQkN1cnNvciYgY3Vyc29yKQogICAgIG1fZG9tRXJyb3IgPSBudWxs
cHRyOwogICAgIG1faWRiRXJyb3IgPSBJREJFcnJvciB7IH07CiAKLSAgICBtX2N1cnNvclJlcXVl
c3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgeworICAg
IG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3BlRXhp
dDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+PihbdGhpc10oKSB7CiAgICAgICAgIG1fcGVuZGluZ0N1
cnNvci0+ZGVjcmVtZW50T3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBjMmFl
MzZmNzRmYS4uNjVmMzE0M2I3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDcgKzMzLDkgQEAKICNpbmNsdWRlICJJREJFcnJvci5o
IgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkluZGV4ZWRE
Qi5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNp
bmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0
OSw2IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNz
IElEQlRyYW5zYWN0aW9uOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xh
c3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcw
LDcgKzE3MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdD
dXJzb3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0
Tm90aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdURjo6U2NvcGVFeGl0PHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPj4+IG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAppbmRleCBhZjgyNWVmMmI1Ni4uYzY3NWRmOTcyOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlLmNwcApAQCAtNDAsMTEgKzQwLDEyIEBACiAjaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiSURCVmFsdWUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
Ci0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
PGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPGhl
YXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvQXV4aWxpYXJ5QmFycmllcklubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtOTg0LDkgKzk4
NSwxMiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIH0KIAogICAgIGJvb2wgdXNlZEtl
eUlzR2VuZXJhdGVkID0gZmFsc2U7Ci0gICAgU2NvcGVHdWFyZCBnZW5lcmF0ZWRLZXlSZXNldHRl
cjsKKyAgICB1aW50NjRfdCBrZXlOdW1iZXI7CisgICAgV1RGOjpTY29wZUV4aXQ8c3RkOjpmdW5j
dGlvbjx2b2lkKCk+PiBnZW5lcmF0ZWRLZXlSZXNldHRlcihbdGhpcywgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsICZrZXlOdW1iZXIsICZ1c2VkS2V5SXNHZW5l
cmF0ZWRdKCkgeworICAgICAgICBpZiAodXNlZEtleUlzR2VuZXJhdGVkKQorICAgICAgICAgICAg
bV9iYWNraW5nU3RvcmUtPnJldmVydEdlbmVyYXRlZEtleU51bWJlcih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKKyAgICB9KTsKICAgICBp
ZiAob2JqZWN0U3RvcmVJbmZvLT5hdXRvSW5jcmVtZW50KCkgJiYgIWtleURhdGEuaXNWYWxpZCgp
KSB7Ci0gICAgICAgIHVpbnQ2NF90IGtleU51bWJlcjsKICAgICAgICAgZXJyb3IgPSBtX2JhY2tp
bmdTdG9yZS0+Z2VuZXJhdGVLZXlOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGtleU51bWJlcik7CiAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkp
IHsKICAgICAgICAgICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRh
c2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFj
a0lkZW50aWZpZXIsIGVycm9yLCB1c2VkS2V5KSk7CkBAIC05OTUsOSArOTk5LDYgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRp
ZmllciwgY29uc3QgSURCUmUKICAgICAgICAgCiAgICAgICAgIHVzZWRLZXkuc2V0TnVtYmVyVmFs
dWUoa2V5TnVtYmVyKTsKICAgICAgICAgdXNlZEtleUlzR2VuZXJhdGVkID0gdHJ1ZTsKLSAgICAg
ICAgZ2VuZXJhdGVkS2V5UmVzZXR0ZXIuZW5hYmxlKFt0aGlzLCB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyXSgpIHsKLSAgICAgICAgICAgIG1f
YmFja2luZ1N0b3JlLT5yZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleU51bWJlcik7Ci0gICAgICAgIH0pOwogICAg
IH0gZWxzZQogICAgICAgICB1c2VkS2V5ID0ga2V5RGF0YTsKIApAQCAtMTA2NSw3ICsxMDY2LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCUmUKICAgICBpZiAob3ZlcndyaXRlTW9kZSAhPSBJbmRl
eGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZTo6T3ZlcndyaXRlRm9yQ3Vyc29yICYmIG9i
amVjdFN0b3JlSW5mby0+YXV0b0luY3JlbWVudCgpICYmIGtleURhdGEudHlwZSgpID09IEluZGV4
ZWREQjo6S2V5VHlwZTo6TnVtYmVyKQogICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5t
YXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVj
dFN0b3JlSWRlbnRpZmllciwga2V5RGF0YS5udW1iZXIoKSk7CiAKLSAgICBnZW5lcmF0ZWRLZXlS
ZXNldHRlci5kaXNhYmxlKCk7CisgICAgZ2VuZXJhdGVkS2V5UmVzZXR0ZXIucmVsZWFzZSgpOwog
ICAgIHBvc3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVB1dE9yQWRkLCBjYWxsYmFja0lkZW50aWZpZXIs
IGVycm9yLCB1c2VkS2V5KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKaW5kZXggYTEzZDZiYzdiZDguLjg4MjVmODhmMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9GaWxlU3lzdGVtLmNwcApAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0u
aCIKIAogI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgotI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIK
KyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KQEAgLTIxMyw3ICsyMTMsNyBAQCBib29sIGFwcGVuZEZpbGVDb250ZW50c1RvRmlsZUhh
bmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgdGFyZwogICAgIHN0
YXRpYyBpbnQgYnVmZmVyU2l6ZSA9IDEgPDwgMTk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihi
dWZmZXJTaXplKTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAg
ICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAg
ICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmls
ZShoYW5kbGUpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NvcGVHdWFyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGNiM2I5ZjhlYi4uMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCisrKyAvZGV2L251bGwKQEAgLTEs
NjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0jaWZuZGVmIFNjb3BlR3VhcmRfaAotI2RlZmluZSBTY29w
ZUd1YXJkX2gKLQotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIFNjb3BlR3VhcmQgewotcHVibGljOgotICAgIFNjb3BlR3VhcmQoKQotICAg
IHsKLSAgICB9Ci0KLSAgICBTY29wZUd1YXJkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0
aW9uKQotICAgICAgICA6IG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCi0gICAgewotICAg
IH0KLQotICAgIH5TY29wZUd1YXJkKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2Z1bmN0aW9uKQot
ICAgICAgICAgICAgbV9mdW5jdGlvbigpOwotICAgIH0KLQotICAgIHZvaWQgZW5hYmxlKFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAgIHsKLSAgICAgICAgbV9mdW5jdGlvbiA9
IFdURk1vdmUoZnVuY3Rpb24pOwotICAgIH0KLQotICAgIHZvaWQgZGlzYWJsZSgpCi0gICAgewot
ICAgICAgICBtX2Z1bmN0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV1RG
OjpGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBTY29wZUd1YXJkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IDViMjc0YzIxMjhkLi4y
OTQ1NmJhOTA0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgorI2luY2x1ZGUgPHd0Zi9T
Y29wZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpAQCAtMjg2LDcgKzI4
Niw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzCiAgICAgICAgICAgICAgICAgUGxhdGZvcm1G
aWxlSGFuZGxlIGZpbGU7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBGaWxlUGF0aCA9IG9w
ZW5UZW1wb3JhcnlGaWxlKEFTQ0lJTGl0ZXJhbCgiQmxvYiIpLCBmaWxlKTsKIAotICAgICAgICAg
ICAgICAgIFNjb3BlR3VhcmQgZmlsZUNsb3NlcihbZmlsZV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgICAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW2ZpbGVdKCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNsb3NlRmlsZShmaWxlKTsKICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCBlODMwYThk
YTczZi4uNjQwMzdiYTdmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM1LDEzICszNSwxMyBA
QAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VFcnJvci5oIgotI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpv
YkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJV
UkwuaCIKKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyOjpqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpv
YiwgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhS
ZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YSYmIGRhdGEpCiB7Ci0gICAgU2NvcGVHdWFyZCBndWFyZChbdGhpcywgJmpvYl0gewor
ICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3RoaXMsICZqb2JdIHsKICAgICAg
ICAgam9iRGlkRmluaXNoKGpvYik7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDk1NjQ0NWMyMjk1Li5iOTBjZTMyNmVhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0zMywxMCAr
MzMsMTAgQEAKICNpbXBvcnQgIlF1YXJhbnRpbmVTUEkuaCIKICNpbXBvcnQgIlNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9TY29wZUd1YXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZl
cnNpb24uaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrLmg+Cisj
aW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+
CiAjaW1wb3J0IDxwd2QuaD4KICNpbXBvcnQgPHN0ZGxpYi5oPgpAQCAtODQsNyArODQsNyBAQCBz
dGF0aWMgT1NTdGF0dXMgZW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKQogewogICAg
IGludCBlcnJvcjsKICAgICBxdG5fcHJvY190IHF1YXJhbnRpbmVQcm9wZXJ0aWVzID0gcXRuX3By
b2NfYWxsb2MoKTsKLSAgICBTY29wZUd1YXJkIHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVsZXRlcihb
cXVhcmFudGluZVByb3BlcnRpZXNdKCkgeworICAgIGF1dG8gcXVhcmFudGluZVByb3BlcnRpZXNE
ZWxldGVyID0gbWFrZVNjb3BlRXhpdChbcXVhcmFudGluZVByb3BlcnRpZXNdKCkgewogICAgICAg
ICBxdG5fcHJvY19mcmVlKHF1YXJhbnRpbmVQcm9wZXJ0aWVzKTsKICAgICB9KTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXgg
YmZjZDI5OTdjNTguLjA3NGJkZmNhNDQ1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKICNpbmNsdWRl
ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlRlc3QuaCIKICNpbmNsdWRlICJXVEZT
dHJpbmdVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZpbGVNb25pdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9TY29wZUd1YXJkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4K
QEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHJlYWRDb250ZW50c09mRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAKICAgICBTdHJpbmdCdWZmZXI8TENoYXI+IGJ1ZmZlcihidWZmZXJT
aXplKTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRv
IGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5k
bGUpOwogICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324766</attachid>
            <date>2017-10-24 17:21:56 -0700</date>
            <delta_ts>2017-10-25 18:07:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-3.diff</filename>
            <type>text/plain</type>
            <size>17870</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxMWVhNWU4ZjEwNy4uNTk4ZjgzMzY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0xMC0yNCAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29u
eS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjaW5nIHBsYXRm
b3JtL1Njb3BlR3VhcmQgd2l0aCBXVEY6OlNjb3BlRXhpdC4KKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9TY29wZUd1YXJkLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5jcHA6CisKIDIwMTctMTAtMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRW5hYmxlIFdlYktpdCBsb2dn
aW5nIGNvbmZpZ3VyYXRpb24gYW5kIGRpc3BsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggMDVkMjhlMzA5MzEuLjgyM2VlNWE0MGIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cApAQCAtNDUsMTAgKzQ1LDEwIEBACiAjaW5jbHVkZSAiSlNET01Db252ZXJ0TnVtYmVycy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29udmVydFNlcXVlbmNlcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
LSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlRocmVhZFNhZmVEYXRhQnVmZmVyLmgiCiAjaW5jbHVkZSA8aGVhcC9T
dHJvbmdJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1Zh
cmlhbnQuaD4KIAogCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBJREJSZXF1ZXN0OjpzZXRTb3Vy
Y2UoSURCQ3Vyc29yJiBjdXJzb3IpCiAgICAgQVNTRVJUKCFtX2N1cnNvclJlcXVlc3ROb3RpZmll
cik7CiAKICAgICBtX3NvdXJjZSA9IFNvdXJjZSB7ICZjdXJzb3IgfTsKLSAgICBtX2N1cnNvclJl
cXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgewor
ICAgIG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0gc3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3Bl
RXhpdDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+PihbdGhpc10oKSB7CiAgICAgICAgIEFTU0VSVChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxJREJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgp
KSk7CiAgICAgICAgIFdURjo6Z2V0PFJlZlB0cjxJREJDdXJzb3I+PihtX3NvdXJjZS52YWx1ZSgp
KS0+ZGVjcmVtZW50T3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQoKTsKICAgICB9KTsKQEAgLTQ4Nyw3
ICs0ODcsNyBAQCB2b2lkIElEQlJlcXVlc3Q6OndpbGxJdGVyYXRlQ3Vyc29yKElEQkN1cnNvciYg
Y3Vyc29yKQogICAgIG1fZG9tRXJyb3IgPSBudWxscHRyOwogICAgIG1faWRiRXJyb3IgPSBJREJF
cnJvciB7IH07CiAKLSAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlx
dWU8U2NvcGVHdWFyZD4oW3RoaXNdKCkgeworICAgIG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxXVEY6OlNjb3BlRXhpdDxzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4+Pihb
dGhpc10oKSB7CiAgICAgICAgIG1fcGVuZGluZ0N1cnNvci0+ZGVjcmVtZW50T3V0c3RhbmRpbmdS
ZXF1ZXN0Q291bnQoKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuaAppbmRleCBjMmFlMzZmNzRmYS4uNjVmMzE0M2I3OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTMzLDcg
KzMzLDkgQEAKICNpbmNsdWRlICJJREJFcnJvci5oIgogI2luY2x1ZGUgIklEQlJlc291cmNlSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0OSw2IEBAIGNsYXNzIElEQk9iamVjdFN0b3Jl
OwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uOwogY2xhc3MgSURC
VmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAK
IG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcwLDcgKzE3MSw3IEBAIHByaXZhdGU6CiAKICAg
ICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJzb3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXI7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdURjo6U2NvcGVFeGl0PHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4+IG1fY3Vyc29yUmVxdWVz
dE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5PiBtX2Nv
bm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBhZjgyNWVm
MmI1Ni4uNTY1YTI0ZDJiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNDAsMTUg
KzQwLDE2IEBACiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25JbmZvLmgiCiAjaW5jbHVkZSAiSURC
VmFsdWUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8aGVh
cC9IZWFwSW5saW5lcy5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQXV4aWxpYXJ5QmFycmllcklubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1l
L1N0cnVjdHVyZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk4NCw5ICs5ODUsMTIgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6cGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3Qg
SURCUmUKICAgICB9CiAKICAgICBib29sIHVzZWRLZXlJc0dlbmVyYXRlZCA9IGZhbHNlOwotICAg
IFNjb3BlR3VhcmQgZ2VuZXJhdGVkS2V5UmVzZXR0ZXI7CisgICAgdWludDY0X3Qga2V5TnVtYmVy
OworICAgIFdURjo6U2NvcGVFeGl0PHN0ZDo6ZnVuY3Rpb248dm9pZCgpPj4gZ2VuZXJhdGVkS2V5
UmVzZXR0ZXIoW3RoaXMsIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCAma2V5TnVtYmVyLCAmdXNlZEtleUlzR2VuZXJhdGVkXSgpIHsKKyAgICAgICAgaWYgKHVz
ZWRLZXlJc0dlbmVyYXRlZCkKKyAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlLT5yZXZlcnRHZW5l
cmF0ZWRLZXlOdW1iZXIodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGtleU51bWJlcik7CisgICAgfSk7CiAgICAgaWYgKG9iamVjdFN0b3JlSW5mby0+YXV0b0lu
Y3JlbWVudCgpICYmICFrZXlEYXRhLmlzVmFsaWQoKSkgewotICAgICAgICB1aW50NjRfdCBrZXlO
dW1iZXI7CiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdlbmVyYXRlS2V5TnVtYmVy
KHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIp
OwogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBwb3N0RGF0YWJh
c2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJh
c2U6OmRpZFBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtl
eSkpOwpAQCAtOTk1LDkgKzk5OSw2IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1Q
dXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgICAg
IAogICAgICAgICB1c2VkS2V5LnNldE51bWJlclZhbHVlKGtleU51bWJlcik7CiAgICAgICAgIHVz
ZWRLZXlJc0dlbmVyYXRlZCA9IHRydWU7Ci0gICAgICAgIGdlbmVyYXRlZEtleVJlc2V0dGVyLmVu
YWJsZShbdGhpcywgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGtleU51bWJlcl0oKSB7Ci0gICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJh
dGVkS2V5TnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBrZXlOdW1iZXIpOwotICAgICAgICB9KTsKICAgICB9IGVsc2UKICAgICAgICAgdXNlZEtleSA9
IGtleURhdGE7CiAKQEAgLTEwNjUsNyArMTA2Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJl
CiAgICAgaWYgKG92ZXJ3cml0ZU1vZGUgIT0gSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0
ZU1vZGU6Ok92ZXJ3cml0ZUZvckN1cnNvciAmJiBvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1l
bnQoKSAmJiBrZXlEYXRhLnR5cGUoKSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikKICAg
ICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+bWF5YmVVcGRhdGVLZXlHZW5lcmF0b3JOdW1i
ZXIodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleURhdGEu
bnVtYmVyKCkpOwogCi0gICAgZ2VuZXJhdGVkS2V5UmVzZXR0ZXIuZGlzYWJsZSgpOworICAgIGdl
bmVyYXRlZEtleVJlc2V0dGVyLnJlbGVhc2UoKTsKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHko
Y3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZv
cm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtleSkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMGE2Y2M0ZDZlNmMuLjhiYjQzMWExNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODM1LDcgKzE4MzUsNiBAQAogCQk1
MTNGMTQ1NDBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRjE0NTIwQUI2MzRDNDAwMDk0RERGIC8q
IEljb25Mb2FkZXIuaCAqLzsgfTsKIAkJNTE0MDVDODgxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVj
dGlvblJlY3RHYXRoZXJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQwNUM4NjE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhl
cmVyLmNwcCAqLzsgfTsKIAkJNTE0MDVDODkxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJl
Y3RHYXRoZXJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxNDEyOTkw
MUM2MDFBQ0MwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk4RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVH
dWFyZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUxNDEyOTk5MUM2OTc2OTAwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5NzFD
Njk3NjE1MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oICovOyB9OwogCQk1
MTQzQjI2MzFEREQxNTIwMDAxNEZBQzYgLyogTGlua0ljb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDNCMjYyMURERDE0OTAwMDE0RkFDNiAvKiBM
aW5rSWNvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxNDVCMTBBMUJDNDhFMkUwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDVCMTA4MUJD
NDg5MEIwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODg5Nyw3ICs4ODk2LDYgQEAKIAkJ
NTE0MDVDODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWxlY3Rpb25SZWN0R2F0aGVyZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQwNUM4NzE5MEIwMTQ0MDA3NTRG
OTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNlbGVjdGlvblJlY3RHYXRoZXJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTQxMjk4RDFDNUZEN0U5MDA1OUU3MTQgLyogSlNJREJDdXJzb3JXaXRoVmFsdWVDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJDdXJzb3JX
aXRoVmFsdWVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTQxMjk4
RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY29wZUd1YXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
NDEyOTk2MUM2OTc2MTUwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlJlcXVlc3RDb21wbGV0aW9u
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NzFDNjk3NjE1
MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTlBMUM2QzE2NkQwMDU5RTcxNCAvKiBKU0lEQkluZGV4
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCSW5k
ZXhDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQxOTAsNyArMjQx
ODgsNiBAQAogCQkJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCAqLywKIAkJCQk1MTYyQzdGMjExRjc3RUZBMDA2MTJFRkUgLyogU2NoZW1lUmVn
aXN0cnkuY3BwICovLAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdp
c3RyeS5oICovLAotCQkJCTUxNDEyOThGMUM2MDFBODkwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmgg
Ki8sCiAJCQkJQkM4QUUzNEMxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmNwcCAq
LywKIAkJCQlCQzhBRTM0RDEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuaCAqLywK
IAkJCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovLApA
QCAtMjk0NzQsNyArMjk0NzEsNiBAQAogCQkJCTVERkU4RjU3MEQxNjQ3N0MwMDc2RTkzNyAvKiBT
Y2hlZHVsZWRBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjJDN0Y1MTFGNzdFRkIwMDYx
MkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJEMEJGOTMxMkE0
MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTUx
NDEyOTkwMUM2MDFBQ0MwMDU5RTcxNCAvKiBTY29wZUd1YXJkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0VDMDFCRTBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODREODJDMTExRDM0NzQ4MDA5NzI5OTAgLyogU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUYxRDIxRjBFRjM1QzJBMDBEQTg3NTMgLyogU2NyaXB0Q2Fj
aGVkRnJhbWVEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5jcHAKaW5kZXggYTEzZDZiYzdiZDguLjQ5ZGUzNDdhZTM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMjgsOCArMjgsOCBAQAogI2luY2x1ZGUgIkZpbGVT
eXN0ZW0uaCIKIAogI2luY2x1ZGUgIkZpbGVNZXRhZGF0YS5oIgotI2luY2x1ZGUgIlNjb3BlR3Vh
cmQuaCIKICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIApAQCAtMjEzLDcgKzIxMyw3IEBAIGJvb2wgYXBwZW5kRmlsZUNvbnRlbnRz
VG9GaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgcGF0aCwgUGxhdGZvcm1GaWxlSGFuZGxlJiB0YXJn
CiAgICAgc3RhdGljIGludCBidWZmZXJTaXplID0gMSA8PCAxOTsKICAgICBWZWN0b3I8Y2hhcj4g
YnVmZmVyKGJ1ZmZlclNpemUpOwogCi0gICAgU2NvcGVHdWFyZCBmaWxlQ2xvc2VyKFtzb3VyY2Vd
KCkgeworICAgIGF1dG8gZmlsZUNsb3NlciA9IFdURjo6bWFrZVNjb3BlRXhpdChbc291cmNlXSgp
IHsKICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSA9IHNvdXJjZTsKICAgICAgICAg
Y2xvc2VGaWxlKGhhbmRsZSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY29wZUd1YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJk
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0Y2IzYjlmOGViLi4wMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY29wZUd1YXJkLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSNpZm5kZWYgU2NvcGVHdWFyZF9oCi0jZGVm
aW5lIFNjb3BlR3VhcmRfaAotCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgU2NvcGVHdWFyZCB7Ci1wdWJsaWM6Ci0gICAgU2NvcGVHdWFy
ZCgpCi0gICAgewotICAgIH0KLQotICAgIFNjb3BlR3VhcmQoV1RGOjpGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCi0gICAgICAgIDogbV9mdW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKLSAg
ICB7Ci0gICAgfQotCi0gICAgflNjb3BlR3VhcmQoKQotICAgIHsKLSAgICAgICAgaWYgKG1fZnVu
Y3Rpb24pCi0gICAgICAgICAgICBtX2Z1bmN0aW9uKCk7Ci0gICAgfQotCi0gICAgdm9pZCBlbmFi
bGUoV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCi0gICAgewotICAgICAgICBtX2Z1
bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbik7Ci0gICAgfQotCi0gICAgdm9pZCBkaXNhYmxlKCkK
LSAgICB7Ci0gICAgICAgIG1fZnVuY3Rpb24gPSBudWxscHRyOwotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjb3BlR3VhcmRfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKaW5kZXggNWIyNzRj
MjEyOGQuLjBmMDE5NzRjYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAKQEAgLTQxLDkgKzQxLDkgQEAKICNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5j
bHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBCbG9iUmVn
aXN0cnlJbXBsOjp3cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgYmxvYlVSTHMKICAgICAgICAgICAgICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZTsKICAg
ICAgICAgICAgICAgICBTdHJpbmcgdGVtcEZpbGVQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoQVND
SUlMaXRlcmFsKCJCbG9iIiksIGZpbGUpOwogCi0gICAgICAgICAgICAgICAgU2NvcGVHdWFyZCBm
aWxlQ2xvc2VyKFtmaWxlXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gZmlsZUNs
b3NlciA9IFdURjo6bWFrZVNjb3BlRXhpdChbZmlsZV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAg
ICAgICAgICAgY2xvc2VGaWxlKGZpbGUpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDU2ZDU2YzdmODQyLi4wYTliNDQ5ZWIyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOYXZpZ2F0b3JCYXNlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5o
IgotI2luY2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyLmgiCkBAIC00NCw2ICs0Myw3IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclByb3ZpZGVy
LmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRl
IDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNzcsNyArMTc3LDcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNl
cnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uc3QKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYgam9iLCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEpCiB7Ci0gICAgU2NvcGVHdWFyZCBndWFy
ZChbdGhpcywgJmpvYl0geworICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3Ro
aXMsICZqb2JdIHsKICAgICAgICAgam9iRGlkRmluaXNoKGpvYik7CiAgICAgfSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjMwODFlZWMwNDYuLmM4NGM4Mjg4Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDE3LTEwLTI0ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KKwor
ICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvQ2hpbGRQcm9jZXNz
TWFjLm1tOgorCiAyMDE3LTEwLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9z
dE1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJv
Y2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0K
aW5kZXggOTU2NDQ1YzIyOTUuLjU0YWU2NTgwMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIlF1YXJh
bnRpbmVTUEkuaCIKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIK
ICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TY29wZUd1
YXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBvcnQgPG1hY2gv
bWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNrLmg+CkBAIC00MSw2ICs0MCw3IEBACiAjaW1wb3J0
IDxwd2QuaD4KICNpbXBvcnQgPHN0ZGxpYi5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBv
cnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgog
CiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIE9T
U3RhdHVzIGVuYWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkKIHsKICAgICBpbnQgZXJy
b3I7CiAgICAgcXRuX3Byb2NfdCBxdWFyYW50aW5lUHJvcGVydGllcyA9IHF0bl9wcm9jX2FsbG9j
KCk7Ci0gICAgU2NvcGVHdWFyZCBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0ZXIoW3F1YXJhbnRp
bmVQcm9wZXJ0aWVzXSgpIHsKKyAgICBhdXRvIHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVsZXRlciA9
IG1ha2VTY29wZUV4aXQoW3F1YXJhbnRpbmVQcm9wZXJ0aWVzXSgpIHsKICAgICAgICAgcXRuX3By
b2NfZnJlZShxdWFyYW50aW5lUHJvcGVydGllcyk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZGIyNmFiOWIxYS4uMWUyOGJh
ZDEwZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMC0yNCAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJl
aWRAc29ueS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorCiAyMDE3LTEwLTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVuYWJsZSBXZWJLaXQgbG9nZ2luZyBjb25maWd1cmF0aW9uIGFuZCBkaXNwbGF5CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRl
eCBiZmNkMjk5N2M1OC4uZmJjYzYyM2ZiZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1
ZGUgIldURlN0cmluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZU1vbml0b3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nj
b3BlR3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWZmZXIuaD4KQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHJlYWRDb250
ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAKICAgICBTdHJpbmdCdWZmZXI8TENoYXI+
IGJ1ZmZlcihidWZmZXJTaXplKTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNl
XSgpIHsKKyAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0o
KSB7CiAgICAgICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAg
IGNsb3NlRmlsZShoYW5kbGUpOwogICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324932</attachid>
            <date>2017-10-25 18:07:44 -0700</date>
            <delta_ts>2017-10-25 18:15:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-4.diff</filename>
            <type>text/plain</type>
            <size>18179</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Njb3BlLmggYi9Tb3VyY2UvV1RGL3d0Zi9TY29w
ZS5oCmluZGV4IDk3MTMxZDQ1OTBjLi43YmQ3NjM3MDA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvU2NvcGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TY29wZS5oCkBAIC0zNyw3ICszNyw3
IEBAIGNsYXNzIFNjb3BlRXhpdCBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRXhpdEZ1bmN0aW9uUGFyYW1ldGVyPgogICAgIGV4cGxpY2l0IFNjb3BlRXhpdChFeGl0RnVu
Y3Rpb25QYXJhbWV0ZXImJiBleGl0RnVuY3Rpb24pCi0gICAgICAgIDogbV9leGl0RnVuY3Rpb24o
c3RkOjpmb3J3YXJkPEV4aXRGdW5jdGlvbj4oZXhpdEZ1bmN0aW9uKSkKKyAgICAgICAgOiBtX2V4
aXRGdW5jdGlvbihXVEZNb3ZlKGV4aXRGdW5jdGlvbikpCiAgICAgewogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDBmZjY1MWNmZGNmLi40ZDFjZTNhYzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE3LTEwLTI1ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4K
KworICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY29wZUd1YXJkLmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisKIDIwMTctMTAtMjUgIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtZ2lmLXBhaW50LWFmdGVyLWFuaW1hdGlvbi5odG1sIGZsYWt5IGNyYXNoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4
IDA1ZDI4ZTMwOTMxLi44ZTY4Zjc2YmIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ1LDEwICs0NSwxMCBAQAogI2luY2x1ZGUg
IkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRTZXF1ZW5jZXMu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1
ZmZlci5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9T
Y29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIApAQCAtMTc3LDcgKzE3Nyw3IEBA
IHZvaWQgSURCUmVxdWVzdDo6c2V0U291cmNlKElEQkN1cnNvciYgY3Vyc29yKQogICAgIEFTU0VS
VCghbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIpOwogCiAgICAgbV9zb3VyY2UgPSBTb3VyY2UgeyAm
Y3Vyc29yIH07Ci0gICAgbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNjb3BlR3VhcmQ+KFt0aGlzXSgpIHsKKyAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0
ZDo6bWFrZV91bmlxdWU8V1RGOjpTY29wZUV4aXQ8V1RGOjpGdW5jdGlvbjx2b2lkKCk+Pj4oW3Ro
aXNdKCkgewogICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWZQdHI8SURC
Q3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSkpOwogICAgICAgICBXVEY6OmdldDxSZWZQdHI8SURC
Q3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSktPmRlY3JlbWVudE91dHN0YW5kaW5nUmVxdWVzdENv
dW50KCk7CiAgICAgfSk7CkBAIC00ODcsNyArNDg3LDcgQEAgdm9pZCBJREJSZXF1ZXN0Ojp3aWxs
SXRlcmF0ZUN1cnNvcihJREJDdXJzb3ImIGN1cnNvcikKICAgICBtX2RvbUVycm9yID0gbnVsbHB0
cjsKICAgICBtX2lkYkVycm9yID0gSURCRXJyb3IgeyB9OwogCi0gICAgbV9jdXJzb3JSZXF1ZXN0
Tm90aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjb3BlR3VhcmQ+KFt0aGlzXSgpIHsKKyAgICBt
X2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8V1RGOjpTY29wZUV4aXQ8
V1RGOjpGdW5jdGlvbjx2b2lkKCk+Pj4oW3RoaXNdKCkgewogICAgICAgICBtX3BlbmRpbmdDdXJz
b3ItPmRlY3JlbWVudE91dHN0YW5kaW5nUmVxdWVzdENvdW50KCk7CiAgICAgfSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggYzJhZTM2
Zjc0ZmEuLmIxZjdiNGE0YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiSURCUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJv
bmcuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0OSw2IEBAIGNsYXNzIElEQk9iamVj
dFN0b3JlOwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uOwogY2xh
c3MgSURCVmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZm
ZXI7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcwLDcgKzE3MSw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJzb3I7CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdURjo6U2NvcGVFeGl0PFdURjo6RnVuY3Rpb248dm9pZCgpPj4+IG1fY3Vyc29y
UmVxdWVzdE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
PiBtX2Nvbm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBh
ZjgyNWVmMmI1Ni4uODFjZGM5NzkwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgogI2luY2x1ZGUg
IklEQlZhbHVlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlNjb3BlR3VhcmQu
aCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJVbmlxdWVJ
REJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+CkBA
IC00OSw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05
ODQsOSArOTg0LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgfQogCiAgICAgYm9v
bCB1c2VkS2V5SXNHZW5lcmF0ZWQgPSBmYWxzZTsKLSAgICBTY29wZUd1YXJkIGdlbmVyYXRlZEtl
eVJlc2V0dGVyOworICAgIHVpbnQ2NF90IGtleU51bWJlcjsKKyAgICBhdXRvIGdlbmVyYXRlZEtl
eVJlc2V0dGVyID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgJmtleU51bWJlciwgJnVzZWRLZXlJc0dlbmVyYXRl
ZF0oKSB7CisgICAgICAgIGlmICh1c2VkS2V5SXNHZW5lcmF0ZWQpCisgICAgICAgICAgICBtX2Jh
Y2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIpOworICAgIH0pOwogICAgIGlmIChv
YmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1lbnQoKSAmJiAha2V5RGF0YS5pc1ZhbGlkKCkpIHsK
LSAgICAgICAgdWludDY0X3Qga2V5TnVtYmVyOwogICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0
b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwga2V5TnVtYmVyKTsKICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkgewog
ICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygq
dGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxiYWNrSWRl
bnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKQEAgLTk5NSw5ICs5OTgsNiBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVy
LCBjb25zdCBJREJSZQogICAgICAgICAKICAgICAgICAgdXNlZEtleS5zZXROdW1iZXJWYWx1ZShr
ZXlOdW1iZXIpOwogICAgICAgICB1c2VkS2V5SXNHZW5lcmF0ZWQgPSB0cnVlOwotICAgICAgICBn
ZW5lcmF0ZWRLZXlSZXNldHRlci5lbmFibGUoW3RoaXMsIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXJdKCkgewotICAgICAgICAgICAgbV9iYWNr
aW5nU3RvcmUtPnJldmVydEdlbmVyYXRlZEtleU51bWJlcih0cmFuc2FjdGlvbklkZW50aWZpZXIs
IG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKLSAgICAgICAgfSk7CiAgICAgfSBl
bHNlCiAgICAgICAgIHVzZWRLZXkgPSBrZXlEYXRhOwogCkBAIC0xMDY1LDcgKzEwNjUsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3QgY2FsbGJhY2tJ
ZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIGlmIChvdmVyd3JpdGVNb2RlICE9IEluZGV4ZWRE
Qjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGVGb3JDdXJzb3IgJiYgb2JqZWN0
U3RvcmVJbmZvLT5hdXRvSW5jcmVtZW50KCkgJiYga2V5RGF0YS50eXBlKCkgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpOdW1iZXIpCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm1heWJl
VXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBrZXlEYXRhLm51bWJlcigpKTsKIAotICAgIGdlbmVyYXRlZEtleVJlc2V0
dGVyLmRpc2FibGUoKTsKKyAgICBnZW5lcmF0ZWRLZXlSZXNldHRlci5yZWxlYXNlKCk7CiAgICAg
cG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1
ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJy
b3IsIHVzZWRLZXkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk2MTA2NTg5YmQ1Li41ZjNjNTFmZWY2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTgwOCw3ICsxODA4LDYgQEAKIAkJNTEzRjE0NTQwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2Fk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0Yx
NDUyMEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggKi87IH07CiAJCTUxNDA1Qzg4MTkw
QjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MDVDODYxOTBCMDE0NDAwNzU0Rjk0
IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi87IH07CiAJCTUxNDA1Qzg5MTkwQjAxNDQw
MDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg3MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxl
Y3Rpb25SZWN0R2F0aGVyZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OEYxQzYw
MUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQxMjk5OTFDNjk3NjkwMDA1OUU3MTQgLyogSURCUmVx
dWVzdENvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVlc3RDb21wbGV0
aW9uRXZlbnQuaCAqLzsgfTsKIAkJNTE0M0IyNjMxREREMTUyMDAwMTRGQUM2IC8qIExpbmtJY29u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQzQjI2
MjFEREQxNDkwMDAxNEZBQzYgLyogTGlua0ljb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQ1QjEwQTFCQzQ4RTJFMDBFODYyMTkgLyogSURC
UmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQ1QjEwODFCQzQ4OTBCMDBFODYyMTkgLyogSURCUmVzb3VyY2VJZGVudGlm
aWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTg4NDIsNyArODg0MSw2IEBACiAJCTUxNDA1Qzg2MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rp
b25SZWN0R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OEQxQzVGRDdFOTAwNTlFNzE0IC8qIEpT
SURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVHdWFyZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NjFDNjk3NjE1MDA1OUU3MTQgLyogSURCUmVxdWVz
dENvbXBsZXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVxdWVzdENvbXBsZXRp
b25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5QTFDNkMxNjZE
MDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0lEQkluZGV4Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI0MjY5LDcgKzI0MjY3LDYgQEAKIAkJCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FD
RjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJCQkJNTE2MkM3RjIxMUY3N0VG
QTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJCQk1MTYyQzdGMzExRjc3RUZC
MDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKLQkJCQk1MTQxMjk4RjFDNjAxQTg5MDA1
OUU3MTQgLyogU2NvcGVHdWFyZC5oICovLAogCQkJCUJDOEFFMzRDMTJFQTA5NkEwMEVCM0FFNiAv
KiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAwRUIzQUU2IC8q
IFNjcm9sbGFibGVBcmVhLmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNj
cm9sbEFuaW1hdG9yLmNwcCAqLywKQEAgLTI5NTU2LDcgKzI5NTUzLDYgQEAKIAkJCQk1REZFOEY1
NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlCRDBCRjkzMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQgLyogU2NvcGVHdWFy
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQkUwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVl
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzExMUQzNDc0ODAwOTcyOTkwIC8qIFNjcmlw
dGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMUQyMUYwRUYzNUMy
QTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGExM2Q2YmM3YmQ4Li40OWRlMzQ3
YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTI4LDggKzI4
LDggQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAKICNpbmNsdWRlICJGaWxlTWV0YWRhdGEu
aCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgor
I2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTIxMyw3ICsyMTMsNyBAQCBi
b29sIGFwcGVuZEZpbGVDb250ZW50c1RvRmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIHBhdGgsIFBs
YXRmb3JtRmlsZUhhbmRsZSYgdGFyZwogICAgIHN0YXRpYyBpbnQgYnVmZmVyU2l6ZSA9IDEgPDwg
MTk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKIAotICAgIFNjb3BlR3Vh
cmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1h
a2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5k
bGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NGNiM2I5ZjhlYi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nv
cGVHdWFyZC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0jaWZu
ZGVmIFNjb3BlR3VhcmRfaAotI2RlZmluZSBTY29wZUd1YXJkX2gKLQotI2luY2x1ZGUgPHd0Zi9G
dW5jdGlvbi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNjb3BlR3VhcmQgewot
cHVibGljOgotICAgIFNjb3BlR3VhcmQoKQotICAgIHsKLSAgICB9Ci0KLSAgICBTY29wZUd1YXJk
KFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAgICAgICA6IG1fZnVuY3Rpb24o
V1RGTW92ZShmdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAgIH5TY29wZUd1YXJkKCkKLSAg
ICB7Ci0gICAgICAgIGlmIChtX2Z1bmN0aW9uKQotICAgICAgICAgICAgbV9mdW5jdGlvbigpOwot
ICAgIH0KLQotICAgIHZvaWQgZW5hYmxlKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9u
KQotICAgIHsKLSAgICAgICAgbV9mdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pOwotICAgIH0K
LQotICAgIHZvaWQgZGlzYWJsZSgpCi0gICAgewotICAgICAgICBtX2Z1bmN0aW9uID0gbnVsbHB0
cjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rp
b247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTY29wZUd1YXJk
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lz
dHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwCmluZGV4IDViMjc0YzIxMjhkLi4wZjAxOTc0Y2EyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCkBAIC00
MSw5ICs0MSw5IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAi
U2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIApAQCAtMjg2LDcg
KzI4Niw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5Rmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzCiAgICAgICAgICAgICAgICAgUGxhdGZv
cm1GaWxlSGFuZGxlIGZpbGU7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHRlbXBGaWxlUGF0aCA9
IG9wZW5UZW1wb3JhcnlGaWxlKEFTQ0lJTGl0ZXJhbCgiQmxvYiIpLCBmaWxlKTsKIAotICAgICAg
ICAgICAgICAgIFNjb3BlR3VhcmQgZmlsZUNsb3NlcihbZmlsZV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW2ZpbGVdKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNsb3NlRmlsZShmaWxlKTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCA3MTNj
ZTAzYjYxZi4uNmIyZTFiZDE1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTM1LDcgKzM1LDYg
QEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgpAQCAtNDQsNiArNDMsNyBAQAogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPHd0
Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9i
RmFpbGVkV2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0CiAKIHZvaWQg
U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZp
Y2VXb3JrZXJKb2ImIGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiBkYXRhKQog
ewotICAgIFNjb3BlR3VhcmQgZ3VhcmQoW3RoaXMsICZqb2JdIHsKKyAgICBhdXRvIGd1YXJkID0g
V1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCAmam9iXSB7CiAgICAgICAgIGpvYkRpZEZpbmlzaChq
b2IpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjODdlMWQ3YzNiLi4xY2E5ZGVhOWFlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMC0yNSAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNo
cmlzLnJlaWRAc29ueS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0
Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4
NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKwogMjAxNy0xMC0yNSAgWW91c3VrZSBLaW1v
dG8gIDx5b3VzdWtlLmtpbW90b0Bzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIEFkZCBX
ZWJLaXQgcGxhdGZvcm0gZmlsZXMgZm9yIHdpbmNhaXJvIHdlYmtpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggOTU2NDQ1YzIyOTUuLjU0YWU2NTgw
MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KQEAg
LTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIlF1YXJhbnRpbmVTUEkuaCIKICNpbXBvcnQgIlNhbmRi
b3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TY29wZUd1YXJkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N5
c3RlbVZlcnNpb24uaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgogI2ltcG9ydCA8bWFjaC90YXNr
Lmg+CkBAIC00MSw2ICs0MCw3IEBACiAjaW1wb3J0IDxwd2QuaD4KICNpbXBvcnQgPHN0ZGxpYi5o
PgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0Zi9TY29wZS5oPgogI2ltcG9ydCA8
d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIE9TU3RhdHVzIGVuYWJsZVNhbmRib3hTdHlsZUZp
bGVRdWFyYW50aW5lKCkKIHsKICAgICBpbnQgZXJyb3I7CiAgICAgcXRuX3Byb2NfdCBxdWFyYW50
aW5lUHJvcGVydGllcyA9IHF0bl9wcm9jX2FsbG9jKCk7Ci0gICAgU2NvcGVHdWFyZCBxdWFyYW50
aW5lUHJvcGVydGllc0RlbGV0ZXIoW3F1YXJhbnRpbmVQcm9wZXJ0aWVzXSgpIHsKKyAgICBhdXRv
IHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVsZXRlciA9IG1ha2VTY29wZUV4aXQoW3F1YXJhbnRpbmVQ
cm9wZXJ0aWVzXSgpIHsKICAgICAgICAgcXRuX3Byb2NfZnJlZShxdWFyYW50aW5lUHJvcGVydGll
cyk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBhOWY4ZjNlNjM3NS4uNmMwZTllNjE4NjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMC0y
NSAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+CisKKyAgICAgICAgUmVt
b3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1v
bml0b3IuY3BwOgorCiAyMDE3LTEwLTI1ICBSb2JpbiBNb3Jpc3NldCAgPHJtb3Jpc3NldEBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCB0aGUgVGFpbEJlbmNoOTAwMCBiZW5jaG1hcmsgaW4g
cnVuLWpzYy1iZW5jaG1hcmtzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCBiZmNkMjk5N2M1OC4uZmJjYzYyM2ZiZmMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcApA
QCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgIldURlN0cmluZ1V0aWxpdGllcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZU1vbml0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0u
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Njb3BlR3VhcmQuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+
CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4KQEAgLTEyMCw3ICsxMjAsNyBA
QCBzdGF0aWMgU3RyaW5nIHJlYWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAK
ICAgICBTdHJpbmdCdWZmZXI8TENoYXI+IGJ1ZmZlcihidWZmZXJTaXplKTsKIAotICAgIFNjb3Bl
R3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6
Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRmb3JtRmlsZUhhbmRsZSBo
YW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOwogICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324934</attachid>
            <date>2017-10-25 18:15:23 -0700</date>
            <delta_ts>2017-10-25 18:38:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-4.diff</filename>
            <type>text/plain</type>
            <size>18254</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Njb3BlLmggYi9Tb3VyY2UvV1RGL3d0Zi9TY29w
ZS5oCmluZGV4IDk3MTMxZDQ1OTBjLi43YmQ3NjM3MDA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvU2NvcGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TY29wZS5oCkBAIC0zNyw3ICszNyw3
IEBAIGNsYXNzIFNjb3BlRXhpdCBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRXhpdEZ1bmN0aW9uUGFyYW1ldGVyPgogICAgIGV4cGxpY2l0IFNjb3BlRXhpdChFeGl0RnVu
Y3Rpb25QYXJhbWV0ZXImJiBleGl0RnVuY3Rpb24pCi0gICAgICAgIDogbV9leGl0RnVuY3Rpb24o
c3RkOjpmb3J3YXJkPEV4aXRGdW5jdGlvbj4oZXhpdEZ1bmN0aW9uKSkKKyAgICAgICAgOiBtX2V4
aXRGdW5jdGlvbihXVEZNb3ZlKGV4aXRGdW5jdGlvbikpCiAgICAgewogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDBmZjY1MWNmZGNmLi4xMjA3OWZkYWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE3LTEwLTI1ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4K
KworICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNpbmcgcGxhdGZvcm0vU2Nv
cGVHdWFyZCB3aXRoIFdURjo6U2NvcGVFeGl0LgorICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNo
YW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY29wZUd1YXJkLmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisK
IDIwMTctMTAtMjUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAK
ICAgICAgICAgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXBhaW50LWFmdGVyLWFuaW1hdGlvbi5o
dG1sIGZsYWt5IGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCmluZGV4IDA1ZDI4ZTMwOTMxLi44ZTY4Zjc2YmIwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ1LDEwICs0
NSwxMCBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU2Nv
cGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5o
PgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIApA
QCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0U291cmNlKElEQkN1cnNvciYg
Y3Vyc29yKQogICAgIEFTU0VSVCghbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIpOwogCiAgICAgbV9z
b3VyY2UgPSBTb3VyY2UgeyAmY3Vyc29yIH07Ci0gICAgbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNjb3BlR3VhcmQ+KFt0aGlzXSgpIHsKKyAgICBtX2N1cnNvclJl
cXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8V1RGOjpTY29wZUV4aXQ8V1RGOjpGdW5j
dGlvbjx2b2lkKCk+Pj4oW3RoaXNdKCkgewogICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWZQdHI8SURCQ3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSkpOwogICAgICAgICBX
VEY6OmdldDxSZWZQdHI8SURCQ3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSktPmRlY3JlbWVudE91
dHN0YW5kaW5nUmVxdWVzdENvdW50KCk7CiAgICAgfSk7CkBAIC00ODcsNyArNDg3LDcgQEAgdm9p
ZCBJREJSZXF1ZXN0Ojp3aWxsSXRlcmF0ZUN1cnNvcihJREJDdXJzb3ImIGN1cnNvcikKICAgICBt
X2RvbUVycm9yID0gbnVsbHB0cjsKICAgICBtX2lkYkVycm9yID0gSURCRXJyb3IgeyB9OwogCi0g
ICAgbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjb3BlR3VhcmQ+
KFt0aGlzXSgpIHsKKyAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlx
dWU8V1RGOjpTY29wZUV4aXQ8V1RGOjpGdW5jdGlvbjx2b2lkKCk+Pj4oW3RoaXNdKCkgewogICAg
ICAgICBtX3BlbmRpbmdDdXJzb3ItPmRlY3JlbWVudE91dHN0YW5kaW5nUmVxdWVzdENvdW50KCk7
CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmgKaW5kZXggYzJhZTM2Zjc0ZmEuLmIxZjdiNGE0YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5j
bHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAj
aW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0OSw2
IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElE
QlRyYW5zYWN0aW9uOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xhc3Mg
VGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcwLDcg
KzE3MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJz
b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0Tm90
aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdURjo6U2NvcGVFeGl0PFdURjo6RnVuY3Rpb248
dm9pZCgpPj4+IG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAppbmRleCBhZjgyNWVmMmI1Ni4uODFjZGM5NzkwN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9u
SW5mby5oIgogI2luY2x1ZGUgIklEQlZhbHVlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2lu
Y2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
ICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxoZWFw
L0hlYXBJbmxpbmVzLmg+CkBAIC00OSw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1
Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC05ODQsOSArOTg0LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJl
CiAgICAgfQogCiAgICAgYm9vbCB1c2VkS2V5SXNHZW5lcmF0ZWQgPSBmYWxzZTsKLSAgICBTY29w
ZUd1YXJkIGdlbmVyYXRlZEtleVJlc2V0dGVyOworICAgIHVpbnQ2NF90IGtleU51bWJlcjsKKyAg
ICBhdXRvIGdlbmVyYXRlZEtleVJlc2V0dGVyID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgJmtleU51bWJlciwg
JnVzZWRLZXlJc0dlbmVyYXRlZF0oKSB7CisgICAgICAgIGlmICh1c2VkS2V5SXNHZW5lcmF0ZWQp
CisgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIpOwor
ICAgIH0pOwogICAgIGlmIChvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1lbnQoKSAmJiAha2V5
RGF0YS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgdWludDY0X3Qga2V5TnVtYmVyOwogICAgICAgICBl
cnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKICAgICAgICAgaWYgKCFl
cnJvci5pc051bGwoKSkgewogICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0
T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKQEAgLTk5NSw5ICs5
OTgsNiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgICAgICAKICAgICAgICAgdXNlZEtl
eS5zZXROdW1iZXJWYWx1ZShrZXlOdW1iZXIpOwogICAgICAgICB1c2VkS2V5SXNHZW5lcmF0ZWQg
PSB0cnVlOwotICAgICAgICBnZW5lcmF0ZWRLZXlSZXNldHRlci5lbmFibGUoW3RoaXMsIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXJdKCkgewot
ICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPnJldmVydEdlbmVyYXRlZEtleU51bWJlcih0cmFu
c2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKLSAg
ICAgICAgfSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHVzZWRLZXkgPSBrZXlEYXRhOwogCkBAIC0x
MDY1LDcgKzEwNjUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQo
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIGlmIChvdmVyd3Jp
dGVNb2RlICE9IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGVG
b3JDdXJzb3IgJiYgb2JqZWN0U3RvcmVJbmZvLT5hdXRvSW5jcmVtZW50KCkgJiYga2V5RGF0YS50
eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIpCiAgICAgICAgIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlEYXRhLm51bWJlcigpKTsKIAotICAg
IGdlbmVyYXRlZEtleVJlc2V0dGVyLmRpc2FibGUoKTsKKyAgICBnZW5lcmF0ZWRLZXlSZXNldHRl
ci5yZWxlYXNlKCk7CiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxi
YWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk2MTA2NTg5YmQ1Li41
ZjNjNTFmZWY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTgwOCw3ICsxODA4LDYgQEAKIAkJNTEzRjE0NTQwQUI2MzRDNDAw
MDk0RERGIC8qIEljb25Mb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxM0YxNDUyMEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggKi87
IH07CiAJCTUxNDA1Qzg4MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MDVD
ODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi87IH07CiAJ
CTUxNDA1Qzg5MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg3MTkwQjAx
NDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQg
LyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQxMjk5OTFDNjk3Njkw
MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8q
IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNTE0M0IyNjMxREREMTUyMDAw
MTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQzQjI2MjFEREQxNDkwMDAxNEZBQzYgLyogTGlua0ljb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQ1QjEwQTFCQzQ4
RTJFMDBFODYyMTkgLyogSURCUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1QjEwODFCQzQ4OTBCMDBFODYyMTkgLyog
SURCUmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTg4NDIsNyArODg0MSw2IEBACiAJCTUxNDA1Qzg2MTkwQjAxNDQw
MDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJl
Y3RHYXRoZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25S
ZWN0R2F0aGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OEQxQzVG
RDdFOTAwNTlFNzE0IC8qIEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0
IC8qIFNjb3BlR3VhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVH
dWFyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NjFDNjk3NjE1MDA1
OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJl
cXVlc3RDb21wbGV0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTQxMjk5QTFDNkMxNjZEMDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkluZGV4Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MjY5LDcgKzI0MjY3LDYgQEAKIAkJCQkyOTNF
QUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJ
CQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJ
CQk1MTYyQzdGMzExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKLQkJCQk1
MTQxMjk4RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oICovLAogCQkJCUJDOEFFMzRD
MTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQx
MkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKQEAgLTI5NTU2LDcgKzI5NTUz
LDYgQEAKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDBCRjkzMTJBNDJCRjUwMDcyRkQ0MyAvKiBT
Y29wZWRFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTQxMjk5MDFDNjAxQUNDMDA1
OUU3MTQgLyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQkUwQzI3NERB
QzAwOUY0RUM5IC8qIFNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzExMUQzNDc0
ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFGMUQyMUYwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGEx
M2Q2YmM3YmQ4Li40OWRlMzQ3YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3Rl
bS5jcHAKQEAgLTI4LDggKzI4LDggQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAKICNpbmNs
dWRlICJGaWxlTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSA8
d3RmL0hleE51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAg
LTIxMyw3ICsyMTMsNyBAQCBib29sIGFwcGVuZEZpbGVDb250ZW50c1RvRmlsZUhhbmRsZShjb25z
dCBTdHJpbmcmIHBhdGgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgdGFyZwogICAgIHN0YXRpYyBpbnQg
YnVmZmVyU2l6ZSA9IDEgPDwgMTk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXpl
KTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRvIGZp
bGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUp
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFy
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkNGNiM2I5ZjhlYi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0jaWZuZGVmIFNjb3BlR3VhcmRfaAotI2RlZmluZSBTY29wZUd1YXJkX2gK
LQotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFNjb3BlR3VhcmQgewotcHVibGljOgotICAgIFNjb3BlR3VhcmQoKQotICAgIHsKLSAgICB9
Ci0KLSAgICBTY29wZUd1YXJkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAg
ICAgICA6IG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAg
IH5TY29wZUd1YXJkKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2Z1bmN0aW9uKQotICAgICAgICAg
ICAgbV9mdW5jdGlvbigpOwotICAgIH0KLQotICAgIHZvaWQgZW5hYmxlKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAgIHsKLSAgICAgICAgbV9mdW5jdGlvbiA9IFdURk1vdmUo
ZnVuY3Rpb24pOwotICAgIH0KLQotICAgIHZvaWQgZGlzYWJsZSgpCi0gICAgewotICAgICAgICBt
X2Z1bmN0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+IG1fZnVuY3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBTY29wZUd1YXJkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IDViMjc0YzIxMjhkLi4wZjAxOTc0Y2Ey
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeUltcGwuY3BwCkBAIC00MSw5ICs0MSw5IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1Njb3Bl
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVl
dWUuaD4KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVC
bG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzCiAgICAg
ICAgICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGZpbGU7CiAgICAgICAgICAgICAgICAgU3Ry
aW5nIHRlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxlKEFTQ0lJTGl0ZXJhbCgiQmxvYiIp
LCBmaWxlKTsKIAotICAgICAgICAgICAgICAgIFNjb3BlR3VhcmQgZmlsZUNsb3NlcihbZmlsZV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VT
Y29wZUV4aXQoW2ZpbGVdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNsb3NlRmls
ZShmaWxlKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcAppbmRleCA3MTNjZTAzYjYxZi4uNmIyZTFiZDE1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yQmFzZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJTY29w
ZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgpAQCAtNDQsNiAr
NDMsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIlVS
TC5oIgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iRmFpbGVkV2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiBq
b2IsIGNvbnN0CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRo
UmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiBkYXRhKQogewotICAgIFNjb3BlR3VhcmQgZ3VhcmQoW3RoaXMsICZqb2JdIHsK
KyAgICBhdXRvIGd1YXJkID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCAmam9iXSB7CiAgICAg
ICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjODdlMWQ3YzNi
Li4xY2E5ZGVhOWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMC0yNSAgQ2hy
aXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNj
b3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKwogMjAxNy0x
MC0yNSAgWW91c3VrZSBLaW1vdG8gIDx5b3VzdWtlLmtpbW90b0Bzb255LmNvbT4KIAogICAgICAg
ICBbV2luQ2Fpcm9dIEFkZCBXZWJLaXQgcGxhdGZvcm0gZmlsZXMgZm9yIHdpbmNhaXJvIHdlYmtp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW0KaW5kZXggOTU2
NDQ1YzIyOTUuLjU0YWU2NTgwMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGls
ZFByb2Nlc3NNYWMubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIlF1YXJhbnRpbmVTUEku
aCIKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQg
PFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TY29wZUd1YXJkLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1N5c3RlbVZlcnNpb24uaD4KICNpbXBvcnQgPG1hY2gvbWFjaC5oPgog
I2ltcG9ydCA8bWFjaC90YXNrLmg+CkBAIC00MSw2ICs0MCw3IEBACiAjaW1wb3J0IDxwd2QuaD4K
ICNpbXBvcnQgPHN0ZGxpYi5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KKyNpbXBvcnQgPHd0Zi9T
Y29wZS5oPgogI2ltcG9ydCA8d3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oPgogCiAjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIE9TU3RhdHVzIGVu
YWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkKIHsKICAgICBpbnQgZXJyb3I7CiAgICAg
cXRuX3Byb2NfdCBxdWFyYW50aW5lUHJvcGVydGllcyA9IHF0bl9wcm9jX2FsbG9jKCk7Ci0gICAg
U2NvcGVHdWFyZCBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0ZXIoW3F1YXJhbnRpbmVQcm9wZXJ0
aWVzXSgpIHsKKyAgICBhdXRvIHF1YXJhbnRpbmVQcm9wZXJ0aWVzRGVsZXRlciA9IG1ha2VTY29w
ZUV4aXQoW3F1YXJhbnRpbmVQcm9wZXJ0aWVzXSgpIHsKICAgICAgICAgcXRuX3Byb2NfZnJlZShx
dWFyYW50aW5lUHJvcGVydGllcyk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhOWY4ZjNlNjM3NS4uNmMwZTllNjE4NjQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxNy0xMC0yNSAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHNjb3BlZ3VhcmQgZnJvbSBwbGF0Zm9ybQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4NjgxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwOgorCiAyMDE3LTEwLTI1ICBSb2JpbiBNb3Jpc3Nl
dCAgPHJtb3Jpc3NldEBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCB0aGUgVGFpbEJlbmNo
OTAwMCBiZW5jaG1hcmsgaW4gcnVuLWpzYy1iZW5jaG1hcmtzCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcAppbmRleCBiZmNkMjk5N2M1OC4u
ZmJjYzYyM2ZiZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlTW9uaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L0ZpbGVNb25pdG9yLmNwcApAQCAtMzAsOSArMzAsOSBAQAogI2luY2x1ZGUgIldURlN0cmluZ1V0
aWxpdGllcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZU1vbml0b3IuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Njb3BlR3VhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5j
bHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4K
QEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgU3RyaW5nIHJlYWRDb250ZW50c09mRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAKICAgICBTdHJpbmdCdWZmZXI8TENoYXI+IGJ1ZmZlcihidWZmZXJT
aXplKTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRv
IGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5k
bGUpOwogICAgIH0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324938</attachid>
            <date>2017-10-25 18:38:55 -0700</date>
            <delta_ts>2017-10-26 07:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>178681-4.diff</filename>
            <type>text/plain</type>
            <size>18603</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1Njb3BlLmggYi9Tb3VyY2UvV1RGL3d0Zi9TY29w
ZS5oCmluZGV4IDk3MTMxZDQ1OTBjLi43YmQ3NjM3MDA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvU2NvcGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TY29wZS5oCkBAIC0zNyw3ICszNyw3
IEBAIGNsYXNzIFNjb3BlRXhpdCBmaW5hbCB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgRXhpdEZ1bmN0aW9uUGFyYW1ldGVyPgogICAgIGV4cGxpY2l0IFNjb3BlRXhpdChFeGl0RnVu
Y3Rpb25QYXJhbWV0ZXImJiBleGl0RnVuY3Rpb24pCi0gICAgICAgIDogbV9leGl0RnVuY3Rpb24o
c3RkOjpmb3J3YXJkPEV4aXRGdW5jdGlvbj4oZXhpdEZ1bmN0aW9uKSkKKyAgICAgICAgOiBtX2V4
aXRGdW5jdGlvbihXVEZNb3ZlKGV4aXRGdW5jdGlvbikpCiAgICAgewogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDBmZjY1MWNmZGNmLi4xMjA3OWZkYWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE3LTEwLTI1ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4K
KworICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNpbmcgcGxhdGZvcm0vU2Nv
cGVHdWFyZCB3aXRoIFdURjo6U2NvcGVFeGl0LgorICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNo
YW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY29wZUd1YXJkLmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisK
IDIwMTctMTAtMjUgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAK
ICAgICAgICAgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXBhaW50LWFmdGVyLWFuaW1hdGlvbi5o
dG1sIGZsYWt5IGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlJlcXVlc3QuY3BwCmluZGV4IDA1ZDI4ZTMwOTMxLi44ZTY4Zjc2YmIwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ1LDEwICs0
NSwxMCBAQAogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTZXF1ZW5jZXMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU2Nv
cGVHdWFyZC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5o
PgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIApA
QCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgSURCUmVxdWVzdDo6c2V0U291cmNlKElEQkN1cnNvciYg
Y3Vyc29yKQogICAgIEFTU0VSVCghbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIpOwogCiAgICAgbV9z
b3VyY2UgPSBTb3VyY2UgeyAmY3Vyc29yIH07Ci0gICAgbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNjb3BlR3VhcmQ+KFt0aGlzXSgpIHsKKyAgICBtX2N1cnNvclJl
cXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlxdWU8V1RGOjpTY29wZUV4aXQ8V1RGOjpGdW5j
dGlvbjx2b2lkKCk+Pj4oW3RoaXNdKCkgewogICAgICAgICBBU1NFUlQoV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxSZWZQdHI8SURCQ3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSkpOwogICAgICAgICBX
VEY6OmdldDxSZWZQdHI8SURCQ3Vyc29yPj4obV9zb3VyY2UudmFsdWUoKSktPmRlY3JlbWVudE91
dHN0YW5kaW5nUmVxdWVzdENvdW50KCk7CiAgICAgfSk7CkBAIC00ODcsNyArNDg3LDcgQEAgdm9p
ZCBJREJSZXF1ZXN0Ojp3aWxsSXRlcmF0ZUN1cnNvcihJREJDdXJzb3ImIGN1cnNvcikKICAgICBt
X2RvbUVycm9yID0gbnVsbHB0cjsKICAgICBtX2lkYkVycm9yID0gSURCRXJyb3IgeyB9OwogCi0g
ICAgbV9jdXJzb3JSZXF1ZXN0Tm90aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNjb3BlR3VhcmQ+
KFt0aGlzXSgpIHsKKyAgICBtX2N1cnNvclJlcXVlc3ROb3RpZmllciA9IHN0ZDo6bWFrZV91bmlx
dWU8V1RGOjpTY29wZUV4aXQ8V1RGOjpGdW5jdGlvbjx2b2lkKCk+Pj4oW3RoaXNdKCkgewogICAg
ICAgICBtX3BlbmRpbmdDdXJzb3ItPmRlY3JlbWVudE91dHN0YW5kaW5nUmVxdWVzdENvdW50KCk7
CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LmgKaW5kZXggYzJhZTM2Zjc0ZmEuLmIxZjdiNGE0YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC0zNCw2ICszNCw4IEBACiAjaW5j
bHVkZSAiSURCUmVzb3VyY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW5kZXhlZERCLmgiCiAj
aW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNs
dWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0OSw2
IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3MgSURCUmVzdWx0RGF0YTsKIGNsYXNzIElE
QlRyYW5zYWN0aW9uOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBTY29wZUd1YXJkOwogY2xhc3Mg
VGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKIG5hbWVzcGFjZSBJREJDbGllbnQgewpAQCAtMTcwLDcg
KzE3MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SURCQ3Vyc29yPiBtX3BlbmRpbmdDdXJz
b3I7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2NvcGVHdWFyZD4gbV9jdXJzb3JSZXF1ZXN0Tm90
aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdURjo6U2NvcGVFeGl0PFdURjo6RnVuY3Rpb248
dm9pZCgpPj4+IG1fY3Vyc29yUmVxdWVzdE5vdGlmaWVyOwogCiAgICAgUmVmPElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5PiBtX2Nvbm5lY3Rpb25Qcm94eTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAppbmRleCBhZjgyNWVmMmI1Ni4uODFjZGM5NzkwN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9u
SW5mby5oIgogI2luY2x1ZGUgIklEQlZhbHVlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2lu
Y2x1ZGUgIlNjb3BlR3VhcmQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
ICNpbmNsdWRlICJVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxoZWFw
L0hlYXBJbmxpbmVzLmg+CkBAIC00OSw2ICs0OCw3IEBACiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1
Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC05ODQsOSArOTg0LDEyIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJl
CiAgICAgfQogCiAgICAgYm9vbCB1c2VkS2V5SXNHZW5lcmF0ZWQgPSBmYWxzZTsKLSAgICBTY29w
ZUd1YXJkIGdlbmVyYXRlZEtleVJlc2V0dGVyOworICAgIHVpbnQ2NF90IGtleU51bWJlcjsKKyAg
ICBhdXRvIGdlbmVyYXRlZEtleVJlc2V0dGVyID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgJmtleU51bWJlciwg
JnVzZWRLZXlJc0dlbmVyYXRlZF0oKSB7CisgICAgICAgIGlmICh1c2VkS2V5SXNHZW5lcmF0ZWQp
CisgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZS0+cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXIpOwor
ICAgIH0pOwogICAgIGlmIChvYmplY3RTdG9yZUluZm8tPmF1dG9JbmNyZW1lbnQoKSAmJiAha2V5
RGF0YS5pc1ZhbGlkKCkpIHsKLSAgICAgICAgdWludDY0X3Qga2V5TnVtYmVyOwogICAgICAgICBl
cnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZW5lcmF0ZUtleU51bWJlcih0cmFuc2FjdGlvbklkZW50
aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKICAgICAgICAgaWYgKCFl
cnJvci5pc051bGwoKSkgewogICAgICAgICAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0
ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0
T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKQEAgLTk5NSw5ICs5
OTgsNiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQodWludDY0X3Qg
Y2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgICAgICAKICAgICAgICAgdXNlZEtl
eS5zZXROdW1iZXJWYWx1ZShrZXlOdW1iZXIpOwogICAgICAgICB1c2VkS2V5SXNHZW5lcmF0ZWQg
PSB0cnVlOwotICAgICAgICBnZW5lcmF0ZWRLZXlSZXNldHRlci5lbmFibGUoW3RoaXMsIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlOdW1iZXJdKCkgewot
ICAgICAgICAgICAgbV9iYWNraW5nU3RvcmUtPnJldmVydEdlbmVyYXRlZEtleU51bWJlcih0cmFu
c2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5TnVtYmVyKTsKLSAg
ICAgICAgfSk7CiAgICAgfSBlbHNlCiAgICAgICAgIHVzZWRLZXkgPSBrZXlEYXRhOwogCkBAIC0x
MDY1LDcgKzEwNjUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQo
dWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZQogICAgIGlmIChvdmVyd3Jp
dGVNb2RlICE9IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpPdmVyd3JpdGVG
b3JDdXJzb3IgJiYgb2JqZWN0U3RvcmVJbmZvLT5hdXRvSW5jcmVtZW50KCkgJiYga2V5RGF0YS50
eXBlKCkgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIpCiAgICAgICAgIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPm1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBrZXlEYXRhLm51bWJlcigpKTsKIAotICAg
IGdlbmVyYXRlZEtleVJlc2V0dGVyLmRpc2FibGUoKTsKKyAgICBnZW5lcmF0ZWRLZXlSZXNldHRl
ci5yZWxlYXNlKCk7CiAgICAgcG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxi
YWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk2MTA2NTg5YmQ1Li41
ZjNjNTFmZWY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTgwOCw3ICsxODA4LDYgQEAKIAkJNTEzRjE0NTQwQUI2MzRDNDAw
MDk0RERGIC8qIEljb25Mb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxM0YxNDUyMEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggKi87
IH07CiAJCTUxNDA1Qzg4MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MDVD
ODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi87IH07CiAJ
CTUxNDA1Qzg5MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg3MTkwQjAx
NDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk1MTQxMjk5MDFDNjAxQUNDMDA1OUU3MTQg
LyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0IC8qIFNjb3BlR3VhcmQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQxMjk5OTFDNjk3Njkw
MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8q
IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNTE0M0IyNjMxREREMTUyMDAw
MTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTQzQjI2MjFEREQxNDkwMDAxNEZBQzYgLyogTGlua0ljb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTQ1QjEwQTFCQzQ4
RTJFMDBFODYyMTkgLyogSURCUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1QjEwODFCQzQ4OTBCMDBFODYyMTkgLyog
SURCUmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTg4NDIsNyArODg0MSw2IEBACiAJCTUxNDA1Qzg2MTkwQjAxNDQw
MDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJl
Y3RHYXRoZXJlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25S
ZWN0R2F0aGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OEQxQzVG
RDdFOTAwNTlFNzE0IC8qIEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCQ3Vyc29yV2l0aFZhbHVlQ3VzdG9tLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE0MTI5OEYxQzYwMUE4OTAwNTlFNzE0
IC8qIFNjb3BlR3VhcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVH
dWFyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NjFDNjk3NjE1MDA1
OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJl
cXVlc3RDb21wbGV0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTQxMjk5QTFDNkMxNjZEMDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkluZGV4Q3VzdG9tLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI0MjY5LDcgKzI0MjY3LDYgQEAKIAkJCQkyOTNF
QUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggKi8sCiAJ
CQkJNTE2MkM3RjIxMUY3N0VGQTAwNjEyRUZFIC8qIFNjaGVtZVJlZ2lzdHJ5LmNwcCAqLywKIAkJ
CQk1MTYyQzdGMzExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKLQkJCQk1
MTQxMjk4RjFDNjAxQTg5MDA1OUU3MTQgLyogU2NvcGVHdWFyZC5oICovLAogCQkJCUJDOEFFMzRD
MTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQx
MkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5
OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKQEAgLTI5NTU2LDcgKzI5NTUz
LDYgQEAKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVkQWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDBCRjkzMTJBNDJCRjUwMDcyRkQ0MyAvKiBT
Y29wZWRFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTQxMjk5MDFDNjAxQUNDMDA1
OUU3MTQgLyogU2NvcGVHdWFyZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQkUwQzI3NERB
QzAwOUY0RUM5IC8qIFNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzExMUQzNDc0
ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFGMUQyMUYwRUYzNUMyQTAwREE4NzUzIC8qIFNjcmlwdENhY2hlZEZyYW1lRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IGEx
M2Q2YmM3YmQ4Li40OWRlMzQ3YWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3Rl
bS5jcHAKQEAgLTI4LDggKzI4LDggQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAKICNpbmNs
dWRlICJGaWxlTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSA8
d3RmL0hleE51bWJlci5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAg
LTIxMyw3ICsyMTMsNyBAQCBib29sIGFwcGVuZEZpbGVDb250ZW50c1RvRmlsZUhhbmRsZShjb25z
dCBTdHJpbmcmIHBhdGgsIFBsYXRmb3JtRmlsZUhhbmRsZSYgdGFyZwogICAgIHN0YXRpYyBpbnQg
YnVmZmVyU2l6ZSA9IDEgPDwgMTk7CiAgICAgVmVjdG9yPGNoYXI+IGJ1ZmZlcihidWZmZXJTaXpl
KTsKIAotICAgIFNjb3BlR3VhcmQgZmlsZUNsb3Nlcihbc291cmNlXSgpIHsKKyAgICBhdXRvIGZp
bGVDbG9zZXIgPSBXVEY6Om1ha2VTY29wZUV4aXQoW3NvdXJjZV0oKSB7CiAgICAgICAgIFBsYXRm
b3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBzb3VyY2U7CiAgICAgICAgIGNsb3NlRmlsZShoYW5kbGUp
OwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFy
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkNGNiM2I5ZjhlYi4uMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2NvcGVHdWFyZC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0jaWZuZGVmIFNjb3BlR3VhcmRfaAotI2RlZmluZSBTY29wZUd1YXJkX2gK
LQotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFNjb3BlR3VhcmQgewotcHVibGljOgotICAgIFNjb3BlR3VhcmQoKQotICAgIHsKLSAgICB9
Ci0KLSAgICBTY29wZUd1YXJkKFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAg
ICAgICA6IG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAg
IH5TY29wZUd1YXJkKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2Z1bmN0aW9uKQotICAgICAgICAg
ICAgbV9mdW5jdGlvbigpOwotICAgIH0KLQotICAgIHZvaWQgZW5hYmxlKFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGZ1bmN0aW9uKQotICAgIHsKLSAgICAgICAgbV9mdW5jdGlvbiA9IFdURk1vdmUo
ZnVuY3Rpb24pOwotICAgIH0KLQotICAgIHZvaWQgZGlzYWJsZSgpCi0gICAgewotICAgICAgICBt
X2Z1bmN0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+IG1fZnVuY3Rpb247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBTY29wZUd1YXJkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3BwCmluZGV4IDViMjc0YzIxMjhkLi4wZjAxOTc0Y2Ey
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0
cnlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdp
c3RyeUltcGwuY3BwCkBAIC00MSw5ICs0MSw5IEBACiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCi0jaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1Njb3Bl
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVl
dWUuaD4KIApAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgQmxvYlJlZ2lzdHJ5SW1wbDo6d3JpdGVC
bG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzCiAgICAg
ICAgICAgICAgICAgUGxhdGZvcm1GaWxlSGFuZGxlIGZpbGU7CiAgICAgICAgICAgICAgICAgU3Ry
aW5nIHRlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxlKEFTQ0lJTGl0ZXJhbCgiQmxvYiIp
LCBmaWxlKTsKIAotICAgICAgICAgICAgICAgIFNjb3BlR3VhcmQgZmlsZUNsb3NlcihbZmlsZV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGZpbGVDbG9zZXIgPSBXVEY6Om1ha2VT
Y29wZUV4aXQoW2ZpbGVdKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNsb3NlRmls
ZShmaWxlKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcAppbmRleCA3MTNjZTAzYjYxZi4uOGIxZTg3NWJiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2
aWdhdG9yQmFzZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKLSNpbmNsdWRlICJTY29w
ZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgpAQCAtNDQsNiAr
NDMsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIlVS
TC5oIgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iRmFpbGVkV2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiBq
b2IsIGNvbnN0CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRo
UmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiBkYXRhKQogewotICAgIFNjb3BlR3VhcmQgZ3VhcmQoW3RoaXMsICZqb2JdIHsK
KyAgICBhdXRvIGd1YXJkID0gV1RGOjptYWtlU2NvcGVFeGl0KFt0aGlzLCAmam9iXSB7CiAgICAg
ICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgIH0pOwogCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2Vy
dmljZVdvcmtlckpvYiYgam9iLAogCiB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJl
c29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgYm9v
bCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKIHsKLSAgICBTY29wZUd1YXJkIGd1YXJkKFt0aGlzLCAm
am9iXSB7CisgICAgYXV0byBndWFyZCA9IFdURjo6bWFrZVNjb3BlRXhpdChbdGhpcywgJmpvYl0g
ewogICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4Yzg3
ZTFkN2MzYi4uMWNhOWRlYTlhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMTAt
MjUgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlkQHNvbnkuY29tPgorCisgICAgICAgIFJl
bW92ZSBzY29wZWd1YXJkIGZyb20gcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL21hYy9DaGlsZFByb2Nlc3NNYWMubW06CisK
IDIwMTctMTAtMjUgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5raW1vdG9Ac29ueS5jb20+CiAK
ICAgICAgICAgW1dpbkNhaXJvXSBBZGQgV2ViS2l0IHBsYXRmb3JtIGZpbGVzIGZvciB3aW5jYWly
byB3ZWJraXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9DaGlsZFByb2Nl
c3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmlu
ZGV4IDk1NjQ0NWMyMjk1Li41NGFlNjU4MDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvQ2hpbGRQcm9jZXNzTWFjLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJRdWFyYW50
aW5lU1BJLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAj
aW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbXBvcnQgPFdlYkNvcmUvU2NvcGVHdWFy
ZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TeXN0ZW1WZXJzaW9uLmg+CiAjaW1wb3J0IDxtYWNoL21h
Y2guaD4KICNpbXBvcnQgPG1hY2gvdGFzay5oPgpAQCAtNDEsNiArNDAsNyBAQAogI2ltcG9ydCA8
cHdkLmg+CiAjaW1wb3J0IDxzdGRsaWIuaD4KICNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0
IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KIAog
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBPU1N0
YXR1cyBlbmFibGVTYW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpCiB7CiAgICAgaW50IGVycm9y
OwogICAgIHF0bl9wcm9jX3QgcXVhcmFudGluZVByb3BlcnRpZXMgPSBxdG5fcHJvY19hbGxvYygp
OwotICAgIFNjb3BlR3VhcmQgcXVhcmFudGluZVByb3BlcnRpZXNEZWxldGVyKFtxdWFyYW50aW5l
UHJvcGVydGllc10oKSB7CisgICAgYXV0byBxdWFyYW50aW5lUHJvcGVydGllc0RlbGV0ZXIgPSBt
YWtlU2NvcGVFeGl0KFtxdWFyYW50aW5lUHJvcGVydGllc10oKSB7CiAgICAgICAgIHF0bl9wcm9j
X2ZyZWUocXVhcmFudGluZVByb3BlcnRpZXMpOwogICAgIH0pOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTlmOGYzZTYzNzUuLjZjMGU5ZTYx
ODY0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTctMTAtMjUgIENocmlzdG9waGVyIFJlaWQgIDxjaHJpcy5yZWlk
QHNvbnkuY29tPgorCisgICAgICAgIFJlbW92ZSBzY29wZWd1YXJkIGZyb20gcGxhdGZvcm0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcDoKKwogMjAxNy0xMC0yNSAgUm9iaW4g
TW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgdGhlIFRh
aWxCZW5jaDkwMDAgYmVuY2htYXJrIGluIHJ1bi1qc2MtYmVuY2htYXJrcwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVNb25pdG9yLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKaW5kZXggYmZjZDI5
OTdjNTguLmZiY2M2MjNmYmZjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZU1vbml0b3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlTW9uaXRvci5jcHAKQEAgLTMwLDkgKzMwLDkgQEAKICNpbmNsdWRlICJXVEZT
dHJpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVNb25pdG9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TY29wZUd1YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVm
ZmVyLmg+CkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGljIFN0cmluZyByZWFkQ29udGVudHNPZkZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoKQogCiAgICAgU3RyaW5nQnVmZmVyPExDaGFyPiBidWZmZXIo
YnVmZmVyU2l6ZSk7CiAKLSAgICBTY29wZUd1YXJkIGZpbGVDbG9zZXIoW3NvdXJjZV0oKSB7Cisg
ICAgYXV0byBmaWxlQ2xvc2VyID0gV1RGOjptYWtlU2NvcGVFeGl0KFtzb3VyY2VdKCkgewogICAg
ICAgICBQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlID0gc291cmNlOwogICAgICAgICBjbG9zZUZp
bGUoaGFuZGxlKTsKICAgICB9KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>