<?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>110784</bug_id>
          
          <creation_ts>2013-02-25 12:44:18 -0800</creation_ts>
          <short_desc>6% regression in intl1 page cycler on chromium-mac</short_desc>
          <delta_ts>2013-04-08 16:34:01 -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>WONTFIX</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>109888</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>schenney</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841201</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 12:44:18 -0800</bug_when>
    <thetext>6% regression in intl1 page cycler on chromium-mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841202</commentid>
    <comment_count>1</comment_count>
      <attachid>190107</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 12:45:38 -0800</bug_when>
    <thetext>Created attachment 190107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841205</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 12:46:40 -0800</bug_when>
    <thetext>http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/intl1/report.html?history=250&amp;rev=184424</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841206</commentid>
    <comment_count>3</comment_count>
      <attachid>190107</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-25 12:46:53 -0800</bug_when>
    <thetext>Comment on attachment 190107
Patch

Lets give it a whirl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841222</commentid>
    <comment_count>4</comment_count>
      <attachid>190107</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 13:00:08 -0800</bug_when>
    <thetext>Comment on attachment 190107
Patch

Clearing flags on attachment: 190107

Committed r143960: &lt;http://trac.webkit.org/changeset/143960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841223</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 13:00:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841224</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 13:00:28 -0800</bug_when>
    <thetext>Re-opening to watch the perf graph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841312</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 14:50:33 -0800</bug_when>
    <thetext>Does not appear to have healed the bot.  Will wait for a couple more cycles to verify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841379</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 16:08:06 -0800</bug_when>
    <thetext>I&apos;m going to attempt a rollout of http://trac.webkit.org/changeset/143014 next.  If that doesn&apos;t heal the bot, I&apos;ll roll it back in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841381</commentid>
    <comment_count>9</comment_count>
      <attachid>190148</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 16:09:38 -0800</bug_when>
    <thetext>Created attachment 190148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841382</commentid>
    <comment_count>10</comment_count>
      <attachid>190148</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-25 16:10:53 -0800</bug_when>
    <thetext>Comment on attachment 190148
Patch

kling would be the best reviewer.  But this looks like a proper revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841389</commentid>
    <comment_count>11</comment_count>
      <attachid>190148</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 16:14:34 -0800</bug_when>
    <thetext>Comment on attachment 190148
Patch

Clearing flags on attachment: 190148

Committed r143983: &lt;http://trac.webkit.org/changeset/143983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841390</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 16:14:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841391</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 16:14:54 -0800</bug_when>
    <thetext>Re-opening to watch the perf graph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841517</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 18:39:49 -0800</bug_when>
    <thetext>Reverting the patch seems to have healed the bot, but we should wait for a few more cycles to confirm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841647</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 22:34:57 -0800</bug_when>
    <thetext>The bot has not been healed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841666</commentid>
    <comment_count>16</comment_count>
      <attachid>190213</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 23:08:24 -0800</bug_when>
    <thetext>Created attachment 190213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841669</commentid>
    <comment_count>17</comment_count>
      <attachid>190213</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-25 23:10:22 -0800</bug_when>
    <thetext>Comment on attachment 190213
Patch

One might argue we should roll these back in separately, but OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841675</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 23:22:24 -0800</bug_when>
    <thetext>&gt; One might argue we should roll these back in separately, but OK.

Hum...  Yeah, sorry I already kicked off the script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841676</commentid>
    <comment_count>19</comment_count>
      <attachid>190213</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 23:23:33 -0800</bug_when>
    <thetext>Comment on attachment 190213
Patch

Clearing flags on attachment: 190213

Committed r144010: &lt;http://trac.webkit.org/changeset/144010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841677</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 23:23:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841678</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-25 23:24:15 -0800</bug_when>
    <thetext>Still not fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190107</attachid>
            <date>2013-02-25 12:45:38 -0800</date>
            <delta_ts>2013-02-25 16:09:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110784-20130225124153.patch</filename>
            <type>text/plain</type>
            <size>20327</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMzMGQ0MTU5M2M1NTAw
