<?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>85846</bug_id>
          
          <creation_ts>2012-05-07 17:14:18 -0700</creation_ts>
          <short_desc>Remove more BUILDING_ON_LEOPARD usage in PLATFORM(MAC) code</short_desc>
          <delta_ts>2012-06-29 00:16:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90249</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>618133</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-07 17:14:18 -0700</bug_when>
    <thetext>Remove more BUILDING_LEOPARD usage in PLATFORM(MAC) code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618136</commentid>
    <comment_count>1</comment_count>
      <attachid>140629</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-07 17:16:46 -0700</bug_when>
    <thetext>Created attachment 140629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618139</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-07 17:17:30 -0700</bug_when>
    <thetext>I originally tried to remove all of it at once, but the patch would have been huge. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618150</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-05-07 17:28:31 -0700</bug_when>
    <thetext>It&apos;d be worth updating the bug title and ChangeLog entries to refer to the correct macro name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618155</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-07 17:32:05 -0700</bug_when>
    <thetext>Ah, sure.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618157</commentid>
    <comment_count>5</comment_count>
      <attachid>140634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-07 17:34:09 -0700</bug_when>
    <thetext>Created attachment 140634
Fix my typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627928</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-05-18 12:29:50 -0700</bug_when>
    <thetext>The patch looks reasonable. Are people from Mac port okay with removing this flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628049</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-18 14:06:35 -0700</bug_when>
    <thetext>To be clear, I&apos;m not removing any flags.  I&apos;m just removing support for building PLATFORM(MAC) on Leopard.  It&apos;s not been possible to build PLATFORM(MAC) on Leoaprd for a long time, this is just dead code.

The only bit to review here is to make sure that I did the removal correctly and didn&apos;t affect any other OS version. :)  I don&apos;t believe I did, but that&apos;s the only part to review.  The rest is just a rubber stamp.

Chromium has plans to drop Leopard support very soon.  Then removing Leopard support from WebKit will require even less thought. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628738</commentid>
    <comment_count>8</comment_count>
      <attachid>140634</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-20 20:46:21 -0700</bug_when>
    <thetext>Comment on attachment 140634
Fix my typo

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

&gt; Source/WebCore/WebCore.exp.in:2119
&gt;  __ZN7WebCore6Editor13lowercaseWordEv
&gt;  __ZN7WebCore6Editor13uppercaseWordEv
&gt;  __ZN7WebCore6Editor14capitalizeWordEv

Should these get alphabetized with the rest of the file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628739</commentid>
    <comment_count>9</comment_count>
      <attachid>140634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-20 20:48:55 -0700</bug_when>
    <thetext>Comment on attachment 140634
Fix my typo

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

&gt;&gt; Source/WebCore/WebCore.exp.in:2119
&gt;&gt;  __ZN7WebCore6Editor14capitalizeWordEv
&gt; 
&gt; Should these get alphabetized with the rest of the file?

Presumably, but seems not worth it for this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628741</commentid>
    <comment_count>10</comment_count>
      <attachid>140634</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-20 20:51:03 -0700</bug_when>
    <thetext>Comment on attachment 140634
Fix my typo

Rejecting attachment 140634 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ource/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm
patching file Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm
patching file Source/WebCore/platform/graphics/ca/mac/TileCache.mm
Hunk #2 succeeded at 154 (offset 1 line).
Hunk #3 succeeded at 179 (offset 1 line).
Hunk #4 succeeded at 395 (offset 7 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12731489</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660132</commentid>
    <comment_count>11</comment_count>
      <attachid>140634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-28 22:03:20 -0700</bug_when>
    <thetext>Comment on attachment 140634
Fix my typo

I doubt this still applies... but just in case.  Leopard is dead now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660134</commentid>
    <comment_count>12</comment_count>
      <attachid>140634</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-28 22:04:43 -0700</bug_when>
    <thetext>Comment on attachment 140634
Fix my typo

Rejecting attachment 140634 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ource/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm
patching file Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm
patching file Source/WebCore/platform/graphics/ca/mac/TileCache.mm
Hunk #2 succeeded at 154 (offset 1 line).
Hunk #3 succeeded at 179 (offset 1 line).
Hunk #4 succeeded at 395 (offset 7 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/13120162</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660150</commentid>
    <comment_count>13</comment_count>
      <attachid>150086</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-28 23:01:43 -0700</bug_when>
    <thetext>Created attachment 150086
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660209</commentid>
    <comment_count>14</comment_count>
      <attachid>150086</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 00:16:01 -0700</bug_when>
    <thetext>Comment on attachment 150086
Patch for landing

Clearing flags on attachment: 150086

Committed r121524: &lt;http://trac.webkit.org/changeset/121524&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660210</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-29 00:16:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140629</attachid>
            <date>2012-05-07 17:16:46 -0700</date>
            <delta_ts>2012-05-07 17:34:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85846-20120507171644.patch</filename>
            <type>text/plain</type>
            <size>36611</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI0MjRlOGQ4ZTgxM2Q4YzJhMDg3YzAy
