<?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>163734</bug_id>
          
          <creation_ts>2016-10-20 08:58:22 -0700</creation_ts>
          <short_desc>GC should scan stack at the end</short_desc>
          <delta_ts>2016-11-09 20:27:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>164454</dup_id>
          
          <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>149432</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1242412</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-20 08:58:22 -0700</bug_when>
    <thetext>Because we will have a grey stack GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248227</commentid>
    <comment_count>1</comment_count>
      <attachid>293917</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 13:05:50 -0700</bug_when>
    <thetext>Created attachment 293917
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248239</commentid>
    <comment_count>2</comment_count>
      <attachid>293917</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-04 13:31:28 -0700</bug_when>
    <thetext>Comment on attachment 293917
the patch

r=me.  Looks reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248244</commentid>
    <comment_count>3</comment_count>
      <attachid>293920</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 13:39:52 -0700</bug_when>
    <thetext>Created attachment 293920
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248245</commentid>
    <comment_count>4</comment_count>
      <attachid>293921</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 13:40:17 -0700</bug_when>
    <thetext>Created attachment 293921
possibly better patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248246</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 13:40:41 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 293917 [details]
&gt; the patch
&gt; 
&gt; r=me.  Looks reasonable to me.

Sorry, it was broken. :-(  There&apos;s something subtle about CodeBlock marking, I&apos;m still investigating the best approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248272</commentid>
    <comment_count>6</comment_count>
      <attachid>293927</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 14:20:40 -0700</bug_when>
    <thetext>Created attachment 293927
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248273</commentid>
    <comment_count>7</comment_count>
      <attachid>293928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 14:24:25 -0700</bug_when>
    <thetext>Created attachment 293928
possibly better patch

Still experimenting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248325</commentid>
    <comment_count>8</comment_count>
      <attachid>293928</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-04 15:30:41 -0700</bug_when>
    <thetext>Comment on attachment 293928
possibly better patch

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

r=me.  Looks good to me.

&gt; Source/JavaScriptCore/ChangeLog:18
&gt; +        This change should not change performance or behavior. I&apos;m still testing it.

Please replace &quot;I&apos;m still testing it.&quot; with test results when done if all is well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248326</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 15:31:31 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 293928 [details]
&gt; possibly better patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=293928&amp;action=review
&gt; 
&gt; r=me.  Looks good to me.
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:18
&gt; &gt; +        This change should not change performance or behavior. I&apos;m still testing it.
&gt; 
&gt; Please replace &quot;I&apos;m still testing it.&quot; with test results when done if all is
&gt; well.

Right!  Will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248342</commentid>
    <comment_count>10</comment_count>
      <attachid>293949</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 16:07:55 -0700</bug_when>
    <thetext>Created attachment 293949
patch for landing

Still testing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248436</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-04 20:51:00 -0700</bug_when>
    <thetext>OK, this is perf-neutral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249658</commentid>
    <comment_count>12</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-11-09 20:27:52 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 164454 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293917</attachid>
            <date>2016-11-04 13:05:50 -0700</date>
            <delta_ts>2016-11-04 13:39:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>5689</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWlu
ZyBjaGFuZ2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFi
bGUgdG8ganVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhl
bmNlZm9ydGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4K
KyAgICAgICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRo
ZXIgdGhhbiAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5n
ZSBzaG91bGQgbm90IGNoYW5nZSBwZXJmb3JtYW5jZSBvciBiZWhhdmlvci4gSSdtIHN0aWxsIHRl
c3RpbmcgaXQuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFw
OjptYXJrUm9vdHMpOgorICAgICAgICAoSlNDOjpIZWFwOjp2aXNpdENvbnNlcnZhdGl2ZVJvb3Rz
KToKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1RvRml4cG9pbnQpOgorICAgICAgICAoSlNDOjpI
ZWFwOjp2aXNpdFdlYWtIYW5kbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hlYXAuaDoK
KwogMjAxNi0xMS0wMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
Q2xvbmVkQXJndW1lbnRzIG5lZWQgdG8gYWxzbyBzdXBwb3J0IGhhdmVBQmFkVGltZSBtb2RlLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDIwODM5NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NTMsMTAgKzQ1Myw2IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkK
ICAgICB7CiAgICAgICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNlVGltaW5nU2NvcGUoKnRo
aXMsICJIZWFwOjptYXJrUm9vdHMgYmVmb3JlIGNvbnZlcmdlbmNlIik7CiAKLSNpZiBFTkFCTEUo
REZHX0pJVCkKLSAgICAgICAgREZHOjpyZW1lbWJlckNvZGVCbG9ja3MoKm1fdm0pOwotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgICAgIGlmIChTYW1wbGluZ1By
b2ZpbGVyKiBzYW1wbGluZ1Byb2ZpbGVyID0gbV92bS0+c2FtcGxpbmdQcm9maWxlcigpKSB7CiAg
ICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgbmVlZCB0byBvd24gdGhlIGxvY2sgZnJvbSBub3cg
dW50aWwgd2UncmUgZG9uZQpAQCAtNTE2LDIxICs1MTIsNiBAQCB2b2lkIEhlYXA6Om1hcmtSb290
cyhkb3VibGUgZ2NTdGFydFRpbWUpCiAgICAgICAgIAogICAgICAgICBtX3Nsb3RWaXNpdG9yLmRv
bmF0ZUFuZERyYWluKCk7CiAKLSAgICAgICAgewotICAgICAgICAgICAgVGltaW5nU2NvcGUgcHJl
Q29udmVyZ2VuY2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1hcmtSb290cyBjb25zZXJ2YXRp
dmUgc2NhbiIpOwotICAgICAgICAgICAgQ29uc2VydmF0aXZlUm9vdHMgY29uc2VydmF0aXZlUm9v
dHMoKnRoaXMpOwotICAgICAgICAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwotICAgICAgICAgICAgZ2F0aGVyU3RhY2tSb290cyhjb25zZXJ2YXRpdmVSb290
cyk7Ci0gICAgICAgICAgICBnYXRoZXJKU1N0YWNrUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwot
ICAgICAgICAgICAgZ2F0aGVyU2NyYXRjaEJ1ZmZlclJvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsK
LSAgICAgICAgICAgIHZpc2l0Q29uc2VydmF0aXZlUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBXZSB3YW50IHRvIGRvIHRoaXMgdG8gY29uc2Vy
dmF0aXZlbHkgZW5zdXJlIHRoYXQgd2UgcmVzY2FuIGFueSBjb2RlIGJsb2NrcyB0aGF0IGFyZQot
ICAgICAgICAgICAgLy8gcnVubmluZyByaWdodCBub3cuIEhvd2V2ZXIsIHdlIG5lZWQgdG8gYmUg
c3VyZSB0byBkbyBpdCAqYWZ0ZXIqIHdlIG1hcmsgdGhlIGNvZGUgYmxvY2sKLSAgICAgICAgICAg
IC8vIHNvIHRoYXQgd2Uga25vdyBmb3Igc3VyZSBpZiBpdCByZWFsbHkgbmVlZHMgYSBiYXJyaWVy
LgotICAgICAgICAgICAgbV9jb2RlQmxvY2tzLT53cml0ZUJhcnJpZXJDdXJyZW50bHlFeGVjdXRp
bmcodGhpcyk7Ci0gICAgICAgIH0KLQogICAgICAgICB2aXNpdEV4dGVybmFsUmVtZW1iZXJlZFNl
dCgpOwogICAgICAgICB2aXNpdFNtYWxsU3RyaW5ncygpOwogICAgICAgICB2aXNpdFByb3RlY3Rl
ZE9iamVjdHMoaGVhcFJvb3RWaXNpdG9yKTsKQEAgLTU0Niw5ICs1MjcsNyBAQCB2b2lkIEhlYXA6
Om1hcmtSb290cyhkb3VibGUgZ2NTdGFydFRpbWUpCiAgICAgCiAgICAgVGltaW5nU2NvcGUgcG9z
dENvbnZlcmdlbmNlVGltaW5nU2NvcGUoKnRoaXMsICJIZWFwOjptYXJrUm9vdHMgYWZ0ZXIgY29u
dmVyZ2VuY2UiKTsKIAotICAgIC8vIFdlYWsgcmVmZXJlbmNlcyBtdXN0IGJlIG1hcmtlZCBsYXN0
IGJlY2F1c2UgdGhlaXIgbGl2ZW5lc3MgZGVwZW5kcyBvbgotICAgIC8vIHRoZSBsaXZlbmVzcyBv
ZiB0aGUgcmVzdCBvZiB0aGUgb2JqZWN0IGdyYXBoLgotICAgIHZpc2l0V2Vha0hhbmRsZXMoaGVh
cFJvb3RWaXNpdG9yKTsKKyAgICBtYXJrVG9GaXhwb2ludChoZWFwUm9vdFZpc2l0b3IpOwogCiAg
ICAgewogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX21hcmtpbmdNdXRleCk7
CkBAIC02MjAsOCArNTk5LDYgQEAgdm9pZCBIZWFwOjp2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKENv
bnNlcgogCiAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkgPT0gR0NMb2dnaW5nOjpWZXJib3NlKQog
ICAgICAgICBkYXRhTG9nKCJDb25zZXJ2YXRpdmUgUm9vdHM6XG4iLCBtX3Nsb3RWaXNpdG9yKTsK
LQotICAgIG1fc2xvdFZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKIH0KIAogdm9pZCBIZWFwOjp2
aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcygpCkBAIC03OTIsMTEgKzc2OSwyMSBA
QCB2b2lkIEhlYXA6OnRyYWNlQ29kZUJsb2Nrc0FuZEpJVFN0dWJSb3V0CiAgICAgbV9zbG90Vmlz
aXRvci5kb25hdGVBbmREcmFpbigpOwogfQogCi12b2lkIEhlYXA6OnZpc2l0V2Vha0hhbmRsZXMo
SGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQordm9pZCBIZWFwOjptYXJrVG9GaXhwb2ludChIZWFw
Um9vdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgVGltaW5nU2NvcGUgdGltaW5nU2NvcGUoKnRo
aXMsICJIZWFwOjp2aXNpdFdlYWtIYW5kbGVzIik7CisgICAgVGltaW5nU2NvcGUgdGltaW5nU2Nv
cGUoKnRoaXMsICJIZWFwOjpmaXhwb2ludCIpOwogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
IHsKKyAgICAgICAgICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNlVGltaW5nU2NvcGUoKnRo
aXMsICJIZWFwOjp2aXNpdCBjb25zZXJ2YXRpdmUgc2NhbiIpOworICAgICAgICAgICAgQ29uc2Vy
dmF0aXZlUm9vdHMgY29uc2VydmF0aXZlUm9vdHMoKnRoaXMpOworICAgICAgICAgICAgU3VwZXJT
YW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworICAgICAgICAgICAgZ2F0aGVy
U3RhY2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICBnYXRoZXJKU1N0YWNr
Um9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAgZ2F0aGVyU2NyYXRjaEJ1ZmZl
clJvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgICAgIHZpc2l0Q29uc2VydmF0aXZl
Um9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICB9CisKKyAgICAgICAgewogICAgICAg
ICAgICAgVGltaW5nU2NvcGUgdGltaW5nU2NvcGUoKnRoaXMsICJtX29iamVjdFNwYWNlLnZpc2l0
V2Vha1NldHMiKTsKICAgICAgICAgICAgIG1fb2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyh2aXNp
dG9yKTsKICAgICAgICAgfQpAQCAtODA0LDcgKzc5MSwxNiBAQCB2b2lkIEhlYXA6OnZpc2l0V2Vh
a0hhbmRsZXMoSGVhcFJvb3RWaXNpCiAgICAgICAgIHZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtS
ZWZlcmVuY2VzKCk7CiAgICAgICAgIGlmIChtX3Nsb3RWaXNpdG9yLmlzRW1wdHkoKSkKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAKKyAgICAgICAgLy8gV2Ugd2FudCB0byBkbyB0aGlzIHRv
IGNvbnNlcnZhdGl2ZWx5IGVuc3VyZSB0aGF0IHdlIHJlc2NhbiBhbnkgY29kZSBibG9ja3MgdGhh
dCBhcmUKKyAgICAgICAgLy8gcnVubmluZyByaWdodCBub3cuIEhvd2V2ZXIsIHdlIG5lZWQgdG8g
YmUgc3VyZSB0byBkbyBpdCAqYWZ0ZXIqIHdlIG1hcmsgdGhlIGNvZGUgYmxvY2sKKyAgICAgICAg
Ly8gc28gdGhhdCB3ZSBrbm93IGZvciBzdXJlIGlmIGl0IHJlYWxseSBuZWVkcyBhIGJhcnJpZXIu
CisgICAgICAgIG1fY29kZUJsb2Nrcy0+d3JpdGVCYXJyaWVyQ3VycmVudGx5RXhlY3V0aW5nKHRo
aXMpOwogCisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgICAgIERGRzo6cmVtZW1iZXJDb2RlQmxv
Y2tzKCptX3ZtKTsKKyNlbmRpZgorICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dD
KCkgPT0gR0NMb2dnaW5nOjpWZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiTGl2ZSBXZWFr
IEhhbmRsZXM6XG4iLCBtX3Nsb3RWaXNpdG9yKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0hlYXAuaAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDUsNyArNDQ1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHZpc2l0U2FtcGxpbmdQcm9maWxlcigpOwogICAgIHZvaWQgdmlzaXRTaGFkb3dDaGlja2Vu
KCk7CiAgICAgdm9pZCB0cmFjZUNvZGVCbG9ja3NBbmRKSVRTdHViUm91dGluZXMoKTsKLSAgICB2
b2lkIHZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJik7CisgICAgdm9pZCBtYXJrVG9G
aXhwb2ludChIZWFwUm9vdFZpc2l0b3ImKTsKICAgICB2b2lkIHVwZGF0ZU9iamVjdENvdW50cyhk
b3VibGUgZ2NTdGFydFRpbWUpOwogICAgIHZvaWQgZW5kTWFya2luZygpOwogCg==
</data>
<flag name="review"
          id="316738"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>293920</attachid>
            <date>2016-11-04 13:39:52 -0700</date>
            <delta_ts>2016-11-04 13:40:17 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>application/octet-stream</type>
            <size>7997</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWlu
ZyBjaGFuZ2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFi
bGUgdG8ganVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhl
bmNlZm9ydGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4K
KyAgICAgICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRo
ZXIgdGhhbiAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5n
ZSBzaG91bGQgbm90IGNoYW5nZSBwZXJmb3JtYW5jZSBvciBiZWhhdmlvci4gSSdtIHN0aWxsIHRl
c3RpbmcgaXQuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlND
OjpERkc6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTSk6CisgICAgICAgIChKU0M6OkRGRzo6cmVtZW1i
ZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBo
ZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpjb21wbGV0ZUFsbEpJVFBsYW5zKToK
KyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlz
aXRDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtUb0ZpeHBvaW50
KToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlzaXRXZWFrSGFuZGxlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogaGVhcC9IZWFwLmg6CisKIDIwMTYtMTEtMDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIENsb25lZEFyZ3VtZW50cyBuZWVkIHRvIGFsc28gc3VwcG9ydCBo
YXZlQUJhZFRpbWUgbW9kZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29y
a2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29y
a2xpc3QuY3BwCShyZXZpc2lvbiAyMDgzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRGR1dvcmtsaXN0LmgiCiAKLSNpZiBFTkFCTEUoREZH
X0pJVCkKLQogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkRGR0xvbmdMaXZlZFN0
YXRlLmgiCiAjaW5jbHVkZSAiREZHU2FmZXBvaW50LmgiCkBAIC0zOCw2ICszNiw4IEBACiAKIG5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiBj
bGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9keSA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVi
bGljOgogICAgIFRocmVhZEJvZHkoY29uc3QgTG9ja0hvbGRlciYgbG9ja2VyLCBXb3JrbGlzdCYg
d29ya2xpc3QsIFRocmVhZERhdGEmIGRhdGEsIEJveDxMb2NrPiBsb2NrLCBSZWZQdHI8QXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uPiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQpAQCAt
NTYxLDcgKzU2MSwxOCBAQCB2b2lkIHJlbWVtYmVyQ29kZUJsb2NrcyhWTSYgdm0pCiAgICAgfQog
fQogCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCisjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkK
Kwordm9pZCBjb21wbGV0ZUFsbFBsYW5zRm9yVk0oVk0mKQoreworfQorCit2b2lkIHJlbWVtYmVy
Q29kZUJsb2NrcyhWTSYpCit7Cit9CiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAorfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDIwODM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShERkdfSklUKQotCiAjaW5jbHVkZSAiREZHUGxhbi5o
IgogI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKICNpbmNsdWRlIDx3dGYvQXV0b21hdGljVGhy
ZWFkLmg+CkBAIC00Miw2ICs0MCw4IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogCiBuYW1lc3BhY2Ug
REZHIHsKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiBjbGFzcyBXb3JrbGlzdCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdvcmtsaXN0PiB7CiBwdWJsaWM6CiAgICAgZW51bSBTdGF0ZSB7IE5vdEtub3du
LCBDb21waWxpbmcsIENvbXBpbGVkIH07CkBAIC0xNjMsOSArMTYzLDEwIEBAIGlubGluZSBXb3Jr
bGlzdCYgZXhpc3RpbmdXb3JrbGlzdEZvckluZGUKICAgICByZXR1cm4gKnJlc3VsdDsKIH0KIAor
I2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQorCiB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShW
TSYpOwogdm9pZCByZW1lbWJlckNvZGVCbG9ja3MoVk0mKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwogCi0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw5ICs0MzksNyBAQCB2b2lk
IEhlYXA6OmNvbXBsZXRlQWxsSklUUGxhbnMoKQogI2lmIEVOQUJMRShKSVQpCiAgICAgSklUV29y
a2xpc3Q6Omluc3RhbmNlKCktPmNvbXBsZXRlQWxsRm9yVk0oKm1fdm0pOwogI2VuZGlmIC8vIEVO
QUJMRShKSVQpCi0jaWYgRU5BQkxFKERGR19KSVQpCiAgICAgREZHOjpjb21wbGV0ZUFsbFBsYW5z
Rm9yVk0oKm1fdm0pOwotI2VuZGlmCiB9CiAKIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBn
Y1N0YXJ0VGltZSkKQEAgLTQ1MywxMCArNDUxLDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91
YmxlIGdjU3RhcnRUaW1lKQogICAgIHsKICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2Vu
Y2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1hcmtSb290cyBiZWZvcmUgY29udmVyZ2VuY2Ui
KTsKIAotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBERkc6OnJlbWVtYmVyQ29kZUJsb2Nr
cygqbV92bSk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKICAgICAg
ICAgaWYgKFNhbXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGlu
Z1Byb2ZpbGVyKCkpIHsKICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIG93biB0
aGUgbG9jayBmcm9tIG5vdyB1bnRpbCB3ZSdyZSBkb25lCkBAIC01MTYsMjEgKzUxMCw2IEBAIHZv
aWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAgICAgCiAgICAgICAg
IG1fc2xvdFZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKIAotICAgICAgICB7Ci0gICAgICAgICAg
ICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFy
a1Jvb3RzIGNvbnNlcnZhdGl2ZSBzY2FuIik7Ci0gICAgICAgICAgICBDb25zZXJ2YXRpdmVSb290
cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7Ci0gICAgICAgICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Ci0gICAgICAgICAgICBnYXRoZXJTdGFja1Jvb3Rz
KGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAgIGdhdGhlckpTU3RhY2tSb290cyhjb25z
ZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29u
c2VydmF0aXZlUm9vdHMpOwotICAgICAgICAgICAgdmlzaXRDb25zZXJ2YXRpdmVSb290cyhjb25z
ZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8g
ZG8gdGhpcyB0byBjb25zZXJ2YXRpdmVseSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4gYW55IGNvZGUg
YmxvY2tzIHRoYXQgYXJlCi0gICAgICAgICAgICAvLyBydW5uaW5nIHJpZ2h0IG5vdy4gSG93ZXZl
ciwgd2UgbmVlZCB0byBiZSBzdXJlIHRvIGRvIGl0ICphZnRlciogd2UgbWFyayB0aGUgY29kZSBi
bG9jawotICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBrbm93IGZvciBzdXJlIGlmIGl0IHJlYWxs
eSBuZWVkcyBhIGJhcnJpZXIuCi0gICAgICAgICAgICBtX2NvZGVCbG9ja3MtPndyaXRlQmFycmll
ckN1cnJlbnRseUV4ZWN1dGluZyh0aGlzKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZpc2l0RXh0
ZXJuYWxSZW1lbWJlcmVkU2V0KCk7CiAgICAgICAgIHZpc2l0U21hbGxTdHJpbmdzKCk7CiAgICAg
ICAgIHZpc2l0UHJvdGVjdGVkT2JqZWN0cyhoZWFwUm9vdFZpc2l0b3IpOwpAQCAtNTQ2LDkgKzUy
NSw3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAKICAg
ICBUaW1pbmdTY29wZSBwb3N0Q29udmVyZ2VuY2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1h
cmtSb290cyBhZnRlciBjb252ZXJnZW5jZSIpOwogCi0gICAgLy8gV2VhayByZWZlcmVuY2VzIG11
c3QgYmUgbWFya2VkIGxhc3QgYmVjYXVzZSB0aGVpciBsaXZlbmVzcyBkZXBlbmRzIG9uCi0gICAg
Ly8gdGhlIGxpdmVuZXNzIG9mIHRoZSByZXN0IG9mIHRoZSBvYmplY3QgZ3JhcGguCi0gICAgdmlz
aXRXZWFrSGFuZGxlcyhoZWFwUm9vdFZpc2l0b3IpOworICAgIG1hcmtUb0ZpeHBvaW50KGhlYXBS
b290VmlzaXRvcik7CiAKICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KG1fbWFya2luZ011dGV4KTsKQEAgLTYyMCw4ICs1OTcsNiBAQCB2b2lkIEhlYXA6OnZpc2l0Q29u
c2VydmF0aXZlUm9vdHMoQ29uc2VyCiAKICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBHQ0xv
Z2dpbmc6OlZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIkNvbnNlcnZhdGl2ZSBSb290czpcbiIs
IG1fc2xvdFZpc2l0b3IpOwotCi0gICAgbV9zbG90VmlzaXRvci5kb25hdGVBbmREcmFpbigpOwog
fQogCiB2b2lkIEhlYXA6OnZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCkKQEAg
LTc5MiwxMSArNzY3LDIxIEBAIHZvaWQgSGVhcDo6dHJhY2VDb2RlQmxvY2tzQW5kSklUU3R1YlJv
dXQKICAgICBtX3Nsb3RWaXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiB9CiAKLXZvaWQgSGVhcDo6
dmlzaXRXZWFrSGFuZGxlcyhIZWFwUm9vdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEhlYXA6Om1h
cmtUb0ZpeHBvaW50KEhlYXBSb290VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBUaW1pbmdTY29w
ZSB0aW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OnZpc2l0V2Vha0hhbmRsZXMiKTsKKyAgICBUaW1p
bmdTY29wZSB0aW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OmZpeHBvaW50Iik7CiAgICAgd2hpbGUg
KHRydWUpIHsKICAgICAgICAgeworICAgICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2Vu
Y2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OnZpc2l0IGNvbnNlcnZhdGl2ZSBzY2FuIik7Cisg
ICAgICAgICAgICBDb25zZXJ2YXRpdmVSb290cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7Cisg
ICAgICAgICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Cisg
ICAgICAgICAgICBnYXRoZXJTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAg
ICAgIGdhdGhlckpTU3RhY2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICBn
YXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAg
dmlzaXRDb25zZXJ2YXRpdmVSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgIH0KKwor
ICAgICAgICB7CiAgICAgICAgICAgICBUaW1pbmdTY29wZSB0aW1pbmdTY29wZSgqdGhpcywgIm1f
b2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyIpOwogICAgICAgICAgICAgbV9vYmplY3RTcGFjZS52
aXNpdFdlYWtTZXRzKHZpc2l0b3IpOwogICAgICAgICB9CkBAIC04MDQsNyArNzg5LDE0IEBAIHZv
aWQgSGVhcDo6dmlzaXRXZWFrSGFuZGxlcyhIZWFwUm9vdFZpc2kKICAgICAgICAgdmlzaXRDb21w
aWxlcldvcmtsaXN0V2Vha1JlZmVyZW5jZXMoKTsKICAgICAgICAgaWYgKG1fc2xvdFZpc2l0b3Iu
aXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgCisgICAgICAgIC8vIFdl
IHdhbnQgdG8gZG8gdGhpcyB0byBjb25zZXJ2YXRpdmVseSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4g
YW55IGNvZGUgYmxvY2tzIHRoYXQgYXJlCisgICAgICAgIC8vIHJ1bm5pbmcgcmlnaHQgbm93LiBI
b3dldmVyLCB3ZSBuZWVkIHRvIGJlIHN1cmUgdG8gZG8gaXQgKmFmdGVyKiB3ZSBtYXJrIHRoZSBj
b2RlIGJsb2NrCisgICAgICAgIC8vIHNvIHRoYXQgd2Uga25vdyBmb3Igc3VyZSBpZiBpdCByZWFs
bHkgbmVlZHMgYSBiYXJyaWVyLiBBbHNvLCB0aGlzIGhhcyB0byBoYXBwZW4gYWZ0ZXIgdGhlCisg
ICAgICAgIC8vIGZpeHBvaW50IGNoZWNrIC0gb3RoZXJ3aXNlIHdlIG1pZ2h0IGxvb3AgZm9yZXZl
ci4KKyAgICAgICAgbV9jb2RlQmxvY2tzLT53cml0ZUJhcnJpZXJDdXJyZW50bHlFeGVjdXRpbmco
dGhpcyk7CisgICAgICAgIERGRzo6cmVtZW1iZXJDb2RlQmxvY2tzKCptX3ZtKTsKKyAgICAgICAg
CiAgICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpID09IEdDTG9nZ2luZzo6VmVyYm9zZSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkxpdmUgV2VhayBIYW5kbGVzOlxuIiwgbV9zbG90VmlzaXRvcik7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDIwODM5NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDQ1
LDcgKzQ0NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2aXNpdFNhbXBsaW5nUHJvZmlsZXIoKTsK
ICAgICB2b2lkIHZpc2l0U2hhZG93Q2hpY2tlbigpOwogICAgIHZvaWQgdHJhY2VDb2RlQmxvY2tz
QW5kSklUU3R1YlJvdXRpbmVzKCk7Ci0gICAgdm9pZCB2aXNpdFdlYWtIYW5kbGVzKEhlYXBSb290
VmlzaXRvciYpOworICAgIHZvaWQgbWFya1RvRml4cG9pbnQoSGVhcFJvb3RWaXNpdG9yJik7CiAg
ICAgdm9pZCB1cGRhdGVPYmplY3RDb3VudHMoZG91YmxlIGdjU3RhcnRUaW1lKTsKICAgICB2b2lk
IGVuZE1hcmtpbmcoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293921</attachid>
            <date>2016-11-04 13:40:17 -0700</date>
            <delta_ts>2016-11-04 14:20:40 -0700</delta_ts>
            <desc>possibly better patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12128</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWlu
ZyBjaGFuZ2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFi
bGUgdG8ganVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhl
bmNlZm9ydGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4K
KyAgICAgICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRo
ZXIgdGhhbiAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5n
ZSBzaG91bGQgbm90IGNoYW5nZSBwZXJmb3JtYW5jZSBvciBiZWhhdmlvci4gSSdtIHN0aWxsIHRl
c3RpbmcgaXQuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlND
OjpERkc6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTSk6CisgICAgICAgIChKU0M6OkRGRzo6cmVtZW1i
ZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBo
ZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpjb21wbGV0ZUFsbEpJVFBsYW5zKToK
KyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlz
aXRDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtUb0ZpeHBvaW50
KToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlzaXRXZWFrSGFuZGxlcyk6IERlbGV0ZWQuCisgICAg
ICAgICogaGVhcC9IZWFwLmg6CisKIDIwMTYtMTEtMDMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIENsb25lZEFyZ3VtZW50cyBuZWVkIHRvIGFsc28gc3VwcG9ydCBo
YXZlQUJhZFRpbWUgbW9kZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxh
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNw
cAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEwLDE2ICs2MTAsMTYgQEAgQ29tcGlsYXRpb25LZXkg
UGxhbjo6a2V5KCkKICAgICByZXR1cm4gQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5hbHRlcm5h
dGl2ZSgpLCBtb2RlKTsKIH0KIAotdm9pZCBQbGFuOjpyZW1lbWJlckNvZGVCbG9ja3MoKQordm9p
ZCBQbGFuOjptYXJrQW5kUmVtZW1iZXJDb2RlQmxvY2tzKFNsb3RWaXNpdG9yJiBzbG90VmlzaXRv
cikKIHsKICAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBvZiB2YWx1ZXMgdG8gYSBDb2Rl
QmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCiAgICAgLy8gYW4gZXhwbGljaXQgYmFycmllci4gU28s
IHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0aGF0CiAgICAgLy8gYWxsIG91
ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0MuCiAKLSAgICBIZWFwOjpoZWFw
KGNvZGVCbG9jayktPndyaXRlQmFycmllcihjb2RlQmxvY2spOwotICAgIEhlYXA6OmhlYXAoY29k
ZUJsb2NrKS0+d3JpdGVCYXJyaWVyKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CisgICAgc2xv
dFZpc2l0b3IuYXBwZW5kQW5kQmFycmllcihjb2RlQmxvY2spOworICAgIHNsb3RWaXNpdG9yLmFw
cGVuZEFuZEJhcnJpZXIoY29kZUJsb2NrLT5hbHRlcm5hdGl2ZSgpKTsKICAgICBpZiAocHJvZmls
ZWRERkdDb2RlQmxvY2spCi0gICAgICAgIEhlYXA6OmhlYXAocHJvZmlsZWRERkdDb2RlQmxvY2sp
LT53cml0ZUJhcnJpZXIocHJvZmlsZWRERkdDb2RlQmxvY2spOworICAgICAgICBzbG90VmlzaXRv
ci5hcHBlbmRBbmRCYXJyaWVyKHByb2ZpbGVkREZHQ29kZUJsb2NrKTsKIH0KIAogdm9pZCBQbGFu
OjpjaGVja0xpdmVuZXNzQW5kVmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCShyZXZpc2lvbiAyMDgzOTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtNjks
NyArNjksNyBAQCBzdHJ1Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAg
CiAgICAgQ29tcGlsYXRpb25LZXkga2V5KCk7CiAgICAgCi0gICAgdm9pZCByZW1lbWJlckNvZGVC
bG9ja3MoKTsKKyAgICB2b2lkIG1hcmtBbmRSZW1lbWJlckNvZGVCbG9ja3MoU2xvdFZpc2l0b3Im
KTsKICAgICB2b2lkIGNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7
CiAgICAgYm9vbCBpc0tub3duVG9CZUxpdmVEdXJpbmdHQygpOwogICAgIHZvaWQgY2FuY2VsKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkocmV2aXNp
b24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJERkdXb3JrbGlzdC5oIgogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0KICNpbmNsdWRl
ICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgogI2luY2x1ZGUg
IkRGR1NhZmVwb2ludC5oIgpAQCAtMzgsNiArMzYsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIERGRyB7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogY2xhc3MgV29ya2xpc3Q6OlRo
cmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJlYWRC
b2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJlYWRE
YXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKQEAgLTM0OSwxNCArMzQ5LDE0IEBA
IHZvaWQgV29ya2xpc3Q6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYKICAgICBjb21wbGV0ZUFs
bFJlYWR5UGxhbnNGb3JWTSh2bSk7CiB9CiAKLXZvaWQgV29ya2xpc3Q6OnJlbWVtYmVyQ29kZUJs
b2NrcyhWTSYgdm0pCit2b2lkIFdvcmtsaXN0OjptYXJrQW5kUmVtZW1iZXJDb2RlQmxvY2tzKFZN
JiB2bSwgU2xvdFZpc2l0b3ImIHNsb3RWaXNpdG9yKQogewogICAgIExvY2tIb2xkZXIgbG9ja2Vy
KCptX2xvY2spOwogICAgIGZvciAoUGxhbk1hcDo6aXRlcmF0b3IgaXRlciA9IG1fcGxhbnMuYmVn
aW4oKTsgaXRlciAhPSBtX3BsYW5zLmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUGxhbiogcGxh
biA9IGl0ZXItPnZhbHVlLmdldCgpOwogICAgICAgICBpZiAocGxhbi0+dm0gIT0gJnZtKQogICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIHBsYW4tPnJlbWVtYmVyQ29kZUJsb2NrcygpOwor
ICAgICAgICBwbGFuLT5tYXJrQW5kUmVtZW1iZXJDb2RlQmxvY2tzKHNsb3RWaXNpdG9yKTsKICAg
ICB9CiB9CiAKQEAgLTU1MywxNSArNTUzLDI2IEBAIHZvaWQgY29tcGxldGVBbGxQbGFuc0ZvclZN
KFZNJiB2bSkKICAgICB9CiB9CiAKLXZvaWQgcmVtZW1iZXJDb2RlQmxvY2tzKFZNJiB2bSkKK3Zv
aWQgbWFya0FuZFJlbWVtYmVyQ29kZUJsb2NrcyhWTSYgdm0sIFNsb3RWaXNpdG9yJiBzbG90Vmlz
aXRvcikKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBERkc6Om51bWJlck9mV29ya2xpc3RzKCk7
IGktLTspIHsKICAgICAgICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gREZHOjpleGlz
dGluZ1dvcmtsaXN0Rm9ySW5kZXhPck51bGwoaSkpCi0gICAgICAgICAgICB3b3JrbGlzdC0+cmVt
ZW1iZXJDb2RlQmxvY2tzKHZtKTsKKyAgICAgICAgICAgIHdvcmtsaXN0LT5tYXJrQW5kUmVtZW1i
ZXJDb2RlQmxvY2tzKHZtLCBzbG90VmlzaXRvcik7CiAgICAgfQogfQogCi19IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCisjZWxzZSAvLyBFTkFCTEUoREZHX0pJVCkKKwordm9pZCBjb21wbGV0ZUFs
bFBsYW5zRm9yVk0oVk0mKQoreworfQorCit2b2lkIG1hcmtBbmRSZW1lbWJlckNvZGVCbG9ja3Mo
Vk0mLCBTbG90VmlzaXRvciYpCit7Cit9CiAKICNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKIAor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRworCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1dvcmtsaXN0LmgJKHJldmlzaW9uIDIwODM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShERkdfSklUKQotCiAjaW5jbHVkZSAiREZHUGxh
bi5oIgogI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKICNpbmNsdWRlIDx3dGYvQXV0b21hdGlj
VGhyZWFkLmg+CkBAIC00Miw2ICs0MCw4IEBAIGNsYXNzIFNsb3RWaXNpdG9yOwogCiBuYW1lc3Bh
Y2UgREZHIHsKIAorI2lmIEVOQUJMRShERkdfSklUKQorCiBjbGFzcyBXb3JrbGlzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdvcmtsaXN0PiB7CiBwdWJsaWM6CiAgICAgZW51bSBTdGF0ZSB7IE5vdEtu
b3duLCBDb21waWxpbmcsIENvbXBpbGVkIH07CkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAg
ICAvLyB3b3JrbGlzdC0+Y29tcGxldGVBbGxSZWFkeVBsYW5zRm9yVk0odm0pOwogICAgIHZvaWQg
Y29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJik7CiAKLSAgICB2b2lkIHJlbWVtYmVyQ29kZUJsb2Nr
cyhWTSYpOworICAgIHZvaWQgbWFya0FuZFJlbWVtYmVyQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNp
dG9yJik7CiAKICAgICB2b2lkIHdhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeShWTSYpOwog
ICAgIFN0YXRlIGNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKFZNJiwgQ29tcGlsYXRpb25LZXkg
PSBDb21waWxhdGlvbktleSgpKTsKQEAgLTE2Myw5ICsxNjMsMTAgQEAgaW5saW5lIFdvcmtsaXN0
JiBleGlzdGluZ1dvcmtsaXN0Rm9ySW5kZQogICAgIHJldHVybiAqcmVzdWx0OwogfQogCisjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCisKIHZvaWQgY29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJik7
Ci12b2lkIHJlbWVtYmVyQ29kZUJsb2NrcyhWTSYpOwordm9pZCBtYXJrQW5kUmVtZW1iZXJDb2Rl
QmxvY2tzKFZNJiwgU2xvdFZpc2l0b3ImKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkRGRwog
Ci0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw5ICs0MzksNyBAQCB2b2lkIEhlYXA6OmNv
bXBsZXRlQWxsSklUUGxhbnMoKQogI2lmIEVOQUJMRShKSVQpCiAgICAgSklUV29ya2xpc3Q6Omlu
c3RhbmNlKCktPmNvbXBsZXRlQWxsRm9yVk0oKm1fdm0pOwogI2VuZGlmIC8vIEVOQUJMRShKSVQp
Ci0jaWYgRU5BQkxFKERGR19KSVQpCiAgICAgREZHOjpjb21wbGV0ZUFsbFBsYW5zRm9yVk0oKm1f
dm0pOwotI2VuZGlmCiB9CiAKIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGlt
ZSkKQEAgLTQ1MywxMCArNDUxLDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91YmxlIGdjU3Rh
cnRUaW1lKQogICAgIHsKICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2VuY2VUaW1pbmdT
Y29wZSgqdGhpcywgIkhlYXA6Om1hcmtSb290cyBiZWZvcmUgY29udmVyZ2VuY2UiKTsKIAotI2lm
IEVOQUJMRShERkdfSklUKQotICAgICAgICBERkc6OnJlbWVtYmVyQ29kZUJsb2NrcygqbV92bSk7
Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKICAgICAgICAgaWYgKFNh
bXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGluZ1Byb2ZpbGVy
KCkpIHsKICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIG93biB0aGUgbG9jayBm
cm9tIG5vdyB1bnRpbCB3ZSdyZSBkb25lCkBAIC01MTYsMjEgKzUxMCw2IEBAIHZvaWQgSGVhcDo6
bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAgICAgCiAgICAgICAgIG1fc2xvdFZp
c2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKIAotICAgICAgICB7Ci0gICAgICAgICAgICBUaW1pbmdT
Y29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFya1Jvb3RzIGNv
bnNlcnZhdGl2ZSBzY2FuIik7Ci0gICAgICAgICAgICBDb25zZXJ2YXRpdmVSb290cyBjb25zZXJ2
YXRpdmVSb290cygqdGhpcyk7Ci0gICAgICAgICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNh
bXBsZXJTY29wZShmYWxzZSk7Ci0gICAgICAgICAgICBnYXRoZXJTdGFja1Jvb3RzKGNvbnNlcnZh
dGl2ZVJvb3RzKTsKLSAgICAgICAgICAgIGdhdGhlckpTU3RhY2tSb290cyhjb25zZXJ2YXRpdmVS
b290cyk7Ci0gICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29uc2VydmF0aXZl
Um9vdHMpOwotICAgICAgICAgICAgdmlzaXRDb25zZXJ2YXRpdmVSb290cyhjb25zZXJ2YXRpdmVS
b290cyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZG8gdGhpcyB0
byBjb25zZXJ2YXRpdmVseSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4gYW55IGNvZGUgYmxvY2tzIHRo
YXQgYXJlCi0gICAgICAgICAgICAvLyBydW5uaW5nIHJpZ2h0IG5vdy4gSG93ZXZlciwgd2UgbmVl
ZCB0byBiZSBzdXJlIHRvIGRvIGl0ICphZnRlciogd2UgbWFyayB0aGUgY29kZSBibG9jawotICAg
ICAgICAgICAgLy8gc28gdGhhdCB3ZSBrbm93IGZvciBzdXJlIGlmIGl0IHJlYWxseSBuZWVkcyBh
IGJhcnJpZXIuCi0gICAgICAgICAgICBtX2NvZGVCbG9ja3MtPndyaXRlQmFycmllckN1cnJlbnRs
eUV4ZWN1dGluZyh0aGlzKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZpc2l0RXh0ZXJuYWxSZW1l
bWJlcmVkU2V0KCk7CiAgICAgICAgIHZpc2l0U21hbGxTdHJpbmdzKCk7CiAgICAgICAgIHZpc2l0
UHJvdGVjdGVkT2JqZWN0cyhoZWFwUm9vdFZpc2l0b3IpOwpAQCAtNTQ2LDkgKzUyNSw3IEBAIHZv
aWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAKICAgICBUaW1pbmdT
Y29wZSBwb3N0Q29udmVyZ2VuY2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1hcmtSb290cyBh
ZnRlciBjb252ZXJnZW5jZSIpOwogCi0gICAgLy8gV2VhayByZWZlcmVuY2VzIG11c3QgYmUgbWFy
a2VkIGxhc3QgYmVjYXVzZSB0aGVpciBsaXZlbmVzcyBkZXBlbmRzIG9uCi0gICAgLy8gdGhlIGxp
dmVuZXNzIG9mIHRoZSByZXN0IG9mIHRoZSBvYmplY3QgZ3JhcGguCi0gICAgdmlzaXRXZWFrSGFu
ZGxlcyhoZWFwUm9vdFZpc2l0b3IpOworICAgIG1hcmtUb0ZpeHBvaW50KGhlYXBSb290VmlzaXRv
cik7CiAKICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fbWFya2lu
Z011dGV4KTsKQEAgLTYyMCw4ICs1OTcsNiBAQCB2b2lkIEhlYXA6OnZpc2l0Q29uc2VydmF0aXZl
Um9vdHMoQ29uc2VyCiAKICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBHQ0xvZ2dpbmc6OlZl
cmJvc2UpCiAgICAgICAgIGRhdGFMb2coIkNvbnNlcnZhdGl2ZSBSb290czpcbiIsIG1fc2xvdFZp
c2l0b3IpOwotCi0gICAgbV9zbG90VmlzaXRvci5kb25hdGVBbmREcmFpbigpOwogfQogCiB2b2lk
IEhlYXA6OnZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCkKQEAgLTc5MiwxMSAr
NzY3LDIxIEBAIHZvaWQgSGVhcDo6dHJhY2VDb2RlQmxvY2tzQW5kSklUU3R1YlJvdXQKICAgICBt
X3Nsb3RWaXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiB9CiAKLXZvaWQgSGVhcDo6dmlzaXRXZWFr
SGFuZGxlcyhIZWFwUm9vdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEhlYXA6Om1hcmtUb0ZpeHBv
aW50KEhlYXBSb290VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBUaW1pbmdTY29wZSB0aW1pbmdT
Y29wZSgqdGhpcywgIkhlYXA6OnZpc2l0V2Vha0hhbmRsZXMiKTsKKyAgICBUaW1pbmdTY29wZSB0
aW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OmZpeHBvaW50Iik7CiAgICAgd2hpbGUgKHRydWUpIHsK
ICAgICAgICAgeworICAgICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2VuY2VUaW1pbmdT
Y29wZSgqdGhpcywgIkhlYXA6OnZpc2l0IGNvbnNlcnZhdGl2ZSBzY2FuIik7CisgICAgICAgICAg
ICBDb25zZXJ2YXRpdmVSb290cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7CisgICAgICAgICAg
ICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CisgICAgICAgICAg
ICBnYXRoZXJTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgICAgIGdhdGhl
ckpTU3RhY2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICBnYXRoZXJTY3Jh
dGNoQnVmZmVyUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAgdmlzaXRDb25z
ZXJ2YXRpdmVSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgIH0KKworICAgICAgICB7
CiAgICAgICAgICAgICBUaW1pbmdTY29wZSB0aW1pbmdTY29wZSgqdGhpcywgIm1fb2JqZWN0U3Bh
Y2UudmlzaXRXZWFrU2V0cyIpOwogICAgICAgICAgICAgbV9vYmplY3RTcGFjZS52aXNpdFdlYWtT
ZXRzKHZpc2l0b3IpOwogICAgICAgICB9CkBAIC04MDQsNyArNzg5LDE0IEBAIHZvaWQgSGVhcDo6
dmlzaXRXZWFrSGFuZGxlcyhIZWFwUm9vdFZpc2kKICAgICAgICAgdmlzaXRDb21waWxlcldvcmts
aXN0V2Vha1JlZmVyZW5jZXMoKTsKICAgICAgICAgaWYgKG1fc2xvdFZpc2l0b3IuaXNFbXB0eSgp
KQogICAgICAgICAgICAgYnJlYWs7Ci0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIHdhbnQgdG8g
ZG8gdGhpcyB0byBjb25zZXJ2YXRpdmVseSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4gYW55IGNvZGUg
YmxvY2tzIHRoYXQgYXJlCisgICAgICAgIC8vIHJ1bm5pbmcgcmlnaHQgbm93LiBIb3dldmVyLCB3
ZSBuZWVkIHRvIGJlIHN1cmUgdG8gZG8gaXQgKmFmdGVyKiB3ZSBtYXJrIHRoZSBjb2RlIGJsb2Nr
CisgICAgICAgIC8vIHNvIHRoYXQgd2Uga25vdyBmb3Igc3VyZSBpZiBpdCByZWFsbHkgbmVlZHMg
YSBiYXJyaWVyLiBBbHNvLCB0aGlzIGhhcyB0byBoYXBwZW4gYWZ0ZXIgdGhlCisgICAgICAgIC8v
IGZpeHBvaW50IGNoZWNrIC0gb3RoZXJ3aXNlIHdlIG1pZ2h0IGxvb3AgZm9yZXZlci4KKyAgICAg
ICAgbV9jb2RlQmxvY2tzLT53cml0ZUJhcnJpZXJDdXJyZW50bHlFeGVjdXRpbmcodGhpcyk7Cisg
ICAgICAgIERGRzo6bWFya0FuZFJlbWVtYmVyQ29kZUJsb2NrcygqbV92bSwgbV9zbG90VmlzaXRv
cik7CisgICAgICAgIAogICAgICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBHQ0xvZ2dpbmc6
OlZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJMaXZlIFdlYWsgSGFuZGxlczpcbiIsIG1f
c2xvdFZpc2l0b3IpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lv
biAyMDgzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ0NSw3ICs0NDUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdmlzaXRTYW1wbGlu
Z1Byb2ZpbGVyKCk7CiAgICAgdm9pZCB2aXNpdFNoYWRvd0NoaWNrZW4oKTsKICAgICB2b2lkIHRy
YWNlQ29kZUJsb2Nrc0FuZEpJVFN0dWJSb3V0aW5lcygpOwotICAgIHZvaWQgdmlzaXRXZWFrSGFu
ZGxlcyhIZWFwUm9vdFZpc2l0b3ImKTsKKyAgICB2b2lkIG1hcmtUb0ZpeHBvaW50KEhlYXBSb290
VmlzaXRvciYpOwogICAgIHZvaWQgdXBkYXRlT2JqZWN0Q291bnRzKGRvdWJsZSBnY1N0YXJ0VGlt
ZSk7CiAgICAgdm9pZCBlbmRNYXJraW5nKCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHJldmlzaW9uIDIwODM5NCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIxLDYg
KzEyMSwxNSBAQCB2b2lkIFNsb3RWaXNpdG9yOjpjbGVhck1hcmtTdGFjaygpCiAgICAgbV9zdGFj
ay5jbGVhcigpOwogfQogCit2b2lkIFNsb3RWaXNpdG9yOjphcHBlbmRBbmRCYXJyaWVyKEpTQ2Vs
bCogY2VsbCkKK3sKKyAgICBpZiAoIWNlbGwpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBh
cHBlbmQoY2VsbCk7CisgICAgaGVhcCgpLT53cml0ZUJhcnJpZXIoY2VsbCk7Cit9CisKIHZvaWQg
U2xvdFZpc2l0b3I6OmFwcGVuZChDb25zZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMp
CiB7CiAgICAgSGVhcENlbGwqKiByb290cyA9IGNvbnNlcnZhdGl2ZVJvb3RzLnJvb3RzKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHJldmlzaW9uIDIw
ODM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDYgKzY2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhcHBlbmQoQ29u
c2VydmF0aXZlUm9vdHMmKTsKICAgICAKKyAgICB2b2lkIGFwcGVuZEFuZEJhcnJpZXIoSlNDZWxs
Kik7CisgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhcHBlbmQoV3JpdGVCYXJy
aWVyQmFzZTxUPiopOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYXBwZW5kSGlkZGVu
KFdyaXRlQmFycmllckJhc2U8VD4qKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBJdGVyYXRvcj4g
dm9pZCBhcHBlbmQoSXRlcmF0b3IgYmVnaW4gLCBJdGVyYXRvciBlbmQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293927</attachid>
            <date>2016-11-04 14:20:40 -0700</date>
            <delta_ts>2016-11-04 14:24:25 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12296</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWlu
ZyBjaGFuZ2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFi
bGUgdG8ganVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhl
bmNlZm9ydGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4K
KyAgICAgICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRo
ZXIgdGhhbiAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGUgb25seSB0
cmlja3kgcGFydCBpcyB0aGF0IHRoZSBERkcgd29ya2xpc3QncyBiYXJyaWVyIGJlaGF2aW9yIC0g
Zm9yY2luZyB0aGUgYmFycmllciBiZWZvcmUKKyAgICAgICAgYmVnaW5NYXJraW5nIC0gZGlkIG5v
dCBjb25mb3JtIHRvIGhvdyB3ZSB3YW50IHRvIGRvIHRoZSBjb25jdXJyZW50IEdDIGZpeHBvaW50
LiBXZSB3YW50IGl0IHRvCisgICAgICAgIGZvcmNlLW1hcmsgYmVmb3JlIGRlY2lkaW5nIHdoZXRo
ZXIgdGhlIGZpeHBvaW50IGhhcyBjb252ZXJnZWQsIGFuZCB0aGVuIGZvcmNlLWJhcnJpZXIgYWZ0
ZXIKKyAgICAgICAgd2UgaGF2ZSBkb25lIHRoaXMgY2hlY2suCisgICAgICAgIAorICAgICAgICBU
aGlzIGNoYW5nZSBzaG91bGQgbm90IGNoYW5nZSBwZXJmb3JtYW5jZSBvciBiZWhhdmlvci4gSSdt
IHN0aWxsIHRlc3RpbmcgaXQuCisKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6UGxhbjo6bWFya0NvZGVCbG9ja3MpOgorICAgICAgICAoSlNDOjpERkc6OlBs
YW46OnJlbWVtYmVyQ29kZUJsb2Nrcyk6CisgICAgICAgICogZGZnL0RGR1BsYW4uaDoKKyAgICAg
ICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0Ojpt
YXJrQ29kZUJsb2Nrcyk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6OnJlbWVtYmVyQ29k
ZUJsb2Nrcyk6CisgICAgICAgIChKU0M6OkRGRzo6bWFya0NvZGVCbG9ja3MpOgorICAgICAgICAo
SlNDOjpERkc6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTSk6CisgICAgICAgIChKU0M6OkRGRzo6cmVt
ZW1iZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuaDoKKyAgICAgICAg
KiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpjb21wbGV0ZUFsbEpJVFBsYW5z
KToKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya1Jvb3RzKToKKyAgICAgICAgKEpTQzo6SGVhcDo6
dmlzaXRDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtUb0ZpeHBv
aW50KToKKyAgICAgICAgKEpTQzo6SGVhcDo6dmlzaXRXZWFrSGFuZGxlcyk6IERlbGV0ZWQuCisg
ICAgICAgICogaGVhcC9IZWFwLmg6CisKIDIwMTYtMTEtMDMgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIENsb25lZEFyZ3VtZW50cyBuZWVkIHRvIGFsc28gc3VwcG9y
dCBoYXZlQUJhZFRpbWUgbW9kZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UGxhbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmNwcAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
bGFuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEwLDE2ICs2MTAsMjggQEAgQ29tcGlsYXRpb25L
ZXkgUGxhbjo6a2V5KCkKICAgICByZXR1cm4gQ29tcGlsYXRpb25LZXkoY29kZUJsb2NrLT5hbHRl
cm5hdGl2ZSgpLCBtb2RlKTsKIH0KIAotdm9pZCBQbGFuOjpyZW1lbWJlckNvZGVCbG9ja3MoKQor
dm9pZCBQbGFuOjptYXJrQ29kZUJsb2NrcyhTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpCiB7CiAg
ICAgLy8gQ29tcGlsYXRpb24gd3JpdGVzIGxvdHMgb2YgdmFsdWVzIHRvIGEgQ29kZUJsb2NrIHdp
dGhvdXQgcGVyZm9ybWluZwogICAgIC8vIGFuIGV4cGxpY2l0IGJhcnJpZXIuIFNvLCB3ZSBuZWVk
IHRvIGJlIHBlc3NpbWlzdGljIGFuZCBhc3N1bWUgdGhhdAogICAgIC8vIGFsbCBvdXIgQ29kZUJs
b2NrcyBtdXN0IGJlIHZpc2l0ZWQgZHVyaW5nIEdDLgogCi0gICAgSGVhcDo6aGVhcChjb2RlQmxv
Y2spLT53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKLSAgICBIZWFwOjpoZWFwKGNvZGVCbG9jaykt
PndyaXRlQmFycmllcihjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOworICAgIHNsb3RWaXNpdG9y
LmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKGNvZGVCbG9jayk7CisgICAgc2xvdFZp
c2l0b3IuYXBwZW5kVW5iYXJyaWVyZWRSZWFkT25seVBvaW50ZXIoY29kZUJsb2NrLT5hbHRlcm5h
dGl2ZSgpKTsKICAgICBpZiAocHJvZmlsZWRERkdDb2RlQmxvY2spCi0gICAgICAgIEhlYXA6Omhl
YXAocHJvZmlsZWRERkdDb2RlQmxvY2spLT53cml0ZUJhcnJpZXIocHJvZmlsZWRERkdDb2RlQmxv
Y2spOworICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRl
cihwcm9maWxlZERGR0NvZGVCbG9jayk7Cit9CisKK3ZvaWQgUGxhbjo6cmVtZW1iZXJDb2RlQmxv
Y2tzKFZNJiB2bSkKK3sKKyAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBvZiB2YWx1ZXMg
dG8gYSBDb2RlQmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCisgICAgLy8gYW4gZXhwbGljaXQgYmFy
cmllci4gU28sIHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0aGF0CisgICAg
Ly8gYWxsIG91ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0MuCisKKyAgICB2
bS5oZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2spOworICAgIHZtLmhlYXAud3JpdGVCYXJyaWVy
KGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CisgICAgaWYgKHByb2ZpbGVkREZHQ29kZUJsb2Nr
KQorICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihwcm9maWxlZERGR0NvZGVCbG9jayk7CiB9
CiAKIHZvaWQgUGxhbjo6Y2hlY2tMaXZlbmVzc0FuZFZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uaAkocmV2aXNpb24g
MjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDcgKzY5LDggQEAgc3RydWN0IFBsYW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZQogICAgIAogICAgIENvbXBpbGF0aW9uS2V5IGtleSgpOwogICAgIAotICAgIHZvaWQg
cmVtZW1iZXJDb2RlQmxvY2tzKCk7CisgICAgdm9pZCBtYXJrQ29kZUJsb2NrcyhTbG90VmlzaXRv
ciYpOworICAgIHZvaWQgcmVtZW1iZXJDb2RlQmxvY2tzKFZNJik7CiAgICAgdm9pZCBjaGVja0xp
dmVuZXNzQW5kVmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwogICAgIGJvb2wgaXNLbm93blRv
QmVMaXZlRHVyaW5nR0MoKTsKICAgICB2b2lkIGNhbmNlbCgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAJKHJldmlzaW9uIDIwODM5NCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiREZHV29ya2xpc3Qu
aCIKIAotI2lmIEVOQUJMRShERkdfSklUKQotCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiREZHTG9uZ0xpdmVkU3RhdGUuaCIKICNpbmNsdWRlICJERkdTYWZlcG9pbnQuaCIKQEAg
LTM4LDYgKzM2LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCisjaWYg
RU5BQkxFKERGR19KSVQpCisKIGNsYXNzIFdvcmtsaXN0OjpUaHJlYWRCb2R5IDogcHVibGljIEF1
dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgVGhyZWFkQm9keShjb25zdCBMb2NrSG9sZGVy
JiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94PExvY2s+
IGxvY2ssIFJlZlB0cjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IGNvbmRpdGlvbiwgaW50IHJl
bGF0aXZlUHJpb3JpdHkpCkBAIC0zNDksNiArMzQ5LDE3IEBAIHZvaWQgV29ya2xpc3Q6OmNvbXBs
ZXRlQWxsUGxhbnNGb3JWTShWTSYKICAgICBjb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSh2bSk7
CiB9CiAKK3ZvaWQgV29ya2xpc3Q6Om1hcmtDb2RlQmxvY2tzKFZNJiB2bSwgU2xvdFZpc2l0b3Im
IHNsb3RWaXNpdG9yKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKCptX2xvY2spOworICAgIGZv
ciAoUGxhbk1hcDo6aXRlcmF0b3IgaXRlciA9IG1fcGxhbnMuYmVnaW4oKTsgaXRlciAhPSBtX3Bs
YW5zLmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUGxhbiogcGxhbiA9IGl0ZXItPnZhbHVlLmdl
dCgpOworICAgICAgICBpZiAocGxhbi0+dm0gIT0gJnZtKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIHBsYW4tPm1hcmtDb2RlQmxvY2tzKHNsb3RWaXNpdG9yKTsKKyAgICB9Cit9CisK
IHZvaWQgV29ya2xpc3Q6OnJlbWVtYmVyQ29kZUJsb2NrcyhWTSYgdm0pCiB7CiAgICAgTG9ja0hv
bGRlciBsb2NrZXIoKm1fbG9jayk7CkBAIC0zNTYsNyArMzY3LDcgQEAgdm9pZCBXb3JrbGlzdDo6
cmVtZW1iZXJDb2RlQmxvY2tzKFZNJiB2bQogICAgICAgICBQbGFuKiBwbGFuID0gaXRlci0+dmFs
dWUuZ2V0KCk7CiAgICAgICAgIGlmIChwbGFuLT52bSAhPSAmdm0pCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgcGxhbi0+cmVtZW1iZXJDb2RlQmxvY2tzKCk7CisgICAgICAgIHBsYW4t
PnJlbWVtYmVyQ29kZUJsb2Nrcyh2bSk7CiAgICAgfQogfQogCkBAIC01NTMsNiArNTY0LDE0IEBA
IHZvaWQgY29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJiB2bSkKICAgICB9CiB9CiAKK3ZvaWQgbWFy
a0NvZGVCbG9ja3MoVk0mIHZtLCBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gREZHOjpudW1iZXJPZldvcmtsaXN0cygpOyBpLS07KSB7CisgICAgICAg
IGlmIChERkc6OldvcmtsaXN0KiB3b3JrbGlzdCA9IERGRzo6ZXhpc3RpbmdXb3JrbGlzdEZvcklu
ZGV4T3JOdWxsKGkpKQorICAgICAgICAgICAgd29ya2xpc3QtPm1hcmtDb2RlQmxvY2tzKHZtLCBz
bG90VmlzaXRvcik7CisgICAgfQorfQorCiB2b2lkIHJlbWVtYmVyQ29kZUJsb2NrcyhWTSYgdm0p
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gREZHOjpudW1iZXJPZldvcmtsaXN0cygpOyBpLS07
KSB7CkBAIC01NjEsNyArNTgwLDIyIEBAIHZvaWQgcmVtZW1iZXJDb2RlQmxvY2tzKFZNJiB2bSkK
ICAgICB9CiB9CiAKLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKyNlbHNlIC8vIEVOQUJMRShE
RkdfSklUKQorCit2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpCit7Cit9CisKK3ZvaWQg
bWFya0NvZGVCbG9ja3MoVk0mLCBTbG90VmlzaXRvciYpCit7Cit9CisKK3ZvaWQgcmVtZW1iZXJD
b2RlQmxvY2tzKFZNJikKK3sKK30KIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQogCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6REZHCisKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXb3JrbGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHV29ya2xpc3QuaAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0KICNpbmNsdWRlICJERkdQbGFuLmgi
CiAjaW5jbHVkZSAiREZHVGhyZWFkRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9BdXRvbWF0aWNUaHJl
YWQuaD4KQEAgLTQyLDYgKzQwLDggQEAgY2xhc3MgU2xvdFZpc2l0b3I7CiAKIG5hbWVzcGFjZSBE
RkcgewogCisjaWYgRU5BQkxFKERGR19KSVQpCisKIGNsYXNzIFdvcmtsaXN0IDogcHVibGljIFJl
ZkNvdW50ZWQ8V29ya2xpc3Q+IHsKIHB1YmxpYzoKICAgICBlbnVtIFN0YXRlIHsgTm90S25vd24s
IENvbXBpbGluZywgQ29tcGlsZWQgfTsKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIC8v
IHdvcmtsaXN0LT5jb21wbGV0ZUFsbFJlYWR5UGxhbnNGb3JWTSh2bSk7CiAgICAgdm9pZCBjb21w
bGV0ZUFsbFBsYW5zRm9yVk0oVk0mKTsKIAorICAgIHZvaWQgbWFya0NvZGVCbG9ja3MoVk0mLCBT
bG90VmlzaXRvciYpOwogICAgIHZvaWQgcmVtZW1iZXJDb2RlQmxvY2tzKFZNJik7CiAKICAgICB2
b2lkIHdhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeShWTSYpOwpAQCAtMTYzLDkgKzE2NCwx
MSBAQCBpbmxpbmUgV29ya2xpc3QmIGV4aXN0aW5nV29ya2xpc3RGb3JJbmRlCiAgICAgcmV0dXJu
ICpyZXN1bHQ7CiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKKwogdm9pZCBjb21wbGV0
ZUFsbFBsYW5zRm9yVk0oVk0mKTsKK3ZvaWQgbWFya0NvZGVCbG9ja3MoVk0mLCBTbG90VmlzaXRv
ciYpOwogdm9pZCByZW1lbWJlckNvZGVCbG9ja3MoVk0mKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkRGRwogCi0jZW5kaWYgLy8gRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzOSw5ICs0MzksNyBAQCB2b2lk
IEhlYXA6OmNvbXBsZXRlQWxsSklUUGxhbnMoKQogI2lmIEVOQUJMRShKSVQpCiAgICAgSklUV29y
a2xpc3Q6Omluc3RhbmNlKCktPmNvbXBsZXRlQWxsRm9yVk0oKm1fdm0pOwogI2VuZGlmIC8vIEVO
QUJMRShKSVQpCi0jaWYgRU5BQkxFKERGR19KSVQpCiAgICAgREZHOjpjb21wbGV0ZUFsbFBsYW5z
Rm9yVk0oKm1fdm0pOwotI2VuZGlmCiB9CiAKIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBn
Y1N0YXJ0VGltZSkKQEAgLTQ1MywxMCArNDUxLDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91
YmxlIGdjU3RhcnRUaW1lKQogICAgIHsKICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2Vu
Y2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1hcmtSb290cyBiZWZvcmUgY29udmVyZ2VuY2Ui
KTsKIAotI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBERkc6OnJlbWVtYmVyQ29kZUJsb2Nr
cygqbV92bSk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKICAgICAg
ICAgaWYgKFNhbXBsaW5nUHJvZmlsZXIqIHNhbXBsaW5nUHJvZmlsZXIgPSBtX3ZtLT5zYW1wbGlu
Z1Byb2ZpbGVyKCkpIHsKICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBuZWVkIHRvIG93biB0
aGUgbG9jayBmcm9tIG5vdyB1bnRpbCB3ZSdyZSBkb25lCkBAIC01MTYsMjEgKzUxMCw2IEBAIHZv
aWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAgICAgCiAgICAgICAg
IG1fc2xvdFZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKIAotICAgICAgICB7Ci0gICAgICAgICAg
ICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFy
a1Jvb3RzIGNvbnNlcnZhdGl2ZSBzY2FuIik7Ci0gICAgICAgICAgICBDb25zZXJ2YXRpdmVSb290
cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7Ci0gICAgICAgICAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Ci0gICAgICAgICAgICBnYXRoZXJTdGFja1Jvb3Rz
KGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAgIGdhdGhlckpTU3RhY2tSb290cyhjb25z
ZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAgICBnYXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29u
c2VydmF0aXZlUm9vdHMpOwotICAgICAgICAgICAgdmlzaXRDb25zZXJ2YXRpdmVSb290cyhjb25z
ZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8g
ZG8gdGhpcyB0byBjb25zZXJ2YXRpdmVseSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4gYW55IGNvZGUg
YmxvY2tzIHRoYXQgYXJlCi0gICAgICAgICAgICAvLyBydW5uaW5nIHJpZ2h0IG5vdy4gSG93ZXZl
ciwgd2UgbmVlZCB0byBiZSBzdXJlIHRvIGRvIGl0ICphZnRlciogd2UgbWFyayB0aGUgY29kZSBi
bG9jawotICAgICAgICAgICAgLy8gc28gdGhhdCB3ZSBrbm93IGZvciBzdXJlIGlmIGl0IHJlYWxs
eSBuZWVkcyBhIGJhcnJpZXIuCi0gICAgICAgICAgICBtX2NvZGVCbG9ja3MtPndyaXRlQmFycmll
ckN1cnJlbnRseUV4ZWN1dGluZyh0aGlzKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZpc2l0RXh0
ZXJuYWxSZW1lbWJlcmVkU2V0KCk7CiAgICAgICAgIHZpc2l0U21hbGxTdHJpbmdzKCk7CiAgICAg
ICAgIHZpc2l0UHJvdGVjdGVkT2JqZWN0cyhoZWFwUm9vdFZpc2l0b3IpOwpAQCAtNTQ2LDkgKzUy
NSw3IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKICAgICAKICAg
ICBUaW1pbmdTY29wZSBwb3N0Q29udmVyZ2VuY2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6Om1h
cmtSb290cyBhZnRlciBjb252ZXJnZW5jZSIpOwogCi0gICAgLy8gV2VhayByZWZlcmVuY2VzIG11
c3QgYmUgbWFya2VkIGxhc3QgYmVjYXVzZSB0aGVpciBsaXZlbmVzcyBkZXBlbmRzIG9uCi0gICAg
Ly8gdGhlIGxpdmVuZXNzIG9mIHRoZSByZXN0IG9mIHRoZSBvYmplY3QgZ3JhcGguCi0gICAgdmlz
aXRXZWFrSGFuZGxlcyhoZWFwUm9vdFZpc2l0b3IpOworICAgIG1hcmtUb0ZpeHBvaW50KGhlYXBS
b290VmlzaXRvcik7CiAKICAgICB7CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KG1fbWFya2luZ011dGV4KTsKQEAgLTYyMCw4ICs1OTcsNiBAQCB2b2lkIEhlYXA6OnZpc2l0Q29u
c2VydmF0aXZlUm9vdHMoQ29uc2VyCiAKICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSA9PSBHQ0xv
Z2dpbmc6OlZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIkNvbnNlcnZhdGl2ZSBSb290czpcbiIs
IG1fc2xvdFZpc2l0b3IpOwotCi0gICAgbV9zbG90VmlzaXRvci5kb25hdGVBbmREcmFpbigpOwog
fQogCiB2b2lkIEhlYXA6OnZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCkKQEAg
LTc5MiwxOSArNzY3LDM3IEBAIHZvaWQgSGVhcDo6dHJhY2VDb2RlQmxvY2tzQW5kSklUU3R1YlJv
dXQKICAgICBtX3Nsb3RWaXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiB9CiAKLXZvaWQgSGVhcDo6
dmlzaXRXZWFrSGFuZGxlcyhIZWFwUm9vdFZpc2l0b3ImIHZpc2l0b3IpCit2b2lkIEhlYXA6Om1h
cmtUb0ZpeHBvaW50KEhlYXBSb290VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBUaW1pbmdTY29w
ZSB0aW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OnZpc2l0V2Vha0hhbmRsZXMiKTsKKyAgICBUaW1p
bmdTY29wZSB0aW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OmZpeHBvaW50Iik7CiAgICAgd2hpbGUg
KHRydWUpIHsKICAgICAgICAgeworICAgICAgICAgICAgVGltaW5nU2NvcGUgcHJlQ29udmVyZ2Vu
Y2VUaW1pbmdTY29wZSgqdGhpcywgIkhlYXA6OnZpc2l0IGNvbnNlcnZhdGl2ZSBzY2FuIik7Cisg
ICAgICAgICAgICBDb25zZXJ2YXRpdmVSb290cyBjb25zZXJ2YXRpdmVSb290cygqdGhpcyk7Cisg
ICAgICAgICAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Cisg
ICAgICAgICAgICBnYXRoZXJTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAg
ICAgIGdhdGhlckpTU3RhY2tSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICBn
YXRoZXJTY3JhdGNoQnVmZmVyUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAg
dmlzaXRDb25zZXJ2YXRpdmVSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgIH0KKwor
ICAgICAgICB7CiAgICAgICAgICAgICBUaW1pbmdTY29wZSB0aW1pbmdTY29wZSgqdGhpcywgIm1f
b2JqZWN0U3BhY2UudmlzaXRXZWFrU2V0cyIpOwogICAgICAgICAgICAgbV9vYmplY3RTcGFjZS52
aXNpdFdlYWtTZXRzKHZpc2l0b3IpOwogICAgICAgICB9CiAgICAgICAgIGhhcnZlc3RXZWFrUmVm
ZXJlbmNlcygpOwogICAgICAgICB2aXNpdENvbXBpbGVyV29ya2xpc3RXZWFrUmVmZXJlbmNlcygp
OworICAgICAgICBERkc6Om1hcmtDb2RlQmxvY2tzKCptX3ZtLCBtX3Nsb3RWaXNpdG9yKTsKICAg
ICAgICAgaWYgKG1fc2xvdFZpc2l0b3IuaXNFbXB0eSgpKQogICAgICAgICAgICAgYnJlYWs7Ci0K
KyAgICAgICAgCisgICAgICAgIC8vIFdlIHdhbnQgdG8gZG8gdGhpcyB0byBjb25zZXJ2YXRpdmVs
eSBlbnN1cmUgdGhhdCB3ZSByZXNjYW4gYW55IGNvZGUgYmxvY2tzIHRoYXQgYXJlCisgICAgICAg
IC8vIHJ1bm5pbmcgcmlnaHQgbm93LiBIb3dldmVyLCB3ZSBuZWVkIHRvIGJlIHN1cmUgdG8gZG8g
aXQgKmFmdGVyKiB3ZSBtYXJrIHRoZSBjb2RlIGJsb2NrCisgICAgICAgIC8vIHNvIHRoYXQgd2Ug
a25vdyBmb3Igc3VyZSBpZiBpdCByZWFsbHkgbmVlZHMgYSBiYXJyaWVyLiBBbHNvLCB0aGlzIGhh
cyB0byBoYXBwZW4gYWZ0ZXIgdGhlCisgICAgICAgIC8vIGZpeHBvaW50IGNoZWNrIC0gb3RoZXJ3
aXNlIHdlIG1pZ2h0IGxvb3AgZm9yZXZlci4KKyAgICAgICAgbV9jb2RlQmxvY2tzLT53cml0ZUJh
cnJpZXJDdXJyZW50bHlFeGVjdXRpbmcodGhpcyk7CisgICAgICAgIERGRzo6cmVtZW1iZXJDb2Rl
QmxvY2tzKCptX3ZtKTsKKyAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpID09
IEdDTG9nZ2luZzo6VmVyYm9zZSkKICAgICAgICAgICAgIGRhdGFMb2coIkxpdmUgV2VhayBIYW5k
bGVzOlxuIiwgbV9zbG90VmlzaXRvcik7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmgJKHJldmlzaW9uIDIwODM5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQ1LDcgKzQ0NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2
aXNpdFNhbXBsaW5nUHJvZmlsZXIoKTsKICAgICB2b2lkIHZpc2l0U2hhZG93Q2hpY2tlbigpOwog
ICAgIHZvaWQgdHJhY2VDb2RlQmxvY2tzQW5kSklUU3R1YlJvdXRpbmVzKCk7Ci0gICAgdm9pZCB2
aXNpdFdlYWtIYW5kbGVzKEhlYXBSb290VmlzaXRvciYpOworICAgIHZvaWQgbWFya1RvRml4cG9p
bnQoSGVhcFJvb3RWaXNpdG9yJik7CiAgICAgdm9pZCB1cGRhdGVPYmplY3RDb3VudHMoZG91Ymxl
IGdjU3RhcnRUaW1lKTsKICAgICB2b2lkIGVuZE1hcmtpbmcoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293928</attachid>
            <date>2016-11-04 14:24:25 -0700</date>
            <delta_ts>2016-11-04 16:07:55 -0700</delta_ts>
            <desc>possibly better patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12496</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWlu
ZyBjaGFuZ2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFi
bGUgdG8ganVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhl
bmNlZm9ydGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4K
KyAgICAgICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRo
ZXIgdGhhbiAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGUgb25seSB0
cmlja3kgcGFydCBpcyB0aGF0IHRoZSBERkcgd29ya2xpc3QncyBiYXJyaWVyIGJlaGF2aW9yIC0g
Zm9yY2luZyB0aGUgYmFycmllciBiZWZvcmUKKyAgICAgICAgYmVnaW5NYXJraW5nIC0gZGlkIG5v
dCBjb25mb3JtIHRvIGhvdyB3ZSB3YW50IHRvIGRvIHRoZSBjb25jdXJyZW50IEdDIGZpeHBvaW50
LiBXZSB3YW50IGl0IHRvCisgICAgICAgIGZvcmNlLW1hcmsgYmVmb3JlIGRlY2lkaW5nIHdoZXRo
ZXIgdGhlIGZpeHBvaW50IGhhcyBjb252ZXJnZWQsIGFuZCB0aGVuIGZvcmNlLWJhcnJpZXIgYWZ0
ZXIKKyAgICAgICAgd2UgaGF2ZSBkb25lIHRoaXMgY2hlY2suIEknbSBhbHNvIGRvaW5nIGl0IGlu
IHN1Y2ggYSB3YXkgdGhhdCBwbGFuIGNhbmNlbGxhdGlvbiBjYW4gc3RpbGwKKyAgICAgICAgd29y
ay4KKyAgICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIHNob3VsZCBub3QgY2hhbmdlIHBlcmZv
cm1hbmNlIG9yIGJlaGF2aW9yLiBJJ20gc3RpbGwgdGVzdGluZyBpdC4KKworICAgICAgICAqIGRm
Zy9ERkdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjptYXJrQ29kZUJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6cmVtZW1iZXJDb2RlQmxvY2tzKToKKyAgICAgICAg
KiBkZmcvREZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6V29ya2xpc3Q6Om1hcmtDb2RlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6REZH
OjpXb3JrbGlzdDo6cmVtZW1iZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6REZHOjptYXJr
Q29kZUJsb2Nrcyk6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGxldGVBbGxQbGFuc0ZvclZNKToK
KyAgICAgICAgKEpTQzo6REZHOjpyZW1lbWJlckNvZGVCbG9ja3MpOgorICAgICAgICAqIGRmZy9E
RkdXb3JrbGlzdC5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6Okhl
YXA6OmNvbXBsZXRlQWxsSklUUGxhbnMpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMp
OgorICAgICAgICAoSlNDOjpIZWFwOjp2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKToKKyAgICAgICAg
KEpTQzo6SGVhcDo6bWFya1RvRml4cG9pbnQpOgorICAgICAgICAoSlNDOjpIZWFwOjp2aXNpdFdl
YWtIYW5kbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKwogMjAxNi0xMS0w
MyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xvbmVkQXJndW1l
bnRzIG5lZWQgdG8gYWxzbyBzdXBwb3J0IGhhdmVBQmFkVGltZSBtb2RlLgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAyMDgzOTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTAsMTYg
KzYxMCwzNCBAQCBDb21waWxhdGlvbktleSBQbGFuOjprZXkoKQogICAgIHJldHVybiBDb21waWxh
dGlvbktleShjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksIG1vZGUpOwogfQogCi12b2lkIFBsYW46
OnJlbWVtYmVyQ29kZUJsb2NrcygpCit2b2lkIFBsYW46Om1hcmtDb2RlQmxvY2tzKFNsb3RWaXNp
dG9yJiBzbG90VmlzaXRvcikKIHsKKyAgICBpZiAoIWlzS25vd25Ub0JlTGl2ZUR1cmluZ0dDKCkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBv
ZiB2YWx1ZXMgdG8gYSBDb2RlQmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCisgICAgLy8gYW4gZXhw
bGljaXQgYmFycmllci4gU28sIHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0
aGF0CisgICAgLy8gYWxsIG91ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0Mu
CisKKyAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihjb2Rl
QmxvY2spOworICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVy
KGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CisgICAgaWYgKHByb2ZpbGVkREZHQ29kZUJsb2Nr
KQorICAgICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihw
cm9maWxlZERGR0NvZGVCbG9jayk7Cit9CisKK3ZvaWQgUGxhbjo6cmVtZW1iZXJDb2RlQmxvY2tz
KFZNJiB2bSkKK3sKKyAgICBpZiAoIWlzS25vd25Ub0JlTGl2ZUR1cmluZ0dDKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKICAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBvZiB2YWx1ZXMg
dG8gYSBDb2RlQmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCiAgICAgLy8gYW4gZXhwbGljaXQgYmFy
cmllci4gU28sIHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0aGF0CiAgICAg
Ly8gYWxsIG91ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0MuCiAKLSAgICBI
ZWFwOjpoZWFwKGNvZGVCbG9jayktPndyaXRlQmFycmllcihjb2RlQmxvY2spOwotICAgIEhlYXA6
OmhlYXAoY29kZUJsb2NrKS0+d3JpdGVCYXJyaWVyKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7
CisgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICB2bS5oZWFwLndyaXRl
QmFycmllcihjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIGlmIChwcm9maWxlZERGR0Nv
ZGVCbG9jaykKLSAgICAgICAgSGVhcDo6aGVhcChwcm9maWxlZERGR0NvZGVCbG9jayktPndyaXRl
QmFycmllcihwcm9maWxlZERGR0NvZGVCbG9jayk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJy
aWVyKHByb2ZpbGVkREZHQ29kZUJsb2NrKTsKIH0KIAogdm9pZCBQbGFuOjpjaGVja0xpdmVuZXNz
QW5kVmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5oCShyZXZpc2lvbiAyMDgzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksOCBAQCBzdHJ1
Y3QgUGxhbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgCiAgICAgQ29tcGlsYXRp
b25LZXkga2V5KCk7CiAgICAgCi0gICAgdm9pZCByZW1lbWJlckNvZGVCbG9ja3MoKTsKKyAgICB2
b2lkIG1hcmtDb2RlQmxvY2tzKFNsb3RWaXNpdG9yJik7CisgICAgdm9pZCByZW1lbWJlckNvZGVC
bG9ja3MoVk0mKTsKICAgICB2b2lkIGNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxkcmVuKFNsb3RW
aXNpdG9yJik7CiAgICAgYm9vbCBpc0tub3duVG9CZUxpdmVEdXJpbmdHQygpOwogICAgIHZvaWQg
Y2FuY2VsKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNw
cAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3Jr
bGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0K
ICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgog
I2luY2x1ZGUgIkRGR1NhZmVwb2ludC5oIgpAQCAtMzgsNiArMzYsOCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogY2xhc3MgV29y
a2xpc3Q6OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAg
ICBUaHJlYWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0
LCBUaHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKQEAgLTM0OSw2ICsz
NDksMTcgQEAgdm9pZCBXb3JrbGlzdDo6Y29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJgogICAgIGNv
bXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKIH0KIAordm9pZCBXb3JrbGlzdDo6bWFya0Nv
ZGVCbG9ja3MoVk0mIHZtLCBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpCit7CisgICAgTG9ja0hv
bGRlciBsb2NrZXIoKm1fbG9jayk7CisgICAgZm9yIChQbGFuTWFwOjppdGVyYXRvciBpdGVyID0g
bV9wbGFucy5iZWdpbigpOyBpdGVyICE9IG1fcGxhbnMuZW5kKCk7ICsraXRlcikgeworICAgICAg
ICBQbGFuKiBwbGFuID0gaXRlci0+dmFsdWUuZ2V0KCk7CisgICAgICAgIGlmIChwbGFuLT52bSAh
PSAmdm0pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcGxhbi0+bWFya0NvZGVCbG9j
a3Moc2xvdFZpc2l0b3IpOworICAgIH0KK30KKwogdm9pZCBXb3JrbGlzdDo6cmVtZW1iZXJDb2Rl
QmxvY2tzKFZNJiB2bSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKQEAgLTM1
Niw3ICszNjcsNyBAQCB2b2lkIFdvcmtsaXN0OjpyZW1lbWJlckNvZGVCbG9ja3MoVk0mIHZtCiAg
ICAgICAgIFBsYW4qIHBsYW4gPSBpdGVyLT52YWx1ZS5nZXQoKTsKICAgICAgICAgaWYgKHBsYW4t
PnZtICE9ICZ2bSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBwbGFuLT5yZW1lbWJl
ckNvZGVCbG9ja3MoKTsKKyAgICAgICAgcGxhbi0+cmVtZW1iZXJDb2RlQmxvY2tzKHZtKTsKICAg
ICB9CiB9CiAKQEAgLTU1Myw2ICs1NjQsMTQgQEAgdm9pZCBjb21wbGV0ZUFsbFBsYW5zRm9yVk0o
Vk0mIHZtKQogICAgIH0KIH0KIAordm9pZCBtYXJrQ29kZUJsb2NrcyhWTSYgdm0sIFNsb3RWaXNp
dG9yJiBzbG90VmlzaXRvcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBERkc6Om51bWJlck9m
V29ya2xpc3RzKCk7IGktLTspIHsKKyAgICAgICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0
ID0gREZHOjpleGlzdGluZ1dvcmtsaXN0Rm9ySW5kZXhPck51bGwoaSkpCisgICAgICAgICAgICB3
b3JrbGlzdC0+bWFya0NvZGVCbG9ja3Modm0sIHNsb3RWaXNpdG9yKTsKKyAgICB9Cit9CisKIHZv
aWQgcmVtZW1iZXJDb2RlQmxvY2tzKFZNJiB2bSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBE
Rkc6Om51bWJlck9mV29ya2xpc3RzKCk7IGktLTspIHsKQEAgLTU2MSw3ICs1ODAsMjIgQEAgdm9p
ZCByZW1lbWJlckNvZGVCbG9ja3MoVk0mIHZtKQogICAgIH0KIH0KIAotfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkRGRworI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCisKK3ZvaWQgY29tcGxldGVBbGxQ
bGFuc0ZvclZNKFZNJikKK3sKK30KKwordm9pZCBtYXJrQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNp
dG9yJikKK3sKK30KKwordm9pZCByZW1lbWJlckNvZGVCbG9ja3MoVk0mKQoreworfQogCiAjZW5k
aWYgLy8gRU5BQkxFKERGR19KSVQpCiAKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCShyZXZpc2lvbiAyMDgz
OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoREZH
X0pJVCkKLQogI2luY2x1ZGUgIkRGR1BsYW4uaCIKICNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgi
CiAjaW5jbHVkZSA8d3RmL0F1dG9tYXRpY1RocmVhZC5oPgpAQCAtNDIsNiArNDAsOCBAQCBjbGFz
cyBTbG90VmlzaXRvcjsKIAogbmFtZXNwYWNlIERGRyB7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkK
KwogY2xhc3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogcHVibGlj
OgogICAgIGVudW0gU3RhdGUgeyBOb3RLbm93biwgQ29tcGlsaW5nLCBDb21waWxlZCB9OwpAQCAt
NTcsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgLy8gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQ
bGFuc0ZvclZNKHZtKTsKICAgICB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpOwogCisg
ICAgdm9pZCBtYXJrQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNpdG9yJik7CiAgICAgdm9pZCByZW1l
bWJlckNvZGVCbG9ja3MoVk0mKTsKIAogICAgIHZvaWQgd2FpdFVudGlsQWxsUGxhbnNGb3JWTUFy
ZVJlYWR5KFZNJik7CkBAIC0xNjMsOSArMTY0LDExIEBAIGlubGluZSBXb3JrbGlzdCYgZXhpc3Rp
bmdXb3JrbGlzdEZvckluZGUKICAgICByZXR1cm4gKnJlc3VsdDsKIH0KIAorI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQorCiB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpOwordm9pZCBt
YXJrQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNpdG9yJik7CiB2b2lkIHJlbWVtYmVyQ29kZUJsb2Nr
cyhWTSYpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKLSNlbmRpZiAvLyBFTkFCTEUo
REZHX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAy
MDgzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDM5LDkgKzQzOSw3IEBAIHZvaWQgSGVhcDo6Y29tcGxldGVBbGxKSVRQbGFucygp
CiAjaWYgRU5BQkxFKEpJVCkKICAgICBKSVRXb3JrbGlzdDo6aW5zdGFuY2UoKS0+Y29tcGxldGVB
bGxGb3JWTSgqbV92bSk7CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKLSNpZiBFTkFCTEUoREZHX0pJ
VCkKICAgICBERkc6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTSgqbV92bSk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBIZWFwOjptYXJrUm9vdHMoZG91YmxlIGdjU3RhcnRUaW1lKQpAQCAtNDUzLDEwICs0NTEs
NiBAQCB2b2lkIEhlYXA6Om1hcmtSb290cyhkb3VibGUgZ2NTdGFydFRpbWUpCiAgICAgewogICAg
ICAgICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6
bWFya1Jvb3RzIGJlZm9yZSBjb252ZXJnZW5jZSIpOwogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0g
ICAgICAgIERGRzo6cmVtZW1iZXJDb2RlQmxvY2tzKCptX3ZtKTsKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKFNBTVBMSU5HX1BST0ZJTEVSKQogICAgICAgICBpZiAoU2FtcGxpbmdQcm9maWxlciogc2Ft
cGxpbmdQcm9maWxlciA9IG1fdm0tPnNhbXBsaW5nUHJvZmlsZXIoKSkgewogICAgICAgICAgICAg
Ly8gTm90ZSB0aGF0IHdlIG5lZWQgdG8gb3duIHRoZSBsb2NrIGZyb20gbm93IHVudGlsIHdlJ3Jl
IGRvbmUKQEAgLTUxNiwyMSArNTEwLDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91YmxlIGdj
U3RhcnRUaW1lKQogICAgICAgICAKICAgICAgICAgbV9zbG90VmlzaXRvci5kb25hdGVBbmREcmFp
bigpOwogCi0gICAgICAgIHsKLSAgICAgICAgICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNl
VGltaW5nU2NvcGUoKnRoaXMsICJIZWFwOjptYXJrUm9vdHMgY29uc2VydmF0aXZlIHNjYW4iKTsK
LSAgICAgICAgICAgIENvbnNlcnZhdGl2ZVJvb3RzIGNvbnNlcnZhdGl2ZVJvb3RzKCp0aGlzKTsK
LSAgICAgICAgICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsK
LSAgICAgICAgICAgIGdhdGhlclN0YWNrUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwotICAgICAg
ICAgICAgZ2F0aGVySlNTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAg
IGdhdGhlclNjcmF0Y2hCdWZmZXJSb290cyhjb25zZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAg
ICB2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBkbyB0aGlzIHRvIGNvbnNlcnZhdGl2ZWx5IGVu
c3VyZSB0aGF0IHdlIHJlc2NhbiBhbnkgY29kZSBibG9ja3MgdGhhdCBhcmUKLSAgICAgICAgICAg
IC8vIHJ1bm5pbmcgcmlnaHQgbm93LiBIb3dldmVyLCB3ZSBuZWVkIHRvIGJlIHN1cmUgdG8gZG8g
aXQgKmFmdGVyKiB3ZSBtYXJrIHRoZSBjb2RlIGJsb2NrCi0gICAgICAgICAgICAvLyBzbyB0aGF0
IHdlIGtub3cgZm9yIHN1cmUgaWYgaXQgcmVhbGx5IG5lZWRzIGEgYmFycmllci4KLSAgICAgICAg
ICAgIG1fY29kZUJsb2Nrcy0+d3JpdGVCYXJyaWVyQ3VycmVudGx5RXhlY3V0aW5nKHRoaXMpOwot
ICAgICAgICB9Ci0KICAgICAgICAgdmlzaXRFeHRlcm5hbFJlbWVtYmVyZWRTZXQoKTsKICAgICAg
ICAgdmlzaXRTbWFsbFN0cmluZ3MoKTsKICAgICAgICAgdmlzaXRQcm90ZWN0ZWRPYmplY3RzKGhl
YXBSb290VmlzaXRvcik7CkBAIC01NDYsOSArNTI1LDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMo
ZG91YmxlIGdjU3RhcnRUaW1lKQogICAgIAogICAgIFRpbWluZ1Njb3BlIHBvc3RDb252ZXJnZW5j
ZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFya1Jvb3RzIGFmdGVyIGNvbnZlcmdlbmNlIik7
CiAKLSAgICAvLyBXZWFrIHJlZmVyZW5jZXMgbXVzdCBiZSBtYXJrZWQgbGFzdCBiZWNhdXNlIHRo
ZWlyIGxpdmVuZXNzIGRlcGVuZHMgb24KLSAgICAvLyB0aGUgbGl2ZW5lc3Mgb2YgdGhlIHJlc3Qg
b2YgdGhlIG9iamVjdCBncmFwaC4KLSAgICB2aXNpdFdlYWtIYW5kbGVzKGhlYXBSb290VmlzaXRv
cik7CisgICAgbWFya1RvRml4cG9pbnQoaGVhcFJvb3RWaXNpdG9yKTsKIAogICAgIHsKICAgICAg
ICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tYXJraW5nTXV0ZXgpOwpAQCAtNjIwLDgg
KzU5Nyw2IEBAIHZvaWQgSGVhcDo6dmlzaXRDb25zZXJ2YXRpdmVSb290cyhDb25zZXIKIAogICAg
IGlmIChPcHRpb25zOjpsb2dHQygpID09IEdDTG9nZ2luZzo6VmVyYm9zZSkKICAgICAgICAgZGF0
YUxvZygiQ29uc2VydmF0aXZlIFJvb3RzOlxuIiwgbV9zbG90VmlzaXRvcik7Ci0KLSAgICBtX3Ns
b3RWaXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiB9CiAKIHZvaWQgSGVhcDo6dmlzaXRDb21waWxl
cldvcmtsaXN0V2Vha1JlZmVyZW5jZXMoKQpAQCAtNzkyLDE5ICs3NjcsMzcgQEAgdm9pZCBIZWFw
Ojp0cmFjZUNvZGVCbG9ja3NBbmRKSVRTdHViUm91dAogICAgIG1fc2xvdFZpc2l0b3IuZG9uYXRl
QW5kRHJhaW4oKTsKIH0KIAotdm9pZCBIZWFwOjp2aXNpdFdlYWtIYW5kbGVzKEhlYXBSb290Vmlz
aXRvciYgdmlzaXRvcikKK3ZvaWQgSGVhcDo6bWFya1RvRml4cG9pbnQoSGVhcFJvb3RWaXNpdG9y
JiB2aXNpdG9yKQogewotICAgIFRpbWluZ1Njb3BlIHRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6
dmlzaXRXZWFrSGFuZGxlcyIpOworICAgIFRpbWluZ1Njb3BlIHRpbWluZ1Njb3BlKCp0aGlzLCAi
SGVhcDo6Zml4cG9pbnQiKTsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7CisgICAgICAg
ICAgICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6
dmlzaXQgY29uc2VydmF0aXZlIHNjYW4iKTsKKyAgICAgICAgICAgIENvbnNlcnZhdGl2ZVJvb3Rz
IGNvbnNlcnZhdGl2ZVJvb3RzKCp0aGlzKTsKKyAgICAgICAgICAgIFN1cGVyU2FtcGxlclNjb3Bl
IHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAgICAgICAgIGdhdGhlclN0YWNrUm9vdHMo
Y29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAgZ2F0aGVySlNTdGFja1Jvb3RzKGNvbnNl
cnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgICAgIGdhdGhlclNjcmF0Y2hCdWZmZXJSb290cyhjb25z
ZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICB2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKGNvbnNl
cnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgfQorCisgICAgICAgIHsKICAgICAgICAgICAgIFRpbWlu
Z1Njb3BlIHRpbWluZ1Njb3BlKCp0aGlzLCAibV9vYmplY3RTcGFjZS52aXNpdFdlYWtTZXRzIik7
CiAgICAgICAgICAgICBtX29iamVjdFNwYWNlLnZpc2l0V2Vha1NldHModmlzaXRvcik7CiAgICAg
ICAgIH0KICAgICAgICAgaGFydmVzdFdlYWtSZWZlcmVuY2VzKCk7CiAgICAgICAgIHZpc2l0Q29t
cGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCk7CisgICAgICAgIERGRzo6bWFya0NvZGVCbG9j
a3MoKm1fdm0sIG1fc2xvdFZpc2l0b3IpOwogICAgICAgICBpZiAobV9zbG90VmlzaXRvci5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICBicmVhazsKLQorICAgICAgICAKKyAgICAgICAgLy8gV2Ugd2Fu
dCB0byBkbyB0aGlzIHRvIGNvbnNlcnZhdGl2ZWx5IGVuc3VyZSB0aGF0IHdlIHJlc2NhbiBhbnkg
Y29kZSBibG9ja3MgdGhhdCBhcmUKKyAgICAgICAgLy8gcnVubmluZyByaWdodCBub3cuIEhvd2V2
ZXIsIHdlIG5lZWQgdG8gYmUgc3VyZSB0byBkbyBpdCAqYWZ0ZXIqIHdlIG1hcmsgdGhlIGNvZGUg
YmxvY2sKKyAgICAgICAgLy8gc28gdGhhdCB3ZSBrbm93IGZvciBzdXJlIGlmIGl0IHJlYWxseSBu
ZWVkcyBhIGJhcnJpZXIuIEFsc28sIHRoaXMgaGFzIHRvIGhhcHBlbiBhZnRlciB0aGUKKyAgICAg
ICAgLy8gZml4cG9pbnQgY2hlY2sgLSBvdGhlcndpc2Ugd2UgbWlnaHQgbG9vcCBmb3JldmVyLgor
ICAgICAgICBtX2NvZGVCbG9ja3MtPndyaXRlQmFycmllckN1cnJlbnRseUV4ZWN1dGluZyh0aGlz
KTsKKyAgICAgICAgREZHOjpyZW1lbWJlckNvZGVCbG9ja3MoKm1fdm0pOworICAgICAgICAKICAg
ICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkgPT0gR0NMb2dnaW5nOjpWZXJib3NlKQogICAgICAg
ICAgICAgZGF0YUxvZygiTGl2ZSBXZWFrIEhhbmRsZXM6XG4iLCBtX3Nsb3RWaXNpdG9yKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMjA4Mzk0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NDUsNyAr
NDQ1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2l0U2FtcGxpbmdQcm9maWxlcigpOwogICAg
IHZvaWQgdmlzaXRTaGFkb3dDaGlja2VuKCk7CiAgICAgdm9pZCB0cmFjZUNvZGVCbG9ja3NBbmRK
SVRTdHViUm91dGluZXMoKTsKLSAgICB2b2lkIHZpc2l0V2Vha0hhbmRsZXMoSGVhcFJvb3RWaXNp
dG9yJik7CisgICAgdm9pZCBtYXJrVG9GaXhwb2ludChIZWFwUm9vdFZpc2l0b3ImKTsKICAgICB2
b2lkIHVwZGF0ZU9iamVjdENvdW50cyhkb3VibGUgZ2NTdGFydFRpbWUpOwogICAgIHZvaWQgZW5k
TWFya2luZygpOwogCg==
</data>
<flag name="review"
          id="316763"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293949</attachid>
            <date>2016-11-04 16:07:55 -0700</date>
            <delta_ts>2016-11-04 16:07:55 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13087</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4Mzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBA
CisyMDE2LTExLTA0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
R0Mgc2hvdWxkIHNjYW4gc3RhY2sgYXQgdGhlIGVuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFy
ayBMYW0uCisgICAgICAgIAorICAgICAgICBUaGlzIGlzIGEgdGlueSwgdGVycmlmeWluZyBjaGFu
Z2UsIGFuZCBpdCB0YWtlcyB1cyBhbm90aGVyIHN0ZXAgY2xvc2VyIHRvIGJlaW5nIGFibGUgdG8g
anVzdAorICAgICAgICBsZXQgdGhlIG11dGF0b3IgcnVuIHdoaWxlIHdlIG1hcmsuIEhlbmNlZm9y
dGggdGhlIEdDIHNjYW5zIHRoZSBzdGFjayBhcyBwYXJ0IG9mIGl0cyBmaXhwb2ludC4KKyAgICAg
ICAgVGhlIGZpeHBvaW50IGlzIG5vdyBjYWxsZWQgIm1hcmtUb0ZpeHBvaW50IiByYXRoZXIgdGhh
biAidmlzaXRXZWFrSGFuZGxlcyIuCisgICAgICAgIAorICAgICAgICBUaGUgb25seSB0cmlja3kg
cGFydCBpcyB0aGF0IHRoZSBERkcgd29ya2xpc3QncyBiYXJyaWVyIGJlaGF2aW9yIC0gZm9yY2lu
ZyB0aGUgYmFycmllciBiZWZvcmUKKyAgICAgICAgYmVnaW5NYXJraW5nIC0gZGlkIG5vdCBjb25m
b3JtIHRvIGhvdyB3ZSB3YW50IHRvIGRvIHRoZSBjb25jdXJyZW50IEdDIGZpeHBvaW50LiBXZSB3
YW50IGl0IHRvCisgICAgICAgIGZvcmNlLW1hcmsgYmVmb3JlIGRlY2lkaW5nIHdoZXRoZXIgdGhl
IGZpeHBvaW50IGhhcyBjb252ZXJnZWQsIGFuZCB0aGVuIGZvcmNlLWJhcnJpZXIgYWZ0ZXIKKyAg
ICAgICAgd2UgaGF2ZSBkb25lIHRoaXMgY2hlY2suIEknbSBhbHNvIGRvaW5nIGl0IGluIHN1Y2gg
YSB3YXkgdGhhdCBwbGFuIGNhbmNlbGxhdGlvbiBjYW4gc3RpbGwKKyAgICAgICAgd29yay4KKyAg
ICAgICAgCisgICAgICAgIFRoaXMgY2hhbmdlIHNob3VsZCBub3QgY2hhbmdlIHBlcmZvcm1hbmNl
IG9yIGJlaGF2aW9yLiBJJ20gc3RpbGwgdGVzdGluZyBpdC4KKworICAgICAgICAqIGRmZy9ERkdQ
bGFuLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQbGFuOjptYXJrQ29kZUJsb2Nrcyk6CisgICAg
ICAgIChKU0M6OkRGRzo6UGxhbjo6cmVtZW1iZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKiBkZmcv
REZHUGxhbi5oOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6V29ya2xpc3Q6Om1hcmtDb2RlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3Jr
bGlzdDo6cmVtZW1iZXJDb2RlQmxvY2tzKToKKyAgICAgICAgKEpTQzo6REZHOjptYXJrQ29kZUJs
b2Nrcyk6CisgICAgICAgIChKU0M6OkRGRzo6Y29tcGxldGVBbGxQbGFuc0ZvclZNKToKKyAgICAg
ICAgKEpTQzo6REZHOjpyZW1lbWJlckNvZGVCbG9ja3MpOgorICAgICAgICAqIGRmZy9ERkdXb3Jr
bGlzdC5oOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmNv
bXBsZXRlQWxsSklUUGxhbnMpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMpOgorICAg
ICAgICAoSlNDOjpIZWFwOjp2aXNpdENvbnNlcnZhdGl2ZVJvb3RzKToKKyAgICAgICAgKEpTQzo6
SGVhcDo6bWFya1RvRml4cG9pbnQpOgorICAgICAgICAoSlNDOjpIZWFwOjp2aXNpdFdlYWtIYW5k
bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKwogMjAxNi0xMS0wMyAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xvbmVkQXJndW1lbnRzIG5l
ZWQgdG8gYWxzbyBzdXBwb3J0IGhhdmVBQmFkVGltZSBtb2RlLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdQbGFuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uY3BwCShyZXZpc2lvbiAyMDgzOTQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTAsMTYgKzYxMCwz
NCBAQCBDb21waWxhdGlvbktleSBQbGFuOjprZXkoKQogICAgIHJldHVybiBDb21waWxhdGlvbktl
eShjb2RlQmxvY2stPmFsdGVybmF0aXZlKCksIG1vZGUpOwogfQogCi12b2lkIFBsYW46OnJlbWVt
YmVyQ29kZUJsb2NrcygpCit2b2lkIFBsYW46Om1hcmtDb2RlQmxvY2tzKFNsb3RWaXNpdG9yJiBz
bG90VmlzaXRvcikKIHsKKyAgICBpZiAoIWlzS25vd25Ub0JlTGl2ZUR1cmluZ0dDKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBvZiB2YWx1
ZXMgdG8gYSBDb2RlQmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCisgICAgLy8gYW4gZXhwbGljaXQg
YmFycmllci4gU28sIHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0aGF0Cisg
ICAgLy8gYWxsIG91ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0MuCisKKyAg
ICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihjb2RlQmxvY2sp
OworICAgIHNsb3RWaXNpdG9yLmFwcGVuZFVuYmFycmllcmVkUmVhZE9ubHlQb2ludGVyKGNvZGVC
bG9jay0+YWx0ZXJuYXRpdmUoKSk7CisgICAgaWYgKHByb2ZpbGVkREZHQ29kZUJsb2NrKQorICAg
ICAgICBzbG90VmlzaXRvci5hcHBlbmRVbmJhcnJpZXJlZFJlYWRPbmx5UG9pbnRlcihwcm9maWxl
ZERGR0NvZGVCbG9jayk7Cit9CisKK3ZvaWQgUGxhbjo6cmVtZW1iZXJDb2RlQmxvY2tzKFZNJiB2
bSkKK3sKKyAgICBpZiAoIWlzS25vd25Ub0JlTGl2ZUR1cmluZ0dDKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICAKICAgICAvLyBDb21waWxhdGlvbiB3cml0ZXMgbG90cyBvZiB2YWx1ZXMgdG8gYSBD
b2RlQmxvY2sgd2l0aG91dCBwZXJmb3JtaW5nCiAgICAgLy8gYW4gZXhwbGljaXQgYmFycmllci4g
U28sIHdlIG5lZWQgdG8gYmUgcGVzc2ltaXN0aWMgYW5kIGFzc3VtZSB0aGF0CiAgICAgLy8gYWxs
IG91ciBDb2RlQmxvY2tzIG11c3QgYmUgdmlzaXRlZCBkdXJpbmcgR0MuCiAKLSAgICBIZWFwOjpo
ZWFwKGNvZGVCbG9jayktPndyaXRlQmFycmllcihjb2RlQmxvY2spOwotICAgIEhlYXA6OmhlYXAo
Y29kZUJsb2NrKS0+d3JpdGVCYXJyaWVyKGNvZGVCbG9jay0+YWx0ZXJuYXRpdmUoKSk7CisgICAg
dm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrKTsKKyAgICB2bS5oZWFwLndyaXRlQmFycmll
cihjb2RlQmxvY2stPmFsdGVybmF0aXZlKCkpOwogICAgIGlmIChwcm9maWxlZERGR0NvZGVCbG9j
aykKLSAgICAgICAgSGVhcDo6aGVhcChwcm9maWxlZERGR0NvZGVCbG9jayktPndyaXRlQmFycmll
cihwcm9maWxlZERGR0NvZGVCbG9jayk7CisgICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKHBy
b2ZpbGVkREZHQ29kZUJsb2NrKTsKIH0KIAogdm9pZCBQbGFuOjpjaGVja0xpdmVuZXNzQW5kVmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUGxhbi5oCShyZXZpc2lvbiAyMDgzOTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1BsYW4uaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksOCBAQCBzdHJ1Y3QgUGxh
biA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlCiAgICAgCiAgICAgQ29tcGlsYXRpb25LZXkg
a2V5KCk7CiAgICAgCi0gICAgdm9pZCByZW1lbWJlckNvZGVCbG9ja3MoKTsKKyAgICB2b2lkIG1h
cmtDb2RlQmxvY2tzKFNsb3RWaXNpdG9yJik7CisgICAgdm9pZCByZW1lbWJlckNvZGVCbG9ja3Mo
Vk0mKTsKICAgICB2b2lkIGNoZWNrTGl2ZW5lc3NBbmRWaXNpdENoaWxkcmVuKFNsb3RWaXNpdG9y
Jik7CiAgICAgYm9vbCBpc0tub3duVG9CZUxpdmVEdXJpbmdHQygpOwogICAgIHZvaWQgY2FuY2Vs
KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcAkocmV2
aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJERkdXb3JrbGlzdC5oIgogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0KICNpbmNs
dWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdMb25nTGl2ZWRTdGF0ZS5oIgogI2luY2x1
ZGUgIkRGR1NhZmVwb2ludC5oIgpAQCAtMzgsNiArMzYsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogY2xhc3MgV29ya2xpc3Q6
OlRocmVhZEJvZHkgOiBwdWJsaWMgQXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKICAgICBUaHJl
YWRCb2R5KGNvbnN0IExvY2tIb2xkZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJl
YWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmUHRyPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4gY29uZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKQEAgLTM0OSw2ICszNDksMTcg
QEAgdm9pZCBXb3JrbGlzdDo6Y29tcGxldGVBbGxQbGFuc0ZvclZNKFZNJgogICAgIGNvbXBsZXRl
QWxsUmVhZHlQbGFuc0ZvclZNKHZtKTsKIH0KIAordm9pZCBXb3JrbGlzdDo6bWFya0NvZGVCbG9j
a3MoVk0mIHZtLCBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IpCit7CisgICAgTG9ja0hvbGRlciBs
b2NrZXIoKm1fbG9jayk7CisgICAgZm9yIChQbGFuTWFwOjppdGVyYXRvciBpdGVyID0gbV9wbGFu
cy5iZWdpbigpOyBpdGVyICE9IG1fcGxhbnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBQbGFu
KiBwbGFuID0gaXRlci0+dmFsdWUuZ2V0KCk7CisgICAgICAgIGlmIChwbGFuLT52bSAhPSAmdm0p
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcGxhbi0+bWFya0NvZGVCbG9ja3Moc2xv
dFZpc2l0b3IpOworICAgIH0KK30KKwogdm9pZCBXb3JrbGlzdDo6cmVtZW1iZXJDb2RlQmxvY2tz
KFZNJiB2bSkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcigqbV9sb2NrKTsKQEAgLTM1Niw3ICsz
NjcsNyBAQCB2b2lkIFdvcmtsaXN0OjpyZW1lbWJlckNvZGVCbG9ja3MoVk0mIHZtCiAgICAgICAg
IFBsYW4qIHBsYW4gPSBpdGVyLT52YWx1ZS5nZXQoKTsKICAgICAgICAgaWYgKHBsYW4tPnZtICE9
ICZ2bSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBwbGFuLT5yZW1lbWJlckNvZGVC
bG9ja3MoKTsKKyAgICAgICAgcGxhbi0+cmVtZW1iZXJDb2RlQmxvY2tzKHZtKTsKICAgICB9CiB9
CiAKQEAgLTU1Myw2ICs1NjQsMTQgQEAgdm9pZCBjb21wbGV0ZUFsbFBsYW5zRm9yVk0oVk0mIHZt
KQogICAgIH0KIH0KIAordm9pZCBtYXJrQ29kZUJsb2NrcyhWTSYgdm0sIFNsb3RWaXNpdG9yJiBz
bG90VmlzaXRvcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBERkc6Om51bWJlck9mV29ya2xp
c3RzKCk7IGktLTspIHsKKyAgICAgICAgaWYgKERGRzo6V29ya2xpc3QqIHdvcmtsaXN0ID0gREZH
OjpleGlzdGluZ1dvcmtsaXN0Rm9ySW5kZXhPck51bGwoaSkpCisgICAgICAgICAgICB3b3JrbGlz
dC0+bWFya0NvZGVCbG9ja3Modm0sIHNsb3RWaXNpdG9yKTsKKyAgICB9Cit9CisKIHZvaWQgcmVt
ZW1iZXJDb2RlQmxvY2tzKFZNJiB2bSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSBERkc6Om51
bWJlck9mV29ya2xpc3RzKCk7IGktLTspIHsKQEAgLTU2MSw3ICs1ODAsMjIgQEAgdm9pZCByZW1l
bWJlckNvZGVCbG9ja3MoVk0mIHZtKQogICAgIH0KIH0KIAotfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkRGRworI2Vsc2UgLy8gRU5BQkxFKERGR19KSVQpCisKK3ZvaWQgY29tcGxldGVBbGxQbGFuc0Zv
clZNKFZNJikKK3sKK30KKwordm9pZCBtYXJrQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNpdG9yJikK
K3sKK30KKwordm9pZCByZW1lbWJlckNvZGVCbG9ja3MoVk0mKQoreworfQogCiAjZW5kaWYgLy8g
RU5BQkxFKERGR19KSVQpCiAKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKKworCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCShyZXZpc2lvbiAyMDgzOTQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoREZHX0pJVCkK
LQogI2luY2x1ZGUgIkRGR1BsYW4uaCIKICNpbmNsdWRlICJERkdUaHJlYWREYXRhLmgiCiAjaW5j
bHVkZSA8d3RmL0F1dG9tYXRpY1RocmVhZC5oPgpAQCAtNDIsNiArNDAsOCBAQCBjbGFzcyBTbG90
VmlzaXRvcjsKIAogbmFtZXNwYWNlIERGRyB7CiAKKyNpZiBFTkFCTEUoREZHX0pJVCkKKwogY2xh
c3MgV29ya2xpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrbGlzdD4gewogcHVibGljOgogICAg
IGVudW0gU3RhdGUgeyBOb3RLbm93biwgQ29tcGlsaW5nLCBDb21waWxlZCB9OwpAQCAtNTcsNiAr
NTcsNyBAQCBwdWJsaWM6CiAgICAgLy8gd29ya2xpc3QtPmNvbXBsZXRlQWxsUmVhZHlQbGFuc0Zv
clZNKHZtKTsKICAgICB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpOwogCisgICAgdm9p
ZCBtYXJrQ29kZUJsb2NrcyhWTSYsIFNsb3RWaXNpdG9yJik7CiAgICAgdm9pZCByZW1lbWJlckNv
ZGVCbG9ja3MoVk0mKTsKIAogICAgIHZvaWQgd2FpdFVudGlsQWxsUGxhbnNGb3JWTUFyZVJlYWR5
KFZNJik7CkBAIC0xNjMsOSArMTY0LDExIEBAIGlubGluZSBXb3JrbGlzdCYgZXhpc3RpbmdXb3Jr
bGlzdEZvckluZGUKICAgICByZXR1cm4gKnJlc3VsdDsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShE
RkdfSklUKQorCiB2b2lkIGNvbXBsZXRlQWxsUGxhbnNGb3JWTShWTSYpOwordm9pZCBtYXJrQ29k
ZUJsb2NrcyhWTSYsIFNsb3RWaXNpdG9yJik7CiB2b2lkIHJlbWVtYmVyQ29kZUJsb2NrcyhWTSYp
OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAKLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJ
VCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAyMDgzOTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDM5LDkgKzQzOSw3IEBAIHZvaWQgSGVhcDo6Y29tcGxldGVBbGxKSVRQbGFucygpCiAjaWYg
RU5BQkxFKEpJVCkKICAgICBKSVRXb3JrbGlzdDo6aW5zdGFuY2UoKS0+Y29tcGxldGVBbGxGb3JW
TSgqbV92bSk7CiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKLSNpZiBFTkFCTEUoREZHX0pJVCkKICAg
ICBERkc6OmNvbXBsZXRlQWxsUGxhbnNGb3JWTSgqbV92bSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBI
ZWFwOjptYXJrUm9vdHMoZG91YmxlIGdjU3RhcnRUaW1lKQpAQCAtNDUzLDEwICs0NTEsNiBAQCB2
b2lkIEhlYXA6Om1hcmtSb290cyhkb3VibGUgZ2NTdGFydFRpbWUpCiAgICAgewogICAgICAgICBU
aW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFya1Jv
b3RzIGJlZm9yZSBjb252ZXJnZW5jZSIpOwogCi0jaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAg
IERGRzo6cmVtZW1iZXJDb2RlQmxvY2tzKCptX3ZtKTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFNB
TVBMSU5HX1BST0ZJTEVSKQogICAgICAgICBpZiAoU2FtcGxpbmdQcm9maWxlciogc2FtcGxpbmdQ
cm9maWxlciA9IG1fdm0tPnNhbXBsaW5nUHJvZmlsZXIoKSkgewogICAgICAgICAgICAgLy8gTm90
ZSB0aGF0IHdlIG5lZWQgdG8gb3duIHRoZSBsb2NrIGZyb20gbm93IHVudGlsIHdlJ3JlIGRvbmUK
QEAgLTUxNiwyMSArNTEwLDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91YmxlIGdjU3RhcnRU
aW1lKQogICAgICAgICAKICAgICAgICAgbV9zbG90VmlzaXRvci5kb25hdGVBbmREcmFpbigpOwog
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFRpbWluZ1Njb3BlIHByZUNvbnZlcmdlbmNlVGltaW5n
U2NvcGUoKnRoaXMsICJIZWFwOjptYXJrUm9vdHMgY29uc2VydmF0aXZlIHNjYW4iKTsKLSAgICAg
ICAgICAgIENvbnNlcnZhdGl2ZVJvb3RzIGNvbnNlcnZhdGl2ZVJvb3RzKCp0aGlzKTsKLSAgICAg
ICAgICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKLSAgICAg
ICAgICAgIGdhdGhlclN0YWNrUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOwotICAgICAgICAgICAg
Z2F0aGVySlNTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAgIGdhdGhl
clNjcmF0Y2hCdWZmZXJSb290cyhjb25zZXJ2YXRpdmVSb290cyk7Ci0gICAgICAgICAgICB2aXNp
dENvbnNlcnZhdGl2ZVJvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgLy8gV2Ugd2FudCB0byBkbyB0aGlzIHRvIGNvbnNlcnZhdGl2ZWx5IGVuc3VyZSB0
aGF0IHdlIHJlc2NhbiBhbnkgY29kZSBibG9ja3MgdGhhdCBhcmUKLSAgICAgICAgICAgIC8vIHJ1
bm5pbmcgcmlnaHQgbm93LiBIb3dldmVyLCB3ZSBuZWVkIHRvIGJlIHN1cmUgdG8gZG8gaXQgKmFm
dGVyKiB3ZSBtYXJrIHRoZSBjb2RlIGJsb2NrCi0gICAgICAgICAgICAvLyBzbyB0aGF0IHdlIGtu
b3cgZm9yIHN1cmUgaWYgaXQgcmVhbGx5IG5lZWRzIGEgYmFycmllci4KLSAgICAgICAgICAgIG1f
Y29kZUJsb2Nrcy0+d3JpdGVCYXJyaWVyQ3VycmVudGx5RXhlY3V0aW5nKHRoaXMpOwotICAgICAg
ICB9Ci0KICAgICAgICAgdmlzaXRFeHRlcm5hbFJlbWVtYmVyZWRTZXQoKTsKICAgICAgICAgdmlz
aXRTbWFsbFN0cmluZ3MoKTsKICAgICAgICAgdmlzaXRQcm90ZWN0ZWRPYmplY3RzKGhlYXBSb290
VmlzaXRvcik7CkBAIC01NDYsOSArNTI1LDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoZG91Ymxl
IGdjU3RhcnRUaW1lKQogICAgIAogICAgIFRpbWluZ1Njb3BlIHBvc3RDb252ZXJnZW5jZVRpbWlu
Z1Njb3BlKCp0aGlzLCAiSGVhcDo6bWFya1Jvb3RzIGFmdGVyIGNvbnZlcmdlbmNlIik7CiAKLSAg
ICAvLyBXZWFrIHJlZmVyZW5jZXMgbXVzdCBiZSBtYXJrZWQgbGFzdCBiZWNhdXNlIHRoZWlyIGxp
dmVuZXNzIGRlcGVuZHMgb24KLSAgICAvLyB0aGUgbGl2ZW5lc3Mgb2YgdGhlIHJlc3Qgb2YgdGhl
IG9iamVjdCBncmFwaC4KLSAgICB2aXNpdFdlYWtIYW5kbGVzKGhlYXBSb290VmlzaXRvcik7Cisg
ICAgbWFya1RvRml4cG9pbnQoaGVhcFJvb3RWaXNpdG9yKTsKIAogICAgIHsKICAgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9tYXJraW5nTXV0ZXgpOwpAQCAtNTYyLDcgKzUzOSw2
IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGRvdWJsZSBnY1N0YXJ0VGltZSkKIAogdm9pZCBIZWFw
OjpnYXRoZXJTdGFja1Jvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiByb290cykKIHsKLSAgICBtX2pp
dFN0dWJSb3V0aW5lcy0+Y2xlYXJNYXJrcygpOwogICAgIG1fbWFjaGluZVRocmVhZHMuZ2F0aGVy
Q29uc2VydmF0aXZlUm9vdHMocm9vdHMsICptX2ppdFN0dWJSb3V0aW5lcywgKm1fY29kZUJsb2Nr
cyk7CiB9CiAKQEAgLTU4OSw2ICs1NjUsNyBAQCB2b2lkIEhlYXA6OmJlZ2luTWFya2luZygpCiAg
ICAgVGltaW5nU2NvcGUgdGltaW5nU2NvcGUoKnRoaXMsICJIZWFwOjpiZWdpbk1hcmtpbmciKTsK
ICAgICBpZiAobV9jb2xsZWN0aW9uU2NvcGUgPT0gQ29sbGVjdGlvblNjb3BlOjpGdWxsKQogICAg
ICAgICBtX2NvZGVCbG9ja3MtPmNsZWFyTWFya3NGb3JGdWxsQ29sbGVjdGlvbigpOworICAgIG1f
aml0U3R1YlJvdXRpbmVzLT5jbGVhck1hcmtzKCk7CiAgICAgCiAgICAgewogICAgICAgICBUaW1p
bmdTY29wZSBjbGVhck1hcmtzVGltaW5nU2NvcGUoKnRoaXMsICJtX29iamVjdFNwYWNlLmJlZ2lu
TWFya2luZyIpOwpAQCAtNjIwLDggKzU5Nyw2IEBAIHZvaWQgSGVhcDo6dmlzaXRDb25zZXJ2YXRp
dmVSb290cyhDb25zZXIKIAogICAgIGlmIChPcHRpb25zOjpsb2dHQygpID09IEdDTG9nZ2luZzo6
VmVyYm9zZSkKICAgICAgICAgZGF0YUxvZygiQ29uc2VydmF0aXZlIFJvb3RzOlxuIiwgbV9zbG90
VmlzaXRvcik7Ci0KLSAgICBtX3Nsb3RWaXNpdG9yLmRvbmF0ZUFuZERyYWluKCk7CiB9CiAKIHZv
aWQgSGVhcDo6dmlzaXRDb21waWxlcldvcmtsaXN0V2Vha1JlZmVyZW5jZXMoKQpAQCAtNzkyLDE5
ICs3NjcsMzcgQEAgdm9pZCBIZWFwOjp0cmFjZUNvZGVCbG9ja3NBbmRKSVRTdHViUm91dAogICAg
IG1fc2xvdFZpc2l0b3IuZG9uYXRlQW5kRHJhaW4oKTsKIH0KIAotdm9pZCBIZWFwOjp2aXNpdFdl
YWtIYW5kbGVzKEhlYXBSb290VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQgSGVhcDo6bWFya1RvRml4
cG9pbnQoSGVhcFJvb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIFRpbWluZ1Njb3BlIHRpbWlu
Z1Njb3BlKCp0aGlzLCAiSGVhcDo6dmlzaXRXZWFrSGFuZGxlcyIpOworICAgIFRpbWluZ1Njb3Bl
IHRpbWluZ1Njb3BlKCp0aGlzLCAiSGVhcDo6Zml4cG9pbnQiKTsKICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICB7CisgICAgICAgICAgICBUaW1pbmdTY29wZSBwcmVDb252ZXJnZW5jZVRpbWlu
Z1Njb3BlKCp0aGlzLCAiSGVhcDo6dmlzaXQgY29uc2VydmF0aXZlIHNjYW4iKTsKKyAgICAgICAg
ICAgIENvbnNlcnZhdGl2ZVJvb3RzIGNvbnNlcnZhdGl2ZVJvb3RzKCp0aGlzKTsKKyAgICAgICAg
ICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAgICAg
ICAgIGdhdGhlclN0YWNrUm9vdHMoY29uc2VydmF0aXZlUm9vdHMpOworICAgICAgICAgICAgZ2F0
aGVySlNTdGFja1Jvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgICAgIGdhdGhlclNj
cmF0Y2hCdWZmZXJSb290cyhjb25zZXJ2YXRpdmVSb290cyk7CisgICAgICAgICAgICB2aXNpdENv
bnNlcnZhdGl2ZVJvb3RzKGNvbnNlcnZhdGl2ZVJvb3RzKTsKKyAgICAgICAgfQorCisgICAgICAg
IHsKICAgICAgICAgICAgIFRpbWluZ1Njb3BlIHRpbWluZ1Njb3BlKCp0aGlzLCAibV9vYmplY3RT
cGFjZS52aXNpdFdlYWtTZXRzIik7CiAgICAgICAgICAgICBtX29iamVjdFNwYWNlLnZpc2l0V2Vh
a1NldHModmlzaXRvcik7CiAgICAgICAgIH0KICAgICAgICAgaGFydmVzdFdlYWtSZWZlcmVuY2Vz
KCk7CiAgICAgICAgIHZpc2l0Q29tcGlsZXJXb3JrbGlzdFdlYWtSZWZlcmVuY2VzKCk7CisgICAg
ICAgIERGRzo6bWFya0NvZGVCbG9ja3MoKm1fdm0sIG1fc2xvdFZpc2l0b3IpOwogICAgICAgICBp
ZiAobV9zbG90VmlzaXRvci5pc0VtcHR5KCkpCiAgICAgICAgICAgICBicmVhazsKLQorICAgICAg
ICAKKyAgICAgICAgLy8gV2Ugd2FudCB0byBkbyB0aGlzIHRvIGNvbnNlcnZhdGl2ZWx5IGVuc3Vy
ZSB0aGF0IHdlIHJlc2NhbiBhbnkgY29kZSBibG9ja3MgdGhhdCBhcmUKKyAgICAgICAgLy8gcnVu
bmluZyByaWdodCBub3cuIEhvd2V2ZXIsIHdlIG5lZWQgdG8gYmUgc3VyZSB0byBkbyBpdCAqYWZ0
ZXIqIHdlIG1hcmsgdGhlIGNvZGUgYmxvY2sKKyAgICAgICAgLy8gc28gdGhhdCB3ZSBrbm93IGZv
ciBzdXJlIGlmIGl0IHJlYWxseSBuZWVkcyBhIGJhcnJpZXIuIEFsc28sIHRoaXMgaGFzIHRvIGhh
cHBlbiBhZnRlciB0aGUKKyAgICAgICAgLy8gZml4cG9pbnQgY2hlY2sgLSBvdGhlcndpc2Ugd2Ug
bWlnaHQgbG9vcCBmb3JldmVyLgorICAgICAgICBtX2NvZGVCbG9ja3MtPndyaXRlQmFycmllckN1
cnJlbnRseUV4ZWN1dGluZyh0aGlzKTsKKyAgICAgICAgREZHOjpyZW1lbWJlckNvZGVCbG9ja3Mo
Km1fdm0pOworICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkgPT0gR0NMb2dn
aW5nOjpWZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiTGl2ZSBXZWFrIEhhbmRsZXM6XG4i
LCBtX3Nsb3RWaXNpdG9yKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2
aXNpb24gMjA4Mzk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NDUsNyArNDQ1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZpc2l0U2Ft
cGxpbmdQcm9maWxlcigpOwogICAgIHZvaWQgdmlzaXRTaGFkb3dDaGlja2VuKCk7CiAgICAgdm9p
ZCB0cmFjZUNvZGVCbG9ja3NBbmRKSVRTdHViUm91dGluZXMoKTsKLSAgICB2b2lkIHZpc2l0V2Vh
a0hhbmRsZXMoSGVhcFJvb3RWaXNpdG9yJik7CisgICAgdm9pZCBtYXJrVG9GaXhwb2ludChIZWFw
Um9vdFZpc2l0b3ImKTsKICAgICB2b2lkIHVwZGF0ZU9iamVjdENvdW50cyhkb3VibGUgZ2NTdGFy
dFRpbWUpOwogICAgIHZvaWQgZW5kTWFya2luZygpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>