<?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>162745</bug_id>
          
          <creation_ts>2016-09-29 12:22:22 -0700</creation_ts>
          <short_desc>Implement basic pointer lock behavior for WebKit and WebKit2.</short_desc>
          <delta_ts>2016-12-10 00:37:43 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</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="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1234913</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 12:22:22 -0700</bug_when>
    <thetext>Implement basic pointer lock behavior for WebKit and WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234926</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 12:55:13 -0700</bug_when>
    <thetext>rdar://problem/16393663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234930</commentid>
    <comment_count>2</comment_count>
      <attachid>290235</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 12:58:53 -0700</bug_when>
    <thetext>Created attachment 290235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234945</commentid>
    <comment_count>3</comment_count>
      <attachid>290235</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-09-29 13:38:21 -0700</bug_when>
    <thetext>Comment on attachment 290235
Patch

A WK2 owner should probably take a look too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234946</commentid>
    <comment_count>4</comment_count>
      <attachid>290235</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-09-29 13:39:57 -0700</bug_when>
    <thetext>Comment on attachment 290235
Patch

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

r- until we have a WK2 reviewer.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests until feature is ready to enable.

What is the new bug that will deal with test coverage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234947</commentid>
    <comment_count>5</comment_count>
      <attachid>290235</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2016-09-29 13:40:24 -0700</bug_when>
    <thetext>Comment on attachment 290235
Patch

Sorry, better for it to be r? instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234950</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-09-29 13:48:36 -0700</bug_when>
    <thetext>Please make the patch not red on all the platforms that we care about :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234953</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 13:55:21 -0700</bug_when>
    <thetext>Use this radar instead:
rdar://problem/28550438</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234964</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 14:07:54 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Please make the patch not red on all the platforms that we care about :|

I failed up upload the project change that adds &apos;WebCore/PointerLockController.h&apos; as a WebCore private header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234967</commentid>
    <comment_count>9</comment_count>
      <attachid>290242</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-09-29 14:11:01 -0700</bug_when>
    <thetext>Created attachment 290242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235105</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-09-29 20:44:47 -0700</bug_when>
    <thetext>Can we write tests for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236773</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-05 13:45:31 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Can we write tests for this change?

New layout tests shouldn&apos;t be necessary for this change as there are already many pointer-lock tests in LayoutTests/pointer-lock This change should make some of them pass. I&apos;ll annotate with which ones when I finish running the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239938</commentid>
    <comment_count>12</comment_count>
      <attachid>290242</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-13 13:56:47 -0700</bug_when>
    <thetext>Comment on attachment 290242
Patch

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

&gt; Source/WebKit2/Shared/WebEventConversion.cpp:102
&gt; +        m_movementDelta = WebCore::IntPoint(webEvent.deltaX(), webEvent.deltaY());

Should m_movementDelta really be integral? What about mouse positions on retina screens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241177</commentid>
    <comment_count>13</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-17 14:48:50 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 290242 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290242&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebEventConversion.cpp:102
&gt; &gt; +        m_movementDelta = WebCore::IntPoint(webEvent.deltaX(), webEvent.deltaY());
&gt; 
&gt; Should m_movementDelta really be integral? What about mouse positions on
&gt; retina screens?

That does make sense. It would require also changing m_position and m_globalPosition.

https://bugs.webkit.org/show_bug.cgi?id=163566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241182</commentid>
    <comment_count>14</comment_count>
      <attachid>291880</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-17 15:04:10 -0700</bug_when>
    <thetext>Created attachment 291880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241186</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 15:06:44 -0700</bug_when>
    <thetext>Attachment 291880 did not pass style-queue:


ERROR: Source/WebKit/mac/WebCoreSupport/WebChromeClient.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
ERROR: Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:720:  No space between ^ and block definition.  [whitespace/brackets] [4]
Total errors found: 2 in 20 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>1242652</commentid>
    <comment_count>16</comment_count>
      <attachid>291880</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-20 16:42:59 -0700</bug_when>
    <thetext>Comment on attachment 291880
Patch

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