ZTlkN2RjOTg4ZGUyODc5MTkuLjljMDliZmU2YWI2OWQyNmMwY2MyMzQzZWJiZDVhNzEwOTdjZjI3
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX0xFT1BBUkQgdXNhZ2Ug
aW4gUExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFBMQVRGT1JNKE1BQykgaGFzIG5vdCBzdXBwb3J0ZWQgTGVvcGFyZCBmb3Ig
c2V2ZXJhbCBtb250aHMgbm93LgorICAgICAgICBUaGlzIGNoYW5nZSByZW1vdmVzIGFib3V0IDEv
MyBvZiB0aGUgcmVtYWluaW5nIEJVSUxESU5HX0xFT1BBUkQKKyAgICAgICAgdXNlcyBpbiB0aGUg
UExBVEZPUk0oTUFDKSBjb2RlcGF0aHMuICBQTEFURk9STShDSFJPTUlVTSkgc3RpbGwKKyAgICAg
ICAgc3VwcG9ydHMgQlVJTERJTkdfTEVPUEFSRCBmb3Igbm93LgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMTItMDUtMDQgIEplZmYgUm9nZXJzICA8anJvZ2Vyc0ByaW0uY29tPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQgbnVtYmVyT2ZQcm9jZXNzb3JDb3Jlcygp
IGZvciBRTlgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOGZmMDE3YjUyMDRjYmRlMTU5MzM0NzMxNGQxNzg0OGFj
ZjBmYWU0Li4yNjNkZDEwODQzZDJkNTY5YTI5MjhmZWMyNTMyMWEwM2U3MjIzYTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTItMDUtMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX0xFT1BBUkQgdXNhZ2UgaW4g
UExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBMQVRGT1JNKE1BQykgaGFzIG5vdCBzdXBwb3J0ZWQgTGVvcGFyZCBmb3Igc2V2
ZXJhbCBtb250aHMgbm93LgorICAgICAgICBUaGlzIGNoYW5nZSByZW1vdmVzIGFib3V0IDEvMyBv
ZiB0aGUgcmVtYWluaW5nIEJVSUxESU5HX0xFT1BBUkQKKyAgICAgICAgdXNlcyBpbiB0aGUgUExB
VEZPUk0oTUFDKSBjb2RlcGF0aHMuICBQTEFURk9STShDSFJPTUlVTSkgc3RpbGwKKyAgICAgICAg
c3VwcG9ydHMgQlVJTERJTkdfTEVPUEFSRCBmb3Igbm93LgorCisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp1cGRhdGVSYW5nZXNBZnRlckNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6bm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnRleHRJbnNlcnRlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGV4dFJl
bW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHROb2Rlc01lcmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGV4dE5vZGVTcGxpdCk6CisgICAgICAgICogZWRp
dGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXNwb25kVG9DaGFu
Z2VkU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6OnR5cGluZ0FkZGVkVG9PcGVuQ29t
bWFuZCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUVkaXRvckNsaWVudCk6CisgICAgICAgICogcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFNwZWxsaW5nQW5kR3JhbW1h
clN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKToKKyAgICAgICAgKiBwYWdlL0VkaXRv
ckNsaWVudC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z1NlYXJjaFdlYik6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL1N1ZGRlblRlcm1pbmF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
Ojp1cGRhdGVDb250ZW50c0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
QTo6Y29uc3RyYWluZWRTaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0
Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcik6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW06CisgICAgICAg
IChmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZSk6CisgICAgICAgIChQbGF0Zm9ybUNBQW5pbWF0aW9u
Ojp2YWx1ZUZ1bmN0aW9uKToKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVl
RnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW06CisgICAgICAgICh0b0NBRmlsdGVyVHlwZSk6CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXI6OmFuY2hvclBvaW50KToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6c2V0QW5j
aG9yUG9pbnQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpjb250ZW50c1RyYW5zZm9ybSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNldENvbnRlbnRzVHJhbnNmb3JtKToKKyAgICAg
ICAgKFBsYXRmb3JtQ0FMYXllcjo6aXNHZW9tZXRyeUZsaXBwZWQpOgorICAgICAgICAoUGxhdGZv
cm1DQUxheWVyOjpzZXRHZW9tZXRyeUZsaXBwZWQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
OjphY2NlbGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpzZXRBY2Nl
bGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpzZXRNaW5pZmljYXRp
b25GaWx0ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpzZXRNYWduaWZpY2F0aW9uRmls
dGVyKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6Y29udGVudHNTY2FsZSk6CisgICAgICAg
IChQbGF0Zm9ybUNBTGF5ZXI6OnNldENvbnRlbnRzU2NhbGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpUaWxlQ2Fj
aGU6OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6c2V0QWNjZWxlcmF0
ZXNEcmF3aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNoZTo6Y3JlYXRlVGlsZUxheWVy
KToKKwogMjAxMi0wNS0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyBzaG91bGQgYmUgcGFydCBvZiBGRUFUVVJFX0RFRklO
RVMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93
dGYvUGxhdGZvcm0uaAppbmRleCA1OTk2YmZmMDZlNGJjNWQ2YjcwM2Q3ZTU0ZGUwNzNjMzY3MDhk
ZmE0Li4xOGFmNTllMDBmZDRhNDUzMjJjNWRhOWMxY2VhYTk0ZGE3YjIyY2M0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKQEAgLTUyMywxMCArNTIzLDEwIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYg
IVBMQVRGT1JNKElPUykKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiBDUFUo
WDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAjZGVmaW5lIFdURl9VU0VfUExVR0lOX0hPU1RfUFJP
Q0VTUyAxCiAjZW5kaWYKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQogI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9FVkVOVFMgMQogI2RlZmluZSBF
TkFCTEVfUlVCQkVSX0JBTkRJTkcgMQogI2RlZmluZSBXVEZfVVNFX1NDUk9MTEJBUl9QQUlOVEVS
IDEKQEAgLTU0OSw3ICs1NDksNyBAQAogI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPKQogI2RlZmlu
ZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MSU9OKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKICNkZWZpbmUgSEFWRV9MQVlFUl9IT1NU
SU5HX0lOX1dJTkRPV19TRVJWRVIgMQogI2VuZGlmCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKSAqLwpAQCAtOTcyLDEzICs5NzIsOCBAQAogCiAjaWYgUExBVEZPUk0o
TUFDKQogLyogQ29tcGxleCB0ZXh0IGZyYW1ld29yayAqLwotI2lmbmRlZiBCVUlMRElOR19PTl9M
RU9QQVJECiAjZGVmaW5lIFdURl9VU0VfQVRTVUkgMAogI2RlZmluZSBXVEZfVVNFX0NPUkVfVEVY
VCAxCi0jZWxzZQotI2RlZmluZSBXVEZfVVNFX0FUU1VJIDEKLSNkZWZpbmUgV1RGX1VTRV9DT1JF
X1RFWFQgMAotI2VuZGlmCiAjZW5kaWYKIAogLyogQWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgKi8K
QEAgLTk5NSw3ICs5OTAsNyBAQAogI2RlZmluZSBXVEZfVVNFX1VJX1NJREVfQ09NUE9TSVRJTkcg
MQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSkgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
SU9TKQogI2RlZmluZSBXVEZfVVNFX1BST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSyAxCiAj
ZW5kaWYKIApAQCAtMTAwMyw3ICs5OTgsNyBAQAogI2RlZmluZSBFTkFCTEVfUExVR0lOX1BBQ0tB
R0VfU0lNUExFX0hBU0ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TElPTikKICNkZWZpbmUgRU5BQkxFX1RIUkVBREVEX1NDUk9MTElORyAxCiAjZW5kaWYKIApAQCAt
MTA2MywxMSArMTA1OCwxMSBAQAogI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogI2RlZmluZSBXVEZfVVNFX0FW
Rk9VTkRBVElPTiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9O
KQogI2RlZmluZSBXVEZfVVNFX0NPUkVNRURJQSAxCiAjZW5kaWYKIApAQCAtMTA3OSw3ICsxMDc0
LDcgQEAKICNkZWZpbmUgV1RGX1VTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01P
TklUT1IgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICNkZWZp
bmUgSEFWRV9JTlZFUlRFRF9XSEVFTF9FVkVOVFMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggYzk2ODBmYzRhNjJmM2MxODI0ODg1NmQ4NjA3M2FkODJhNzYwOGNlOC4uYTE4Yzhi
NWMzNzViNDE4Mjg0NjhkNTE0Nzk3ZjY3MWIwNjIwNjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
QEAgLTE1NTAsMTIgKzE1NTAsMTIgQEAgX3N0cmluZ0VuY29kaW5nRm9yUmVzb3VyY2UKIF9zdHJp
bmdJc0Nhc2VJbnNlbnNpdGl2ZUVxdWFsVG9TdHJpbmcKIF9zdWdnZXN0ZWRGaWxlbmFtZVdpdGhN
SU1FVHlwZQogX3drQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFuaW1hdGlvbgotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBfd2tDQUxheWVy
RW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrCiAjZW5kaWYKIF93a0NHQ29udGV4dEdl
dFNob3VsZFNtb290aEZvbnRzCiBfd2tDR0NvbnRleHRSZXNldENsaXAKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogX3drQ0dQYXRoQWRkUm91
bmRlZFJlY3QKICNlbmRpZgogX3drQ0dQYXR0ZXJuQ3JlYXRlV2l0aEltYWdlQW5kVHJhbnNmb3Jt
CkBAIC0xNjUxLDcgKzE2NTEsNyBAQCBfX1pON1dlYkNvcmUyMExvZ05vdFlldEltcGxlbWVudGVk
RQogX19aTks3V2ViQ29yZTdFbGVtZW50MjZmYXN0QXR0cmlidXRlTG9va3VwQWxsb3dlZEVSS05T
XzEzUXVhbGlmaWVkTmFtZUUKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIF93a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJE
aXNwbGF5TmFtZQogX3drQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0aFVuaUNoYXJQcm92aWRlckFuZE9w
dGlvbnMKIF93a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQpAQCAtMjExNCwxMSArMjExNCw5IEBA
IF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UyNnN0b3JlVXBkYXRlZFF1b3Rh
Rm9yT3JpZ2luRVBLTlNfMTRTZWN1cml0CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlNWVtcHR5RXYKIF9fWk5LN1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMTFt
YXhpbXVtU2l6ZUV2CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogX19aTjdXZWJDb3Jl
NkVkaXRvcjEzbG93ZXJjYXNlV29yZEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMTN1cHBlcmNhc2VX
b3JkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IxNGNhcGl0YWxpemVXb3JkRXYKLSNlbmRpZgogCiAj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxOGhh
bmRsZUdlc3R1cmVFdmVudEVSS05TXzIwUGxhdGZvcm1HZXN0dXJlRXZlbnRFCkBAIC0yMTU0LDcg
KzIxNTIsNyBAQCBfX1pON1dlYkNvcmUxMlNjaGVkdWxlUGFpckMxRVA5TlNSdW5Mb29wUEsxMF9f
Q0ZTdHJpbmcKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMnJlbGVhc2VQcm94eUV2CiAj
ZW5kaWYKIAotI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgKGRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpKQorI2lm
IFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjRzZXREZWZhdWx0U3RvcmFnZVNl
c3Npb25FUDIxX19DRlVSTFN0b3JhZ2VTZXNzaW9uCiAjZWxzZQogX19aTjdXZWJDb3JlMTRSZXNv
dXJjZUhhbmRsZTI0c2V0RGVmYXVsdFN0b3JhZ2VTZXNzaW9uRVBLMjFfX0NGVVJMU3RvcmFnZVNl
c3Npb24KQEAgLTIxNzAsNyArMjE2OCw3IEBAIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUks3X05T
U2l6ZQogX19aTks3V2ViQ29yZTdJbnRTaXplY3Y3X05TU2l6ZUV2CiAjZW5kaWYKIAotI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBfd2tDcmVh
dGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDM1ODAzZmI0YTQxNWQ1NDY2MDdjMTA3Mzc2ZWUxOWIyMjY2NTFiOGIuLmZk
ZGY0MDQ2MjM1MzYyYTg5ZjQzMTJiMWE0NjVmYThiY2YwZmIzNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMzMyLDE5ICszMzIsNiBAQCBzdGF0aWMgYm9vbCBhY2NlcHRzRWRpdGluZ0Zv
Y3VzKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+c2hvdWxkQmVnaW5F
ZGl0aW5nKHJhbmdlT2ZDb250ZW50cyhyb290KS5nZXQoKSk7CiB9CiAKLXN0YXRpYyBib29sIGRp
c2FibGVSYW5nZU11dGF0aW9uKFBhZ2UqIHBhZ2UpCi17Ci0gICAgLy8gVGhpcyBjaGVjayBpcyBt
YWRlIG9uIHN1cGVyLWhvdCBjb2RlIHBhdGhzLCBzbyB3ZSBvbmx5IHdhbnQgdGhpcyBvbiBMZW9w
YXJkLgotI2lmZGVmIFRBUkdFVElOR19MRU9QQVJECi0gICAgLy8gRGlzYWJsZSBSYW5nZSBtdXRh
dGlvbiBvbiBkb2N1bWVudCBtb2RpZmljYXRpb25zIGluIExlb3BhcmQgTWFpbC4KLSAgICAvLyBT
ZWUgPHJkYXI6Ly9wcm9ibGVtLzU4NjUxNzE+Ci0gICAgcmV0dXJuIHBhZ2UgJiYgcGFnZS0+c2V0
dGluZ3MoKS0+bmVlZHNMZW9wYXJkTWFpbFF1aXJrcygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0ocGFnZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIHN0YXRpYyBib29sIGNh
bkFjY2Vzc0FuY2VzdG9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBhY3RpdmVTZWN1cml0eU9yaWdp
biwgRnJhbWUqIHRhcmdldEZyYW1lKQogewogICAgIC8vIHRhcmdldEZyYW1lIGNhbiBiZSAwIHdo
ZW4gd2UncmUgdHJ5aW5nIHRvIG5hdmlnYXRlIGEgdG9wLWxldmVsIGZyYW1lCkBAIC0zNzgxLDcg
KzM3NjgsNyBAQCB2b2lkIERvY3VtZW50Ojptb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1lbnQo
Tm9kZSogbm9kZSwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KQogCiB2b2lkIERvY3VtZW50Ojp1cGRh
dGVSYW5nZXNBZnRlckNoaWxkcmVuQ2hhbmdlZChDb250YWluZXJOb2RlKiBjb250YWluZXIpCiB7
Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0Vt
cHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNoU2V0
PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBm
b3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+bm9kZUNoaWxkcmVuQ2hhbmdl
ZChjb250YWluZXIpOwpAQCAtMzc5MCw3ICszNzc3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
UmFuZ2VzQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoQ29udGFpbmVyTm9kZSogY29udGFpbmVyKQogCiB2
b2lkIERvY3VtZW50Ojpub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKENvbnRhaW5lck5vZGUqIGNv
bnRhaW5lcikKIHsKLSAgICBpZiAoIWRpc2FibGVSYW5nZU11dGF0aW9uKHBhZ2UoKSkgJiYgIW1f
cmFuZ2VzLmlzRW1wdHkoKSkgeworICAgIGlmICghbV9yYW5nZXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9yYW5nZXMuZW5kKCk7
CiAgICAgICAgIGZvciAoSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcmFu
Z2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAgICgqaXQpLT5ub2RlQ2hp
bGRyZW5XaWxsQmVSZW1vdmVkKGNvbnRhaW5lcik7CkBAIC0zODE3LDcgKzM4MDQsNyBAQCB2b2lk
IERvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBuKQogICAgIGZvciAoSGFzaFNldDxO
b2RlSXRlcmF0b3IqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25vZGVJdGVyYXRvcnMuYmVnaW4o
KTsgaXQgIT0gbm9kZUl0ZXJhdG9yc0VuZDsgKytpdCkKICAgICAgICAgKCppdCktPm5vZGVXaWxs
QmVSZW1vdmVkKG4pOwogCi0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYm
ICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewog
ICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIHJhbmdlc0VuZCA9IG1fcmFu
Z2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSByYW5nZXNFbmQ7ICsraXQpCiAgICAgICAgICAg
ICAoKml0KS0+bm9kZVdpbGxCZVJlbW92ZWQobik7CkBAIC0zODMyLDcgKzM4MTksNyBAQCB2b2lk
IERvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBuKQogCiB2b2lkIERvY3VtZW50Ojp0
ZXh0SW5zZXJ0ZWQoTm9kZSogdGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
CiB7Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5p
c0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNo
U2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAg
ICBmb3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+dGV4dEluc2VydGVkKHRl
eHQsIG9mZnNldCwgbGVuZ3RoKTsKQEAgLTM4NDQsNyArMzgzMSw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnRleHRJbnNlcnRlZChOb2RlKiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0
aCkKIAogdm9pZCBEb2N1bWVudDo6dGV4dFJlbW92ZWQoTm9kZSogdGV4dCwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihw
YWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1w
dHkoKSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1f
cmFuZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAo
Kml0KS0+dGV4dFJlbW92ZWQodGV4dCwgb2Zmc2V0LCBsZW5ndGgpOwpAQCAtMzg1Nyw3ICszODQ0
LDcgQEAgdm9pZCBEb2N1bWVudDo6dGV4dFJlbW92ZWQoTm9kZSogdGV4dCwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAKIHZvaWQgRG9jdW1lbnQ6OnRleHROb2Rlc01lcmdlZChU
ZXh0KiBvbGROb2RlLCB1bnNpZ25lZCBvZmZzZXQpCiB7Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VN
dXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFu
Z2VzLmlzRW1wdHkoKSkgewogICAgICAgICBOb2RlV2l0aEluZGV4IG9sZE5vZGVXaXRoSW5kZXgo
b2xkTm9kZSk7CiAgICAgICAgIEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bV9yYW5nZXMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fcmFuZ2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKQEAgLTM4NjksNyAr
Mzg1Niw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRleHROb2Rlc01lcmdlZChUZXh0KiBvbGROb2RlLCB1
bnNpZ25lZCBvZmZzZXQpCiAKIHZvaWQgRG9jdW1lbnQ6OnRleHROb2RlU3BsaXQoVGV4dCogb2xk
Tm9kZSkKIHsKLSAgICBpZiAoIWRpc2FibGVSYW5nZU11dGF0aW9uKHBhZ2UoKSkgJiYgIW1fcmFu
Z2VzLmlzRW1wdHkoKSkgeworICAgIGlmICghbV9yYW5nZXMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9yYW5nZXMuZW5kKCk7CiAg
ICAgICAgIGZvciAoSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcmFuZ2Vz
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAgICgqaXQpLT50ZXh0Tm9kZVNw
bGl0KG9sZE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDczYWNjNTdhZjBj
YzQ3ZTBjNGQ1OWIxNGE3MzVkYzk3Zjc5MGUzYTAuLjJlMGU2ZGRjZGIzNzUyYjEwZThlNzMxYjA1
NDhhZWM3YWI1NjQxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI5NTEsNyAr
Mjk1MSw3IEBAIHZvaWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgRnJhCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotI2lmICFQTEFURk9STShNQUMpIHx8IChQTEFURk9STShNQUMpICYmIChkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSkp
CisjaWYgIVBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKE1BQykgJiYgZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpKQogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICBpZiAo
IW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgIW1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGlmIChSZWZQdHI8UmFuZ2U+
IHdvcmRSYW5nZSA9IG5ld0FkamFjZW50V29yZHMudG9Ob3JtYWxpemVkUmFuZ2UoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGYzYzQyMzI5ZmJmZmY2MGNm
OGE1N2Q5MzI0NzkxOTg0OTg1OGJhMmUuLjIxOTQ3MzY5NDFiMWIxMDQyNDQ4ZjljYTFlODkwNGY2
MDQwMGFkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAt
Mjk3LDcgKzI5Nyw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6bWFya01pc3NwZWxsaW5nc0FmdGVy
VHlwaW5nKEVUeXBpbmdDb21tYW5kIGNvbW1hbmRUeXBlKQogICAgIGlmICghZnJhbWUpCiAgICAg
ICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCktPmlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKICAgICAgJiYgIWZyYW1lLT5lZGl0b3Io
KS0+aXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKQogICAgICAmJiAhZnJhbWUt
PmVkaXRvcigpLT5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCkKQEAgLTMzNiw3ICsz
MzYsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OnR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChFVHlw
aW5nQ29tbWFuZCBjb21tYW5kVHlwZUZvckFkZGVkVAogCiAgICAgdXBkYXRlUHJlc2VydmVzVHlw
aW5nU3R5bGUoY29tbWFuZFR5cGVGb3JBZGRlZFR5cGluZyk7CiAKLSNpZiBQTEFURk9STShNQUMp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IGZyYW1lLT5lZGl0b3IoKS0+YXBwbGllZEVkaXRpbmcodGhpcyk7CiAgICAgLy8gU2luY2UgdGhl
IHNwZWxsY2hlY2tpbmcgY29kZSBtYXkgYWxzbyBwZXJmb3JtIGNvcnJlY3Rpb25zIGFuZCBvdGhl
ciByZXBsYWNlbWVudHMsIGl0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhlIHR5cGluZyBjaGFuZ2Vz
LgogICAgIGlmICghbV9zaG91bGRQcmV2ZW50U3BlbGxDaGVja2luZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCAyYzYzYTI0ZWVjMjBjYzk4NTMyMmQxNDRhN2Ex
ZDdhMjEyODRjNDFjLi42MDVkNjc3NjAzNzZiNWEwNTE2MDNmMWFmZjA3ZDIyMmU2NDUyZjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC04MSw3ICs4MSw3IEBA
IHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQs
IGJvb2wgYWxsb3dQbGFpblRleHQpCiAgICAgYm9vbCBjaG9vc2VQbGFpblRleHQ7CiAgICAgCiAg
ICAgbV9mcmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5T
R2VuZXJhbFBib2FyZCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1NOT1dfTEVPUEFSRCkKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBw
YXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsIHJhbmdlLCBhbGxvd1BsYWluVGV4
dCwgY2hvb3NlUGxhaW5UZXh0KTsKICAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJh
Z21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQogICAgICAg
ICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KHBhc3RlYm9hcmQpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggMWY2YzQzYmQ5OTk5ZjU3NDQyNjkyN2I2MWQ5Mzk1MGViZWEzMWMyNy4uZGExMDk2ZTUzMjhj
YzA0MGZiMzM3NjY3MDc4YTBlMTY1YzFkNDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtNDk3LDcgKzQ5Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIE5TVVJMKiBj
YW5vbmljYWxpemVVUkwoTlNVUkwqKSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBOU1VSTCog
Y2Fub25pY2FsaXplVVJMU3RyaW5nKE5TU3RyaW5nKikgeyByZXR1cm4gMDsgfQogI2VuZGlmCi0j
aWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorI2lmIFBM
QVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgdXBwZXJjYXNlV29yZCgpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBsb3dlcmNhc2VXb3JkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNhcGl0YWxp
emVXb3JkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAKaW5kZXggNDg1YjBhOGJiOTgzNGMyM2E3OGI4YTY3ZTljYTYxOWM4ODhlMTQ3ZS4uMjU5
MzBkYmM5MzJmNjZlMjYzNGRjYjQ1NmM5MDZjM2FhNDIwMzBhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+c2hvd0NvbG9yUGFuZWwo
KTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZToKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT51cHBl
cmNhc2VXb3JkKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtNTM2LDE5ICs1MzYsMTkgQEAgdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFNwZWxsaW5nQW5kR3JhbW1hclN1
Yk1lbnUoQ29udGV4dE1lbnUKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGlu
Z1doaWxlVHlwaW5nKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBncmFtbWFyV2l0aFNwZWxsaW5n
KENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhT
cGVsbGluZywgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVs
bGluZygpKTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvbnRleHRNZW51SXRlbSBjb3JyZWN0U3BlbGxp
bmcoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVjdFNwZWxsaW5n
QXV0b21hdGljYWxseSwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVsbGlu
Z0F1dG9tYXRpY2FsbHkoKSk7CiAjZW5kaWYKIAogICAgIGFwcGVuZEl0ZW0oc2hvd1NwZWxsaW5n
UGFuZWwsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICAgICBhcHBlbmRJdGVtKGNoZWNrU3Bl
bGxpbmcsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKLSNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGFwcGVu
ZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSwgJnNwZWxsaW5nQW5kR3JhbW1hck1lbnUpOwogI2VuZGlm
CiAgICAgYXBwZW5kSXRlbShjaGVja0FzWW91VHlwZSwgJnNwZWxsaW5nQW5kR3JhbW1hck1lbnUp
OwogICAgIGFwcGVuZEl0ZW0oZ3JhbW1hcldpdGhTcGVsbGluZywgJnNwZWxsaW5nQW5kR3JhbW1h
ck1lbnUpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgYXBwZW5kSXRlbShjb3JyZWN0U3BlbGxpbmcsICZz
cGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICNlbmRpZgogCkBAIC02NDEsNyArNjQxLDcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFRleHREaXJlY3Rpb25TdWJN
ZW51KENvbnRleHRNZW51SXRlbSYKIAogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogCiB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3Vic3RpdHV0aW9uc1N1Yk1lbnUo
Q29udGV4dE1lbnVJdGVtJiBzdWJzdGl0dXRpb25zTWVudUl0ZW0pCiB7CkBAIC02OTYsNyArNjk2
LDcgQEAgc3RhdGljIGJvb2wgc2VsZWN0aW9uQ29udGFpbnNQb3NzaWJsZVdvcmQoRnJhbWUqIGZy
YW1lKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hUX0NPTlRF
WFRfTUVOVV9JVEVNIDEKICNlbHNlCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hUX0NPTlRFWFRf
TUVOVV9JVEVNIDAKQEAgLTkyNiw3ICs5MjYsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRJdGVtKElnbm9yZUdyYW1tYXJJdGVtLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAg
ICAgICAgICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUu
Z2V0KCkpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIC8vIElmIHRoZSBzdHJpbmcgd2FzIGF1dG9jb3JyZWN0ZWQsIGdlbmVyYXRlIGEgY29udGV4
dHVhbCBtZW51IGl0ZW0gYWxsb3dpbmcgaXQgdG8gYmUgY2hhbmdlZCBiYWNrLgogICAgICAgICAg
ICAgICAgIFN0cmluZyByZXBsYWNlZFN0cmluZyA9IG1faGl0VGVzdFJlc3VsdC5yZXBsYWNlZFN0
cmluZygpOwpAQCAtOTkzLDcgKzk5Myw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpw
b3B1bGF0ZSgpCiAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRTcGVsbGluZ0FuZEdyYW1tYXJT
dWJNZW51KFNwZWxsaW5nQW5kR3JhbW1hck1lbnVJdGVtKTsKICAgICAgICAgICAgIGFwcGVuZEl0
ZW0oU3BlbGxpbmdBbmRHcmFtbWFyTWVudUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogI2Vu
ZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIENvbnRleHRNZW51SXRlbSBzdWJzdGl0dXRp
b25zTWVudUl0ZW0oU3VibWVudVR5cGUsIENvbnRleHRNZW51SXRlbVRhZ1N1YnN0aXR1dGlvbnNN
ZW51LCAKICAgICAgICAgICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdTdWJzdGl0dXRpb25zTWVu
dSgpKTsKICAgICAgICAgICAgIGNyZWF0ZUFuZEFwcGVuZFN1YnN0aXR1dGlvbnNTdWJNZW51KHN1
YnN0aXR1dGlvbnNNZW51SXRlbSk7CkBAIC0xMjA4LDEzICsxMjA4LDExIEBAIHZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBp
dGVtKSBjb25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1RyYW5zZm9ybWF0aW9u
c01lbnU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdTaG93U3Vic3RpdHV0aW9uczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAg
ICAgICAgaWYgKGZyYW1lLT5lZGl0b3IoKS0+c3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93aW5nKCkp
CiAgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vi
c3RpdHV0aW9ucyhmYWxzZSkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGl0
ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnModHJ1ZSkpOwog
ICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gZnJhbWUtPmVkaXRvcigpLT5jYW5FZGl0KCk7Ci0j
ZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z01ha2VVcHBlckNhc2U6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWFrZUxvd2Vy
Q2FzZToKQEAgLTEyMjMsMzQgKzEyMjEsMjIgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAg
ICAgICAgICBzaG91bGRFbmFibGUgPSBmcmFtZS0+ZWRpdG9yKCktPmNhbkVkaXQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcnJlY3RTcGVs
bGluZ0F1dG9tYXRpY2FsbHk6Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICAgICAg
ICAgIHNob3VsZENoZWNrID0gZnJhbWUtPmVkaXRvcigpLT5pc0F1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGU6Ci0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJhbWUtPmVkaXRvcigpLT5zbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXM6Ci0jaWZuZGVmIEJVSUxESU5H
X09OX0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJhbWUtPmVkaXRvcigpLT5p
c0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwotI2VuZGlmCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTbWFydERhc2hlczoKLSNp
Zm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBmcmFt
ZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKTsKLSNlbmRp
ZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21h
cnRMaW5rczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAgICAgICAgc2hvdWxk
Q2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQo
KTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnVGV4dFJlcGxhY2VtZW50OgotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECiAgICAg
ICAgICAgICBzaG91bGRDaGVjayA9IGZyYW1lLT5lZGl0b3IoKS0+aXNBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnRFbmFibGVkKCk7Ci0jZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZzoKICAgICAgICAgICAgIHNob3VsZEVu
YWJsZSA9IGNsaWVudCgpICYmIGNsaWVudCgpLT5pc1NwZWFraW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAppbmRleCAxN2U5NTA2MWI1MjZiOTFlN2U2NzRjYzA0M2IzMjM3OGEwMzQ5
YTlmLi5iMmUxYzFlNjhhZWU2NDQyOWM2NjI5MDBkZTAxMDJjMjEyYjJkYzYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBOU1VSTCogY2Fub25pY2FsaXplVVJMU3RyaW5nKE5TU3RyaW5nKikgPSAwOwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCB1cHBlcmNhc2VXb3JkKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBsb3dlcmNhc2VXb3JkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
YXBpdGFsaXplV29yZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5jcHAKaW5kZXggMjRjOWFhNDE1ZjlkY2EzMGU4MTcxMmM4ZGEwNzViZTc0YWYwMjgy
MC4uYTEwMzY3NTE4MmY1NGFkYTJmZmFmOWJkOTIwMWQyNTg3ZTA3ODY3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTI0NCw3ICsyNDQsNyBA
QCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90bGlnaHQoKQogCiBTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKLSNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNlYXJjaFByb3ZpZGVyTmFtZShB
ZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZSgpKTsKICAgICBy
ZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJTkcoIlNlYXJjaCB3aXRoICVA
IiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0IG1lbnUgaXRlbSB3aXRoIHBy
b3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJOYW1lLmdldCgpKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNw
cAppbmRleCA5ODI4NzZkMDVkNGM4OGY3ZjU1YjFlMTg5NjhmNDcxMzY5ODQ4ZDFmLi4xNWU2ODA4
NjJkYjU2NzU0NWZhNDkxYTU1MTFiYmRhZmIyZjE4MzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAg
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXIoKQogewogfQogCi0j
aWYgIVBMQVRGT1JNKE1BQykgfHwgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKQorI2lmICFQTEFU
Rk9STShNQUMpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSB8fCBQTEFURk9S
TShJT1MpCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpIHsgfQogCiB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaAppbmRleCA4MTBmZWE3MzE0ZjFiNTc2OWU3N2Fl
NDNkZTdlY2M2YzNlMWZhYmRlLi5iNjZhZTFhYmM3ZDgwMDNjNzAzZGVjMDRhY2MzMzllMDI2NWU2
OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1pbmF0aW9uLmgKQEAg
LTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHZvaWQgZGlzYWJsZVN1ZGRl
blRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCi0j
aWYgKCFQTEFURk9STShNQUMpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpICYmICFQ
TEFURk9STShDSFJPTUlVTSkKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oQ0hST01J
VU0pCiAgICAgaW5saW5lIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgeyB9CiAgICAg
aW5saW5lIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKSB7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHAKaW5kZXggNmQ4OWY1NDVkYTFiNGI4ZDMzMzAyZmY0NzdkYjBlYjYxYjM2MGE3Yi4uMTE1
MjA5ZWVkYzE5NTlhZjA5NmFhMTFhOGY4YTZjM2EzYjY4NjJiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBA
IC0xNTE2LDkgKzE1MTYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNJ
bWFnZSgpCiAKICAgICAgICAgLy8gRklYTUU6IG1heWJlIG9ubHkgZG8gdHJpbGluZWFyIGlmIHRo
ZSBpbWFnZSBpcyBiZWluZyBzY2FsZWQgZG93biwKICAgICAgICAgLy8gYnV0IHRoZW4gd2hhdCBp
ZiB0aGUgbGF5ZXIgc2l6ZSBjaGFuZ2VzPwotI2lmbmRlZiBCVUlMRElOR19PTl9MRU9QQVJECiAg
ICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TWluaWZpY2F0aW9uRmlsdGVyKFBsYXRmb3JtQ0FM
YXllcjo6VHJpbGluZWFyKTsKLSNlbmRpZgogICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldENv
bnRlbnRzKG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2UuZ2V0KCkpOwogICAgICAgICBtX3BlbmRpbmdD
b250ZW50c0ltYWdlID0gMDsKIApAQCAtMjM5MSw3ICsyMzg5LDcgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lk
dGgpCiBGbG9hdFNpemUgR3JhcGhpY3NMYXllckNBOjpjb25zdHJhaW5lZFNpemUoKSBjb25zdAog
ewogICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemUgPSBtX3NpemU7Ci0jaWYgZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBmbG9hdCB0aWxlQ29s
dW1ucyA9IGNlaWxmKG1fc2l6ZS53aWR0aCgpIC8ga1RpbGVkTGF5ZXJUaWxlU2l6ZSk7CiAgICAg
ZmxvYXQgdGlsZVJvd3MgPSBjZWlsZihtX3NpemUuaGVpZ2h0KCkgLyBrVGlsZWRMYXllclRpbGVT
aXplKTsKICAgICBkb3VibGUgbnVtVGlsZXMgPSB0aWxlQ29sdW1ucyAqIHRpbGVSb3dzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxh
eWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5
ZXIuaAppbmRleCBmN2YyZDUyYjM0OGQ3ZTgxNjZjMDdkOGJmNDRlZDg0OTVhZTc1NDRlLi4wMDJi
N2EwN2FlNDVhNzEzM2EzZTYzYzMwYzRkOTYxNjU0OTI5Y2M2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaApAQCAtMjEz
LDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByaW50VHJlZSgpIGNvbnN0OwogI2VuZGlm
CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2b2lkIHN5bmNocm9ub3Vz
bHlEaXNwbGF5VGlsZXNJblJlY3QoY29uc3QgRmxvYXRSZWN0Jik7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FB
bmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMv
UGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBjZDg1NjY5MmIzY2IxN2Q2NTg2N2NhZWM2
YzhkNjBmNjBkYjgyMTEzLi5jMzY3OWQ3MjZkNGFlNjFmNWMxMGZjNmFkMjkwZGY5MTBlZGI4ZGFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxh
dGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQpAQCAtMzYsOCArMzYsNiBAQAog
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAjaW1wb3J0IDx3dGYvVW51c2VkUGFy
YW0uaD4KIAotI2RlZmluZSBIQVZFX01PREVSTl9RVUFSVFpDT1JFICghZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKSkKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC8vIFRoaXMgdmFs
dWUgbXVzdCBiZSB0aGUgc2FtZSBhcyBpbiBQbGF0Zm9ybUNBTGF5ZXJNYWMubW0KQEAgLTc1LDcg
KzczLDYgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OkZpbGxNb2RlVHlwZSBmcm9tQ0FG
aWxsTW9kZVR5cGUoTlNTdHJpbmcqIHN0cmluZykKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1h
dGlvbjo6Rm9yd2FyZHM7CiB9CiAKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiBzdGF0aWMg
TlNTdHJpbmcqIHRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1
ZUZ1bmN0aW9uVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtMTMyLDcgKzEy
OSw2IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSBmcm9t
Q0FWYWx1ZUZ1bmN0aW9uVHlwZShOU1N0cmluZyoKIAogICAgIHJldHVybiBQbGF0Zm9ybUNBQW5p
bWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb247CiB9Ci0jZW5kaWYKIAogc3RhdGljIENBTWVkaWFUaW1p
bmdGdW5jdGlvbiogdG9DQU1lZGlhVGltaW5nRnVuY3Rpb24oY29uc3QgVGltaW5nRnVuY3Rpb24q
IHRpbWluZ0Z1bmN0aW9uLCBib29sIHJldmVyc2UpCiB7CkBAIC0zNDQsMjEgKzM0MCwxMyBAQCB2
b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEFkZGl0aXZlKGJvb2wgdmFsdWUpCiAKIFBsYXRm
b3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIFBsYXRmb3JtQ0FBbmltYXRpb246OnZh
bHVlRnVuY3Rpb24oKSBjb25zdAogewotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKICAgICBD
QVZhbHVlRnVuY3Rpb24qIHZmID0gW21fYW5pbWF0aW9uLmdldCgpIHZhbHVlRnVuY3Rpb25dOwog
ICAgIHJldHVybiBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShbdmYgbmFtZV0pOwotI2Vsc2UKLSAg
ICByZXR1cm4gTm9WYWx1ZUZ1bmN0aW9uOwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUFu
aW1hdGlvbjo6c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9uVHlwZSB2YWx1ZSkKIHsKLSNp
ZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgW21fYW5pbWF0aW9uLmdldCgpIHNldFZhbHVl
RnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOnRvQ0FWYWx1ZUZ1bmN0
aW9uVHlwZSh2YWx1ZSldXTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKLSNlbmRp
ZgogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZyb21WYWx1ZShmbG9hdCB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDRjMzYyM2E2Mzg1NjQxZTIwNTg3NzAx
YWJlNzYwOWU5OGIzYzMyNDcuLjNhN2FjNzgxZjJjNDFjYmRjMmUwZmRkMzUxMTgwZDQzYWM4YTNh
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtNDQsOCArNDQsNiBAQAogI2ltcG9y
dCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVW51c2VkUGFyYW0uaD4KIAotI2Rl
ZmluZSBIQVZFX01PREVSTl9RVUFSVFpDT1JFICghZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSkKLQogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsKIApAQCAtOTUsNyArOTMsNyBA
QCBzdGF0aWMgZG91YmxlIG1lZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkK
IAogQGVuZAogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKIEBpbnRlcmZhY2UgQ0FUaWxlZExheWVyKEdyYXBoaWNzTGF5ZXJDQVByaXZhdGUp
CiAtICh2b2lkKWRpc3BsYXlJblJlY3Q6KENHUmVjdClyIGxldmVsT2ZEZXRhaWw6KGludClsb2Qg
b3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKIC0gKEJPT0wpY2FuRHJhd0NvbmN1cnJlbnRs
eTsKQEAgLTEwNSw3ICsxMDMsNyBAQCBzdGF0aWMgZG91YmxlIG1lZGlhVGltZVRvQ3VycmVudFRp
bWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKIAogQGludGVyZmFjZSBDQUxheWVyKFByaXZhdGUpCiAtICh2
b2lkKXNldENvbnRlbnRzQ2hhbmdlZDsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQogLSAodm9pZClzZXRBY2NlbGVyYXRlc0RyYXdpbmc6KEJP
T0wpZmxhZzsKIC0gKEJPT0wpYWNjZWxlcmF0ZXNEcmF3aW5nOwogI2VuZGlmCkBAIC0xNDgsNyAr
MTQ2LDYgQEAgc3RhdGljIE5TRGljdGlvbmFyeSogbnVsbEFjdGlvbnNEaWN0aW9uYXJ5KCkKICAg
ICByZXR1cm4gYWN0aW9uczsKIH0KIAotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKIHN0YXRp
YyBOU1N0cmluZyogdG9DQUZpbHRlclR5cGUoUGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlIHR5
cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0xNTgsNyArMTU1LDYgQEAgc3RhdGljIE5T
U3RyaW5nKiB0b0NBRmlsdGVyVHlwZShQbGF0Zm9ybUNBTGF5ZXI6OkZpbHRlclR5cGUgdHlwZSkK
ICAgICBkZWZhdWx0OiByZXR1cm4gMDsKICAgICB9CiB9Ci0jZW5kaWYKIAogUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKExheWVyVHlwZSBsYXllclR5
cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCiB7CkBAIC00NjAsOSArNDU2LDcgQEAg
RmxvYXRQb2ludDNEIFBsYXRmb3JtQ0FMYXllcjo6YW5jaG9yUG9pbnQoKSBjb25zdAogewogICAg
IENHUG9pbnQgcG9pbnQgPSBbbV9sYXllci5nZXQoKSBhbmNob3JQb2ludF07CiAgICAgZmxvYXQg
eiA9IDA7Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogICAgIHogPSBbbV9sYXllci5nZXQo
KSBhbmNob3JQb2ludFpdOwotI2VuZGlmCiAgICAgcmV0dXJuIEZsb2F0UG9pbnQzRChwb2ludC54
LCBwb2ludC55LCB6KTsKIH0KIApAQCAtNDcwLDkgKzQ2NCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxh
eWVyOjpzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50M0QmIHZhbHVlKQogewogICAgIEJF
R0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVyLmdldCgpIHNldEFuY2hvclBv
aW50OkNHUG9pbnRNYWtlKHZhbHVlLngoKSwgdmFsdWUueSgpKV07Ci0jaWYgSEFWRV9NT0RFUk5f
UVVBUlRaQ09SRQogICAgIFttX2xheWVyLmdldCgpIHNldEFuY2hvclBvaW50Wjp2YWx1ZS56KCld
OwotI2VuZGlmCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQogCkBAIC01MDIsMjgg
KzQ5NCwxNCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0U3VibGF5ZXJUcmFuc2Zvcm0oY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogCiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBQ
bGF0Zm9ybUNBTGF5ZXI6OmNvbnRlbnRzVHJhbnNmb3JtKCkgY29uc3QKIHsKLSNpZiAhSEFWRV9N
T0RFUk5fUVVBUlRaQ09SRQotICAgIGlmIChtX2xheWVyVHlwZSAhPSBMYXllclR5cGVXZWJMYXll
cikKLSAgICAgICAgcmV0dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4KCk7Ci0gICAgICAgIAotICAg
IHJldHVybiBbc3RhdGljX2Nhc3Q8V2ViTGF5ZXIqPihtX2xheWVyLmdldCgpKSBjb250ZW50c1Ry
YW5zZm9ybV07Ci0jZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSByZW1v
dmVkLgogICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwotI2VuZGlmCiB9CiAKIHZv
aWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1RyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYgdmFsdWUpCiB7Ci0jaWYgIUhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAgICBp
ZiAobV9sYXllclR5cGUgIT0gTGF5ZXJUeXBlV2ViTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFttX2xheWVyLmdldCgpIHNldENv
bnRlbnRzVHJhbnNmb3JtOnZhbHVlXTsKLSAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0j
ZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSByZW1vdmVkLgogICAgIFVO
VVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXI6Omlz
SGlkZGVuKCkgY29uc3QKQEAgLTU0MCwyMiArNTE4LDE0IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVy
OjpzZXRIaWRkZW4oYm9vbCB2YWx1ZSkKIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXI6OmlzR2VvbWV0
cnlGbGlwcGVkKCkgY29uc3QKIHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgcmV0
dXJuIFttX2xheWVyLmdldCgpIGlzR2VvbWV0cnlGbGlwcGVkXTsKLSNlbHNlCi0gICAgcmV0dXJu
IGZhbHNlOwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRHZW9tZXRyeUZs
aXBwZWQoYm9vbCB2YWx1ZSkKIHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0R2VvbWV0cnlG
bGlwcGVkOnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogYm9vbCBQbGF0Zm9ybUNBTGF5ZXI6
OmlzRG91YmxlU2lkZWQoKSBjb25zdApAQCAtNTg0LDcgKzU1NCw3IEBAIHZvaWQgUGxhdGZvcm1D
QUxheWVyOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgdmFsdWUpCiAKIGJvb2wgUGxhdGZvcm1DQUxh
eWVyOjphY2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdAogewotI2lmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgcmV0dXJuIFttX2xheWVyLmdl
dCgpIGFjY2VsZXJhdGVzRHJhd2luZ107CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKQEAgLTU5
Myw3ICs1NjMsNyBAQCBib29sIFBsYXRmb3JtQ0FMYXllcjo6YWNjZWxlcmF0ZXNEcmF3aW5nKCkg
Y29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldEFjY2VsZXJhdGVzRHJhd2luZyhib29s
IGFjY2VsZXJhdGVzRHJhd2luZykKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwog
ICAgIFttX2xheWVyLmdldCgpIHNldEFjY2VsZXJhdGVzRHJhd2luZzphY2NlbGVyYXRlc0RyYXdp
bmddOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTYyOCwyNCArNTk4LDE2IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiB2
YWx1ZSkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldE1pbmlmaWNhdGlvbkZpbHRlcihGaWx0
ZXJUeXBlIHZhbHVlKQogewotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9sYXllci5nZXQoKSBzZXRNaW5pZmljYXRpb25G
aWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCi0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQ
bGF0Zm9ybUNBTGF5ZXI6OnNldE1hZ25pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSB2YWx1ZSkK
IHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFnbmlmaWNhdGlvbkZpbHRlcjp0b0NBRmls
dGVyVHlwZSh2YWx1ZSldOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKLSNlbmRpZgogfQogCiBDb2xvciBQbGF0Zm9ybUNBTGF5
ZXI6OmJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC05NDgsNyArOTEwLDcgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXI6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2YWwgdmFsdWUpCiAKIGZsb2F0
IFBsYXRmb3JtQ0FMYXllcjo6Y29udGVudHNTY2FsZSgpIGNvbnN0CiB7Ci0jaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICByZXR1cm4gW21f
bGF5ZXIuZ2V0KCkgY29udGVudHNTY2FsZV07CiAjZWxzZQogICAgIHJldHVybiAxOwpAQCAtOTU3
LDcgKzkxOSw3IEBAIGZsb2F0IFBsYXRmb3JtQ0FMYXllcjo6Y29udGVudHNTY2FsZSgpIGNvbnN0
CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1NjYWxlKGZsb2F0IHZhbHVlKQog
ewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0
Q29udGVudHNTY2FsZTp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAt
OTc1LDcgKzkzNyw3IEBAIFRpbGVkQmFja2luZyogUGxhdGZvcm1DQUxheWVyOjp0aWxlZEJhY2tp
bmcoKQogICAgIHJldHVybiBbdGlsZUNhY2hlTGF5ZXIgdGlsZWRCYWNraW5nXTsKIH0KIAotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiB2b2lk
IFBsYXRmb3JtQ0FMYXllcjo6c3luY2hyb25vdXNseURpc3BsYXlUaWxlc0luUmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fbGF5ZXJUeXBlICE9IExheWVyVHlwZVdlYlRp
bGVkTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
bWFjL1RpbGVDYWNoZS5tbQppbmRleCA5ZmE2YTQ4YzAyODg0YTIyZjQxYjk5ZWFjYThhM2JhODBl
YjEyMjkxLi5hODE2ZmQ3MmEwZmZlMzgyZTg4MGMxYzkyMzlhN2Q5YzhmZmEzYjJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUu
bW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBAaW50ZXJmYWNl
IENBTGF5ZXIgKFdlYkNBTGF5ZXJEZXRhaWxzKQogLSAodm9pZClzZXRBY2NlbGVyYXRlc0RyYXdp
bmc6KEJPT0wpZmxhZzsKIEBlbmQKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFRpbGVDYWNoZTo6
c2V0U2NhbGUoQ0dGbG9hdCBzY2FsZSkKICAgICBpZiAobV9zY2FsZSA9PSBzY2FsZSAmJiBtX2Rl
dmljZVNjYWxlRmFjdG9yID09IGRldmljZVNjYWxlRmFjdG9yKQogICAgICAgICByZXR1cm47CiAK
LSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
ICAgIFZlY3RvcjxGbG9hdFJlY3Q+IGRpcnR5UmVjdHM7CiAKICAgICBtX2RldmljZVNjYWxlRmFj
dG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xNzgsNyArMTc4LDcgQEAgdm9pZCBUaWxlQ2Fj
aGU6OnNldFNjYWxlKENHRmxvYXQgc2NhbGUpCiAKIHZvaWQgVGlsZUNhY2hlOjpzZXRBY2NlbGVy
YXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcpCiB7Ci0jaWYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBpZiAobV9hY2NlbGVy
YXRlc0RyYXdpbmcgPT0gYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAgICAgICByZXR1cm47CiAKQEAg
LTM4OCw3ICszODgsNyBAQCBSZXRhaW5QdHI8V2ViVGlsZUxheWVyPiBUaWxlQ2FjaGU6OmNyZWF0
ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0
RWRnZUFudGlhbGlhc2luZ01hc2s6MF07CiAgICAgW2xheWVyLmdldCgpIHNldE9wYXF1ZTpZRVNd
OwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNTY2FsZTptX2RldmljZVNjYWxlRmFjdG9y
XTsKICAgICBbbGF5ZXIuZ2V0KCkgc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOm1fYWNjZWxlcmF0ZXNE
cmF3aW5nXTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140634</attachid>
            <date>2012-05-07 17:34:09 -0700</date>
            <delta_ts>2012-06-28 23:01:36 -0700</delta_ts>
            <desc>Fix my typo</desc>
            <filename>bug-85846-20120507173407.patch</filename>
            <type>text/plain</type>
            <size>36629</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI0MjRlOGQ4ZTgxM2Q4YzJhMDg3YzAy
