<?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>118560</bug_id>
          
          <creation_ts>2013-07-11 05:13:41 -0700</creation_ts>
          <short_desc>DFG should support intrinsic for Math.pow().</short_desc>
          <delta_ts>2015-02-18 17:32:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>141540</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vladislav">vlad</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>907603</commentid>
    <comment_count>0</comment_count>
    <who name="Vladislav">vlad</who>
    <bug_when>2013-07-11 05:13:41 -0700</bug_when>
    <thetext>DFG intrinsic as opposed to old JIT intrinsic can use speculative information about types. Also it allows to process constants at compile time.
Concrete assembler for ARMv7 is used for better performance (MacroAssembler and calls to C functions for other architectures).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907619</commentid>
    <comment_count>1</comment_count>
      <attachid>206452</attachid>
    <who name="Vladislav">vlad</who>
    <bug_when>2013-07-11 05:49:36 -0700</bug_when>
    <thetext>Created attachment 206452
The patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911957</commentid>
    <comment_count>2</comment_count>
    <who name="Vladislav">vlad</who>
    <bug_when>2013-07-26 06:34:46 -0700</bug_when>
    <thetext>It gives about 12% speedup on SunSpider&apos;s math-partial-sums on ARMv7 Linux while neutral on other tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944973</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-10-30 10:26:10 -0700</bug_when>
    <thetext>This seems like a good idea. Is there any reason it&apos;s not being merged?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945064</commentid>
    <comment_count>4</comment_count>
      <attachid>206452</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-30 11:31:11 -0700</bug_when>
    <thetext>Comment on attachment 206452
The patch

r=me.  Can you rebase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945517</commentid>
    <comment_count>5</comment_count>
    <who name="Vladislav">vlad</who>
    <bug_when>2013-10-31 08:01:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 206452 [details])
&gt; r=me.  Can you rebase?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070292</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-02-18 17:32:30 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 141540 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206452</attachid>
            <date>2013-07-11 05:49:36 -0700</date>
            <delta_ts>2013-10-30 11:31:10 -0700</delta_ts>
            <desc>The patch</desc>
            <filename>power_intrinsic.diff</filename>
            <type>text/plain</type>
            <size>26348</size>
            <attacher name="Vladislav">vlad</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDU5ZjY2NjkuLmQwZGM1MzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTA3LTExICBWbGFkaXNsYXYgSXZh