ODhmMTYwNDYyYzVjYmViYjc3ZTVjOWQwNS4uMTUyY2U3NWVlZTc1MmUxODllOWNhNDhiOGI2YjM3
NTBmNTc3NGU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAyLTI1ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgNiUgcmVncmVzc2lvbiBpbiBp
bnRsMSBwYWdlIGN5Y2xlciBvbiBjaHJvbWl1bS1tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDc4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gaGVhbCB0aGUg
cmVncmVzc2lvbiBieSByZXZlcnRpbmcgYWxsIHRoZSBjaGFuZ2VzCisgICAgICAgIHRvIHRoZSBw
cmVsb2FkIHNjYW5uZXIgdXAgdG8gKGFuZCBpbmNsdWRpbmcpCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0MzAyMC8uCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9C
YWNrZ3JvdW5kSFRNTFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6cmVzdW1lRnJvbSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6cHVtcFRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpCYWNrZ3JvdW5kSFRNTFBh
cnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvQ1NT
UHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6
OnNjYW4pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oOgorICAgICAgICAoQ1NT
UHJlbG9hZFNjYW5uZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5l
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1N0YXJ0VGFnKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6aXNTdGFydE9yRW5kVGFnKToKKyAgICAgICAgKFdlYkNvcmU6
OlRva2VuUHJlbG9hZFNjYW5uZXI6OmlkZW50aWZpZXJGb3IpOgorICAgICAgICAoV2ViQ29yZTo6
VG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGl0YXRvckZvcik6CisgICAgICAgIChXZWJDb3JlOjpU
b2tlblByZWxvYWRTY2FubmVyOjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6
Y3JlYXRlUHJlbG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6VG9rZW5QcmVsb2FkU2Nh
bm5lcjo6cHJvY2Vzc1Bvc3NpYmxlVGVtcGxhdGVUYWcpOgorICAgICAgICAoV2ViQ29yZTo6VG9r
ZW5QcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Bvc3NpYmxlU3R5bGVUYWcpOgorICAgICAgICAoV2Vi
Q29yZTo6VG9rZW5QcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Bvc3NpYmxlQmFzZVRhZyk6CisgICAg
ICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcmVsb2FkU2Nhbm5lcjo6c2Nhbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmg6CisgICAgICAgIChUb2tlblByZWxvYWRTY2FubmVyKToKKwogMjAx
My0wMi0yNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdl
ZCBEYXRhYmFzZVRyYWNrZXI6OmdldE1heFNpemVGb3JEYXRhYmFzZSgpIHRvIHJldHVybiB0aGUg
cHJldmlvdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91
bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcAppbmRleCA1NmU0N2ZjZGMzNjAyZjlhYjE0MzU5NjMzMjI3NDFhZGYyMGVk
M2UwLi5iNWVkMTVjNzQ1YTJhOTQyMDFlZjhmYzJiMGM3ZjhkOGI4MDI2ZjQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBA
IC0xNTYsNyArMTU2LDYgQEAgdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6cmVzdW1lRnJvbShQ
YXNzT3duUHRyPENoZWNrcG9pbnQ+IGNoZWNrcG9pbnQpCiAgICAgbV90b2tlbiA9IGNoZWNrcG9p
bnQtPnRva2VuLnJlbGVhc2UoKTsKICAgICBtX3Rva2VuaXplciA9IGNoZWNrcG9pbnQtPnRva2Vu
aXplci5yZWxlYXNlKCk7CiAgICAgbV9pbnB1dC5yZXdpbmRUbyhjaGVja3BvaW50LT5pbnB1dENo
ZWNrcG9pbnQsIGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQpOwotICAgIG1fcHJlbG9hZFNjYW5u
ZXItPnJld2luZFRvKGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCk7CiAgICAg
cHVtcFRva2VuaXplcigpOwogfQogCkBAIC0yNTIsOCArMjUxLDYgQEAgdm9pZCBCYWNrZ3JvdW5k
SFRNTFBhcnNlcjo6cHVtcFRva2VuaXplcigpCiAgICAgICAgICAgICBpZiAoeHNzSW5mbykKICAg
ICAgICAgICAgICAgICB0b2tlbi5zZXRYU1NJbmZvKHhzc0luZm8ucmVsZWFzZSgpKTsKIAotICAg
ICAgICAgICAgbV9wcmVsb2FkU2Nhbm5lci0+c2Nhbih0b2tlbiwgbV9wZW5kaW5nUHJlbG9hZHMp
OwotCiAgICAgICAgICAgICBtX3BlbmRpbmdUb2tlbnMtPmFwcGVuZCh0b2tlbik7CiAgICAgICAg
IH0KIApAQCAtMjgwLDcgKzI3Nyw2IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OnNlbmRU
b2tlbnNUb01haW5UaHJlYWQoKQogICAgIGNodW5rLT50b2tlbnMgPSBtX3BlbmRpbmdUb2tlbnMu
cmVsZWFzZSgpOwogICAgIGNodW5rLT5wcmVsb2Fkcy5zd2FwKG1fcGVuZGluZ1ByZWxvYWRzKTsK
ICAgICBjaHVuay0+aW5wdXRDaGVja3BvaW50ID0gbV9pbnB1dC5jcmVhdGVDaGVja3BvaW50KCk7
Ci0gICAgY2h1bmstPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9IG1fcHJlbG9hZFNjYW5uZXIt
PmNyZWF0ZUNoZWNrcG9pbnQoKTsKICAgICBjYWxsT25NYWluVGhyZWFkKGJpbmQoJkhUTUxEb2N1
bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVBhcnNlZENodW5rRnJvbUJhY2tncm91bmRQYXJzZXIsIG1f
cGFyc2VyLCBjaHVuay5yZWxlYXNlKCkpKTsKIAogICAgIG1fcGVuZGluZ1Rva2VucyA9IGFkb3B0
UHRyKG5ldyBDb21wYWN0SFRNTFRva2VuU3RyZWFtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwYzY2ZmMxYWM5ZmZhNjQ5ZjUz
YmQxODQzNDYzYWIyNmU0MmZkZTUxLi45NTc3MDc5MzY3ZTVkNGI4MjdhODRiYWI3MzZiZTk2ZWM5
YzcwNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNj
YW5uZXIuY3BwCkBAIC01MCwyOSArNTAsMjAgQEAgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6cmVz
ZXQoKQogICAgIG1fcnVsZVZhbHVlLmNsZWFyKCk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENo
YXI+Ci12b2lkIENTU1ByZWxvYWRTY2FubmVyOjpzY2FuQ29tbW9uKGNvbnN0IENoYXIqIGJlZ2lu
LCBjb25zdCBDaGFyKiBlbmQsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiByZXF1ZXN0cykKK3ZvaWQg
Q1NTUHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciog
ZW5kLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0PiA+JiByZXF1ZXN0cykKIHsKICAgICBt
X3JlcXVlc3RzID0gJnJlcXVlc3RzOwotICAgIGZvciAoY29uc3QgQ2hhciogaXQgPSBiZWdpbjsg
aXQgIT0gZW5kICYmIG1fc3RhdGUgIT0gRG9uZVBhcnNpbmdJbXBvcnRSdWxlczsgKytpdCkKKyAg
ICBmb3IgKGNvbnN0IFVDaGFyKiBpdCA9IGJlZ2luOyBpdCAhPSBlbmQgJiYgbV9zdGF0ZSAhPSBE
b25lUGFyc2luZ0ltcG9ydFJ1bGVzOyArK2l0KQogICAgICAgICB0b2tlbml6ZSgqaXQpOwogICAg
IG1fcmVxdWVzdHMgPSAwOwogfQogCi12b2lkIENTU1ByZWxvYWRTY2FubmVyOjpzY2FuKGNvbnN0
IEhUTUxUb2tlbjo6RGF0YVZlY3RvciYgZGF0YSwgUHJlbG9hZFJlcXVlc3RTdHJlYW0mIHJlcXVl
c3RzKQordm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBMQ2hhciogYmVnaW4sIGNv
bnN0IExDaGFyKiBlbmQsIFZlY3RvcjxPd25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4mIHJlcXVlc3Rz
KQogewotICAgIHNjYW5Db21tb24oZGF0YS5kYXRhKCksIGRhdGEuZGF0YSgpICsgZGF0YS5zaXpl
KCksIHJlcXVlc3RzKTsKLX0KLQotdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBT
dHJpbmcmIGRhdGEsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiByZXF1ZXN0cykKLXsKLSAgICBpZiAo
ZGF0YS5pczhCaXQoKSkgewotICAgICAgICBjb25zdCBMQ2hhciogYmVnaW4gPSBkYXRhLmNoYXJh
Y3RlcnM4KCk7Ci0gICAgICAgIHNjYW5Db21tb24oYmVnaW4sIGJlZ2luICsgZGF0YS5sZW5ndGgo
KSwgcmVxdWVzdHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGNvbnN0IFVDaGFyKiBi
ZWdpbiA9IGRhdGEuY2hhcmFjdGVyczE2KCk7Ci0gICAgc2NhbkNvbW1vbihiZWdpbiwgYmVnaW4g
KyBkYXRhLmxlbmd0aCgpLCByZXF1ZXN0cyk7CisgICAgbV9yZXF1ZXN0cyA9ICZyZXF1ZXN0czsK
KyAgICBmb3IgKGNvbnN0IExDaGFyKiBpdCA9IGJlZ2luOyBpdCAhPSBlbmQgJiYgbV9zdGF0ZSAh
PSBEb25lUGFyc2luZ0ltcG9ydFJ1bGVzOyArK2l0KQorICAgICAgICB0b2tlbml6ZSgqaXQpOwor
ICAgIG1fcmVxdWVzdHMgPSAwOwogfQogCiBpbmxpbmUgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6
dG9rZW5pemUoVUNoYXIgYykKQEAgLTIxMyw3ICsyMDQsOCBAQCB2b2lkIENTU1ByZWxvYWRTY2Fu
bmVyOjplbWl0UnVsZSgpCiAgICAgICAgIFN0cmluZyB1cmwgPSBwYXJzZUNTU1N0cmluZ09yVVJM
KG1fcnVsZVZhbHVlLmNoYXJhY3RlcnMoKSwgbV9ydWxlVmFsdWUubGVuZ3RoKCkpOwogICAgICAg
ICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIEtVUkwgYmFzZUVsZW1lbnRVUkw7
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBwYXNzZWQgaW4gZnJvbSB0aGUgSFRNTFByZWxvYWRT
Y2FuZXIgdmlhIHNjYW4oKSEKLSAgICAgICAgICAgIE93blB0cjxQcmVsb2FkUmVxdWVzdD4gcmVx
dWVzdCA9IFByZWxvYWRSZXF1ZXN0OjpjcmVhdGUoImNzcyIsIHVybCwgYmFzZUVsZW1lbnRVUkws
IENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0KTsKKyAgICAgICAgICAgIE93blB0cjxQcmVs
b2FkUmVxdWVzdD4gcmVxdWVzdCA9IFByZWxvYWRSZXF1ZXN0OjpjcmVhdGUoCisgICAgICAgICAg
ICAgICAgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcywgdXJsLCBiYXNlRWxl
bWVudFVSTCwgQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQpOwogICAgICAgICAgICAgLy8g
RklYTUU6IFNob3VsZCB0aGlzIGJlIGluY2x1ZGluZyB0aGUgY2hhcnNldCBpbiB0aGUgcHJlbG9h
ZCByZXF1ZXN0PwogICAgICAgICAgICAgbV9yZXF1ZXN0cy0+YXBwZW5kKHJlcXVlc3QucmVsZWFz
ZSgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
Q1NTUHJlbG9hZFNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxv
YWRTY2FubmVyLmgKaW5kZXggNGI2OWJjMzIzNTZiNGMyMTgxMzNmYjEzZGNhNDIxMGZiM2I2ZjZh
NC4uMjJmNmZhODY5Y2E1MjQ1Mjg4MWI2YTg4MWJkNTFlNjdlNzZmZWI0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oCkBAIC0yOCw3ICsyOCw2
IEBACiAjZGVmaW5lIENTU1ByZWxvYWRTY2FubmVyX2gKIAogI2luY2x1ZGUgIkhUTUxSZXNvdXJj
ZVByZWxvYWRlci5oIgotI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsOCArNDAsOCBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICB2b2lkIHNjYW4oY29uc3QgSFRN
TFRva2VuOjpEYXRhVmVjdG9yJiwgUHJlbG9hZFJlcXVlc3RTdHJlYW0mKTsKLSAgICB2b2lkIHNj
YW4oY29uc3QgU3RyaW5nJiwgUHJlbG9hZFJlcXVlc3RTdHJlYW0mKTsKKyAgICB2b2lkIHNjYW4o
Y29uc3QgVUNoYXIqIGJlZ2luLCBjb25zdCBVQ2hhciogZW5kLCBWZWN0b3I8T3duUHRyPFByZWxv
YWRSZXF1ZXN0PiA+Jik7CisgICAgdm9pZCBzY2FuKGNvbnN0IExDaGFyKiBiZWdpbiwgY29uc3Qg
TENoYXIqIGVuZCwgVmVjdG9yPE93blB0cjxQcmVsb2FkUmVxdWVzdD4gPiYpOwogCiBwcml2YXRl
OgogICAgIGVudW0gU3RhdGUgewpAQCAtNTgsOSArNTcsNiBAQCBwcml2YXRlOgogICAgICAgICBE
b25lUGFyc2luZ0ltcG9ydFJ1bGVzLAogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBD
aGFyPgotICAgIHZvaWQgc2NhbkNvbW1vbihjb25zdCBDaGFyKiBiZWdpbiwgY29uc3QgQ2hhciog
ZW5kLCBQcmVsb2FkUmVxdWVzdFN0cmVhbSYpOwotCiAgICAgaW5saW5lIHZvaWQgdG9rZW5pemUo
VUNoYXIpOwogICAgIHZvaWQgZW1pdFJ1bGUoKTsKIApAQCAtNjksNyArNjUsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZ0J1aWxkZXIgbV9ydWxlVmFsdWU7CiAKICAgICAvLyBPbmx5IG5vbi16ZXJv
IGR1cmluZyBzY2FuKCkKLSAgICBQcmVsb2FkUmVxdWVzdFN0cmVhbSogbV9yZXF1ZXN0czsKKyAg
ICBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0PiA+KiBtX3JlcXVlc3RzOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAK
aW5kZXggYTU3YzVkMzg1ZTNlNzFlNzFiNTUxZDQzY2FlZDA3NTIzODM1YjMwNi4uODQ4NTY0ZDc1
MTZiOTgyOWE0ZjBmOWI2MmFjYjEzMTVhMDRiOGZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC00Myw5ICs0MywxOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVRva2Vu
UHJlbG9hZFNjYW5uZXI6OlRhZ0lkIFRva2VuUHJlbG9hZFNjYW5uZXI6OnRhZ0lkRm9yKGNvbnN0
IEhUTUxUb2tlbjo6RGF0YVZlY3RvciYgZGF0YSkKK3N0YXRpYyBib29sIGlzU3RhcnRUYWcoSFRN
TFRva2VuOjpUeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIHR5cGUgPT0gSFRNTFRva2VuOjpTdGFy
dFRhZzsKK30KKworc3RhdGljIGJvb2wgaXNTdGFydE9yRW5kVGFnKEhUTUxUb2tlbjo6VHlwZSB0
eXBlKQoreworICAgIHJldHVybiB0eXBlID09IEhUTUxUb2tlbjo6RW5kVGFnIHx8IGlzU3RhcnRU
YWcodHlwZSk7Cit9CisKK1Rva2VuUHJlbG9hZFNjYW5uZXI6OlRhZ0lkIFRva2VuUHJlbG9hZFNj
YW5uZXI6OmlkZW50aWZpZXJGb3IoY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQogewotICAg
IEF0b21pY1N0cmluZyB0YWdOYW1lKGRhdGEpOwogICAgIGlmICh0YWdOYW1lID09IGltZ1RhZykK
ICAgICAgICAgcmV0dXJuIEltZ1RhZ0lkOwogICAgIGlmICh0YWdOYW1lID09IGlucHV0VGFnKQpA
QCAtNjMsMjYgKzcyLDcgQEAgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6VGFnSWQgVG9rZW5QcmVsb2Fk
U2Nhbm5lcjo6dGFnSWRGb3IoY29uc3QgSFRNTFRva2VuOjpEYXRhVmUKICAgICByZXR1cm4gVW5r
bm93blRhZ0lkOwogfQogCi1Ub2tlblByZWxvYWRTY2FubmVyOjpUYWdJZCBUb2tlblByZWxvYWRT
Y2FubmVyOjp0YWdJZEZvcihjb25zdCBTdHJpbmcmIHRhZ05hbWUpCi17Ci0gICAgaWYgKHRocmVh
ZFNhZmVNYXRjaCh0YWdOYW1lLCBpbWdUYWcpKQotICAgICAgICByZXR1cm4gSW1nVGFnSWQ7Ci0g
ICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBpbnB1dFRhZykpCi0gICAgICAgIHJldHVy
biBJbnB1dFRhZ0lkOwotICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgbGlua1RhZykp
Ci0gICAgICAgIHJldHVybiBMaW5rVGFnSWQ7Ci0gICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdO
YW1lLCBzY3JpcHRUYWcpKQotICAgICAgICByZXR1cm4gU2NyaXB0VGFnSWQ7Ci0gICAgaWYgKHRo
cmVhZFNhZmVNYXRjaCh0YWdOYW1lLCBzdHlsZVRhZykpCi0gICAgICAgIHJldHVybiBTdHlsZVRh
Z0lkOwotICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgYmFzZVRhZykpCi0gICAgICAg
IHJldHVybiBCYXNlVGFnSWQ7Ci0gICAgaWYgKHRocmVhZFNhZmVNYXRjaCh0YWdOYW1lLCB0ZW1w
bGF0ZVRhZykpCi0gICAgICAgIHJldHVybiBUZW1wbGF0ZVRhZ0lkOwotICAgIHJldHVybiBVbmtu
b3duVGFnSWQ7Ci19Ci0KLVN0cmluZyBUb2tlblByZWxvYWRTY2FubmVyOjppbml0aWF0b3JGb3Io
VGFnSWQgdGFnSWQpCitTdHJpbmcgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6aW5pdGl0YXRvckZvcihU
YWdJZCB0YWdJZCkKIHsKICAgICBzd2l0Y2ggKHRhZ0lkKSB7CiAgICAgY2FzZSBJbWdUYWdJZDoK
QEAgLTExNyw4ICsxMDcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc0F0dHJpYnV0ZXMo
Y29uc3QgSFRNTFRva2VuOjpBdHRyaWJ1dGVMaXN0JiBhdHRyaWJ1dGVzKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKwogICAgICAgICBpZiAobV90YWdJZCA+PSBVbmtu
b3duVGFnSWQpCiAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgZm9yIChIVE1MVG9rZW46
OkF0dHJpYnV0ZUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBhdHRyaWJ1dGVzLmJlZ2luKCk7
IGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBBdG9taWNT
dHJpbmcgYXR0cmlidXRlTmFtZShpdGVyLT5uYW1lKTsKICAgICAgICAgICAgIFN0cmluZyBhdHRy
aWJ1dGVWYWx1ZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlBvc3NpYmxlKGl0ZXItPnZhbHVl
KTsKQEAgLTEyNiwyMiArMTE4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAotI2lm
IEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLSAgICB2b2lkIHByb2Nlc3NBdHRyaWJ1dGVz
KGNvbnN0IFZlY3RvcjxDb21wYWN0SFRNTFRva2VuOjpBdHRyaWJ1dGU+JiBhdHRyaWJ1dGVzKQot
ICAgIHsKLSAgICAgICAgaWYgKG1fdGFnSWQgPj0gVW5rbm93blRhZ0lkKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBmb3IgKFZlY3RvcjxDb21wYWN0SFRNTFRva2VuOjpBdHRyaWJ1dGU+
Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYXR0cmlidXRlcy5iZWdpbigpOyBpdGVyICE9IGF0dHJp
YnV0ZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgICAgIHByb2Nlc3NBdHRyaWJ1dGUoaXRlci0+
bmFtZSwgaXRlci0+dmFsdWUpOwotICAgIH0KLSNlbmRpZgotCiAgICAgUGFzc093blB0cjxQcmVs
b2FkUmVxdWVzdD4gY3JlYXRlUHJlbG9hZFJlcXVlc3QoY29uc3QgS1VSTCYgcHJlZGljdGVkQmFz
ZVVSTCkKICAgICB7CiAgICAgICAgIGlmICghc2hvdWxkUHJlbG9hZCgpKQogICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgT3duUHRyPFByZWxvYWRSZXF1ZXN0PiByZXF1ZXN0
ID0gUHJlbG9hZFJlcXVlc3Q6OmNyZWF0ZShpbml0aWF0b3JGb3IobV90YWdJZCksIG1fdXJsVG9M
b2FkLCBwcmVkaWN0ZWRCYXNlVVJMLCByZXNvdXJjZVR5cGUoKSk7CisgICAgICAgIE93blB0cjxQ
cmVsb2FkUmVxdWVzdD4gcmVxdWVzdCA9IFByZWxvYWRSZXF1ZXN0OjpjcmVhdGUoaW5pdGl0YXRv
ckZvcihtX3RhZ0lkKSwgbV91cmxUb0xvYWQsIHByZWRpY3RlZEJhc2VVUkwsIHJlc291cmNlVHlw
ZSgpKTsKICAgICAgICAgcmVxdWVzdC0+c2V0Q3Jvc3NPcmlnaW5Nb2RlQWxsb3dzQ29va2llcyhj
cm9zc09yaWdpbk1vZGVBbGxvd3NDb29raWVzKCkpOwogICAgICAgICByZXF1ZXN0LT5zZXRDaGFy
c2V0KGNoYXJzZXQoKSk7CiAgICAgICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKQEAgLTI2
MiwxMTEgKzI0NCw4OCBAQCBUb2tlblByZWxvYWRTY2FubmVyOjp+VG9rZW5QcmVsb2FkU2Nhbm5l
cigpCiB7CiB9CiAKLVRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IFRva2VuUHJlbG9hZFNj
YW5uZXI6OmNyZWF0ZUNoZWNrcG9pbnQoKQotewotICAgIFRva2VuUHJlbG9hZFNjYW5uZXJDaGVj
a3BvaW50IGNoZWNrcG9pbnQgPSBtX2NoZWNrcG9pbnRzLnNpemUoKTsKLSAgICBtX2NoZWNrcG9p
bnRzLmFwcGVuZChDaGVja3BvaW50KG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwsIG1faW5TdHls
ZQogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLCBtX3RlbXBsYXRlQ291bnQKLSNlbmRpZgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKSk7Ci0gICAgcmV0dXJuIGNoZWNrcG9pbnQ7Ci19Ci0KLXZvaWQg
VG9rZW5QcmVsb2FkU2Nhbm5lcjo6cmV3aW5kVG8oVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9p
bnQgY2hlY2twb2ludEluZGV4KQorYm9vbCBUb2tlblByZWxvYWRTY2FubmVyOjpwcm9jZXNzUG9z
c2libGVUZW1wbGF0ZVRhZyhUYWdJZCB0YWdJZCwgSFRNTFRva2VuOjpUeXBlIHR5cGUpCiB7Ci0g
ICAgQVNTRVJUKGNoZWNrcG9pbnRJbmRleCA8IG1fY2hlY2twb2ludHMuc2l6ZSgpKTsgLy8gSWYg
dGhpcyBBU1NFUlQgZmlyZXMsIGNoZWNrcG9pbnRJbmRleCBpcyBpbnZhbGlkLgotICAgIGNvbnN0
IENoZWNrcG9pbnQmIGNoZWNrcG9pbnQgPSBtX2NoZWNrcG9pbnRzW2NoZWNrcG9pbnRJbmRleF07
Ci0gICAgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCA9IGNoZWNrcG9pbnQucHJlZGljdGVkQmFz
ZUVsZW1lbnRVUkw7Ci0gICAgbV9pblN0eWxlID0gY2hlY2twb2ludC5pblN0eWxlOwotI2lmIEVO
QUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgIG1fdGVtcGxhdGVDb3VudCA9IGNoZWNrcG9pbnQu
dGVtcGxhdGVDb3VudDsKLSNlbmRpZgotICAgIG1fY3NzU2Nhbm5lci5yZXNldCgpOwotICAgIG1f
Y2hlY2twb2ludHMuY2xlYXIoKTsKKyAgICBpZiAoaXNTdGFydE9yRW5kVGFnKHR5cGUpICYmIHRh
Z0lkID09IFRlbXBsYXRlVGFnSWQpIHsKKyAgICAgICAgaWYgKGlzU3RhcnRUYWcodHlwZSkpCisg
ICAgICAgICAgICBtX3RlbXBsYXRlQ291bnQrKzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bV90ZW1wbGF0ZUNvdW50LS07CisgICAgICAgIHJldHVybiB0cnVlOyAvLyBUd2FzIG91ciB0b2tl
bi4KKyAgICB9CisgICAgLy8gSWYgd2UncmUgaW4gYSB0ZW1wbGF0ZSB3ZSAiY29uc3VtZSIgYWxs
IHRva2Vucy4KKyAgICByZXR1cm4gbV90ZW1wbGF0ZUNvdW50ID4gMDsKIH0KKyNlbmRpZgogCi12
b2lkIFRva2VuUHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgSFRNTFRva2VuJiB0b2tlbiwgVmVj
dG9yPE93blB0cjxQcmVsb2FkUmVxdWVzdD4gPiYgcmVxdWVzdHMpCitib29sIFRva2VuUHJlbG9h
ZFNjYW5uZXI6OnByb2Nlc3NQb3NzaWJsZVN0eWxlVGFnKFRhZ0lkIHRhZ0lkLCBIVE1MVG9rZW46
OlR5cGUgdHlwZSkKIHsKLSAgICBzY2FuQ29tbW9uKHRva2VuLCByZXF1ZXN0cyk7CisgICAgQVNT
RVJUKGlzU3RhcnRPckVuZFRhZyh0eXBlKSk7CisgICAgaWYgKHRhZ0lkICE9IFN0eWxlVGFnSWQp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1faW5TdHlsZSA9IGlzU3RhcnRUYWcodHlw
ZSk7CisKKyAgICBpZiAoIW1faW5TdHlsZSkKKyAgICAgICAgbV9jc3NTY2FubmVyLnJlc2V0KCk7
CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNF
UikKLXZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBDb21wYWN0SFRNTFRva2Vu
JiB0b2tlbiwgVmVjdG9yPE93blB0cjxQcmVsb2FkUmVxdWVzdD4gPiYgcmVxdWVzdHMpCitib29s
IFRva2VuUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NQb3NzaWJsZUJhc2VUYWcoVGFnSWQgdGFnSWQs
IGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4pCiB7Ci0gICAgc2NhbkNvbW1vbih0b2tlbiwgcmVxdWVz
dHMpOworICAgIEFTU0VSVChpc1N0YXJ0VGFnKHRva2VuLnR5cGUoKSkpOworICAgIGlmICh0YWdJ
ZCAhPSBCYXNlVGFnSWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFRoZSBmaXJz
dCA8YmFzZT4gZWxlbWVudCBpcyB0aGUgb25lIHRoYXQgd2lucy4KKyAgICBpZiAoIW1fcHJlZGlj
dGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGZvciAoSFRNTFRva2VuOjpBdHRyaWJ1dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gdG9r
ZW4uYXR0cmlidXRlcygpLmJlZ2luKCk7IGl0ZXIgIT0gdG9rZW4uYXR0cmlidXRlcygpLmVuZCgp
OyArK2l0ZXIpIHsKKyAgICAgICAgQXRvbWljU3RyaW5nIGF0dHJpYnV0ZU5hbWUoaXRlci0+bmFt
ZSk7CisgICAgICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IGhyZWZBdHRyKSB7CisgICAgICAgICAg
ICBTdHJpbmcgaHJlZlZhbHVlID0gU3RyaW5nSW1wbDo6Y3JlYXRlOEJpdElmUG9zc2libGUoaXRl
ci0+dmFsdWUpOworICAgICAgICAgICAgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCA9IEtVUkwo
bV9kb2N1bWVudFVSTCwgc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGhyZWZWYWx1
ZSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7CiB9Ci0jZW5kaWYKIAotdGVtcGxhdGU8dHlwZW5hbWUgVG9rZW4+Ci12b2lkIFRva2VuUHJl
bG9hZFNjYW5uZXI6OnNjYW5Db21tb24oY29uc3QgVG9rZW4mIHRva2VuLCBWZWN0b3I8T3duUHRy
PFByZWxvYWRSZXF1ZXN0PiA+JiByZXF1ZXN0cykKK3ZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6
c2Nhbihjb25zdCBIVE1MVG9rZW4mIHRva2VuLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0
PiA+JiByZXF1ZXN0cykKIHsKLSAgICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgewotICAgIGNhc2Ug
SFRNTFRva2VuOjpDaGFyYWN0ZXI6IHsKLSAgICAgICAgaWYgKCFtX2luU3R5bGUpCisgICAgLy8g
PHN0eWxlPiBpcyB0aGUgb25seSBwbGFjZSB3ZSBzZWFyY2ggZm9yIHVybHMgaW4gbm9uLXN0YXJ0
L2VuZC10YWcgdG9rZW5zLgorICAgIGlmIChtX2luU3R5bGUpIHsKKyAgICAgICAgaWYgKHRva2Vu
LnR5cGUoKSAhPSBIVE1MVG9rZW46OkNoYXJhY3RlcikKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgbV9jc3NTY2FubmVyLnNjYW4odG9rZW4uZGF0YSgpLCByZXF1ZXN0cyk7Ci0gICAgICAg
IHJldHVybjsKKyAgICAgICAgY29uc3QgSFRNTFRva2VuOjpEYXRhVmVjdG9yJiBjaGFyYWN0ZXJz
ID0gdG9rZW4uY2hhcmFjdGVycygpOworICAgICAgICByZXR1cm4gbV9jc3NTY2FubmVyLnNjYW4o
Y2hhcmFjdGVycy5iZWdpbigpLCBjaGFyYWN0ZXJzLmVuZCgpLCByZXF1ZXN0cyk7CiAgICAgfQot
ICAgIGNhc2UgSFRNTFRva2VuOjpFbmRUYWc6IHsKLSAgICAgICAgVGFnSWQgdGFnSWQgPSB0YWdJ
ZEZvcih0b2tlbi5kYXRhKCkpOwotI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAg
ICBpZiAodGFnSWQgPT0gVGVtcGxhdGVUYWdJZCkgewotICAgICAgICAgICAgaWYgKG1fdGVtcGxh
dGVDb3VudCkKLSAgICAgICAgICAgICAgICAtLW1fdGVtcGxhdGVDb3VudDsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIGlmICh0YWdJZCA9PSBTdHlsZVRh
Z0lkKSB7Ci0gICAgICAgICAgICBpZiAobV9pblN0eWxlKQotICAgICAgICAgICAgICAgIG1fY3Nz
U2Nhbm5lci5yZXNldCgpOwotICAgICAgICAgICAgbV9pblN0eWxlID0gZmFsc2U7Ci0gICAgICAg
IH0KKworICAgIGlmICghaXNTdGFydE9yRW5kVGFnKHRva2VuLnR5cGUoKSkpCiAgICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgY2FzZSBIVE1MVG9rZW46OlN0YXJ0VGFnOiB7Ci0jaWYgRU5BQkxF
KFRFTVBMQVRFX0VMRU1FTlQpCi0gICAgICAgIGlmIChtX3RlbXBsYXRlQ291bnQpCi0gICAgICAg
ICAgICByZXR1cm47Ci0jZW5kaWYKLSAgICAgICAgVGFnSWQgdGFnSWQgPSB0YWdJZEZvcih0b2tl
bi5kYXRhKCkpOworCisgICAgQXRvbWljU3RyaW5nIHRhZ05hbWUodG9rZW4ubmFtZSgpKTsKKyAg
ICBUYWdJZCB0YWdJZCA9IGlkZW50aWZpZXJGb3IodGFnTmFtZSk7CisKICNpZiBFTkFCTEUoVEVN
UExBVEVfRUxFTUVOVCkKLSAgICAgICAgaWYgKHRhZ0lkID09IFRlbXBsYXRlVGFnSWQpIHsKLSAg
ICAgICAgICAgICsrbV90ZW1wbGF0ZUNvdW50OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9CisgICAgaWYgKHByb2Nlc3NQb3NzaWJsZVRlbXBsYXRlVGFnKHRhZ0lkLCB0b2tlbi50eXBl
KCkpKQorICAgICAgICByZXR1cm47CiAjZW5kaWYKLSAgICAgICAgaWYgKHRhZ0lkID09IFN0eWxl
VGFnSWQpIHsKLSAgICAgICAgICAgIG1faW5TdHlsZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHRhZ0lkID09IEJhc2VUYWdJZCkgewotICAgICAg
ICAgICAgLy8gVGhlIGZpcnN0IDxiYXNlPiBlbGVtZW50IGlzIHRoZSBvbmUgdGhhdCB3aW5zLgot
ICAgICAgICAgICAgaWYgKCFtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB1cGRhdGVQcmVkaWN0ZWRCYXNlVVJM
KHRva2VuKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFN0YXJ0
VGFnU2Nhbm5lciBzY2FubmVyKHRhZ0lkKTsKLSAgICAgICAgc2Nhbm5lci5wcm9jZXNzQXR0cmli
dXRlcyh0b2tlbi5hdHRyaWJ1dGVzKCkpOwotICAgICAgICBPd25QdHI8UHJlbG9hZFJlcXVlc3Q+
IHJlcXVlc3QgPSBzY2FubmVyLmNyZWF0ZVByZWxvYWRSZXF1ZXN0KG1fcHJlZGljdGVkQmFzZUVs
ZW1lbnRVUkwpOwotICAgICAgICBpZiAocmVxdWVzdCkKLSAgICAgICAgICAgIHJlcXVlc3RzLmFw
cGVuZChyZXF1ZXN0LnJlbGVhc2UoKSk7CisgICAgaWYgKHByb2Nlc3NQb3NzaWJsZVN0eWxlVGFn
KHRhZ0lkLCB0b2tlbi50eXBlKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGRlZmF1
bHQ6IHsKKyAgICBpZiAoIWlzU3RhcnRUYWcodG9rZW4udHlwZSgpKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChwcm9jZXNzUG9zc2libGVCYXNlVGFnKHRhZ0lkLCB0b2tlbikpCiAgICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgfQotfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUb2tlbj4KLXZv
aWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6dXBkYXRlUHJlZGljdGVkQmFzZVVSTChjb25zdCBUb2tl
biYgdG9rZW4pCi17Ci0gICAgQVNTRVJUKG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0
eSgpKTsKLSAgICBpZiAoY29uc3QgdHlwZW5hbWUgVG9rZW46OkF0dHJpYnV0ZSogaHJlZkF0dHJp
YnV0ZSA9IHRva2VuLmdldEF0dHJpYnV0ZUl0ZW0oaHJlZkF0dHIpKQotICAgICAgICBtX3ByZWRp
Y3RlZEJhc2VFbGVtZW50VVJMID0gS1VSTChtX2RvY3VtZW50VVJMLCBzdHJpcExlYWRpbmdBbmRU
cmFpbGluZ0hUTUxTcGFjZXMoaHJlZkF0dHJpYnV0ZS0+dmFsdWUpKS5jb3B5KCk7CisgICAgU3Rh
cnRUYWdTY2FubmVyIHNjYW5uZXIodGFnSWQpOworICAgIHNjYW5uZXIucHJvY2Vzc0F0dHJpYnV0
ZXModG9rZW4uYXR0cmlidXRlcygpKTsKKyAgICBPd25QdHI8UHJlbG9hZFJlcXVlc3Q+IHJlcXVl
c3QgPSAgc2Nhbm5lci5jcmVhdGVQcmVsb2FkUmVxdWVzdChtX3ByZWRpY3RlZEJhc2VFbGVtZW50
VVJMKTsKKyAgICBpZiAocmVxdWVzdCkKKyAgICAgICAgcmVxdWVzdHMuYXBwZW5kKHJlcXVlc3Qu
cmVsZWFzZSgpKTsKIH0KIAogSFRNTFByZWxvYWRTY2FubmVyOjpIVE1MUHJlbG9hZFNjYW5uZXIo
Y29uc3QgSFRNTFBhcnNlck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IEtVUkwmIGRvY3VtZW50VVJM
KQpAQCAtMzkyLDE2ICszNTEsMTUgQEAgdm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnNjYW4oSFRN
TFJlc291cmNlUHJlbG9hZGVyKiBwcmVsb2FkZXIsIGNvbnN0IEtVUkwmIHN0YXIKICAgICBpZiAo
IXN0YXJ0aW5nQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgpKQogICAgICAgICBtX3NjYW5uZXIuc2V0
UHJlZGljdGVkQmFzZUVsZW1lbnRVUkwoc3RhcnRpbmdCYXNlRWxlbWVudFVSTCk7CiAKLSAgICBQ
cmVsb2FkUmVxdWVzdFN0cmVhbSByZXF1ZXN0czsKLQorICAgIFZlY3RvcjxPd25QdHI8UHJlbG9h
ZFJlcXVlc3Q+ID4gcmVxdWVzdHM7CiAgICAgd2hpbGUgKG1fdG9rZW5pemVyLT5uZXh0VG9rZW4o
bV9zb3VyY2UsIG1fdG9rZW4pKSB7Ci0gICAgICAgIGlmIChtX3Rva2VuLnR5cGUoKSA9PSBIVE1M
VG9rZW46OlN0YXJ0VGFnKQorICAgICAgICBpZiAoaXNTdGFydFRhZyhtX3Rva2VuLnR5cGUoKSkp
CiAgICAgICAgICAgICBtX3Rva2VuaXplci0+dXBkYXRlU3RhdGVGb3IoQXRvbWljU3RyaW5nKG1f
dG9rZW4ubmFtZSgpKSk7CiAgICAgICAgIG1fc2Nhbm5lci5zY2FuKG1fdG9rZW4sIHJlcXVlc3Rz
KTsKICAgICAgICAgbV90b2tlbi5jbGVhcigpOwogICAgIH0KLQotICAgIHByZWxvYWRlci0+dGFr
ZUFuZFByZWxvYWQocmVxdWVzdHMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVxdWVz
dHMuc2l6ZSgpOyBpKyspCisgICAgICAgIHByZWxvYWRlci0+cHJlbG9hZChyZXF1ZXN0c1tpXS5y
ZWxlYXNlKCkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUHJlbG9hZFNjYW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5oCmluZGV4IDQ3YTU0NDRmMTBlOGNmZGQ2YmE3MGIwNmJlMDhmMjU0NDA0
Y2MwMWIuLmRmNjQ3MGEwMDIxNGQyZDgzMDI3MjJlMzc3YWJkZTFiYzg5ZDg5ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oCkBAIC0yOCwx
MCArMjgsOCBAQAogI2RlZmluZSBIVE1MUHJlbG9hZFNjYW5uZXJfaAogCiAjaW5jbHVkZSAiQ1NT
UHJlbG9hZFNjYW5uZXIuaCIKLSNpbmNsdWRlICJDb21wYWN0SFRNTFRva2VuLmgiCiAjaW5jbHVk
ZSAiSFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCi0jaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDI0ICs0NSwxMCBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgVG9rZW5QcmVsb2FkU2Nhbm5lcihjb25zdCBLVVJMJiBk
b2N1bWVudFVSTCk7CiAgICAgflRva2VuUHJlbG9hZFNjYW5uZXIoKTsKIAotICAgIHZvaWQgc2Nh
bihjb25zdCBIVE1MVG9rZW4mLCBQcmVsb2FkUmVxdWVzdFN0cmVhbSYgcmVxdWVzdHMpOwotI2lm
IEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLSAgICB2b2lkIHNjYW4oY29uc3QgQ29tcGFj
dEhUTUxUb2tlbiYsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiByZXF1ZXN0cyk7Ci0jZW5kaWYKKyAg
ICB2b2lkIHNjYW4oY29uc3QgSFRNTFRva2VuJiwgVmVjdG9yPE93blB0cjxQcmVsb2FkUmVxdWVz
dD4gPiYgcmVxdWVzdHMpOwogCiAgICAgdm9pZCBzZXRQcmVkaWN0ZWRCYXNlRWxlbWVudFVSTChj
b25zdCBLVVJMJiB1cmwpIHsgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCA9IHVybDsgfQogCi0g
ICAgLy8gQSBUb2tlblByZWxvYWRTY2FubmVyQ2hlY2twb2ludCBpcyB2YWxpZCB1bnRpbCB0aGUg
bmV4dCBjYWxsIHRvIHJld2luZFRvLAotICAgIC8vIGF0IHdoaWNoIHBvaW50IGFsbCBvdXRzdGFu
ZGluZyBjaGVja3BvaW50cyBhcmUgaW52YWxpZGF0ZWQuCi0gICAgVG9rZW5QcmVsb2FkU2Nhbm5l
ckNoZWNrcG9pbnQgY3JlYXRlQ2hlY2twb2ludCgpOwotICAgIHZvaWQgcmV3aW5kVG8oVG9rZW5Q
cmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQpOwotCi0gICAgYm9vbCBpc1NhZmVUb1NlbmRUb0Fub3Ro
ZXJUaHJlYWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnRVUkwuaXNTYWZlVG9T
ZW5kVG9Bbm90aGVyVGhyZWFkKCkKLSAgICAgICAgICAgICYmIG1fcHJlZGljdGVkQmFzZUVsZW1l
bnRVUkwuaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKCk7Ci0gICAgfQotCiBwcml2YXRlOgog
ICAgIGVudW0gVGFnSWQgewogICAgICAgICAvLyBUaGVzZSB0YWdzIGFyZSBzY2FubmVkIGJ5IHRo
ZSBTdGFydFRhZ1NjYW5uZXIuCkBAIC04Miw0OCArNjYsMjQgQEAgcHJpdmF0ZToKIAogICAgIGNs
YXNzIFN0YXJ0VGFnU2Nhbm5lcjsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFRva2VuPgotICAg
IGlubGluZSB2b2lkIHNjYW5Db21tb24oY29uc3QgVG9rZW4mLCBQcmVsb2FkUmVxdWVzdFN0cmVh
bSYgcmVxdWVzdHMpOwotCi0gICAgc3RhdGljIFRhZ0lkIHRhZ0lkRm9yKGNvbnN0IEhUTUxUb2tl
bjo6RGF0YVZlY3RvciYpOwotICAgIHN0YXRpYyBUYWdJZCB0YWdJZEZvcihjb25zdCBTdHJpbmcm
KTsKLQotICAgIHN0YXRpYyBTdHJpbmcgaW5pdGlhdG9yRm9yKFRhZ0lkKTsKLQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFRva2VuPgotICAgIHZvaWQgdXBkYXRlUHJlZGljdGVkQmFzZVVSTChjb25z
dCBUb2tlbiYpOworICAgIHN0YXRpYyBUYWdJZCBpZGVudGlmaWVyRm9yKGNvbnN0IEF0b21pY1N0
cmluZyYgdGFnTmFtZSk7CisgICAgc3RhdGljIFN0cmluZyBpbml0aXRhdG9yRm9yKFRhZ0lkKTsK
IAotICAgIHN0cnVjdCBDaGVja3BvaW50IHsKLSAgICAgICAgQ2hlY2twb2ludChjb25zdCBLVVJM
JiBwcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCwgYm9vbCBpblN0eWxlCiAjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCi0gICAgICAgICAgICAsIHNpemVfdCB0ZW1wbGF0ZUNvdW50CisgICAgYm9v
bCBwcm9jZXNzUG9zc2libGVUZW1wbGF0ZVRhZyhUYWdJZCwgSFRNTFRva2VuOjpUeXBlKTsKICNl
bmRpZgotICAgICAgICAgICAgKQotICAgICAgICAgICAgOiBwcmVkaWN0ZWRCYXNlRWxlbWVudFVS
TChwcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCkKLSAgICAgICAgICAgICwgaW5TdHlsZShpblN0eWxl
KQotI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAgICAgICAgLCB0ZW1wbGF0ZUNv
dW50KHRlbXBsYXRlQ291bnQpCi0jZW5kaWYKLSAgICAgICAgewotICAgICAgICB9CiAKLSAgICAg
ICAgS1VSTCBwcmVkaWN0ZWRCYXNlRWxlbWVudFVSTDsKLSAgICAgICAgYm9vbCBpblN0eWxlOwot
I2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQotICAgICAgICBzaXplX3QgdGVtcGxhdGVDb3Vu
dDsKLSNlbmRpZgotICAgIH07CisgICAgYm9vbCBwcm9jZXNzUG9zc2libGVTdHlsZVRhZyhUYWdJ
ZCwgSFRNTFRva2VuOjpUeXBlKTsKKyAgICBib29sIHByb2Nlc3NQb3NzaWJsZUJhc2VUYWcoVGFn
SWQsIGNvbnN0IEhUTUxUb2tlbiYpOwogCiAgICAgQ1NTUHJlbG9hZFNjYW5uZXIgbV9jc3NTY2Fu
bmVyOwotICAgIGNvbnN0IEtVUkwgbV9kb2N1bWVudFVSTDsKKyAgICBLVVJMIG1fZG9jdW1lbnRV
Ukw7CiAgICAgS1VSTCBtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMOwogICAgIGJvb2wgbV9pblN0
eWxlOwogCiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgc2l6ZV90IG1fdGVtcGxh
dGVDb3VudDsKICNlbmRpZgotCi0gICAgVmVjdG9yPENoZWNrcG9pbnQ+IG1fY2hlY2twb2ludHM7
CiB9OwogCiBjbGFzcyBIVE1MUHJlbG9hZFNjYW5uZXIgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190148</attachid>
            <date>2013-02-25 16:09:38 -0800</date>
            <delta_ts>2013-02-25 23:08:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110784-20130225160554.patch</filename>
            <type>text/plain</type>
            <size>9932</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzOTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgzY2MyZTc4NTY1Y2Q2