ZTlkN2RjOTg4ZGUyODc5MTkuLjQ3MDY5MDFkNWY2MjA2YjIyNDRlY2ZmNjViN2Y0ZDhjYTFhMWI1
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMDcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX09OX0xFT1BBUkQgdXNh
Z2UgaW4gUExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBMQVRGT1JNKE1BQykgaGFzIG5vdCBzdXBwb3J0ZWQgTGVvcGFyZCBm
b3Igc2V2ZXJhbCBtb250aHMgbm93LgorICAgICAgICBUaGlzIGNoYW5nZSByZW1vdmVzIGFib3V0
IDEvMyBvZiB0aGUgcmVtYWluaW5nIEJVSUxESU5HX09OX0xFT1BBUkQKKyAgICAgICAgdXNlcyBp
biB0aGUgUExBVEZPUk0oTUFDKSBjb2RlcGF0aHMuICBQTEFURk9STShDSFJPTUlVTSkgc3RpbGwK
KyAgICAgICAgc3VwcG9ydHMgQlVJTERJTkdfT05fTEVPUEFSRCBmb3Igbm93LgorCisgICAgICAg
ICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTItMDUtMDQgIEplZmYgUm9nZXJzICA8anJvZ2Vyc0By
aW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQgbnVtYmVyT2ZQcm9jZXNz
b3JDb3JlcygpIGZvciBRTlgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOGZmMDE3YjUyMDRjYmRlMTU5MzM0NzMx
NGQxNzg0OGFjZjBmYWU0Li5kMTIwZGNlY2UxMzEwNjQ0ZTI0ZTcxZWZhMWI4N2NlOGUyM2U5MWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTItMDUtMDcgIEVyaWMgU2VpZGVsICA8
ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX09OX0xFT1BB
UkQgdXNhZ2UgaW4gUExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBMQVRGT1JNKE1BQykgaGFzIG5vdCBzdXBwb3J0ZWQgTGVv
cGFyZCBmb3Igc2V2ZXJhbCBtb250aHMgbm93LgorICAgICAgICBUaGlzIGNoYW5nZSByZW1vdmVz
IGFib3V0IDEvMyBvZiB0aGUgcmVtYWluaW5nIEJVSUxESU5HX09OX0xFT1BBUkQKKyAgICAgICAg
dXNlcyBpbiB0aGUgUExBVEZPUk0oTUFDKSBjb2RlcGF0aHMuICBQTEFURk9STShDSFJPTUlVTSkg
c3RpbGwKKyAgICAgICAgc3VwcG9ydHMgQlVJTERJTkdfT05fTEVPUEFSRCBmb3Igbm93LgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVSYW5nZXNBZnRlckNoaWxkcmVuQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZUNoaWxkcmVuV2lsbEJlUmVtb3Zl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRleHRJbnNlcnRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6dGV4dFJlbW92ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRl
eHROb2Rlc01lcmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGV4dE5vZGVTcGxp
dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL1R5cGlu
Z0NvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6bWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGluZ0NvbW1hbmQ6OnR5
cGluZ0FkZGVkVG9PcGVuQ29tbWFuZCk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChFbXB0eUVkaXRvckNsaWVu
dCk6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVu
ZFNwZWxsaW5nQW5kR3JhbW1hclN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKToKKyAg
ICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6CisgICAgICAgICogcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL1N1ZGRlblRlcm1pbmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29uc3RyYWluZWRTaXplKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaDoKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRp
b25NYWMubW06CisgICAgICAgIChmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZSk6CisgICAgICAgIChQ
bGF0Zm9ybUNBQW5pbWF0aW9uOjp2YWx1ZUZ1bmN0aW9uKToKKyAgICAgICAgKFBsYXRmb3JtQ0FB
bmltYXRpb246OnNldFZhbHVlRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgICh0b0NBRmlsdGVyVHlwZSk6
CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OmFuY2hvclBvaW50KToKKyAgICAgICAgKFBsYXRm
b3JtQ0FMYXllcjo6c2V0QW5jaG9yUG9pbnQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpj
b250ZW50c1RyYW5zZm9ybSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNldENvbnRlbnRz
VHJhbnNmb3JtKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6aXNHZW9tZXRyeUZsaXBwZWQp
OgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpzZXRHZW9tZXRyeUZsaXBwZWQpOgorICAgICAg
ICAoUGxhdGZvcm1DQUxheWVyOjphY2NlbGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZv
cm1DQUxheWVyOjpzZXRBY2NlbGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxh
eWVyOjpzZXRNaW5pZmljYXRpb25GaWx0ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpz
ZXRNYWduaWZpY2F0aW9uRmlsdGVyKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6Y29udGVu
dHNTY2FsZSk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNldENvbnRlbnRzU2NhbGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW06CisgICAgICAg
IChXZWJDb3JlOjpUaWxlQ2FjaGU6OnNldFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVD
YWNoZTo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDYWNo
ZTo6Y3JlYXRlVGlsZUxheWVyKToKKwogMjAxMi0wNS0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyBzaG91bGQgYmUgcGFy
dCBvZiBGRUFUVVJFX0RFRklORVMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCA1OTk2YmZmMDZlNGJjNWQ2Yjcw
M2Q3ZTU0ZGUwNzNjMzY3MDhkZmE0Li4xOGFmNTllMDBmZDRhNDUzMjJjNWRhOWMxY2VhYTk0ZGE3
YjIyY2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTUyMywxMCArNTIzLDEwIEBACiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiBDUFUoWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAjZGVmaW5lIFdURl9V
U0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCiAjZW5kaWYKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9F
VkVOVFMgMQogI2RlZmluZSBFTkFCTEVfUlVCQkVSX0JBTkRJTkcgMQogI2RlZmluZSBXVEZfVVNF
X1NDUk9MTEJBUl9QQUlOVEVSIDEKQEAgLTU0OSw3ICs1NDksNyBAQAogI2lmIGRlZmluZWQoRU5B
QkxFX1ZJREVPKQogI2RlZmluZSBFTkFCTEVfVklERU9fVFJBQ0sgMQogI2VuZGlmCi0jaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKICNkZWZp
bmUgSEFWRV9MQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIgMQogI2VuZGlmCiAjZW5kaWYg
LyogUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKSAqLwpAQCAtOTcyLDEzICs5NzIsOCBA
QAogCiAjaWYgUExBVEZPUk0oTUFDKQogLyogQ29tcGxleCB0ZXh0IGZyYW1ld29yayAqLwotI2lm
bmRlZiBCVUlMRElOR19PTl9MRU9QQVJECiAjZGVmaW5lIFdURl9VU0VfQVRTVUkgMAogI2RlZmlu
ZSBXVEZfVVNFX0NPUkVfVEVYVCAxCi0jZWxzZQotI2RlZmluZSBXVEZfVVNFX0FUU1VJIDEKLSNk
ZWZpbmUgV1RGX1VTRV9DT1JFX1RFWFQgMAotI2VuZGlmCiAjZW5kaWYKIAogLyogQWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcgKi8KQEAgLTk5NSw3ICs5OTAsNyBAQAogI2RlZmluZSBXVEZfVVNFX1VJ
X1NJREVfQ09NUE9TSVRJTkcgMQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSkgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JN
KE1BQykgfHwgUExBVEZPUk0oSU9TKQogI2RlZmluZSBXVEZfVVNFX1BST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSyAxCiAjZW5kaWYKIApAQCAtMTAwMyw3ICs5OTgsNyBAQAogI2RlZmluZSBF
TkFCTEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKKyNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTElPTikKICNkZWZpbmUgRU5BQkxFX1RIUkVBREVEX1NDUk9MTElO
RyAxCiAjZW5kaWYKIApAQCAtMTA2MywxMSArMTA1OCwxMSBAQAogI2RlZmluZSBFTkFCTEVfR0Nf
VkFMSURBVElPTiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
I2RlZmluZSBXVEZfVVNFX0FWRk9VTkRBVElPTiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MSU9OKQorI2lmIFBMQVRG
T1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MSU9OKQogI2RlZmluZSBXVEZfVVNFX0NPUkVNRURJQSAxCiAjZW5kaWYK
IApAQCAtMTA3OSw3ICsxMDc0LDcgQEAKICNkZWZpbmUgV1RGX1VTRV9SRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9ESVNQTEFZX01PTklUT1IgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKICNkZWZpbmUgSEFWRV9JTlZFUlRFRF9XSEVFTF9FVkVOVFMgMQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYzk2ODBmYzRhNjJmM2MxODI0ODg1NmQ4NjA3M2Fk
ODJhNzYwOGNlOC4uYTE4YzhiNWMzNzViNDE4Mjg0NjhkNTE0Nzk3ZjY3MWIwNjIwNjY0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTE1NTAsMTIgKzE1NTAsMTIgQEAgX3N0cmluZ0VuY29kaW5n
Rm9yUmVzb3VyY2UKIF9zdHJpbmdJc0Nhc2VJbnNlbnNpdGl2ZUVxdWFsVG9TdHJpbmcKIF9zdWdn
ZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZQogX3drQWR2YW5jZURlZmF1bHRCdXR0b25QdWxzZUFu
aW1hdGlvbgotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCiBfd2tDQUxheWVyRW51bWVyYXRlUmVjdHNCZWluZ0RyYXduV2l0aEJsb2NrCiAjZW5k
aWYKIF93a0NHQ29udGV4dEdldFNob3VsZFNtb290aEZvbnRzCiBfd2tDR0NvbnRleHRSZXNldENs
aXAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQogX3drQ0dQYXRoQWRkUm91bmRlZFJlY3QKICNlbmRpZgogX3drQ0dQYXR0ZXJuQ3JlYXRlV2l0
aEltYWdlQW5kVHJhbnNmb3JtCkBAIC0xNjUxLDcgKzE2NTEsNyBAQCBfX1pON1dlYkNvcmUyMExv
Z05vdFlldEltcGxlbWVudGVkRQogX19aTks3V2ViQ29yZTdFbGVtZW50MjZmYXN0QXR0cmlidXRl
TG9va3VwQWxsb3dlZEVSS05TXzEzUXVhbGlmaWVkTmFtZUUKICNlbmRpZgogCi0jaWYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIF93a0NvcHlEZWZh
dWx0U2VhcmNoUHJvdmlkZXJEaXNwbGF5TmFtZQogX3drQ3JlYXRlQ1RUeXBlc2V0dGVyV2l0aFVu
aUNoYXJQcm92aWRlckFuZE9wdGlvbnMKIF93a1JlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZQpAQCAt
MjExNCwxMSArMjExNCw5IEBAIF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Uy
NnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luRVBLTlNfMTRTZWN1cml0CiBfX1pON1dlYkNvcmUy
M0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlNWVtcHR5RXYKIF9fWk5LN1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMTFtYXhpbXVtU2l6ZUV2CiAKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVP
UEFSRAogX19aTjdXZWJDb3JlNkVkaXRvcjEzbG93ZXJjYXNlV29yZEV2CiBfX1pON1dlYkNvcmU2
RWRpdG9yMTN1cHBlcmNhc2VXb3JkRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IxNGNhcGl0YWxpemVX
b3JkRXYKLSNlbmRpZgogCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogX19aTjdXZWJDb3Jl
MTJFdmVudEhhbmRsZXIxOGhhbmRsZUdlc3R1cmVFdmVudEVSS05TXzIwUGxhdGZvcm1HZXN0dXJl
RXZlbnRFCkBAIC0yMTU0LDcgKzIxNTIsNyBAQCBfX1pON1dlYkNvcmUxMlNjaGVkdWxlUGFpckMx
RVA5TlNSdW5Mb29wUEsxMF9fQ0ZTdHJpbmcKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUx
MnJlbGVhc2VQcm94eUV2CiAjZW5kaWYKIAotI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykg
JiYgKGRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpKQorI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykgJiYgZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjRz
ZXREZWZhdWx0U3RvcmFnZVNlc3Npb25FUDIxX19DRlVSTFN0b3JhZ2VTZXNzaW9uCiAjZWxzZQog
X19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTI0c2V0RGVmYXVsdFN0b3JhZ2VTZXNzaW9uRVBL
MjFfX0NGVVJMU3RvcmFnZVNlc3Npb24KQEAgLTIxNzAsNyArMjE2OCw3IEBAIF9fWk43V2ViQ29y
ZTdJbnRTaXplQzFFUks3X05TU2l6ZQogX19aTks3V2ViQ29yZTdJbnRTaXplY3Y3X05TU2l6ZUV2
CiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpCiBfd2tDcmVhdGVWTVByZXNzdXJlRGlzcGF0Y2hPbk1haW5RdWV1ZQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDM1ODAzZmI0YTQxNWQ1NDY2MDdjMTA3Mzc2
ZWUxOWIyMjY2NTFiOGIuLmZkZGY0MDQ2MjM1MzYyYTg5ZjQzMTJiMWE0NjVmYThiY2YwZmIzNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzMyLDE5ICszMzIsNiBAQCBzdGF0aWMgYm9v
bCBhY2NlcHRzRWRpdGluZ0ZvY3VzKE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIGZyYW1lLT5lZGl0
b3IoKS0+c2hvdWxkQmVnaW5FZGl0aW5nKHJhbmdlT2ZDb250ZW50cyhyb290KS5nZXQoKSk7CiB9
CiAKLXN0YXRpYyBib29sIGRpc2FibGVSYW5nZU11dGF0aW9uKFBhZ2UqIHBhZ2UpCi17Ci0gICAg
Ly8gVGhpcyBjaGVjayBpcyBtYWRlIG9uIHN1cGVyLWhvdCBjb2RlIHBhdGhzLCBzbyB3ZSBvbmx5
IHdhbnQgdGhpcyBvbiBMZW9wYXJkLgotI2lmZGVmIFRBUkdFVElOR19MRU9QQVJECi0gICAgLy8g
RGlzYWJsZSBSYW5nZSBtdXRhdGlvbiBvbiBkb2N1bWVudCBtb2RpZmljYXRpb25zIGluIExlb3Bh
cmQgTWFpbC4KLSAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU4NjUxNzE+Ci0gICAgcmV0dXJu
IHBhZ2UgJiYgcGFnZS0+c2V0dGluZ3MoKS0+bmVlZHNMZW9wYXJkTWFpbFF1aXJrcygpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0ocGFnZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19
Ci0KIHN0YXRpYyBib29sIGNhbkFjY2Vzc0FuY2VzdG9yKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBh
Y3RpdmVTZWN1cml0eU9yaWdpbiwgRnJhbWUqIHRhcmdldEZyYW1lKQogewogICAgIC8vIHRhcmdl
dEZyYW1lIGNhbiBiZSAwIHdoZW4gd2UncmUgdHJ5aW5nIHRvIG5hdmlnYXRlIGEgdG9wLWxldmVs
IGZyYW1lCkBAIC0zNzgxLDcgKzM3NjgsNyBAQCB2b2lkIERvY3VtZW50Ojptb3ZlTm9kZUl0ZXJh
dG9yc1RvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KQogCiB2
b2lkIERvY3VtZW50Ojp1cGRhdGVSYW5nZXNBZnRlckNoaWxkcmVuQ2hhbmdlZChDb250YWluZXJO
b2RlKiBjb250YWluZXIpCiB7Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkp
ICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkg
ewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2Vz
LmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+
bm9kZUNoaWxkcmVuQ2hhbmdlZChjb250YWluZXIpOwpAQCAtMzc5MCw3ICszNzc3LDcgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlUmFuZ2VzQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoQ29udGFpbmVyTm9k
ZSogY29udGFpbmVyKQogCiB2b2lkIERvY3VtZW50Ojpub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVk
KENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikKIHsKLSAgICBpZiAoIWRpc2FibGVSYW5nZU11dGF0
aW9uKHBhZ2UoKSkgJiYgIW1fcmFuZ2VzLmlzRW1wdHkoKSkgeworICAgIGlmICghbV9yYW5nZXMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gbV9yYW5nZXMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9p
dGVyYXRvciBpdCA9IG1fcmFuZ2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAg
ICAgICgqaXQpLT5ub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKGNvbnRhaW5lcik7CkBAIC0zODE3
LDcgKzM4MDQsNyBAQCB2b2lkIERvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBuKQog
ICAgIGZvciAoSGFzaFNldDxOb2RlSXRlcmF0b3IqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX25v
ZGVJdGVyYXRvcnMuYmVnaW4oKTsgaXQgIT0gbm9kZUl0ZXJhdG9yc0VuZDsgKytpdCkKICAgICAg
ICAgKCppdCktPm5vZGVXaWxsQmVSZW1vdmVkKG4pOwogCi0gICAgaWYgKCFkaXNhYmxlUmFuZ2VN
dXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFu
Z2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9y
IHJhbmdlc0VuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2Uq
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSByYW5nZXNFbmQ7
ICsraXQpCiAgICAgICAgICAgICAoKml0KS0+bm9kZVdpbGxCZVJlbW92ZWQobik7CkBAIC0zODMy
LDcgKzM4MTksNyBAQCB2b2lkIERvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZChOb2RlKiBuKQog
CiB2b2lkIERvY3VtZW50Ojp0ZXh0SW5zZXJ0ZWQoTm9kZSogdGV4dCwgdW5zaWduZWQgb2Zmc2V0
LCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgaWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdl
KCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHko
KSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmFu
Z2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICAgICAoKml0
KS0+dGV4dEluc2VydGVkKHRleHQsIG9mZnNldCwgbGVuZ3RoKTsKQEAgLTM4NDQsNyArMzgzMSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnRleHRJbnNlcnRlZChOb2RlKiB0ZXh0LCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCkKIAogdm9pZCBEb2N1bWVudDo6dGV4dFJlbW92ZWQoTm9kZSog
dGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0gICAgaWYgKCFkaXNh
YmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBp
ZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFu
Z2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCiAgICAgICAgICAgICAoKml0KS0+dGV4dFJlbW92ZWQodGV4dCwgb2Zmc2V0LCBsZW5ndGgp
OwpAQCAtMzg1Nyw3ICszODQ0LDcgQEAgdm9pZCBEb2N1bWVudDo6dGV4dFJlbW92ZWQoTm9kZSog
dGV4dCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAKIHZvaWQgRG9jdW1lbnQ6
OnRleHROb2Rlc01lcmdlZChUZXh0KiBvbGROb2RlLCB1bnNpZ25lZCBvZmZzZXQpCiB7Ci0gICAg
aWYgKCFkaXNhYmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkp
IHsKKyAgICBpZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBOb2RlV2l0aEluZGV4
IG9sZE5vZGVXaXRoSW5kZXgob2xkTm9kZSk7CiAgICAgICAgIEhhc2hTZXQ8UmFuZ2UqPjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV9yYW5nZXMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxS
YW5nZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcmFuZ2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkKQEAgLTM4NjksNyArMzg1Niw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRleHROb2Rlc01lcmdl
ZChUZXh0KiBvbGROb2RlLCB1bnNpZ25lZCBvZmZzZXQpCiAKIHZvaWQgRG9jdW1lbnQ6OnRleHRO
b2RlU3BsaXQoVGV4dCogb2xkTm9kZSkKIHsKLSAgICBpZiAoIWRpc2FibGVSYW5nZU11dGF0aW9u
KHBhZ2UoKSkgJiYgIW1fcmFuZ2VzLmlzRW1wdHkoKSkgeworICAgIGlmICghbV9yYW5nZXMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bV9yYW5nZXMuZW5kKCk7CiAgICAgICAgIGZvciAoSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fcmFuZ2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgICAg
ICgqaXQpLT50ZXh0Tm9kZVNwbGl0KG9sZE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CmluZGV4IDczYWNjNTdhZjBjYzQ3ZTBjNGQ1OWIxNGE3MzVkYzk3Zjc5MGUzYTAuLjJlMGU2ZGRj
ZGIzNzUyYjEwZThlNzMxYjA1NDhhZWM3YWI1NjQxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKQEAgLTI5NTEsNyArMjk1MSw3IEBAIHZvaWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgRnJhCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotI2lmICFQTEFURk9STShNQUMpIHx8IChQTEFURk9STShN
QUMpICYmIChkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKSkpCisjaWYgIVBMQVRGT1JNKE1BQykgfHwgKFBMQVRGT1JNKE1BQykg
JiYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpKQogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQogICAgICAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgIW1fZnJhbWUtPnNldHRp
bmdzKCktPmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkpIHsKICAgICAgICAgICAg
IGlmIChSZWZQdHI8UmFuZ2U+IHdvcmRSYW5nZSA9IG5ld0FkamFjZW50V29yZHMudG9Ob3JtYWxp
emVkUmFuZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4
IGYzYzQyMzI5ZmJmZmY2MGNmOGE1N2Q5MzI0NzkxOTg0OTg1OGJhMmUuLjIxOTQ3MzY5NDFiMWIx
MDQyNDQ4ZjljYTFlODkwNGY2MDQwMGFkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBp
bmdDb21tYW5kLmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6bWFy
a01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nKEVUeXBpbmdDb21tYW5kIGNvbW1hbmRUeXBlKQogICAg
IGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFm
cmFtZS0+ZWRpdG9yKCktPmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKICAgICAg
JiYgIWZyYW1lLT5lZGl0b3IoKS0+aXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQo
KQogICAgICAmJiAhZnJhbWUtPmVkaXRvcigpLT5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkKCkKQEAgLTMzNiw3ICszMzYsNyBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OnR5cGluZ0FkZGVk
VG9PcGVuQ29tbWFuZChFVHlwaW5nQ29tbWFuZCBjb21tYW5kVHlwZUZvckFkZGVkVAogCiAgICAg
dXBkYXRlUHJlc2VydmVzVHlwaW5nU3R5bGUoY29tbWFuZFR5cGVGb3JBZGRlZFR5cGluZyk7CiAK
LSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIGZyYW1lLT5lZGl0b3IoKS0+YXBwbGllZEVkaXRpbmcodGhpcyk7
CiAgICAgLy8gU2luY2UgdGhlIHNwZWxsY2hlY2tpbmcgY29kZSBtYXkgYWxzbyBwZXJmb3JtIGNv
cnJlY3Rpb25zIGFuZCBvdGhlciByZXBsYWNlbWVudHMsIGl0IHNob3VsZCBoYXBwZW4gYWZ0ZXIg
dGhlIHR5cGluZyBjaGFuZ2VzLgogICAgIGlmICghbV9zaG91bGRQcmV2ZW50U3BlbGxDaGVja2lu
ZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQppbmRleCAyYzYzYTI0ZWVj
MjBjYzk4NTMyMmQxNDRhN2ExZDdhMjEyODRjNDFjLi42MDVkNjc3NjAzNzZiNWEwNTE2MDNmMWFm
ZjA3ZDIyMmU2NDUyZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9F
ZGl0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1t
CkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQpCiAgICAgYm9vbCBjaG9vc2VQ
bGFpblRleHQ7CiAgICAgCiAgICAgbV9mcmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zZXRJbnNl
cnRpb25QYXN0ZWJvYXJkKE5TR2VuZXJhbFBib2FyZCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFn
bWVudD4gZnJhZ21lbnQgPSBwYXN0ZWJvYXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsIHJh
bmdlLCBhbGxvd1BsYWluVGV4dCwgY2hvb3NlUGxhaW5UZXh0KTsKICAgICBpZiAoZnJhZ21lbnQg
JiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rp
b25QYXN0ZWQpKQogICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVw
bGFjZVdpdGhQYXN0ZWJvYXJkKHBhc3RlYm9hcmQpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKaW5kZXggMWY2YzQzYmQ5OTk5ZjU3NDQyNjkyN2I2MWQ5Mzk1MGViZWEz
MWMyNy4uZGExMDk2ZTUzMjhjYzA0MGZiMzM3NjY3MDc4YTBlMTY1YzFkNDY2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDk3LDcgKzQ5Nyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIE5TVVJMKiBjYW5vbmljYWxpemVVUkwoTlNVUkwqKSB7IHJldHVybiAwOyB9CiAg
ICAgdmlydHVhbCBOU1VSTCogY2Fub25pY2FsaXplVVJMU3RyaW5nKE5TU3RyaW5nKikgeyByZXR1
cm4gMDsgfQogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2aXJ0dWFsIHZvaWQgdXBwZXJjYXNl
V29yZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsb3dlcmNhc2VXb3JkKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGNhcGl0YWxpemVXb3JkKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggNDg1YjBhOGJiOTgzNGMyM2E3OGI4YTY3ZTlj
YTYxOWM4ODhlMTQ3ZS4uMjU5MzBkYmM5MzJmNjZlMjYzNGRjYjQ1NmM5MDZjM2FhNDIwMzBhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAt
NDM2LDcgKzQzNiw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAgICAgIGZyYW1lLT5lZGl0b3Io
KS0+c2hvd0NvbG9yUGFuZWwoKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSNpZiBQTEFURk9S
TShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFD
KQogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnTWFrZVVwcGVyQ2FzZToKICAgICAgICAgZnJh
bWUtPmVkaXRvcigpLT51cHBlcmNhc2VXb3JkKCk7CiAgICAgICAgIGJyZWFrOwpAQCAtNTM2LDE5
ICs1MzYsMTkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFNw
ZWxsaW5nQW5kR3JhbW1hclN1Yk1lbnUoQ29udGV4dE1lbnUKICAgICAgICAgY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZ1doaWxlVHlwaW5nKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBn
cmFtbWFyV2l0aFNwZWxsaW5nKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZywgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0No
ZWNrR3JhbW1hcldpdGhTcGVsbGluZygpKTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvbnRleHRNZW51
SXRlbSBjb3JyZWN0U3BlbGxpbmcoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnQ29ycmVjdFNwZWxsaW5nQXV0b21hdGljYWxseSwgCiAgICAgICAgIGNvbnRleHRNZW51SXRl
bVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkoKSk7CiAjZW5kaWYKIAogICAgIGFwcGVu
ZEl0ZW0oc2hvd1NwZWxsaW5nUGFuZWwsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICAgICBh
cHBlbmRJdGVtKGNoZWNrU3BlbGxpbmcsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKLSNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZP
Uk0oTUFDKQogICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSwgJnNwZWxsaW5nQW5kR3Jh
bW1hck1lbnUpOwogI2VuZGlmCiAgICAgYXBwZW5kSXRlbShjaGVja0FzWW91VHlwZSwgJnNwZWxs
aW5nQW5kR3JhbW1hck1lbnUpOwogICAgIGFwcGVuZEl0ZW0oZ3JhbW1hcldpdGhTcGVsbGluZywg
JnNwZWxsaW5nQW5kR3JhbW1hck1lbnUpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgYXBwZW5kSXRlbShj
b3JyZWN0U3BlbGxpbmcsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICNlbmRpZgogCkBAIC02
NDEsNyArNjQxLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVu
ZFRleHREaXJlY3Rpb25TdWJNZW51KENvbnRleHRNZW51SXRlbSYKIAogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZP
Uk0oTUFDKQogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3Vi
c3RpdHV0aW9uc1N1Yk1lbnUoQ29udGV4dE1lbnVJdGVtJiBzdWJzdGl0dXRpb25zTWVudUl0ZW0p
CiB7CkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGljIGJvb2wgc2VsZWN0aW9uQ29udGFpbnNQb3Nz
aWJsZVdvcmQoRnJhbWUqIGZyYW1lKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIGRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCisjaWYgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAjZGVmaW5lIElOQ0xV
REVfU1BPVExJR0hUX0NPTlRFWFRfTUVOVV9JVEVNIDEKICNlbHNlCiAjZGVmaW5lIElOQ0xVREVf
U1BPVExJR0hUX0NPTlRFWFRfTUVOVV9JVEVNIDAKQEAgLTkyNiw3ICs5MjYsNyBAQCB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKElnbm9yZUdyYW1tYXJJdGVtLCBtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVt
KCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzdHJpbmcgd2FzIGF1dG9jb3JyZWN0ZWQs
IGdlbmVyYXRlIGEgY29udGV4dHVhbCBtZW51IGl0ZW0gYWxsb3dpbmcgaXQgdG8gYmUgY2hhbmdl
ZCBiYWNrLgogICAgICAgICAgICAgICAgIFN0cmluZyByZXBsYWNlZFN0cmluZyA9IG1faGl0VGVz
dFJlc3VsdC5yZXBsYWNlZFN0cmluZygpOwpAQCAtOTkzLDcgKzk5Myw3IEBAIHZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRT
cGVsbGluZ0FuZEdyYW1tYXJTdWJNZW51KFNwZWxsaW5nQW5kR3JhbW1hck1lbnVJdGVtKTsKICAg
ICAgICAgICAgIGFwcGVuZEl0ZW0oU3BlbGxpbmdBbmRHcmFtbWFyTWVudUl0ZW0sIG1fY29udGV4
dE1lbnUuZ2V0KCkpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIENvbnRleHRN
ZW51SXRlbSBzdWJzdGl0dXRpb25zTWVudUl0ZW0oU3VibWVudVR5cGUsIENvbnRleHRNZW51SXRl
bVRhZ1N1YnN0aXR1dGlvbnNNZW51LCAKICAgICAgICAgICAgICAgICBjb250ZXh0TWVudUl0ZW1U
YWdTdWJzdGl0dXRpb25zTWVudSgpKTsKICAgICAgICAgICAgIGNyZWF0ZUFuZEFwcGVuZFN1YnN0
aXR1dGlvbnNTdWJNZW51KHN1YnN0aXR1dGlvbnNNZW51SXRlbSk7CkBAIC0xMjA4LDEzICsxMjA4
LDExIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQo
Q29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ1RyYW5zZm9ybWF0aW9uc01lbnU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uczoKLSNpZm5kZWYgQlVJTERJTkdf
T05fTEVPUEFSRAogICAgICAgICAgICAgaWYgKGZyYW1lLT5lZGl0b3IoKS0+c3Vic3RpdHV0aW9u
c1BhbmVsSXNTaG93aW5nKCkpCiAgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0
TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhmYWxzZSkpOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0
aXR1dGlvbnModHJ1ZSkpOwogICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gZnJhbWUtPmVkaXRv
cigpLT5jYW5FZGl0KCk7Ci0jZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2U6CiAgICAgICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnTWFrZUxvd2VyQ2FzZToKQEAgLTEyMjMsMzQgKzEyMjEsMjIgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0m
IGl0ZW0pIGNvbnN0CiAgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBmcmFtZS0+ZWRpdG9yKCkt
PmNhbkVkaXQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHk6Ci0jaWZuZGVmIEJVSUxESU5HX09O
X0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJhbWUtPmVkaXRvcigpLT5pc0F1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGU6Ci0j
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJh
bWUtPmVkaXRvcigpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXM6
Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0g
ZnJhbWUtPmVkaXRvcigpLT5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwot
I2VuZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdTbWFydERhc2hlczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAgICAgICAg
c2hvdWxkQ2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlv
bkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnU21hcnRMaW5rczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAog
ICAgICAgICAgICAgc2hvdWxkQ2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljTGlu
a0RldGVjdGlvbkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50OgotI2lmbmRlZiBCVUlMRElO
R19PTl9MRU9QQVJECiAgICAgICAgICAgICBzaG91bGRDaGVjayA9IGZyYW1lLT5lZGl0b3IoKS0+
aXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCk7Ci0jZW5kaWYKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZzoKICAg
ICAgICAgICAgIHNob3VsZEVuYWJsZSA9IGNsaWVudCgpICYmIGNsaWVudCgpLT5pc1NwZWFraW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCAxN2U5NTA2MWI1MjZiOTFlN2U2
NzRjYzA0M2IzMjM3OGEwMzQ5YTlmLi5iMmUxYzFlNjhhZWU2NDQyOWM2NjI5MDBkZTAxMDJjMjEy
YjJkYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTEyMCw3ICsxMjAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBOU1VSTCogY2Fub25pY2FsaXplVVJMU3RyaW5nKE5TU3Ry
aW5nKikgPSAwOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCB1cHBl
cmNhc2VXb3JkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb3dlcmNhc2VXb3JkKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjYXBpdGFsaXplV29yZCgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggMjRjOWFhNDE1ZjlkY2EzMGU4MTcx
MmM4ZGEwNzViZTc0YWYwMjgyMC4uYTEwMzY3NTE4MmY1NGFkYTJmZmFmOWJkOTIwMWQyNTg3ZTA3
ODY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAK
QEAgLTI0NCw3ICsyNDQsNyBAQCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoSW5TcG90
bGlnaHQoKQogCiBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKLSNpZiBQ
TEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNl
YXJjaFByb3ZpZGVyTmFtZShBZG9wdENGLCB3a0NvcHlEZWZhdWx0U2VhcmNoUHJvdmlkZXJEaXNw
bGF5TmFtZSgpKTsKICAgICByZXR1cm4gZm9ybWF0TG9jYWxpemVkU3RyaW5nKFdFQl9VSV9TVFJJ
TkcoIlNlYXJjaCB3aXRoICVAIiwgIlNlYXJjaCB3aXRoIHNlYXJjaCBwcm92aWRlciBjb250ZXh0
IG1lbnUgaXRlbSB3aXRoIHByb3ZpZGVyIG5hbWUgaW5zZXJ0ZWQiKSwgc2VhcmNoUHJvdmlkZXJO
YW1lLmdldCgpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcAppbmRleCA5ODI4NzZkMDVkNGM4OGY3ZjU1YjFlMTg5NjhmNDcx
MzY5ODQ4ZDFmLi4xNWU2ODA4NjJkYjU2NzU0NWZhNDkxYTU1MTFiYmRhZmIyZjE4MzJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpNZW1vcnlQcmVzc3VyZUhh
bmRsZXIoKQogewogfQogCi0jaWYgIVBMQVRGT1JNKE1BQykgfHwgZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZP
Uk0oSU9TKQorI2lmICFQTEFURk9STShNQUMpIHx8IGRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKSB8fCBQTEFURk9STShJT1MpCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5z
dGFsbCgpIHsgfQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5pbnN0YWxsKCkgeyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaAppbmRleCA4MTBm
ZWE3MzE0ZjFiNTc2OWU3N2FlNDNkZTdlY2M2YzNlMWZhYmRlLi5iNjZhZTFhYmM3ZDgwMDNjNzAz
ZGVjMDRhY2MzMzllMDI2NWU2OWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TdWRkZW5UZXJtaW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRl
blRlcm1pbmF0aW9uLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgdm9pZCBlbmFibGVTdWRkZW5U
ZXJtaW5hdGlvbigpOwogCi0jaWYgKCFQTEFURk9STShNQUMpIHx8IGRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkpICYmICFQTEFURk9STShDSFJPTUlVTSkKKyNpZiAhUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaW5saW5lIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1p
bmF0aW9uKCkgeyB9CiAgICAgaW5saW5lIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKSB7
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggNmQ4OWY1NDVkYTFiNGI4ZDMzMzAyZmY0Nzdk
YjBlYjYxYjM2MGE3Yi4uMTE1MjA5ZWVkYzE5NTlhZjA5NmFhMTFhOGY4YTZjM2EzYjY4NjJiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwCkBAIC0xNTE2LDkgKzE1MTYsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6dXBkYXRlQ29udGVudHNJbWFnZSgpCiAKICAgICAgICAgLy8gRklYTUU6IG1heWJlIG9ubHkg
ZG8gdHJpbGluZWFyIGlmIHRoZSBpbWFnZSBpcyBiZWluZyBzY2FsZWQgZG93biwKICAgICAgICAg
Ly8gYnV0IHRoZW4gd2hhdCBpZiB0aGUgbGF5ZXIgc2l6ZSBjaGFuZ2VzPwotI2lmbmRlZiBCVUlM
RElOR19PTl9MRU9QQVJECiAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TWluaWZpY2F0aW9u
RmlsdGVyKFBsYXRmb3JtQ0FMYXllcjo6VHJpbGluZWFyKTsKLSNlbmRpZgogICAgICAgICBtX2Nv
bnRlbnRzTGF5ZXItPnNldENvbnRlbnRzKG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2UuZ2V0KCkpOwog
ICAgICAgICBtX3BlbmRpbmdDb250ZW50c0ltYWdlID0gMDsKIApAQCAtMjM5MSw3ICsyMzg5LDcg
QEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xv
ciwgZmxvYXQgYm9yZGVyV2lkdGgpCiBGbG9hdFNpemUgR3JhcGhpY3NMYXllckNBOjpjb25zdHJh
aW5lZFNpemUoKSBjb25zdAogewogICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemUgPSBtX3Np
emU7Ci0jaWYgZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCBkZWZpbmVkKEJVSUxESU5H
X09OX1NOT1dfTEVPUEFSRCkKKyNpZiBkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
ICAgICBmbG9hdCB0aWxlQ29sdW1ucyA9IGNlaWxmKG1fc2l6ZS53aWR0aCgpIC8ga1RpbGVkTGF5
ZXJUaWxlU2l6ZSk7CiAgICAgZmxvYXQgdGlsZVJvd3MgPSBjZWlsZihtX3NpemUuaGVpZ2h0KCkg
LyBrVGlsZWRMYXllclRpbGVTaXplKTsKICAgICBkb3VibGUgbnVtVGlsZXMgPSB0aWxlQ29sdW1u
cyAqIHRpbGVSb3dzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9QbGF0Zm9ybUNBTGF5ZXIuaAppbmRleCBmN2YyZDUyYjM0OGQ3ZTgxNjZjMDdkOGJmNDRl
ZDg0OTVhZTc1NDRlLi4wMDJiN2EwN2FlNDVhNzEzM2EzZTYzYzMwYzRkOTYxNjU0OTI5Y2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNB
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9y
bUNBTGF5ZXIuaApAQCAtMjEzLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByaW50VHJl
ZSgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNp
ZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAg
ICB2b2lkIHN5bmNocm9ub3VzbHlEaXNwbGF5VGlsZXNJblJlY3QoY29uc3QgRmxvYXRSZWN0Jik7
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQppbmRleCBjZDg1NjY5
MmIzY2IxN2Q2NTg2N2NhZWM2YzhkNjBmNjBkYjgyMTEzLi5jMzY3OWQ3MjZkNGFlNjFmNWMxMGZj
NmFkMjkwZGY5MTBlZGI4ZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbQpA
QCAtMzYsOCArMzYsNiBAQAogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAjaW1w
b3J0IDx3dGYvVW51c2VkUGFyYW0uaD4KIAotI2RlZmluZSBIQVZFX01PREVSTl9RVUFSVFpDT1JF
ICghZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSkKLQogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIC8vIFRoaXMgdmFsdWUgbXVzdCBiZSB0aGUgc2FtZSBhcyBpbiBQbGF0Zm9ybUNBTGF5
ZXJNYWMubW0KQEAgLTc1LDcgKzczLDYgQEAgc3RhdGljIFBsYXRmb3JtQ0FBbmltYXRpb246OkZp
bGxNb2RlVHlwZSBmcm9tQ0FGaWxsTW9kZVR5cGUoTlNTdHJpbmcqIHN0cmluZykKICAgICByZXR1
cm4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Rm9yd2FyZHM7CiB9CiAKLSNpZiBIQVZFX01PREVSTl9R
VUFSVFpDT1JFCiBzdGF0aWMgTlNTdHJpbmcqIHRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZShQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpWYWx1ZUZ1bmN0aW9uVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewpAQCAtMTMyLDcgKzEyOSw2IEBAIHN0YXRpYyBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1
ZUZ1bmN0aW9uVHlwZSBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShOU1N0cmluZyoKIAogICAgIHJl
dHVybiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpOb1ZhbHVlRnVuY3Rpb247CiB9Ci0jZW5kaWYKIAog
c3RhdGljIENBTWVkaWFUaW1pbmdGdW5jdGlvbiogdG9DQU1lZGlhVGltaW5nRnVuY3Rpb24oY29u
c3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uLCBib29sIHJldmVyc2UpCiB7CkBAIC0z
NDQsMjEgKzM0MCwxMyBAQCB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEFkZGl0aXZlKGJv
b2wgdmFsdWUpCiAKIFBsYXRmb3JtQ0FBbmltYXRpb246OlZhbHVlRnVuY3Rpb25UeXBlIFBsYXRm
b3JtQ0FBbmltYXRpb246OnZhbHVlRnVuY3Rpb24oKSBjb25zdAogewotI2lmIEhBVkVfTU9ERVJO
X1FVQVJUWkNPUkUKICAgICBDQVZhbHVlRnVuY3Rpb24qIHZmID0gW21fYW5pbWF0aW9uLmdldCgp
IHZhbHVlRnVuY3Rpb25dOwogICAgIHJldHVybiBmcm9tQ0FWYWx1ZUZ1bmN0aW9uVHlwZShbdmYg
bmFtZV0pOwotI2Vsc2UKLSAgICByZXR1cm4gTm9WYWx1ZUZ1bmN0aW9uOwotI2VuZGlmCiB9CiAK
IHZvaWQgUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0VmFsdWVGdW5jdGlvbihWYWx1ZUZ1bmN0aW9u
VHlwZSB2YWx1ZSkKIHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgW21fYW5pbWF0
aW9uLmdldCgpIHNldFZhbHVlRnVuY3Rpb246W0NBVmFsdWVGdW5jdGlvbiBmdW5jdGlvbldpdGhO
YW1lOnRvQ0FWYWx1ZUZ1bmN0aW9uVHlwZSh2YWx1ZSldXTsKLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHZhbHVlKTsKLSNlbmRpZgogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldEZy
b21WYWx1ZShmbG9hdCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDRjMzYy
M2E2Mzg1NjQxZTIwNTg3NzAxYWJlNzYwOWU5OGIzYzMyNDcuLjNhN2FjNzgxZjJjNDFjYmRjMmUw
ZmRkMzUxMTgwZDQzYWM4YTNhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtNDQs
OCArNDQsNiBAQAogI2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvVW51
c2VkUGFyYW0uaD4KIAotI2RlZmluZSBIQVZFX01PREVSTl9RVUFSVFpDT1JFICghZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSkKLQogdXNpbmcgc3RkOjptaW47CiB1c2luZyBzdGQ6Om1heDsK
IApAQCAtOTUsNyArOTMsNyBAQCBzdGF0aWMgZG91YmxlIG1lZGlhVGltZVRvQ3VycmVudFRpbWUo
Q0ZUaW1lSW50ZXJ2YWwgdCkKIAogQGVuZAogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIEBpbnRlcmZhY2UgQ0FUaWxlZExheWVyKEdyYXBo
aWNzTGF5ZXJDQVByaXZhdGUpCiAtICh2b2lkKWRpc3BsYXlJblJlY3Q6KENHUmVjdClyIGxldmVs
T2ZEZXRhaWw6KGludClsb2Qgb3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKIC0gKEJPT0wp
Y2FuRHJhd0NvbmN1cnJlbnRseTsKQEAgLTEwNSw3ICsxMDMsNyBAQCBzdGF0aWMgZG91YmxlIG1l
ZGlhVGltZVRvQ3VycmVudFRpbWUoQ0ZUaW1lSW50ZXJ2YWwgdCkKIAogQGludGVyZmFjZSBDQUxh
eWVyKFByaXZhdGUpCiAtICh2b2lkKXNldENvbnRlbnRzQ2hhbmdlZDsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogLSAodm9pZClzZXRBY2Nl
bGVyYXRlc0RyYXdpbmc6KEJPT0wpZmxhZzsKIC0gKEJPT0wpYWNjZWxlcmF0ZXNEcmF3aW5nOwog
I2VuZGlmCkBAIC0xNDgsNyArMTQ2LDYgQEAgc3RhdGljIE5TRGljdGlvbmFyeSogbnVsbEFjdGlv
bnNEaWN0aW9uYXJ5KCkKICAgICByZXR1cm4gYWN0aW9uczsKIH0KIAotI2lmIEhBVkVfTU9ERVJO
X1FVQVJUWkNPUkUKIHN0YXRpYyBOU1N0cmluZyogdG9DQUZpbHRlclR5cGUoUGxhdGZvcm1DQUxh
eWVyOjpGaWx0ZXJUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0xNTgsNyAr
MTU1LDYgQEAgc3RhdGljIE5TU3RyaW5nKiB0b0NBRmlsdGVyVHlwZShQbGF0Zm9ybUNBTGF5ZXI6
OkZpbHRlclR5cGUgdHlwZSkKICAgICBkZWZhdWx0OiByZXR1cm4gMDsKICAgICB9CiB9Ci0jZW5k
aWYKIAogUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRl
KExheWVyVHlwZSBsYXllclR5cGUsIFBsYXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIpCiB7CkBA
IC00NjAsOSArNDU2LDcgQEAgRmxvYXRQb2ludDNEIFBsYXRmb3JtQ0FMYXllcjo6YW5jaG9yUG9p
bnQoKSBjb25zdAogewogICAgIENHUG9pbnQgcG9pbnQgPSBbbV9sYXllci5nZXQoKSBhbmNob3JQ
b2ludF07CiAgICAgZmxvYXQgeiA9IDA7Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogICAg
IHogPSBbbV9sYXllci5nZXQoKSBhbmNob3JQb2ludFpdOwotI2VuZGlmCiAgICAgcmV0dXJuIEZs
b2F0UG9pbnQzRChwb2ludC54LCBwb2ludC55LCB6KTsKIH0KIApAQCAtNDcwLDkgKzQ2NCw3IEBA
IHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRBbmNob3JQb2ludChjb25zdCBGbG9hdFBvaW50M0Qm
IHZhbHVlKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVy
LmdldCgpIHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKHZhbHVlLngoKSwgdmFsdWUueSgpKV07
Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogICAgIFttX2xheWVyLmdldCgpIHNldEFuY2hv
clBvaW50Wjp2YWx1ZS56KCldOwotI2VuZGlmCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9O
UwogfQogCkBAIC01MDIsMjggKzQ5NCwxNCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0U3Vi
bGF5ZXJUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQogCiBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCBQbGF0Zm9ybUNBTGF5ZXI6OmNvbnRlbnRzVHJhbnNmb3JtKCkgY29u
c3QKIHsKLSNpZiAhSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQotICAgIGlmIChtX2xheWVyVHlwZSAh
PSBMYXllclR5cGVXZWJMYXllcikKLSAgICAgICAgcmV0dXJuIFRyYW5zZm9ybWF0aW9uTWF0cml4
KCk7Ci0gICAgICAgIAotICAgIHJldHVybiBbc3RhdGljX2Nhc3Q8V2ViTGF5ZXIqPihtX2xheWVy
LmdldCgpKSBjb250ZW50c1RyYW5zZm9ybV07Ci0jZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGZ1
bmN0aW9uIGNhbiBiZSByZW1vdmVkLgogICAgIHJldHVybiBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgp
OwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1RyYW5zZm9y
bShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdmFsdWUpCiB7Ci0jaWYgIUhBVkVfTU9ERVJO
X1FVQVJUWkNPUkUKLSAgICBpZiAobV9sYXllclR5cGUgIT0gTGF5ZXJUeXBlV2ViTGF5ZXIpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIFtt
X2xheWVyLmdldCgpIHNldENvbnRlbnRzVHJhbnNmb3JtOnZhbHVlXTsKLSAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCi0jZWxzZQorICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGNhbiBi
ZSByZW1vdmVkLgogICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogYm9vbCBQ
bGF0Zm9ybUNBTGF5ZXI6OmlzSGlkZGVuKCkgY29uc3QKQEAgLTU0MCwyMiArNTE4LDE0IEBAIHZv
aWQgUGxhdGZvcm1DQUxheWVyOjpzZXRIaWRkZW4oYm9vbCB2YWx1ZSkKIAogYm9vbCBQbGF0Zm9y
bUNBTGF5ZXI6OmlzR2VvbWV0cnlGbGlwcGVkKCkgY29uc3QKIHsKLSNpZiBIQVZFX01PREVSTl9R
VUFSVFpDT1JFCiAgICAgcmV0dXJuIFttX2xheWVyLmdldCgpIGlzR2VvbWV0cnlGbGlwcGVkXTsK
LSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxh
eWVyOjpzZXRHZW9tZXRyeUZsaXBwZWQoYm9vbCB2YWx1ZSkKIHsKLSNpZiBIQVZFX01PREVSTl9R
VUFSVFpDT1JFCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIu
Z2V0KCkgc2V0R2VvbWV0cnlGbGlwcGVkOnZhbHVlXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TCi0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogYm9v
bCBQbGF0Zm9ybUNBTGF5ZXI6OmlzRG91YmxlU2lkZWQoKSBjb25zdApAQCAtNTg0LDcgKzU1NCw3
IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRNYXNrc1RvQm91bmRzKGJvb2wgdmFsdWUpCiAK
IGJvb2wgUGxhdGZvcm1DQUxheWVyOjphY2NlbGVyYXRlc0RyYXdpbmcoKSBjb25zdAogewotI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAg
cmV0dXJuIFttX2xheWVyLmdldCgpIGFjY2VsZXJhdGVzRHJhd2luZ107CiAjZWxzZQogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTU5Myw3ICs1NjMsNyBAQCBib29sIFBsYXRmb3JtQ0FMYXllcjo6YWNj
ZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3QKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldEFjY2Vs
ZXJhdGVzRHJhd2luZyhib29sIGFjY2VsZXJhdGVzRHJhd2luZykKIHsKLSNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQp
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVyLmdldCgpIHNldEFjY2VsZXJhdGVzRHJhd2lu
ZzphY2NlbGVyYXRlc0RyYXdpbmddOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAg
LTYyOCwyNCArNTk4LDE2IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1JlY3Qo
Y29uc3QgRmxvYXRSZWN0JiB2YWx1ZSkKIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldE1pbmlm
aWNhdGlvbkZpbHRlcihGaWx0ZXJUeXBlIHZhbHVlKQogewotI2lmIEhBVkVfTU9ERVJOX1FVQVJU
WkNPUkUKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9sYXllci5nZXQo
KSBzZXRNaW5pZmljYXRpb25GaWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKICAgICBFTkRf
QkxPQ0tfT0JKQ19FWENFUFRJT05TCi0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldE1hZ25pZmljYXRpb25GaWx0ZXIo
RmlsdGVyVHlwZSB2YWx1ZSkKIHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWFnbmlmaWNh
dGlvbkZpbHRlcjp0b0NBRmlsdGVyVHlwZSh2YWx1ZSldOwogICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlMKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKLSNlbmRpZgogfQogCiBD
b2xvciBQbGF0Zm9ybUNBTGF5ZXI6OmJhY2tncm91bmRDb2xvcigpIGNvbnN0CkBAIC05NDgsNyAr
OTEwLDcgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnNldFRpbWVPZmZzZXQoQ0ZUaW1lSW50ZXJ2
YWwgdmFsdWUpCiAKIGZsb2F0IFBsYXRmb3JtQ0FMYXllcjo6Y29udGVudHNTY2FsZSgpIGNvbnN0
CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKICAgICByZXR1cm4gW21fbGF5ZXIuZ2V0KCkgY29udGVudHNTY2FsZV07CiAjZWxzZQogICAg
IHJldHVybiAxOwpAQCAtOTU3LDcgKzkxOSw3IEBAIGZsb2F0IFBsYXRmb3JtQ0FMYXllcjo6Y29u
dGVudHNTY2FsZSgpIGNvbnN0CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRDb250ZW50c1Nj
YWxlKGZsb2F0IHZhbHVlKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAgICAg
W21fbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNTY2FsZTp2YWx1ZV07CiAgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwpAQCAtOTc1LDcgKzkzNyw3IEBAIFRpbGVkQmFja2luZyogUGxhdGZvcm1D
QUxheWVyOjp0aWxlZEJhY2tpbmcoKQogICAgIHJldHVybiBbdGlsZUNhY2hlTGF5ZXIgdGlsZWRC
YWNraW5nXTsKIH0KIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c3luY2hyb25vdXNseURpc3BsYXlU
aWxlc0luUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKG1fbGF5ZXJUeXBl
ICE9IExheWVyVHlwZVdlYlRpbGVkTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQppbmRleCA5ZmE2YTQ4YzAyODg0YTIy
ZjQxYjk5ZWFjYThhM2JhODBlYjEyMjkxLi5hODE2ZmQ3MmEwZmZlMzgyZTg4MGMxYzkyMzlhN2Q5
YzhmZmEzYjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlQ2FjaGUubW0KQEAgLTM2LDcgKzM2LDcgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCiBAaW50ZXJmYWNlIENBTGF5ZXIgKFdlYkNBTGF5ZXJEZXRhaWxzKQogLSAodm9pZClz
ZXRBY2NlbGVyYXRlc0RyYXdpbmc6KEJPT0wpZmxhZzsKIEBlbmQKQEAgLTE1Myw3ICsxNTMsNyBA
QCB2b2lkIFRpbGVDYWNoZTo6c2V0U2NhbGUoQ0dGbG9hdCBzY2FsZSkKICAgICBpZiAobV9zY2Fs
ZSA9PSBzY2FsZSAmJiBtX2RldmljZVNjYWxlRmFjdG9yID09IGRldmljZVNjYWxlRmFjdG9yKQog
ICAgICAgICByZXR1cm47CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQogICAgIFZlY3RvcjxGbG9hdFJlY3Q+IGRpcnR5UmVjdHM7CiAKICAg
ICBtX2RldmljZVNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7CkBAIC0xNzgsNyArMTc4
LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnNldFNjYWxlKENHRmxvYXQgc2NhbGUpCiAKIHZvaWQgVGls
ZUNhY2hlOjpzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcpCiB7
Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
ICAgICBpZiAobV9hY2NlbGVyYXRlc0RyYXdpbmcgPT0gYWNjZWxlcmF0ZXNEcmF3aW5nKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTM4OCw3ICszODgsNyBAQCBSZXRhaW5QdHI8V2ViVGlsZUxheWVy
PiBUaWxlQ2FjaGU6OmNyZWF0ZVRpbGVMYXllcihjb25zdCBJbnRSZWN0JiB0aWxlUmVjdCkKICAg
ICBbbGF5ZXIuZ2V0KCkgc2V0RWRnZUFudGlhbGlhc2luZ01hc2s6MF07CiAgICAgW2xheWVyLmdl
dCgpIHNldE9wYXF1ZTpZRVNdOwogCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBbbGF5ZXIuZ2V0KCkgc2V0Q29udGVudHNTY2FsZTpt
X2RldmljZVNjYWxlRmFjdG9yXTsKICAgICBbbGF5ZXIuZ2V0KCkgc2V0QWNjZWxlcmF0ZXNEcmF3
aW5nOm1fYWNjZWxlcmF0ZXNEcmF3aW5nXTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150086</attachid>
            <date>2012-06-28 23:01:43 -0700</date>
            <delta_ts>2012-06-29 00:16:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-85846-20120628230143.patch</filename>
            <type>text/plain</type>
            <size>31404</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQyOGUyMjIzMzUwYmRhMWQyYThmNmY0
