<?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>142926</bug_id>
          
          <creation_ts>2015-03-20 15:52:15 -0700</creation_ts>
          <short_desc>FunctionBodyNode should known where its parameters started</short_desc>
          <delta_ts>2015-03-20 16:38:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1078971</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-20 15:52:15 -0700</bug_when>
    <thetext>FunctionBodyNode should known where its parameters started</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078975</commentid>
    <comment_count>1</comment_count>
      <attachid>249140</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-20 15:56:10 -0700</bug_when>
    <thetext>Created attachment 249140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078977</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-20 15:58:41 -0700</bug_when>
    <thetext>Attachment 249140 did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/Nodes.cpp:178:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/parser/Nodes.cpp:179:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/parser/Nodes.cpp:180:  Wrong number of spaces before statement. (expected: 8)  [whitespace/indent] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078989</commentid>
    <comment_count>3</comment_count>
      <attachid>249140</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-03-20 16:33:43 -0700</bug_when>
    <thetext>Comment on attachment 249140
Patch

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

&gt; Source/JavaScriptCore/parser/Nodes.cpp:174
&gt; +    ParserArena&amp;, const JSTokenLocation&amp; startLocation, 
&gt; +    const JSTokenLocation&amp; endLocation, unsigned startColumn, unsigned endColumn, 
&gt; +    int functionKeywordStart, int functionNameStart, int parametersStart,
&gt; +    bool isInStrictContext, ConstructorKind constructorKind)

These lines need to be indented further by 4 spaces (8 spaces total).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078995</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-20 16:38:26 -0700</bug_when>
    <thetext>Committed r181818: &lt;http://trac.webkit.org/changeset/181818&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249140</attachid>
            <date>2015-03-20 15:56:10 -0700</date>
            <delta_ts>2015-03-20 16:32:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142926-20150320155537.patch</filename>
            <type>text/plain</type>
            <size>27166</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgxODE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE1LTAzLTIwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRnVuY3Rpb25Cb2R5Tm9kZSBzaG91bGQga25vd24gd2hlcmUgaXRzIHBhcmFtZXRlcnMgc3Rh
cnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQy
OTI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyB3aWxsIGFsbG93IHVzIHRvIHJlLXBhcnNlIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBrZWVwaW5n
IHRoZQorICAgICAgICBwYXJhbWV0ZXJzIHBpZWNlIG9mIHRoZSBBU1QgYXJvdW5kIGZvcmV2ZXIu
CisKKyAgICAgICAgSSBhbHNvIHRvb2sgdGhlIG9wcG9ydHVuaXR5IHRvIGluaXRpYWxpemVkIG1v
c3QgRnVuY3Rpb25Cb2R5Tm9kZSBkYXRhCisgICAgICAgIG1lbWJlcnMgYXQgY29uc3RydWN0aW9u
IHRpbWUsIHRvIGhlbHAgY2xhcmlmeSB0aGF0IHRoZXkgYXJlIHNldCByaWdodC4KKworICAgICAg
ICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0
ZUZ1bmN0aW9uRXhwcik6IE5vIG5lZWQgdG8gcGFzcworICAgICAgICBmdW5jdGlvbktleXdvcmRT
dGFydCBoZXJlOyB3ZSBub3cgcHJvdmlkZSBpdCBhdCBGdW5jdGlvbkJvZHlOb2RlCisgICAgICAg
IGNyZWF0aW9uIHRpbWUuCisKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlRnVuY3Rp
b25Cb2R5KTogUmVxdWlyZSBldmVyeXRoaW5nIHdlIG5lZWQgYXQKKyAgICAgICAgY29uc3RydWN0
aW9uIHRpbWUsIGluY2x1ZGluZyB0aGUgc3RhcnQgb2Ygb3VyIHBhcmFtZXRlcnMuCisKKyAgICAg
ICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eSk6CisgICAg
ICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZUZ1bmNEZWNsU3RhdGVtZW50KTogIE5vIG5lZWQg
dG8gcGFzcworICAgICAgICBmdW5jdGlvbktleXdvcmRTdGFydCBoZXJlOyB3ZSBub3cgcHJvdmlk
ZSBpdCBhdCBGdW5jdGlvbkJvZHlOb2RlCisgICAgICAgIGNyZWF0aW9uIHRpbWUuCisKKyAgICAg
ICAgKEpTQzo6QVNUQnVpbGRlcjo6c2V0RnVuY3Rpb25OYW1lU3RhcnQpOiBEZWxldGVkLgorCisg
ICAgICAgICogcGFyc2VyL05vZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Cb2R5Tm9k
ZTo6RnVuY3Rpb25Cb2R5Tm9kZSk6IEluaXRpYWxpemUgZXZlcnl0aGluZyBhdAorICAgICAgICBj
b25zdHJ1Y3Rpb24gdGltZS4KKworICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOiBBZGRlZCBhIGZp
ZWxkIGZvciB0aGUgbG9jYXRpb24gb2Ygb3VyIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBwYXJz
ZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVu
Y3Rpb25Cb2R5KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rp
b25JbmZvKToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rpb25E
ZWNsYXJhdGlvbik6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUNsYXNz
KToKKyAgICAgICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlUHJvcGVydHlNZXRob2Qp
OgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VHZXR0ZXJTZXR0ZXIpOgor
ICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgICogcGFyc2VyL1BhcnNlci5oOiBSZWZhY3RvcmVkIHRvIG1hdGNoIGFib3ZlIGlu
dGVyZmFjZSBjaGFuZ2VzLgorCisgICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAg
ICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlRnVuY3Rpb25FeHByKToKKyAgICAgICAg
KEpTQzo6U3ludGF4Q2hlY2tlcjo6Y3JlYXRlRnVuY3Rpb25Cb2R5KToKKyAgICAgICAgKEpTQzo6
U3ludGF4Q2hlY2tlcjo6Y3JlYXRlRnVuY0RlY2xTdGF0ZW1lbnQpOgorICAgICAgICAoSlNDOjpT
eW50YXhDaGVja2VyOjpjcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KTogUmVmYWN0b3JlZCB0
byBtYXRjaAorICAgICAgICBhYm92ZSBpbnRlcmZhY2UgY2hhbmdlcy4KKworICAgICAgICAoSlND
OjpTeW50YXhDaGVja2VyOjpzZXRGdW5jdGlvbk5hbWVTdGFydCk6IERlbGV0ZWQuCisKIDIwMTUt
MDMtMjAgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjE3OTQyOSk6IFBvdGVudGlhbCBVc2UgYWZ0ZXIgZnJlZSBpbiBKYXZhU2Ny
aXB0Q29yZWBXVEY6OlN0cmluZ0ltcGw6OnJlZiArIDgzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAkocmV2aXNpb24gMTgxODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Myw0
MiArMjkzLDQxIEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAotICAgIEV4cHJlc3Npb25Ob2Rl
KiBjcmVhdGVGdW5jdGlvbkV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29u
c3QgUGFyc2VyRnVuY3Rpb25JbmZvPEFTVEJ1aWxkZXI+JiBpbmZvLCB1bnNpZ25lZCBmdW5jdGlv
bktleXdvcmRTdGFydCkKKyAgICBFeHByZXNzaW9uTm9kZSogY3JlYXRlRnVuY3Rpb25FeHByKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxB
U1RCdWlsZGVyPiYgaW5mbykKICAgICB7CiAgICAgICAgIEZ1bmNFeHByTm9kZSogcmVzdWx0ID0g
bmV3IChtX3BhcnNlckFyZW5hKSBGdW5jRXhwck5vZGUobG9jYXRpb24sICppbmZvLm5hbWUsIGlu
Zm8uYm9keSwKICAgICAgICAgICAgIG1fc291cmNlQ29kZS0+c3ViRXhwcmVzc2lvbihpbmZvLm9w
ZW5CcmFjZU9mZnNldCwgaW5mby5jbG9zZUJyYWNlT2Zmc2V0LCBpbmZvLmJvZHlTdGFydExpbmUs
IGluZm8uYm9keVN0YXJ0Q29sdW1uKSwgaW5mby5wYXJhbWV0ZXJzKTsKICAgICAgICAgaW5mby5i
b2R5LT5zZXRMb2MoaW5mby5ib2R5U3RhcnRMaW5lLCBpbmZvLmJvZHlFbmRMaW5lLCBsb2NhdGlv
bi5zdGFydE9mZnNldCwgbG9jYXRpb24ubGluZVN0YXJ0T2Zmc2V0KTsKLSAgICAgICAgaW5mby5i
b2R5LT5zZXRGdW5jdGlvbktleXdvcmRTdGFydChmdW5jdGlvbktleXdvcmRTdGFydCk7CiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgRnVuY3Rpb25Cb2R5Tm9kZSogY3JlYXRl
RnVuY3Rpb25Cb2R5KGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnRMb2NhdGlvbiwgY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBlbmRMb2NhdGlvbiwgdW5zaWduZWQgc3RhcnRDb2x1bW4sIHVuc2ln
bmVkIGVuZENvbHVtbiwgYm9vbCBpblN0cmljdENvbnRleHQsIENvbnN0cnVjdG9yS2luZCBjb25z
dHJ1Y3RvcktpbmQpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBG
dW5jdGlvbkJvZHlOb2RlKG1fcGFyc2VyQXJlbmEsIHN0YXJ0TG9jYXRpb24sIGVuZExvY2F0aW9u
LCBzdGFydENvbHVtbiwgZW5kQ29sdW1uLCBpblN0cmljdENvbnRleHQsIGNvbnN0cnVjdG9yS2lu
ZCk7CisgICAgRnVuY3Rpb25Cb2R5Tm9kZSogY3JlYXRlRnVuY3Rpb25Cb2R5KAorICAgICAgICBj
b25zdCBKU1Rva2VuTG9jYXRpb24mIHN0YXJ0TG9jYXRpb24sIGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYgZW5kTG9jYXRpb24sIAorICAgICAgICB1bnNpZ25lZCBzdGFydENvbHVtbiwgdW5zaWduZWQg
ZW5kQ29sdW1uLCBpbnQgZnVuY3Rpb25LZXl3b3JkU3RhcnQsIAorICAgICAgICBpbnQgZnVuY3Rp
b25OYW1lU3RhcnQsIGludCBwYXJhbWV0ZXJzU3RhcnQsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCAK
KyAgICAgICAgQ29uc3RydWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCkKKyAgICB7CisgICAgICAg
IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIEZ1bmN0aW9uQm9keU5vZGUoCisgICAgICAgICAg
ICBtX3BhcnNlckFyZW5hLCBzdGFydExvY2F0aW9uLCBlbmRMb2NhdGlvbiwgc3RhcnRDb2x1bW4s
IGVuZENvbHVtbiwgCisgICAgICAgICAgICBmdW5jdGlvbktleXdvcmRTdGFydCwgZnVuY3Rpb25O
YW1lU3RhcnQsIHBhcmFtZXRlcnNTdGFydCwgCisgICAgICAgICAgICBpblN0cmljdENvbnRleHQs
IGNvbnN0cnVjdG9yS2luZCk7CiAgICAgfQogCi0gICAgdm9pZCBzZXRGdW5jdGlvbk5hbWVTdGFy
dChGdW5jdGlvbkJvZHlOb2RlKiBib2R5LCBpbnQgZnVuY3Rpb25OYW1lU3RhcnQpCi0gICAgewot
ICAgICAgICBib2R5LT5zZXRGdW5jdGlvbk5hbWVTdGFydChmdW5jdGlvbk5hbWVTdGFydCk7Ci0g
ICAgfQotICAgIAogICAgIE5FVkVSX0lOTElORSBQcm9wZXJ0eU5vZGUqIGNyZWF0ZUdldHRlck9y
U2V0dGVyUHJvcGVydHkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgUHJvcGVydHlO
b2RlOjpUeXBlIHR5cGUsIGJvb2wsCi0gICAgICAgIGNvbnN0IElkZW50aWZpZXIqIG5hbWUsIGNv
bnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxBU1RCdWlsZGVyPiYgaW5mbywgdW5zaWduZWQgZ2V0T3JT
ZXRTdGFydE9mZnNldCwgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZykKKyAgICAgICAgY29uc3Qg
SWRlbnRpZmllciogbmFtZSwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPEFTVEJ1aWxkZXI+JiBp
bmZvLCBTdXBlckJpbmRpbmcgc3VwZXJCaW5kaW5nKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5h
bWUpOwogICAgICAgICBpbmZvLmJvZHktPnNldExvYyhpbmZvLmJvZHlTdGFydExpbmUsIGluZm8u
Ym9keUVuZExpbmUsIGxvY2F0aW9uLnN0YXJ0T2Zmc2V0LCBsb2NhdGlvbi5saW5lU3RhcnRPZmZz
ZXQpOwogICAgICAgICBpbmZvLmJvZHktPnNldEluZmVycmVkTmFtZSgqbmFtZSk7Ci0gICAgICAg
IGluZm8uYm9keS0+c2V0RnVuY3Rpb25LZXl3b3JkU3RhcnQoZ2V0T3JTZXRTdGFydE9mZnNldCk7
CiAgICAgICAgIFNvdXJjZUNvZGUgc291cmNlID0gbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9u
KGluZm8ub3BlbkJyYWNlT2Zmc2V0LCBpbmZvLmNsb3NlQnJhY2VPZmZzZXQsIGluZm8uYm9keVN0
YXJ0TGluZSwgaW5mby5ib2R5U3RhcnRDb2x1bW4pOwogICAgICAgICBGdW5jRXhwck5vZGUqIGZ1
bmNFeHByID0gbmV3IChtX3BhcnNlckFyZW5hKSBGdW5jRXhwck5vZGUobG9jYXRpb24sIG1fdm0t
PnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCBpbmZvLmJvZHksIHNvdXJjZSwgaW5mby5w
YXJhbWV0ZXJzKTsKICAgICAgICAgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgUHJvcGVydHlO
b2RlKCpuYW1lLCBmdW5jRXhwciwgdHlwZSwgUHJvcGVydHlOb2RlOjpVbmtub3duLCBzdXBlckJp
bmRpbmcpOwogICAgIH0KICAgICAKICAgICBORVZFUl9JTkxJTkUgUHJvcGVydHlOb2RlKiBjcmVh
dGVHZXR0ZXJPclNldHRlclByb3BlcnR5KFZNKiB2bSwgUGFyc2VyQXJlbmEmIHBhcnNlckFyZW5h
LCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQcm9wZXJ0eU5vZGU6OlR5cGUgdHlw
ZSwgYm9vbCwKLSAgICAgICAgZG91YmxlIG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxB
U1RCdWlsZGVyPiYgaW5mbywgdW5zaWduZWQgZ2V0T3JTZXRTdGFydE9mZnNldCwgU3VwZXJCaW5k
aW5nIHN1cGVyQmluZGluZykKKyAgICAgICAgZG91YmxlIG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0
aW9uSW5mbzxBU1RCdWlsZGVyPiYgaW5mbywgU3VwZXJCaW5kaW5nIHN1cGVyQmluZGluZykKICAg
ICB7CiAgICAgICAgIGluZm8uYm9keS0+c2V0TG9jKGluZm8uYm9keVN0YXJ0TGluZSwgaW5mby5i
b2R5RW5kTGluZSwgbG9jYXRpb24uc3RhcnRPZmZzZXQsIGxvY2F0aW9uLmxpbmVTdGFydE9mZnNl
dCk7Ci0gICAgICAgIGluZm8uYm9keS0+c2V0RnVuY3Rpb25LZXl3b3JkU3RhcnQoZ2V0T3JTZXRT
dGFydE9mZnNldCk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50ID0gcGFyc2VyQXJl
bmEuaWRlbnRpZmllckFyZW5hKCkubWFrZU51bWVyaWNJZGVudGlmaWVyKHZtLCBuYW1lKTsKICAg
ICAgICAgU291cmNlQ29kZSBzb3VyY2UgPSBtX3NvdXJjZUNvZGUtPnN1YkV4cHJlc3Npb24oaW5m
by5vcGVuQnJhY2VPZmZzZXQsIGluZm8uY2xvc2VCcmFjZU9mZnNldCwgaW5mby5ib2R5U3RhcnRM
aW5lLCBpbmZvLmJvZHlTdGFydENvbHVtbik7CiAgICAgICAgIEZ1bmNFeHByTm9kZSogZnVuY0V4
cHIgPSBuZXcgKG1fcGFyc2VyQXJlbmEpIEZ1bmNFeHByTm9kZShsb2NhdGlvbiwgdm0tPnByb3Bl
cnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCBpbmZvLmJvZHksIHNvdXJjZSwgaW5mby5wYXJhbWV0
ZXJzKTsKQEAgLTM2NCw3ICszNjMsNyBAQCBwdWJsaWM6CiAgICAgQ2xhdXNlTGlzdE5vZGUqIGNy
ZWF0ZUNsYXVzZUxpc3QoQ2FzZUNsYXVzZU5vZGUqIGNsYXVzZSkgeyByZXR1cm4gbmV3IChtX3Bh
cnNlckFyZW5hKSBDbGF1c2VMaXN0Tm9kZShjbGF1c2UpOyB9CiAgICAgQ2xhdXNlTGlzdE5vZGUq
IGNyZWF0ZUNsYXVzZUxpc3QoQ2xhdXNlTGlzdE5vZGUqIHRhaWwsIENhc2VDbGF1c2VOb2RlKiBj
bGF1c2UpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgQ2xhdXNlTGlzdE5vZGUodGFpbCwg
Y2xhdXNlKTsgfQogCi0gICAgU3RhdGVtZW50Tm9kZSogY3JlYXRlRnVuY0RlY2xTdGF0ZW1lbnQo
Y29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZv
PEFTVEJ1aWxkZXI+JiBpbmZvLCB1bnNpZ25lZCBmdW5jdGlvbktleXdvcmRTdGFydCkKKyAgICBT
dGF0ZW1lbnROb2RlKiBjcmVhdGVGdW5jRGVjbFN0YXRlbWVudChjb25zdCBKU1Rva2VuTG9jYXRp
b24mIGxvY2F0aW9uLCBjb25zdCBQYXJzZXJGdW5jdGlvbkluZm88QVNUQnVpbGRlcj4mIGluZm8p
CiAgICAgewogICAgICAgICBGdW5jRGVjbE5vZGUqIGRlY2wgPSBuZXcgKG1fcGFyc2VyQXJlbmEp
IEZ1bmNEZWNsTm9kZShsb2NhdGlvbiwgKmluZm8ubmFtZSwgaW5mby5ib2R5LAogICAgICAgICAg
ICAgbV9zb3VyY2VDb2RlLT5zdWJFeHByZXNzaW9uKGluZm8ub3BlbkJyYWNlT2Zmc2V0LCBpbmZv
LmNsb3NlQnJhY2VPZmZzZXQsIGluZm8uYm9keVN0YXJ0TGluZSwgaW5mby5ib2R5U3RhcnRDb2x1
bW4pLCBpbmZvLnBhcmFtZXRlcnMpOwpAQCAtMzcyLDcgKzM3MSw2IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgIHVzZXNBcmd1bWVudHMoKTsKICAgICAgICAgbV9zY29wZS5tX2Z1bmNEZWNsYXJhdGlv
bnMuYXBwZW5kKGRlY2wtPmJvZHkoKSk7CiAgICAgICAgIGluZm8uYm9keS0+c2V0TG9jKGluZm8u
Ym9keVN0YXJ0TGluZSwgaW5mby5ib2R5RW5kTGluZSwgbG9jYXRpb24uc3RhcnRPZmZzZXQsIGxv
Y2F0aW9uLmxpbmVTdGFydE9mZnNldCk7Ci0gICAgICAgIGluZm8uYm9keS0+c2V0RnVuY3Rpb25L
ZXl3b3JkU3RhcnQoZnVuY3Rpb25LZXl3b3JkU3RhcnQpOwogICAgICAgICByZXR1cm4gZGVjbDsK
ICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuY3BwCShyZXZp
c2lvbiAxODE4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTY3LDEwICsxNjcsMTcgQEAgRnVuY3Rpb25QYXJhbWV0ZXJzOjp+
RnVuY3Rpb25QYXJhbWV0ZXJzKAogICAgICAgICBwYXR0ZXJucygpW2ldLT5kZXJlZigpOwogfQog
Ci1GdW5jdGlvbkJvZHlOb2RlOjpGdW5jdGlvbkJvZHlOb2RlKFBhcnNlckFyZW5hJiwgY29uc3Qg
SlNUb2tlbkxvY2F0aW9uJiBzdGFydExvY2F0aW9uLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGVu
ZExvY2F0aW9uLCB1bnNpZ25lZCBzdGFydENvbHVtbiwgdW5zaWduZWQgZW5kQ29sdW1uLCBib29s
IGlzSW5TdHJpY3RDb250ZXh0LCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JLaW5kKQorRnVu
Y3Rpb25Cb2R5Tm9kZTo6RnVuY3Rpb25Cb2R5Tm9kZSgKKyAgICBQYXJzZXJBcmVuYSYsIGNvbnN0
IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnRMb2NhdGlvbiwgCisgICAgY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBlbmRMb2NhdGlvbiwgdW5zaWduZWQgc3RhcnRDb2x1bW4sIHVuc2lnbmVkIGVuZENvbHVt
biwgCisgICAgaW50IGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBpbnQgZnVuY3Rpb25OYW1lU3RhcnQs
IGludCBwYXJhbWV0ZXJzU3RhcnQsCisgICAgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgQ29uc3Ry
dWN0b3JLaW5kIGNvbnN0cnVjdG9yS2luZCkKICAgICA6IFN0YXRlbWVudE5vZGUoZW5kTG9jYXRp
b24pCiAgICAgLCBtX3N0YXJ0Q29sdW1uKHN0YXJ0Q29sdW1uKQogICAgICwgbV9lbmRDb2x1bW4o
ZW5kQ29sdW1uKQorICAgICwgbV9mdW5jdGlvbktleXdvcmRTdGFydChmdW5jdGlvbktleXdvcmRT
dGFydCkKKyAgICAsIG1fZnVuY3Rpb25OYW1lU3RhcnQoZnVuY3Rpb25OYW1lU3RhcnQpCisgICAg
LCBtX3BhcmFtZXRlcnNTdGFydChwYXJhbWV0ZXJzU3RhcnQpCiAgICAgLCBtX3N0YXJ0U3RhcnRP
ZmZzZXQoc3RhcnRMb2NhdGlvbi5zdGFydE9mZnNldCkKICAgICAsIG1faXNJblN0cmljdENvbnRl
eHQoaXNJblN0cmljdENvbnRleHQpCiAgICAgLCBtX2NvbnN0cnVjdG9yS2luZChzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oY29uc3RydWN0b3JLaW5kKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvTm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHJldmlzaW9uIDE4MTgxMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTU2MCw3ICsxNTYwLDExIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdXNpbmcgUGFyc2VyQXJlbmFEZWxldGFi
bGU6Om9wZXJhdG9yIG5ldzsKIAotICAgICAgICBGdW5jdGlvbkJvZHlOb2RlKFBhcnNlckFyZW5h
JiwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBzdGFydCwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBl
bmQsIHVuc2lnbmVkIHN0YXJ0Q29sdW1uLCB1bnNpZ25lZCBlbmRDb2x1bW4sIGJvb2wgaXNJblN0
cmljdENvbnRleHQsIENvbnN0cnVjdG9yS2luZCk7CisgICAgICAgIEZ1bmN0aW9uQm9keU5vZGUo
CisgICAgICAgICAgICBQYXJzZXJBcmVuYSYsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgc3RhcnQs
IGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgZW5kLCAKKyAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0
Q29sdW1uLCB1bnNpZ25lZCBlbmRDb2x1bW4sIGludCBmdW5jdGlvbktleXdvcmRTdGFydCwgCisg
ICAgICAgICAgICBpbnQgZnVuY3Rpb25OYW1lU3RhcnQsIGludCBwYXJhbWV0ZXJzU3RhcnQsIGJv
b2wgaXNJblN0cmljdENvbnRleHQsIAorICAgICAgICAgICAgQ29uc3RydWN0b3JLaW5kKTsKIAog
ICAgICAgICBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBt
X3BhcmFtZXRlcnMuZ2V0KCk7IH0KIApAQCAtMTU3NSw5ICsxNTc5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICAgICAgRnVuY3Rpb25Nb2RlIGZ1bmN0aW9uTW9kZSgpIHsgcmV0dXJuIG1fZnVu
Y3Rpb25Nb2RlOyB9CiAKLSAgICAgICAgdm9pZCBzZXRGdW5jdGlvbk5hbWVTdGFydChpbnQgZnVu
Y3Rpb25OYW1lU3RhcnQpIHsgbV9mdW5jdGlvbk5hbWVTdGFydCA9IGZ1bmN0aW9uTmFtZVN0YXJ0
OyB9CiAgICAgICAgIGludCBmdW5jdGlvbk5hbWVTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVu
Y3Rpb25OYW1lU3RhcnQ7IH0KLSAgICAgICAgdm9pZCBzZXRGdW5jdGlvbktleXdvcmRTdGFydChp
bnQgZnVuY3Rpb25LZXl3b3JkU3RhcnQpIHsgbV9mdW5jdGlvbktleXdvcmRTdGFydCA9IGZ1bmN0
aW9uS2V5d29yZFN0YXJ0OyB9CiAgICAgICAgIGludCBmdW5jdGlvbktleXdvcmRTdGFydCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25LZXl3b3JkU3RhcnQ7IH0KICAgICAgICAgdW5zaWduZWQg
c3RhcnRDb2x1bW4oKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0Q29sdW1uOyB9CiAgICAgICAgIHVu
c2lnbmVkIGVuZENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CkBAIC0xNTk1
LDEwICsxNTk3LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBJZGVudGlmaWVyIG1faW5m
ZXJyZWROYW1lOwogICAgICAgICBGdW5jdGlvbk1vZGUgbV9mdW5jdGlvbk1vZGU7CiAgICAgICAg
IFJlZlB0cjxGdW5jdGlvblBhcmFtZXRlcnM+IG1fcGFyYW1ldGVyczsKLSAgICAgICAgaW50IG1f
ZnVuY3Rpb25OYW1lU3RhcnQ7Ci0gICAgICAgIGludCBtX2Z1bmN0aW9uS2V5d29yZFN0YXJ0Owog
ICAgICAgICB1bnNpZ25lZCBtX3N0YXJ0Q29sdW1uOwogICAgICAgICB1bnNpZ25lZCBtX2VuZENv
bHVtbjsKKyAgICAgICAgaW50IG1fZnVuY3Rpb25LZXl3b3JkU3RhcnQ7CisgICAgICAgIGludCBt
X2Z1bmN0aW9uTmFtZVN0YXJ0OworICAgICAgICBpbnQgbV9wYXJhbWV0ZXJzU3RhcnQ7CiAgICAg
ICAgIFNvdXJjZUNvZGUgbV9zb3VyY2U7CiAgICAgICAgIGludCBtX3N0YXJ0U3RhcnRPZmZzZXQ7
CiAgICAgICAgIHVuc2lnbmVkIG1faXNJblN0cmljdENvbnRleHQgOiAxOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNpb24gMTgxODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjYwLDcgKzEyNjAsOSBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVGb3JtYWxQ
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBMZXhlclR5cGU+Ci10ZW1wbGF0ZSA8Y2xhc3MgVHJl
ZUJ1aWxkZXI+IFRyZWVGdW5jdGlvbkJvZHkgUGFyc2VyPExleGVyVHlwZT46OnBhcnNlRnVuY3Rp
b25Cb2R5KFRyZWVCdWlsZGVyJiBjb250ZXh0LCBDb25zdHJ1Y3RvcktpbmQgY29uc3RydWN0b3JL
aW5kKQordGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRnVuY3Rpb25Cb2R5IFBhcnNl
cjxMZXhlclR5cGU+OjpwYXJzZUZ1bmN0aW9uQm9keSgKKyAgICBUcmVlQnVpbGRlciYgY29udGV4
dCwgaW50IGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBpbnQgZnVuY3Rpb25OYW1lU3RhcnQsIAorICAg
IGludCBwYXJhbWV0ZXJzU3RhcnQsIENvbnN0cnVjdG9yS2luZCBjb25zdHJ1Y3RvcktpbmQpCiB7
CiAgICAgSlNUb2tlbkxvY2F0aW9uIHN0YXJ0TG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKICAg
ICB1bnNpZ25lZCBzdGFydENvbHVtbiA9IHRva2VuQ29sdW1uKCk7CkBAIC0xMjY4LDE0ICsxMjcw
LDE0IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUZ1bmN0aW8KIAogICAgIGlm
IChtYXRjaChDTE9TRUJSQUNFKSkgewogICAgICAgICB1bnNpZ25lZCBlbmRDb2x1bW4gPSB0b2tl
bkNvbHVtbigpOwotICAgICAgICByZXR1cm4gY29udGV4dC5jcmVhdGVGdW5jdGlvbkJvZHkoc3Rh
cnRMb2NhdGlvbiwgdG9rZW5Mb2NhdGlvbigpLCBzdGFydENvbHVtbiwgZW5kQ29sdW1uLCBzdHJp
Y3RNb2RlKCksIGNvbnN0cnVjdG9yS2luZCk7CisgICAgICAgIHJldHVybiBjb250ZXh0LmNyZWF0
ZUZ1bmN0aW9uQm9keShzdGFydExvY2F0aW9uLCB0b2tlbkxvY2F0aW9uKCksIHN0YXJ0Q29sdW1u
LCBlbmRDb2x1bW4sIGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBmdW5jdGlvbk5hbWVTdGFydCwgcGFy
YW1ldGVyc1N0YXJ0LCBzdHJpY3RNb2RlKCksIGNvbnN0cnVjdG9yS2luZCk7CiAgICAgfQogICAg
IERlcHRoTWFuYWdlciBzdGF0ZW1lbnREZXB0aCgmbV9zdGF0ZW1lbnREZXB0aCk7CiAgICAgbV9z
dGF0ZW1lbnREZXB0aCA9IDA7CiAgICAgdHlwZW5hbWUgVHJlZUJ1aWxkZXI6OkZ1bmN0aW9uQm9k
eUJ1aWxkZXIgYm9keUJ1aWxkZXIoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX2xleGVyLmdldCgp
KTsKICAgICBmYWlsSWZGYWxzZShwYXJzZVNvdXJjZUVsZW1lbnRzKGJvZHlCdWlsZGVyLCBDaGVj
a0ZvclN0cmljdE1vZGUpLCAiQ2Fubm90IHBhcnNlIGJvZHkgb2YgdGhpcyBmdW5jdGlvbiIpOwog
ICAgIHVuc2lnbmVkIGVuZENvbHVtbiA9IHRva2VuQ29sdW1uKCk7Ci0gICAgcmV0dXJuIGNvbnRl
eHQuY3JlYXRlRnVuY3Rpb25Cb2R5KHN0YXJ0TG9jYXRpb24sIHRva2VuTG9jYXRpb24oKSwgc3Rh
cnRDb2x1bW4sIGVuZENvbHVtbiwgc3RyaWN0TW9kZSgpLCBjb25zdHJ1Y3RvcktpbmQpOworICAg
IHJldHVybiBjb250ZXh0LmNyZWF0ZUZ1bmN0aW9uQm9keShzdGFydExvY2F0aW9uLCB0b2tlbkxv
Y2F0aW9uKCksIHN0YXJ0Q29sdW1uLCBlbmRDb2x1bW4sIGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBm
dW5jdGlvbk5hbWVTdGFydCwgcGFyYW1ldGVyc1N0YXJ0LCBzdHJpY3RNb2RlKCksIGNvbnN0cnVj
dG9yS2luZCk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyKiBzdHJpbmdGb3JGdW5jdGlvbk1vZGUo
RnVuY3Rpb25QYXJzZU1vZGUgbW9kZSkKQEAgLTEyOTYsNyArMTI5OCw3IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBzdHJpbmdGb3JGdW5jdGlvbk1vZGUKIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVy
VHlwZT4KIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXI8TGV4ZXJUeXBl
Pjo6cGFyc2VGdW5jdGlvbkluZm8oVHJlZUJ1aWxkZXImIGNvbnRleHQsIEZ1bmN0aW9uUmVxdWly
ZW1lbnRzIHJlcXVpcmVtZW50cywgRnVuY3Rpb25QYXJzZU1vZGUgbW9kZSwKLSAgICBib29sIG5h
bWVJc0luQ29udGFpbmluZ1Njb3BlLCBDb25zdHJ1Y3RvcktpbmQgb3duZXJDbGFzc0tpbmQsIFBh
cnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4mIGluZm8pCisgICAgYm9vbCBuYW1lSXNJbkNv
bnRhaW5pbmdTY29wZSwgQ29uc3RydWN0b3JLaW5kIG93bmVyQ2xhc3NLaW5kLCBpbnQgZnVuY3Rp
b25LZXl3b3JkU3RhcnQsIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4mIGluZm8pCiB7
CiAgICAgQXV0b1BvcFNjb3BlUmVmIGZ1bmN0aW9uU2NvcGUodGhpcywgcHVzaFNjb3BlKCkpOwog
ICAgIGZ1bmN0aW9uU2NvcGUtPnNldElzRnVuY3Rpb24oKTsKQEAgLTEzMTYsNiArMTMxOCw3IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gYm9vbCBQYXJzZXIKICAgICAgICAgZmFpbER1
ZVRvVW5leHBlY3RlZFRva2VuKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisgICAg
aW50IHBhcmFtZXRlcnNTdGFydCA9IG1fdG9rZW4ubV9sb2NhdGlvbi5zdGFydE9mZnNldDsKICAg
ICBpZiAoIWNvbnN1bWUoT1BFTlBBUkVOKSkgewogICAgICAgICBzZW1hbnRpY0ZhaWx1cmVEdWVU
b0tleXdvcmQoc3RyaW5nRm9yRnVuY3Rpb25Nb2RlKG1vZGUpLCAiIG5hbWUiKTsKICAgICAgICAg
ZmFpbFdpdGhNZXNzYWdlKCJFeHBlY3RlZCBhbiBvcGVuaW5nICcoJyBiZWZvcmUgYSAiLCBzdHJp
bmdGb3JGdW5jdGlvbk1vZGUobW9kZSksICIncyBwYXJhbWV0ZXIgbGlzdCIpOwpAQCAtMTM1OCwx
NCArMTM2MSwxNiBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyCiAg
ICAgICAgICAgICBlbmRMb2NhdGlvbi5zdGFydE9mZnNldCAtIGVuZExvY2F0aW9uLmxpbmVTdGFy
dE9mZnNldDsKICAgICAgICAgdW5zaWduZWQgY3VycmVudExpbmVTdGFydE9mZnNldCA9IG1fdG9r
ZW4ubV9sb2NhdGlvbi5saW5lU3RhcnRPZmZzZXQ7CiAKLSAgICAgICAgaW5mby5ib2R5ID0gY29u
dGV4dC5jcmVhdGVGdW5jdGlvbkJvZHkoc3RhcnRMb2NhdGlvbiwgZW5kTG9jYXRpb24sIGluZm8u
Ym9keVN0YXJ0Q29sdW1uLCBib2R5RW5kQ29sdW1uLCBjYWNoZWRJbmZvLT5zdHJpY3RNb2RlLCBj
b25zdHJ1Y3RvcktpbmQpOworICAgICAgICBpbmZvLmJvZHkgPSBjb250ZXh0LmNyZWF0ZUZ1bmN0
aW9uQm9keSgKKyAgICAgICAgICAgIHN0YXJ0TG9jYXRpb24sIGVuZExvY2F0aW9uLCBpbmZvLmJv
ZHlTdGFydENvbHVtbiwgYm9keUVuZENvbHVtbiwgCisgICAgICAgICAgICBmdW5jdGlvbktleXdv
cmRTdGFydCwgZnVuY3Rpb25OYW1lU3RhcnQsIHBhcmFtZXRlcnNTdGFydCwgCisgICAgICAgICAg
ICBjYWNoZWRJbmZvLT5zdHJpY3RNb2RlLCBjb25zdHJ1Y3RvcktpbmQpOwogICAgICAgICAKICAg
ICAgICAgZnVuY3Rpb25TY29wZS0+cmVzdG9yZUZyb21Tb3VyY2VQcm92aWRlckNhY2hlKGNhY2hl
ZEluZm8pOwogICAgICAgICBmYWlsSWZGYWxzZShwb3BTY29wZShmdW5jdGlvblNjb3BlLCBUcmVl
QnVpbGRlcjo6TmVlZHNGcmVlVmFyaWFibGVJbmZvKSwgIlBhcnNlciBlcnJvciIpOwogICAgICAg
ICAKICAgICAgICAgaW5mby5jbG9zZUJyYWNlT2Zmc2V0ID0gY2FjaGVkSW5mby0+Y2xvc2VCcmFj
ZU9mZnNldDsKIAotICAgICAgICBjb250ZXh0LnNldEZ1bmN0aW9uTmFtZVN0YXJ0KGluZm8uYm9k
eSwgZnVuY3Rpb25OYW1lU3RhcnQpOwogICAgICAgICBtX3Rva2VuID0gY2FjaGVkSW5mby0+Y2xv
c2VCcmFjZVRva2VuKCk7CiAgICAgICAgIGlmIChlbmRDb2x1bW5Jc09uU3RhcnRMaW5lKQogICAg
ICAgICAgICAgbV90b2tlbi5tX2xvY2F0aW9uLmxpbmVTdGFydE9mZnNldCA9IGN1cnJlbnRMaW5l
U3RhcnRPZmZzZXQ7CkBAIC0xMzgxLDcgKzEzODYsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1
aWxkZXI+IGJvb2wgUGFyc2VyCiAgICAgfQogICAgIG1fbGFzdEZ1bmN0aW9uTmFtZSA9IGxhc3RG
dW5jdGlvbk5hbWU7CiAgICAgUGFyc2VyU3RhdGUgb2xkU3RhdGUgPSBzYXZlU3RhdGUoKTsKLSAg
ICBpbmZvLmJvZHkgPSBwYXJzZUZ1bmN0aW9uQm9keShjb250ZXh0LCBjb25zdHJ1Y3RvcktpbmQp
OworICAgIGluZm8uYm9keSA9IHBhcnNlRnVuY3Rpb25Cb2R5KGNvbnRleHQsIGZ1bmN0aW9uS2V5
d29yZFN0YXJ0LCBmdW5jdGlvbk5hbWVTdGFydCwgcGFyYW1ldGVyc1N0YXJ0LCBjb25zdHJ1Y3Rv
cktpbmQpOwogICAgIHJlc3RvcmVTdGF0ZShvbGRTdGF0ZSk7CiAgICAgZmFpbElmRmFsc2UoaW5m
by5ib2R5LCAiQ2Fubm90IHBhcnNlIHRoZSBib2R5IG9mIHRoaXMgIiwgc3RyaW5nRm9yRnVuY3Rp
b25Nb2RlKG1vZGUpKTsKICAgICBjb250ZXh0LnNldEVuZE9mZnNldChpbmZvLmJvZHksIG1fbGV4
ZXItPmN1cnJlbnRPZmZzZXQoKSk7CkBAIC0xNDE2LDcgKzE0MjEsNiBAQCB0ZW1wbGF0ZSA8Y2xh
c3MgVHJlZUJ1aWxkZXI+IGJvb2wgUGFyc2VyCiAgICAgICAgIG5ld0luZm8gPSBTb3VyY2VQcm92
aWRlckNhY2hlSXRlbTo6Y3JlYXRlKHBhcmFtZXRlcnMpOwogCiAgICAgfQotICAgIGNvbnRleHQu
c2V0RnVuY3Rpb25OYW1lU3RhcnQoaW5mby5ib2R5LCBmdW5jdGlvbk5hbWVTdGFydCk7CiAgICAg
CiAgICAgZmFpbElmRmFsc2UocG9wU2NvcGUoZnVuY3Rpb25TY29wZSwgVHJlZUJ1aWxkZXI6Ok5l
ZWRzRnJlZVZhcmlhYmxlSW5mbyksICJQYXJzZXIgZXJyb3IiKTsKICAgICBtYXRjaE9yRmFpbChD
TE9TRUJSQUNFLCAiRXhwZWN0ZWQgYSBjbG9zaW5nICd9JyBhZnRlciBhICIsIHN0cmluZ0ZvckZ1
bmN0aW9uTW9kZShtb2RlKSwgIiBib2R5Iik7CkBAIC0xNDM3LDEwICsxNDQxLDEwIEBAIHRlbXBs
YXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0YXRlbWUKICAgICB1bnNpZ25lZCBmdW5jdGlv
bktleXdvcmRTdGFydCA9IHRva2VuU3RhcnQoKTsKICAgICBuZXh0KCk7CiAgICAgUGFyc2VyRnVu
Y3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBpbmZvOwotICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1bmN0
aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5lZWRzTmFtZSwgRnVuY3Rpb25Nb2RlLCB0cnVlLCBD
b25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIGZ1bmN0aW9u
Iik7CisgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9u
TmVlZHNOYW1lLCBGdW5jdGlvbk1vZGUsIHRydWUsIENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgZnVu
Y3Rpb25LZXl3b3JkU3RhcnQsIGluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIGZ1bmN0aW9uIik7
CiAgICAgZmFpbElmRmFsc2UoaW5mby5uYW1lLCAiRnVuY3Rpb24gc3RhdGVtZW50cyBtdXN0IGhh
dmUgYSBuYW1lIik7CiAgICAgZmFpbElmRmFsc2VJZlN0cmljdChkZWNsYXJlVmFyaWFibGUoaW5m
by5uYW1lKSwgIkNhbm5vdCBkZWNsYXJlIGEgZnVuY3Rpb24gbmFtZWQgJyIsIGluZm8ubmFtZS0+
aW1wbCgpLCAiJyBpbiBzdHJpY3QgbW9kZSIpOwotICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUZ1
bmNEZWNsU3RhdGVtZW50KGxvY2F0aW9uLCBpbmZvLCBmdW5jdGlvbktleXdvcmRTdGFydCk7Cisg
ICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRnVuY0RlY2xTdGF0ZW1lbnQobG9jYXRpb24sIGluZm8p
OwogfQogCiAjaWYgRU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCkBAIC0xNTI1LDcgKzE1MjksNyBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVDbGFzc0V4CiAgICAgICAgICAgICBm
YWlsSWZGYWxzZShwcm9wZXJ0eSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOwogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBt
ZXRob2RJbmZvOwotICAgICAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNv
bnRleHQsIEZ1bmN0aW9uTmVlZHNOYW1lLCBpc1N0YXRpY01ldGhvZCA/IEZ1bmN0aW9uTW9kZSA6
IE1ldGhvZE1vZGUsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQsIG1ldGhvZEluZm8pKSwgIkNhbm5v
dCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgICAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVu
Y3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTmVlZHNOYW1lLCBpc1N0YXRpY01ldGhvZCA/IEZ1
bmN0aW9uTW9kZSA6IE1ldGhvZE1vZGUsIGZhbHNlLCBjb25zdHJ1Y3RvcktpbmQsIG1ldGhvZFN0
YXJ0LCBtZXRob2RJbmZvKSksICJDYW5ub3QgcGFyc2UgdGhpcyBtZXRob2QiKTsKICAgICAgICAg
ICAgIGZhaWxJZkZhbHNlKG1ldGhvZEluZm8ubmFtZSwgIm1ldGhvZCBtdXN0IGhhdmUgYSBuYW1l
Iik7CiAgICAgICAgICAgICBmYWlsSWZGYWxzZShkZWNsYXJlVmFyaWFibGUobWV0aG9kSW5mby5u
YW1lKSwgIkNhbm5vdCBkZWNsYXJlIGEgbWV0aG9kIG5hbWVkICciLCBtZXRob2RJbmZvLm5hbWUt
PmltcGwoKSwgIiciKTsKIApAQCAtMTUzMyw3ICsxNTM3LDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlQ2xhc3NFeAogICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0b3IpCiAg
ICAgICAgICAgICAgICAgbWV0aG9kSW5mby5uYW1lID0gY2xhc3NOYW1lOwogCi0gICAgICAgICAg
ICBUcmVlRXhwcmVzc2lvbiBtZXRob2QgPSBjb250ZXh0LmNyZWF0ZUZ1bmN0aW9uRXhwcihtZXRo
b2RMb2NhdGlvbiwgbWV0aG9kSW5mbywgbWV0aG9kU3RhcnQpOworICAgICAgICAgICAgVHJlZUV4
cHJlc3Npb24gbWV0aG9kID0gY29udGV4dC5jcmVhdGVGdW5jdGlvbkV4cHIobWV0aG9kTG9jYXRp
b24sIG1ldGhvZEluZm8pOwogICAgICAgICAgICAgaWYgKGlzQ29uc3RydWN0b3IpIHsKICAgICAg
ICAgICAgICAgICBzZW1hbnRpY0ZhaWxJZlRydWUoY29uc3RydWN0b3IsICJDYW5ub3QgZGVjbGFy
ZSBtdWx0aXBsZSBjb25zdHJ1Y3RvcnMgaW4gYSBzaW5nbGUgY2xhc3MiKTsKICAgICAgICAgICAg
ICAgICBjb25zdHJ1Y3RvciA9IG1ldGhvZDsKQEAgLTIwMjgsOSArMjAzMiw5IEBAIHRlbXBsYXRl
IDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3MKICAgICBKU1Rva2VuTG9jYXRpb24gbWV0
aG9kTG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKICAgICB1bnNpZ25lZCBtZXRob2RTdGFydCA9
IHRva2VuU3RhcnQoKTsKICAgICBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1aWxkZXI+IG1ldGhv
ZEluZm87Ci0gICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0
aW9uTm9SZXF1aXJlbWVudHMsIE1ldGhvZE1vZGUsIGZhbHNlLCBDb25zdHJ1Y3RvcktpbmQ6Ok5v
bmUsIG1ldGhvZEluZm8pKSwgIkNhbm5vdCBwYXJzZSB0aGlzIG1ldGhvZCIpOworICAgIGZhaWxJ
ZkZhbHNlKChwYXJzZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5vUmVxdWlyZW1lbnRz
LCBNZXRob2RNb2RlLCBmYWxzZSwgQ29uc3RydWN0b3JLaW5kOjpOb25lLCBtZXRob2RTdGFydCwg
bWV0aG9kSW5mbykpLCAiQ2Fubm90IHBhcnNlIHRoaXMgbWV0aG9kIik7CiAgICAgbWV0aG9kSW5m
by5uYW1lID0gbWV0aG9kTmFtZTsKLSAgICByZXR1cm4gY29udGV4dC5jcmVhdGVGdW5jdGlvbkV4
cHIobWV0aG9kTG9jYXRpb24sIG1ldGhvZEluZm8sIG1ldGhvZFN0YXJ0KTsKKyAgICByZXR1cm4g
Y29udGV4dC5jcmVhdGVGdW5jdGlvbkV4cHIobWV0aG9kTG9jYXRpb24sIG1ldGhvZEluZm8pOwog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGV4ZXJUeXBlPgpAQCAtMjA1MCwxNCArMjA1NCwxNCBA
QCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0CiAgICAgUGFyc2VyRnVu
Y3Rpb25JbmZvPFRyZWVCdWlsZGVyPiBpbmZvOwogICAgIGlmICh0eXBlID09IFByb3BlcnR5Tm9k
ZTo6R2V0dGVyKSB7CiAgICAgICAgIGZhaWxJZkZhbHNlKG1hdGNoKE9QRU5QQVJFTiksICJFeHBl
Y3RlZCBhIHBhcmFtZXRlciBsaXN0IGZvciBnZXR0ZXIgZGVmaW5pdGlvbiIpOwotICAgICAgICBm
YWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwgRnVuY3Rpb25Ob1JlcXVpcmVt
ZW50cywgR2V0dGVyTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9yS2luZCwgaW5mbykpLCAiQ2Fubm90
IHBhcnNlIGdldHRlciBkZWZpbml0aW9uIik7CisgICAgICAgIGZhaWxJZkZhbHNlKChwYXJzZUZ1
bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5vUmVxdWlyZW1lbnRzLCBHZXR0ZXJNb2RlLCBm
YWxzZSwgY29uc3RydWN0b3JLaW5kLCBnZXR0ZXJPclNldHRlclN0YXJ0T2Zmc2V0LCBpbmZvKSks
ICJDYW5ub3QgcGFyc2UgZ2V0dGVyIGRlZmluaXRpb24iKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBmYWlsSWZGYWxzZShtYXRjaChPUEVOUEFSRU4pLCAiRXhwZWN0ZWQgYSBwYXJhbWV0ZXIgbGlz
dCBmb3Igc2V0dGVyIGRlZmluaXRpb24iKTsKLSAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVu
Y3Rpb25JbmZvKGNvbnRleHQsIEZ1bmN0aW9uTm9SZXF1aXJlbWVudHMsIFNldHRlck1vZGUsIGZh
bHNlLCBjb25zdHJ1Y3RvcktpbmQsIGluZm8pKSwgIkNhbm5vdCBwYXJzZSBzZXR0ZXIgZGVmaW5p
dGlvbiIpOworICAgICAgICBmYWlsSWZGYWxzZSgocGFyc2VGdW5jdGlvbkluZm8oY29udGV4dCwg
RnVuY3Rpb25Ob1JlcXVpcmVtZW50cywgU2V0dGVyTW9kZSwgZmFsc2UsIGNvbnN0cnVjdG9yS2lu
ZCwgZ2V0dGVyT3JTZXR0ZXJTdGFydE9mZnNldCwgaW5mbykpLCAiQ2Fubm90IHBhcnNlIHNldHRl
ciBkZWZpbml0aW9uIik7CiAgICAgfQogICAgIGlmIChzdHJpbmdQcm9wZXJ0eU5hbWUpCi0gICAg
ICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkobG9jYXRpb24s
IHR5cGUsIHN0cmljdCwgc3RyaW5nUHJvcGVydHlOYW1lLCBpbmZvLCBnZXR0ZXJPclNldHRlclN0
YXJ0T2Zmc2V0LCBzdXBlckJpbmRpbmcpOwotICAgIHJldHVybiBjb250ZXh0LmNyZWF0ZUdldHRl
ck9yU2V0dGVyUHJvcGVydHkoY29uc3RfY2FzdDxWTSo+KG1fdm0pLCBtX3BhcnNlckFyZW5hLCBs
b2NhdGlvbiwgdHlwZSwgc3RyaWN0LCBudW1lcmljUHJvcGVydHlOYW1lLCBpbmZvLCBnZXR0ZXJP
clNldHRlclN0YXJ0T2Zmc2V0LCBzdXBlckJpbmRpbmcpOworICAgICAgICByZXR1cm4gY29udGV4
dC5jcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGxvY2F0aW9uLCB0eXBlLCBzdHJpY3QsIHN0
cmluZ1Byb3BlcnR5TmFtZSwgaW5mbywgc3VwZXJCaW5kaW5nKTsKKyAgICByZXR1cm4gY29udGV4
dC5jcmVhdGVHZXR0ZXJPclNldHRlclByb3BlcnR5KGNvbnN0X2Nhc3Q8Vk0qPihtX3ZtKSwgbV9w
YXJzZXJBcmVuYSwgbG9jYXRpb24sIHR5cGUsIHN0cmljdCwgbnVtZXJpY1Byb3BlcnR5TmFtZSwg
aW5mbywgc3VwZXJCaW5kaW5nKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIExleGVyVHlwZT4K
QEAgLTIyNDIsOCArMjI0Niw4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3MKICAgICAgICAgbmV4dCgpOwogICAgICAgICBQYXJzZXJGdW5jdGlvbkluZm88VHJlZUJ1
aWxkZXI+IGluZm87CiAgICAgICAgIGluZm8ubmFtZSA9ICZtX3ZtLT5wcm9wZXJ0eU5hbWVzLT5u
dWxsSWRlbnRpZmllcjsKLSAgICAgICAgZmFpbElmRmFsc2UoKHBhcnNlRnVuY3Rpb25JbmZvKGNv
bnRleHQsIEZ1bmN0aW9uTm9SZXF1aXJlbWVudHMsIEZ1bmN0aW9uTW9kZSwgZmFsc2UsIENvbnN0
cnVjdG9yS2luZDo6Tm9uZSwgaW5mbykpLCAiQ2Fubm90IHBhcnNlIGZ1bmN0aW9uIGV4cHJlc3Np
b24iKTsKLSAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRnVuY3Rpb25FeHByKGxvY2F0aW9u
LCBpbmZvLCBmdW5jdGlvbktleXdvcmRTdGFydCk7CisgICAgICAgIGZhaWxJZkZhbHNlKChwYXJz
ZUZ1bmN0aW9uSW5mbyhjb250ZXh0LCBGdW5jdGlvbk5vUmVxdWlyZW1lbnRzLCBGdW5jdGlvbk1v
ZGUsIGZhbHNlLCBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUsIGZ1bmN0aW9uS2V5d29yZFN0YXJ0LCBp
bmZvKSksICJDYW5ub3QgcGFyc2UgZnVuY3Rpb24gZXhwcmVzc2lvbiIpOworICAgICAgICByZXR1
cm4gY29udGV4dC5jcmVhdGVGdW5jdGlvbkV4cHIobG9jYXRpb24sIGluZm8pOwogICAgIH0KICNp
ZiBFTkFCTEUoRVM2X0NMQVNTX1NZTlRBWCkKICAgICBjYXNlIENMQVNTVE9LRU46CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHJldmlzaW9uIDE4MTgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2
Miw3ICs3NjIsNyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZVByb3BlcnR5IHBhcnNlUHJvcGVydHkoVHJlZUJ1aWxkZXImLCBib29sIHN0cmljdCk7CiAg
ICAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZVByb3Bl
cnR5TWV0aG9kKFRyZWVCdWlsZGVyJiBjb250ZXh0LCBjb25zdCBJZGVudGlmaWVyKiBtZXRob2RO
YW1lKTsKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVQcm9wZXJ0eSBwYXJz
ZUdldHRlclNldHRlcihUcmVlQnVpbGRlciYsIGJvb2wgc3RyaWN0LCBQcm9wZXJ0eU5vZGU6OlR5
cGUsIHVuc2lnbmVkIGdldHRlck9yU2V0dGVyU3RhcnRPZmZzZXQsIENvbnN0cnVjdG9yS2luZCA9
IENvbnN0cnVjdG9yS2luZDo6Tm9uZSwgU3VwZXJCaW5kaW5nID0gU3VwZXJCaW5kaW5nOjpOb3RO
ZWVkZWQpOwotICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gQUxXQVlTX0lOTElORSBU
cmVlRnVuY3Rpb25Cb2R5IHBhcnNlRnVuY3Rpb25Cb2R5KFRyZWVCdWlsZGVyJiwgQ29uc3RydWN0
b3JLaW5kKTsKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IEFMV0FZU19JTkxJTkUg
VHJlZUZ1bmN0aW9uQm9keSBwYXJzZUZ1bmN0aW9uQm9keShUcmVlQnVpbGRlciYsIGludCBmdW5j
dGlvbktleXdvcmRTdGFydCwgaW50IGZ1bmN0aW9uTmFtZVN0YXJ0LCBpbnQgcGFyYW1ldGVyc1N0
YXJ0LCBDb25zdHJ1Y3RvcktpbmQpOwogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
QUxXQVlTX0lOTElORSBUcmVlRm9ybWFsUGFyYW1ldGVyTGlzdCBwYXJzZUZvcm1hbFBhcmFtZXRl
cnMoVHJlZUJ1aWxkZXImKTsKICAgICBlbnVtIFZhckRlY2xhcmF0aW9uTGlzdENvbnRleHQgeyBG
b3JMb29wQ29udGV4dCwgVmFyRGVjbGFyYXRpb25Db250ZXh0IH07CiAgICAgdGVtcGxhdGUgPGNs
YXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBwYXJzZVZhckRlY2xhcmF0aW9uTGlzdChU
cmVlQnVpbGRlciYsIGludCYgZGVjbGFyYXRpb25zLCBUcmVlRGVjb25zdHJ1Y3Rpb25QYXR0ZXJu
JiBsYXN0UGF0dGVybiwgVHJlZUV4cHJlc3Npb24mIGxhc3RJbml0aWFsaXplciwgSlNUZXh0UG9z
aXRpb24mIGlkZW50U3RhcnQsIEpTVGV4dFBvc2l0aW9uJiBpbml0U3RhcnQsIEpTVGV4dFBvc2l0
aW9uJiBpbml0RW5kLCBWYXJEZWNsYXJhdGlvbkxpc3RDb250ZXh0KTsKQEAgLTc3Miw3ICs3NzIs
NyBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5M
SU5FIFRyZWVEZWNvbnN0cnVjdGlvblBhdHRlcm4gcGFyc2VEZWNvbnN0cnVjdGlvblBhdHRlcm4o
VHJlZUJ1aWxkZXImLCBEZWNvbnN0cnVjdGlvbktpbmQsIGludCBkZXB0aCA9IDApOwogICAgIHRl
bXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gTkVWRVJfSU5MSU5FIFRyZWVEZWNvbnN0cnVjdGlv
blBhdHRlcm4gdHJ5UGFyc2VEZWNvbnN0cnVjdGlvblBhdHRlcm5FeHByZXNzaW9uKFRyZWVCdWls
ZGVyJik7CiAKLSAgICB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBi
b29sIHBhcnNlRnVuY3Rpb25JbmZvKFRyZWVCdWlsZGVyJiwgRnVuY3Rpb25SZXF1aXJlbWVudHMs
IEZ1bmN0aW9uUGFyc2VNb2RlLCBib29sIG5hbWVJc0luQ29udGFpbmluZ1Njb3BlLCBDb25zdHJ1
Y3RvcktpbmQsIFBhcnNlckZ1bmN0aW9uSW5mbzxUcmVlQnVpbGRlcj4mKTsKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IE5FVkVSX0lOTElORSBib29sIHBhcnNlRnVuY3Rpb25JbmZv
KFRyZWVCdWlsZGVyJiwgRnVuY3Rpb25SZXF1aXJlbWVudHMsIEZ1bmN0aW9uUGFyc2VNb2RlLCBi
b29sIG5hbWVJc0luQ29udGFpbmluZ1Njb3BlLCBDb25zdHJ1Y3RvcktpbmQsIGludCBmdW5jdGlv
bktleXdvcmRTdGFydCwgUGFyc2VyRnVuY3Rpb25JbmZvPFRyZWVCdWlsZGVyPiYpOwogI2lmIEVO
QUJMRShFUzZfQ0xBU1NfU1lOVEFYKQogICAgIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
TkVWRVJfSU5MSU5FIFRyZWVDbGFzc0V4cHJlc3Npb24gcGFyc2VDbGFzcyhUcmVlQnVpbGRlciYs
IEZ1bmN0aW9uUmVxdWlyZW1lbnRzKTsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgJKHJldmlzaW9uIDE4MTgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjgsOSArMTY4LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShFUzZfQ0xBU1NfU1lOVEFYKQog
ICAgIENsYXNzRXhwcmVzc2lvbiBjcmVhdGVDbGFzc0V4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JiwgY29uc3QgSWRlbnRpZmllciYsIEV4cHJlc3Npb25UeXBlLCBFeHByZXNzaW9uVHlwZSwgUHJv
cGVydHlMaXN0LCBQcm9wZXJ0eUxpc3QpIHsgcmV0dXJuIENsYXNzRXhwcjsgfQogI2VuZGlmCi0g
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlRnVuY3Rpb25FeHByKGNvbnN0IEpTVG9rZW5Mb2NhdGlv
biYsIGNvbnN0IFBhcnNlckZ1bmN0aW9uSW5mbzxTeW50YXhDaGVja2VyPiYsIGludCkgeyByZXR1
cm4gRnVuY3Rpb25FeHByOyB9Ci0gICAgaW50IGNyZWF0ZUZ1bmN0aW9uQm9keShjb25zdCBKU1Rv
a2VuTG9jYXRpb24mLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCwgYm9vbCwgQ29u
c3RydWN0b3JLaW5kKSB7IHJldHVybiBGdW5jdGlvbkJvZHlSZXN1bHQ7IH0KLSAgICB2b2lkIHNl
dEZ1bmN0aW9uTmFtZVN0YXJ0KGludCwgaW50KSB7IH0KKyAgICBFeHByZXNzaW9uVHlwZSBjcmVh
dGVGdW5jdGlvbkV4cHIoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgUGFyc2VyRnVuY3Rp
b25JbmZvPFN5bnRheENoZWNrZXI+JikgeyByZXR1cm4gRnVuY3Rpb25FeHByOyB9CisgICAgaW50
IGNyZWF0ZUZ1bmN0aW9uQm9keShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBpbnQsIGludCwgYm9vbCwgaW50LCBpbnQsIGludCwgQ29uc3RydWN0b3JLaW5k
KSB7IHJldHVybiBGdW5jdGlvbkJvZHlSZXN1bHQ7IH0KICAgICBpbnQgY3JlYXRlQXJndW1lbnRz
KCkgeyByZXR1cm4gQXJndW1lbnRzUmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUFyZ3VtZW50cyhp
bnQpIHsgcmV0dXJuIEFyZ3VtZW50c1Jlc3VsdDsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0
ZVNwcmVhZEV4cHJlc3Npb24oY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgRXhwcmVzc2lvblR5cGUs
IGludCwgaW50LCBpbnQpIHsgcmV0dXJuIFNwcmVhZEV4cHI7IH0KQEAgLTIwMiw3ICsyMDEsNyBA
QCBwdWJsaWM6CiAgICAgaW50IGNyZWF0ZUNsYXVzZShpbnQsIGludCkgeyByZXR1cm4gQ2xhdXNl
UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUNsYXVzZUxpc3QoaW50KSB7IHJldHVybiBDbGF1c2VM
aXN0UmVzdWx0OyB9CiAgICAgaW50IGNyZWF0ZUNsYXVzZUxpc3QoaW50LCBpbnQpIHsgcmV0dXJu
IENsYXVzZUxpc3RSZXN1bHQ7IH0KLSAgICBpbnQgY3JlYXRlRnVuY0RlY2xTdGF0ZW1lbnQoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPFN5bnRheENoZWNr
ZXI+JiwgaW50KSB7IHJldHVybiBTdGF0ZW1lbnRSZXN1bHQ7IH0KKyAgICBpbnQgY3JlYXRlRnVu
Y0RlY2xTdGF0ZW1lbnQoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgY29uc3QgUGFyc2VyRnVuY3Rp
b25JbmZvPFN5bnRheENoZWNrZXI+JikgeyByZXR1cm4gU3RhdGVtZW50UmVzdWx0OyB9CiAjaWYg
RU5BQkxFKEVTNl9DTEFTU19TWU5UQVgpCiAgICAgaW50IGNyZWF0ZUNsYXNzRGVjbFN0YXRlbWVu
dChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBDbGFzc0V4cHJlc3Npb24sCiAgICAgICAgIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mLCBpbnQsIGludCkgeyByZXR1
cm4gU3RhdGVtZW50UmVzdWx0OyB9CkBAIC0yMzEsMTQgKzIzMCwxNCBAQCBwdWJsaWM6CiAgICAg
aW50IGNyZWF0ZURlYnVnZ2VyKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCwgaW50KSB7IHJl
dHVybiBTdGF0ZW1lbnRSZXN1bHQ7IH0KICAgICBpbnQgY3JlYXRlQ29uc3RTdGF0ZW1lbnQoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gU3RhdGVtZW50UmVz
dWx0OyB9CiAgICAgaW50IGFwcGVuZENvbnN0RGVjbChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBp
bnQsIGNvbnN0IElkZW50aWZpZXIqLCBpbnQpIHsgcmV0dXJuIFN0YXRlbWVudFJlc3VsdDsgfQot
ICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUsIGJvb2wgc3RyaWN0LCBjb25zdCBJZGVu
dGlmaWVyKiBuYW1lLCBjb25zdCBQYXJzZXJGdW5jdGlvbkluZm88U3ludGF4Q2hlY2tlcj4mLCB1
bnNpZ25lZCwgU3VwZXJCaW5kaW5nKQorICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9yU2V0dGVy
UHJvcGVydHkoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUs
IGJvb2wgc3RyaWN0LCBjb25zdCBJZGVudGlmaWVyKiBuYW1lLCBjb25zdCBQYXJzZXJGdW5jdGlv
bkluZm88U3ludGF4Q2hlY2tlcj4mLCBTdXBlckJpbmRpbmcpCiAgICAgewogICAgICAgICBBU1NF
UlQobmFtZSk7CiAgICAgICAgIGlmICghc3RyaWN0KQogICAgICAgICAgICAgcmV0dXJuIFByb3Bl
cnR5KHR5cGUpOwogICAgICAgICByZXR1cm4gUHJvcGVydHkobmFtZSwgdHlwZSk7CiAgICAgfQot
ICAgIFByb3BlcnR5IGNyZWF0ZUdldHRlck9yU2V0dGVyUHJvcGVydHkoVk0qIHZtLCBQYXJzZXJB
cmVuYSYgcGFyc2VyQXJlbmEsIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIFByb3BlcnR5Tm9kZTo6
VHlwZSB0eXBlLCBib29sIHN0cmljdCwgZG91YmxlIG5hbWUsIGNvbnN0IFBhcnNlckZ1bmN0aW9u
SW5mbzxTeW50YXhDaGVja2VyPiYsIHVuc2lnbmVkLCBTdXBlckJpbmRpbmcpCisgICAgUHJvcGVy
dHkgY3JlYXRlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eShWTSogdm0sIFBhcnNlckFyZW5hJiBwYXJz
ZXJBcmVuYSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgUHJvcGVydHlOb2RlOjpUeXBlIHR5cGUs
IGJvb2wgc3RyaWN0LCBkb3VibGUgbmFtZSwgY29uc3QgUGFyc2VyRnVuY3Rpb25JbmZvPFN5bnRh
eENoZWNrZXI+JiwgU3VwZXJCaW5kaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFzdHJpY3QpCiAg
ICAgICAgICAgICByZXR1cm4gUHJvcGVydHkodHlwZSk7Cg==
</data>
<flag name="review"
          id="273980"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>