OTMzNzM0NDAyY2M5MTc4OGNhMGI5NzMxYi4uYjhmMWI1MTI3ZWNmYjQ4MTdkOTg0MmM0OGMxNjIx
Y2RkYjgzZDQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTI1ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgNiUgcmVncmVzc2lvbiBpbiBp
bnRsMSBwYWdlIGN5Y2xlciBvbiBjaHJvbWl1bS1tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDc4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmV2ZXJ0cyBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xNDMwMTQgdG8gc2VlIGlmCisgICAgICAgIHRoYXQncyB0aGUg
Y2F1c2Ugb2YgdGhlIFBMVCByZWdyZXNzaW9uLiBJZiBpdCdzIG5vdCB0aGUgY2F1c2UsIEknbGwK
KyAgICAgICAgcm9sbCBpdCBiYWNrIGluLgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6YWRkQXR0cmlidXRlSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVhYmxlRWxlbWVudERhdGE6OlNoYXJlYWJsZUVsZW1lbnREYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlVuaXF1ZUVsZW1lbnREYXRhOjptYWtlU2hhcmVhYmxlQ29weSk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6YWRkQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnREYXRhOjpyZW1vdmVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vRWxlbWVu
dC5oOgorICAgICAgICAoRWxlbWVudERhdGEpOgorICAgICAgICAoVW5pcXVlRWxlbWVudERhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6Om11dGFibGVBdHRyaWJ1dGVWZWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6aW1t
dXRhYmxlQXR0cmlidXRlQXJyYXkpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6Omxl
bmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6Z2V0QXR0cmlidXRlSXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50RGF0YTo6YXR0cmlidXRlSXRlbSk6CisKIDIwMTMt
MDItMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UGFnZTo6bV9pc0luV2luZG93IGlzIHVuaW5pdGlhbGl6ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApp
bmRleCBiMDJhZDM1Yzc4MTI4ODIxZmM4YjllMWQxNWVkZjk1ZDdiZTI5YjBkLi40NjJjOWMwOTc5
MDI5NTJlZGM1NDhjMzU3YjMyNjFlNzFjMjM3NzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC0xODIwLDcgKzE4MjAsNyBAQCB2b2lkIEVsZW1lbnQ6OmFkZEF0dHJpYnV0ZUludGVybmFsKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZwogewogICAgIGlmICgh
aW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUpCiAgICAgICAgIHdpbGxNb2RpZnlBdHRy
aWJ1dGUobmFtZSwgbnVsbEF0b20sIHZhbHVlKTsKLSAgICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0
YSgpLT5hZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIGVuc3VyZVVuaXF1ZUVsZW1lbnRE
YXRhKCktPmFkZEF0dHJpYnV0ZShBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKTsKICAgICBpZiAoIWlu
U3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQogICAgICAgICBkaWRBZGRBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogfQpAQCAtMjk2OSw3ICsyOTY5LDcgQEAgU2hhcmVhYmxlRWxlbWVudERh
dGE6OlNoYXJlYWJsZUVsZW1lbnREYXRhKGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhJiBvdGhlcikK
ICAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcnJheVNpemU7ICsraSkK
LSAgICAgICAgbmV3ICgmbV9hdHRyaWJ1dGVBcnJheVtpXSkgQXR0cmlidXRlKG90aGVyLm1fYXR0
cmlidXRlVmVjdG9yLmF0KGkpKTsKKyAgICAgICAgbmV3ICgmcmVpbnRlcnByZXRfY2FzdDxBdHRy
aWJ1dGUqPigmbV9hdHRyaWJ1dGVBcnJheSlbaV0pIEF0dHJpYnV0ZSgqb3RoZXIuYXR0cmlidXRl
SXRlbShpKSk7CiB9CiAKIEVsZW1lbnREYXRhOjpFbGVtZW50RGF0YShjb25zdCBFbGVtZW50RGF0
YSYgb3RoZXIsIGJvb2wgaXNVbmlxdWUpCkBAIC0zMDE5LDE5ICszMDE5LDIxIEBAIFBhc3NSZWZQ
dHI8VW5pcXVlRWxlbWVudERhdGE+IEVsZW1lbnREYXRhOjptYWtlVW5pcXVlQ29weSgpIGNvbnN0
CiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxlRWxlbWVudERhdGE+IFVuaXF1ZUVsZW1lbnREYXRhOjpt
YWtlU2hhcmVhYmxlQ29weSgpIGNvbnN0CiB7Ci0gICAgdm9pZCogc2xvdCA9IFdURjo6ZmFzdE1h
bGxvYyhzaXplRm9yU2hhcmVhYmxlRWxlbWVudERhdGFXaXRoQXR0cmlidXRlQ291bnQobV9hdHRy
aWJ1dGVWZWN0b3Iuc2l6ZSgpKSk7CisgICAgdm9pZCogc2xvdCA9IFdURjo6ZmFzdE1hbGxvYyhz
aXplRm9yU2hhcmVhYmxlRWxlbWVudERhdGFXaXRoQXR0cmlidXRlQ291bnQobXV0YWJsZUF0dHJp
YnV0ZVZlY3RvcigpLnNpemUoKSkpOwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgKHNsb3QpIFNo
YXJlYWJsZUVsZW1lbnREYXRhKCp0aGlzKSk7CiB9CiAKLXZvaWQgVW5pcXVlRWxlbWVudERhdGE6
OmFkZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQordm9pZCBFbGVtZW50RGF0YTo6YWRkQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYgYXR0cmlidXRlKQogewotICAgIG1fYXR0cmlidXRlVmVjdG9yLmFwcGVuZChB
dHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgdmFsdWUpKTsKKyAgICBBU1NFUlQoaXNVbmlxdWUoKSk7
CisgICAgbXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpLmFwcGVuZChhdHRyaWJ1dGUpOwogfQogCi12
b2lkIFVuaXF1ZUVsZW1lbnREYXRhOjpyZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KQordm9p
ZCBFbGVtZW50RGF0YTo6cmVtb3ZlQXR0cmlidXRlKHNpemVfdCBpbmRleCkKIHsKKyAgICBBU1NF
UlQoaXNVbmlxdWUoKSk7CiAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5k
ZXggPCBsZW5ndGgoKSk7Ci0gICAgbV9hdHRyaWJ1dGVWZWN0b3IucmVtb3ZlKGluZGV4KTsKKyAg
ICBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkucmVtb3ZlKGluZGV4KTsKIH0KIAogYm9vbCBFbGVt
ZW50RGF0YTo6aXNFcXVpdmFsZW50KGNvbnN0IEVsZW1lbnREYXRhKiBvdGhlcikgY29uc3QKQEAg
LTMwNjEsOSArMzA2Myw4IEBAIHZvaWQgRWxlbWVudERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1i
ZXIobV9jbGFzc05hbWVzLCAiY2xhc3NOYW1lcyIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faWRG
b3JTdHlsZVJlc29sdXRpb24sICJpZEZvclN0eWxlUmVzb2x1dGlvbiIpOwogICAgIGlmIChtX2lz
VW5pcXVlKSB7Ci0gICAgICAgIGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhKiB1bmlxdWVUaGlzID0g
c3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlRWxlbWVudERhdGEqPih0aGlzKTsKLSAgICAgICAgaW5m
by5hZGRNZW1iZXIodW5pcXVlVGhpcy0+bV9wcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSwgInBy
ZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlIik7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVyKHVuaXF1
ZVRoaXMtPm1fYXR0cmlidXRlVmVjdG9yLCAiYXR0cmlidXRlVmVjdG9yIik7CisgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCksICJwcmVzZW50YXRpb25B
dHRyaWJ1dGVTdHlsZSgpIik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1
dGVWZWN0b3IoKSwgIm11dGFibGVBdHRyaWJ1dGVWZWN0b3IiKTsKICAgICB9CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47IGkrKykKICAgICAgICAgaW5m
by5hZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSksICIqYXR0cmlidXRlSXRlbSIpOwpAQCAtMzA4
OCwxOSArMzA4OSw0IEBAIHNpemVfdCBFbGVtZW50RGF0YTo6Z2V0QXR0cmlidXRlSXRlbUluZGV4
U2xvd0Nhc2UoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBib29sCiAgICAgcmV0dXJuIG5vdEZv
dW5kOwogfQogCi1BdHRyaWJ1dGUqIFVuaXF1ZUVsZW1lbnREYXRhOjpnZXRBdHRyaWJ1dGVJdGVt
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fYXR0cmlidXRlVmVjdG9yLmF0KGkp
Lm5hbWUoKS5tYXRjaGVzKG5hbWUpKQotICAgICAgICAgICAgcmV0dXJuICZtX2F0dHJpYnV0ZVZl
Y3Rvci5hdChpKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUF0dHJpYnV0ZSogVW5pcXVl
RWxlbWVudERhdGE6OmF0dHJpYnV0ZUl0ZW0odW5zaWduZWQgaW5kZXgpCi17Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBsZW5ndGgoKSk7Ci0gICAgcmV0dXJu
ICZtX2F0dHJpYnV0ZVZlY3Rvci5hdChpbmRleCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDQ5ODhiMWQ3N2RkZGU0ZTQzMGY3YjU1M2M0ZTYzMmNk
ZGQwNWYzYmUuLjljNWVjZTkyNGRhNzM0YWQxMDBlNzY0OWM5OTA4MjYwMDBmZDQ2YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNzUsOSArNzUsMTUgQEAgcHVibGljOgogCiAgICAgY29uc3QgQXR0
cmlidXRlKiBhdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBjb25zdCBB
dHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0Owor
ICAgIEF0dHJpYnV0ZSogYXR0cmlidXRlSXRlbSh1bnNpZ25lZCBpbmRleCk7CisgICAgQXR0cmli
dXRlKiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICBzaXplX3Qg
Z2V0QXR0cmlidXRlSXRlbUluZGV4KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKICAgICBz
aXplX3QgZ2V0QXR0cmlidXRlSXRlbUluZGV4KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgYm9v
bCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25zdDsKIAorICAgIC8vIFRoZXNlIGZ1bmN0
aW9ucyBkbyBubyBlcnJvciBjaGVja2luZy4KKyAgICB2b2lkIGFkZEF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKTsKKyAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShzaXplX3QgaW5kZXgpOworCiAg
ICAgYm9vbCBoYXNJRCgpIGNvbnN0IHsgcmV0dXJuICFtX2lkRm9yU3R5bGVSZXNvbHV0aW9uLmlz
TnVsbCgpOyB9CiAgICAgYm9vbCBoYXNDbGFzcygpIGNvbnN0IHsgcmV0dXJuICFtX2NsYXNzTmFt
ZXMuaXNOdWxsKCk7IH0KIApAQCAtODYsNiArOTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICAgICBib29sIGlzVW5p
cXVlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuaXF1ZTsgfQorICAgIGNvbnN0IEF0dHJpYnV0ZSog
aW1tdXRhYmxlQXR0cmlidXRlQXJyYXkoKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnREYXRhKCk7CkBAIC0xMTMsMTAgKzEyMCwxNCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBTVkdFbGVtZW50OwogI2VuZGlmCiAKKyAgICBBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0o
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNhc2Up
OwogICAgIGNvbnN0IEF0dHJpYnV0ZSogZ2V0QXR0cmlidXRlSXRlbShjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkgY29uc3Q7CiAgICAgc2l6
ZV90IGdldEF0dHJpYnV0ZUl0ZW1JbmRleFNsb3dDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25zdDsKIAogICAgIFBhc3NSZWZQ
dHI8VW5pcXVlRWxlbWVudERhdGE+IG1ha2VVbmlxdWVDb3B5KCkgY29uc3Q7CisKKyAgICBWZWN0
b3I8QXR0cmlidXRlLCA0PiYgbXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpOworICAgIGNvbnN0IFZl
Y3RvcjxBdHRyaWJ1dGUsIDQ+JiBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkgY29uc3Q7CiB9Owog
CiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE0NCwxMyArMTU1LDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUVsZW1lbnREYXRhPiBjcmVhdGUoKTsKICAgICBQYXNzUmVm
UHRyPFNoYXJlYWJsZUVsZW1lbnREYXRhPiBtYWtlU2hhcmVhYmxlQ29weSgpIGNvbnN0OwogCi0g
ICAgLy8gVGhlc2UgZnVuY3Rpb25zIGRvIG5vIGVycm9yL2R1cGxpY2F0ZSBjaGVja2luZy4KLSAg
ICB2b2lkIGFkZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJik7Ci0gICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoc2l6ZV90IGluZGV4KTsKLQotICAgIEF0
dHJpYnV0ZSogYXR0cmlidXRlSXRlbSh1bnNpZ25lZCBpbmRleCk7Ci0gICAgQXR0cmlidXRlKiBn
ZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLQogICAgIFVuaXF1ZUVsZW1l
bnREYXRhKCk7CiAgICAgZXhwbGljaXQgVW5pcXVlRWxlbWVudERhdGEoY29uc3QgU2hhcmVhYmxl
RWxlbWVudERhdGEmKTsKICAgICBleHBsaWNpdCBVbmlxdWVFbGVtZW50RGF0YShjb25zdCBVbmlx
dWVFbGVtZW50RGF0YSYpOwpAQCAtODk4LDExICs5MDIsMjggQEAgaW5saW5lIGJvb2wgaXNTaGFk
b3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+c2hhZG93KCk7CiB9CitpbmxpbmUgVmVj
dG9yPEF0dHJpYnV0ZSwgND4mIEVsZW1lbnREYXRhOjptdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkK
K3sKKyAgICBBU1NFUlQobV9pc1VuaXF1ZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFVuaXF1
ZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlVmVjdG9yOworfQorCitpbmxpbmUgY29u
c3QgVmVjdG9yPEF0dHJpYnV0ZSwgND4mIEVsZW1lbnREYXRhOjptdXRhYmxlQXR0cmlidXRlVmVj
dG9yKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9pc1VuaXF1ZSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlVmVjdG9y
OworfQorCitpbmxpbmUgY29uc3QgQXR0cmlidXRlKiBFbGVtZW50RGF0YTo6aW1tdXRhYmxlQXR0
cmlidXRlQXJyYXkoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9pc1VuaXF1ZSk7CisgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgQXR0cmlidXRlKj4oJnN0YXRpY19jYXN0PGNvbnN0
IFNoYXJlYWJsZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlQXJyYXkpOworfQogCiBp
bmxpbmUgc2l6ZV90IEVsZW1lbnREYXRhOjpsZW5ndGgoKSBjb25zdAogewogICAgIGlmIChpc1Vu
aXF1ZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgVW5pcXVlRWxlbWVudERh
dGEqPih0aGlzKS0+bV9hdHRyaWJ1dGVWZWN0b3Iuc2l6ZSgpOworICAgICAgICByZXR1cm4gbXV0
YWJsZUF0dHJpYnV0ZVZlY3RvcigpLnNpemUoKTsKICAgICByZXR1cm4gbV9hcnJheVNpemU7CiB9
CiAKQEAgLTkxMyw2ICs5MzQsMTQgQEAgaW5saW5lIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIEVs
ZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhKj4odGhpcyktPm1fcHJlc2VudGF0
aW9uQXR0cmlidXRlU3R5bGUuZ2V0KCk7CiB9CiAKK2lubGluZSBBdHRyaWJ1dGUqIEVsZW1lbnRE
YXRhOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgYm9vbCBzaG91
bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKQoreworICAgIHNpemVfdCBpbmRleCA9IGdldEF0dHJpYnV0
ZUl0ZW1JbmRleChuYW1lLCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKTsKKyAgICBpZiAoaW5k
ZXggIT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBhdHRyaWJ1dGVJdGVtKGluZGV4KTsKKyAg
ICByZXR1cm4gMDsKK30KKwogaW5saW5lIGNvbnN0IEF0dHJpYnV0ZSogRWxlbWVudERhdGE6Omdl
dEF0dHJpYnV0ZUl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBib29sIHNob3VsZElnbm9y
ZUF0dHJpYnV0ZUNhc2UpIGNvbnN0CiB7CiAgICAgc2l6ZV90IGluZGV4ID0gZ2V0QXR0cmlidXRl
SXRlbUluZGV4KG5hbWUsIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UpOwpAQCAtOTYxLDEyICs5
OTAsMjcgQEAgaW5saW5lIGNvbnN0IEF0dHJpYnV0ZSogRWxlbWVudERhdGE6OmdldEF0dHJpYnV0
ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKICAgICByZXR1cm4gMDsKIH0KIAoraW5s
aW5lIEF0dHJpYnV0ZSogRWxlbWVudERhdGE6OmdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSkKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7
ICsraSkgeworICAgICAgICBpZiAoYXR0cmlidXRlSXRlbShpKS0+bmFtZSgpLm1hdGNoZXMobmFt
ZSkpCisgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlSXRlbShpKTsKKyAgICB9CisgICAgcmV0
dXJuIDA7Cit9CisKIGlubGluZSBjb25zdCBBdHRyaWJ1dGUqIEVsZW1lbnREYXRhOjphdHRyaWJ1
dGVJdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKGluZGV4IDwgbGVuZ3RoKCkpOwogICAgIGlmIChtX2lzVW5pcXVlKQotICAg
ICAgICByZXR1cm4gJnN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhKj4odGhpcykt
Pm1fYXR0cmlidXRlVmVjdG9yLmF0KGluZGV4KTsKLSAgICByZXR1cm4gJnN0YXRpY19jYXN0PGNv
bnN0IFNoYXJlYWJsZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlQXJyYXlbaW5kZXhd
OworICAgICAgICByZXR1cm4gJm11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKS5hdChpbmRleCk7Cisg
ICAgcmV0dXJuICZpbW11dGFibGVBdHRyaWJ1dGVBcnJheSgpW2luZGV4XTsKK30KKworaW5saW5l
IEF0dHJpYnV0ZSogRWxlbWVudERhdGE6OmF0dHJpYnV0ZUl0ZW0odW5zaWduZWQgaW5kZXgpCit7
CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBsZW5ndGgoKSk7
CisgICAgcmV0dXJuICZtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkuYXQoaW5kZXgpOwogfQogCiB9
IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190213</attachid>
            <date>2013-02-25 23:08:24 -0800</date>
            <delta_ts>2013-02-25 23:23:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110784-20130225230439.patch</filename>
            <type>text/plain</type>
            <size>30629</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE4MTU3OGQ3MGU5YzY4