&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:720
&gt; +    dispatch_async(dispatch_get_main_queue(), ^{

Why is the dispatch_async() required?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242662</commentid>
    <comment_count>17</comment_count>
      <attachid>291880</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-10-20 16:47:55 -0700</bug_when>
    <thetext>Comment on attachment 291880
Patch

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

&gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:744
&gt; +    return false;

Always false?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242917</commentid>
    <comment_count>18</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 09:25:05 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 291880 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291880&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:720
&gt; &gt; +    dispatch_async(dispatch_get_main_queue(), ^{
&gt; 
&gt; Why is the dispatch_async() required?

The lower level logic doesn&apos;t handle receiving didAcquirePointerLock() call before requestPointerLock() returns. I&apos;ll remove this from this patch and have a better fix in a subsequent patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242927</commentid>
    <comment_count>19</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 09:46:31 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; Comment on attachment 291880 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=291880&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:720
&gt; &gt; &gt; +    dispatch_async(dispatch_get_main_queue(), ^{
&gt; &gt; 
&gt; &gt; Why is the dispatch_async() required?
&gt; 
&gt; The lower level logic doesn&apos;t handle receiving didAcquirePointerLock() call
&gt; before requestPointerLock() returns. I&apos;ll remove this from this patch and
&gt; have a better fix in a subsequent patch.

Actually lower level logic is easily fixed. I&apos;ll just remove the dispatch_async workaround.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242928</commentid>
    <comment_count>20</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 09:47:12 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Comment on attachment 291880 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=291880&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:744
&gt; &gt; +    return false;
&gt; 
&gt; Always false?

Actually isPointerLock() isn&apos;t used. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242942</commentid>
    <comment_count>21</comment_count>
      <attachid>292361</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 10:07:27 -0700</bug_when>
    <thetext>Created attachment 292361
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242964</commentid>
    <comment_count>22</comment_count>
      <attachid>292367</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 10:28:21 -0700</bug_when>
    <thetext>Created attachment 292367
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242980</commentid>
    <comment_count>23</comment_count>
      <attachid>292373</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2016-10-21 10:45:54 -0700</bug_when>
    <thetext>Created attachment 292373
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243019</commentid>
    <comment_count>24</comment_count>
      <attachid>292373</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-21 11:48:25 -0700</bug_when>
    <thetext>Comment on attachment 292373
Patch for landing.

Clearing flags on attachment: 292373

Committed r207689: &lt;http://trac.webkit.org/changeset/207689&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290235</attachid>
            <date>2016-09-29 12:58:53 -0700</date>
            <delta_ts>2016-09-29 14:10:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162745-20160929125554.patch</filename>
            <type>text/plain</type>
            <size>17778</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JlMWE4NGM2N2RmYTE0
ZmU0OTk4NmI4ZjZmOTQwYWJhMGNjMjIzZS4uYmVkODAzM2E3MGEwMWFhMzgyNzQ5ZjdhNTFmZmI1
ZTgyNGE4ZjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgdW50aWwg
ZmVhdHVyZSBpcyByZWFkeSB0byBlbmFibGUuCisKKyAgICAgICAgRXhwb3J0IHBvaW50ZXIgbG9j
ayBzeW1ib2xzIGFuZCBjYW5jZWwgcG9pbnRlciBsb2NrIG9uICJlc2NhcGUiLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6a2V5RXZlbnQpOiBDYW5jZWwgcG9pbnRlciBs
b2NrIG9uICJlc2NhcGUiLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cDogQWRkIG1pc3NpbmcgaW5jbHVkZS4KKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oOiBFeHBvcnQgc3ltYm9scy4KKwogMjAxNi0wOS0yOSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQWRkIEQyRCBGb250
IGhhbmRsaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0NzkwZGU2MTM1OTVhYTRkMjI2NjRm
Yjg0Y2RmMjRmMjAwMDU3YzA1Li4zN2E5ODkzOTEyZGFjMWNhNDIyOWM4N2ZjOWUwOGYxYTdjMTY3
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDktMjkgIEplcmVt
eSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBw
b2ludGVyIGxvY2sgYmVoYXZpb3IgZm9yIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjc0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBwb2ludGVyIGxv
Y2sgZnVuY3Rpb25hbGl0eS4gVXNlciBwZXJtaXNzaW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJl
cXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aXNQb2ludGVy
TG9ja2VkKToKKwogMjAxNi0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBFTkNSWVBURURfTUVESUEgaW1wbGVtZW50YXRp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNmRlY2QzZDgwZjZlM2E4MDJkOTYxYTEzYmE3MWUwODRmZDIyNzc5
My4uODM5ZTczYmExMzE5YjNkNTY5OWRlZWFhY2YwYWFhOGVmMGZmZWUxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM0IEBACisyMDE2LTA5LTI5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgcG9pbnRlciBsb2NrIGJlaGF2aW9yIGZv
ciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbmFibGUgYmFzaWMgcG9pbnRlciBsb2NrIGZ1bmN0aW9uYWxpdHkgYnkg
cGx1bWJpbmcgcmVxdWVzdHMgdGhyb3VnaCBXZWJQYWdlIElQQy4KKyAgICAgICAgUGFzcyB0aHJv
dWdoIG1vdXNlIG1vdmVtZW50IGRlbHRhcy4KKyAgICAgICAgVW5sb2NrIHBvaW50ZXIgd2hlbiB2
aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxlLgorCisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29u
dmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQ6
OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOiBQYXNzIGFsb25nIG1vdXNlIG1vdmVtZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpc3BhdGNoVmlld1N0YXRlQ2hhbmdlKTogVW5sb2NrIHBvaW50ZXIgd2hl
biBwYWdlIGlzIG5vdCB2aXNpYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3RQb2ludGVyTG9jayk6IEhpZGUgYW5kIGRpc2Fzc29jaWF0ZSBwb2ludGVyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2ludGVyVW5sb2NrKTogU2hvdyBhbmQg
YXNzb2NpYXRlIHBvaW50ZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IEFkZCBtZXRob2Rz
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OiBQYXNzIGFsb25nIHRvIHdlYiBwYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2VkKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk6IEZvcndhcmQgdG8gUG9pbnRlckxvY2tDb250cm9sbGVyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2spOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkTG9zZVBvaW50ZXJMb2NrKTogRGl0dG8uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIG1ldGhvZHMuCisKIDIwMTYtMDktMjkg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5l
dHdvcmtTZXNzaW9uOiBIVFRQIGF1dGhlbnRpY2F0aW9uIGRvZXNuJ3Qgd29yayBpZiBQUk9URUNU
SU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sgaXMgbm90IGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggNTcwMzE3YjdhYzhlZDlmMmJhNDNjZjE3ZWZlZmQxZWU2N2VmNWQ2MC4uY2YzNDJiOWFl
Njk4ZmQ1ZGY0MzM1ZTg0MzY5ZjhjYzIxMWY0YjZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTExMjksOCArMTEyOSw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKLSAgICB2b2lkIGV4aXRQb2ludGVyTG9jaygpOwotICAgIEVsZW1lbnQqIHBvaW50ZXJM
b2NrRWxlbWVudCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdFBvaW50ZXJM
b2NrKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRWxlbWVudCogcG9pbnRlckxvY2tFbGVtZW50KCkg
Y29uc3Q7CiAjZW5kaWYKIAogICAgIC8vIFVzZWQgdG8gYWxsb3cgZWxlbWVudCB0aGF0IGxvYWRz
IGRhdGEgd2l0aG91dCBnb2luZyB0aHJvdWdoIGEgRnJhbWVMb2FkZXIgdG8gZGVsYXkgdGhlICds
b2FkJyBldmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGMxNjcxZWE0OTM1ZGVjZmU2NDhkNjA5
MWIyNDhmMDYxNTNkYzQwNjAuLjgyYjEwMGIzZThkZTRjOGY3NDFlOGI5YThhZTk0ZTNkNThkMzUy
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNDgxLDcgKzQ4MSw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICB2b2lkIHJlcXVlc3RQb2ludGVyTG9j
aygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKCk7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShJTkRJRV9VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAppbmRleCA0OTRiMTE2YjY3Zjg2NzJhZDBjM2FmY2I1MzM5ZGUwOWU0MGQ1Zjc1Li4wYzM0YmY2
ODQ2NjY0OTQxZjJmZjAwOTkzMTFhY2ZjZDMyYTBhMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCkBAIC03Myw2ICs3Myw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGx1
Z2luRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJGcmFtZVNldC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGlzdEJveC5oIgpAQCAtMzAxNyw2ICszMDE4LDEzIEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVu
dCkKIAogICAgIExPRyhFZGl0aW5nLCAiRXZlbnRIYW5kbGVyICVwIGtleUV2ZW50ICh0ZXh0ICVz
IGtleUlkZW50aWZpZXIgJXMpIiwgdGhpcywgaW5pdGlhbEtleUV2ZW50LnRleHQoKS51dGY4KCku
ZGF0YSgpLCBpbml0aWFsS2V5RXZlbnQua2V5SWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwog
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBpZiAoaW5pdGlhbEtleUV2ZW50LndpbmRv
d3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0VTQ0FQRSAmJiBtX2ZyYW1lLnBhZ2UoKS0+cG9pbnRl
ckxvY2tDb250cm9sbGVyKCkuZWxlbWVudCgpKSB7CisgICAgICAgIG1fZnJhbWUucGFnZSgpLT5w
b2ludGVyTG9ja0NvbnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiAhaXNL
ZXlFdmVudEFsbG93ZWRJbkZ1bGxTY3JlZW4oaW5pdGlhbEtleUV2ZW50KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDg5N2E0MTVkOTUxZWM3N2M4YzQzZTM5NTJmMTNjYWU1ODJlZWE4YjAuLmM4YzI3
NTBjY2VlYzg4YjY5OWQxYmE2MGMxNDJkMDE1MzhkOWRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgKaW5kZXggNzYyODUxYjBm
YmNmNjExNjFjZGFhYTEzMDZjMDRlYzVkNDdlNWRkNi4uNWQwZmUxY2RlN2UzOTllMWI0NTRkNzI4
YzJhMzYyMjE1MzRhMWY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVy
TG9ja0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29u
dHJvbGxlci5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICBib29sIGxvY2tQZW5kaW5n
KCkgY29uc3Q7CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBkaWRB
Y3F1aXJlUG9pbnRlckxvY2soKTsKLSAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygp
OwotICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZE5v
dEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkTG9zZVBv
aW50ZXJMb2NrKCk7CiAgICAgdm9pZCBkaXNwYXRjaExvY2tlZE1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA5ZjBmODgxOTNlM2Q4OTNhNzQxZmQxYWVjZDNlZjNhODg2NDQ5ODZmLi4x
NmE0MmYxNzNhMDM0NzEzZTNjNDAxYjkxZjliODA2Yzc0NmJkYjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTM1LDYg
KzEzNSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgb3ZlcnJp
ZGU7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGJvb2wgcmVx
dWVzdFBvaW50ZXJMb2NrKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9j
aygpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgb3ZlcnJpZGU7CisjZW5k
aWYKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQppbmRleCA4YzMwY2NkYmI4NDEzNDg4YzBjYzRkYmEyY2NjODE5NmVlYmIwOWNk
Li43MDY2MWViNTc1ZmM4NzkxNmM3YTFlNmQxZWM1ODNlZDFjZDNlMTc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03
Nyw2ICs3Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXJpYWxpemVkQ3J5cHRvS2V5
V3JhcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KQEAgLTcwOSw2ICs3MTAsMzkgQEAg
c3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xv
ckNob29zZXIoQ29sb3JDaG9vc2VyQ2wKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIVttX3dlYlZpZXcgcGFnZV0pCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIENHRGlzcGxheUhpZGVDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOwor
ICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKGZhbHNlKTsKKyAgICAK
KyAgICBbbV93ZWJWaWV3IHBhZ2VdLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRBY3F1aXJl
UG9pbnRlckxvY2soKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9j
aygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIENHRGlzcGxheVNob3dDdXJzb3IoQ0dNYWlu
RGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9u
KHRydWUpOworICAgIGlmIChbbV93ZWJWaWV3IHBhZ2VdKQorICAgICAgICBbbV93ZWJWaWV3IHBh
Z2VdLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRMb3NlUG9pbnRlckxvY2soKTsKKyNlbmRp
ZgorfQorCitib29sIFdlYkNocm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2VkKCkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5Q
YW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiB7CiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnRDb252ZXJzaW9uLmNwcAppbmRleCAwNmY4OGVkMTg2NDMzY2Q1ZGQ2MGJmNDg2ODdkMWRkNDg1
ZGYzOGFjLi44MTQ5M2E3MzJhYzIzMTMyMDc5NjVlZGFkNmNlMDY2OGU2OWU1NGVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApAQCAtOTgsNiArOTgs
OSBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICBtX3Bvc2l0aW9uID0gd2ViRXZlbnQu
cG9zaXRpb24oKTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgICAgICBtX21vdmVtZW50
RGVsdGEgPSBXZWJDb3JlOjpJbnRQb2ludCh3ZWJFdmVudC5kZWx0YVgoKSwgd2ViRXZlbnQuZGVs
dGFZKCkpOworI2VuZGlmCiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSB3ZWJFdmVudC5nbG9i
YWxQb3NpdGlvbigpOwogICAgICAgICBtX2NsaWNrQ291bnQgPSB3ZWJFdmVudC5jbGlja0NvdW50
KCk7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCAwMmZmZDE4NGQyMTc3ZDIyMzdmNGU4MjRhZmIwNWM2ZGJjZGEwZmNmLi4x
YTA4MThlZjY3YjJiZWIzM2IxMWQ0NmNmM2YxYTc1ZGIxMWJmMDg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTU1Myw2ICsxNTUzLDExIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpCiAgICAgaWYgKChjaGFuZ2Vk
ICYgVmlld1N0YXRlOjpJc1Zpc2libGUpICYmICFpc1ZpZXdWaXNpYmxlKCkpCiAgICAgICAgIG1f
cHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgaWYgKChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpICYmICFp
c1ZpZXdWaXNpYmxlKCkpCisgICAgICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisjZW5kaWYK
KwogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSB7CiAgICAgICAgIGlm
IChpc0luV2luZG93KCkpCiAgICAgICAgICAgICB2aWV3RGlkRW50ZXJXaW5kb3coKTsKQEAgLTY2
MjYsNSArNjYzMSwyNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbihXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RAogCiAgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
KHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKSksIG1f
cGFnZUlEKTsKIH0KKyAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkp
IHsKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWROb3RBY3F1
aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IENHRGlzcGxheUhpZGVDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRl
TW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKGZhbHNlKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkRpZEFjcXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2VJRCk7Cit9
CisgICAgCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAg
IENHRGlzcGxheVNob3dDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRl
TW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKHRydWUpOworICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6RGlkTG9zZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsKK30KKyNl
bmRpZgorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDJlYTMwNGFmNjZlMjA3ZmUwYWJmMTY5MTk5ZmZmZjkyZWRiM2U4
NzIuLmQ0N2MzNDMwMjMzY2VmMjdkNWU2ZDIwY2IwODEwMWVhMmIyMDQ5Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTExNjgsNiArMTE2OCwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgZmFpbGVkVG9TaG93UG9wdXBNZW51KCkgb3ZlcnJpZGU7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2so
KTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisjZW5kaWYKKwogICAgIHZvaWQg
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkQ3JlYXRl
U3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQxOWJjNzdlZDNlMzIyZGUyMGJi
YjMxMjNkYzVjZmI2OGIwNjNiYTIuLjBmYWEwNjdhMjYzMTI1MzEwMTQzMTk1YzlmNTdlYjcwZWM3
ZTIzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtNDU3LDYgKzQ1NywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIFNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoU3RyaW5nIG5hbWUs
IHVuc2lnbmVkIHBpY2tlclN0YXRlKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorICAgIFJlcXVlc3RQb2ludGVyTG9jaygpCisgICAgUmVxdWVzdFBvaW50ZXJVbmxvY2soKQor
I2VuZGlmCisKICAgICBJbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKFdlYkNvcmU6Oklu
dFNpemUgbmV3U2l6ZSkKIAogICAgIFVzZUZpeGVkTGF5b3V0RGlkQ2hhbmdlKGJvb2wgdXNlRml4
ZWRMYXlvdXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYmRhZjkwYWYzZGY5NzA2MjZk
ODg3OTgyYWIzYjA0YWQwODhlYzQzMC4uMjA3MzkzODRmODg3OTEwMDM3ZTU3ZGM2N2RkNDljODJm
NDQ0N2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDU1LDYgKzQ1NSwyNCBAQCBL
ZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGllbnQ6OmtleWJvYXJkVUlNb2RlKCkKICAgICByZXR1
cm4gbV9wYWdlLT5rZXlib2FyZFVJTW9kZSgpOwogfQogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0UG9pbnRlckxvY2soKSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9p
bnRlclVubG9jaygpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RQb2ludGVyVW5sb2NrKCkpOworfQorCitib29sIFdlYkNocm9tZUNsaWVudDo6aXNQ
b2ludGVyTG9ja2VkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikKIHsKICAg
ICAvLyBEbyBub3RoaW5nIGhlcmUsIHRoZXJlJ3Mgbm8gY29uY2VwdCBvZiBpbnZhbGlkYXRpbmcg
dGhlIHdpbmRvdyBpbiB0aGUgd2ViIHByb2Nlc3MuCkBAIC0xMTI1LDcgKzExNDMsNiBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0
X3QgY29udGV4dElkKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudChjb250ZXh0SWQpKTsKIH0KIAotCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IGNvbnRl
eHRJZCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBib29sIGlzVmlkZW8pCiB7
CiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzYWM5ZmQzMzRlYmUxN2EzOWIxMGRmMjgwYzIxNDBi
YThmMjBiNjFjLi4zYzdlNGFkOWYxOGVhZjI2NWNiMmU1MTdjZjVlNGUyMmI2NDBjNDgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE5MSw2ICsxOTEsMTIgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICYmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUVfVElNRVIpCiAgICAgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIG92ZXJyaWRlOwogI2VuZGlm
CisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBib29sIHJlcXVlc3RQb2ludGVy
TG9jaygpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBvdmVycmlk
ZTsKKyAgICBib29sIGlzUG9pbnRlckxvY2tlZCgpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2
b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6
OkVsZW1lbnQ+PiYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDEzNzk2MmE0Yzg1M2QwMzk5ZmEwMTZhNDRkZDZjZTA0YzEwNWUzZWMuLjEw
MmNhNDk1YzI3Y2RmMDIwZjg0YmI2NzZlNWE0NjM1NzEwMzIwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1Miw2ICsxNTIsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZVRocm90dGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgpAQCAtNTYwNyw0ICs1NjA4LDIxIEBAIHZvaWQg
V2ViUGFnZTo6Z2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVw
YWREYXRhcykKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9pZCBXZWJQ
YWdlOjpkaWRBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIGNvcmVQYWdlKCktPnBvaW50ZXJM
b2NrQ29udHJvbGxlcigpLmRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2b2lkIFdlYlBh
Z2U6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCit7CisgICAgY29yZVBhZ2UoKS0+cG9pbnRl
ckxvY2tDb250cm9sbGVyKCkuZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6ZGlkTG9zZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBjb3JlUGFnZSgpLT5wb2ludGVy
TG9ja0NvbnRyb2xsZXIoKS5kaWRMb3NlUG9pbnRlckxvY2soKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGYwOTU5ZDRiZmVhNGY3OTg5MmYxZDc4YTU2MDY5NjViMzk3NTEwOTguLmYx
NTQ0NTAzYjQ1MWVjMzVhZGNjZGJjMjYwYTRmM2Y0MWNjYzBkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTYwLDYgKzk2MCwxMiBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3Qg
VmVjdG9yPEdhbWVwYWREYXRhPiYpOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKyAgICB2b2lkIGRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkTm90
QWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soKTsKKyNl
bmRpZgogCiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQ3ZTEyNzBiNmYxMjcxNWQ2
NmZkZjk2Y2UyMTUyYTQ4NDlkMjQ3MmIuLmFkNDVjYjBhNDFiNjk1MzA0MjhmMzRhNGNmNDE5MjRk
NTM0N2IyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MjgsNiArNDI4LDEyIEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBzaG91bGRQbGF5KQogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoUE9JTlRFUl9MT0NLKQorICAgIERpZEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTm90
QWNxdWlyZVBvaW50ZXJMb2NrKCkKKyAgICBEaWRMb3NlUG9pbnRlckxvY2soKQorI2VuZGlmCisK
ICAgICBDbGVhcldoZWVsRXZlbnRUZXN0VHJpZ2dlcigpCiAgICAgU2V0U2hvdWxkU2NhbGVWaWV3
VG9GaXREb2N1bWVudChib29sIHNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290242</attachid>
            <date>2016-09-29 14:11:01 -0700</date>
            <delta_ts>2016-10-17 15:04:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162745-20160929140801.patch</filename>
            <type>text/plain</type>
            <size>19963</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JlMWE4NGM2N2RmYTE0
ZmU0OTk4NmI4ZjZmOTQwYWJhMGNjMjIzZS4uYmVkODAzM2E3MGEwMWFhMzgyNzQ5ZjdhNTFmZmI1
ZTgyNGE4ZjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgdW50aWwg
ZmVhdHVyZSBpcyByZWFkeSB0byBlbmFibGUuCisKKyAgICAgICAgRXhwb3J0IHBvaW50ZXIgbG9j
ayBzeW1ib2xzIGFuZCBjYW5jZWwgcG9pbnRlciBsb2NrIG9uICJlc2NhcGUiLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6a2V5RXZlbnQpOiBDYW5jZWwgcG9pbnRlciBs
b2NrIG9uICJlc2NhcGUiLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cDogQWRkIG1pc3NpbmcgaW5jbHVkZS4KKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oOiBFeHBvcnQgc3ltYm9scy4KKwogMjAxNi0wOS0yOSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXVtEaXJlY3QyRF0gQWRkIEQyRCBGb250
IGhhbmRsaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0NzkwZGU2MTM1OTVhYTRkMjI2NjRm
Yjg0Y2RmMjRmMjAwMDU3YzA1Li4zN2E5ODkzOTEyZGFjMWNhNDIyOWM4N2ZjOWUwOGYxYTdjMTY3
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDktMjkgIEplcmVt
eSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBw
b2ludGVyIGxvY2sgYmVoYXZpb3IgZm9yIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjc0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBwb2ludGVyIGxv
Y2sgZnVuY3Rpb25hbGl0eS4gVXNlciBwZXJtaXNzaW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJl
cXVlc3RQb2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aXNQb2ludGVy
TG9ja2VkKToKKwogMjAxNi0wOS0yNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBFTkNSWVBURURfTUVESUEgaW1wbGVtZW50YXRp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggNmRlY2QzZDgwZjZlM2E4MDJkOTYxYTEzYmE3MWUwODRmZDIyNzc5
My4uODM5ZTczYmExMzE5YjNkNTY5OWRlZWFhY2YwYWFhOGVmMGZmZWUxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM0IEBACisyMDE2LTA5LTI5ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgcG9pbnRlciBsb2NrIGJlaGF2aW9yIGZv
ciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbmFibGUgYmFzaWMgcG9pbnRlciBsb2NrIGZ1bmN0aW9uYWxpdHkgYnkg
cGx1bWJpbmcgcmVxdWVzdHMgdGhyb3VnaCBXZWJQYWdlIElQQy4KKyAgICAgICAgUGFzcyB0aHJv
dWdoIG1vdXNlIG1vdmVtZW50IGRlbHRhcy4KKyAgICAgICAgVW5sb2NrIHBvaW50ZXIgd2hlbiB2
aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxlLgorCisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29u
dmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQ6
OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQpOiBQYXNzIGFsb25nIG1vdXNlIG1vdmVtZW50Lgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpc3BhdGNoVmlld1N0YXRlQ2hhbmdlKTogVW5sb2NrIHBvaW50ZXIgd2hl
biBwYWdlIGlzIG5vdCB2aXNpYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
cXVlc3RQb2ludGVyTG9jayk6IEhpZGUgYW5kIGRpc2Fzc29jaWF0ZSBwb2ludGVyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2ludGVyVW5sb2NrKTogU2hvdyBhbmQg
YXNzb2NpYXRlIHBvaW50ZXIuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IEFkZCBtZXRob2Rz
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2sp
OiBQYXNzIGFsb25nIHRvIHdlYiBwYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2VkKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk6IEZvcndhcmQgdG8gUG9pbnRlckxvY2tDb250cm9sbGVyLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2spOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkTG9zZVBvaW50ZXJMb2NrKTogRGl0dG8uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjogQWRkIG1ldGhvZHMuCisKIDIwMTYtMDktMjkg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIE5l
dHdvcmtTZXNzaW9uOiBIVFRQIGF1dGhlbnRpY2F0aW9uIGRvZXNuJ3Qgd29yayBpZiBQUk9URUNU
SU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sgaXMgbm90IGVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MmY3Mjc4Y2YwN2Qz
OTYzNzU0MGU2NThmMGQwZGQxOTU5MTdmZWJkLi40NjFmMzdlM2NkZWZkNGEyOGVhMzI2YjYwZjYx
NDVjNTA3NjQ0OWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xNDc5LDYgKzE0NzksNyBAQAogCQkzQUM2NDhCMjEyOUUxNDY1
MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzQUM2NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0Jv
dW5kYXJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJM0MyNDRGRUFBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNDMjQ0RkU0QTM3
NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJMYXllck1vZGVsT2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJM0MyNDRGRUJBMzc1QUM2MzNGODhC
RTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0MyNDRGRTVBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QuY3BwICovOyB9OworCQkzRjI3NDY5NzFEOURCOEE3MDBCREJEQTUg
LyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9pbnRlckxvY2tD
b250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJM0YyQjMzRUUxNjVBRjE1NjAwRTM5ODdDIC8qIEpTV2ViS2l0Q1NTVmlld3BvcnRSdWxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGMkIz
M0U5MTY1QUYxNTUwMEUzOTg3QyAvKiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi87IH07
CiAJCTNGMkIzM0VGMTY1QUYxNTYwMEUzOTg3QyAvKiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0YyQjMzRUEx
NjVBRjE1NTAwRTM5ODdDIC8qIEpTV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNG
NDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZL
aXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDJC
MzFCMTg4MTE5MUIwMDI3OEFBQyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQw
MjUsNiArMjQwMjYsNyBAQAogCQkJCUE1ODRGRTJDMTg2Mzg3MEYwMDg0M0IxMCAvKiBDb21tYW5k
TGluZUFQSU1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NEZFMjYxODYzN0RBQjAwODQz
QjEwIC8qIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2
NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
M0YyNzQ2OTcxRDlEQjhBNzAwQkRCREE1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4QkFCIC8q
IENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjM2MTEx
MDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDU3MDMxN2I3YWM4ZWQ5ZjJiYTQzY2YxN2VmZWZkMWVl
NjdlZjVkNjAuLmNmMzQyYjlhZTY5OGZkNWRmNDMzNWU4NDM2OWY4Y2MyMTFmNGI2ZDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMTI5LDggKzExMjksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgdm9pZCBleGl0UG9pbnRlckxvY2soKTsKLSAg
ICBFbGVtZW50KiBwb2ludGVyTG9ja0VsZW1lbnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGV4aXRQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIHBv
aW50ZXJMb2NrRWxlbWVudCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFsbG93
IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9h
ZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcgZXZlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjMTY3
MWVhNDkzNWRlY2ZlNjQ4ZDYwOTFiMjQ4ZjA2MTUzZGM0MDYwLi44MmIxMDBiM2U4ZGU0YzhmNzQx
ZThiOWE4YWU5NGUzZDU4ZDM1MmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ4MSw3ICs0ODEs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgdm9p
ZCByZXF1ZXN0UG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RQ
b2ludGVyTG9jaygpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ESUVfVUkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDk0YjExNmI2N2Y4NjcyYWQwYzNhZmNiNTMzOWRl
MDllNDBkNWY3NS4uMGMzNGJmNjg0NjY2NDk0MWYyZmYwMDk5MzExYWNmY2QzMmEwYTE1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUG9pbnRlckxvY2tD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhbWVTZXQuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKQEAgLTMwMTcsNiArMzAxOCwx
MyBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAKICAgICBMT0coRWRpdGluZywgIkV2ZW50SGFuZGxlciAl
cCBrZXlFdmVudCAodGV4dCAlcyBrZXlJZGVudGlmaWVyICVzKSIsIHRoaXMsIGluaXRpYWxLZXlF
dmVudC50ZXh0KCkudXRmOCgpLmRhdGEoKSwgaW5pdGlhbEtleUV2ZW50LmtleUlkZW50aWZpZXIo
KS51dGY4KCkuZGF0YSgpKTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgaWYgKGlu
aXRpYWxLZXlFdmVudC53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19FU0NBUEUgJiYgbV9m
cmFtZS5wYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLmVsZW1lbnQoKSkgeworICAgICAg
ICBtX2ZyYW1lLnBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJV
bmxvY2soKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0SXNG
dWxsU2NyZWVuKCkgJiYgIWlzS2V5RXZlbnRBbGxvd2VkSW5GdWxsU2NyZWVuKGluaXRpYWxLZXlF
dmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckxvY2tDb250cm9sbGVyLmNwcAppbmRleCA4OTdhNDE1ZDk1MWVjNzdjOGM0M2UzOTUyZjEz
Y2FlNTgyZWVhOGIwLi5jOGMyNzUwY2NlZWM4OGI2OTlkMWJhNjBjMTQyZDAxNTM4ZDlkYTUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJW
b2lkQ2FsbGJhY2suaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxv
Y2tDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxl
ci5oCmluZGV4IDc2Mjg1MWIwZmJjZjYxMTYxY2RhYWExMzA2YzA0ZWM1ZDQ3ZTVkZDYuLjVkMGZl
MWNkZTdlMzk5ZTFiNDU0ZDcyOGMyYTM2MjIxNTM0YTFmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaApAQCAtNTAsOSArNTAsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBsb2NrUGVuZGluZygpIGNvbnN0OwogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dDsKIAotICAgIHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7Ci0gICAgdm9pZCBkaWROb3RB
Y3F1aXJlUG9pbnRlckxvY2soKTsKLSAgICB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwogICAgIHZvaWQgZGlzcGF0Y2hMb2NrZWRN
b3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOWYwZjg4MTkzZTNkODkzYTc0MWZkMWFl
Y2QzZWYzYTg4NjQ0OTg2Zi4uMTZhNDJmMTczYTAzNDcxM2UzYzQwMWI5MWY5YjgwNmM3NDZiZGI2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTEzNSw2ICsxMzUsMTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYpIG92ZXJyaWRlOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKyAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVxdWVzdFBvaW50ZXJVbmxvY2soKSBvdmVycmlkZTsKKyAgICBib29sIGlzUG9pbnRlckxvY2tl
ZCgpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXli
b2FyZFVJTW9kZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggOGMzMGNjZGJiODQxMzQ4OGMwY2M0
ZGJhMmNjYzgxOTZlZWJiMDljZC4uNzA2NjFlYjU3NWZjODc5MTZjN2ExZTZkMWVjNTgzZWQxY2Qz
ZTE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQpAQCAtNzcsNiArNzcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtU2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2VyaWFsaXplZENyeXB0b0tleVdyYXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2lkZ2V0Lmg+CkBA
IC03MDksNiArNzEwLDM5IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCitib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBv
aW50ZXJMb2NrKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKCFbbV93ZWJWaWV3IHBh
Z2VdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDR0Rpc3BsYXlIaWRlQ3Vyc29yKENH
TWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3Np
dGlvbihmYWxzZSk7CisgICAgCisgICAgW21fd2ViVmlldyBwYWdlXS0+cG9pbnRlckxvY2tDb250
cm9sbGVyKCkuZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgcmV0dXJuIHRydWU7CisjZWxz
ZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBDR0Rpc3Bs
YXlTaG93Q3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5k
TW91c2VDdXJzb3JQb3NpdGlvbih0cnVlKTsKKyAgICBpZiAoW21fd2ViVmlldyBwYWdlXSkKKyAg
ICAgICAgW21fd2ViVmlldyBwYWdlXS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZGlkTG9zZVBv
aW50ZXJMb2NrKCk7CisjZW5kaWYKK30KKworYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmlzUG9pbnRl
ckxvY2tlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBj
aG9vc2VyKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggMDZmODhlZDE4NjQzM2Nk
NWRkNjBiZjQ4Njg3ZDFkZDQ4NWRmMzhhYy4uODE0OTNhNzMyYWMyMzEzMjA3OTY1ZWRhZDZjZTA2
NjhlNjllNTRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29u
dmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lv
bi5jcHAKQEAgLTk4LDYgKzk4LDkgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgbV9w
b3NpdGlvbiA9IHdlYkV2ZW50LnBvc2l0aW9uKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyAgICAgICAgbV9tb3ZlbWVudERlbHRhID0gV2ViQ29yZTo6SW50UG9pbnQod2ViRXZlbnQuZGVs
dGFYKCksIHdlYkV2ZW50LmRlbHRhWSgpKTsKKyNlbmRpZgogICAgICAgICBtX2dsb2JhbFBvc2l0
aW9uID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRpb24oKTsKICAgICAgICAgbV9jbGlja0NvdW50ID0g
d2ViRXZlbnQuY2xpY2tDb3VudCgpOwogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDJmZmQxODRkMjE3N2QyMjM3ZjRlODI0
YWZiMDVjNmRiY2RhMGZjZi4uMWEwODE4ZWY2N2IyYmViMzNiMTFkNDZjZjNmMWE3NWRiMTFiZjA4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1NTMs
NiArMTU1MywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2Uo
KQogICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3Vmlz
aWJsZSgpKQogICAgICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7
CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJsZSgpKQorICAgICAgICByZXF1ZXN0UG9pbnRl
clVubG9jaygpOworI2VuZGlmCisKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJbldp
bmRvdykgewogICAgICAgICBpZiAoaXNJbldpbmRvdygpKQogICAgICAgICAgICAgdmlld0RpZEVu
dGVyV2luZG93KCk7CkBAIC02NjI2LDUgKzY2MzEsMjYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91
dEQKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlckludGVy
ZmFjZUxheW91dERpcmVjdGlvbihzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbikpLCBtX3BhZ2VJRCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIGlm
ICghaXNWaWV3VmlzaWJsZSgpKSB7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6RGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBDR0Rpc3BsYXlIaWRlQ3Vyc29yKENHTWFpbkRpc3BsYXlJRCgp
KTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlvbihmYWxzZSk7Cisg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRBY3F1aXJlUG9pbnRlckxv
Y2soKSwgbV9wYWdlSUQpOworfQorICAgIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2lu
dGVyVW5sb2NrKCkKK3sKKyAgICBDR0Rpc3BsYXlTaG93Q3Vyc29yKENHTWFpbkRpc3BsYXlJRCgp
KTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlvbih0cnVlKTsKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZExvc2VQb2ludGVyTG9jaygp
LCBtX3BhZ2VJRCk7Cit9CisjZW5kaWYKKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyZWEzMDRhZjY2ZTIwN2ZlMGFi
ZjE2OTE5OWZmZmY5MmVkYjNlODcyLi5kNDdjMzQzMDIzM2NlZjI3ZDVlNmQyMGNiMDgxMDFlYTJi
MjA0OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTY4
LDYgKzExNjgsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgp
IG92ZXJyaWRlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQg
cmVxdWVzdFBvaW50ZXJMb2NrKCk7CisgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOwor
I2VuZGlmCisKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsK
ICAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBk
MTliYzc3ZWQzZTMyMmRlMjBiYmIzMTIzZGM1Y2ZiNjhiMDYzYmEyLi4wZmFhMDY3YTI2MzEyNTMx
MDE0MzE5NWM5ZjU3ZWI3MGVjN2UyMzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ1Nyw2ICs0NTcsMTEgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
clN0YXRlKFN0cmluZyBuYW1lLCB1bnNpZ25lZCBwaWNrZXJTdGF0ZSkKICNlbmRpZgogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBSZXF1ZXN0UG9pbnRlckxvY2soKQorICAgIFJlcXVl
c3RQb2ludGVyVW5sb2NrKCkKKyNlbmRpZgorCiAgICAgSW1hZ2VPck1lZGlhRG9jdW1lbnRTaXpl
Q2hhbmdlZChXZWJDb3JlOjpJbnRTaXplIG5ld1NpemUpCiAKICAgICBVc2VGaXhlZExheW91dERp
ZENoYW5nZShib29sIHVzZUZpeGVkTGF5b3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IGJkYWY5MGFmM2RmOTcwNjI2ZDg4Nzk4MmFiM2IwNGFkMDg4ZWM0MzAuLjIwNzM5Mzg0Zjg4Nzkx
MDAzN2U1N2RjNjdkZDQ5YzgyZjQ0NDdlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTQ1NSw2ICs0NTUsMjQgQEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2Fy
ZFVJTW9kZSgpCiAgICAgcmV0dXJuIG1fcGFnZS0+a2V5Ym9hcmRVSU1vZGUoKTsKIH0KIAorI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCitib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50
ZXJMb2NrKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVx
dWVzdFBvaW50ZXJMb2NrKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0UG9pbnRlclVubG9jaygpKTsKK30KKworYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZpZXcoY29u
c3QgSW50UmVjdCYpCiB7CiAgICAgLy8gRG8gbm90aGluZyBoZXJlLCB0aGVyZSdzIG5vIGNvbmNl
cHQgb2YgaW52YWxpZGF0aW5nIHRoZSB3aW5kb3cgaW4gdGhlIHdlYiBwcm9jZXNzLgpAQCAtMTEy
NSw3ICsxMTQzLDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlbW92ZVBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoY29udGV4
dElkKSk7CiB9CiAKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBp
Y2tlcih1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlv
biwgYm9vbCBpc1ZpZGVvKQogewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9wYWdlLT5t
YWluRnJhbWUoKS0+dmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggM2FjOWZkMzM0ZWJl
MTdhMzliMTBkZjI4MGMyMTQwYmE4ZjIwYjYxYy4uM2M3ZTRhZDlmMThlYWYyNjVjYjJlNTE3Y2Y1
ZTRlMjJiNjQwYzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xOTEsNiArMTkxLDEyIEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAmJiAhVVNFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24o
KSBvdmVycmlkZTsKICNlbmRpZgorICAgIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAg
Ym9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQb2lu
dGVyVW5sb2NrKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBvdmVycmlk
ZTsKKyNlbmRpZgogCiAgICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKICAgICBib29sIHNob3Vs
ZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxMzc5NjJhNGM4NTNkMDM5OWZhMDE2YTQ0
ZGQ2Y2UwNGMxMDVlM2VjLi4xMDJjYTQ5NWMyN2NkZjAyMGY4NGJiNjc2ZTVhNDYzNTcxMDMyMDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0xNTIsNiArMTUyLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VUaHJvdHRsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGx1Z2luRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTU2MDcs
NCArNTYwOCwyMSBAQCB2b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8
R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKK3ZvaWQgV2ViUGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBj
b3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRBY3F1aXJlUG9pbnRlckxvY2so
KTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAg
IGNvcmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLmRpZE5vdEFjcXVpcmVQb2ludGVy
TG9jaygpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZExvc2VQb2ludGVyTG9jaygpCit7CisgICAg
Y29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmMDk1OWQ0YmZlYTRmNzk4OTJmMWQ3OGE1
NjA2OTY1YjM5NzUxMDk4Li5mMTU0NDUwM2I0NTFlYzM1YWRjY2RiYzI2MGE0ZjNmNDFjY2MwZDZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk2
MCw2ICs5NjAsMTIgQEAgcHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2Ft
ZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgIAor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2so
KTsKKyAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkTG9z
ZVBvaW50ZXJMb2NrKCk7CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCA0N2UxMjcwYjZmMTI3MTVkNjZmZGY5NmNlMjE1MmE0ODQ5ZDI0NzJiLi5hZDQ1Y2IwYTQxYjY5
NTMwNDI4ZjM0YTRjZjQxOTI0ZDUzNDdiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDI4LDYgKzQyOCwx
MiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRTaG91bGRQ
bGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkUGxheSkK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBEaWRBY3F1aXJlUG9pbnRl
ckxvY2soKQorICAgIERpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTG9zZVBvaW50
ZXJMb2NrKCkKKyNlbmRpZgorCiAgICAgQ2xlYXJXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKQogICAg
IFNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91bGRTY2FsZVZpZXdUb0Zp
dERvY3VtZW50KQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291880</attachid>
            <date>2016-10-17 15:04:10 -0700</date>
            <delta_ts>2016-10-20 16:42:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162745-20161017150037.patch</filename>
            <type>text/plain</type>
            <size>20347</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1N2EwY2I1OGZhOTNh
MjJiZDg1OGUzNzA5NDg2YmM2OGEzZTM0Ni4uYTY4OTZkMTc5MjE3ZDk4YWI0NmQ5NGE2ZDFhNGQ5
NmM2MzdiZTliNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIEVOQUJMRV9QT0lOVEVS
X0xPQ0sgaXMgZW5hYmxlZCwgdGhlc2UgdGVzdHMgbm93IHBhc3Mgd2l0aCBEdW1wUmVuZGVyVHJl
ZS4KKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stYWxyZWFkeS1sb2NrZWQu
aHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9jay1lbGVtZW50LW5vdC1p
bi1kb20uaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9wb2ludGVyLWxvY2svbG9ja2VkLWVsZW1l
bnQtaWZyYW1lLXJlbW92ZWQtZnJvbS1kb20uaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy9wb2lu
dGVyLWxvY2svbW91c2UtZXZlbnQtYXBpLmh0bWwKKworICAgICAgICBFeHBvcnQgcG9pbnRlciBs
b2NrIHN5bWJvbHMgYW5kIGNhbmNlbCBwb2ludGVyIGxvY2sgb24gImVzY2FwZSIuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDogRXhwb3J0IHN5bWJvbHMuCisgICAgICAgICogZG9tL0VsZW1l
bnQuaDogRXhwb3J0IHN5bWJvbHMuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjprZXlFdmVudCk6IENhbmNlbCBwb2ludGVy
IGxvY2sgb24gImVzY2FwZSIuCisgICAgICAgICogcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIu
Y3BwOiBBZGQgbWlzc2luZyBpbmNsdWRlLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250
cm9sbGVyLmg6IEV4cG9ydCBzeW1ib2xzLgorCiAyMDE2LTEwLTA1ICBNaWNoYWVsIENhdGFuemFy
byAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXByb3ZlIE9TIFgg
VUEgcXVpcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAwMzc4NzRhODNhOWZlNzkwMDdiNTRhNTQ1ZGE0
MDJlNDRjMzRlNjY2Li5lNmM4MDRiMmQxMjQ3YTJhYjJiZTk2Mjk0MjMzYjhmZGE3YWY3NDBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDktMjkgIEplcmVteSBKb25l
cyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBwb2ludGVy
IGxvY2sgYmVoYXZpb3IgZm9yIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjc0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBwb2ludGVyIGxvY2sgZnVu
Y3Rpb25hbGl0eS4gVXNlciBwZXJtaXNzaW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQ
b2ludGVyVW5sb2NrKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aXNQb2ludGVyTG9ja2Vk
KToKKwogMjAxNi0xMC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIgdG8gRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlY2I2M2NiM2IyMDRkZDcyYjIzMDhiZGU3
N2MzOWY5MDBhNzUwYTYxLi40ZDg0ZTU5ZDk1MWNlYTUxZTMwOGJhYzY0ZTYwZGM5NWMzMzhkNDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTYtMDktMjkgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBiYXNpYyBwb2ludGVyIGxv
Y2sgYmVoYXZpb3IgZm9yIFdlYktpdCBhbmQgV2ViS2l0Mi4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjc0NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBiYXNpYyBwb2ludGVyIGxvY2sgZnVu
Y3Rpb25hbGl0eSBieSBwbHVtYmluZyByZXF1ZXN0cyB0aHJvdWdoIFdlYlBhZ2UgSVBDLgorICAg
ICAgICBQYXNzIHRocm91Z2ggbW91c2UgbW92ZW1lbnQgZGVsdGFzLgorICAgICAgICBVbmxvY2sg
cG9pbnRlciB3aGVuIHZpZXcgaXMgbm8gbG9uZ2VyIHZpc2libGUuCisKKyAgICAgICAgKiBTaGFy
ZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0MlBsYXRm
b3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudCk6IFBhc3MgYWxvbmcgbW91
c2UgbW92ZW1lbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2UpOiBVbmxv
Y2sgcG9pbnRlciB3aGVuIHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJMb2NrKTogSGlkZSBhbmQgZGlzYXNzb2NpYXRlIHBv
aW50ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJVbmxv
Y2spOiBTaG93IGFuZCBhc3NvY2lhdGUgcG9pbnRlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjogQWRkIG1ldGhvZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RQb2ludGVyTG9jayk6IFBhc3MgYWxvbmcgdG8gd2ViIHBhZ2UuCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojppc1BvaW50ZXJMb2NrZWQpOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTogRm9yd2FyZCB0byBQb2ludGVyTG9ja0NvbnRy
b2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZE5vdEFjcXVpcmVQb2ludGVyTG9j
ayk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRMb3NlUG9pbnRlckxvY2sp
OiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgbWV0aG9kcy4K
KwogMjAxNi0xMC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUmVuYW1lIEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIgdG8gRU5BQkxFX0xFR0FDWV9F
TkNSWVBURURfTUVESUEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAxMTZhNTBmMDI1MTU0OGVjMjY4ODgzZDFiZjJmYzQ0NzBjYWQ1
Y2VkLi5iNDA3OWY3MmI2NjIzM2I2MTQ0N2U4YjA5YmI1MTBkNWU5ZGQyZjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc5
LDYgKzE0NzksNyBAQAogCQkzQUM2NDhCMjEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5k
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzQUM2
NDhCMTEyOUUxNDY1MDBDM0VCMjUgLyogRWRpdGluZ0JvdW5kYXJ5LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJM0MyNDRGRUFBMzc1QUM2MzNGODhC
RTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNDMjQ0RkU0QTM3NUFDNjMzRjg4QkU2RiAvKiBSZW5kZXJM
YXllck1vZGVsT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJM0MyNDRGRUJBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxP
YmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
M0MyNDRGRTVBMzc1QUM2MzNGODhCRTZGIC8qIFJlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwICov
OyB9OworCQkzRjI3NDY5NzFEOURCOEE3MDBCREJEQTUgLyogUG9pbnRlckxvY2tDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0ZDNDM0
RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9pbnRlckxvY2tDb250cm9sbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJM0YyQjMzRUUxNjVBRjE1NjAw
RTM5ODdDIC8qIEpTV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGMkIzM0U5MTY1QUYxNTUwMEUzOTg3QyAvKiBK
U1dlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgKi87IH07CiAJCTNGMkIzM0VGMTY1QUYxNTYwMEUz
OTg3QyAvKiBKU1dlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0YyQjMzRUExNjVBRjE1NTAwRTM5ODdDIC8qIEpTV2Vi
S2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07CiAJCTNGNDJCMzFEMTg4MTE5MUIwMDI3OEFBQyAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGNDJCMzFCMTg4MTE5MUIwMDI3OEFBQyAvKiBX
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjQwMzYsNiArMjQwMzcsNyBAQAogCQkJCUE1
ODRGRTJDMTg2Mzg3MEYwMDg0M0IxMCAvKiBDb21tYW5kTGluZUFQSU1vZHVsZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTU4NEZFMjYxODYzN0RBQjAwODQzQjEwIC8qIENvbW1hbmRMaW5lQVBJTW9k
dWxlU291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEg
LyogQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJM0YyNzQ2OTcxRDlEQjhBNzAwQkRCREE1
IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRTEzNzUx
ODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4QkFCIC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjM2MTExMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBs
ZXhUZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDBjM2IzZjU2OWE2ZDljNDg2NTM1YjQ4MTJkN2M3Y2JmMmIzYzc5ZWMuLmQzYjA0ZDY1N2E0ZDBk
MzdhNTBkY2MzOTZkZGVkOTkwNDg4OWM2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTI2
LDggKzExMjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
Ci0gICAgdm9pZCBleGl0UG9pbnRlckxvY2soKTsKLSAgICBFbGVtZW50KiBwb2ludGVyTG9ja0Vs
ZW1lbnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4aXRQb2ludGVyTG9jaygp
OworICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIHBvaW50ZXJMb2NrRWxlbWVudCgpIGNvbnN0
OwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFsbG93IGVsZW1lbnQgdGhhdCBsb2FkcyBkYXRh
IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9hZGVyIHRvIGRlbGF5IHRoZSAnbG9hZCcg
ZXZlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBjMTY3MWVhNDkzNWRlY2ZlNjQ4ZDYwOTFiMjQ4
ZjA2MTUzZGM0MDYwLi44MmIxMDBiM2U4ZGU0YzhmNzQxZThiOWE4YWU5NGUzZDU4ZDM1MmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ4MSw3ICs0ODEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RQb2ludGVyTG9jaygpOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU5ESUVfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggNTBmYzQ4NWYxZDZiNTJlNTk0NjJhOGE0YzdjYTRmZmZlYWU3NzI2ZC4uNzIyMTcxNDZiZDdh
M2Y4Mzc1NGJjYjY3ODY5N2VmOTlkZjZiZDcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyRnJhbWVTZXQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJl
bmRlckxpc3RCb3guaCIKQEAgLTMwMTYsNiArMzAxNywxMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
a2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAK
ICAgICBMT0coRWRpdGluZywgIkV2ZW50SGFuZGxlciAlcCBrZXlFdmVudCAodGV4dCAlcyBrZXlJ
ZGVudGlmaWVyICVzKSIsIHRoaXMsIGluaXRpYWxLZXlFdmVudC50ZXh0KCkudXRmOCgpLmRhdGEo
KSwgaW5pdGlhbEtleUV2ZW50LmtleUlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKIAorI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6S2V5RG93biAmJiBpbml0aWFsS2V5RXZlbnQud2luZG93c1ZpcnR1YWxL
ZXlDb2RlKCkgPT0gVktfRVNDQVBFICYmIG1fZnJhbWUucGFnZSgpLT5wb2ludGVyTG9ja0NvbnRy
b2xsZXIoKS5lbGVtZW50KCkpIHsKKyAgICAgICAgbV9mcmFtZS5wYWdlKCktPnBvaW50ZXJMb2Nr
Q29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmICht
X2ZyYW1lLmRvY3VtZW50KCktPndlYmtpdElzRnVsbFNjcmVlbigpICYmICFpc0tleUV2ZW50QWxs
b3dlZEluRnVsbFNjcmVlbihpbml0aWFsS2V5RXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXgg
ODk3YTQxNWQ5NTFlYzc3YzhjNDNlMzk1MmYxM2NhZTU4MmVlYThiMC4uYzhjMjc1MGNjZWVjODhi
Njk5ZDFiYTYwYzE0MmQwMTUzOGQ5ZGE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9p
bnRlckxvY2tDb250cm9sbGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaAppbmRleCA3NjI4NTFiMGZiY2Y2MTE2MWNk
YWFhMTMwNmMwNGVjNWQ0N2U1ZGQ2Li41ZDBmZTFjZGU3ZTM5OWUxYjQ1NGQ3MjhjMmEzNjIyMTUz
NGExZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgK
QEAgLTUwLDkgKzUwLDkgQEAgcHVibGljOgogICAgIGJvb2wgbG9ja1BlbmRpbmcoKSBjb25zdDsK
ICAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGRpZEFjcXVpcmVQb2lu
dGVyTG9jaygpOwotICAgIHZvaWQgZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Ci0gICAgdm9p
ZCBkaWRMb3NlUG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEFjcXVp
cmVQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkTm90QWNxdWlyZVBv
aW50ZXJMb2NrKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2so
KTsKICAgICB2b2lkIGRpc3BhdGNoTG9ja2VkTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDlmMGY4ODE5M2UzZDg5M2E3NDFmZDFhZWNkM2VmM2E4ODY0NDk4NmYuLjE2YTQyZjE3M2Ew
MzQ3MTNlM2M0MDFiOTFmOWI4MDZjNzQ2YmRiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzUsNiArMTM1LDEyIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKICNlbmRp
ZgorICAgIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgYm9vbCByZXF1ZXN0UG9pbnRl
ckxvY2soKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAg
V2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CmluZGV4IDhjMzBjY2RiYjg0MTM0ODhjMGNjNGRiYTJjY2M4MTk2ZWViYjA5Y2QuLmExMWY2Mjg1
YjZkY2MwNWQ5N2ZmNTYyYWMzODBkNTgxNWJjYmE1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTc3LDYgKzc3LDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgpAQCAtNzA5LDYgKzcxMCw0MSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihD
b2xvckNob29zZXJDbAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7CisjaWYgUExBVEZPUk0o
TUFDKQorICAgIGlmICghW21fd2ViVmlldyBwYWdlXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAg
ICAgQ0dEaXNwbGF5SGlkZUN1cnNvcihDR01haW5EaXNwbGF5SUQoKSk7CisgICAgICAgIENHQXNz
b2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKGZhbHNlKTsKKyAgICAgICAgW21fd2Vi
VmlldyBwYWdlXS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZGlkQWNxdWlyZVBvaW50ZXJMb2Nr
KCk7CisgICAgfSk7CisgICAgCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJV
bmxvY2soKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBDR0Rpc3BsYXlTaG93Q3Vyc29yKENH
TWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3Np
dGlvbih0cnVlKTsKKyAgICBpZiAoW21fd2ViVmlldyBwYWdlXSkKKyAgICAgICAgW21fd2ViVmll
dyBwYWdlXS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cisj
ZW5kaWYKK30KKworYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmlzUG9pbnRlckxvY2tlZCgpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5P
cGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyKQogewogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkV2ZW50Q29udmVyc2lvbi5jcHAKaW5kZXggM2E0MzhjODIwMWU3ZWZmYmYzM2Q1NDkyZjk4Zjhm
YzYyOWE3ZDMxMi4uMDUxZjIzMTM5N2U3NWUwOTkzZDNiYjcyODA4OTViYTg0M2YzNWM5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTk4LDYg
Kzk4LDkgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHdlYkV2
ZW50LnBvc2l0aW9uKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICAgICAgbV9tb3Zl
bWVudERlbHRhID0gV2ViQ29yZTo6SW50UG9pbnQod2ViRXZlbnQuZGVsdGFYKCksIHdlYkV2ZW50
LmRlbHRhWSgpKTsKKyNlbmRpZgogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gd2ViRXZlbnQu
Z2xvYmFsUG9zaXRpb24oKTsKICAgICAgICAgbV9jbGlja0NvdW50ID0gd2ViRXZlbnQuY2xpY2tD
b3VudCgpOwogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggNmQ1MWMzMGU2MmJmMGM3NjgyMzRlYmM5NzEyM2Y2ZTc5MTI2YzE0
Yi4uNTQ0NjQxMzI2MTFlOGNhNDA5ZDI2ZGQ5ZmZkM2JkMDc4NzMyMmEzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1NTMsNiArMTU1MywxMSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2UoKQogICAgIGlmICgoY2hh
bmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJsZSgpKQogICAgICAg
ICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CiAKKyNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQorICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAm
JiAhaXNWaWV3VmlzaWJsZSgpKQorICAgICAgICByZXF1ZXN0UG9pbnRlclVubG9jaygpOworI2Vu
ZGlmCisKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykgewogICAgICAg
ICBpZiAoaXNJbldpbmRvdygpKQogICAgICAgICAgICAgdmlld0RpZEVudGVyV2luZG93KCk7CkBA
IC02NjE3LDUgKzY2MjIsMjYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dEQKIAogICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbihzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbikp
LCBtX3BhZ2VJRCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAgIGlmICghaXNWaWV3VmlzaWJs
ZSgpKSB7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkTm90
QWNxdWlyZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBDR0Rpc3BsYXlIaWRlQ3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29j
aWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlvbihmYWxzZSk7CisgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQp
OworfQorICAgIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2ludGVyVW5sb2NrKCkKK3sK
KyAgICBDR0Rpc3BsYXlTaG93Q3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29j
aWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlvbih0cnVlKTsKKyAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZExvc2VQb2ludGVyTG9jaygpLCBtX3BhZ2VJRCk7Cit9
CisjZW5kaWYKKwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCAyMDljOTBhMjJkNTk2NzZhZGFhMDJhNWFkMzg0NzVkMTBm
ODk4MDEwLi42Mjg1NzcxNjgzYmJiYTUwNDBhZTY1YWIyNWU3MDljZTcyMDgxZWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMTY4LDYgKzExNjgsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJM
b2NrKCk7CisgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOworI2VuZGlmCisKICAgICB2
b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENy
ZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwZjc3YzEzMDMwZDVkMzll
NTQ0NDhkNmM0MDRiMTVlMGIyMTNkZTE0Li5kZjVmMTk5YjQ2ZmM5ZTg0OTQ3NDk4NGZjZmNkNWJk
NmIwODkyYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTQ1Nyw2ICs0NTcsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmluZyBu
YW1lLCB1bnNpZ25lZCBwaWNrZXJTdGF0ZSkKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKKyAgICBSZXF1ZXN0UG9pbnRlckxvY2soKQorICAgIFJlcXVlc3RQb2ludGVyVW5sb2Nr
KCkKKyNlbmRpZgorCiAgICAgSW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChXZWJDb3Jl
OjpJbnRTaXplIG5ld1NpemUpCiAKICAgICBVc2VGaXhlZExheW91dERpZENoYW5nZShib29sIHVz
ZUZpeGVkTGF5b3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGJkYWY5MGFmM2RmOTcw
NjI2ZDg4Nzk4MmFiM2IwNGFkMDg4ZWM0MzAuLjIwNzM5Mzg0Zjg4NzkxMDAzN2U1N2RjNjdkZDQ5
YzgyZjQ0NDdlNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ1NSw2ICs0NTUsMjQg
QEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCiAgICAg
cmV0dXJuIG1fcGFnZS0+a2V5Ym9hcmRVSU1vZGUoKTsKIH0KIAorI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCitib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFBvaW50ZXJMb2Nr
KCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVz
dFBvaW50ZXJVbmxvY2soKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSZXF1ZXN0UG9pbnRlclVubG9jaygpKTsKK30KKworYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OmlzUG9pbnRlckxvY2tlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpCiB7
CiAgICAgLy8gRG8gbm90aGluZyBoZXJlLCB0aGVyZSdzIG5vIGNvbmNlcHQgb2YgaW52YWxpZGF0
aW5nIHRoZSB3aW5kb3cgaW4gdGhlIHdlYiBwcm9jZXNzLgpAQCAtMTEyNSw3ICsxMTQzLDYgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVp
bnQ2NF90IGNvbnRleHRJZCkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQoY29udGV4dElkKSk7CiB9CiAKLQog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCBj
b250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgYm9vbCBpc1ZpZGVv
KQogewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+dmll
dygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggM2FjOWZkMzM0ZWJlMTdhMzliMTBkZjI4MGMy
MTQwYmE4ZjIwYjYxYy4uM2M3ZTRhZDlmMThlYWYyNjVjYjJlNTE3Y2Y1ZTRlMjJiNjQwYzQ4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xOTEsNiArMTkxLDEyIEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAmJiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX1RJTUVSKQogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBvdmVycmlkZTsKICNl
bmRpZgorICAgIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgYm9vbCByZXF1ZXN0UG9p
bnRlckxvY2soKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgb3Zl
cnJpZGU7CisgICAgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSBvdmVycmlkZTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNo
YW5nZXMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA3NGZkN2E0NjJiOTI2MjQwNWM4ZjA5N2Q2YTNmM2QzNGY4NDVjY2Rk
Li5hNjZkNDVmNjZhMjg0OGZiODRjZjE2NWE0Yzc3MDY4YmZjOTNkYjliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTIsNiArMTUyLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VUaHJvdHRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRG9jdW1l
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTU2MDksNCArNTYxMCwyMSBAQCB2
b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBn
YW1lcGFkRGF0YXMpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQg
V2ViUGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBjb3JlUGFnZSgpLT5wb2lu
dGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIGNvcmVQYWdlKCktPnBv
aW50ZXJMb2NrQ29udHJvbGxlcigpLmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2
b2lkIFdlYlBhZ2U6OmRpZExvc2VQb2ludGVyTG9jaygpCit7CisgICAgY29yZVBhZ2UoKS0+cG9p
bnRlckxvY2tDb250cm9sbGVyKCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA0ZmQ3YjhiMWEwZTkyMTMzYjNlZmEzM2RkMGJmYTI3MzZjZGE2ODYw
Li4wN2FkM2RlN2VmNGM5NmY5Yjk4NjFjMDQ5MzYxZWQwMDdhMTBlOTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk2MSw2ICs5NjEsMTIgQEAg
cHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNv
bnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2b2lkIGRp
ZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7
CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA0N2UxMjcwYjZmMTI3
MTVkNjZmZGY5NmNlMjE1MmE0ODQ5ZDI0NzJiLi5hZDQ1Y2IwYTQxYjY5NTMwNDI4ZjM0YTRjZjQx
OTI0ZDUzNDdiMjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDI4LDYgKzQyOCwxMiBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkUGxheSkKICNlbmRpZgogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBEaWRBY3F1aXJlUG9pbnRlckxvY2soKQorICAgIERp
ZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTG9zZVBvaW50ZXJMb2NrKCkKKyNlbmRp
ZgorCiAgICAgQ2xlYXJXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKQogICAgIFNldFNob3VsZFNjYWxl
Vmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KQogCg==
</data>
<flag name="review"
          id="314987"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292361</attachid>
            <date>2016-10-21 10:07:27 -0700</date>
            <delta_ts>2016-10-21 10:27:42 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-162745-20161021100348.patch</filename>
            <type>text/plain</type>
            <size>19360</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1N2EwY2I1OGZhOTNh
MjJiZDg1OGUzNzA5NDg2YmM2OGEzZTM0Ni4uY2ZkNTNkMjBhZjI5NDc5OTBiMzA1ZmMwZmIyZTBi
MGI4NmM0NjRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiBFTkFCTEVfUE9JTlRFUl9M
T0NLIGlzIGVuYWJsZWQsIHRoZXNlIHRlc3RzIG5vdyBwYXNzIHdpdGggRHVtcFJlbmRlclRyZWUu
CisgICAgICAgIExheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2VkLmh0
bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZWxlbWVudC1ub3QtaW4t
ZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2tlZC1lbGVtZW50
LWlmcmFtZS1yZW1vdmVkLWZyb20tZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRl
ci1sb2NrL21vdXNlLWV2ZW50LWFwaS5odG1sCisKKyAgICAgICAgRXhwb3J0IHBvaW50ZXIgbG9j
ayBzeW1ib2xzIGFuZCBjYW5jZWwgcG9pbnRlciBsb2NrIG9uICJlc2NhcGUiLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6a2V5RXZlbnQpOiBDYW5jZWwgcG9pbnRlciBs
b2NrIG9uICJlc2NhcGUiLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cDogQWRkIG1pc3NpbmcgaW5jbHVkZS4KKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oOiBFeHBvcnQgc3ltYm9scy4KKwogMjAxNi0xMC0wNSAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wcm92ZSBPUyBYIFVB
IHF1aXJrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDM3ODc0YTgzYTlmZTc5MDA3YjU0YTU0NWRhNDAy
ZTQ0YzM0ZTY2Ni4uMTQ1ODE3OTUwZTU0MTU1MjFkNDkxYzY2ZWZkNzIwYjY0YmMxOTFkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA5LTI5ICBKZXJlbXkgSm9uZXMg
IDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgcG9pbnRlciBs
b2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGJhc2ljIHBvaW50ZXIgbG9jayBmdW5jdGlv
bmFsaXR5LiBVc2VyIHBlcm1pc3Npb24gaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50
ZXJVbmxvY2spOgorCiAyMDE2LTEwLTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZW5hbWUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMiB0byBFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVjYjYzY2IzYjIwNGRkNzJi
MjMwOGJkZTc3YzM5ZjkwMGE3NTBhNjEuLmU3ODllZmQ4ODFhYzE2NDA5OGVlNzc4OTE1ZGNhNDc4
YzFmMGRmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wOS0yOSAgSmVyZW15
IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGJhc2ljIHBv
aW50ZXIgbG9jayBiZWhhdmlvciBmb3IgV2ViS2l0IGFuZCBXZWJLaXQyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEVuYWJsZSBiYXNpYyBwb2ludGVyIGxv
Y2sgZnVuY3Rpb25hbGl0eSBieSBwbHVtYmluZyByZXF1ZXN0cyB0aHJvdWdoIFdlYlBhZ2UgSVBD
LgorICAgICAgICBQYXNzIHRocm91Z2ggbW91c2UgbW92ZW1lbnQgZGVsdGFzLgorICAgICAgICBV
bmxvY2sgcG9pbnRlciB3aGVuIHZpZXcgaXMgbm8gbG9uZ2VyIHZpc2libGUuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0
MlBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudCk6IFBhc3MgYWxv
bmcgbW91c2UgbW92ZW1lbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2Up
OiBVbmxvY2sgcG9pbnRlciB3aGVuIHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJMb2NrKTogSGlkZSBhbmQgZGlzYXNzb2Np
YXRlIHBvaW50ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50
ZXJVbmxvY2spOiBTaG93IGFuZCBhc3NvY2lhdGUgcG9pbnRlci4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjogQWRkIG1ldGhvZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RQb2ludGVyTG9jayk6IFBhc3MgYWxvbmcgdG8gd2ViIHBhZ2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTogRm9yd2FyZCB0byBQb2ludGVyTG9ja0Nv
bnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZE5vdEFjcXVpcmVQb2ludGVy
TG9jayk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRMb3NlUG9pbnRlckxv
Y2spOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgbWV0aG9k
cy4KKwogMjAxNi0xMC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIgdG8gRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMGMzYjNmNTY5YTZkOWM0
ODY1MzViNDgxMmQ3YzdjYmYyYjNjNzllYy4uZDNiMDRkNjU3YTRkMGQzN2E1MGRjYzM5NmRkZWQ5
OTA0ODg5YzY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMjYsOCArMTEyNiw4IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKLSAgICB2b2lkIGV4aXRQ
b2ludGVyTG9jaygpOwotICAgIEVsZW1lbnQqIHBvaW50ZXJMb2NrRWxlbWVudCgpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXhpdFBvaW50ZXJMb2NrKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgRWxlbWVudCogcG9pbnRlckxvY2tFbGVtZW50KCkgY29uc3Q7CiAjZW5kaWYKIAogICAg
IC8vIFVzZWQgdG8gYWxsb3cgZWxlbWVudCB0aGF0IGxvYWRzIGRhdGEgd2l0aG91dCBnb2luZyB0
aHJvdWdoIGEgRnJhbWVMb2FkZXIgdG8gZGVsYXkgdGhlICdsb2FkJyBldmVudC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IGMxNjcxZWE0OTM1ZGVjZmU2NDhkNjA5MWIyNDhmMDYxNTNkYzQwNjAuLjgy
YjEwMGIzZThkZTRjOGY3NDFlOGI5YThhZTk0ZTNkNThkMzUyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aApAQCAtNDgxLDcgKzQ4MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKLSAgICB2b2lkIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRJ
RV9VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGY0ODM0YmJhZTI5MTFjOTk0
OTA2ODE2MzZhZDEwM2E4YzJjNmQ0MWIuLjg1OTBkOTRlMjM1Yjk0MmI3NDVmZGMyOTAwNDQxNTY4
YjdkMmI3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNDA1LDcgKzQwNSw2
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIHZpcnR1YWwgYm9vbCBy
ZXF1ZXN0UG9pbnRlckxvY2soKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0UG9pbnRlclVubG9jaygpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2Nr
ZWQoKSB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBt
aW5pbXVtV2luZG93U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNTBmYzQ4NWYxZDZiNTJlNTk0
NjJhOGE0YzdjYTRmZmZlYWU3NzI2ZC4uNzIyMTcxNDZiZDdhM2Y4Mzc1NGJjYjY3ODY5N2VmOTlk
ZjZiZDcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzMsNiArNzMs
NyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
UG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhbWVTZXQuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIKQEAgLTMw
MTYsNiArMzAxNywxMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6a2V5RXZlbnQoY29uc3QgUGxhdGZv
cm1LZXlib2FyZEV2ZW50JiBpbml0aWFsS2V5RXZlbnQpCiAKICAgICBMT0coRWRpdGluZywgIkV2
ZW50SGFuZGxlciAlcCBrZXlFdmVudCAodGV4dCAlcyBrZXlJZGVudGlmaWVyICVzKSIsIHRoaXMs
IGluaXRpYWxLZXlFdmVudC50ZXh0KCkudXRmOCgpLmRhdGEoKSwgaW5pdGlhbEtleUV2ZW50Lmtl
eUlkZW50aWZpZXIoKS51dGY4KCkuZGF0YSgpKTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CisgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6S2V5RG93
biAmJiBpbml0aWFsS2V5RXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkgPT0gVktfRVNDQVBF
ICYmIG1fZnJhbWUucGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5lbGVtZW50KCkpIHsK
KyAgICAgICAgbV9mcmFtZS5wYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQ
b2ludGVyVW5sb2NrKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPndl
YmtpdElzRnVsbFNjcmVlbigpICYmICFpc0tleUV2ZW50QWxsb3dlZEluRnVsbFNjcmVlbihpbml0
aWFsS2V5RXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKaW5kZXggODk3YTQxNWQ5NTFlYzc3YzhjNDNl
Mzk1MmYxM2NhZTU4MmVlYThiMC4uOTg2NTVlNjk5OGM3ZmFiMDc0MGY4ZjllMDE2NzY5ZDJhNzRk
NjZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiVm9pZENhbGxiYWNrLmgiCkBAIC02MywxMyArNjQsMTcgQEAgdm9pZCBQb2ludGVyTG9j
a0NvbnRyb2xsZXI6OnJlcXVlc3RQb2ludGVyTG9jayhFbGVtZW50KiB0YXJnZXQpCiAgICAgICAg
ICAgICBlbnF1ZXVlRXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJsb2NrZXJyb3JFdmVudCwgdGFy
Z2V0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBtX2VsZW1lbnQg
PSB0YXJnZXQ7CiAgICAgICAgIGVucXVldWVFdmVudChldmVudE5hbWVzKCkucG9pbnRlcmxvY2tj
aGFuZ2VFdmVudCwgdGFyZ2V0KTsKLSAgICAgICAgbV9lbGVtZW50ID0gdGFyZ2V0OwotICAgIH0g
ZWxzZSBpZiAobV9wYWdlLmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RQb2ludGVyTG9jaygpKSB7
CisgICAgfSBlbHNlIHsKICAgICAgICAgbV9sb2NrUGVuZGluZyA9IHRydWU7CiAgICAgICAgIG1f
ZWxlbWVudCA9IHRhcmdldDsKLSAgICB9IGVsc2UKLSAgICAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50
TmFtZXMoKS5wb2ludGVybG9ja2Vycm9yRXZlbnQsIHRhcmdldCk7CisgICAgICAgIGlmICghbV9w
YWdlLmNocm9tZSgpLmNsaWVudCgpLnJlcXVlc3RQb2ludGVyTG9jaygpKSB7CisgICAgICAgICAg
ICBtX2VsZW1lbnQgPSBudWxscHRyOworICAgICAgICAgICAgbV9sb2NrUGVuZGluZyA9IGZhbHNl
OworICAgICAgICAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVybG9ja2Vycm9y
RXZlbnQsIHRhcmdldCk7CisgICAgICAgIH0KKyAgICB9CiB9CiAKIHZvaWQgUG9pbnRlckxvY2tD
b250cm9sbGVyOjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
b2ludGVyTG9ja0NvbnRyb2xsZXIuaAppbmRleCA3NjI4NTFiMGZiY2Y2MTE2MWNkYWFhMTMwNmMw
NGVjNWQ0N2U1ZGQ2Li41ZDBmZTFjZGU3ZTM5OWUxYjQ1NGQ3MjhjMmEzNjIyMTUzNGExZjczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgKQEAgLTUwLDkg
KzUwLDkgQEAgcHVibGljOgogICAgIGJvb2wgbG9ja1BlbmRpbmcoKSBjb25zdDsKICAgICBFbGVt
ZW50KiBlbGVtZW50KCkgY29uc3Q7CiAKLSAgICB2b2lkIGRpZEFjcXVpcmVQb2ludGVyTG9jaygp
OwotICAgIHZvaWQgZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Ci0gICAgdm9pZCBkaWRMb3Nl
UG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEFjcXVpcmVQb2ludGVy
TG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkTm90QWNxdWlyZVBvaW50ZXJMb2Nr
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soKTsKICAgICB2
b2lkIGRpc3BhdGNoTG9ja2VkTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDlmMGY4
ODE5M2UzZDg5M2E3NDFmZDFhZWNkM2VmM2E4ODY0NDk4NmYuLmMxMDE5MjRlYTVmMWQ2NjI5M2Ix
OTlhMzAwMTI0ZGIyYzIzZjU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMzUsNiArMTM1LDExIEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBvdmVycmlkZTsKICNlbmRpZgorICAgIAor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgYm9vbCByZXF1ZXN0UG9pbnRlckxvY2soKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgb3ZlcnJpZGU7CisjZW5k
aWYKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQppbmRleCA4YzMwY2NkYmI4NDEzNDg4YzBjYzRkYmEyY2NjODE5NmVlYmIwOWNk
Li5iZjlhZjU1MzI5ZDA4MTMwNmRiYzE5OWEzY2EzY2I5YmEyMjEyZjE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03
Nyw2ICs3Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1Jlc291cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXJpYWxpemVkQ3J5cHRvS2V5
V3JhcC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KQEAgLTcwOSw2ICs3MTAsMzQgQEAg
c3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xv
ckNob29zZXIoQ29sb3JDaG9vc2VyQ2wKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoIVttX3dlYlZpZXcgcGFnZV0pCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIENHRGlzcGxheUhpZGVDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOwor
ICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKGZhbHNlKTsKKyAgICBb
bV93ZWJWaWV3IHBhZ2VdLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRBY3F1aXJlUG9pbnRl
ckxvY2soKTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNl
OworI2VuZGlmCit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlclVubG9j
aygpCit7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIENHRGlzcGxheVNob3dDdXJzb3IoQ0dNYWlu
RGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9u
KHRydWUpOworICAgIGlmIChbbV93ZWJWaWV3IHBhZ2VdKQorICAgICAgICBbbV93ZWJWaWV3IHBh
Z2VdLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRMb3NlUG9pbnRlckxvY2soKTsKKyNlbmRp
ZgorfQorI2VuZGlmCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUq
LCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyKQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVu
dENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lv
bi5jcHAKaW5kZXggM2E0MzhjODIwMWU3ZWZmYmYzM2Q1NDkyZjk4ZjhmYzYyOWE3ZDMxMi4uMDUx
ZjIzMTM5N2U3NWUwOTkzZDNiYjcyODA4OTViYTg0M2YzNWM5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTk4LDYgKzk4LDkgQEAgcHVibGlj
OgogICAgICAgICB9CiAKICAgICAgICAgbV9wb3NpdGlvbiA9IHdlYkV2ZW50LnBvc2l0aW9uKCk7
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICAgICAgbV9tb3ZlbWVudERlbHRhID0gV2Vi
Q29yZTo6SW50UG9pbnQod2ViRXZlbnQuZGVsdGFYKCksIHdlYkV2ZW50LmRlbHRhWSgpKTsKKyNl
bmRpZgogICAgICAgICBtX2dsb2JhbFBvc2l0aW9uID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRpb24o
KTsKICAgICAgICAgbV9jbGlja0NvdW50ID0gd2ViRXZlbnQuY2xpY2tDb3VudCgpOwogI2lmIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggNmQ1MWMzMGU2MmJmMGM3NjgyMzRlYmM5NzEyM2Y2ZTc5MTI2YzE0Yi4uZjVhY2M0MjAyOTZm
ZmY3OWVlY2U4NGRhZTI1ZTM2N2RhYzhmMTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1NTMsNiArMTU1MywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2UoKQogICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJsZSgpKQogICAgICAgICBtX3Byb2Nlc3MtPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS5zdG9wKCk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQor
ICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJs
ZSgpKQorICAgICAgICByZXF1ZXN0UG9pbnRlclVubG9jaygpOworI2VuZGlmCisKICAgICBpZiAo
Y2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykgewogICAgICAgICBpZiAoaXNJbldpbmRv
dygpKQogICAgICAgICAgICAgdmlld0RpZEVudGVyV2luZG93KCk7CkBAIC02NjE3LDUgKzY2MjIs
MzcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24o
V2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dEQKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6U2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihzdGF0aWNfY2Fz
dDx1aW50MzJfdD4odXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbikpLCBtX3BhZ2VJRCk7CiB9
CisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0UG9pbnRlckxvY2soKQoreworICAgIGlmICghaXNWaWV3VmlzaWJsZSgpKSB7CisgICAgICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkTm90QWNxdWlyZVBvaW50ZXJM
b2NrKCksIG1fcGFnZUlEKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fdWlDbGll
bnQtPnJlcXVlc3RQb2ludGVyTG9jayh0aGlzKTsKK30KKyAgICAKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRBbGxvd1BvaW50ZXJMb2NrKCkKK3sKKyAgICBDR0Rpc3BsYXlIaWRlQ3Vyc29yKENHTWFp
bkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlv
bihmYWxzZSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRBY3F1
aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQpOworfQorICAgIAordm9pZCBXZWJQYWdlUHJveHk6
OmRpZERlbnlQb2ludGVyTG9jaygpCit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQpOworfQorCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIENHRGlzcGxheVNo
b3dDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3Vz
ZUN1cnNvclBvc2l0aW9uKHRydWUpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGlkTG9zZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsKK30KKyNlbmRpZgorCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDIwOWM5MGEyMmQ1OTY3NmFkYWEwMmE1YWQzODQ3NWQxMGY4OTgwMTAuLmQ3OWQ0NGFm
NTU1Y2VkZDNlZmZjZWViODRhYTgxOWEyZjdkZDJiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTk0Nyw2ICs5NDcsMTEgQEAgcHVibGljOgogICAgIHZvaWQg
aGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlwZSk7CiAgICAgdm9pZCBzZXRW
b2x1bWVPZk1lZGlhRWxlbWVudChkb3VibGUsIHVpbnQ2NF90KTsKICNlbmRpZgorICAgICAgICAK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQgZGlkQWxsb3dQb2ludGVyTG9jaygp
OworICAgIHZvaWQgZGlkRGVueVBvaW50ZXJMb2NrKCk7CisjZW5kaWYKIAogICAgIC8vIFdlYlBv
cHVwTWVudVByb3h5OjpDbGllbnQKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KiBjdXJyZW50bHlQ
cm9jZXNzZWRNb3VzZURvd25FdmVudCgpIG92ZXJyaWRlOwpAQCAtMTE2OCw2ICsxMTczLDExIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBmYWlsZWRUb1Nob3dQb3B1cE1lbnUoKSBvdmVycmlkZTsKICNl
bmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2b2lkIHJlcXVlc3RQb2ludGVy
TG9jaygpOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKKyNlbmRpZgorCiAgICAg
dm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRD
cmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGY3N2MxMzAzMGQ1ZDM5
ZTU0NDQ4ZDZjNDA0YjE1ZTBiMjEzZGUxNC4uZGY1ZjE5OWI0NmZjOWU4NDk0NzQ5ODRmY2ZjZDVi
ZDZiMDg5MmE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC00NTcsNiArNDU3LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShTdHJpbmcg
bmFtZSwgdW5zaWduZWQgcGlja2VyU3RhdGUpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCisgICAgUmVxdWVzdFBvaW50ZXJMb2NrKCkKKyAgICBSZXF1ZXN0UG9pbnRlclVubG9j
aygpCisjZW5kaWYKKwogICAgIEltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoV2ViQ29y
ZTo6SW50U2l6ZSBuZXdTaXplKQogCiAgICAgVXNlRml4ZWRMYXlvdXREaWRDaGFuZ2UoYm9vbCB1
c2VGaXhlZExheW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiZGFmOTBhZjNkZjk3
MDYyNmQ4ODc5ODJhYjNiMDRhZDA4OGVjNDMwLi44Yzc4ZDRmZjBlNTViM2JiN2I5ZTE1OGNkMTEz
ZTg1ZGU5MDIwNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NTUsNiArNDU1LDE5
IEBAIEtleWJvYXJkVUlNb2RlIFdlYkNocm9tZUNsaWVudDo6a2V5Ym9hcmRVSU1vZGUoKQogICAg
IHJldHVybiBtX3BhZ2UtPmtleWJvYXJkVUlNb2RlKCk7CiB9CiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7Cisg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RQb2ludGVyTG9j
aygpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RQb2ludGVyVW5sb2NrKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdFBvaW50ZXJVbmxvY2soKSk7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikKIHsKICAgICAvLyBE
byBub3RoaW5nIGhlcmUsIHRoZXJlJ3Mgbm8gY29uY2VwdCBvZiBpbnZhbGlkYXRpbmcgdGhlIHdp
bmRvdyBpbiB0aGUgd2ViIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzYWM5ZmQz
MzRlYmUxN2EzOWIxMGRmMjgwYzIxNDBiYThmMjBiNjFjLi40N2UwODY2YTYzMjU5MTI3NzdhNzE5
NjQwYzU1Yzk2YjBkOGFhNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE5MSw2ICsxOTEs
MTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICYmICFV
U0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdm9pZCBzY2hlZHVsZUFuaW1h
dGlvbigpIG92ZXJyaWRlOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
KyAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVz
dFBvaW50ZXJVbmxvY2soKSBvdmVycmlkZTsKKyNlbmRpZgogCiAgICAgdm9pZCBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50Pj4mKSBv
dmVycmlkZTsKICAgICBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3
NGZkN2E0NjJiOTI2MjQwNWM4ZjA5N2Q2YTNmM2QzNGY4NDVjY2RkLi5hNjZkNDVmNjZhMjg0OGZi
ODRjZjE2NWE0Yzc3MDY4YmZjOTNkYjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTIsNiArMTUyLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VUaHJvdHRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRF
dmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRD
b250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyTGF5ZXIuaD4KQEAgLTU2MDksNCArNTYxMCwyMSBAQCB2b2lkIFdlYlBhZ2U6OmdhbWVw
YWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCiAKICNl
bmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQgV2ViUGFnZTo6ZGlkQWNxdWly
ZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBjb3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIo
KS5kaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWROb3RBY3F1
aXJlUG9pbnRlckxvY2soKQoreworICAgIGNvcmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxl
cigpLmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZExv
c2VQb2ludGVyTG9jaygpCit7CisgICAgY29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVy
KCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0
ZmQ3YjhiMWEwZTkyMTMzYjNlZmEzM2RkMGJmYTI3MzZjZGE2ODYwLi4wN2FkM2RlN2VmNGM5NmY5
Yjk4NjFjMDQ5MzYxZWQwMDdhMTBlOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk2MSw2ICs5NjEsMTIgQEAgcHVibGljOgogI2lmIEVOQUJM
RShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFk
RGF0YT4mKTsKICNlbmRpZgorICAgIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9p
ZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVy
TG9jaygpOworICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisjZW5kaWYKIAogcHJpdmF0
ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA0N2UxMjcwYjZmMTI3MTVkNjZmZGY5NmNlMjE1MmE0
ODQ5ZDI0NzJiLi5hZDQ1Y2IwYTQxYjY5NTMwNDI4ZjM0YTRjZjQxOTI0ZDUzNDdiMjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgpAQCAtNDI4LDYgKzQyOCwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBTZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldCh1aW50NjRfdCBjb250
ZXh0SWQsIGJvb2wgc2hvdWxkUGxheSkKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICBEaWRBY3F1aXJlUG9pbnRlckxvY2soKQorICAgIERpZE5vdEFjcXVpcmVQb2ludGVy
TG9jaygpCisgICAgRGlkTG9zZVBvaW50ZXJMb2NrKCkKKyNlbmRpZgorCiAgICAgQ2xlYXJXaGVl
bEV2ZW50VGVzdFRyaWdnZXIoKQogICAgIFNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQo
Ym9vbCBzaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292367</attachid>
            <date>2016-10-21 10:28:21 -0700</date>
            <delta_ts>2016-10-21 10:46:13 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-162745-20161021102442.patch</filename>
            <type>text/plain</type>
            <size>21471</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM1N2EwY2I1OGZhOTNh
MjJiZDg1OGUzNzA5NDg2YmM2OGEzZTM0Ni4uY2ZkNTNkMjBhZjI5NDc5OTBiMzA1ZmMwZmIyZTBi
MGI4NmM0NjRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiBFTkFCTEVfUE9JTlRFUl9M
T0NLIGlzIGVuYWJsZWQsIHRoZXNlIHRlc3RzIG5vdyBwYXNzIHdpdGggRHVtcFJlbmRlclRyZWUu
CisgICAgICAgIExheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2VkLmh0
bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZWxlbWVudC1ub3QtaW4t
ZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2tlZC1lbGVtZW50
LWlmcmFtZS1yZW1vdmVkLWZyb20tZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRl
ci1sb2NrL21vdXNlLWV2ZW50LWFwaS5odG1sCisKKyAgICAgICAgRXhwb3J0IHBvaW50ZXIgbG9j
ayBzeW1ib2xzIGFuZCBjYW5jZWwgcG9pbnRlciBsb2NrIG9uICJlc2NhcGUiLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6a2V5RXZlbnQpOiBDYW5jZWwgcG9pbnRlciBs
b2NrIG9uICJlc2NhcGUiLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cDogQWRkIG1pc3NpbmcgaW5jbHVkZS4KKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oOiBFeHBvcnQgc3ltYm9scy4KKwogMjAxNi0xMC0wNSAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gSW1wcm92ZSBPUyBYIFVB
IHF1aXJrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDM3ODc0YTgzYTlmZTc5MDA3YjU0YTU0NWRhNDAy
ZTQ0YzM0ZTY2Ni4uMTQ1ODE3OTUwZTU0MTU1MjFkNDkxYzY2ZWZkNzIwYjY0YmMxOTFkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA5LTI5ICBKZXJlbXkgSm9uZXMg
IDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMgcG9pbnRlciBs
b2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQWRkIGJhc2ljIHBvaW50ZXIgbG9jayBmdW5jdGlv
bmFsaXR5LiBVc2VyIHBlcm1pc3Npb24gaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFBvaW50ZXJMb2NrKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50
ZXJVbmxvY2spOgorCiAyMDE2LTEwLTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZW5hbWUgRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMiB0byBFTkFC
TEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVjYjYzY2IzYjIwNGRkNzJi
MjMwOGJkZTc3YzM5ZjkwMGE3NTBhNjEuLmU3ODllZmQ4ODFhYzE2NDA5OGVlNzc4OTE1ZGNhNDc4
YzFmMGRmYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wOS0yOSAgSmVyZW15
IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGJhc2ljIHBv
aW50ZXIgbG9jayBiZWhhdmlvciBmb3IgV2ViS2l0IGFuZCBXZWJLaXQyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEVuYWJsZSBiYXNpYyBwb2ludGVyIGxv
Y2sgZnVuY3Rpb25hbGl0eSBieSBwbHVtYmluZyByZXF1ZXN0cyB0aHJvdWdoIFdlYlBhZ2UgSVBD
LgorICAgICAgICBQYXNzIHRocm91Z2ggbW91c2UgbW92ZW1lbnQgZGVsdGFzLgorICAgICAgICBV
bmxvY2sgcG9pbnRlciB3aGVuIHZpZXcgaXMgbm8gbG9uZ2VyIHZpc2libGUuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViS2l0
MlBsYXRmb3JtTW91c2VFdmVudDo6V2ViS2l0MlBsYXRmb3JtTW91c2VFdmVudCk6IFBhc3MgYWxv
bmcgbW91c2UgbW92ZW1lbnQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2Up
OiBVbmxvY2sgcG9pbnRlciB3aGVuIHBhZ2UgaXMgbm90IHZpc2libGUuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJMb2NrKTogSGlkZSBhbmQgZGlzYXNzb2Np
YXRlIHBvaW50ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50
ZXJVbmxvY2spOiBTaG93IGFuZCBhc3NvY2lhdGUgcG9pbnRlci4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjogQWRkIG1ldGhvZHMuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RQb2ludGVyTG9jayk6IFBhc3MgYWxvbmcgdG8gd2ViIHBhZ2UuCisgICAgICAgIChX
ZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2spOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTogRm9yd2FyZCB0byBQb2ludGVyTG9ja0Nv
bnRyb2xsZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZE5vdEFjcXVpcmVQb2ludGVy
TG9jayk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRMb3NlUG9pbnRlckxv
Y2spOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBBZGQgbWV0aG9k
cy4KKwogMjAxNi0xMC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIgdG8gRU5BQkxFX0xFR0FD
WV9FTkNSWVBURURfTUVESUEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxMTZhNTBmMDI1MTU0OGVjMjY4ODgzZDFiZjJmYzQ0NzBj
YWQ1Y2VkLi4zODJkYzNhNGNlODhhNWVlOTQyYzQ5ZmRjNTgzNjM5NjgyODgzYjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDg1LDYgKzE0ODUsNyBAQAogCQkzRjQyQjMxRTE4ODExOTFCMDAyNzhBQUMgLyogV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gM0Y0MkIzMUMxODgxMTkxQjAwMjc4QUFDIC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRBRjMxODk4ODE1NjAwNDZF
RTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZCQzRBRjExODk4ODE1NjAwNDZFRTM4
IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovOyB9OwogCQkzRkJDNEFG
NDE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkM0QUYyMTg5
ODgxNTYwMDQ2RUUzOCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTNGRjgxM0E3MURC
QTg2NDAwMDlCRjAwMSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRkM0MzRGMTkyNDA2QTkwMEEwRDNCNSAv
KiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkzRkZGRjlBODE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NT
Vmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDNGRkZGOUE2MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUu
Y3BwICovOyB9OwogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3Bv
cnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
RkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggKi87IH07
CiAJCTNGRkZGOUFEMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QUIx
NTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgKi87IH07CkBAIC0y
NDUyOSw2ICsyNDUzMCw3IEBACiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRE
ZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2NjI2MTExQzZFN0NBNjAwQUI1MjdD
IC8qIEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBNTFDNzI5Q0U0MDA4MEY4
RkMgLyogRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTNGRjgxM0E3MURCQTg2NDAw
MDlCRjAwMSAvKiBQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTRB
NkU5RkM4MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250VGFnZ2VkU2V0dGluZ3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4NDU2ODA4MTJCOTBEQTYwMDk2MEE5RiAvKiBGb250TWV0cmljcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJBMjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURh
dGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwYzNiM2Y1NjlhNmQ5
YzQ4NjUzNWI0ODEyZDdjN2NiZjJiM2M3OWVjLi5kM2IwNGQ2NTdhNGQwZDM3YTUwZGNjMzk2ZGRl
ZDk5MDQ4ODljNjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTEyNiw4ICsxMTI2LDggQEAg
cHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAgIHZvaWQgZXhp
dFBvaW50ZXJMb2NrKCk7Ci0gICAgRWxlbWVudCogcG9pbnRlckxvY2tFbGVtZW50KCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBleGl0UG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBFbGVtZW50KiBwb2ludGVyTG9ja0VsZW1lbnQoKSBjb25zdDsKICNlbmRpZgogCiAg
ICAgLy8gVXNlZCB0byBhbGxvdyBlbGVtZW50IHRoYXQgbG9hZHMgZGF0YSB3aXRob3V0IGdvaW5n
IHRocm91Z2ggYSBGcmFtZUxvYWRlciB0byBkZWxheSB0aGUgJ2xvYWQnIGV2ZW50LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKaW5kZXggYzE2NzFlYTQ5MzVkZWNmZTY0OGQ2MDkxYjI0OGYwNjE1M2RjNDA2MC4u
ODJiMTAwYjNlOGRlNGM4Zjc0MWU4YjlhOGFlOTRlM2Q1OGQzNTJjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCkBAIC00ODEsNyArNDgxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQotICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXF1ZXN0UG9pbnRlckxvY2soKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElO
RElFX1VJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZjQ4MzRiYmFlMjkxMWM5
OTQ5MDY4MTYzNmFkMTAzYThjMmM2ZDQxYi4uODU5MGQ5NGUyMzViOTQyYjc0NWZkYzI5MDA0NDE1
NjhiN2QyYjdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC00MDUsNyArNDA1
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgdmlydHVhbCBib29s
IHJlcXVlc3RQb2ludGVyTG9jaygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RQb2ludGVyVW5sb2NrKCkgeyB9Ci0gICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxv
Y2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgRmxvYXRTaXpl
IG1pbmltdW1XaW5kb3dTaXplKCkgY29uc3QgeyByZXR1cm4gRmxvYXRTaXplKDEwMCwgMTAwKTsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA1MGZjNDg1ZjFkNmI1MmU1
OTQ2MmE4YTRjN2NhNGZmZmVhZTc3MjZkLi43MjIxNzE0NmJkN2EzZjgzNzU0YmNiNjc4Njk3ZWY5
OWRmNmJkNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC03Myw2ICs3
Myw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJSZW5kZXJGcmFtZVNldC5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEJveC5oIgpAQCAt
MzAxNiw2ICszMDE3LDEzIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudCkKIAogICAgIExPRyhFZGl0aW5nLCAi
RXZlbnRIYW5kbGVyICVwIGtleUV2ZW50ICh0ZXh0ICVzIGtleUlkZW50aWZpZXIgJXMpIiwgdGhp
cywgaW5pdGlhbEtleUV2ZW50LnRleHQoKS51dGY4KCkuZGF0YSgpLCBpbml0aWFsS2V5RXZlbnQu
a2V5SWRlbnRpZmllcigpLnV0ZjgoKS5kYXRhKCkpOwogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICBpZiAoaW5pdGlhbEtleUV2ZW50LnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpLZXlE
b3duICYmIGluaXRpYWxLZXlFdmVudC53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19FU0NB
UEUgJiYgbV9mcmFtZS5wYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLmVsZW1lbnQoKSkg
eworICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVz
dFBvaW50ZXJVbmxvY2soKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorI2VuZGlmCisK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+
d2Via2l0SXNGdWxsU2NyZWVuKCkgJiYgIWlzS2V5RXZlbnRBbGxvd2VkSW5GdWxsU2NyZWVuKGlu
aXRpYWxLZXlFdmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcAppbmRleCA4OTdhNDE1ZDk1MWVjNzdjOGM0
M2UzOTUyZjEzY2FlNTgyZWVhOGIwLi45ODY1NWU2OTk4YzdmYWIwNzQwZjhmOWUwMTY3NjlkMmE3
NGQ2NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNp
bmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKQEAgLTYzLDEzICs2NCwxNyBAQCB2b2lkIFBvaW50ZXJM
b2NrQ29udHJvbGxlcjo6cmVxdWVzdFBvaW50ZXJMb2NrKEVsZW1lbnQqIHRhcmdldCkKICAgICAg
ICAgICAgIGVucXVldWVFdmVudChldmVudE5hbWVzKCkucG9pbnRlcmxvY2tlcnJvckV2ZW50LCB0
YXJnZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIG1fZWxlbWVu
dCA9IHRhcmdldDsKICAgICAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50TmFtZXMoKS5wb2ludGVybG9j
a2NoYW5nZUV2ZW50LCB0YXJnZXQpOwotICAgICAgICBtX2VsZW1lbnQgPSB0YXJnZXQ7Ci0gICAg
fSBlbHNlIGlmIChtX3BhZ2UuY2hyb21lKCkuY2xpZW50KCkucmVxdWVzdFBvaW50ZXJMb2NrKCkp
IHsKKyAgICB9IGVsc2UgewogICAgICAgICBtX2xvY2tQZW5kaW5nID0gdHJ1ZTsKICAgICAgICAg
bV9lbGVtZW50ID0gdGFyZ2V0OwotICAgIH0gZWxzZQotICAgICAgICBlbnF1ZXVlRXZlbnQoZXZl
bnROYW1lcygpLnBvaW50ZXJsb2NrZXJyb3JFdmVudCwgdGFyZ2V0KTsKKyAgICAgICAgaWYgKCFt
X3BhZ2UuY2hyb21lKCkuY2xpZW50KCkucmVxdWVzdFBvaW50ZXJMb2NrKCkpIHsKKyAgICAgICAg
ICAgIG1fZWxlbWVudCA9IG51bGxwdHI7CisgICAgICAgICAgICBtX2xvY2tQZW5kaW5nID0gZmFs
c2U7CisgICAgICAgICAgICBlbnF1ZXVlRXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJsb2NrZXJy
b3JFdmVudCwgdGFyZ2V0KTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdm9pZCBQb2ludGVyTG9j
a0NvbnRyb2xsZXI6OnJlcXVlc3RQb2ludGVyVW5sb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BvaW50ZXJMb2NrQ29udHJvbGxlci5oCmluZGV4IDc2Mjg1MWIwZmJjZjYxMTYxY2RhYWExMzA2
YzA0ZWM1ZDQ3ZTVkZDYuLjVkMGZlMWNkZTdlMzk5ZTFiNDU0ZDcyOGMyYTM2MjIxNTM0YTFmNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaApAQCAtNTAs
OSArNTAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBsb2NrUGVuZGluZygpIGNvbnN0OwogICAgIEVs
ZW1lbnQqIGVsZW1lbnQoKSBjb25zdDsKIAotICAgIHZvaWQgZGlkQWNxdWlyZVBvaW50ZXJMb2Nr
KCk7Ci0gICAgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKTsKLSAgICB2b2lkIGRpZExv
c2VQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQWNxdWlyZVBvaW50
ZXJMb2NrKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWROb3RBY3F1aXJlUG9pbnRlckxv
Y2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZExvc2VQb2ludGVyTG9jaygpOwogICAg
IHZvaWQgZGlzcGF0Y2hMb2NrZWRNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOWYw
Zjg4MTkzZTNkODkzYTc0MWZkMWFlY2QzZWYzYTg4NjQ0OTg2Zi4uYzEwMTkyNGVhNWYxZDY2Mjkz
YjE5OWEzMDAxMjRkYjJjMjNmNTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEzNSw2ICsxMzUsMTEgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29z
ZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIG92ZXJyaWRlOwogI2VuZGlmCisgICAg
CisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygp
IG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBvdmVycmlkZTsKKyNl
bmRpZgogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCmluZGV4IDhjMzBjY2RiYjg0MTM0ODhjMGNjNGRiYTJjY2M4MTk2ZWViYjA5
Y2QuLmJmOWFmNTUzMjlkMDgxMzA2ZGJjMTk5YTNjYTNjYjliYTIyMTJmMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAg
LTc3LDYgKzc3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgor
I2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgpAQCAtNzA5LDYgKzcxMCwzNCBA
QCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXJDbAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGlmICghW21fd2ViVmlldyBwYWdlXSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgQ0dEaXNwbGF5SGlkZUN1cnNvcihDR01haW5EaXNwbGF5SUQoKSk7
CisgICAgQ0dBc3NvY2lhdGVNb3VzZUFuZE1vdXNlQ3Vyc29yUG9zaXRpb24oZmFsc2UpOworICAg
IFttX3dlYlZpZXcgcGFnZV0tPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLmRpZEFjcXVpcmVQb2lu
dGVyTG9jaygpOworICAgIAorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5s
b2NrKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgQ0dEaXNwbGF5U2hvd0N1cnNvcihDR01h
aW5EaXNwbGF5SUQoKSk7CisgICAgQ0dBc3NvY2lhdGVNb3VzZUFuZE1vdXNlQ3Vyc29yUG9zaXRp
b24odHJ1ZSk7CisgICAgaWYgKFttX3dlYlZpZXcgcGFnZV0pCisgICAgICAgIFttX3dlYlZpZXcg
cGFnZV0tPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLmRpZExvc2VQb2ludGVyTG9jaygpOworI2Vu
ZGlmCit9CisjZW5kaWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFt
ZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2
ZW50Q29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJz
aW9uLmNwcAppbmRleCAzYTQzOGM4MjAxZTdlZmZiZjMzZDU0OTJmOThmOGZjNjI5YTdkMzEyLi4w
NTFmMjMxMzk3ZTc1ZTA5OTNkM2JiNzI4MDg5NWJhODQzZjM1YzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcApAQCAtOTgsNiArOTgsOSBAQCBwdWJs
aWM6CiAgICAgICAgIH0KIAogICAgICAgICBtX3Bvc2l0aW9uID0gd2ViRXZlbnQucG9zaXRpb24o
KTsKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgICAgICBtX21vdmVtZW50RGVsdGEgPSBX
ZWJDb3JlOjpJbnRQb2ludCh3ZWJFdmVudC5kZWx0YVgoKSwgd2ViRXZlbnQuZGVsdGFZKCkpOwor
I2VuZGlmCiAgICAgICAgIG1fZ2xvYmFsUG9zaXRpb24gPSB3ZWJFdmVudC5nbG9iYWxQb3NpdGlv
bigpOwogICAgICAgICBtX2NsaWNrQ291bnQgPSB3ZWJFdmVudC5jbGlja0NvdW50KCk7CiAjaWYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA2ZDUxYzMwZTYyYmYwYzc2ODIzNGViYzk3MTIzZjZlNzkxMjZjMTRiLi5mNWFjYzQyMDI5
NmZmZjc5ZWVjZTg0ZGFlMjVlMzY3ZGFjOGYxNzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTU1Myw2ICsxNTUzLDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpCiAgICAgaWYgKChjaGFuZ2VkICYgVmlld1N0
YXRlOjpJc1Zpc2libGUpICYmICFpc1ZpZXdWaXNpYmxlKCkpCiAgICAgICAgIG1fcHJvY2Vzcy0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0sp
CisgICAgaWYgKChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpICYmICFpc1ZpZXdWaXNp
YmxlKCkpCisgICAgICAgIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CisjZW5kaWYKKwogICAgIGlm
IChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSB7CiAgICAgICAgIGlmIChpc0luV2lu
ZG93KCkpCiAgICAgICAgICAgICB2aWV3RGlkRW50ZXJXaW5kb3coKTsKQEAgLTY2MTcsNSArNjYy
MiwzNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bihXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RAogCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZXRVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKHN0YXRpY19j
YXN0PHVpbnQzMl90Pih1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKSksIG1fcGFnZUlEKTsK
IH0KKyAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RQb2ludGVyTG9jaygpCit7CisgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkpIHsKKyAgICAg
ICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWROb3RBY3F1aXJlUG9pbnRl
ckxvY2soKSwgbV9wYWdlSUQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV91aUNs
aWVudC0+cmVxdWVzdFBvaW50ZXJMb2NrKHRoaXMpOworfQorICAgIAordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEFsbG93UG9pbnRlckxvY2soKQoreworICAgIENHRGlzcGxheUhpZGVDdXJzb3IoQ0dN
YWluRGlzcGxheUlEKCkpOworICAgIENHQXNzb2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0
aW9uKGZhbHNlKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEFj
cXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2VJRCk7Cit9CisgICAgCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRGVueVBvaW50ZXJMb2NrKCkKK3sKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpLCBtX3BhZ2VJRCk7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UG9pbnRlclVubG9jaygpCit7CisgICAgQ0dEaXNwbGF5
U2hvd0N1cnNvcihDR01haW5EaXNwbGF5SUQoKSk7CisgICAgQ0dBc3NvY2lhdGVNb3VzZUFuZE1v
dXNlQ3Vyc29yUG9zaXRpb24odHJ1ZSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRMb3NlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQpOworfQorI2VuZGlmCisKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggMjA5YzkwYTIyZDU5Njc2YWRhYTAyYTVhZDM4NDc1ZDEwZjg5ODAxMC4uZDc5ZDQ0
YWY1NTVjZWRkM2VmZmNlZWI4NGFhODE5YTJmN2RkMmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTQ3LDYgKzk0NywxMSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBoYW5kbGVNZWRpYUV2ZW50KFdlYkNvcmU6Ok1lZGlhRXZlbnRUeXBlKTsKICAgICB2b2lkIHNl
dFZvbHVtZU9mTWVkaWFFbGVtZW50KGRvdWJsZSwgdWludDY0X3QpOwogI2VuZGlmCisgICAgICAg
IAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgdm9pZCBkaWRBbGxvd1BvaW50ZXJMb2Nr
KCk7CisgICAgdm9pZCBkaWREZW55UG9pbnRlckxvY2soKTsKKyNlbmRpZgogCiAgICAgLy8gV2Vi
UG9wdXBNZW51UHJveHk6OkNsaWVudAogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQqIGN1cnJlbnRs
eVByb2Nlc3NlZE1vdXNlRG93bkV2ZW50KCkgb3ZlcnJpZGU7CkBAIC0xMTY4LDYgKzExNzMsMTEg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGZhaWxlZFRvU2hvd1BvcHVwTWVudSgpIG92ZXJyaWRlOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQgcmVxdWVzdFBvaW50
ZXJMb2NrKCk7CisgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOworI2VuZGlmCisKICAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwZjc3YzEzMDMwZDVk
MzllNTQ0NDhkNmM0MDRiMTVlMGIyMTNkZTE0Li5kZjVmMTk5YjQ2ZmM5ZTg0OTQ3NDk4NGZjZmNk
NWJkNmIwODkyYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTQ1Nyw2ICs0NTcsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICAgICBTZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRlKFN0cmlu
ZyBuYW1lLCB1bnNpZ25lZCBwaWNrZXJTdGF0ZSkKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKKyAgICBSZXF1ZXN0UG9pbnRlckxvY2soKQorICAgIFJlcXVlc3RQb2ludGVyVW5s
b2NrKCkKKyNlbmRpZgorCiAgICAgSW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChXZWJD
b3JlOjpJbnRTaXplIG5ld1NpemUpCiAKICAgICBVc2VGaXhlZExheW91dERpZENoYW5nZShib29s
IHVzZUZpeGVkTGF5b3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGJkYWY5MGFmM2Rm
OTcwNjI2ZDg4Nzk4MmFiM2IwNGFkMDg4ZWM0MzAuLjhjNzhkNGZmMGU1NWIzYmI3YjllMTU4Y2Qx
MTNlODVkZTkwMjA3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ1NSw2ICs0NTUs
MTkgQEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCiAg
ICAgcmV0dXJuIG1fcGFnZS0+a2V5Ym9hcmRVSU1vZGUoKTsKIH0KIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCitib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sK
KyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFBvaW50ZXJM
b2NrKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFBvaW50ZXJVbmxvY2soKQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSZXF1ZXN0UG9pbnRlclVubG9jaygpKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKQogewogICAgIC8v
IERvIG5vdGhpbmcgaGVyZSwgdGhlcmUncyBubyBjb25jZXB0IG9mIGludmFsaWRhdGluZyB0aGUg
d2luZG93IGluIHRoZSB3ZWIgcHJvY2Vzcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDNhYzlm
ZDMzNGViZTE3YTM5YjEwZGYyODBjMjE0MGJhOGYyMGI2MWMuLjQ3ZTA4NjZhNjMyNTkxMjc3N2E3
MTk2NDBjNTVjOTZiMGQ4YWE3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTkxLDYgKzE5
MSwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJiYg
IVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHNjaGVkdWxlQW5p
bWF0aW9uKCkgb3ZlcnJpZGU7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQorICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1
ZXN0UG9pbnRlclVubG9jaygpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICB2b2lkIGRpZEFzc29j
aWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+PiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDc0ZmQ3YTQ2MmI5MjYyNDA1YzhmMDk3ZDZhM2YzZDM0Zjg0NWNjZGQuLmE2NmQ0NWY2NmEyODQ4
ZmI4NGNmMTY1YTRjNzcwNjhiZmM5M2RiOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1Miw2ICsxNTIsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZVRocm90dGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUG9pbnRlckxvY2tDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcmlu
dENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJMYXllci5oPgpAQCAtNTYwOSw0ICs1NjEwLDIxIEBAIHZvaWQgV2ViUGFnZTo6Z2Ft
ZXBhZEFjdGl2aXR5KGNvbnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcykKIAog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQordm9pZCBXZWJQYWdlOjpkaWRBY3F1
aXJlUG9pbnRlckxvY2soKQoreworICAgIGNvcmVQYWdlKCktPnBvaW50ZXJMb2NrQ29udHJvbGxl
cigpLmRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZE5vdEFj
cXVpcmVQb2ludGVyTG9jaygpCit7CisgICAgY29yZVBhZ2UoKS0+cG9pbnRlckxvY2tDb250cm9s
bGVyKCkuZGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlk
TG9zZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBjb3JlUGFnZSgpLT5wb2ludGVyTG9ja0NvbnRyb2xs
ZXIoKS5kaWRMb3NlUG9pbnRlckxvY2soKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDRmZDdiOGIxYTBlOTIxMzNiM2VmYTMzZGQwYmZhMjczNmNkYTY4NjAuLjA3YWQzZGU3ZWY0Yzk2
ZjliOTg2MWMwNDkzNjFlZDAwN2ExMGU5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTYxLDYgKzk2MSwxMiBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKEdBTUVQQUQpCiAgICAgdm9pZCBnYW1lcGFkQWN0aXZpdHkoY29uc3QgVmVjdG9yPEdhbWVw
YWREYXRhPiYpOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2
b2lkIGRpZEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkTm90QWNxdWlyZVBvaW50
ZXJMb2NrKCk7CisgICAgdm9pZCBkaWRMb3NlUG9pbnRlckxvY2soKTsKKyNlbmRpZgogCiBwcml2
YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDQ3ZTEyNzBiNmYxMjcxNWQ2NmZkZjk2Y2UyMTUy
YTQ4NDlkMjQ3MmIuLmFkNDVjYjBhNDFiNjk1MzA0MjhmMzRhNGNmNDE5MjRkNTM0N2IyMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCkBAIC00MjgsNiArNDI4LDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBzaG91bGRQbGF5KQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorICAgIERpZEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTm90QWNxdWlyZVBvaW50
ZXJMb2NrKCkKKyAgICBEaWRMb3NlUG9pbnRlckxvY2soKQorI2VuZGlmCisKICAgICBDbGVhcldo
ZWVsRXZlbnRUZXN0VHJpZ2dlcigpCiAgICAgU2V0U2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVu
dChib29sIHNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQpCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292373</attachid>
            <date>2016-10-21 10:45:54 -0700</date>
            <delta_ts>2016-10-21 11:48:25 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-162745-20161021104215.patch</filename>
            <type>text/plain</type>
            <size>21487</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjkwYTk2MzNhZGFkOGQ0
MTRhZDMwNWVlOTA0NzE1OWYyNWU3ZjkwYS4uYzQyM2MwZGQ1YmRhMDg3ZWRjOGVjYmRjNDg2YWU2
ZTMwYzVhYjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA5LTI5ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYmFzaWMg
cG9pbnRlciBsb2NrIGJlaGF2aW9yIGZvciBXZWJLaXQgYW5kIFdlYktpdDIuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI3NDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiBFTkFCTEVfUE9JTlRFUl9M
T0NLIGlzIGVuYWJsZWQsIHRoZXNlIHRlc3RzIG5vdyBwYXNzIHdpdGggRHVtcFJlbmRlclRyZWUu
CisgICAgICAgIExheW91dFRlc3RzL3BvaW50ZXItbG9jay9sb2NrLWFscmVhZHktbG9ja2VkLmh0
bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2stZWxlbWVudC1ub3QtaW4t
ZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRlci1sb2NrL2xvY2tlZC1lbGVtZW50
LWlmcmFtZS1yZW1vdmVkLWZyb20tZG9tLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvcG9pbnRl
ci1sb2NrL21vdXNlLWV2ZW50LWFwaS5odG1sCisKKyAgICAgICAgRXhwb3J0IHBvaW50ZXIgbG9j
ayBzeW1ib2xzIGFuZCBjYW5jZWwgcG9pbnRlciBsb2NrIG9uICJlc2NhcGUiLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIGRvbS9FbGVtZW50
Lmg6IEV4cG9ydCBzeW1ib2xzLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6a2V5RXZlbnQpOiBDYW5jZWwgcG9pbnRlciBs
b2NrIG9uICJlc2NhcGUiLgorICAgICAgICAqIHBhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNw
cDogQWRkIG1pc3NpbmcgaW5jbHVkZS4KKyAgICAgICAgKiBwYWdlL1BvaW50ZXJMb2NrQ29udHJv
bGxlci5oOiBFeHBvcnQgc3ltYm9scy4KKwogMjAxNi0xMC0yMSAgRGF2ZSBIeWF0dCAgPGh5YXR0
QGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFBhcnNlcl0gU3VwcG9ydCBob3Jpem9udGFsLWJ0
IHdyaXRpbmcgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGY2MGI2MzBhMTk5YThiM2UwMTgyZjkz
ZjA3ZjJjMzM5OGE2ZmM2MjQuLjcwMmQ2MWNiNTg3MDYyM2MyYWUyMjAxODViMDYzYWI4OGNmY2Iy
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0wOS0yOSAgSmVyZW15
IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGJhc2ljIHBv
aW50ZXIgbG9jayBiZWhhdmlvciBmb3IgV2ViS2l0IGFuZCBXZWJLaXQyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNzQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBiYXNpYyBwb2ludGVyIGxvY2sg
ZnVuY3Rpb25hbGl0eS4gVXNlciBwZXJtaXNzaW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnJlcXVlc3RQb2ludGVyTG9jayk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RQb2ludGVyVW5sb2NrKToKKwogMjAxNi0xMC0xOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW2lPU10gRGlzYWJsZSB2YXJpYXRp
b24gZm9udHMgb24gbWFjT1MgRWwgQ2FwaXRhbiBhbmQgaU9TIDkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlYWRi
MGZjYjMwZTI0YjExYzk4ZDA2MDRiYmZkOWE5NWZmMjBkOGY5Li44MDhkYTNlNTFkMzI4MzEwMmE2
YjYyZDE0MDM1ZDkyN2M2MjRlMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTYt
MDktMjkgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxl
bWVudCBiYXNpYyBwb2ludGVyIGxvY2sgYmVoYXZpb3IgZm9yIFdlYktpdCBhbmQgV2ViS2l0Mi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjc0NQor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBFbmFibGUgYmFz
aWMgcG9pbnRlciBsb2NrIGZ1bmN0aW9uYWxpdHkgYnkgcGx1bWJpbmcgcmVxdWVzdHMgdGhyb3Vn
aCBXZWJQYWdlIElQQy4KKyAgICAgICAgUGFzcyB0aHJvdWdoIG1vdXNlIG1vdmVtZW50IGRlbHRh
cy4KKyAgICAgICAgVW5sb2NrIHBvaW50ZXIgd2hlbiB2aWV3IGlzIG5vIGxvbmdlciB2aXNpYmxl
LgorCisgICAgICAgICogU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZlbnQ6OldlYktpdDJQbGF0Zm9ybU1vdXNlRXZl
bnQpOiBQYXNzIGFsb25nIG1vdXNlIG1vdmVtZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpc3BhdGNoVmll
d1N0YXRlQ2hhbmdlKTogVW5sb2NrIHBvaW50ZXIgd2hlbiBwYWdlIGlzIG5vdCB2aXNpYmxlLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RQb2ludGVyTG9jayk6IEhpZGUg
YW5kIGRpc2Fzc29jaWF0ZSBwb2ludGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnJlcXVlc3RQb2ludGVyVW5sb2NrKTogU2hvdyBhbmQgYXNzb2NpYXRlIHBvaW50ZXIuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46IEFkZCBtZXRob2RzLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRlckxvY2spOiBQYXNzIGFsb25nIHRvIHdlYiBwYWdl
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2Nr
KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk6IEZvcndhcmQgdG8g
UG9pbnRlckxvY2tDb250cm9sbGVyLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWROb3RB
Y3F1aXJlUG9pbnRlckxvY2spOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlk
TG9zZVBvaW50ZXJMb2NrKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjogQWRkIG1ldGhvZHMuCisKIDIwMTYtMTAtMjEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IElucHV0RXZlbnQuZ2V0VGFyZ2V0UmFu
Z2VzKCkgZm9yIHRoZSBpbnB1dCBldmVudHMgc3BlYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUyNmYxYjI3YmJlMTUwMDJhMjRj
YjIzYzNiYTFlMTc1N2NjNzljZjkuLmQ4Y2NmY2IwODEyMDc3YmRlZTM0NzllMWExMDdhNjcyNDdh
Y2M5NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE1MTUsNiArMTUxNSw3IEBACiAJCTNGNDJCMzFFMTg4MTE5MUIwMDI3OEFB
QyAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRjQyQjMxQzE4ODExOTFCMDAyNzhBQUMg
LyogV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tICovOyB9OwogCQkzRkJDNEFG
MzE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJDNEFGMTE4
OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gKi87
IH07CiAJCTNGQkM0QUY0MTg5ODgxNTYwMDQ2RUUzOCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJM0ZGODEzQTcxREJBODY0MDAwOUJGMDAxIC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNGQzQzNEYxOTI0
MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2NrQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTNGRkZGOUE4MTU5RDlBNTUwMDIwQkJE
NSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gM0ZGRkY5QTYxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENT
U1ZpZXdwb3J0UnVsZS5jcHAgKi87IH07CiAJCTNGRkZGOUE5MTU5RDlBNTUwMDIwQkJENSAvKiBX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDNGRkZGOUE3MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9y
dFJ1bGUuaCAqLzsgfTsKIAkJM0ZGRkY5QUQxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5
bGVSZXNvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzRkZGRjlBQjE1OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNw
cCAqLzsgfTsKQEAgLTI2NDkwLDYgKzI2NDkxLDcgQEAKIAkJCQlCQ0JCOEFCQTEzRjFBRkIwMDA3
MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0JCOEFCQjEz
RjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkIxRjcxNzBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkzRkY4MTNBNzFEQkE4NjQwMDA5QkYwMDEgLyogUG9pbnRlckxvY2tDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ5MjEyNDhGMEIzMDBEM0E5QzkgLyog
UG9pbnRMaWdodFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcwNTk5NzgxMDdEOTc1MjAw
QTUwQTdDIC8qIFBvbGljeUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzA1OTk3QTEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDJhZDIzZWVkMDA5NDk4ZmVkMGFiNjJjZWM1ZTYzY2Y4YTQ4ZDQ5ZmEu
LmM3MzIyOThkOTRlMmM1M2FlMzcyMWIzNTQwYTc5YmJlMDA1MDMzN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xMTIzLDggKzExMjMsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCi0gICAgdm9pZCBleGl0UG9pbnRlckxvY2soKTsKLSAgICBFbGVtZW50
KiBwb2ludGVyTG9ja0VsZW1lbnQoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGV4
aXRQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIEVsZW1lbnQqIHBvaW50ZXJMb2Nr
RWxlbWVudCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICAvLyBVc2VkIHRvIGFsbG93IGVsZW1lbnQg
dGhhdCBsb2FkcyBkYXRhIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIEZyYW1lTG9hZGVyIHRvIGRl
bGF5IHRoZSAnbG9hZCcgZXZlbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAwYjBmMWY3YjAyY2Ri
YzdmM2Y3YmUwZmJiODg4OTczMTg5ZjFiMDBlLi5jNmU1ODk5NjRiMmFmNTg3NWM2M2NhYWVjNzY0
MDI1ZTI5ZTlhMzlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCi0gICAgdm9pZCByZXF1ZXN0
UG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcXVlc3RQb2ludGVyTG9j
aygpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ESUVfVUkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAppbmRleCBmNDgzNGJiYWUyOTExYzk5NDkwNjgxNjM2YWQxMDNhOGMyYzZkNDFiLi44
NTkwZDk0ZTIzNWI5NDJiNzQ1ZmRjMjkwMDQ0MTU2OGI3ZDJiN2NiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgKQEAgLTQwNSw3ICs0MDUsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSB7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgogCiAgICAgdmlydHVhbCBGbG9hdFNpemUgbWluaW11bVdpbmRvd1NpemUoKSBjb25zdCB7
IHJldHVybiBGbG9hdFNpemUoMTAwLCAxMDApOyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDcxYzE5NGRiZGM3YjY0ODU4MTYzYzEzMWRlMjJhNDJhNjcxMjhmNzYuLjRk
Mzk5NTk4MTQ2MjU1OTNmMzRiZDU4Y2U3ZTFmMDIzYmFiYTU1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRl
ICJQbHVnaW5Eb2N1bWVudC5oIgorI2luY2x1ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlJlbmRlckZyYW1lU2V0LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJMaXN0Qm94LmgiCkBAIC0zMDYyLDYgKzMwNjMsMTMgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtl
eUV2ZW50KQogCiAgICAgTE9HKEVkaXRpbmcsICJFdmVudEhhbmRsZXIgJXAga2V5RXZlbnQgKHRl
eHQgJXMga2V5SWRlbnRpZmllciAlcykiLCB0aGlzLCBpbml0aWFsS2V5RXZlbnQudGV4dCgpLnV0
ZjgoKS5kYXRhKCksIGluaXRpYWxLZXlFdmVudC5rZXlJZGVudGlmaWVyKCkudXRmOCgpLmRhdGEo
KSk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGlmIChpbml0aWFsS2V5RXZlbnQu
dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OktleURvd24gJiYgaW5pdGlhbEtleUV2ZW50LndpbmRv
d3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX0VTQ0FQRSAmJiBtX2ZyYW1lLnBhZ2UoKS0+cG9pbnRl
ckxvY2tDb250cm9sbGVyKCkuZWxlbWVudCgpKSB7CisgICAgICAgIG1fZnJhbWUucGFnZSgpLT5w
b2ludGVyTG9ja0NvbnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiAhaXNL
ZXlFdmVudEFsbG93ZWRJbkZ1bGxTY3JlZW4oaW5pdGlhbEtleUV2ZW50KSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDg5N2E0MTVkOTUxZWM3N2M4YzQzZTM5NTJmMTNjYWU1ODJlZWE4YjAuLjk4NjU1
ZTY5OThjN2ZhYjA3NDBmOGY5ZTAxNjc2OWQyYTc0ZDY2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnQuaCIKKyNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgpAQCAt
NjMsMTMgKzY0LDE3IEBAIHZvaWQgUG9pbnRlckxvY2tDb250cm9sbGVyOjpyZXF1ZXN0UG9pbnRl
ckxvY2soRWxlbWVudCogdGFyZ2V0KQogICAgICAgICAgICAgZW5xdWV1ZUV2ZW50KGV2ZW50TmFt
ZXMoKS5wb2ludGVybG9ja2Vycm9yRXZlbnQsIHRhcmdldCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KKyAgICAgICAgbV9lbGVtZW50ID0gdGFyZ2V0OwogICAgICAgICBlbnF1ZXVl
RXZlbnQoZXZlbnROYW1lcygpLnBvaW50ZXJsb2NrY2hhbmdlRXZlbnQsIHRhcmdldCk7Ci0gICAg
ICAgIG1fZWxlbWVudCA9IHRhcmdldDsKLSAgICB9IGVsc2UgaWYgKG1fcGFnZS5jaHJvbWUoKS5j
bGllbnQoKS5yZXF1ZXN0UG9pbnRlckxvY2soKSkgeworICAgIH0gZWxzZSB7CiAgICAgICAgIG1f
bG9ja1BlbmRpbmcgPSB0cnVlOwogICAgICAgICBtX2VsZW1lbnQgPSB0YXJnZXQ7Ci0gICAgfSBl
bHNlCi0gICAgICAgIGVucXVldWVFdmVudChldmVudE5hbWVzKCkucG9pbnRlcmxvY2tlcnJvckV2
ZW50LCB0YXJnZXQpOworICAgICAgICBpZiAoIW1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5yZXF1
ZXN0UG9pbnRlckxvY2soKSkgeworICAgICAgICAgICAgbV9lbGVtZW50ID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgIG1fbG9ja1BlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIGVucXVldWVFdmVu
dChldmVudE5hbWVzKCkucG9pbnRlcmxvY2tlcnJvckV2ZW50LCB0YXJnZXQpOworICAgICAgICB9
CisgICAgfQogfQogCiB2b2lkIFBvaW50ZXJMb2NrQ29udHJvbGxlcjo6cmVxdWVzdFBvaW50ZXJV
bmxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Qb2ludGVyTG9ja0NvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUG9pbnRlckxvY2tDb250cm9sbGVyLmgKaW5k
ZXggNzYyODUxYjBmYmNmNjExNjFjZGFhYTEzMDZjMDRlYzVkNDdlNWRkNi4uNWQwZmUxY2RlN2Uz
OTllMWI0NTRkNzI4YzJhMzYyMjE1MzRhMWY3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Qb2ludGVyTG9ja0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bv
aW50ZXJMb2NrQ29udHJvbGxlci5oCkBAIC01MCw5ICs1MCw5IEBAIHB1YmxpYzoKICAgICBib29s
IGxvY2tQZW5kaW5nKCkgY29uc3Q7CiAgICAgRWxlbWVudCogZWxlbWVudCgpIGNvbnN0OwogCi0g
ICAgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKLSAgICB2b2lkIGRpZE5vdEFjcXVpcmVQ
b2ludGVyTG9jaygpOwotICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7CiAgICAgdm9pZCBkaXNwYXRjaExvY2tlZE1vdXNlRXZl
bnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5ZjBmODgxOTNlM2Q4OTNhNzQxZmQxYWVjZDNlZjNh
ODg2NDQ5ODZmLi5jMTAxOTI0ZWE1ZjFkNjYyOTNiMTk5YTMwMDEyNGRiMmMyM2Y1N2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMTM1LDYgKzEzNSwxMSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29s
b3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJikgb3ZlcnJpZGU7CiAjZW5kaWYKKyAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQor
ICAgIGJvb2wgcmVxdWVzdFBvaW50ZXJMb2NrKCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0
UG9pbnRlclVubG9jaygpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpLZXlib2Fy
ZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggOGMzMGNjZGJi
ODQxMzQ4OGMwY2M0ZGJhMmNjYzgxOTZlZWJiMDljZC4uYmY5YWY1NTMyOWQwODEzMDZkYmMxOTlh
M2NhM2NiOWJhMjIxMmYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNzcsNiArNzcsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvaW50ZXJMb2Nr
Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2lkZ2V0Lmg+CkBAIC03MDksNiArNzEwLDM0IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29z
ZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsCiB9
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCitib29sIFdlYkNocm9tZUNsaWVu
dDo6cmVxdWVzdFBvaW50ZXJMb2NrKCkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKCFb
bV93ZWJWaWV3IHBhZ2VdKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDR0Rpc3BsYXlI
aWRlQ3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5kTW91
c2VDdXJzb3JQb3NpdGlvbihmYWxzZSk7CisgICAgW21fd2ViVmlldyBwYWdlXS0+cG9pbnRlckxv
Y2tDb250cm9sbGVyKCkuZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCk7CisgICAgCisgICAgcmV0dXJu
IHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQoreworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBDR0Rpc3BsYXlTaG93Q3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29j
aWF0ZU1vdXNlQW5kTW91c2VDdXJzb3JQb3NpdGlvbih0cnVlKTsKKyAgICBpZiAoW21fd2ViVmll
dyBwYWdlXSkKKyAgICAgICAgW21fd2ViVmlldyBwYWdlXS0+cG9pbnRlckxvY2tDb250cm9sbGVy
KCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7CisjZW5kaWYKK30KKyNlbmRpZgorCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4g
Y2hvb3NlcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDA2YmYzN2FiYTBjNjU2
MzE1ODAzNDQ1YWU5NjkwYWNmNGIzOWE5ZWUuLjI4OWRhYzZkMDFjYjkzYWEyZDZiOWQ1NTY2NWQ4
NGM3MTM1NDU0NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENv
bnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudENvbnZlcnNp
b24uY3BwCkBAIC0xMDAsNiArMTAwLDkgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAg
bV9wb3NpdGlvbiA9IHdlYkV2ZW50LnBvc2l0aW9uKCk7CisjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKKyAgICAgICAgbV9tb3ZlbWVudERlbHRhID0gV2ViQ29yZTo6SW50UG9pbnQod2ViRXZlbnQu
ZGVsdGFYKCksIHdlYkV2ZW50LmRlbHRhWSgpKTsKKyNlbmRpZgogICAgICAgICBtX2dsb2JhbFBv
c2l0aW9uID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRpb24oKTsKICAgICAgICAgbV9jbGlja0NvdW50
ID0gd2ViRXZlbnQuY2xpY2tDb3VudCgpOwogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjljMzc0Y2ZmYzEyZDc1NDExMWYx
ZTFjYTQxMjg2N2FiOGY3MzJhNi4uMzZmNjAxNDk5M2IwMWI3MzcyMmZlMzgxNmFmNmYyYmVlZmQ1
NTU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE1
NDksNiArMTU0OSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlzcGF0Y2hWaWV3U3RhdGVDaGFu
Z2UoKQogICAgIGlmICgoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3
VmlzaWJsZSgpKQogICAgICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdG9w
KCk7CiAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIGlmICgoY2hhbmdlZCAmIFZpZXdT
dGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJsZSgpKQorICAgICAgICByZXF1ZXN0UG9p
bnRlclVubG9jaygpOworI2VuZGlmCisKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJ
bldpbmRvdykgewogICAgICAgICBpZiAoaXNJbldpbmRvdygpKQogICAgICAgICAgICAgdmlld0Rp
ZEVudGVyV2luZG93KCk7CkBAIC02NjIwLDUgKzY2MjUsMzcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldFVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oV2ViQ29yZTo6VXNlckludGVyZmFjZUxh
eW91dEQKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0VXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbihzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbikpLCBtX3BhZ2VJRCk7CiB9CisgICAgCisjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UG9pbnRlckxvY2soKQoreworICAg
IGlmICghaXNWaWV3VmlzaWJsZSgpKSB7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6RGlkTm90QWNxdWlyZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGRpZEFsbG93UG9pbnRlckxvY2soKTsKK30KKyAgICAK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRBbGxvd1BvaW50ZXJMb2NrKCkKK3sKKyAgICBDR0Rpc3Bs
YXlIaWRlQ3Vyc29yKENHTWFpbkRpc3BsYXlJRCgpKTsKKyAgICBDR0Fzc29jaWF0ZU1vdXNlQW5k
TW91c2VDdXJzb3JQb3NpdGlvbihmYWxzZSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpEaWRBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9wYWdlSUQpOworfQorICAgIAor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZERlbnlQb2ludGVyTG9jaygpCit7CisgICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKSwgbV9w
YWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFBvaW50ZXJVbmxvY2soKQor
eworICAgIENHRGlzcGxheVNob3dDdXJzb3IoQ0dNYWluRGlzcGxheUlEKCkpOworICAgIENHQXNz
b2NpYXRlTW91c2VBbmRNb3VzZUN1cnNvclBvc2l0aW9uKHRydWUpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkTG9zZVBvaW50ZXJMb2NrKCksIG1fcGFnZUlEKTsK
K30KKyNlbmRpZgorCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDE3NmI5ZTA2NmY4MDIzNTVkYzY2MjkyOWU5MTI2YTVh
ODViOGE2NzIuLjA3YWU0MTliZGM4MWNmNjYwYTc2MzI0MGY3ZTllZjllYjJkMjAyMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk0Niw2ICs5NDYsMTEgQEAg
cHVibGljOgogICAgIHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlw
ZSk7CiAgICAgdm9pZCBzZXRWb2x1bWVPZk1lZGlhRWxlbWVudChkb3VibGUsIHVpbnQ2NF90KTsK
ICNlbmRpZgorICAgICAgICAKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorICAgIHZvaWQgZGlk
QWxsb3dQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkRGVueVBvaW50ZXJMb2NrKCk7CisjZW5k
aWYKIAogICAgIC8vIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQKICAgICBOYXRpdmVXZWJNb3Vz
ZUV2ZW50KiBjdXJyZW50bHlQcm9jZXNzZWRNb3VzZURvd25FdmVudCgpIG92ZXJyaWRlOwpAQCAt
MTE2OCw2ICsxMTczLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmYWlsZWRUb1Nob3dQb3B1cE1l
bnUoKSBvdmVycmlkZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICB2
b2lkIHJlcXVlc3RQb2ludGVyTG9jaygpOworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2so
KTsKKyNlbmRpZgorCiAgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCk7CiAgICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggY2VmNDJlNjFlZmY1ZTc2ZTE5MDY5ZjM2ZGJlN2U5M2VlZDI4MTg5OS4uMGUzYjZlNGViOGEy
MTA4MTNlOGM3MzVhMzJmNzAxMjM2NjE1MjJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NTgsNiArNDU4LDExIEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQ
aWNrZXJTdGF0ZShTdHJpbmcgbmFtZSwgdW5zaWduZWQgcGlja2VyU3RhdGUpCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCisgICAgUmVxdWVzdFBvaW50ZXJMb2NrKCkKKyAgICBS
ZXF1ZXN0UG9pbnRlclVubG9jaygpCisjZW5kaWYKKwogICAgIEltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogCiAgICAgVXNlRml4ZWRMYXlv
dXREaWRDaGFuZ2UoYm9vbCB1c2VGaXhlZExheW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBiZGFmOTBhZjNkZjk3MDYyNmQ4ODc5ODJhYjNiMDRhZDA4OGVjNDMwLi44Yzc4ZDRmZjBl
NTViM2JiN2I5ZTE1OGNkMTEzZTg1ZGU5MDIwNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CkBAIC00NTUsNiArNDU1LDE5IEBAIEtleWJvYXJkVUlNb2RlIFdlYkNocm9tZUNsaWVudDo6a2V5
Ym9hcmRVSU1vZGUoKQogICAgIHJldHVybiBtX3BhZ2UtPmtleWJvYXJkVUlNb2RlKCk7CiB9CiAK
KyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQ
b2ludGVyTG9jaygpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlcXVlc3RQb2ludGVyTG9jaygpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyVW5sb2NrKCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdFBvaW50ZXJVbmxvY2soKSk7Cit9CisjZW5k
aWYKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0JikKIHsKICAgICAvLyBEbyBub3RoaW5nIGhlcmUsIHRoZXJlJ3Mgbm8gY29uY2VwdCBvZiBp
bnZhbGlkYXRpbmcgdGhlIHdpbmRvdyBpbiB0aGUgd2ViIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCAzYWM5ZmQzMzRlYmUxN2EzOWIxMGRmMjgwYzIxNDBiYThmMjBiNjFjLi40N2Uw
ODY2YTYzMjU5MTI3NzdhNzE5NjQwYzU1Yzk2YjBkOGFhNzZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTE5MSw2ICsxOTEsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUpICYmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAg
dm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIG92ZXJyaWRlOwogI2VuZGlmCisgICAgCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKyAgICBib29sIHJlcXVlc3RQb2ludGVyTG9jaygpIG92ZXJyaWRl
OworICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKSBvdmVycmlkZTsKKyNlbmRpZgogCiAg
ICAgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0cjxXZWJD
b3JlOjpFbGVtZW50Pj4mKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNo
YW5nZXMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA4ODYzNGUwZTMwOGQ4Y2MyYzgzMDEyY2NiZGY1MGFjMTU0MzJjNDQ2
Li4yMTJmMTRhYTM2ODEwYmM3YzU0YmIzNjI5M2Y2NmQ4MGQ2MGQ1YWQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNTIsNiArMTUyLDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VUaHJvdHRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRG9jdW1l
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJMb2NrQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyTGF5ZXIuaD4KQEAgLTU2MTMsNCArNTYxNCwyMSBAQCB2
b2lkIFdlYlBhZ2U6OmdhbWVwYWRBY3Rpdml0eShjb25zdCBWZWN0b3I8R2FtZXBhZERhdGE+JiBn
YW1lcGFkRGF0YXMpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKK3ZvaWQg
V2ViUGFnZTo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKCkKK3sKKyAgICBjb3JlUGFnZSgpLT5wb2lu
dGVyTG9ja0NvbnRyb2xsZXIoKS5kaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpkaWROb3RBY3F1aXJlUG9pbnRlckxvY2soKQoreworICAgIGNvcmVQYWdlKCktPnBv
aW50ZXJMb2NrQ29udHJvbGxlcigpLmRpZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworfQorCit2
b2lkIFdlYlBhZ2U6OmRpZExvc2VQb2ludGVyTG9jaygpCit7CisgICAgY29yZVBhZ2UoKS0+cG9p
bnRlckxvY2tDb250cm9sbGVyKCkuZGlkTG9zZVBvaW50ZXJMb2NrKCk7Cit9CisjZW5kaWYKKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAyZDU2ZGNhZTBjMjJiYzJmMmFiYWY1Njk3NDk5MGZkYTNjZjI5OThj
Li5kY2Q1OWRlNmFiNjVkYWQyNTQxNGQ4NzNiZmU5NjNiNjU2MWY0Nzc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk2MSw2ICs5NjEsMTIgQEAg
cHVibGljOgogI2lmIEVOQUJMRShHQU1FUEFEKQogICAgIHZvaWQgZ2FtZXBhZEFjdGl2aXR5KGNv
bnN0IFZlY3RvcjxHYW1lcGFkRGF0YT4mKTsKICNlbmRpZgorICAgIAorI2lmIEVOQUJMRShQT0lO
VEVSX0xPQ0spCisgICAgdm9pZCBkaWRBY3F1aXJlUG9pbnRlckxvY2soKTsKKyAgICB2b2lkIGRp
ZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpOworICAgIHZvaWQgZGlkTG9zZVBvaW50ZXJMb2NrKCk7
CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA3MTIzOWU2ZjVhNjVi
ZjViMDNiZTFjZjQ3ZTlkYzY3MTExYWY3ZTIzLi43MjdlYjc5MGQxMDI5NDZlZDg2MmM4ZTY3Mjc2
OGZmYTZlN2RiNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDI4LDYgKzQyOCwxMiBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgc2hvdWxkUGxheSkKICNlbmRpZgogCisjaWYg
RU5BQkxFKFBPSU5URVJfTE9DSykKKyAgICBEaWRBY3F1aXJlUG9pbnRlckxvY2soKQorICAgIERp
ZE5vdEFjcXVpcmVQb2ludGVyTG9jaygpCisgICAgRGlkTG9zZVBvaW50ZXJMb2NrKCkKKyNlbmRp
ZgorCiAgICAgQ2xlYXJXaGVlbEV2ZW50VGVzdFRyaWdnZXIoKQogICAgIFNldFNob3VsZFNjYWxl
Vmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>