<?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>164429</bug_id>
          
          <creation_ts>2016-11-04 13:44:23 -0700</creation_ts>
          <short_desc>Add support for Wasm br_table</short_desc>
          <delta_ts>2016-11-04 15:56:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248248</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 13:44:23 -0700</bug_when>
    <thetext>Add support for Wasm br_table</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248249</commentid>
    <comment_count>1</comment_count>
      <attachid>293922</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 13:45:23 -0700</bug_when>
    <thetext>Created attachment 293922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248250</commentid>
    <comment_count>2</comment_count>
      <attachid>293922</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 13:46:39 -0700</bug_when>
    <thetext>Comment on attachment 293922
Patch

not ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248295</commentid>
    <comment_count>3</comment_count>
      <attachid>293937</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 14:56:10 -0700</bug_when>
    <thetext>Created attachment 293937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248310</commentid>
    <comment_count>4</comment_count>
      <attachid>293937</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-11-04 15:14:14 -0700</bug_when>
    <thetext>Comment on attachment 293937
Patch

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

Looks good besides typo.

&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:269
&gt; +            m_errorMessage = makeString(&quot;Attempting to add a br_table with different expected types. Default target has type: &quot;, toString(defaultTarget.signature()), &quot; but case hase type: &quot;, toString(target-&gt;signature()));

typo &quot;hase&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248311</commentid>
    <comment_count>5</comment_count>
      <attachid>293937</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 15:15:11 -0700</bug_when>
    <thetext>Comment on attachment 293937
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmValidate.cpp:269
&gt;&gt; +            m_errorMessage = makeString(&quot;Attempting to add a br_table with different expected types. Default target has type: &quot;, toString(defaultTarget.signature()), &quot; but case hase type: &quot;, toString(target-&gt;signature()));
&gt; 
&gt; typo &quot;hase&quot;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248314</commentid>
    <comment_count>6</comment_count>
      <attachid>293937</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-11-04 15:15:35 -0700</bug_when>
    <thetext>Comment on attachment 293937
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This patch adds support for Wasm br_table. the Wasm br_table

Nit - capitalize &quot;the&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248318</commentid>
    <comment_count>7</comment_count>
      <attachid>293937</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 15:17:05 -0700</bug_when>
    <thetext>Comment on attachment 293937
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        This patch adds support for Wasm br_table. the Wasm br_table
&gt; 
&gt; Nit - capitalize &quot;the&quot;.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248327</commentid>
    <comment_count>8</comment_count>
      <attachid>293937</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-11-04 15:33:02 -0700</bug_when>
    <thetext>Comment on attachment 293937
Patch

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

r=me

&gt; Source/JavaScriptCore/wasm/WasmFunctionParser.h:416
&gt; +

Nit - two blank lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248330</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-11-04 15:56:23 -0700</bug_when>
    <thetext>Committed r208402: &lt;http://trac.webkit.org/changeset/208402&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293922</attachid>
            <date>2016-11-04 13:45:23 -0700</date>
            <delta_ts>2016-11-04 14:56:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164429-20161104134121.patch</filename>
            <type>text/plain</type>
            <size>16653</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZTRlZjRlNWIwZTZmYWFkNzlhOGFkMmIzMmMzMGQ1MTQ3NmMxZjU0Li44ZDUwZWI3YTJhMGEyOTQ4