MzM5YjM5MjJiMWNhYmExOWJjMzE1YmQ5NC4uZGY2NjU3YTZlYTZlYTMyM2RlZjA4MDE0MjIzY2Qz
YjIwZTc0MGU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAyLTI1ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgNiUgcmVncmVzc2lvbiBpbiBp
bnRsMSBwYWdlIGN5Y2xlciBvbiBjaHJvbWl1bS1tYWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDc4NAorCisgICAgICAgIFVucmV2aWV3ZWQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZXN0b3JlcyB0aGUgY29kZSB0aGF0IEkgcm9sbGVkIG91dCBp
bgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNDM5NjAgYW5kCisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0Mzk4My4gUm9sbGluZyBv
dXQgdGhvc2UgcGF0Y2hlcyBkaWQKKyAgICAgICAgbm90IGhlYWwgdGhlIGJvdC4KKworICAgICAg
ICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmFkZEF0dHJp
YnV0ZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlYWJsZUVsZW1lbnREYXRhOjpT
aGFyZWFibGVFbGVtZW50RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpVbmlxdWVFbGVtZW50RGF0
YTo6bWFrZVNoYXJlYWJsZUNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6VW5pcXVlRWxlbWVudERh
dGE6OmFkZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVbmlxdWVFbGVtZW50RGF0YTo6
cmVtb3ZlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnREYXRhOjpyZXBvcnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpVbmlxdWVFbGVtZW50RGF0YTo6Z2V0QXR0
cmlidXRlSXRlbSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXF1
ZUVsZW1lbnREYXRhOjphdHRyaWJ1dGVJdGVtKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5oOgor
ICAgICAgICAoRWxlbWVudERhdGEpOgorICAgICAgICAoVW5pcXVlRWxlbWVudERhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTaGFkb3dIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRE
YXRhOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudERhdGE6OmF0dHJpYnV0ZUl0
ZW0pOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpyZXN1bWVGcm9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjpzZW5kVG9rZW5zVG9NYWluVGhyZWFk
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjpzY2FuQ29t
bW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjplbWl0UnVsZSk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaDoKKyAgICAgICAgKENTU1ByZWxvYWRTY2FubmVy
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpzdGFydEJhY2tncm91bmRQYXJzZXIpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjp0YWdJZEZvcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OmluaXRpYXRvckZvcik6
CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpTdGFydFRhZ1NjYW5uZXI6
OnByb2Nlc3NBdHRyaWJ1dGVzKToKKyAgICAgICAgKFRva2VuUHJlbG9hZFNjYW5uZXI6OlN0YXJ0
VGFnU2Nhbm5lcik6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpTdGFy
dFRhZ1NjYW5uZXI6OmNyZWF0ZVByZWxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlRv
a2VuUHJlbG9hZFNjYW5uZXI6OmNyZWF0ZUNoZWNrcG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
VG9rZW5QcmVsb2FkU2Nhbm5lcjo6cmV3aW5kVG8pOgorICAgICAgICAoV2ViQ29yZTo6VG9rZW5Q
cmVsb2FkU2Nhbm5lcjo6c2Nhbik6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2Fu
bmVyOjpzY2FuQ29tbW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6
OnVwZGF0ZVByZWRpY3RlZEJhc2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByZWxvYWRT
Y2FubmVyOjpzY2FuKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIu
aDoKKyAgICAgICAgKFRva2VuUHJlbG9hZFNjYW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6VG9r
ZW5QcmVsb2FkU2Nhbm5lcjo6aXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKToKKyAgICAgICAg
KFdlYkNvcmU6OlRva2VuUHJlbG9hZFNjYW5uZXI6OkNoZWNrcG9pbnQ6OkNoZWNrcG9pbnQpOgor
ICAgICAgICAoQ2hlY2twb2ludCk6CisKIDIwMTMtMDItMjUgIENocmlzIFJvZ2VycyAgPGNyb2dl
cnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBdWRpb0Rlc3RpbmF0aW9uQ2hyb21pdW0gc2hvdWxk
IHBhc3MgaW4gaW5wdXREZXZpY2VJZCB3aGVuIGNyZWF0aW5nIFdlYktpdDo6V2ViQXVkaW9EZXZp
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA0NjJjOWMwOTc5MDI5NTJlZGM1NDhjMzU3YjMy
NjFlNzFjMjM3NzNmLi5iMDJhZDM1Yzc4MTI4ODIxZmM4YjllMWQxNWVkZjk1ZDdiZTI5YjBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xODIwLDcgKzE4MjAsNyBAQCB2b2lkIEVsZW1lbnQ6
OmFkZEF0dHJpYnV0ZUludGVybmFsKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZwogewogICAgIGlmICghaW5TeW5jaHJvbml6YXRpb25PZkxhenlBdHRyaWJ1dGUp
CiAgICAgICAgIHdpbGxNb2RpZnlBdHRyaWJ1dGUobmFtZSwgbnVsbEF0b20sIHZhbHVlKTsKLSAg
ICBlbnN1cmVVbmlxdWVFbGVtZW50RGF0YSgpLT5hZGRBdHRyaWJ1dGUoQXR0cmlidXRlKG5hbWUs
IHZhbHVlKSk7CisgICAgZW5zdXJlVW5pcXVlRWxlbWVudERhdGEoKS0+YWRkQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKICAgICBpZiAoIWluU3luY2hyb25pemF0aW9uT2ZMYXp5QXR0cmlidXRlKQog
ICAgICAgICBkaWRBZGRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpAQCAtMjk2OSw3ICsyOTY5
LDcgQEAgU2hhcmVhYmxlRWxlbWVudERhdGE6OlNoYXJlYWJsZUVsZW1lbnREYXRhKGNvbnN0IFVu
aXF1ZUVsZW1lbnREYXRhJiBvdGhlcikKICAgICB9CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9hcnJheVNpemU7ICsraSkKLSAgICAgICAgbmV3ICgmcmVpbnRlcnByZXRfY2FzdDxB
dHRyaWJ1dGUqPigmbV9hdHRyaWJ1dGVBcnJheSlbaV0pIEF0dHJpYnV0ZSgqb3RoZXIuYXR0cmli
dXRlSXRlbShpKSk7CisgICAgICAgIG5ldyAoJm1fYXR0cmlidXRlQXJyYXlbaV0pIEF0dHJpYnV0
ZShvdGhlci5tX2F0dHJpYnV0ZVZlY3Rvci5hdChpKSk7CiB9CiAKIEVsZW1lbnREYXRhOjpFbGVt
ZW50RGF0YShjb25zdCBFbGVtZW50RGF0YSYgb3RoZXIsIGJvb2wgaXNVbmlxdWUpCkBAIC0zMDE5
LDIxICszMDE5LDE5IEBAIFBhc3NSZWZQdHI8VW5pcXVlRWxlbWVudERhdGE+IEVsZW1lbnREYXRh
OjptYWtlVW5pcXVlQ29weSgpIGNvbnN0CiAKIFBhc3NSZWZQdHI8U2hhcmVhYmxlRWxlbWVudERh
dGE+IFVuaXF1ZUVsZW1lbnREYXRhOjptYWtlU2hhcmVhYmxlQ29weSgpIGNvbnN0CiB7Ci0gICAg
dm9pZCogc2xvdCA9IFdURjo6ZmFzdE1hbGxvYyhzaXplRm9yU2hhcmVhYmxlRWxlbWVudERhdGFX
aXRoQXR0cmlidXRlQ291bnQobXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpLnNpemUoKSkpOworICAg
IHZvaWQqIHNsb3QgPSBXVEY6OmZhc3RNYWxsb2Moc2l6ZUZvclNoYXJlYWJsZUVsZW1lbnREYXRh
V2l0aEF0dHJpYnV0ZUNvdW50KG1fYXR0cmlidXRlVmVjdG9yLnNpemUoKSkpOwogICAgIHJldHVy
biBhZG9wdFJlZihuZXcgKHNsb3QpIFNoYXJlYWJsZUVsZW1lbnREYXRhKCp0aGlzKSk7CiB9CiAK
LXZvaWQgRWxlbWVudERhdGE6OmFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0
ZSkKK3ZvaWQgVW5pcXVlRWxlbWVudERhdGE6OmFkZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewotICAgIEFT
U0VSVChpc1VuaXF1ZSgpKTsKLSAgICBtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkuYXBwZW5kKGF0
dHJpYnV0ZSk7CisgICAgbV9hdHRyaWJ1dGVWZWN0b3IuYXBwZW5kKEF0dHJpYnV0ZShhdHRyaWJ1
dGVOYW1lLCB2YWx1ZSkpOwogfQogCi12b2lkIEVsZW1lbnREYXRhOjpyZW1vdmVBdHRyaWJ1dGUo
c2l6ZV90IGluZGV4KQordm9pZCBVbmlxdWVFbGVtZW50RGF0YTo6cmVtb3ZlQXR0cmlidXRlKHNp
emVfdCBpbmRleCkKIHsKLSAgICBBU1NFUlQoaXNVbmlxdWUoKSk7CiAgICAgQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXggPCBsZW5ndGgoKSk7Ci0gICAgbXV0YWJsZUF0dHJp
YnV0ZVZlY3RvcigpLnJlbW92ZShpbmRleCk7CisgICAgbV9hdHRyaWJ1dGVWZWN0b3IucmVtb3Zl
KGluZGV4KTsKIH0KIAogYm9vbCBFbGVtZW50RGF0YTo6aXNFcXVpdmFsZW50KGNvbnN0IEVsZW1l
bnREYXRhKiBvdGhlcikgY29uc3QKQEAgLTMwNjMsOCArMzA2MSw5IEBAIHZvaWQgRWxlbWVudERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFzc05hbWVzLCAiY2xhc3NOYW1lcyIpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1faWRGb3JTdHlsZVJlc29sdXRpb24sICJpZEZvclN0eWxlUmVz
b2x1dGlvbiIpOwogICAgIGlmIChtX2lzVW5pcXVlKSB7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVy
KHByZXNlbnRhdGlvbkF0dHJpYnV0ZVN0eWxlKCksICJwcmVzZW50YXRpb25BdHRyaWJ1dGVTdHls
ZSgpIik7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSwg
Im11dGFibGVBdHRyaWJ1dGVWZWN0b3IiKTsKKyAgICAgICAgY29uc3QgVW5pcXVlRWxlbWVudERh
dGEqIHVuaXF1ZVRoaXMgPSBzdGF0aWNfY2FzdDxjb25zdCBVbmlxdWVFbGVtZW50RGF0YSo+KHRo
aXMpOworICAgICAgICBpbmZvLmFkZE1lbWJlcih1bmlxdWVUaGlzLT5tX3ByZXNlbnRhdGlvbkF0
dHJpYnV0ZVN0eWxlLCAicHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUiKTsKKyAgICAgICAgaW5m
by5hZGRNZW1iZXIodW5pcXVlVGhpcy0+bV9hdHRyaWJ1dGVWZWN0b3IsICJhdHRyaWJ1dGVWZWN0
b3IiKTsKICAgICB9CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkg
PCBsZW47IGkrKykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSksICIq
YXR0cmlidXRlSXRlbSIpOwpAQCAtMzA4OSw0ICszMDg4LDE5IEBAIHNpemVfdCBFbGVtZW50RGF0
YTo6Z2V0QXR0cmlidXRlSXRlbUluZGV4U2xvd0Nhc2UoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBib29sCiAgICAgcmV0dXJuIG5vdEZvdW5kOwogfQogCitBdHRyaWJ1dGUqIFVuaXF1ZUVsZW1l
bnREYXRhOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCit7Cisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgaWYg
KG1fYXR0cmlidXRlVmVjdG9yLmF0KGkpLm5hbWUoKS5tYXRjaGVzKG5hbWUpKQorICAgICAgICAg
ICAgcmV0dXJuICZtX2F0dHJpYnV0ZVZlY3Rvci5hdChpKTsKKyAgICB9CisgICAgcmV0dXJuIDA7
Cit9CisKK0F0dHJpYnV0ZSogVW5pcXVlRWxlbWVudERhdGE6OmF0dHJpYnV0ZUl0ZW0odW5zaWdu
ZWQgaW5kZXgpCit7CisgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaW5kZXgg
PCBsZW5ndGgoKSk7CisgICAgcmV0dXJuICZtX2F0dHJpYnV0ZVZlY3Rvci5hdChpbmRleCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDljNWVjZTky
NGRhNzM0YWQxMDBlNzY0OWM5OTA4MjYwMDBmZDQ2YzYuLjQ5ODhiMWQ3N2RkZGU0ZTQzMGY3YjU1
M2M0ZTYzMmNkZGQwNWYzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNzUsMTUgKzc1LDkgQEAg
cHVibGljOgogCiAgICAgY29uc3QgQXR0cmlidXRlKiBhdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdDsKICAgICBjb25zdCBBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0OwotICAgIEF0dHJpYnV0ZSogYXR0cmlidXRlSXRlbSh1bnNp
Z25lZCBpbmRleCk7Ci0gICAgQXR0cmlidXRlKiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKICAgICBzaXplX3QgZ2V0QXR0cmlidXRlSXRlbUluZGV4KGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBjb25zdDsKICAgICBzaXplX3QgZ2V0QXR0cmlidXRlSXRlbUluZGV4KGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBjb25z
dDsKIAotICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBkbyBubyBlcnJvciBjaGVja2luZy4KLSAgICB2
b2lkIGFkZEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKTsKLSAgICB2b2lkIHJlbW92ZUF0dHJp
YnV0ZShzaXplX3QgaW5kZXgpOwotCiAgICAgYm9vbCBoYXNJRCgpIGNvbnN0IHsgcmV0dXJuICFt
X2lkRm9yU3R5bGVSZXNvbHV0aW9uLmlzTnVsbCgpOyB9CiAgICAgYm9vbCBoYXNDbGFzcygpIGNv
bnN0IHsgcmV0dXJuICFtX2NsYXNzTmFtZXMuaXNOdWxsKCk7IH0KIApAQCAtOTIsNyArODYsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CiAKICAgICBib29sIGlzVW5pcXVlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuaXF1ZTsg
fQotICAgIGNvbnN0IEF0dHJpYnV0ZSogaW1tdXRhYmxlQXR0cmlidXRlQXJyYXkoKSBjb25zdDsK
IAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnREYXRhKCk7CkBAIC0xMjAsMTQgKzExMywxMCBAQCBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBTVkdFbGVtZW50OwogI2VuZGlmCiAKLSAgICBBdHRy
aWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBib29sIHNo
b3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UpOwogICAgIGNvbnN0IEF0dHJpYnV0ZSogZ2V0QXR0cmli
dXRlSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmli
dXRlQ2FzZSkgY29uc3Q7CiAgICAgc2l6ZV90IGdldEF0dHJpYnV0ZUl0ZW1JbmRleFNsb3dDYXNl
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNl
KSBjb25zdDsKIAogICAgIFBhc3NSZWZQdHI8VW5pcXVlRWxlbWVudERhdGE+IG1ha2VVbmlxdWVD
b3B5KCkgY29uc3Q7Ci0KLSAgICBWZWN0b3I8QXR0cmlidXRlLCA0PiYgbXV0YWJsZUF0dHJpYnV0
ZVZlY3RvcigpOwotICAgIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGUsIDQ+JiBtdXRhYmxlQXR0cmli
dXRlVmVjdG9yKCkgY29uc3Q7CiB9OwogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1NSw2ICsx
NDQsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVuaXF1ZUVsZW1lbnREYXRh
PiBjcmVhdGUoKTsKICAgICBQYXNzUmVmUHRyPFNoYXJlYWJsZUVsZW1lbnREYXRhPiBtYWtlU2hh
cmVhYmxlQ29weSgpIGNvbnN0OwogCisgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGRvIG5vIGVycm9y
L2R1cGxpY2F0ZSBjaGVja2luZy4KKyAgICB2b2lkIGFkZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUo
c2l6ZV90IGluZGV4KTsKKworICAgIEF0dHJpYnV0ZSogYXR0cmlidXRlSXRlbSh1bnNpZ25lZCBp
bmRleCk7CisgICAgQXR0cmlidXRlKiBnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKKwogICAgIFVuaXF1ZUVsZW1lbnREYXRhKCk7CiAgICAgZXhwbGljaXQgVW5pcXVlRWxl
bWVudERhdGEoY29uc3QgU2hhcmVhYmxlRWxlbWVudERhdGEmKTsKICAgICBleHBsaWNpdCBVbmlx
dWVFbGVtZW50RGF0YShjb25zdCBVbmlxdWVFbGVtZW50RGF0YSYpOwpAQCAtOTAyLDI4ICs4OTgs
MTEgQEAgaW5saW5lIGJvb2wgaXNTaGFkb3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCiB7CiAgICAg
cmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+
c2hhZG93KCk7CiB9Ci1pbmxpbmUgVmVjdG9yPEF0dHJpYnV0ZSwgND4mIEVsZW1lbnREYXRhOjpt
dXRhYmxlQXR0cmlidXRlVmVjdG9yKCkKLXsKLSAgICBBU1NFUlQobV9pc1VuaXF1ZSk7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PFVuaXF1ZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRl
VmVjdG9yOwotfQotCi1pbmxpbmUgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZSwgND4mIEVsZW1lbnRE
YXRhOjptdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9pc1Vu
aXF1ZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1lbnREYXRhKj4o
dGhpcyktPm1fYXR0cmlidXRlVmVjdG9yOwotfQotCi1pbmxpbmUgY29uc3QgQXR0cmlidXRlKiBF
bGVtZW50RGF0YTo6aW1tdXRhYmxlQXR0cmlidXRlQXJyYXkoKSBjb25zdAotewotICAgIEFTU0VS
VCghbV9pc1VuaXF1ZSk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgQXR0cmli
dXRlKj4oJnN0YXRpY19jYXN0PGNvbnN0IFNoYXJlYWJsZUVsZW1lbnREYXRhKj4odGhpcyktPm1f
YXR0cmlidXRlQXJyYXkpOwotfQogCiBpbmxpbmUgc2l6ZV90IEVsZW1lbnREYXRhOjpsZW5ndGgo
KSBjb25zdAogewogICAgIGlmIChpc1VuaXF1ZSgpKQotICAgICAgICByZXR1cm4gbXV0YWJsZUF0
dHJpYnV0ZVZlY3RvcigpLnNpemUoKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IFVuaXF1ZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlVmVjdG9yLnNpemUoKTsKICAg
ICByZXR1cm4gbV9hcnJheVNpemU7CiB9CiAKQEAgLTkzNCwxNCArOTEzLDYgQEAgaW5saW5lIGNv
bnN0IFN0eWxlUHJvcGVydHlTZXQqIEVsZW1lbnREYXRhOjpwcmVzZW50YXRpb25BdHRyaWJ1dGVT
dHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1lbnRE
YXRhKj4odGhpcyktPm1fcHJlc2VudGF0aW9uQXR0cmlidXRlU3R5bGUuZ2V0KCk7CiB9CiAKLWlu
bGluZSBBdHRyaWJ1dGUqIEVsZW1lbnREYXRhOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKQotewotICAgIHNp
emVfdCBpbmRleCA9IGdldEF0dHJpYnV0ZUl0ZW1JbmRleChuYW1lLCBzaG91bGRJZ25vcmVBdHRy
aWJ1dGVDYXNlKTsKLSAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCi0gICAgICAgIHJldHVybiBh
dHRyaWJ1dGVJdGVtKGluZGV4KTsKLSAgICByZXR1cm4gMDsKLX0KLQogaW5saW5lIGNvbnN0IEF0
dHJpYnV0ZSogRWxlbWVudERhdGE6OmdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UpIGNvbnN0CiB7CiAgICAgc2l6
ZV90IGluZGV4ID0gZ2V0QXR0cmlidXRlSXRlbUluZGV4KG5hbWUsIHNob3VsZElnbm9yZUF0dHJp
YnV0ZUNhc2UpOwpAQCAtOTkwLDI3ICs5NjEsMTIgQEAgaW5saW5lIGNvbnN0IEF0dHJpYnV0ZSog
RWxlbWVudERhdGE6OmdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkK
ICAgICByZXR1cm4gMDsKIH0KIAotaW5saW5lIEF0dHJpYnV0ZSogRWxlbWVudERhdGE6OmdldEF0
dHJpYnV0ZUl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKLXsKLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7ICsraSkgewotICAgICAgICBpZiAoYXR0cmlidXRlSXRl
bShpKS0+bmFtZSgpLm1hdGNoZXMobmFtZSkpCi0gICAgICAgICAgICByZXR1cm4gYXR0cmlidXRl
SXRlbShpKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGlubGluZSBjb25zdCBBdHRyaWJ1
dGUqIEVsZW1lbnREYXRhOjphdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAogewog
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGluZGV4IDwgbGVuZ3RoKCkpOwog
ICAgIGlmIChtX2lzVW5pcXVlKQotICAgICAgICByZXR1cm4gJm11dGFibGVBdHRyaWJ1dGVWZWN0
b3IoKS5hdChpbmRleCk7Ci0gICAgcmV0dXJuICZpbW11dGFibGVBdHRyaWJ1dGVBcnJheSgpW2lu
ZGV4XTsKLX0KLQotaW5saW5lIEF0dHJpYnV0ZSogRWxlbWVudERhdGE6OmF0dHJpYnV0ZUl0ZW0o
dW5zaWduZWQgaW5kZXgpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
aW5kZXggPCBsZW5ndGgoKSk7Ci0gICAgcmV0dXJuICZtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCku
YXQoaW5kZXgpOworICAgICAgICByZXR1cm4gJnN0YXRpY19jYXN0PGNvbnN0IFVuaXF1ZUVsZW1l
bnREYXRhKj4odGhpcyktPm1fYXR0cmlidXRlVmVjdG9yLmF0KGluZGV4KTsKKyAgICByZXR1cm4g
JnN0YXRpY19jYXN0PGNvbnN0IFNoYXJlYWJsZUVsZW1lbnREYXRhKj4odGhpcyktPm1fYXR0cmli
dXRlQXJyYXlbaW5kZXhdOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGI1ZWQxNWM3
NDVhMmE5NDIwMWVmOGZjMmIwYzdmOGQ4YjgwMjZmNDIuLjU2ZTQ3ZmNkYzM2MDJmOWFiMTQzNTk2
MzMyMjc0MWFkZjIwZWQzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKQEAgLTE1Niw2ICsxNTYsNyBAQCB2b2lkIEJhY2tn
cm91bmRIVE1MUGFyc2VyOjpyZXN1bWVGcm9tKFBhc3NPd25QdHI8Q2hlY2twb2ludD4gY2hlY2tw
b2ludCkKICAgICBtX3Rva2VuID0gY2hlY2twb2ludC0+dG9rZW4ucmVsZWFzZSgpOwogICAgIG1f
dG9rZW5pemVyID0gY2hlY2twb2ludC0+dG9rZW5pemVyLnJlbGVhc2UoKTsKICAgICBtX2lucHV0
LnJld2luZFRvKGNoZWNrcG9pbnQtPmlucHV0Q2hlY2twb2ludCwgY2hlY2twb2ludC0+dW5wYXJz
ZWRJbnB1dCk7CisgICAgbV9wcmVsb2FkU2Nhbm5lci0+cmV3aW5kVG8oY2hlY2twb2ludC0+cHJl
bG9hZFNjYW5uZXJDaGVja3BvaW50KTsKICAgICBwdW1wVG9rZW5pemVyKCk7CiB9CiAKQEAgLTI1
MSw2ICsyNTIsOCBAQCB2b2lkIEJhY2tncm91bmRIVE1MUGFyc2VyOjpwdW1wVG9rZW5pemVyKCkK
ICAgICAgICAgICAgIGlmICh4c3NJbmZvKQogICAgICAgICAgICAgICAgIHRva2VuLnNldFhTU0lu
Zm8oeHNzSW5mby5yZWxlYXNlKCkpOwogCisgICAgICAgICAgICBtX3ByZWxvYWRTY2FubmVyLT5z
Y2FuKHRva2VuLCBtX3BlbmRpbmdQcmVsb2Fkcyk7CisKICAgICAgICAgICAgIG1fcGVuZGluZ1Rv
a2Vucy0+YXBwZW5kKHRva2VuKTsKICAgICAgICAgfQogCkBAIC0yNzcsNiArMjgwLDcgQEAgdm9p
ZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c2VuZFRva2Vuc1RvTWFpblRocmVhZCgpCiAgICAgY2h1
bmstPnRva2VucyA9IG1fcGVuZGluZ1Rva2Vucy5yZWxlYXNlKCk7CiAgICAgY2h1bmstPnByZWxv
YWRzLnN3YXAobV9wZW5kaW5nUHJlbG9hZHMpOwogICAgIGNodW5rLT5pbnB1dENoZWNrcG9pbnQg
PSBtX2lucHV0LmNyZWF0ZUNoZWNrcG9pbnQoKTsKKyAgICBjaHVuay0+cHJlbG9hZFNjYW5uZXJD
aGVja3BvaW50ID0gbV9wcmVsb2FkU2Nhbm5lci0+Y3JlYXRlQ2hlY2twb2ludCgpOwogICAgIGNh
bGxPbk1haW5UaHJlYWQoYmluZCgmSFRNTERvY3VtZW50UGFyc2VyOjpkaWRSZWNlaXZlUGFyc2Vk
Q2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlciwgbV9wYXJzZXIsIGNodW5rLnJlbGVhc2UoKSkpOwog
CiAgICAgbV9wZW5kaW5nVG9rZW5zID0gYWRvcHRQdHIobmV3IENvbXBhY3RIVE1MVG9rZW5TdHJl
YW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNj
YW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwCmluZGV4IDk1NzcwNzkzNjdlNWQ0YjgyN2E4NGJhYjczNmJlOTZlYzljNzA3ODQuLjBjNjZm
YzFhYzlmZmE2NDlmNTNiZDE4NDM0NjNhYjI2ZTQyZmRlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTUwLDIwICs1MCwyOSBA
QCB2b2lkIENTU1ByZWxvYWRTY2FubmVyOjpyZXNldCgpCiAgICAgbV9ydWxlVmFsdWUuY2xlYXIo
KTsKIH0KIAotdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBVQ2hhciogYmVnaW4s
IGNvbnN0IFVDaGFyKiBlbmQsIFZlY3RvcjxPd25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4mIHJlcXVl
c3RzKQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhcj4KK3ZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OnNj
YW5Db21tb24oY29uc3QgQ2hhciogYmVnaW4sIGNvbnN0IENoYXIqIGVuZCwgUHJlbG9hZFJlcXVl
c3RTdHJlYW0mIHJlcXVlc3RzKQogewogICAgIG1fcmVxdWVzdHMgPSAmcmVxdWVzdHM7Ci0gICAg
Zm9yIChjb25zdCBVQ2hhciogaXQgPSBiZWdpbjsgaXQgIT0gZW5kICYmIG1fc3RhdGUgIT0gRG9u
ZVBhcnNpbmdJbXBvcnRSdWxlczsgKytpdCkKKyAgICBmb3IgKGNvbnN0IENoYXIqIGl0ID0gYmVn
aW47IGl0ICE9IGVuZCAmJiBtX3N0YXRlICE9IERvbmVQYXJzaW5nSW1wb3J0UnVsZXM7ICsraXQp
CiAgICAgICAgIHRva2VuaXplKCppdCk7CiAgICAgbV9yZXF1ZXN0cyA9IDA7CiB9CiAKLXZvaWQg
Q1NTUHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgTENoYXIqIGJlZ2luLCBjb25zdCBMQ2hhciog
ZW5kLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0PiA+JiByZXF1ZXN0cykKK3ZvaWQgQ1NT
UHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgSFRNTFRva2VuOjpEYXRhVmVjdG9yJiBkYXRhLCBQ
cmVsb2FkUmVxdWVzdFN0cmVhbSYgcmVxdWVzdHMpCiB7Ci0gICAgbV9yZXF1ZXN0cyA9ICZyZXF1
ZXN0czsKLSAgICBmb3IgKGNvbnN0IExDaGFyKiBpdCA9IGJlZ2luOyBpdCAhPSBlbmQgJiYgbV9z
dGF0ZSAhPSBEb25lUGFyc2luZ0ltcG9ydFJ1bGVzOyArK2l0KQotICAgICAgICB0b2tlbml6ZSgq
aXQpOwotICAgIG1fcmVxdWVzdHMgPSAwOworICAgIHNjYW5Db21tb24oZGF0YS5kYXRhKCksIGRh
dGEuZGF0YSgpICsgZGF0YS5zaXplKCksIHJlcXVlc3RzKTsKK30KKwordm9pZCBDU1NQcmVsb2Fk
U2Nhbm5lcjo6c2Nhbihjb25zdCBTdHJpbmcmIGRhdGEsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiBy
ZXF1ZXN0cykKK3sKKyAgICBpZiAoZGF0YS5pczhCaXQoKSkgeworICAgICAgICBjb25zdCBMQ2hh
ciogYmVnaW4gPSBkYXRhLmNoYXJhY3RlcnM4KCk7CisgICAgICAgIHNjYW5Db21tb24oYmVnaW4s
IGJlZ2luICsgZGF0YS5sZW5ndGgoKSwgcmVxdWVzdHMpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGNvbnN0IFVDaGFyKiBiZWdpbiA9IGRhdGEuY2hhcmFjdGVyczE2KCk7CisgICAgc2Nh
bkNvbW1vbihiZWdpbiwgYmVnaW4gKyBkYXRhLmxlbmd0aCgpLCByZXF1ZXN0cyk7CiB9CiAKIGlu
bGluZSB2b2lkIENTU1ByZWxvYWRTY2FubmVyOjp0b2tlbml6ZShVQ2hhciBjKQpAQCAtMjA0LDgg
KzIxMyw3IEBAIHZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKCkKICAgICAgICAgU3Ry
aW5nIHVybCA9IHBhcnNlQ1NTU3RyaW5nT3JVUkwobV9ydWxlVmFsdWUuY2hhcmFjdGVycygpLCBt
X3J1bGVWYWx1ZS5sZW5ndGgoKSk7CiAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgS1VSTCBiYXNlRWxlbWVudFVSTDsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHBh
c3NlZCBpbiBmcm9tIHRoZSBIVE1MUHJlbG9hZFNjYW5lciB2aWEgc2NhbigpIQotICAgICAgICAg
ICAgT3duUHRyPFByZWxvYWRSZXF1ZXN0PiByZXF1ZXN0ID0gUHJlbG9hZFJlcXVlc3Q6OmNyZWF0
ZSgKLSAgICAgICAgICAgICAgICBjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3Nz
LCB1cmwsIGJhc2VFbGVtZW50VVJMLCBDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCk7Cisg
ICAgICAgICAgICBPd25QdHI8UHJlbG9hZFJlcXVlc3Q+IHJlcXVlc3QgPSBQcmVsb2FkUmVxdWVz
dDo6Y3JlYXRlKCJjc3MiLCB1cmwsIGJhc2VFbGVtZW50VVJMLCBDYWNoZWRSZXNvdXJjZTo6Q1NT
U3R5bGVTaGVldCk7CiAgICAgICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHRoaXMgYmUgaW5jbHVk
aW5nIHRoZSBjaGFyc2V0IGluIHRoZSBwcmVsb2FkIHJlcXVlc3Q/CiAgICAgICAgICAgICBtX3Jl
cXVlc3RzLT5hcHBlbmQocmVxdWVzdC5yZWxlYXNlKCkpOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaAppbmRleCAyMmY2ZmE4Njlj
YTUyNDUyODgxYjZhODgxYmQ1MWU2N2U3NmZlYjRlLi40YjY5YmMzMjM1NmI0YzIxODEzM2ZiMTNk
Y2E0MjEwZmIzYjZmNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NTU1By
ZWxvYWRTY2FubmVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgQ1NTUHJlbG9hZFNjYW5u
ZXJfaAogCiAjaW5jbHVkZSAiSFRNTFJlc291cmNlUHJlbG9hZGVyLmgiCisjaW5jbHVkZSAiSFRN
TFRva2VuLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00MCw4ICs0MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXQo
KTsKIAotICAgIHZvaWQgc2Nhbihjb25zdCBVQ2hhciogYmVnaW4sIGNvbnN0IFVDaGFyKiBlbmQs
IFZlY3RvcjxPd25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4mKTsKLSAgICB2b2lkIHNjYW4oY29uc3Qg
TENoYXIqIGJlZ2luLCBjb25zdCBMQ2hhciogZW5kLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1
ZXN0PiA+Jik7CisgICAgdm9pZCBzY2FuKGNvbnN0IEhUTUxUb2tlbjo6RGF0YVZlY3RvciYsIFBy
ZWxvYWRSZXF1ZXN0U3RyZWFtJik7CisgICAgdm9pZCBzY2FuKGNvbnN0IFN0cmluZyYsIFByZWxv
YWRSZXF1ZXN0U3RyZWFtJik7CiAKIHByaXZhdGU6CiAgICAgZW51bSBTdGF0ZSB7CkBAIC01Nyw2
ICs1OCw5IEBAIHByaXZhdGU6CiAgICAgICAgIERvbmVQYXJzaW5nSW1wb3J0UnVsZXMsCiAgICAg
fTsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIENoYXI+CisgICAgdm9pZCBzY2FuQ29tbW9uKGNv
bnN0IENoYXIqIGJlZ2luLCBjb25zdCBDaGFyKiBlbmQsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJik7
CisKICAgICBpbmxpbmUgdm9pZCB0b2tlbml6ZShVQ2hhcik7CiAgICAgdm9pZCBlbWl0UnVsZSgp
OwogCkBAIC02NSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nQnVpbGRlciBtX3J1bGVW
YWx1ZTsKIAogICAgIC8vIE9ubHkgbm9uLXplcm8gZHVyaW5nIHNjYW4oKQotICAgIFZlY3RvcjxP
d25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4qIG1fcmVxdWVzdHM7CisgICAgUHJlbG9hZFJlcXVlc3RT
dHJlYW0qIG1fcmVxdWVzdHM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCA3NDEzMzhhYmY0ZmY1ODBkYTg3ZjM4
YTE4ZWE4ZDQ3ZWViZmFmYjZkLi4zZTU4OWVkZDhmOTIwZmU4NDc1YjVkYzE4NmNlNzcxMmM1OGE1
ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5jcHAKQEAgLTYyNCw2ICs2MjQsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3Rh
cnRCYWNrZ3JvdW5kUGFyc2VyKCkKICAgICBjb25maWctPnByZWxvYWRTY2FubmVyID0gYWRvcHRQ
dHIobmV3IFRva2VuUHJlbG9hZFNjYW5uZXIoZG9jdW1lbnQoKS0+dXJsKCkuY29weSgpKSk7CiAK
ICAgICBBU1NFUlQoY29uZmlnLT54c3NBdWRpdG9yLT5pc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJl
YWQoKSk7CisgICAgQVNTRVJUKGNvbmZpZy0+cHJlbG9hZFNjYW5uZXItPmlzU2FmZVRvU2VuZFRv
QW5vdGhlclRocmVhZCgpKTsKICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRh
c2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZSwgcmVmZXJlbmNlLnJlbGVhc2Uo
KSwgY29uZmlnLnJlbGVhc2UoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCA4NDg1NjRkNzUxNmI5ODI5YTRmMGY5
YjYyYWNiMTMxNWEwNGI4ZmNjLi5hNTdjNWQzODVlM2U3MWU3MWI1NTFkNDNjYWVkMDc1MjM4MzVi
MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNj
YW5uZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nh
bm5lci5jcHAKQEAgLTQzLDE4ICs0Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotc3RhdGljIGJvb2wgaXNTdGFydFRhZyhIVE1MVG9rZW46
OlR5cGUgdHlwZSkKLXsKLSAgICByZXR1cm4gdHlwZSA9PSBIVE1MVG9rZW46OlN0YXJ0VGFnOwot
fQotCi1zdGF0aWMgYm9vbCBpc1N0YXJ0T3JFbmRUYWcoSFRNTFRva2VuOjpUeXBlIHR5cGUpCi17
Ci0gICAgcmV0dXJuIHR5cGUgPT0gSFRNTFRva2VuOjpFbmRUYWcgfHwgaXNTdGFydFRhZyh0eXBl
KTsKLX0KLQotVG9rZW5QcmVsb2FkU2Nhbm5lcjo6VGFnSWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6
aWRlbnRpZmllckZvcihjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUpCitUb2tlblByZWxvYWRT
Y2FubmVyOjpUYWdJZCBUb2tlblByZWxvYWRTY2FubmVyOjp0YWdJZEZvcihjb25zdCBIVE1MVG9r
ZW46OkRhdGFWZWN0b3ImIGRhdGEpCiB7CisgICAgQXRvbWljU3RyaW5nIHRhZ05hbWUoZGF0YSk7
CiAgICAgaWYgKHRhZ05hbWUgPT0gaW1nVGFnKQogICAgICAgICByZXR1cm4gSW1nVGFnSWQ7CiAg
ICAgaWYgKHRhZ05hbWUgPT0gaW5wdXRUYWcpCkBAIC03Miw3ICs2MywyNiBAQCBUb2tlblByZWxv
YWRTY2FubmVyOjpUYWdJZCBUb2tlblByZWxvYWRTY2FubmVyOjppZGVudGlmaWVyRm9yKGNvbnN0
IEF0b21pY1N0cmluZwogICAgIHJldHVybiBVbmtub3duVGFnSWQ7CiB9CiAKLVN0cmluZyBUb2tl
blByZWxvYWRTY2FubmVyOjppbml0aXRhdG9yRm9yKFRhZ0lkIHRhZ0lkKQorVG9rZW5QcmVsb2Fk
U2Nhbm5lcjo6VGFnSWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6dGFnSWRGb3IoY29uc3QgU3RyaW5n
JiB0YWdOYW1lKQoreworICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgaW1nVGFnKSkK
KyAgICAgICAgcmV0dXJuIEltZ1RhZ0lkOworICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFt
ZSwgaW5wdXRUYWcpKQorICAgICAgICByZXR1cm4gSW5wdXRUYWdJZDsKKyAgICBpZiAodGhyZWFk
U2FmZU1hdGNoKHRhZ05hbWUsIGxpbmtUYWcpKQorICAgICAgICByZXR1cm4gTGlua1RhZ0lkOwor
ICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc2NyaXB0VGFnKSkKKyAgICAgICAgcmV0
dXJuIFNjcmlwdFRhZ0lkOworICAgIGlmICh0aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgc3R5bGVU
YWcpKQorICAgICAgICByZXR1cm4gU3R5bGVUYWdJZDsKKyAgICBpZiAodGhyZWFkU2FmZU1hdGNo
KHRhZ05hbWUsIGJhc2VUYWcpKQorICAgICAgICByZXR1cm4gQmFzZVRhZ0lkOworICAgIGlmICh0
aHJlYWRTYWZlTWF0Y2godGFnTmFtZSwgdGVtcGxhdGVUYWcpKQorICAgICAgICByZXR1cm4gVGVt
cGxhdGVUYWdJZDsKKyAgICByZXR1cm4gVW5rbm93blRhZ0lkOworfQorCitTdHJpbmcgVG9rZW5Q
cmVsb2FkU2Nhbm5lcjo6aW5pdGlhdG9yRm9yKFRhZ0lkIHRhZ0lkKQogewogICAgIHN3aXRjaCAo
dGFnSWQpIHsKICAgICBjYXNlIEltZ1RhZ0lkOgpAQCAtMTA3LDEwICsxMTcsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwcm9jZXNzQXR0cmlidXRlcyhjb25zdCBIVE1MVG9rZW46OkF0dHJpYnV0ZUxp
c3QmIGF0dHJpYnV0ZXMpCiAgICAgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwot
CiAgICAgICAgIGlmIChtX3RhZ0lkID49IFVua25vd25UYWdJZCkKICAgICAgICAgICAgIHJldHVy
bjsKLQogICAgICAgICBmb3IgKEhUTUxUb2tlbjo6QXR0cmlidXRlTGlzdDo6Y29uc3RfaXRlcmF0
b3IgaXRlciA9IGF0dHJpYnV0ZXMuYmVnaW4oKTsgaXRlciAhPSBhdHRyaWJ1dGVzLmVuZCgpOyAr
K2l0ZXIpIHsKICAgICAgICAgICAgIEF0b21pY1N0cmluZyBhdHRyaWJ1dGVOYW1lKGl0ZXItPm5h
bWUpOwogICAgICAgICAgICAgU3RyaW5nIGF0dHJpYnV0ZVZhbHVlID0gU3RyaW5nSW1wbDo6Y3Jl
YXRlOEJpdElmUG9zc2libGUoaXRlci0+dmFsdWUpOwpAQCAtMTE4LDEyICsxMjYsMjIgQEAgcHVi
bGljOgogICAgICAgICB9CiAgICAgfQogCisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VS
KQorICAgIHZvaWQgcHJvY2Vzc0F0dHJpYnV0ZXMoY29uc3QgVmVjdG9yPENvbXBhY3RIVE1MVG9r
ZW46OkF0dHJpYnV0ZT4mIGF0dHJpYnV0ZXMpCisgICAgeworICAgICAgICBpZiAobV90YWdJZCA+
PSBVbmtub3duVGFnSWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAoVmVjdG9y
PENvbXBhY3RIVE1MVG9rZW46OkF0dHJpYnV0ZT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBhdHRy
aWJ1dGVzLmJlZ2luKCk7IGl0ZXIgIT0gYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKQorICAgICAg
ICAgICAgcHJvY2Vzc0F0dHJpYnV0ZShpdGVyLT5uYW1lLCBpdGVyLT52YWx1ZSk7CisgICAgfQor
I2VuZGlmCisKICAgICBQYXNzT3duUHRyPFByZWxvYWRSZXF1ZXN0PiBjcmVhdGVQcmVsb2FkUmVx
dWVzdChjb25zdCBLVVJMJiBwcmVkaWN0ZWRCYXNlVVJMKQogICAgIHsKICAgICAgICAgaWYgKCFz
aG91bGRQcmVsb2FkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICBP
d25QdHI8UHJlbG9hZFJlcXVlc3Q+IHJlcXVlc3QgPSBQcmVsb2FkUmVxdWVzdDo6Y3JlYXRlKGlu
aXRpdGF0b3JGb3IobV90YWdJZCksIG1fdXJsVG9Mb2FkLCBwcmVkaWN0ZWRCYXNlVVJMLCByZXNv
dXJjZVR5cGUoKSk7CisgICAgICAgIE93blB0cjxQcmVsb2FkUmVxdWVzdD4gcmVxdWVzdCA9IFBy
ZWxvYWRSZXF1ZXN0OjpjcmVhdGUoaW5pdGlhdG9yRm9yKG1fdGFnSWQpLCBtX3VybFRvTG9hZCwg
cHJlZGljdGVkQmFzZVVSTCwgcmVzb3VyY2VUeXBlKCkpOwogICAgICAgICByZXF1ZXN0LT5zZXRD
cm9zc09yaWdpbk1vZGVBbGxvd3NDb29raWVzKGNyb3NzT3JpZ2luTW9kZUFsbG93c0Nvb2tpZXMo
KSk7CiAgICAgICAgIHJlcXVlc3QtPnNldENoYXJzZXQoY2hhcnNldCgpKTsKICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucmVsZWFzZSgpOwpAQCAtMjQ0LDg4ICsyNjIsMTExIEBAIFRva2VuUHJlbG9h
ZFNjYW5uZXI6On5Ub2tlblByZWxvYWRTY2FubmVyKCkKIHsKIH0KIAotI2lmIEVOQUJMRShURU1Q
TEFURV9FTEVNRU5UKQotYm9vbCBUb2tlblByZWxvYWRTY2FubmVyOjpwcm9jZXNzUG9zc2libGVU
ZW1wbGF0ZVRhZyhUYWdJZCB0YWdJZCwgSFRNTFRva2VuOjpUeXBlIHR5cGUpCitUb2tlblByZWxv
YWRTY2FubmVyQ2hlY2twb2ludCBUb2tlblByZWxvYWRTY2FubmVyOjpjcmVhdGVDaGVja3BvaW50
KCkKIHsKLSAgICBpZiAoaXNTdGFydE9yRW5kVGFnKHR5cGUpICYmIHRhZ0lkID09IFRlbXBsYXRl
VGFnSWQpIHsKLSAgICAgICAgaWYgKGlzU3RhcnRUYWcodHlwZSkpCi0gICAgICAgICAgICBtX3Rl
bXBsYXRlQ291bnQrKzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV90ZW1wbGF0ZUNvdW50
LS07Ci0gICAgICAgIHJldHVybiB0cnVlOyAvLyBUd2FzIG91ciB0b2tlbi4KLSAgICB9Ci0gICAg
Ly8gSWYgd2UncmUgaW4gYSB0ZW1wbGF0ZSB3ZSAiY29uc3VtZSIgYWxsIHRva2Vucy4KLSAgICBy
ZXR1cm4gbV90ZW1wbGF0ZUNvdW50ID4gMDsKLX0KKyAgICBUb2tlblByZWxvYWRTY2FubmVyQ2hl
Y2twb2ludCBjaGVja3BvaW50ID0gbV9jaGVja3BvaW50cy5zaXplKCk7CisgICAgbV9jaGVja3Bv
aW50cy5hcHBlbmQoQ2hlY2twb2ludChtX3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMLCBtX2luU3R5
bGUKKyNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICwgbV90ZW1wbGF0ZUNvdW50CiAjZW5kaWYKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICkpOworICAgIHJldHVybiBjaGVja3BvaW50OworfQogCi1ib29s
IFRva2VuUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NQb3NzaWJsZVN0eWxlVGFnKFRhZ0lkIHRhZ0lk
LCBIVE1MVG9rZW46OlR5cGUgdHlwZSkKK3ZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6cmV3aW5k
VG8oVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgY2hlY2twb2ludEluZGV4KQogewotICAg
IEFTU0VSVChpc1N0YXJ0T3JFbmRUYWcodHlwZSkpOwotICAgIGlmICh0YWdJZCAhPSBTdHlsZVRh
Z0lkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX2luU3R5bGUgPSBpc1N0YXJ0VGFn
KHR5cGUpOwotCi0gICAgaWYgKCFtX2luU3R5bGUpCi0gICAgICAgIG1fY3NzU2Nhbm5lci5yZXNl
dCgpOwotCi0gICAgcmV0dXJuIHRydWU7CisgICAgQVNTRVJUKGNoZWNrcG9pbnRJbmRleCA8IG1f
Y2hlY2twb2ludHMuc2l6ZSgpKTsgLy8gSWYgdGhpcyBBU1NFUlQgZmlyZXMsIGNoZWNrcG9pbnRJ
bmRleCBpcyBpbnZhbGlkLgorICAgIGNvbnN0IENoZWNrcG9pbnQmIGNoZWNrcG9pbnQgPSBtX2No
ZWNrcG9pbnRzW2NoZWNrcG9pbnRJbmRleF07CisgICAgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVS
TCA9IGNoZWNrcG9pbnQucHJlZGljdGVkQmFzZUVsZW1lbnRVUkw7CisgICAgbV9pblN0eWxlID0g
Y2hlY2twb2ludC5pblN0eWxlOworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgIG1f
dGVtcGxhdGVDb3VudCA9IGNoZWNrcG9pbnQudGVtcGxhdGVDb3VudDsKKyNlbmRpZgorICAgIG1f
Y3NzU2Nhbm5lci5yZXNldCgpOworICAgIG1fY2hlY2twb2ludHMuY2xlYXIoKTsKIH0KIAotYm9v
bCBUb2tlblByZWxvYWRTY2FubmVyOjpwcm9jZXNzUG9zc2libGVCYXNlVGFnKFRhZ0lkIHRhZ0lk
LCBjb25zdCBIVE1MVG9rZW4mIHRva2VuKQordm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjpzY2Fu
KGNvbnN0IEhUTUxUb2tlbiYgdG9rZW4sIFZlY3RvcjxPd25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4m
IHJlcXVlc3RzKQogewotICAgIEFTU0VSVChpc1N0YXJ0VGFnKHRva2VuLnR5cGUoKSkpOwotICAg
IGlmICh0YWdJZCAhPSBCYXNlVGFnSWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8v
IFRoZSBmaXJzdCA8YmFzZT4gZWxlbWVudCBpcyB0aGUgb25lIHRoYXQgd2lucy4KLSAgICBpZiAo
IW1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBzY2FuQ29tbW9uKHRva2VuLCByZXF1ZXN0cyk7Cit9CiAKLSAgICBmb3IgKEhUTUxU
b2tlbjo6QXR0cmlidXRlTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHRva2VuLmF0dHJpYnV0
ZXMoKS5iZWdpbigpOyBpdGVyICE9IHRva2VuLmF0dHJpYnV0ZXMoKS5lbmQoKTsgKytpdGVyKSB7
Ci0gICAgICAgIEF0b21pY1N0cmluZyBhdHRyaWJ1dGVOYW1lKGl0ZXItPm5hbWUpOwotICAgICAg
ICBpZiAoYXR0cmlidXRlTmFtZSA9PSBocmVmQXR0cikgewotICAgICAgICAgICAgU3RyaW5nIGhy
ZWZWYWx1ZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZThCaXRJZlBvc3NpYmxlKGl0ZXItPnZhbHVlKTsK
LSAgICAgICAgICAgIG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwgPSBLVVJMKG1fZG9jdW1lbnRV
UkwsIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhocmVmVmFsdWUpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0cnVlOworI2lmIEVO
QUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKK3ZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6c2Nh
bihjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbiwgVmVjdG9yPE93blB0cjxQcmVsb2FkUmVx
dWVzdD4gPiYgcmVxdWVzdHMpCit7CisgICAgc2NhbkNvbW1vbih0b2tlbiwgcmVxdWVzdHMpOwog
fQorI2VuZGlmCiAKLXZvaWQgVG9rZW5QcmVsb2FkU2Nhbm5lcjo6c2Nhbihjb25zdCBIVE1MVG9r
ZW4mIHRva2VuLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0PiA+JiByZXF1ZXN0cykKK3Rl
bXBsYXRlPHR5cGVuYW1lIFRva2VuPgordm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjpzY2FuQ29t
bW9uKGNvbnN0IFRva2VuJiB0b2tlbiwgVmVjdG9yPE93blB0cjxQcmVsb2FkUmVxdWVzdD4gPiYg
cmVxdWVzdHMpCiB7Ci0gICAgLy8gPHN0eWxlPiBpcyB0aGUgb25seSBwbGFjZSB3ZSBzZWFyY2gg
Zm9yIHVybHMgaW4gbm9uLXN0YXJ0L2VuZC10YWcgdG9rZW5zLgotICAgIGlmIChtX2luU3R5bGUp
IHsKLSAgICAgICAgaWYgKHRva2VuLnR5cGUoKSAhPSBIVE1MVG9rZW46OkNoYXJhY3RlcikKKyAg
ICBzd2l0Y2ggKHRva2VuLnR5cGUoKSkgeworICAgIGNhc2UgSFRNTFRva2VuOjpDaGFyYWN0ZXI6
IHsKKyAgICAgICAgaWYgKCFtX2luU3R5bGUpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IGNvbnN0IEhUTUxUb2tlbjo6RGF0YVZlY3RvciYgY2hhcmFjdGVycyA9IHRva2VuLmNoYXJhY3Rl
cnMoKTsKLSAgICAgICAgcmV0dXJuIG1fY3NzU2Nhbm5lci5zY2FuKGNoYXJhY3RlcnMuYmVnaW4o
KSwgY2hhcmFjdGVycy5lbmQoKSwgcmVxdWVzdHMpOwotICAgIH0KLQotICAgIGlmICghaXNTdGFy
dE9yRW5kVGFnKHRva2VuLnR5cGUoKSkpCisgICAgICAgIG1fY3NzU2Nhbm5lci5zY2FuKHRva2Vu
LmRhdGEoKSwgcmVxdWVzdHMpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBBdG9taWNTdHJpbmcg
dGFnTmFtZSh0b2tlbi5uYW1lKCkpOwotICAgIFRhZ0lkIHRhZ0lkID0gaWRlbnRpZmllckZvcih0
YWdOYW1lKTsKLQorICAgIH0KKyAgICBjYXNlIEhUTUxUb2tlbjo6RW5kVGFnOiB7CisgICAgICAg
IFRhZ0lkIHRhZ0lkID0gdGFnSWRGb3IodG9rZW4uZGF0YSgpKTsKICNpZiBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkKLSAgICBpZiAocHJvY2Vzc1Bvc3NpYmxlVGVtcGxhdGVUYWcodGFnSWQsIHRv
a2VuLnR5cGUoKSkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHRhZ0lkID09IFRlbXBs
YXRlVGFnSWQpIHsKKyAgICAgICAgICAgIGlmIChtX3RlbXBsYXRlQ291bnQpCisgICAgICAgICAg
ICAgICAgLS1tX3RlbXBsYXRlQ291bnQ7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
ICNlbmRpZgotICAgIGlmIChwcm9jZXNzUG9zc2libGVTdHlsZVRhZyh0YWdJZCwgdG9rZW4udHlw
ZSgpKSkKKyAgICAgICAgaWYgKHRhZ0lkID09IFN0eWxlVGFnSWQpIHsKKyAgICAgICAgICAgIGlm
IChtX2luU3R5bGUpCisgICAgICAgICAgICAgICAgbV9jc3NTY2FubmVyLnJlc2V0KCk7CisgICAg
ICAgICAgICBtX2luU3R5bGUgPSBmYWxzZTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKCFpc1N0YXJ0VGFnKHRva2VuLnR5cGUoKSkpCisgICAgfQorICAgIGNhc2UgSFRNTFRv
a2VuOjpTdGFydFRhZzogeworI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQorICAgICAgICBp
ZiAobV90ZW1wbGF0ZUNvdW50KQorICAgICAgICAgICAgcmV0dXJuOworI2VuZGlmCisgICAgICAg
IFRhZ0lkIHRhZ0lkID0gdGFnSWRGb3IodG9rZW4uZGF0YSgpKTsKKyNpZiBFTkFCTEUoVEVNUExB
VEVfRUxFTUVOVCkKKyAgICAgICAgaWYgKHRhZ0lkID09IFRlbXBsYXRlVGFnSWQpIHsKKyAgICAg
ICAgICAgICsrbV90ZW1wbGF0ZUNvdW50OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisjZW5kaWYKKyAgICAgICAgaWYgKHRhZ0lkID09IFN0eWxlVGFnSWQpIHsKKyAgICAgICAgICAg
IG1faW5TdHlsZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKHRhZ0lkID09IEJhc2VUYWdJZCkgeworICAgICAgICAgICAgLy8gVGhlIGZpcnN0IDxi
YXNlPiBlbGVtZW50IGlzIHRoZSBvbmUgdGhhdCB3aW5zLgorICAgICAgICAgICAgaWYgKCFtX3By
ZWRpY3RlZEJhc2VFbGVtZW50VVJMLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB1cGRhdGVQcmVkaWN0ZWRCYXNlVVJMKHRva2VuKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFN0YXJ0VGFnU2Nhbm5lciBzY2FubmVyKHRh
Z0lkKTsKKyAgICAgICAgc2Nhbm5lci5wcm9jZXNzQXR0cmlidXRlcyh0b2tlbi5hdHRyaWJ1dGVz
KCkpOworICAgICAgICBPd25QdHI8UHJlbG9hZFJlcXVlc3Q+IHJlcXVlc3QgPSBzY2FubmVyLmNy
ZWF0ZVByZWxvYWRSZXF1ZXN0KG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwpOworICAgICAgICBp
ZiAocmVxdWVzdCkKKyAgICAgICAgICAgIHJlcXVlc3RzLmFwcGVuZChyZXF1ZXN0LnJlbGVhc2Uo
KSk7CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAocHJvY2Vzc1Bvc3NpYmxlQmFzZVRhZyh0YWdJ
ZCwgdG9rZW4pKQorICAgIH0KKyAgICBkZWZhdWx0OiB7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgfQorfQogCi0gICAgU3RhcnRUYWdTY2FubmVyIHNjYW5uZXIodGFnSWQpOwotICAgIHNj
YW5uZXIucHJvY2Vzc0F0dHJpYnV0ZXModG9rZW4uYXR0cmlidXRlcygpKTsKLSAgICBPd25QdHI8
UHJlbG9hZFJlcXVlc3Q+IHJlcXVlc3QgPSAgc2Nhbm5lci5jcmVhdGVQcmVsb2FkUmVxdWVzdCht
X3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMKTsKLSAgICBpZiAocmVxdWVzdCkKLSAgICAgICAgcmVx
dWVzdHMuYXBwZW5kKHJlcXVlc3QucmVsZWFzZSgpKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFRva2Vu
Pgordm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjp1cGRhdGVQcmVkaWN0ZWRCYXNlVVJMKGNvbnN0
IFRva2VuJiB0b2tlbikKK3sKKyAgICBBU1NFUlQobV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTC5p
c0VtcHR5KCkpOworICAgIGlmIChjb25zdCB0eXBlbmFtZSBUb2tlbjo6QXR0cmlidXRlKiBocmVm
QXR0cmlidXRlID0gdG9rZW4uZ2V0QXR0cmlidXRlSXRlbShocmVmQXR0cikpCisgICAgICAgIG1f
cHJlZGljdGVkQmFzZUVsZW1lbnRVUkwgPSBLVVJMKG1fZG9jdW1lbnRVUkwsIHN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhocmVmQXR0cmlidXRlLT52YWx1ZSkpLmNvcHkoKTsKIH0K
IAogSFRNTFByZWxvYWRTY2FubmVyOjpIVE1MUHJlbG9hZFNjYW5uZXIoY29uc3QgSFRNTFBhcnNl
ck9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IEtVUkwmIGRvY3VtZW50VVJMKQpAQCAtMzUxLDE1ICsz
OTIsMTYgQEAgdm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnNjYW4oSFRNTFJlc291cmNlUHJlbG9h
ZGVyKiBwcmVsb2FkZXIsIGNvbnN0IEtVUkwmIHN0YXIKICAgICBpZiAoIXN0YXJ0aW5nQmFzZUVs
ZW1lbnRVUkwuaXNFbXB0eSgpKQogICAgICAgICBtX3NjYW5uZXIuc2V0UHJlZGljdGVkQmFzZUVs
ZW1lbnRVUkwoc3RhcnRpbmdCYXNlRWxlbWVudFVSTCk7CiAKLSAgICBWZWN0b3I8T3duUHRyPFBy
ZWxvYWRSZXF1ZXN0PiA+IHJlcXVlc3RzOworICAgIFByZWxvYWRSZXF1ZXN0U3RyZWFtIHJlcXVl
c3RzOworCiAgICAgd2hpbGUgKG1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9zb3VyY2UsIG1fdG9r
ZW4pKSB7Ci0gICAgICAgIGlmIChpc1N0YXJ0VGFnKG1fdG9rZW4udHlwZSgpKSkKKyAgICAgICAg
aWYgKG1fdG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6U3RhcnRUYWcpCiAgICAgICAgICAgICBt
X3Rva2VuaXplci0+dXBkYXRlU3RhdGVGb3IoQXRvbWljU3RyaW5nKG1fdG9rZW4ubmFtZSgpKSk7
CiAgICAgICAgIG1fc2Nhbm5lci5zY2FuKG1fdG9rZW4sIHJlcXVlc3RzKTsKICAgICAgICAgbV90
b2tlbi5jbGVhcigpOwogICAgIH0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlcXVlc3Rz
LnNpemUoKTsgaSsrKQotICAgICAgICBwcmVsb2FkZXItPnByZWxvYWQocmVxdWVzdHNbaV0ucmVs
ZWFzZSgpKTsKKworICAgIHByZWxvYWRlci0+dGFrZUFuZFByZWxvYWQocmVxdWVzdHMpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNj
YW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5o
CmluZGV4IGRmNjQ3MGEwMDIxNGQyZDgzMDI3MjJlMzc3YWJkZTFiYzg5ZDg5ZTcuLjQ3YTU0NDRm
MTBlOGNmZGQ2YmE3MGIwNmJlMDhmMjU0NDA0Y2MwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5oCkBAIC0yOCw4ICsyOCwxMCBAQAogI2Rl
ZmluZSBIVE1MUHJlbG9hZFNjYW5uZXJfaAogCiAjaW5jbHVkZSAiQ1NTUHJlbG9hZFNjYW5uZXIu
aCIKKyNpbmNsdWRlICJDb21wYWN0SFRNTFRva2VuLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgi
CiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1LDEwICs0NywyNCBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgVG9rZW5QcmVsb2FkU2Nhbm5lcihjb25zdCBLVVJMJiBkb2N1bWVudFVSTCk7CiAg
ICAgflRva2VuUHJlbG9hZFNjYW5uZXIoKTsKIAotICAgIHZvaWQgc2Nhbihjb25zdCBIVE1MVG9r
ZW4mLCBWZWN0b3I8T3duUHRyPFByZWxvYWRSZXF1ZXN0PiA+JiByZXF1ZXN0cyk7CisgICAgdm9p
ZCBzY2FuKGNvbnN0IEhUTUxUb2tlbiYsIFByZWxvYWRSZXF1ZXN0U3RyZWFtJiByZXF1ZXN0cyk7
CisjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQorICAgIHZvaWQgc2Nhbihjb25zdCBD
b21wYWN0SFRNTFRva2VuJiwgUHJlbG9hZFJlcXVlc3RTdHJlYW0mIHJlcXVlc3RzKTsKKyNlbmRp
ZgogCiAgICAgdm9pZCBzZXRQcmVkaWN0ZWRCYXNlRWxlbWVudFVSTChjb25zdCBLVVJMJiB1cmwp
IHsgbV9wcmVkaWN0ZWRCYXNlRWxlbWVudFVSTCA9IHVybDsgfQogCisgICAgLy8gQSBUb2tlblBy
ZWxvYWRTY2FubmVyQ2hlY2twb2ludCBpcyB2YWxpZCB1bnRpbCB0aGUgbmV4dCBjYWxsIHRvIHJl
d2luZFRvLAorICAgIC8vIGF0IHdoaWNoIHBvaW50IGFsbCBvdXRzdGFuZGluZyBjaGVja3BvaW50
cyBhcmUgaW52YWxpZGF0ZWQuCisgICAgVG9rZW5QcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQgY3Jl
YXRlQ2hlY2twb2ludCgpOworICAgIHZvaWQgcmV3aW5kVG8oVG9rZW5QcmVsb2FkU2Nhbm5lckNo
ZWNrcG9pbnQpOworCisgICAgYm9vbCBpc1NhZmVUb1NlbmRUb0Fub3RoZXJUaHJlYWQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIG1fZG9jdW1lbnRVUkwuaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhy
ZWFkKCkKKyAgICAgICAgICAgICYmIG1fcHJlZGljdGVkQmFzZUVsZW1lbnRVUkwuaXNTYWZlVG9T
ZW5kVG9Bbm90aGVyVGhyZWFkKCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIGVudW0gVGFnSWQg
ewogICAgICAgICAvLyBUaGVzZSB0YWdzIGFyZSBzY2FubmVkIGJ5IHRoZSBTdGFydFRhZ1NjYW5u
ZXIuCkBAIC02NiwyNCArODIsNDggQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIFN0YXJ0VGFnU2Nh
bm5lcjsKIAotICAgIHN0YXRpYyBUYWdJZCBpZGVudGlmaWVyRm9yKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdGFnTmFtZSk7Ci0gICAgc3RhdGljIFN0cmluZyBpbml0aXRhdG9yRm9yKFRhZ0lkKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUb2tlbj4KKyAgICBpbmxpbmUgdm9pZCBzY2FuQ29tbW9uKGNv
bnN0IFRva2VuJiwgUHJlbG9hZFJlcXVlc3RTdHJlYW0mIHJlcXVlc3RzKTsKKworICAgIHN0YXRp
YyBUYWdJZCB0YWdJZEZvcihjb25zdCBIVE1MVG9rZW46OkRhdGFWZWN0b3ImKTsKKyAgICBzdGF0
aWMgVGFnSWQgdGFnSWRGb3IoY29uc3QgU3RyaW5nJik7CisKKyAgICBzdGF0aWMgU3RyaW5nIGlu
aXRpYXRvckZvcihUYWdJZCk7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUb2tlbj4KKyAgICB2
b2lkIHVwZGF0ZVByZWRpY3RlZEJhc2VVUkwoY29uc3QgVG9rZW4mKTsKIAorICAgIHN0cnVjdCBD
aGVja3BvaW50IHsKKyAgICAgICAgQ2hlY2twb2ludChjb25zdCBLVVJMJiBwcmVkaWN0ZWRCYXNl
RWxlbWVudFVSTCwgYm9vbCBpblN0eWxlCiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCi0g
ICAgYm9vbCBwcm9jZXNzUG9zc2libGVUZW1wbGF0ZVRhZyhUYWdJZCwgSFRNTFRva2VuOjpUeXBl
KTsKKyAgICAgICAgICAgICwgc2l6ZV90IHRlbXBsYXRlQ291bnQKICNlbmRpZgorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgOiBwcmVkaWN0ZWRCYXNlRWxlbWVudFVSTChwcmVkaWN0ZWRCYXNl
RWxlbWVudFVSTCkKKyAgICAgICAgICAgICwgaW5TdHlsZShpblN0eWxlKQorI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQorICAgICAgICAgICAgLCB0ZW1wbGF0ZUNvdW50KHRlbXBsYXRlQ291
bnQpCisjZW5kaWYKKyAgICAgICAgeworICAgICAgICB9CiAKLSAgICBib29sIHByb2Nlc3NQb3Nz
aWJsZVN0eWxlVGFnKFRhZ0lkLCBIVE1MVG9rZW46OlR5cGUpOwotICAgIGJvb2wgcHJvY2Vzc1Bv
c3NpYmxlQmFzZVRhZyhUYWdJZCwgY29uc3QgSFRNTFRva2VuJik7CisgICAgICAgIEtVUkwgcHJl
ZGljdGVkQmFzZUVsZW1lbnRVUkw7CisgICAgICAgIGJvb2wgaW5TdHlsZTsKKyNpZiBFTkFCTEUo
VEVNUExBVEVfRUxFTUVOVCkKKyAgICAgICAgc2l6ZV90IHRlbXBsYXRlQ291bnQ7CisjZW5kaWYK
KyAgICB9OwogCiAgICAgQ1NTUHJlbG9hZFNjYW5uZXIgbV9jc3NTY2FubmVyOwotICAgIEtVUkwg
bV9kb2N1bWVudFVSTDsKKyAgICBjb25zdCBLVVJMIG1fZG9jdW1lbnRVUkw7CiAgICAgS1VSTCBt
X3ByZWRpY3RlZEJhc2VFbGVtZW50VVJMOwogICAgIGJvb2wgbV9pblN0eWxlOwogCiAjaWYgRU5B
QkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAgc2l6ZV90IG1fdGVtcGxhdGVDb3VudDsKICNlbmRp
ZgorCisgICAgVmVjdG9yPENoZWNrcG9pbnQ+IG1fY2hlY2twb2ludHM7CiB9OwogCiBjbGFzcyBI
VE1MUHJlbG9hZFNjYW5uZXIgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>