<?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>99876</bug_id>
          
          <creation_ts>2012-10-19 14:56:30 -0700</creation_ts>
          <short_desc>[V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)</short_desc>
          <delta_ts>2012-10-19 23:29:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mihaip</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746666</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:56:30 -0700</bug_when>
    <thetext>[V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746670</commentid>
    <comment_count>1</comment_count>
      <attachid>169701</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:58:38 -0700</bug_when>
    <thetext>Created attachment 169701
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746672</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:59:09 -0700</bug_when>
    <thetext>The use snuck into the function in http://trac.webkit.org/changeset/131167</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746683</commentid>
    <comment_count>3</comment_count>
      <attachid>169705</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 15:11:28 -0700</bug_when>
    <thetext>Created attachment 169705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746685</commentid>
    <comment_count>4</comment_count>
      <attachid>169705</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 15:13:49 -0700</bug_when>
    <thetext>Comment on attachment 169705
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        isn&apos;t always a Document avaliable, so it doesn&apos;t make sense to pass it

Typo: avaliable.

&gt; Source/WebCore/ChangeLog:10
&gt; +        as a parmater. We&apos;re just waiting for a V8 API change so we can still

Typo: parmater.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746697</commentid>
    <comment_count>5</comment_count>
      <attachid>169708</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 15:23:18 -0700</bug_when>
    <thetext>Created attachment 169708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746698</commentid>
    <comment_count>6</comment_count>
      <attachid>169709</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 15:25:06 -0700</bug_when>
    <thetext>Created attachment 169709
typos fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746708</commentid>
    <comment_count>7</comment_count>
      <attachid>169712</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 15:32:32 -0700</bug_when>
    <thetext>Created attachment 169712
Updated run-bindings-tests results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746859</commentid>
    <comment_count>8</comment_count>
      <attachid>169709</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-19 19:34:11 -0700</bug_when>
    <thetext>Comment on attachment 169709
typos fixed

Looks reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746918</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 23:29:23 -0700</bug_when>
    <thetext>Committed r131981: &lt;http://trac.webkit.org/changeset/131981&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169701</attachid>
            <date>2012-10-19 14:58:38 -0700</date>
            <delta_ts>2012-10-19 15:07:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99876-20121019145722.patch</filename>
            <type>text/plain</type>
            <size>9334</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjMGEwNmM3MDMxZWJk
Y2Q3NDRmOTVhN2I5NzVkNzA0Zjc2ZmQ0YS4uZjlhOTU5NzMxMTgyZWRjNTI5MDlhOTUxYmQyZjAw
YWQxMmFkOTRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTE5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBWOERPTVdyYXBwZXIg
c2hvdWxkIGF2b2lkIHVzaW5nIGl0cyBkb2N1bWVudCBwYXJhbWV0ZXIgKHNvIHdlIGNhbiByZW1v
dmUgaXQgc29vbikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk5ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugd2FudCB0byByZW1vdmUgdGhlIGRvY3VtZW50IHBhcmFtZXRlciB0byBpbnN0YW50aWF0
ZVY4T2JqZWN0LiBUaGVyZQorICAgICAgICBpc24ndCBhbHdheXMgYSBEb2N1bWVudCBhdmFsaWFi
bGUsIHNvIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwYXNzIGl0CisgICAgICAgIGFzIGEgcGFy
bWF0ZXIuIFdlJ3JlIGp1c3Qgd2FpdGluZyBmb3IgYSBWOCBBUEkgY2hhbmdlIHNvIHdlIGNhbiBz
dGlsbAorICAgICAgICBjb25zdHJ1Y3QgTm9kZSB3cmFwcGVycyBxdWlja2x5LgorCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBhIHVzZSBvZiB0aGUgZG9jdW1lbnQgdGhhdCBzbnVjayBpbi4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAg
ICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhQZXJDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFBlckNvbnRleHRE
YXRhOjpjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
VjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2UpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVy
Q29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
VjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlKToKKyAgICAgICAgKFY4UGVyQ29u
dGV4dERhdGEpOgorCiAyMDEyLTEwLTA5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTMwNjk5KTogNSB2YXJpb3VzIGZhc3Qv
IHRlc3RzIHN0YXJ0ZWQgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAwYTU1MWRlMjBmYThlM2M4Mzg3MjNlMmVk
ZDE5YzZiMTIzY2UwYjYwLi44YWJkNWYxMmI2ZjI5MjZkMmE5ZjViZDg1YmQ1YjQ2NTM1MGNkOWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQpAQCAtNDgzLDExICs0ODMsMTEgQEAgRU5ECiAKICAgICBpZiAoQGVuYWJsZWRQZXJD
b250ZXh0RnVuY3Rpb25zKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsK
LSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHN0YXRp
YyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+KTsKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsIDw8RU5EKTsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVBy
b3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
IHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGll
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0KIEVORAogICAgIH0KIApAQCAtMzA5MiwxNSAr
MzA5MiwxNiBAQCBFTkQKIAogICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHRGdW5jdGlvbnMpIHsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLXZvaWQgJHtjbGFzc05hbWV9Ojpp
bnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiBwcm90bywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3ZvaWQgJHtjbGFzc05h
bWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBwcm90bykKIHsKICAgICBVTlVTRURfUEFSQU0ocHJvdG8pOwotICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0KTsKIEVORAogICAgICAgICAjIFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGlu
Z3MgZnVuY3Rpb25zIGlmIHdlIGhhdmUgdGhlbQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IDw8RU5EKTsKICAgICB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9
IHY4OjpTaWduYXR1cmU6Ok5ldyhHZXRUZW1wbGF0ZSgpKTsKICAgICBVTlVTRURfUEFSQU0oZGVm
YXVsdFNpZ25hdHVyZSk7IC8vIEluIHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCisK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gdG9TY3JpcHRFeGVjdXRpb25D
b250ZXh0KHY4OjpDb250ZXh0OjpDdXJyZW50KCkpOwogRU5ECiAKICAgICAgICAgZm9yZWFjaCBt
eSAkcnVudGltZUZ1bmMgKEBlbmFibGVkUGVyQ29udGV4dEZ1bmN0aW9ucykgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggZmJiOWZkMmM5M2UzYjBk
NWY4YTA0MGYzNmNlZWRkMjFjOGRiNWU4OS4uYzc2OGRhODkyMzU3YjgxMTQ2M2NjM2Y0NWNiNTY4
YWE4NTAxNzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwCkBAIC0xMTEsMTggKzExMSwyMCBAQCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IFY4RE9NV3Jh
cHBlcjo6d3JhcE5hdGl2ZU5vZGVGaWx0ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+CiAgICAgcmV0
dXJuIE5vZGVGaWx0ZXI6OmNyZWF0ZShWOE5vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZShmaWx0
ZXIpKTsKIH0KIAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlh
dGVWOE9iamVjdChEb2N1bWVudCogZG9jdW1lbnQsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdm9p
ZCogaW1wbCkKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRl
VjhPYmplY3QoRG9jdW1lbnQqIGRlcHJlY2F0ZWREb2N1bWVudCwgV3JhcHBlclR5cGVJbmZvKiB0
eXBlLCB2b2lkKiBpbXBsKQogewogICAgIFY4UGVyQ29udGV4dERhdGEqIHBlckNvbnRleHREYXRh
ID0gMDsKIAorICAgIC8vIFBsZWFzZSBkb24ndCBhZGQgYW55IG1vcmUgdXNlcyBvZiBkZXByZWNh
dGVkRG9jdW1lbnQuIFdlIHdhbnQgdG8gcmVtb3ZlIGl0LgorCiAgICAgLy8gSWYgd2UgaGF2ZSBh
IHBvaW50ZXIgdG8gdGhlIGZyYW1lLCB3ZSBjbmEgZ2V0IHRoZSBWOFBlckNvbnRleHREYXRhCiAg
ICAgLy8gZGlyZWN0bHksIHdoaWNoIGlzIGZhc3RlciB0aGFuIGdvaW5nIHRocm91Z2ggVjguCi0g
ICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5mcmFtZSgpKQotICAgICAgICBwZXJDb250ZXh0
RGF0YSA9IHBlckNvbnRleHREYXRhRm9yQ3VycmVudFdvcmxkKGRvY3VtZW50LT5mcmFtZSgpKTsK
KyAgICBpZiAoZGVwcmVjYXRlZERvY3VtZW50ICYmIGRlcHJlY2F0ZWREb2N1bWVudC0+ZnJhbWUo
KSkKKyAgICAgICAgcGVyQ29udGV4dERhdGEgPSBwZXJDb250ZXh0RGF0YUZvckN1cnJlbnRXb3Js
ZChkZXByZWNhdGVkRG9jdW1lbnQtPmZyYW1lKCkpOwogICAgIGVsc2UKICAgICAgICAgcGVyQ29u
dGV4dERhdGEgPSBWOFBlckNvbnRleHREYXRhOjpmcm9tKHY4OjpDb250ZXh0OjpHZXRDdXJyZW50
KCkpOwogCi0gICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gcGVyQ29udGV4dERh
dGEgPyBwZXJDb250ZXh0RGF0YS0+Y3JlYXRlV3JhcHBlckZyb21DYWNoZSh0eXBlLCBkb2N1bWVu
dCkgOiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZSh0eXBlLT5nZXRUZW1wbGF0ZSgp
LT5HZXRGdW5jdGlvbigpKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFuY2UgPSBw
ZXJDb250ZXh0RGF0YSA/IHBlckNvbnRleHREYXRhLT5jcmVhdGVXcmFwcGVyRnJvbUNhY2hlKHR5
cGUpIDogVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UodHlwZS0+Z2V0VGVtcGxhdGUo
KS0+R2V0RnVuY3Rpb24oKSk7CiAKICAgICAvLyBBdm9pZCBzZXR0aW5nIHRoZSBET00gd3JhcHBl
ciBmb3IgZmFpbGVkIGFsbG9jYXRpb25zLgogICAgIGlmIChpbnN0YW5jZS5Jc0VtcHR5KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuY3BwCmluZGV4
IDE1ZWZlNWE5NWQ5NmU3YzUxNTdmOTFhZGVkMjJkN2JlNjUwNzBiNjAuLjk3NjQ2MjBkNDNiZWMw
ZjAyZWExZmFmMzQ2N2NiOTYyNWIxYTkyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuY3BwCkBAIC0xMDAsMTMgKzEwMCwxMyBAQCBib29sIFY4
UGVyQ29udGV4dERhdGE6OmluaXQoKQogCiAjdW5kZWYgVjhfU1RPUkVfUFJJTU9SRElBTAogCi12
ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhQZXJDb250ZXh0RGF0YTo6Y3JlYXRlV3JhcHBlckZyb21D
YWNoZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKK3Y4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOFBlckNvbnRleHREYXRhOjpjcmVh
dGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UoV3JhcHBlclR5cGVJbmZvKiB0eXBlKQogewogICAg
IEFTU0VSVCghbV9lcnJvclByb3RvdHlwZS5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9vYmpl
Y3RQcm90b3R5cGUuaXNFbXB0eSgpKTsKIAogICAgIHY4OjpDb250ZXh0OjpTY29wZSBzY29wZSht
X2NvbnRleHQpOwotICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uID0gY29uc3Ry
dWN0b3JGb3JUeXBlKHR5cGUsIGNvbnRleHQpOworICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+
IGZ1bmN0aW9uID0gY29uc3RydWN0b3JGb3JUeXBlKHR5cGUpOwogICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBpbnN0YW5jZSA9IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKGZ1bmN0
aW9uKTsKICAgICBpZiAoIWluc3RhbmNlLklzRW1wdHkoKSkgewogICAgICAgICBtX3dyYXBwZXJC
b2lsZXJwbGF0ZXMuc2V0KHR5cGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoaW5z
dGFuY2UpKTsKQEAgLTExNSw3ICsxMTUsNyBAQCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhQZXJD
b250ZXh0RGF0YTo6Y3JlYXRlV3JhcHBlckZyb21DYWNoZVNsb3dDYXNlKFdyYXBwZXJUeQogICAg
IHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKIH0KIAotdjg6OkxvY2FsPHY4OjpGdW5j
dGlvbj4gVjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2UoV3JhcHBl
clR5cGVJbmZvKiB0eXBlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQordjg6Okxv
Y2FsPHY4OjpGdW5jdGlvbj4gVjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlU2xv
d0Nhc2UoV3JhcHBlclR5cGVJbmZvKiB0eXBlKQogewogICAgIEFTU0VSVCghbV9lcnJvclByb3Rv
dHlwZS5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9vYmplY3RQcm90b3R5cGUuaXNFbXB0eSgp
KTsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOFBlckNvbnRl
eHREYXRhOjpjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZShXcmFwcGVyVHlwZQogICAgIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHByb3RvdHlwZVZhbHVlID0gZnVuY3Rpb24tPkdldCh2ODo6U3RyaW5n
OjpOZXdTeW1ib2woInByb3RvdHlwZSIpKTsKICAgICBpZiAoIXByb3RvdHlwZVZhbHVlLklzRW1w
dHkoKSAmJiBwcm90b3R5cGVWYWx1ZS0+SXNPYmplY3QoKSkgewogICAgICAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gcHJvdG90eXBlT2JqZWN0ID0gdjg6OkxvY2FsPHY4OjpPYmplY3Q+OjpDYXN0
KHByb3RvdHlwZVZhbHVlKTsKLSAgICAgICAgdHlwZS0+aW5zdGFsbFBlckNvbnRleHRQcm90b3R5
cGVQcm9wZXJ0aWVzKHByb3RvdHlwZU9iamVjdCwgY29udGV4dCk7CisgICAgICAgIHR5cGUtPmlu
c3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyhwcm90b3R5cGVPYmplY3QpOwogICAg
ICAgICBpZiAodHlwZS0+d3JhcHBlclR5cGVQcm90b3R5cGUgPT0gV3JhcHBlclR5cGVFcnJvclBy
b3RvdHlwZSkKICAgICAgICAgICAgIHByb3RvdHlwZU9iamVjdC0+U2V0UHJvdG90eXBlKG1fZXJy
b3JQcm90b3R5cGUuZ2V0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UGVyQ29udGV4dERhdGEuaAppbmRleCAzNTU3YWRlNmQ1YWYxZmY0MTQ4MmQ2ZTQ2ZGRhMTVh
Y2IzZWE5YjVmLi44YzNjNDM3ZTI4YzA4MzFkZDAzMTU5MTQ2MDI3NTBmYjY1M2Y1MjA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5oCkBAIC02Mywx
OCArNjMsMTggQEAgcHVibGljOgogICAgIC8vIFRvIGNyZWF0ZSBKUyBXcmFwcGVyIG9iamVjdHMs
IHdlIGNyZWF0ZSBhIGNhY2hlIG9mIGEgJ2JvaWxlciBwbGF0ZScKICAgICAvLyBvYmplY3QsIGFu
ZCB0aGVuIHNpbXBseSBDbG9uZSB0aGF0IG9iamVjdCBlYWNoIHRpbWUgd2UgbmVlZCBhIG5ldyBv
bmUuCiAgICAgLy8gVGhpcyBpcyBmYXN0ZXIgdGhhbiBnb2luZyB0aHJvdWdoIHRoZSBmdWxsIG9i
amVjdCBjcmVhdGlvbiBwcm9jZXNzLgotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjcmVhdGVX
cmFwcGVyRnJvbUNhY2hlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRlV3JhcHBlckZy
b21DYWNoZShXcmFwcGVyVHlwZUluZm8qIHR5cGUpCiAgICAgewogICAgICAgICB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiBib2lsZXJwbGF0ZSA9IG1fd3JhcHBlckJvaWxlcnBsYXRlcy5nZXQo
dHlwZSk7Ci0gICAgICAgIHJldHVybiAhYm9pbGVycGxhdGUuSXNFbXB0eSgpID8gYm9pbGVycGxh
dGUtPkNsb25lKCkgOiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UodHlwZSwgY29udGV4
dCk7CisgICAgICAgIHJldHVybiAhYm9pbGVycGxhdGUuSXNFbXB0eSgpID8gYm9pbGVycGxhdGUt
PkNsb25lKCkgOiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UodHlwZSk7CiAgICAgfQog
Ci0gICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY29uc3RydWN0b3JGb3JUeXBlKFdyYXBwZXJU
eXBlSW5mbyogdHlwZSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICB2ODo6
TG9jYWw8djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3RvckZvclR5cGUoV3JhcHBlclR5cGVJbmZvKiB0
eXBlKQogICAgIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uPiBmdW5jdGlv
biA9IG1fY29uc3RydWN0b3JNYXAuZ2V0KHR5cGUpOwogICAgICAgICBpZiAoIWZ1bmN0aW9uLklz
RW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPjo6TmV3
KGZ1bmN0aW9uKTsKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKHR5
cGUsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gY29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2Uo
dHlwZSk7CiAgICAgfQogCiAgICAgVjhOUE9iamVjdE1hcCogdjhOUE9iamVjdE1hcCgpCkBAIC05
MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3Bvc2UoKTsKIAotICAgIHY4OjpM
b2NhbDx2ODo6T2JqZWN0PiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UoV3JhcHBlclR5
cGVJbmZvKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotICAgIHY4OjpMb2NhbDx2ODo6RnVu
Y3Rpb24+IGNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyosIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRlV3Jh
cHBlckZyb21DYWNoZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyopOworICAgIHY4OjpMb2NhbDx2
ODo6RnVuY3Rpb24+IGNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyop
OwogCiAgICAgLy8gRm9yIGVhY2ggcG9zc2libGUgdHlwZSBvZiB3cmFwcGVyLCB3ZSBrZWVwIGEg
Ym9pbGVycGxhdGUgb2JqZWN0LgogICAgIC8vIFRoZSBib2lsZXJwbGF0ZSBpcyB1c2VkIHRvIGNy
ZWF0ZSBhZGRpdGlvbmFsIHdyYXBwZXJzIG9mIHRoZSBzYW1lIHR5cGUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169705</attachid>
            <date>2012-10-19 15:11:28 -0700</date>
            <delta_ts>2012-10-19 15:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99876-20121019151011.patch</filename>
            <type>text/plain</type>
            <size>14084</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjMGEwNmM3MDMxZWJk
Y2Q3NDRmOTVhN2I5NzVkNzA0Zjc2ZmQ0YS4uZjlhOTU5NzMxMTgyZWRjNTI5MDlhOTUxYmQyZjAw
YWQxMmFkOTRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTE5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBWOERPTVdyYXBwZXIg
c2hvdWxkIGF2b2lkIHVzaW5nIGl0cyBkb2N1bWVudCBwYXJhbWV0ZXIgKHNvIHdlIGNhbiByZW1v
dmUgaXQgc29vbikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk5ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugd2FudCB0byByZW1vdmUgdGhlIGRvY3VtZW50IHBhcmFtZXRlciB0byBpbnN0YW50aWF0
ZVY4T2JqZWN0LiBUaGVyZQorICAgICAgICBpc24ndCBhbHdheXMgYSBEb2N1bWVudCBhdmFsaWFi
bGUsIHNvIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwYXNzIGl0CisgICAgICAgIGFzIGEgcGFy
bWF0ZXIuIFdlJ3JlIGp1c3Qgd2FpdGluZyBmb3IgYSBWOCBBUEkgY2hhbmdlIHNvIHdlIGNhbiBz
dGlsbAorICAgICAgICBjb25zdHJ1Y3QgTm9kZSB3cmFwcGVycyBxdWlja2x5LgorCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBhIHVzZSBvZiB0aGUgZG9jdW1lbnQgdGhhdCBzbnVjayBpbi4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAg
ICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhQZXJDb250ZXh0RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFBlckNvbnRleHRE
YXRhOjpjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
VjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2UpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVy
Q29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
VjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBlKToKKyAgICAgICAgKFY4UGVyQ29u
dGV4dERhdGEpOgorCiAyMDEyLTEwLTA5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTMwNjk5KTogNSB2YXJpb3VzIGZhc3Qv
IHRlc3RzIHN0YXJ0ZWQgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCAzMjY5NzZk
NzEyNTc1YjkxN2ExMGJhM2ZhMWQ2NTFkMzliZDEzMTkzLi4wZWJiNTQ3NDAwOTVlNTZiZmY2NzA4
MmNhZGVmZjFmZjNiNmM1ODY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtNTUsMTEgKzU1
LDYgQEAgTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZpY2EKIHsKIH0KIAotRG9jdW1lbnQqIE5vdGlmaWNh
dGlvbkNlbnRlcjo6ZG9jdW1lbnQoKSBjb25zdCB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICByZXR1cm4gY29udGV4
dC0+aXNEb2N1bWVudCgpID8gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSA6IDA7Ci19
Ci0KICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiBpbnQgTm90aWZpY2F0aW9uQ2Vu
dGVyOjpjaGVja1Blcm1pc3Npb24oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCmluZGV4IGIxN2RlOWQ1
ZDEzZmI5MmQ1ZjE5ZTYxZWYyMTg2OGVlODQyODhhYTEuLjNmNmQ2ODkwMmYzMDU3NWM4MDdiYTNj
MjEwMjFkOTcwNTM3YTUxZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKQEAgLTg1LDcgKzg1LDYgQEAg
cHVibGljOgogICAgIGludCBjaGVja1Blcm1pc3Npb24oKTsKICAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CiAjZW5kaWYKLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KaW5kZXggMGE1NTFkZTIwZmE4ZTNjODM4NzIzZTJlZGQxOWM2YjEyM2NlMGI2MC4uYmQyZWE0
Y2M5MGZjMzZkOWQ1ODhmMmM5NGNiMGVjNzdjNDhiYjRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTQ4MywxMSArNDgz
LDExIEBAIEVORAogCiAgICAgaWYgKEBlbmFibGVkUGVyQ29udGV4dEZ1bmN0aW9ucykgewogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFs
bFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4
dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiBFTkQKICAgICB9
IGVsc2UgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7Ci0gICAgc3RhdGlj
IHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0
PikgeyB9CiBFTkQKICAgICB9CiAKQEAgLTgzNCwxNyArODM0LDcgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiAke2ltcGxDbGFzc05hbWV9Q29uc3RydWN0b3JHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHIKICAgICBWOFBlckNvbnRleHREYXRhKiBwZXJDb250ZXh0RGF0YSA9IFY4UGVyQ29u
dGV4dERhdGE6OmZyb20oaW5mby5Ib2xkZXIoKS0+Q3JlYXRpb25Db250ZXh0KCkpOwogICAgIGlm
ICghcGVyQ29udGV4dERhdGEpCiAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwotRU5ECi0K
LSAgICBpZiAoJGltcGxDbGFzc05hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gcGVyQ29udGV4dERhdGEtPmNvbnN0cnVjdG9y
Rm9yVHlwZShXcmFwcGVyVHlwZUluZm86OnVud3JhcChkYXRhKSwgVjhET01XaW5kb3c6OnRvTmF0
aXZlKGluZm8uSG9sZGVyKCkpLT5kb2N1bWVudCgpKTtcbiIpOwotRU5ECi0gICAgfSBlbHNpZiAo
JGltcGxDbGFzc05hbWUgZXEgIldvcmtlckNvbnRleHQiKSB7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgcmV0dXJuIHBlckNvbnRleHREYXRhLT5jb25zdHJ1Y3RvckZvclR5
cGUoV3JhcHBlclR5cGVJbmZvOjp1bndyYXAoZGF0YSksIFY4V29ya2VyQ29udGV4dDo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSkpO1xuIikKLSAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIHJldHVybiBwZXJDb250ZXh0RGF0YS0+Y29uc3RydWN0b3JGb3JU
eXBlKFdyYXBwZXJUeXBlSW5mbzo6dW53cmFwKGRhdGEpLCAwKTtcbiIpOwotICAgIH0KLSAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcmV0dXJuIHBlckNvbnRleHREYXRh
LT5jb25zdHJ1Y3RvckZvclR5cGUoV3JhcHBlclR5cGVJbmZvOjp1bndyYXAoZGF0YSkpO1xuIik7
CiB9CiBFTkQKIH0KQEAgLTMwOTIsMTUgKzMwODIsMTYgQEAgRU5ECiAKICAgICBpZiAoQGVuYWJs
ZWRQZXJDb250ZXh0RnVuY3Rpb25zKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVO
RCk7Ci12b2lkICR7Y2xhc3NOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0
aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG8sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCit2b2lkICR7Y2xhc3NOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQ
cm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG8pCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHByb3RvKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiBFTkQKICAgICAgICAgIyBT
ZXR1cCB0aGUgZW5hYmxlLWJ5LXNldHRpbmdzIGZ1bmN0aW9ucyBpZiB3ZSBoYXZlIHRoZW0KICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7CiAgICAgdjg6OkxvY2FsPHY4OjpTaWdu
YXR1cmU+IGRlZmF1bHRTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXcoR2V0VGVtcGxhdGUo
KSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2Vz
LCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCA9IHRvU2NyaXB0RXhlY3V0aW9uQ29udGV4dChwcm90by0+Q3JlYXRpb25Db250ZXh0KCkp
OwogRU5ECiAKICAgICAgICAgZm9yZWFjaCBteSAkcnVudGltZUZ1bmMgKEBlbmFibGVkUGVyQ29u
dGV4dEZ1bmN0aW9ucykgewpAQCAtMzQzMywxMyArMzQyNCwxNCBAQCBFTkQKICAgICB9CiAKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7
Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3QgYWRkIGFu
eSBtb3JlIHVzZXMgb2YgdGhpcyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCogZGVwcmVjYXRlZERv
Y3VtZW50ID0gMDsKKyAgICBVTlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3VtZW50KTsKIEVORAog
Ci0gICAgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSB8fCAkaW50ZXJmYWNlTmFtZSBlcSAi
Tm90aWZpY2F0aW9uQ2VudGVyIikgeworICAgIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkp
IHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBkb2N1bWVudCA9IGlt
cGwtPmRvY3VtZW50KCk7IAorICAgIGRlcHJlY2F0ZWREb2N1bWVudCA9IGltcGwtPmRvY3VtZW50
KCk7IAogRU5ECiAgICAgfQogCkBAIC0zNDU0LDcgKzM0NDYsNyBAQCBFTkQKICAgICAgICAgY29u
dGV4dC0+RW50ZXIoKTsKICAgICB9CiAKLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0
YW50aWF0ZVY4T2JqZWN0KGRvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBl
ciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkZXByZWNhdGVkRG9jdW1lbnQs
ICZpbmZvLCBpbXBsLmdldCgpKTsKIAogICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAg
ICAgIGNvbnRleHQtPkV4aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCmluZGV4IGZiYjlmZDJjOTNlM2IwZDVmOGEwNDBmMzZjZWVkZDIxYzhkYjVlODku
LmM3NjhkYTg5MjM1N2I4MTE0NjNjYzNmNDVjYjU2OGFhODUwMTcwNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMTExLDE4ICsxMTEsMjAgQEAg
UGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBWOERPTVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmlsdGVy
KHY4OjpIYW5kbGU8djg6OlZhbHVlPgogICAgIHJldHVybiBOb2RlRmlsdGVyOjpjcmVhdGUoVjhO
b2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoZmlsdGVyKSk7CiB9CiAKLXY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGltcGwpCit2ODo6TG9jYWw8djg6Ok9i
amVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KERvY3VtZW50KiBkZXByZWNh
dGVkRG9jdW1lbnQsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdm9pZCogaW1wbCkKIHsKICAgICBW
OFBlckNvbnRleHREYXRhKiBwZXJDb250ZXh0RGF0YSA9IDA7CiAKKyAgICAvLyBQbGVhc2UgZG9u
J3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgZGVwcmVjYXRlZERvY3VtZW50LiBXZSB3YW50IHRvIHJl
bW92ZSBpdC4KKwogICAgIC8vIElmIHdlIGhhdmUgYSBwb2ludGVyIHRvIHRoZSBmcmFtZSwgd2Ug
Y25hIGdldCB0aGUgVjhQZXJDb250ZXh0RGF0YQogICAgIC8vIGRpcmVjdGx5LCB3aGljaCBpcyBm
YXN0ZXIgdGhhbiBnb2luZyB0aHJvdWdoIFY4LgotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVu
dC0+ZnJhbWUoKSkKLSAgICAgICAgcGVyQ29udGV4dERhdGEgPSBwZXJDb250ZXh0RGF0YUZvckN1
cnJlbnRXb3JsZChkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYgKGRlcHJlY2F0ZWREb2N1bWVu
dCAmJiBkZXByZWNhdGVkRG9jdW1lbnQtPmZyYW1lKCkpCisgICAgICAgIHBlckNvbnRleHREYXRh
ID0gcGVyQ29udGV4dERhdGFGb3JDdXJyZW50V29ybGQoZGVwcmVjYXRlZERvY3VtZW50LT5mcmFt
ZSgpKTsKICAgICBlbHNlCiAgICAgICAgIHBlckNvbnRleHREYXRhID0gVjhQZXJDb250ZXh0RGF0
YTo6ZnJvbSh2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKTsKIAotICAgIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBpbnN0YW5jZSA9IHBlckNvbnRleHREYXRhID8gcGVyQ29udGV4dERhdGEtPmNyZWF0
ZVdyYXBwZXJGcm9tQ2FjaGUodHlwZSwgZG9jdW1lbnQpIDogVjhPYmplY3RDb25zdHJ1Y3Rvcjo6
bmV3SW5zdGFuY2UodHlwZS0+Z2V0VGVtcGxhdGUoKS0+R2V0RnVuY3Rpb24oKSk7CisgICAgdjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gcGVyQ29udGV4dERhdGEgPyBwZXJDb250ZXh0
RGF0YS0+Y3JlYXRlV3JhcHBlckZyb21DYWNoZSh0eXBlKSA6IFY4T2JqZWN0Q29uc3RydWN0b3I6
Om5ld0luc3RhbmNlKHR5cGUtPmdldFRlbXBsYXRlKCktPkdldEZ1bmN0aW9uKCkpOwogCiAgICAg
Ly8gQXZvaWQgc2V0dGluZyB0aGUgRE9NIHdyYXBwZXIgZm9yIGZhaWxlZCBhbGxvY2F0aW9ucy4K
ICAgICBpZiAoaW5zdGFuY2UuSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOFBlckNvbnRleHREYXRhLmNwcAppbmRleCAxNWVmZTVhOTVkOTZlN2M1MTU3ZjkxYWRl
ZDIyZDdiZTY1MDcwYjYwLi45NzY0NjIwZDQzYmVjMGYwMmVhMWZhZjM0NjdjYjk2MjViMWE5MjI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRhLmNw
cApAQCAtMTAwLDEzICsxMDAsMTMgQEAgYm9vbCBWOFBlckNvbnRleHREYXRhOjppbml0KCkKIAog
I3VuZGVmIFY4X1NUT1JFX1BSSU1PUkRJQUwKIAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4UGVy
Q29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHlwZUlu
Zm8qIHR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit2ODo6TG9jYWw8djg6
Ok9iamVjdD4gVjhQZXJDb250ZXh0RGF0YTo6Y3JlYXRlV3JhcHBlckZyb21DYWNoZVNsb3dDYXNl
KFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JQcm90b3R5cGUu
aXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fb2JqZWN0UHJvdG90eXBlLmlzRW1wdHkoKSk7CiAK
ICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUobV9jb250ZXh0KTsKLSAgICB2ODo6TG9jYWw8
djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IGNvbnN0cnVjdG9yRm9yVHlwZSh0eXBlLCBjb250ZXh0
KTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IGNvbnN0cnVjdG9yRm9y
VHlwZSh0eXBlKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFuY2UgPSBWOE9iamVj
dENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZShmdW5jdGlvbik7CiAgICAgaWYgKCFpbnN0YW5jZS5J
c0VtcHR5KCkpIHsKICAgICAgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLnNldCh0eXBlLCB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGluc3RhbmNlKSk7CkBAIC0xMTUsNyArMTE1LDcg
QEAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4UGVyQ29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJG
cm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHkKICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+KCk7CiB9CiAKLXY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4UGVyQ29udGV4dERhdGE6OmNv
bnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKK3Y4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4UGVyQ29u
dGV4dERhdGE6OmNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyogdHlw
ZSkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JQcm90b3R5cGUuaXNFbXB0eSgpKTsKICAgICBBU1NF
UlQoIW1fb2JqZWN0UHJvdG90eXBlLmlzRW1wdHkoKSk7CkBAIC0xMzIsNyArMTMyLDcgQEAgdjg6
OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JUeXBl
U2xvd0Nhc2UoV3JhcHBlclR5cGUKICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBwcm90b3R5cGVW
YWx1ZSA9IGZ1bmN0aW9uLT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJwcm90b3R5cGUiKSk7
CiAgICAgaWYgKCFwcm90b3R5cGVWYWx1ZS5Jc0VtcHR5KCkgJiYgcHJvdG90eXBlVmFsdWUtPklz
T2JqZWN0KCkpIHsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHByb3RvdHlwZU9iamVj
dCA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChwcm90b3R5cGVWYWx1ZSk7Ci0gICAgICAg
IHR5cGUtPmluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyhwcm90b3R5cGVPYmpl
Y3QsIGNvbnRleHQpOworICAgICAgICB0eXBlLT5pbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVBy
b3BlcnRpZXMocHJvdG90eXBlT2JqZWN0KTsKICAgICAgICAgaWYgKHR5cGUtPndyYXBwZXJUeXBl
UHJvdG90eXBlID09IFdyYXBwZXJUeXBlRXJyb3JQcm90b3R5cGUpCiAgICAgICAgICAgICBwcm90
b3R5cGVPYmplY3QtPlNldFByb3RvdHlwZShtX2Vycm9yUHJvdG90eXBlLmdldCgpKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRhLmgKaW5kZXgg
MzU1N2FkZTZkNWFmMWZmNDE0ODJkNmU0NmRkYTE1YWNiM2VhOWI1Zi4uOGMzYzQzN2UyOGMwODMx
ZGQwMzE1OTE0NjAyNzUwZmI2NTNmNTIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UGVyQ29udGV4dERhdGEuaApAQCAtNjMsMTggKzYzLDE4IEBAIHB1YmxpYzoKICAgICAv
LyBUbyBjcmVhdGUgSlMgV3JhcHBlciBvYmplY3RzLCB3ZSBjcmVhdGUgYSBjYWNoZSBvZiBhICdi
b2lsZXIgcGxhdGUnCiAgICAgLy8gb2JqZWN0LCBhbmQgdGhlbiBzaW1wbHkgQ2xvbmUgdGhhdCBv
YmplY3QgZWFjaCB0aW1lIHdlIG5lZWQgYSBuZXcgb25lLgogICAgIC8vIFRoaXMgaXMgZmFzdGVy
IHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgZnVsbCBvYmplY3QgY3JlYXRpb24gcHJvY2Vzcy4KLSAg
ICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRlV3JhcHBlckZyb21DYWNoZShXcmFwcGVyVHlw
ZUluZm8qIHR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgdjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUoV3JhcHBlclR5cGVJbmZvKiB0
eXBlKQogICAgIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gYm9pbGVycGxh
dGUgPSBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuZ2V0KHR5cGUpOwotICAgICAgICByZXR1cm4gIWJv
aWxlcnBsYXRlLklzRW1wdHkoKSA/IGJvaWxlcnBsYXRlLT5DbG9uZSgpIDogY3JlYXRlV3JhcHBl
ckZyb21DYWNoZVNsb3dDYXNlKHR5cGUsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gIWJvaWxl
cnBsYXRlLklzRW1wdHkoKSA/IGJvaWxlcnBsYXRlLT5DbG9uZSgpIDogY3JlYXRlV3JhcHBlckZy
b21DYWNoZVNsb3dDYXNlKHR5cGUpOwogICAgIH0KIAotICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rp
b24+IGNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY29uc3Ry
dWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKICAgICB7CiAgICAgICAgIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24gPSBtX2NvbnN0cnVjdG9yTWFwLmdldCh0
eXBlKTsKICAgICAgICAgaWYgKCFmdW5jdGlvbi5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46Ok5ldyhmdW5jdGlvbik7Ci0gICAgICAgIHJldHVy
biBjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZSh0eXBlLCBjb250ZXh0KTsKKyAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKHR5cGUpOwogICAgIH0KIAogICAgIFY4TlBP
YmplY3RNYXAqIHY4TlBPYmplY3RNYXAoKQpAQCAtOTAsOCArOTAsOCBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBkaXNwb3NlKCk7CiAKLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRlV3Jh
cHBlckZyb21DYWNoZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyosIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKLSAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3RvckZvclR5cGVT
bG93Q2FzZShXcmFwcGVyVHlwZUluZm8qLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFw
cGVyVHlwZUluZm8qKTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3RvckZv
clR5cGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8qKTsKIAogICAgIC8vIEZvciBlYWNoIHBvc3Np
YmxlIHR5cGUgb2Ygd3JhcHBlciwgd2Uga2VlcCBhIGJvaWxlcnBsYXRlIG9iamVjdC4KICAgICAv
LyBUaGUgYm9pbGVycGxhdGUgaXMgdXNlZCB0byBjcmVhdGUgYWRkaXRpb25hbCB3cmFwcGVycyBv
ZiB0aGUgc2FtZSB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V3JhcHBlclR5cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlw
ZUluZm8uaAppbmRleCAzYzRiZWZhYThiZmJlOGFhYzcyOWM2OTMwOGU0NGIxNmRiNGI0ZGMxLi5h
NGJkNDk5OGRkZDZlNjE0ZmY3ZjAwNWE1ZTcxMzgwN2M3NDUyNDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaApAQCAtMzcsNyArMzcsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgY2xhc3MgQWN0aXZlRE9NT2JqZWN0OwogICAgIGNs
YXNzIERPTURhdGFTdG9yZTsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiAg
ICAgc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXggPSAwOwogICAgIHN0YXRp
YyBjb25zdCBpbnQgdjhET01XcmFwcGVyT2JqZWN0SW5kZXggPSAxOwpAQCAtNDksNyArNDgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiB2b2lkICgqRGVyZWZPYmplY3RGdW5j
dGlvbikodm9pZCopOwogICAgIHR5cGVkZWYgQWN0aXZlRE9NT2JqZWN0KiAoKlRvQWN0aXZlRE9N
T2JqZWN0RnVuY3Rpb24pKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwogICAgIHR5cGVkZWYgdm9p
ZCAoKkRPTVdyYXBwZXJWaXNpdG9yRnVuY3Rpb24pKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7Ci0gICAgdHlwZWRlZiB2b2lkICgqSW5zdGFsbFBlckNv
bnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzRnVuY3Rpb24pKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB0eXBlZGVmIHZvaWQgKCpJbnN0YWxsUGVy
Q29udGV4dFByb3RvdHlwZVByb3BlcnRpZXNGdW5jdGlvbikodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pik7CiAKICAgICBlbnVtIFdyYXBwZXJUeXBlUHJvdG90eXBlIHsKICAgICAgICAgV3JhcHBlclR5
cGVPYmplY3RQcm90b3R5cGUsCkBAIC05MCwxMCArODksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgICAgIGRlcmVmT2JqZWN0RnVuY3Rpb24ob2JqZWN0KTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3Bl
cnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKKyAgICAgICAgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3Bl
cnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bykKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllc0Z1bmN0aW9uKQotICAg
ICAgICAgICAgICAgIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllc0Z1bmN0aW9u
KHByb3RvLCBjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3Rv
dHlwZVByb3BlcnRpZXNGdW5jdGlvbihwcm90byk7CiAgICAgICAgIH0KIAogICAgICAgICBBY3Rp
dmVET01PYmplY3QqIHRvQWN0aXZlRE9NT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2Jq
ZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169708</attachid>
            <date>2012-10-19 15:23:18 -0700</date>
            <delta_ts>2012-10-19 15:25:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99876-20121019152201.patch</filename>
            <type>text/plain</type>
            <size>16762</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjMGEwNmM3MDMxZWJk
Y2Q3NDRmOTVhN2I5NzVkNzA0Zjc2ZmQ0YS4uMTBlMTJhYWRiNzk5YmI1M2NmMThlMmExODBiYzgw
ODQzMWViZWQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTE5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBWOERPTVdyYXBwZXIg
c2hvdWxkIGF2b2lkIHVzaW5nIGl0cyBkb2N1bWVudCBwYXJhbWV0ZXIgKHNvIHdlIGNhbiByZW1v
dmUgaXQgc29vbikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk5ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugd2FudCB0byByZW1vdmUgdGhlIGRvY3VtZW50IHBhcmFtZXRlciB0byBpbnN0YW50aWF0
ZVY4T2JqZWN0LiBUaGVyZQorICAgICAgICBpc24ndCBhbHdheXMgYSBEb2N1bWVudCBhdmFsaWFi
bGUsIHNvIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwYXNzIGl0CisgICAgICAgIGFzIGEgcGFy
bWF0ZXIuIFdlJ3JlIGp1c3Qgd2FpdGluZyBmb3IgYSBWOCBBUEkgY2hhbmdlIHNvIHdlIGNhbiBz
dGlsbAorICAgICAgICBjb25zdHJ1Y3QgTm9kZSB3cmFwcGVycyBxdWlja2x5LgorCisgICAgICAg
IFRoaXMgcGF0Y2ggcmVtb3ZlcyBhIHVzZSBvZiB0aGUgZG9jdW1lbnQgdGhhdCBzbnVjayBpbi4g
UmF0aGVyIHRoYW4KKyAgICAgICAgcGFzc2luZyB0aGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBh
cm91bmQsIHdlIGdldCBpdCBmcm9tIHRoZQorICAgICAgICBDcmVhdGlvbkNvbnRleHQgb2YgdGhl
IHByb3RvdHlwZSBvYmplY3QgKGFuZCBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgbmVlZAorICAgICAg
ICBpdCkuCisKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2Vu
dGVyLmg6CisgICAgICAgIChOb3RpZmljYXRpb25DZW50ZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgor
ICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckdldHRlcik6CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlVG9WOENvbnZlcnRlcnMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhET01XaW5kb3dTaGVsbDo6aW5zdGFsbERPTVdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6aW5z
dGFudGlhdGVWOE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFBlckNvbnRleHREYXRhOjpjcmVhdGVXcmFwcGVy
RnJvbUNhY2hlU2xvd0Nhc2UpOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJDb250ZXh0RGF0YTo6
Y29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2UpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UGVy
Q29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVyQ29udGV4dERhdGE6OmNyZWF0
ZVdyYXBwZXJGcm9tQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJDb250ZXh0RGF0YTo6
Y29uc3RydWN0b3JGb3JUeXBlKToKKyAgICAgICAgKFY4UGVyQ29udGV4dERhdGEpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRpYWxpemVJZk5lZWRl
ZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV3JhcHBlclR5cGVJbmZvLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldyYXBwZXJUeXBlSW5mbzo6aW5zdGFsbFBlckNv
bnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKToKKwogMjAxMi0xMC0wOSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzMDY5OSk6
IDUgdmFyaW91cyBmYXN0LyB0ZXN0cyBzdGFydGVkIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5j
cHAKaW5kZXggMzI2OTc2ZDcxMjU3NWI5MTdhMTBiYTNmYTFkNjUxZDM5YmQxMzE5My4uMGViYjU0
NzQwMDk1ZTU2YmZmNjcwODJjYWRlZmYxZmYzYjZjNTg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5j
cHAKQEAgLTU1LDExICs1NSw2IEBAIE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uQ2Vu
dGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5vdGlmaWNhCiB7CiB9CiAKLURv
Y3VtZW50KiBOb3RpZmljYXRpb25DZW50ZXI6OmRvY3VtZW50KCkgY29uc3QgewotICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0g
ICAgcmV0dXJuIGNvbnRleHQtPmlzRG9jdW1lbnQoKSA/IHN0YXRpY19jYXN0PERvY3VtZW50Kj4o
Y29udGV4dCkgOiAwOwotfQotCiAjaWYgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogaW50
IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aAppbmRleCBiMTdkZTlkNWQxM2ZiOTJkNWYxOWU2MWVmMjE4NjhlZTg0Mjg4YWExLi4zZjZkNjg5
MDJmMzA1NzVjODA3YmEzYzIxMDIxZDk3MDUzN2E1MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCkBA
IC04NSw3ICs4NSw2IEBAIHB1YmxpYzoKICAgICBpbnQgY2hlY2tQZXJtaXNzaW9uKCk7CiAgICAg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4pOwogI2VuZGlm
Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3Rv
cCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDBhNTUxZGUyMGZhOGUzYzgzODcyM2UyZWRkMTljNmIx
MjNjZTBiNjAuLmIzZjMwYzZhMGRmMTZmNjBmYTNkZTRkYWUxYWU1YzY5ZWYyZDMxM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CkBAIC00ODMsMTEgKzQ4MywxMSBAQCBFTkQKIAogICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHRG
dW5jdGlvbnMpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwotICAgIHN0
YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgc3RhdGljIHZvaWQg
aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4pOwogRU5ECiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxF
TkQpOwotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGll
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgeyB9Cisg
ICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4pIHsgfQogRU5ECiAgICAgfQogCkBAIC04MzQsMTcgKzgzNCw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9y
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyCiAgICAgVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4
dERhdGEgPSBWOFBlckNvbnRleHREYXRhOjpmcm9tKGluZm8uSG9sZGVyKCktPkNyZWF0aW9uQ29u
dGV4dCgpKTsKICAgICBpZiAoIXBlckNvbnRleHREYXRhKQogICAgICAgICByZXR1cm4gdjhVbmRl
ZmluZWQoKTsKLUVORAotCi0gICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJET01XaW5kb3ciKSB7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHBlckNvbnRleHRE
YXRhLT5jb25zdHJ1Y3RvckZvclR5cGUoV3JhcHBlclR5cGVJbmZvOjp1bndyYXAoZGF0YSksIFY4
RE9NV2luZG93Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKS0+ZG9jdW1lbnQoKSk7XG4iKTsKLUVO
RAotICAgIH0gZWxzaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJXb3JrZXJDb250ZXh0IikgewotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiBwZXJDb250ZXh0RGF0YS0+
Y29uc3RydWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbzo6dW53cmFwKGRhdGEpLCBWOFdvcmtl
ckNvbnRleHQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpKTtcbiIpCi0gICAgfSBlbHNlIHsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gcGVyQ29udGV4dERhdGEt
PmNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm86OnVud3JhcChkYXRhKSwgMCk7XG4i
KTsKLSAgICB9Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgIHJldHVy
biBwZXJDb250ZXh0RGF0YS0+Y29uc3RydWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbzo6dW53
cmFwKGRhdGEpKTsKIH0KIEVORAogfQpAQCAtMzA5MiwxNSArMzA4MiwxNiBAQCBFTkQKIAogICAg
IGlmIChAZW5hYmxlZFBlckNvbnRleHRGdW5jdGlvbnMpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsIDw8RU5EKTsKLXZvaWQgJHtjbGFzc05hbWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3Rv
dHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkKK3ZvaWQgJHtjbGFzc05hbWV9OjppbnN0YWxsUGVyQ29udGV4
dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bykKIHsKICAg
ICBVTlVTRURfUEFSQU0ocHJvdG8pOwotICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKIEVORAog
ICAgICAgICAjIFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgZnVuY3Rpb25zIGlmIHdlIGhh
dmUgdGhlbQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIDw8RU5EKTsKICAgICB2ODo6TG9j
YWw8djg6OlNpZ25hdHVyZT4gZGVmYXVsdFNpZ25hdHVyZSA9IHY4OjpTaWduYXR1cmU6Ok5ldyhH
ZXRUZW1wbGF0ZSgpKTsKICAgICBVTlVTRURfUEFSQU0oZGVmYXVsdFNpZ25hdHVyZSk7IC8vIElu
IHNvbWUgY2FzZXMsIGl0IHdpbGwgbm90IGJlIHVzZWQuCisKKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0ID0gdG9TY3JpcHRFeGVjdXRpb25Db250ZXh0KHByb3RvLT5DcmVhdGlv
bkNvbnRleHQoKSk7CiBFTkQKIAogICAgICAgICBmb3JlYWNoIG15ICRydW50aW1lRnVuYyAoQGVu
YWJsZWRQZXJDb250ZXh0RnVuY3Rpb25zKSB7CkBAIC0zNDMzLDEzICszNDI0LDE0IEBAIEVORAog
ICAgIH0KIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Ci0gICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gMDsKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIC8vIFBsZWFzZSBk
b24ndCBhZGQgYW55IG1vcmUgdXNlcyBvZiB0aGlzIHZhcmlhYmxlLgorICAgIERvY3VtZW50KiBk
ZXByZWNhdGVkRG9jdW1lbnQgPSAwOworICAgIFVOVVNFRF9QQVJBTShkZXByZWNhdGVkRG9jdW1l
bnQpOwogRU5ECiAKLSAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpIHx8ICRpbnRlcmZh
Y2VOYW1lIGVxICJOb3RpZmljYXRpb25DZW50ZXIiKSB7CisgICAgaWYgKElzTm9kZVN1YlR5cGUo
JGRhdGFOb2RlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgIGRv
Y3VtZW50ID0gaW1wbC0+ZG9jdW1lbnQoKTsgCisgICAgZGVwcmVjYXRlZERvY3VtZW50ID0gaW1w
bC0+ZG9jdW1lbnQoKTsgCiBFTkQKICAgICB9CiAKQEAgLTM0NTQsNyArMzQ0Niw3IEBAIEVORAog
ICAgICAgICBjb250ZXh0LT5FbnRlcigpOwogICAgIH0KIAotICAgIHdyYXBwZXIgPSBWOERPTVdy
YXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZG9jdW1lbnQsICZpbmZvLCBpbXBsLmdldCgpKTsK
KyAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGRlcHJlY2F0
ZWREb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0KCkpOwogCiAgICAgaWYgKCFjb250ZXh0LklzRW1w
dHkoKSkKICAgICAgICAgY29udGV4dC0+RXhpdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA4YTQxYjU2YTc5OGFjOWM0MTAzZGM3
NzExZjkzZmY4NjgyMWQyMDdmLi5kZTY1NzIxYTMzMzI1ODVkZjEwNmU5ZTZhNGNmNjMwOTY1N2E3
N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1No
ZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxs
LmNwcApAQCAtNDQyLDkgKzQ0Miw4IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6Y3JlYXRlQ29u
dGV4dCgpCiAKIGJvb2wgVjhET01XaW5kb3dTaGVsbDo6aW5zdGFsbERPTVdpbmRvdygpCiB7Ci0g
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBET01XaW5k
b3cqIHdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKTsKLSAgICB2ODo6TG9jYWw8djg6Ok9i
amVjdD4gd2luZG93V3JhcHBlciA9IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKFY4
UGVyQ29udGV4dERhdGE6OmZyb20obV9jb250ZXh0LmdldCgpKS0+Y29uc3RydWN0b3JGb3JUeXBl
KCZWOERPTVdpbmRvdzo6aW5mbywgZG9jdW1lbnQpKTsKKyAgICBET01XaW5kb3cqIHdpbmRvdyA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiB3aW5kb3dXcmFwcGVyID0gVjhPYmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UoVjhQ
ZXJDb250ZXh0RGF0YTo6ZnJvbShtX2NvbnRleHQuZ2V0KCkpLT5jb25zdHJ1Y3RvckZvclR5cGUo
JlY4RE9NV2luZG93OjppbmZvKSk7CiAgICAgaWYgKHdpbmRvd1dyYXBwZXIuSXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuY3BwCmluZGV4IGZiYjlmZDJjOTNlM2IwZDVmOGEwNDBmMzZjZWVkZDIxYzhkYjVl
ODkuLmM3NjhkYTg5MjM1N2I4MTE0NjNjYzNmNDVjYjU2OGFhODUwMTcwNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtMTExLDE4ICsxMTEsMjAg
QEAgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBWOERPTVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmls
dGVyKHY4OjpIYW5kbGU8djg6OlZhbHVlPgogICAgIHJldHVybiBOb2RlRmlsdGVyOjpjcmVhdGUo
VjhOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUoZmlsdGVyKSk7CiB9CiAKLXY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoRG9jdW1lbnQqIGRv
Y3VtZW50LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGltcGwpCit2ODo6TG9jYWw8djg6
Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KERvY3VtZW50KiBkZXBy
ZWNhdGVkRG9jdW1lbnQsIFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgdm9pZCogaW1wbCkKIHsKICAg
ICBWOFBlckNvbnRleHREYXRhKiBwZXJDb250ZXh0RGF0YSA9IDA7CiAKKyAgICAvLyBQbGVhc2Ug
ZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgZGVwcmVjYXRlZERvY3VtZW50LiBXZSB3YW50IHRv
IHJlbW92ZSBpdC4KKwogICAgIC8vIElmIHdlIGhhdmUgYSBwb2ludGVyIHRvIHRoZSBmcmFtZSwg
d2UgY25hIGdldCB0aGUgVjhQZXJDb250ZXh0RGF0YQogICAgIC8vIGRpcmVjdGx5LCB3aGljaCBp
cyBmYXN0ZXIgdGhhbiBnb2luZyB0aHJvdWdoIFY4LgotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1
bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcGVyQ29udGV4dERhdGEgPSBwZXJDb250ZXh0RGF0YUZv
ckN1cnJlbnRXb3JsZChkb2N1bWVudC0+ZnJhbWUoKSk7CisgICAgaWYgKGRlcHJlY2F0ZWREb2N1
bWVudCAmJiBkZXByZWNhdGVkRG9jdW1lbnQtPmZyYW1lKCkpCisgICAgICAgIHBlckNvbnRleHRE
YXRhID0gcGVyQ29udGV4dERhdGFGb3JDdXJyZW50V29ybGQoZGVwcmVjYXRlZERvY3VtZW50LT5m
cmFtZSgpKTsKICAgICBlbHNlCiAgICAgICAgIHBlckNvbnRleHREYXRhID0gVjhQZXJDb250ZXh0
RGF0YTo6ZnJvbSh2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKTsKIAotICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBpbnN0YW5jZSA9IHBlckNvbnRleHREYXRhID8gcGVyQ29udGV4dERhdGEtPmNy
ZWF0ZVdyYXBwZXJGcm9tQ2FjaGUodHlwZSwgZG9jdW1lbnQpIDogVjhPYmplY3RDb25zdHJ1Y3Rv
cjo6bmV3SW5zdGFuY2UodHlwZS0+Z2V0VGVtcGxhdGUoKS0+R2V0RnVuY3Rpb24oKSk7CisgICAg
djg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gcGVyQ29udGV4dERhdGEgPyBwZXJDb250
ZXh0RGF0YS0+Y3JlYXRlV3JhcHBlckZyb21DYWNoZSh0eXBlKSA6IFY4T2JqZWN0Q29uc3RydWN0
b3I6Om5ld0luc3RhbmNlKHR5cGUtPmdldFRlbXBsYXRlKCktPkdldEZ1bmN0aW9uKCkpOwogCiAg
ICAgLy8gQXZvaWQgc2V0dGluZyB0aGUgRE9NIHdyYXBwZXIgZm9yIGZhaWxlZCBhbGxvY2F0aW9u
cy4KICAgICBpZiAoaW5zdGFuY2UuSXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFBlckNvbnRleHREYXRhLmNwcAppbmRleCAxNWVmZTVhOTVkOTZlN2M1MTU3Zjkx
YWRlZDIyZDdiZTY1MDcwYjYwLi45NzY0NjIwZDQzYmVjMGYwMmVhMWZhZjM0NjdjYjk2MjViMWE5
MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRh
LmNwcApAQCAtMTAwLDEzICsxMDAsMTMgQEAgYm9vbCBWOFBlckNvbnRleHREYXRhOjppbml0KCkK
IAogI3VuZGVmIFY4X1NUT1JFX1BSSU1PUkRJQUwKIAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4
UGVyQ29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHlw
ZUluZm8qIHR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit2ODo6TG9jYWw8
djg6Ok9iamVjdD4gVjhQZXJDb250ZXh0RGF0YTo6Y3JlYXRlV3JhcHBlckZyb21DYWNoZVNsb3dD
YXNlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JQcm90b3R5
cGUuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fb2JqZWN0UHJvdG90eXBlLmlzRW1wdHkoKSk7
CiAKICAgICB2ODo6Q29udGV4dDo6U2NvcGUgc2NvcGUobV9jb250ZXh0KTsKLSAgICB2ODo6TG9j
YWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IGNvbnN0cnVjdG9yRm9yVHlwZSh0eXBlLCBjb250
ZXh0KTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiA9IGNvbnN0cnVjdG9y
Rm9yVHlwZSh0eXBlKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFuY2UgPSBWOE9i
amVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZShmdW5jdGlvbik7CiAgICAgaWYgKCFpbnN0YW5j
ZS5Jc0VtcHR5KCkpIHsKICAgICAgICAgbV93cmFwcGVyQm9pbGVycGxhdGVzLnNldCh0eXBlLCB2
ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGluc3RhbmNlKSk7CkBAIC0xMTUsNyArMTE1
LDcgQEAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4UGVyQ29udGV4dERhdGE6OmNyZWF0ZVdyYXBw
ZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHkKICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpP
YmplY3Q+KCk7CiB9CiAKLXY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4UGVyQ29udGV4dERhdGE6
OmNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3Y4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4UGVy
Q29udGV4dERhdGE6OmNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyog
dHlwZSkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3JQcm90b3R5cGUuaXNFbXB0eSgpKTsKICAgICBB
U1NFUlQoIW1fb2JqZWN0UHJvdG90eXBlLmlzRW1wdHkoKSk7CkBAIC0xMzIsNyArMTMyLDcgQEAg
djg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhQZXJDb250ZXh0RGF0YTo6Y29uc3RydWN0b3JGb3JU
eXBlU2xvd0Nhc2UoV3JhcHBlclR5cGUKICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBwcm90b3R5
cGVWYWx1ZSA9IGZ1bmN0aW9uLT5HZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJwcm90b3R5cGUi
KSk7CiAgICAgaWYgKCFwcm90b3R5cGVWYWx1ZS5Jc0VtcHR5KCkgJiYgcHJvdG90eXBlVmFsdWUt
PklzT2JqZWN0KCkpIHsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IHByb3RvdHlwZU9i
amVjdCA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChwcm90b3R5cGVWYWx1ZSk7Ci0gICAg
ICAgIHR5cGUtPmluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyhwcm90b3R5cGVP
YmplY3QsIGNvbnRleHQpOworICAgICAgICB0eXBlLT5pbnN0YWxsUGVyQ29udGV4dFByb3RvdHlw
ZVByb3BlcnRpZXMocHJvdG90eXBlT2JqZWN0KTsKICAgICAgICAgaWYgKHR5cGUtPndyYXBwZXJU
eXBlUHJvdG90eXBlID09IFdyYXBwZXJUeXBlRXJyb3JQcm90b3R5cGUpCiAgICAgICAgICAgICBw
cm90b3R5cGVPYmplY3QtPlNldFByb3RvdHlwZShtX2Vycm9yUHJvdG90eXBlLmdldCgpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHRE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlckNvbnRleHREYXRhLmgKaW5k
ZXggMzU1N2FkZTZkNWFmMWZmNDE0ODJkNmU0NmRkYTE1YWNiM2VhOWI1Zi4uOGMzYzQzN2UyOGMw
ODMxZGQwMzE1OTE0NjAyNzUwZmI2NTNmNTIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuaApAQCAtNjMsMTggKzYzLDE4IEBAIHB1YmxpYzoKICAg
ICAvLyBUbyBjcmVhdGUgSlMgV3JhcHBlciBvYmplY3RzLCB3ZSBjcmVhdGUgYSBjYWNoZSBvZiBh
ICdib2lsZXIgcGxhdGUnCiAgICAgLy8gb2JqZWN0LCBhbmQgdGhlbiBzaW1wbHkgQ2xvbmUgdGhh
dCBvYmplY3QgZWFjaCB0aW1lIHdlIG5lZWQgYSBuZXcgb25lLgogICAgIC8vIFRoaXMgaXMgZmFz
dGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgZnVsbCBvYmplY3QgY3JlYXRpb24gcHJvY2Vzcy4K
LSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRlV3JhcHBlckZyb21DYWNoZShXcmFwcGVy
VHlwZUluZm8qIHR5cGUsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgdjg6
OkxvY2FsPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUoV3JhcHBlclR5cGVJbmZv
KiB0eXBlKQogICAgIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gYm9pbGVy
cGxhdGUgPSBtX3dyYXBwZXJCb2lsZXJwbGF0ZXMuZ2V0KHR5cGUpOwotICAgICAgICByZXR1cm4g
IWJvaWxlcnBsYXRlLklzRW1wdHkoKSA/IGJvaWxlcnBsYXRlLT5DbG9uZSgpIDogY3JlYXRlV3Jh
cHBlckZyb21DYWNoZVNsb3dDYXNlKHR5cGUsIGNvbnRleHQpOworICAgICAgICByZXR1cm4gIWJv
aWxlcnBsYXRlLklzRW1wdHkoKSA/IGJvaWxlcnBsYXRlLT5DbG9uZSgpIDogY3JlYXRlV3JhcHBl
ckZyb21DYWNoZVNsb3dDYXNlKHR5cGUpOwogICAgIH0KIAotICAgIHY4OjpMb2NhbDx2ODo6RnVu
Y3Rpb24+IGNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY29u
c3RydWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbyogdHlwZSkKICAgICB7CiAgICAgICAgIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24gPSBtX2NvbnN0cnVjdG9yTWFwLmdl
dCh0eXBlKTsKICAgICAgICAgaWYgKCFmdW5jdGlvbi5Jc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj46Ok5ldyhmdW5jdGlvbik7Ci0gICAgICAgIHJl
dHVybiBjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZSh0eXBlLCBjb250ZXh0KTsKKyAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKHR5cGUpOwogICAgIH0KIAogICAgIFY4
TlBPYmplY3RNYXAqIHY4TlBPYmplY3RNYXAoKQpAQCAtOTAsOCArOTAsOCBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBkaXNwb3NlKCk7CiAKLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gY3JlYXRl
V3JhcHBlckZyb21DYWNoZVNsb3dDYXNlKFdyYXBwZXJUeXBlSW5mbyosIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKLSAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3RvckZvclR5
cGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8qLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Cisg
ICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShX
cmFwcGVyVHlwZUluZm8qKTsKKyAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBjb25zdHJ1Y3Rv
ckZvclR5cGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8qKTsKIAogICAgIC8vIEZvciBlYWNoIHBv
c3NpYmxlIHR5cGUgb2Ygd3JhcHBlciwgd2Uga2VlcCBhIGJvaWxlcnBsYXRlIG9iamVjdC4KICAg
ICAvLyBUaGUgYm9pbGVycGxhdGUgaXMgdXNlZCB0byBjcmVhdGUgYWRkaXRpb25hbCB3cmFwcGVy
cyBvZiB0aGUgc2FtZSB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKaW5kZXggYjJlMDY1NjA1NDU1
YjIwYzQ5NzhkMmIxYmU2NThlZjQ2NjViZmFjNS4uZWUyN2ViZjI3YTA2MGRkMWYzMzMwNWMzNjFl
NzVlMWNiNzg4OGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC0xNzUsNyArMTc1LDcgQEAg
Ym9vbCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRpYWxpemVJZk5lZWRlZCgpCiAg
ICAgaWYgKCFtX3dvcmtlckNvbnRleHQtPmlzRGVkaWNhdGVkV29ya2VyQ29udGV4dCgpKQogICAg
ICAgICBjb250ZXh0VHlwZSA9ICZWOFNoYXJlZFdvcmtlckNvbnRleHQ6OmluZm87CiAjZW5kaWYK
LSAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gd29ya2VyQ29udGV4dENvbnN0cnVjdG9yID0g
bV9wZXJDb250ZXh0RGF0YS0+Y29uc3RydWN0b3JGb3JUeXBlKGNvbnRleHRUeXBlLCBtX3dvcmtl
ckNvbnRleHQpOworICAgIHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiB3b3JrZXJDb250ZXh0Q29u
c3RydWN0b3IgPSBtX3BlckNvbnRleHREYXRhLT5jb25zdHJ1Y3RvckZvclR5cGUoY29udGV4dFR5
cGUpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBqc1dvcmtlckNvbnRleHQgPSBWOE9iamVj
dENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZSh3b3JrZXJDb250ZXh0Q29uc3RydWN0b3IpOwogICAg
IC8vIEJhaWwgb3V0IGlmIGFsbG9jYXRpb24gZmFpbGVkLgogICAgIGlmIChqc1dvcmtlckNvbnRl
eHQuSXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9X
cmFwcGVyVHlwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBl
SW5mby5oCmluZGV4IDNjNGJlZmFhOGJmYmU4YWFjNzI5YzY5MzA4ZTQ0YjE2ZGI0YjRkYzEuLmE0
YmQ0OTk4ZGRkNmU2MTRmZjdmMDA1YTVlNzEzODA3Yzc0NTI0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oCkBAIC0zNyw3ICszNyw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAKICAgICBjbGFzcyBBY3RpdmVET01PYmplY3Q7CiAgICAgY2xh
c3MgRE9NRGF0YVN0b3JlOwotICAgIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKICAg
ICBzdGF0aWMgY29uc3QgaW50IHY4RE9NV3JhcHBlclR5cGVJbmRleCA9IDA7CiAgICAgc3RhdGlj
IGNvbnN0IGludCB2OERPTVdyYXBwZXJPYmplY3RJbmRleCA9IDE7CkBAIC00OSw3ICs0OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBlZGVmIHZvaWQgKCpEZXJlZk9iamVjdEZ1bmN0
aW9uKSh2b2lkKik7CiAgICAgdHlwZWRlZiBBY3RpdmVET01PYmplY3QqICgqVG9BY3RpdmVET01P
YmplY3RGdW5jdGlvbikodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiAgICAgdHlwZWRlZiB2b2lk
ICgqRE9NV3JhcHBlclZpc2l0b3JGdW5jdGlvbikoRE9NRGF0YVN0b3JlKiwgdm9pZCosIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+KTsKLSAgICB0eXBlZGVmIHZvaWQgKCpJbnN0YWxsUGVyQ29u
dGV4dFByb3RvdHlwZVByb3BlcnRpZXNGdW5jdGlvbikodjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHR5cGVkZWYgdm9pZCAoKkluc3RhbGxQZXJD
b250ZXh0UHJvdG90eXBlUHJvcGVydGllc0Z1bmN0aW9uKSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
KTsKIAogICAgIGVudW0gV3JhcHBlclR5cGVQcm90b3R5cGUgewogICAgICAgICBXcmFwcGVyVHlw
ZU9iamVjdFByb3RvdHlwZSwKQEAgLTkwLDEwICs4OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICAgICAgZGVyZWZPYmplY3RGdW5jdGlvbihvYmplY3QpOwogICAgICAgICB9
CiAgICAgICAgIAotICAgICAgICB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVy
dGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQorICAgICAgICB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVy
dGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHByb3RvKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzRnVuY3Rpb24pCi0gICAg
ICAgICAgICAgICAgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzRnVuY3Rpb24o
cHJvdG8sIGNvbnRleHQpOworICAgICAgICAgICAgICAgIGluc3RhbGxQZXJDb250ZXh0UHJvdG90
eXBlUHJvcGVydGllc0Z1bmN0aW9uKHByb3RvKTsKICAgICAgICAgfQogCiAgICAgICAgIEFjdGl2
ZURPTU9iamVjdCogdG9BY3RpdmVET01PYmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmpl
Y3QpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169709</attachid>
            <date>2012-10-19 15:25:06 -0700</date>
            <delta_ts>2012-10-19 19:34:11 -0700</delta_ts>
            <desc>typos fixed</desc>
            <filename>bug-99876-20121019152349.patch</filename>
            <type>text/plain</type>
            <size>16763</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhjMGEwNmM3MDMxZWJk
Y2Q3NDRmOTVhN2I5NzVkNzA0Zjc2ZmQ0YS4uZTdmYmE5OWU5MjEzMGM0NjRjYzc4NDRlMmVkMjI0
MGU5NDhlMTk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTE5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1Y4XSBWOERPTVdyYXBwZXIg
c2hvdWxkIGF2b2lkIHVzaW5nIGl0cyBkb2N1bWVudCBwYXJhbWV0ZXIgKHNvIHdlIGNhbiByZW1v
dmUgaXQgc29vbikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk5ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2Ugd2FudCB0byByZW1vdmUgdGhlIGRvY3VtZW50IHBhcmFtZXRlciB0byBpbnN0YW50aWF0
ZVY4T2JqZWN0LiBUaGVyZQorICAgICAgICBpc24ndCBhbHdheXMgYSBEb2N1bWVudCBhdmFpbGFi
bGUsIHNvIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwYXNzIGl0CisgICAgICAgIGFzIGEgcGFy
YW1ldGVyLiBXZSdyZSBqdXN0IHdhaXRpbmcgZm9yIGEgVjggQVBJIGNoYW5nZSBzbyB3ZSBjYW4g
c3RpbGwKKyAgICAgICAgY29uc3RydWN0IE5vZGUgd3JhcHBlcnMgcXVpY2tseS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB1c2Ugb2YgdGhlIGRvY3VtZW50IHRoYXQgc251Y2sgaW4u
IFJhdGhlciB0aGFuCisgICAgICAgIHBhc3NpbmcgdGhlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
YXJvdW5kLCB3ZSBnZXQgaXQgZnJvbSB0aGUKKyAgICAgICAgQ3JlYXRpb25Db250ZXh0IG9mIHRo
ZSBwcm90b3R5cGUgb2JqZWN0IChhbmQgb25seSB3aGVuIHdlIGFjdHVhbGx5IG5lZWQKKyAgICAg
ICAgaXQpLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oOgorICAgICAgICAoTm90aWZpY2F0aW9uQ2VudGVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JHZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4RE9NV2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4RE9NV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omlu
c3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJDb250ZXh0RGF0YTo6Y3JlYXRlV3JhcHBl
ckZyb21DYWNoZVNsb3dDYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVyQ29udGV4dERhdGE6
OmNvbnN0cnVjdG9yRm9yVHlwZVNsb3dDYXNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFBl
ckNvbnRleHREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpWOFBlckNvbnRleHREYXRhOjpjcmVh
dGVXcmFwcGVyRnJvbUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UGVyQ29udGV4dERhdGE6
OmNvbnN0cnVjdG9yRm9yVHlwZSk6CisgICAgICAgIChWOFBlckNvbnRleHREYXRhKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0aWFsaXplSWZOZWVk
ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dyYXBwZXJUeXBlSW5mby5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXcmFwcGVyVHlwZUluZm86Omluc3RhbGxQZXJD
b250ZXh0UHJvdG90eXBlUHJvcGVydGllcyk6CisKIDIwMTItMTAtMDkgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMzA2OTkp
OiA1IHZhcmlvdXMgZmFzdC8gdGVzdHMgc3RhcnRlZCBmYWlsaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwCmluZGV4IDMyNjk3NmQ3MTI1NzViOTE3YTEwYmEzZmExZDY1MWQzOWJkMTMxOTMuLjBlYmI1
NDc0MDA5NWU1NmJmZjY3MDgyY2FkZWZmMWZmM2I2YzU4NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwCkBAIC01NSwxMSArNTUsNiBAQCBOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvbkNl
bnRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBOb3RpZmljYQogewogfQogCi1E
b2N1bWVudCogTm90aWZpY2F0aW9uQ2VudGVyOjpkb2N1bWVudCgpIGNvbnN0IHsKLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwot
ICAgIHJldHVybiBjb250ZXh0LT5pc0RvY3VtZW50KCkgPyBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KGNvbnRleHQpIDogMDsKLX0KLQogI2lmIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKIGlu
dCBOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbigpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmgKaW5kZXggYjE3ZGU5ZDVkMTNmYjkyZDVmMTllNjFlZjIxODY4ZWU4NDI4OGFhMS4uM2Y2ZDY4
OTAyZjMwNTc1YzgwN2JhM2MyMTAyMWQ5NzA1MzdhNTFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaApA
QCAtODUsNyArODUsNiBAQCBwdWJsaWM6CiAgICAgaW50IGNoZWNrUGVybWlzc2lvbigpOwogICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KTsKICNlbmRp
ZgotICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHN0
b3AoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAwYTU1MWRlMjBmYThlM2M4Mzg3MjNlMmVkZDE5YzZi
MTIzY2UwYjYwLi5iM2YzMGM2YTBkZjE2ZjYwZmEzZGU0ZGFlMWFlNWM2OWVmMmQzMTNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQpAQCAtNDgzLDExICs0ODMsMTEgQEAgRU5ECiAKICAgICBpZiAoQGVuYWJsZWRQZXJDb250ZXh0
RnVuY3Rpb25zKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKLSAgICBz
dGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHN0YXRpYyB2b2lk
IGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+KTsKIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8
RU5EKTsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRp
ZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQor
ICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0KIEVORAogICAgIH0KIApAQCAtODM0LDE3ICs4MzQsNyBA
QCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3Rv
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cgogICAgIFY4UGVyQ29udGV4dERhdGEqIHBlckNvbnRl
eHREYXRhID0gVjhQZXJDb250ZXh0RGF0YTo6ZnJvbShpbmZvLkhvbGRlcigpLT5DcmVhdGlvbkNv
bnRleHQoKSk7CiAgICAgaWYgKCFwZXJDb250ZXh0RGF0YSkKICAgICAgICAgcmV0dXJuIHY4VW5k
ZWZpbmVkKCk7Ci1FTkQKLQotICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRE9NV2luZG93Iikg
ewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiBwZXJDb250ZXh0
RGF0YS0+Y29uc3RydWN0b3JGb3JUeXBlKFdyYXBwZXJUeXBlSW5mbzo6dW53cmFwKGRhdGEpLCBW
OERPTVdpbmRvdzo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSktPmRvY3VtZW50KCkpO1xuIik7Ci1F
TkQKLSAgICB9IGVsc2lmICgkaW1wbENsYXNzTmFtZSBlcSAiV29ya2VyQ29udGV4dCIpIHsKLSAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gcGVyQ29udGV4dERhdGEt
PmNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm86OnVud3JhcChkYXRhKSwgVjhXb3Jr
ZXJDb250ZXh0Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKSk7XG4iKQotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHBlckNvbnRleHREYXRh
LT5jb25zdHJ1Y3RvckZvclR5cGUoV3JhcHBlclR5cGVJbmZvOjp1bndyYXAoZGF0YSksIDApO1xu
Iik7Ci0gICAgfQotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICByZXR1
cm4gcGVyQ29udGV4dERhdGEtPmNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm86OnVu
d3JhcChkYXRhKSk7CiB9CiBFTkQKIH0KQEAgLTMwOTIsMTUgKzMwODIsMTYgQEAgRU5ECiAKICAg
ICBpZiAoQGVuYWJsZWRQZXJDb250ZXh0RnVuY3Rpb25zKSB7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCA8PEVORCk7Ci12b2lkICR7Y2xhc3NOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90
b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG8sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCit2b2lkICR7Y2xhc3NOYW1lfTo6aW5zdGFsbFBlckNvbnRl
eHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdG8pCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHByb3RvKTsKLSAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiBFTkQK
ICAgICAgICAgIyBTZXR1cCB0aGUgZW5hYmxlLWJ5LXNldHRpbmdzIGZ1bmN0aW9ucyBpZiB3ZSBo
YXZlIHRoZW0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7CiAgICAgdjg6Okxv
Y2FsPHY4OjpTaWduYXR1cmU+IGRlZmF1bHRTaWduYXR1cmUgPSB2ODo6U2lnbmF0dXJlOjpOZXco
R2V0VGVtcGxhdGUoKSk7CiAgICAgVU5VU0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJ
biBzb21lIGNhc2VzLCBpdCB3aWxsIG5vdCBiZSB1c2VkLgorCisgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCA9IHRvU2NyaXB0RXhlY3V0aW9uQ29udGV4dChwcm90by0+Q3JlYXRp
b25Db250ZXh0KCkpOwogRU5ECiAKICAgICAgICAgZm9yZWFjaCBteSAkcnVudGltZUZ1bmMgKEBl
bmFibGVkUGVyQ29udGV4dEZ1bmN0aW9ucykgewpAQCAtMzQzMywxMyArMzQyNCwxNCBAQCBFTkQK
ICAgICB9CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwotICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2Ug
ZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgdGhpcyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCog
ZGVwcmVjYXRlZERvY3VtZW50ID0gMDsKKyAgICBVTlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3Vt
ZW50KTsKIEVORAogCi0gICAgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSB8fCAkaW50ZXJm
YWNlTmFtZSBlcSAiTm90aWZpY2F0aW9uQ2VudGVyIikgeworICAgIGlmIChJc05vZGVTdWJUeXBl
KCRkYXRhTm9kZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKLSAgICBk
b2N1bWVudCA9IGltcGwtPmRvY3VtZW50KCk7IAorICAgIGRlcHJlY2F0ZWREb2N1bWVudCA9IGlt
cGwtPmRvY3VtZW50KCk7IAogRU5ECiAgICAgfQogCkBAIC0zNDU0LDcgKzM0NDYsNyBAQCBFTkQK
ICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKICAgICB9CiAKLSAgICB3cmFwcGVyID0gVjhET01X
cmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGRvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7
CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkZXByZWNh
dGVkRG9jdW1lbnQsICZpbmZvLCBpbXBsLmdldCgpKTsKIAogICAgIGlmICghY29udGV4dC5Jc0Vt
cHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggOGE0MWI1NmE3OThhYzljNDEwM2Rj
NzcxMWY5M2ZmODY4MjFkMjA3Zi4uZGU2NTcyMWEzMzMyNTg1ZGYxMDZlOWU2YTRjZjYzMDk2NTdh
NzdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVs
bC5jcHAKQEAgLTQ0Miw5ICs0NDIsOCBAQCB2b2lkIFY4RE9NV2luZG93U2hlbGw6OmNyZWF0ZUNv
bnRleHQoKQogCiBib29sIFY4RE9NV2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3coKQogewot
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgRE9NV2lu
ZG93KiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCk7Ci0gICAgdjg6OkxvY2FsPHY4OjpP
YmplY3Q+IHdpbmRvd1dyYXBwZXIgPSBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZShW
OFBlckNvbnRleHREYXRhOjpmcm9tKG1fY29udGV4dC5nZXQoKSktPmNvbnN0cnVjdG9yRm9yVHlw
ZSgmVjhET01XaW5kb3c6OmluZm8sIGRvY3VtZW50KSk7CisgICAgRE9NV2luZG93KiB3aW5kb3cg
PSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsKKyAgICB2ODo6TG9jYWw8djg6Ok9i
amVjdD4gd2luZG93V3JhcHBlciA9IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKFY4
UGVyQ29udGV4dERhdGE6OmZyb20obV9jb250ZXh0LmdldCgpKS0+Y29uc3RydWN0b3JGb3JUeXBl
KCZWOERPTVdpbmRvdzo6aW5mbykpOwogICAgIGlmICh3aW5kb3dXcmFwcGVyLklzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmNwcAppbmRleCBmYmI5ZmQyYzkzZTNiMGQ1ZjhhMDQwZjM2Y2VlZGQyMWM4ZGI1
ZTg5Li5jNzY4ZGE4OTIzNTdiODExNDYzY2MzZjQ1Y2I1NjhhYTg1MDE3MDYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTExMSwxOCArMTExLDIw
IEBAIFBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gVjhET01XcmFwcGVyOjp3cmFwTmF0aXZlTm9kZUZp
bHRlcih2ODo6SGFuZGxlPHY4OjpWYWx1ZT4KICAgICByZXR1cm4gTm9kZUZpbHRlcjo6Y3JlYXRl
KFY4Tm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKGZpbHRlcikpOwogfQogCi12ODo6TG9jYWw8
djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KERvY3VtZW50KiBk
b2N1bWVudCwgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2b2lkKiBpbXBsKQordjg6OkxvY2FsPHY4
OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChEb2N1bWVudCogZGVw
cmVjYXRlZERvY3VtZW50LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGltcGwpCiB7CiAg
ICAgVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERhdGEgPSAwOwogCisgICAgLy8gUGxlYXNl
IGRvbid0IGFkZCBhbnkgbW9yZSB1c2VzIG9mIGRlcHJlY2F0ZWREb2N1bWVudC4gV2Ugd2FudCB0
byByZW1vdmUgaXQuCisKICAgICAvLyBJZiB3ZSBoYXZlIGEgcG9pbnRlciB0byB0aGUgZnJhbWUs
IHdlIGNuYSBnZXQgdGhlIFY4UGVyQ29udGV4dERhdGEKICAgICAvLyBkaXJlY3RseSwgd2hpY2gg
aXMgZmFzdGVyIHRoYW4gZ29pbmcgdGhyb3VnaCBWOC4KLSAgICBpZiAoZG9jdW1lbnQgJiYgZG9j
dW1lbnQtPmZyYW1lKCkpCi0gICAgICAgIHBlckNvbnRleHREYXRhID0gcGVyQ29udGV4dERhdGFG
b3JDdXJyZW50V29ybGQoZG9jdW1lbnQtPmZyYW1lKCkpOworICAgIGlmIChkZXByZWNhdGVkRG9j
dW1lbnQgJiYgZGVwcmVjYXRlZERvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICBwZXJDb250ZXh0
RGF0YSA9IHBlckNvbnRleHREYXRhRm9yQ3VycmVudFdvcmxkKGRlcHJlY2F0ZWREb2N1bWVudC0+
ZnJhbWUoKSk7CiAgICAgZWxzZQogICAgICAgICBwZXJDb250ZXh0RGF0YSA9IFY4UGVyQ29udGV4
dERhdGE6OmZyb20odjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSk7CiAKLSAgICB2ODo6TG9jYWw8
djg6Ok9iamVjdD4gaW5zdGFuY2UgPSBwZXJDb250ZXh0RGF0YSA/IHBlckNvbnRleHREYXRhLT5j
cmVhdGVXcmFwcGVyRnJvbUNhY2hlKHR5cGUsIGRvY3VtZW50KSA6IFY4T2JqZWN0Q29uc3RydWN0
b3I6Om5ld0luc3RhbmNlKHR5cGUtPmdldFRlbXBsYXRlKCktPkdldEZ1bmN0aW9uKCkpOworICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5jZSA9IHBlckNvbnRleHREYXRhID8gcGVyQ29u
dGV4dERhdGEtPmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUodHlwZSkgOiBWOE9iamVjdENvbnN0cnVj
dG9yOjpuZXdJbnN0YW5jZSh0eXBlLT5nZXRUZW1wbGF0ZSgpLT5HZXRGdW5jdGlvbigpKTsKIAog
ICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFwcGVyIGZvciBmYWlsZWQgYWxsb2NhdGlv
bnMuCiAgICAgaWYgKGluc3RhbmNlLklzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5jcHAKaW5kZXggMTVlZmU1YTk1ZDk2ZTdjNTE1N2Y5
MWFkZWQyMmQ3YmU2NTA3MGI2MC4uOTc2NDYyMGQ0M2JlYzBmMDJlYTFmYWYzNDY3Y2I5NjI1YjFh
OTIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0
YS5jcHAKQEAgLTEwMCwxMyArMTAwLDEzIEBAIGJvb2wgVjhQZXJDb250ZXh0RGF0YTo6aW5pdCgp
CiAKICN1bmRlZiBWOF9TVE9SRV9QUklNT1JESUFMCiAKLXY4OjpMb2NhbDx2ODo6T2JqZWN0PiBW
OFBlckNvbnRleHREYXRhOjpjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2UoV3JhcHBlclR5
cGVJbmZvKiB0eXBlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQordjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IFY4UGVyQ29udGV4dERhdGE6OmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGVTbG93
Q2FzZShXcmFwcGVyVHlwZUluZm8qIHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yUHJvdG90
eXBlLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX29iamVjdFByb3RvdHlwZS5pc0VtcHR5KCkp
OwogCiAgICAgdjg6OkNvbnRleHQ6OlNjb3BlIHNjb3BlKG1fY29udGV4dCk7Ci0gICAgdjg6Okxv
Y2FsPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24gPSBjb25zdHJ1Y3RvckZvclR5cGUodHlwZSwgY29u
dGV4dCk7CisgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gZnVuY3Rpb24gPSBjb25zdHJ1Y3Rv
ckZvclR5cGUodHlwZSk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gVjhP
YmplY3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2UoZnVuY3Rpb24pOwogICAgIGlmICghaW5zdGFu
Y2UuSXNFbXB0eSgpKSB7CiAgICAgICAgIG1fd3JhcHBlckJvaWxlcnBsYXRlcy5zZXQodHlwZSwg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhpbnN0YW5jZSkpOwpAQCAtMTE1LDcgKzEx
NSw3IEBAIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOFBlckNvbnRleHREYXRhOjpjcmVhdGVXcmFw
cGVyRnJvbUNhY2hlU2xvd0Nhc2UoV3JhcHBlclR5CiAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PigpOwogfQogCi12ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOFBlckNvbnRleHREYXRh
Ojpjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOFBl
ckNvbnRleHREYXRhOjpjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8q
IHR5cGUpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yUHJvdG90eXBlLmlzRW1wdHkoKSk7CiAgICAg
QVNTRVJUKCFtX29iamVjdFByb3RvdHlwZS5pc0VtcHR5KCkpOwpAQCAtMTMyLDcgKzEzMiw3IEBA
IHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IFY4UGVyQ29udGV4dERhdGE6OmNvbnN0cnVjdG9yRm9y
VHlwZVNsb3dDYXNlKFdyYXBwZXJUeXBlCiAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gcHJvdG90
eXBlVmFsdWUgPSBmdW5jdGlvbi0+R2V0KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgicHJvdG90eXBl
IikpOwogICAgIGlmICghcHJvdG90eXBlVmFsdWUuSXNFbXB0eSgpICYmIHByb3RvdHlwZVZhbHVl
LT5Jc09iamVjdCgpKSB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBwcm90b3R5cGVP
YmplY3QgPSB2ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QocHJvdG90eXBlVmFsdWUpOwotICAg
ICAgICB0eXBlLT5pbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXMocHJvdG90eXBl
T2JqZWN0LCBjb250ZXh0KTsKKyAgICAgICAgdHlwZS0+aW5zdGFsbFBlckNvbnRleHRQcm90b3R5
cGVQcm9wZXJ0aWVzKHByb3RvdHlwZU9iamVjdCk7CiAgICAgICAgIGlmICh0eXBlLT53cmFwcGVy
VHlwZVByb3RvdHlwZSA9PSBXcmFwcGVyVHlwZUVycm9yUHJvdG90eXBlKQogICAgICAgICAgICAg
cHJvdG90eXBlT2JqZWN0LT5TZXRQcm90b3R5cGUobV9lcnJvclByb3RvdHlwZS5nZXQoKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJDb250ZXh0RGF0YS5oCmlu
ZGV4IDM1NTdhZGU2ZDVhZjFmZjQxNDgyZDZlNDZkZGExNWFjYjNlYTliNWYuLjhjM2M0MzdlMjhj
MDgzMWRkMDMxNTkxNDYwMjc1MGZiNjUzZjUyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UGVyQ29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFBlckNvbnRleHREYXRhLmgKQEAgLTYzLDE4ICs2MywxOCBAQCBwdWJsaWM6CiAg
ICAgLy8gVG8gY3JlYXRlIEpTIFdyYXBwZXIgb2JqZWN0cywgd2UgY3JlYXRlIGEgY2FjaGUgb2Yg
YSAnYm9pbGVyIHBsYXRlJwogICAgIC8vIG9iamVjdCwgYW5kIHRoZW4gc2ltcGx5IENsb25lIHRo
YXQgb2JqZWN0IGVhY2ggdGltZSB3ZSBuZWVkIGEgbmV3IG9uZS4KICAgICAvLyBUaGlzIGlzIGZh
c3RlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIGZ1bGwgb2JqZWN0IGNyZWF0aW9uIHByb2Nlc3Mu
Ci0gICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUoV3JhcHBl
clR5cGVJbmZvKiB0eXBlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHY4
OjpMb2NhbDx2ODo6T2JqZWN0PiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlKFdyYXBwZXJUeXBlSW5m
byogdHlwZSkKICAgICB7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGJvaWxl
cnBsYXRlID0gbV93cmFwcGVyQm9pbGVycGxhdGVzLmdldCh0eXBlKTsKLSAgICAgICAgcmV0dXJu
ICFib2lsZXJwbGF0ZS5Jc0VtcHR5KCkgPyBib2lsZXJwbGF0ZS0+Q2xvbmUoKSA6IGNyZWF0ZVdy
YXBwZXJGcm9tQ2FjaGVTbG93Q2FzZSh0eXBlLCBjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuICFi
b2lsZXJwbGF0ZS5Jc0VtcHR5KCkgPyBib2lsZXJwbGF0ZS0+Q2xvbmUoKSA6IGNyZWF0ZVdyYXBw
ZXJGcm9tQ2FjaGVTbG93Q2FzZSh0eXBlKTsKICAgICB9CiAKLSAgICB2ODo6TG9jYWw8djg6OkZ1
bmN0aW9uPiBjb25zdHJ1Y3RvckZvclR5cGUoV3JhcHBlclR5cGVJbmZvKiB0eXBlLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IGNv
bnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm8qIHR5cGUpCiAgICAgewogICAgICAgICB2
ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uID0gbV9jb25zdHJ1Y3Rvck1hcC5n
ZXQodHlwZSk7CiAgICAgICAgIGlmICghZnVuY3Rpb24uSXNFbXB0eSgpKQogICAgICAgICAgICAg
cmV0dXJuIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+OjpOZXcoZnVuY3Rpb24pOwotICAgICAgICBy
ZXR1cm4gY29uc3RydWN0b3JGb3JUeXBlU2xvd0Nhc2UodHlwZSwgY29udGV4dCk7CisgICAgICAg
IHJldHVybiBjb25zdHJ1Y3RvckZvclR5cGVTbG93Q2FzZSh0eXBlKTsKICAgICB9CiAKICAgICBW
OE5QT2JqZWN0TWFwKiB2OE5QT2JqZWN0TWFwKCkKQEAgLTkwLDggKzkwLDggQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgZGlzcG9zZSgpOwogCi0gICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGNyZWF0
ZVdyYXBwZXJGcm9tQ2FjaGVTbG93Q2FzZShXcmFwcGVyVHlwZUluZm8qLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7Ci0gICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY29uc3RydWN0b3JGb3JU
eXBlU2xvd0Nhc2UoV3JhcHBlclR5cGVJbmZvKiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwor
ICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBjcmVhdGVXcmFwcGVyRnJvbUNhY2hlU2xvd0Nhc2Uo
V3JhcHBlclR5cGVJbmZvKik7CisgICAgdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gY29uc3RydWN0
b3JGb3JUeXBlU2xvd0Nhc2UoV3JhcHBlclR5cGVJbmZvKik7CiAKICAgICAvLyBGb3IgZWFjaCBw
b3NzaWJsZSB0eXBlIG9mIHdyYXBwZXIsIHdlIGtlZXAgYSBib2lsZXJwbGF0ZSBvYmplY3QuCiAg
ICAgLy8gVGhlIGJvaWxlcnBsYXRlIGlzIHVzZWQgdG8gY3JlYXRlIGFkZGl0aW9uYWwgd3JhcHBl
cnMgb2YgdGhlIHNhbWUgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IGIyZTA2NTYwNTQ1
NWIyMGM0OTc4ZDJiMWJlNjU4ZWY0NjY1YmZhYzUuLmVlMjdlYmYyN2EwNjBkZDFmMzMzMDVjMzYx
ZTc1ZTFjYjc4ODhlZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtMTc1LDcgKzE3NSw3IEBA
IGJvb2wgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0aWFsaXplSWZOZWVkZWQoKQog
ICAgIGlmICghbV93b3JrZXJDb250ZXh0LT5pc0RlZGljYXRlZFdvcmtlckNvbnRleHQoKSkKICAg
ICAgICAgY29udGV4dFR5cGUgPSAmVjhTaGFyZWRXb3JrZXJDb250ZXh0OjppbmZvOwogI2VuZGlm
Ci0gICAgdjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IHdvcmtlckNvbnRleHRDb25zdHJ1Y3RvciA9
IG1fcGVyQ29udGV4dERhdGEtPmNvbnN0cnVjdG9yRm9yVHlwZShjb250ZXh0VHlwZSwgbV93b3Jr
ZXJDb250ZXh0KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gd29ya2VyQ29udGV4dENv
bnN0cnVjdG9yID0gbV9wZXJDb250ZXh0RGF0YS0+Y29uc3RydWN0b3JGb3JUeXBlKGNvbnRleHRU
eXBlKTsKICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4ganNXb3JrZXJDb250ZXh0ID0gVjhPYmpl
Y3RDb25zdHJ1Y3Rvcjo6bmV3SW5zdGFuY2Uod29ya2VyQ29udGV4dENvbnN0cnVjdG9yKTsKICAg
ICAvLyBCYWlsIG91dCBpZiBhbGxvY2F0aW9uIGZhaWxlZC4KICAgICBpZiAoanNXb3JrZXJDb250
ZXh0LklzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V3JhcHBlclR5cGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlw
ZUluZm8uaAppbmRleCAzYzRiZWZhYThiZmJlOGFhYzcyOWM2OTMwOGU0NGIxNmRiNGI0ZGMxLi5h
NGJkNDk5OGRkZDZlNjE0ZmY3ZjAwNWE1ZTcxMzgwN2M3NDUyNDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9XcmFwcGVyVHlwZUluZm8uaApAQCAtMzcsNyArMzcsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgY2xhc3MgQWN0aXZlRE9NT2JqZWN0OwogICAgIGNs
YXNzIERPTURhdGFTdG9yZTsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiAg
ICAgc3RhdGljIGNvbnN0IGludCB2OERPTVdyYXBwZXJUeXBlSW5kZXggPSAwOwogICAgIHN0YXRp
YyBjb25zdCBpbnQgdjhET01XcmFwcGVyT2JqZWN0SW5kZXggPSAxOwpAQCAtNDksNyArNDgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgdHlwZWRlZiB2b2lkICgqRGVyZWZPYmplY3RGdW5j
dGlvbikodm9pZCopOwogICAgIHR5cGVkZWYgQWN0aXZlRE9NT2JqZWN0KiAoKlRvQWN0aXZlRE9N
T2JqZWN0RnVuY3Rpb24pKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pOwogICAgIHR5cGVkZWYgdm9p
ZCAoKkRPTVdyYXBwZXJWaXNpdG9yRnVuY3Rpb24pKERPTURhdGFTdG9yZSosIHZvaWQqLCB2ODo6
UGVyc2lzdGVudDx2ODo6T2JqZWN0Pik7Ci0gICAgdHlwZWRlZiB2b2lkICgqSW5zdGFsbFBlckNv
bnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzRnVuY3Rpb24pKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB0eXBlZGVmIHZvaWQgKCpJbnN0YWxsUGVy
Q29udGV4dFByb3RvdHlwZVByb3BlcnRpZXNGdW5jdGlvbikodjg6OkhhbmRsZTx2ODo6T2JqZWN0
Pik7CiAKICAgICBlbnVtIFdyYXBwZXJUeXBlUHJvdG90eXBlIHsKICAgICAgICAgV3JhcHBlclR5
cGVPYmplY3RQcm90b3R5cGUsCkBAIC05MCwxMCArODksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICAgICAgICAgIGRlcmVmT2JqZWN0RnVuY3Rpb24ob2JqZWN0KTsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3Bl
cnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKKyAgICAgICAgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3Bl
cnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwcm90bykKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllc0Z1bmN0aW9uKQotICAg
ICAgICAgICAgICAgIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllc0Z1bmN0aW9u
KHByb3RvLCBjb250ZXh0KTsKKyAgICAgICAgICAgICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3Rv
dHlwZVByb3BlcnRpZXNGdW5jdGlvbihwcm90byk7CiAgICAgICAgIH0KIAogICAgICAgICBBY3Rp
dmVET01PYmplY3QqIHRvQWN0aXZlRE9NT2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2Jq
ZWN0KQo=
</data>
<flag name="review"
          id="183092"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169712</attachid>
            <date>2012-10-19 15:32:32 -0700</date>
            <delta_ts>2012-10-19 15:32:32 -0700</delta_ts>
            <desc>Updated run-bindings-tests results</desc>
            <filename>bug-99876-20121019153116.patch</filename>
            <type>text/plain</type>
            <size>30012</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAppbmRleCBhMmYw
YTUxMWJlZDBkM2JiNjUxYjQ3ZTM1ZTdlODM1Njc4OTBlM2MyLi5mMzViYTg3ZjBiOTIwMTI2MWUz
M2UwZGJmMzlhZjU5NTc4YTliYzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKQEAgLTE1MCw4ICsx
NTAsOSBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4RmxvYXQ2NEFycmF5Ojp3cmFwU2xvdyhQ
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gaW1wbCwgdgogewogICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlcjsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0
PEFycmF5QnVmZmVyVmlldyo+KGltcGwuZ2V0KCkpKSA9PSBzdGF0aWNfY2FzdDx2b2lkKj4oaW1w
bC5nZXQoKSkpOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFN
KGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgdGhp
cyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCogZGVwcmVjYXRlZERvY3VtZW50ID0gMDsKKyAgICBV
TlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3VtZW50KTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IGNvbnRleHQ7CiAgICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNy
ZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJl
bnQoKSkgewpAQCAtMTYyLDcgKzE2Myw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhGbG9h
dDY0QXJyYXk6OndyYXBTbG93KFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBpbXBsLCB2CiAgICAg
ICAgIGNvbnRleHQtPkVudGVyKCk7CiAgICAgfQogCi0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBl
cjo6aW5zdGFudGlhdGVWOE9iamVjdChkb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0KCkpOworICAg
IHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZGVwcmVjYXRlZERv
Y3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgp
KQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCmluZGV4IDE4MjRiMjc1
M2Y0NjZkZTZiZDU1MGVhNjc5MTQ2YjE2MmRmZGNmMjYuLmFmYjAxMzQ0ZWJlMWVlYTNjN2I1MDI2
ODdkZDY5MjVjZDY5OTlhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5oCkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYpOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxG
aWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAg
c3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4sIEZsb2F0NjRBcnJheSopIHsgfQotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250
ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KikgeyB9CisgICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90
b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4pIHsgfQogcHJpdmF0ZToKICAg
ICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNzUmVmUHRyPEZsb2F0
NjRBcnJheT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNv
bGF0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggYjU5MjRm
ZmNmZTk4NjA2YTI2ZThjYjUxNjBiZTcyZTU2NTcyZDdhMi4uYTViMGJlMmViOTRkOWY4MDI3M2Vk
OGI5MWFkM2M5MDVkNDVjZGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAK
QEAgLTE3OCw4ICsxNzgsOSBAQCBib29sIFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6SGFzSW5zdGFu
Y2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBW
OFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEFjdGl2ZURPTU9i
amVjdD4gaW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJ
c29sYXRlKiBpc29sYXRlKQogewogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsK
LSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAwOwotICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7
CisgICAgLy8gUGxlYXNlIGRvbid0IGFkZCBhbnkgbW9yZSB1c2VzIG9mIHRoaXMgdmFyaWFibGUu
CisgICAgRG9jdW1lbnQqIGRlcHJlY2F0ZWREb2N1bWVudCA9IDA7CisgICAgVU5VU0VEX1BBUkFN
KGRlcHJlY2F0ZWREb2N1bWVudCk7CiAKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250
ZXh0OwogICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRl
eHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKQEAg
LTE5MCw3ICsxOTEsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEFjdGl2ZURPTU9i
amVjdDo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0QWN0aXZlRE9NTwogICAgICAgICBjb250ZXh0
LT5FbnRlcigpOwogICAgIH0KIAotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRp
YXRlVjhPYmplY3QoZG9jdW1lbnQsICZpbmZvLCBpbXBsLmdldCgpKTsKKyAgICB3cmFwcGVyID0g
VjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGRlcHJlY2F0ZWREb2N1bWVudCwgJmlu
Zm8sIGltcGwuZ2V0KCkpOwogCiAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKICAgICAgICAg
Y29udGV4dC0+RXhpdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCmluZGV4IDgxNDk4
ZTI1Njg4NjJkMzdhYTFiOTJiMzBkNjA0ZDk4NWZjMDEzNzAuLjdiYWVhY2NhOTc3MzNhN2NiMGZk
YmRjYzcyMzU1YTdjOWEwMzY1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKQEAg
LTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIG5hbWVkU2VjdXJpdHlDaGVj
ayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4ga2V5LCB2
ODo6QWNjZXNzVHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSk7CiAgICAgc3RhdGljIGJv
b2wgaW5kZXhlZFNlY3VyaXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQz
Ml90IGluZGV4LCB2ODo6QWNjZXNzVHlwZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZGF0YSk7CiAg
ICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4sIFRlc3RBY3RpdmVET01PYmplY3QqKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBpbnN0
YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0Piwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJD
b250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0KIHBy
aXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1Jl
ZlB0cjxUZXN0QWN0aXZlRE9NT2JqZWN0Piwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlv
bkNvbnRleHQsIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHAKaW5kZXggZWVmNDQzYjYxYjMyZjZjNmU5NjU0M2Y1OTAyZjk1ZjMyOTM3NjJkYS4u
OGRlMDQyOGY3NGI2MGU0NTBhYjBiZjUwMjE1Nzg3Nzg5ZDRhMDUxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xMTIsOCArMTEyLDkgQEAgYm9vbCBWOFRlc3RD
dXN0b21OYW1lZEdldHRlcjo6SGFzSW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVl
KQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNs
b3coUGFzc1JlZlB0cjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+IGltcGwsIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKICAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
MDsKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIC8vIFBsZWFzZSBkb24ndCBhZGQg
YW55IG1vcmUgdXNlcyBvZiB0aGlzIHZhcmlhYmxlLgorICAgIERvY3VtZW50KiBkZXByZWNhdGVk
RG9jdW1lbnQgPSAwOworICAgIFVOVVNFRF9QQVJBTShkZXByZWNhdGVkRG9jdW1lbnQpOwogCiAg
ICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKICAgICBpZiAoIWNyZWF0aW9uQ29u
dGV4dC5Jc0VtcHR5KCkgJiYgY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSAhPSB2
ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKSB7CkBAIC0xMjQsNyArMTI1LDcgQEAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNsb3coUGFzc1JlZlB0
cjxUZXN0Q3VzdG9tTmEKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKICAgICB9CiAKLSAgICB3
cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGRvY3VtZW50LCAmaW5m
bywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVW
OE9iamVjdChkZXByZWNhdGVkRG9jdW1lbnQsICZpbmZvLCBpbXBsLmdldCgpKTsKIAogICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21O
YW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggZDA3ZTdhNTU0NDY0ZjQ2MzI1MGU0NGYxOTVl
NzA3NjU4NTNmYWFjNC4uZWEzMzRiMGU0Y2M5M2EzY2QxODQ0ZjM1ZjI5ZmJjNWQ5NDcxNDNjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbmFtZWRQcm9wZXJ0eUdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBz
dGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRl
cm5hbEZpZWxkQ291bnQgKyAwOwogICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKSB7
IH0KLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXMo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAg
IHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+KSB7IH0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+LCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNzM2OTExYWVmMDQzMGIyZTdk
NTBhMTkwZjllNjJkMDliYjAyZjVjNi4uYjZjNzBiOTljY2UxZDI0YTc0MDNkMTQyZTU1MzllNzBi
YTNkMTk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMTQ5LDgg
KzE0OSw5IEBAIGJvb2wgVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SGFzSW5zdGFuY2Uodjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RFdmVu
dENvbnN0cnVjdG9yOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RFdmVudENvbnN0cnVjdG9yPiBp
bXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUq
IGlzb2xhdGUpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwotICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICAv
LyBQbGVhc2UgZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgdGhpcyB2YXJpYWJsZS4KKyAgICBE
b2N1bWVudCogZGVwcmVjYXRlZERvY3VtZW50ID0gMDsKKyAgICBVTlVTRURfUEFSQU0oZGVwcmVj
YXRlZERvY3VtZW50KTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7CiAg
ICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3Jl
YXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewpAQCAtMTYxLDcg
KzE2Miw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6
d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0RXZlbnRDb25zCiAgICAgICAgIGNvbnRleHQtPkVudGVy
KCk7CiAgICAgfQogCi0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9i
amVjdChkb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIgPSBWOERPTVdy
YXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZGVwcmVjYXRlZERvY3VtZW50LCAmaW5mbywgaW1w
bC5nZXQoKSk7CiAKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0
LT5FeGl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuaAppbmRleCAyMzk5Yzg3ZmFi
OGUwOTBkODE1ODMyZDVhMjE2ZjQyMGY5Zjc4ZGFiLi45OTYxMjgwZjBlZjM3MjNmNWFiMmMyNDk5
ODQ0NTg3MmI4NWFkYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29u
c3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJik7CiAgICAgc3RhdGljIGNvbnN0
IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENv
dW50ICsgMDsKICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdEV2ZW50Q29uc3RydWN0b3IqKSB7IH0KLSAgICBzdGF0
aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAgIHN0YXRpYyB2b2lk
IGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+KSB7IH0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cFNsb3coUGFzc1JlZlB0cjxUZXN0RXZlbnRDb25zdHJ1Y3Rvcj4sIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRU
YXJnZXQuY3BwCmluZGV4IDUxNzk4NGQ4ZjFjOGM1ZWE4ZjI3YWM3ZDgyNzU5MDkwYWQ3YTg1ZmIu
LjlkOWZkNjFiMjhhYTdhNTllMGI3MDY3YzQ3ZTNiN2ExNzQzZDljOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2
ZW50VGFyZ2V0LmNwcApAQCAtMTczLDggKzE3Myw5IEBAIGJvb2wgVjhUZXN0RXZlbnRUYXJnZXQ6
Okhhc0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YWx1ZSkKIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gVjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50
VGFyZ2V0PiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6
Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
OwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50
KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgdGhpcyB2YXJpYWJs
ZS4KKyAgICBEb2N1bWVudCogZGVwcmVjYXRlZERvY3VtZW50ID0gMDsKKyAgICBVTlVTRURfUEFS
QU0oZGVwcmVjYXRlZERvY3VtZW50KTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNv
bnRleHQ7CiAgICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29u
dGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewpA
QCAtMTg1LDcgKzE4Niw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRUYXJn
ZXQ6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0PiBpCiAgICAgICAgIGNvbnRl
eHQtPkVudGVyKCk7CiAgICAgfQogCi0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFu
dGlhdGVWOE9iamVjdChkb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIg
PSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZGVwcmVjYXRlZERvY3VtZW50LCAm
aW5mbywgaW1wbC5nZXQoKSk7CiAKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAg
ICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCmluZGV4IDc5ODFhZGM0YmRh
NGE0ODdkNDA3ZmRhN2E0MWRjNjdhM2Q3YTUyOTAuLmY5YjFmN2FmMTZmZTgwOGQ1YWFmMDRjNjlk
YjE3MTlhYzRlMDFiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oCkBAIC00OSw3ICs0OSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgaW50IGV2ZW50TGlzdGVuZXJDYWNoZUluZGV4ID0g
djhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIGNvbnN0
IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENv
dW50ICsgMTsKICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdEV2ZW50VGFyZ2V0KikgeyB9Ci0gICAgc3RhdGljIHZv
aWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0
YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0Pikg
eyB9CiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93
KFBhc3NSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0Piwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVh
dGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAppbmRl
eCA1NjNkMDg0YTdmYTM0YTg5Y2RjZjM5NDFjZTcyNTI4OTNkMDMxZjVjLi4wN2U4ODBmNzRiYWFk
ZDRiNTQ4OWJiZGNjOGJiZGIyODk5YzllYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcApAQCAt
MTAzLDggKzEwMyw5IEBAIGJvb2wgVjhUZXN0RXhjZXB0aW9uOjpIYXNJbnN0YW5jZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV4Y2Vw
dGlvbjo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0RXhjZXB0aW9uPiBpbXBsLCB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwotICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3Qg
YWRkIGFueSBtb3JlIHVzZXMgb2YgdGhpcyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCogZGVwcmVj
YXRlZERvY3VtZW50ID0gMDsKKyAgICBVTlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3VtZW50KTsK
IAogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7CiAgICAgaWYgKCFjcmVhdGlv
bkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkg
IT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewpAQCAtMTE1LDcgKzExNiw3IEBAIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXhjZXB0aW9uOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRl
c3RFeGNlcHRpb24+IGltcGwsCiAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7CiAgICAgfQogCi0g
ICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkb2N1bWVudCwg
JmluZm8sIGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRp
YXRlVjhPYmplY3QoZGVwcmVjYXRlZERvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAKICAg
ICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhj
ZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXhjZXB0aW9uLmgKaW5kZXggZmY2NmNjNTk0NDU1MGQxNWViM2FiMDg1NmZmMTNiMjY3NzJmNWFj
My4uOTlhZmU4YjE2MzliMmI3YTVkMmIzMGIyOGVkMjkyYzdlNGY2OTM3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNl
cHRpb24uaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdyYXBwZXJUeXBl
SW5mbyBpbmZvOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhE
ZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIHZvaWQgaW5z
dGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RFeGNl
cHRpb24qKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVBy
b3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
IHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGll
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0KIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0RXhjZXB0aW9uPiwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcAppbmRleCAxNzNjMjMzYjMyMDFhOWViZWUxYTMwNTVkMTk2MTEx
YzEwM2I1ZTEwLi4wNjZkYTljN2UwODhhNzA4MjM1NDVjMDQ0NjE5MTYwOWUxNmE1OWI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0SW50ZXJmYWNlLmNwcApAQCAtMzQyLDggKzM0Miw5IEBAIEFjdGl2ZURPTU9iamVjdCog
VjhUZXN0SW50ZXJmYWNlOjp0b0FjdGl2ZURPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IG9iamVjCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6d3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNlPiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNy
ZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5V
U0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3QgYWRkIGFueSBtb3JlIHVz
ZXMgb2YgdGhpcyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCogZGVwcmVjYXRlZERvY3VtZW50ID0g
MDsKKyAgICBVTlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3VtZW50KTsKIAogICAgIHY4OjpIYW5k
bGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7CiAgICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0
eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6
OkdldEN1cnJlbnQoKSkgewpAQCAtMzU0LDcgKzM1NSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RJbnRlcmZhY2U+IGlt
cGwsCiAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7CiAgICAgfQogCi0gICAgd3JhcHBlciA9IFY4
RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0
KCkpOworICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZGVw
cmVjYXRlZERvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAKICAgICBpZiAoIWNvbnRleHQu
SXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKaW5k
ZXggNTM1YjdkMGRiZTkzNjRiM2FjMjYwNGRmMjk2ZjdmZTBlMGRlNmQwZC4uODUwYzBjYjViZDc3
ZDAwNzhmM2Y3NDAyN2QxNTdkMjAyZTIxMzQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaApAQCAtNTEs
NyArNTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBuYW1l
ZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4sIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVy
bmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwog
ICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+LCBUZXN0SW50ZXJmYWNlKikgeyB9Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBl
ckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4
dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBwcml2YXRl
OgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8
VGVzdEludGVyZmFjZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2
ODo6SXNvbGF0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAppbmRleCBjM2ZjYTA0NzYzNmZlYWZkYWUxYTQ4NDlhMjQzMWI3MDdhOWU3OGQyLi41
M2Q1Zjk5M2YyZTliZGVjNjgzMTgyODA2ODMxZWJlM2ZhNDQwYTlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0xMTIsOCArMTEyLDkgQEAgYm9v
bCBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdmFsdWUpCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXI6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI+IGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0g
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gMDsKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwor
ICAgIC8vIFBsZWFzZSBkb24ndCBhZGQgYW55IG1vcmUgdXNlcyBvZiB0aGlzIHZhcmlhYmxlLgor
ICAgIERvY3VtZW50KiBkZXByZWNhdGVkRG9jdW1lbnQgPSAwOworICAgIFVOVVNFRF9QQVJBTShk
ZXByZWNhdGVkRG9jdW1lbnQpOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4
dDsKICAgICBpZiAoIWNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5KCkgJiYgY3JlYXRpb25Db250ZXh0
LT5DcmVhdGlvbkNvbnRleHQoKSAhPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKSB7CkBAIC0x
MjQsNyArMTI1LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RNZWQKICAgICAgICAgY29udGV4dC0+
RW50ZXIoKTsKICAgICB9CiAKLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0
ZVY4T2JqZWN0KGRvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9IFY4
RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkZXByZWNhdGVkRG9jdW1lbnQsICZpbmZv
LCBpbXBsLmdldCgpKTsKIAogICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIGNv
bnRleHQtPkV4aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CmluZGV4IGIwYTJlZjcwZDdmZTJmYTFkM2EwZDJiMDIwZjczMDhmMjhjNDZiY2UuLmY4ODU5ODA0
NmNlODU4YWUyNDk3MTI3ZTkyN2I0ZDQ2YmNjZGMzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxG
aWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAg
c3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4sIFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKikgeyB9Ci0gICAgc3RhdGljIHZvaWQg
aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxs
UGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9
CiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBh
c3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+LCB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqKTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZjJlZDgxOWRmMDgwMWMxNWQ2YmY2ZjA0OTk1ZTg3NTRj
NzlhYTE1ZC4uNDAwZmQ0YWNlYzhiNmFmYzhmZDk5YTljOTRmZjVhMGUwMmFjYjM0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVk
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMTUyLDggKzE1Miw5IEBAIEFjdGl2
ZURPTU9iamVjdCogVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6dG9BY3RpdmVET01PYmplY3Qodjg6
OkhhbmRsZTx2ODo6T2JqZWN0CiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5hbWVkQ29u
c3RydWN0b3I6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE5hbWVkQ29uc3RydWN0b3I+IGltcGws
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0gICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gMDsKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIC8vIFBs
ZWFzZSBkb24ndCBhZGQgYW55IG1vcmUgdXNlcyBvZiB0aGlzIHZhcmlhYmxlLgorICAgIERvY3Vt
ZW50KiBkZXByZWNhdGVkRG9jdW1lbnQgPSAwOworICAgIFVOVVNFRF9QQVJBTShkZXByZWNhdGVk
RG9jdW1lbnQpOwogCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKICAgICBp
ZiAoIWNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5KCkgJiYgY3JlYXRpb25Db250ZXh0LT5DcmVhdGlv
bkNvbnRleHQoKSAhPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKSB7CkBAIC0xNjQsNyArMTY1
LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjp3cmFw
U2xvdyhQYXNzUmVmUHRyPFRlc3ROYW1lZENvbnMKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsK
ICAgICB9CiAKLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0
KGRvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBl
cjo6aW5zdGFudGlhdGVWOE9iamVjdChkZXByZWNhdGVkRG9jdW1lbnQsICZpbmZvLCBpbXBsLmdl
dCgpKTsKIAogICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCiAgICAgICAgIGNvbnRleHQtPkV4
aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IDJmYzAwOTlhZThiOGFl
MzE4NjgyNTM5ZmVlNWEwYTNkMTA0ZGYzNzEuLjgzOGIxMTUzODJmZmVhODJlYjlhYjViNzVmZmRl
NzQ3YmRkMWU4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaApAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEFjdGl2ZURPTU9iamVjdCogdG9BY3RpdmVET01P
YmplY3Qodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRl
cm5hbEZpZWxkQ291bnQgPSB2OERlZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsK
ICAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiwgVGVzdE5hbWVkQ29uc3RydWN0b3IqKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQ
ZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KSB7IH0K
IHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFz
c1JlZlB0cjxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3Jl
YXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAppbmRleCA0NzBjMzgy
Yzg5MmJlNWRkYjI5MzUzNDcxZDNlMzE2OWMzZDM2OGY2Li44OWJmZWRjNDdhYzhlMDkzN2UzYzJm
MjRjNjA0ZDU1ZDA4MzlkNWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCkBAIC0xMTIsOSArMTEyLDEwIEBAIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Tm9kZTo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0
Tm9kZT4gaW1wbCwgdjg6OkhhbmRsCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8Tm9kZSo+KGlt
cGwuZ2V0KCkpKSA9PSBzdGF0aWNfY2FzdDx2b2lkKj4oaW1wbC5nZXQoKSkpOwotICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKLSAgICBkb2N1
bWVudCA9IGltcGwtPmRvY3VtZW50KCk7IAorICAgIC8vIFBsZWFzZSBkb24ndCBhZGQgYW55IG1v
cmUgdXNlcyBvZiB0aGlzIHZhcmlhYmxlLgorICAgIERvY3VtZW50KiBkZXByZWNhdGVkRG9jdW1l
bnQgPSAwOworICAgIFVOVVNFRF9QQVJBTShkZXByZWNhdGVkRG9jdW1lbnQpOworICAgIGRlcHJl
Y2F0ZWREb2N1bWVudCA9IGltcGwtPmRvY3VtZW50KCk7IAogCiAgICAgdjg6OkhhbmRsZTx2ODo6
Q29udGV4dD4gY29udGV4dDsKICAgICBpZiAoIWNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5KCkgJiYg
Y3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSAhPSB2ODo6Q29udGV4dDo6R2V0Q3Vy
cmVudCgpKSB7CkBAIC0xMjUsNyArMTI2LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3ROb2RlOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3ROb2RlPiBpbXBsLCB2ODo6SGFuZGwKICAg
ICAgICAgY29udGV4dC0+RW50ZXIoKTsKICAgICB9CiAKLSAgICB3cmFwcGVyID0gVjhET01XcmFw
cGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGRvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7Cisg
ICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkZXByZWNhdGVk
RG9jdW1lbnQsICZpbmZvLCBpbXBsLmdldCgpKTsKIAogICAgIGlmICghY29udGV4dC5Jc0VtcHR5
KCkpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5oCmluZGV4IDZiNDJlNWJiNWM2MmEx
MGEzOTVhYjczODBjOTM2YzUyYjE2OTk5MDAuLmZkMzMzODgzOTkwNGQxMzBmOTc4ZTg3ODExNmNi
YTNkYjA3MTFhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4
RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwogICAgIHN0YXRpYyB2b2lkIGlu
c3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0Tm9k
ZSopIHsgfQotICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVy
dGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgeyB9
CisgICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVzKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4pIHsgfQogcHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3ROb2RlPiwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApp
bmRleCA0NjA5ZjFmODM0ZGM0ZjM3ZWQ4Y2JhZDYwNjVkNzE5NzNiMzUzODE0Li4yM2JhMWYxOTJi
NDUyNmE5OTk1YjIzOWJiNDVlMTY3ZTI2Y2EwNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMTAzMSw3ICsx
MDMxLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBUZXN0T2JqQ29uc3RydWN0b3JH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUKICAgICBWOFBlckNvbnRleHREYXRhKiBw
ZXJDb250ZXh0RGF0YSA9IFY4UGVyQ29udGV4dERhdGE6OmZyb20oaW5mby5Ib2xkZXIoKS0+Q3Jl
YXRpb25Db250ZXh0KCkpOwogICAgIGlmICghcGVyQ29udGV4dERhdGEpCiAgICAgICAgIHJldHVy
biB2OFVuZGVmaW5lZCgpOwotICAgIHJldHVybiBwZXJDb250ZXh0RGF0YS0+Y29uc3RydWN0b3JG
b3JUeXBlKFdyYXBwZXJUeXBlSW5mbzo6dW53cmFwKGRhdGEpLCAwKTsKKyAgICByZXR1cm4gcGVy
Q29udGV4dERhdGEtPmNvbnN0cnVjdG9yRm9yVHlwZShXcmFwcGVyVHlwZUluZm86OnVud3JhcChk
YXRhKSk7CiB9CiBzdGF0aWMgdm9pZCBUZXN0T2JqUmVwbGFjZWFibGVBdHRyU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKQEAgLTIzNDEsMTIgKzIzNDEsMTMgQEAgdm9pZCBW
OFRlc3RPYmo6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGluc3RhbmNlLCBUZXMKICAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVB
dHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CiAgICAgfQogfQotdm9pZCBWOFRl
c3RPYmo6Omluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHByb3RvLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQordm9pZCBW
OFRlc3RPYmo6Omluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHByb3RvKQogewogICAgIFVOVVNFRF9QQVJBTShwcm90byk7Ci0gICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwogICAgIHY4OjpMb2NhbDx2ODo6U2lnbmF0dXJlPiBkZWZhdWx0
U2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KEdldFRlbXBsYXRlKCkpOwogICAgIFVOVVNF
RF9QQVJBTShkZWZhdWx0U2lnbmF0dXJlKTsgLy8gSW4gc29tZSBjYXNlcywgaXQgd2lsbCBub3Qg
YmUgdXNlZC4KKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSB0b1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQocHJvdG8tPkNyZWF0aW9uQ29udGV4dCgpKTsKICAgICBpZiAoY29u
dGV4dCAmJiBjb250ZXh0LT5pc0RvY3VtZW50KCkgJiYgQ29udGV4dEZlYXR1cmVzOjplbmFibGVk
UGVyQ29udGV4dE1ldGhvZDFFbmFibGVkKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkp
KSB7CiAgICAgICAgIHByb3RvLT5TZXQodjg6OlN0cmluZzo6TmV3U3ltYm9sKCJlbmFibGVkUGVy
Q29udGV4dE1ldGhvZDEiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZFBlckNvbnRleHRNZXRob2QxQ2FsbGJhY2ssIHY4VW5kZWZpbmVkKCksIGRl
ZmF1bHRTaWduYXR1cmUpLT5HZXRGdW5jdGlvbigpKTsKICAgICB9CkBAIC0yMzU4LDggKzIzNTks
OSBAQCB2b2lkIFY4VGVzdE9iajo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVz
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcHJvdAogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3RPYmo6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE9iaj4gaW1wbCwgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewogICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSAw
OwotICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CisgICAgLy8gUGxlYXNlIGRvbid0IGFkZCBh
bnkgbW9yZSB1c2VzIG9mIHRoaXMgdmFyaWFibGUuCisgICAgRG9jdW1lbnQqIGRlcHJlY2F0ZWRE
b2N1bWVudCA9IDA7CisgICAgVU5VU0VEX1BBUkFNKGRlcHJlY2F0ZWREb2N1bWVudCk7CiAKICAg
ICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwogICAgIGlmICghY3JlYXRpb25Db250
ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4
OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKQEAgLTIzNzAsNyArMjM3Miw3IEBAIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RPYmo+IGlt
cGwsIHY4OjpIYW5kbGU8CiAgICAgICAgIGNvbnRleHQtPkVudGVyKCk7CiAgICAgfQogCi0gICAg
d3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChkb2N1bWVudCwgJmlu
Zm8sIGltcGwuZ2V0KCkpOworICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRl
VjhPYmplY3QoZGVwcmVjYXRlZERvY3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAKICAgICBp
ZiAoIWNvbnRleHQuSXNFbXB0eSgpKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKaW5k
ZXggMjljNTUzNTNkZmQ4Njk5MTE2MDI2ODVhMzg1MGYwZDY0ZWMwZDViYS4uNjIxZTI5N2FmMzk5
OWYwMzhlZDlmZGMxNzBiZTg5NmI3YWQ2YjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgY3VzdG9tQXR0ckFjY2Vzc29yU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiwgY29uc3Qgdjg6OkFjY2Vz
c29ySW5mbyYpOwogICAgIHN0YXRpYyBjb25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhE
ZWZhdWx0V3JhcHBlckludGVybmFsRmllbGRDb3VudCArIDA7CiAgICAgc3RhdGljIHZvaWQgaW5z
dGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RPYmoq
KTsKLSAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXMo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHN0
YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvdG90eXBlUHJvcGVydGllcyh2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+KTsKIHByaXZhdGU6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0T2JqPiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBj
cmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCAxNTNlMDlkNzY3
ZDcxN2M1MjQyYzI1NjQyNjYyZTRhMzJjNmE0YjMxLi45YzZmMzZiODBiN2RjMWI4YTA2YzBlNzQz
OTFhNzc2MTk1NjU0NjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjk1LDggKzI5NSw5IEBAIGJvb2wgVjhUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdmFsCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlPiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29u
dGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwcGVyOwotICAgIERvY3VtZW50KiBkb2N1bWVudCA9IDA7Ci0gICAgVU5VU0VEX1BBUkFN
KGRvY3VtZW50KTsKKyAgICAvLyBQbGVhc2UgZG9uJ3QgYWRkIGFueSBtb3JlIHVzZXMgb2YgdGhp
cyB2YXJpYWJsZS4KKyAgICBEb2N1bWVudCogZGVwcmVjYXRlZERvY3VtZW50ID0gMDsKKyAgICBV
TlVTRURfUEFSQU0oZGVwcmVjYXRlZERvY3VtZW50KTsKIAogICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IGNvbnRleHQ7CiAgICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNy
ZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJl
bnQoKSkgewpAQCAtMzA3LDcgKzMwOCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp3cmFwU2xvdyhQYXNzUmVmUHRyCiAgICAg
ICAgIGNvbnRleHQtPkVudGVyKCk7CiAgICAgfQogCi0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBl
cjo6aW5zdGFudGlhdGVWOE9iamVjdChkb2N1bWVudCwgJmluZm8sIGltcGwuZ2V0KCkpOworICAg
IHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoZGVwcmVjYXRlZERv
Y3VtZW50LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAKICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgp
KQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYmZlNmM5OWU5NGRhNTUzOTFkOTI5
NGFlYzA0M2UwNTc1YWYyZjcyZi4uNjNjMjIyYTBiMGMxNmRlOWU5ZTc0MjNhNWQ1NmUxMDdiMDE4
MDQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsK
ICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4RGVmYXVsdFdyYXBw
ZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOwogICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250
ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKikgeyB9Ci0gICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQ
cm90b3R5cGVQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3RvdHlw
ZVByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PikgeyB9CiBwcml2YXRlOgogICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93KFBhc3NSZWZQdHI8VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRp
b25Db250ZXh0LCB2ODo6SXNvbGF0ZSopOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>