NzE4ZGY4MzhiM2FiZDI2ZTc5ZTQ3YmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNi0xMS0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgV2FzbSBicl90YWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1
cHBvcnQgZm9yIFdhc20gYnJfdGFibGUuIHRoZSBXYXNtIGJyX3RhYmxlCisgICAgICAgIG9wY29k
ZSBlc3NlbnRpYWxseSBkaXJlY3RseSBtYXBzIHRvIEIzJ3Mgc3dpdGNoIG9wY29kZS4KKworICAg
ICAgICAqIHRlc3RXYXNtLmNwcDoKKyAgICAgICAgKHJ1bldhc21UZXN0cyk6CisgICAgICAgICog
d2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHA6CisgICAgICAgICogd2FzbS9XYXNtRnVuY3Rpb25Q
YXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI6OnNldEVycm9yTWVz
c2FnZSk6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJz
ZUV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0
Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJlc3Npb24pOgorICAgICAgICAoSlNDOjpXYXNtOjpGdW5j
dGlvblBhcnNlcjxDb250ZXh0Pjo6cG9wRXhwcmVzc2lvblN0YWNrKToKKyAgICAgICAgKiB3YXNt
L1dhc21WYWxpZGF0ZS5jcHA6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjpjaGVja0Jy
YW5jaFRhcmdldCk6CisgICAgICAgIChKU0M6Oldhc206OlZhbGlkYXRlOjphZGRCcmFuY2gpOgor
ICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkU3dpdGNoKToKKwogMjAxNi0xMS0wMyAg
S2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCBjaGFuZ2Vsb2cgZml4IGR1ZSB0byBmYWlsZWQgZ2l0IHJlYmFzZS4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFdhc20uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RXYXNtLmNwcAppbmRleCA2ZTNmNWQyZDBiOWMyYWNhZmQ0MTMxNjdkN2VkYjQ4OTFh
MjVkOTJiLi42MDdlZGFkY2Y5NjdkNGMwYmM2MGYyOWNlYzlhYTM5ZDA4NmZmOWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFdhc20uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0V2FzbS5jcHAKQEAgLTI5Niw2ICsyOTYsOTAgQEAgc3RhdGljIHZvaWQg
cnVuV2FzbVRlc3RzKCkKICAgICB7CiAgICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOgogICAgICAg
ICAvLyAgICAobW9kdWxlCisgICAgICAgIC8vICAgICAoZnVuYyAoZXhwb3J0ICJtdWx0aXBsZS12
YWx1ZSIpIChwYXJhbSBpMzIpIChyZXN1bHQgaTMyKQorICAgICAgICAvLyAgICAgIChsb2NhbCBp
MzIpCisgICAgICAgIC8vICAgICAgKHNldF9sb2NhbCAxIChibG9jayBpMzIKKyAgICAgICAgLy8g
ICAgICAgIChzZXRfbG9jYWwgMSAoYmxvY2sgaTMyCisgICAgICAgIC8vICAgICAgICAgIChzZXRf
bG9jYWwgMSAoYmxvY2sgaTMyCisgICAgICAgIC8vICAgICAgICAgICAgKHNldF9sb2NhbCAxIChi
bG9jayBpMzIKKyAgICAgICAgLy8gICAgICAgICAgICAgIChzZXRfbG9jYWwgMSAoYmxvY2sgaTMy
CisgICAgICAgIC8vICAgICAgICAgICAgICAgIChicl90YWJsZSAzIDIgMSAwIDQgKGkzMi5jb25z
dCAyMDApIChnZXRfbG9jYWwgMCkpCisgICAgICAgIC8vICAgICAgICAgICAgICAgIChyZXR1cm4g
KGkzMi5hZGQgKGdldF9sb2NhbCAxKSAoaTMyLmNvbnN0IDk5KSkpCisgICAgICAgIC8vICAgICAg
ICAgICAgICAgICkpCisgICAgICAgIC8vICAgICAgICAgICAgICAocmV0dXJuIChpMzIuYWRkIChn
ZXRfbG9jYWwgMSkgKGkzMi5jb25zdCAxMCkpKQorICAgICAgICAvLyAgICAgICAgICAgICAgKSkK
KyAgICAgICAgLy8gICAgICAgICAgICAocmV0dXJuIChpMzIuYWRkIChnZXRfbG9jYWwgMSkgKGkz
Mi5jb25zdCAxMSkpKQorICAgICAgICAvLyAgICAgICAgICAgICkpCisgICAgICAgIC8vICAgICAg
ICAgIChyZXR1cm4gKGkzMi5hZGQgKGdldF9sb2NhbCAxKSAoaTMyLmNvbnN0IDEyKSkpCisgICAg
ICAgIC8vICAgICAgICAgICkpCisgICAgICAgIC8vICAgICAgICAocmV0dXJuIChpMzIuYWRkIChn
ZXRfbG9jYWwgMSkgKGkzMi5jb25zdCAxMykpKQorICAgICAgICAvLyAgICAgICAgKSkKKyAgICAg
ICAgLy8gICAgICAoaTMyLmFkZCAoZ2V0X2xvY2FsIDEpIChpMzIuY29uc3QgMTQpKQorICAgICAg
ICAvLyAgICAgICkKKyAgICAgICAgLy8gICAgICkKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZl
Y3RvciA9IHsKKyAgICAgICAgICAgIDB4MDAsIDB4NjEsIDB4NzMsIDB4NmQsIDB4MGMsIDB4MDAs
IDB4MDAsIDB4MDAsIDB4MDEsIDB4ODYsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4
NDAsCisgICAgICAgICAgICAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAzLCAweDgyLCAweDgw
LCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDA3LCAweDkyLCAweDgwLCAweDgwLAor
ICAgICAgICAgICAgMHg4MCwgMHgwMCwgMHgwMSwgMHgwZSwgMHg2ZCwgMHg3NSwgMHg2YywgMHg3
NCwgMHg2OSwgMHg3MCwgMHg2YywgMHg2NSwgMHgyZCwgMHg3NiwgMHg2MSwgMHg2YywKKyAgICAg
ICAgICAgIDB4NzUsIDB4NjUsIDB4MDAsIDB4MDAsIDB4MGEsIDB4ZDMsIDB4ODAsIDB4ODAsIDB4
ODAsIDB4MDAsIDB4MDEsIDB4Y2QsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsCisgICAgICAgICAg
ICAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAweDAxLCAw
eDAxLCAweDAxLCAweDAxLCAweDAxLCAweDEwLCAweGM4LCAweDAxLAorICAgICAgICAgICAgMHgx
NCwgMHgwMCwgMHgwOCwgMHgwNCwgMHgwMywgMHgwMiwgMHgwMSwgMHgwMCwgMHgwNCwgMHgxNCwg
MHgwMSwgMHgxMCwgMHhlMywgMHgwMCwgMHg0MCwgMHgwOSwKKyAgICAgICAgICAgIDB4MGYsIDB4
MTUsIDB4MDEsIDB4MTQsIDB4MDEsIDB4MTAsIDB4MGEsIDB4NDAsIDB4MDksIDB4MGYsIDB4MTUs
IDB4MDEsIDB4MTQsIDB4MDEsIDB4MTAsIDB4MGIsCisgICAgICAgICAgICAweDQwLCAweDA5LCAw
eDBmLCAweDE1LCAweDAxLCAweDE0LCAweDAxLCAweDEwLCAweDBjLCAweDQwLCAweDA5LCAweDBm
LCAweDE1LCAweDAxLCAweDE0LCAweDAxLAorICAgICAgICAgICAgMHgxMCwgMHgwZCwgMHg0MCwg
MHgwOSwgMHgwZiwgMHgxNSwgMHgwMSwgMHgxNCwgMHgwMSwgMHgxMCwgMHgwZSwgMHg0MCwgMHgw
ZgorICAgICAgICB9OworCisgICAgICAgIFBsYW4gcGxhbigqdm0sIHZlY3Rvcik7CisgICAgICAg
IGNoZWNrUGxhbihwbGFuLCAxKTsKKworICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFz
aC4KKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDAp
LT5qc0VudHJ5UG9pbnQsIHsgYm94KDApIH0pLCAyMTMpKTsKKyAgICAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDEp
IH0pLCAyMTIpKTsKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4u
cmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDIpIH0pLCAyMTEpKTsKKyAgICAgICAgQ0hF
Q0soaXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQs
IHsgYm94KDMpIH0pLCAyMTApKTsKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGlu
dD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDMpIH0pLCAyMTApKTsKKyAg
ICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0Vu
dHJ5UG9pbnQsIHsgYm94KDQpIH0pLCAyMTQpKTsKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwo
aW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDUpIH0pLCAy
MTQpKTsKKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0
KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KC0xKSB9KSwgMjE0KSk7CisgICAgICAgIENIRUNLKGlz
SWRlbnRpY2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJv
eCgtMTAwMCkgfSksIDIxNCkpOworICAgIH0KKworICAgIHsKKyAgICAgICAgLy8gR2VuZXJhdGVk
IGZyb206CisgICAgICAgIC8vICAgIChtb2R1bGUKKyAgICAgICAgLy8gICAgIChmdW5jIChleHBv
cnQgInNpbmdsZXRvbiIpIChwYXJhbSBpMzIpIChyZXN1bHQgaTMyKQorICAgICAgICAvLyAgICAg
IChibG9jaworICAgICAgICAvLyAgICAgICAoYmxvY2sKKyAgICAgICAgLy8gICAgICAgIChicl90
YWJsZSAxIDAgKGdldF9sb2NhbCAwKSkKKyAgICAgICAgLy8gICAgICAgIChyZXR1cm4gKGkzMi5j
b25zdCAyMSkpCisgICAgICAgIC8vICAgICAgICApCisgICAgICAgIC8vICAgICAgIChyZXR1cm4g
KGkzMi5jb25zdCAyMCkpCisgICAgICAgIC8vICAgICAgICkKKyAgICAgICAgLy8gICAgICAoaTMy
LmNvbnN0IDIyKQorICAgICAgICAvLyAgICAgICkKKyAgICAgICAgLy8gICAgICkKKyAgICAgICAg
VmVjdG9yPHVpbnQ4X3Q+IHZlY3RvciA9IHsKKyAgICAgICAgICAgIDB4MDAsIDB4NjEsIDB4NzMs
IDB4NmQsIDB4MGMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODYsIDB4ODAsIDB4ODAsIDB4
ODAsIDB4MDAsIDB4MDEsIDB4NDAsCisgICAgICAgICAgICAweDAxLCAweDAxLCAweDAxLCAweDAx
LCAweDAzLCAweDgyLCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDA3LCAw
eDhkLCAweDgwLCAweDgwLAorICAgICAgICAgICAgMHg4MCwgMHgwMCwgMHgwMSwgMHgwOSwgMHg3
MywgMHg2OSwgMHg2ZSwgMHg2NywgMHg2YywgMHg2NSwgMHg3NCwgMHg2ZiwgMHg2ZSwgMHgwMCwg
MHgwMCwgMHgwYSwKKyAgICAgICAgICAgIDB4OWMsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4
MDEsIDB4OTYsIDB4ODAsIDB4ODAsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDEs
IDB4MDAsCisgICAgICAgICAgICAweDE0LCAweDAwLCAweDA4LCAweDAxLCAweDAxLCAweDAwLCAw
eDEwLCAweDE1LCAweDA5LCAweDBmLCAweDEwLCAweDE0LCAweDA5LCAweDBmLCAweDEwLCAweDE2
LAorICAgICAgICAgICAgMHgwZgorICAgICAgICB9OworCisgICAgICAgIFBsYW4gcGxhbigqdm0s
IHZlY3Rvcik7CisgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsKKworICAgICAgICAvLyBUZXN0
IHRoaXMgZG9lc24ndCBjcmFzaC4KKyAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGlu
dD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDApIH0pLCAyMikpOworICAg
ICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50
cnlQb2ludCwgeyBib3goMSkgfSksIDIwKSk7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGlu
dm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgxMSkgfSksIDIw
KSk7CisgICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgw
KS0+anNFbnRyeVBvaW50LCB7IGJveCgtMTAwKSB9KSwgMjApKTsKKyAgICB9CisKKyAgICB7Cisg
ICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOgorICAgICAgICAvLyAgICAobW9kdWxlCiAgICAgICAg
IC8vICAgICAoZnVuYyAoZXhwb3J0ICJpZi10aGVuLWJvdGgtZmFsbHRocm91Z2giKSAocGFyYW0g
JHggaTMyKSAocGFyYW0gJHkgaTMyKSAocmVzdWx0IGkzMikKICAgICAgICAgLy8gICAgICAoYmxv
Y2sgJGJsb2NrIGkzMgogICAgICAgICAvLyAgICAgICAoaWYgaTMyIChpMzIuZXEgKGdldF9sb2Nh
bCAkeCkgKGkzMi5jb25zdCAwKSkKQEAgLTMyMCw4ICs0MDQsOCBAQCBzdGF0aWMgdm9pZCBydW5X
YXNtVGVzdHMoKQogICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVz
dCB0aGlzIGRvZXNuJ3QgY3Jhc2guCi0gICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxp
bnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveGYoMCksIGJveGYoMzIpIH0p
LCAxKSk7Ci0gICAgICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3Vs
dCgwKS0+anNFbnRyeVBvaW50LCB7IGJveGYoMSksIGJveGYoMzIpIH0pLCAyKSk7CisgICAgICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBv
aW50LCB7IGJveCgwKSwgYm94KDMyKSB9KSwgMSkpOworICAgICAgICBDSEVDSyhpc0lkZW50aWNh
bChpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMSksIGJv
eCgzMikgfSksIDIpKTsKICAgICB9CiAKICAgICB7CkBAIC0zNDcsOCArNDMxLDggQEAgc3RhdGlj
IHZvaWQgcnVuV2FzbVRlc3RzKCkKICAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOwogCiAgICAg
ICAgIC8vIFRlc3QgdGhpcyBkb2Vzbid0IGNyYXNoLgotICAgICAgICBDSEVDSyhpc0lkZW50aWNh
bChpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3hmKDApLCBi
b3hmKDMyKSB9KSwgMSkpOwotICAgICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8aW50Pigq
cGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3hmKDEpLCBib3hmKDMyKSB9KSwgMikp
OworICAgICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCkt
PmpzRW50cnlQb2ludCwgeyBib3goMCksIGJveCgzMikgfSksIDEpKTsKKyAgICAgICAgQ0hFQ0so
aXNJZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsg
Ym94KDEpLCBib3goMzIpIH0pLCAyKSk7CiAgICAgfQogCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCmluZGV4IDc0MzI1NjM4YjA3
ZDA1MTc5ZWFkMGM1OTNiN2I2NWIyMWE0MjQwNDEuLjI2YzU5MzczYmViYjcwZDdmNzY1NmJhYTcy
ZDg1YThhZGI0NjQ1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21CM0lSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QjNJUkdlbmVyYXRvci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRy
VmFsdWUuaCIKICNpbmNsdWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
VmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFy
aWFibGUuaCIKQEAgLTE3NSw2ICsxNzYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIFdBUk5fVU5V
U0VEX1JFVFVSTiBhZGRSZXR1cm4oY29uc3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcyk7
CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkQnJhbmNoKENvbnRyb2xEYXRhJiwgRXhw
cmVzc2lvblR5cGUgY29uZGl0aW9uLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVz
KTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRTd2l0Y2goRXhwcmVzc2lvblR5cGUg
Y29uZGl0aW9uLCBjb25zdCBWZWN0b3I8Q29udHJvbERhdGEqPiYgdGFyZ2V0cywgQ29udHJvbERh
dGEmIGRlZmF1bHRUYXJnZXRzLCBjb25zdCBFeHByZXNzaW9uTGlzdCYgZXhwcmVzc2lvblN0YWNr
KTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBlbmRCbG9jayhDb250cm9sRW50cnkmLCBF
eHByZXNzaW9uTGlzdCYgZXhwcmVzc2lvblN0YWNrKTsKICAgICBib29sIFdBUk5fVU5VU0VEX1JF
VFVSTiBhZGRFbmRUb1VucmVhY2hhYmxlKENvbnRyb2xFbnRyeSYpOwogCkBAIC01NDUsNiArNTQ3
LDIyIEBAIGJvb2wgQjNJUkdlbmVyYXRvcjo6YWRkQnJhbmNoKENvbnRyb2xEYXRhJiBkYXRhLCBF
eHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jv
b2wgQjNJUkdlbmVyYXRvcjo6YWRkU3dpdGNoKEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgY29u
c3QgVmVjdG9yPENvbnRyb2xEYXRhKj4mIHRhcmdldHMsIENvbnRyb2xEYXRhJiBkZWZhdWx0VGFy
Z2V0LCBjb25zdCBFeHByZXNzaW9uTGlzdCYgZXhwcmVzc2lvblN0YWNrKQoreworICAgIGlmIChk
ZWZhdWx0VGFyZ2V0LnR5cGUoKSAhPSBCbG9ja1R5cGU6Okxvb3ApIHsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB0YXJnZXRzLnNpemUoKTsgKytpKQorICAgICAgICAgICAgdW5pZnlW
YWx1ZXNXaXRoQmxvY2soZXhwcmVzc2lvblN0YWNrLCB0YXJnZXRzW2ldLT5yZXN1bHQpOworICAg
ICAgICB1bmlmeVZhbHVlc1dpdGhCbG9jayhleHByZXNzaW9uU3RhY2ssIGRlZmF1bHRUYXJnZXQu
cmVzdWx0KTsKKyAgICB9CisKKyAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2N1cnJl
bnRCbG9jay0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCBjb25kaXRp
b24pOworICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2soZGVm
YXVsdFRhcmdldC50YXJnZXRCbG9ja0ZvckJyYW5jaCgpKSk7CisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCB0YXJnZXRzLnNpemUoKTsgKytpKQorICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5k
Q2FzZShTd2l0Y2hDYXNlKGksIEZyZXF1ZW50ZWRCbG9jayh0YXJnZXRzW2ldLT50YXJnZXRCbG9j
a0ZvckJyYW5jaCgpKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQjNJUkdlbmVy
YXRvcjo6ZW5kQmxvY2soQ29udHJvbEVudHJ5JiBlbnRyeSwgRXhwcmVzc2lvbkxpc3QmIGV4cHJl
c3Npb25TdGFjaykKIHsKICAgICBDb250cm9sRGF0YSYgZGF0YSA9IGVudHJ5LmNvbnRyb2xEYXRh
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFy
c2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApp
bmRleCA1ZjIwODE3ODkwMmJmNjY3OWQxMjIzNWQ0MDljOTM4ZDgzZjMwOGU1Li44MzM3MDJmZDFj
ZTU1ZjY2NGRkOGQ2YzgxMDdjMDY2YTY2OTVjYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcG9wRXhwcmVzc2lvblN0YWNrKEV4cHJl
c3Npb25UeXBlJiByZXN1bHQpOwogCisgICAgdm9pZCBzZXRFcnJvck1lc3NhZ2UoU3RyaW5nJiYg
bWVzc2FnZSkgeyBtX2NvbnRleHQuc2V0RXJyb3JNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOyB9
CisKICAgICBDb250ZXh0JiBtX2NvbnRleHQ7CiAgICAgRXhwcmVzc2lvbkxpc3QgbV9leHByZXNz
aW9uU3RhY2s7CiAgICAgVmVjdG9yPENvbnRyb2xFbnRyeT4gbV9jb250cm9sU3RhY2s7CkBAIC0z
NDUsNyArMzQ3LDcgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNz
aW9uKE9wVHlwZSBvcCkKIAogICAgIGNhc2UgT3BUeXBlOjpFbHNlOiB7CiAgICAgICAgIGlmICgh
bV9jb250cm9sU3RhY2suc2l6ZSgpKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQuc2V0RXJyb3JN
ZXNzYWdlKCJBdHRlbXB0ZWQgdG8gdXNlIGVsc2UgYmxvY2sgYXQgdGhlIHRvcC1sZXZlbCBvZiBh
IGZ1bmN0aW9uIik7CisgICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UoIkF0dGVtcHRlZCB0byB1
c2UgZWxzZSBibG9jayBhdCB0aGUgdG9wLWxldmVsIG9mIGEgZnVuY3Rpb24iKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC0zNzMsNiArMzc1LDQ1IEBAIGJvb2wg
RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAg
ICAgIHJldHVybiBtX2NvbnRleHQuYWRkQnJhbmNoKGRhdGEsIGNvbmRpdGlvbiwgbV9leHByZXNz
aW9uU3RhY2spOwogICAgIH0KIAorICAgIGNhc2UgT3BUeXBlOjpCclRhYmxlOiB7CisgICAgICAg
IHVpbnQzMl90IG51bWJlck9mVGFyZ2V0czsKKyAgICAgICAgaWYgKCFwYXJzZVZhclVJbnQzMihu
dW1iZXJPZlRhcmdldHMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFZl
Y3RvcjxDb250cm9sVHlwZSo+IHRhcmdldHM7CisgICAgICAgIGlmICghdGFyZ2V0cy50cnlSZXNl
cnZlQ2FwYWNpdHkobnVtYmVyT2ZUYXJnZXRzKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtYmVyT2ZUYXJnZXRzOyArK2kp
IHsKKyAgICAgICAgICAgIHVpbnQzMl90IHRhcmdldDsKKyAgICAgICAgICAgIGlmICghcGFyc2VW
YXJVSW50MzIodGFyZ2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgICAgIGlmICh0YXJnZXQgPj0gbV9jb250cm9sU3RhY2suc2l6ZSgpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQo
Jm1fY29udHJvbFN0YWNrW21fY29udHJvbFN0YWNrLnNpemUoKSAtIDEgLSB0YXJnZXRdLmNvbnRy
b2xEYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IGRlZmF1bHRUYXJnZXQ7Cisg
ICAgICAgIGlmICghcGFyc2VWYXJVSW50MzIoZGVmYXVsdFRhcmdldCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGRlZmF1bHRUYXJnZXQgPj0gbV9jb250cm9sU3Rh
Y2suc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEV4cHJlc3Np
b25UeXBlIGNvbmRpdGlvbjsKKyAgICAgICAgaWYgKCFwb3BFeHByZXNzaW9uU3RhY2soY29uZGl0
aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICgh
bV9jb250ZXh0LmFkZFN3aXRjaChjb25kaXRpb24sIHRhcmdldHMsIG1fY29udHJvbFN0YWNrW21f
Y29udHJvbFN0YWNrLnNpemUoKSAtIDEgLSBkZWZhdWx0VGFyZ2V0XS5jb250cm9sRGF0YSwgbV9l
eHByZXNzaW9uU3RhY2spKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1f
dW5yZWFjaGFibGVCbG9ja3MgPSAxOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKwog
ICAgIGNhc2UgT3BUeXBlOjpSZXR1cm46IHsKICAgICAgICAgcmV0dXJuIGFkZFJldHVybigpOwog
ICAgIH0KQEAgLTM5NCw3ICs0MzUsNiBAQCBib29sIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+Ojpw
YXJzZUV4cHJlc3Npb24oT3BUeXBlIG9wKQogICAgIH0KIAogICAgIGNhc2UgT3BUeXBlOjpTZWxl
Y3Q6Ci0gICAgY2FzZSBPcFR5cGU6OkJyVGFibGU6CiAgICAgY2FzZSBPcFR5cGU6Ok5vcDoKICAg
ICBjYXNlIE9wVHlwZTo6RHJvcDoKICAgICBjYXNlIE9wVHlwZTo6VGVlTG9jYWw6CkBAIC00NTMs
NyArNDkzLDYgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJs
ZUV4cHJlc3Npb24oT3BUeXBlIG9wKQogICAgIH0KIAogICAgIC8vIG9uZSBpbW1lZGlhdGUgY2Fz
ZXMKLSAgICBjYXNlIE9wVHlwZTo6UmV0dXJuOgogICAgIGNhc2UgT3BUeXBlOjpGMzJDb25zdDoK
ICAgICBjYXNlIE9wVHlwZTo6STMyQ29uc3Q6CiAgICAgY2FzZSBPcFR5cGU6OkY2NENvbnN0OgpA
QCAtNDc4LDcgKzUxNyw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBvcEV4cHJl
c3Npb25TdGFjayhFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKLSAgICBtX2NvbnRleHQuc2V0RXJyb3JNZXNzYWdlKCJBdHRlbXB0ZWQgdG8gdXNl
IGEgc3RhY2sgdmFsdWUgd2hlbiBub25lIGV4aXN0ZWQiKTsKKyAgICBzZXRFcnJvck1lc3NhZ2Uo
IkF0dGVtcHRlZCB0byB1c2UgYSBzdGFjayB2YWx1ZSB3aGVuIG5vbmUgZXhpc3RlZCIpOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxp
ZGF0ZS5jcHAKaW5kZXggMzk4M2I3YTIxNjcxYzljMmJiODNmNTA3MzUxMWZhODBmYWNiZThkYS4u
OGFkZThjNjFlNWMxMTIzMDZiNWQwYjJhZTE4MDBlMzE3ZmUyMmI2MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCkBAIC0xMDIsNyArMTAyLDggQEAgcHVi
bGljOgogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEVsc2VUb1VucmVhY2hhYmxlKENv
bnRyb2xEYXRhJik7CiAKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRSZXR1cm4oY29u
c3QgRXhwcmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcyk7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9S
RVRVUk4gYWRkQnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBj
b25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKKyAgICBib29sIFdBUk5fVU5VU0VE
X1JFVFVSTiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24s
IGNvbnN0IEV4cHJlc3Npb25MaXN0JiBleHByZXNzaW9uU3RhY2spOworICAgIGJvb2wgV0FSTl9V
TlVTRURfUkVUVVJOIGFkZFN3aXRjaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZl
Y3RvcjxDb250cm9sRGF0YSo+JiB0YXJnZXRzLCBDb250cm9sRGF0YSYgZGVmYXVsdFRhcmdldCwg
Y29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjayk7CiAgICAgYm9vbCBXQVJOX1VO
VVNFRF9SRVRVUk4gZW5kQmxvY2soQ29udHJvbEVudHJ5JiwgRXhwcmVzc2lvbkxpc3QmIGV4cHJl
c3Npb25TdGFjayk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkRW5kVG9VbnJlYWNo
YWJsZShDb250cm9sRW50cnkmKTsKIApAQCAtMTIyLDYgKzEyMyw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCB1bmlmeShUeXBlLCBUeXBlKTsKICAgICBib29sIHVuaWZ5KGNvbnN0IEV4cHJlc3Npb25M
aXN0JiwgY29uc3QgQ29udHJvbERhdGEmKTsKIAorICAgIGJvb2wgY2hlY2tCcmFuY2hUYXJnZXQo
Q29udHJvbERhdGEmIHRhcmdldCwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFj
ayk7CisKICAgICBFeHByZXNzaW9uVHlwZSBtX3JldHVyblR5cGU7CiAgICAgVmVjdG9yPFR5cGU+
IG1fbG9jYWxzOwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKQEAgLTIyMywyNiArMjI2LDUy
IEBAIGJvb2wgVmFsaWRhdGU6OmFkZFJldHVybihjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJu
VmFsdWVzKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBWYWxpZGF0ZTo6Y2hlY2tCcmFu
Y2hUYXJnZXQoQ29udHJvbFR5cGUmIHRhcmdldCwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJl
c3Npb25TdGFjaykKKyAgICB7CisgICAgICAgIGlmICh0YXJnZXQudHlwZSgpID09IEJsb2NrVHlw
ZTo6TG9vcCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICh0YXJnZXQu
c2lnbmF0dXJlKCkgPT0gVm9pZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
IGlmICghZXhwcmVzc2lvblN0YWNrLnNpemUoKSkgeworICAgICAgICAgICAgbV9lcnJvck1lc3Nh
Z2UgPSBtYWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGJyYW5jaCB0byBibG9jayB3aXRoIGV4cGVj
dGVkIHR5cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSksICIgYnV0IHRoZSBzdGFj
ayB3YXMgZW1wdHkiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICh0YXJnZXQuc2lnbmF0dXJlKCkgPT0gZXhwcmVzc2lvblN0YWNrLmxhc3QoKSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFr
ZVN0cmluZygiQXR0ZW1wdGluZyB0byBicmFuY2ggdG8gYmxvY2sgd2l0aCBleHBlY3RlZCB0eXBl
OiAiLCB0b1N0cmluZyh0YXJnZXQuc2lnbmF0dXJlKCkpLCAiIGJ1dCBzdGFjayBoYXMgdHlwZTog
IiwgdG9TdHJpbmcodGFyZ2V0LnNpZ25hdHVyZSgpKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKIGJvb2wgVmFsaWRhdGU6OmFkZEJyYW5jaChDb250cm9sVHlwZSYgdGFyZ2V0LCBF
eHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IEV4cHJlc3Npb25MaXN0JiBzdGFjaykKIHsK
LSAgICAvLyBWb2lkIG1lYW5zIHRoaXMgaXMgbm90IGEgY29uZGl0aW9uYWwgYnJhbmNoLgorICAg
IC8vIFZvaWQgbWVhbnMgdGhpcyBpcyBhbiB1bmNvbmRpdGlvbmFsIGJyYW5jaC4KICAgICBpZiAo
Y29uZGl0aW9uICE9IFZvaWQgJiYgY29uZGl0aW9uICE9IEkzMikgewogICAgICAgICBtX2Vycm9y
TWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8gYWRkIGEgY29uZGl0aW9uYWwgYnJh
bmNoIHdpdGggY29uZGl0aW9uIHR5cGU6ICIsIHRvU3RyaW5nKGNvbmRpdGlvbiksICIgYnV0IGV4
cGVjdGVkIGkzMi4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICh0
YXJnZXQudHlwZSgpID09IEJsb2NrVHlwZTo6TG9vcCkKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgcmV0dXJuIGNoZWNrQnJhbmNoVGFyZ2V0KHRhcmdldCwgc3RhY2spOworfQogCi0gICAgaWYg
KHRhcmdldC5zaWduYXR1cmUoKSA9PSBWb2lkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKK2Jvb2wg
VmFsaWRhdGU6OmFkZFN3aXRjaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZlY3Rv
cjxDb250cm9sRGF0YSo+JiB0YXJnZXRzLCBDb250cm9sRGF0YSYgZGVmYXVsdFRhcmdldCwgY29u
c3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjaykKK3sKKyAgICBpZiAoY29uZGl0aW9u
ICE9IEkzMikgeworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRp
bmcgdG8gYWRkIGEgYnJfdGFibGUgd2l0aCBjb25kaXRpb24gdHlwZTogIiwgdG9TdHJpbmcoY29u
ZGl0aW9uKSwgIiBidXQgZXhwZWN0ZWQgaTMyLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQogCi0gICAgQVNTRVJUKHN0YWNrLnNpemUoKSA9PSAxKTsKLSAgICBpZiAodGFyZ2V0LnNp
Z25hdHVyZSgpID09IHN0YWNrWzBdKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBmb3IgKGF1
dG8gdGFyZ2V0IDogdGFyZ2V0cykgeworICAgICAgICBpZiAoZGVmYXVsdFRhcmdldC5zaWduYXR1
cmUoKSAhPSB0YXJnZXQtPnNpZ25hdHVyZSgpKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8gYWRkIGEgYnJfdGFibGUgd2l0aCBkaWZmZXJl
bnQgZXhwZWN0ZWQgdHlwZXMuIERlZmF1bHQgdGFyZ2V0IGhhcyB0eXBlOiAiLCB0b1N0cmluZyhk
ZWZhdWx0VGFyZ2V0LnNpZ25hdHVyZSgpKSwgIiBidXQgY2FzZSBoYXNlIHR5cGU6ICIsIHRvU3Ry
aW5nKHRhcmdldC0+c2lnbmF0dXJlKCkpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgfQorICAgIH0KIAotICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQXR0ZW1w
dGluZyB0byBicmFuY2ggdG8gYmxvY2sgd2l0aCBleHBlY3RlZCB0eXBlOiAiLCB0b1N0cmluZyh0
YXJnZXQuc2lnbmF0dXJlKCkpLCAiIGJ1dCBicmFuY2hpbmcgd2l0aCB0eXBlOiAiLCB0b1N0cmlu
Zyh0YXJnZXQuc2lnbmF0dXJlKCkpKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNo
ZWNrQnJhbmNoVGFyZ2V0KGRlZmF1bHRUYXJnZXQsIGV4cHJlc3Npb25TdGFjayk7CiB9CiAKIGJv
b2wgVmFsaWRhdGU6OmVuZEJsb2NrKENvbnRyb2xFbnRyeSYgZW50cnksIEV4cHJlc3Npb25MaXN0
JiBzdGFjaykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293937</attachid>
            <date>2016-11-04 14:56:10 -0700</date>
            <delta_ts>2016-11-04 15:33:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164429-20161104145207.patch</filename>
            <type>text/plain</type>
            <size>20181</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ZTRlZjRlNWIwZTZmYWFkNzlhOGFkMmIzMmMzMGQ1MTQ3NmMxZjU0Li41ZTVjMjY1YjQxM2I2OWQx
