<?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>69046</bug_id>
          
          <creation_ts>2011-09-28 17:57:34 -0700</creation_ts>
          <short_desc>DFG JIT Operations on 32_64 should use stdcall calling convention.</short_desc>
          <delta_ts>2011-09-28 19:52:21 -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>JavaScriptCore</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475137</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-28 17:57:34 -0700</bug_when>
    <thetext>All calls out are expecting stdcall conventions, but the default on OS X are cdecl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475149</commentid>
    <comment_count>1</comment_count>
      <attachid>109106</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-28 18:03:00 -0700</bug_when>
    <thetext>Created attachment 109106
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475150</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-28 18:05:56 -0700</bug_when>
    <thetext>Attachment 109106 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Last 3072 characters of output:
iptCore/dfg/DFGOperations.h:88:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:278:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:278:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:301:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:301:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:321:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:321:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:341:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:341:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:405:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:405:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:428:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:428:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:451:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:451:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:474:  The parameter name &quot;exec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:474:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:658:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/dfg/DFGOperations.cpp:671:  The parameter name &quot;returnAddress&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 33 in 5 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>475156</commentid>
    <comment_count>3</comment_count>
      <attachid>109106</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-09-28 18:13:37 -0700</bug_when>
    <thetext>Comment on attachment 109106
Fix

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

&gt; Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:59
&gt; +// Defined on X86 platforms if stdcall is not the standard!
&gt; +#define STDCALL_NOT_STANDARD __attribute__ ((stdcall))

How about we replace the second standard with default.  This should probably be in Compiler.h.

&gt; Source/JavaScriptCore/dfg/DFGJITCodeGenerator.h:1319
&gt; +#if !PLATFORM(MAC)

Please give this #define a more clear explanation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475167</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-28 18:35:11 -0700</bug_when>
    <thetext>Fixed in r96286.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475170</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 18:41:12 -0700</bug_when>
    <thetext>It seems like this patch broke Qt and EFL builds:
http://build.webkit.org/builders/Qt%20Linux%20Release%20minimal/builds/33358/steps/compile-webkit/logs/stdio
http://build.webkit.org/builders/EFL%20Linux%20Release%20%28Build%29/builds/22514/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475176</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 18:46:16 -0700</bug_when>
    <thetext>Also Windows and Mac:
http://build.webkit.org/builders/Windows%20Release%20%28Build%29/builds/21506/steps/compile-webkit/logs/stdio
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29/builds/34281/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475202</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-28 19:52:21 -0700</bug_when>
    <thetext>Build fix attempted in http://trac.webkit.org/changeset/96288.

But now Leopard is broken although this failure seems much more reasonable:
http://build.webkit.org/builders/Leopard%20Intel%20Debug%20%28Build%29/builds/39971/steps/compile-webkit/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109106</attachid>
            <date>2011-09-28 18:03:00 -0700</date>
            <delta_ts>2011-09-28 18:13:37 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>69046.patch</filename>
            <type>text/plain</type>
            <size>51744</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTYyODApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAK
KzIwMTEtMDktMjggIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgor
CisgICAgICAgIERGRyBKSVQgT3BlcmF0aW9ucyBvbiAzMl82NCBzaG91bGQgdXNlIHN0ZGNhbGwg
Y2FsbGluZyBjb252ZW50aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjkwNDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBbGwgY2FsbHMgb3V0IGFyZSBleHBlY3Rpbmcgc3RkY2FsbCBjb252ZW50aW9u
cywgYnV0IHRoZSBkZWZhdWx0IG9uIE9TIFggYXJlIGNkZWNsLgorICAgICAgICBMZWF2ZSBEX0RG
R09wZXJhdGlvbl9ERCBjYWxscyBhcyB0aGUgb25lIGV4Y2VwdGlvbiwgc2luY2Ugd2Ugd2FudCB0
byBiZSBhYmxlIHRvIGxpbmsKKyAgICAgICAgZGlyZWN0bHkgdG8gc3RkIGxpYnJhcnkgZnVuY3Rp
b25zIGxpa2UgZm1vZCAtIGxlYXZlIHRoZXNlIGNhbGxzIG9iZXlpbmcgdGhlIGRlZmF1bHQKKyAg
ICAgICAgcGxhdGZvcm0gY2FsbGluZyBjb252ZW50aW9uLgorCisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOgorICAgICAgICAoSlNDOjpGdW5jdGlvblB0cjo6RnVu
Y3Rpb25QdHIpOgorICAgICAgICAgICAgLSBBZGQgaW1wbGljaXQgY29uc3RydWN0b3JzIGZvciBz
dGQgY2FsbHMuCisgICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KEpTQzo6REZHOjpjYWxsT3BlcmF0aW9uKToKKyAgICAgICAgICAgIC0gTWFrZSB0aGlzIHdvcmsg
bm9uLU1hYyBwbGF0Zm9ybXMuCisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6Om9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWwpOgorICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmg6CisgICAgICAgICAgICAtIE1hcmsgYWxsIG9wZXJhdGlvbnMgYXMg
c3RkY2FsbHMuCisKIDIwMTEtMDktMjggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBERkcgSklUIGZhbGxzIGJhY2sgb24gbnVtZXJpY2FsIGNvbXBhcmlzb25zIHdo
ZW4gaXQgZG9lcyBub3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAkocmV2aXNpb24gOTYyODApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorI2lm
IENQVShYODYpICYmIENPTVBJTEVSKEdDQykKKy8vIERlZmluZWQgb24gWDg2IHBsYXRmb3JtcyBp
ZiBzdGRjYWxsIGlzIG5vdCB0aGUgc3RhbmRhcmQhCisjZGVmaW5lIFNURENBTExfTk9UX1NUQU5E
QVJEIF9fYXR0cmlidXRlX18gKChzdGRjYWxsKSkKKyNlbmRpZgorCiAvLyBGdW5jdGlvblB0cjoK
IC8vCiAvLyBGdW5jdGlvblB0ciBzaG91bGQgYmUgdXNlZCB0byB3cmFwIHBvaW50ZXJzIHRvIEMv
QysrIGZ1bmN0aW9ucyBpbiBKU0MKQEAgLTEwMCw2ICsxMDUsNDMgQEAgcHVibGljOgogICAgICAg
ICBBU1NFUlRfVkFMSURfQ09ERV9QT0lOVEVSKG1fdmFsdWUpOwogICAgIH0KIAorI2lmZGVmIFNU
RENBTExfTk9UX1NUQU5EQVJECisgICAgdGVtcGxhdGU8dHlwZW5hbWUgcmV0dXJuVHlwZT4KKyAg
ICBGdW5jdGlvblB0cihyZXR1cm5UeXBlIFNURENBTExfTk9UX1NUQU5EQVJEKCp2YWx1ZSkoKSkK
KyAgICAgICAgOiBtX3ZhbHVlKCh2b2lkKil2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9W
QUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgcmV0dXJuVHlwZSwgdHlwZW5hbWUgYXJnVHlwZTE+CisgICAgRnVuY3Rpb25QdHIocmV0dXJu
VHlwZSBTVERDQUxMX05PVF9TVEFOREFSRCgqdmFsdWUpKGFyZ1R5cGUxKSkKKyAgICAgICAgOiBt
X3ZhbHVlKCh2b2lkKil2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9WQUxJRF9DT0RFX1BP
SU5URVIobV92YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgcmV0dXJuVHlw
ZSwgdHlwZW5hbWUgYXJnVHlwZTEsIHR5cGVuYW1lIGFyZ1R5cGUyPgorICAgIEZ1bmN0aW9uUHRy
KHJldHVyblR5cGUgU1REQ0FMTF9OT1RfU1RBTkRBUkQoKnZhbHVlKShhcmdUeXBlMSwgYXJnVHlw
ZTIpKQorICAgICAgICA6IG1fdmFsdWUoKHZvaWQqKXZhbHVlKQorICAgIHsKKyAgICAgICAgQVNT
RVJUX1ZBTElEX0NPREVfUE9JTlRFUihtX3ZhbHVlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSByZXR1cm5UeXBlLCB0eXBlbmFtZSBhcmdUeXBlMSwgdHlwZW5hbWUgYXJnVHlwZTIs
IHR5cGVuYW1lIGFyZ1R5cGUzPgorICAgIEZ1bmN0aW9uUHRyKHJldHVyblR5cGUgU1REQ0FMTF9O
T1RfU1RBTkRBUkQoKnZhbHVlKShhcmdUeXBlMSwgYXJnVHlwZTIsIGFyZ1R5cGUzKSkKKyAgICAg
ICAgOiBtX3ZhbHVlKCh2b2lkKil2YWx1ZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9WQUxJRF9D
T0RFX1BPSU5URVIobV92YWx1ZSk7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgcmV0
dXJuVHlwZSwgdHlwZW5hbWUgYXJnVHlwZTEsIHR5cGVuYW1lIGFyZ1R5cGUyLCB0eXBlbmFtZSBh
cmdUeXBlMywgdHlwZW5hbWUgYXJnVHlwZTQ+CisgICAgRnVuY3Rpb25QdHIocmV0dXJuVHlwZSBT
VERDQUxMX05PVF9TVEFOREFSRCgqdmFsdWUpKGFyZ1R5cGUxLCBhcmdUeXBlMiwgYXJnVHlwZTMs
IGFyZ1R5cGU0KSkKKyAgICAgICAgOiBtX3ZhbHVlKCh2b2lkKil2YWx1ZSkKKyAgICB7CisgICAg
ICAgIEFTU0VSVF9WQUxJRF9DT0RFX1BPSU5URVIobV92YWx1ZSk7CisgICAgfQorI2VuZGlmCisK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CiAgICAgZXhwbGljaXQgRnVuY3Rp
b25QdHIoRnVuY3Rpb25UeXBlKiB2YWx1ZSkKICAgICAgICAgLy8gVXNpbmcgYSBDLWN0eWxlIGNh
c3QgaGVyZSB0byBhdm9pZCBjb21waWxlciBlcnJvciBvbiBSVlRDOgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDk2
MjgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMTEsMTIgKzEzMTEsMjAgQEAgcHJvdGVjdGVkOgogICAgIHsK
ICAgICAgICAgQVNTRVJUKGlzRmx1c2hlZCgpKTsKIAorICAgICAgICBtX2ppdC5zdWJQdHIoVHJ1
c3RlZEltbTMyKDIgKiBzaXplb2YoZG91YmxlKSksIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7CiAgICAgICAgIG1faml0LnN0b3JlRG91YmxlKGFyZzIsIEpJVENvbXBpbGVyOjpB
ZGRyZXNzKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlciwgc2l6ZW9mKGRvdWJsZSkp
KTsKICAgICAgICAgbV9qaXQuc3RvcmVEb3VibGUoYXJnMSwgSklUQ29tcGlsZXI6OnN0YWNrUG9p
bnRlclJlZ2lzdGVyKTsKIAogICAgICAgICBtX2ppdC5hcHBlbmRDYWxsKG9wZXJhdGlvbik7Cisj
aWYgIVBMQVRGT1JNKE1BQykKKyAgICAgICAgLy8gRm9yIERfREZHT3BlcmF0aW9uX0REIGNhbGxz
IHdlJ3JlIGN1cnJlbnRseSB1c2luZyB0aGUgc3lzdGVtJ3MgZGVmYXVsdCBjYWxsaW5nIGNvbnZl
bnRpb24uCisgICAgICAgIC8vIE9uIE1hYyBPUyB0aGUgYXJndW1lbnRzIGFyZSBzdGlsbCBvbiB0
aGUgc3RhY2sgYXQgdGhpcyBwb2ludCwgb24gV2luZG93cyB0aGV5IGFyZSBub3QuCisgICAgICAg
IC8vIE1ha2Ugb3RoZXIgcGxhdGZvcm1zIG1hdGNoIHRoZSBNYWMgaGVyZSwgc2luY2Ugd2UnbGwg
bmVlZCBzb21lIHNjcmF0Y2ggc3BhY2UgZm9yIHRoZSBmc3RwbCwgYmVsb3cuCisgICAgICAgIG1f
aml0LnN1YlB0cihUcnVzdGVkSW1tMzIoMiAqIHNpemVvZihkb3VibGUpKSwgSklUQ29tcGlsZXI6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyNlbmRpZgogICAgICAgICBtX2ppdC5hc3NlbWJsZXIo
KS5mc3RwbCgwLCBKSVRDb21waWxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgICAgICBt
X2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVzdWx0
KTsKKyAgICAgICAgbV9qaXQuYWRkUHRyKFRydXN0ZWRJbW0zMigyICogc2l6ZW9mKGRvdWJsZSkp
LCBKSVRDb21waWxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogICAgIH0KICNlbmRpZgogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlz
aW9uIDk2MjgwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHV0
QnlWYWwoRXhlY1N0YXRlKiBlCiB9CiAKIHRlbXBsYXRlPGJvb2wgc3RyaWN0PgotQUxXQVlTX0lO
TElORSBzdGF0aWMgdm9pZCBvcGVyYXRpb25QdXRCeVZhbEludGVybmFsKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorQUxXQVlTX0lOTElORSBzdGF0aWMg
dm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWwoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFBy
b3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSBiYXNl
VmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFsdWUgcHJvcGVy
dHkgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFByb3BlcnR5KTsKQEAgLTEzMSwxMiArMTMxLDEy
IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgb3BlcmF0aW9uUHV0QnkKIAogZXh0ZXJuICJD
IiB7CiAKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkNvbnZlcnRUaGlzKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25Db252ZXJ0VGhpcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcCkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3ApLnRvVGhpc09iamVjdChleGVjKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9wZXJh
dGlvbkNyZWF0ZVRoaXMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ap
CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVRoaXMoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApCiB7CiAgICAgSlNGdW5jdGlvbiog
Y29uc3RydWN0b3IgPSBhc0Z1bmN0aW9uKGV4ZWMtPmNhbGxlZSgpKTsKICAgICAKQEAgLTE1Nywx
MiArMTU3LDEyIEBAIEVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkNyZWF0ZVRoaXMoRXhlY1MKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEVtcHR5T2JqZWN0KGV4ZWMsIHN0cnVj
dHVyZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdPYmplY3QoRXhlY1N0YXRl
KiBleGVjKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3Qo
RXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0
RW1wdHlPYmplY3QoZXhlYykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25WYWx1ZUFk
ZChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDIpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblZh
bHVlQWRkKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AyKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25WYWx1ZUFk
ZChFeGVjU3RhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0FkZChleGVjLCBvcDEsIG9w
MikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25WYWx1ZUFkZE5vdE51bWJlcihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVlQWRk
Tm90TnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkT3AyKTsKQEAgLTE4NiwzNSArMTg2LDM1IEBAIEVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvblZh
bHVlQWRkTm90TnVtYmUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQWRkU2xvd0Nhc2Uo
ZXhlYywgb3AxLCBvcDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uQXJpdGhBZGQo
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK0Vu
Y29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhBZGQoRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICBkb3VibGUg
bnVtMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKS51bmNoZWNrZWRHZXROdW1iZXIoKTsK
ICAgICBkb3VibGUgbnVtMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKS51bmNoZWNrZWRH
ZXROdW1iZXIoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG51bTEgKyBu
dW0yKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkFyaXRoU3ViKEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitFbmNvZGVkSlNWYWx1
ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoU3ViKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgZG91YmxlIG51bTEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkudW5jaGVja2VkR2V0TnVtYmVyKCk7CiAgICAgZG91Ymxl
IG51bTIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMikudW5jaGVja2VkR2V0TnVtYmVyKCk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihudW0xIC0gbnVtMikpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25Bcml0aE11bChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25Bcml0aE11bChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIGRvdWJsZSBudW0xID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRPcDEpLnVuY2hlY2tlZEdldE51bWJlcigpOwogICAgIGRvdWJsZSBudW0yID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDIpLnVuY2hlY2tlZEdldE51bWJlcigpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobnVtMSAqIG51bTIpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgb3BlcmF0aW9uQXJpdGhEaXYoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uQXJpdGhEaXYoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMikKIHsKICAgICBkb3VibGUgbnVtMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ax
KS51bmNoZWNrZWRHZXROdW1iZXIoKTsKICAgICBkb3VibGUgbnVtMiA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AyKS51bmNoZWNrZWRHZXROdW1iZXIoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKG51bTEgLyBudW0yKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9wZXJh
dGlvbkFyaXRoTW9kKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRPcDIpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTW9k
KEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7
CiAgICAgZG91YmxlIG51bTEgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSkudW5jaGVja2Vk
R2V0TnVtYmVyKCk7CiAgICAgZG91YmxlIG51bTIgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MikudW5jaGVja2VkR2V0TnVtYmVyKCk7CkBAIC0yNDAsNyArMjQwLDcgQEAgc3RhdGljIGlubGlu
ZSBFbmNvZGVkSlNWYWx1ZSBnZXRCeVZhbChFeAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZShiYXNlKS5nZXQoZXhlYywgaW5kZXgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgb3Bl
cmF0aW9uR2V0QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5KQorRW5jb2RlZEpTVmFsdWUgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpCiB7CiAgICAgSlNW
YWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogICAgIEpTVmFs
dWUgcHJvcGVydHkgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFByb3BlcnR5KTsKQEAgLTI2NSw3
ICsyNjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeVZhbChFeGVjU3RhCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlVmFsdWUuZ2V0KGV4ZWMsIGlkZW50KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAg
UHJvcGVydHlTbG90IHNsb3QoYmFzZVZhbHVlKTsKQEAgLTI3MywxMyArMjczLDEzIEBAIEVuY29k
ZWRKU1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXQKIH0KIAogI2lmIENQVShYODZfNjQp
Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRNZXRob2RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRy
ZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0dXJuQWRkcmVz
c1B0cik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldE1ldGhvZE9w
dGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50
aWZpZXIqLCBSZXR1cm5BZGRyZXNzUHRyKTsKIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9BUkc0X1JF
VFVSTl9BRERSRVNTKG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplKTsKLUVuY29kZWRKU1ZhbHVl
IG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1l
LCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVy
dHlOYW1lLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiAjZWxpZiBDUFUoWDg2KQot
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemVXaXRoUmV0dXJuQWRkcmVz
cyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSk7CitFbmNvZGVk
SlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplV2l0aFJldHVy
bkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpOwog
RlVOQ1RJT05fV1JBUFBFUl9XSVRIX0FSRzRfUkVUVVJOX0FERFJFU1Mob3BlcmF0aW9uR2V0TWV0
aG9kT3B0aW1pemUpOwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0TWV0aG9kT3B0aW1pemVX
aXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0TWV0aG9kT3B0
aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHBy
b3BlcnR5TmFtZSkKICNlbmRpZgogewogICAgIEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRCYXNlKTsKQEAgLTI5NiwxMyArMjk2LDEzIEBAIEVuY29kZWRKU1ZhbHVl
IG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXoKIH0KIAogI2lmIENQVShYODZfNjQpCi1FbmNvZGVk
SlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0V2l0aFJldHVybkFkZHJlc3MoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBSZXR1cm5BZGRyZXNzUHRyKTsKK0Vu
Y29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdFdpdGhS
ZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0
dXJuQWRkcmVzc1B0cik7CiBGVU5DVElPTl9XUkFQUEVSX1dJVEhfQVJHNF9SRVRVUk5fQUREUkVT
UyhvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0KTsKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdl
dEJ5SWRCdWlsZExpc3RXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIFJldHVybkFkZHJl
c3NQdHIgcmV0dXJuQWRkcmVzcykKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uR2V0QnlJZEJ1aWxkTGlzdFdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogI2VsaWYgQ1BVKFg4NikKLUVuY29kZWRKU1ZhbHVl
IG9wZXJhdGlvbkdldEJ5SWRCdWlsZExpc3RXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNz
UHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSk7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRCdWlsZExpc3RXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSk7CiBGVU5DVElPTl9XUkFQUEVS
X1dJVEhfQVJHNF9SRVRVUk5fQUREUkVTUyhvcGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0KTsKLUVu
Y29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWRCdWlsZExpc3RXaXRoUmV0dXJuQWRkcmVzcyhS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdFdpdGhSZXR1cm5BZGRy
ZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQogI2VuZGlm
CiB7CiAgICAgSlNWYWx1ZSBiYXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2Up
OwpAQCAtMzE2LDEzICszMTYsMTMgQEAgRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlJZEJ1
aWxkTGlzdAogfQogCiAjaWYgQ1BVKFg4Nl82NCkKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdl
dEJ5SWRQcm90b0J1aWxkTGlzdFdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0dXJuQWRkcmVzc1B0cik7CitFbmNvZGVkSlNWYWx1ZSBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRQcm90b0J1aWxkTGlzdFdpdGhSZXR1cm5BZGRy
ZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0dXJuQWRkcmVz
c1B0cik7CiBGVU5DVElPTl9XUkFQUEVSX1dJVEhfQVJHNF9SRVRVUk5fQUREUkVTUyhvcGVyYXRp
b25HZXRCeUlkUHJvdG9CdWlsZExpc3QpOwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlJ
ZFByb3RvQnVpbGRMaXN0V2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5SWRQcm90b0J1aWxkTGlzdFdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwg
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogI2VsaWYgQ1BVKFg4NikKLUVuY29kZWRK
U1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWRQcm90b0J1aWxkTGlzdFdpdGhSZXR1cm5BZGRyZXNzKFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKTsKK0VuY29kZWRKU1Zh
bHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZFByb3RvQnVpbGRMaXN0V2l0aFJldHVy
bkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpOwog
RlVOQ1RJT05fV1JBUFBFUl9XSVRIX0FSRzRfUkVUVVJOX0FERFJFU1Mob3BlcmF0aW9uR2V0QnlJ
ZFByb3RvQnVpbGRMaXN0KTsKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWRQcm90b0J1
aWxkTGlzdFdpdGhSZXR1cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywg
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciog
cHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRC
eUlkUHJvdG9CdWlsZExpc3RXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVy
bkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElk
ZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKICNlbmRpZgogewogICAgIEpTVmFsdWUgYmFzZVZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKTsKQEAgLTMzNiwxMyArMzM2LDEzIEBAIEVu
Y29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdldEJ5SWRQcm90b0J1aWwKIH0KIAogI2lmIENQVShYODZf
NjQpCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemVXaXRoUmV0dXJuQWRk
cmVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIFJldHVybkFkZHJl
c3NQdHIpOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkT3B0
aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRp
ZmllciosIFJldHVybkFkZHJlc3NQdHIpOwogRlVOQ1RJT05fV1JBUFBFUl9XSVRIX0FSRzRfUkVU
VVJOX0FERFJFU1Mob3BlcmF0aW9uR2V0QnlJZE9wdGltaXplKTsKLUVuY29kZWRKU1ZhbHVlIG9w
ZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUs
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKICNlbGlmIENQVShYODYpCi1FbmNvZGVk
SlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSk7CitFbmNvZGVkSlNWYWx1ZSBE
RkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKTsKIEZVTkNUSU9OX1dS
QVBQRVJfV0lUSF9BUkc0X1JFVFVSTl9BRERSRVNTKG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSk7
Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkT3B0aW1pemVXaXRoUmV0dXJuQWRkcmVz
cyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplV2l0aFJldHVybkFk
ZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWMsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiAjZW5k
aWYKIHsKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFz
ZSk7CkBAIC0zNTgsNTUgKzM1OCw1NSBAQCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlk
T3B0aW1pemVXCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi12b2lk
IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsU3Ry
aWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZT4oZXhlYywgZW5jb2RlZEJhc2UsIGVu
Y29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAotdm9pZCBvcGVyYXRpb25QdXRCeVZh
bE5vblN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbE5vblN0cmljdChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBvcGVyYXRp
b25QdXRCeVZhbEludGVybmFsPGZhbHNlPihleGVjLCBlbmNvZGVkQmFzZSwgZW5jb2RlZFByb3Bl
cnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCi12b2lkIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJy
YXlCb3VuZHMoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBhcnJheSwgaW50MzJfdCBpbmRleCwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHMoRXhlY1N0YXRlKiBleGVjLCBKU0FycmF5KiBhcnJh
eSwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIC8v
IFdlIHNob3VsZCBvbmx5IGdldCBoZXJlIGlmIGluZGV4IGlzIG91dHNpZGUgdGhlIGV4aXN0aW5n
IHZlY3Rvci4KICAgICBBU1NFUlQoIWFycmF5LT5jYW5TZXRJbmRleChpbmRleCkpOwogICAgIGFy
cmF5LT5KU0FycmF5OjpwdXQoZXhlYywgaW5kZXgsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKIH0KIAotdm9pZCBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
SWRlbnRpZmllciogcHJvcGVydHlOYW1lKQordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiB7
CiAgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7CiAgICAgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRCYXNlKS5wdXQoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSksIHNsb3QpOwogfQogCi12b2lkIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCit2b2lkIERGR19PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIq
IHByb3BlcnR5TmFtZSkKIHsKICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChmYWxzZSk7CiAgICAg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRCYXNlKS5wdXQoZXhlYywgKnByb3BlcnR5TmFtZSwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOwogfQogCi12b2lkIG9wZXJhdGlvblB1
dEJ5SWREaXJlY3RTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5h
bWUpCit2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdChFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKIHsKICAgICBQdXRQcm9wZXJ0
eVNsb3Qgc2xvdCh0cnVlKTsKICAgICBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLnB1dERp
cmVjdChleGVjLCAqcHJvcGVydHlOYW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwg
c2xvdCk7CiB9CiAKLXZvaWQgb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKK3ZvaWQgREZHX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmll
ciogcHJvcGVydHlOYW1lKQogewogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGZhbHNlKTsKICAg
ICBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2UpLnB1dERpcmVjdChleGVjLCAqcHJvcGVydHlO
YW1lLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSwgc2xvdCk7CiB9CiAKICNpZiBDUFUo
WDg2XzY0KQotdm9pZCBvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRk
cmVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZp
ZXIqLCBSZXR1cm5BZGRyZXNzUHRyKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRC
eUlkU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBSZXR1cm5BZGRyZXNzUHRyKTsKIEZV
TkNUSU9OX1dSQVBQRVJfV0lUSF9BUkc1X1JFVFVSTl9BRERSRVNTKG9wZXJhdGlvblB1dEJ5SWRT
dHJpY3RPcHRpbWl6ZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZVdpdGhS
ZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBS
ZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uUHV0QnlJZFN0cmljdE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVz
cykKICNlbGlmIENQVShYODYpCi12b2lkIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZVdp
dGhSZXR1cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRl
KiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpOwordm9pZCBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJldHVybkFkZHJl
c3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0
eU5hbWUpOwogRlVOQ1RJT05fV1JBUFBFUl9XSVRIX0FSRzVfUkVUVVJOX0FERFJFU1Mob3BlcmF0
aW9uUHV0QnlJZFN0cmljdE9wdGltaXplKTsKLXZvaWQgb3BlcmF0aW9uUHV0QnlJZFN0cmljdE9w
dGltaXplV2l0aFJldHVybkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKK3ZvaWQgREZHX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhSZXR1
cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciog
cHJvcGVydHlOYW1lKQogI2VuZGlmCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwpAQCAtNDIzLDEzICs0MjMsMTMgQEAgdm9pZCBvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0T3B0aW1pemVXaXRoUgogfQogCiAjaWYgQ1BVKFg4Nl82NCkKLXZvaWQgb3Bl
cmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0dXJuQWRk
cmVzc1B0cik7Cit2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9w
dGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlLCBJZGVudGlmaWVyKiwgUmV0dXJuQWRkcmVzc1B0cik7CiBGVU5DVElPTl9XUkFQ
UEVSX1dJVEhfQVJHNV9SRVRVUk5fQUREUkVTUyhvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0
aW1pemUpOwotdm9pZCBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJu
QWRkcmVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5SWROb25TdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
SWRlbnRpZmllciogcHJvcGVydHlOYW1lLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Mp
CiAjZWxpZiBDUFUoWDg2KQotdm9pZCBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemVX
aXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKTsKK3ZvaWQgREZHX09QRVJBVElPTiBv
cGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5B
ZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciogcHJv
cGVydHlOYW1lKTsKIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9BUkc1X1JFVFVSTl9BRERSRVNTKG9w
ZXJhdGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5SWRO
b25TdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJu
QWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCit2b2lk
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplV2l0aFJldHVy
bkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKICNlbmRpZgogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKQEAgLTQ0NiwxMyArNDQ2LDEzIEBAIHZv
aWQgb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdE9wdGltaXplV2kKIH0KIAogI2lmIENQVShYODZf
NjQpCi12b2lkIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5B
ZGRyZXNzKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRp
ZmllciosIFJldHVybkFkZHJlc3NQdHIpOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgSWRlbnRpZmllciosIFJldHVybkFkZHJlc3NQ
dHIpOwogRlVOQ1RJT05fV1JBUFBFUl9XSVRIX0FSRzVfUkVUVVJOX0FERFJFU1Mob3BlcmF0aW9u
UHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplKTsKLXZvaWQgb3BlcmF0aW9uUHV0QnlJZERpcmVj
dFN0cmljdE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlm
aWVyKiBwcm9wZXJ0eU5hbWUsIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKK3ZvaWQg
REZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemVXaXRoUmV0
dXJuQWRkcmVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSwgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogI2VsaWYgQ1BVKFg4NikKLXZvaWQgb3BlcmF0
aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoUmV0dXJuQWRk
cmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3Bl
cnR5TmFtZSk7Cit2b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmlj
dE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
LCBFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSk7CiBGVU5DVElPTl9X
UkFQUEVSX1dJVEhfQVJHNV9SRVRVUk5fQUREUkVTUyhvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3Ry
aWN0T3B0aW1pemUpOwotdm9pZCBvcGVyYXRpb25QdXRCeUlkRGlyZWN0U3RyaWN0T3B0aW1pemVX
aXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQordm9pZCBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBw
cm9wZXJ0eU5hbWUpCiAjZW5kaWYKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7CkBAIC00NjksMTMgKzQ2OSwxMyBAQCB2b2lkIG9wZXJhdGlvblB1
dEJ5SWREaXJlY3RTdHJpY3RPcHRpbWl6CiB9CiAKICNpZiBDUFUoWDg2XzY0KQotdm9pZCBvcGVy
YXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBSZXR1
cm5BZGRyZXNzUHRyKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0
Tm9uU3RyaWN0T3B0aW1pemVXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqLCBSZXR1cm5BZGRyZXNzUHRyKTsKIEZV
TkNUSU9OX1dSQVBQRVJfV0lUSF9BUkc1X1JFVFVSTl9BRERSRVNTKG9wZXJhdGlvblB1dEJ5SWRE
aXJlY3ROb25TdHJpY3RPcHRpbWl6ZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25T
dHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmll
ciogcHJvcGVydHlOYW1lLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit2b2lkIERG
R19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplV2l0aFJl
dHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUsIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKICNlbGlmIENQVShYODYpCi12b2lkIG9wZXJh
dGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJldHVy
bkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBw
cm9wZXJ0eU5hbWUpOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3RO
b25TdHJpY3RPcHRpbWl6ZVdpdGhSZXR1cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJu
QWRkcmVzcywgRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpOwogRlVO
Q1RJT05fV1JBUFBFUl9XSVRIX0FSRzVfUkVUVVJOX0FERFJFU1Mob3BlcmF0aW9uUHV0QnlJZERp
cmVjdE5vblN0cmljdE9wdGltaXplKTsKLXZvaWQgb3BlcmF0aW9uUHV0QnlJZERpcmVjdE5vblN0
cmljdE9wdGltaXplV2l0aFJldHVybkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRy
ZXNzLCBFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqIHByb3BlcnR5TmFtZSkKK3ZvaWQgREZH
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemVXaXRoUmV0
dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQogI2VuZGlmCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwpAQCAtNDkxLDMyICs0OTEsMzIgQEAg
dm9pZCBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aQogICAgICAgICBzdHViSW5m
by5zZWVuID0gdHJ1ZTsKIH0KIAotUmVnaXN0ZXJTaXplZEJvb2xlYW4gb3BlcmF0aW9uQ29tcGFy
ZUxlc3MoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQorUmVnaXN0ZXJTaXplZEJvb2xlYW4gREZHX09QRVJBVElPTiBv
cGVyYXRpb25Db21wYXJlTGVzcyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgcmV0dXJuIGpzTGVzczx0
cnVlPihleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkT3AyKSk7CiB9CiAKLVJlZ2lzdGVyU2l6ZWRCb29sZWFuIG9wZXJhdGlvbkNvbXBhcmVM
ZXNzRXEoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AyKQorUmVnaXN0ZXJTaXplZEJvb2xlYW4gREZHX09QRVJBVElPTiBv
cGVyYXRpb25Db21wYXJlTGVzc0VxKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICByZXR1cm4ganNMZXNz
RXE8dHJ1ZT4oZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMikpOwogfQogCi1SZWdpc3RlclNpemVkQm9vbGVhbiBvcGVyYXRpb25Db21w
YXJlR3JlYXRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCitSZWdpc3RlclNpemVkQm9vbGVhbiBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICByZXR1cm4g
anNMZXNzPGZhbHNlPihleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMiksIEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkT3AxKSk7CiB9CiAKLVJlZ2lzdGVyU2l6ZWRCb29sZWFuIG9wZXJhdGlv
bkNvbXBhcmVHcmVhdGVyRXEoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorUmVnaXN0ZXJTaXplZEJvb2xlYW4gREZH
X09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAg
ICByZXR1cm4ganNMZXNzRXE8ZmFsc2U+KGV4ZWMsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3Ay
KSwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpKTsKIH0KIAotUmVnaXN0ZXJTaXplZEJvb2xl
YW4gb3BlcmF0aW9uQ29tcGFyZUVxKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK1JlZ2lzdGVyU2l6ZWRCb29sZWFu
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUVxKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZXF1YWxTbG93Q2FzZUlubGluZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZE9wMSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSk7CiB9CiAKLVJlZ2lzdGVy
U2l6ZWRCb29sZWFuIG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQor
UmVnaXN0ZXJTaXplZEJvb2xlYW4gREZHX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaWN0
RXFDZWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikKIHsKICAgICBKU1ZhbHVlIG9wMSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkT3AxKTsKICAgICBKU1ZhbHVlIG9wMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
T3AyKTsKQEAgLTUyNyw3ICs1MjcsNyBAQCBSZWdpc3RlclNpemVkQm9vbGVhbiBvcGVyYXRpb25D
b21wYXJlU3RyCiAgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVxdWFsU2xvd0Nhc2VJbmxpbmUo
ZXhlYywgb3AxLCBvcDIpOwogfQogCi1SZWdpc3RlclNpemVkQm9vbGVhbiBvcGVyYXRpb25Db21w
YXJlU3RyaWN0RXEoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQorUmVnaXN0ZXJTaXplZEJvb2xlYW4gREZHX09QRVJB
VElPTiBvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjpzdHJpY3RFcXVhbChleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMSks
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSk7CiB9CkBAIC02NTMsMjYgKzY1MywyNiBAQCBp
bmxpbmUgdm9pZCogbGlua0ZvcihFeGVjU3RhdGUqIGV4ZWNDYWxsCiB9CiAKICNpZiBDUFUoWDg2
XzY0KQotdm9pZCogb3BlcmF0aW9uTGlua0NhbGxXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUq
LCBSZXR1cm5BZGRyZXNzUHRyKTsKK3ZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uTGlua0Nh
bGxXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqLCBSZXR1cm5BZGRyZXNzUHRyKTsKIEZVTkNU
SU9OX1dSQVBQRVJfV0lUSF9BUkcyX1JFVFVSTl9BRERSRVNTKG9wZXJhdGlvbkxpbmtDYWxsKTsK
LXZvaWQqIG9wZXJhdGlvbkxpbmtDYWxsV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVj
Q2FsbGVlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit2b2lkKiBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvbkxpbmtDYWxsV2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiAjZWxpZiBDUFUoWDg2KQotdm9p
ZCogb3BlcmF0aW9uTGlua0NhbGxXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MsIEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSk7Cit2b2lkKiBERkdfT1BFUkFUSU9O
IG9wZXJhdGlvbkxpbmtDYWxsV2l0aFJldHVybkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1
cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpOwogRlVOQ1RJT05fV1JBUFBFUl9XSVRI
X0FSRzJfUkVUVVJOX0FERFJFU1Mob3BlcmF0aW9uTGlua0NhbGwpOwotdm9pZCogb3BlcmF0aW9u
TGlua0NhbGxXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Ms
IEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSkKK3ZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uTGlu
a0NhbGxXaXRoUmV0dXJuQWRkcmVzcyhSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEV4
ZWNTdGF0ZSogZXhlY0NhbGxlZSkKICNlbmRpZgogewogICAgIHJldHVybiBsaW5rRm9yKGV4ZWND
YWxsZWUsIHJldHVybkFkZHJlc3MsIENvZGVGb3JDYWxsKTsKIH0KIAogI2lmIENQVShYODZfNjQp
Ci12b2lkKiBvcGVyYXRpb25MaW5rQ29uc3RydWN0V2l0aFJldHVybkFkZHJlc3MoRXhlY1N0YXRl
KiwgUmV0dXJuQWRkcmVzc1B0cik7Cit2b2lkKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtD
b25zdHJ1Y3RXaXRoUmV0dXJuQWRkcmVzcyhFeGVjU3RhdGUqLCBSZXR1cm5BZGRyZXNzUHRyKTsK
IEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9BUkcyX1JFVFVSTl9BRERSRVNTKG9wZXJhdGlvbkxpbmtD
b25zdHJ1Y3QpOwotdm9pZCogb3BlcmF0aW9uTGlua0NvbnN0cnVjdFdpdGhSZXR1cm5BZGRyZXNz
KEV4ZWNTdGF0ZSogZXhlY0NhbGxlZSwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQor
dm9pZCogREZHX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0V2l0aFJldHVybkFkZHJl
c3MoRXhlY1N0YXRlKiBleGVjQ2FsbGVlLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3Mp
CiAjZWxpZiBDUFUoWDg2KQotdm9pZCogb3BlcmF0aW9uTGlua0NvbnN0cnVjdFdpdGhSZXR1cm5B
ZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVjQ2Fs
bGVlKTsKK3ZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uTGlua0NvbnN0cnVjdFdpdGhSZXR1
cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVj
Q2FsbGVlKTsKIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9BUkcyX1JFVFVSTl9BRERSRVNTKG9wZXJh
dGlvbkxpbmtDb25zdHJ1Y3QpOwotdm9pZCogb3BlcmF0aW9uTGlua0NvbnN0cnVjdFdpdGhSZXR1
cm5BZGRyZXNzKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgRXhlY1N0YXRlKiBleGVj
Q2FsbGVlKQordm9pZCogREZHX09QRVJBVElPTiBvcGVyYXRpb25MaW5rQ29uc3RydWN0V2l0aFJl
dHVybkFkZHJlc3MoUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBFeGVjU3RhdGUqIGV4
ZWNDYWxsZWUpCiAjZW5kaWYKIHsKICAgICByZXR1cm4gbGlua0ZvcihleGVjQ2FsbGVlLCByZXR1
cm5BZGRyZXNzLCBDb2RlRm9yQ29uc3RydWN0KTsKQEAgLTcwMCwxNyArNzAwLDE3IEBAIGlubGlu
ZSB2b2lkKiB2aXJ0dWFsRm9yKEV4ZWNTdGF0ZSogZXhlY0MKICAgICByZXR1cm4gZXhlY3V0YWJs
ZS0+Z2VuZXJhdGVkSklUQ29kZVdpdGhBcml0eUNoZWNrRm9yKGtpbmQpLmV4ZWN1dGFibGVBZGRy
ZXNzKCk7CiB9CiAKLXZvaWQqIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSogZXhlY0Nh
bGxlZSkKK3ZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRl
KiBleGVjQ2FsbGVlKQogewogICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWNDYWxsZWUsIENvZGVG
b3JDYWxsKTsKIH0KIAotdm9pZCogb3BlcmF0aW9uVmlydHVhbENvbnN0cnVjdChFeGVjU3RhdGUq
IGV4ZWNDYWxsZWUpCit2b2lkKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1YWxDb25zdHJ1
Y3QoRXhlY1N0YXRlKiBleGVjQ2FsbGVlKQogewogICAgIHJldHVybiB2aXJ0dWFsRm9yKGV4ZWND
YWxsZWUsIENvZGVGb3JDb25zdHJ1Y3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25J
bnN0YW5jZU9mKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3RvdHlw
ZSkKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZihFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm90b3R5cGUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwogICAgIEpTVmFsdWUg
YmFzZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CkBAIC03MzYsNyArNzM2LDcgQEAg
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uSW5zdGFuY2VPZihFeGVjUwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKGFzT2JqZWN0KGJhc2UpLT5oYXNJbnN0YW5jZShleGVjLCB2
YWx1ZSwgcHJvdG90eXBlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZl
KEV4ZWNTdGF0ZSogZXhlYywgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlKEV4ZWNTdGF0ZSogZXhlYywgSWRlbnRp
ZmllciogcHJvcGVydHlOYW1lKQogewogICAgIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluID0g
ZXhlYy0+c2NvcGVDaGFpbigpOwogICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBpdGVyID0gc2NvcGVD
aGFpbi0+YmVnaW4oKTsKQEAgLTc1MywxMiArNzUzLDEyIEBAIEVuY29kZWRKU1ZhbHVlIG9wZXJh
dGlvblJlc29sdmUoRXhlY1N0YXQKICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0
ZVVuZGVmaW5lZFZhcmlhYmxlRXJyb3IoZXhlYywgKnByb3BlcnR5TmFtZSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZlQmFzZShFeGVjU3RhdGUqIGV4ZWMsIElkZW50aWZp
ZXIqIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
UmVzb2x2ZUJhc2UoRXhlY1N0YXRlKiBleGVjLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXNvbHZlQmFzZShleGVjLCAqcHJvcGVydHlO
YW1lLCBleGVjLT5zY29wZUNoYWluKCksIGZhbHNlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9w
ZXJhdGlvblJlc29sdmVCYXNlU3RyaWN0UHV0KEV4ZWNTdGF0ZSogZXhlYywgSWRlbnRpZmllciog
cHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNv
bHZlQmFzZVN0cmljdFB1dChFeGVjU3RhdGUqIGV4ZWMsIElkZW50aWZpZXIqIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBKU1ZhbHVlIGJhc2UgPSByZXNvbHZlQmFzZShleGVjLCAqcHJvcGVydHlOYW1l
LCBleGVjLT5zY29wZUNoYWluKCksIHRydWUpOwogICAgIGlmICghYmFzZSkKQEAgLTc2Niw3ICs3
NjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShiYXNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9u
UmVzb2x2ZUdsb2JhbChFeGVjU3RhdGUqIGV4ZWMsIEdsb2JhbFJlc29sdmVJbmZvKiByZXNvbHZl
SW5mbywgSWRlbnRpZmllciogcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25SZXNvbHZlR2xvYmFsKEV4ZWNTdGF0ZSogZXhlYywgR2xvYmFsUmVzb2x2
ZUluZm8qIHJlc29sdmVJbmZvLCBJZGVudGlmaWVyKiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsK
IApAQCAtNzg1LDI5ICs3ODUsMjkgQEAgRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uUmVzb2x2ZUds
b2JhbChFeAogICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlVW5kZWZpbmVkVmFy
aWFibGVFcnJvcihleGVjLCAqcHJvcGVydHlOYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9w
ZXJhdGlvblRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUp
CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblRvUHJpbWl0aXZlKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLnRvUHJpbWl0aXZlKGV4ZWMpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uU3RyQ2F0KEV4ZWNTdGF0ZSogZXhlYywgdm9pZCogc3Rh
cnQsIHNpemVfdCBzaXplKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25T
dHJDYXQoRXhlY1N0YXRlKiBleGVjLCB2b2lkKiBzdGFydCwgc2l6ZV90IHNpemUpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhleGVjLCBzdGF0aWNfY2FzdDxSZWdpc3Rl
cio+KHN0YXJ0KSwgc2l6ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdBcnJh
eShFeGVjU3RhdGUqIGV4ZWMsIHZvaWQqIHN0YXJ0LCBzaXplX3Qgc2l6ZSkKK0VuY29kZWRKU1Zh
bHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uTmV3QXJyYXkoRXhlY1N0YXRlKiBleGVjLCB2b2lk
KiBzdGFydCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQXJnTGlzdCBhcmdMaXN0KHN0YXRpY19jYXN0
PFJlZ2lzdGVyKj4oc3RhcnQpLCBzaXplKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdEFycmF5KGV4ZWMsIGFyZ0xpc3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgb3BlcmF0
aW9uTmV3QXJyYXlCdWZmZXIoRXhlY1N0YXRlKiBleGVjLCBzaXplX3Qgc3RhcnQsIHNpemVfdCBz
aXplKQorRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheUJ1ZmZl
cihFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBzdGFydCwgc2l6ZV90IHNpemUpCiB7CiAgICAgQXJn
TGlzdCBhcmdMaXN0KGV4ZWMtPmNvZGVCbG9jaygpLT5jb25zdGFudEJ1ZmZlcihzdGFydCksIHNp
emUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0QXJyYXkoZXhlYywgYXJn
TGlzdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0YXRl
KiBleGVjLCB2b2lkKiByZWdleHBQdHIpCitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvbk5ld1JlZ2V4cChFeGVjU3RhdGUqIGV4ZWMsIHZvaWQqIHJlZ2V4cFB0cikKIHsKICAg
ICBSZWdFeHAqIHJlZ2V4cCA9IHN0YXRpY19jYXN0PFJlZ0V4cCo+KHJlZ2V4cFB0cik7CiAgICAg
aWYgKCFyZWdleHAtPmlzVmFsaWQoKSkgewpAQCAtODE4LDcgKzgxOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIG9wZXJhdGlvbk5ld1JlZ2V4cChFeGVjU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KFJlZ0V4cE9iamVjdDo6Y3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cFN0cnVjdHVy
ZSgpLCByZWdleHApKTsKIH0KIAotdm9pZCBvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNlRXJyb3Io
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSkKK3ZvaWQgREZHX09Q
RVJBVElPTiBvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNlRXJyb3IoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSkKIHsKICAgICBKU1ZhbHVlIGJhc2UgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZEJhc2UpOwogCkBAIC04MjgsNyArODI4LDcgQEAgdm9pZCBvcGVyYXRp
b25UaHJvd0hhc0luc3RhbmNlRXJyb3IoRXhlYwogICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRl
SW52YWxpZFBhcmFtRXJyb3IoZXhlYywgImluc3RhbmNlb2YiLCBiYXNlKSk7CiB9CiAKLURGR0hh
bmRsZXIgbG9va3VwRXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMsIFJldHVybkFkZHJl
c3NQdHIgZmF1bHRMb2NhdGlvbikKK0RGR0hhbmRsZXIgREZHX09QRVJBVElPTiBsb29rdXBFeGNl
cHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSogZXhlYywgUmV0dXJuQWRkcmVzc1B0ciBmYXVsdExvY2F0
aW9uKQogewogICAgIEpTVmFsdWUgZXhjZXB0aW9uVmFsdWUgPSBleGVjLT5leGNlcHRpb24oKTsK
ICAgICBBU1NFUlQoZXhjZXB0aW9uVmFsdWUpOwpAQCAtODQxLDIzICs4NDEsMjMgQEAgREZHSGFu
ZGxlciBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdAogICAgIHJldHVybiBERkdIYW5kbGVy
KGV4ZWMsIGNhdGNoUm91dGluZSk7CiB9CiAKLWRvdWJsZSBkZmdDb252ZXJ0SlNWYWx1ZVRvTnVt
YmVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitkb3VibGUgREZHX09Q
RVJBVElPTiBkZmdDb252ZXJ0SlNWYWx1ZVRvTnVtYmVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9O
dW1iZXIoZXhlYyk7CiB9CiAKLWludDMyX3QgZGZnQ29udmVydEpTVmFsdWVUb0ludDMyKEV4ZWNT
dGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitpbnQzMl90IERGR19PUEVSQVRJT04g
ZGZnQ29udmVydEpTVmFsdWVUb0ludDMyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9JbnQzMihleGVj
KTsKIH0KIAotUmVnaXN0ZXJTaXplZEJvb2xlYW4gZGZnQ29udmVydEpTVmFsdWVUb0Jvb2xlYW4o
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3ApCitSZWdpc3RlclNpemVk
Qm9vbGVhbiBERkdfT1BFUkFUSU9OIGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZE9wKS50b0Jvb2xlYW4oZXhlYyk7CiB9CiAKICNpZiBFTkFCTEUoREZH
X1ZFUkJPU0VfU1BFQ1VMQVRJT05fRkFJTFVSRSkKLXZvaWQgZGVidWdPcGVyYXRpb25QcmludFNw
ZWN1bGF0aW9uRmFpbHVyZShFeGVjU3RhdGUqLCB2b2lkKiBkZWJ1Z0luZm9SYXcpCit2b2lkIERG
R19PUEVSQVRJT04gZGVidWdPcGVyYXRpb25QcmludFNwZWN1bGF0aW9uRmFpbHVyZShFeGVjU3Rh
dGUqLCB2b2lkKiBkZWJ1Z0luZm9SYXcpCiB7CiAgICAgU3BlY3VsYXRpb25GYWlsdXJlRGVidWdJ
bmZvKiBkZWJ1Z0luZm8gPSBzdGF0aWNfY2FzdDxTcGVjdWxhdGlvbkZhaWx1cmVEZWJ1Z0luZm8q
PihkZWJ1Z0luZm9SYXcpOwogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gZGVidWdJbmZvLT5j
b2RlQmxvY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMu
aAkocmV2aXNpb24gOTYyODApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNzQgKzQyLDgyIEBAIHR5cGVkZWYgaW50cHRy
X3QgUmVnaXN0ZXJTaXplZEJvb2xlYW47CiAKIGV4dGVybiAiQyIgewogCisjaWYgQ1BVKFg4Nikg
JiYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBERkdfT1BFUkFUSU9OIF9fYXR0cmlidXRlX18gKChz
dGRjYWxsKSkKKyNlbmRpZgorCisjaWZuZGVmIERGR19PUEVSQVRJT04KKyNkZWZpbmUgREZHX09Q
RVJBVElPTgorI2VuZGlmCisKIC8vIFRoZXNlIHR5cGVkZWZzIHByb3ZpZGUgdHlwZWNoZWNraW5n
IHdoZW4gZ2VuZXJhdGluZyBjYWxscyBvdXQgdG8gaGVscGVyIHJvdXRpbmVzOwogLy8gdGhpcyBo
ZWxwcyBwcmV2ZW50IGNhbGxpbmcgYSBoZWxwZXIgcm91dGluZSB3aXRoIHRoZSB3cm9uZyBhcmd1
bWVudHMhCi10eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqSl9ERkdPcGVyYXRpb25fRUpKKShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiBFbmNvZGVk
SlNWYWx1ZSAoKkpfREZHT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSk7
Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqSl9ERkdPcGVyYXRpb25fRUpQKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgdm9pZCopOwotdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkpfREZH
T3BlcmF0aW9uX0VKSSkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIqKTsK
LXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpKX0RGR09wZXJhdGlvbl9FUCkoRXhlY1N0YXRlKiwg
dm9pZCopOwotdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkpfREZHT3BlcmF0aW9uX0VQUykoRXhl
Y1N0YXRlKiwgdm9pZCosIHNpemVfdCk7Ci10eXBlZGVmIEVuY29kZWRKU1ZhbHVlICgqSl9ERkdP
cGVyYXRpb25fRVNTKShFeGVjU3RhdGUqLCBzaXplX3QsIHNpemVfdCk7Ci10eXBlZGVmIEVuY29k
ZWRKU1ZhbHVlICgqSl9ERkdPcGVyYXRpb25fRUkpKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqKTsK
LXR5cGVkZWYgUmVnaXN0ZXJTaXplZEJvb2xlYW4gKCpaX0RGR09wZXJhdGlvbl9FSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiBSZWdpc3RlclNpemVkQm9vbGVhbiAoKlpf
REZHT3BlcmF0aW9uX0VKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlKTsKLXR5cGVkZWYgdm9pZCAoKlZfREZHT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwotdHlwZWRlZiB2
b2lkICgqVl9ERkdPcGVyYXRpb25fRUpKUCkoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCB2b2lkKik7Ci10eXBlZGVmIHZvaWQgKCpWX0RGR09wZXJhdGlvbl9FSkpJ
KShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIElkZW50aWZpZXIq
KTsKLXR5cGVkZWYgZG91YmxlICgqRF9ERkdPcGVyYXRpb25fREQpKGRvdWJsZSwgZG91YmxlKTsK
LXR5cGVkZWYgdm9pZCAqKCpQX0RGR09wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKK3R5cGVkZWYg
RW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiAoKkpfREZHT3BlcmF0aW9uX0VKSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3R5cGVkZWYgRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiAoKkpfREZHT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gKCpKX0RG
R09wZXJhdGlvbl9FSlApKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCB2b2lkKik7Cit0eXBl
ZGVmIEVuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gKCpKX0RGR09wZXJhdGlvbl9FSkkpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKik7Cit0eXBlZGVmIEVuY29kZWRK
U1ZhbHVlIERGR19PUEVSQVRJT04gKCpKX0RGR09wZXJhdGlvbl9FUCkoRXhlY1N0YXRlKiwgdm9p
ZCopOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OICgqSl9ERkdPcGVyYXRp
b25fRVBTKShFeGVjU3RhdGUqLCB2b2lkKiwgc2l6ZV90KTsKK3R5cGVkZWYgRW5jb2RlZEpTVmFs
dWUgREZHX09QRVJBVElPTiAoKkpfREZHT3BlcmF0aW9uX0VTUykoRXhlY1N0YXRlKiwgc2l6ZV90
LCBzaXplX3QpOwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OICgqSl9ERkdP
cGVyYXRpb25fRUkpKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqKTsKK3R5cGVkZWYgUmVnaXN0ZXJT
aXplZEJvb2xlYW4gREZHX09QRVJBVElPTiAoKlpfREZHT3BlcmF0aW9uX0VKKShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIFJlZ2lzdGVyU2l6ZWRCb29sZWFuIERGR19PUEVS
QVRJT04gKCpaX0RGR09wZXJhdGlvbl9FSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSk7Cit0eXBlZGVmIHZvaWQgREZHX09QRVJBVElPTiAoKlZfREZHT3BlcmF0
aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUpOwordHlwZWRlZiB2b2lkIERGR19PUEVSQVRJT04gKCpWX0RGR09wZXJhdGlv
bl9FSkpQKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIHZvaWQq
KTsKK3R5cGVkZWYgdm9pZCBERkdfT1BFUkFUSU9OICgqVl9ERkdPcGVyYXRpb25fRUpKSSkoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBJZGVudGlmaWVyKik7Cit0
eXBlZGVmIGRvdWJsZSAoKkRfREZHT3BlcmF0aW9uX0REKShkb3VibGUsIGRvdWJsZSk7IC8vIFVz
aW5nIGRlZmF1bHQgY2FsbGluZyBjb252ZW50aW9ucyEKK3R5cGVkZWYgdm9pZCogREZHX09QRVJB
VElPTiAoKlBfREZHT3BlcmF0aW9uX0UpKEV4ZWNTdGF0ZSopOwogCiAvLyBUaGVzZSByb3V0aW5l
cyBhcmUgcHJvdmlkZSBjYWxsYmFja3Mgb3V0IHRvIEMrKyBpbXBsZW1lbnRhdGlvbnMgb2Ygb3Bl
cmF0aW9ucyB0b28gY29tcGxleCB0byBKSVQuCi1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25Db252
ZXJ0VGhpcyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxKTsKLUVuY29kZWRK
U1ZhbHVlIG9wZXJhdGlvbkNyZWF0ZVRoaXMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMSk7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdPYmplY3QoRXhlY1N0YXRlKik7
Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25WYWx1ZUFkZChFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKLUVuY29kZWRKU1Zh
bHVlIG9wZXJhdGlvblZhbHVlQWRkTm90TnVtYmVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpOwotRW5jb2RlZEpTVmFsdWUg
b3BlcmF0aW9uQXJpdGhBZGQoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZE9wMik7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25Bcml0aFN1YihFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKLUVuY29kZWRK
U1ZhbHVlIG9wZXJhdGlvbkFyaXRoTXVsKEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpOwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uQXJpdGhEaXYo
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7Ci1F
bmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25Bcml0aE1vZChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdl
dEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHkpOwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlJZChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwotRW5j
b2RlZEpTVmFsdWUgb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0
aW9uR2V0QnlJZFByb3RvQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRCYXNlLCBJZGVudGlmaWVyKik7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25HZXRCeUlkT3B0
aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIq
KTsKLUVuY29kZWRKU1ZhbHVlIG9wZXJhdGlvbkdldE1ldGhvZE9wdGltaXplKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKik7Ci1FbmNvZGVkSlNWYWx1
ZSBvcGVyYXRpb25JbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBwcm90b3R5cGUpOwotRW5jb2RlZEpT
VmFsdWUgb3BlcmF0aW9uUmVzb2x2ZShFeGVjU3RhdGUqLCBJZGVudGlmaWVyKik7Ci1FbmNvZGVk
SlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZlQmFzZShFeGVjU3RhdGUqLCBJZGVudGlmaWVyKik7Ci1F
bmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljdFB1dChFeGVjU3RhdGUqLCBJ
ZGVudGlmaWVyKik7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25SZXNvbHZlR2xvYmFsKEV4ZWNT
dGF0ZSosIEdsb2JhbFJlc29sdmVJbmZvKiwgSWRlbnRpZmllciopOwotRW5jb2RlZEpTVmFsdWUg
b3BlcmF0aW9uVG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwotRW5jb2Rl
ZEpTVmFsdWUgb3BlcmF0aW9uU3RyQ2F0KEV4ZWNTdGF0ZSosIHZvaWQqIHN0YXJ0LCBzaXplX3Qp
OwotRW5jb2RlZEpTVmFsdWUgb3BlcmF0aW9uTmV3QXJyYXkoRXhlY1N0YXRlKiwgdm9pZCogc3Rh
cnQsIHNpemVfdCk7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdBcnJheUJ1ZmZlcihFeGVj
U3RhdGUqLCBzaXplX3QsIHNpemVfdCk7Ci1FbmNvZGVkSlNWYWx1ZSBvcGVyYXRpb25OZXdSZWdl
eHAoRXhlY1N0YXRlKiwgdm9pZCopOwotdm9pZCBvcGVyYXRpb25UaHJvd0hhc0luc3RhbmNlRXJy
b3IoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgYmFzZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5
VmFsU3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSk7Ci12
b2lkIG9wZXJhdGlvblB1dEJ5VmFsTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3Vu
ZHMoRXhlY1N0YXRlKiwgSlNBcnJheSosIGludDMyX3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSk7Ci12b2lkIG9wZXJhdGlvblB1dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRl
bnRpZmllciopOwotdm9pZCBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElk
ZW50aWZpZXIqKTsKLXZvaWQgb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBJZGVudGlmaWVyKik7Ci12b2lkIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3QoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkQmFzZSwgSWRlbnRpZmllciopOwotdm9pZCBvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0aW1p
emUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwotdm9pZCBvcGVyYXRpb25QdXRCeUlkTm9uU3Ry
aWN0T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwotdm9pZCBvcGVyYXRpb25QdXRC
eUlkRGlyZWN0U3RyaWN0T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwotdm9pZCBv
cGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRp
ZmllciopOwotUmVnaXN0ZXJTaXplZEJvb2xlYW4gb3BlcmF0aW9uQ29tcGFyZUxlc3MoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
Mik7Ci1SZWdpc3RlclNpemVkQm9vbGVhbiBvcGVyYXRpb25Db21wYXJlTGVzc0VxKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
OwotUmVnaXN0ZXJTaXplZEJvb2xlYW4gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7
Ci1SZWdpc3RlclNpemVkQm9vbGVhbiBvcGVyYXRpb25Db21wYXJlR3JlYXRlckVxKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
OwotUmVnaXN0ZXJTaXplZEJvb2xlYW4gb3BlcmF0aW9uQ29tcGFyZUVxKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpOwotUmVn
aXN0ZXJTaXplZEJvb2xlYW4gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsK
LVJlZ2lzdGVyU2l6ZWRCb29sZWFuIG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsK
LXZvaWQqIG9wZXJhdGlvblZpcnR1YWxDYWxsKEV4ZWNTdGF0ZSopOwotdm9pZCogb3BlcmF0aW9u
TGlua0NhbGwoRXhlY1N0YXRlKik7Ci12b2lkKiBvcGVyYXRpb25WaXJ0dWFsQ29uc3RydWN0KEV4
ZWNTdGF0ZSopOwotdm9pZCogb3BlcmF0aW9uTGlua0NvbnN0cnVjdChFeGVjU3RhdGUqKTsKK0Vu
Y29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydFRoaXMoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSk7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFU
SU9OIG9wZXJhdGlvbkNyZWF0ZVRoaXMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZE9wMSk7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdChF
eGVjU3RhdGUqKTsKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uVmFsdWVB
ZGQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZE9wMik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblZhbHVl
QWRkTm90TnVtYmVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRPcDIpOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVy
YXRpb25Bcml0aEFkZChFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkT3AyKTsKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQXJpdGhT
dWIoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7
CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkFyaXRoTXVsKEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpOworRW5jb2RlZEpT
VmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25Bcml0aERpdihFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKK0VuY29kZWRKU1ZhbHVlIERGR19P
UEVSQVRJT04gb3BlcmF0aW9uQXJpdGhNb2QoRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9w
ZXJhdGlvbkdldEJ5VmFsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHkpOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJB
VElPTiBvcGVyYXRpb25HZXRCeUlkKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlv
bkdldEJ5SWRCdWlsZExpc3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IElkZW50aWZpZXIqKTsKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVSQVRJT04gb3BlcmF0aW9uR2V0
QnlJZFByb3RvQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkdl
dEJ5SWRPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRl
bnRpZmllciopOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25HZXRNZXRo
b2RPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRp
ZmllciopOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9m
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBiYXNlLCBF
bmNvZGVkSlNWYWx1ZSBwcm90b3R5cGUpOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBv
cGVyYXRpb25SZXNvbHZlKEV4ZWNTdGF0ZSosIElkZW50aWZpZXIqKTsKK0VuY29kZWRKU1ZhbHVl
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uUmVzb2x2ZUJhc2UoRXhlY1N0YXRlKiwgSWRlbnRpZmll
ciopOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25SZXNvbHZlQmFzZVN0
cmljdFB1dChFeGVjU3RhdGUqLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BF
UkFUSU9OIG9wZXJhdGlvblJlc29sdmVHbG9iYWwoRXhlY1N0YXRlKiwgR2xvYmFsUmVzb2x2ZUlu
Zm8qLCBJZGVudGlmaWVyKik7CitFbmNvZGVkSlNWYWx1ZSBERkdfT1BFUkFUSU9OIG9wZXJhdGlv
blRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKK0VuY29kZWRKU1ZhbHVl
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uU3RyQ2F0KEV4ZWNTdGF0ZSosIHZvaWQqIHN0YXJ0LCBz
aXplX3QpOworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25OZXdBcnJheShF
eGVjU3RhdGUqLCB2b2lkKiBzdGFydCwgc2l6ZV90KTsKK0VuY29kZWRKU1ZhbHVlIERGR19PUEVS
QVRJT04gb3BlcmF0aW9uTmV3QXJyYXlCdWZmZXIoRXhlY1N0YXRlKiwgc2l6ZV90LCBzaXplX3Qp
OworRW5jb2RlZEpTVmFsdWUgREZHX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0
YXRlKiwgdm9pZCopOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93SGFzSW5zdGFu
Y2VFcnJvcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBiYXNlKTsKK3ZvaWQgREZHX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeVZhbFN0cmljdChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsTm9u
U3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSk7Cit2b2lk
IERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kcyhFeGVjU3Rh
dGUqLCBKU0FycmF5KiwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IElkZW50aWZpZXIqKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3Ry
aWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElkZW50aWZpZXIqKTsKK3ZvaWQgREZH
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIElk
ZW50aWZpZXIqKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0T3B0
aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOwordm9pZCBERkdfT1BFUkFUSU9OIG9wZXJh
dGlvblB1dEJ5SWROb25TdHJpY3RPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBJZGVudGlmaWVyKik7Cit2
b2lkIERGR19PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlJZERpcmVjdFN0cmljdE9wdGltaXplKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZEJhc2UsIElkZW50aWZpZXIqKTsKK3ZvaWQgREZHX09QRVJBVElPTiBvcGVyYXRpb25QdXRC
eUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgSWRlbnRpZmllciopOworUmVn
aXN0ZXJTaXplZEJvb2xlYW4gREZHX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlTGVzcyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
T3AyKTsKK1JlZ2lzdGVyU2l6ZWRCb29sZWFuIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFy
ZUxlc3NFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKTsKK1JlZ2lzdGVyU2l6ZWRCb29sZWFuIERGR19PUEVSQVRJT04gb3Bl
cmF0aW9uQ29tcGFyZUdyZWF0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9w
MSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7CitSZWdpc3RlclNpemVkQm9vbGVhbiBERkdf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7CitSZWdpc3RlclNp
emVkQm9vbGVhbiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVFcShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKK1Jl
Z2lzdGVyU2l6ZWRCb29sZWFuIERGR19PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVx
Q2VsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AyKTsKK1JlZ2lzdGVyU2l6ZWRCb29sZWFuIERGR19PUEVSQVRJT04gb3BlcmF0
aW9uQ29tcGFyZVN0cmljdEVxKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpOwordm9pZCogREZHX09QRVJBVElPTiBvcGVyYXRp
b25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKTsKK3ZvaWQqIERGR19PUEVSQVRJT04gb3BlcmF0aW9u
TGlua0NhbGwoRXhlY1N0YXRlKik7Cit2b2lkKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvblZpcnR1
YWxDb25zdHJ1Y3QoRXhlY1N0YXRlKik7Cit2b2lkKiBERkdfT1BFUkFUSU9OIG9wZXJhdGlvbkxp
bmtDb25zdHJ1Y3QoRXhlY1N0YXRlKik7CiAKIC8vIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gbG9v
a3VwIGFuIGV4Y2VwdGlvbiBoYW5kZXIsIGtleWVkIGJ5IGZhdWx0TG9jYXRpb24sIHdoaWNoIGlz
CiAvLyB0aGUgcmV0dXJuIGxvY2F0aW9uIGZyb20gb25lIG9mIHRoZSBjYWxscyBvdXQgdG8gb25l
IG9mIHRoZSBoZWxwZXIgb3BlcmF0aW9ucyBhYm92ZS4KQEAgLTEyMywxNSArMTMxLDE1IEBAIHN0
cnVjdCBERkdIYW5kbGVyIHsKICAgICBFeGVjU3RhdGUqIGV4ZWM7CiAgICAgdm9pZCogaGFuZGxl
cjsKIH07Ci1ERkdIYW5kbGVyIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiwgUmV0
dXJuQWRkcmVzc1B0ciBmYXVsdExvY2F0aW9uKTsKK0RGR0hhbmRsZXIgREZHX09QRVJBVElPTiBs
b29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSosIFJldHVybkFkZHJlc3NQdHIgZmF1bHRM
b2NhdGlvbik7CiAKIC8vIFRoZXNlIG9wZXJhdGlvbnMgaW1wbGVtZW50IHRoZSBpbXBsaWNpdGx5
IGNhbGxlZCBUb0ludDMyLCBUb051bWJlciwgYW5kIFRvQm9vbGVhbiBjb252ZXJzaW9ucyBmcm9t
IEVTNS4KLWRvdWJsZSBkZmdDb252ZXJ0SlNWYWx1ZVRvTnVtYmVyKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlKTsKLWludDMyX3QgZGZnQ29udmVydEpTVmFsdWVUb0ludDMyKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlKTsKLVJlZ2lzdGVyU2l6ZWRCb29sZWFuIGRmZ0NvbnZlcnRKU1ZhbHVl
VG9Cb29sZWFuKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKK2RvdWJsZSBERkdfT1BFUkFU
SU9OIGRmZ0NvbnZlcnRKU1ZhbHVlVG9OdW1iZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUp
OworaW50MzJfdCBERkdfT1BFUkFUSU9OIGRmZ0NvbnZlcnRKU1ZhbHVlVG9JbnQzMihFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSk7CitSZWdpc3RlclNpemVkQm9vbGVhbiBERkdfT1BFUkFUSU9O
IGRmZ0NvbnZlcnRKU1ZhbHVlVG9Cb29sZWFuKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsK
IAogI2lmIEVOQUJMRShERkdfVkVSQk9TRV9TUEVDVUxBVElPTl9GQUlMVVJFKQotdm9pZCBkZWJ1
Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWlsdXJlKEV4ZWNTdGF0ZSosIHZvaWQqKTsKK3Zv
aWQgREZHX09QRVJBVElPTiBkZWJ1Z09wZXJhdGlvblByaW50U3BlY3VsYXRpb25GYWlsdXJlKEV4
ZWNTdGF0ZSosIHZvaWQqKTsKICNlbmRpZgogCiB9IC8vIGV4dGVybiAiQyIK
</data>
<flag name="review"
          id="106250"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>