ZWMzMTMyOGEwN2M1N2VlZjIuLjE3MDc2NjE5ZGVlYWQyM2Q4ODcyYmQ1MGU0N2RlMDhlMmUxMjQx
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDYtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3
ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX09OX0xFT1BBUkQgdXNh
Z2UgaW4gUExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CisKKyAgICAgICAgUExBVEZPUk0oTUFDKSBoYXMgbm90IHN1cHBvcnRlZCBMZW9wYXJkIGZvciBz
ZXZlcmFsIG1vbnRocyBub3cuCisgICAgICAgIFRoaXMgY2hhbmdlIHJlbW92ZXMgYWJvdXQgMS8z
IG9mIHRoZSByZW1haW5pbmcgQlVJTERJTkdfT05fTEVPUEFSRAorICAgICAgICB1c2VzIGluIHRo
ZSBQTEFURk9STShNQUMpIGNvZGVwYXRocy4gIFBMQVRGT1JNKENIUk9NSVVNKSBzdGlsbAorICAg
ICAgICBzdXBwb3J0cyBCVUlMRElOR19PTl9MRU9QQVJEIGZvciBub3cuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKwogMjAxMi0wNi0yOCAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJA
Z21haWwuY29tPgogCiAgICAgICAgIFRocmVhZGluZ1dpbjogU2lsZW5jZSBHQ0MgY29tcGlsZXIg
d2FybmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZGQxNjM2N2Y2MGQ5NGQ4ZDM5ZGNlNTcwZDFmMzQzZDBi
YmE1ODdiLi40OWRmMDk2ZmRlYTcyZjAwNDIxZDdjYmY5NGU5ZTYzYTZjMTA4YzE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMTItMDYtMjggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJr
aXQub3JnPgorCisgICAgICAgIFJlbW92ZSBtb3JlIEJVSUxESU5HX09OX0xFT1BBUkQgdXNhZ2Ug
aW4gUExBVEZPUk0oTUFDKSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTg0NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisK
KyAgICAgICAgUExBVEZPUk0oTUFDKSBoYXMgbm90IHN1cHBvcnRlZCBMZW9wYXJkIGZvciBzZXZl
cmFsIG1vbnRocyBub3cuCisgICAgICAgIFRoaXMgY2hhbmdlIHJlbW92ZXMgYWJvdXQgMS8zIG9m
IHRoZSByZW1haW5pbmcgQlVJTERJTkdfT05fTEVPUEFSRAorICAgICAgICB1c2VzIGluIHRoZSBQ
TEFURk9STShNQUMpIGNvZGVwYXRocy4gIFBMQVRGT1JNKENIUk9NSVVNKSBzdGlsbAorICAgICAg
ICBzdXBwb3J0cyBCVUlMRElOR19PTl9MRU9QQVJEIGZvciBub3cuCisKKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnVwZGF0ZVJhbmdlc0FmdGVyQ2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlQ2hpbGRyZW5XaWxsQmVSZW1vdmVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojpub2RlV2lsbEJlUmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6dGV4dEluc2VydGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0
ZXh0UmVtb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dGV4dE5vZGVzTWVyZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0ZXh0Tm9kZVNwbGl0KToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlc3BvbmRU
b0NoYW5nZWRTZWxlY3Rpb24pOgorICAgICAgICAqIGVkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUeXBpbmdDb21tYW5kOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJU
eXBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VHlwaW5nQ29tbWFuZDo6dHlwaW5nQWRkZWRUb09w
ZW5Db21tYW5kKToKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5RWRpdG9yQ2xpZW50KToKKyAgICAgICAg
KiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3BlbGxpbmdBbmRH
cmFtbWFyU3ViTWVudSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4
dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQpOgorICAgICAgICAqIHBhZ2Uv
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChFZGl0b3JDbGllbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NZW1vcnlQcmVzc3VyZUhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vU3VkZGVuVGVy
bWluYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNBOjpjb25zdHJhaW5lZFNpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L1BsYXRmb3JtQ0FMYXllci5oOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUFuaW1hdGlvbk1hYy5tbToKKyAg
ICAgICAgKGZyb21DQVZhbHVlRnVuY3Rpb25UeXBlKToKKyAgICAgICAgKFBsYXRmb3JtQ0FBbmlt
YXRpb246OnZhbHVlRnVuY3Rpb24pOgorICAgICAgICAoUGxhdGZvcm1DQUFuaW1hdGlvbjo6c2V0
VmFsdWVGdW5jdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRm
b3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKHRvQ0FGaWx0ZXJUeXBlKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllcjo6YW5jaG9yUG9pbnQpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpz
ZXRBbmNob3JQb2ludCk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OmNvbnRlbnRzVHJhbnNm
b3JtKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6c2V0Q29udGVudHNUcmFuc2Zvcm0pOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjppc0dlb21ldHJ5RmxpcHBlZCk6CisgICAgICAgIChQ
bGF0Zm9ybUNBTGF5ZXI6OnNldEdlb21ldHJ5RmxpcHBlZCk6CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXI6OmFjY2VsZXJhdGVzRHJhd2luZyk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNl
dEFjY2VsZXJhdGVzRHJhd2luZyk6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNldE1pbmlm
aWNhdGlvbkZpbHRlcik6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXI6OnNldE1hZ25pZmljYXRp
b25GaWx0ZXIpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyOjpjb250ZW50c1NjYWxlKToKKyAg
ICAgICAgKFBsYXRmb3JtQ0FMYXllcjo6c2V0Q29udGVudHNTY2FsZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlRp
bGVDYWNoZTo6c2V0U2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzZXRBY2Nl
bGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpjcmVhdGVUaWxl
TGF5ZXIpOgorCiAyMDEyLTA2LTI4ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBmaWx0ZXIgdXJsKCkgZnVuY3Rpb24uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAppbmRleCA3MmU2NmYwOTQ3ZjA1NDMxNjdjZWY3NzZjMmY4NzYyZjBiMjI3YTc0Li5kOGJh
OTQ3NjJlZjU5OTQ4ZDA2NjFkZDEwZThmYTcyZTIzZTEyMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTUy
OCwxMCArNTI4LDEwIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiBDUFUoWDg2XzY0KQor
I2lmIENQVShYODZfNjQpCiAjZGVmaW5lIFdURl9VU0VfUExVR0lOX0hPU1RfUFJPQ0VTUyAxCiAj
ZW5kaWYKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQogI2RlZmluZSBFTkFCTEVfR0VTVFVSRV9FVkVOVFMgMQogI2RlZmluZSBFTkFCTEVfUlVC
QkVSX0JBTkRJTkcgMQogI2RlZmluZSBXVEZfVVNFX1NDUk9MTEJBUl9QQUlOVEVSIDEKQEAgLTU1
NCw3ICs1NTQsNyBAQAogI2lmIGRlZmluZWQoRU5BQkxFX1ZJREVPKQogI2RlZmluZSBFTkFCTEVf
VklERU9fVFJBQ0sgMQogI2VuZGlmCi0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MSU9OKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTElPTikKICNkZWZpbmUgSEFWRV9MQVlFUl9IT1NUSU5HX0lOX1dJ
TkRPV19TRVJWRVIgMQogI2VuZGlmCiAjZGVmaW5lIFdURl9VU0VfQVBQS0lUIDEKQEAgLTk5NSwx
MyArOTk1LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIC8qIENvbXBsZXggdGV4dCBmcmFtZXdv
cmsgKi8KLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogI2RlZmluZSBXVEZfVVNFX0FUU1VJ
IDAKICNkZWZpbmUgV1RGX1VTRV9DT1JFX1RFWFQgMQotI2Vsc2UKLSNkZWZpbmUgV1RGX1VTRV9B
VFNVSSAxCi0jZGVmaW5lIFdURl9VU0VfQ09SRV9URVhUIDAKLSNlbmRpZgogI2VuZGlmCiAKIC8q
IEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nICovCkBAIC0xMDE4LDcgKzEwMTMsNyBAQAogI2RlZmlu
ZSBXVEZfVVNFX1VJX1NJREVfQ09NUE9TSVRJTkcgMQogI2VuZGlmCiAKLSNpZiAoUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSkgfHwgUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQogI2RlZmluZSBXVEZfVVNFX1BST1RF
Q1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSyAxCiAjZW5kaWYKIApAQCAtMTAyNiw3ICsxMDIxLDcg
QEAKICNkZWZpbmUgRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIIDEKICNlbmRpZgog
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xJT04pCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xJT04pCiAjZGVmaW5lIEVOQUJMRV9USFJF
QURFRF9TQ1JPTExJTkcgMQogI2VuZGlmCiAKQEAgLTEwODgsMTEgKzEwODMsMTEgQEAKICNkZWZp
bmUgRU5BQkxFX0dDX1ZBTElEQVRJT04gMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKICNkZWZpbmUgV1RGX1VTRV9BVkZPVU5EQVRJT04gMQogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElP
TikKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTElPTikKICNkZWZpbmUgV1RGX1VTRV9DT1JFTUVE
SUEgMQogI2VuZGlmCiAKQEAgLTExMDQsNyArMTA5OSw3IEBACiAjZGVmaW5lIFdURl9VU0VfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAjZGVmaW5lIEhBVkVfSU5WRVJURURfV0hFRUxfRVZF
TlRTIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlOTIxMDkwNjI0NWQ5
NTlhZDA4YWY0NmM0NWI1Y2IxZGQyNGE2MGM2Li4xODhmY2FjYzRiNDI5ZTE1ZWM3YzcwZDg5ZjE4
NGNhODQxMTNhY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTM0MiwxOSArMzQyLDYg
QEAgc3RhdGljIGJvb2wgYWNjZXB0c0VkaXRpbmdGb2N1cyhOb2RlKiBub2RlKQogICAgIHJldHVy
biBmcmFtZS0+ZWRpdG9yKCktPnNob3VsZEJlZ2luRWRpdGluZyhyYW5nZU9mQ29udGVudHMocm9v
dCkuZ2V0KCkpOwogfQogCi1zdGF0aWMgYm9vbCBkaXNhYmxlUmFuZ2VNdXRhdGlvbihQYWdlKiBw
YWdlKQotewotICAgIC8vIFRoaXMgY2hlY2sgaXMgbWFkZSBvbiBzdXBlci1ob3QgY29kZSBwYXRo
cywgc28gd2Ugb25seSB3YW50IHRoaXMgb24gTGVvcGFyZC4KLSNpZmRlZiBUQVJHRVRJTkdfTEVP
UEFSRAotICAgIC8vIERpc2FibGUgUmFuZ2UgbXV0YXRpb24gb24gZG9jdW1lbnQgbW9kaWZpY2F0
aW9ucyBpbiBMZW9wYXJkIE1haWwuCi0gICAgLy8gU2VlIDxyZGFyOi8vcHJvYmxlbS81ODY1MTcx
PgotICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPnNldHRpbmdzKCktPm5lZWRzTGVvcGFyZE1haWxR
dWlya3MoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwotICAgIHJldHVybiBmYWxz
ZTsKLSNlbmRpZgotfQotCiBzdGF0aWMgYm9vbCBjYW5BY2Nlc3NBbmNlc3Rvcihjb25zdCBTZWN1
cml0eU9yaWdpbiogYWN0aXZlU2VjdXJpdHlPcmlnaW4sIEZyYW1lKiB0YXJnZXRGcmFtZSkKIHsK
ICAgICAvLyB0YXJnZXRGcmFtZSBjYW4gYmUgMCB3aGVuIHdlJ3JlIHRyeWluZyB0byBuYXZpZ2F0
ZSBhIHRvcC1sZXZlbCBmcmFtZQpAQCAtMzkwOSw3ICszODk2LDcgQEAgdm9pZCBEb2N1bWVudDo6
bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBuZXdE
b2N1bWVudCkKIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlUmFuZ2VzQWZ0ZXJDaGlsZHJlbkNoYW5n
ZWQoQ29udGFpbmVyTm9kZSogY29udGFpbmVyKQogewotICAgIGlmICghZGlzYWJsZVJhbmdlTXV0
YXRpb24ocGFnZSgpKSAmJiAhbV9yYW5nZXMuaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3Jhbmdl
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSBtX3Jhbmdlcy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PFJhbmdlKj46OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9yYW5nZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAg
ICAgICAgKCppdCktPm5vZGVDaGlsZHJlbkNoYW5nZWQoY29udGFpbmVyKTsKQEAgLTM5MTgsNyAr
MzkwNSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVJhbmdlc0FmdGVyQ2hpbGRyZW5DaGFuZ2Vk
KENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikKIAogdm9pZCBEb2N1bWVudDo6bm9kZUNoaWxkcmVu
V2lsbEJlUmVtb3ZlZChDb250YWluZXJOb2RlKiBjb250YWluZXIpCiB7Ci0gICAgaWYgKCFkaXNh
YmxlUmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBp
ZiAoIW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFu
Z2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCiAgICAgICAgICAgICAoKml0KS0+bm9kZUNoaWxkcmVuV2lsbEJlUmVtb3ZlZChjb250YWlu
ZXIpOwpAQCAtMzk0NSw3ICszOTMyLDcgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92
ZWQoTm9kZSogbikKICAgICBmb3IgKEhhc2hTZXQ8Tm9kZUl0ZXJhdG9yKj46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9ub2RlSXRlcmF0b3JzLmJlZ2luKCk7IGl0ICE9IG5vZGVJdGVyYXRvcnNFbmQ7
ICsraXQpCiAgICAgICAgICgqaXQpLT5ub2RlV2lsbEJlUmVtb3ZlZChuKTsKIAotICAgIGlmICgh
ZGlzYWJsZVJhbmdlTXV0YXRpb24ocGFnZSgpKSAmJiAhbV9yYW5nZXMuaXNFbXB0eSgpKSB7Cisg
ICAgaWYgKCFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxSYW5nZSo+Ojpj
b25zdF9pdGVyYXRvciByYW5nZXNFbmQgPSBtX3Jhbmdlcy5lbmQoKTsKICAgICAgICAgZm9yIChI
YXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yYW5nZXMuYmVnaW4oKTsgaXQg
IT0gcmFuZ2VzRW5kOyArK2l0KQogICAgICAgICAgICAgKCppdCktPm5vZGVXaWxsQmVSZW1vdmVk
KG4pOwpAQCAtMzk2MCw3ICszOTQ3LDcgQEAgdm9pZCBEb2N1bWVudDo6bm9kZVdpbGxCZVJlbW92
ZWQoTm9kZSogbikKIAogdm9pZCBEb2N1bWVudDo6dGV4dEluc2VydGVkKE5vZGUqIHRleHQsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIGlmICghZGlzYWJsZVJhbmdl
TXV0YXRpb24ocGFnZSgpKSAmJiAhbV9yYW5nZXMuaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3Jh
bmdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxSYW5nZSo+Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtX3Jhbmdlcy5lbmQoKTsKICAgICAgICAgZm9yIChIYXNoU2V0PFJhbmdlKj46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9yYW5nZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQogICAg
ICAgICAgICAgKCppdCktPnRleHRJbnNlcnRlZCh0ZXh0LCBvZmZzZXQsIGxlbmd0aCk7CkBAIC0z
OTcyLDcgKzM5NTksNyBAQCB2b2lkIERvY3VtZW50Ojp0ZXh0SW5zZXJ0ZWQoTm9kZSogdGV4dCwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAKIHZvaWQgRG9jdW1lbnQ6OnRleHRS
ZW1vdmVkKE5vZGUqIHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogewot
ICAgIGlmICghZGlzYWJsZVJhbmdlTXV0YXRpb24ocGFnZSgpKSAmJiAhbV9yYW5nZXMuaXNFbXB0
eSgpKSB7CisgICAgaWYgKCFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgSGFzaFNldDxS
YW5nZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3Jhbmdlcy5lbmQoKTsKICAgICAgICAgZm9y
IChIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yYW5nZXMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KQogICAgICAgICAgICAgKCppdCktPnRleHRSZW1vdmVkKHRleHQsIG9m
ZnNldCwgbGVuZ3RoKTsKQEAgLTM5ODUsNyArMzk3Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRleHRS
ZW1vdmVkKE5vZGUqIHRleHQsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogCiB2
b2lkIERvY3VtZW50Ojp0ZXh0Tm9kZXNNZXJnZWQoVGV4dCogb2xkTm9kZSwgdW5zaWduZWQgb2Zm
c2V0KQogewotICAgIGlmICghZGlzYWJsZVJhbmdlTXV0YXRpb24ocGFnZSgpKSAmJiAhbV9yYW5n
ZXMuaXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKICAgICAgICAg
Tm9kZVdpdGhJbmRleCBvbGROb2RlV2l0aEluZGV4KG9sZE5vZGUpOwogICAgICAgICBIYXNoU2V0
PFJhbmdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBm
b3IgKEhhc2hTZXQ8UmFuZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpCkBAIC0zOTk3LDcgKzM5ODQsNyBAQCB2b2lkIERvY3VtZW50Ojp0
ZXh0Tm9kZXNNZXJnZWQoVGV4dCogb2xkTm9kZSwgdW5zaWduZWQgb2Zmc2V0KQogCiB2b2lkIERv
Y3VtZW50Ojp0ZXh0Tm9kZVNwbGl0KFRleHQqIG9sZE5vZGUpCiB7Ci0gICAgaWYgKCFkaXNhYmxl
UmFuZ2VNdXRhdGlvbihwYWdlKCkpICYmICFtX3Jhbmdlcy5pc0VtcHR5KCkpIHsKKyAgICBpZiAo
IW1fcmFuZ2VzLmlzRW1wdHkoKSkgewogICAgICAgICBIYXNoU2V0PFJhbmdlKj46OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IG1fcmFuZ2VzLmVuZCgpOwogICAgICAgICBmb3IgKEhhc2hTZXQ8UmFuZ2Uq
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Jhbmdlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
CiAgICAgICAgICAgICAoKml0KS0+dGV4dE5vZGVTcGxpdChvbGROb2RlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGYzYzQyMzI5ZmJmZmY2MGNmOGE1N2Q5
MzI0NzkxOTg0OTg1OGJhMmUuLjIxOTQ3MzY5NDFiMWIxMDQyNDQ4ZjljYTFlODkwNGY2MDQwMGFk
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtMjk3LDcg
KzI5Nyw3IEBAIHZvaWQgVHlwaW5nQ29tbWFuZDo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5n
KEVUeXBpbmdDb21tYW5kIGNvbW1hbmRUeXBlKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJl
dHVybjsKIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCktPmlzQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKICAgICAgJiYgIWZyYW1lLT5lZGl0b3IoKS0+aXNB
dXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKQogICAgICAmJiAhZnJhbWUtPmVkaXRv
cigpLT5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCkKQEAgLTMzNiw3ICszMzYsNyBA
QCB2b2lkIFR5cGluZ0NvbW1hbmQ6OnR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZChFVHlwaW5nQ29t
bWFuZCBjb21tYW5kVHlwZUZvckFkZGVkVAogCiAgICAgdXBkYXRlUHJlc2VydmVzVHlwaW5nU3R5
bGUoY29tbWFuZFR5cGVGb3JBZGRlZFR5cGluZyk7CiAKLSNpZiBQTEFURk9STShNQUMpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGZyYW1l
LT5lZGl0b3IoKS0+YXBwbGllZEVkaXRpbmcodGhpcyk7CiAgICAgLy8gU2luY2UgdGhlIHNwZWxs
Y2hlY2tpbmcgY29kZSBtYXkgYWxzbyBwZXJmb3JtIGNvcnJlY3Rpb25zIGFuZCBvdGhlciByZXBs
YWNlbWVudHMsIGl0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhlIHR5cGluZyBjaGFuZ2VzLgogICAg
IGlmICghbV9zaG91bGRQcmV2ZW50U3BlbGxDaGVja2luZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFjL0VkaXRvck1hYy5tbQppbmRleCBkOGFhNWRmYTNlMTNmMjY5MjYzYTYzYWEwOTg1ODBhYzY4
MWRiMmQ4Li5jNDJjNjIzYmYwZTI2OGE0NWU2ZmM2M2Y3ZjZhODc3OTY0MmFhZWExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQg
RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wg
YWxsb3dQbGFpblRleHQpCiAgICAgYm9vbCBjaG9vc2VQbGFpblRleHQ7CiAgICAgCiAgICAgbV9m
cmFtZS0+ZWRpdG9yKCktPmNsaWVudCgpLT5zZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5TR2VuZXJh
bFBib2FyZCk7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1df
TEVPUEFSRCkKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBwYXN0ZWJv
YXJkLT5kb2N1bWVudEZyYWdtZW50KG1fZnJhbWUsIHJhbmdlLCBhbGxvd1BsYWluVGV4dCwgY2hv
b3NlUGxhaW5UZXh0KTsKICAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQo
ZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQogICAgICAgICBwYXN0
ZUFzRnJhZ21lbnQoZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKHBhc3Rl
Ym9hcmQpLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKaW5kZXggN2NmMmRiZTViZTIwNDgwYTI0NWMzMTI1OWIxMjA1ZjJlODIzNjgxOS4u
NmUxODhmZGYxZWU5Nzk3NjJlNDU3MzhhNTM5MzBiYmNlYzYxZGQ1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNTQzLDE5ICs1NDMsMTkg
QEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFNwZWxsaW5nQW5k
R3JhbW1hclN1Yk1lbnUoQ29udGV4dE1lbnUKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ2hl
Y2tTcGVsbGluZ1doaWxlVHlwaW5nKCkpOwogICAgIENvbnRleHRNZW51SXRlbSBncmFtbWFyV2l0
aFNwZWxsaW5nKENoZWNrYWJsZUFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3Jh
bW1hcldpdGhTcGVsbGluZywgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1h
cldpdGhTcGVsbGluZygpKTsKLSNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIENvbnRleHRNZW51SXRlbSBjb3Jy
ZWN0U3BlbGxpbmcoQ2hlY2thYmxlQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29ycmVj
dFNwZWxsaW5nQXV0b21hdGljYWxseSwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcnJl
Y3RTcGVsbGluZ0F1dG9tYXRpY2FsbHkoKSk7CiAjZW5kaWYKIAogICAgIGFwcGVuZEl0ZW0oc2hv
d1NwZWxsaW5nUGFuZWwsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICAgICBhcHBlbmRJdGVt
KGNoZWNrU3BlbGxpbmcsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKLSNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSwgJnNwZWxsaW5nQW5kR3JhbW1hck1lbnUp
OwogI2VuZGlmCiAgICAgYXBwZW5kSXRlbShjaGVja0FzWW91VHlwZSwgJnNwZWxsaW5nQW5kR3Jh
bW1hck1lbnUpOwogICAgIGFwcGVuZEl0ZW0oZ3JhbW1hcldpdGhTcGVsbGluZywgJnNwZWxsaW5n
QW5kR3JhbW1hck1lbnUpOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgYXBwZW5kSXRlbShjb3JyZWN0U3Bl
bGxpbmcsICZzcGVsbGluZ0FuZEdyYW1tYXJNZW51KTsKICNlbmRpZgogCkBAIC02NDgsNyArNjQ4
LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNyZWF0ZUFuZEFwcGVuZFRleHREaXJl
Y3Rpb25TdWJNZW51KENvbnRleHRNZW51SXRlbSYKIAogI2VuZGlmCiAKLSNpZiBQTEFURk9STShN
QUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKQog
CiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y3JlYXRlQW5kQXBwZW5kU3Vic3RpdHV0aW9u
c1N1Yk1lbnUoQ29udGV4dE1lbnVJdGVtJiBzdWJzdGl0dXRpb25zTWVudUl0ZW0pCiB7CkBAIC03
MDMsNyArNzAzLDcgQEAgc3RhdGljIGJvb2wgc2VsZWN0aW9uQ29udGFpbnNQb3NzaWJsZVdvcmQo
RnJhbWUqIGZyYW1lKQogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotI2lmIGRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYg
ZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJ
R0hUX0NPTlRFWFRfTUVOVV9JVEVNIDEKICNlbHNlCiAjZGVmaW5lIElOQ0xVREVfU1BPVExJR0hU
X0NPTlRFWFRfTUVOVV9JVEVNIDAKQEAgLTEwMTUsNyArMTAxNSw3IEBAIHZvaWQgQ29udGV4dE1l
bnVDb250cm9sbGVyOjpwb3B1bGF0ZSgpCiAgICAgICAgICAgICBjcmVhdGVBbmRBcHBlbmRTcGVs
bGluZ0FuZEdyYW1tYXJTdWJNZW51KFNwZWxsaW5nQW5kR3JhbW1hck1lbnVJdGVtKTsKICAgICAg
ICAgICAgIGFwcGVuZEl0ZW0oU3BlbGxpbmdBbmRHcmFtbWFyTWVudUl0ZW0sIG1fY29udGV4dE1l
bnUuZ2V0KCkpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgICAgIENvbnRleHRNZW51
SXRlbSBzdWJzdGl0dXRpb25zTWVudUl0ZW0oU3VibWVudVR5cGUsIENvbnRleHRNZW51SXRlbVRh
Z1N1YnN0aXR1dGlvbnNNZW51LCAKICAgICAgICAgICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdT
dWJzdGl0dXRpb25zTWVudSgpKTsKICAgICAgICAgICAgIGNyZWF0ZUFuZEFwcGVuZFN1YnN0aXR1
dGlvbnNTdWJNZW51KHN1YnN0aXR1dGlvbnNNZW51SXRlbSk7CkBAIC0xMjMwLDEzICsxMjMwLDEx
IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29u
dGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1RyYW5zZm9ybWF0aW9uc01lbnU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9uczoKLSNpZm5kZWYgQlVJTERJTkdfT05f
TEVPUEFSRAogICAgICAgICAgICAgaWYgKGZyYW1lLT5lZGl0b3IoKS0+c3Vic3RpdHV0aW9uc1Bh
bmVsSXNTaG93aW5nKCkpCiAgICAgICAgICAgICAgICAgaXRlbS5zZXRUaXRsZShjb250ZXh0TWVu
dUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyhmYWxzZSkpOwogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGl0ZW0uc2V0VGl0bGUoY29udGV4dE1lbnVJdGVtVGFnU2hvd1N1YnN0aXR1
dGlvbnModHJ1ZSkpOwogICAgICAgICAgICAgc2hvdWxkRW5hYmxlID0gZnJhbWUtPmVkaXRvcigp
LT5jYW5FZGl0KCk7Ci0jZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ01ha2VVcHBlckNhc2U6CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnTWFrZUxvd2VyQ2FzZToKQEAgLTEyNDUsMzQgKzEyNDMsMjIgQEAgdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0
ZW0pIGNvbnN0CiAgICAgICAgICAgICBzaG91bGRFbmFibGUgPSBmcmFtZS0+ZWRpdG9yKCktPmNh
bkVkaXQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0NvcnJlY3RTcGVsbGluZ0F1dG9tYXRpY2FsbHk6Ci0jaWZuZGVmIEJVSUxESU5HX09OX0xF
T1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJhbWUtPmVkaXRvcigpLT5pc0F1dG9t
YXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRDb3B5UGFzdGU6Ci0jaWZu
ZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJhbWUt
PmVkaXRvcigpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU21hcnRRdW90ZXM6Ci0j
aWZuZGVmIEJVSUxESU5HX09OX0xFT1BBUkQKICAgICAgICAgICAgIHNob3VsZENoZWNrID0gZnJh
bWUtPmVkaXRvcigpLT5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwotI2Vu
ZGlmCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdT
bWFydERhc2hlczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAgICAgICAgc2hv
dWxkQ2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVu
YWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnU21hcnRMaW5rczoKLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAg
ICAgICAgICAgc2hvdWxkQ2hlY2sgPSBmcmFtZS0+ZWRpdG9yKCktPmlzQXV0b21hdGljTGlua0Rl
dGVjdGlvbkVuYWJsZWQoKTsKLSNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVGV4dFJlcGxhY2VtZW50OgotI2lmbmRlZiBCVUlMRElOR19P
Tl9MRU9QQVJECiAgICAgICAgICAgICBzaG91bGRDaGVjayA9IGZyYW1lLT5lZGl0b3IoKS0+aXNB
dXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCk7Ci0jZW5kaWYKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1N0b3BTcGVha2luZzoKICAgICAg
ICAgICAgIHNob3VsZEVuYWJsZSA9IGNsaWVudCgpICYmIGNsaWVudCgpLT5pc1NwZWFraW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGIx
NDBmOWMwNzEwMTkxOTdjNWQxNDBkZTMxMzdiNDExNDk3NWUzOGMuLjljNGJkZjNmOTAzYjZkZjZl
NDBhYWMwNjk0ODU0ZmE4MTgwZTI2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1NlYXJjaEluU3BvdGxpZ2h0KCkKIAogU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nl
YXJjaFdlYigpCiB7Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPiBzZWFyY2hQcm92aWRlck5hbWUoQWRvcHRDRiwgd2tDb3B5RGVmYXVs
dFNlYXJjaFByb3ZpZGVyRGlzcGxheU5hbWUoKSk7CiAgICAgcmV0dXJuIGZvcm1hdExvY2FsaXpl
ZFN0cmluZyhXRUJfVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCAlQCIsICJTZWFyY2ggd2l0aCBzZWFy
Y2ggcHJvdmlkZXIgY29udGV4dCBtZW51IGl0ZW0gd2l0aCBwcm92aWRlciBuYW1lIGluc2VydGVk
IiksIHNlYXJjaFByb3ZpZGVyTmFtZS5nZXQoKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5kZXggOTgyODc2ZDA1ZDRj
ODhmN2Y1NWIxZTE4OTY4ZjQ3MTM2OTg0OGQxZi4uMTVlNjgwODYyZGI1Njc1NDVmYTQ5MWE1NTEx
YmJkYWZiMmYxODMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZW1vcnlQ
cmVzc3VyZUhhbmRsZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkKIHsKIH0KIAotI2lmICFQTEFURk9STShNQUMpIHx8
IGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgfHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9X
X0xFT1BBUkQpIHx8IFBMQVRGT1JNKElPUykKKyNpZiAhUExBVEZPUk0oTUFDKSB8fCBkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkgfHwgUExBVEZPUk0oSU9TKQogdm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKSB7IH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRs
ZXI6OnVuaW5zdGFsbCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U3VkZGVuVGVybWluYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1ZGRlblRlcm1p
bmF0aW9uLmgKaW5kZXggODEwZmVhNzMxNGYxYjU3NjllNzdhZTQzZGU3ZWNjNmMzZTFmYWJkZS4u
YjY2YWUxYWJjN2Q4MDAzYzcwM2RlYzA0YWNjMzM5ZTAyNjVlNjlhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VkZGVuVGVybWluYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TdWRkZW5UZXJtaW5hdGlvbi5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAg
IHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAotI2lmICghUExBVEZPUk0oTUFDKSB8
fCBkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pCisj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlubGluZSB2b2lk
IGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpIHsgfQogICAgIGlubGluZSB2b2lkIGVuYWJsZVN1
ZGRlblRlcm1pbmF0aW9uKCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IGVlNjBiODMx
OGYyMWVkZTRjZTRhOWFjY2JlMGMxN2UxMThlOGZlMmMuLjU1ZDQ3OWI4YTA3Nzg2NTcyZDU0ZjUx
YjdjZGQ0ODBhOTBhMjY2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtMTUxNyw5ICsxNTE3LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogCiAgICAgICAgIC8v
IEZJWE1FOiBtYXliZSBvbmx5IGRvIHRyaWxpbmVhciBpZiB0aGUgaW1hZ2UgaXMgYmVpbmcgc2Nh
bGVkIGRvd24sCiAgICAgICAgIC8vIGJ1dCB0aGVuIHdoYXQgaWYgdGhlIGxheWVyIHNpemUgY2hh
bmdlcz8KLSNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogICAgICAgICBtX2NvbnRlbnRzTGF5
ZXItPnNldE1pbmlmaWNhdGlvbkZpbHRlcihQbGF0Zm9ybUNBTGF5ZXI6OlRyaWxpbmVhcik7Ci0j
ZW5kaWYKICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXRDb250ZW50cyhtX3BlbmRpbmdDb250
ZW50c0ltYWdlLmdldCgpKTsKICAgICAgICAgbV9wZW5kaW5nQ29udGVudHNJbWFnZSA9IDA7CiAK
QEAgLTIzOTIsNyArMjM5MCw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXREZWJ1Z0JvcmRl
cihjb25zdCBDb2xvciYgY29sb3IsIGZsb2F0IGJvcmRlcldpZHRoKQogRmxvYXRTaXplIEdyYXBo
aWNzTGF5ZXJDQTo6Y29uc3RyYWluZWRTaXplKCkgY29uc3QKIHsKICAgICBGbG9hdFNpemUgY29u
c3RyYWluZWRTaXplID0gbV9zaXplOwotI2lmIGRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
fHwgZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCiAgICAgZmxvYXQgdGlsZUNvbHVtbnMgPSBjZWlsZihtX3NpemUu
d2lkdGgoKSAvIGtUaWxlZExheWVyVGlsZVNpemUpOwogICAgIGZsb2F0IHRpbGVSb3dzID0gY2Vp
bGYobV9zaXplLmhlaWdodCgpIC8ga1RpbGVkTGF5ZXJUaWxlU2l6ZSk7CiAgICAgZG91YmxlIG51
bVRpbGVzID0gdGlsZUNvbHVtbnMgKiB0aWxlUm93czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKaW5kZXggZjdmMmQ1MmIz
NDhkN2U4MTY2YzA3ZDhiZjQ0ZWQ4NDk1YWU3NTQ0ZS4uMDAyYjdhMDdhZTQ1YTcxMzNhM2U2M2Mz
MGM0ZDk2MTY1NDkyOWNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvUGxhdGZvcm1DQUxheWVyLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwcmludFRyZWUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFD
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCiAgICAgdm9pZCBzeW5jaHJvbm91c2x5RGlzcGxheVRpbGVzSW5SZWN0
KGNvbnN0IEZsb2F0UmVjdCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBQW5pbWF0aW9uTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25N
YWMubW0KaW5kZXggY2Q4NTY2OTJiM2NiMTdkNjU4NjdjYWVjNmM4ZDYwZjYwZGI4MjExMy4uYzM2
NzlkNzI2ZDRhZTYxZjVjMTBmYzZhZDI5MGRmOTEwZWRiOGRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FBbmltYXRpb25NYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3Jt
Q0FBbmltYXRpb25NYWMubW0KQEAgLTM2LDggKzM2LDYgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUv
UXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8d3RmL1VudXNlZFBhcmFtLmg+CiAKLSNkZWZpbmUgSEFW
RV9NT0RFUk5fUVVBUlRaQ09SRSAoIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCi0KIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAvLyBUaGlzIHZhbHVlIG11c3QgYmUgdGhlIHNhbWUg
YXMgaW4gUGxhdGZvcm1DQUxheWVyTWFjLm1tCkBAIC03NSw3ICs3Myw2IEBAIHN0YXRpYyBQbGF0
Zm9ybUNBQW5pbWF0aW9uOjpGaWxsTW9kZVR5cGUgZnJvbUNBRmlsbE1vZGVUeXBlKE5TU3RyaW5n
KiBzdHJpbmcpCiAgICAgcmV0dXJuIFBsYXRmb3JtQ0FBbmltYXRpb246OkZvcndhcmRzOwogfQog
Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogc3RhdGljIE5TU3RyaW5nKiB0b0NBVmFsdWVG
dW5jdGlvblR5cGUoUGxhdGZvcm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgdHlwZSkK
IHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTEzMiw3ICsxMjksNiBAQCBzdGF0aWMgUGxhdGZv
cm1DQUFuaW1hdGlvbjo6VmFsdWVGdW5jdGlvblR5cGUgZnJvbUNBVmFsdWVGdW5jdGlvblR5cGUo
TlNTdHJpbmcqCiAKICAgICByZXR1cm4gUGxhdGZvcm1DQUFuaW1hdGlvbjo6Tm9WYWx1ZUZ1bmN0
aW9uOwogfQotI2VuZGlmCiAKIHN0YXRpYyBDQU1lZGlhVGltaW5nRnVuY3Rpb24qIHRvQ0FNZWRp
YVRpbWluZ0Z1bmN0aW9uKGNvbnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiwgYm9v
bCByZXZlcnNlKQogewpAQCAtMzQ0LDIxICszNDAsMTMgQEAgdm9pZCBQbGF0Zm9ybUNBQW5pbWF0
aW9uOjpzZXRBZGRpdGl2ZShib29sIHZhbHVlKQogCiBQbGF0Zm9ybUNBQW5pbWF0aW9uOjpWYWx1
ZUZ1bmN0aW9uVHlwZSBQbGF0Zm9ybUNBQW5pbWF0aW9uOjp2YWx1ZUZ1bmN0aW9uKCkgY29uc3QK
IHsKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgQ0FWYWx1ZUZ1bmN0aW9uKiB2ZiA9
IFttX2FuaW1hdGlvbi5nZXQoKSB2YWx1ZUZ1bmN0aW9uXTsKICAgICByZXR1cm4gZnJvbUNBVmFs
dWVGdW5jdGlvblR5cGUoW3ZmIG5hbWVdKTsKLSNlbHNlCi0gICAgcmV0dXJuIE5vVmFsdWVGdW5j
dGlvbjsKLSNlbmRpZgogfQogCiB2b2lkIFBsYXRmb3JtQ0FBbmltYXRpb246OnNldFZhbHVlRnVu
Y3Rpb24oVmFsdWVGdW5jdGlvblR5cGUgdmFsdWUpCiB7Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRa
Q09SRQogICAgIFttX2FuaW1hdGlvbi5nZXQoKSBzZXRWYWx1ZUZ1bmN0aW9uOltDQVZhbHVlRnVu
Y3Rpb24gZnVuY3Rpb25XaXRoTmFtZTp0b0NBVmFsdWVGdW5jdGlvblR5cGUodmFsdWUpXV07Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBQbGF0Zm9y
bUNBQW5pbWF0aW9uOjpzZXRGcm9tVmFsdWUoZmxvYXQgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXll
ck1hYy5tbQppbmRleCA0YzM2MjNhNjM4NTY0MWUyMDU4NzcwMWFiZTc2MDllOThiM2MzMjQ3Li4z
YTdhYzc4MWYyYzQxY2JkYzJlMGZkZDM1MTE4MGQ0M2FjOGEzYTcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNB
TGF5ZXJNYWMubW0KQEAgLTQ0LDggKzQ0LDYgQEAKICNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgogI2ltcG9ydCA8d3RmL1VudXNlZFBhcmFtLmg+CiAKLSNkZWZpbmUgSEFWRV9NT0RFUk5fUVVB
UlRaQ09SRSAoIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkpCi0KIHVzaW5nIHN0ZDo6bWlu
OwogdXNpbmcgc3RkOjptYXg7CiAKQEAgLTk1LDcgKzkzLDcgQEAgc3RhdGljIGRvdWJsZSBtZWRp
YVRpbWVUb0N1cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQpCiAKIEBlbmQKIAotI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiBAaW50ZXJmYWNl
IENBVGlsZWRMYXllcihHcmFwaGljc0xheWVyQ0FQcml2YXRlKQogLSAodm9pZClkaXNwbGF5SW5S
ZWN0OihDR1JlY3QpciBsZXZlbE9mRGV0YWlsOihpbnQpbG9kIG9wdGlvbnM6KE5TRGljdGlvbmFy
eSAqKWRpY3Q7CiAtIChCT09MKWNhbkRyYXdDb25jdXJyZW50bHk7CkBAIC0xMDUsNyArMTAzLDcg
QEAgc3RhdGljIGRvdWJsZSBtZWRpYVRpbWVUb0N1cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQp
CiAKIEBpbnRlcmZhY2UgQ0FMYXllcihQcml2YXRlKQogLSAodm9pZClzZXRDb250ZW50c0NoYW5n
ZWQ7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKIC0gKHZvaWQpc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOihCT09MKWZsYWc7CiAtIChCT09MKWFj
Y2VsZXJhdGVzRHJhd2luZzsKICNlbmRpZgpAQCAtMTQ4LDcgKzE0Niw2IEBAIHN0YXRpYyBOU0Rp
Y3Rpb25hcnkqIG51bGxBY3Rpb25zRGljdGlvbmFyeSgpCiAgICAgcmV0dXJuIGFjdGlvbnM7CiB9
CiAKLSNpZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiBzdGF0aWMgTlNTdHJpbmcqIHRvQ0FGaWx0
ZXJUeXBlKFBsYXRmb3JtQ0FMYXllcjo6RmlsdGVyVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgewpAQCAtMTU4LDcgKzE1NSw2IEBAIHN0YXRpYyBOU1N0cmluZyogdG9DQUZpbHRlclR5
cGUoUGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlIHR5cGUpCiAgICAgZGVmYXVsdDogcmV0dXJu
IDA7CiAgICAgfQogfQotI2VuZGlmCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0
Zm9ybUNBTGF5ZXI6OmNyZWF0ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyKQogewpAQCAtNDYwLDkgKzQ1Niw3IEBAIEZsb2F0UG9pbnQzRCBQbGF0Zm9y
bUNBTGF5ZXI6OmFuY2hvclBvaW50KCkgY29uc3QKIHsKICAgICBDR1BvaW50IHBvaW50ID0gW21f
bGF5ZXIuZ2V0KCkgYW5jaG9yUG9pbnRdOwogICAgIGZsb2F0IHogPSAwOwotI2lmIEhBVkVfTU9E
RVJOX1FVQVJUWkNPUkUKICAgICB6ID0gW21fbGF5ZXIuZ2V0KCkgYW5jaG9yUG9pbnRaXTsKLSNl
bmRpZgogICAgIHJldHVybiBGbG9hdFBvaW50M0QocG9pbnQueCwgcG9pbnQueSwgeik7CiB9CiAK
QEAgLTQ3MCw5ICs0NjQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0QW5jaG9yUG9pbnQo
Y29uc3QgRmxvYXRQb2ludDNEJiB2YWx1ZSkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKICAgICBbbV9sYXllci5nZXQoKSBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSh2YWx1
ZS54KCksIHZhbHVlLnkoKSldOwotI2lmIEhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKICAgICBbbV9s
YXllci5nZXQoKSBzZXRBbmNob3JQb2ludFo6dmFsdWUueigpXTsKLSNlbmRpZgogICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KIApAQCAtNTAyLDI4ICs0OTQsMTQgQEAgdm9pZCBQbGF0
Zm9ybUNBTGF5ZXI6OnNldFN1YmxheWVyVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiB2YWx1ZSkKIAogVHJhbnNmb3JtYXRpb25NYXRyaXggUGxhdGZvcm1DQUxheWVyOjpjb250
ZW50c1RyYW5zZm9ybSgpIGNvbnN0CiB7Ci0jaWYgIUhBVkVfTU9ERVJOX1FVQVJUWkNPUkUKLSAg
ICBpZiAobV9sYXllclR5cGUgIT0gTGF5ZXJUeXBlV2ViTGF5ZXIpCi0gICAgICAgIHJldHVybiBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpOwotICAgICAgICAKLSAgICByZXR1cm4gW3N0YXRpY19jYXN0
PFdlYkxheWVyKj4obV9sYXllci5nZXQoKSkgY29udGVudHNUcmFuc2Zvcm1dOwotI2Vsc2UKKyAg
ICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBjYW4gYmUgcmVtb3ZlZC4KICAgICByZXR1cm4gVHJh
bnNmb3JtYXRpb25NYXRyaXgoKTsKLSNlbmRpZgogfQogCiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6
c2V0Q29udGVudHNUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHZhbHVlKQog
ewotI2lmICFIQVZFX01PREVSTl9RVUFSVFpDT1JFCi0gICAgaWYgKG1fbGF5ZXJUeXBlICE9IExh
eWVyVHlwZVdlYkxheWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlMKLSAgICBbbV9sYXllci5nZXQoKSBzZXRDb250ZW50c1RyYW5zZm9ybTp2YWx1
ZV07Ci0gICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotI2Vsc2UKKyAgICAvLyBGSVhNRTog
VGhpcyBmdW5jdGlvbiBjYW4gYmUgcmVtb3ZlZC4KICAgICBVTlVTRURfUEFSQU0odmFsdWUpOwot
I2VuZGlmCiB9CiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyOjppc0hpZGRlbigpIGNvbnN0CkBAIC01
NDAsMjIgKzUxOCwxNCBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0SGlkZGVuKGJvb2wgdmFs
dWUpCiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyOjppc0dlb21ldHJ5RmxpcHBlZCgpIGNvbnN0CiB7
Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBp
c0dlb21ldHJ5RmxpcHBlZF07Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQog
CiB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0R2VvbWV0cnlGbGlwcGVkKGJvb2wgdmFsdWUpCiB7
Ci0jaWYgSEFWRV9NT0RFUk5fUVVBUlRaQ09SRQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUwogICAgIFttX2xheWVyLmdldCgpIHNldEdlb21ldHJ5RmxpcHBlZDp2YWx1ZV07CiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0odmFsdWUp
OwotI2VuZGlmCiB9CiAKIGJvb2wgUGxhdGZvcm1DQUxheWVyOjppc0RvdWJsZVNpZGVkKCkgY29u
c3QKQEAgLTU4NCw3ICs1NTQsNyBAQCB2b2lkIFBsYXRmb3JtQ0FMYXllcjo6c2V0TWFza3NUb0Jv
dW5kcyhib29sIHZhbHVlKQogCiBib29sIFBsYXRmb3JtQ0FMYXllcjo6YWNjZWxlcmF0ZXNEcmF3
aW5nKCkgY29uc3QKIHsKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05f
U05PV19MRU9QQVJEKQogICAgIHJldHVybiBbbV9sYXllci5nZXQoKSBhY2NlbGVyYXRlc0RyYXdp
bmddOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CkBAIC01OTMsNyArNTYzLDcgQEAgYm9vbCBQ
bGF0Zm9ybUNBTGF5ZXI6OmFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0CiAKIHZvaWQgUGxhdGZv
cm1DQUxheWVyOjpzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0RyYXdpbmcp
CiB7Ci0jaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICBbbV9sYXllci5nZXQoKSBz
ZXRBY2NlbGVyYXRlc0RyYXdpbmc6YWNjZWxlcmF0ZXNEcmF3aW5nXTsKICAgICBFTkRfQkxPQ0tf
T0JKQ19FWENFUFRJT05TCkBAIC02MjgsMjQgKzU5OCwxNiBAQCB2b2lkIFBsYXRmb3JtQ0FMYXll
cjo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUpCiAKIHZvaWQgUGxhdGZv
cm1DQUxheWVyOjpzZXRNaW5pZmljYXRpb25GaWx0ZXIoRmlsdGVyVHlwZSB2YWx1ZSkKIHsKLSNp
ZiBIQVZFX01PREVSTl9RVUFSVFpDT1JFCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CiAgICAgW21fbGF5ZXIuZ2V0KCkgc2V0TWluaWZpY2F0aW9uRmlsdGVyOnRvQ0FGaWx0ZXJUeXBl
KHZhbHVlKV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0odmFsdWUpOwotI2VuZGlmCiB9CiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRN
YWduaWZpY2F0aW9uRmlsdGVyKEZpbHRlclR5cGUgdmFsdWUpCiB7Ci0jaWYgSEFWRV9NT0RFUk5f
UVVBUlRaQ09SRQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVy
LmdldCgpIHNldE1hZ25pZmljYXRpb25GaWx0ZXI6dG9DQUZpbHRlclR5cGUodmFsdWUpXTsKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh2YWx1
ZSk7Ci0jZW5kaWYKIH0KIAogQ29sb3IgUGxhdGZvcm1DQUxheWVyOjpiYWNrZ3JvdW5kQ29sb3Io
KSBjb25zdApAQCAtOTQ4LDcgKzkxMCw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyOjpzZXRUaW1l
T2Zmc2V0KENGVGltZUludGVydmFsIHZhbHVlKQogCiBmbG9hdCBQbGF0Zm9ybUNBTGF5ZXI6OmNv
bnRlbnRzU2NhbGUoKSBjb25zdAogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
ICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgcmV0dXJuIFttX2xheWVyLmdldCgpIGNvbnRlbnRz
U2NhbGVdOwogI2Vsc2UKICAgICByZXR1cm4gMTsKQEAgLTk1Nyw3ICs5MTksNyBAQCBmbG9hdCBQ
bGF0Zm9ybUNBTGF5ZXI6OmNvbnRlbnRzU2NhbGUoKSBjb25zdAogCiB2b2lkIFBsYXRmb3JtQ0FM
YXllcjo6c2V0Q29udGVudHNTY2FsZShmbG9hdCB2YWx1ZSkKIHsKLSNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUwogICAgIFttX2xheWVyLmdldCgpIHNldENvbnRlbnRzU2NhbGU6dmFsdWVd
OwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKQEAgLTk3NSw3ICs5MzcsNyBAQCBUaWxl
ZEJhY2tpbmcqIFBsYXRmb3JtQ0FMYXllcjo6dGlsZWRCYWNraW5nKCkKICAgICByZXR1cm4gW3Rp
bGVDYWNoZUxheWVyIHRpbGVkQmFja2luZ107CiB9CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogdm9pZCBQbGF0Zm9ybUNBTGF5ZXI6OnN5
bmNocm9ub3VzbHlEaXNwbGF5VGlsZXNJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewog
ICAgIGlmIChtX2xheWVyVHlwZSAhPSBMYXllclR5cGVXZWJUaWxlZExheWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUubW0KaW5k
ZXggNjY2ZWEzOTQ2ZmU3OTlmZjI2Y2RmMGFhZGQxZGRiZGU4ZmU1YTA5YS4uNTUwMjEwMjdkMWU5
ZWJmNWU0MmQ2Njk5ZDE3ZDQzM2VlMWQxOTc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1tCkBAIC0zNiw3ICszNiw3IEBA
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLSNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9Q
QVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogQGludGVyZmFjZSBDQUxheWVyIChXZWJDQUxheWVy
RGV0YWlscykKIC0gKHZvaWQpc2V0QWNjZWxlcmF0ZXNEcmF3aW5nOihCT09MKWZsYWc7CiBAZW5k
CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBUaWxlQ2FjaGU6OnNldFNjYWxlKENHRmxvYXQgc2Nh
bGUpCiAgICAgaWYgKG1fc2NhbGUgPT0gc2NhbGUgJiYgbV9kZXZpY2VTY2FsZUZhY3RvciA9PSBk
ZXZpY2VTY2FsZUZhY3RvcikKICAgICAgICAgcmV0dXJuOwogCi0jaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICBWZWN0b3I8RmxvYXRSZWN0
PiBkaXJ0eVJlY3RzOwogCiAgICAgbV9kZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFj
dG9yOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgVGlsZUNhY2hlOjpzZXRTY2FsZShDR0Zsb2F0
IHNjYWxlKQogCiB2b2lkIFRpbGVDYWNoZTo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNj
ZWxlcmF0ZXNEcmF3aW5nKQogewotI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKyNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nID09IGFjY2Vs
ZXJhdGVzRHJhd2luZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTUsNyArMzk1LDcgQEAgUmV0
YWluUHRyPFdlYlRpbGVMYXllcj4gVGlsZUNhY2hlOjpjcmVhdGVUaWxlTGF5ZXIoY29uc3QgSW50
UmVjdCYgdGlsZVJlY3QpCiAgICAgW2xheWVyLmdldCgpIHNldEVkZ2VBbnRpYWxpYXNpbmdNYXNr
OjBdOwogICAgIFtsYXllci5nZXQoKSBzZXRPcGFxdWU6WUVTXTsKIAotI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkK
KyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgW2xheWVyLmdldCgp
IHNldENvbnRlbnRzU2NhbGU6bV9kZXZpY2VTY2FsZUZhY3Rvcl07CiAgICAgW2xheWVyLmdldCgp
IHNldEFjY2VsZXJhdGVzRHJhd2luZzptX2FjY2VsZXJhdGVzRHJhd2luZ107CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>