Mzk2ZWRhNzJlNDE0NTJhZTQ1MzU2MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNi0xMS0wNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgV2FzbSBicl90YWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0NDI5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHN1
cHBvcnQgZm9yIFdhc20gYnJfdGFibGUuIHRoZSBXYXNtIGJyX3RhYmxlCisgICAgICAgIG9wY29k
ZSBlc3NlbnRpYWxseSBkaXJlY3RseSBtYXBzIHRvIEIzJ3Mgc3dpdGNoIG9wY29kZS4KKworICAg
ICAgICBUaGVyZSBhcmUgYWxzbyB0aHJlZSBvdGhlciBtaW5vciBjaGFuZ2VzOgorICAgICAgICAx
KSBhbGwgbm9uLWFyZ3VtZW50IGxvY2FscyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgdG8gemVybyBh
dCBmdW5jdGlvbiBlbnRyeS4KKyAgICAgICAgMikgYWRkIG5ldyBzZXRFcnJvck1lc3NhZ2UgbWVt
YmVyIHRvIFdhc21GdW5jdGlvblBhcnNlci5oCisgICAgICAgIDMpIHJldHVybiBkb2VzIG5vdCBk
ZWNvZGUgYW4gZXh0cmEgaW1tZWRpYXRlIGFueW1vcmUuCisKKyAgICAgICAgKiB0ZXN0V2FzbS5j
cHA6CisgICAgICAgIChydW5XYXNtVGVzdHMpOgorICAgICAgICAqIHdhc20vV2FzbUIzSVJHZW5l
cmF0b3IuY3BwOgorICAgICAgICAqIHdhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmg6CisgICAgICAg
IChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyOjpzZXRFcnJvck1lc3NhZ2UpOgorICAgICAgICAo
SlNDOjpXYXNtOjpGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBhcnNlVW5yZWFjaGFi
bGVFeHByZXNzaW9uKToKKyAgICAgICAgKEpTQzo6V2FzbTo6RnVuY3Rpb25QYXJzZXI8Q29udGV4
dD46OnBvcEV4cHJlc3Npb25TdGFjayk6CisgICAgICAgICogd2FzbS9XYXNtVmFsaWRhdGUuY3Bw
OgorICAgICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6Y2hlY2tCcmFuY2hUYXJnZXQpOgorICAg
ICAgICAoSlNDOjpXYXNtOjpWYWxpZGF0ZTo6YWRkQnJhbmNoKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6VmFsaWRhdGU6OmFkZFN3aXRjaCk6CisKIDIwMTYtMTEtMDMgIEtlaXRoIE1pbGxlciAgPGtl
aXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdlbG9nIGZp
eCBkdWUgdG8gZmFpbGVkIGdpdCByZWJhc2UuLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RXYXNtLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0V2FzbS5jcHAK
aW5kZXggNmUzZjVkMmQwYjljMmFjYWZkNDEzMTY3ZDdlZGI0ODkxYTI1ZDkyYi4uYWMxM2JkMTRj
Yjg0ZmNlMDQyNjUxOGE5MzIzNDQxZDRiYTk4ODU1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RXYXNtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdFdh
c20uY3BwCkBAIC0yOTYsNiArMjk2LDEyNiBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQog
ICAgIHsKICAgICAgICAgLy8gR2VuZXJhdGVkIGZyb206CiAgICAgICAgIC8vICAgIChtb2R1bGUK
KyAgICAgICAgLy8gICAgIChmdW5jIChleHBvcnQgImJyX3RhYmxlLXdpdGgtbG9vcCIpIChwYXJh
bSAkeCBpMzIpIChyZXN1bHQgaTMyKQorICAgICAgICAvLyAgICAgIChsb2NhbCAkaSBpMzIpCisg
ICAgICAgIC8vICAgICAgKGxvb3AKKyAgICAgICAgLy8gICAgICAgKGJsb2NrCisgICAgICAgIC8v
ICAgICAgICAoZ2V0X2xvY2FsICR4KQorICAgICAgICAvLyAgICAgICAgKHNldF9sb2NhbCAkaSAo
aTMyLmFkZCAoZ2V0X2xvY2FsICRpKSAoaTMyLmNvbnN0IDEpKSkKKyAgICAgICAgLy8gICAgICAg
IChzZXRfbG9jYWwgJHggKGkzMi5zdWIgKGdldF9sb2NhbCAkeCkgKGkzMi5jb25zdCAxKSkpCisg
ICAgICAgIC8vICAgICAgICAoYnJfdGFibGUgMCAxKQorICAgICAgICAvLyAgICAgICAgKQorICAg
ICAgICAvLyAgICAgICApCisgICAgICAgIC8vICAgICAgKGdldF9sb2NhbCAkaSkKKyAgICAgICAg
Ly8gICAgICApCisgICAgICAgIC8vICAgICApCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0
b3IgPSB7CisgICAgICAgICAgICAweDAwLCAweDYxLCAweDczLCAweDZkLCAweDBjLCAweDAwLCAw
eDAwLCAweDAwLCAweDAxLCAweDg2LCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDQw
LAorICAgICAgICAgICAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMywgMHg4MiwgMHg4MCwg
MHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwNywgMHg5NiwgMHg4MCwgMHg4MCwKKyAg
ICAgICAgICAgIDB4ODAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4NjIsIDB4NzIsIDB4NWYsIDB4NzQs
IDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MmQsIDB4NzcsIDB4NjksIDB4NzQsCisgICAgICAg
ICAgICAweDY4LCAweDJkLCAweDZjLCAweDZmLCAweDZmLCAweDcwLCAweDAwLCAweDAwLCAweDBh
LCAweGE2LCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweGEwLAorICAgICAgICAgICAg
MHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMiwgMHgwMCwgMHgw
MSwgMHgwMCwgMHgxNCwgMHgwMCwgMHgxNCwgMHgwMSwgMHgxMCwKKyAgICAgICAgICAgIDB4MDEs
IDB4NDAsIDB4MTUsIDB4MDEsIDB4MTQsIDB4MDAsIDB4MTAsIDB4MDEsIDB4NDEsIDB4MTUsIDB4
MDAsIDB4MDgsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MGYsCisgICAgICAgICAgICAweDBmLCAweDE0
LCAweDAxLCAweDBmCisgICAgICAgIH07CisKKyAgICAgICAgUGxhbiBwbGFuKCp2bSwgdmVjdG9y
KTsKKyAgICAgICAgY2hlY2tQbGFuKHBsYW4sIDEpOworCisgICAgICAgIC8vIFRlc3QgdGhpcyBk
b2Vzbid0IGNyYXNoLgorICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQo
MCktPmpzRW50cnlQb2ludCwgeyBib3goMCkgfSksIDEpOworICAgICAgICBDSEVDS19FUShpbnZv
a2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMSkgfSksIDIpOwor
ICAgICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2lu
dCwgeyBib3goMTAwKSB9KSwgMTAxKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBs
YW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDEyMikgfSksIDEyMyk7CisgICAgfQor
CisgICAgeworICAgICAgICAvLyBHZW5lcmF0ZWQgZnJvbToKKyAgICAgICAgLy8gICAgKG1vZHVs
ZQorICAgICAgICAvLyAgICAgKGZ1bmMgKGV4cG9ydCAibXVsdGlwbGUtdmFsdWUiKSAocGFyYW0g
aTMyKSAocmVzdWx0IGkzMikKKyAgICAgICAgLy8gICAgICAobG9jYWwgaTMyKQorICAgICAgICAv
LyAgICAgIChzZXRfbG9jYWwgMSAoYmxvY2sgaTMyCisgICAgICAgIC8vICAgICAgICAoc2V0X2xv
Y2FsIDEgKGJsb2NrIGkzMgorICAgICAgICAvLyAgICAgICAgICAoc2V0X2xvY2FsIDEgKGJsb2Nr
IGkzMgorICAgICAgICAvLyAgICAgICAgICAgIChzZXRfbG9jYWwgMSAoYmxvY2sgaTMyCisgICAg
ICAgIC8vICAgICAgICAgICAgICAoc2V0X2xvY2FsIDEgKGJsb2NrIGkzMgorICAgICAgICAvLyAg
ICAgICAgICAgICAgICAoYnJfdGFibGUgMyAyIDEgMCA0IChpMzIuY29uc3QgMjAwKSAoZ2V0X2xv
Y2FsIDApKQorICAgICAgICAvLyAgICAgICAgICAgICAgICAocmV0dXJuIChpMzIuYWRkIChnZXRf
bG9jYWwgMSkgKGkzMi5jb25zdCA5OSkpKQorICAgICAgICAvLyAgICAgICAgICAgICAgICApKQor
ICAgICAgICAvLyAgICAgICAgICAgICAgKHJldHVybiAoaTMyLmFkZCAoZ2V0X2xvY2FsIDEpIChp
MzIuY29uc3QgMTApKSkKKyAgICAgICAgLy8gICAgICAgICAgICAgICkpCisgICAgICAgIC8vICAg
ICAgICAgICAgKHJldHVybiAoaTMyLmFkZCAoZ2V0X2xvY2FsIDEpIChpMzIuY29uc3QgMTEpKSkK
KyAgICAgICAgLy8gICAgICAgICAgICApKQorICAgICAgICAvLyAgICAgICAgICAocmV0dXJuIChp
MzIuYWRkIChnZXRfbG9jYWwgMSkgKGkzMi5jb25zdCAxMikpKQorICAgICAgICAvLyAgICAgICAg
ICApKQorICAgICAgICAvLyAgICAgICAgKHJldHVybiAoaTMyLmFkZCAoZ2V0X2xvY2FsIDEpIChp
MzIuY29uc3QgMTMpKSkKKyAgICAgICAgLy8gICAgICAgICkpCisgICAgICAgIC8vICAgICAgKGkz
Mi5hZGQgKGdldF9sb2NhbCAxKSAoaTMyLmNvbnN0IDE0KSkKKyAgICAgICAgLy8gICAgICApCisg
ICAgICAgIC8vICAgICApCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3IgPSB7CisgICAg
ICAgICAgICAweDAwLCAweDYxLCAweDczLCAweDZkLCAweDBjLCAweDAwLCAweDAwLCAweDAwLCAw
eDAxLCAweDg2LCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDQwLAorICAgICAgICAg
ICAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMywgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MCwg
MHgwMCwgMHgwMSwgMHgwMCwgMHgwNywgMHg5MiwgMHg4MCwgMHg4MCwKKyAgICAgICAgICAgIDB4
ODAsIDB4MDAsIDB4MDEsIDB4MGUsIDB4NmQsIDB4NzUsIDB4NmMsIDB4NzQsIDB4NjksIDB4NzAs
IDB4NmMsIDB4NjUsIDB4MmQsIDB4NzYsIDB4NjEsIDB4NmMsCisgICAgICAgICAgICAweDc1LCAw
eDY1LCAweDAwLCAweDAwLCAweDBhLCAweGQzLCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAx
LCAweGNkLCAweDgwLCAweDgwLCAweDgwLCAweDAwLAorICAgICAgICAgICAgMHgwMSwgMHgwMSwg
MHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSwgMHgw
MSwgMHgwMSwgMHgxMCwgMHhjOCwgMHgwMSwKKyAgICAgICAgICAgIDB4MTQsIDB4MDAsIDB4MDgs
IDB4MDQsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MDAsIDB4MDQsIDB4MTQsIDB4MDEsIDB4MTAsIDB4
ZTMsIDB4MDAsIDB4NDAsIDB4MDksCisgICAgICAgICAgICAweDBmLCAweDE1LCAweDAxLCAweDE0
LCAweDAxLCAweDEwLCAweDBhLCAweDQwLCAweDA5LCAweDBmLCAweDE1LCAweDAxLCAweDE0LCAw
eDAxLCAweDEwLCAweDBiLAorICAgICAgICAgICAgMHg0MCwgMHgwOSwgMHgwZiwgMHgxNSwgMHgw
MSwgMHgxNCwgMHgwMSwgMHgxMCwgMHgwYywgMHg0MCwgMHgwOSwgMHgwZiwgMHgxNSwgMHgwMSwg
MHgxNCwgMHgwMSwKKyAgICAgICAgICAgIDB4MTAsIDB4MGQsIDB4NDAsIDB4MDksIDB4MGYsIDB4
MTUsIDB4MDEsIDB4MTQsIDB4MDEsIDB4MTAsIDB4MGUsIDB4NDAsIDB4MGYKKyAgICAgICAgfTsK
KworICAgICAgICBQbGFuIHBsYW4oKnZtLCB2ZWN0b3IpOworICAgICAgICBjaGVja1BsYW4ocGxh
biwgMSk7CisKKyAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCisgICAgICAgIENI
RUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgw
KSB9KSwgMjEzKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDAp
LT5qc0VudHJ5UG9pbnQsIHsgYm94KDEpIH0pLCAyMTIpOworICAgICAgICBDSEVDS19FUShpbnZv
a2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goMikgfSksIDIxMSk7
CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBv
aW50LCB7IGJveCgzKSB9KSwgMjEwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBs
YW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDMpIH0pLCAyMTApOworICAgICAgICBD
SEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3go
NCkgfSksIDIxNCk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgw
KS0+anNFbnRyeVBvaW50LCB7IGJveCg1KSB9KSwgMjE0KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52
b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KC0xKSB9KSwgMjE0
KTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5
UG9pbnQsIHsgYm94KC0xMDAwKSB9KSwgMjE0KTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIC8v
IEdlbmVyYXRlZCBmcm9tOgorICAgICAgICAvLyAgICAobW9kdWxlCisgICAgICAgIC8vICAgICAo
ZnVuYyAoZXhwb3J0ICJzaW5nbGV0b24iKSAocGFyYW0gaTMyKSAocmVzdWx0IGkzMikKKyAgICAg
ICAgLy8gICAgICAoYmxvY2sKKyAgICAgICAgLy8gICAgICAgKGJsb2NrCisgICAgICAgIC8vICAg
ICAgICAoYnJfdGFibGUgMSAwIChnZXRfbG9jYWwgMCkpCisgICAgICAgIC8vICAgICAgICAocmV0
dXJuIChpMzIuY29uc3QgMjEpKQorICAgICAgICAvLyAgICAgICAgKQorICAgICAgICAvLyAgICAg
ICAocmV0dXJuIChpMzIuY29uc3QgMjApKQorICAgICAgICAvLyAgICAgICApCisgICAgICAgIC8v
ICAgICAgKGkzMi5jb25zdCAyMikKKyAgICAgICAgLy8gICAgICApCisgICAgICAgIC8vICAgICAp
CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiB2ZWN0b3IgPSB7CisgICAgICAgICAgICAweDAwLCAw
eDYxLCAweDczLCAweDZkLCAweDBjLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDg2LCAweDgw
LCAweDgwLCAweDgwLCAweDAwLCAweDAxLCAweDQwLAorICAgICAgICAgICAgMHgwMSwgMHgwMSwg
MHgwMSwgMHgwMSwgMHgwMywgMHg4MiwgMHg4MCwgMHg4MCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgw
MCwgMHgwNywgMHg4ZCwgMHg4MCwgMHg4MCwKKyAgICAgICAgICAgIDB4ODAsIDB4MDAsIDB4MDEs
IDB4MDksIDB4NzMsIDB4NjksIDB4NmUsIDB4NjcsIDB4NmMsIDB4NjUsIDB4NzQsIDB4NmYsIDB4
NmUsIDB4MDAsIDB4MDAsIDB4MGEsCisgICAgICAgICAgICAweDljLCAweDgwLCAweDgwLCAweDgw
LCAweDAwLCAweDAxLCAweDk2LCAweDgwLCAweDgwLCAweDgwLCAweDAwLCAweDAwLCAweDAxLCAw
eDAwLCAweDAxLCAweDAwLAorICAgICAgICAgICAgMHgxNCwgMHgwMCwgMHgwOCwgMHgwMSwgMHgw
MSwgMHgwMCwgMHgxMCwgMHgxNSwgMHgwOSwgMHgwZiwgMHgxMCwgMHgxNCwgMHgwOSwgMHgwZiwg
MHgxMCwgMHgxNiwKKyAgICAgICAgICAgIDB4MGYKKyAgICAgICAgfTsKKworICAgICAgICBQbGFu
IHBsYW4oKnZtLCB2ZWN0b3IpOworICAgICAgICBjaGVja1BsYW4ocGxhbiwgMSk7CisKKyAgICAg
ICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCisgICAgICAgIENIRUNLX0VRKGludm9rZTxp
bnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSB9KSwgMjIpOworICAg
ICAgICBDSEVDS19FUShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwg
eyBib3goMSkgfSksIDIwKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVz
dWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDExKSB9KSwgMjApOworICAgICAgICBDSEVDS19F
UShpbnZva2U8aW50PigqcGxhbi5yZXN1bHQoMCktPmpzRW50cnlQb2ludCwgeyBib3goLTEwMCkg
fSksIDIwKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIC8vIEdlbmVyYXRlZCBmcm9tOgorICAg
ICAgICAvLyAgICAobW9kdWxlCiAgICAgICAgIC8vICAgICAoZnVuYyAoZXhwb3J0ICJpZi10aGVu
LWJvdGgtZmFsbHRocm91Z2giKSAocGFyYW0gJHggaTMyKSAocGFyYW0gJHkgaTMyKSAocmVzdWx0
IGkzMikKICAgICAgICAgLy8gICAgICAoYmxvY2sgJGJsb2NrIGkzMgogICAgICAgICAvLyAgICAg
ICAoaWYgaTMyIChpMzIuZXEgKGdldF9sb2NhbCAkeCkgKGkzMi5jb25zdCAwKSkKQEAgLTMyMCw4
ICs0NDAsOCBAQCBzdGF0aWMgdm9pZCBydW5XYXNtVGVzdHMoKQogICAgICAgICBjaGVja1BsYW4o
cGxhbiwgMSk7CiAKICAgICAgICAgLy8gVGVzdCB0aGlzIGRvZXNuJ3QgY3Jhc2guCi0gICAgICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBv
aW50LCB7IGJveGYoMCksIGJveGYoMzIpIH0pLCAxKSk7Ci0gICAgICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveGYoMSks
IGJveGYoMzIpIH0pLCAyKSk7CisgICAgICAgIENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJl
c3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJveCgwKSwgYm94KDMyKSB9KSwgMSk7CisgICAgICAg
IENIRUNLX0VRKGludm9rZTxpbnQ+KCpwbGFuLnJlc3VsdCgwKS0+anNFbnRyeVBvaW50LCB7IGJv
eCgxKSwgYm94KDMyKSB9KSwgMik7CiAgICAgfQogCiAgICAgewpAQCAtMzQ3LDggKzQ2Nyw4IEBA
IHN0YXRpYyB2b2lkIHJ1bldhc21UZXN0cygpCiAgICAgICAgIGNoZWNrUGxhbihwbGFuLCAxKTsK
IAogICAgICAgICAvLyBUZXN0IHRoaXMgZG9lc24ndCBjcmFzaC4KLSAgICAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94
ZigwKSwgYm94ZigzMikgfSksIDEpKTsKLSAgICAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tl
PGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94ZigxKSwgYm94ZigzMikg
fSksIDIpKTsKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5q
c0VudHJ5UG9pbnQsIHsgYm94KDApLCBib3goMzIpIH0pLCAxKTsKKyAgICAgICAgQ0hFQ0tfRVEo
aW52b2tlPGludD4oKnBsYW4ucmVzdWx0KDApLT5qc0VudHJ5UG9pbnQsIHsgYm94KDEpLCBib3go
MzIpIH0pLCAyKTsKICAgICB9CiAKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKaW5kZXggNzQzMjU2MzhiMDdkMDUxNzllYWQwYzU5
M2I3YjY1YjIxYTQyNDA0MS4uNTgzZmI4MmQ1NzRhMTBiZGI0MGU4YTNkMDg1YjgyODcyNmQzNmIx
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUIzSVJHZW5lcmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9y
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMu
aCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgog
I2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgpAQCAt
MTc1LDYgKzE3Niw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFk
ZFJldHVybihjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKICAgICBib29sIFdB
Uk5fVU5VU0VEX1JFVFVSTiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBj
b25kaXRpb24sIGNvbnN0IEV4cHJlc3Npb25MaXN0JiByZXR1cm5WYWx1ZXMpOworICAgIGJvb2wg
V0FSTl9VTlVTRURfUkVUVVJOIGFkZFN3aXRjaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNv
bnN0IFZlY3RvcjxDb250cm9sRGF0YSo+JiB0YXJnZXRzLCBDb250cm9sRGF0YSYgZGVmYXVsdFRh
cmdldHMsIGNvbnN0IEV4cHJlc3Npb25MaXN0JiBleHByZXNzaW9uU3RhY2spOwogICAgIGJvb2wg
V0FSTl9VTlVTRURfUkVUVVJOIGVuZEJsb2NrKENvbnRyb2xFbnRyeSYsIEV4cHJlc3Npb25MaXN0
JiBleHByZXNzaW9uU3RhY2spOwogICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEVuZFRv
VW5yZWFjaGFibGUoQ29udHJvbEVudHJ5Jik7CiAKQEAgLTE5MSw2ICsxOTMsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCB1bmlmeShWYXJpYWJsZSogdGFyZ2V0LCBjb25zdCBFeHByZXNzaW9uVHlw
ZSBzb3VyY2UpOwogICAgIHZvaWQgdW5pZnlWYWx1ZXNXaXRoQmxvY2soY29uc3QgRXhwcmVzc2lv
bkxpc3QmIHJlc3VsdFN0YWNrLCBSZXN1bHRMaXN0JiBzdGFjayk7CisgICAgVmFsdWUqIHplcm9G
b3JUeXBlKFR5cGUpOwogCiAgICAgTWVtb3J5KiBtX21lbW9yeTsKICAgICBQcm9jZWR1cmUmIG1f
cHJvYzsKQEAgLTIwMCw2ICsyMDMsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxVbmxpbmtlZENh
bGw+JiBtX3VubGlua2VkQ2FsbHM7CiAgICAgR1BSUmVnIG1fbWVtb3J5QmFzZUdQUjsKICAgICBH
UFJSZWcgbV9tZW1vcnlTaXplR1BSOworICAgIFZhbHVlKiBtX3plcm9WYWx1ZXNbVHlwZTo6TGFz
dFZhbHVlVHlwZV07CiB9OwogCiBCM0lSR2VuZXJhdG9yOjpCM0lSR2VuZXJhdG9yKE1lbW9yeSog
bWVtb3J5LCBQcm9jZWR1cmUmIHByb2NlZHVyZSwgVmVjdG9yPFVubGlua2VkQ2FsbD4mIHVubGlu
a2VkQ2FsbHMpCkBAIC0yMDksNiArMjEzLDkgQEAgQjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVyYXRv
cihNZW1vcnkqIG1lbW9yeSwgUHJvY2VkdXJlJiBwcm9jZWR1cmUsIFZlY3RvcjxVbmxpbmsKIHsK
ICAgICBtX2N1cnJlbnRCbG9jayA9IG1fcHJvYy5hZGRCbG9jaygpOwogCisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IFR5cGU6Okxhc3RWYWx1ZVR5cGU7ICsraSkKKyAgICAgICAgbV96ZXJv
VmFsdWVzW2ldID0gbV9jdXJyZW50QmxvY2stPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgT3Jp
Z2luKCksIHRvQjNUeXBlKHN0YXRpY19jYXN0PFR5cGU+KGkgKyAxKSksIDApOworCiAgICAgaWYg
KG1fbWVtb3J5KSB7CiAgICAgICAgIG1fbWVtb3J5QmFzZUdQUiA9IG1fbWVtb3J5LT5waW5uZWRS
ZWdpc3RlcnMoKS5iYXNlTWVtb3J5UG9pbnRlcjsKICAgICAgICAgbV9wcm9jLnBpblJlZ2lzdGVy
KG1fbWVtb3J5QmFzZUdQUik7CkBAIC0yMjUsMTMgKzIzMiwyMiBAQCBCM0lSR2VuZXJhdG9yOjpC
M0lSR2VuZXJhdG9yKE1lbW9yeSogbWVtb3J5LCBQcm9jZWR1cmUmIHByb2NlZHVyZSwgVmVjdG9y
PFVubGluawogICAgIH0KIH0KIAorVmFsdWUqIEIzSVJHZW5lcmF0b3I6Onplcm9Gb3JUeXBlKFR5
cGUgdHlwZSkKK3sKKyAgICBBU1NFUlQodHlwZSAhPSBWb2lkKTsKKyAgICByZXR1cm4gbV96ZXJv
VmFsdWVzW3R5cGUgLSAxXTsKK30KKwogYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRMb2NhbChUeXBl
IHR5cGUsIHVpbnQzMl90IGNvdW50KQogewogICAgIGlmICghbV9sb2NhbHMudHJ5UmVzZXJ2ZUNh
cGFjaXR5KG1fbG9jYWxzLnNpemUoKSArIGNvdW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgIG1fbG9j
YWxzLnVuY2hlY2tlZEFwcGVuZChtX3Byb2MuYWRkVmFyaWFibGUodG9CM1R5cGUodHlwZSkpKTsK
KyAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBWYXJp
YWJsZSogbG9jYWwgPSBtX3Byb2MuYWRkVmFyaWFibGUodG9CM1R5cGUodHlwZSkpOworICAgICAg
ICBtX2xvY2Fscy51bmNoZWNrZWRBcHBlbmQobG9jYWwpOworICAgICAgICBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0LCBPcmlnaW4oKSwgbG9jYWws
IHplcm9Gb3JUeXBlKHR5cGUpKTsKKyAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTU0
NSw2ICs1NjEsMjAgQEAgYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRCcmFuY2goQ29udHJvbERhdGEm
IGRhdGEsIEV4cHJlc3Npb25UeXBlIGNvbmRpdGlvbiwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorYm9vbCBCM0lSR2VuZXJhdG9yOjphZGRTd2l0Y2goRXhwcmVzc2lvblR5cGUgY29uZGl0
aW9uLCBjb25zdCBWZWN0b3I8Q29udHJvbERhdGEqPiYgdGFyZ2V0cywgQ29udHJvbERhdGEmIGRl
ZmF1bHRUYXJnZXQsIGNvbnN0IEV4cHJlc3Npb25MaXN0JiBleHByZXNzaW9uU3RhY2spCit7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0YXJnZXRzLnNpemUoKTsgKytpKQorICAgICAgICB1
bmlmeVZhbHVlc1dpdGhCbG9jayhleHByZXNzaW9uU3RhY2ssIHRhcmdldHNbaV0tPnJlc3VsdCk7
CisgICAgdW5pZnlWYWx1ZXNXaXRoQmxvY2soZXhwcmVzc2lvblN0YWNrLCBkZWZhdWx0VGFyZ2V0
LnJlc3VsdCk7CisKKyAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2N1cnJlbnRCbG9j
ay0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPihtX3Byb2MsIE9yaWdpbigpLCBjb25kaXRpb24pOwor
ICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2soZGVmYXVsdFRh
cmdldC50YXJnZXRCbG9ja0ZvckJyYW5jaCgpKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB0YXJnZXRzLnNpemUoKTsgKytpKQorICAgICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShT
d2l0Y2hDYXNlKGksIEZyZXF1ZW50ZWRCbG9jayh0YXJnZXRzW2ldLT50YXJnZXRCbG9ja0ZvckJy
YW5jaCgpKSkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgQjNJUkdlbmVyYXRvcjo6
ZW5kQmxvY2soQ29udHJvbEVudHJ5JiBlbnRyeSwgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25T
dGFjaykKIHsKICAgICBDb250cm9sRGF0YSYgZGF0YSA9IGVudHJ5LmNvbnRyb2xEYXRhOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAppbmRleCA1
ZjIwODE3ODkwMmJmNjY3OWQxMjIzNWQ0MDljOTM4ZDgzZjMwOGU1Li44MzM3MDJmZDFjZTU1ZjY2
NGRkOGQ2YzgxMDdjMDY2YTY2OTVjYTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRnVuY3Rpb25QYXJzZXIuaApAQCAtNjUsNiArNjUsOCBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcG9wRXhwcmVzc2lvblN0YWNrKEV4cHJlc3Npb25U
eXBlJiByZXN1bHQpOwogCisgICAgdm9pZCBzZXRFcnJvck1lc3NhZ2UoU3RyaW5nJiYgbWVzc2Fn
ZSkgeyBtX2NvbnRleHQuc2V0RXJyb3JNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOyB9CisKICAg
ICBDb250ZXh0JiBtX2NvbnRleHQ7CiAgICAgRXhwcmVzc2lvbkxpc3QgbV9leHByZXNzaW9uU3Rh
Y2s7CiAgICAgVmVjdG9yPENvbnRyb2xFbnRyeT4gbV9jb250cm9sU3RhY2s7CkBAIC0zNDUsNyAr
MzQ3LDcgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VFeHByZXNzaW9uKE9w
VHlwZSBvcCkKIAogICAgIGNhc2UgT3BUeXBlOjpFbHNlOiB7CiAgICAgICAgIGlmICghbV9jb250
cm9sU3RhY2suc2l6ZSgpKSB7Ci0gICAgICAgICAgICBtX2NvbnRleHQuc2V0RXJyb3JNZXNzYWdl
KCJBdHRlbXB0ZWQgdG8gdXNlIGVsc2UgYmxvY2sgYXQgdGhlIHRvcC1sZXZlbCBvZiBhIGZ1bmN0
aW9uIik7CisgICAgICAgICAgICBzZXRFcnJvck1lc3NhZ2UoIkF0dGVtcHRlZCB0byB1c2UgZWxz
ZSBibG9jayBhdCB0aGUgdG9wLWxldmVsIG9mIGEgZnVuY3Rpb24iKTsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC0zNzMsNiArMzc1LDQ1IEBAIGJvb2wgRnVuY3Rp
b25QYXJzZXI8Q29udGV4dD46OnBhcnNlRXhwcmVzc2lvbihPcFR5cGUgb3ApCiAgICAgICAgIHJl
dHVybiBtX2NvbnRleHQuYWRkQnJhbmNoKGRhdGEsIGNvbmRpdGlvbiwgbV9leHByZXNzaW9uU3Rh
Y2spOwogICAgIH0KIAorICAgIGNhc2UgT3BUeXBlOjpCclRhYmxlOiB7CisgICAgICAgIHVpbnQz
Ml90IG51bWJlck9mVGFyZ2V0czsKKyAgICAgICAgaWYgKCFwYXJzZVZhclVJbnQzMihudW1iZXJP
ZlRhcmdldHMpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFZlY3RvcjxD
b250cm9sVHlwZSo+IHRhcmdldHM7CisgICAgICAgIGlmICghdGFyZ2V0cy50cnlSZXNlcnZlQ2Fw
YWNpdHkobnVtYmVyT2ZUYXJnZXRzKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgbnVtYmVyT2ZUYXJnZXRzOyArK2kpIHsKKyAg
ICAgICAgICAgIHVpbnQzMl90IHRhcmdldDsKKyAgICAgICAgICAgIGlmICghcGFyc2VWYXJVSW50
MzIodGFyZ2V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAg
IGlmICh0YXJnZXQgPj0gbV9jb250cm9sU3RhY2suc2l6ZSgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICAgICAgdGFyZ2V0cy51bmNoZWNrZWRBcHBlbmQoJm1fY29u
dHJvbFN0YWNrW21fY29udHJvbFN0YWNrLnNpemUoKSAtIDEgLSB0YXJnZXRdLmNvbnRyb2xEYXRh
KTsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IGRlZmF1bHRUYXJnZXQ7CisgICAgICAg
IGlmICghcGFyc2VWYXJVSW50MzIoZGVmYXVsdFRhcmdldCkpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgaWYgKGRlZmF1bHRUYXJnZXQgPj0gbV9jb250cm9sU3RhY2suc2l6
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEV4cHJlc3Npb25UeXBl
IGNvbmRpdGlvbjsKKyAgICAgICAgaWYgKCFwb3BFeHByZXNzaW9uU3RhY2soY29uZGl0aW9uKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmICghbV9jb250
ZXh0LmFkZFN3aXRjaChjb25kaXRpb24sIHRhcmdldHMsIG1fY29udHJvbFN0YWNrW21fY29udHJv
bFN0YWNrLnNpemUoKSAtIDEgLSBkZWZhdWx0VGFyZ2V0XS5jb250cm9sRGF0YSwgbV9leHByZXNz
aW9uU3RhY2spKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIG1fdW5yZWFj
aGFibGVCbG9ja3MgPSAxOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKwogICAgIGNh
c2UgT3BUeXBlOjpSZXR1cm46IHsKICAgICAgICAgcmV0dXJuIGFkZFJldHVybigpOwogICAgIH0K
QEAgLTM5NCw3ICs0MzUsNiBAQCBib29sIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpwYXJzZUV4
cHJlc3Npb24oT3BUeXBlIG9wKQogICAgIH0KIAogICAgIGNhc2UgT3BUeXBlOjpTZWxlY3Q6Ci0g
ICAgY2FzZSBPcFR5cGU6OkJyVGFibGU6CiAgICAgY2FzZSBPcFR5cGU6Ok5vcDoKICAgICBjYXNl
IE9wVHlwZTo6RHJvcDoKICAgICBjYXNlIE9wVHlwZTo6VGVlTG9jYWw6CkBAIC00NTMsNyArNDkz
LDYgQEAgYm9vbCBGdW5jdGlvblBhcnNlcjxDb250ZXh0Pjo6cGFyc2VVbnJlYWNoYWJsZUV4cHJl
c3Npb24oT3BUeXBlIG9wKQogICAgIH0KIAogICAgIC8vIG9uZSBpbW1lZGlhdGUgY2FzZXMKLSAg
ICBjYXNlIE9wVHlwZTo6UmV0dXJuOgogICAgIGNhc2UgT3BUeXBlOjpGMzJDb25zdDoKICAgICBj
YXNlIE9wVHlwZTo6STMyQ29uc3Q6CiAgICAgY2FzZSBPcFR5cGU6OkY2NENvbnN0OgpAQCAtNDc4
LDcgKzUxNyw3IEBAIGJvb2wgRnVuY3Rpb25QYXJzZXI8Q29udGV4dD46OnBvcEV4cHJlc3Npb25T
dGFjayhFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICBtX2NvbnRleHQuc2V0RXJyb3JNZXNzYWdlKCJBdHRlbXB0ZWQgdG8gdXNlIGEgc3Rh
Y2sgdmFsdWUgd2hlbiBub25lIGV4aXN0ZWQiKTsKKyAgICBzZXRFcnJvck1lc3NhZ2UoIkF0dGVt
cHRlZCB0byB1c2UgYSBzdGFjayB2YWx1ZSB3aGVuIG5vbmUgZXhpc3RlZCIpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bVZhbGlkYXRlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21WYWxpZGF0ZS5j
cHAKaW5kZXggMzk4M2I3YTIxNjcxYzljMmJiODNmNTA3MzUxMWZhODBmYWNiZThkYS4uOGFkZThj
NjFlNWMxMTIzMDZiNWQwYjJhZTE4MDBlMzE3ZmUyMmI2MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbVZhbGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtVmFsaWRhdGUuY3BwCkBAIC0xMDIsNyArMTAyLDggQEAgcHVibGljOgog
ICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGFkZEVsc2VUb1VucmVhY2hhYmxlKENvbnRyb2xE
YXRhJik7CiAKICAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBhZGRSZXR1cm4oY29uc3QgRXhw
cmVzc2lvbkxpc3QmIHJldHVyblZhbHVlcyk7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4g
YWRkQnJhbmNoKENvbnRyb2xEYXRhJiwgRXhwcmVzc2lvblR5cGUgY29uZGl0aW9uLCBjb25zdCBF
eHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVzKTsKKyAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVS
TiBhZGRCcmFuY2goQ29udHJvbERhdGEmLCBFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0
IEV4cHJlc3Npb25MaXN0JiBleHByZXNzaW9uU3RhY2spOworICAgIGJvb2wgV0FSTl9VTlVTRURf
UkVUVVJOIGFkZFN3aXRjaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZlY3RvcjxD
b250cm9sRGF0YSo+JiB0YXJnZXRzLCBDb250cm9sRGF0YSYgZGVmYXVsdFRhcmdldCwgY29uc3Qg
RXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjayk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9S
RVRVUk4gZW5kQmxvY2soQ29udHJvbEVudHJ5JiwgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25T
dGFjayk7CiAgICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gYWRkRW5kVG9VbnJlYWNoYWJsZShD
b250cm9sRW50cnkmKTsKIApAQCAtMTIyLDYgKzEyMyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1
bmlmeShUeXBlLCBUeXBlKTsKICAgICBib29sIHVuaWZ5KGNvbnN0IEV4cHJlc3Npb25MaXN0Jiwg
Y29uc3QgQ29udHJvbERhdGEmKTsKIAorICAgIGJvb2wgY2hlY2tCcmFuY2hUYXJnZXQoQ29udHJv
bERhdGEmIHRhcmdldCwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjayk7CisK
ICAgICBFeHByZXNzaW9uVHlwZSBtX3JldHVyblR5cGU7CiAgICAgVmVjdG9yPFR5cGU+IG1fbG9j
YWxzOwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKQEAgLTIyMywyNiArMjI2LDUyIEBAIGJv
b2wgVmFsaWRhdGU6OmFkZFJldHVybihjb25zdCBFeHByZXNzaW9uTGlzdCYgcmV0dXJuVmFsdWVz
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBWYWxpZGF0ZTo6Y2hlY2tCcmFuY2hUYXJn
ZXQoQ29udHJvbFR5cGUmIHRhcmdldCwgY29uc3QgRXhwcmVzc2lvbkxpc3QmIGV4cHJlc3Npb25T
dGFjaykKKyAgICB7CisgICAgICAgIGlmICh0YXJnZXQudHlwZSgpID09IEJsb2NrVHlwZTo6TG9v
cCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICh0YXJnZXQuc2lnbmF0
dXJlKCkgPT0gVm9pZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmICgh
ZXhwcmVzc2lvblN0YWNrLnNpemUoKSkgeworICAgICAgICAgICAgbV9lcnJvck1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJBdHRlbXB0aW5nIHRvIGJyYW5jaCB0byBibG9jayB3aXRoIGV4cGVjdGVkIHR5
cGU6ICIsIHRvU3RyaW5nKHRhcmdldC5zaWduYXR1cmUoKSksICIgYnV0IHRoZSBzdGFjayB3YXMg
ZW1wdHkiKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAg
IGlmICh0YXJnZXQuc2lnbmF0dXJlKCkgPT0gZXhwcmVzc2lvblN0YWNrLmxhc3QoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmlu
ZygiQXR0ZW1wdGluZyB0byBicmFuY2ggdG8gYmxvY2sgd2l0aCBleHBlY3RlZCB0eXBlOiAiLCB0
b1N0cmluZyh0YXJnZXQuc2lnbmF0dXJlKCkpLCAiIGJ1dCBzdGFjayBoYXMgdHlwZTogIiwgdG9T
dHJpbmcodGFyZ2V0LnNpZ25hdHVyZSgpKSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKIGJvb2wgVmFsaWRhdGU6OmFkZEJyYW5jaChDb250cm9sVHlwZSYgdGFyZ2V0LCBFeHByZXNz
aW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IEV4cHJlc3Npb25MaXN0JiBzdGFjaykKIHsKLSAgICAv
LyBWb2lkIG1lYW5zIHRoaXMgaXMgbm90IGEgY29uZGl0aW9uYWwgYnJhbmNoLgorICAgIC8vIFZv
aWQgbWVhbnMgdGhpcyBpcyBhbiB1bmNvbmRpdGlvbmFsIGJyYW5jaC4KICAgICBpZiAoY29uZGl0
aW9uICE9IFZvaWQgJiYgY29uZGl0aW9uICE9IEkzMikgewogICAgICAgICBtX2Vycm9yTWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8gYWRkIGEgY29uZGl0aW9uYWwgYnJhbmNoIHdp
dGggY29uZGl0aW9uIHR5cGU6ICIsIHRvU3RyaW5nKGNvbmRpdGlvbiksICIgYnV0IGV4cGVjdGVk
IGkzMi4iKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmICh0YXJnZXQu
dHlwZSgpID09IEJsb2NrVHlwZTo6TG9vcCkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGNoZWNrQnJhbmNoVGFyZ2V0KHRhcmdldCwgc3RhY2spOworfQogCi0gICAgaWYgKHRhcmdl
dC5zaWduYXR1cmUoKSA9PSBWb2lkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKK2Jvb2wgVmFsaWRh
dGU6OmFkZFN3aXRjaChFeHByZXNzaW9uVHlwZSBjb25kaXRpb24sIGNvbnN0IFZlY3RvcjxDb250
cm9sRGF0YSo+JiB0YXJnZXRzLCBDb250cm9sRGF0YSYgZGVmYXVsdFRhcmdldCwgY29uc3QgRXhw
cmVzc2lvbkxpc3QmIGV4cHJlc3Npb25TdGFjaykKK3sKKyAgICBpZiAoY29uZGl0aW9uICE9IEkz
MikgeworICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1ha2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8g
YWRkIGEgYnJfdGFibGUgd2l0aCBjb25kaXRpb24gdHlwZTogIiwgdG9TdHJpbmcoY29uZGl0aW9u
KSwgIiBidXQgZXhwZWN0ZWQgaTMyLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQog
Ci0gICAgQVNTRVJUKHN0YWNrLnNpemUoKSA9PSAxKTsKLSAgICBpZiAodGFyZ2V0LnNpZ25hdHVy
ZSgpID09IHN0YWNrWzBdKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBmb3IgKGF1dG8gdGFy
Z2V0IDogdGFyZ2V0cykgeworICAgICAgICBpZiAoZGVmYXVsdFRhcmdldC5zaWduYXR1cmUoKSAh
PSB0YXJnZXQtPnNpZ25hdHVyZSgpKSB7CisgICAgICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IG1h
a2VTdHJpbmcoIkF0dGVtcHRpbmcgdG8gYWRkIGEgYnJfdGFibGUgd2l0aCBkaWZmZXJlbnQgZXhw
ZWN0ZWQgdHlwZXMuIERlZmF1bHQgdGFyZ2V0IGhhcyB0eXBlOiAiLCB0b1N0cmluZyhkZWZhdWx0
VGFyZ2V0LnNpZ25hdHVyZSgpKSwgIiBidXQgY2FzZSBoYXNlIHR5cGU6ICIsIHRvU3RyaW5nKHRh
cmdldC0+c2lnbmF0dXJlKCkpKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
fQorICAgIH0KIAotICAgIG1fZXJyb3JNZXNzYWdlID0gbWFrZVN0cmluZygiQXR0ZW1wdGluZyB0
byBicmFuY2ggdG8gYmxvY2sgd2l0aCBleHBlY3RlZCB0eXBlOiAiLCB0b1N0cmluZyh0YXJnZXQu
c2lnbmF0dXJlKCkpLCAiIGJ1dCBicmFuY2hpbmcgd2l0aCB0eXBlOiAiLCB0b1N0cmluZyh0YXJn
ZXQuc2lnbmF0dXJlKCkpKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNoZWNrQnJh
bmNoVGFyZ2V0KGRlZmF1bHRUYXJnZXQsIGV4cHJlc3Npb25TdGFjayk7CiB9CiAKIGJvb2wgVmFs
aWRhdGU6OmVuZEJsb2NrKENvbnRyb2xFbnRyeSYgZW50cnksIEV4cHJlc3Npb25MaXN0JiBzdGFj
aykK
</data>
<flag name="review"
          id="316756"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>