<?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>143357</bug_id>
          
          <creation_ts>2015-04-02 20:04:08 -0700</creation_ts>
          <short_desc>Enhance ability to dump JSC Options</short_desc>
          <delta_ts>2015-04-02 20:47:57 -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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1082439</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-02 20:04:08 -0700</bug_when>
    <thetext>Some enhancements to how the JSC options work:

1. Add a JSC_showOptions option which take values: 0 = None, 1 = Overridden only, 2 = All, 3 = Verbose.
   The default is 0 (None).  This dumps nothing.
   With the Overridden setting, at VM initialization time, we will dump all option values that have been changed from their default.
   With the All setting, at VM initialization time, we will dump all option values.
   With the Verbose setting, at VM initialization time, we will dump all option values along with their descriptions (if available).

2. We now store a copy of the default option values.
   We later use this for comparison to tell if an option has been overridden, and print the default value for reference.
   As a result, we no longer need the didOverride flag since we can compute whether the option is overridden at any time.

3. Added description strings to some options to be printed when JSC_showOptions=3 (Verbose).  This will come in handy later when we want to rename some of the options to more sane names that are easier to remember.  For example, we can change Options::dfgFunctionWhitelistFile() to Options::dfgWhiteList(), and Options::slowPathAllocsBetweenGCs() to Options::forcedGcRate().  With the availability of the description, we can afford to use shorter and less descriptive option names, but they will be easier to remember and use for day to day debugging work.

   In this patch, I did not change the names of any of the options yet.  I only added description strings for options that I know about, and where I think the option name isn&apos;t already descriptive enough.

4. Also deleted some unused code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082441</commentid>
    <comment_count>1</comment_count>
      <attachid>250033</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-02 20:22:52 -0700</bug_when>
    <thetext>Created attachment 250033
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082442</commentid>
    <comment_count>2</comment_count>
      <attachid>250033</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-02 20:34:57 -0700</bug_when>
    <thetext>Comment on attachment 250033
the patch.

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

&gt; Source/JavaScriptCore/runtime/Options.cpp:397
&gt; +        fprintf(stream, &quot;%s&quot;, m_entry.boolVal?&quot;true&quot;:&quot;false&quot;);

Missing spaces around the part of the operator.

&gt; Source/JavaScriptCore/runtime/Options.h:275
&gt; +    v(unsigned, slowPathAllocsBetweenGCs, 0, &quot;debugging option to trigger a GC for every count of this number of slow path allocs&quot;) \

The description is a bit hard to process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082445</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-02 20:45:32 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 250033 [details]
&gt; the patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250033&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/Options.cpp:397
&gt; &gt; +        fprintf(stream, &quot;%s&quot;, m_entry.boolVal?&quot;true&quot;:&quot;false&quot;);
&gt; 
&gt; Missing spaces around the part of the operator.

Fixed locally.

&gt; &gt; Source/JavaScriptCore/runtime/Options.h:275
&gt; &gt; +    v(unsigned, slowPathAllocsBetweenGCs, 0, &quot;debugging option to trigger a GC for every count of this number of slow path allocs&quot;) \
&gt; 
&gt; The description is a bit hard to process.

I changed this string to &quot;force a GC on every Nth slow path alloc, where N is specified by this option&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1082447</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-04-02 20:47:57 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r182304: &lt;http://trac.webkit.org/r182304&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250033</attachid>
            <date>2015-04-02 20:22:52 -0700</date>
            <delta_ts>2015-04-02 20:34:57 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-143357.patch</filename>
            <type>text/plain</type>
            <size>36161</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyMzAzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDE1LTA0LTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBF
bmhhbmNlIGFiaWxpdHkgdG8gZHVtcCBKU0MgT3B0aW9ucy4KKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE0MzM1Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTb21lIGVuaGFuY2VtZW50cyB0byBob3cgdGhlIEpTQyBvcHRpb25zIHdvcms6
CisKKyAgICAgICAgMS4gQWRkIGEgSlNDX3Nob3dPcHRpb25zIG9wdGlvbiB3aGljaCB0YWtlIHZh
bHVlczogMCA9IE5vbmUsIDEgPSBPdmVycmlkZGVuIG9ubHksCisgICAgICAgICAgIDIgPSBBbGws
IDMgPSBWZXJib3NlLgorCisgICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDAgKE5vbmUpLiAgVGhp
cyBkdW1wcyBub3RoaW5nLgorICAgICAgICAgICBXaXRoIHRoZSBPdmVycmlkZGVuIHNldHRpbmcs
IGF0IFZNIGluaXRpYWxpemF0aW9uIHRpbWUsIHdlIHdpbGwgZHVtcCBhbGwKKyAgICAgICAgICAg
b3B0aW9uIHZhbHVlcyB0aGF0IGhhdmUgYmVlbiBjaGFuZ2VkIGZyb20gdGhlaXIgZGVmYXVsdC4K
KyAgICAgICAgICAgV2l0aCB0aGUgQWxsIHNldHRpbmcsIGF0IFZNIGluaXRpYWxpemF0aW9uIHRp
bWUsIHdlIHdpbGwgZHVtcCBhbGwgb3B0aW9uIHZhbHVlcy4KKyAgICAgICAgICAgV2l0aCB0aGUg
VmVyYm9zZSBzZXR0aW5nLCBhdCBWTSBpbml0aWFsaXphdGlvbiB0aW1lLCB3ZSB3aWxsIGR1bXAg
YWxsIG9wdGlvbgorICAgICAgICAgICB2YWx1ZXMgYWxvbmcgd2l0aCB0aGVpciBkZXNjcmlwdGlv
bnMgKGlmIGF2YWlsYWJsZSkuCisKKyAgICAgICAgMi4gV2Ugbm93IHN0b3JlIGEgY29weSBvZiB0
aGUgZGVmYXVsdCBvcHRpb24gdmFsdWVzLgorCisgICAgICAgICAgIFdlIGxhdGVyIHVzZSB0aGlz
IGZvciBjb21wYXJpc29uIHRvIHRlbGwgaWYgYW4gb3B0aW9uIGhhcyBiZWVuIG92ZXJyaWRkZW4s
IGFuZAorICAgICAgICAgICBwcmludCB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgcmVmZXJlbmNlLiAg
QXMgYSByZXN1bHQsIHdlIG5vIGxvbmdlciBuZWVkIHRoZQorICAgICAgICAgICBkaWRPdmVycmlk
ZSBmbGFnIHNpbmNlIHdlIGNhbiBjb21wdXRlIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBvdmVycmlk
ZGVuIGF0IGFueSB0aW1lLgorCisgICAgICAgIDMuIEFkZGVkIGRlc2NyaXB0aW9uIHN0cmluZ3Mg
dG8gc29tZSBvcHRpb25zIHRvIGJlIHByaW50ZWQgd2hlbiBKU0Nfc2hvd09wdGlvbnM9MyAoVmVy
Ym9zZSkuCisKKyAgICAgICAgICAgVGhpcyB3aWxsIGNvbWUgaW4gaGFuZHkgbGF0ZXIgd2hlbiB3
ZSB3YW50IHRvIHJlbmFtZSBzb21lIG9mIHRoZSBvcHRpb25zIHRvIG1vcmUgc2FuZQorICAgICAg
ICAgICBuYW1lcyB0aGF0IGFyZSBlYXNpZXIgdG8gcmVtZW1iZXIuICBGb3IgZXhhbXBsZSwgd2Ug
Y2FuIGNoYW5nZQorICAgICAgICAgICBPcHRpb25zOjpkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUo
KSB0byBPcHRpb25zOjpkZmdXaGl0ZUxpc3QoKSwgYW5kCisgICAgICAgICAgIE9wdGlvbnM6OnNs
b3dQYXRoQWxsb2NzQmV0d2VlbkdDcygpIHRvIE9wdGlvbnM6OmZvcmNlZEdjUmF0ZSgpLiAgV2l0
aCB0aGUgYXZhaWxhYmlsaXR5CisgICAgICAgICAgIG9mIHRoZSBkZXNjcmlwdGlvbiwgd2UgY2Fu
IGFmZm9yZCB0byB1c2Ugc2hvcnRlciBhbmQgbGVzcyBkZXNjcmlwdGl2ZSBvcHRpb24gbmFtZXMs
CisgICAgICAgICAgIGJ1dCB0aGV5IHdpbGwgYmUgZWFzaWVyIHRvIHJlbWVtYmVyIGFuZCB1c2Ug
Zm9yIGRheSB0byBkYXkgZGVidWdnaW5nIHdvcmsuCisKKyAgICAgICAgICAgSW4gdGhpcyBwYXRj
aCwgSSBkaWQgbm90IGNoYW5nZSB0aGUgbmFtZXMgb2YgYW55IG9mIHRoZSBvcHRpb25zIHlldC4g
IEkgb25seSBhZGRlZAorICAgICAgICAgICBkZXNjcmlwdGlvbiBzdHJpbmdzIGZvciBvcHRpb25z
IHRoYXQgSSBrbm93IGFib3V0LCBhbmQgd2hlcmUgSSB0aGluayB0aGUgb3B0aW9uIG5hbWUKKyAg
ICAgICAgICAgaXNuJ3QgYWxyZWFkeSBkZXNjcmlwdGl2ZSBlbm91Z2guCisKKyAgICAgICAgNC4g
QWxzbyBkZWxldGVkIHNvbWUgdW51c2VkIGNvZGUuCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAg
ICAgICAoQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKToKKyAgICAgICAgKiBydW50aW1lL09w
dGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplKToKKyAgICAgICAg
KEpTQzo6T3B0aW9uczo6c2V0T3B0aW9uKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6ZHVtcEFs
bE9wdGlvbnMpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wT3B0aW9uKToKKyAgICAgICAg
KEpTQzo6T3B0aW9uczo6T3B0aW9uOjpkdW1wKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6T3B0
aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAg
KEpTQzo6T3B0aW9uUmFuZ2U6OnJhbmdlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6
T3B0aW9uOjpPcHRpb24pOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpPcHRpb246Om9wZXJhdG9y
IT0pOgorCiAyMDE1LTA0LTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSmF2YVNjcmlwdENvcmUgQVBJIHNob3VsZCBzdXBwb3J0IHR5cGUgY2hlY2tpbmcg
Zm9yIEFycmF5IGFuZCBEYXRlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTgy
MzAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAwIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAy
MDA3LCAyMDA4LCAyMDEyLCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCwgMjAxMi0yMDEzLCAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQmpvZXJuIEdy
YWYgKGJqb2Vybi5ncmFmQGdtYWlsLmNvbSkKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTQ2Miw3ICsxNDYy
LDcgQEAgdm9pZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZwogICAgICAgICBt
X2FyZ3VtZW50cy5hcHBlbmQoYXJndltpXSk7CiAKICAgICBpZiAobmVlZFRvRHVtcE9wdGlvbnMp
Ci0gICAgICAgIEpTQzo6T3B0aW9uczo6ZHVtcEFsbE9wdGlvbnMoc3RkZXJyKTsKKyAgICAgICAg
SlNDOjpPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhKU0M6Ok9wdGlvbnM6OkR1bXBMZXZlbDo6VmVy
Ym9zZSwgIkFsbCBKU0MgcnVudGltZSBvcHRpb25zOiIsIHN0ZGVycik7CiAgICAgaWYgKG5lZWRU
b0V4aXQpCiAgICAgICAgIGpzY0V4aXQoRVhJVF9TVUNDRVNTKTsKIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCShyZXZpc2lvbiAxODIzMDMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTIs
IDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwMSwxMSArMjAxLDEyIEBAIGJvb2wgT3B0aW9uUmFuZ2U6
OmlzSW5SYW5nZSh1bnNpZ25lZCBjb3UKIH0KIAogT3B0aW9uczo6RW50cnkgT3B0aW9uczo6c19v
cHRpb25zW09wdGlvbnM6Om51bWJlck9mT3B0aW9uc107CitPcHRpb25zOjpFbnRyeSBPcHRpb25z
OjpzX2RlZmF1bHRPcHRpb25zW09wdGlvbnM6Om51bWJlck9mT3B0aW9uc107CiAKIC8vIFJlYWxp
emUgdGhlIG5hbWVzIGZvciBlYWNoIG9mIHRoZSBvcHRpb25zOgogY29uc3QgT3B0aW9uczo6RW50
cnlJbmZvIE9wdGlvbnM6OnNfb3B0aW9uc0luZm9bT3B0aW9uczo6bnVtYmVyT2ZPcHRpb25zXSA9
IHsKLSNkZWZpbmUgRk9SX0VBQ0hfT1BUSU9OKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXykg
XAotICAgIHsgI25hbWVfLCBPcHRpb25zOjp0eXBlXyMjVHlwZSB9LAorI2RlZmluZSBGT1JfRUFD
SF9PUFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNjcmlwdGlvbl8pIFwKKyAg
ICB7ICNuYW1lXywgZGVzY3JpcHRpb25fLCBPcHRpb25zOjp0eXBlXyMjVHlwZSB9LAogICAgIEpT
Q19PUFRJT05TKEZPUl9FQUNIX09QVElPTikKICN1bmRlZiBGT1JfRUFDSF9PUFRJT04KIH07CkBA
IC0yNzAsMTcgKzI3MSwxNyBAQCBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25z
KCkKIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSBlYWNo
IG9mIHRoZSBvcHRpb25zIHdpdGggdGhlaXIgZGVmYXVsdCB2YWx1ZXM6Ci0jZGVmaW5lIEZPUl9F
QUNIX09QVElPTih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8pIFwKLSAgICBuYW1lXygpID0g
ZGVmYXVsdFZhbHVlXzsKKyNkZWZpbmUgRk9SX0VBQ0hfT1BUSU9OKHR5cGVfLCBuYW1lXywgZGVm
YXVsdFZhbHVlXywgZGVzY3JpcHRpb25fKSBcCisgICAgbmFtZV8oKSA9IGRlZmF1bHRWYWx1ZV87
IFwKKyAgICBuYW1lXyMjRGVmYXVsdCgpID0gZGVmYXVsdFZhbHVlXzsKICAgICBKU0NfT1BUSU9O
UyhGT1JfRUFDSF9PUFRJT04pCiAjdW5kZWYgRk9SX0VBQ0hfT1BUSU9OCiAgICAgICAgIAogICAg
IC8vIEFsbG93IGVudmlyb25tZW50IHZhcnMgdG8gb3ZlcnJpZGUgb3B0aW9ucyBpZiBhcHBsaWNh
YmxlLgogICAgIC8vIFRoZSBldm4gdmFyIHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgb3B0aW9u
IHByZWZpeGVkIHdpdGgKICAgICAvLyAiSlNDXyIuCi0jZGVmaW5lIEZPUl9FQUNIX09QVElPTih0
eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8pIFwKLSAgICBpZiAob3ZlcnJpZGVPcHRpb25XaXRo
SGV1cmlzdGljKG5hbWVfKCksICJKU0NfIiAjbmFtZV8pKSBcCi0gICAgICAgIHNfb3B0aW9uc1tP
UFRfIyNuYW1lX10uZGlkT3ZlcnJpZGUgPSB0cnVlOworI2RlZmluZSBGT1JfRUFDSF9PUFRJT04o
dHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNjcmlwdGlvbl8pIFwKKyAgICBvdmVycmlk
ZU9wdGlvbldpdGhIZXVyaXN0aWMobmFtZV8oKSwgIkpTQ18iICNuYW1lXyk7CiAgICAgSlNDX09Q
VElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElPTgogCkBAIC0yOTQs
NiArMjk1LDI4IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgQVNTRVJUKE9wdGlv
bnM6OnRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwKCkgPj0gT3B0aW9uczo6dGhy
ZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpKTsKICAgICBBU1NFUlQoT3B0aW9uczo6dGhy
ZXNob2xkRm9yT3B0aW1pemVBZnRlcldhcm1VcCgpID49IE9wdGlvbnM6OnRocmVzaG9sZEZvck9w
dGltaXplU29vbigpKTsKICAgICBBU1NFUlQoT3B0aW9uczo6dGhyZXNob2xkRm9yT3B0aW1pemVB
ZnRlcldhcm1VcCgpID49IDApOworCisgICAgaWYgKE9wdGlvbnM6OnNob3dPcHRpb25zKCkpIHsK
KyAgICAgICAgRHVtcExldmVsIGxldmVsID0gc3RhdGljX2Nhc3Q8RHVtcExldmVsPihPcHRpb25z
OjpzaG93T3B0aW9ucygpKTsKKyAgICAgICAgaWYgKGxldmVsID4gRHVtcExldmVsOjpWZXJib3Nl
KQorICAgICAgICAgICAgbGV2ZWwgPSBEdW1wTGV2ZWw6OlZlcmJvc2U7CisKKyAgICAgICAgY29u
c3QgY2hhciogdGl0bGUgPSBudWxscHRyOworICAgICAgICBzd2l0Y2ggKGxldmVsKSB7CisgICAg
ICAgIGNhc2UgRHVtcExldmVsOjpOb25lOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgRHVtcExldmVsOjpPdmVycmlkZGVuOgorICAgICAgICAgICAgdGl0bGUgPSAiT3ZlcnJpZGRl
biBKU0Mgb3B0aW9uczoiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRHVtcExl
dmVsOjpBbGw6CisgICAgICAgICAgICB0aXRsZSA9ICJBbGwgSlNDIG9wdGlvbnM6IjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIER1bXBMZXZlbDo6VmVyYm9zZToKKyAgICAgICAg
ICAgIHRpdGxlID0gIkFsbCBKU0Mgb3B0aW9ucyB3aXRoIGRlc2NyaXB0aW9uczoiOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZHVtcEFsbE9wdGlvbnMobGV2ZWwsIHRp
dGxlKTsKKyAgICB9CiB9CiAKIC8vIFBhcnNlcyBhIHNpbmdsZSBjb21tYW5kIGxpbmUgb3B0aW9u
IGluIHRoZSBmb3JtYXQgIjxvcHRpb25OYW1lPj08dmFsdWU+IgpAQCAtMzEwLDE0ICszMzMsMTMg
QEAgYm9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJnKQogCiAgICAgLy8gRm9y
IGVhY2ggb3B0aW9uLCBjaGVjayBpZiB0aGUgc3BlY2lmeSBhcmcgaXMgYSBtYXRjaC4gSWYgc28s
IHNldCB0aGUgYXJnCiAgICAgLy8gaWYgdGhlIHZhbHVlIG1ha2VzIHNlbnNlLiBPdGhlcndpc2Us
IG1vdmUgb24gdG8gY2hlY2tpbmcgdGhlIG5leHQgb3B0aW9uLgotI2RlZmluZSBGT1JfRUFDSF9P
UFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfKSAgICBcCisjZGVmaW5lIEZPUl9FQUNI
X09QVElPTih0eXBlXywgbmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGRlc2NyaXB0aW9uXykgXAogICAg
IGlmICghc3RybmNtcChhcmcsICNuYW1lXywgZXF1YWxTdHIgLSBhcmcpKSB7ICAgICAgICBcCiAg
ICAgICAgIHR5cGVfIHZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgdmFsdWUgPSAoZGVmYXVsdFZhbHVlXyk7ICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgICAgICBib29sIHN1Y2Nlc3MgPSBwYXJzZSh2YWx1ZVN0ciwgdmFsdWUpOyAgICAgICAg
ICBcCiAgICAgICAgIGlmIChzdWNjZXNzKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgICAgIG5hbWVfKCkgPSB2YWx1ZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgc19vcHRpb25zW09QVF8jI25hbWVfXS5kaWRPdmVycmlkZSA9
IHRydWU7ICBcCiAgICAgICAgICAgICByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCk7ICAgICAg
ICAgICAgICAgIFwKICAgICAgICAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCkBAIC0zMzAsNDggKzM1Miw5NiBAQCBib29sIE9wdGlvbnM6OnNldE9w
dGlvbihjb25zdCBjaGFyKiBhcmcpCiAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBvcHRpb24gbWF0
Y2hlZC4KIH0KIAotdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJlYW0pCit2
b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hhciog
dGl0bGUsIEZJTEUqIHN0cmVhbSkKIHsKLSAgICBmcHJpbnRmKHN0cmVhbSwgIkpTQyBydW50aW1l
IG9wdGlvbnM6XG4iKTsKKyAgICBpZiAodGl0bGUpCisgICAgICAgIGZwcmludGYoc3RyZWFtLCAi
JXNcbiIsIHRpdGxlKTsKICAgICBmb3IgKGludCBpZCA9IDA7IGlkIDwgbnVtYmVyT2ZPcHRpb25z
OyBpZCsrKQotICAgICAgICBkdW1wT3B0aW9uKHN0YXRpY19jYXN0PE9wdGlvbklEPihpZCksIHN0
cmVhbSwgIiAgICIsICJcbiIpOworICAgICAgICBkdW1wT3B0aW9uKGxldmVsLCBzdGF0aWNfY2Fz
dDxPcHRpb25JRD4oaWQpLCBzdHJlYW0sICIgICAiLCAiXG4iKTsKIH0KIAotdm9pZCBPcHRpb25z
OjpkdW1wT3B0aW9uKE9wdGlvbklEIGlkLCBGSUxFKiBzdHJlYW0sIGNvbnN0IGNoYXIqIGhlYWRl
ciwgY29uc3QgY2hhciogZm9vdGVyKQordm9pZCBPcHRpb25zOjpkdW1wT3B0aW9uKER1bXBMZXZl
bCBsZXZlbCwgT3B0aW9uSUQgaWQsIEZJTEUqIHN0cmVhbSwgY29uc3QgY2hhciogaGVhZGVyLCBj
b25zdCBjaGFyKiBmb290ZXIpCiB7CiAgICAgaWYgKGlkID49IG51bWJlck9mT3B0aW9ucykKICAg
ICAgICAgcmV0dXJuOyAvLyBJbGxlZ2FsIG9wdGlvbi4KIAorICAgIEVudHJ5VHlwZSB0eXBlID0g
c19vcHRpb25zSW5mb1tpZF0udHlwZTsKKyAgICBPcHRpb24gb3B0aW9uKHR5cGUsIHNfb3B0aW9u
c1tpZF0pOworICAgIE9wdGlvbiBkZWZhdWx0T3B0aW9uKHR5cGUsIHNfZGVmYXVsdE9wdGlvbnNb
aWRdKTsKKworICAgIGJvb2wgd2FzT3ZlcnJpZGRlbiA9IChvcHRpb24gIT0gZGVmYXVsdE9wdGlv
bik7CisgICAgYm9vbCBuZWVkc0Rlc2NyaXB0aW9uID0gKGxldmVsID09IER1bXBMZXZlbDo6VmVy
Ym9zZSAmJiBzX29wdGlvbnNJbmZvW2lkXS5kZXNjcmlwdGlvbik7CisKKyAgICBpZiAobGV2ZWwg
PT0gRHVtcExldmVsOjpPdmVycmlkZGVuICYmICF3YXNPdmVycmlkZGVuKQorICAgICAgICByZXR1
cm47CisKICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzJXM6ICIsIGhlYWRlciwgc19vcHRpb25zSW5m
b1tpZF0ubmFtZSk7Ci0gICAgc3dpdGNoIChzX29wdGlvbnNJbmZvW2lkXS50eXBlKSB7CisgICAg
b3B0aW9uLmR1bXAoc3RyZWFtKTsKKworICAgIGlmICh3YXNPdmVycmlkZGVuKSB7CisgICAgICAg
IGZwcmludGYoc3RyZWFtLCAiIChkZWZhdWx0OiAiKTsKKyAgICAgICAgZGVmYXVsdE9wdGlvbi5k
dW1wKHN0cmVhbSk7CisgICAgICAgIGZwcmludGYoc3RyZWFtLCAiKSIpOworICAgIH0KKworICAg
IGlmIChuZWVkc0Rlc2NyaXB0aW9uKQorICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIlxuJXMgICAt
ICVzIiwgaGVhZGVyLCBzX29wdGlvbnNJbmZvW2lkXS5kZXNjcmlwdGlvbik7CisKKyAgICBmcHJp
bnRmKHN0cmVhbSwgIiVzIiwgZm9vdGVyKTsKK30KKwordm9pZCBPcHRpb25zOjpPcHRpb246OmR1
bXAoRklMRSogc3RyZWFtKSBjb25zdAoreworICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2Fz
ZSBib29sVHlwZToKLSAgICAgICAgZnByaW50ZihzdHJlYW0sICIlcyIsIHNfb3B0aW9uc1tpZF0u
dS5ib29sVmFsPyJ0cnVlIjoiZmFsc2UiKTsKKyAgICAgICAgZnByaW50ZihzdHJlYW0sICIlcyIs
IG1fZW50cnkuYm9vbFZhbD8idHJ1ZSI6ImZhbHNlIik7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgdW5zaWduZWRUeXBlOgotICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiV1Iiwgc19vcHRpb25z
W2lkXS51LnVuc2lnbmVkVmFsKTsKKyAgICAgICAgZnByaW50ZihzdHJlYW0sICIldSIsIG1fZW50
cnkudW5zaWduZWRWYWwpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGRvdWJsZVR5cGU6Ci0g
ICAgICAgIGZwcmludGYoc3RyZWFtLCAiJWxmIiwgc19vcHRpb25zW2lkXS51LmRvdWJsZVZhbCk7
CisgICAgICAgIGZwcmludGYoc3RyZWFtLCAiJWxmIiwgbV9lbnRyeS5kb3VibGVWYWwpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIGludDMyVHlwZToKLSAgICAgICAgZnByaW50ZihzdHJlYW0s
ICIlZCIsIHNfb3B0aW9uc1tpZF0udS5pbnQzMlZhbCk7CisgICAgICAgIGZwcmludGYoc3RyZWFt
LCAiJWQiLCBtX2VudHJ5LmludDMyVmFsKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBvcHRp
b25SYW5nZVR5cGU6Ci0gICAgICAgIGZwcmludGYoc3RyZWFtLCAiJXMiLCBzX29wdGlvbnNbaWRd
LnUub3B0aW9uUmFuZ2VWYWwucmFuZ2VTdHJpbmcoKSk7CisgICAgICAgIGZwcmludGYoc3RyZWFt
LCAiJXMiLCBtX2VudHJ5Lm9wdGlvblJhbmdlVmFsLnJhbmdlU3RyaW5nKCkpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIG9wdGlvblN0cmluZ1R5cGU6IHsKLSAgICAgICAgY29uc3QgY2hhciog
b3B0aW9uID0gc19vcHRpb25zW2lkXS51Lm9wdGlvblN0cmluZ1ZhbDsKKyAgICAgICAgY29uc3Qg
Y2hhciogb3B0aW9uID0gbV9lbnRyeS5vcHRpb25TdHJpbmdWYWw7CiAgICAgICAgIGlmICghb3B0
aW9uKQogICAgICAgICAgICAgb3B0aW9uID0gIiI7CiAgICAgICAgIGZwcmludGYoc3RyZWFtLCAi
JXMiLCBvcHRpb24pOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBnY0xvZ0xldmVs
VHlwZTogewotICAgICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwgR0NMb2dnaW5nOjpsZXZlbEFz
U3RyaW5nKHNfb3B0aW9uc1tpZF0udS5nY0xvZ0xldmVsVmFsKSk7CisgICAgICAgIGZwcmludGYo
c3RyZWFtLCAiJXMiLCBHQ0xvZ2dpbmc6OmxldmVsQXNTdHJpbmcobV9lbnRyeS5nY0xvZ0xldmVs
VmFsKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICB9Ci0gICAgZnByaW50ZihzdHJlYW0s
ICIlcyIsIGZvb3Rlcik7Cit9CisKK2Jvb2wgT3B0aW9uczo6T3B0aW9uOjpvcGVyYXRvcj09KGNv
bnN0IE9wdGlvbnM6Ok9wdGlvbiYgb3RoZXIpIGNvbnN0Cit7CisgICAgc3dpdGNoIChtX3R5cGUp
IHsKKyAgICBjYXNlIGJvb2xUeXBlOgorICAgICAgICByZXR1cm4gbV9lbnRyeS5ib29sVmFsID09
IG90aGVyLm1fZW50cnkuYm9vbFZhbDsKKyAgICBjYXNlIHVuc2lnbmVkVHlwZToKKyAgICAgICAg
cmV0dXJuIG1fZW50cnkudW5zaWduZWRWYWwgPT0gb3RoZXIubV9lbnRyeS51bnNpZ25lZFZhbDsK
KyAgICBjYXNlIGRvdWJsZVR5cGU6CisgICAgICAgIHJldHVybiAobV9lbnRyeS5kb3VibGVWYWwg
PT0gb3RoZXIubV9lbnRyeS5kb3VibGVWYWwpIHx8IChpc25hbihtX2VudHJ5LmRvdWJsZVZhbCkg
JiYgaXNuYW4ob3RoZXIubV9lbnRyeS5kb3VibGVWYWwpKTsKKyAgICBjYXNlIGludDMyVHlwZToK
KyAgICAgICAgcmV0dXJuIG1fZW50cnkuaW50MzJWYWwgPT0gb3RoZXIubV9lbnRyeS5pbnQzMlZh
bDsKKyAgICBjYXNlIG9wdGlvblJhbmdlVHlwZToKKyAgICAgICAgcmV0dXJuIG1fZW50cnkub3B0
aW9uUmFuZ2VWYWwucmFuZ2VTdHJpbmcoKSA9PSBvdGhlci5tX2VudHJ5Lm9wdGlvblJhbmdlVmFs
LnJhbmdlU3RyaW5nKCk7CisgICAgY2FzZSBvcHRpb25TdHJpbmdUeXBlOgorICAgICAgICByZXR1
cm4gKG1fZW50cnkub3B0aW9uU3RyaW5nVmFsID09IG90aGVyLm1fZW50cnkub3B0aW9uU3RyaW5n
VmFsKQorICAgICAgICAgICAgfHwgKG1fZW50cnkub3B0aW9uU3RyaW5nVmFsICYmIG90aGVyLm1f
ZW50cnkub3B0aW9uU3RyaW5nVmFsICYmICFzdHJjbXAobV9lbnRyeS5vcHRpb25TdHJpbmdWYWws
IG90aGVyLm1fZW50cnkub3B0aW9uU3RyaW5nVmFsKSk7CisgICAgY2FzZSBnY0xvZ0xldmVsVHlw
ZToKKyAgICAgICAgcmV0dXJuIG1fZW50cnkuZ2NMb2dMZXZlbFZhbCA9PSBvdGhlci5tX2VudHJ5
LmdjTG9nTGV2ZWxWYWw7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShy
ZXZpc2lvbiAxODIzMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBp
bml0KGNvbnN0IGNoYXIqKTsKICAgICBib29sIGlzSW5SYW5nZSh1bnNpZ25lZCk7Ci0gICAgY29u
c3QgY2hhciogcmFuZ2VTdHJpbmcoKSB7IHJldHVybiAobV9zdGF0ZSA+IEluaXRFcnJvcikgPyBt
X3JhbmdlU3RyaW5nIDogIjxudWxsPiI7IH0KKyAgICBjb25zdCBjaGFyKiByYW5nZVN0cmluZygp
IGNvbnN0IHsgcmV0dXJuIChtX3N0YXRlID4gSW5pdEVycm9yKSA/IG1fcmFuZ2VTdHJpbmcgOiAi
PG51bGw+IjsgfQogCiBwcml2YXRlOgogICAgIFJhbmdlU3RhdGUgbV9zdGF0ZTsKQEAgLTkyLDIy
NSArOTIsMjM0IEBAIHR5cGVkZWYgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFuZ2U7CiB0eXBlZGVmIGNv
bnN0IGNoYXIqIG9wdGlvblN0cmluZzsKIAogI2RlZmluZSBKU0NfT1BUSU9OUyh2KSBcCi0gICAg
dihib29sLCB1c2VMTEludCwgIHRydWUpIFwKLSAgICB2KGJvb2wsIHVzZUpJVCwgICAgdHJ1ZSkg
XAotICAgIHYoYm9vbCwgdXNlREZHSklULCB0cnVlKSBcCi0gICAgdihib29sLCB1c2VSZWdFeHBK
SVQsIHRydWUpIFwKKyAgICB2KHVuc2lnbmVkLCBzaG93T3B0aW9ucywgMCwgInNob3dzIEpTQyBv
cHRpb25zICgwID0gTm9uZSwgMSA9IE92ZXJyaWRkZW4gb25seSwgMiA9IEFsbCwgMyA9IFZlcmJv
c2UpIikgXAogICAgIFwKLSAgICB2KGJvb2wsIHJlcG9ydE11c3RTdWNjZWVkRXhlY3V0YWJsZUFs
bG9jYXRpb25zLCBmYWxzZSkgXAorICAgIHYoYm9vbCwgdXNlTExJbnQsICB0cnVlLCAiYWxsb3dz
IHRoZSBMTElOVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCisgICAgdihib29sLCB1c2VKSVQsICAg
IHRydWUsICJhbGxvd3MgdGhlIGJhc2VsaW5lIEpJVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCisg
ICAgdihib29sLCB1c2VERkdKSVQsIHRydWUsICJhbGxvd3MgdGhlIERGRyBKSVQgdG8gYmUgdXNl
ZCBpZiB0cnVlIikgXAorICAgIHYoYm9vbCwgdXNlUmVnRXhwSklULCB0cnVlLCAiYWxsb3dzIHRo
ZSBSZWdFeHAgSklUIHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwKICAgICBcCi0gICAgdih1bnNpZ25l
ZCwgbWF4UGVyVGhyZWFkU3RhY2tVc2FnZSwgNCAqIE1CKSBcCi0gICAgdih1bnNpZ25lZCwgcmVz
ZXJ2ZWRab25lU2l6ZSwgMTI4ICogS0IpIFwKLSAgICB2KHVuc2lnbmVkLCBlcnJvck1vZGVSZXNl
cnZlZFpvbmVTaXplLCA2NCAqIEtCKSBcCisgICAgdihib29sLCByZXBvcnRNdXN0U3VjY2VlZEV4
ZWN1dGFibGVBbGxvY2F0aW9ucywgZmFsc2UsIG51bGxwdHIpIFwKICAgICBcCi0gICAgdihib29s
LCBjcmFzaElmQ2FudEFsbG9jYXRlSklUTWVtb3J5LCBmYWxzZSkgXAorICAgIHYodW5zaWduZWQs
IG1heFBlclRocmVhZFN0YWNrVXNhZ2UsIDQgKiBNQiwgbnVsbHB0cikgXAorICAgIHYodW5zaWdu
ZWQsIHJlc2VydmVkWm9uZVNpemUsIDEyOCAqIEtCLCBudWxscHRyKSBcCisgICAgdih1bnNpZ25l
ZCwgZXJyb3JNb2RlUmVzZXJ2ZWRab25lU2l6ZSwgNjQgKiBLQiwgbnVsbHB0cikgXAogICAgIFwK
LSAgICB2KGJvb2wsIGZvcmNlREZHQ29kZUJsb2NrTGl2ZW5lc3MsIGZhbHNlKSBcCi0gICAgdihi
b29sLCBmb3JjZUlDRmFpbHVyZSwgZmFsc2UpIFwKKyAgICB2KGJvb2wsIGNyYXNoSWZDYW50QWxs
b2NhdGVKSVRNZW1vcnksIGZhbHNlLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZHVt
cEdlbmVyYXRlZEJ5dGVjb2RlcywgZmFsc2UpIFwKLSAgICB2KGJvb2wsIGR1bXBCeXRlY29kZUxp
dmVuZXNzUmVzdWx0cywgZmFsc2UpIFwKLSAgICB2KGJvb2wsIHZhbGlkYXRlQnl0ZWNvZGUsIGZh
bHNlKSBcCi0gICAgdihib29sLCBmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxz
ZSkgXAotICAgIHYoYm9vbCwgZm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbiwgZmFsc2Up
IFwKKyAgICB2KGJvb2wsIGZvcmNlREZHQ29kZUJsb2NrTGl2ZW5lc3MsIGZhbHNlLCBudWxscHRy
KSBcCisgICAgdihib29sLCBmb3JjZUlDRmFpbHVyZSwgZmFsc2UsIG51bGxwdHIpIFwKICAgICBc
Ci0gICAgdihib29sLCBlbmFibGVGdW5jdGlvbkRvdEFyZ3VtZW50cywgdHJ1ZSkgXAorICAgIHYo
Ym9vbCwgZHVtcEdlbmVyYXRlZEJ5dGVjb2RlcywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJv
b2wsIGR1bXBCeXRlY29kZUxpdmVuZXNzUmVzdWx0cywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2
KGJvb2wsIHZhbGlkYXRlQnl0ZWNvZGUsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCBm
b3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYo
Ym9vbCwgZm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbiwgZmFsc2UsIG51bGxwdHIpIFwK
KyAgICBcCisgICAgdihib29sLCBlbmFibGVGdW5jdGlvbkRvdEFyZ3VtZW50cywgdHJ1ZSwgbnVs
bHB0cikgXAogICAgIFwKICAgICAvKiBzaG93RGlzYXNzZW1ibHkgaW1wbGllcyBzaG93REZHRGlz
YXNzZW1ibHkuICovIFwKLSAgICB2KGJvb2wsIHNob3dEaXNhc3NlbWJseSwgZmFsc2UpIFwKLSAg
ICB2KGJvb2wsIGFzeW5jRGlzYXNzZW1ibHksIGZhbHNlKSBcCi0gICAgdihib29sLCBzaG93REZH
RGlzYXNzZW1ibHksIGZhbHNlKSBcCi0gICAgdihib29sLCBzaG93RlRMRGlzYXNzZW1ibHksIGZh
bHNlKSBcCi0gICAgdihib29sLCBzaG93QWxsREZHTm9kZXMsIGZhbHNlKSBcCi0gICAgdihvcHRp
b25SYW5nZSwgYnl0ZWNvZGVSYW5nZVRvREZHQ29tcGlsZSwgMCkgXAotICAgIHYob3B0aW9uU3Ry
aW5nLCBkZmdGdW5jdGlvbldoaXRlbGlzdEZpbGUsIG51bGxwdHIpIFwKLSAgICB2KGJvb2wsIGR1
bXBTb3VyY2VBdERGR1RpbWUsIGZhbHNlKSBcCi0gICAgdihib29sLCBkdW1wQnl0ZWNvZGVBdERG
R1RpbWUsIGZhbHNlKSBcCi0gICAgdihib29sLCBkdW1wR3JhcGhBZnRlclBhcnNpbmcsIGZhbHNl
KSBcCi0gICAgdihib29sLCBkdW1wR3JhcGhBdEVhY2hQaGFzZSwgZmFsc2UpIFwKLSAgICB2KGJv
b2wsIHZlcmJvc2VERkdCeXRlQ29kZVBhcnNpbmcsIGZhbHNlKSBcCi0gICAgdihib29sLCB2ZXJi
b3NlQ29tcGlsYXRpb24sIGZhbHNlKSBcCi0gICAgdihib29sLCB2ZXJib3NlRlRMQ29tcGlsYXRp
b24sIGZhbHNlKSBcCi0gICAgdihib29sLCBsb2dDb21waWxhdGlvbkNoYW5nZXMsIGZhbHNlKSBc
Ci0gICAgdihib29sLCBwcmludEVhY2hPU1JFeGl0LCBmYWxzZSkgXAotICAgIHYoYm9vbCwgdmFs
aWRhdGVHcmFwaCwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIHZhbGlkYXRlR3JhcGhBdEVhY2hQaGFz
ZSwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIHZlcmJvc2VWYWxpZGF0aW9uRmFpbHVyZSwgZmFsc2Up
IFwKLSAgICB2KGJvb2wsIHZlcmJvc2VPU1IsIGZhbHNlKSBcCi0gICAgdihib29sLCB2ZXJib3Nl
RlRMT1NSRXhpdCwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIHZlcmJvc2VDYWxsTGluaywgZmFsc2Up
IFwKLSAgICB2KGJvb2wsIHZlcmJvc2VDb21waWxhdGlvblF1ZXVlLCBmYWxzZSkgXAotICAgIHYo
Ym9vbCwgcmVwb3J0Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgcmVwb3J0RlRM
Q29tcGlsZVRpbWVzLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgdmVyYm9zZUNGQSwgZmFsc2UpIFwK
LSAgICB2KGJvb2wsIHZlcmJvc2VGVExUb0pTVGh1bmssIGZhbHNlKSBcCi0gICAgdihib29sLCB2
ZXJib3NlRlRMRmFpbHVyZSwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIGFsd2F5c0NvbXB1dGVIYXNo
LCBmYWxzZSkgXAotICAgIHYoYm9vbCwgdGVzdFRoZUZUTCwgZmFsc2UpIFwKLSAgICB2KGJvb2ws
IHZlcmJvc2VTYW5pdGl6ZVN0YWNrLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgYWx3YXlzRG9GdWxs
Q29sbGVjdGlvbiwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIGVhZ2VybHlVcGRhdGVUb3BDYWxsRnJh
bWUsIGZhbHNlKSBcCi0gICAgXAotICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0RGRywgdHJ1
ZSkgXAotICAgIHYoYm9vbCwgZW5hYmxlT1NSRW50cnlUb0ZUTCwgdHJ1ZSkgXAotICAgIFwKLSAg
ICB2KGJvb2wsIHVzZUZUTEpJVCwgdHJ1ZSkgXAotICAgIHYoYm9vbCwgdXNlRlRMVEJBQSwgdHJ1
ZSkgXAotICAgIHYoYm9vbCwgZW5hYmxlTExWTUZhc3RJU2VsLCBmYWxzZSkgXAotICAgIHYoYm9v
bCwgdXNlTExWTVNtYWxsQ29kZU1vZGVsLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgZHVtcExMVk1J
UiwgZmFsc2UpIFwKLSAgICB2KGJvb2wsIHZhbGlkYXRlRlRMT1NSRXhpdExpdmVuZXNzLCBmYWxz
ZSkgXAotICAgIHYoYm9vbCwgbGx2bUFsd2F5c0ZhaWxzQmVmb3JlQ29tcGlsZSwgZmFsc2UpIFwK
LSAgICB2KGJvb2wsIGxsdm1BbHdheXNGYWlsc0JlZm9yZUxpbmssIGZhbHNlKSBcCi0gICAgdihi
b29sLCBsbHZtU2ltcGxlT3B0LCB0cnVlKSBcCi0gICAgdih1bnNpZ25lZCwgbGx2bUJhY2tlbmRP
cHRpbWl6YXRpb25MZXZlbCwgMikgXAotICAgIHYodW5zaWduZWQsIGxsdm1PcHRpbWl6YXRpb25M
ZXZlbCwgMikgXAotICAgIHYodW5zaWduZWQsIGxsdm1TaXplTGV2ZWwsIDApIFwKLSAgICB2KHVu
c2lnbmVkLCBsbHZtTWF4U3RhY2tTaXplLCAxMjggKiBLQikgXAotICAgIHYoYm9vbCwgbGx2bURp
c2FsbG93QVZYLCB0cnVlKSBcCi0gICAgdihib29sLCBmdGxDcmFzaGVzLCBmYWxzZSkgLyogZm9v
bC1wcm9vZiB3YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3UgZW5kZWQgdXAgaW4gdGhlIEZUTC4gOy0p
ICovXAotICAgIHYoYm9vbCwgY2xvYmJlckFsbFJlZ3NJbkZUTElDU2xvd1BhdGgsICFBU1NFUlRf
RElTQUJMRUQpIFwKLSAgICB2KGJvb2wsIGFzc3VtZUFsbFJlZ3NJbkZUTElDQXJlTGl2ZSwgZmFs
c2UpIFwKLSAgICB2KGJvb2wsIGVuYWJsZUFjY2Vzc0lubGluaW5nLCB0cnVlKSBcCi0gICAgdihi
b29sLCBlbmFibGVQb2x5dmFyaWFudERldmlydHVhbGl6YXRpb24sIHRydWUpIFwKLSAgICB2KGJv
b2wsIGVuYWJsZVBvbHltb3JwaGljQWNjZXNzSW5saW5pbmcsIHRydWUpIFwKLSAgICB2KGJvb2ws
IGVuYWJsZVBvbHltb3JwaGljQ2FsbElubGluaW5nLCB0cnVlKSBcCi0gICAgdih1bnNpZ25lZCwg
bWF4UG9seW1vcnBoaWNDYWxsVmFyaWFudExpc3RTaXplLCAxNSkgXAotICAgIHYodW5zaWduZWQs
IG1heFBvbHltb3JwaGljQ2FsbFZhcmlhbnRMaXN0U2l6ZUZvclRvcFRpZXIsIDUpIFwKLSAgICB2
KHVuc2lnbmVkLCBtYXhQb2x5bW9ycGhpY0NhbGxWYXJpYW50c0ZvcklubGluaW5nLCA1KSBcCi0g
ICAgdih1bnNpZ25lZCwgZnJlcXVlbnRDYWxsVGhyZXNob2xkLCAyKSBcCi0gICAgdihkb3VibGUs
IG1pbmltdW1DYWxsVG9Lbm93blJhdGUsIDAuNTEpIFwKLSAgICB2KGJvb2wsIG9wdGltaXplTmF0
aXZlQ2FsbHMsIGZhbHNlKSBcCi0gICAgdihib29sLCBlbmFibGVPYmplY3RBbGxvY2F0aW9uU2lu
a2luZywgdHJ1ZSkgXAotICAgIFwKLSAgICB2KGJvb2wsIGVuYWJsZUNvbmN1cnJlbnRKSVQsIHRy
dWUpIFwKLSAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkRGR0NvbXBpbGVyVGhyZWFkcywgY29tcHV0
ZU51bWJlck9mV29ya2VyVGhyZWFkcygyLCAyKSAtIDEpIFwKLSAgICB2KHVuc2lnbmVkLCBudW1i
ZXJPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZU51bWJlck9mV29ya2VyVGhyZWFkcyg4LCAy
KSAtIDEpIFwKLSAgICB2KGludDMyLCBwcmlvcml0eURlbHRhT2ZERkdDb21waWxlclRocmVhZHMs
IGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJUaHJlYWRzKC0xLCAwKSkgXAotICAgIHYoaW50
MzIsIHByaW9yaXR5RGVsdGFPZkZUTENvbXBpbGVyVGhyZWFkcywgY29tcHV0ZVByaW9yaXR5RGVs
dGFPZldvcmtlclRocmVhZHMoLTIsIDApKSBcCi0gICAgXAotICAgIHYoYm9vbCwgZW5hYmxlUHJv
ZmlsZXIsIGZhbHNlKSBcCi0gICAgXAotICAgIHYoYm9vbCwgZm9yY2VVRGlzODZEaXNhc3NlbWJs
ZXIsIGZhbHNlKSBcCi0gICAgdihib29sLCBmb3JjZUxMVk1EaXNhc3NlbWJsZXIsIGZhbHNlKSBc
Ci0gICAgXAotICAgIHYoYm9vbCwgZW5hYmxlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRp
b25zLCB0cnVlKSBcCi0gICAgXAotICAgIHYoYm9vbCwgYnJlYWtPblRocm93LCBmYWxzZSkgXAot
ICAgIFwKLSAgICB2KHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1
Y3Rpb25Db3VudCwgMTAwMDAwKSBcCi0gICAgXAotICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5j
dGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxODApIFwKLSAgICB2
KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDbG9zdXJlQ2FsbElubGluZUNhbmRpZGF0ZUlu
c3RydWN0aW9uQ291bnQsIDEwMCkgXAotICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZv
ckNvbnN0cnVjdElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDEwMCkgXAorICAgIHYo
Ym9vbCwgc2hvd0Rpc2Fzc2VtYmx5LCBmYWxzZSwgImR1bXBzIGRpc2Fzc2VtYmx5IG9mIGFsbCBK
SVQgY29tcGlsZWQgY29kZSB1cG9uIGNvbXBpbGF0aW9uIikgXAorICAgIHYoYm9vbCwgYXN5bmNE
aXNhc3NlbWJseSwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHNob3dERkdEaXNhc3Nl
bWJseSwgZmFsc2UsICJkdW1wcyBkaXNhc3NlbWJseSBvZiBERkcgZnVuY3Rpb24gdXBvbiBjb21w
aWxhdGlvbiIpIFwKKyAgICB2KGJvb2wsIHNob3dGVExEaXNhc3NlbWJseSwgZmFsc2UsICJkdW1w
cyBkaXNhc3NlbWJseSBvZiBGVEwgZnVuY3Rpb24gdXBvbiBjb21waWxhdGlvbiIpIFwKKyAgICB2
KGJvb2wsIHNob3dBbGxERkdOb2RlcywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KG9wdGlvblJh
bmdlLCBieXRlY29kZVJhbmdlVG9ERkdDb21waWxlLCAwLCAiYnl0ZWNvZGUgc2l6ZSByYW5nZSB0
byBhbGxvdyBERkcgY29tcGlsYXRpb24gb24sIGUuZy4gMToxMDAiKSBcCisgICAgdihvcHRpb25T
dHJpbmcsIGRmZ0Z1bmN0aW9uV2hpdGVsaXN0RmlsZSwgbnVsbHB0ciwgImZpbGUgd2l0aCBsaXN0
IG9mIGZ1bmN0aW9uIHNpZ25hdHVyZXMgdG8gYWxsb3cgREZHIGNvbXBpbGF0aW9uIG9uIikgXAor
ICAgIHYoYm9vbCwgZHVtcFNvdXJjZUF0REZHVGltZSwgZmFsc2UsICJkdW1wcyBzb3VyY2UgY29k
ZSBvZiBKUyBmdW5jdGlvbiBiZWluZyBERkcgY29tcGlsZWQiKSBcCisgICAgdihib29sLCBkdW1w
Qnl0ZWNvZGVBdERGR1RpbWUsIGZhbHNlLCAiZHVtcHMgYnl0ZWNvZGUgb2YgSlMgZnVuY3Rpb24g
YmVpbmcgREZHIGNvbXBpbGVkIikgXAorICAgIHYoYm9vbCwgZHVtcEdyYXBoQWZ0ZXJQYXJzaW5n
LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgZHVtcEdyYXBoQXRFYWNoUGhhc2UsIGZh
bHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2ZXJib3NlREZHQnl0ZUNvZGVQYXJzaW5nLCBm
YWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdmVyYm9zZUNvbXBpbGF0aW9uLCBmYWxzZSwg
bnVsbHB0cikgXAorICAgIHYoYm9vbCwgdmVyYm9zZUZUTENvbXBpbGF0aW9uLCBmYWxzZSwgbnVs
bHB0cikgXAorICAgIHYoYm9vbCwgbG9nQ29tcGlsYXRpb25DaGFuZ2VzLCBmYWxzZSwgbnVsbHB0
cikgXAorICAgIHYoYm9vbCwgcHJpbnRFYWNoT1NSRXhpdCwgZmFsc2UsIG51bGxwdHIpIFwKKyAg
ICB2KGJvb2wsIHZhbGlkYXRlR3JhcGgsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2
YWxpZGF0ZUdyYXBoQXRFYWNoUGhhc2UsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2
ZXJib3NlVmFsaWRhdGlvbkZhaWx1cmUsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2
ZXJib3NlT1NSLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdmVyYm9zZUZUTE9TUkV4
aXQsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2ZXJib3NlQ2FsbExpbmssIGZhbHNl
LCBudWxscHRyKSBcCisgICAgdihib29sLCB2ZXJib3NlQ29tcGlsYXRpb25RdWV1ZSwgZmFsc2Us
IG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHJlcG9ydENvbXBpbGVUaW1lcywgZmFsc2UsICJkdW1w
cyBKUyBmdW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gY29tcGlsZSIp
IFwKKyAgICB2KGJvb2wsIHJlcG9ydEZUTENvbXBpbGVUaW1lcywgZmFsc2UsICJkdW1wcyBKUyBm
dW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gRlRMIGNvbXBpbGUiKSBc
CisgICAgdihib29sLCB2ZXJib3NlQ0ZBLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwg
dmVyYm9zZUZUTFRvSlNUaHVuaywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHZlcmJv
c2VGVExGYWlsdXJlLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgYWx3YXlzQ29tcHV0
ZUhhc2gsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB0ZXN0VGhlRlRMLCBmYWxzZSwg
bnVsbHB0cikgXAorICAgIHYoYm9vbCwgdmVyYm9zZVNhbml0aXplU3RhY2ssIGZhbHNlLCBudWxs
cHRyKSBcCisgICAgdihib29sLCBhbHdheXNEb0Z1bGxDb2xsZWN0aW9uLCBmYWxzZSwgbnVsbHB0
cikgXAorICAgIHYoYm9vbCwgZWFnZXJseVVwZGF0ZVRvcENhbGxGcmFtZSwgZmFsc2UsIG51bGxw
dHIpIFwKKyAgICBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvREZHLCB0cnVlLCBudWxs
cHRyKSBcCisgICAgdihib29sLCBlbmFibGVPU1JFbnRyeVRvRlRMLCB0cnVlLCBudWxscHRyKSBc
CisgICAgXAorICAgIHYoYm9vbCwgdXNlRlRMSklULCB0cnVlLCAiYWxsb3dzIHRoZSBGVEwgSklU
IHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwKKyAgICB2KGJvb2wsIHVzZUZUTFRCQUEsIHRydWUsIG51
bGxwdHIpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUxMVk1GYXN0SVNlbCwgZmFsc2UsIG51bGxwdHIp
IFwKKyAgICB2KGJvb2wsIHVzZUxMVk1TbWFsbENvZGVNb2RlbCwgZmFsc2UsIG51bGxwdHIpIFwK
KyAgICB2KGJvb2wsIGR1bXBMTFZNSVIsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB2
YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2ws
IGxsdm1BbHdheXNGYWlsc0JlZm9yZUNvbXBpbGUsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihi
b29sLCBsbHZtQWx3YXlzRmFpbHNCZWZvcmVMaW5rLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYo
Ym9vbCwgbGx2bVNpbXBsZU9wdCwgdHJ1ZSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGxs
dm1CYWNrZW5kT3B0aW1pemF0aW9uTGV2ZWwsIDIsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVk
LCBsbHZtT3B0aW1pemF0aW9uTGV2ZWwsIDIsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBs
bHZtU2l6ZUxldmVsLCAwLCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgbGx2bU1heFN0YWNr
U2l6ZSwgMTI4ICogS0IsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGxsdm1EaXNhbGxvd0FWWCwg
dHJ1ZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgZnRsQ3Jhc2hlcywgZmFsc2UsIG51bGxwdHIp
IC8qIGZvb2wtcHJvb2Ygd2F5IG9mIGNoZWNraW5nIHRoYXQgeW91IGVuZGVkIHVwIGluIHRoZSBG
VEwuIDstKSAqL1wKKyAgICB2KGJvb2wsIGNsb2JiZXJBbGxSZWdzSW5GVExJQ1Nsb3dQYXRoLCAh
QVNTRVJUX0RJU0FCTEVELCBudWxscHRyKSBcCisgICAgdihib29sLCBhc3N1bWVBbGxSZWdzSW5G
VExJQ0FyZUxpdmUsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCBlbmFibGVBY2Nlc3NJ
bmxpbmluZywgdHJ1ZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnRE
ZXZpcnR1YWxpemF0aW9uLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCBlbmFibGVQb2x5
bW9ycGhpY0FjY2Vzc0lubGluaW5nLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCBlbmFi
bGVQb2x5bW9ycGhpY0NhbGxJbmxpbmluZywgdHJ1ZSwgbnVsbHB0cikgXAorICAgIHYodW5zaWdu
ZWQsIG1heFBvbHltb3JwaGljQ2FsbFZhcmlhbnRMaXN0U2l6ZSwgMTUsIG51bGxwdHIpIFwKKyAg
ICB2KHVuc2lnbmVkLCBtYXhQb2x5bW9ycGhpY0NhbGxWYXJpYW50TGlzdFNpemVGb3JUb3BUaWVy
LCA1LCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgbWF4UG9seW1vcnBoaWNDYWxsVmFyaWFu
dHNGb3JJbmxpbmluZywgNSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGZyZXF1ZW50Q2Fs
bFRocmVzaG9sZCwgMiwgbnVsbHB0cikgXAorICAgIHYoZG91YmxlLCBtaW5pbXVtQ2FsbFRvS25v
d25SYXRlLCAwLjUxLCBudWxscHRyKSBcCisgICAgdihib29sLCBvcHRpbWl6ZU5hdGl2ZUNhbGxz
LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgZW5hYmxlT2JqZWN0QWxsb2NhdGlvblNp
bmtpbmcsIHRydWUsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihib29sLCBlbmFibGVDb25jdXJy
ZW50SklULCB0cnVlLCAiYWxsb3dzIHRoZSBERkcgLyBGVEwgY29tcGlsYXRpb24gaW4gdGhyZWFk
cyBvdGhlciB0aGFuIHRoZSBleGVjdXRpbmcgSlMgdGhyZWFkIikgXAorICAgIHYodW5zaWduZWQs
IG51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRz
KDIsIDIpIC0gMSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIG51bWJlck9mRlRMQ29tcGls
ZXJUaHJlYWRzLCBjb21wdXRlTnVtYmVyT2ZXb3JrZXJUaHJlYWRzKDgsIDIpIC0gMSwgbnVsbHB0
cikgXAorICAgIHYoaW50MzIsIHByaW9yaXR5RGVsdGFPZkRGR0NvbXBpbGVyVGhyZWFkcywgY29t
cHV0ZVByaW9yaXR5RGVsdGFPZldvcmtlclRocmVhZHMoLTEsIDApLCBudWxscHRyKSBcCisgICAg
dihpbnQzMiwgcHJpb3JpdHlEZWx0YU9mRlRMQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlUHJpb3Jp
dHlEZWx0YU9mV29ya2VyVGhyZWFkcygtMiwgMCksIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihi
b29sLCBlbmFibGVQcm9maWxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihib29s
LCBmb3JjZVVEaXM4NkRpc2Fzc2VtYmxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2ws
IGZvcmNlTExWTURpc2Fzc2VtYmxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihi
b29sLCBlbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMsIHRydWUsIG51bGxw
dHIpIFwKKyAgICBcCisgICAgdihib29sLCBicmVha09uVGhyb3csIGZhbHNlLCBudWxscHRyKSBc
CisgICAgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0
cnVjdGlvbkNvdW50LCAxMDAwMDAsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdih1bnNpZ25lZCwg
bWF4aW11bUZ1bmN0aW9uRm9yQ2FsbElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDE4
MCwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNsb3N1cmVD
YWxsSW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTAwLCBudWxscHRyKSBcCisgICAg
dih1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlkYXRlSW5z
dHJ1Y3Rpb25Db3VudCwgMTAwLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYodW5zaWduZWQsIG1h
eGltdW1GVExDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAyMDAwMCkgXAorICAgIHYodW5zaWdu
ZWQsIG1heGltdW1GVExDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAyMDAwMCwgbnVsbHB0cikg
XAogICAgIFwKICAgICAvKiBEZXB0aCBvZiBpbmxpbmUgc3RhY2ssIHNvIDEgPSBubyBpbmxpbmlu
ZywgMiA9IG9uZSBsZXZlbCwgZXRjLiAqLyBcCi0gICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGlu
aW5nRGVwdGgsIDUpIFwKLSAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdSZWN1cnNpb24s
IDIpIFwKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSwgIm1heGltdW0g
YWxsb3dlZCBpbmxpbmluZyBkZXB0aC4gIERlcHRoIG9mIDEgbWVhbnMgbm8gaW5saW5pbmciKSBc
CisgICAgdih1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nUmVjdXJzaW9uLCAyLCBudWxscHRyKSBc
CiAgICAgXAotICAgIHYodW5zaWduZWQsIG1heGltdW1MTFZNSW5zdHJ1Y3Rpb25Db3VudEZvck5h
dGl2ZUlubGluaW5nLCA4MCkgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1MTFZNSW5zdHJ1Y3Rp
b25Db3VudEZvck5hdGl2ZUlubGluaW5nLCA4MCwgbnVsbHB0cikgXAogICAgIFwKICAgICAvKiBN
YXhpbXVtIHNpemUgb2YgYSBjYWxsZXIgZm9yIGVuYWJsaW5nIGlubGluaW5nLiBUaGlzIGlzIHB1
cmVseSB0byBwcm90ZWN0IHVzICovXAogICAgIC8qIGZyb20gc3VwZXIgbG9uZyBjb21waWxlcyB0
aGF0IHRha2UgYSBsb3Qgb2YgbWVtb3J5LiAqL1wKLSAgICB2KHVuc2lnbmVkLCBtYXhpbXVtSW5s
aW5pbmdDYWxsZXJTaXplLCAxMDAwMCkgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1Jbmxpbmlu
Z0NhbGxlclNpemUsIDEwMDAwLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYodW5zaWduZWQsIG1h
eGltdW1WYXJhcmdzRm9ySW5saW5pbmcsIDEwMCkgXAorICAgIHYodW5zaWduZWQsIG1heGltdW1W
YXJhcmdzRm9ySW5saW5pbmcsIDEwMCwgbnVsbHB0cikgXAogICAgIFwKLSAgICB2KGJvb2wsIGVu
YWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nLCB0cnVlKSBcCi0gICAgdihib29sLCBlbmFibGVQ
b2x5dmFyaWFudEJ5SWRJbmxpbmluZywgdHJ1ZSkgXAorICAgIHYoYm9vbCwgZW5hYmxlUG9seXZh
cmlhbnRDYWxsSW5saW5pbmcsIHRydWUsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIGVuYWJsZVBv
bHl2YXJpYW50QnlJZElubGluaW5nLCB0cnVlLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYodW5z
aWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0Y2hDYXNlTGVuZ3RoLCA1MCkgXAotICAgIHYo
dW5zaWduZWQsIG1heGltdW1CaW5hcnlTdHJpbmdTd2l0Y2hUb3RhbExlbmd0aCwgMjAwMCkgXAot
ICAgIFwKLSAgICB2KGludDMyLCB0aHJlc2hvbGRGb3JKSVRBZnRlcldhcm1VcCwgNTAwKSBcCi0g
ICAgdihpbnQzMiwgdGhyZXNob2xkRm9ySklUU29vbiwgMTAwKSBcCi0gICAgXAotICAgIHYoaW50
MzIsIHRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJXYXJtVXAsIDEwMDApIFwKLSAgICB2KGludDMy
LCB0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCwgMTAwMCkgXAotICAgIHYoaW50
MzIsIHRocmVzaG9sZEZvck9wdGltaXplU29vbiwgMTAwMCkgXAotICAgIHYoaW50MzIsIGV4ZWN1
dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JMb29wLCAxKSBcCi0gICAgdihpbnQzMiwgZXhlY3V0aW9u
Q291bnRlckluY3JlbWVudEZvckVudHJ5LCAxNSkgXAotICAgIFwKLSAgICB2KGludDMyLCB0aHJl
c2hvbGRGb3JGVExPcHRpbWl6ZUFmdGVyV2FybVVwLCAxMDAwMDApIFwKLSAgICB2KGludDMyLCB0
aHJlc2hvbGRGb3JGVExPcHRpbWl6ZVNvb24sIDEwMDApIFwKLSAgICB2KGludDMyLCBmdGxUaWVy
VXBDb3VudGVySW5jcmVtZW50Rm9yTG9vcCwgMSkgXAotICAgIHYoaW50MzIsIGZ0bFRpZXJVcENv
dW50ZXJJbmNyZW1lbnRGb3JSZXR1cm4sIDE1KSBcCi0gICAgdih1bnNpZ25lZCwgZnRsT1NSRW50
cnlGYWlsdXJlQ291bnRGb3JSZW9wdGltaXphdGlvbiwgMTUpIFwKLSAgICB2KHVuc2lnbmVkLCBm
dGxPU1JFbnRyeVJldHJ5VGhyZXNob2xkLCAxMDApIFwKLSAgICBcCi0gICAgdihpbnQzMiwgZXZh
bFRocmVzaG9sZE11bHRpcGxpZXIsIDEwKSBcCi0gICAgdih1bnNpZ25lZCwgbWF4aW11bUV2YWxD
YWNoZWFibGVTb3VyY2VMZW5ndGgsIDI1NikgXAotICAgIFwKLSAgICB2KGJvb2wsIHJhbmRvbWl6
ZUV4ZWN1dGlvbkNvdW50c0JldHdlZW5DaGVja3BvaW50cywgZmFsc2UpIFwKLSAgICB2KGludDMy
LCBtYXhpbXVtRXhlY3V0aW9uQ291bnRzQmV0d2VlbkNoZWNrcG9pbnRzRm9yQmFzZWxpbmUsIDEw
MDApIFwKLSAgICB2KGludDMyLCBtYXhpbXVtRXhlY3V0aW9uQ291bnRzQmV0d2VlbkNoZWNrcG9p
bnRzRm9yVXBwZXJUaWVycywgNTAwMDApIFwKLSAgICBcCi0gICAgdih1bnNpZ25lZCwgbGlrZWx5
VG9UYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQsIDIwKSBcCi0gICAgdih1bnNpZ25lZCwgY291bGRU
YWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQsIDEwKSBcCi0gICAgXAotICAgIHYodW5zaWduZWQsIG9z
ckV4aXRDb3VudEZvclJlb3B0aW1pemF0aW9uLCAxMDApIFwKLSAgICB2KHVuc2lnbmVkLCBvc3JF
eGl0Q291bnRGb3JSZW9wdGltaXphdGlvbkZyb21Mb29wLCA1KSBcCi0gICAgXAotICAgIHYodW5z
aWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4LCAwKSAgXAotICAgIFwKLSAgICB2
KHVuc2lnbmVkLCBtaW5pbXVtT3B0aW1pemF0aW9uRGVsYXksIDEpIFwKLSAgICB2KHVuc2lnbmVk
LCBtYXhpbXVtT3B0aW1pemF0aW9uRGVsYXksIDUpIFwKLSAgICB2KGRvdWJsZSwgZGVzaXJlZFBy
b2ZpbGVMaXZlbmVzc1JhdGUsIDAuNzUpIFwKLSAgICB2KGRvdWJsZSwgZGVzaXJlZFByb2ZpbGVG
dWxsbmVzc1JhdGUsIDAuMzUpIFwKLSAgICBcCi0gICAgdihkb3VibGUsIGRvdWJsZVZvdGVSYXRp
b0ZvckRvdWJsZUZvcm1hdCwgMikgXAotICAgIHYoZG91YmxlLCBzdHJ1Y3R1cmVDaGVja1ZvdGVS
YXRpb0ZvckhvaXN0aW5nLCAxKSBcCi0gICAgdihkb3VibGUsIGNoZWNrQXJyYXlWb3RlUmF0aW9G
b3JIb2lzdGluZywgMSkgXAotICAgIFwKLSAgICB2KHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZT
Y2Fuc0JldHdlZW5SZWJhbGFuY2UsIDEwMCkgXAotICAgIHYodW5zaWduZWQsIG51bWJlck9mR0NN
YXJrZXJzLCBjb21wdXRlTnVtYmVyT2ZHQ01hcmtlcnMoNykpIFwKLSAgICB2KHVuc2lnbmVkLCBv
cGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsIDEwMDApIFwKLSAgICB2KGRvdWJsZSwgbWluSGVhcFV0
aWxpemF0aW9uLCAwLjgpIFwKLSAgICB2KGRvdWJsZSwgbWluQ29waWVkQmxvY2tVdGlsaXphdGlv
biwgMC45KSBcCi0gICAgdihkb3VibGUsIG1pbk1hcmtlZEJsb2NrVXRpbGl6YXRpb24sIDAuOSkg
XAotICAgIHYodW5zaWduZWQsIHNsb3dQYXRoQWxsb2NzQmV0d2VlbkdDcywgMCkgXAotICAgIFwK
LSAgICB2KGRvdWJsZSwgcGVyY2VudENQVVBlck1CRm9yRnVsbFRpbWVyLCAwLjAwMDMxMjUpIFwK
LSAgICB2KGRvdWJsZSwgcGVyY2VudENQVVBlck1CRm9yRWRlblRpbWVyLCAwLjAwMjUpIFwKLSAg
ICB2KGRvdWJsZSwgY29sbGVjdGlvblRpbWVyTWF4UGVyY2VudENQVSwgMC4wNSkgXAotICAgIFwK
LSAgICB2KGJvb2wsIGZvcmNlV2Vha1JhbmRvbVNlZWQsIGZhbHNlKSBcCi0gICAgdih1bnNpZ25l
ZCwgZm9yY2VkV2Vha1JhbmRvbVNlZWQsIDApIFwKLSAgICBcCi0gICAgdihib29sLCB1c2Vab21i
aWVNb2RlLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgb2JqZWN0c0FyZUltbW9ydGFsLCBmYWxzZSkg
XAotICAgIHYoYm9vbCwgc2hvd09iamVjdFN0YXRpc3RpY3MsIGZhbHNlKSBcCi0gICAgXAotICAg
IHYoZ2NMb2dMZXZlbCwgbG9nR0MsIEdDTG9nZ2luZzo6Tm9uZSkgXAotICAgIHYoYm9vbCwgZGlz
YWJsZUdDLCBmYWxzZSkgXAotICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDApIFwKLSAg
ICB2KGJvb2wsIHJlY29yZEdDUGF1c2VUaW1lcywgZmFsc2UpIFwKLSAgICB2KGJvb2wsIGxvZ0hl
YXBTdGF0aXN0aWNzQXRFeGl0LCBmYWxzZSkgXAotICAgIHYoYm9vbCwgZW5hYmxlVHlwZVByb2Zp
bGVyLCBmYWxzZSkgXAotICAgIHYoYm9vbCwgZW5hYmxlQ29udHJvbEZsb3dQcm9maWxlciwgZmFs
c2UpIFwKLSAgICBcCi0gICAgdihib29sLCB2ZXJpZnlIZWFwLCBmYWxzZSkgXAotICAgIHYodW5z
aWduZWQsIG51bWJlck9mR0NDeWNsZXNUb1JlY29yZEZvclZlcmlmaWNhdGlvbiwgMykgXAotICAg
IFwKLSAgICB2KGJvb2wsIGVuYWJsZUV4Y2VwdGlvbkZ1enosIGZhbHNlKSBcCi0gICAgdih1bnNp
Z25lZCwgZmlyZUV4Y2VwdGlvbkZ1enpBdCwgMCkgXAotICAgIFwKLSAgICB2KGJvb2wsIGVuYWJs
ZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eiwgZmFsc2UpIFwKLSAgICB2KHVuc2lnbmVkLCBmaXJl
RXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXQsIDApIFwKLSAgICB2KHVuc2lnbmVkLCBmaXJlRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFmdGVyLCAwKSBcCi0gICAgdihib29sLCB2ZXJib3Nl
RXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LCBmYWxzZSkKKyAgICB2KHVuc2lnbmVkLCBtYXhpbXVt
QmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTAsIG51bGxwdHIpIFwKKyAgICB2KHVuc2ln
bmVkLCBtYXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgsIDIwMDAsIG51bGxwdHIp
IFwKKyAgICBcCisgICAgdihpbnQzMiwgdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXAsIDUwMCwg
bnVsbHB0cikgXAorICAgIHYoaW50MzIsIHRocmVzaG9sZEZvckpJVFNvb24sIDEwMCwgbnVsbHB0
cikgXAorICAgIFwKKyAgICB2KGludDMyLCB0aHJlc2hvbGRGb3JPcHRpbWl6ZUFmdGVyV2FybVVw
LCAxMDAwLCBudWxscHRyKSBcCisgICAgdihpbnQzMiwgdGhyZXNob2xkRm9yT3B0aW1pemVBZnRl
ckxvbmdXYXJtVXAsIDEwMDAsIG51bGxwdHIpIFwKKyAgICB2KGludDMyLCB0aHJlc2hvbGRGb3JP
cHRpbWl6ZVNvb24sIDEwMDAsIG51bGxwdHIpIFwKKyAgICB2KGludDMyLCBleGVjdXRpb25Db3Vu
dGVySW5jcmVtZW50Rm9yTG9vcCwgMSwgbnVsbHB0cikgXAorICAgIHYoaW50MzIsIGV4ZWN1dGlv
bkNvdW50ZXJJbmNyZW1lbnRGb3JFbnRyeSwgMTUsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihp
bnQzMiwgdGhyZXNob2xkRm9yRlRMT3B0aW1pemVBZnRlcldhcm1VcCwgMTAwMDAwLCBudWxscHRy
KSBcCisgICAgdihpbnQzMiwgdGhyZXNob2xkRm9yRlRMT3B0aW1pemVTb29uLCAxMDAwLCBudWxs
cHRyKSBcCisgICAgdihpbnQzMiwgZnRsVGllclVwQ291bnRlckluY3JlbWVudEZvckxvb3AsIDEs
IG51bGxwdHIpIFwKKyAgICB2KGludDMyLCBmdGxUaWVyVXBDb3VudGVySW5jcmVtZW50Rm9yUmV0
dXJuLCAxNSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGZ0bE9TUkVudHJ5RmFpbHVyZUNv
dW50Rm9yUmVvcHRpbWl6YXRpb24sIDE1LCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgZnRs
T1NSRW50cnlSZXRyeVRocmVzaG9sZCwgMTAwLCBudWxscHRyKSBcCisgICAgXAorICAgIHYoaW50
MzIsIGV2YWxUaHJlc2hvbGRNdWx0aXBsaWVyLCAxMCwgbnVsbHB0cikgXAorICAgIHYodW5zaWdu
ZWQsIG1heGltdW1FdmFsQ2FjaGVhYmxlU291cmNlTGVuZ3RoLCAyNTYsIG51bGxwdHIpIFwKKyAg
ICBcCisgICAgdihib29sLCByYW5kb21pemVFeGVjdXRpb25Db3VudHNCZXR3ZWVuQ2hlY2twb2lu
dHMsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihpbnQzMiwgbWF4aW11bUV4ZWN1dGlvbkNvdW50
c0JldHdlZW5DaGVja3BvaW50c0ZvckJhc2VsaW5lLCAxMDAwLCBudWxscHRyKSBcCisgICAgdihp
bnQzMiwgbWF4aW11bUV4ZWN1dGlvbkNvdW50c0JldHdlZW5DaGVja3BvaW50c0ZvclVwcGVyVGll
cnMsIDUwMDAwLCBudWxscHRyKSBcCisgICAgXAorICAgIHYodW5zaWduZWQsIGxpa2VseVRvVGFr
ZVNsb3dDYXNlTWluaW11bUNvdW50LCAyMCwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGNv
dWxkVGFrZVNsb3dDYXNlTWluaW11bUNvdW50LCAxMCwgbnVsbHB0cikgXAorICAgIFwKKyAgICB2
KHVuc2lnbmVkLCBvc3JFeGl0Q291bnRGb3JSZW9wdGltaXphdGlvbiwgMTAwLCBudWxscHRyKSBc
CisgICAgdih1bnNpZ25lZCwgb3NyRXhpdENvdW50Rm9yUmVvcHRpbWl6YXRpb25Gcm9tTG9vcCwg
NSwgbnVsbHB0cikgXAorICAgIFwKKyAgICB2KHVuc2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5
Q291bnRlck1heCwgMCwgbnVsbHB0cikgIFwKKyAgICBcCisgICAgdih1bnNpZ25lZCwgbWluaW11
bU9wdGltaXphdGlvbkRlbGF5LCAxLCBudWxscHRyKSBcCisgICAgdih1bnNpZ25lZCwgbWF4aW11
bU9wdGltaXphdGlvbkRlbGF5LCA1LCBudWxscHRyKSBcCisgICAgdihkb3VibGUsIGRlc2lyZWRQ
cm9maWxlTGl2ZW5lc3NSYXRlLCAwLjc1LCBudWxscHRyKSBcCisgICAgdihkb3VibGUsIGRlc2ly
ZWRQcm9maWxlRnVsbG5lc3NSYXRlLCAwLjM1LCBudWxscHRyKSBcCisgICAgXAorICAgIHYoZG91
YmxlLCBkb3VibGVWb3RlUmF0aW9Gb3JEb3VibGVGb3JtYXQsIDIsIG51bGxwdHIpIFwKKyAgICB2
KGRvdWJsZSwgc3RydWN0dXJlQ2hlY2tWb3RlUmF0aW9Gb3JIb2lzdGluZywgMSwgbnVsbHB0cikg
XAorICAgIHYoZG91YmxlLCBjaGVja0FycmF5Vm90ZVJhdGlvRm9ySG9pc3RpbmcsIDEsIG51bGxw
dHIpIFwKKyAgICBcCisgICAgdih1bnNpZ25lZCwgbWluaW11bU51bWJlck9mU2NhbnNCZXR3ZWVu
UmViYWxhbmNlLCAxMDAsIG51bGxwdHIpIFwKKyAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkdDTWFy
a2VycywgY29tcHV0ZU51bWJlck9mR0NNYXJrZXJzKDcpLCBudWxscHRyKSBcCisgICAgdih1bnNp
Z25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAxMDAwLCBudWxscHRyKSBcCisgICAgdihk
b3VibGUsIG1pbkhlYXBVdGlsaXphdGlvbiwgMC44LCBudWxscHRyKSBcCisgICAgdihkb3VibGUs
IG1pbkNvcGllZEJsb2NrVXRpbGl6YXRpb24sIDAuOSwgbnVsbHB0cikgXAorICAgIHYoZG91Ymxl
LCBtaW5NYXJrZWRCbG9ja1V0aWxpemF0aW9uLCAwLjksIG51bGxwdHIpIFwKKyAgICB2KHVuc2ln
bmVkLCBzbG93UGF0aEFsbG9jc0JldHdlZW5HQ3MsIDAsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIHRy
aWdnZXIgYSBHQyBmb3IgZXZlcnkgY291bnQgb2YgdGhpcyBudW1iZXIgb2Ygc2xvdyBwYXRoIGFs
bG9jcyIpIFwKKyAgICBcCisgICAgdihkb3VibGUsIHBlcmNlbnRDUFVQZXJNQkZvckZ1bGxUaW1l
ciwgMC4wMDAzMTI1LCBudWxscHRyKSBcCisgICAgdihkb3VibGUsIHBlcmNlbnRDUFVQZXJNQkZv
ckVkZW5UaW1lciwgMC4wMDI1LCBudWxscHRyKSBcCisgICAgdihkb3VibGUsIGNvbGxlY3Rpb25U
aW1lck1heFBlcmNlbnRDUFUsIDAuMDUsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihib29sLCBm
b3JjZVdlYWtSYW5kb21TZWVkLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIGZv
cmNlZFdlYWtSYW5kb21TZWVkLCAwLCBudWxscHRyKSBcCisgICAgXAorICAgIHYoYm9vbCwgdXNl
Wm9tYmllTW9kZSwgZmFsc2UsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIHNjcmliYmxlIG92ZXIgZGVh
ZCBvYmplY3RzIHdpdGggMHhkZWFkYmVlZiIpIFwKKyAgICB2KGJvb2wsIG9iamVjdHNBcmVJbW1v
cnRhbCwgZmFsc2UsICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIGtlZXAgYWxsIG9iamVjdHMgYWxpdmUg
Zm9yZXZlciIpIFwKKyAgICB2KGJvb2wsIHNob3dPYmplY3RTdGF0aXN0aWNzLCBmYWxzZSwgbnVs
bHB0cikgXAorICAgIFwKKyAgICB2KGdjTG9nTGV2ZWwsIGxvZ0dDLCBHQ0xvZ2dpbmc6Ok5vbmUs
ICJkZWJ1Z2dpbmcgb3B0aW9uIHRvIGxvZyBHQyBhY3Rpdml0eSAoMCA9IE5vbmUsIDEgPSBCYXNp
YywgMiA9IFZlcmJvc2UpIikgXAorICAgIHYoYm9vbCwgZGlzYWJsZUdDLCBmYWxzZSwgbnVsbHB0
cikgXAorICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDAsIG51bGxwdHIpIFwKKyAgICB2
KGJvb2wsIHJlY29yZEdDUGF1c2VUaW1lcywgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2ws
IGxvZ0hlYXBTdGF0aXN0aWNzQXRFeGl0LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwg
ZW5hYmxlVHlwZVByb2ZpbGVyLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgZW5hYmxl
Q29udHJvbEZsb3dQcm9maWxlciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICBcCisgICAgdihib29s
LCB2ZXJpZnlIZWFwLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYodW5zaWduZWQsIG51bWJlck9m
R0NDeWNsZXNUb1JlY29yZEZvclZlcmlmaWNhdGlvbiwgMywgbnVsbHB0cikgXAorICAgIFwKKyAg
ICB2KGJvb2wsIGVuYWJsZUV4Y2VwdGlvbkZ1enosIGZhbHNlLCBudWxscHRyKSBcCisgICAgdih1
bnNpZ25lZCwgZmlyZUV4Y2VwdGlvbkZ1enpBdCwgMCwgbnVsbHB0cikgXAorICAgIFwKKyAgICB2
KGJvb2wsIGVuYWJsZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eiwgZmFsc2UsIG51bGxwdHIpIFwK
KyAgICB2KHVuc2lnbmVkLCBmaXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXQsIDAsIG51bGxw
dHIpIFwKKyAgICB2KHVuc2lnbmVkLCBmaXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXRPckFm
dGVyLCAwLCBudWxscHRyKSBcCisgICAgdihib29sLCB2ZXJib3NlRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6LCBmYWxzZSwgbnVsbHB0cikKIAogY2xhc3MgT3B0aW9ucyB7CiBwdWJsaWM6CisgICAg
ZW51bSBjbGFzcyBEdW1wTGV2ZWwgeworICAgICAgICBOb25lID0gMCwKKyAgICAgICAgT3ZlcnJp
ZGRlbiwKKyAgICAgICAgQWxsLAorICAgICAgICBWZXJib3NlCisgICAgfTsKKyAgICAKICAgICAv
LyBUaGlzIHR5cGVkZWYgaXMgdG8gYWxsb3cgdXMgdG8gZWxpbWluYXRlIHRoZSAnXycgaW4gdGhl
IGZpZWxkIG5hbWUgaW4KICAgICAvLyB1bmlvbiBpbnNpZGUgRW50cnkuIFRoaXMgaXMgbmVlZGVk
IHRvIGtlZXAgdGhlIHN0eWxlIGNoZWNrZXIgaGFwcHkuCiAgICAgdHlwZWRlZiBpbnQzMl90IGlu
dDMyOwogCiAgICAgLy8gRGVjbGFyZSB0aGUgb3B0aW9uIElEczoKICAgICBlbnVtIE9wdGlvbklE
IHsKLSNkZWZpbmUgRk9SX0VBQ0hfT1BUSU9OKHR5cGVfLCBuYW1lXywgZGVmYXVsdFZhbHVlXykg
XAorI2RlZmluZSBGT1JfRUFDSF9PUFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBk
ZXNjcmlwdGlvbl8pIFwKICAgICAgICAgT1BUXyMjbmFtZV8sCiAgICAgICAgIEpTQ19PUFRJT05T
KEZPUl9FQUNIX09QVElPTikKICN1bmRlZiBGT1JfRUFDSF9PUFRJT04KQEAgLTMyMywxMyArMzMy
LDEzIEBAIHB1YmxpYzoKICAgICAvLyBQYXJzZXMgYSBzaW5nbGUgY29tbWFuZCBsaW5lIG9wdGlv
biBpbiB0aGUgZm9ybWF0ICI8b3B0aW9uTmFtZT49PHZhbHVlPiIKICAgICAvLyAobm8gc3BhY2Vz
IGFsbG93ZWQpIGFuZCBzZXQgdGhlIHNwZWNpZmllZCBvcHRpb24gaWYgYXBwcm9wcmlhdGUuCiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGJvb2wgc2V0T3B0aW9uKGNvbnN0IGNoYXIqIGFy
Zyk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZHVtcEFsbE9wdGlvbnMoRklM
RSogc3RyZWFtID0gc3Rkb3V0KTsKLSAgICBzdGF0aWMgdm9pZCBkdW1wT3B0aW9uKE9wdGlvbklE
IGlkLCBGSUxFKiBzdHJlYW0gPSBzdGRvdXQsIGNvbnN0IGNoYXIqIGhlYWRlciA9ICIiLCBjb25z
dCBjaGFyKiBmb290ZXIgPSAiIik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQg
ZHVtcEFsbE9wdGlvbnMoRHVtcExldmVsLCBjb25zdCBjaGFyKiB0aXRsZSA9IG51bGxwdHIsIEZJ
TEUqIHN0cmVhbSA9IHN0ZG91dCk7CisgICAgc3RhdGljIHZvaWQgZHVtcE9wdGlvbihEdW1wTGV2
ZWwsIE9wdGlvbklELCBGSUxFKiBzdHJlYW0gPSBzdGRvdXQsIGNvbnN0IGNoYXIqIGhlYWRlciA9
ICIiLCBjb25zdCBjaGFyKiBmb290ZXIgPSAiIik7CiAKICAgICAvLyBEZWNsYXJlIGFjY2Vzc29y
cyBmb3IgZWFjaCBvcHRpb246Ci0jZGVmaW5lIEZPUl9FQUNIX09QVElPTih0eXBlXywgbmFtZV8s
IGRlZmF1bHRWYWx1ZV8pIFwKLSAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyB0eXBlXyYgbmFtZV8o
KSB7IHJldHVybiBzX29wdGlvbnNbT1BUXyMjbmFtZV9dLnUudHlwZV8jI1ZhbDsgfSBcCi0gICAg
c3RhdGljIGJvb2wgbmFtZV8jI1dhc092ZXJyaWRkZW4oKSB7IHJldHVybiBzX29wdGlvbnNbT1BU
XyMjbmFtZV9dLmRpZE92ZXJyaWRlOyB9CisjZGVmaW5lIEZPUl9FQUNIX09QVElPTih0eXBlXywg
bmFtZV8sIGRlZmF1bHRWYWx1ZV8sIGRlc2NyaXB0aW9uXykgXAorICAgIEFMV0FZU19JTkxJTkUg
c3RhdGljIHR5cGVfJiBuYW1lXygpIHsgcmV0dXJuIHNfb3B0aW9uc1tPUFRfIyNuYW1lX10udHlw
ZV8jI1ZhbDsgfSBcCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgdHlwZV8mIG5hbWVfIyNEZWZh
dWx0KCkgeyByZXR1cm4gc19kZWZhdWx0T3B0aW9uc1tPUFRfIyNuYW1lX10udHlwZV8jI1ZhbDsg
fQogCiAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09Q
VElPTgpAQCAtMzQ2LDM1ICszNTUsNDUgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgLy8gRm9y
IHN0b3JpbmcgZm9yIGFuIG9wdGlvbiB2YWx1ZToKLSAgICBzdHJ1Y3QgRW50cnkgewotICAgICAg
ICB1bmlvbiB7Ci0gICAgICAgICAgICBib29sIGJvb2xWYWw7Ci0gICAgICAgICAgICB1bnNpZ25l
ZCB1bnNpZ25lZFZhbDsKLSAgICAgICAgICAgIGRvdWJsZSBkb3VibGVWYWw7Ci0gICAgICAgICAg
ICBpbnQzMiBpbnQzMlZhbDsKLSAgICAgICAgICAgIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlVmFs
OwotICAgICAgICAgICAgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nVmFsOwotICAgICAgICAgICAg
R0NMb2dnaW5nOjpMZXZlbCBnY0xvZ0xldmVsVmFsOwotICAgICAgICB9IHU7Ci0gICAgICAgIGJv
b2wgZGlkT3ZlcnJpZGU7CisgICAgdW5pb24gRW50cnkgeworICAgICAgICBib29sIGJvb2xWYWw7
CisgICAgICAgIHVuc2lnbmVkIHVuc2lnbmVkVmFsOworICAgICAgICBkb3VibGUgZG91YmxlVmFs
OworICAgICAgICBpbnQzMiBpbnQzMlZhbDsKKyAgICAgICAgT3B0aW9uUmFuZ2Ugb3B0aW9uUmFu
Z2VWYWw7CisgICAgICAgIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZ1ZhbDsKKyAgICAgICAgR0NM
b2dnaW5nOjpMZXZlbCBnY0xvZ0xldmVsVmFsOworICAgIH07CisKKyAgICBjbGFzcyBPcHRpb24g
eworICAgIHB1YmxpYzoKKyAgICAgICAgT3B0aW9uKEVudHJ5VHlwZSB0eXBlLCBFbnRyeSYgZW50
cnkpCisgICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBtX2VudHJ5KGVu
dHJ5KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIGR1bXAoRklMRSopIGNv
bnN0OworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgT3B0aW9uJiBvdGhlcikgY29uc3Q7
CisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBPcHRpb24mIG90aGVyKSBjb25zdCB7IHJl
dHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgRW50cnlU
eXBlIG1fdHlwZTsKKyAgICAgICAgRW50cnkmIG1fZW50cnk7CiAgICAgfTsKIAogICAgIC8vIEZv
ciBzdG9yaW5nIGNvbnN0YW50IG1ldGEgZGF0YSBhYm91dCBlYWNoIG9wdGlvbjoKICAgICBzdHJ1
Y3QgRW50cnlJbmZvIHsKICAgICAgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICAgICAgY29uc3Qg
Y2hhciogZGVzY3JpcHRpb247CiAgICAgICAgIEVudHJ5VHlwZSB0eXBlOwogICAgIH07CiAKICAg
ICBPcHRpb25zKCk7CiAKLSAgICAvLyBEZWNsYXJlIHRoZSBvcHRpb25zOgotI2RlZmluZSBGT1Jf
RUFDSF9PUFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfKSBcCi0gICAgdHlwZV8gbV8j
I25hbWVfOwotICAgIEpTQ19PUFRJT05TKEZPUl9FQUNIX09QVElPTikKLSN1bmRlZiBGT1JfRUFD
SF9PUFRJT04KLQogICAgIC8vIERlY2xhcmUgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUg
b3B0aW9ucyBzdG9yZToKICAgICBKU19FWFBPUlREQVRBIHN0YXRpYyBFbnRyeSBzX29wdGlvbnNb
bnVtYmVyT2ZPcHRpb25zXTsKKyAgICBzdGF0aWMgRW50cnkgc19kZWZhdWx0T3B0aW9uc1tudW1i
ZXJPZk9wdGlvbnNdOwogICAgIHN0YXRpYyBjb25zdCBFbnRyeUluZm8gc19vcHRpb25zSW5mb1tu
dW1iZXJPZk9wdGlvbnNdOwogfTsKIAo=
</data>
<flag name="review"
          id="274867"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>