bmlzaGluICA8dmxhZEBpc3ByYXMucnU+CisKKyAgICAgICAgQWRkIERGRy1sZXZlbCBpbnRyaW5z
aWMgZm9yIE1hdGgucG93KCkuIEluIHRoZSBjYXNlIG9mIEFSTV9USFVNQjIgdXNlIGZhc3QgcGxh
dGZvcm0gZGVwZW5kZW50IGNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTg1NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgREZHIGludHJpbnNpYyBmb3IgcG93LiBJdCBoYXMgMiBjYXNlczog
aW50ZWdlciBleHBvbmVudCBhbmQgZG91YmxlIGV4cG9uZW50LgorICAgICAgICBUaGUgZm9ybWVy
IGlzIGltcGxlbWVudGVkIHZpYSBhIGxvb3AgcGVyZm9ybWluZyBmYXN0IHBvd2VyIGFsZ29yaXRo
bSAoYmluYXJ5IGRlY29tcG9zaXRpb24pLgorICAgICAgICBBUk1fVEhVTUIyIGFsbG93cyB0byBz
YXZlIGluc3RydWN0aW9ucyBhbmQgaW5jcmVhc2Ugc3BlZWQgYnkgcmV1c2luZyB0aGUgZmxhZ3Mg
cmVtYWluaW5nIAorICAgICAgICBmcm9tIG9uZSBvcGVyYXRpb24gc2luY2UgdmZwIGluc3RydWN0
aW9ucyBkb24ndCBjaGFuZ2UgZmxhZ3MuIEZvciBleHBsb2l0aW5nIHRoaXMgcGVjdWxpYXJpdHkK
KyAgICAgICAgbHNyX1MgYW5kIGNvbmRpdGlvbmFsIGp1bXAgaW5zdHJ1Y3Rpb24gd2VyZSBpbnRy
b2R1Y2VkLiAKKyAgICAgICAgVGhlIGxhdHRlciBpcyBzaW1wbHkgYSBjYWxsIChvciB1c2Ugb2Yg
c3FydCBpbnN0cnVjdGlvbiBmb3IgdGhlIHNwZWNpYWwgY2FzZSBleHAgPT0gLTAuNSkuIAorCisg
ICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3
QXNzZW1ibGVyOjpsc3JfUyk6IEFkZGVkLiBFbWl0cyBsc3JfUyBpbnN0cnVjdGlvbi4KKyAgICAg
ICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmlzRW5jb2RhYmxlVk1PVkltbSk6CisgICAgICAgIEFk
ZGVkLiBDaGVjayBpZiBhIGNvbnN0YW50IGNvdWxkIGJlIFZNT1ZlZCAodm1vdiBmb3IgY29uc3Rh
bnRzIGlzCisgICAgICAgIGZhc3RlciB0aGFuIGxvYWQgYnV0IGl0IG9ubHkgd29ya3MgZm9yIHNt
YWxsIHRob3VnaCBmcmVxdWVudGx5IHVzZWQgY2xhc3Mgb2YgY29uc3RhbnRzKS4KKyAgICAgICAg
KEpTQzo6QVJNdjdBc3NlbWJsZXI6OnZtb3YpOiBBZGRlZC4gRW1pdHMgdm1vdiBpbnN0cnVjdGlv
biBmb3IgY29uc3RhbnRzLgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlcjo6anVtcCk6IEFkZGVkLiBDb25kaXRpb25hbCBq
dW1wIGZvciBBUk12Ny4KKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
OgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpqdW1wKTogQWRkZWQuIENvbmRp
dGlvbmFsIGp1bXAuCisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4ZWN1dGVFZmZlY3RzKTogQ2hhbmdlZC4gQWRk
ZWQgc3VwcG9ydCBmb3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAgICAgICAgKiBk
ZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
QmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKTogQ2hhbmdlZC4gQWRkZWQgc3Vw
cG9ydCBmb3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAgICAgICAgKiBkZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpo
YW5kbGVJbnRyaW5zaWMpOiBDaGFuZ2VkLiBBZGRlZCBzdXBwb3J0IGZvciBQb3dJbnRyaW5zaWMu
CisgICAgICAgICogZGZnL0RGR0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpERkc6OkND
YWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHMpOiBBZGRlZCB3aXRoIGFyZ3VtZW50cyAoRlBSUmVn
LCBHUFJSZWcpLgorICAgICAgICAqIGRmZy9ERkdDU0VQaGFzZS5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6Q1NFUGhhc2U6OnBlcmZvcm1Ob2RlQ1NFKTogQ2hhbmdlZC4gQWRkZWQgc3VwcG9ydCBm
b3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAgICAgICAgKiBkZmcvREZHRml4dXBQ
aGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKTogQ2hh
bmdlZC4gQWRkZWQgc3VwcG9ydCBmb3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAg
ICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlNDOjpERkc6Ok5vZGU6OmFyaXRoTm9k
ZUZsYWdzKTogQ2hhbmdlZC4gQXJpdGhQb3cgaXMgbm93IHRha2VuIGludG8gYWNjb3VudC4gCisg
ICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMu
Y3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICogZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcmVkaWN0
aW9uUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKTogQ2hhbmdlZC4gQWRkZWQgc3VwcG9ydCBm
b3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
QXJpdGhQb3cpOiBBZGRlZC4gR2VuZXJhdGVzIHRoZSBjb2RlIGZvciB0aGUgaW50cmluc2ljLgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjYWxsT3BlcmF0aW9uKTogQWRkZWQgZm9yIG5ldyBraW5kIG9mIGZ1bmN0
aW9uczogZG91YmxlIGYoZG91YmxlLCBpbnQpLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZSk6IENoYW5nZWQuIEFkZGVkIHN1cHBvcnQgZm9yIG5ldyB0eXBlIG9mIG5vZGVzIChBcml0aFBv
dykuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKTogQ2hhbmdlZC4gQWRkZWQgc3VwcG9ydCBm
b3IgbmV3IHR5cGUgb2Ygbm9kZXMgKEFyaXRoUG93KS4KKyAgICAgICAgKiBydW50aW1lL01hdGhP
YmplY3QuY3BwOgorICAgICAgICBDaGFuZ2VkLiBUaGUgZ2VuZXJpYyBNYXRoUG93IGZ1bmN0aW9u
IHdhcyBzcGxpdCBpbnRvIDIgZnVuY3Rpb25zIHNvIHRoYXQgaXQgY291bGQgYmUgY2FsbGVkIGlu
IDIgZGlmZmVyZW50IHdheXMuCisgICAgICAgIChKU0M6Om1hdGhQb3dHZW5lcmFsKTogQWRkZWQu
CisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNQb3cpOiBDaGFuZ2VkLgorICAgICAgICAqIHJ1
bnRpbWUvTWF0aE9iamVjdC5oOgorCiAyMDEzLTA3LTA5ICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBHYXJkZW5pbmcgdG8gdW5icmVhayBidWlsZHMgb24gdGhlIFdp
bmRvd3MgYm90LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fz
c2VtYmxlci5oCmluZGV4IDI4OTg5NTQuLjkyMmE0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgKQEAgLTU4Miw2ICs1ODIsNyBAQCBw
cml2YXRlOgogICAgICAgICBPUF9BU1JfaW1tX1QxICAgPSAweEVBNEYsCiAgICAgICAgIE9QX0xT
TF9pbW1fVDEgICA9IDB4RUE0RiwKICAgICAgICAgT1BfTFNSX2ltbV9UMSAgID0gMHhFQTRGLAor
ICAgICAgICBPUF9MU1JfU19pbW1fVDEgPSAweEVBNUYsCiAgICAgICAgIE9QX1JPUl9pbW1fVDEg
ICA9IDB4RUE0RiwKICAgICAgICAgT1BfTVZOX3JlZ19UMiAgID0gMHhFQTZGLAogICAgICAgICBP
UF9FT1JfcmVnX1QyICAgPSAweEVBODAsCkBAIC0xMjQ5LDYgKzEyNTAsMTQgQEAgcHVibGljOgog
ICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxNkZvdXJGb3VycyhPUF9MU1JfaW1tX1QxLCBG
b3VyRm91cnMoc2hpZnQuaGk0KCksIHJkLCBzaGlmdC5sbzQoKSwgcm0pKTsKICAgICB9CiAKKyAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgbHNyX1MoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybSwg
aW50MzJfdCBzaGlmdEFtb3VudCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghQmFkUmVnKHJkKSk7
CisgICAgICAgIEFTU0VSVCghQmFkUmVnKHJtKSk7CisgICAgICAgIFNoaWZ0VHlwZUFuZEFtb3Vu
dCBzaGlmdChTUlR5cGVfTFNSLCBzaGlmdEFtb3VudCk7CisgICAgICAgIG1fZm9ybWF0dGVyLnR3
b1dvcmRPcDE2Rm91ckZvdXJzKE9QX0xTUl9TX2ltbV9UMSwgRm91ckZvdXJzKHNoaWZ0LmhpNCgp
LCByZCwgc2hpZnQubG80KCksIHJtKSk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lk
IGxzcihSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtKQogICAgIHsK
ICAgICAgICAgQVNTRVJUKCFCYWRSZWcocmQpKTsKQEAgLTE4MjMsNiArMTgzMiw0MyBAQCBwdWJs
aWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLnZmcE9wKE9QX1ZNT1ZfQ3RvUywgT1BfVk1PVl9DdG9T
YiwgZmFsc2UsIHJkLCBybiwgVkZQT3BlcmFuZCgwKSk7CiAgICAgfQogCisgICAgc3RhdGljIGJv
b2wgaXNFbmNvZGFibGVWTU9WSW1tKGRvdWJsZSBkLCB1aW50OF90ICpoaWdoLCB1aW50OF90ICps
b3cpCisgICAgeworICAgICAgICB1aW50NjRfdCB1OworICAgICAgICB1aW50MzJfdCBsbywgaGk7
CisgICAgICAgIG1lbWNweSgmdSwgJmQsIHNpemVvZiB1KTsKKyAgICAgICAgbG8gPSB1ICYgMHhG
RkZGRkZGRjsKKyAgICAgICAgaGkgPSB1ID4+IDMyOworCisgICAgICAgIC8vIGFCYmJiYmJiIGJi
Y2RlZmdoIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAw
MDAwIC0+IChhYmNkLCBlZmdoKQorCisgICAgICAgIC8vIENoZWNrIGZvciBCIGlzIH5iCisgICAg
ICAgIGlmICgoaGkgPj4gMzApICYgMSAhPSAoaGkgPj4gMjkpICYgMSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICAvLyBDaGVjayBmb3IgYmxvY2sgb2YgOCBiJ3MKKyAgICAg
ICAgaWYgKChoaSA+PiAyMikgJiAweEZGICYmIChoaSA+PiAyMikgJiAweEZGICE9IDB4RkYpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgLy8gQ2hlY2sgZm9yIDQ4IHRyYWls
aW5nIHplcm9lcworICAgICAgICBpZiAobG8gfHwgaGkgJiAweEZGRkYpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgKmxvdyA9IChoaSA+PiAxNikgJiAweEY7CisgICAgICAg
ICpoaWdoID0gKGhpID4+IDI0KSAmIDB4NzsKKyAgICAgICAgKmhpZ2ggfD0gKGhpID4+IDI4KSAm
IDB4ODsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCB2bW92KEZQRG91
YmxlUmVnaXN0ZXJJRCByZCwgZG91YmxlIGltbSkKKyAgICB7CisgICAgICAgIHVpbnQ4X3QgbG8g
PSAwLCBoaSA9IDA7CisgICAgICAgIGJvb2wgaW1tSXNFbmNvZGFibGUgPSBpc0VuY29kYWJsZVZN
T1ZJbW0oaW1tLCAmaGksICZsbyk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoaW1tSXNFbmNvZGFi
bGUsIGltbUlzRW5jb2RhYmxlKTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudmZwT3AoT1BfVk1PVl9J
TU1fVDIsIE9QX1ZNT1ZfSU1NX1QyYiwgdHJ1ZSwgVkZQT3BlcmFuZChoaSksIFZGUE9wZXJhbmQo
cmQpLCBWRlBPcGVyYW5kKGxvKSk7CisgICAgfQorCisKICAgICB2b2lkIHZtb3YoUmVnaXN0ZXJJ
RCByZDEsIFJlZ2lzdGVySUQgcmQyLCBGUERvdWJsZVJlZ2lzdGVySUQgcm4pCiAgICAgewogICAg
ICAgICBBU1NFUlQoIUJhZFJlZyhyZDEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAppbmRleCBmNzQ2ODBkLi41YzNjZDk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCkBAIC0y
ODcsNiArMjg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAganVtcCgpLmxpbmtUbyh0YXJnZXQsIHRo
aXMpOwogICAgIH0KIAorI2lmIENQVShBUk1fVEhVTUIyKSAKKyAgICB2b2lkIGp1bXAoTGFiZWwg
dGFyZ2V0LCBSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbikgCisgICAgeworICAgICAgICBq
dW1wKGNvbmRpdGlvbikubGlua1RvKHRhcmdldCwgdGhpcyk7CisgICAgfQorI2VuZGlmCisKICAg
ICAvLyBDb21tdXRlIGEgcmVsYXRpb25hbCBjb25kaXRpb24sIHJldHVybnMgYSBuZXcgY29uZGl0
aW9uIHRoYXQgd2lsbCBwcm9kdWNlCiAgICAgLy8gdGhlIHNhbWUgcmVzdWx0cyBnaXZlbiB0aGUg
c2FtZSBpbnB1dHMgYnV0IHdpdGggdGhlaXIgcG9zaXRpb25zIGV4Y2hhbmdlZC4KICAgICBzdGF0
aWMgUmVsYXRpb25hbENvbmRpdGlvbiBjb21tdXRlKFJlbGF0aW9uYWxDb25kaXRpb24gY29uZGl0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaAppbmRleCBiMWJjNDE3Li45OGMyYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMTc5
Nyw2ICsxNzk3LDExIEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKKyAgICBBTFdBWVNf
SU5MSU5FIEp1bXAganVtcChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQpCisgICAgeworICAgICAg
ICByZXR1cm4gbWFrZUJyYW5jaChhcm1WN0NvbmRpdGlvbihjb25kKSk7CisgICAgfQorCiAgICAg
QUxXQVlTX0lOTElORSBKdW1wIGp1bXAoKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIubGFi
ZWwoKTsgLy8gRm9yY2Ugbm9wLXBhZGRpbmcgaWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBhIHdh
dGNocG9pbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0U3RhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRl
LmNwcAppbmRleCA3NmU2OWVlLi4yYzRiNmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJD
b2RlQmxvY2suaCIKICNpbmNsdWRlICJERkdCYXNpY0Jsb2NrLmgiCiAjaW5jbHVkZSAiR2V0QnlJ
ZFN0YXR1cy5oIgorI2luY2x1ZGUgIk1hdGhPYmplY3QuaCIKICNpbmNsdWRlICJPcGVyYXRpb25z
LmgiCiAjaW5jbHVkZSAiUHV0QnlJZFN0YXR1cy5oIgogI2luY2x1ZGUgIlN0cmluZ09iamVjdC5o
IgpAQCAtNjMxLDYgKzYzMiwyMCBAQCBib29sIEFic3RyYWN0U3RhdGU6OmV4ZWN1dGVFZmZlY3Rz
KHVuc2lnbmVkIGluZGV4SW5CbG9jaywgTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgICAgICAgICAgCisgICAgY2FzZSBBcml0aFBvdzogeworICAgICAgICBKU1ZhbHVlIGxl
ZnQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOworICAgICAgICBKU1ZhbHVlIHJp
Z2h0ID0gZm9yTm9kZShub2RlLT5jaGlsZDIoKSkudmFsdWUoKTsKKyAgICAgICAgaWYgKGxlZnQg
JiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVyKCkKKyAgICAgICAg
ICAgICYmIHRyeVNldENvbnN0YW50KG5vZGUsIEpTVmFsdWUobWF0aFBvd0dlbmVyYWwobGVmdC5h
c051bWJlcigpLCByaWdodC5hc051bWJlcigpKSkpKSB7CisgICAgICAgICAgICAgICAgbm9kZS0+
c2V0Q2FuRXhpdChmYWxzZSk7CisgICAgICAgICAgICAgICAgbV9mb3VuZENvbnN0YW50cyA9IHRy
dWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgbm9kZS0+c2V0
Q2FuRXhpdCh0cnVlKTsKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXQoU3BlY0RvdWJsZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgQXJpdGhTcXJ0OiB7CiAgICAgICAgIEpT
VmFsdWUgY2hpbGQgPSBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS52YWx1ZSgpOwogICAgICAgICBp
ZiAoY2hpbGQgJiYgY2hpbGQuaXNOdW1iZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggMmYw
NjY0Ni4uMDhiZGRlMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
YWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0yODksNiArMjg5LDEzIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBub2RlLT5jaGlsZDIoKS0+bWVyZ2VGbGFncyhmbGFncyk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIGNhc2UgQXJpdGhQb3c6
IHsKKyAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5tZXJnZUZsYWdzKE5vZGVVc2VkQXNWYWx1
ZSk7CisgICAgICAgICAgICAvLyBObyBOZWVkc05lZ1plcm8gZm9yIGNoaWxkMiBzaW5jZSArMC8t
MCBtYWtlcyBubyBkaWZmZXJlbmNlIGFjY29yZGluZyB0byBFQ01BIDE1LjguMi4xMworICAgICAg
ICAgICAgbm9kZS0+Y2hpbGQyKCktPm1lcmdlRmxhZ3MoTm9kZVVzZWRBc051bWJlciB8IE5vZGVV
c2VkQXNJbnQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgICAgIAog
ICAgICAgICBjYXNlIEFyaXRoRGl2OiB7CiAgICAgICAgICAgICBmbGFncyB8PSBOb2RlVXNlZEFz
TnVtYmVyIHwgTm9kZU5lZWRzTmVnWmVybzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggYTVmMTkwYS4uNDM2NmE1NSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE0OTMs
NiArMTQ5MywxNCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWMoYm9vbCB1
c2VzUmVzdWx0LCBpbnQgcmVzdWx0T3BlcmFuZCwgSW50cmlucwogICAgIGNhc2UgTWF4SW50cmlu
c2ljOgogICAgICAgICByZXR1cm4gaGFuZGxlTWluTWF4KHVzZXNSZXN1bHQsIHJlc3VsdE9wZXJh
bmQsIEFyaXRoTWF4LCByZWdpc3Rlck9mZnNldCwgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMp
OwogICAgICAgICAKKyAgICBjYXNlIFBvd0ludHJpbnNpYzoKKyAgICAgICAgaWYgKGFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzIDwgMikgeyAvLyBNYXRoLnBvdygpIG9yIE1hdGgucG93KHNtdGgp
CisgICAgICAgICAgICBzZXRJbnRyaW5zaWNSZXN1bHQodXNlc1Jlc3VsdCwgcmVzdWx0T3BlcmFu
ZCwgY29uc3RhbnROYU4oKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICBzZXRJbnRyaW5zaWNSZXN1bHQodXNlc1Jlc3VsdCwgcmVzdWx0T3BlcmFuZCwgYWRk
VG9HcmFwaChBcml0aFBvdywgZ2V0KHJlZ2lzdGVyT2Zmc2V0ICsgYXJndW1lbnRUb09wZXJhbmQo
MSkpLCBnZXQocmVnaXN0ZXJPZmZzZXQgKyBhcmd1bWVudFRvT3BlcmFuZCgyKSkpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKICAgICBjYXNlIFNxcnRJbnRyaW5zaWM6IHsKICAgICAgICAgaWYg
KGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID09IDEpIHsgLy8gTWF0aC5zcXJ0KCkKICAgICAg
ICAgICAgIHNldEludHJpbnNpY1Jlc3VsdCh1c2VzUmVzdWx0LCByZXN1bHRPcGVyYW5kLCBjb25z
dGFudE5hTigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0Nh
bGxIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5o
CmluZGV4IDA2MzExNDkuLmQxOTJiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDQ2FsbEhlbHBlcnMuaApAQCAtOTUsNiArOTUsMTMgQEAgcHVibGljOgogICAgICAgICBhZGRD
YWxsQXJndW1lbnQoYXJnMik7CiAgICAgfQogICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50cyhGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCisgICAgeworICAgICAgICBy
ZXNldENhbGxBcmd1bWVudHMoKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50KGFyZzEpOworICAg
ICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMik7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzKFRydXN0ZWRJbW1QdHIgYXJnMSkKICAgICB7CiAgICAgICAgIHJl
c2V0Q2FsbEFyZ3VtZW50cygpOwpAQCAtNTAwLDYgKzUwNywxMiBAQCBwdWJsaWM6CiAgICAgICAg
IHNldHVwVHdvU3R1YkFyZ3M8RlBSSW5mbzo6YXJndW1lbnRGUFIwLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjE+KGFyZzEsIGFyZzIpOwogICAgIH0KICAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0dXBBcmd1bWVudHMoRlBSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAg
bW92ZURvdWJsZShhcmcxLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOworICAgICAgICBtb3ZlKGFy
ZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CiAgICAgewogICAgICAgICBtb3ZlRG91YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CkBAIC01MzYsNiArNTQ5LDEyIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CisgICAgeworICAgICAgICBtb3ZlRG91YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICB9CisKICAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEZQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIG1vdmVEb3VibGUoYXJnMSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKQEAgLTU2MSw2ICs1ODAsMTIgQEAgcHVibGljOgogICAgICAgICBh
c3NlbWJsZXIoKS52bW92KEdQUkluZm86OmFyZ3VtZW50R1BSMiwgR1BSSW5mbzo6YXJndW1lbnRH
UFIzLCBhcmcyKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVu
dHMoRlBSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgICAgICBhc3NlbWJsZXIoKS52bW92KEdQUkluZm86
OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBhcmcxKTsKKyAgICB9CisKICAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEZQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMikKICAgICB7CiAgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NF
UGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5k
ZXggNDdhZjY5Ni4uZDQxNjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDU0VQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQ
aGFzZS5jcHAKQEAgLTEwNjUsNiArMTA2NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQXJp
dGhBYnM6CiAgICAgICAgIGNhc2UgQXJpdGhNaW46CiAgICAgICAgIGNhc2UgQXJpdGhNYXg6Cisg
ICAgICAgIGNhc2UgQXJpdGhQb3c6CiAgICAgICAgIGNhc2UgQXJpdGhTcXJ0OgogICAgICAgICBj
YXNlIFN0cmluZ0NoYXJBdDoKICAgICAgICAgY2FzZSBTdHJpbmdDaGFyQ29kZUF0OgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzlhNThkNi4uMzc1
NzkyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBA
IC0yMDAsNiArMjAwLDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQXJpdGhQb3c6IHsKKyAgICAgICAgICAgIGZp
eERvdWJsZUVkZ2U8TnVtYmVyVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZUludGVnZXIoKSkKKyAgICAgICAgICAgICAg
ICBzZXRVc2VLaW5kQW5kVW5ib3hJZlByb2ZpdGFibGU8SW50MzJVc2U+KG5vZGUtPmNoaWxkMigp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmaXhEb3VibGVFZGdlPE51bWJl
clVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwog
ICAgICAgICBjYXNlIEFyaXRoTXVsOiB7CiAgICAgICAgICAgICBpZiAobV9ncmFwaC5tdWxTaG91
bGRTcGVjdWxhdGVJbnRlZ2VyKG5vZGUpKSB7CiAgICAgICAgICAgICAgICAgc2V0VXNlS2luZEFu
ZFVuYm94SWZQcm9maXRhYmxlPEludDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDJiYzFmZmQuLmY5OTI3MDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZS5oCkBAIC01MjIsNyArNTIyLDcgQEAgc3RydWN0IE5vZGUgewogICAg
IE5vZGVGbGFncyBhcml0aE5vZGVGbGFncygpCiAgICAgewogICAgICAgICBOb2RlRmxhZ3MgcmVz
dWx0ID0gbV9mbGFncyAmIE5vZGVBcml0aEZsYWdzTWFzazsKLSAgICAgICAgaWYgKG9wKCkgPT0g
QXJpdGhNdWwgfHwgb3AoKSA9PSBBcml0aERpdiB8fCBvcCgpID09IEFyaXRoTW9kIHx8IG9wKCkg
PT0gQXJpdGhOZWdhdGUgfHwgb3AoKSA9PSBEb3VibGVBc0ludDMyKQorICAgICAgICBpZiAob3Ao
KSA9PSBBcml0aE11bCB8fCBvcCgpID09IEFyaXRoRGl2IHx8IG9wKCkgPT0gQXJpdGhQb3cgfHwg
b3AoKSA9PSBBcml0aE1vZCB8fCBvcCgpID09IEFyaXRoTmVnYXRlIHx8IG9wKCkgPT0gRG91Ymxl
QXNJbnQzMikKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIHJldHVybiByZXN1
bHQgJiB+Tm9kZU5lZWRzTmVnWmVybzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKaW5kZXggOTAzOWUzZi4uMGMyMWNmMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMTEyLDYgKzExMiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhBcml0aE1pbiwgTm9kZVJlc3VsdE51bWJlciB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBcml0aE1heCwgTm9kZVJlc3VsdE51bWJlciB8
IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhBcml0aFNxcnQsIE5vZGVSZXN1bHROdW1i
ZXIgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oQXJpdGhQb3csIE5vZGVSZXN1bHRO
dW1iZXIgfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgXAogICAgIC8qIEFkZCBvZiB2YWx1ZXMg
bWF5IGVpdGhlciBiZSBhcml0aG1ldGljLCBvciByZXN1bHQgaW4gc3RyaW5nIGNvbmNhdGVuYXRp
b24uICovXAogICAgIG1hY3JvKFZhbHVlQWRkLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVy
YXRlIHwgTm9kZU1pZ2h0Q2xvYmJlcikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T3BlcmF0aW9ucy5jcHAKaW5kZXggMzEwZjI0NC4uMmUyMDdkZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVk
ZSAiSlNBY3RpdmF0aW9uLmgiCiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlICJKU05hbWVTY29w
ZS5oIgorI2luY2x1ZGUgIk1hdGhPYmplY3QuaCIKICNpbmNsdWRlICJOYW1lSW5zdGFuY2UuaCIK
ICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIK
QEAgLTM0OSw2ICszNTAsMjkgQEAgRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRp
b25Db252ZXJ0VGhpcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHUKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3ApLnRvVGhpc09iamVjdChl
eGVjKSk7CiB9CiAKK2RvdWJsZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblBvd0RvdWJsZUludChk
b3VibGUgYSwgaW50MzJfdCBiKSAKK3sKKyAgICB1bnNpZ25lZCBjOworICAgIGlmIChiIDwgMCkg
eworICAgICAgICBhID0gMS4gLyBhOyAKKyAgICAgICAgYyA9IC1iOyAKKyAgICB9IGVsc2UgCisg
ICAgICAgIGMgPSBiOworICAgIGRvdWJsZSByZXMgPSAxLjsKKyAgICB3aGlsZSAoYykgeworICAg
ICAgICBpZiAoYyAmIDEpCisgICAgICAgICAgICByZXMgKj0gYTsKKyAgICAgICAgYSAqPSBhOwor
ICAgICAgICBjID4+PSAxOworICAgIH0KKyAgICByZXR1cm4gcmVzOworfQorCitkb3VibGUgREZH
X09QRVJBVElPTiBvcGVyYXRpb25Qb3dEb3VibGVEb3VibGUoZG91YmxlIGEsIGRvdWJsZSBiKSAK
K3sKKyAgICByZXR1cm4gbWF0aFBvd0dlbmVyYWwoYSwgYik7Cit9CisKIEpTQ2VsbCogREZHX09Q
RVJBVElPTiBvcGVyYXRpb25DcmVhdGVUaGlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNv
bnN0cnVjdG9yLCBpbnQzMl90IGlubGluZUNhcGFjaXR5KQogewogICAgIFZNKiB2bSA9ICZleGVj
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBj
MzE0ZThlLi4wNWY2ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaApAQCAtOTQsNiArOTQsNyBAQCB0eXBlZGVmIEpTQ2VsbCogREZHX09QRVJBVElPTiAoKkNf
REZHT3BlcmF0aW9uX0VPWikoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBpbnQzMgogdHlwZWRlZiBK
U0NlbGwqIERGR19PUEVSQVRJT04gKCpDX0RGR09wZXJhdGlvbl9FU3QpKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSopOwogdHlwZWRlZiBKU0NlbGwqIERGR19PUEVSQVRJT04gKCpDX0RGR09wZXJhdGlv
bl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7CiB0eXBlZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9O
ICgqRF9ERkdPcGVyYXRpb25fREQpKGRvdWJsZSwgZG91YmxlKTsKK3R5cGVkZWYgZG91YmxlIERG
R19PUEVSQVRJT04gKCpEX0RGR09wZXJhdGlvbl9EWikoZG91YmxlLCBpbnQzMl90KTsKIHR5cGVk
ZWYgZG91YmxlIERGR19PUEVSQVRJT04gKCpEX0RGR09wZXJhdGlvbl9aWikoaW50MzJfdCwgaW50
MzJfdCk7CiB0eXBlZGVmIGRvdWJsZSBERkdfT1BFUkFUSU9OICgqRF9ERkdPcGVyYXRpb25fRUop
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIHR5cGVkZWYgaW50MzJfdCBERkdfT1BFUkFU
SU9OICgqWl9ERkdPcGVyYXRpb25fRCkoZG91YmxlKTsKQEAgLTEyOSw2ICsxMzAsOCBAQCB0eXBl
ZGVmIFN0cmluZ0ltcGwqIERGR19PUEVSQVRJT04gKCpTdHJfREZHT3BlcmF0aW9uX0VKc3MpKEV4
ZWNTdGF0ZSosIEpTU3RyaW5nKgogSlNDZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmlu
Z0Zyb21DaGFyQ29kZShFeGVjU3RhdGUqLCBpbnQzMl90KSAgV1RGX0lOVEVSTkFMOyAKIAogLy8g
VGhlc2Ugcm91dGluZXMgYXJlIHByb3ZpZGUgY2FsbGJhY2tzIG91dCB0byBDKysgaW1wbGVtZW50
YXRpb25zIG9mIG9wZXJhdGlvbnMgdG9vIGNvbXBsZXggdG8gSklULgorZG91YmxlIERGR19PUEVS
QVRJT04gb3BlcmF0aW9uUG93RG91YmxlSW50KGRvdWJsZSwgaW50MzJfdCk7Citkb3VibGUgREZH
X09QRVJBVElPTiBvcGVyYXRpb25Qb3dEb3VibGVEb3VibGUoZG91YmxlLCBkb3VibGUpOwogSlND
ZWxsKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdChFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ3JlYXRl
VGhpcyhFeGVjU3RhdGUqLCBKU09iamVjdCogY29uc3RydWN0b3IsIGludDMyX3QgaW5saW5lQ2Fw
YWNpdHkpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uQ29udmVydFRoaXMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSkgV1RG
X0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBiMTY2MzA5Li4xZWM2YmEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMjc2LDcgKzI3NiwxNSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLQorICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgQXJpdGhQb3c6IHsKKyAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIGxl
ZnQgPSBub2RlLT5jaGlsZDEoKS0+cHJlZGljdGlvbigpOworICAgICAgICAgICAgU3BlY3VsYXRl
ZFR5cGUgcmlnaHQgPSBub2RlLT5jaGlsZDIoKS0+cHJlZGljdGlvbigpOworICAgICAgICAgICAg
aWYgKGxlZnQgJiYgcmlnaHQpCisgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBtZXJnZVByZWRp
Y3Rpb24oU3BlY0RvdWJsZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgICAgIAogICAgICAgICBjYXNlIEFyaXRoTXVsOiB7CiAgICAgICAgICAgICBTcGVjdWxh
dGVkVHlwZSBsZWZ0ID0gbm9kZS0+Y2hpbGQxKCktPnByZWRpY3Rpb24oKTsKICAgICAgICAgICAg
IFNwZWN1bGF0ZWRUeXBlIHJpZ2h0ID0gbm9kZS0+Y2hpbGQyKCktPnByZWRpY3Rpb24oKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXgg
YjE1ZjE5Yy4uOGU2YjdkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTM0MDIsNiArMzQwMiw4MiBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlQXJpdGhNdWwoTm9kZSogbm9kZSkKICAgICB9CiB9CiAKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aFBvdyhOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlLT5j
aGlsZDIoKS51c2VLaW5kKCkgPT0gSW50MzJVc2UpIHsgLy8gZG91YmxlICoqIGludCBhbmQgaW50
ICoqIGludAorICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CisgICAgICAgIFNwZWN1bGF0ZUludGVnZXJPcGVyYW5kIG9wMih0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CisgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAg
IEZQUlJlZyByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7CisjaWYgQ1BVKEFSTV9USFVNQjIpCisg
ICAgICAgIEdQUlRlbXBvcmFyeSBleHBvbmVudCh0aGlzKTsKKyAgICAgICAgR1BSUmVnIGV4cG9u
ZW50R1BSID0gZXhwb25lbnQuZ3ByKCk7CisgICAgICAgIEZQUlRlbXBvcmFyeSBiYXNlKHRoaXMp
LCBzY3JhdGNoKHRoaXMpOworICAgICAgICBGUFJSZWcgYmFzZUZQUiA9IGJhc2UuZnByKCk7CisK
KyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkubW92KGV4cG9uZW50R1BSLCBvcDIuZ3ByKCkpOwor
ICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS52bW92KGJhc2VGUFIsIG9wMS5mcHIoKSk7CisKKyAg
ICAgICAgSklUQ29tcGlsZXI6Okp1bXAgdXBvd2VyID0gbV9qaXQuYnJhbmNoMzIoSklUQ29tcGls
ZXI6OkdyZWF0ZXJUaGFuT3JFcXVhbCwgZXhwb25lbnRHUFIsIFRydXN0ZWRJbW0zMigwKSk7CisK
KyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihzY3JhdGNoLmZwcigpLCAxLik7CisgICAg
ICAgIG1faml0LmFzc2VtYmxlcigpLnZkaXYoYmFzZUZQUiwgc2NyYXRjaC5mcHIoKSwgYmFzZUZQ
Uik7CisgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnN1YihleHBvbmVudEdQUiwgQVJNVGh1bWJJ
bW1lZGlhdGU6Om1ha2VVSW50MTYoMCksIGV4cG9uZW50R1BSKTsKKyAgICAgICAgdXBvd2VyLmxp
bmsoJm1faml0KTsKKyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkudm1vdihyZXN1bHRGUFIsIDEu
KTsKKyAgICAgICAgSklUQ29tcGlsZXI6OkxhYmVsIGxvb3BTdGFydCgmbV9qaXQpOworICAgICAg
ICBtX2ppdC5hc3NlbWJsZXIoKS5sc3JfUyhleHBvbmVudEdQUiwgZXhwb25lbnRHUFIsIDEpOwor
ICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS5pdChBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uQ1Mp
OworICAgICAgICBtX2ppdC5hc3NlbWJsZXIoKS52bXVsKHJlc3VsdEZQUiwgcmVzdWx0RlBSLCBi
YXNlRlBSKTsKKyAgICAgICAgbV9qaXQuYXNzZW1ibGVyKCkuaXQoQVJNdjdBc3NlbWJsZXI6OkNv
bmRpdGlvbk5FKTsgCisgICAgICAgIG1faml0LmFzc2VtYmxlcigpLnZtdWwoYmFzZUZQUiwgYmFz
ZUZQUiwgYmFzZUZQUik7CisgICAgICAgIG1faml0Lmp1bXAobG9vcFN0YXJ0LCBKSVRDb21waWxl
cjo6Tm90RXF1YWwpOworI2Vsc2UKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qb3dEb3VibGVJbnQsIHJlc3VsdEZQUiwgb3AxLmZwcigp
LCBvcDIuZ3ByKCkpOworI2VuZGlmCisgICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5v
ZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHsgLy8gZG91YmxlICoqIGRvdWJsZQor
ICAgICAgICBpZiAoaXNEb3VibGVDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpICYmIHZh
bHVlT2ZOdW1iZXJDb25zdGFudChub2RlLT5jaGlsZDIoKS5ub2RlKCkpID09IC0wLjUpIHsKKyAg
ICAgICAgICAgIFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgICAgICBG
UFJSZWcgb3AxRlBSID0gb3AxLmZwcigpLCByZXN1bHRGUFIgPSByZXN1bHQuZnByKCk7CisgICAg
ICAgICAgICBGUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKSwgc2NyYXRjaDIodGhpcyk7CisgICAg
ICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaEludCh0aGlzKTsKKyAgICAgICAgICAgIGRvdWJs
ZSBuZWdJbmYgPSAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpOworICAg
ICAgICAgICAgbV9qaXQubG9hZERvdWJsZSgmbmVnSW5mLCBzY3JhdGNoMi5mcHIoKSk7CisgICAg
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3ROZWdJbmY9IG1faml0LmJyYW5jaERvdWJsZShK
SVRDb21waWxlcjo6RG91YmxlTm90RXF1YWxPclVub3JkZXJlZCwgc2NyYXRjaDIuZnByKCksIG9w
MUZQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigwKSwgc2NyYXRjaElu
dC5ncHIoKSk7CisgICAgICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShzY3JhdGNo
SW50LmdwcigpLCByZXN1bHRGUFIpOworICAgICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZXhp
dCA9IG1faml0Lmp1bXAoKTsKKworICAgICAgICAgICAgbm90TmVnSW5mLmxpbmsoJm1faml0KTsK
KyAgICAgICAgICAgIG1faml0Lm1vdmUoVHJ1c3RlZEltbTMyKDEpLCBzY3JhdGNoSW50Lmdwcigp
KTsKKyAgICAgICAgICAgIG1faml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHNjcmF0Y2hJbnQuZ3By
KCksIHJlc3VsdEZQUik7CisgICAgICAgICAgICBtX2ppdC5tb3ZlKFRydXN0ZWRJbW0zMigwKSwg
c2NyYXRjaEludC5ncHIoKSk7CisgICAgICAgICAgICBtX2ppdC5jb252ZXJ0SW50MzJUb0RvdWJs
ZShzY3JhdGNoSW50LmdwcigpLCBzY3JhdGNoMi5mcHIoKSk7CisgICAgICAgICAgICBtX2ppdC5h
ZGREb3VibGUoc2NyYXRjaDIuZnByKCksIG9wMUZQUik7CisgICAgICAgICAgICBtX2ppdC5zcXJ0
RG91YmxlKG9wMUZQUiwgc2NyYXRjaC5mcHIoKSk7CisgICAgICAgICAgICBtX2ppdC5kaXZEb3Vi
bGUoc2NyYXRjaC5mcHIoKSwgcmVzdWx0RlBSKTsgLy8gMSAvIHNxcnQoeCArIDAuMCk7CisKKyAg
ICAgICAgICAgIGV4aXQubGluaygmbV9qaXQpOworICAgICAgICAgICAgZG91YmxlUmVzdWx0KHJl
c3VsdEZQUiwgbm9kZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
U3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAg
ICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgIEZQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisgICAgICAgIEZQUlJlZyBvcDFGUFIgPSBv
cDEuZnByKCksIHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKSwgb3AyRlBSID0gb3AyLmZwcigpOwor
ICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blBvd0RvdWJsZURvdWJsZSwgcmVzdWx0RlBSLCBvcDFGUFIsIG9wMkZQUik7CisgICAgICAgIGRv
dWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorfQor
CisKICNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUludGVnZXJBcml0aERpdkZvclg4NihOb2RlKiBub2RlKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDZkMWRlZmEuLjcwOGNlZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAg
LTEwNzEsNiArMTA3MSwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBjYWxsT3BlcmF0aW9u
KG9wZXJhdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSk7CiAgICAgfQogCisgICAg
SklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihEX0RGR09wZXJhdGlvbl9EWiBvcGVyYXRp
b24sIEZQUlJlZyByZXN1bHQsIEZQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKKyAgICB7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIpOworICAgICAgICByZXR1cm4gYXBw
ZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJVENvbXBp
bGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRF9ERkdPcGVyYXRpb25fWlogb3BlcmF0aW9uLCBGUFJS
ZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgewogICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50cyhhcmcxLCBhcmcyKTsKQEAgLTE5NjksNiArMTk3NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNvbXBpbGVBcml0aE5lZ2F0ZShOb2RlKik7CiAgICAgdm9pZCBjb21waWxl
QXJpdGhNdWwoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUFyaXRoSU11bChOb2RlKik7CisgICAg
dm9pZCBjb21waWxlQXJpdGhQb3coTm9kZSAqKTsKICNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KQogICAgIHZvaWQgY29tcGlsZUludGVnZXJBcml0aERpdkZvclg4NihOb2RlKik7CiAjZWxpZiBD
UFUoQVBQTEVfQVJNVjdTKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMzU5NTc1My4uOThkODZjMyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CkBAIC0yMzkwLDYgKzIzOTAsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2Rl
KiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAorICAgIGNhc2UgQXJpdGhQ
b3c6IHsKKyAgICAgICAgY29tcGlsZUFyaXRoUG93KG5vZGUpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKICAgICBjYXNlIEFyaXRoU3FydDogewogICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVy
YW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEZQUlRlbXBvcmFyeSByZXN1
bHQodGhpcywgb3AxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCmluZGV4IDgwNDQwNDkuLjhmYTE3NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtMjMxNyw2ICsy
MzE3LDExIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgICAgICAKKyAgICBjYXNlIEFyaXRoUG93OiB7CisgICAgICAg
IGNvbXBpbGVBcml0aFBvdyhub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2Fz
ZSBBcml0aFNxcnQ6IHsKICAgICAgICAgU3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBGUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IDcx
YzUzYTMuLjQ4MDJiMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuY3BwCkBAIC0yMzksNiArMjM5LDE2IEBAIEFMV0FZU19JTkxJTkUgZG91YmxlIG1hdGhQ
b3coZG91YmxlIHgsIGRvdWJsZSB5KQogCiAjZW5kaWYKIAorCitkb3VibGUgSlNDX0hPU1RfQ0FM
TCBtYXRoUG93R2VuZXJhbChkb3VibGUgYXJnLCBkb3VibGUgYXJnMikKK3sKKyAgICBpZiAoc3Rk
Ojppc25hbihhcmcyKSkKKyAgICAgICAgcmV0dXJuIFFOYU47CisgICAgaWYgKHN0ZDo6aXNpbmYo
YXJnMikgJiYgZmFicyhhcmcpID09IDEpCisgICAgICAgIHJldHVybiBRTmFOOworICAgIHJldHVy
biBtYXRoUG93KGFyZywgYXJnMik7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY1BvdyhFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgLy8gRUNNQSAxNS44LjIu
MS4xMwpAQCAtMjQ2LDExICsyNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNQb3coRXhlY1N0YXRlKiBleGVjKQogICAgIGRvdWJsZSBhcmcgPSBleGVjLT5h
cmd1bWVudCgwKS50b051bWJlcihleGVjKTsKICAgICBkb3VibGUgYXJnMiA9IGV4ZWMtPmFyZ3Vt
ZW50KDEpLnRvTnVtYmVyKGV4ZWMpOwogCi0gICAgaWYgKHN0ZDo6aXNuYW4oYXJnMikpCi0gICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOYU4oKSk7Ci0gICAgaWYgKHN0ZDo6aXNpbmYo
YXJnMikgJiYgZmFicyhhcmcpID09IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOYU4oKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihtYXRoUG93KGFy
ZywgYXJnMikpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUobWF0aFBvd0dl
bmVyYWwoYXJnLCBhcmcyKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNSYW5kb20oRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IDE5MDYxNGIuLjFhZmFmZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTUzLDYgKzUzLDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFn
czsKICAgICB9OwogCisgICAgZG91YmxlIEpTQ19IT1NUX0NBTEwgbWF0aFBvd0dlbmVyYWwoZG91
YmxlIGFyZywgZG91YmxlIGFyZzIpOworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IE1hdGhPYmplY3RfaAo=
</data>
<flag name="review"
          id="229329"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>