<?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>203861</bug_id>
          
          <creation_ts>2019-11-05 13:45:20 -0800</creation_ts>
          <short_desc>Use fewer virtual registers in Wasm LLInt</short_desc>
          <delta_ts>2019-11-07 19:56:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587526</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-05 13:45:20 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587529</commentid>
    <comment_count>1</comment_count>
      <attachid>382845</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-05 13:54:20 -0800</bug_when>
    <thetext>Created attachment 382845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587991</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-06 16:41:08 -0800</bug_when>
    <thetext>This implementation worries me since it relies on the FunctionParser being written in a very specific way. Can we make it more robust somehow? Like what if you do this for some opcode where the function parser wants to re-use a stack slot internally for some reason to test it again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588533</commentid>
    <comment_count>3</comment_count>
      <attachid>382845</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-07 18:24:36 -0800</bug_when>
    <thetext>Comment on attachment 382845
Patch

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

&gt; Source/JavaScriptCore/llint/WebAssembly.asm:611
&gt; +        loadq -offset - 8 - CalleeSaveSpaceAsVirtualRegisters * 8[cfr], gpr
&gt;      end)
&gt;      forEachArgumentFPR(macro (offset, fpr)
&gt; -        loadd offset[ws1], fpr
&gt; +        loadd -offset - 8 - CalleeSaveSpaceAsVirtualRegisters * 8[cfr], fpr

This works because of the code you have in callInformationFor, right?

&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:354
&gt; +        for (uint32_t i = gprCount + fprCount; i--;)
&gt; +            registers.append(new RegisterID(::JSC::virtualRegisterForLocal(numberOfLLIntCalleeSaveRegisters + i)));

this looks wrong. How do we even know we have this much stack space? Should be easy to add a test I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588534</commentid>
    <comment_count>4</comment_count>
      <attachid>382845</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-07 18:26:37 -0800</bug_when>
    <thetext>Comment on attachment 382845
Patch

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

&gt;&gt; Source/JavaScriptCore/llint/WebAssembly.asm:611
&gt;&gt; +        loadd -offset - 8 - CalleeSaveSpaceAsVirtualRegisters * 8[cfr], fpr
&gt; 
&gt; This works because of the code you have in callInformationFor, right?

No, this work because of the code in LLIntGenerator::addArguments.

&gt;&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:354
&gt;&gt; +            registers.append(new RegisterID(::JSC::virtualRegisterForLocal(numberOfLLIntCalleeSaveRegisters + i)));
&gt; 
&gt; this looks wrong. How do we even know we have this much stack space? Should be easy to add a test I think.

Because we always allocate space to spill all the registers at entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588535</commentid>
    <comment_count>5</comment_count>
      <attachid>382845</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-07 18:28:43 -0800</bug_when>
    <thetext>Comment on attachment 382845
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:354
&gt;&gt;&gt; +            registers.append(new RegisterID(::JSC::virtualRegisterForLocal(numberOfLLIntCalleeSaveRegisters + i)));
&gt;&gt; 
&gt;&gt; this looks wrong. How do we even know we have this much stack space? Should be easy to add a test I think.
&gt; 
&gt; Because we always allocate space to spill all the registers at entry

might be worth a comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588550</commentid>
    <comment_count>6</comment_count>
      <attachid>382845</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-07 19:00:08 -0800</bug_when>
    <thetext>Comment on attachment 382845
Patch

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

Thanks for the review!

&gt;&gt;&gt;&gt; Source/JavaScriptCore/wasm/WasmLLIntGenerator.cpp:354
&gt;&gt;&gt;&gt; +            registers.append(new RegisterID(::JSC::virtualRegisterForLocal(numberOfLLIntCalleeSaveRegisters + i)));
&gt;&gt;&gt; 
&gt;&gt;&gt; this looks wrong. How do we even know we have this much stack space? Should be easy to add a test I think.
&gt;&gt; 
&gt;&gt; Because we always allocate space to spill all the registers at entry
&gt; 
&gt; might be worth a comment

sounds good, I&apos;ll add it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588552</commentid>
    <comment_count>7</comment_count>
      <attachid>383104</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-07 19:02:29 -0800</bug_when>
    <thetext>Created attachment 383104
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588553</commentid>
    <comment_count>8</comment_count>
      <attachid>383104</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-07 19:03:42 -0800</bug_when>
    <thetext>Comment on attachment 383104
Patch for landing

Oops, the ChangeLog got messed when rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588555</commentid>
    <comment_count>9</comment_count>
      <attachid>383106</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-11-07 19:10:32 -0800</bug_when>
    <thetext>Created attachment 383106
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588562</commentid>
    <comment_count>10</comment_count>
      <attachid>383106</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-07 19:55:55 -0800</bug_when>
    <thetext>Comment on attachment 383106
Patch for landing

Clearing flags on attachment: 383106

Committed r252231: &lt;https://trac.webkit.org/changeset/252231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588563</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-07 19:55:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588564</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-07 19:56:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57009335&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382845</attachid>
            <date>2019-11-05 13:54:20 -0800</date>
            <delta_ts>2019-11-07 19:02:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203861-20191105135420.patch</filename>
            <type>text/plain</type>
            <size>7446</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MTI5ZjlkM2UzZjgzZjhmZDMzNDNkMDU4ODJiZTEyMjc4NmNkYmNjLi4wNzAyYjY4NTE1ZjBmNmFk
NWZiZTE2YWI2OWEyMGZmOTUyNjFmMjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0xMS0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBVc2UgZmV3ZXIgdmlydHVhbCByZWdpc3RlcnMgaW4gV2FzbSBMTEludAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIHRo
ZSBudW1iZXIgb2YgdmlydHVhbCByZWdpc3RlcnMgaW4gdHdvIHdheXM6CisgICAgICAgIC0gUmUt
dXNlIGFyZ3VtZW50cyBmb3IgcmVzdWx0IHZhbHVlcyAoZS5nLiB0aGUgcmVzdWx0IG9mIGFkZCBs
aHMsIHJocyBzaG91bGQgZ28gaW4gbGhzLCBub3QgYSBuZXcgdmlydHVhbCByZWdpc3RlcikKKyAg
ICAgICAgLSBSZS11c2UgdGhlIGFyZ3VtZW50IHJlZ2lzdGVyIHNwYWNlIGZvciByZXR1cm4gdmFs
dWVzIHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiByZWdpc3RlcnMKKworICAgICAgICAqIGJ5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYjoKKyAgICAgICAgKiBnZW5lcmF0b3IvV2FzbS5yYjoKKyAgICAg
ICAgKiBsbGludC9XZWJBc3NlbWJseS5hc206CisgICAgICAgICogd2FzbS9XYXNtTExJbnRHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9y
bWF0aW9uRm9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZFJldHVy
bik6CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRSZWZJc051bGwpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHZXQpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEdyb3dNZW1vcnkpOgorICAgICAgICAoSlNDOjpX
YXNtOjpMTEludEdlbmVyYXRvcjo6YWRkU2VsZWN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJ
bnRHZW5lcmF0b3I6OmxvYWQpOgorCiAyMDE5LTExLTAyICBUYWRldSBaYWdhbGxvICA8dHphZ2Fs
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gQWxsb3cgdGllcmluZyB1cCBm
cm9tIExMSW50IHRvIEJCUQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKaW5kZXggZDY1MmI2NTg4NGM3OGIwM2JkODBkMmQ2N2Q0OGYxNjg2MTBiOWE3
OC4uNTMwZWU0NTkzM2ExMWMyNDk2ZWRiMzU4NDJlNTBmNzY0MDcyZDk5NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC0xMjk1LDEwICsx
Mjk1LDcgQEAgb3AgOmptcCwKICAgICAgICAgdGFyZ2V0TGFiZWw6IFdhc21Cb3VuZExhYmVsLAog
ICAgIH0KIAotb3AgOnJldCwKLSAgICBhcmdzOiB7Ci0gICAgICAgIHN0YWNrT2Zmc2V0OiB1bnNp
Z25lZCwKLSAgICB9CitvcCA6cmV0CiAKIG9wIDpzd2l0Y2gsCiAgICAgYXJnczogewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRvci9XYXNtLnJiIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2dlbmVyYXRvci9XYXNtLnJiCmluZGV4IDI0ZjI3ZTA2ODQyZmI5NzYwNDMz
OGU0YWJiNjI5MDhmNWE1OTQyNzYuLmMwMGM2MjlkZDAzNzYzNzMzOTI4MGMxNTFhODc5YzJhYjNi
YThkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvV2FzbS5y
YgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL1dhc20ucmIKQEAgLTU4LDcg
KzU4LDcgQEAgbW9kdWxlIFdhc20KIHRlbXBsYXRlPD4KIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFk
ZE9wPCN7b3BfdHlwZShvcCl9PihFeHByZXNzaW9uVHlwZSBsaHMsIEV4cHJlc3Npb25UeXBlIHJo
cywgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3Vs
dCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IGxoczsKICAgICAje29wLmNhcGl0YWxp
emVkX25hbWV9OjplbWl0KHRoaXMsIHJlc3VsdCwgbGhzLCByaHMpOwogICAgIHJldHVybiB7IH07
CiB9CkBAIC03MCw3ICs3MCw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZE9wPCN7b3BfdHlw
ZShvcCl9PihFeHByZXNzaW9uVHlwZSBsaHMsIEV4cHJlc3Npb25UeXBlIHJoCiB0ZW1wbGF0ZTw+
CiBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRPcDwje29wX3R5cGUob3ApfT4oRXhwcmVzc2lvblR5
cGUgb3BlcmFuZCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewot
ICAgIHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IG9wZXJhbmQ7CiAgICAg
I3tvcC5jYXBpdGFsaXplZF9uYW1lfTo6ZW1pdCh0aGlzLCByZXN1bHQsIG9wZXJhbmQpOwogICAg
IHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
V2ViQXNzZW1ibHkuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5
LmFzbQppbmRleCAyZTY5NDEzOGNkMTA1YjhlMjgyNDJkN2VlZDdiMGJkZjVlYTY5NWFiLi4wYmI5
ZmZkMzUyYWI0NDI4ZjVjNmM2Nzk1OGJjY2ZkNmVhM2Y0ZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KQEAgLTYwNCwxNiArNjA0LDExIEBAIGVuZCkK
IAogdW5wcmVmaXhlZFdhc21PcCh3YXNtX3JldCwgV2FzbVJldCwgbWFjcm8oY3R4KQogICAgIGNo
ZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCi0gICAgd2dldHUoY3R4LCBtX3N0YWNrT2Zmc2V0
LCB3czEpCi0gICAgbHNoaWZ0aSAzLCB3czEKLSAgICBuZWdpIHdzMQotICAgIHN4aTJxIHdzMSwg
d3MxCi0gICAgYWRkcCBjZnIsIHdzMQogICAgIGZvckVhY2hBcmd1bWVudEdQUihtYWNybyAob2Zm
c2V0LCBncHIpCi0gICAgICAgIGxvYWRxIG9mZnNldFt3czFdLCBncHIKKyAgICAgICAgbG9hZHEg
LW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0s
IGdwcgogICAgIGVuZCkKICAgICBmb3JFYWNoQXJndW1lbnRGUFIobWFjcm8gKG9mZnNldCwgZnBy
KQotICAgICAgICBsb2FkZCBvZmZzZXRbd3MxXSwgZnByCisgICAgICAgIGxvYWRkIC1vZmZzZXQg
LSA4IC0gQ2FsbGVlU2F2ZVNwYWNlQXNWaXJ0dWFsUmVnaXN0ZXJzICogOFtjZnJdLCBmcHIKICAg
ICBlbmQpCiAgICAgZG9SZXR1cm4oKQogZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggMGJkNDljZTYxODNiZmZhOGE1MjU2
NTI4ODEwMTViZjIwMjU3NmRiZC4uY2RjMGU1MTkxYjYzZmZmNDFjZjg3YzdiN2JiYTY3NDU0NWNj
NmE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5l
cmF0b3IuY3BwCkBAIC0zNDksMTIgKzM0OSwxNSBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpjYWxs
SW5mb3JtYXRpb25Gb3IoY29uc3QgU2lnbmF0dXJlJiBzaWduYXR1cmUsIENhbGxSb2xlIHJvbAog
ICAgIH07CiAKIAotICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBncHJDb3VudDsgaSsrKQot
ICAgICAgICByZWdpc3RlcnMuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKLSAgICBmb3IgKHVpbnQz
Ml90IGkgPSAwOyBpIDwgZnByQ291bnQ7IGkrKykKLSAgICAgICAgcmVnaXN0ZXJzLmFwcGVuZChu
ZXdUZW1wb3JhcnkoKSk7CisgICAgaWYgKHJvbGUgPT0gQ2FsbFJvbGU6OkNhbGxlZSkgeworICAg
ICAgICBmb3IgKHVpbnQzMl90IGkgPSBncHJDb3VudCArIGZwckNvdW50OyBpLS07KQorICAgICAg
ICAgICAgcmVnaXN0ZXJzLmFwcGVuZChuZXcgUmVnaXN0ZXJJRCg6OkpTQzo6dmlydHVhbFJlZ2lz
dGVyRm9yTG9jYWwobnVtYmVyT2ZMTEludENhbGxlZVNhdmVSZWdpc3RlcnMgKyBpKSkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBncHJDb3VudDsgaSsr
KQorICAgICAgICAgICAgcmVnaXN0ZXJzLmFwcGVuZChuZXdUZW1wb3JhcnkoKSk7CisgICAgICAg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBmcHJDb3VudDsgaSsrKQorICAgICAgICAgICAgcmVn
aXN0ZXJzLmFwcGVuZChuZXdUZW1wb3JhcnkoKSk7CiAKLSAgICBpZiAocm9sZSA9PSBDYWxsUm9s
ZTo6Q2FsbGVyKSB7CiAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzaWduYXR1cmUu
YXJndW1lbnRDb3VudCgpOyBpKyspCiAgICAgICAgICAgICBhbGxvY2F0ZVN0YWNrUmVnaXN0ZXIo
c2lnbmF0dXJlLmFyZ3VtZW50KGkpKTsKICAgICAgICAgZ3BySW5kZXggPSAwOwpAQCAtNjE4LDcg
KzYyMSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZFJldHVybihjb25zdCBDb250cm9sVHlw
ZSYgZGF0YSwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJlCiAKICAgICBMTEludENhbGxJbmZvcm1h
dGlvbiBpbmZvID0gY2FsbEluZm9ybWF0aW9uRm9yKCpkYXRhLm1fc2lnbmF0dXJlLCBDYWxsUm9s
ZTo6Q2FsbGVlKTsKICAgICB1bmlmeVZhbHVlc1dpdGhCbG9jayhpbmZvLnJlc3VsdHMsIHJldHVy
blZhbHVlcyk7Ci0gICAgV2FzbVJldDo6ZW1pdCh0aGlzLCBpbmZvLnN0YWNrT2Zmc2V0KTsKKyAg
ICBXYXNtUmV0OjplbWl0KHRoaXMpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTczNiw3ICs3
MzksNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQgdGFi
bGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogCiBhdXRvIExMSW50R2VuZXJhdG9yOjph
ZGRSZWZJc051bGwoRXhwcmVzc2lvblR5cGUgdmFsdWUsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQp
IC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1wb3JhcnkoKTsKKyAgICBy
ZXN1bHQgPSB2YWx1ZTsKICAgICBXYXNtUmVmSXNOdWxsOjplbWl0KHRoaXMsIHJlc3VsdCwgdmFs
dWUpOwogCiAgICAgcmV0dXJuIHsgfTsKQEAgLTc1Miw3ICs3NTUsNyBAQCBhdXRvIExMSW50R2Vu
ZXJhdG9yOjphZGRSZWZGdW5jKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KSAtPiBQYXJ0aQogCiBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRUYWJsZUdldCh1bnNpZ25lZCB0
YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkg
LT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJl
c3VsdCA9IGluZGV4OwogICAgIFdhc21UYWJsZUdldDo6ZW1pdCh0aGlzLCByZXN1bHQsIGluZGV4
LCB0YWJsZUluZGV4KTsKIAogICAgIHJldHVybiB7IH07CkBAIC03NzUsNyArNzc4LDcgQEAgYXV0
byBMTEludEdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJl
c3Npb25UeXBlJiByZXN1bHQpIC0KIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHcm93
KHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlIGZpbGwsIEV4cHJlc3Npb25UeXBl
IGRlbHRhLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7Ci0gICAg
cmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0gZmlsbDsKICAgICBXYXNtVGFi
bGVHcm93OjplbWl0KHRoaXMsIHJlc3VsdCwgZmlsbCwgZGVsdGEsIHRhYmxlSW5kZXgpOwogCiAg
ICAgcmV0dXJuIHsgfTsKQEAgLTgwNSw3ICs4MDgsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjph
ZGRDdXJyZW50TWVtb3J5KEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQK
IAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkR3Jvd01lbW9yeShFeHByZXNzaW9uVHlwZSBkZWx0
YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3Vs
dCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IGRlbHRhOwogICAgIFdhc21Hcm93TWVt
b3J5OjplbWl0KHRoaXMsIHJlc3VsdCwgZGVsdGEpOwogCiAgICAgcmV0dXJuIHsgfTsKQEAgLTgx
Myw3ICs4MTYsNyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRHcm93TWVtb3J5KEV4cHJlc3Np
b25UeXBlIGRlbHRhLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQogCiBhdXRvIExMSW50R2VuZXJh
dG9yOjphZGRTZWxlY3QoRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBFeHByZXNzaW9uVHlwZSBu
b25aZXJvLCBFeHByZXNzaW9uVHlwZSB6ZXJvLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQ
YXJ0aWFsUmVzdWx0CiB7Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0
ID0gY29uZGl0aW9uOwogICAgIFdhc21TZWxlY3Q6OmVtaXQodGhpcywgcmVzdWx0LCBjb25kaXRp
b24sIG5vblplcm8sIHplcm8pOwogCiAgICAgcmV0dXJuIHsgfTsKQEAgLTgyMSw3ICs4MjQsNyBA
QCBhdXRvIExMSW50R2VuZXJhdG9yOjphZGRTZWxlY3QoRXhwcmVzc2lvblR5cGUgY29uZGl0aW9u
LCBFeHByZXNzaW9uVHlwZSBub25aZXJvLAogCiBhdXRvIExMSW50R2VuZXJhdG9yOjpsb2FkKExv
YWRPcFR5cGUgb3AsIEV4cHJlc3Npb25UeXBlIHBvaW50ZXIsIEV4cHJlc3Npb25UeXBlJiByZXN1
bHQsIHVpbnQzMl90IG9mZnNldCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3VsdCA9IG5l
d1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IHBvaW50ZXI7CiAgICAgc3dpdGNoIChvcCkgewog
ICAgIGNhc2UgTG9hZE9wVHlwZTo6STMyTG9hZDhTOgogICAgICAgICBXYXNtSTMyTG9hZDhTOjpl
bWl0KHRoaXMsIHJlc3VsdCwgcG9pbnRlciwgb2Zmc2V0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383104</attachid>
            <date>2019-11-07 19:02:29 -0800</date>
            <delta_ts>2019-11-07 19:10:28 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203861-20191107190226.patch</filename>
            <type>text/plain</type>
            <size>23000</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxOTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
N2MzNGU5YzY0MmJlYTc0ZTJkMzZhZTk5ZjgxNzEwZjg0NDNlM2M5Li4yN2VhMWM1NDQyOTEwOWY2
ZGE1ZmVmODlmZWQ2MDNiYTAwYzNjZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MiBAQAorMjAxOS0xMS0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBVc2UgZmV3ZXIgdmlydHVhbCByZWdpc3RlcnMgaW4gV2FzbSBMTEludAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgUmVkdWNlIHRoZSBu
dW1iZXIgb2YgdmlydHVhbCByZWdpc3RlcnMgaW4gdHdvIHdheXM6CisgICAgICAgIC0gUmUtdXNl
IGFyZ3VtZW50cyBmb3IgcmVzdWx0IHZhbHVlcyAoZS5nLiB0aGUgcmVzdWx0IG9mIGFkZCBsaHMs
IHJocyBzaG91bGQgZ28gaW4gbGhzLCBub3QgYSBuZXcgdmlydHVhbCByZWdpc3RlcikKKyAgICAg
ICAgLSBSZS11c2UgdGhlIGFyZ3VtZW50IHJlZ2lzdGVyIHNwYWNlIGZvciByZXR1cm4gdmFsdWVz
IHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiByZWdpc3RlcnMKKworICAgICAgICAqIGJ5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5yYjoKKyAgICAgICAgKiBnZW5lcmF0b3IvV2FzbS5yYjoKKyAgICAgICAg
KiBsbGludC9XZWJBc3NlbWJseS5hc206CisgICAgICAgICogd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZFJldHVybik6
CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRSZWZJc051bGwpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHZXQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6
V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEdyb3dNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNt
OjpMTEludEdlbmVyYXRvcjo6YWRkU2VsZWN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRH
ZW5lcmF0b3I6OmxvYWQpOgorCisyMDE5LTExLTAyICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9A
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBc3NlbWJseV0gQWxsb3cgdGllcmluZyB1cCBmcm9t
IExMSW50IHRvIEJCUQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAg
ICAgRXZlbiB0aG91Z2ggdGhlIGludGVycHJldGVyIHdhcyBvdmVyYWxsIG5ldXRyYWwgb24gdGhy
b3VnaHB1dCwgaXQncyBzdGlsbCBhIHJlZ3Jlc3Npb24gaW4gcGF0aG9sb2dpY2FsCisgICAgICAg
IGNhc2VzIHdoZXJlIG1hc3NpdmUgZnVuY3Rpb25zIHNwZW5kIHRvbyBsb25nIGluIHRoZSBMTElu
dCB3aGlsZSBjb21waWxpbmcgdGhlIGZ1bmN0aW9uIHdpdGggT01HLiBUaGlzCisgICAgICAgIHBh
dGNoIG1ha2VzIGl0IHNvIHRoYXQgdGhlIExMSW50IGNhbiB0aWVyIHVwIHRvIEJCUSBmcm9tIHRo
ZSBwcm9sb2d1ZSwgd2hpbGUgc3RpbGwgdGllcmluZyB1cCB0byBPTUcgZnJvbQorICAgICAgICBm
cm9tIGxvb3BzLiBUaGlzIGlzIGEgaHVnZSBzcGVlZCB1cCBvbiB0aGUgdHNmLXdhc20gc3VidGVz
dCBvZiBKUzI6CisKKyAgICAgICAgIyBCQlEgLT4gT01HCisgICAgICAgIFN0YXJ0dXA6IDEwMC42
ODAKKyAgICAgICAgUnVudGltZTogMS44NTIKKyAgICAgICAgU2NvcmU6IDEzLjY1NAorCisgICAg
ICAgICMgTExJbnQgLT4gT01HCisgICAgICAgIFN0YXJ0dXA6IDM3OC4yMDUKKyAgICAgICAgUnVu
dGltZTogMS4yOTEKKyAgICAgICAgU2NvcmU6IDIyLjA4MgorCisgICAgICAgICMgTExJbnQgLT4g
QkJRIC0+IE9NRworICAgICAgICBTdGFydHVwOiA0MDUuOTgzCisgICAgICAgIFJ1bnRpbWU6IDIu
MzExCisgICAgICAgIFNjb3JlOiAzMC42MjMKKworICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5j
cHA6CisgICAgICAgIChKU0M6Om92ZXJyaWRlRGVmYXVsdHMpOgorICAgICAgICAqIHJ1bnRpbWUv
T3B0aW9uc0xpc3QuaDoKKyAgICAgICAgKiB3YXNtL1dhc21CQlFQbGFuLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6QkJRUGxhbjo6QkJRUGxhbik6CisgICAgICAgIChKU0M6Oldhc206OkJCUVBs
YW46OndvcmspOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjpjb21waWxlRnVuY3Rpb24p
OgorICAgICAgICAqIHdhc20vV2FzbUVudHJ5UGxhbi5jcHA6CisgICAgICAgIChKU0M6Oldhc206
OkVudHJ5UGxhbjo6RW50cnlQbGFuKToKKyAgICAgICAgKiB3YXNtL1dhc21FbnRyeVBsYW4uaDoK
KyAgICAgICAgKiB3YXNtL1dhc21MTEludFRpZXJVcENvdW50ZXIuaDoKKyAgICAgICAgKEpTQzo6
V2FzbTo6TExJbnRUaWVyVXBDb3VudGVyOjpvcHRpbWl6ZUFmdGVyV2FybVVwKToKKyAgICAgICAg
KEpTQzo6V2FzbTo6TExJbnRUaWVyVXBDb3VudGVyOjpvcHRpbWl6ZVNvb24pOgorICAgICAgICAq
IHdhc20vV2FzbU9NR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpPTUdQbGFuOjp3b3Jr
KToKKyAgICAgICAgKiB3YXNtL1dhc21TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTElu
dDo6aml0Q29tcGlsZUFuZFNldEhldXJpc3RpY3MpOgorCiAyMDE5LTEwLTMxICBZdXN1a2UgU3V6
dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc3BlY3VsYXRp
dmUgR1RLIGJ1aWxkIGZpeCByMjUxODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCBkNjUyYjY1ODg0Yzc4YjAzYmQ4MGQyZDY3ZDQ4ZjE2
ODYxMGI5YTc4Li41MzBlZTQ1OTMzYTExYzI0OTZlZGIzNTg0MmU1MGY3NjQwNzJkOTk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKQEAgLTEy
OTUsMTAgKzEyOTUsNyBAQCBvcCA6am1wLAogICAgICAgICB0YXJnZXRMYWJlbDogV2FzbUJvdW5k
TGFiZWwsCiAgICAgfQogCi1vcCA6cmV0LAotICAgIGFyZ3M6IHsKLSAgICAgICAgc3RhY2tPZmZz
ZXQ6IHVuc2lnbmVkLAotICAgIH0KK29wIDpyZXQKIAogb3AgOnN3aXRjaCwKICAgICBhcmdzOiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL1dhc20ucmIgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL1dhc20ucmIKaW5kZXggMjRmMjdlMDY4NDJm
Yjk3NjA0MzM4ZTRhYmI2MjkwOGY1YTU5NDI3Ni4uYzAwYzYyOWRkMDM3NjM3MzM5MjgwYzE1MWE4
NzljMmFiM2JhOGRmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2dlbmVyYXRv
ci9XYXNtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5lcmF0b3IvV2FzbS5yYgpA
QCAtNTgsNyArNTgsNyBAQCBtb2R1bGUgV2FzbQogdGVtcGxhdGU8PgogYXV0byBMTEludEdlbmVy
YXRvcjo6YWRkT3A8I3tvcF90eXBlKG9wKX0+KEV4cHJlc3Npb25UeXBlIGxocywgRXhwcmVzc2lv
blR5cGUgcmhzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7Ci0g
ICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0gbGhzOwogICAgICN7b3Au
Y2FwaXRhbGl6ZWRfbmFtZX06OmVtaXQodGhpcywgcmVzdWx0LCBsaHMsIHJocyk7CiAgICAgcmV0
dXJuIHsgfTsKIH0KQEAgLTcwLDcgKzcwLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkT3A8
I3tvcF90eXBlKG9wKX0+KEV4cHJlc3Npb25UeXBlIGxocywgRXhwcmVzc2lvblR5cGUgcmgKIHRl
bXBsYXRlPD4KIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZE9wPCN7b3BfdHlwZShvcCl9PihFeHBy
ZXNzaW9uVHlwZSBvcGVyYW5kLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVz
dWx0CiB7Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0gb3BlcmFu
ZDsKICAgICAje29wLmNhcGl0YWxpemVkX25hbWV9OjplbWl0KHRoaXMsIHJlc3VsdCwgb3BlcmFu
ZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvV2Vi
QXNzZW1ibHkuYXNtCmluZGV4IDJlNjk0MTM4Y2QxMDViOGUyODI0MmQ3ZWVkN2IwYmRmNWVhNjk1
YWIuLjBiYjlmZmQzNTJhYjQ0MjhmNWM2YzY3OTU4YmNjZmQ2ZWEzZjRmYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpAQCAtNjA0LDE2ICs2MDQsMTEg
QEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNtUmV0LCBtYWNybyhjdHgp
CiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICB3Z2V0dShjdHgsIG1fc3Rh
Y2tPZmZzZXQsIHdzMSkKLSAgICBsc2hpZnRpIDMsIHdzMQotICAgIG5lZ2kgd3MxCi0gICAgc3hp
MnEgd3MxLCB3czEKLSAgICBhZGRwIGNmciwgd3MxCiAgICAgZm9yRWFjaEFyZ3VtZW50R1BSKG1h
Y3JvIChvZmZzZXQsIGdwcikKLSAgICAgICAgbG9hZHEgb2Zmc2V0W3dzMV0sIGdwcgorICAgICAg
ICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmlydHVhbFJlZ2lzdGVycyAq
IDhbY2ZyXSwgZ3ByCiAgICAgZW5kKQogICAgIGZvckVhY2hBcmd1bWVudEZQUihtYWNybyAob2Zm
c2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIG9mZnNldFt3czFdLCBmcHIKKyAgICAgICAgbG9hZGQg
LW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdpc3RlcnMgKiA4W2Nmcl0s
IGZwcgogICAgIGVuZCkKICAgICBkb1JldHVybigpCiBlbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDQwYWQyMTgxYjU4ZjY5OTY1NGIyYjMwZDRlMDhj
ZTYzNDk4NmYyMmYuLjNiN2I2ZGI0MDU2OGFlM2FhY2Q1NGNjODQ0ZmI5ZmRlOWJhN2MzZTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0zNjAsNyArMzYw
LDcgQEAgc3RhdGljIHZvaWQgb3ZlcnJpZGVEZWZhdWx0cygpCiAgICAgT3B0aW9uczo6dXNlTWFj
aEZvckV4Y2VwdGlvbnMoKSA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICBpZiAoT3B0aW9uczo6dXNl
V2FzbUxMSW50KCkpIHsKKyAgICBpZiAoT3B0aW9uczo6dXNlV2FzbUxMSW50KCkgJiYgIU9wdGlv
bnM6Ondhc21MTEludFRpZXJzVXBUb0JCUSgpKSB7CiAgICAgICAgIE9wdGlvbnM6OnRocmVzaG9s
ZEZvck9NR09wdGltaXplQWZ0ZXJXYXJtVXAoKSA9IDE1MDA7CiAgICAgICAgIE9wdGlvbnM6OnRo
cmVzaG9sZEZvck9NR09wdGltaXplU29vbigpID0gMTAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDVhMjU2ODRkNzI3MTFiZjdkMjJh
ZmE1NTI0NzY5ZTczNjRhMmJhMDYuLjUzMjBmYzEyMGYwZDcwMTkyZmVhOGVkYmYzYWVmYzdkODg2
MjU2OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApA
QCAtNDI4LDYgKzQyOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIFwKICAgICB2KEJvb2wsIHVz
ZUJCUVRpZXJVcENoZWNrcywgdHJ1ZSwgTm9ybWFsLCAiRW5hYmxlcyB0aWVyIHVwIGNoZWNrcyBm
b3Igb3VyIEJCUSBjb2RlLiIpIFwKICAgICB2KEJvb2wsIHVzZVdlYkFzc2VtYmx5T1NSLCB0cnVl
LCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KEludDMyLCB0aHJlc2hvbGRGb3JCQlFPcHRpbWl6
ZUFmdGVyV2FybVVwLCAxNTAsIE5vcm1hbCwgIlRoZSBjb3VudCBiZWZvcmUgd2UgdGllciB1cCBh
IGZ1bmN0aW9uIHRvIEJCUS4iKSBcCisgICAgdihJbnQzMiwgdGhyZXNob2xkRm9yQkJRT3B0aW1p
emVTb29uLCA1MCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihJbnQzMiwgdGhyZXNob2xkRm9y
T01HT3B0aW1pemVBZnRlcldhcm1VcCwgNTAwMDAsIE5vcm1hbCwgIlRoZSBjb3VudCBiZWZvcmUg
d2UgdGllciB1cCBhIGZ1bmN0aW9uIHRvIE9NRy4iKSBcCiAgICAgdihJbnQzMiwgdGhyZXNob2xk
Rm9yT01HT3B0aW1pemVTb29uLCA1MDAsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoSW50MzIs
IG9tZ1RpZXJVcENvdW50ZXJJbmNyZW1lbnRGb3JMb29wLCAxLCBOb3JtYWwsICJUaGUgYW1vdW50
IHRoZSB0aWVyIHVwIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQgb24gZWFjaCBsb29wIGJhY2tlZGdl
LiIpIFwKQEAgLTQ0Miw2ICs0NDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2KEJvb2wsIHVz
ZUZhc3RUTFNGb3JXYXNtQ29udGV4dCwgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCBz
dG9yZSBjb250ZXh0IGluIGZhc3QgVExTLiBJZiBmYWxzZSwgd2Ugd2lsbCBwaW4gaXQgdG8gYSBy
ZWdpc3Rlci4iKSBcCiAgICAgdihCb29sLCB3YXNtQkJRVXNlc0FpciwgdHJ1ZSwgTm9ybWFsLCBu
dWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VXYXNtTExJbnQsIHRydWUsIE5vcm1hbCwgbnVsbHB0
cikgXAorICAgIHYoQm9vbCwgd2FzbUxMSW50VGllcnNVcFRvQkJRLCB0cnVlLCBOb3JtYWwsIG51
bGxwdHIpIFwKICAgICB2KFNpemUsIHdlYkFzc2VtYmx5QkJRQWlyTW9kZVRocmVzaG9sZCwgaXNJ
T1MoKSA/ICgxMCAqIE1CKSA6IDAsIE5vcm1hbCwgIklmIDAsIHdlIGFsd2F5cyB1c2UgQkJRIEFp
ci4gSWYgV2FzbSBtb2R1bGUgY29kZSBzaXplIGhpdHMgdGhpcyB0aHJlc2hvbGQsIHdlIGNvbXBp
bGUgV2FzbSBtb2R1bGUgd2l0aCBCMyBCQlEgbW9kZS4iKSBcCiAgICAgdihCb29sLCB1c2VXZWJB
c3NlbWJseVN0cmVhbWluZ0FwaSwgZW5hYmxlV2ViQXNzZW1ibHlTdHJlYW1pbmdBcGksIE5vcm1h
bCwgIkFsbG93IHRvIHJ1biBXZWJBc3NlbWJseSdzIFN0cmVhbWluZyBBUEkiKSBcCiAgICAgdihC
b29sLCB1c2VFYWdlcldlYkFzc2VtYmx5TW9kdWxlSGFzaGluZywgZmFsc2UsIE5vcm1hbCwgIlVu
bmFtZWQgV2ViQXNzZW1ibHkgbW9kdWxlcyBhcmUgaWRlbnRpZmllZCBpbiBiYWNrdHJhY2VzIHRo
cm91Z2ggdGhlaXIgaGFzaCwgaWYgYXZhaWxhYmxlLiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21CQlFQbGFuLmNwcAppbmRleCA4ZWJhNGEzOTk3NTgxY2I5N2ZiYWM1YzVjMzVk
OTQ4MTg5OGU2OTA1Li5hYWM1YThjMjY1MmUzNjMwMTBkYzgxYzcyZjNjZDA2NDRjNTI5Y2FlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCkBAIC01Myw2ICs1
MywxNCBAQCBuYW1lc3BhY2UgV2FzbUJCUVBsYW5JbnRlcm5hbCB7CiBzdGF0aWMgY29uc3RleHBy
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQogCitCQlFQbGFuOjpCQlFQbGFuKENvbnRleHQqIGNv
bnRleHQsIFJlZjxNb2R1bGVJbmZvcm1hdGlvbj4gbW9kdWxlSW5mb3JtYXRpb24sIHVpbnQzMl90
IGZ1bmN0aW9uSW5kZXgsIENvZGVCbG9jayogY29kZUJsb2NrLCBDb21wbGV0aW9uVGFzayYmIGNv
bXBsZXRpb25UYXNrKQorICAgIDogRW50cnlQbGFuKGNvbnRleHQsIFdURk1vdmUobW9kdWxlSW5m
b3JtYXRpb24pLCBXVEZNb3ZlKGNvbXBsZXRpb25UYXNrKSkKKyAgICAsIG1fY29kZUJsb2NrKGNv
ZGVCbG9jaykKKyAgICAsIG1fZnVuY3Rpb25JbmRleChmdW5jdGlvbkluZGV4KQoreworICAgIHNl
dE1vZGUobV9jb2RlQmxvY2stPm1vZGUoKSk7Cit9CisKIGJvb2wgQkJRUGxhbjo6cHJlcGFyZUlt
cGwoKQogewogICAgIGNvbnN0IGF1dG8mIGZ1bmN0aW9ucyA9IG1fbW9kdWxlSW5mb3JtYXRpb24t
PmZ1bmN0aW9uczsKQEAgLTgwLDcgKzg4LDYgQEAgdm9pZCBCQlFQbGFuOjp3b3JrKENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGllclVwQ291bnQ+IHRpZXJV
cCA9IG1ha2VVbmlxdWU8VGllclVwQ291bnQ+KCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEludGVy
bmFsRnVuY3Rpb24+IGZ1bmN0aW9uID0gY29tcGlsZUZ1bmN0aW9uKG1fZnVuY3Rpb25JbmRleCwg
Y29udGV4dCwgdW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMsIHRpZXJVcC5nZXQoKSk7CiAKLSAgICBF
bnRyeXBvaW50IGJicUVudHJ5cG9pbnQ7CiAgICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKCpjb250
ZXh0Lndhc21FbnRyeXBvaW50SklULCBudWxscHRyLCBKSVRDb21waWxhdGlvbkNhbkZhaWwpOwog
ICAgIGlmIChVTkxJS0VMWShsaW5rQnVmZmVyLmRpZEZhaWxUb0FsbG9jYXRlKCkpKSB7CiAgICAg
ICAgIEJhc2U6OmZhaWwoaG9sZExvY2sobV9sb2NrKSwgbWFrZVN0cmluZygiT3V0IG9mIGV4ZWN1
dGFibGUgbWVtb3J5IHdoaWxlIHRpZXJpbmcgdXAgZnVuY3Rpb24gYXQgaW5kZXggIiwgU3RyaW5n
OjpudW1iZXIobV9mdW5jdGlvbkluZGV4KSkpOwpAQCAtODgsMTUgKzk1LDE1IEBAIHZvaWQgQkJR
UGxhbjo6d29yayhDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgfQogCiAgICAgc2l6ZV90
IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IG1fZnVuY3Rpb25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRp
b24tPmltcG9ydEZ1bmN0aW9uQ291bnQoKTsKLSAgICBiYnFFbnRyeXBvaW50LmNvbXBpbGF0aW9u
ID0gbWFrZVVuaXF1ZTxCMzo6Q29tcGlsYXRpb24+KAotICAgICAgICBGSU5BTElaRV9DT0RFKGxp
bmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJseSBCQlEgZnVuY3Rpb25b
JWldIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIG1ha2VTdHJpbmcoSW5kZXhPck5hbWUoZnVu
Y3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi0+Z2V0KGZ1
bmN0aW9uSW5kZXhTcGFjZSkpKS5hc2NpaSgpLmRhdGEoKSksCisgICAgU2lnbmF0dXJlSW5kZXgg
c2lnbmF0dXJlSW5kZXggPSBtX21vZHVsZUluZm9ybWF0aW9uLT5pbnRlcm5hbEZ1bmN0aW9uU2ln
bmF0dXJlSW5kaWNlc1ttX2Z1bmN0aW9uSW5kZXhdOworICAgIGNvbnN0IFNpZ25hdHVyZSYgc2ln
bmF0dXJlID0gU2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChzaWduYXR1cmVJbmRleCk7CisgICAg
ZnVuY3Rpb24tPmVudHJ5cG9pbnQuY29tcGlsYXRpb24gPSBtYWtlVW5pcXVlPEIzOjpDb21waWxh
dGlvbj4oCisgICAgICAgIEZJTkFMSVpFX1dBU01fQ09ERV9GT1JfTU9ERShDb21waWxhdGlvbk1v
ZGU6OkJCUU1vZGUsIGxpbmtCdWZmZXIsIEIzQ29tcGlsYXRpb25QdHJUYWcsICJXZWJBc3NlbWJs
eSBCQlEgZnVuY3Rpb25bJWldICVzIG5hbWUgJXMiLCBtX2Z1bmN0aW9uSW5kZXgsIHNpZ25hdHVy
ZS50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBtYWtlU3RyaW5nKEluZGV4T3JOYW1lKGZ1bmN0
aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5j
dGlvbkluZGV4U3BhY2UpKSkuYXNjaWkoKS5kYXRhKCkpLAogICAgICAgICBXVEZNb3ZlKGNvbnRl
eHQud2FzbUVudHJ5cG9pbnRCeXByb2R1Y3RzKSk7CiAKLSAgICBiYnFFbnRyeXBvaW50LmNhbGxl
ZVNhdmVSZWdpc3RlcnMgPSBXVEZNb3ZlKGZ1bmN0aW9uLT5lbnRyeXBvaW50LmNhbGxlZVNhdmVS
ZWdpc3RlcnMpOwotCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPFdhc21FbnRyeVB0clRhZz4g
ZW50cnlwb2ludDsKICAgICB7Ci0gICAgICAgIFJlZjxCQlFDYWxsZWU+IGNhbGxlZSA9IEJCUUNh
bGxlZTo6Y3JlYXRlKFdURk1vdmUoYmJxRW50cnlwb2ludCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwg
bV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2Up
LCBXVEZNb3ZlKHRpZXJVcCksIFdURk1vdmUodW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMpKTsKKyAg
ICAgICAgUmVmPEJCUUNhbGxlZT4gY2FsbGVlID0gQkJRQ2FsbGVlOjpjcmVhdGUoV1RGTW92ZShm
dW5jdGlvbi0+ZW50cnlwb2ludCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1h
dGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpLCBXVEZNb3ZlKHRpZXJV
cCksIFdURk1vdmUodW5saW5rZWRXYXNtVG9XYXNtQ2FsbHMpKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OnJlcGF0Y2hQb2ludGVyKGZ1bmN0aW9uLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxl
ZUJpdHM6OmJveFdhc20oY2FsbGVlLnB0cigpKSk7CiAgICAgICAgIEFTU0VSVCghbV9jb2RlQmxv
Y2stPm1fYmJxQ2FsbGVlc1ttX2Z1bmN0aW9uSW5kZXhdKTsKICAgICAgICAgZW50cnlwb2ludCA9
IGNhbGxlZS0+ZW50cnlwb2ludCgpOwpAQCAtMTA5LDcgKzExNiw5IEBAIHZvaWQgQkJRUGxhbjo6
d29yayhDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCiAgICAgICAgIG1fY29kZUJsb2NrLT5tX2Ji
cUNhbGxlZXNbbV9mdW5jdGlvbkluZGV4XSA9IGNhbGxlZS5jb3B5UmVmKCk7CiAgICAgICAgIHsK
ICAgICAgICAgICAgIExMSW50Q2FsbGVlJiBsbGludENhbGxlZSA9ICptX2NvZGVCbG9jay0+bV9s
bGludENhbGxlZXNbbV9mdW5jdGlvbkluZGV4XTsKKyAgICAgICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobGxpbnRDYWxsZWUudGllclVwQ291bnRlcigpLm1fbG9jayk7CiAgICAgICAgICAg
ICBsbGludENhbGxlZS5zZXRSZXBsYWNlbWVudChjYWxsZWUuY29weVJlZigpKTsKKyAgICAgICAg
ICAgIGxsaW50Q2FsbGVlLnRpZXJVcENvdW50ZXIoKS5tX2NvbXBpbGF0aW9uU3RhdHVzID0gTExJ
bnRUaWVyVXBDb3VudGVyOjpDb21waWxhdGlvblN0YXR1czo6Q29tcGlsZWQ7CiAgICAgICAgIH0K
ICAgICAgICAgZm9yIChhdXRvJiBjYWxsIDogY2FsbGVlLT53YXNtVG9XYXNtQ2FsbHNpdGVzKCkp
IHsKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxXYXNtRW50cnlQdHJUYWc+IGVu
dHJ5cG9pbnQ7CkBAIC0xNDcsNiArMTU2LDggQEAgdm9pZCBCQlFQbGFuOjp3b3JrKENvbXBpbGF0
aW9uRWZmb3J0IGVmZm9ydCkKICAgICAgICAgICAgIGlmIChMTEludENhbGxlZSogbGxpbnRDYWxs
ZWUgPSBtX2NvZGVCbG9jay0+bV9sbGludENhbGxlZXNbaV0uZ2V0KCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAoSklUQ2FsbGVlKiByZXBsYWNlbWVudENhbGxlZSA9IGxsaW50Q2FsbGVlLT5yZXBs
YWNlbWVudCgpKQogICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbHMocmVwbGFjZW1lbnRD
YWxsZWUtPndhc21Ub1dhc21DYWxsc2l0ZXMoKSk7CisgICAgICAgICAgICAgICAgaWYgKE9NR0Zv
ck9TUkVudHJ5Q2FsbGVlKiBvc3JFbnRyeUNhbGxlZSA9IGxsaW50Q2FsbGVlLT5vc3JFbnRyeUNh
bGxlZSgpKQorICAgICAgICAgICAgICAgICAgICByZXBhdGNoQ2FsbHMob3NyRW50cnlDYWxsZWUt
Pndhc21Ub1dhc21DYWxsc2l0ZXMoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAo
QkJRQ2FsbGVlKiBiYnFDYWxsZWUgPSBtX2NvZGVCbG9jay0+bV9iYnFDYWxsZWVzW2ldLmdldCgp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKE9NR0NhbGxlZSogcmVwbGFjZW1lbnRDYWxsZWUgPSBi
YnFDYWxsZWUtPnJlcGxhY2VtZW50KCkpCkBAIC0xOTAsNyArMjAxLDcgQEAgc3RkOjp1bmlxdWVf
cHRyPEludGVybmFsRnVuY3Rpb24+IEJCUVBsYW46OmNvbXBpbGVGdW5jdGlvbih1aW50MzJfdCBm
dW5jdGlvbkluZGUKICAgICBjb25zdCBhdXRvJiBmdW5jdGlvbiA9IG1fbW9kdWxlSW5mb3JtYXRp
b24tPmZ1bmN0aW9uc1tmdW5jdGlvbkluZGV4XTsKICAgICBTaWduYXR1cmVJbmRleCBzaWduYXR1
cmVJbmRleCA9IG1fbW9kdWxlSW5mb3JtYXRpb24tPmludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJ
bmRpY2VzW2Z1bmN0aW9uSW5kZXhdOwogICAgIGNvbnN0IFNpZ25hdHVyZSYgc2lnbmF0dXJlID0g
U2lnbmF0dXJlSW5mb3JtYXRpb246OmdldChzaWduYXR1cmVJbmRleCk7Ci0gICAgdW5zaWduZWQg
ZnVuY3Rpb25JbmRleFNwYWNlID0gbV93YXNtVG9XYXNtRXhpdFN0dWJzLnNpemUoKSArIGZ1bmN0
aW9uSW5kZXg7CisgICAgdW5zaWduZWQgZnVuY3Rpb25JbmRleFNwYWNlID0gbV9tb2R1bGVJbmZv
cm1hdGlvbi0+aW1wb3J0RnVuY3Rpb25Db3VudCgpICsgZnVuY3Rpb25JbmRleDsKICAgICBBU1NF
UlRfVU5VU0VEKGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+c2lnbmF0
dXJlSW5kZXhGcm9tRnVuY3Rpb25JbmRleFNwYWNlKGZ1bmN0aW9uSW5kZXhTcGFjZSkgPT0gc2ln
bmF0dXJlSW5kZXgpOwogICAgIEFTU0VSVCh2YWxpZGF0ZUZ1bmN0aW9uKGZ1bmN0aW9uLCBzaWdu
YXR1cmUsIG1fbW9kdWxlSW5mb3JtYXRpb24uZ2V0KCkpKTsKICAgICBFeHBlY3RlZDxzdGQ6OnVu
aXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4sIFN0cmluZz4gcGFyc2VBbmRDb21waWxlUmVzdWx0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUVudHJ5UGxhbi5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRW50cnlQbGFuLmNwcAppbmRleCBk
OTg2YTBhZjQ5NzRmNmI4ZmFmYmNjNTQxNDczOWVjMDhjMzQyZDFjLi41YWVkYmQyZmMzZDMxMjg5
ZTkwMWNjNWMyYTQ3NzU3ODI3NDEzOWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRW50cnlQbGFuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtRW50cnlQbGFuLmNwcApAQCAtNjMsNiArNjMsMTQgQEAgRW50cnlQbGFuOjpFbnRyeVBs
YW4oQ29udGV4dCogY29udGV4dCwgVmVjdG9yPHVpbnQ4X3Q+JiYgc291cmNlLCBBc3luY1dvcmsg
d29yaywKIHsKIH0KIAorRW50cnlQbGFuOjpFbnRyeVBsYW4oQ29udGV4dCogY29udGV4dCwgUmVm
PE1vZHVsZUluZm9ybWF0aW9uPiBtb2R1bGVJbmZvcm1hdGlvbiwgQ29tcGxldGlvblRhc2smJiB0
YXNrKQorICAgIDogQmFzZShjb250ZXh0LCBXVEZNb3ZlKG1vZHVsZUluZm9ybWF0aW9uKSwgV1RG
TW92ZSh0YXNrKSkKKyAgICAsIG1fc3RyZWFtaW5nUGFyc2VyKG1fbW9kdWxlSW5mb3JtYXRpb24u
Z2V0KCksICp0aGlzKQorICAgICwgbV9zdGF0ZShTdGF0ZTo6SW5pdGlhbCkKKyAgICAsIG1fYXN5
bmNXb3JrKEFzeW5jV29yazo6RnVsbENvbXBpbGUpCit7Cit9CisKIEVudHJ5UGxhbjo6RW50cnlQ
bGFuKENvbnRleHQqIGNvbnRleHQsIEFzeW5jV29yayB3b3JrLCBDb21wbGV0aW9uVGFzayYmIHRh
c2spCiAgICAgOiBCYXNlKGNvbnRleHQsIFdURk1vdmUodGFzaykpCiAgICAgLCBtX3N0cmVhbWlu
Z1BhcnNlcihtX21vZHVsZUluZm9ybWF0aW9uLmdldCgpLCAqdGhpcykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21FbnRyeVBsYW4uaAppbmRleCA1NGUzMmZkNTlmZDYxMDgzNGQ4Zjgw
YWU5ZDc2ZjlkN2M3YmI1MjYxLi4yNDgzNjI4YmNjZDUzMDAwYTlkNmJhMDU1NTc0NjA1N2EyNTU5
MDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRW50cnlQbGFu
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUVudHJ5UGxhbi5oCkBAIC00
OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICAvLyBOb3RlOiBDb21wbGV0aW9uVGFzayBzaG91bGQg
bm90IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhlIFBsYW4gb3RoZXJ3aXNlIHRoZXJlIHdpbGwgYmUg
YSByZWZlcmVuY2UgY3ljbGUuCiAgICAgRW50cnlQbGFuKENvbnRleHQqLCBSZWY8TW9kdWxlSW5m
b3JtYXRpb24+LCBBc3luY1dvcmssIENvbXBsZXRpb25UYXNrJiYsIENyZWF0ZUVtYmVkZGVyV3Jh
cHBlciYmLCBUaHJvd1dhc21FeGNlcHRpb24pOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEVudHJ5
UGxhbihDb250ZXh0KiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEFzeW5jV29yaywgQ29tcGxldGlvblRh
c2smJiwgQ3JlYXRlRW1iZWRkZXJXcmFwcGVyJiYsIFRocm93V2FzbUV4Y2VwdGlvbik7CisgICAg
RW50cnlQbGFuKENvbnRleHQqLCBSZWY8TW9kdWxlSW5mb3JtYXRpb24+LCBDb21wbGV0aW9uVGFz
ayYmKTsKICAgICBFbnRyeVBsYW4oQ29udGV4dCosIEFzeW5jV29yaywgQ29tcGxldGlvblRhc2sm
Jik7CiAKICAgICB2aXJ0dWFsIH5FbnRyeVBsYW4oKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRleCAwYmQ0OWNl
NjE4M2JmZmE4YTUyNTY1Mjg4MTAxNWJmMjAyNTc2ZGJkLi5iMTBhMWFhMTIzNzQwZmM3YmI2ZWY5
OWI3YTI1YjU1NjE0NTZiMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAgLTM0OSwxMiArMzQ5LDE2IEBAIGF1dG8gTExJbnRH
ZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvcihjb25zdCBTaWduYXR1cmUmIHNpZ25hdHVyZSwg
Q2FsbFJvbGUgcm9sCiAgICAgfTsKIAogCi0gICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGdw
ckNvdW50OyBpKyspCi0gICAgICAgIHJlZ2lzdGVycy5hcHBlbmQobmV3VGVtcG9yYXJ5KCkpOwot
ICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBmcHJDb3VudDsgaSsrKQotICAgICAgICByZWdp
c3RlcnMuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKKyAgICBpZiAocm9sZSA9PSBDYWxsUm9sZTo6
Q2FsbGVlKSB7CisgICAgICAgIC8vIFJldXNlIHRoZSBzbG90cyB3ZSBhbGxvY2F0ZWQgdG8gc3Bp
bGwgdGhlIHJlZ2lzdGVycyBvbiBhZGRBcmd1bWVudHMKKyAgICAgICAgZm9yICh1aW50MzJfdCBp
ID0gZ3ByQ291bnQgKyBmcHJDb3VudDsgaS0tOykKKyAgICAgICAgICAgIHJlZ2lzdGVycy5hcHBl
bmQobmV3IFJlZ2lzdGVySUQoOjpKU0M6OnZpcnR1YWxSZWdpc3RlckZvckxvY2FsKG51bWJlck9m
TExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJzICsgaSkpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBm
b3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgZ3ByQ291bnQ7IGkrKykKKyAgICAgICAgICAgIHJlZ2lz
dGVycy5hcHBlbmQobmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAw
OyBpIDwgZnByQ291bnQ7IGkrKykKKyAgICAgICAgICAgIHJlZ2lzdGVycy5hcHBlbmQobmV3VGVt
cG9yYXJ5KCkpOwogCi0gICAgaWYgKHJvbGUgPT0gQ2FsbFJvbGU6OkNhbGxlcikgewogICAgICAg
ICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFyZ3VtZW50Q291bnQoKTsgaSsr
KQogICAgICAgICAgICAgYWxsb2NhdGVTdGFja1JlZ2lzdGVyKHNpZ25hdHVyZS5hcmd1bWVudChp
KSk7CiAgICAgICAgIGdwckluZGV4ID0gMDsKQEAgLTYxOCw3ICs2MjIsNyBAQCBhdXRvIExMSW50
R2VuZXJhdG9yOjphZGRSZXR1cm4oY29uc3QgQ29udHJvbFR5cGUmIGRhdGEsIGNvbnN0IEV4cHJl
c3Npb25MaXN0JiByZQogCiAgICAgTExJbnRDYWxsSW5mb3JtYXRpb24gaW5mbyA9IGNhbGxJbmZv
cm1hdGlvbkZvcigqZGF0YS5tX3NpZ25hdHVyZSwgQ2FsbFJvbGU6OkNhbGxlZSk7CiAgICAgdW5p
ZnlWYWx1ZXNXaXRoQmxvY2soaW5mby5yZXN1bHRzLCByZXR1cm5WYWx1ZXMpOwotICAgIFdhc21S
ZXQ6OmVtaXQodGhpcywgaW5mby5zdGFja09mZnNldCk7CisgICAgV2FzbVJldDo6ZW1pdCh0aGlz
KTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC03MzYsNyArNzQwLDcgQEAgYXV0byBMTEludEdl
bmVyYXRvcjo6YWRkQ2FsbEluZGlyZWN0KHVuc2lnbmVkIHRhYmxlSW5kZXgsIGNvbnN0IFNpZ25h
dHVyZSYgc2lnbmEKIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkUmVmSXNOdWxsKEV4cHJlc3Np
b25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiB7
Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0gdmFsdWU7CiAgICAg
V2FzbVJlZklzTnVsbDo6ZW1pdCh0aGlzLCByZXN1bHQsIHZhbHVlKTsKIAogICAgIHJldHVybiB7
IH07CkBAIC03NTIsNyArNzU2LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkUmVmRnVuYyh1
aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGkKIAogYXV0byBM
TEludEdlbmVyYXRvcjo6YWRkVGFibGVHZXQodW5zaWduZWQgdGFibGVJbmRleCwgRXhwcmVzc2lv
blR5cGUgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsK
LSAgICByZXN1bHQgPSBuZXdUZW1wb3JhcnkoKTsKKyAgICByZXN1bHQgPSBpbmRleDsKICAgICBX
YXNtVGFibGVHZXQ6OmVtaXQodGhpcywgcmVzdWx0LCBpbmRleCwgdGFibGVJbmRleCk7CiAKICAg
ICByZXR1cm4geyB9OwpAQCAtNzc1LDcgKzc3OSw3IEBAIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFk
ZFRhYmxlU2l6ZSh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAt
CiAKIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4
LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNzaW9uVHlwZSBkZWx0YSwgRXhwcmVzc2lvblR5
cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3VsdCA9IG5ld1RlbXBvcmFy
eSgpOworICAgIHJlc3VsdCA9IGZpbGw7CiAgICAgV2FzbVRhYmxlR3Jvdzo6ZW1pdCh0aGlzLCBy
ZXN1bHQsIGZpbGwsIGRlbHRhLCB0YWJsZUluZGV4KTsKIAogICAgIHJldHVybiB7IH07CkBAIC04
MDUsNyArODA5LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQ3VycmVudE1lbW9yeShFeHBy
ZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiAKIGF1dG8gTExJbnRHZW5lcmF0
b3I6OmFkZEdyb3dNZW1vcnkoRXhwcmVzc2lvblR5cGUgZGVsdGEsIEV4cHJlc3Npb25UeXBlJiBy
ZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1wb3JhcnkoKTsK
KyAgICByZXN1bHQgPSBkZWx0YTsKICAgICBXYXNtR3Jvd01lbW9yeTo6ZW1pdCh0aGlzLCByZXN1
bHQsIGRlbHRhKTsKIAogICAgIHJldHVybiB7IH07CkBAIC04MTMsNyArODE3LDcgQEAgYXV0byBM
TEludEdlbmVyYXRvcjo6YWRkR3Jvd01lbW9yeShFeHByZXNzaW9uVHlwZSBkZWx0YSwgRXhwcmVz
c2lvblR5cGUmIHJlc3VsdCkKIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkU2VsZWN0KEV4cHJl
c3Npb25UeXBlIGNvbmRpdGlvbiwgRXhwcmVzc2lvblR5cGUgbm9uWmVybywgRXhwcmVzc2lvblR5
cGUgemVybywgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewotICAg
IHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IGNvbmRpdGlvbjsKICAgICBX
YXNtU2VsZWN0OjplbWl0KHRoaXMsIHJlc3VsdCwgY29uZGl0aW9uLCBub25aZXJvLCB6ZXJvKTsK
IAogICAgIHJldHVybiB7IH07CkBAIC04MjEsNyArODI1LDcgQEAgYXV0byBMTEludEdlbmVyYXRv
cjo6YWRkU2VsZWN0KEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgRXhwcmVzc2lvblR5cGUgbm9u
WmVybywKIAogYXV0byBMTEludEdlbmVyYXRvcjo6bG9hZChMb2FkT3BUeXBlIG9wLCBFeHByZXNz
aW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50MzJfdCBvZmZzZXQp
IC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1wb3JhcnkoKTsKKyAgICBy
ZXN1bHQgPSBwb2ludGVyOwogICAgIHN3aXRjaCAob3ApIHsKICAgICBjYXNlIExvYWRPcFR5cGU6
OkkzMkxvYWQ4UzoKICAgICAgICAgV2FzbUkzMkxvYWQ4Uzo6ZW1pdCh0aGlzLCByZXN1bHQsIHBv
aW50ZXIsIG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTExJbnRUaWVyVXBDb3VudGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
TExJbnRUaWVyVXBDb3VudGVyLmgKaW5kZXggMDY3NGYyZDA0ZjYyZGQ2OWRjZjk3NzFmMjlkYTc5
NDA5Yzk1YmM4Ni4uOGRiZjI0NjY5Zjg0YmEzOTI5NTJlOGFhYWE4MzA1M2YzOGFmMmVhYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50VGllclVwQ291bnRl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21MTEludFRpZXJVcENvdW50
ZXIuaApAQCAtNTAsNyArNTAsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBvcHRpbWl6ZUFmdGVy
V2FybVVwKCkKICAgICB7Ci0gICAgICAgIHNldE5ld1RocmVzaG9sZChPcHRpb25zOjp0aHJlc2hv
bGRGb3JPTUdPcHRpbWl6ZUFmdGVyV2FybVVwKCksIG51bGxwdHIpOworICAgICAgICBpZiAoT3B0
aW9uczo6d2FzbUxMSW50VGllcnNVcFRvQkJRKCkpCisgICAgICAgICAgICBzZXROZXdUaHJlc2hv
bGQoT3B0aW9uczo6dGhyZXNob2xkRm9yQkJRT3B0aW1pemVBZnRlcldhcm1VcCgpLCBudWxscHRy
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2V0TmV3VGhyZXNob2xkKE9wdGlvbnM6OnRo
cmVzaG9sZEZvck9NR09wdGltaXplQWZ0ZXJXYXJtVXAoKSwgbnVsbHB0cik7CiAgICAgfQogCiAg
ICAgYm9vbCBjaGVja0lmT3B0aW1pemF0aW9uVGhyZXNob2xkUmVhY2hlZCgpCkBAIC02MCw3ICs2
MywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG9wdGltaXplU29vbigpCiAgICAgewotICAgICAg
ICBzZXROZXdUaHJlc2hvbGQoT3B0aW9uczo6dGhyZXNob2xkRm9yT01HT3B0aW1pemVTb29uKCks
IG51bGxwdHIpOworICAgICAgICBpZiAoT3B0aW9uczo6d2FzbUxMSW50VGllcnNVcFRvQkJRKCkp
CisgICAgICAgICAgICBzZXROZXdUaHJlc2hvbGQoT3B0aW9uczo6dGhyZXNob2xkRm9yQkJRT3B0
aW1pemVTb29uKCksIG51bGxwdHIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXROZXdU
aHJlc2hvbGQoT3B0aW9uczo6dGhyZXNob2xkRm9yT01HT3B0aW1pemVTb29uKCksIG51bGxwdHIp
OwogICAgIH0KIAogICAgIHN0cnVjdCBPU1JFbnRyeURhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCmluZGV4IDRiYzQ4ODdhOGE3MzFkY2VmYThkMTNhMzcz
MWVjNTYyYmY5NTg1ZWEuLjZmNGRkY2FjN2RlMjc4MmI4MTZmNmFkOTQyMjg4NGNjNDgwOTI0OTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKQEAgLTEyMSw3
ICsxMjEsOCBAQCB2b2lkIE9NR1BsYW46OndvcmsoQ29tcGlsYXRpb25FZmZvcnQpCiAgICAgICAg
ICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhiYnFDYWxsZWUtPnRpZXJVcENvdW50KCkt
PmdldExvY2soKSk7CiAgICAgICAgICAgICAgICAgYmJxQ2FsbGVlLT5zZXRSZXBsYWNlbWVudChj
YWxsZWUuY29weVJlZigpKTsKICAgICAgICAgICAgICAgICBiYnFDYWxsZWUtPnRpZXJVcENvdW50
KCktPm1fY29tcGlsYXRpb25TdGF0dXNGb3JPTUcgPSBUaWVyVXBDb3VudDo6Q29tcGlsYXRpb25T
dGF0dXM6OkNvbXBpbGVkOwotICAgICAgICAgICAgfSBlbHNlIGlmIChMTEludENhbGxlZSogbGxp
bnRDYWxsZWUgPSBtX2NvZGVCbG9jay0+bV9sbGludENhbGxlZXNbbV9mdW5jdGlvbkluZGV4XS5n
ZXQoKSkgeworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKExMSW50Q2FsbGVlKiBsbGlu
dENhbGxlZSA9IG1fY29kZUJsb2NrLT5tX2xsaW50Q2FsbGVlc1ttX2Z1bmN0aW9uSW5kZXhdLmdl
dCgpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhsbGludENhbGxl
ZS0+dGllclVwQ291bnRlcigpLm1fbG9jayk7CiAgICAgICAgICAgICAgICAgbGxpbnRDYWxsZWUt
PnNldFJlcGxhY2VtZW50KGNhbGxlZS5jb3B5UmVmKCkpOwogICAgICAgICAgICAgICAgIGxsaW50
Q2FsbGVlLT50aWVyVXBDb3VudGVyKCkubV9jb21waWxhdGlvblN0YXR1cyA9IExMSW50VGllclVw
Q291bnRlcjo6Q29tcGlsYXRpb25TdGF0dXM6OkNvbXBpbGVkOwpAQCAtMTYzLDYgKzE2NCw4IEBA
IHZvaWQgT01HUGxhbjo6d29yayhDb21waWxhdGlvbkVmZm9ydCkKICAgICAgICAgICAgIGlmIChM
TEludENhbGxlZSogbGxpbnRDYWxsZWUgPSBtX2NvZGVCbG9jay0+bV9sbGludENhbGxlZXNbaV0u
Z2V0KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoSklUQ2FsbGVlKiByZXBsYWNlbWVudENhbGxl
ZSA9IGxsaW50Q2FsbGVlLT5yZXBsYWNlbWVudCgpKQogICAgICAgICAgICAgICAgICAgICByZXBh
dGNoQ2FsbHMocmVwbGFjZW1lbnRDYWxsZWUtPndhc21Ub1dhc21DYWxsc2l0ZXMoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKE9NR0Zvck9TUkVudHJ5Q2FsbGVlKiBvc3JFbnRyeUNhbGxlZSA9IGxs
aW50Q2FsbGVlLT5vc3JFbnRyeUNhbGxlZSgpKQorICAgICAgICAgICAgICAgICAgICByZXBhdGNo
Q2FsbHMob3NyRW50cnlDYWxsZWUtPndhc21Ub1dhc21DYWxsc2l0ZXMoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoQkJRQ2FsbGVlKiBiYnFDYWxsZWUgPSBtX2NvZGVCbG9jay0+
bV9iYnFDYWxsZWVzW2ldLmdldCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKE9NR0NhbGxlZSog
cmVwbGFjZW1lbnRDYWxsZWUgPSBiYnFDYWxsZWUtPnJlcGxhY2VtZW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0aHMuY3BwCmluZGV4IDAzYWZmYjQ2NmRlZTMx
M2QzYWJkMDJlZjdhZTRiODIwNTFlNGQ0MTQuLjE2ZjNkYWM3MzM3NzJjZjFlOGM0MTlmNGM2YTRk
MTdlOTFmNjliZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21T
bG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21TbG93UGF0
aHMuY3BwCkBAIC0xMTAsOSArMTEwLDEzIEBAIGlubGluZSBib29sIGppdENvbXBpbGVBbmRTZXRI
ZXVyaXN0aWNzKFdhc206OkxMSW50Q2FsbGVlKiBjYWxsZWUsIFdhc206OkZ1bmN0aW9uCiAKICAg
ICBpZiAoY29tcGlsZSkgewogICAgICAgICB1aW50MzJfdCBmdW5jdGlvbkluZGV4ID0gY29kZUJs
b2NrLT5mdW5jdGlvbkluZGV4KCk7Ci0gICAgICAgIFJlZjxXYXNtOjpPTUdQbGFuPiBwbGFuID0g
YWRvcHRSZWYoKm5ldyBXYXNtOjpPTUdQbGFuKGluc3RhbmNlLT5jb250ZXh0KCksIFJlZjxXYXNt
OjpNb2R1bGU+KGluc3RhbmNlLT5tb2R1bGUoKSksIGZ1bmN0aW9uSW5kZXgsIGluc3RhbmNlLT5t
ZW1vcnkoKS0+bW9kZSgpLCBXYXNtOjpQbGFuOjpkb250RmluYWxpemUoKSkpOworICAgICAgICBS
ZWZQdHI8V2FzbTo6UGxhbj4gcGxhbjsKKyAgICAgICAgaWYgKE9wdGlvbnM6Ondhc21MTEludFRp
ZXJzVXBUb0JCUSgpKQorICAgICAgICAgICAgcGxhbiA9IGFkb3B0UmVmKCpuZXcgV2FzbTo6QkJR
UGxhbihpbnN0YW5jZS0+Y29udGV4dCgpLCBtYWtlUmVmKGNvbnN0X2Nhc3Q8V2FzbTo6TW9kdWxl
SW5mb3JtYXRpb24mPihpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKSkpLCBm
dW5jdGlvbkluZGV4LCBpbnN0YW5jZS0+Y29kZUJsb2NrKCksIFdhc206OlBsYW46OmRvbnRGaW5h
bGl6ZSgpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBsYW4gPSBhZG9wdFJlZigqbmV3
IFdhc206Ok9NR1BsYW4oaW5zdGFuY2UtPmNvbnRleHQoKSwgUmVmPFdhc206Ok1vZHVsZT4oaW5z
dGFuY2UtPm1vZHVsZSgpKSwgZnVuY3Rpb25JbmRleCwgaW5zdGFuY2UtPm1lbW9yeSgpLT5tb2Rl
KCksIFdhc206OlBsYW46OmRvbnRGaW5hbGl6ZSgpKSk7CiAKLSAgICAgICAgV2FzbTo6ZW5zdXJl
V29ya2xpc3QoKS5lbnF1ZXVlKHBsYW4uY29weVJlZigpKTsKKyAgICAgICAgV2FzbTo6ZW5zdXJl
V29ya2xpc3QoKS5lbnF1ZXVlKG1ha2VSZWYoKnBsYW4pKTsKICAgICAgICAgaWYgKFVOTElLRUxZ
KCFPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkpKQogICAgICAgICAgICAgcGxhbi0+d2FpdEZv
ckNvbXBsZXRpb24oKTsKICAgICAgICAgZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383106</attachid>
            <date>2019-11-07 19:10:32 -0800</date>
            <delta_ts>2019-11-07 19:55:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203861-20191107191029.patch</filename>
            <type>text/plain</type>
            <size>7549</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjcwZDY2YzI4ODMxZDBmZWIxNDZjZjFjODllNThhZjViNzMyMjQzLi42OTVkYWU0Nzc0MzBhZDNh
ZDU5NzkwNjk5YTc5ZjIxOWM3YzBiNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOS0xMS0wNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBVc2UgZmV3ZXIgdmlydHVhbCByZWdpc3RlcnMgaW4gV2FzbSBMTEludAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzODYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgUmVkdWNlIHRoZSBu
dW1iZXIgb2YgdmlydHVhbCByZWdpc3RlcnMgaW4gdHdvIHdheXM6CisgICAgICAgIC0gUmUtdXNl
IGFyZ3VtZW50cyBmb3IgcmVzdWx0IHZhbHVlcyAoZS5nLiB0aGUgcmVzdWx0IG9mIGFkZCBsaHMs
IHJocyBzaG91bGQgZ28gaW4gbGhzLCBub3QgYSBuZXcgdmlydHVhbCByZWdpc3RlcikKKyAgICAg
ICAgLSBSZS11c2UgdGhlIGFyZ3VtZW50IHJlZ2lzdGVyIHNwYWNlIGZvciByZXR1cm4gdmFsdWVz
IHRoYXQgc2hvdWxkIGJlIHBsYWNlZCBpbiByZWdpc3RlcnMKKworICAgICAgICAqIGJ5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5yYjoKKyAgICAgICAgKiBnZW5lcmF0b3IvV2FzbS5yYjoKKyAgICAgICAg
KiBsbGludC9XZWJBc3NlbWJseS5hc206CisgICAgICAgICogd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6Y2FsbEluZm9ybWF0
aW9uRm9yKToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZFJldHVybik6
CisgICAgICAgIChKU0M6Oldhc206OkxMSW50R2VuZXJhdG9yOjphZGRSZWZJc051bGwpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHZXQpOgorICAgICAgICAo
SlNDOjpXYXNtOjpMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHcm93KToKKyAgICAgICAgKEpTQzo6
V2FzbTo6TExJbnRHZW5lcmF0b3I6OmFkZEdyb3dNZW1vcnkpOgorICAgICAgICAoSlNDOjpXYXNt
OjpMTEludEdlbmVyYXRvcjo6YWRkU2VsZWN0KToKKyAgICAgICAgKEpTQzo6V2FzbTo6TExJbnRH
ZW5lcmF0b3I6OmxvYWQpOgorCiAyMDE5LTExLTA3ICBUYWRldSBaYWdhbGxvICA8dHphZ2FsbG9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBc3NlbWJseV0gSW5zcGVjdG9yJ3MgRGVidWdnZXJD
YWxsRnJhbWUgc2hvdWxkIGJlIGF3YXJlIG9mIFdhc20gZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCAzNGMxNTJhMGQ2NjJmMzUy
OTdkZjE0NDQ4NjRmYjRiYmEzNDBlZjhhLi5jMmVjOWNmNTcyYWI2ZTE2YTg0MzcyYmZmMDAzNjBi
OTNmZTEzMmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZUxpc3QucmIKQEAgLTEyOTEsMTAgKzEyOTEsNyBAQCBvcCA6am1wLAogICAgICAgICB0YXJnZXRM
YWJlbDogV2FzbUJvdW5kTGFiZWwsCiAgICAgfQogCi1vcCA6cmV0LAotICAgIGFyZ3M6IHsKLSAg
ICAgICAgc3RhY2tPZmZzZXQ6IHVuc2lnbmVkLAotICAgIH0KK29wIDpyZXQKIAogb3AgOnN3aXRj
aCwKICAgICBhcmdzOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJh
dG9yL1dhc20ucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2VuZXJhdG9yL1dhc20ucmIKaW5k
ZXggMjRmMjdlMDY4NDJmYjk3NjA0MzM4ZTRhYmI2MjkwOGY1YTU5NDI3Ni4uYzAwYzYyOWRkMDM3
NjM3MzM5MjgwYzE1MWE4NzljMmFiM2JhOGRmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2dlbmVyYXRvci9XYXNtLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9nZW5l
cmF0b3IvV2FzbS5yYgpAQCAtNTgsNyArNTgsNyBAQCBtb2R1bGUgV2FzbQogdGVtcGxhdGU8Pgog
YXV0byBMTEludEdlbmVyYXRvcjo6YWRkT3A8I3tvcF90eXBlKG9wKX0+KEV4cHJlc3Npb25UeXBl
IGxocywgRXhwcmVzc2lvblR5cGUgcmhzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0
aWFsUmVzdWx0CiB7Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0g
bGhzOwogICAgICN7b3AuY2FwaXRhbGl6ZWRfbmFtZX06OmVtaXQodGhpcywgcmVzdWx0LCBsaHMs
IHJocyk7CiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTcwLDcgKzcwLDcgQEAgYXV0byBMTEludEdl
bmVyYXRvcjo6YWRkT3A8I3tvcF90eXBlKG9wKX0+KEV4cHJlc3Npb25UeXBlIGxocywgRXhwcmVz
c2lvblR5cGUgcmgKIHRlbXBsYXRlPD4KIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZE9wPCN7b3Bf
dHlwZShvcCl9PihFeHByZXNzaW9uVHlwZSBvcGVyYW5kLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KSAtPiBQYXJ0aWFsUmVzdWx0CiB7Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAg
cmVzdWx0ID0gb3BlcmFuZDsKICAgICAje29wLmNhcGl0YWxpemVkX25hbWV9OjplbWl0KHRoaXMs
IHJlc3VsdCwgb3BlcmFuZCk7CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5hc20gYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvV2ViQXNzZW1ibHkuYXNtCmluZGV4IDJlNjk0MTM4Y2QxMDViOGUyODI0MmQ3
ZWVkN2IwYmRmNWVhNjk1YWIuLjBiYjlmZmQzNTJhYjQ0MjhmNWM2YzY3OTU4YmNjZmQ2ZWEzZjRm
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9XZWJBc3NlbWJseS5h
c20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L1dlYkFzc2VtYmx5LmFzbQpAQCAt
NjA0LDE2ICs2MDQsMTEgQEAgZW5kKQogCiB1bnByZWZpeGVkV2FzbU9wKHdhc21fcmV0LCBXYXNt
UmV0LCBtYWNybyhjdHgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICB3
Z2V0dShjdHgsIG1fc3RhY2tPZmZzZXQsIHdzMSkKLSAgICBsc2hpZnRpIDMsIHdzMQotICAgIG5l
Z2kgd3MxCi0gICAgc3hpMnEgd3MxLCB3czEKLSAgICBhZGRwIGNmciwgd3MxCiAgICAgZm9yRWFj
aEFyZ3VtZW50R1BSKG1hY3JvIChvZmZzZXQsIGdwcikKLSAgICAgICAgbG9hZHEgb2Zmc2V0W3dz
MV0sIGdwcgorICAgICAgICBsb2FkcSAtb2Zmc2V0IC0gOCAtIENhbGxlZVNhdmVTcGFjZUFzVmly
dHVhbFJlZ2lzdGVycyAqIDhbY2ZyXSwgZ3ByCiAgICAgZW5kKQogICAgIGZvckVhY2hBcmd1bWVu
dEZQUihtYWNybyAob2Zmc2V0LCBmcHIpCi0gICAgICAgIGxvYWRkIG9mZnNldFt3czFdLCBmcHIK
KyAgICAgICAgbG9hZGQgLW9mZnNldCAtIDggLSBDYWxsZWVTYXZlU3BhY2VBc1ZpcnR1YWxSZWdp
c3RlcnMgKiA4W2Nmcl0sIGZwcgogICAgIGVuZCkKICAgICBkb1JldHVybigpCiBlbmQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcAppbmRl
eCBiZGMzMzNhN2QxZDA2YmJmZTNlZDVjZDlkODcxM2VjOGUyZGM0NTM4Li5hMTAwNDcwNzRjNjQx
NTg2YjQ4ZDgwNDJkZmZhYTgyM2IwMzA1NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKQEAgLTM1MiwxMiArMzUyLDE2IEBAIGF1
dG8gTExJbnRHZW5lcmF0b3I6OmNhbGxJbmZvcm1hdGlvbkZvcihjb25zdCBTaWduYXR1cmUmIHNp
Z25hdHVyZSwgQ2FsbFJvbGUgcm9sCiAgICAgfTsKIAogCi0gICAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IGdwckNvdW50OyBpKyspCi0gICAgICAgIHJlZ2lzdGVycy5hcHBlbmQobmV3VGVtcG9y
YXJ5KCkpOwotICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBmcHJDb3VudDsgaSsrKQotICAg
ICAgICByZWdpc3RlcnMuYXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKKyAgICBpZiAocm9sZSA9PSBD
YWxsUm9sZTo6Q2FsbGVlKSB7CisgICAgICAgIC8vIFJldXNlIHRoZSBzbG90cyB3ZSBhbGxvY2F0
ZWQgdG8gc3BpbGwgdGhlIHJlZ2lzdGVycyBpbiBhZGRBcmd1bWVudHMKKyAgICAgICAgZm9yICh1
aW50MzJfdCBpID0gZ3ByQ291bnQgKyBmcHJDb3VudDsgaS0tOykKKyAgICAgICAgICAgIHJlZ2lz
dGVycy5hcHBlbmQobmV3IFJlZ2lzdGVySUQoOjpKU0M6OnZpcnR1YWxSZWdpc3RlckZvckxvY2Fs
KG51bWJlck9mTExJbnRDYWxsZWVTYXZlUmVnaXN0ZXJzICsgaSkpKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgZ3ByQ291bnQ7IGkrKykKKyAgICAgICAg
ICAgIHJlZ2lzdGVycy5hcHBlbmQobmV3VGVtcG9yYXJ5KCkpOworICAgICAgICBmb3IgKHVpbnQz
Ml90IGkgPSAwOyBpIDwgZnByQ291bnQ7IGkrKykKKyAgICAgICAgICAgIHJlZ2lzdGVycy5hcHBl
bmQobmV3VGVtcG9yYXJ5KCkpOwogCi0gICAgaWYgKHJvbGUgPT0gQ2FsbFJvbGU6OkNhbGxlcikg
ewogICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc2lnbmF0dXJlLmFyZ3VtZW50Q291
bnQoKTsgaSsrKQogICAgICAgICAgICAgYWxsb2NhdGVTdGFja1JlZ2lzdGVyKHNpZ25hdHVyZS5h
cmd1bWVudChpKSk7CiAgICAgICAgIGdwckluZGV4ID0gMDsKQEAgLTYyOSw3ICs2MzMsNyBAQCBh
dXRvIExMSW50R2VuZXJhdG9yOjphZGRSZXR1cm4oY29uc3QgQ29udHJvbFR5cGUmIGRhdGEsIGNv
bnN0IEV4cHJlc3Npb25MaXN0JiByZQogCiAgICAgTExJbnRDYWxsSW5mb3JtYXRpb24gaW5mbyA9
IGNhbGxJbmZvcm1hdGlvbkZvcigqZGF0YS5tX3NpZ25hdHVyZSwgQ2FsbFJvbGU6OkNhbGxlZSk7
CiAgICAgdW5pZnlWYWx1ZXNXaXRoQmxvY2soaW5mby5yZXN1bHRzLCByZXR1cm5WYWx1ZXMpOwot
ICAgIFdhc21SZXQ6OmVtaXQodGhpcywgaW5mby5zdGFja09mZnNldCk7CisgICAgV2FzbVJldDo6
ZW1pdCh0aGlzKTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC03NDcsNyArNzUxLDcgQEAgYXV0
byBMTEludEdlbmVyYXRvcjo6YWRkQ2FsbEluZGlyZWN0KHVuc2lnbmVkIHRhYmxlSW5kZXgsIGNv
bnN0IFNpZ25hdHVyZSYgc2lnbmEKIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkUmVmSXNOdWxs
KEV4cHJlc3Npb25UeXBlIHZhbHVlLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFs
UmVzdWx0CiB7Ci0gICAgcmVzdWx0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgcmVzdWx0ID0gdmFs
dWU7CiAgICAgV2FzbVJlZklzTnVsbDo6ZW1pdCh0aGlzLCByZXN1bHQsIHZhbHVlKTsKIAogICAg
IHJldHVybiB7IH07CkBAIC03NjMsNyArNzY3LDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRk
UmVmRnVuYyh1aW50MzJfdCBpbmRleCwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGkK
IAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkVGFibGVHZXQodW5zaWduZWQgdGFibGVJbmRleCwg
RXhwcmVzc2lvblR5cGUgaW5kZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxS
ZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1wb3JhcnkoKTsKKyAgICByZXN1bHQgPSBpbmRl
eDsKICAgICBXYXNtVGFibGVHZXQ6OmVtaXQodGhpcywgcmVzdWx0LCBpbmRleCwgdGFibGVJbmRl
eCk7CiAKICAgICByZXR1cm4geyB9OwpAQCAtNzg2LDcgKzc5MCw3IEBAIGF1dG8gTExJbnRHZW5l
cmF0b3I6OmFkZFRhYmxlU2l6ZSh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSYg
cmVzdWx0KSAtCiAKIGF1dG8gTExJbnRHZW5lcmF0b3I6OmFkZFRhYmxlR3Jvdyh1bnNpZ25lZCB0
YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNzaW9uVHlwZSBkZWx0YSwgRXhw
cmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAogewotICAgIHJlc3VsdCA9IG5l
d1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IGZpbGw7CiAgICAgV2FzbVRhYmxlR3Jvdzo6ZW1p
dCh0aGlzLCByZXN1bHQsIGZpbGwsIGRlbHRhLCB0YWJsZUluZGV4KTsKIAogICAgIHJldHVybiB7
IH07CkBAIC04MTYsNyArODIwLDcgQEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkQ3VycmVudE1l
bW9yeShFeHByZXNzaW9uVHlwZSYgcmVzdWx0KSAtPiBQYXJ0aWFsUmVzdWx0CiAKIGF1dG8gTExJ
bnRHZW5lcmF0b3I6OmFkZEdyb3dNZW1vcnkoRXhwcmVzc2lvblR5cGUgZGVsdGEsIEV4cHJlc3Np
b25UeXBlJiByZXN1bHQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1w
b3JhcnkoKTsKKyAgICByZXN1bHQgPSBkZWx0YTsKICAgICBXYXNtR3Jvd01lbW9yeTo6ZW1pdCh0
aGlzLCByZXN1bHQsIGRlbHRhKTsKIAogICAgIHJldHVybiB7IH07CkBAIC04MjQsNyArODI4LDcg
QEAgYXV0byBMTEludEdlbmVyYXRvcjo6YWRkR3Jvd01lbW9yeShFeHByZXNzaW9uVHlwZSBkZWx0
YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkKIAogYXV0byBMTEludEdlbmVyYXRvcjo6YWRkU2Vs
ZWN0KEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgRXhwcmVzc2lvblR5cGUgbm9uWmVybywgRXhw
cmVzc2lvblR5cGUgemVybywgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3Vs
dAogewotICAgIHJlc3VsdCA9IG5ld1RlbXBvcmFyeSgpOworICAgIHJlc3VsdCA9IGNvbmRpdGlv
bjsKICAgICBXYXNtU2VsZWN0OjplbWl0KHRoaXMsIHJlc3VsdCwgY29uZGl0aW9uLCBub25aZXJv
LCB6ZXJvKTsKIAogICAgIHJldHVybiB7IH07CkBAIC04MzIsNyArODM2LDcgQEAgYXV0byBMTElu
dEdlbmVyYXRvcjo6YWRkU2VsZWN0KEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgRXhwcmVzc2lv
blR5cGUgbm9uWmVybywKIAogYXV0byBMTEludEdlbmVyYXRvcjo6bG9hZChMb2FkT3BUeXBlIG9w
LCBFeHByZXNzaW9uVHlwZSBwb2ludGVyLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0LCB1aW50MzJf
dCBvZmZzZXQpIC0+IFBhcnRpYWxSZXN1bHQKIHsKLSAgICByZXN1bHQgPSBuZXdUZW1wb3Jhcnko
KTsKKyAgICByZXN1bHQgPSBwb2ludGVyOwogICAgIHN3aXRjaCAob3ApIHsKICAgICBjYXNlIExv
YWRPcFR5cGU6OkkzMkxvYWQ4UzoKICAgICAgICAgV2FzbUkzMkxvYWQ4Uzo6ZW1pdCh0aGlzLCBy
ZXN1bHQsIHBvaW50ZXIsIG9mZnNldCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>