<?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>178634</bug_id>
          
          <creation_ts>2017-10-21 13:59:36 -0700</creation_ts>
          <short_desc>[Settings] Replace current Settings generation with template file based approach</short_desc>
          <delta_ts>2022-02-28 03:28:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>178637</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>joepeck</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1363070</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-21 13:59:36 -0700</bug_when>
    <thetext>[Settings] Replace current Settings generation with template file based approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363073</commentid>
    <comment_count>1</comment_count>
      <attachid>324504</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-21 14:15:09 -0700</bug_when>
    <thetext>Created attachment 324504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363161</commentid>
    <comment_count>2</comment_count>
      <attachid>324531</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-22 12:56:00 -0700</bug_when>
    <thetext>Created attachment 324531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363187</commentid>
    <comment_count>3</comment_count>
      <attachid>324531</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-10-22 18:29:13 -0700</bug_when>
    <thetext>Comment on attachment 324531
Patch

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

Almost all my comments are style suggestions that you should feel free to ignore as we don&apos;t really have a strict ruby style.

&gt; Source/WebCore/Scripts/GenerateSettings.rb:48
&gt; +  exit(-1)

Style: Probably not normal ruby style to have parenthesis with exit. They could be dropped.

&gt; Source/WebCore/Scripts/GenerateSettings.rb:75
&gt; +    @type = opts[&quot;type&quot;] || &quot;bool&quot;
&gt; +    @initial = opts[&apos;initial&apos;]

Style: Odd mix of double quoted and single quoted strings throughout this file. Would be good to settle on some kind of consistency

&gt; Source/WebCore/Scripts/GenerateSettings.rb:83
&gt; +  def valueType?()
&gt; +    return @type != &apos;String&apos; &amp;&amp; @type != &apos;URL&apos;
&gt; +  end

Style: The `return` keyword is not necessary here. In fact, I don&apos;t think a single `return` in this file is necessary, and just removing them should get the exact same behavior. Each statement returns a value and functions return the value of the last statement. So this could be written without the return. In this case each return is the last (or part of the last statement) being run.

Style: Parenthesis in the method declarations are not necessary. In cases where there are no parameters it is often clearer to leave them off. For instance here you could write this as just `def valueType?`. You already make use of it below without parenthesis. That said, I do think we should keep parenthesis in method declarations and call sites that take parameters (like the initializer declaration and starts_with? uses below).

&gt; Source/WebCore/Scripts/GenerateSettings.rb:167
&gt; +    conditionalsMap = { }

Style: Weird to have the space in the hash initializer.

&gt; Source/WebCore/Scripts/GenerateSettings.rb:173
&gt; +      if not conditionalsMap[setting.conditional]
&gt; +        conditionalsMap[setting.conditional] = []
&gt; +      end
&gt; +
&gt; +      conditionalsMap[setting.conditional] &lt;&lt; setting

Style: Weird to have the `not` instead of just using `!` here.

The loop body might read easier in the Perl style, but maybe we should avoid it:

    conditionalsMap[setting.conditional] = [] if !conditionalsMap[setting.conditional]
    conditionalsMap[setting.conditional] &lt;&lt; setting

&gt; Source/WebCore/Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb:51
&gt; +    Page* m_page;

Page&amp;? It is assumed to be non-null and valid.

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:55
&gt; +&lt;%- for @setting in @unconditionalBoolSetting do -%&gt;

Are bools are packed at the end to save size? Nice!

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:56
&gt; +    , m_&lt;%= @setting.name %&gt;(&lt;%= @setting.initial %&gt;)

Nit: We may want to move us to {} initializers. I&apos;ve been agnostic but I&apos;ve seen others moving in this direction.
&lt;https://webkit.org/b/176058&gt; [Code Style] Use uniform initializer syntax in member initializer list

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:72
&gt; +Settings::~Settings()
&gt; +{
&gt; +}

Nit: Another recent change just changed all of these to use &quot;= default;&quot;. I didn&apos;t understand why, but it might be good to move in that direction.
&lt;https://webkit.org/b/178528&gt; Use &quot;= default&quot; to denote default constructor or destructor

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:75
&gt; +void Settings::&lt;%= @setting.setterFunctionName() %&gt;(&lt;%= @setting.parameterType %&gt; &lt;%= @setting.name %&gt;)

Style: You normally drop the unnecessary ()s on setterFunctionName

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.cpp.erb:88
&gt; +void Settings::&lt;%= @setting.setterFunctionName() %&gt;(&lt;%= @setting.parameterType %&gt; &lt;%= @setting.name %&gt;)

Style: You normally drop the unnecessary ()s on setterFunctionName

&gt; Source/WebCore/Scripts/SettingsTemplates/Settings.h.erb:64
&gt; +&lt;% end -%&gt;

Style: You normally do &quot;&lt;%-&quot;. I don&apos;t think the leading &apos;-&apos;s are actually needed anywhere, but I think you are adding them for readability / balance and I like that it is included.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:19572
&gt;  				BC59DEF8169DEDC30016AC34 /* Settings.in */,
&gt; +				7CDE73961F9BD59500390312 /* Settings.yaml */,

Seems Settings.in should be removed from the pbxproj.

&gt; Source/WebCore/page/Settings.yaml:1
&gt; +# FIXME: Add support for global settings.

Style: Other yaml files in WebKit use 2 space indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363191</commentid>
    <comment_count>4</comment_count>
      <attachid>324536</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-22 18:47:21 -0700</bug_when>
    <thetext>Created attachment 324536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363202</commentid>
    <comment_count>5</comment_count>
      <attachid>324536</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-22 20:13:37 -0700</bug_when>
    <thetext>Comment on attachment 324536
Patch

Clearing flags on attachment: 324536

Committed r223828: &lt;https://trac.webkit.org/changeset/223828&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372295</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:59:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568541&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324504</attachid>
            <date>2017-10-21 14:15:09 -0700</date>
            <delta_ts>2017-10-22 12:55:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178634-20171021141508.patch</filename>
            <type>text/plain</type>
            <size>107143</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzgxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTEwLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZXBsYWNlIGN1cnJl
bnQgU2V0dGluZ3MgZ2VuZXJhdGlvbiB3aXRoIHRlbXBsYXRlIGZpbGUgYmFzZWQgYXBwcm9hY2gK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcmVw
bGFjZXMgdGhlIHJlY2VudGx5IGFkZGVkIHB5dGhvbiBiYXNlZCBTZXR0aW5ncyBnZW5lcmF0aW9u
IHdpdGggYSBnZW5lcmF0b3IKKyAgICAgICAgYnVpbHQgaW4gcnVieSwgc28gd2UgY2FuIHRha2Ug
YWR2YW50YWdlIG9mIEVSQiBmb3IgdGVtcGxhdGluZy4gVGhlIHJlc3VsdCBoYXMgbXVjaAorICAg
ICAgICBvZiB0aGUgbG9naWMgaW4gdGhlIHRlbXBsYXRlcyBhbmQgYXMgYSByZXN1bHQgZmVlbHMg
bXVjaCBlYXNpZXIgdG8gZm9sbG93IGFuZCBjbGVhbmVyLgorCisgICAgICAgIFNpbmNlIEkgd2Fz
IG1vdmluZyB0aGluZ3MgdG8gcnVieSwgSSB0b29rIHRoZSBvcGVydHVuaXR5IHRvIHN3aXRjaCB0
aGUgU2V0dGluZ3MgZGVmaW5pdGlvbgorICAgICAgICBmaWxlIGZyb20gb3VyIC5pbiBmb3JtYXQg
dG8geWFtbCwgd2hpY2ggaXMgcXVpdGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5nczogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRz
L0dlbmVyYXRlU2V0dGluZ3MucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0
ZVNldHRpbmdzLnJiOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAg
KiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSURMRmls
ZS5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5OiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVh
ZGVyRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAg
KiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0dGluZ3MucHk6IFJlbW92ZWQuCisgICAgICAg
ICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL19faW5pdF9fLnB5OiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMv
U2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOiBBZGRl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaC5lcmI6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0
ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiOiBBZGRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmI6IEFkZGVkLgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJD
b3JlTWFjcm9zLmNtYWtlOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IFJlbW92ZWQuCisg
ICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOiBBZGRlZC4KKwogMjAxNy0xMC0yMSAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10g
QWRkIGJpbmRpbmdzIHRvIHVuaWZpZWQgc291cmNlcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDI1LDcgKzQwMjUsNyBAQCBHRU5FUkFURV9FVkVOVF9GQUNUT1JZKCR7
V0VCQ09SRV9ESVJ9L2RvCiBsaXN0KEFQUEVORCBXZWJDb3JlX0RFUklWRURfU09VUkNFUyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vRXZlbnRUYXJnZXRJbnRlcmZhY2VzLmgpCiAKIAot
R0VORVJBVEVfU0VUVElOR1NfTUFDUk9TKCR7V0VCQ09SRV9ESVJ9L3BhZ2UvU2V0dGluZ3MuaW4g
U2V0dGluZ3MuaCkKK0dFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUygke1dFQkNPUkVfRElSfS9wYWdl
L1NldHRpbmdzLnlhbWwgU2V0dGluZ3MuaCkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZXR0aW5ncy5oKQogbGlzdChB
UFBFTkQgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1NldHRpbmdzLmNwcCkKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VT
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmNwcCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjIzODE2
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMTM3MiwxOCArMTM3MiwxNSBAQCBKU01hdGhNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeSVjcHAg
SlNNYXRoCiAjIEludGVybmFsIFNldHRpbmdzCiAKIEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMg
PSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRl
cm5hbFNldHRpbmdzSGVhZGVyRmlsZS5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVy
YXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSURMRmlsZS5weSBcCi0gICAgJChX
ZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdz
SW1wbGVtZW50YXRpb25GaWxlLnB5IFwKLSAgICAkKFdlYkNvcmUpL1NjcmlwdHMvR2VuZXJhdGVT
ZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5IFwKLSAgICAkKFdlYkNvcmUpL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weSBcCi0gICAgJChXZWJD
b3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0ltcGxlbWVudGF0
aW9uRmlsZS5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0
dGluZ3MucHkgXAotICAgICQoV2ViQ29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL19faW5p
dF9fLnB5CisgICAgJChXZWJDb3JlKS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYiBcCisgICAgJChXZWJDb3JlKS9TY3JpcHRzL1NldHRp
bmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYiBcCisgICAgJChX
ZWJDb3JlKS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuaC5lcmIgXAorICAgICQoV2ViQ29yZSkvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0
aW5ncy5jcHAuZXJiIFwKKyAgICAkKFdlYkNvcmUpL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMv
U2V0dGluZ3MuaC5lcmIKIAogYWxsIDogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIFNl
dHRpbmdzLmNwcCBTZXR0aW5ncy5oCi1JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkJWlkbCBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkJWNwcCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkJWggU2V0
dGluZ3MlY3BwIFNldHRpbmdzJWggOiAkKFdlYkNvcmUpL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy5weSAkKEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMpIHBhZ2UvU2V0dGluZ3MuaW4KLQkkKFBZ
VEhPTikgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KK0ludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQlaWRsIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQlY3BwIEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQlaCBTZXR0aW5ncyVjcHAgU2V0dGluZ3MlaCA6ICQoV2ViQ29yZSkv
U2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiICQoR0VORVJBVEVfU0VUVElOR1NfU0NSSVBUUykg
cGFnZS9TZXR0aW5ncy55YW1sCisJJChSVUJZKSAkPCAtLWlucHV0ICQoV2ViQ29yZSkvcGFnZS9T
ZXR0aW5ncy55YW1sCiAKICMgLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZU1hY3Jvcy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9z
LmNtYWtlCShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9z
LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNyArMjAzLDcgQEAgZW5kbWFjcm8oKQogCiAK
IG1hY3JvKEdFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUyBfaW5maWxlIF9vdXRmaWxlKQotICAgIHNl
dChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
LnB5KQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzLnJiKQogCiAgICAgIyBEbyBub3QgbGlzdCB0aGUgb3V0cHV0IGluIG1vcmUg
dGhhbiBvbmUgaW5kZXBlbmRlbnQgdGFyZ2V0IHRoYXQgbWF5CiAgICAgIyBidWlsZCBpbiBwYXJh
bGxlbCBvciB0aGUgdHdvIGluc3RhbmNlcyBvZiB0aGUgcnVsZSBtYXkgY29uZmxpY3QuCkBAIC0y
MTYsMTQgKzIxNiwxMSBAQCBtYWNybyhHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBf
CiAgICAgKQogCiAgICAgc2V0KEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMKLSAgICAgICAgJHtX
RUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0
aW5nc0hlYWRlckZpbGUucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0
ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUucHkKLSAgICAgICAgJHtX
RUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0
aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weQotICAgICAgICAke1dFQkNPUkVfRElSfS9TY3JpcHRz
L0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkKLSAgICAgICAg
JHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NJ
bXBsZW1lbnRhdGlvbkZpbGUucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3MucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0v
U2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdzLnB5Ci0gICAgICAgICR7V0VCQ09SRV9E
SVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2luaXRfXy5weQorICAgICAgICAke1dFQkNP
UkVfRElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwLmVyYgorICAgICAgICAke1dFQkNPUkVfRElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYgorICAgICAgICAke1dFQkNPUkVf
RElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aC5lcmIKKyAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9T
ZXR0aW5ncy5jcHAuZXJiCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvU2V0dGluZ3NU
ZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIKICAgICApCiAKICAgICBzZXQoX2FyZ3MgQllQUk9EVUNU
UyAke19leHRyYV9vdXRwdXR9KQpAQCAtMjMxLDcgKzIyOCw3IEBAIG1hY3JvKEdFTkVSQVRFX1NF
VFRJTkdTX01BQ1JPUyBfaW5maWxlIF8KICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19vdXRmaWxlfQogICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5m
aWxlfQogICAgICAgICBERVBFTkRTICR7TkFNRVNfR0VORVJBVE9SfSAke0dFTkVSQVRFX1NFVFRJ
TkdTX1NDUklQVFN9ICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0
cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQorICAgICAgICBDT01NQU5EICR7
UlVCWV9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0t
b3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQogICAgICAgICBWRVJCQVRJ
TSAke19hcmdzfSkKIGVuZG1hY3JvKCkKIApJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9H
ZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVy
YXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NIZWFkZXJGaWxlLnB5CShub25leGlzdGVudCkKQEAgLTEsODIgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoK
LSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlLCBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcKLQotCi1kZWYgZ2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmls
ZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKToKLSAgICBvdXRwdXRQYXRoID0gb3MucGF0aC5q
b2luKG91dHB1dERpcmVjdG9yeSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIpCi0gICAg
b3V0cHV0RmlsZSA9IG9wZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUo
bGljZW5zZSgpKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiI3ByYWdtYSBvbmNlXG5cbiIpCi0K
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlN1cHBsZW1lbnRhYmxlLmhcIlxuIikK
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD5cbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPlxuXG4i
KQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiY2xhc3MgUGFnZTtcblxuIikKLQotICAgIG91dHB1dEZpbGUu
d3JpdGUoImNsYXNzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkPiB7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
InB1YmxpYzpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIGV4cGxpY2l0IEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQoUGFnZSopO1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
dmlydHVhbCB+SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCgpO1xuXG4iKQotICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTtcblxuIikKLQotICAg
IGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAg
IHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRp
bmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGlu
dWUKLQotICAgICAgICB0eXBlID0gImNvbnN0IFN0cmluZyYiIGlmIHNldHRpbmcudHlwZSA9PSAi
U3RyaW5nIiBlbHNlIHNldHRpbmcudHlwZQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
dm9pZCAiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUoKSArICIoIiArIHR5cGUgKyAiICIg
KyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJcbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgicHJpdmF0ZTpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIFBhZ2UqIG1fcGFnZTtcblxuIikKLQotICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQo
c2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5n
TmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRpbmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5v
dCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBpZiBzZXR0aW5nLmNv
bmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIG91
dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5nLm5h
bWUgKyAiO1xuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAg
ICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
fTtcblxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG4i
KQotCi0gICAgb3V0cHV0RmlsZS5jbG9zZSgpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdz
SGVhZGVyRmlsZS5weQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0xICsw
LDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dl
YkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lE
TEZpbGUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNl
dHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUucHkJKHJldmlzaW9uIDIyMzgx
NikKKysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUlu
dGVybmFsU2V0dGluZ3NJRExGaWxlLnB5CShub25leGlzdGVudCkKQEAgLTEsNDkgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlCi0K
LQotZGVmIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUob3V0cHV0RGlyZWN0b3J5LCBz
ZXR0aW5ncyk6Ci0gICAgb3V0cHV0UGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXREaXJlY3Rvcnks
ICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCIpCi0gICAgb3V0cHV0RmlsZSA9IG9wZW4o
b3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0gICAg
b3V0cHV0RmlsZS53cml0ZSgiW1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgTm9JbnRl
cmZhY2VPYmplY3QsXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBFeHBvcnRNYWNybz1X
RUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCxcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiXSBp
bnRlcmZhY2UgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCB7XG4iKQotCi0gICAgZm9yIHNldHRp
bmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygpKToKLSAgICAgICAgc2V0dGluZyA9
IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxUeXBlID0gc2V0dGluZy5pZGxUeXBl
KCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICBvdXRwdXRGaWxlLndyaXRlKCIgICAgdm9pZCAiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5h
bWUoKSArICIoIiArIGlkbFR5cGUgKyAiICIgKyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAg
ICBvdXRwdXRGaWxlLndyaXRlKCJ9O1xuIikKLSAgICBvdXRwdXRGaWxlLmNsb3NlKCkKClByb3Bl
cnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9H
ZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlLnB5Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3Zu
OmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJ
bXBsZW1lbnRhdGlvbkZpbGUucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMTIgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1l
dDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlLCBtYWtl
Q29uZGl0aW9uYWxTdHJpbmcsIG1ha2VDb25kaXRpb25hbFN0cmluZwotCi0KLWRlZiBnZW5lcmF0
ZUludGVybmFsU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0
aW5ncyk6Ci0gICAgb3V0cHV0UGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXREaXJlY3RvcnksICJJ
bnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCIpCi0gICAgb3V0cHV0RmlsZSA9IG9wZW4ob3V0
cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKQotICAgIG91dHB1dEZpbGUu
d3JpdGUoIiNpbmNsdWRlIFwiSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oXCJcblxuIikKLQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiUGFnZS5oXCJcbiIpCi0gICAgb3V0cHV0
RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJTZXR0aW5ncy5oXCJcblxuIikKLQotICAgIG91dHB1dEZp
bGUud3JpdGUoIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIikKLQotICAgIG91dHB1dEZpbGUud3Jp
dGUoIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6OkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQo
UGFnZSogcGFnZSlcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIDogbV9wYWdlKHBhZ2Up
XG4iKQotCi0gICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygp
KToKLSAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxU
eXBlID0gc2V0dGluZy5pZGxUeXBlKCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAg
ICAgICBjb250aW51ZQotCi0gICAgICAgIGlmIHNldHRpbmcuY29uZGl0aW9uYWw6Ci0gICAgICAg
ICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiArIG1ha2VDb25kaXRpb25hbFN0cmluZyhzZXR0
aW5nLmNvbmRpdGlvbmFsKSArICJcbiIpCi0KLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAg
ICwgbV8iICsgc2V0dGluZy5uYW1lICsgIihwYWdlLT5zZXR0aW5ncygpLiIgKyBzZXR0aW5nLmdl
dHRlckZ1bmN0aW9uTmFtZSgpICsgIigpKVxuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRp
dGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAg
b3V0cHV0RmlsZS53cml0ZSgie1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0K
LSAgICBvdXRwdXRGaWxlLndyaXRlKCJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjp+SW50ZXJu
YWxTZXR0aW5nc0dlbmVyYXRlZCgpXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKClcbiIp
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgie1xuIikKLQotICAgIGZvciBzZXR0aW5nTmFtZSBpbiBz
b3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tz
ZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRpbmcuaWRsVHlwZSgpCi0gICAgICAg
IGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBpZiBzZXR0
aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBt
YWtlQ29uZGl0aW9uYWxTdHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAg
ICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBtX3BhZ2UtPnNldHRpbmdzKCkuIiArIHNldHRpbmcu
c2V0dGVyRnVuY3Rpb25OYW1lKCkgKyAiKG1fIiArIHNldHRpbmcubmFtZSArICIpO1xuIikKLQot
ICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53
cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAg
Zm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygpKToKLSAgICAgICAg
c2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxUeXBlID0gc2V0dGlu
Zy5pZGxUeXBlKCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAgICAgICBjb250aW51
ZQotCi0gICAgICAgIHR5cGUgPSAiY29uc3QgU3RyaW5nJiIgaWYgc2V0dGluZy50eXBlID09ICJT
dHJpbmciIGVsc2Ugc2V0dGluZy50eXBlCi0KLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjoiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5h
bWUoKSArICIoIiArIHR5cGUgKyAiICIgKyBzZXR0aW5nLm5hbWUgKyAiKVxuIikKLSAgICAgICAg
b3V0cHV0RmlsZS53cml0ZSgie1xuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFs
OgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxT
dHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIG91dHB1dEZpbGUu
d3JpdGUoIiAgICBtX3BhZ2UtPnNldHRpbmdzKCkuIiArIHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgKyAiKCIgKyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAgICAgICAgaWYgc2V0dGlu
Zy5jb25kaXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbHNlXG4iKQot
ICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIFVOVVNFRF9QQVJBTSgiICsgc2V0dGlu
Zy5uYW1lICsgIik7XG4iKQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4i
KQotCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUu
d3JpdGUoIn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcbiIpCi0KLSAgICBvdXRwdXRGaWxlLmNsb3Nl
KCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVT
ZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5CShyZXZp
c2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVTZXR0aW5ncy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDYgKzAsMCBAQAotZnJvbSBT
ZXR0aW5ncyBpbXBvcnQgKgotZnJvbSBHZW5lcmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxl
IGltcG9ydCAqCi1mcm9tIEdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUgaW1wb3J0ICoK
LWZyb20gR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlIGltcG9ydCAq
Ci1mcm9tIEdlbmVyYXRlU2V0dGluZ3NIZWFkZXJGaWxlIGltcG9ydCAqCi1mcm9tIEdlbmVyYXRl
U2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUgaW1wb3J0ICoKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2Vu
ZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmls
ZS5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDE2MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcy5w
YXRoCi0KLWZyb20gU2V0dGluZ3MgaW1wb3J0IGxpY2Vuc2UsIG1ha2VDb25kaXRpb25hbFN0cmlu
ZywgbWFrZVByZWZlcnJlZENvbmRpdGlvbmFsCi0KLQotZGVmIGdlbmVyYXRlU2V0dGluZ3NIZWFk
ZXJGaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpOgotICAgIHNldHRpbmdzQnlDb25kaXRp
b25hbCA9IHt9Ci0gICAgdW5jb25kaXRpb25hbFNldHRpbmdzID0ge30KLQotICAgIGZvciBzZXR0
aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcg
PSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25hbDoK
LSAgICAgICAgICAgIGlmIHNldHRpbmcuY29uZGl0aW9uYWwgbm90IGluIHNldHRpbmdzQnlDb25k
aXRpb25hbDoKLSAgICAgICAgICAgICAgICBzZXR0aW5nc0J5Q29uZGl0aW9uYWxbc2V0dGluZy5j
b25kaXRpb25hbF0gPSB7fQotICAgICAgICAgICAgc2V0dGluZ3NCeUNvbmRpdGlvbmFsW3NldHRp
bmcuY29uZGl0aW9uYWxdW3NldHRpbmcubmFtZV0gPSBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB1bmNvbmRpdGlvbmFsU2V0dGluZ3Nbc2V0dGluZy5uYW1lXSA9IFRydWUKLQotICAg
IHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzID0gc29ydGVkKHVuY29uZGl0aW9uYWxT
ZXR0aW5ncy5pdGVya2V5cygpKQotICAgIHNvcnRlZENvbmRpdGlvbmFscyA9IHNvcnRlZChzZXR0
aW5nc0J5Q29uZGl0aW9uYWwuaXRlcmtleXMoKSkKLQotICAgIG91dHB1dFBhdGggPSBvcy5wYXRo
LmpvaW4ob3V0cHV0RGlyZWN0b3J5LCAiU2V0dGluZ3MuaCIpCi0gICAgb3V0cHV0RmlsZSA9IG9w
ZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiI3ByYWdtYSBvbmNlXG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCIjaW5jbHVkZSBcIlNldHRpbmdzQmFzZS5oXCJcbiIpCi0gICAgb3V0cHV0RmlsZS53
cml0ZSgiI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCJuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRl
KCJjbGFzcyBQYWdlO1xuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiY2xhc3MgU2V0dGlu
Z3MgOiBwdWJsaWMgU2V0dGluZ3NCYXNlLCBwdWJsaWMgUmVmQ291bnRlZDxTZXR0aW5ncz4ge1xu
IikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGlu
Z3MpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDtcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
cHVibGljOlxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgc3RhdGljIFJlZjxTZXR0aW5n
cz4gY3JlYXRlKFBhZ2UqKTtcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIH5TZXR0aW5n
cygpO1xuXG4iKQotCi0gICAgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycyhvdXRwdXRGaWxlLCBzb3J0
ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5n
c0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgicHJpdmF0
ZTpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2Uq
KTtcblxuIikKLQotICAgIHByaW50TWVtYmVyVmFyaWFibGVzKG91dHB1dEZpbGUsIHNvcnRlZFVu
Y29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNldHRpbmdzQnlD
b25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9O1xuXG4iKQot
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuIikKLQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQot
Ci0KLWRlZiBwcmludEdldHRlckFuZFNldHRlcihvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBz
ZXR0ZXJGdW5jdGlvbk5hbWUgPSBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSgpCi0gICAgZ2V0
dGVyRnVuY3Rpb25OYW1lID0gc2V0dGluZy5nZXR0ZXJGdW5jdGlvbk5hbWUoKQotCi0gICAgd2Vi
Y29yZUV4cG9ydCA9ICJXRUJDT1JFX0VYUE9SVCAiIGlmIHNldHRpbmcuaGFzQ29tcGxleFNldHRl
cigpIGVsc2UgIiIKLQotICAgIGlmIHNldHRpbmcudHlwZUlzVmFsdWVUeXBlKCk6Ci0gICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiAiICsgZ2V0dGVyRnVu
Y3Rpb25OYW1lICsgIigpIGNvbnN0IHsgcmV0dXJuIG1fIiArIHNldHRpbmcubmFtZSArICI7IH1c
biIpCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgd2ViY29yZUV4cG9ydCArICJ2
b2lkICIgKyBzZXR0ZXJGdW5jdGlvbk5hbWUgKyAiKCIgKyBzZXR0aW5nLnR5cGUgKyAiICIgKyBz
ZXR0aW5nLm5hbWUgKyAiKSIpCi0gICAgZWxzZToKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIGNvbnN0ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgZ2V0dGVyRnVuY3Rpb25OYW1lICsg
IigpIGNvbnN0IHsgcmV0dXJuIG1fIiArIHNldHRpbmcubmFtZSArICI7IH1cbiIpCi0gICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgd2ViY29yZUV4cG9ydCArICJ2b2lkICIgKyBzZXR0
ZXJGdW5jdGlvbk5hbWUgKyAiKGNvbnN0ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgc2V0dGlu
Zy5uYW1lICsgIikiKQotCi0gICAgaWYgc2V0dGluZy5oYXNDb21wbGV4U2V0dGVyKCk6Ci0gICAg
ICAgIG91dHB1dEZpbGUud3JpdGUoIjtcbiIpCi0gICAgZWxzZToKLSAgICAgICAgb3V0cHV0Rmls
ZS53cml0ZSgiIHsgbV8iICsgc2V0dGluZy5uYW1lICsgIiA9ICIgKyBzZXR0aW5nLm5hbWUgKyAi
OyB9XG4iKQotCi0KLWRlZiBwcmludEdldHRlcnNBbmRTZXR0ZXJzKG91dHB1dEZpbGUsIHNvcnRl
ZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNldHRpbmdz
QnlDb25kaXRpb25hbCwgc2V0dGluZ3MpOgotICAgIGZvciB1bmNvbmRpdGlvbmFsU2V0dGluZ05h
bWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXM6Ci0gICAgICAgIHByaW50R2V0
dGVyQW5kU2V0dGVyKG91dHB1dEZpbGUsIHNldHRpbmdzW3VuY29uZGl0aW9uYWxTZXR0aW5nTmFt
ZV0pCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJcbiIpCi0KLSAgICBmb3IgY29uZGl0aW9uYWwg
aW4gc29ydGVkQ29uZGl0aW9uYWxzOgotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiAr
IG1ha2VDb25kaXRpb25hbFN0cmluZyhjb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIGZv
ciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFs
XS5pdGVya2V5cygpKToKLSAgICAgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKG91dHB1dEZp
bGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkKLQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIj
ZW5kaWZcblxuIikKLQotCi1kZWYgcHJpbnRNZW1iZXJWYXJpYWJsZXMob3V0cHV0RmlsZSwgc29y
dGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXMsIHNvcnRlZENvbmRpdGlvbmFscywgc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsLCBzZXR0aW5ncyk6Ci0gICAgZm9yIHVuY29uZGl0aW9uYWxTZXR0aW5n
TmFtZSBpbiBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lczoKLSAgICAgICAgc2V0dGlu
ZyA9IHNldHRpbmdzW3VuY29uZGl0aW9uYWxTZXR0aW5nTmFtZV0KLSAgICAgICAgaWYgc2V0dGlu
Zy50eXBlID09ICJib29sIjoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5nLm5hbWUgKyAi
O1xuIikKLQotICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRDb25kaXRpb25hbHM6Ci0gICAg
ICAgIGhhc01lbWJlclZhcmlhYmxlID0gRmFsc2UKLSAgICAgICAgZm9yIHNldHRpbmdOYW1lIGlu
IHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgot
ICAgICAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICAgICAg
aWYgc2V0dGluZy50eXBlICE9ICJib29sIjoKLSAgICAgICAgICAgICAgICBoYXNNZW1iZXJWYXJp
YWJsZSA9IFRydWUKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGhhc01lbWJl
clZhcmlhYmxlOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICAgICAgZm9yIHNl
dHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0
ZXJrZXlzKCkpOgotICAgICAgICAgICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFt
ZV0KLSAgICAgICAgICAgICAgICBpZiBzZXR0aW5nLnR5cGUgIT0gImJvb2wiOgotICAgICAgICAg
ICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgbV8i
ICsgc2V0dGluZy5uYW1lICsgIjtcbiIpCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUo
IiNlbmRpZlxuIikKLQotICAgIGZvciB1bmNvbmRpdGlvbmFsU2V0dGluZ05hbWUgaW4gc29ydGVk
VW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXM6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1t1
bmNvbmRpdGlvbmFsU2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRpbmcudHlwZSAhPSAiYm9v
bCI6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
IiArIHNldHRpbmcudHlwZSArICIgbV8iICsgc2V0dGluZy5uYW1lICsgIiA6IDE7XG4iKQotCi0g
ICAgZm9yIGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAgICAgICAgaGFzTWVt
YmVyVmFyaWFibGUgPSBGYWxzZQotICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNl
dHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAg
ICBzZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgICAgICBpZiBzZXR0aW5n
LnR5cGUgPT0gImJvb2wiOgotICAgICAgICAgICAgICAgIGhhc01lbWJlclZhcmlhYmxlID0gVHJ1
ZQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgaGFzTWVtYmVyVmFyaWFibGU6
Ci0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiArIG1ha2VDb25kaXRpb25hbFN0
cmluZyhjb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgICAgICBmb3Igc2V0dGluZ05hbWUg
aW4gc29ydGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6
Ci0gICAgICAgICAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAg
ICAgICAgICAgIGlmIHNldHRpbmcudHlwZSA9PSAiYm9vbCI6Ci0gICAgICAgICAgICAgICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5n
Lm5hbWUgKyAiIDogMTtcbiIpCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRp
ZlxuIikKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJh
dGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
L0dlbmVyYXRlU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NJbXBs
ZW1lbnRhdGlvbkZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxl
LnB5CShub25leGlzdGVudCkKQEAgLTEsMTg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0j
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IG9zLnBh
dGgKLQotZnJvbSBTZXR0aW5ncyBpbXBvcnQgbGljZW5zZSwgbWFrZUNvbmRpdGlvbmFsU3RyaW5n
LCBtYWtlUHJlZmVycmVkQ29uZGl0aW9uYWwKLQotCi1kZWYgZ2VuZXJhdGVTZXR0aW5nc0ltcGxl
bWVudGF0aW9uRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKToKLSAgICBzZXR0aW5nc0J5
Q29uZGl0aW9uYWwgPSB7fQotICAgIHVuY29uZGl0aW9uYWxTZXR0aW5ncyA9IHt9Ci0KLSAgICBm
b3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAgICBz
ZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRpbmcuY29uZGl0
aW9uYWw6Ci0gICAgICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsIG5vdCBpbiBzZXR0aW5n
c0J5Q29uZGl0aW9uYWw6Ci0gICAgICAgICAgICAgICAgc2V0dGluZ3NCeUNvbmRpdGlvbmFsW3Nl
dHRpbmcuY29uZGl0aW9uYWxdID0ge30KLSAgICAgICAgICAgIHNldHRpbmdzQnlDb25kaXRpb25h
bFtzZXR0aW5nLmNvbmRpdGlvbmFsXVtzZXR0aW5nLm5hbWVdID0gVHJ1ZQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgdW5jb25kaXRpb25hbFNldHRpbmdzW3NldHRpbmcubmFtZV0gPSBUcnVl
Ci0KLSAgICBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcyA9IHNvcnRlZCh1bmNvbmRp
dGlvbmFsU2V0dGluZ3MuaXRlcmtleXMoKSkKLSAgICBzb3J0ZWRDb25kaXRpb25hbHMgPSBzb3J0
ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsLml0ZXJrZXlzKCkpCi0KLSAgICBvdXRwdXRQYXRoID0g
b3MucGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgIlNldHRpbmdzLmNwcCIpCi0gICAgb3V0cHV0
RmlsZSA9IG9wZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5z
ZSgpKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiU2V0dGluZ3MuaFwiXG5cbiIpCi0KLSAg
ICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlBhZ2UuaFwiXG4iKQotICAgIG91dHB1dEZp
bGUud3JpdGUoIiNpbmNsdWRlIFwiU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmhcIlxuXG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKQotCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiUmVmPFNldHRpbmdzPiBTZXR0aW5nczo6Y3JlYXRlKFBhZ2UqIHBhZ2Up
XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTtcbiIpCi0gICAgb3V0cHV0
RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiU2V0dGluZ3M6OlNl
dHRpbmdzKFBhZ2UqIHBhZ2UpXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICA6IFNldHRp
bmdzQmFzZShwYWdlKVxuIikKLQotICAgIHByaW50SW5pdGlhbGl6ZXJMaXN0KG91dHB1dEZpbGUs
IHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNl
dHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7
XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUud3Jp
dGUoIlNldHRpbmdzOjp+U2V0dGluZ3MoKVxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7XG4i
KQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIHByaW50U2V0dGVyQm9kaWVz
KG91dHB1dEZpbGUsIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25k
aXRpb25hbHMsIHNldHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRG
aWxlLndyaXRlKCJ9XG4iKQotCi0gICAgb3V0cHV0RmlsZS5jbG9zZSgpCi0KLQotZGVmIGhhc05v
bkJvb2xJbml0aWFsaXplcihzZXR0aW5nKToKLSAgICBpZiBzZXR0aW5nLnR5cGUgPT0gImJvb2wi
OgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBpZiBub3Qgc2V0dGluZy5pbml0aWFsOgotICAg
ICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBwcmludE5vbkJvb2xJ
bml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBpZiBub3QgaGFzTm9uQm9vbElu
aXRpYWxpemVyKHNldHRpbmcpOgotICAgICAgICByZXR1cm4KLSAgICBvdXRwdXRGaWxlLndyaXRl
KCIgICAgLCBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiKCIgKyBzZXR0aW5nLmluaXRpYWwgKyAiKVxu
IikKLQotCi1kZWYgaGFzQm9vbEluaXRpYWxpemVyKHNldHRpbmcpOgotICAgIGlmIHNldHRpbmcu
dHlwZSAhPSAiYm9vbCI6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIGlmIG5vdCBzZXR0aW5n
LmluaXRpYWw6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBUcnVlCi0KLQotZGVm
IHByaW50Qm9vbEluaXRpYWxpemVyKG91dHB1dEZpbGUsIHNldHRpbmcpOgotICAgIGlmIG5vdCBo
YXNCb29sSW5pdGlhbGl6ZXIoc2V0dGluZyk6Ci0gICAgICAgIHJldHVybgotICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICAsIG1fIiArIHNldHRpbmcubmFtZSArICIoIiArIHNldHRpbmcuaW5pdGlh
bCArICIpXG4iKQotCi0KLWRlZiBwcmludEluaXRpYWxpemVyTGlzdChvdXRwdXRGaWxlLCBzb3J0
ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5n
c0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKToKLSAgICBmb3IgdW5jb25kaXRpb25hbFNldHRpbmdO
YW1lIGluIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzOgotICAgICAgICBwcmludE5v
bkJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGlu
Z05hbWVdKQotCi0gICAgZm9yIGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAg
ICAgICAgaGFzSW5pdGlhbGl6ZXIgPSBGYWxzZQotICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4g
c29ydGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0g
ICAgICAgICAgICBpZiBoYXNOb25Cb29sSW5pdGlhbGl6ZXIoc2V0dGluZ3Nbc2V0dGluZ05hbWVd
KToKLSAgICAgICAgICAgICAgICBoYXNJbml0aWFsaXplciA9IFRydWUKLSAgICAgICAgICAgICAg
ICBicmVhawotCi0gICAgICAgIGlmIGhhc0luaXRpYWxpemVyOgotICAgICAgICAgICAgb3V0cHV0
RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9uYWwpICsg
IlxuIikKLQotICAgICAgICAgICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5
Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgotICAgICAgICAgICAgICAgIHBy
aW50Tm9uQm9vbEluaXRpYWxpemVyKG91dHB1dEZpbGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkK
LQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgZm9yIHVu
Y29uZGl0aW9uYWxTZXR0aW5nTmFtZSBpbiBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1l
czoKLSAgICAgICAgcHJpbnRCb29sSW5pdGlhbGl6ZXIob3V0cHV0RmlsZSwgc2V0dGluZ3NbdW5j
b25kaXRpb25hbFNldHRpbmdOYW1lXSkKLQotICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRD
b25kaXRpb25hbHM6Ci0gICAgICAgIGhhc0luaXRpYWxpemVyID0gRmFsc2UKLSAgICAgICAgZm9y
IHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxd
Lml0ZXJrZXlzKCkpOgotICAgICAgICAgICAgaWYgaGFzQm9vbEluaXRpYWxpemVyKHNldHRpbmdz
W3NldHRpbmdOYW1lXSk6Ci0gICAgICAgICAgICAgICAgaGFzSW5pdGlhbGl6ZXIgPSBUcnVlCi0g
ICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNJbml0aWFsaXplcjoKLSAgICAg
ICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNvbmRpdGlvbmFsU3RyaW5nKGNv
bmRpdGlvbmFsKSArICJcbiIpCi0KLSAgICAgICAgICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0
ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToKLSAgICAg
ICAgICAgICAgICBwcmludEJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nc1tzZXR0
aW5nTmFtZV0pCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuIikKLQot
Ci1kZWYgcHJpbnRTZXR0ZXJCb2R5KG91dHB1dEZpbGUsIHNldHRpbmcpOgotICAgIGlmIG5vdCBz
ZXR0aW5nLmhhc0NvbXBsZXhTZXR0ZXIoKToKLSAgICAgICAgcmV0dXJuCi0KLSAgICBzZXR0ZXJG
dW5jdGlvbk5hbWUgPSBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSgpCi0gICAgY2hhbmdlRnVu
Y3Rpb25OYW1lID0gc2V0dGluZy5zZXR0ZXJDaGFuZ2VGdW5jdGlvbk5hbWUoKQotCi0gICAgaWYg
c2V0dGluZy50eXBlSXNWYWx1ZVR5cGUoKToKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBTZXR0aW5nczo6IiArIHNldHRlckZ1bmN0aW9uTmFtZSArICIoIiArIHNldHRpbmcudHlwZSAr
ICIgIiArIHNldHRpbmcubmFtZSArICIpXG4iKQotICAgIGVsc2U6Ci0gICAgICAgIG91dHB1dEZp
bGUud3JpdGUoInZvaWQgU2V0dGluZ3M6OiIgKyBzZXR0ZXJGdW5jdGlvbk5hbWUgKyAiKGNvbnN0
ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgc2V0dGluZy5uYW1lICsgIilcbiIpCi0KLSAgICBv
dXRwdXRGaWxlLndyaXRlKCJ7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBpZiAobV8i
ICsgc2V0dGluZy5uYW1lICsgIiA9PSAiICsgc2V0dGluZy5uYW1lICsgIilcbiIpCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiICAgICAgICByZXR1cm47XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
IiAgICBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiID0gIiArIHNldHRpbmcubmFtZSArICI7XG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgY2hhbmdlRnVuY3Rpb25OYW1lICsgIigpO1xu
IikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0KLQotZGVmIHByaW50U2V0dGVyQm9k
aWVzKG91dHB1dEZpbGUsIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRD
b25kaXRpb25hbHMsIHNldHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpOgotICAgIGZvciB1
bmNvbmRpdGlvbmFsU2V0dGluZ05hbWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFt
ZXM6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGluZ05hbWVd
Ci0gICAgICAgIHByaW50U2V0dGVyQm9keShvdXRwdXRGaWxlLCBzZXR0aW5nKQotCi0gICAgZm9y
IGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAgICAgICAgaGFzU2V0dGVyQm9k
eSA9IEZhbHNlCi0gICAgICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNv
bmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToKLSAgICAgICAgICAgIHNldHRpbmcg
PSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgICAgIGlmIHNldHRpbmcuaGFzQ29tcGxl
eFNldHRlcigpOgotICAgICAgICAgICAgICAgIGhhc1NldHRlckJvZHkgPSBUcnVlCi0gICAgICAg
ICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNTZXR0ZXJCb2R5OgotICAgICAgICAgICAg
b3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9u
YWwpICsgIlxuXG4iKQotCi0gICAgICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNl
dHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAg
ICAgICAgcHJpbnRTZXR0ZXJCb2R5KG91dHB1dEZpbGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkK
LQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG5cbiIpCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpl
eGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdz
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy9TZXR0aW5ncy5weQkocmV2aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0
cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdzLnB5CShub25leGlzdGVudCkKQEAgLTEsMTYzICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IG9zLnBhdGgKLWltcG9ydCByZQotCi0KLWRlZiBsaWNlbnNl
KCk6Ci0gICAgcmV0dXJuICIiIi8qCi0gKiBUSElTIEZJTEUgV0FTIEFVVE9NQVRJQ0FMTFkgR0VO
RVJBVEVELCBETyBOT1QgRURJVC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0iIiIKLQotCi1jbGFzcyBTZXR0aW5n
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFt
ZQotICAgICAgICBzZWxmLnR5cGUgPSAnYm9vbCcKLSAgICAgICAgc2VsZi5pbml0aWFsID0gTm9u
ZQotICAgICAgICBzZWxmLmNvbmRpdGlvbmFsID0gTm9uZQotICAgICAgICBzZWxmLm9uQ2hhbmdl
ID0gTm9uZQotICAgICAgICBzZWxmLmdldHRlciA9IE5vbmUKLQotICAgIGRlZiBfX3N0cl9fKHNl
bGYpOgotICAgICAgICByZXN1bHQgPSBzZWxmLm5hbWUgKyAnIFRZUEU6JyArIHNlbGYudHlwZQot
ICAgICAgICBpZiAoc2VsZi5pbml0aWFsKToKLSAgICAgICAgICAgIHJlc3VsdCArPSAnIElOSVQ6
JyArIHNlbGYuaW5pdGlhbAotICAgICAgICBpZiAoc2VsZi5jb25kaXRpb25hbCk6Ci0gICAgICAg
ICAgICByZXN1bHQgKz0gJyBDT05EOicgKyBzZWxmLmNvbmRpdGlvbmFsCi0gICAgICAgIGlmIChz
ZWxmLm9uQ2hhbmdlKToKLSAgICAgICAgICAgIHJlc3VsdCArPSAnIENIQU5HRTonICsgc2VsZi5v
bkNoYW5nZQotICAgICAgICBpZiAoc2VsZi5nZXR0ZXIpOgotICAgICAgICAgICAgcmVzdWx0ICs9
ICcgR0VUVEVSOicgKyBzZWxmLmdldHRlcgotICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICBk
ZWYgdHlwZUlzVmFsdWVUeXBlKHNlbGYpOgotICAgICAgICBpZiBzZWxmLnR5cGUgPT0gJ1N0cmlu
Zyc6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgc2VsZi50eXBlID09ICdV
UkwnOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAg
ICBkZWYgc2V0dGVyRnVuY3Rpb25OYW1lKHNlbGYpOgotICAgICAgICBmb3IgcHJlZml4IGluIFsn
Y3NzJywgJ3hzcycsICdmdHAnLCAnZG9tJywgJ2RucyddOgotICAgICAgICAgICAgaWYgc2VsZi5u
YW1lLnN0YXJ0c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgICAgICByZXR1cm4gJ3NldCcgKyB1
cHBlcmNhc2VGaXJzdE4oc2VsZi5uYW1lLCBsZW4ocHJlZml4KSkKLSAgICAgICAgcmV0dXJuICdz
ZXQnICsgdXBwZXJjYXNlRmlyc3ROKHNlbGYubmFtZSwgMSkKLQotICAgIGRlZiBnZXR0ZXJGdW5j
dGlvbk5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldHRlciBvciBzZWxmLm5hbWUK
LQotICAgIGRlZiBzZXR0ZXJDaGFuZ2VGdW5jdGlvbk5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLm9uQ2hhbmdlCi0KLSAgICBkZWYgaGFzQ29tcGxleFNldHRlcihzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYub25DaGFuZ2UgIT0gTm9uZQotCi0gICAgZGVmIGlkbFR5cGUoc2VsZik6
Ci0gICAgICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBtb3JlIHR5cGVzIGluY2x1ZGluZyBl
bnVtZXJhdGUgdHlwZXMuCi0gICAgICAgIGlmIHNlbGYudHlwZSA9PSAnaW50JzoKLSAgICAgICAg
ICAgIHJldHVybiAnbG9uZycKLSAgICAgICAgaWYgc2VsZi50eXBlID09ICd1bnNpZ25lZCc6Ci0g
ICAgICAgICAgICByZXR1cm4gJ3Vuc2lnbmVkIGxvbmcnCi0gICAgICAgIGlmIHNlbGYudHlwZSA9
PSAnZG91YmxlJzoKLSAgICAgICAgICAgIHJldHVybiAnZG91YmxlJwotICAgICAgICBpZiBzZWxm
LnR5cGUgPT0gJ2Zsb2F0JzoKLSAgICAgICAgICAgIHJldHVybiAnZmxvYXQnCi0gICAgICAgIGlm
IHNlbGYudHlwZSA9PSAnU3RyaW5nJzoKLSAgICAgICAgICAgIHJldHVybiAnRE9NU3RyaW5nJwot
ICAgICAgICBpZiBzZWxmLnR5cGUgPT0gJ2Jvb2wnOgotICAgICAgICAgICAgcmV0dXJuICdib29s
ZWFuJwotICAgICAgICByZXR1cm4gTm9uZQotCi0KLWRlZiB1cHBlcmNhc2VGaXJzdE4oc3RyaW5n
LCBuKToKLSAgICByZXR1cm4gc3RyaW5nWzpuXS51cHBlcigpICsgc3RyaW5nW246XQotCi0KLWRl
ZiBtYWtlUHJlZmVycmVkQ29uZGl0aW9uYWwoY29uZGl0aW9uYWwpOgotICAgIHJldHVybiBjb25k
aXRpb25hbC5zcGxpdCgnfCcpWzBdCi0KLQotZGVmIG1ha2VDb25kaXRpb25hbFN0cmluZyhjb25k
aXRpb25hbCk6Ci0gICAgY29uZGl0aW9uYWxzID0gY29uZGl0aW9uYWwuc3BsaXQoJ3wnKQotICAg
IHJldHVybiAnRU5BQkxFKCcgKyAnKSB8fCBFTkFCTEUoJy5qb2luKGNvbmRpdGlvbmFscykgKyAn
KScKLQotCi1kZWYgcGFyc2VJbnB1dChpbnB1dCk6Ci0gICAgc2V0dGluZ3MgPSB7fQotCi0gICAg
d2l0aCBvcGVuKGlucHV0LCAncicpIGFzIGZpbGU6Ci0gICAgICAgIGZvciBsaW5lIGluIGZpbGU6
Ci0gICAgICAgICAgICBpZiBub3QgbGluZS5zdGFydHN3aXRoKCcjJykgYW5kIG5vdCBsaW5lLmlz
c3BhY2UoKToKLQotICAgICAgICAgICAgICAgIChuYW1lLCBvcHRpb25zU3RyaW5nKSA9IGxpbmUu
cnN0cmlwKCkuc3BsaXQoJyAnLCAxKQotCi0gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHJlLnNw
bGl0KHInICosIConLCBvcHRpb25zU3RyaW5nKQotCi0gICAgICAgICAgICAgICAgc2V0dGluZyA9
IFNldHRpbmcobmFtZSkKLSAgICAgICAgICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0g
ICAgICAgICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkgPSByZS5zcGxpdChyJyAqPSAqJywgb3B0
aW9uKQotICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAndHlwZScpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0dGluZy50eXBlID0gdmFsdWUKLSAgICAgICAgICAgICAgICAgICAg
aWYgKG5hbWUgPT0gJ2luaXRpYWwnKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcu
aW5pdGlhbCA9IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICdjb25kaXRp
b25hbCcpOgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5jb25kaXRpb25hbCA9IHZh
bHVlCi0gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICdvbkNoYW5nZScpOgotICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0dGluZy5vbkNoYW5nZSA9IHZhbHVlCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChuYW1lID09ICdnZXR0ZXInKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
dHRpbmcuZ2V0dGVyID0gdmFsdWUKLQotICAgICAgICAgICAgICAgICMgRklYTUU6IEFTU0VSVCBz
b21ldGhpbmcgYWJvdXQgc2V0dGluZy5pbml0aWFsCi0KLSAgICAgICAgICAgICAgICBzZXR0aW5n
c1tzZXR0aW5nLm5hbWVdID0gc2V0dGluZwotCi0gICAgcmV0dXJuIHNldHRpbmdzCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0
dGluZ3MucHkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMj
Ci0qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvX19pbml0X18ucHkJKHJldmlzaW9u
IDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2lu
aXRfXy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDMgKzAsMCBAQAotIyBSZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlIGZpbGVzCi0KLWZyb20gR2Vu
ZXJhdGVTZXR0aW5ncyBpbXBvcnQgKgpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy5weQkocmV2aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvU2Ny
aXB0cy9HZW5lcmF0ZVNldHRpbmdzLnB5CShub25leGlzdGVudCkKQEAgLTEsNjAgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHN5cwotZnJvbSBvcHRwYXJzZSBpbXBvcnQg
T3B0aW9uUGFyc2VyCi0KLWZyb20gR2VuZXJhdGVTZXR0aW5ncyBpbXBvcnQgKgotCi0KLWRlZiBt
YWluKCk6Ci0gICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPSJ1c2FnZTogJXByb2cgLS1p
bnB1dCBmaWxlIikKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1pbnB1dCcsIGRlc3Q9J2lucHV0
JywgaGVscD0nZmlsZSB0byBnZW5lcmF0ZSBzZXR0aW5ncyBmcm9tJywgbWV0YXZhcj0nZmlsZScp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tb3V0cHV0RGlyJywgZGVzdD0nb3V0cHV0RGlyJywg
aGVscD0nZGlyZWN0b3J5IHRvIGdlbmVyYXRlIGZpbGUgaW4nLCBtZXRhdmFyPSdkaXInKQotCi0g
ICAgKG9wdGlvbnMsIGFyZ3VtZW50cykgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBpZiBu
b3Qgb3B0aW9ucy5pbnB1dDoKLSAgICAgICAgcHJpbnQgIkVycm9yOiBtdXN0IHByb3ZpZGUgYW4g
aW5wdXQgZmlsZSIKLSAgICAgICAgcGFyc2VyLnByaW50X3VzYWdlKCkKLSAgICAgICAgZXhpdCgt
MSkKLQotICAgIG91dHB1dERpcmVjdG9yeSA9IG9wdGlvbnMub3V0cHV0RGlyIGlmIG9wdGlvbnMu
b3V0cHV0RGlyIGVsc2Ugb3MuZ2V0Y3dkKCkKLQotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhv
dXRwdXREaXJlY3RvcnkpOgotICAgICAgICBvcy5tYWtlZGlycyhvdXRwdXREaXJlY3RvcnkpCi0K
LSAgICBzZXR0aW5ncyA9IHBhcnNlSW5wdXQob3B0aW9ucy5pbnB1dCkKLQotICAgIGdlbmVyYXRl
U2V0dGluZ3NIZWFkZXJGaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpCi0gICAgZ2VuZXJh
dGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKQot
ICAgIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0
aW5ncykKLSAgICBnZW5lcmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxlKG91dHB1dERpcmVj
dG9yeSwgc2V0dGluZ3MpCi0gICAgZ2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRp
b25GaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpCi0KLQotaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKLSAgICBtYWluKCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5weQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpleGVj
dXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJ
bmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKKyMhL3Vzci9iaW4vZW52IHJ1YnkKKyMKKyMg
Q29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVpcmUgImZpbGV1dGlscyIK
K3JlcXVpcmUgJ2VyYicKK3JlcXVpcmUgJ29wdHBhcnNlJworcmVxdWlyZSAneWFtbCcKKworb3B0
aW9ucyA9IHsgCisgIDppbnB1dCA9PiBuaWwsCisgIDpvdXRwdXREaXJlY3RvcnkgPT4gbmlsCit9
CitvcHRwYXJzZSA9IE9wdGlvblBhcnNlci5uZXcgZG8gfG9wdHN8CisgICAgb3B0cy5iYW5uZXIg
PSAiVXNhZ2U6ICN7RmlsZS5iYXNlbmFtZSgkMCl9IC0taW5wdXQgZmlsZSIKKworICAgIG9wdHMu
c2VwYXJhdG9yICIiCisKKyAgICBvcHRzLm9uKCItLWlucHV0IGlucHV0IiwgImZpbGUgdG8gZ2Vu
ZXJhdGUgc2V0dGluZ3MgZnJvbSIpIHsgfGlucHV0fCBvcHRpb25zWzppbnB1dF0gPSBpbnB1dCB9
CisgICAgb3B0cy5vbigiLS1vdXRwdXREaXIgb3V0cHV0IiwgImRpcmVjdG9yeSB0byBnZW5lcmF0
ZSBmaWxlIGluIikgeyB8b3V0cHV0fCBvcHRpb25zWzpvdXRwdXREaXJlY3RvcnldID0gb3V0cHV0
IH0KK2VuZAorCitvcHRwYXJzZS5wYXJzZSEKKworaWYgIW9wdGlvbnNbOmlucHV0XQorICBwdXRz
IG9wdHBhcnNlCisgIGV4aXQoLTEpCitlbmQKKworaWYgIW9wdGlvbnNbOm91dHB1dERpcmVjdG9y
eV0KKyAgb3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSA9IERpci5nZXR3ZAorZW5kCisKK0ZpbGVV
dGlscy5ta2Rpcl9wKG9wdGlvbnNbOm91dHB1dERpcmVjdG9yeV0pCisKK3BhcnNlZFNldHRpbmdz
ID0gYmVnaW4KKyAgWUFNTC5sb2FkX2ZpbGUob3B0aW9uc1s6aW5wdXRdKQorcmVzY3VlIEFyZ3Vt
ZW50RXJyb3IgPT4gZQorICBwdXRzICJDb3VsZCBub3QgcGFyc2UgaW5wdXQgZmlsZTogI3tlLm1l
c3NhZ2V9IgorICBleGl0KC0xKQorZW5kCisKK2NsYXNzIFNldHRpbmcKKyAgYXR0cl9hY2Nlc3Nv
ciA6bmFtZQorICBhdHRyX2FjY2Vzc29yIDp0eXBlCisgIGF0dHJfYWNjZXNzb3IgOmluaXRpYWwK
KyAgYXR0cl9hY2Nlc3NvciA6Y29uZGl0aW9uYWwKKyAgYXR0cl9hY2Nlc3NvciA6b25DaGFuZ2UK
KyAgYXR0cl9hY2Nlc3NvciA6Z2V0dGVyCisgIAorICBkZWYgaW5pdGlhbGl6ZShuYW1lLCBvcHRz
KQorICAgIEBuYW1lID0gbmFtZQorICAgIEB0eXBlID0gb3B0c1sidHlwZSJdIHx8ICJib29sIgor
ICAgIEBpbml0aWFsID0gb3B0c1snaW5pdGlhbCddCisgICAgQGNvbmRpdGlvbmFsID0gb3B0c1sn
Y29uZGl0aW9uYWwnXQorICAgIEBvbkNoYW5nZSA9IG9wdHNbJ29uQ2hhbmdlJ10KKyAgICBAZ2V0
dGVyID0gb3B0c1snZ2V0dGVyJ10KKworICAgIGlmIEB0eXBlID09ICdTdHJpbmcnICYmIEBpbml0
aWFsCisgICAgICBAaW5pdGlhbCA9ICJcIiN7QGluaXRpYWx9XCIiCisgICAgZW5kCisgIGVuZAor
CisgIGRlZiB2YWx1ZVR5cGU/KCkKKyAgICByZXR1cm4gQHR5cGUgIT0gJ1N0cmluZycgJiYgQHR5
cGUgIT0gJ1VSTCcKKyAgZW5kCisKKyAgZGVmIGlkbFR5cGUoKQorICAgICMgRklYTUU6IEFkZCBz
dXBwb3J0IGZvciBtb3JlIHR5cGVzIGluY2x1ZGluZyBlbnVtZXJhdGUgdHlwZXMuCisgICAgaWYg
QHR5cGUgPT0gJ2ludCcKKyAgICAgIHJldHVybiAnbG9uZycKKyAgICBlbHNpZiBAdHlwZSA9PSAn
dW5zaWduZWQnCisgICAgICByZXR1cm4gJ3Vuc2lnbmVkIGxvbmcnCisgICAgZWxzaWYgQHR5cGUg
PT0gJ2RvdWJsZScKKyAgICAgIHJldHVybiAnZG91YmxlJworICAgIGVsc2lmIEB0eXBlID09ICdm
bG9hdCcKKyAgICAgIHJldHVybiAnZmxvYXQnCisgICAgZWxzaWYgQHR5cGUgPT0gJ1N0cmluZycK
KyAgICAgIHJldHVybiAnRE9NU3RyaW5nJworICAgIGVsc2lmIEB0eXBlID09ICdib29sJworICAg
ICAgcmV0dXJuICdib29sZWFuJworICAgIGVsc2UKKyAgICAgIHJldHVybiBuaWwKKyAgICBlbmQK
KyAgZW5kCisKKyAgZGVmIHBhcmFtZXRlclR5cGUoKQorICAgIGlmIHZhbHVlVHlwZT8KKyAgICAg
IHJldHVybiBAdHlwZQorICAgIGVsc2UKKyAgICAgIHJldHVybiAiY29uc3QgI3tAdHlwZX0mIgor
ICAgIGVuZAorICBlbmQKKworICBkZWYgaGFzQ29tcGxleFNldHRlcj8oKQorICAgIHJldHVybiBA
b25DaGFuZ2UgIT0gbmlsCisgIGVuZAorCisgIGRlZiBzZXR0ZXJGdW5jdGlvbk5hbWUoKQorICAg
IGlmIEBuYW1lLnN0YXJ0X3dpdGg/KCdjc3MnLCAneHNzJywgJ2Z0cCcsICdkb20nLCAnZG5zJykK
KyAgICAgIHJldHVybiAnc2V0JyArIEBuYW1lWzAuLjJdLnVwY2FzZSArIEBuYW1lWzMuLkBuYW1l
Lmxlbmd0aF0KKyAgICBlbHNlCisgICAgICByZXR1cm4gJ3NldCcgKyBAbmFtZVswXS51cGNhc2Ug
KyBAbmFtZVsxLi5AbmFtZS5sZW5ndGhdCisgICAgZW5kCisgIGVuZAorCisgIGRlZiBnZXR0ZXJG
dW5jdGlvbk5hbWUoKQorICAgIHJldHVybiBAZ2V0dGVyIHx8IEBuYW1lCisgIGVuZAorCisgIGRl
ZiBnZXR0ZXJEZWNsYXJhdGlvbigpCisgICAgICByZXR1cm4gIiN7cGFyYW1ldGVyVHlwZSgpfSAj
e2dldHRlckZ1bmN0aW9uTmFtZSgpfSgpIGNvbnN0IHsgcmV0dXJuIG1fI3tAbmFtZX07IH0iCisg
IGVuZAorCisgIGRlZiBzZXR0ZXJEZWNsYXJhdGlvbigpCisgICAgZXhwb3J0ID0gaGFzQ29tcGxl
eFNldHRlcj8gPyAiV0VCQ09SRV9FWFBPUlQgIiA6ICIiCisgICAgYm9keSA9IGhhc0NvbXBsZXhT
ZXR0ZXI/ID8gIjsiIDogIiB7IG1fI3tAbmFtZX0gPSAje0BuYW1lfTsgfSIKKyAgICByZXR1cm4g
IiN7ZXhwb3J0fXZvaWQgI3tzZXR0ZXJGdW5jdGlvbk5hbWUoKX0oI3twYXJhbWV0ZXJUeXBlKCl9
ICN7QG5hbWV9KSN7Ym9keX0iCisgIGVuZAorZW5kCisKK2NsYXNzIENvbmRpdGlvbmFsCisgIGF0
dHJfYWNjZXNzb3IgOmNvbmRpdGlvbgorICBhdHRyX2FjY2Vzc29yIDpzZXR0aW5ncworICBhdHRy
X2FjY2Vzc29yIDpib29sU2V0dGluZ3MKKyAgYXR0cl9hY2Nlc3NvciA6bm9uQm9vbFNldHRpbmdz
CisgIGF0dHJfYWNjZXNzb3IgOnNldHRpbmdzV2l0aENvbXBsZXhTZXR0ZXJzCisKKyAgZGVmIGlu
aXRpYWxpemUoY29uZGl0aW9uLCBzZXR0aW5ncykKKyAgICBAY29uZGl0aW9uID0gY29uZGl0aW9u
CisgICAgQHNldHRpbmdzID0gc2V0dGluZ3MKKyAgICAKKyAgICBAYm9vbFNldHRpbmdzID0gQHNl
dHRpbmdzLnNlbGVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUgPT0gImJvb2wiIH0KKyAgICBA
bm9uQm9vbFNldHRpbmdzID0gQHNldHRpbmdzLnJlamVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5
cGUgPT0gImJvb2wiIH0KKyAgICBAc2V0dGluZ3NXaXRoQ29tcGxleFNldHRlcnMgPSBAc2V0dGlu
Z3Muc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuaGFzQ29tcGxleFNldHRlcj8gfQorICBlbmQK
K2VuZAorCitjbGFzcyBTZXR0aW5ncworICBhdHRyX2FjY2Vzc29yIDpzZXR0aW5ncworICBhdHRy
X2FjY2Vzc29yIDp1bmNvbmRpdGlvbmFsU2V0dGluZworICBhdHRyX2FjY2Vzc29yIDp1bmNvbmRp
dGlvbmFsQm9vbFNldHRpbmcKKyAgYXR0cl9hY2Nlc3NvciA6dW5jb25kaXRpb25hbE5vbkJvb2xT
ZXR0aW5nCisgIGF0dHJfYWNjZXNzb3IgOnVuY29uZGl0aW9uYWxTZXR0aW5nV2l0aENvbXBsZXhT
ZXR0ZXJzCisgIGF0dHJfYWNjZXNzb3IgOmNvbmRpdGlvbmFscworICAKKyAgZGVmIGluaXRpYWxp
emUoaGFzaCkKKyAgICBAc2V0dGluZ3MgPSBbXQorICAgIGhhc2guZWFjaCBkbyB8bmFtZSwgb3B0
aW9uc3wKKyAgICAgIEBzZXR0aW5ncyA8PCBTZXR0aW5nLm5ldyhuYW1lLCBvcHRpb25zKQorICAg
IGVuZAorICAgIEBzZXR0aW5ncy5zb3J0ISB7IHx4LCB5fCB4Lm5hbWUgPD0+IHkubmFtZSB9Cisg
ICAgCisgICAgQHVuY29uZGl0aW9uYWxTZXR0aW5nID0gQHNldHRpbmdzLnJlamVjdCB7IHxzZXR0
aW5nfCBzZXR0aW5nLmNvbmRpdGlvbmFsIH0KKyAgICBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5n
ID0gQHVuY29uZGl0aW9uYWxTZXR0aW5nLnNlbGVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUg
PT0gImJvb2wiIH0KKyAgICBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nID0gQHVuY29uZGl0
aW9uYWxTZXR0aW5nLnJlamVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUgPT0gImJvb2wiIH0K
KyAgICBAdW5jb25kaXRpb25hbFNldHRpbmdXaXRoQ29tcGxleFNldHRlcnMgPSBAdW5jb25kaXRp
b25hbFNldHRpbmcuc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuaGFzQ29tcGxleFNldHRlcj8g
fQorCisgICAgQGNvbmRpdGlvbmFscyA9IFtdCisgICAgY29uZGl0aW9uYWxzTWFwID0geyB9Cisg
ICAgQHNldHRpbmdzLnNlbGVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLmNvbmRpdGlvbmFsIH0uZWFj
aCBkbyB8c2V0dGluZ3wKKyAgICAgIGlmIG5vdCBjb25kaXRpb25hbHNNYXBbc2V0dGluZy5jb25k
aXRpb25hbF0KKyAgICAgICAgY29uZGl0aW9uYWxzTWFwW3NldHRpbmcuY29uZGl0aW9uYWxdID0g
W10KKyAgICAgIGVuZAorCisgICAgICBjb25kaXRpb25hbHNNYXBbc2V0dGluZy5jb25kaXRpb25h
bF0gPDwgc2V0dGluZworICAgIGVuZAorICAgIGNvbmRpdGlvbmFsc01hcC5lYWNoIGRvIHxrZXks
IHZhbHVlfAorICAgICAgQGNvbmRpdGlvbmFscyA8PCBDb25kaXRpb25hbC5uZXcoa2V5LCB2YWx1
ZSkKKyAgICBlbmQKKyAgICBAY29uZGl0aW9uYWxzLnNvcnQhIHsgfHgsIHl8IHguY29uZGl0aW9u
IDw9PiB5LmNvbmRpdGlvbiB9CisgICAgCisgIGVuZAorCisgIGRlZiByZW5kZXJUb0ZpbGUodGVt
cGxhdGUsIGZpbGUpCisgICAgdGVtcGxhdGUgPSBGaWxlLmpvaW4oRmlsZS5kaXJuYW1lKF9fRklM
RV9fKSwgdGVtcGxhdGUpCisKKyAgICBvdXRwdXQgPSBFUkIubmV3KEZpbGUucmVhZCh0ZW1wbGF0
ZSksIDAsICItIikucmVzdWx0KGJpbmRpbmcpCisgICAgRmlsZS5vcGVuKGZpbGUsICJ3KyIpIGRv
IHxmfAorICAgICAgZi53cml0ZShvdXRwdXQpCisgICAgZW5kCisgIGVuZAorZW5kCisKK3NldHRp
bmdzID0gU2V0dGluZ3MubmV3KHBhcnNlZFNldHRpbmdzKQorc2V0dGluZ3MucmVuZGVyVG9GaWxl
KCJTZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYiIsIEZpbGUuam9pbihvcHRpb25zWzpv
dXRwdXREaXJlY3RvcnldLCAiU2V0dGluZ3MuaCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJT
ZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiIiwgRmlsZS5qb2luKG9wdGlvbnNbOm91
dHB1dERpcmVjdG9yeV0sICJTZXR0aW5ncy5jcHAiKSkKK3NldHRpbmdzLnJlbmRlclRvRmlsZSgi
U2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiIiwgRmls
ZS5qb2luKG9wdGlvbnNbOm91dHB1dERpcmVjdG9yeV0sICJJbnRlcm5hbFNldHRpbmdzR2VuZXJh
dGVkLmlkbCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJTZXR0aW5nc1RlbXBsYXRlcy9JbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkLmguZXJiIiwgRmlsZS5qb2luKG9wdGlvbnNbOm91dHB1dERp
cmVjdG9yeV0sICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiKSkKK3NldHRpbmdzLnJlbmRl
clRvRmlsZSgiU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAu
ZXJiIiwgRmlsZS5qb2luKG9wdGlvbnNbOm91dHB1dERpcmVjdG9yeV0sICJJbnRlcm5hbFNldHRp
bmdzR2VuZXJhdGVkLmNwcCIpKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUv
U2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpleGVjdXRh
YmxlCiMjIC0wLDAgKzEgIyMKKyoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRp
bmdzR2VuZXJhdGVkLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0
cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9J
bnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw4OCBAQAorLyoKKyAqIFRISVMgRklMRSBXQVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQsIERP
IE5PVCBFRElULgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJ
bnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiCisKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRlcm5hbFNldHRpbmdz
R2VuZXJhdGVkOjpJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkKFBhZ2UqIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKKzwlLSBmb3IgQHNldHRpbmcgaW4gQHNldHRpbmdzIGRvIC0lPgorPCUtIGlm
IEBzZXR0aW5nLmlkbFR5cGUgLSU+Cis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+Cisj
aWYgRU5BQkxFKDwlPSBAc2V0dGluZy5jb25kaXRpb25hbCAlPikKKzwlLSBlbmQgLSU+CisgICAg
LCBtXzwlPSBAc2V0dGluZy5uYW1lICU+KHBhZ2UtPnNldHRpbmdzKCkuPCU9IEBzZXR0aW5nLmdl
dHRlckZ1bmN0aW9uTmFtZSAlPigpKQorPCUtIGlmIEBzZXR0aW5nLmNvbmRpdGlvbmFsIC0lPgor
I2VuZGlmCis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cit7Cit9CisKK0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6On5JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkKCkKK3sK
K30KKwordm9pZCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0
YXRlKCkKK3sKKzwlLSBmb3IgQHNldHRpbmcgaW4gQHNldHRpbmdzIGRvIC0lPgorPCUtIGlmIEBz
ZXR0aW5nLmlkbFR5cGUgLSU+Cis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+CisjaWYg
RU5BQkxFKDwlPSBAc2V0dGluZy5jb25kaXRpb25hbCAlPikKKzwlLSBlbmQgLSU+CisgICAgbV9w
YWdlLT5zZXR0aW5ncygpLjwlPSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUgJT4obV88JT0g
QHNldHRpbmcubmFtZSAlPik7Cis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+CisjZW5k
aWYKKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK30KKworPCUtIGZvciBA
c2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcuaWRsVHlwZSAtJT4K
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZDo6PCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0
aW9uTmFtZSAlPig8JT0gQHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPiA8JT0gQHNldHRpbmcubmFt
ZSAlPikKK3sKKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUoPCU9
IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorICAgIG1fcGFnZS0+c2V0dGluZ3MoKS48JT0gQHNl
dHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwlPSBAc2V0dGluZy5uYW1lICU+KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKDwlPSBAc2V0dGluZy5uYW1lICU+KTsKKyNlbmRpZgorPCUtIGVs
c2UgLSU+CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLjwlPSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlv
bk5hbWUgJT4oPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworPCUtIGVuZCAtJT4KK30KKworPCUtIGVu
ZCAtJT4KKzwlLSBlbmQgLSU+Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuaC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1Rl
bXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmguZXJiCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5oLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisvKgorICog
VEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisgKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFBhZ2U7CisKK2NsYXNzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQgOiBwdWJsaWMgUmVm
Q291bnRlZDxJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkPiB7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZChQYWdlKik7CisgICAgdmlydHVhbCB+SW50ZXJu
YWxTZXR0aW5nc0dlbmVyYXRlZCgpOworCisgICAgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRl
KCk7CisKKzwlLSBmb3IgQHNldHRpbmcgaW4gQHNldHRpbmdzIGRvIC0lPgorPCUtIGlmIEBzZXR0
aW5nLmlkbFR5cGUgLSU+CisgICAgdm9pZCA8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1l
ICU+KDwlPSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KTsK
KzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorCitwcml2YXRlOgorICAgIFBhZ2UqIG1fcGFnZTsK
KworPCUtIGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcu
aWRsVHlwZSAtJT4KKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUo
PCU9IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorPCUtIGVuZCAtJT4KKyAgICA8JT0gQHNldHRp
bmcudHlwZSAlPiBtXzwlPSBAc2V0dGluZy5uYW1lICU+OworPCUtIGlmIEBzZXR0aW5nLmNvbmRp
dGlvbmFsIC0lPgorI2VuZGlmCis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9TY3Jp
cHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuaWRsLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisvKgorICogVEhJUyBG
SUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisgKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIE5vSW50ZXJmYWNlT2JqZWN0LAorICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVT
VFNVUFBPUlRfRVhQT1JULAorXSBpbnRlcmZhY2UgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCB7
Cis8JS0gZm9yIEBzZXR0aW5nIGluIEBzZXR0aW5ncyBkbyAtJT4KKzwlLSBpZiBAc2V0dGluZy5p
ZGxUeXBlIC0lPgorICAgIHZvaWQgPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAlPig8
JT0gQHNldHRpbmcuaWRsVHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPik7Cis8JS0gZW5kIC0l
PgorPCUtIGVuZCAtJT4KK307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
U2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuY3Bw
LmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIFRISVMgRklMRSBX
QVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQsIERPIE5PVCBFRElULgorICoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzRGVmYXVsdFZhbHVlcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1JlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdlKiBwYWdlKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTsKK30KKworU2V0dGluZ3M6
OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCisgICAgOiBTZXR0aW5nc0Jhc2UocGFnZSkKKzwlLSBmb3Ig
QHNldHRpbmcgaW4gQHVuY29uZGl0aW9uYWxOb25Cb29sU2V0dGluZyBkbyAtJT4KKyAgICAsIG1f
PCU9IEBzZXR0aW5nLm5hbWUgJT4oPCU9IEBzZXR0aW5nLmluaXRpYWwgJT4pCis8JS0gZW5kIC0l
PgorPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlvbmFscyBkbyAtJT4KKzwlLSBpZiBA
Y29uZGl0aW9uYWwubm9uQm9vbFNldHRpbmdzLmxlbmd0aCAhPSAwIC0lPgorI2lmIEVOQUJMRSg8
JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBmb3IgQHNldHRpbmcgaW4gQGNvbmRp
dGlvbmFsLm5vbkJvb2xTZXR0aW5ncyAtJT4KKyAgICAsIG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4o
PCU9IEBzZXR0aW5nLmluaXRpYWwgJT4pCis8JS0gZW5kIC0lPgorI2VuZGlmCis8JS0gZW5kIC0l
PgorPCUtIGVuZCAtJT4KKzwlLSBmb3IgQHNldHRpbmcgaW4gQHVuY29uZGl0aW9uYWxCb29sU2V0
dGluZyBkbyAtJT4KKyAgICAsIG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4oPCU9IEBzZXR0aW5nLmlu
aXRpYWwgJT4pCis8JS0gZW5kIC0lPgorPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlv
bmFscyBkbyAtJT4KKzwlLSBpZiBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzLmxlbmd0aCAhPSAw
IC0lPgorI2lmIEVOQUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBmb3Ig
QHNldHRpbmcgaW4gQGNvbmRpdGlvbmFsLmJvb2xTZXR0aW5ncyAtJT4KKyAgICAsIG1fPCU9IEBz
ZXR0aW5nLm5hbWUgJT4oPCU9IEBzZXR0aW5nLmluaXRpYWwgJT4pCis8JS0gZW5kIC0lPgorI2Vu
ZGlmCis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK3sKK30KKworU2V0dGluZ3M6On5TZXR0aW5n
cygpCit7Cit9CisKKzwlLSBmb3IgQHNldHRpbmcgaW4gQHVuY29uZGl0aW9uYWxTZXR0aW5nV2l0
aENvbXBsZXhTZXR0ZXJzIGRvIC0lPgordm9pZCBTZXR0aW5nczo6PCU9IEBzZXR0aW5nLnNldHRl
ckZ1bmN0aW9uTmFtZSgpICU+KDwlPSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0
dGluZy5uYW1lICU+KQoreworICAgIGlmIChtXzwlPSBAc2V0dGluZy5uYW1lICU+ID09IDwlPSBA
c2V0dGluZy5uYW1lICU+KQorICAgICAgICByZXR1cm47CisgICAgbV88JT0gQHNldHRpbmcubmFt
ZSAlPiA9IDwlPSBAc2V0dGluZy5uYW1lICU+OworICAgIDwlPSBAc2V0dGluZy5vbkNoYW5nZSAl
PigpOworfQorCis8JS0gZW5kIC0lPgorPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlv
bmFscyBkbyAtJT4KKzwlLSBpZiBAY29uZGl0aW9uYWwuc2V0dGluZ3NXaXRoQ29tcGxleFNldHRl
cnMubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29uZGl0aW9uYWwuY29uZGl0aW9u
ICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwuc2V0dGluZ3NXaXRoQ29tcGxl
eFNldHRlcnMgLSU+Cit2b2lkIFNldHRpbmdzOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgJT4oPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4gPCU9IEBzZXR0aW5nLm5hbWUg
JT4pCit7CisgICAgaWYgKG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gPT0gPCU9IEBzZXR0aW5nLm5h
bWUgJT4pCisgICAgICAgIHJldHVybjsKKyAgICBtXzwlPSBAc2V0dGluZy5uYW1lICU+ID0gPCU9
IEBzZXR0aW5nLm5hbWUgJT47CisgICAgPCU9IEBzZXR0aW5nLm9uQ2hhbmdlICU+KCk7Cit9Cis8
JS0gZW5kIC0lPgorI2VuZGlmCisKKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorfQpJbmRleDog
U291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1Nl
dHRpbmdzLmguZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0
dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5
MCBAQAorLyoKKyAqIFRISVMgRklMRSBXQVMgQVVUT01BVElDQUxMWSBHRU5FUkFURUQsIERPIE5P
VCBFRElULgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2V0dGluZ3NC
YXNlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBQYWdlOworCitjbGFzcyBTZXR0aW5ncyA6IHB1YmxpYyBTZXR0aW5nc0Jhc2Us
IHB1YmxpYyBSZWZDb3VudGVkPFNldHRpbmdzPiB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
U2V0dGluZ3MpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPFNldHRpbmdzPiBjcmVhdGUoUGFnZSopOworICAgIH5TZXR0aW5ncygpOworCis8JS0gZm9y
IEBzZXR0aW5nIGluIEB1bmNvbmRpdGlvbmFsU2V0dGluZyBkbyAtJT4KKyAgICA8JT0gQHNldHRp
bmcuZ2V0dGVyRGVjbGFyYXRpb24oKSAlPgorICAgIDwlPSBAc2V0dGluZy5zZXR0ZXJEZWNsYXJh
dGlvbigpICU+Cis8JS0gZW5kIC0lPgorCis8JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0
aW9uYWxzIGRvIC0lPgorI2lmIEVOQUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikK
KzwlLSBmb3IgQHNldHRpbmcgaW4gQGNvbmRpdGlvbmFsLnNldHRpbmdzIGRvIC0lPgorICAgIDwl
PSBAc2V0dGluZy5nZXR0ZXJEZWNsYXJhdGlvbigpICU+CisgICAgPCU9IEBzZXR0aW5nLnNldHRl
ckRlY2xhcmF0aW9uKCkgJT4KKzwlLSBlbmQgLSU+CisjZW5kaWYKKworPCUgZW5kIC0lPgorCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKKworPCUtIGZvciBAc2V0dGlu
ZyBpbiBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nIGRvIC0lPgorICAgIDwlPSBAc2V0dGlu
Zy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0gZW5kIC0lPgorCis8JS0gZm9y
IEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0lPgorPCUtIGlmIEBjb25kaXRpb25h
bC5ub25Cb29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29uZGl0
aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwubm9u
Qm9vbFNldHRpbmdzIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5n
Lm5hbWUgJT47Cis8JS0gZW5kIC0lPgorI2VuZGlmCis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4K
KworPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5nIGRvIC0lPgor
ICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gOiAxOworPCUt
IGVuZCAtJT4KKworPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlvbmFscyBkbyAtJT4K
KzwlLSBpZiBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzLmxlbmd0aCAhPSAwIC0lPgorI2lmIEVO
QUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBmb3IgQHNldHRpbmcgaW4g
QGNvbmRpdGlvbmFsLmJvb2xTZXR0aW5ncyAtJT4KKyAgICA8JT0gQHNldHRpbmcudHlwZSAlPiBt
XzwlPSBAc2V0dGluZy5uYW1lICU+IDogMTsKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBlbmQg
LSU+Cis8JS0gZW5kIC0lPgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIzODE2KQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTEyMSw2ICsxMTEyMSw3IEBACiAJCTdDRDM0NDEyMUYzMTA4RTIwMDBEQ0Q0OSAv
KiBKU011dGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNdXRhdGlvbkNh
bGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENDk0Q0ExQTg2RUIx
RDAwMEE4N0VDIC8qIFJlbmRlckF0dGFjaG1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyQXR0YWNobWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDRDQ5NENCMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRhY2htZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckF0dGFjaG1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NERTczOTYxRjlCRDU5NTAwMzkwMzEyIC8qIFNl
dHRpbmdzLnlhbWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2V0dGluZ3MueWFtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NERThFQkMxRjE5M0JDNTAwMTY4RkU3IC8qIENTU1N0
eWxlRGVjbGFyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RTE5MTQ3MUYyQTk4QUYwMDI3MkY3OCAvKiBGZXRjaFJlcXVlc3RJbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoUmVxdWVzdEluaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0NFMTkxNDkxRjJBOThCMDAwMjcyRjc4IC8qIEZldGNoUmVxdWVzdElu
aXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZldGNoUmVxdWVzdEluaXQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk1NzIsNiArMTk1NzMsNyBAQAogCQkJCTk3NEQy
REEyMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5jcHAgKi8sCiAJCQkJOTc0RDJE
QTMxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmggKi8sCiAJCQkJQkM1OURFRjgx
NjlERURDMzAwMTZBQzM0IC8qIFNldHRpbmdzLmluICovLAorCQkJCTdDREU3Mzk2MUY5QkQ1OTUw
MDM5MDMxMiAvKiBTZXR0aW5ncy55YW1sICovLAogCQkJCTdDQzY2MDlCMUY5MzA1NzkwMEQ1MDBF
OSAvKiBTZXR0aW5nc0Jhc2UuY3BwICovLAogCQkJCTdDQzY2MDk5MUY5MzA1NzgwMEQ1MDBFOSAv
KiBTZXR0aW5nc0Jhc2UuaCAqLywKIAkJCQk3QzZFRkVFQTFGOTQ2QTJFMDBGRkFENDEgLyogU2V0
dGluZ3NEZWZhdWx0VmFsdWVzLmggKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4JKHJl
dmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4JKG5vbmV4
aXN0ZW50KQpAQCAtMSwzNjMgKzAsMCBAQAotIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGdsb2Jh
bCBzZXR0aW5ncy4KLSMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBjdXN0b20gZ2V0dGVycy9zZXR0
ZXJzLgotCi1kZWZhdWx0VGV4dEVuY29kaW5nTmFtZSB0eXBlPVN0cmluZwotZnRwRGlyZWN0b3J5
VGVtcGxhdGVQYXRoIHR5cGU9U3RyaW5nCi1sb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGggdHlwZT1T
dHJpbmcKLWVkaXRhYmxlTGlua0JlaGF2aW9yIHR5cGU9RWRpdGFibGVMaW5rQmVoYXZpb3IsIGlu
aXRpYWw9RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yCi10ZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlaGF2aW9yIHR5cGU9VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlv
ciwgaW5pdGlhbD1UZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZAotcGRm
SW1hZ2VDYWNoaW5nUG9saWN5IHR5cGU9UERGSW1hZ2VDYWNoaW5nUG9saWN5LCBpbml0aWFsID0g
UERGSW1hZ2VDYWNoaW5nRGVmYXVsdAotcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMgdHlw
ZT1kb3VibGUsIGluaXRpYWw9MQotCi0jIFNldHMgdGhlIG1hZ25pZmljYXRpb24gdmFsdWUgZm9y
IHZhbGlkYXRpb24gbWVzc2FnZSB0aW1lci4gIElmIHRoZQotIyBtYWduaWZpY2F0aW9uIHZhbHVl
IGlzIE4sIGEgdmFsaWRhdGlvbiBtZXNzYWdlIGRpc2FwcGVhcnMgYXV0b21hdGljYWxseSBhZnRl
cgotIyA8bWVzc2FnZSBsZW5ndGg+ICogTiAvIDEwMDAgc2Vjb25kcy4gIElmIE4gaXMgZXF1YWwg
dG8gb3IgbGVzcyB0aGFuIDAsIGEKLSMgdmFsaWRhdGlvbiBtZXNzYWdlIGRvZXNuJ3QgZGlzYXBw
ZWFycyBhdXRvbWF0aWNhbHkuCi12YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbiB0
eXBlPWludCwgaW5pdGlhbD01MAotCi0jIE51bWJlciBvZiBwaXhlbHMgYmVsb3cgd2hpY2ggMkQg
Y2FudmFzIGlzIHJlbmRlcmVkIGluIHNvZnR3YXJlCi0jIGV2ZW4gaWYgaGFyZHdhcmUgYWNjZWxl
cmF0aW9uIGlzIGVuYWJsZWQuCi0jIEhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyB1c2VmdWwgZm9y
IGxhcmdlIGNhbnZhc2VzIHdoZXJlIGl0IGNhbiBhdm9pZCB0aGUKLSMgcGl4ZWwgYmFuZHdpZHRo
IGJldHdlZW4gdGhlIENQVSBhbmQgR1BVLiBCdXQgR1BVIGFjY2VsZXJhdGlvbiBjb21lcyBhdAot
IyBhIHByaWNlIC0gZXh0cmEgYmFjay1idWZmZXIgYW5kIHRleHR1cmUgY29weS4gU21hbGwgY2Fu
dmFzZXMgYXJlIGFsc28KLSMgd2lkZWx5IHVzZWQgZm9yIHN0eWxpemVkIGZvbnRzLiBBbnRpLWFs
aWFzaW5nIHRleHQgaW4gaGFyZHdhcmUgYXQgdGhhdAotIyBzY2FsZSBpcyBnZW5lcmFsbHkgc2xv
d2VyLiBTbyBiZWxvdyBhIGNlcnRhaW4gc2l6ZSBpdCBpcyBiZXR0ZXIgdG8KLSMgZHJhdyBjYW52
YXMgaW4gc29mdHdhcmUuCi1taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUgdHlwZT1pbnQs
IGluaXRpYWw9MjU3KjI1NgotCi1tYXhpbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUgdHlwZT11
bnNpZ25lZCwgaW5pdGlhbD01MTIwKjI4ODAKLQotbGF5b3V0RmFsbGJhY2tXaWR0aCB0eXBlPWlu
dCwgaW5pdGlhbD05ODAKLWRldmljZVdpZHRoIHR5cGU9aW50LCBpbml0aWFsPTAKLWRldmljZUhl
aWdodCB0eXBlPWludCwgaW5pdGlhbD0wCi0KLSMgQWxsb3cgY2xpZW50cyBjb25jZXJuZWQgd2l0
aCBtZW1vcnkgY29uc3VtcHRpb24gdG8gc2V0IGEgcXVvdGEgb24gc2Vzc2lvbiBzdG9yYWdlCi0j
IHNpbmNlIHRoZSBtZW1vcnkgdXNlZCB3b24ndCBiZSByZWxlYXNlZCB1bnRpbCB0aGUgUGFnZSBp
cyBkZXN0cm95ZWQuCi1zZXNzaW9uU3RvcmFnZVF1b3RhIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9
U3RvcmFnZU1hcDo6bm9RdW90YQotCi1taW5pbXVtRm9udFNpemUgdHlwZT1pbnQsIGluaXRpYWw9
MCwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1taW5pbXVtTG9naWNh
bEZvbnRTaXplIHR5cGU9aW50LCBpbml0aWFsPTAsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5
bGVJbkFsbEZyYW1lcwotZGVmYXVsdEZvbnRTaXplIHR5cGU9aW50LCBpbml0aWFsPTE2LCBvbkNo
YW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLWRlZmF1bHRGaXhlZEZvbnRTaXpl
IHR5cGU9aW50LCBpbml0aWFsPTAsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZy
YW1lcwotCi1lZGl0aW5nQmVoYXZpb3JUeXBlIHR5cGU9RWRpdGluZ0JlaGF2aW9yVHlwZSwgaW5p
dGlhbD1lZGl0aW5nQmVoYXZpb3JUeXBlRm9yUGxhdGZvcm0oKQotbWF4aW11bUhUTUxQYXJzZXJE
T01UcmVlRGVwdGggdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1kZWZhdWx0TWF4aW11bUhUTUxQYXJz
ZXJET01UcmVlRGVwdGgKLQotIyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBp
bWFnZSBsb2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNl
IGFuZCB0aGlzIHNldHRpbmcgaXMgdHJ1ZS4KLSMgQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGls
bCBoZWVkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgotbG9hZHNTaXRlSWNvbnNJ
Z25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmcgaW5pdGlhbD1mYWxzZQotCi1jYXJldEJyb3dzaW5n
RW5hYmxlZCBpbml0aWFsPWZhbHNlCi1wcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoIGlu
aXRpYWw9ZmFsc2UKLWxvY2FsU3RvcmFnZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQotYWxsb3dVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgaW5pdGlhbD10cnVlCi1hbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMgaW5pdGlhbD10cnVlCi1uZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWly
ayBpbml0aWFsPXRydWUKLWphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgaW5p
dGlhbD1mYWxzZQotamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCBpbml0aWFsPWZhbHNlCi1z
aG91bGRQcmludEJhY2tncm91bmRzIGluaXRpYWw9ZmFsc2UKLXVzZXNEYXNoYm9hcmRCYWNrd2Fy
ZENvbXBhdGliaWxpdHlNb2RlIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPURBU0hCT0FSRF9T
VVBQT1JUCi1jbGlwYm9hcmRBY2Nlc3NQb2xpY3kgdHlwZT1DbGlwYm9hcmRBY2Nlc3NQb2xpY3ks
IGluaXRpYWw9Q2xpcGJvYXJkQWNjZXNzUG9saWN5OjpSZXF1aXJlc1VzZXJHZXN0dXJlCi0KLXRl
eHRBcmVhc0FyZVJlc2l6YWJsZSBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMKLWF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIGluaXRpYWw9dHJ1
ZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi11c2VyU3R5bGVTaGVl
dExvY2F0aW9uIHR5cGU9VVJMLCBvbkNoYW5nZT11c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdl
ZAotYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgaW5pdGlhbD10cnVlLCBvbkNoYW5nZT1z
ZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLWFjY2VsZXJhdGVkQ29tcG9zaXRlZEFuaW1h
dGlvbnNFbmFibGVkIGluaXRpYWw9dHJ1ZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUlu
QWxsRnJhbWVzCi1zaG93RGVidWdCb3JkZXJzIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXNldE5l
ZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotc2hvd1JlcGFpbnRDb3VudGVyIGluaXRpYWw9ZmFs
c2UsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotdmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnMgdHlwZT1EZWJ1Z092ZXJsYXlSZWdpb25zLCBpbml0aWFsPTAKLXNob3dU
aWxlZFNjcm9sbGluZ0luZGljYXRvciBpbml0aWFsPWZhbHNlCi1yZXNvdXJjZVVzYWdlT3Zlcmxh
eVZpc2libGUgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9cmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNp
YmxlQ2hhbmdlZCwgY29uZGl0aW9uPVJFU09VUkNFX1VTQUdFCi0KLSMgVGhpcyBpcyBhIHF1aXJr
IHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcgdG8gb2xkIGFwcGxpY2F0aW9ucy4gSXQgY2hh
bmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGluZywKLSMgbWFraW5nIGtleUlkZW50aWZpZXIg
YXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5nIGNoYXJDb2RlIGF2YWlsYWJsZSBv
biBrZXlkb3duL2tleXVwIGV2ZW50cywKLSMgYW5kIGdldHRpbmcga2V5cHJlc3MgZGlzcGF0Y2hl
ZCBpbiBtb3JlIGNhc2VzLgotbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3Mg
aW5pdGlhbD1mYWxzZQotCi10cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldCBpbml0aWFs
PWZhbHNlCi1zaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0IGluaXRpYWw9dHJ1ZQotcGFnZUNh
Y2hlU3VwcG9ydHNQbHVnaW5zIGluaXRpYWw9ZmFsc2UKLXNob3dzVVJMc0luVG9vbFRpcHMgaW5p
dGlhbD1mYWxzZQotc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQgaW5pdGlhbD1mYWxzZQot
Zm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncyBpbml0aWFsPWZhbHNlCi1kZXZlbG9wZXJFeHRyYXNF
bmFibGVkIGluaXRpYWw9ZmFsc2UKLXNjcmlwdE1hcmt1cEVuYWJsZWQgaW5pdGlhbD10cnVlCi1u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyBpbml0aWFsPWZhbHNlCi1kb21UaW1lcnNUaHJvdHRsaW5n
RW5hYmxlZCBpbml0aWFsPXRydWUKLXdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkIGluaXRpYWw9
ZmFsc2UsIGNvbmRpdGlvbmFsPVdFQl9BUkNISVZFCi1sb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkIGluaXRpYWw9ZmFsc2UKLW9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCBp
bml0aWFsPWZhbHNlCi1lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSBpbml0aWFsPXRy
dWUKLXVzZXNFbmNvZGluZ0RldGVjdG9yIGluaXRpYWw9ZmFsc2UKLWFsbG93U2NyaXB0c1RvQ2xv
c2VXaW5kb3dzIGluaXRpYWw9ZmFsc2UKLWNhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcgaW5p
dGlhbD1mYWxzZQotYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1kaXNw
bGF5TGlzdERyYXdpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKLWFjY2VsZXJhdGVkRmlsdGVyc0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQotdXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRC
ZWhhdmlvciBpbml0aWFsPWZhbHNlCi1qYXZhU2NyaXB0UnVudGltZUZsYWdzIHR5cGU9SlNDOjpS
dW50aW1lRmxhZ3MKLQotIyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGRpc2FibGVkIGJ5
IGRlZmF1bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgZmVh
dHVyZSBkb3dubG9hZCBmaWxlcwotIyB0aGV5IGNhbid0IHVzZSBieS4gTGVhdmluZyBlbmFibGVk
IGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhhdmlvci4KLWRvd25sb2FkYWJsZUJp
bmFyeUZvbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKLQoteHNzQXVkaXRvckVuYWJsZWQgaW5pdGlh
bD1mYWxzZQotYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkIGlu
aXRpYWw9ZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxl
ZAotYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCBpbml0aWFs
PWZhbHNlCi1ydWJiZXJCYW5kaW5nRm9yU3ViU2Nyb2xsYWJsZVJlZ2lvbnNFbmFibGVkIGluaXRp
YWw9dHJ1ZSwgY29uZGl0aW9uYWw9UlVCQkVSX0JBTkRJTkcKLQotZXhwZXJpbWVudGFsTm90aWZp
Y2F0aW9uc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotd2ViR0xFbmFibGVkIGluaXRpYWw9ZmFsc2UK
LXdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZCBpbml0aWFsPXRydWUKLWZvcmNlU29mdHdhcmVX
ZWJHTFJlbmRlcmluZyBpbml0aWFsPWZhbHNlCi1mb3JjZVdlYkdMVXNlc0xvd1Bvd2VyIGluaXRp
YWw9ZmFsc2UKLWFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKLWxvYWRE
ZWZlcnJpbmdFbmFibGVkIGluaXRpYWw9dHJ1ZQotd2ViQXVkaW9FbmFibGVkIGluaXRpYWw9ZmFs
c2UKLXBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCBpbml0aWFsPWZhbHNlCi1mdWxsU2NyZWVu
RW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSQotYXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi0jIFRoaXMgZmVhdHVy
ZSByZXF1aXJlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC4K
LWludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdXNlUHJl
SFRNTDVQYXJzZXJRdWlya3MgaW5pdGlhbD1mYWxzZQotaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVk
IGluaXRpYWw9ZmFsc2UKLWNyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2Fi
bGVkIGluaXRpYWw9ZmFsc2UKLWZvcmNlQ29tcG9zaXRpbmdNb2RlIGluaXRpYWw9ZmFsc2UKLXNo
b3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlEb2N1bWVudCBpbml0aWFsPWZhbHNl
Ci1maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lIGluaXRpYWw9ZmFsc2UKLWFsbG93
RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IGluaXRpYWw9ZmFsc2UKLWFsbG93UnVubmluZ09mSW5z
ZWN1cmVDb250ZW50IGluaXRpYWw9ZmFsc2UKLXJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRl
byBpbml0aWFsPWRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW8KLXZpZGVvUGxh
eWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9ZGVmYXVsdFZpZGVvUGxheWJhY2tSZXF1
aXJlc1VzZXJHZXN0dXJlCi1hdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSBpbml0aWFs
PWRlZmF1bHRBdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQotbWFpbkNvbnRlbnRVc2Vy
R2VzdHVyZU92ZXJyaWRlRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1tZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQgaW5pdGlhbD1mYWxzZQotYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
ayBpbml0aWFsPWRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrCi1hbGxvd3NJbmxpbmVN
ZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuIGluaXRpYWw9dHJ1ZQotaW5saW5lTWVkaWFQbGF5
YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgaW5pdGlhbD1kZWZhdWx0SW5saW5lTWVk
aWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKLWFsbG93c1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrIGluaXRpYWw9ZGVmYXVsdEFsbG93c1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrCi1tZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20gaW5pdGlhbD1kZWZh
dWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29tCi1pbnZpc2libGVBdXRvcGxheU5vdFBl
cm1pdHRlZCBpbml0aWFsPWZhbHNlCi1wYXNzd29yZEVjaG9FbmFibGVkIGluaXRpYWw9ZmFsc2UK
LXN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyBpbml0aWFsPWZhbHNlCi1pbmNyZW1lbnRh
bFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyB0eXBlPWRvdWJsZSwgaW5pdGlh
bD1kZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMK
LWJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkIGluaXRpYWw9dHJ1ZQotc2hvdWxkRGlzcGxh
eVN1YnRpdGxlcyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSwotc2hvdWxk
RGlzcGxheUNhcHRpb25zIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCi1z
aG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1W
SURFT19UUkFDSwotc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkIGluaXRpYWw9ZmFsc2UKLXNj
cm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcyBpbml0aWFsPWRlZmF1bHRTY3JvbGxpbmdUcmVlSW5j
bHVkZXNGcmFtZXMKLXNjcm9sbEFuaW1hdG9yRW5hYmxlZCBpbml0aWFsPXRydWUsIGNvbmRpdGlv
bmFsPVNNT09USF9TQ1JPTExJTkcKLWZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZv
clBlcmZvcm1hbmNlVGVzdGluZyBpbml0aWFsPWZhbHNlCi1ub3RpZmljYXRpb25zRW5hYmxlZCBp
bml0aWFsPXRydWUKLQotIyBTb21lIGFwcHMgbmVlZHMgaXNMb2FkaW5nSW5BUElTZW5zZSB0byBh
Y2NvdW50IGZvciBhY3RpdmUgc3VicmVzb3VyY2UgbG9hZGVycy4KLW5lZWRzSXNMb2FkaW5nSW5B
UElTZW5zZVF1aXJrIGluaXRpYWw9ZmFsc2UKLQotc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24gaW5pdGlhbD1kZWZhdWx0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24KLWltYWdlU3Vi
c2FtcGxpbmdFbmFibGVkIGluaXRpYWw9ZGVmYXVsdEltYWdlU3Vic2FtcGxpbmdFbmFibGVkCi13
YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yIGluaXRpYWw9ZmFsc2UKLXJlcXVl
c3RBbmltYXRpb25GcmFtZUVuYWJsZWQgaW5pdGlhbD10cnVlCi0KLWNvb2tpZUVuYWJsZWQgaW5p
dGlhbD10cnVlCi1tZWRpYUVuYWJsZWQgaW5pdGlhbD10cnVlCi1ET01QYXN0ZUFsbG93ZWQgaW5p
dGlhbD1mYWxzZQotCi0jIFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBkb2VzIG5vdCBjaGFu
Z2UgZm9jdXMsIGFuZAotIyB3aW5kb3cuZm9jdXMoKSBvbmx5IGNoYW5nZXMgZm9jdXMgd2hlbiBp
bnZva2VkIGZyb20gdGhlIGNvbnRleHQgdGhhdAotIyBjcmVhdGVkIHRoZSB3aW5kb3cuCi13aW5k
b3dGb2N1c1Jlc3RyaWN0ZWQgaW5pdGlhbD10cnVlCi0KLWRpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCi1kZWxlZ2F0ZXNQYWdlU2NhbGluZyBpbml0aWFsPWZhbHNlCi1wbHVn
SW5TbmFwc2hvdHRpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKLXNuYXBzaG90QWxsUGx1Z0lucyBp
bml0aWFsPWZhbHNlCi1hdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkIGlu
aXRpYWw9dHJ1ZQotcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCBpbml0aWFs
PXRydWUKLW1heGltdW1QbHVnSW5TbmFwc2hvdEF0dGVtcHRzIHR5cGU9dW5zaWduZWQsIGluaXRp
YWw9MjAKLWZyYW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFt
ZUZsYXR0ZW5pbmc6OkRpc2FibGVkCi1hc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZCBpbml0aWFs
PWZhbHNlCi0KLXdlYlNlY3VyaXR5RW5hYmxlZCBpbml0aWFsPXRydWUKLXNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLWF1dG9zY3JvbGxGb3JEcmFnQW5kRHJvcEVuYWJs
ZWQgaW5pdGlhbD1mYWxzZQotCi11bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkIGluaXRpYWw9ZGVm
YXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKLQotbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVt
Q29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1iYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlv
bkludGVydmFsIHR5cGU9ZG91YmxlLCBpbml0aWFsPTE4MDAKLQotIyBTb21lIGFwcHMgY291bGQg
aGF2ZSBhIGRlZmF1bHQgdmlkZW8gcG9zdGVyIGlmIGl0IGlzIG5vdCBzZXQuCi1kZWZhdWx0Vmlk
ZW9Qb3N0ZXJVUkwgdHlwZT1TdHJpbmcKLQotc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGluaXRp
YWw9ZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAotc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
Ci0KLXVzZUxlZ2FjeUJhY2tncm91bmRTaXplU2hvcnRoYW5kQmVoYXZpb3IgaW5pdGlhbD1mYWxz
ZQotZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50IGluaXRpYWw9ZGVmYXVs
dEZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudAotCi10ZXh0QXV0b3Npemlu
Z0VuYWJsZWQgaW5pdGlhbD1kZWZhdWx0VGV4dEF1dG9zaXppbmdFbmFibGVkKCksIG9uQ2hhbmdl
PXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcywgY29uZGl0aW9uYWw9VEVYVF9BVVRPU0la
SU5HCi10ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSB0eXBlPUludFNpemUsIG9uQ2hh
bmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcywgY29uZGl0aW9uYWw9VEVYVF9BVVRP
U0laSU5HCi1taW5pbXVtWm9vbUZvbnRTaXplIHR5cGU9ZmxvYXQsIGluaXRpYWw9ZGVmYXVsdE1p
bmltdW1ab29tRm9udFNpemUoKSwgY29uZGl0aW9uYWw9VEVYVF9BVVRPU0laSU5HCi0KLXN1YnBp
eGVsQW50aWFsaWFzZWRMYXllclRleHRFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXNl
dE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotc2ltcGxlTGluZUxheW91dEVuYWJsZWQgaW5p
dGlhbD10cnVlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLXNpbXBs
ZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXNl
dE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotCi1zdWJwaXhlbENTU09NRWxlbWVudE1ldHJp
Y3NFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdXNlR2lhbnRUaWxlcyBpbml0aWFsPWZhbHNlCi0K
LW1lZGlhU291cmNlRW5hYmxlZCBpbml0aWFsPXRydWUsIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJD
RQotCi0jIEZJWE1FOiBSZW5hbWUgdG8gYWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdEZvcm1TdWJt
aXNzaW9uIG9uY2Ugd2UgdXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIFdlYlZpZXcubW0uCi1h
bGxvd011bHRpRWxlbWVudEltcGxpY2l0U3VibWlzc2lvbiBpbml0aWFsPWZhbHNlCi0KLWFsbG93
c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIGluaXRpYWw9dHJ1ZSwgY29uZGl0aW9uYWw9V0lSRUxF
U1NfUExBWUJBQ0tfVEFSR0VUCi0KLXNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5IGlu
aXRpYWw9ZmFsc2UKLQotbWF4UGFyc2VEdXJhdGlvbiB0eXBlPWRvdWJsZSwgaW5pdGlhbD0tMQot
c3RhbmRhbG9uZSBpbml0aWFsPWZhbHNlCi10ZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCBp
bml0aWFsPWZhbHNlCi1tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgaW5pdGlhbD1kZWZhdWx0
TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5Ci1hbHdheXNVc2VBY2NlbGVyYXRlZE92ZXJmbG93
U2Nyb2xsIGluaXRpYWw9ZmFsc2UKLWltYWdlQ29udHJvbHNFbmFibGVkIGluaXRpYWw9ZmFsc2Us
IGNvbmRpdGlvbmFsPVNFUlZJQ0VfQ09OVFJPTFMKLQotZW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29t
cG9uZW50IGluaXRpYWw9ZmFsc2UKLQotYWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkIGlu
aXRpYWw9ZmFsc2UKLXRlbXBvcmFyeVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkIGluaXRpYWw9
dHJ1ZQotCi11c2VJbWFnZURvY3VtZW50Rm9yU3ViZnJhbWVQREYgaW5pdGlhbD1mYWxzZQotZGF0
YURldGVjdG9yVHlwZXMgdHlwZT1EYXRhRGV0ZWN0b3JUeXBlcywgaW5pdGlhbD1EYXRhRGV0ZWN0
b3JUeXBlTm9uZSwgY29uZGl0aW9uYWw9REFUQV9ERVRFQ1RJT04KLQotIyBBbGxvdyBTb3VyY2VC
dWZmZXJzIHRvIHN0b3JlIHVwIHRvIDMwNE1CIGVhY2gsIGVub3VnaCBmb3IgYXBwcm94aW1hdGVs
eSBmaXZlIG1pbnV0ZXMKLSMgb2YgMTA4MHAgdmlkZW8gYW5kIHN0ZXJlbyBhdWRpby4KLW1heGlt
dW1Tb3VyY2VCdWZmZXJTaXplIHR5cGU9aW50LCBpbml0aWFsPTMxODc2NzEwNCwgY29uZGl0aW9u
YWw9TUVESUFfU09VUkNFCi0KLXNlcnZpY2VDb250cm9sc0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwg
Y29uZGl0aW9uYWw9U0VSVklDRV9DT05UUk9MUwotCi1hcHBsZU1haWxQYWdpbmF0aW9uUXVpcmtF
bmFibGVkIGluaXRpYWw9ZmFsc2UKLQotZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLQotcmVwYWludE91dHNpZGVMYXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotaHR0
cEVxdWl2RW5hYmxlZCBpbml0aWFsPXRydWUKLQotIyBTb21lIHBvcnRzIChlLmcuIGlPUykgbWln
aHQgY2hvb3NlIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgaW5saW5lLCByZWdhcmRsZXNzIG9mIHdo
ZXRoZXIgdGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZQotIyBIVFRQIGhlYWRlciAiQ29udGVudC1E
aXNwb3NpdGlvbjogYXR0YWNobWVudCIuIFRoaXMgc2V0dGluZyBlbmFibGVzIGEgc2FuZGJveCBh
cm91bmQgdGhlc2UgYXR0YWNobWVudHMuIFRoZSBzYW5kYm94Ci0jIGVuZm9yY2VzIGFsbCBmcmFt
ZSBzYW5kYm94IGZsYWdzIChzZWUgZW51bSBTYW5kYm94RmxhZyBpbiBTZWN1cml0eUNvbnRleHQu
aCksIGFuZCBhbHNvIGRpc2FibGVzIDxtZXRhIGh0dHAtZXF1aXY+Ci0jIHByb2Nlc3NpbmcgYW5k
IHN1YmZyYW1lIGxvYWRpbmcuCi1jb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveEVu
YWJsZWQgaW5pdGlhbD1mYWxzZQotCi11c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHR5cGU9
VXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSwgaW5pdGlhbD1Vc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5OjpDb250ZW50Ci1zeXN0ZW1MYXlvdXREaXJlY3Rpb24gdHlwZT1UZXh0RGlyZWN0
aW9uLCBpbml0aWFsPUxUUgotCi1hbGxvd0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZVN0YXJU
b01hdGNoQW55UHJvdG9jb2wgaW5pdGlhbD1mYWxzZQotCi1zZWxlY3Rpb25QYWludGluZ1dpdGhv
dXRTZWxlY3Rpb25HYXBzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLXNob3VsZENvbnZlcnRJbnZh
bGlkVVJMc1RvQmxhbmsgaW5pdGlhbD10cnVlCi0KLXNwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCi0KLXRyZWF0SVBBZGRyZXNzQXNEb21haW4gaW5pdGlhbD1mYWxzZQot
Ci1tZWRpYVByZWxvYWRpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotIyBSdW50aW1lLWVuYWJs
ZWQgZmVhdHVyZXMKLXZpc3VhbFZpZXdwb3J0RW5hYmxlZCBpbml0aWFsPWZhbHNlLCBvbkNoYW5n
ZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLQotaW5wdXRFdmVudHNFbmFibGVkIGlu
aXRpYWw9dHJ1ZQotCi1xdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQgaW5pdGlhbD1k
ZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkCi15b3VUdWJlRmxhc2hQbHVn
aW5SZXBsYWNlbWVudEVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVw
bGFjZW1lbnRFbmFibGVkCi0KLWZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZh
bHVlIHR5cGU9Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLCBpbml0aWFsPWRlZmF1bHRGb3JjZWRD
b2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZQotZm9yY2VkRGlzcGxheUlzTW9ub2No
cm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSB0eXBlPUZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSwgaW5p
dGlhbD1kZWZhdWx0Rm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZQot
Zm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWUgdHlwZT1Gb3JjZWRB
Y2Nlc3NpYmlsaXR5VmFsdWUsIGluaXRpYWw9ZGVmYXVsdEZvcmNlZFByZWZlcnNSZWR1Y2VkTW90
aW9uQWNjZXNzaWJpbGl0eVZhbHVlCi0KLWxhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCBp
bml0aWFsPXRydWUKLWFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZCBpbml0aWFsPXRy
dWUKLXdlYmtpdEltYWdlUmVhZHlFdmVudEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1zaG91bGRT
dXBwcmVzc1RleHRJbnB1dEZyb21FZGl0aW5nRHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uIGlu
aXRpYWw9ZmFsc2UKLQotbGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5p
dGlhbD1mYWxzZQotCi1zdWJyZXNvdXJjZUludGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCi0K
LWxpbmtQcmVjb25uZWN0RW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLWJlYWNvbkFQSUVuYWJsZWQg
aW5pdGlhbD1mYWxzZQotCi1nZW9sb2NhdGlvbkZsb29yTGV2ZWxFbmFibGVkIGluaXRpYWw9dHJ1
ZQotCi1jb25zdGFudFByb3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdmlld3BvcnRG
aXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotYWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2sgaW5pdGlhbD1mYWxzZQotCi1zdG9yYWdlQWNjZXNz
QVBJRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLXRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9y
ZUhpZGluZ0NvbnRyb2xzIHR5cGU9U2Vjb25kcywgaW5pdGlhbD0zX3MgCi0KLWZvbnRGYWxsYmFj
a1ByZWZlcnNQaWN0b2dyYXBocyBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMKLQotZm9udExvYWRUaW1pbmdPdmVycmlkZSB0eXBlPUZvbnRMb2Fk
VGltaW5nT3ZlcnJpZGUsIGluaXRpYWw9Rm9udExvYWRUaW1pbmdPdmVycmlkZTo6Tm9uZQotc2hv
dWxkSWdub3JlRm9udExvYWRDb21wbGV0aW9ucyBpbml0aWFsPWZhbHNlCi0KLXBheW1lbnRSZXF1
ZXN0RW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1QQVlNRU5UX1JFUVVFU1QKLWFw
cGxlUGF5RW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1BUFBMRV9QQVkKLWFwcGxl
UGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxvd2VkIGluaXRpYWw9dHJ1ZSwgY29uZGl0aW9uYWw9
QVBQTEVfUEFZCi0KLWphdmFFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGdldHRlcj1pc0phdmFFbmFi
bGVkCi1qYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMgaW5pdGlhbD10cnVlLCBnZXR0ZXI9aXNKYXZh
RW5hYmxlZEZvckxvY2FsRmlsZXMKLQotIyBVbmxpa2UgdGhlIGltYWdlc0VuYWJsZWQgc2V0dGlu
ZywgdGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgotIyB0aGUgaW1hZ2Ug
VVJMLiBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGlmIHJlcXVlc3RlZC4K
LWxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1pbWFnZXNF
bmFibGVkQ2hhbmdlZAotaW1hZ2VzRW5hYmxlZCBpbml0aWFsPXRydWUsIGdldHRlcj1hcmVJbWFn
ZXNFbmFibGVkLCBvbkNoYW5nZT1pbWFnZXNFbmFibGVkQ2hhbmdlZAotc2NyaXB0RW5hYmxlZCBp
bml0aWFsPWZhbHNlLCBnZXR0ZXI9aXNTY3JpcHRFbmFibGVkLCBvbkNoYW5nZT1zY3JpcHRFbmFi
bGVkQ2hhbmdlZAotcGx1Z2luc0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwgZ2V0dGVyPWFyZVBsdWdp
bnNFbmFibGVkLCBvbkNoYW5nZT1wbHVnaW5zRW5hYmxlZENoYW5nZWQKLQotdXNlc1BhZ2VDYWNo
ZSBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT11c2VzUGFnZUNhY2hlQ2hhbmdlZAotCi1kbnNQcmVm
ZXRjaGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9ZG5zUHJlZmV0Y2hpbmdFbmFi
bGVkQ2hhbmdlZAotCi1iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSBpbml0aWFsPWZh
bHNlLCBvbkNoYW5nZT1iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZUNoYW5nZWQKLQot
c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBvbkNoYW5n
ZT1zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkQ2hhbmdlZAotCi1oaWRkZW5QYWdl
RE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1oaWRkZW5Q
YWdlRE9NVGltZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2VkCi1oaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nQXV0b0luY3JlYXNlcyBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1oaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2VkCi1oaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVu
c2lvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9aGlkZGVuUGFnZUNTU0FuaW1hdGlv
blN1c3BlbnNpb25FbmFibGVkQ2hhbmdlZAotCi1zdG9yYWdlQmxvY2tpbmdQb2xpY3kgdHlwZT1T
ZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5LCBpbml0aWFsPVNlY3VyaXR5T3Jp
Z2luOjpBbGxvd0FsbFN0b3JhZ2UsIG9uQ2hhbmdlPXN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5n
ZWQKLQotIyBPbmx5IHNldCBieSBMYXlvdXQgVGVzdHMuCi1tZWRpYVR5cGVPdmVycmlkZSB0eXBl
PVN0cmluZywgaW5pdGlhbD0ic2NyZWVuIiwgb25DaGFuZ2U9bWVkaWFUeXBlT3ZlcnJpZGVDaGFu
Z2VkCi0KLQotZm9udFJlbmRlcmluZ01vZGUgdHlwZT1Gb250UmVuZGVyaW5nTW9kZSwgaW5pdGlh
bD1Gb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsCi0KLXByZWZlck1JTUVUeXBlRm9ySW1hZ2VzIGlu
aXRpYWw9ZmFsc2UKLQotZm9yY2VQZW5kaW5nV2ViR0xQb2xpY3kgaW5pdGlhbD1mYWxzZSwgZ2V0
dGVyPWlzRm9yY2VQZW5kaW5nV2ViR0xQb2xpY3kKLQotbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9y
eSB0eXBlPVN0cmluZywgY29uZGl0aW9uYWw9TEVHQUNZX0VOQ1JZUFRFRF9NRURJQQotbWVkaWFE
ZXZpY2VJZGVudGlmaWVyU3RvcmFnZURpcmVjdG9yeSB0eXBlPVN0cmluZywgY29uZGl0aW9uYWw9
TUVESUFfU1RSRUFNCi0KLSMgRklYTUU6IFRoaXMgcXVpcmsgaXMgbmVlZGVkIGJlY2F1c2Ugb2Yg
UmFkYXIgNDY3NDUzNyBhbmQgNTIxMTI3MS4gV2UgbmVlZCB0byBwaGFzZSBpdCBvdXQgb25jZSBB
ZG9iZQotIyBjYW4gZml4IHRoZSBidWcgZnJvbSB0aGVpciBlbmQuCi1uZWVkc0Fkb2JlRnJhbWVS
ZWxvYWRpbmdRdWlyayBpbml0aWFsPWZhbHNlLCBnZXR0ZXI9bmVlZHNBY3JvYmF0RnJhbWVSZWxv
YWRpbmdRdWlyawotCi10b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBn
ZXR0ZXI9aXNUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZCwgY29uZGl0aW9uYWw9VE9VQ0hfRVZF
TlRTCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDY5MyBAQAorIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGdsb2JhbCBzZXR0aW5ncy4KKyMgRklY
TUU6IEFkZCBzdXBwb3J0IGZvciBjdXN0b20gZ2V0dGVycy9zZXR0ZXJzLgorCitkZWZhdWx0VGV4
dEVuY29kaW5nTmFtZToKKyAgICB0eXBlOiBTdHJpbmcKK2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0
aDoKKyAgICB0eXBlOiBTdHJpbmcKK2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDoKKyAgICB0eXBl
OiBTdHJpbmcKK2VkaXRhYmxlTGlua0JlaGF2aW9yOgorICAgIHR5cGU6IEVkaXRhYmxlTGlua0Jl
aGF2aW9yCisgICAgaW5pdGlhbDogRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yCit0ZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOgorICAgIHR5cGU6IFRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IKKyAgICBpbml0aWFsOiBUZXh0RGlyZWN0aW9uU3VibWVu
dUF1dG9tYXRpY2FsbHlJbmNsdWRlZAorcGRmSW1hZ2VDYWNoaW5nUG9saWN5OgorICAgIHR5cGU6
IFBERkltYWdlQ2FjaGluZ1BvbGljeQorICAgIGluaXRpYWw6IFBERkltYWdlQ2FjaGluZ0RlZmF1
bHQKK3Bhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzOgorICAgIHR5cGU6IGRvdWJsZQorICAg
IGluaXRpYWw6IDEKKworIyBTZXRzIHRoZSBtYWduaWZpY2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0
aW9uIG1lc3NhZ2UgdGltZXIuICBJZiB0aGUKKyMgbWFnbmlmaWNhdGlvbiB2YWx1ZSBpcyBOLCBh
IHZhbGlkYXRpb24gbWVzc2FnZSBkaXNhcHBlYXJzIGF1dG9tYXRpY2FsbHkgYWZ0ZXIKKyMgPG1l
c3NhZ2UgbGVuZ3RoPiAqIE4gLyAxMDAwIHNlY29uZHMuICBJZiBOIGlzIGVxdWFsIHRvIG9yIGxl
c3MgdGhhbiAwLCBhCisjIHZhbGlkYXRpb24gbWVzc2FnZSBkb2Vzbid0IGRpc2FwcGVhcnMgYXV0
b21hdGljYWx5LgordmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb246CisgICAgdHlw
ZTogaW50CisgICAgaW5pdGlhbDogNTAKKworIyBOdW1iZXIgb2YgcGl4ZWxzIGJlbG93IHdoaWNo
IDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBzb2Z0d2FyZQorIyBldmVuIGlmIGhhcmR3YXJlIGFj
Y2VsZXJhdGlvbiBpcyBlbmFibGVkLgorIyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgdXNlZnVs
IGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4gYXZvaWQgdGhlCisjIHBpeGVsIGJhbmR3
aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0IEdQVSBhY2NlbGVyYXRpb24gY29tZXMg
YXQKKyMgYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVyIGFuZCB0ZXh0dXJlIGNvcHkuIFNtYWxs
IGNhbnZhc2VzIGFyZSBhbHNvCisjIHdpZGVseSB1c2VkIGZvciBzdHlsaXplZCBmb250cy4gQW50
aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJlIGF0IHRoYXQKKyMgc2NhbGUgaXMgZ2VuZXJhbGx5
IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWluIHNpemUgaXQgaXMgYmV0dGVyIHRvCisjIGRyYXcg
Y2FudmFzIGluIHNvZnR3YXJlLgorbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOgorICAg
IHR5cGU6IGludAorICAgIGluaXRpYWw6IDI1NyoyNTYKKworbWF4aW11bUFjY2VsZXJhdGVkMmRD
YW52YXNTaXplOgorICAgIHR5cGU6IHVuc2lnbmVkCisgICAgaW5pdGlhbDogNTEyMCoyODgwCisK
K2xheW91dEZhbGxiYWNrV2lkdGg6CisgICAgdHlwZTogaW50CisgICAgaW5pdGlhbDogOTgwCitk
ZXZpY2VXaWR0aDoKKyAgICB0eXBlOiBpbnQKKyAgICBpbml0aWFsOiAwCitkZXZpY2VIZWlnaHQ6
CisgICAgdHlwZTogaW50CisgICAgaW5pdGlhbDogMAorCisjIEFsbG93IGNsaWVudHMgY29uY2Vy
bmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9uIHNlc3Npb24gc3Rv
cmFnZQorIyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUgcmVsZWFzZWQgdW50aWwgdGhl
IFBhZ2UgaXMgZGVzdHJveWVkLgorc2Vzc2lvblN0b3JhZ2VRdW90YToKKyAgICB0eXBlOiB1bnNp
Z25lZAorICAgIGluaXRpYWw6IFN0b3JhZ2VNYXA6Om5vUXVvdGEKKworbWluaW11bUZvbnRTaXpl
OgorICAgIHR5cGU6IGludAorICAgIGluaXRpYWw6IDAKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNS
ZWNhbGNTdHlsZUluQWxsRnJhbWVzCittaW5pbXVtTG9naWNhbEZvbnRTaXplOgorICAgIHR5cGU6
IGludAorICAgIGluaXRpYWw6IDAKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUlu
QWxsRnJhbWVzCitkZWZhdWx0Rm9udFNpemU6CisgICAgdHlwZTogaW50CisgICAgaW5pdGlhbDog
MTYKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCitkZWZhdWx0
Rml4ZWRGb250U2l6ZToKKyAgICB0eXBlOiBpbnQKKyAgICBpbml0aWFsOiAwCisgICAgb25DaGFu
Z2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworCitlZGl0aW5nQmVoYXZpb3JUeXBl
OgorICAgIHR5cGU6IEVkaXRpbmdCZWhhdmlvclR5cGUKKyAgICBpbml0aWFsOiBlZGl0aW5nQmVo
YXZpb3JUeXBlRm9yUGxhdGZvcm0oKQorbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGg6Cisg
ICAgdHlwZTogdW5zaWduZWQKKyAgICBpbml0aWFsOiBkZWZhdWx0TWF4aW11bUhUTUxQYXJzZXJE
T01UcmVlRGVwdGgKKworIyBUaGlzIHNldHRpbmcgb25seSBhZmZlY3RzIHNpdGUgaWNvbiBpbWFn
ZSBsb2FkaW5nIGlmIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nIGlzIGZhbHNlIGFu
ZCB0aGlzIHNldHRpbmcgaXMgdHJ1ZS4KKyMgQWxsIG90aGVyIHBlcm11dGF0aW9ucyBzdGlsbCBo
ZWVkIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSBzZXR0aW5nLgorbG9hZHNTaXRlSWNvbnNJZ25v
cmluZ0ltYWdlTG9hZGluZ1NldHRpbmc6CisgICAgaW5pdGlhbDogZmFsc2UKKworY2FyZXRCcm93
c2luZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK3ByZXZlbnRLZXlib2FyZERPTUV2ZW50
RGlzcGF0Y2g6CisgICAgaW5pdGlhbDogZmFsc2UKK2xvY2FsU3RvcmFnZUVuYWJsZWQ6CisgICAg
aW5pdGlhbDogZmFsc2UKK2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOgorICAgIGlu
aXRpYWw6IHRydWUKK2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczoKKyAgICBpbml0aWFsOiB0
cnVlCituZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWlyazoKKyAgICBpbml0aWFsOiB0
cnVlCitqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OgorICAgIGluaXRpYWw6
IGZhbHNlCitqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOgorICAgIGluaXRpYWw6IGZhbHNl
CitzaG91bGRQcmludEJhY2tncm91bmRzOgorICAgIGluaXRpYWw6IGZhbHNlCit1c2VzRGFzaGJv
YXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZToKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIGNv
bmRpdGlvbmFsOiBEQVNIQk9BUkRfU1VQUE9SVAorY2xpcGJvYXJkQWNjZXNzUG9saWN5OgorICAg
IHR5cGU6IENsaXBib2FyZEFjY2Vzc1BvbGljeQorICAgIGluaXRpYWw6IENsaXBib2FyZEFjY2Vz
c1BvbGljeTo6UmVxdWlyZXNVc2VyR2VzdHVyZQorCit0ZXh0QXJlYXNBcmVSZXNpemFibGU6Cisg
ICAgaW5pdGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxs
RnJhbWVzCithdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisg
ICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwordXNlclN0eWxlU2hl
ZXRMb2NhdGlvbjoKKyAgICB0eXBlOiBVUkwKKyAgICBvbkNoYW5nZTogdXNlclN0eWxlU2hlZXRM
b2NhdGlvbkNoYW5nZWQKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOgorICAgIGluaXRp
YWw6IHRydWUKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCith
Y2NlbGVyYXRlZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVl
CisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworc2hvd0RlYnVn
Qm9yZGVyczoKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMKK3Nob3dSZXBhaW50Q291bnRlcjoKKyAgICBpbml0aWFsOiBmYWxz
ZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3Zpc2libGVE
ZWJ1Z092ZXJsYXlSZWdpb25zOgorICAgIHR5cGU6IERlYnVnT3ZlcmxheVJlZ2lvbnMKKyAgICBp
bml0aWFsOiAwCitzaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3I6CisgICAgaW5pdGlhbDogZmFs
c2UKK3Jlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZToKKyAgICBpbml0aWFsOiBmYWxzZQorICAg
IG9uQ2hhbmdlOiByZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGVDaGFuZ2VkCisgICAgY29uZGl0
aW9uOiBSRVNPVVJDRV9VU0FHRQorCisjIFRoaXMgaXMgYSBxdWlyayB3ZSBhcmUgcHJvLWFjdGl2
ZWx5IGFwcGx5aW5nIHRvIG9sZCBhcHBsaWNhdGlvbnMuIEl0IGNoYW5nZXMga2V5Ym9hcmQgZXZl
bnQgZGlzcGF0Y2hpbmcsCisjIG1ha2luZyBrZXlJZGVudGlmaWVyIGF2YWlsYWJsZSBvbiBrZXlw
cmVzcyBldmVudHMsIG1ha2luZyBjaGFyQ29kZSBhdmFpbGFibGUgb24ga2V5ZG93bi9rZXl1cCBl
dmVudHMsCisjIGFuZCBnZXR0aW5nIGtleXByZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4K
K25lZWRzS2V5Ym9hcmRFdmVudERpc2FtYmlndWF0aW9uUXVpcmtzOgorICAgIGluaXRpYWw6IGZh
bHNlCisKK3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0OgorICAgIGluaXRpYWw6IGZh
bHNlCitzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OgorICAgIGluaXRpYWw6IHRydWUKK3Bh
Z2VDYWNoZVN1cHBvcnRzUGx1Z2luczoKKyAgICBpbml0aWFsOiBmYWxzZQorc2hvd3NVUkxzSW5U
b29sVGlwczoKKyAgICBpbml0aWFsOiBmYWxzZQorc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRl
eHQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2ZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3M6CisgICAg
aW5pdGlhbDogZmFsc2UKK2RldmVsb3BlckV4dHJhc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFs
c2UKK3NjcmlwdE1hcmt1cEVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3M6CisgICAgaW5pdGlhbDogZmFsc2UKK2RvbVRpbWVyc1Rocm90dGxpbmdFbmFi
bGVkOgorICAgIGluaXRpYWw6IHRydWUKK3dlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkOgorICAg
IGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9uYWw6IFdFQl9BUkNISVZFCitsb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCitvZmZsaW5lV2ViQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2VuZm9yY2VDU1NNSU1F
VHlwZUluTm9RdWlya3NNb2RlOgorICAgIGluaXRpYWw6IHRydWUKK3VzZXNFbmNvZGluZ0RldGVj
dG9yOgorICAgIGluaXRpYWw6IGZhbHNlCithbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93czoKKyAg
ICBpbml0aWFsOiBmYWxzZQorY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZzoKKyAgICBpbml0
aWFsOiBmYWxzZQorYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorYWNjZWxl
cmF0ZWRGaWx0ZXJzRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQordXNlTGVnYWN5VGV4dEFs
aWduUG9zaXRpb25lZEVsZW1lbnRCZWhhdmlvcjoKKyAgICBpbml0aWFsOiBmYWxzZQoramF2YVNj
cmlwdFJ1bnRpbWVGbGFnczoKKyAgICB0eXBlOiBKU0M6OlJ1bnRpbWVGbGFncworCisjIEZJWE1F
OiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJsZWQgYnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBw
bGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBmZWF0dXJlIGRvd25sb2FkIGZpbGVzCisj
IHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2aW5nIGVuYWJsZWQgZm9yIG5vdyB0byBub3QgY2hhbmdl
IGV4aXN0aW5nIGJlaGF2aW9yLgorZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkOgorICAg
IGluaXRpYWw6IHRydWUKKworeHNzQXVkaXRvckVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UK
K2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZDoKKyAgICBpbml0
aWFsOiBkZWZhdWx0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVk
CithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCitydWJiZXJCYW5kaW5nRm9yU3ViU2Nyb2xsYWJsZVJlZ2lvbnNFbmFibGVk
OgorICAgIGluaXRpYWw6IHRydWUKKyAgICBjb25kaXRpb25hbDogUlVCQkVSX0JBTkRJTkcKKwor
ZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK3dl
YkdMRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQord2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFi
bGVkOgorICAgIGluaXRpYWw6IHRydWUKK2ZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZzoKKyAg
ICBpbml0aWFsOiBmYWxzZQorZm9yY2VXZWJHTFVzZXNMb3dQb3dlcjoKKyAgICBpbml0aWFsOiBm
YWxzZQorYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2xv
YWREZWZlcnJpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKK3dlYkF1ZGlvRW5hYmxlZDoK
KyAgICBpbml0aWFsOiBmYWxzZQorcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCitmdWxsU2NyZWVuRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAg
IGNvbmRpdGlvbmFsOiBGVUxMU0NSRUVOX0FQSQorYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworIyBUaGlzIGZlYXR1cmUgcmVxdWlyZXMgYW4g
aW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuCitpbnRlcmFjdGl2ZUZv
cm1WYWxpZGF0aW9uRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit1c2VQcmVIVE1MNVBh
cnNlclF1aXJrczoKKyAgICBpbml0aWFsOiBmYWxzZQoraHlwZXJsaW5rQXVkaXRpbmdFbmFibGVk
OgorICAgIGluaXRpYWw6IGZhbHNlCitjcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRjaGVkQ1NTUnVs
ZXNEaXNhYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorZm9yY2VDb21wb3NpdGluZ01vZGU6Cisg
ICAgaW5pdGlhbDogZmFsc2UKK3Nob3VsZEluamVjdFVzZXJTY3JpcHRzSW5Jbml0aWFsRW1wdHlE
b2N1bWVudDoKKyAgICBpbml0aWFsOiBmYWxzZQorZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZToKKyAgICBpbml0aWFsOiBmYWxzZQorYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRl
bnQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2FsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50Ogor
ICAgIGluaXRpYWw6IGZhbHNlCityZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2FkVmlkZW86CisgICAg
aW5pdGlhbDogZGVmYXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbwordmlkZW9QbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmU6CisgICAgaW5pdGlhbDogZGVmYXVsdFZpZGVvUGxheWJh
Y2tSZXF1aXJlc1VzZXJHZXN0dXJlCithdWRpb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZToK
KyAgICBpbml0aWFsOiBkZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUKK21h
aW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UK
K21lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazoKKyAgICBpbml0aWFsOiBkZWZhdWx0QWxsb3dz
SW5saW5lTWVkaWFQbGF5YmFjaworYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbjoKKyAgICBpbml0aWFsOiB0cnVlCitpbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5
c0lubGluZUF0dHJpYnV0ZToKKyAgICBpbml0aWFsOiBkZWZhdWx0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUKK2FsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRp
YVBsYXliYWNrOgorICAgIGluaXRpYWw6IGRlZmF1bHRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVk
aWFQbGF5YmFjaworbWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29tOgorICAgIGluaXRpYWw6
IGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20KK2ludmlzaWJsZUF1dG9wbGF5
Tm90UGVybWl0dGVkOgorICAgIGluaXRpYWw6IGZhbHNlCitwYXNzd29yZEVjaG9FbmFibGVkOgor
ICAgIGluaXRpYWw6IGZhbHNlCitzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmc6CisgICAg
aW5pdGlhbDogZmFsc2UKK2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5T
ZWNvbmRzOgorICAgIHR5cGU6IGRvdWJsZQorICAgIGluaXRpYWw6IGRlZmF1bHRJbmNyZW1lbnRh
bFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcworYmFja3NwYWNlS2V5TmF2aWdh
dGlvbkVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorc2hvdWxkRGlzcGxheVN1YnRpdGxlczoK
KyAgICBpbml0aWFsOiBmYWxzZQorICAgIGNvbmRpdGlvbmFsOiBWSURFT19UUkFDSworc2hvdWxk
RGlzcGxheUNhcHRpb25zOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9uYWw6IFZJ
REVPX1RSQUNLCitzaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9uczoKKyAgICBpbml0aWFsOiBm
YWxzZQorICAgIGNvbmRpdGlvbmFsOiBWSURFT19UUkFDSworc2Nyb2xsaW5nQ29vcmRpbmF0b3JF
bmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCitzY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXM6
CisgICAgaW5pdGlhbDogZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcworc2Nyb2xs
QW5pbWF0b3JFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKKyAgICBjb25kaXRpb25hbDogU01P
T1RIX1NDUk9MTElORworZm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9y
bWFuY2VUZXN0aW5nOgorICAgIGluaXRpYWw6IGZhbHNlCitub3RpZmljYXRpb25zRW5hYmxlZDoK
KyAgICBpbml0aWFsOiB0cnVlCisKKyMgU29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vu
c2UgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHN1YnJlc291cmNlIGxvYWRlcnMuCituZWVkc0lzTG9h
ZGluZ0luQVBJU2Vuc2VRdWlyazoKKyAgICBpbml0aWFsOiBmYWxzZQorCitzaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbjoKKyAgICBpbml0aWFsOiBkZWZhdWx0U2hvdWxkUmVzcGVjdEltYWdl
T3JpZW50YXRpb24KK2ltYWdlU3Vic2FtcGxpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGRlZmF1
bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZAord2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdC
ZWhhdmlvcjoKKyAgICBpbml0aWFsOiBmYWxzZQorcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxl
ZDoKKyAgICBpbml0aWFsOiB0cnVlCisKK2Nvb2tpZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1
ZQorbWVkaWFFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKK0RPTVBhc3RlQWxsb3dlZDoKKyAg
ICBpbml0aWFsOiBmYWxzZQorCisjIFdoZW4gZW5hYmxlZCwgd2luZG93LmJsdXIoKSBkb2VzIG5v
dCBjaGFuZ2UgZm9jdXMsIGFuZAorIyB3aW5kb3cuZm9jdXMoKSBvbmx5IGNoYW5nZXMgZm9jdXMg
d2hlbiBpbnZva2VkIGZyb20gdGhlIGNvbnRleHQgdGhhdAorIyBjcmVhdGVkIHRoZSB3aW5kb3cu
Cit3aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCitkaWFnbm9zdGlj
TG9nZ2luZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2RlbGVnYXRlc1BhZ2VTY2FsaW5n
OgorICAgIGluaXRpYWw6IGZhbHNlCitwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCitzbmFwc2hvdEFsbFBsdWdJbnM6CisgICAgaW5pdGlhbDogZmFsc2UKK2F1
dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1
ZQorcHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0
cnVlCittYXhpbXVtUGx1Z0luU25hcHNob3RBdHRlbXB0czoKKyAgICB0eXBlOiB1bnNpZ25lZAor
ICAgIGluaXRpYWw6IDIwCitmcmFtZUZsYXR0ZW5pbmc6CisgICAgdHlwZTogRnJhbWVGbGF0dGVu
aW5nCisgICAgaW5pdGlhbDogRnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZAorYXN5bmNGcmFtZVNj
cm9sbGluZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKword2ViU2VjdXJpdHlFbmFibGVk
OgorICAgIGluaXRpYWw6IHRydWUKK3NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDoKKyAgICBpbml0
aWFsOiBmYWxzZQorCithdXRvc2Nyb2xsRm9yRHJhZ0FuZERyb3BFbmFibGVkOgorICAgIGluaXRp
YWw6IGZhbHNlCisKK3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQ6CisgICAgaW5pdGlhbDogZGVm
YXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKKworbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVt
Q29uc29sZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworYmFja0ZvcndhcmRDYWNoZUV4
cGlyYXRpb25JbnRlcnZhbDoKKyAgICB0eXBlOiBkb3VibGUKKyAgICBpbml0aWFsOiAxODAwCisK
KyMgU29tZSBhcHBzIGNvdWxkIGhhdmUgYSBkZWZhdWx0IHZpZGVvIHBvc3RlciBpZiBpdCBpcyBu
b3Qgc2V0LgorZGVmYXVsdFZpZGVvUG9zdGVyVVJMOgorICAgIHR5cGU6IFN0cmluZworCitzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogZGVmYXVsdFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZAorc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDoKKyAgICBpbml0aWFs
OiBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAorCit1c2VMZWdhY3lCYWNr
Z3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yOgorICAgIGluaXRpYWw6IGZhbHNlCitmaXhlZEJh
Y2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQ6CisgICAgaW5pdGlhbDogZGVmYXVsdEZp
eGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudAorCit0ZXh0QXV0b3NpemluZ0Vu
YWJsZWQ6CisgICAgaW5pdGlhbDogZGVmYXVsdFRleHRBdXRvc2l6aW5nRW5hYmxlZCgpCisgICAg
b25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworICAgIGNvbmRpdGlvbmFs
OiBURVhUX0FVVE9TSVpJTkcKK3RleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOgorICAg
IHR5cGU6IEludFNpemUKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJh
bWVzCisgICAgY29uZGl0aW9uYWw6IFRFWFRfQVVUT1NJWklORworbWluaW11bVpvb21Gb250U2l6
ZToKKyAgICB0eXBlOiBmbG9hdAorICAgIGluaXRpYWw6IGRlZmF1bHRNaW5pbXVtWm9vbUZvbnRT
aXplKCkKKyAgICBjb25kaXRpb25hbDogVEVYVF9BVVRPU0laSU5HCisKK3N1YnBpeGVsQW50aWFs
aWFzZWRMYXllclRleHRFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6
IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworc2ltcGxlTGluZUxheW91dEVuYWJsZWQ6
CisgICAgaW5pdGlhbDogdHJ1ZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMKK3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOgorICAgIGluaXRp
YWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwor
CitzdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNl
CisKK3VzZUdpYW50VGlsZXM6CisgICAgaW5pdGlhbDogZmFsc2UKKworbWVkaWFTb3VyY2VFbmFi
bGVkOgorICAgIGluaXRpYWw6IHRydWUKKyAgICBjb25kaXRpb25hbDogTUVESUFfU09VUkNFCisK
KyMgRklYTUU6IFJlbmFtZSB0byBhbGxvd011bHRpRWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1pc3Np
b24gb25jZSB3ZSB1cHN0cmVhbSB0aGUgaU9TIGNoYW5nZXMgdG8gV2ViVmlldy5tbS4KK2FsbG93
TXVsdGlFbGVtZW50SW1wbGljaXRTdWJtaXNzaW9uOgorICAgIGluaXRpYWw6IGZhbHNlCisKK2Fs
bG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrOgorICAgIGluaXRpYWw6IHRydWUKKyAgICBjb25k
aXRpb25hbDogV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUCisKK3Nob3VsZENvbnZlcnRQb3NpdGlv
blN0eWxlT25Db3B5OgorICAgIGluaXRpYWw6IGZhbHNlCisKK21heFBhcnNlRHVyYXRpb246Cisg
ICAgdHlwZTogZG91YmxlCisgICAgaW5pdGlhbDogLTEKK3N0YW5kYWxvbmU6CisgICAgaW5pdGlh
bDogZmFsc2UKK3RlbGVwaG9uZU51bWJlclBhcnNpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZh
bHNlCittZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6CisgICAgaW5pdGlhbDogZGVmYXVsdE1l
ZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseQorYWx3YXlzVXNlQWNjZWxlcmF0ZWRPdmVyZmxvd1Nj
cm9sbDoKKyAgICBpbml0aWFsOiBmYWxzZQoraW1hZ2VDb250cm9sc0VuYWJsZWQ6CisgICAgaW5p
dGlhbDogZmFsc2UKKyAgICBjb25kaXRpb25hbDogU0VSVklDRV9DT05UUk9MUworCitlbmFibGVJ
bmhlcml0VVJJUXVlcnlDb21wb25lbnQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworYWdncmVzc2l2
ZVRpbGVSZXRlbnRpb25FbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCit0ZW1wb3JhcnlUaWxl
Q29ob3J0UmV0ZW50aW9uRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisKK3VzZUltYWdlRG9j
dW1lbnRGb3JTdWJmcmFtZVBERjoKKyAgICBpbml0aWFsOiBmYWxzZQorZGF0YURldGVjdG9yVHlw
ZXM6CisgICAgdHlwZTogRGF0YURldGVjdG9yVHlwZXMKKyAgICBpbml0aWFsOiBEYXRhRGV0ZWN0
b3JUeXBlTm9uZQorICAgIGNvbmRpdGlvbmFsOiBEQVRBX0RFVEVDVElPTgorCisjIEFsbG93IFNv
dXJjZUJ1ZmZlcnMgdG8gc3RvcmUgdXAgdG8gMzA0TUIgZWFjaCwgZW5vdWdoIGZvciBhcHByb3hp
bWF0ZWx5IGZpdmUgbWludXRlcworIyBvZiAxMDgwcCB2aWRlbyBhbmQgc3RlcmVvIGF1ZGlvLgor
bWF4aW11bVNvdXJjZUJ1ZmZlclNpemU6CisgICAgdHlwZTogaW50CisgICAgaW5pdGlhbDogMzE4
NzY3MTA0CisgICAgY29uZGl0aW9uYWw6IE1FRElBX1NPVVJDRQorCitzZXJ2aWNlQ29udHJvbHNF
bmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9uYWw6IFNFUlZJQ0VfQ09O
VFJPTFMKKworYXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZDoKKyAgICBpbml0aWFsOiBm
YWxzZQorCitkZWZlcnJlZENTU1BhcnNlckVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKwor
cmVwYWludE91dHNpZGVMYXlvdXRFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK2h0dHBF
cXVpdkVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCisjIFNvbWUgcG9ydHMgKGUuZy4gaU9T
KSBtaWdodCBjaG9vc2UgdG8gZGlzcGxheSBhdHRhY2htZW50cyBpbmxpbmUsIHJlZ2FyZGxlc3Mg
b2Ygd2hldGhlciB0aGUgcmVzcG9uc2UgaW5jbHVkZXMgdGhlCisjIEhUVFAgaGVhZGVyICJDb250
ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50Ii4gVGhpcyBzZXR0aW5nIGVuYWJsZXMgYSBzYW5k
Ym94IGFyb3VuZCB0aGVzZSBhdHRhY2htZW50cy4gVGhlIHNhbmRib3gKKyMgZW5mb3JjZXMgYWxs
IGZyYW1lIHNhbmRib3ggZmxhZ3MgKHNlZSBlbnVtIFNhbmRib3hGbGFnIGluIFNlY3VyaXR5Q29u
dGV4dC5oKSwgYW5kIGFsc28gZGlzYWJsZXMgPG1ldGEgaHR0cC1lcXVpdj4KKyMgcHJvY2Vzc2lu
ZyBhbmQgc3ViZnJhbWUgbG9hZGluZy4KK2NvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5k
Ym94RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit1c2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5OgorICAgIHR5cGU6IFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kKKyAgICBpbml0
aWFsOiBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OjpDb250ZW50CitzeXN0ZW1MYXlvdXRE
aXJlY3Rpb246CisgICAgdHlwZTogVGV4dERpcmVjdGlvbgorICAgIGluaXRpYWw6IExUUgorCith
bGxvd0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZVN0YXJUb01hdGNoQW55UHJvdG9jb2w6Cisg
ICAgaW5pdGlhbDogZmFsc2UKKworc2VsZWN0aW9uUGFpbnRpbmdXaXRob3V0U2VsZWN0aW9uR2Fw
c0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworc2hvdWxkQ29udmVydEludmFsaWRVUkxz
VG9CbGFuazoKKyAgICBpbml0aWFsOiB0cnVlCisKK3NwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxl
ZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit0cmVhdElQQWRkcmVzc0FzRG9tYWluOgorICAgIGlu
aXRpYWw6IGZhbHNlCisKK21lZGlhUHJlbG9hZGluZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFs
c2UKKworIyBSdW50aW1lLWVuYWJsZWQgZmVhdHVyZXMKK3Zpc3VhbFZpZXdwb3J0RW5hYmxlZDoK
KyAgICBpbml0aWFsOiBmYWxzZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMKKworaW5wdXRFdmVudHNFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKKworcXVp
Y2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkOgorICAgIGluaXRpYWw6IGRlZmF1bHRRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQKK3lvdVR1YmVGbGFzaFBsdWdpblJlcGxhY2Vt
ZW50RW5hYmxlZDoKKyAgICBpbml0aWFsOiBkZWZhdWx0WW91VHViZUZsYXNoUGx1Z2luUmVwbGFj
ZW1lbnRFbmFibGVkCisKK2ZvcmNlZENvbG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVl
OgorICAgIHR5cGU6IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZQorICAgIGluaXRpYWw6IGRlZmF1
bHRGb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2liaWxpdHlWYWx1ZQorZm9yY2VkRGlzcGxh
eUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZToKKyAgICB0eXBlOiBGb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWUKKyAgICBpbml0aWFsOiBkZWZhdWx0Rm9yY2VkRGlzcGxheUlzTW9ub2Nocm9t
ZUFjY2Vzc2liaWxpdHlWYWx1ZQorZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmls
aXR5VmFsdWU6CisgICAgdHlwZTogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlCisgICAgaW5pdGlh
bDogZGVmYXVsdEZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlCisK
K2xhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCithbmlt
YXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQord2Via2l0
SW1hZ2VSZWFkeUV2ZW50RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCitzaG91bGRTdXBw
cmVzc1RleHRJbnB1dEZyb21FZGl0aW5nRHVyaW5nUHJvdmlzaW9uYWxOYXZpZ2F0aW9uOgorICAg
IGluaXRpYWw6IGZhbHNlCisKK2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVk
OgorICAgIGluaXRpYWw6IGZhbHNlCisKK3N1YnJlc291cmNlSW50ZWdyaXR5RW5hYmxlZDoKKyAg
ICBpbml0aWFsOiB0cnVlCisKK2xpbmtQcmVjb25uZWN0RW5hYmxlZDoKKyAgICBpbml0aWFsOiBm
YWxzZQorCitiZWFjb25BUElFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK2dlb2xvY2F0
aW9uRmxvb3JMZXZlbEVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCitjb25zdGFudFByb3Bl
cnRpZXNFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK3ZpZXdwb3J0Rml0RW5hYmxlZDoK
KyAgICBpbml0aWFsOiBmYWxzZQorCithbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0QXNGYWxsYmFjazoKKyAgICBpbml0aWFsOiBmYWxzZQorCitzdG9yYWdlQWNj
ZXNzQVBJRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit0aW1lV2l0aG91dE1vdXNlTW92
ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9sczoKKyAgICB0eXBlOiBTZWNvbmRzCisgICAgaW5pdGlh
bDogM19zIAorCitmb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHM6CisgICAgaW5pdGlhbDog
ZmFsc2UKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCisKK2Zv
bnRMb2FkVGltaW5nT3ZlcnJpZGU6CisgICAgdHlwZTogRm9udExvYWRUaW1pbmdPdmVycmlkZQor
ICAgIGluaXRpYWw6IEZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6Ok5vbmUKK3Nob3VsZElnbm9yZUZv
bnRMb2FkQ29tcGxldGlvbnM6CisgICAgaW5pdGlhbDogZmFsc2UKKworcGF5bWVudFJlcXVlc3RF
bmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9uYWw6IFBBWU1FTlRfUkVR
VUVTVAorYXBwbGVQYXlFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9u
YWw6IEFQUExFX1BBWQorYXBwbGVQYXlDYXBhYmlsaXR5RGlzY2xvc3VyZUFsbG93ZWQ6CisgICAg
aW5pdGlhbDogdHJ1ZQorICAgIGNvbmRpdGlvbmFsOiBBUFBMRV9QQVkKKworamF2YUVuYWJsZWQ6
CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0ZXI6IGlzSmF2YUVuYWJsZWQKK2phdmFFbmFi
bGVkRm9yTG9jYWxGaWxlczoKKyAgICBpbml0aWFsOiB0cnVlCisgICAgZ2V0dGVyOiBpc0phdmFF
bmFibGVkRm9yTG9jYWxGaWxlcworCisjIFVubGlrZSB0aGUgaW1hZ2VzRW5hYmxlZCBzZXR0aW5n
LCB0aGlzIG9ubHkgc3VwcHJlc3NlcyB0aGUgbmV0d29yayBsb2FkIG9mCisjIHRoZSBpbWFnZSBV
UkwuIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgaWYgcmVxdWVzdGVkLgor
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFu
Z2U6IGltYWdlc0VuYWJsZWRDaGFuZ2VkCitpbWFnZXNFbmFibGVkOgorICAgIGluaXRpYWw6IHRy
dWUKKyAgICBnZXR0ZXI6IGFyZUltYWdlc0VuYWJsZWQKKyAgICBvbkNoYW5nZTogaW1hZ2VzRW5h
YmxlZENoYW5nZWQKK3NjcmlwdEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0
ZXI6IGlzU2NyaXB0RW5hYmxlZAorICAgIG9uQ2hhbmdlOiBzY3JpcHRFbmFibGVkQ2hhbmdlZAor
cGx1Z2luc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0ZXI6IGFyZVBsdWdp
bnNFbmFibGVkCisgICAgb25DaGFuZ2U6IHBsdWdpbnNFbmFibGVkQ2hhbmdlZAorCit1c2VzUGFn
ZUNhY2hlOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IHVzZXNQYWdlQ2FjaGVD
aGFuZ2VkCisKK2Ruc1ByZWZldGNoaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAg
IG9uQ2hhbmdlOiBkbnNQcmVmZXRjaGluZ0VuYWJsZWRDaGFuZ2VkCisKK2JhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IGJh
Y2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZAorCitzY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IHNj
cm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWRDaGFuZ2VkCisKK2hpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6
IGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQKK2hpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2VzOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25D
aGFuZ2U6IGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQKK2hpZGRlblBh
Z2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAg
IG9uQ2hhbmdlOiBoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWRDaGFuZ2Vk
CisKK3N0b3JhZ2VCbG9ja2luZ1BvbGljeToKKyAgICB0eXBlOiBTZWN1cml0eU9yaWdpbjo6U3Rv
cmFnZUJsb2NraW5nUG9saWN5CisgICAgaW5pdGlhbDogU2VjdXJpdHlPcmlnaW46OkFsbG93QWxs
U3RvcmFnZQorICAgIG9uQ2hhbmdlOiBzdG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCisKKyMg
T25seSBzZXQgYnkgTGF5b3V0IFRlc3RzLgorbWVkaWFUeXBlT3ZlcnJpZGU6CisgICAgdHlwZTog
U3RyaW5nCisgICAgaW5pdGlhbDogInNjcmVlbiIKKyAgICBvbkNoYW5nZTogbWVkaWFUeXBlT3Zl
cnJpZGVDaGFuZ2VkCisKKworZm9udFJlbmRlcmluZ01vZGU6CisgICAgdHlwZTogRm9udFJlbmRl
cmluZ01vZGUKKyAgICBpbml0aWFsOiBGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsCisKK3ByZWZl
ck1JTUVUeXBlRm9ySW1hZ2VzOgorICAgIGluaXRpYWw6IGZhbHNlCisKK2ZvcmNlUGVuZGluZ1dl
YkdMUG9saWN5OgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgZ2V0dGVyOiBpc0ZvcmNlUGVuZGlu
Z1dlYkdMUG9saWN5CisKK21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CisgICAgdHlwZTogU3Ry
aW5nCisgICAgY29uZGl0aW9uYWw6IExFR0FDWV9FTkNSWVBURURfTUVESUEKK21lZGlhRGV2aWNl
SWRlbnRpZmllclN0b3JhZ2VEaXJlY3Rvcnk6CisgICAgdHlwZTogU3RyaW5nCisgICAgY29uZGl0
aW9uYWw6IE1FRElBX1NUUkVBTQorCisjIEZJWE1FOiBUaGlzIHF1aXJrIGlzIG5lZWRlZCBiZWNh
dXNlIG9mIFJhZGFyIDQ2NzQ1MzcgYW5kIDUyMTEyNzEuIFdlIG5lZWQgdG8gcGhhc2UgaXQgb3V0
IG9uY2UgQWRvYmUKKyMgY2FuIGZpeCB0aGUgYnVnIGZyb20gdGhlaXIgZW5kLgorbmVlZHNBZG9i
ZUZyYW1lUmVsb2FkaW5nUXVpcms6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0ZXI6IG5l
ZWRzQWNyb2JhdEZyYW1lUmVsb2FkaW5nUXVpcmsKKwordG91Y2hFdmVudEVtdWxhdGlvbkVuYWJs
ZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0ZXI6IGlzVG91Y2hFdmVudEVtdWxhdGlv
bkVuYWJsZWQKKyAgICBjb25kaXRpb25hbDogVE9VQ0hfRVZFTlRTCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324531</attachid>
            <date>2017-10-22 12:56:00 -0700</date>
            <delta_ts>2022-02-28 03:28:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178634-20171022125559.patch</filename>
            <type>text/plain</type>
            <size>109384</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzgxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTEwLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZXBsYWNlIGN1cnJl
bnQgU2V0dGluZ3MgZ2VuZXJhdGlvbiB3aXRoIHRlbXBsYXRlIGZpbGUgYmFzZWQgYXBwcm9hY2gK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcmVw
bGFjZXMgdGhlIHJlY2VudGx5IGFkZGVkIHB5dGhvbiBiYXNlZCBTZXR0aW5ncyBnZW5lcmF0aW9u
IHdpdGggYSBnZW5lcmF0b3IKKyAgICAgICAgYnVpbHQgaW4gcnVieSwgc28gd2UgY2FuIHRha2Ug
YWR2YW50YWdlIG9mIEVSQiBmb3IgdGVtcGxhdGluZy4gVGhlIHJlc3VsdCBoYXMgbXVjaAorICAg
ICAgICBvZiB0aGUgbG9naWMgaW4gdGhlIHRlbXBsYXRlcyBhbmQgYXMgYSByZXN1bHQgZmVlbHMg
bXVjaCBlYXNpZXIgdG8gZm9sbG93IGFuZCBjbGVhbmVyLgorCisgICAgICAgIFNpbmNlIEkgd2Fz
IG1vdmluZyB0aGluZ3MgdG8gcnVieSwgSSB0b29rIHRoZSBvcGVydHVuaXR5IHRvIHN3aXRjaCB0
aGUgU2V0dGluZ3MgZGVmaW5pdGlvbgorICAgICAgICBmaWxlIGZyb20gb3VyIC5pbiBmb3JtYXQg
dG8geWFtbCwgd2hpY2ggaXMgcXVpdGUgYSBiaXQgZWFzaWVyIHRvIHJlYWQuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5nczogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRz
L0dlbmVyYXRlU2V0dGluZ3MucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0
ZVNldHRpbmdzLnJiOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAg
KiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSURMRmls
ZS5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5OiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5OiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVh
ZGVyRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weTogUmVtb3ZlZC4KKyAgICAgICAg
KiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0dGluZ3MucHk6IFJlbW92ZWQuCisgICAgICAg
ICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL19faW5pdF9fLnB5OiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMv
U2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOiBBZGRl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NH
ZW5lcmF0ZWQuaC5lcmI6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0
ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiOiBBZGRlZC4KKyAgICAgICAgKiBT
Y3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmI6IEFkZGVkLgorICAgICAg
ICAqIFNjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmI6IEFkZGVkLgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJD
b3JlTWFjcm9zLmNtYWtlOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IFJlbW92ZWQuCisg
ICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1sOiBBZGRlZC4KKwogMjAxNy0xMC0yMSAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10g
QWRkIGJpbmRpbmdzIHRvIHVuaWZpZWQgc291cmNlcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDI1LDcgKzQwMjUsNyBAQCBHRU5FUkFURV9FVkVOVF9GQUNUT1JZKCR7
V0VCQ09SRV9ESVJ9L2RvCiBsaXN0KEFQUEVORCBXZWJDb3JlX0RFUklWRURfU09VUkNFUyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vRXZlbnRUYXJnZXRJbnRlcmZhY2VzLmgpCiAKIAot
R0VORVJBVEVfU0VUVElOR1NfTUFDUk9TKCR7V0VCQ09SRV9ESVJ9L3BhZ2UvU2V0dGluZ3MuaW4g
U2V0dGluZ3MuaCkKK0dFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUygke1dFQkNPUkVfRElSfS9wYWdl
L1NldHRpbmdzLnlhbWwgU2V0dGluZ3MuaCkKIGxpc3QoQVBQRU5EIFdlYkNvcmVfREVSSVZFRF9T
T1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZXR0aW5ncy5oKQogbGlzdChB
UFBFTkQgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9E
SVJ9L1NldHRpbmdzLmNwcCkKIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VT
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmNwcCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjIzODE2
KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpA
QCAtMTM3MiwxOCArMTM3MiwxNSBAQCBKU01hdGhNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeSVjcHAg
SlNNYXRoCiAjIEludGVybmFsIFNldHRpbmdzCiAKIEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMg
PSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRl
cm5hbFNldHRpbmdzSGVhZGVyRmlsZS5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVy
YXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSURMRmlsZS5weSBcCi0gICAgJChX
ZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdz
SW1wbGVtZW50YXRpb25GaWxlLnB5IFwKLSAgICAkKFdlYkNvcmUpL1NjcmlwdHMvR2VuZXJhdGVT
ZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5IFwKLSAgICAkKFdlYkNvcmUpL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weSBcCi0gICAgJChXZWJD
b3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0ltcGxlbWVudGF0
aW9uRmlsZS5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0
dGluZ3MucHkgXAotICAgICQoV2ViQ29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL19faW5p
dF9fLnB5CisgICAgJChXZWJDb3JlKS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYiBcCisgICAgJChXZWJDb3JlKS9TY3JpcHRzL1NldHRp
bmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYiBcCisgICAgJChX
ZWJDb3JlKS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuaC5lcmIgXAorICAgICQoV2ViQ29yZSkvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0
aW5ncy5jcHAuZXJiIFwKKyAgICAkKFdlYkNvcmUpL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMv
U2V0dGluZ3MuaC5lcmIKIAogYWxsIDogSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIFNl
dHRpbmdzLmNwcCBTZXR0aW5ncy5oCi1JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkJWlkbCBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkJWNwcCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkJWggU2V0
dGluZ3MlY3BwIFNldHRpbmdzJWggOiAkKFdlYkNvcmUpL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy5weSAkKEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMpIHBhZ2UvU2V0dGluZ3MuaW4KLQkkKFBZ
VEhPTikgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2UvU2V0dGluZ3MuaW4KK0ludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQlaWRsIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQlY3BwIEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQlaCBTZXR0aW5ncyVjcHAgU2V0dGluZ3MlaCA6ICQoV2ViQ29yZSkv
U2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiICQoR0VORVJBVEVfU0VUVElOR1NfU0NSSVBUUykg
cGFnZS9TZXR0aW5ncy55YW1sCisJJChSVUJZKSAkPCAtLWlucHV0ICQoV2ViQ29yZSkvcGFnZS9T
ZXR0aW5ncy55YW1sCiAKICMgLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZU1hY3Jvcy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9z
LmNtYWtlCShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlTWFjcm9z
LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNyArMjAzLDcgQEAgZW5kbWFjcm8oKQogCiAK
IG1hY3JvKEdFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUyBfaW5maWxlIF9vdXRmaWxlKQotICAgIHNl
dChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
LnB5KQorICAgIHNldChOQU1FU19HRU5FUkFUT1IgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzLnJiKQogCiAgICAgIyBEbyBub3QgbGlzdCB0aGUgb3V0cHV0IGluIG1vcmUg
dGhhbiBvbmUgaW5kZXBlbmRlbnQgdGFyZ2V0IHRoYXQgbWF5CiAgICAgIyBidWlsZCBpbiBwYXJh
bGxlbCBvciB0aGUgdHdvIGluc3RhbmNlcyBvZiB0aGUgcnVsZSBtYXkgY29uZmxpY3QuCkBAIC0y
MTYsMTQgKzIxNiwxMSBAQCBtYWNybyhHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBf
CiAgICAgKQogCiAgICAgc2V0KEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMKLSAgICAgICAgJHtX
RUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0
aW5nc0hlYWRlckZpbGUucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0
ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUucHkKLSAgICAgICAgJHtX
RUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0
aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weQotICAgICAgICAke1dFQkNPUkVfRElSfS9TY3JpcHRz
L0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkKLSAgICAgICAg
JHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NJ
bXBsZW1lbnRhdGlvbkZpbGUucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3MucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0v
U2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdzLnB5Ci0gICAgICAgICR7V0VCQ09SRV9E
SVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2luaXRfXy5weQorICAgICAgICAke1dFQkNP
UkVfRElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwLmVyYgorICAgICAgICAke1dFQkNPUkVfRElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYgorICAgICAgICAke1dFQkNPUkVf
RElSfS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQu
aC5lcmIKKyAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9T
ZXR0aW5ncy5jcHAuZXJiCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvU2V0dGluZ3NU
ZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIKICAgICApCiAKICAgICBzZXQoX2FyZ3MgQllQUk9EVUNU
UyAke19leHRyYV9vdXRwdXR9KQpAQCAtMjMxLDcgKzIyOCw3IEBAIG1hY3JvKEdFTkVSQVRFX1NF
VFRJTkdTX01BQ1JPUyBfaW5maWxlIF8KICAgICAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS8ke19vdXRmaWxlfQogICAgICAgICBNQUlOX0RFUEVOREVOQ1kgJHtfaW5m
aWxlfQogICAgICAgICBERVBFTkRTICR7TkFNRVNfR0VORVJBVE9SfSAke0dFTkVSQVRFX1NFVFRJ
TkdTX1NDUklQVFN9ICR7U0NSSVBUU19CSU5ESU5HU30KLSAgICAgICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0tb3V0
cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQorICAgICAgICBDT01NQU5EICR7
UlVCWV9FWEVDVVRBQkxFfSAke05BTUVTX0dFTkVSQVRPUn0gLS1pbnB1dCAke19pbmZpbGV9IC0t
b3V0cHV0RGlyICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfQogICAgICAgICBWRVJCQVRJ
TSAke19hcmdzfSkKIGVuZG1hY3JvKCkKIApJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9H
ZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVy
YXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NIZWFkZXJGaWxlLnB5CShub25leGlzdGVudCkKQEAgLTEsODIgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoK
LSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlLCBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcKLQotCi1kZWYgZ2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmls
ZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKToKLSAgICBvdXRwdXRQYXRoID0gb3MucGF0aC5q
b2luKG91dHB1dERpcmVjdG9yeSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIpCi0gICAg
b3V0cHV0RmlsZSA9IG9wZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUo
bGljZW5zZSgpKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiI3ByYWdtYSBvbmNlXG5cbiIpCi0K
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlN1cHBsZW1lbnRhYmxlLmhcIlxuIikK
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD5cbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPlxuXG4i
KQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiY2xhc3MgUGFnZTtcblxuIikKLQotICAgIG91dHB1dEZpbGUu
d3JpdGUoImNsYXNzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkPiB7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
InB1YmxpYzpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIGV4cGxpY2l0IEludGVybmFs
U2V0dGluZ3NHZW5lcmF0ZWQoUGFnZSopO1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
dmlydHVhbCB+SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCgpO1xuXG4iKQotICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTtcblxuIikKLQotICAg
IGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAg
IHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRp
bmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGlu
dWUKLQotICAgICAgICB0eXBlID0gImNvbnN0IFN0cmluZyYiIGlmIHNldHRpbmcudHlwZSA9PSAi
U3RyaW5nIiBlbHNlIHNldHRpbmcudHlwZQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
dm9pZCAiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUoKSArICIoIiArIHR5cGUgKyAiICIg
KyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJcbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgicHJpdmF0ZTpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIFBhZ2UqIG1fcGFnZTtcblxuIikKLQotICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQo
c2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5n
TmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRpbmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5v
dCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBpZiBzZXR0aW5nLmNv
bmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIG91
dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5nLm5h
bWUgKyAiO1xuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAg
ICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
fTtcblxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG4i
KQotCi0gICAgb3V0cHV0RmlsZS5jbG9zZSgpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdz
SGVhZGVyRmlsZS5weQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0xICsw
LDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dl
YkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lE
TEZpbGUucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNl
dHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUucHkJKHJldmlzaW9uIDIyMzgx
NikKKysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUlu
dGVybmFsU2V0dGluZ3NJRExGaWxlLnB5CShub25leGlzdGVudCkKQEAgLTEsNDkgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlCi0K
LQotZGVmIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUob3V0cHV0RGlyZWN0b3J5LCBz
ZXR0aW5ncyk6Ci0gICAgb3V0cHV0UGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXREaXJlY3Rvcnks
ICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbCIpCi0gICAgb3V0cHV0RmlsZSA9IG9wZW4o
b3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0gICAg
b3V0cHV0RmlsZS53cml0ZSgiW1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgTm9JbnRl
cmZhY2VPYmplY3QsXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBFeHBvcnRNYWNybz1X
RUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCxcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiXSBp
bnRlcmZhY2UgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCB7XG4iKQotCi0gICAgZm9yIHNldHRp
bmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygpKToKLSAgICAgICAgc2V0dGluZyA9
IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxUeXBlID0gc2V0dGluZy5pZGxUeXBl
KCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAg
ICBvdXRwdXRGaWxlLndyaXRlKCIgICAgdm9pZCAiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5h
bWUoKSArICIoIiArIGlkbFR5cGUgKyAiICIgKyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAg
ICBvdXRwdXRGaWxlLndyaXRlKCJ9O1xuIikKLSAgICBvdXRwdXRGaWxlLmNsb3NlKCkKClByb3Bl
cnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9H
ZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlLnB5Cl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3Zu
OmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJ
bXBsZW1lbnRhdGlvbkZpbGUucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMTIgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1l
dDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0j
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotCi1pbXBvcnQgb3MucGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlLCBtYWtl
Q29uZGl0aW9uYWxTdHJpbmcsIG1ha2VDb25kaXRpb25hbFN0cmluZwotCi0KLWRlZiBnZW5lcmF0
ZUludGVybmFsU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0
aW5ncyk6Ci0gICAgb3V0cHV0UGF0aCA9IG9zLnBhdGguam9pbihvdXRwdXREaXJlY3RvcnksICJJ
bnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCIpCi0gICAgb3V0cHV0RmlsZSA9IG9wZW4ob3V0
cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKQotICAgIG91dHB1dEZpbGUu
d3JpdGUoIiNpbmNsdWRlIFwiSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oXCJcblxuIikKLQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiUGFnZS5oXCJcbiIpCi0gICAgb3V0cHV0
RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJTZXR0aW5ncy5oXCJcblxuIikKLQotICAgIG91dHB1dEZp
bGUud3JpdGUoIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIikKLQotICAgIG91dHB1dEZpbGUud3Jp
dGUoIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6OkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQo
UGFnZSogcGFnZSlcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIDogbV9wYWdlKHBhZ2Up
XG4iKQotCi0gICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygp
KToKLSAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxU
eXBlID0gc2V0dGluZy5pZGxUeXBlKCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAg
ICAgICBjb250aW51ZQotCi0gICAgICAgIGlmIHNldHRpbmcuY29uZGl0aW9uYWw6Ci0gICAgICAg
ICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiArIG1ha2VDb25kaXRpb25hbFN0cmluZyhzZXR0
aW5nLmNvbmRpdGlvbmFsKSArICJcbiIpCi0KLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAg
ICwgbV8iICsgc2V0dGluZy5uYW1lICsgIihwYWdlLT5zZXR0aW5ncygpLiIgKyBzZXR0aW5nLmdl
dHRlckZ1bmN0aW9uTmFtZSgpICsgIigpKVxuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRp
dGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAg
b3V0cHV0RmlsZS53cml0ZSgie1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0K
LSAgICBvdXRwdXRGaWxlLndyaXRlKCJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjp+SW50ZXJu
YWxTZXR0aW5nc0dlbmVyYXRlZCgpXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKClcbiIp
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgie1xuIikKLQotICAgIGZvciBzZXR0aW5nTmFtZSBpbiBz
b3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tz
ZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRpbmcuaWRsVHlwZSgpCi0gICAgICAg
IGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICBpZiBzZXR0
aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBt
YWtlQ29uZGl0aW9uYWxTdHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAg
ICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBtX3BhZ2UtPnNldHRpbmdzKCkuIiArIHNldHRpbmcu
c2V0dGVyRnVuY3Rpb25OYW1lKCkgKyAiKG1fIiArIHNldHRpbmcubmFtZSArICIpO1xuIikKLQot
ICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53
cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAg
Zm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygpKToKLSAgICAgICAg
c2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZGxUeXBlID0gc2V0dGlu
Zy5pZGxUeXBlKCkKLSAgICAgICAgaWYgbm90IGlkbFR5cGU6Ci0gICAgICAgICAgICBjb250aW51
ZQotCi0gICAgICAgIHR5cGUgPSAiY29uc3QgU3RyaW5nJiIgaWYgc2V0dGluZy50eXBlID09ICJT
dHJpbmciIGVsc2Ugc2V0dGluZy50eXBlCi0KLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjoiICsgc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5h
bWUoKSArICIoIiArIHR5cGUgKyAiICIgKyBzZXR0aW5nLm5hbWUgKyAiKVxuIikKLSAgICAgICAg
b3V0cHV0RmlsZS53cml0ZSgie1xuIikKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFs
OgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxT
dHJpbmcoc2V0dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIG91dHB1dEZpbGUu
d3JpdGUoIiAgICBtX3BhZ2UtPnNldHRpbmdzKCkuIiArIHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgKyAiKCIgKyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0KLSAgICAgICAgaWYgc2V0dGlu
Zy5jb25kaXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbHNlXG4iKQot
ICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIFVOVVNFRF9QQVJBTSgiICsgc2V0dGlu
Zy5uYW1lICsgIik7XG4iKQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4i
KQotCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUu
d3JpdGUoIn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcbiIpCi0KLSAgICBvdXRwdXRGaWxlLmNsb3Nl
KCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVT
ZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5CShyZXZp
c2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVTZXR0aW5ncy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDYgKzAsMCBAQAotZnJvbSBT
ZXR0aW5ncyBpbXBvcnQgKgotZnJvbSBHZW5lcmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxl
IGltcG9ydCAqCi1mcm9tIEdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUgaW1wb3J0ICoK
LWZyb20gR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlIGltcG9ydCAq
Ci1mcm9tIEdlbmVyYXRlU2V0dGluZ3NIZWFkZXJGaWxlIGltcG9ydCAqCi1mcm9tIEdlbmVyYXRl
U2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUgaW1wb3J0ICoKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2Vu
ZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmls
ZS5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDE2MSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcy5w
YXRoCi0KLWZyb20gU2V0dGluZ3MgaW1wb3J0IGxpY2Vuc2UsIG1ha2VDb25kaXRpb25hbFN0cmlu
ZywgbWFrZVByZWZlcnJlZENvbmRpdGlvbmFsCi0KLQotZGVmIGdlbmVyYXRlU2V0dGluZ3NIZWFk
ZXJGaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpOgotICAgIHNldHRpbmdzQnlDb25kaXRp
b25hbCA9IHt9Ci0gICAgdW5jb25kaXRpb25hbFNldHRpbmdzID0ge30KLQotICAgIGZvciBzZXR0
aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcg
PSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25hbDoK
LSAgICAgICAgICAgIGlmIHNldHRpbmcuY29uZGl0aW9uYWwgbm90IGluIHNldHRpbmdzQnlDb25k
aXRpb25hbDoKLSAgICAgICAgICAgICAgICBzZXR0aW5nc0J5Q29uZGl0aW9uYWxbc2V0dGluZy5j
b25kaXRpb25hbF0gPSB7fQotICAgICAgICAgICAgc2V0dGluZ3NCeUNvbmRpdGlvbmFsW3NldHRp
bmcuY29uZGl0aW9uYWxdW3NldHRpbmcubmFtZV0gPSBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB1bmNvbmRpdGlvbmFsU2V0dGluZ3Nbc2V0dGluZy5uYW1lXSA9IFRydWUKLQotICAg
IHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzID0gc29ydGVkKHVuY29uZGl0aW9uYWxT
ZXR0aW5ncy5pdGVya2V5cygpKQotICAgIHNvcnRlZENvbmRpdGlvbmFscyA9IHNvcnRlZChzZXR0
aW5nc0J5Q29uZGl0aW9uYWwuaXRlcmtleXMoKSkKLQotICAgIG91dHB1dFBhdGggPSBvcy5wYXRo
LmpvaW4ob3V0cHV0RGlyZWN0b3J5LCAiU2V0dGluZ3MuaCIpCi0gICAgb3V0cHV0RmlsZSA9IG9w
ZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5zZSgpKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiI3ByYWdtYSBvbmNlXG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCIjaW5jbHVkZSBcIlNldHRpbmdzQmFzZS5oXCJcbiIpCi0gICAgb3V0cHV0RmlsZS53
cml0ZSgiI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCJuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRl
KCJjbGFzcyBQYWdlO1xuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiY2xhc3MgU2V0dGlu
Z3MgOiBwdWJsaWMgU2V0dGluZ3NCYXNlLCBwdWJsaWMgUmVmQ291bnRlZDxTZXR0aW5ncz4ge1xu
IikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0dGlu
Z3MpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDtcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
cHVibGljOlxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgc3RhdGljIFJlZjxTZXR0aW5n
cz4gY3JlYXRlKFBhZ2UqKTtcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIH5TZXR0aW5n
cygpO1xuXG4iKQotCi0gICAgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycyhvdXRwdXRGaWxlLCBzb3J0
ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5n
c0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgicHJpdmF0
ZTpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2Uq
KTtcblxuIikKLQotICAgIHByaW50TWVtYmVyVmFyaWFibGVzKG91dHB1dEZpbGUsIHNvcnRlZFVu
Y29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNldHRpbmdzQnlD
b25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9O1xuXG4iKQot
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuIikKLQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQot
Ci0KLWRlZiBwcmludEdldHRlckFuZFNldHRlcihvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBz
ZXR0ZXJGdW5jdGlvbk5hbWUgPSBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSgpCi0gICAgZ2V0
dGVyRnVuY3Rpb25OYW1lID0gc2V0dGluZy5nZXR0ZXJGdW5jdGlvbk5hbWUoKQotCi0gICAgd2Vi
Y29yZUV4cG9ydCA9ICJXRUJDT1JFX0VYUE9SVCAiIGlmIHNldHRpbmcuaGFzQ29tcGxleFNldHRl
cigpIGVsc2UgIiIKLQotICAgIGlmIHNldHRpbmcudHlwZUlzVmFsdWVUeXBlKCk6Ci0gICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiAiICsgZ2V0dGVyRnVu
Y3Rpb25OYW1lICsgIigpIGNvbnN0IHsgcmV0dXJuIG1fIiArIHNldHRpbmcubmFtZSArICI7IH1c
biIpCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgd2ViY29yZUV4cG9ydCArICJ2
b2lkICIgKyBzZXR0ZXJGdW5jdGlvbk5hbWUgKyAiKCIgKyBzZXR0aW5nLnR5cGUgKyAiICIgKyBz
ZXR0aW5nLm5hbWUgKyAiKSIpCi0gICAgZWxzZToKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIGNvbnN0ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgZ2V0dGVyRnVuY3Rpb25OYW1lICsg
IigpIGNvbnN0IHsgcmV0dXJuIG1fIiArIHNldHRpbmcubmFtZSArICI7IH1cbiIpCi0gICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgd2ViY29yZUV4cG9ydCArICJ2b2lkICIgKyBzZXR0
ZXJGdW5jdGlvbk5hbWUgKyAiKGNvbnN0ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgc2V0dGlu
Zy5uYW1lICsgIikiKQotCi0gICAgaWYgc2V0dGluZy5oYXNDb21wbGV4U2V0dGVyKCk6Ci0gICAg
ICAgIG91dHB1dEZpbGUud3JpdGUoIjtcbiIpCi0gICAgZWxzZToKLSAgICAgICAgb3V0cHV0Rmls
ZS53cml0ZSgiIHsgbV8iICsgc2V0dGluZy5uYW1lICsgIiA9ICIgKyBzZXR0aW5nLm5hbWUgKyAi
OyB9XG4iKQotCi0KLWRlZiBwcmludEdldHRlcnNBbmRTZXR0ZXJzKG91dHB1dEZpbGUsIHNvcnRl
ZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNldHRpbmdz
QnlDb25kaXRpb25hbCwgc2V0dGluZ3MpOgotICAgIGZvciB1bmNvbmRpdGlvbmFsU2V0dGluZ05h
bWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXM6Ci0gICAgICAgIHByaW50R2V0
dGVyQW5kU2V0dGVyKG91dHB1dEZpbGUsIHNldHRpbmdzW3VuY29uZGl0aW9uYWxTZXR0aW5nTmFt
ZV0pCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJcbiIpCi0KLSAgICBmb3IgY29uZGl0aW9uYWwg
aW4gc29ydGVkQ29uZGl0aW9uYWxzOgotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiAr
IG1ha2VDb25kaXRpb25hbFN0cmluZyhjb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIGZv
ciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFs
XS5pdGVya2V5cygpKToKLSAgICAgICAgICAgIHByaW50R2V0dGVyQW5kU2V0dGVyKG91dHB1dEZp
bGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkKLQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIj
ZW5kaWZcblxuIikKLQotCi1kZWYgcHJpbnRNZW1iZXJWYXJpYWJsZXMob3V0cHV0RmlsZSwgc29y
dGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXMsIHNvcnRlZENvbmRpdGlvbmFscywgc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsLCBzZXR0aW5ncyk6Ci0gICAgZm9yIHVuY29uZGl0aW9uYWxTZXR0aW5n
TmFtZSBpbiBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lczoKLSAgICAgICAgc2V0dGlu
ZyA9IHNldHRpbmdzW3VuY29uZGl0aW9uYWxTZXR0aW5nTmFtZV0KLSAgICAgICAgaWYgc2V0dGlu
Zy50eXBlID09ICJib29sIjoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5nLm5hbWUgKyAi
O1xuIikKLQotICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRDb25kaXRpb25hbHM6Ci0gICAg
ICAgIGhhc01lbWJlclZhcmlhYmxlID0gRmFsc2UKLSAgICAgICAgZm9yIHNldHRpbmdOYW1lIGlu
IHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgot
ICAgICAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICAgICAg
aWYgc2V0dGluZy50eXBlICE9ICJib29sIjoKLSAgICAgICAgICAgICAgICBoYXNNZW1iZXJWYXJp
YWJsZSA9IFRydWUKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGhhc01lbWJl
clZhcmlhYmxlOgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29u
ZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICAgICAgZm9yIHNl
dHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0
ZXJrZXlzKCkpOgotICAgICAgICAgICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFt
ZV0KLSAgICAgICAgICAgICAgICBpZiBzZXR0aW5nLnR5cGUgIT0gImJvb2wiOgotICAgICAgICAg
ICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgbV8i
ICsgc2V0dGluZy5uYW1lICsgIjtcbiIpCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUo
IiNlbmRpZlxuIikKLQotICAgIGZvciB1bmNvbmRpdGlvbmFsU2V0dGluZ05hbWUgaW4gc29ydGVk
VW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXM6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1t1
bmNvbmRpdGlvbmFsU2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRpbmcudHlwZSAhPSAiYm9v
bCI6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAg
IiArIHNldHRpbmcudHlwZSArICIgbV8iICsgc2V0dGluZy5uYW1lICsgIiA6IDE7XG4iKQotCi0g
ICAgZm9yIGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAgICAgICAgaGFzTWVt
YmVyVmFyaWFibGUgPSBGYWxzZQotICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNl
dHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAg
ICBzZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgICAgICBpZiBzZXR0aW5n
LnR5cGUgPT0gImJvb2wiOgotICAgICAgICAgICAgICAgIGhhc01lbWJlclZhcmlhYmxlID0gVHJ1
ZQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgaGFzTWVtYmVyVmFyaWFibGU6
Ci0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiArIG1ha2VDb25kaXRpb25hbFN0
cmluZyhjb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgICAgICBmb3Igc2V0dGluZ05hbWUg
aW4gc29ydGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6
Ci0gICAgICAgICAgICAgICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAg
ICAgICAgICAgIGlmIHNldHRpbmcudHlwZSA9PSAiYm9vbCI6Ci0gICAgICAgICAgICAgICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgc2V0dGluZy50eXBlICsgIiBtXyIgKyBzZXR0aW5n
Lm5hbWUgKyAiIDogMTtcbiIpCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRp
ZlxuIikKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJh
dGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZS5weQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjpleGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
L0dlbmVyYXRlU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NJbXBs
ZW1lbnRhdGlvbkZpbGUucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxl
LnB5CShub25leGlzdGVudCkKQEAgLTEsMTg4ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhv
bgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0j
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IG9zLnBh
dGgKLQotZnJvbSBTZXR0aW5ncyBpbXBvcnQgbGljZW5zZSwgbWFrZUNvbmRpdGlvbmFsU3RyaW5n
LCBtYWtlUHJlZmVycmVkQ29uZGl0aW9uYWwKLQotCi1kZWYgZ2VuZXJhdGVTZXR0aW5nc0ltcGxl
bWVudGF0aW9uRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKToKLSAgICBzZXR0aW5nc0J5
Q29uZGl0aW9uYWwgPSB7fQotICAgIHVuY29uZGl0aW9uYWxTZXR0aW5ncyA9IHt9Ci0KLSAgICBm
b3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAgICBz
ZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRpbmcuY29uZGl0
aW9uYWw6Ci0gICAgICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsIG5vdCBpbiBzZXR0aW5n
c0J5Q29uZGl0aW9uYWw6Ci0gICAgICAgICAgICAgICAgc2V0dGluZ3NCeUNvbmRpdGlvbmFsW3Nl
dHRpbmcuY29uZGl0aW9uYWxdID0ge30KLSAgICAgICAgICAgIHNldHRpbmdzQnlDb25kaXRpb25h
bFtzZXR0aW5nLmNvbmRpdGlvbmFsXVtzZXR0aW5nLm5hbWVdID0gVHJ1ZQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgdW5jb25kaXRpb25hbFNldHRpbmdzW3NldHRpbmcubmFtZV0gPSBUcnVl
Ci0KLSAgICBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcyA9IHNvcnRlZCh1bmNvbmRp
dGlvbmFsU2V0dGluZ3MuaXRlcmtleXMoKSkKLSAgICBzb3J0ZWRDb25kaXRpb25hbHMgPSBzb3J0
ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsLml0ZXJrZXlzKCkpCi0KLSAgICBvdXRwdXRQYXRoID0g
b3MucGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgIlNldHRpbmdzLmNwcCIpCi0gICAgb3V0cHV0
RmlsZSA9IG9wZW4ob3V0cHV0UGF0aCwgJ3cnKQotICAgIG91dHB1dEZpbGUud3JpdGUobGljZW5z
ZSgpKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJjb25maWcuaFwiXG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiU2V0dGluZ3MuaFwiXG5cbiIpCi0KLSAg
ICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlBhZ2UuaFwiXG4iKQotICAgIG91dHB1dEZp
bGUud3JpdGUoIiNpbmNsdWRlIFwiU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmhcIlxuXG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKQotCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiUmVmPFNldHRpbmdzPiBTZXR0aW5nczo6Y3JlYXRlKFBhZ2UqIHBhZ2Up
XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNldHRpbmdzKHBhZ2UpKTtcbiIpCi0gICAgb3V0cHV0
RmlsZS53cml0ZSgifVxuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiU2V0dGluZ3M6OlNl
dHRpbmdzKFBhZ2UqIHBhZ2UpXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICA6IFNldHRp
bmdzQmFzZShwYWdlKVxuIikKLQotICAgIHByaW50SW5pdGlhbGl6ZXJMaXN0KG91dHB1dEZpbGUs
IHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNl
dHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7
XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUud3Jp
dGUoIlNldHRpbmdzOjp+U2V0dGluZ3MoKVxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7XG4i
KQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIHByaW50U2V0dGVyQm9kaWVz
KG91dHB1dEZpbGUsIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25k
aXRpb25hbHMsIHNldHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpCi0KLSAgICBvdXRwdXRG
aWxlLndyaXRlKCJ9XG4iKQotCi0gICAgb3V0cHV0RmlsZS5jbG9zZSgpCi0KLQotZGVmIGhhc05v
bkJvb2xJbml0aWFsaXplcihzZXR0aW5nKToKLSAgICBpZiBzZXR0aW5nLnR5cGUgPT0gImJvb2wi
OgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBpZiBub3Qgc2V0dGluZy5pbml0aWFsOgotICAg
ICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBwcmludE5vbkJvb2xJ
bml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBpZiBub3QgaGFzTm9uQm9vbElu
aXRpYWxpemVyKHNldHRpbmcpOgotICAgICAgICByZXR1cm4KLSAgICBvdXRwdXRGaWxlLndyaXRl
KCIgICAgLCBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiKCIgKyBzZXR0aW5nLmluaXRpYWwgKyAiKVxu
IikKLQotCi1kZWYgaGFzQm9vbEluaXRpYWxpemVyKHNldHRpbmcpOgotICAgIGlmIHNldHRpbmcu
dHlwZSAhPSAiYm9vbCI6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIGlmIG5vdCBzZXR0aW5n
LmluaXRpYWw6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBUcnVlCi0KLQotZGVm
IHByaW50Qm9vbEluaXRpYWxpemVyKG91dHB1dEZpbGUsIHNldHRpbmcpOgotICAgIGlmIG5vdCBo
YXNCb29sSW5pdGlhbGl6ZXIoc2V0dGluZyk6Ci0gICAgICAgIHJldHVybgotICAgIG91dHB1dEZp
bGUud3JpdGUoIiAgICAsIG1fIiArIHNldHRpbmcubmFtZSArICIoIiArIHNldHRpbmcuaW5pdGlh
bCArICIpXG4iKQotCi0KLWRlZiBwcmludEluaXRpYWxpemVyTGlzdChvdXRwdXRGaWxlLCBzb3J0
ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5n
c0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKToKLSAgICBmb3IgdW5jb25kaXRpb25hbFNldHRpbmdO
YW1lIGluIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzOgotICAgICAgICBwcmludE5v
bkJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGlu
Z05hbWVdKQotCi0gICAgZm9yIGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAg
ICAgICAgaGFzSW5pdGlhbGl6ZXIgPSBGYWxzZQotICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4g
c29ydGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0g
ICAgICAgICAgICBpZiBoYXNOb25Cb29sSW5pdGlhbGl6ZXIoc2V0dGluZ3Nbc2V0dGluZ05hbWVd
KToKLSAgICAgICAgICAgICAgICBoYXNJbml0aWFsaXplciA9IFRydWUKLSAgICAgICAgICAgICAg
ICBicmVhawotCi0gICAgICAgIGlmIGhhc0luaXRpYWxpemVyOgotICAgICAgICAgICAgb3V0cHV0
RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9uYWwpICsg
IlxuIikKLQotICAgICAgICAgICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5
Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgotICAgICAgICAgICAgICAgIHBy
aW50Tm9uQm9vbEluaXRpYWxpemVyKG91dHB1dEZpbGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkK
LQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG4iKQotCi0gICAgZm9yIHVu
Y29uZGl0aW9uYWxTZXR0aW5nTmFtZSBpbiBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1l
czoKLSAgICAgICAgcHJpbnRCb29sSW5pdGlhbGl6ZXIob3V0cHV0RmlsZSwgc2V0dGluZ3NbdW5j
b25kaXRpb25hbFNldHRpbmdOYW1lXSkKLQotICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRD
b25kaXRpb25hbHM6Ci0gICAgICAgIGhhc0luaXRpYWxpemVyID0gRmFsc2UKLSAgICAgICAgZm9y
IHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxd
Lml0ZXJrZXlzKCkpOgotICAgICAgICAgICAgaWYgaGFzQm9vbEluaXRpYWxpemVyKHNldHRpbmdz
W3NldHRpbmdOYW1lXSk6Ci0gICAgICAgICAgICAgICAgaGFzSW5pdGlhbGl6ZXIgPSBUcnVlCi0g
ICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNJbml0aWFsaXplcjoKLSAgICAg
ICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNvbmRpdGlvbmFsU3RyaW5nKGNv
bmRpdGlvbmFsKSArICJcbiIpCi0KLSAgICAgICAgICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0
ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToKLSAgICAg
ICAgICAgICAgICBwcmludEJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nc1tzZXR0
aW5nTmFtZV0pCi0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuIikKLQot
Ci1kZWYgcHJpbnRTZXR0ZXJCb2R5KG91dHB1dEZpbGUsIHNldHRpbmcpOgotICAgIGlmIG5vdCBz
ZXR0aW5nLmhhc0NvbXBsZXhTZXR0ZXIoKToKLSAgICAgICAgcmV0dXJuCi0KLSAgICBzZXR0ZXJG
dW5jdGlvbk5hbWUgPSBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSgpCi0gICAgY2hhbmdlRnVu
Y3Rpb25OYW1lID0gc2V0dGluZy5zZXR0ZXJDaGFuZ2VGdW5jdGlvbk5hbWUoKQotCi0gICAgaWYg
c2V0dGluZy50eXBlSXNWYWx1ZVR5cGUoKToKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgidm9p
ZCBTZXR0aW5nczo6IiArIHNldHRlckZ1bmN0aW9uTmFtZSArICIoIiArIHNldHRpbmcudHlwZSAr
ICIgIiArIHNldHRpbmcubmFtZSArICIpXG4iKQotICAgIGVsc2U6Ci0gICAgICAgIG91dHB1dEZp
bGUud3JpdGUoInZvaWQgU2V0dGluZ3M6OiIgKyBzZXR0ZXJGdW5jdGlvbk5hbWUgKyAiKGNvbnN0
ICIgKyBzZXR0aW5nLnR5cGUgKyAiJiAiICsgc2V0dGluZy5uYW1lICsgIilcbiIpCi0KLSAgICBv
dXRwdXRGaWxlLndyaXRlKCJ7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBpZiAobV8i
ICsgc2V0dGluZy5uYW1lICsgIiA9PSAiICsgc2V0dGluZy5uYW1lICsgIilcbiIpCi0gICAgb3V0
cHV0RmlsZS53cml0ZSgiICAgICAgICByZXR1cm47XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
IiAgICBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiID0gIiArIHNldHRpbmcubmFtZSArICI7XG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICAiICsgY2hhbmdlRnVuY3Rpb25OYW1lICsgIigpO1xu
IikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0KLQotZGVmIHByaW50U2V0dGVyQm9k
aWVzKG91dHB1dEZpbGUsIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRD
b25kaXRpb25hbHMsIHNldHRpbmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpOgotICAgIGZvciB1
bmNvbmRpdGlvbmFsU2V0dGluZ05hbWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFt
ZXM6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGluZ05hbWVd
Ci0gICAgICAgIHByaW50U2V0dGVyQm9keShvdXRwdXRGaWxlLCBzZXR0aW5nKQotCi0gICAgZm9y
IGNvbmRpdGlvbmFsIGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAgICAgICAgaGFzU2V0dGVyQm9k
eSA9IEZhbHNlCi0gICAgICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNv
bmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToKLSAgICAgICAgICAgIHNldHRpbmcg
PSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgICAgIGlmIHNldHRpbmcuaGFzQ29tcGxl
eFNldHRlcigpOgotICAgICAgICAgICAgICAgIGhhc1NldHRlckJvZHkgPSBUcnVlCi0gICAgICAg
ICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNTZXR0ZXJCb2R5OgotICAgICAgICAgICAg
b3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9u
YWwpICsgIlxuXG4iKQotCi0gICAgICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNl
dHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAg
ICAgICAgcHJpbnRTZXR0ZXJCb2R5KG91dHB1dEZpbGUsIHNldHRpbmdzW3NldHRpbmdOYW1lXSkK
LQotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2VuZGlmXG5cbiIpCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJh
dGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpl
eGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdz
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy9TZXR0aW5ncy5weQkocmV2aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0
cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdzLnB5CShub25leGlzdGVudCkKQEAgLTEsMTYzICsw
LDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotaW1wb3J0IG9zLnBhdGgKLWltcG9ydCByZQotCi0KLWRlZiBsaWNlbnNl
KCk6Ci0gICAgcmV0dXJuICIiIi8qCi0gKiBUSElTIEZJTEUgV0FTIEFVVE9NQVRJQ0FMTFkgR0VO
RVJBVEVELCBETyBOT1QgRURJVC4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0iIiIKLQotCi1jbGFzcyBTZXR0aW5n
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFt
ZQotICAgICAgICBzZWxmLnR5cGUgPSAnYm9vbCcKLSAgICAgICAgc2VsZi5pbml0aWFsID0gTm9u
ZQotICAgICAgICBzZWxmLmNvbmRpdGlvbmFsID0gTm9uZQotICAgICAgICBzZWxmLm9uQ2hhbmdl
ID0gTm9uZQotICAgICAgICBzZWxmLmdldHRlciA9IE5vbmUKLQotICAgIGRlZiBfX3N0cl9fKHNl
bGYpOgotICAgICAgICByZXN1bHQgPSBzZWxmLm5hbWUgKyAnIFRZUEU6JyArIHNlbGYudHlwZQot
ICAgICAgICBpZiAoc2VsZi5pbml0aWFsKToKLSAgICAgICAgICAgIHJlc3VsdCArPSAnIElOSVQ6
JyArIHNlbGYuaW5pdGlhbAotICAgICAgICBpZiAoc2VsZi5jb25kaXRpb25hbCk6Ci0gICAgICAg
ICAgICByZXN1bHQgKz0gJyBDT05EOicgKyBzZWxmLmNvbmRpdGlvbmFsCi0gICAgICAgIGlmIChz
ZWxmLm9uQ2hhbmdlKToKLSAgICAgICAgICAgIHJlc3VsdCArPSAnIENIQU5HRTonICsgc2VsZi5v
bkNoYW5nZQotICAgICAgICBpZiAoc2VsZi5nZXR0ZXIpOgotICAgICAgICAgICAgcmVzdWx0ICs9
ICcgR0VUVEVSOicgKyBzZWxmLmdldHRlcgotICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICBk
ZWYgdHlwZUlzVmFsdWVUeXBlKHNlbGYpOgotICAgICAgICBpZiBzZWxmLnR5cGUgPT0gJ1N0cmlu
Zyc6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYgc2VsZi50eXBlID09ICdV
UkwnOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAg
ICBkZWYgc2V0dGVyRnVuY3Rpb25OYW1lKHNlbGYpOgotICAgICAgICBmb3IgcHJlZml4IGluIFsn
Y3NzJywgJ3hzcycsICdmdHAnLCAnZG9tJywgJ2RucyddOgotICAgICAgICAgICAgaWYgc2VsZi5u
YW1lLnN0YXJ0c3dpdGgocHJlZml4KToKLSAgICAgICAgICAgICAgICByZXR1cm4gJ3NldCcgKyB1
cHBlcmNhc2VGaXJzdE4oc2VsZi5uYW1lLCBsZW4ocHJlZml4KSkKLSAgICAgICAgcmV0dXJuICdz
ZXQnICsgdXBwZXJjYXNlRmlyc3ROKHNlbGYubmFtZSwgMSkKLQotICAgIGRlZiBnZXR0ZXJGdW5j
dGlvbk5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldHRlciBvciBzZWxmLm5hbWUK
LQotICAgIGRlZiBzZXR0ZXJDaGFuZ2VGdW5jdGlvbk5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLm9uQ2hhbmdlCi0KLSAgICBkZWYgaGFzQ29tcGxleFNldHRlcihzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYub25DaGFuZ2UgIT0gTm9uZQotCi0gICAgZGVmIGlkbFR5cGUoc2VsZik6
Ci0gICAgICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBtb3JlIHR5cGVzIGluY2x1ZGluZyBl
bnVtZXJhdGUgdHlwZXMuCi0gICAgICAgIGlmIHNlbGYudHlwZSA9PSAnaW50JzoKLSAgICAgICAg
ICAgIHJldHVybiAnbG9uZycKLSAgICAgICAgaWYgc2VsZi50eXBlID09ICd1bnNpZ25lZCc6Ci0g
ICAgICAgICAgICByZXR1cm4gJ3Vuc2lnbmVkIGxvbmcnCi0gICAgICAgIGlmIHNlbGYudHlwZSA9
PSAnZG91YmxlJzoKLSAgICAgICAgICAgIHJldHVybiAnZG91YmxlJwotICAgICAgICBpZiBzZWxm
LnR5cGUgPT0gJ2Zsb2F0JzoKLSAgICAgICAgICAgIHJldHVybiAnZmxvYXQnCi0gICAgICAgIGlm
IHNlbGYudHlwZSA9PSAnU3RyaW5nJzoKLSAgICAgICAgICAgIHJldHVybiAnRE9NU3RyaW5nJwot
ICAgICAgICBpZiBzZWxmLnR5cGUgPT0gJ2Jvb2wnOgotICAgICAgICAgICAgcmV0dXJuICdib29s
ZWFuJwotICAgICAgICByZXR1cm4gTm9uZQotCi0KLWRlZiB1cHBlcmNhc2VGaXJzdE4oc3RyaW5n
LCBuKToKLSAgICByZXR1cm4gc3RyaW5nWzpuXS51cHBlcigpICsgc3RyaW5nW246XQotCi0KLWRl
ZiBtYWtlUHJlZmVycmVkQ29uZGl0aW9uYWwoY29uZGl0aW9uYWwpOgotICAgIHJldHVybiBjb25k
aXRpb25hbC5zcGxpdCgnfCcpWzBdCi0KLQotZGVmIG1ha2VDb25kaXRpb25hbFN0cmluZyhjb25k
aXRpb25hbCk6Ci0gICAgY29uZGl0aW9uYWxzID0gY29uZGl0aW9uYWwuc3BsaXQoJ3wnKQotICAg
IHJldHVybiAnRU5BQkxFKCcgKyAnKSB8fCBFTkFCTEUoJy5qb2luKGNvbmRpdGlvbmFscykgKyAn
KScKLQotCi1kZWYgcGFyc2VJbnB1dChpbnB1dCk6Ci0gICAgc2V0dGluZ3MgPSB7fQotCi0gICAg
d2l0aCBvcGVuKGlucHV0LCAncicpIGFzIGZpbGU6Ci0gICAgICAgIGZvciBsaW5lIGluIGZpbGU6
Ci0gICAgICAgICAgICBpZiBub3QgbGluZS5zdGFydHN3aXRoKCcjJykgYW5kIG5vdCBsaW5lLmlz
c3BhY2UoKToKLQotICAgICAgICAgICAgICAgIChuYW1lLCBvcHRpb25zU3RyaW5nKSA9IGxpbmUu
cnN0cmlwKCkuc3BsaXQoJyAnLCAxKQotCi0gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHJlLnNw
bGl0KHInICosIConLCBvcHRpb25zU3RyaW5nKQotCi0gICAgICAgICAgICAgICAgc2V0dGluZyA9
IFNldHRpbmcobmFtZSkKLSAgICAgICAgICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0g
ICAgICAgICAgICAgICAgICAgIChuYW1lLCB2YWx1ZSkgPSByZS5zcGxpdChyJyAqPSAqJywgb3B0
aW9uKQotICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAndHlwZScpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0dGluZy50eXBlID0gdmFsdWUKLSAgICAgICAgICAgICAgICAgICAg
aWYgKG5hbWUgPT0gJ2luaXRpYWwnKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcu
aW5pdGlhbCA9IHZhbHVlCi0gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICdjb25kaXRp
b25hbCcpOgotICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZy5jb25kaXRpb25hbCA9IHZh
bHVlCi0gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lID09ICdvbkNoYW5nZScpOgotICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0dGluZy5vbkNoYW5nZSA9IHZhbHVlCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChuYW1lID09ICdnZXR0ZXInKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl
dHRpbmcuZ2V0dGVyID0gdmFsdWUKLQotICAgICAgICAgICAgICAgICMgRklYTUU6IEFTU0VSVCBz
b21ldGhpbmcgYWJvdXQgc2V0dGluZy5pbml0aWFsCi0KLSAgICAgICAgICAgICAgICBzZXR0aW5n
c1tzZXR0aW5nLm5hbWVdID0gc2V0dGluZwotCi0gICAgcmV0dXJuIHNldHRpbmdzCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvU2V0
dGluZ3MucHkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMj
Ci0qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvX19pbml0X18ucHkJKHJldmlzaW9u
IDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2lu
aXRfXy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDMgKzAsMCBAQAotIyBSZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlIGZpbGVzCi0KLWZyb20gR2Vu
ZXJhdGVTZXR0aW5ncyBpbXBvcnQgKgpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy5weQkocmV2aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvU2Ny
aXB0cy9HZW5lcmF0ZVNldHRpbmdzLnB5CShub25leGlzdGVudCkKQEAgLTEsNjAgKzAsMCBAQAot
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJl
IG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0jIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi1pbXBvcnQgb3MucGF0aAotaW1wb3J0IHN5cwotZnJvbSBvcHRwYXJzZSBpbXBvcnQg
T3B0aW9uUGFyc2VyCi0KLWZyb20gR2VuZXJhdGVTZXR0aW5ncyBpbXBvcnQgKgotCi0KLWRlZiBt
YWluKCk6Ci0gICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKHVzYWdlPSJ1c2FnZTogJXByb2cgLS1p
bnB1dCBmaWxlIikKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1pbnB1dCcsIGRlc3Q9J2lucHV0
JywgaGVscD0nZmlsZSB0byBnZW5lcmF0ZSBzZXR0aW5ncyBmcm9tJywgbWV0YXZhcj0nZmlsZScp
Ci0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tb3V0cHV0RGlyJywgZGVzdD0nb3V0cHV0RGlyJywg
aGVscD0nZGlyZWN0b3J5IHRvIGdlbmVyYXRlIGZpbGUgaW4nLCBtZXRhdmFyPSdkaXInKQotCi0g
ICAgKG9wdGlvbnMsIGFyZ3VtZW50cykgPSBwYXJzZXIucGFyc2VfYXJncygpCi0KLSAgICBpZiBu
b3Qgb3B0aW9ucy5pbnB1dDoKLSAgICAgICAgcHJpbnQgIkVycm9yOiBtdXN0IHByb3ZpZGUgYW4g
aW5wdXQgZmlsZSIKLSAgICAgICAgcGFyc2VyLnByaW50X3VzYWdlKCkKLSAgICAgICAgZXhpdCgt
MSkKLQotICAgIG91dHB1dERpcmVjdG9yeSA9IG9wdGlvbnMub3V0cHV0RGlyIGlmIG9wdGlvbnMu
b3V0cHV0RGlyIGVsc2Ugb3MuZ2V0Y3dkKCkKLQotICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhv
dXRwdXREaXJlY3RvcnkpOgotICAgICAgICBvcy5tYWtlZGlycyhvdXRwdXREaXJlY3RvcnkpCi0K
LSAgICBzZXR0aW5ncyA9IHBhcnNlSW5wdXQob3B0aW9ucy5pbnB1dCkKLQotICAgIGdlbmVyYXRl
U2V0dGluZ3NIZWFkZXJGaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpCi0gICAgZ2VuZXJh
dGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKQot
ICAgIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0
aW5ncykKLSAgICBnZW5lcmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxlKG91dHB1dERpcmVj
dG9yeSwgc2V0dGluZ3MpCi0gICAgZ2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRp
b25GaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0dGluZ3MpCi0KLQotaWYgX19uYW1lX18gPT0gJ19f
bWFpbl9fJzoKLSAgICBtYWluKCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5weQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpleGVj
dXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJ
bmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxOTYgQEAKKyMhL3Vzci9iaW4vZW52IHJ1YnkKKyMKKyMg
Q29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorIyBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK3JlcXVpcmUgImZpbGV1dGlscyIK
K3JlcXVpcmUgJ2VyYicKK3JlcXVpcmUgJ29wdHBhcnNlJworcmVxdWlyZSAneWFtbCcKKworb3B0
aW9ucyA9IHsgCisgIDppbnB1dCA9PiBuaWwsCisgIDpvdXRwdXREaXJlY3RvcnkgPT4gbmlsCit9
CitvcHRwYXJzZSA9IE9wdGlvblBhcnNlci5uZXcgZG8gfG9wdHN8CisgICAgb3B0cy5iYW5uZXIg
PSAiVXNhZ2U6ICN7RmlsZS5iYXNlbmFtZSgkMCl9IC0taW5wdXQgZmlsZSIKKworICAgIG9wdHMu
c2VwYXJhdG9yICIiCisKKyAgICBvcHRzLm9uKCItLWlucHV0IGlucHV0IiwgImZpbGUgdG8gZ2Vu
ZXJhdGUgc2V0dGluZ3MgZnJvbSIpIHsgfGlucHV0fCBvcHRpb25zWzppbnB1dF0gPSBpbnB1dCB9
CisgICAgb3B0cy5vbigiLS1vdXRwdXREaXIgb3V0cHV0IiwgImRpcmVjdG9yeSB0byBnZW5lcmF0
ZSBmaWxlIGluIikgeyB8b3V0cHV0fCBvcHRpb25zWzpvdXRwdXREaXJlY3RvcnldID0gb3V0cHV0
IH0KK2VuZAorCitvcHRwYXJzZS5wYXJzZSEKKworaWYgIW9wdGlvbnNbOmlucHV0XQorICBwdXRz
IG9wdHBhcnNlCisgIGV4aXQoLTEpCitlbmQKKworaWYgIW9wdGlvbnNbOm91dHB1dERpcmVjdG9y
eV0KKyAgb3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSA9IERpci5nZXR3ZAorZW5kCisKK0ZpbGVV
dGlscy5ta2Rpcl9wKG9wdGlvbnNbOm91dHB1dERpcmVjdG9yeV0pCisKK3BhcnNlZFNldHRpbmdz
ID0gYmVnaW4KKyAgWUFNTC5sb2FkX2ZpbGUob3B0aW9uc1s6aW5wdXRdKQorcmVzY3VlIEFyZ3Vt
ZW50RXJyb3IgPT4gZQorICBwdXRzICJDb3VsZCBub3QgcGFyc2UgaW5wdXQgZmlsZTogI3tlLm1l
c3NhZ2V9IgorICBleGl0KC0xKQorZW5kCisKK2NsYXNzIFNldHRpbmcKKyAgYXR0cl9hY2Nlc3Nv
ciA6bmFtZQorICBhdHRyX2FjY2Vzc29yIDp0eXBlCisgIGF0dHJfYWNjZXNzb3IgOmluaXRpYWwK
KyAgYXR0cl9hY2Nlc3NvciA6Y29uZGl0aW9uYWwKKyAgYXR0cl9hY2Nlc3NvciA6b25DaGFuZ2UK
KyAgYXR0cl9hY2Nlc3NvciA6Z2V0dGVyCisgIAorICBkZWYgaW5pdGlhbGl6ZShuYW1lLCBvcHRz
KQorICAgIEBuYW1lID0gbmFtZQorICAgIEB0eXBlID0gb3B0c1sidHlwZSJdIHx8ICJib29sIgor
ICAgIEBpbml0aWFsID0gb3B0c1snaW5pdGlhbCddCisgICAgQGNvbmRpdGlvbmFsID0gb3B0c1sn
Y29uZGl0aW9uYWwnXQorICAgIEBvbkNoYW5nZSA9IG9wdHNbJ29uQ2hhbmdlJ10KKyAgICBAZ2V0
dGVyID0gb3B0c1snZ2V0dGVyJ10KKyAgZW5kCisKKyAgZGVmIHZhbHVlVHlwZT8oKQorICAgIHJl
dHVybiBAdHlwZSAhPSAnU3RyaW5nJyAmJiBAdHlwZSAhPSAnVVJMJworICBlbmQKKworICBkZWYg
aWRsVHlwZSgpCisgICAgIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIG1vcmUgdHlwZXMgaW5jbHVk
aW5nIGVudW1lcmF0ZSB0eXBlcy4KKyAgICBpZiBAdHlwZSA9PSAnaW50JworICAgICAgcmV0dXJu
ICdsb25nJworICAgIGVsc2lmIEB0eXBlID09ICd1bnNpZ25lZCcKKyAgICAgIHJldHVybiAndW5z
aWduZWQgbG9uZycKKyAgICBlbHNpZiBAdHlwZSA9PSAnZG91YmxlJworICAgICAgcmV0dXJuICdk
b3VibGUnCisgICAgZWxzaWYgQHR5cGUgPT0gJ2Zsb2F0JworICAgICAgcmV0dXJuICdmbG9hdCcK
KyAgICBlbHNpZiBAdHlwZSA9PSAnU3RyaW5nJworICAgICAgcmV0dXJuICdET01TdHJpbmcnCisg
ICAgZWxzaWYgQHR5cGUgPT0gJ2Jvb2wnCisgICAgICByZXR1cm4gJ2Jvb2xlYW4nCisgICAgZWxz
ZQorICAgICAgcmV0dXJuIG5pbAorICAgIGVuZAorICBlbmQKKworICBkZWYgcGFyYW1ldGVyVHlw
ZSgpCisgICAgaWYgdmFsdWVUeXBlPworICAgICAgcmV0dXJuIEB0eXBlCisgICAgZWxzZQorICAg
ICAgcmV0dXJuICJjb25zdCAje0B0eXBlfSYiCisgICAgZW5kCisgIGVuZAorCisgIGRlZiBoYXND
b21wbGV4U2V0dGVyPygpCisgICAgcmV0dXJuIEBvbkNoYW5nZSAhPSBuaWwKKyAgZW5kCisKKyAg
ZGVmIHNldHRlckZ1bmN0aW9uTmFtZSgpCisgICAgaWYgQG5hbWUuc3RhcnRfd2l0aD8oJ2Nzcycs
ICd4c3MnLCAnZnRwJywgJ2RvbScsICdkbnMnKQorICAgICAgcmV0dXJuICdzZXQnICsgQG5hbWVb
MC4uMl0udXBjYXNlICsgQG5hbWVbMy4uQG5hbWUubGVuZ3RoXQorICAgIGVsc2UKKyAgICAgIHJl
dHVybiAnc2V0JyArIEBuYW1lWzBdLnVwY2FzZSArIEBuYW1lWzEuLkBuYW1lLmxlbmd0aF0KKyAg
ICBlbmQKKyAgZW5kCisKKyAgZGVmIGdldHRlckZ1bmN0aW9uTmFtZSgpCisgICAgcmV0dXJuIEBn
ZXR0ZXIgfHwgQG5hbWUKKyAgZW5kCitlbmQKKworY2xhc3MgQ29uZGl0aW9uYWwKKyAgYXR0cl9h
Y2Nlc3NvciA6Y29uZGl0aW9uCisgIGF0dHJfYWNjZXNzb3IgOnNldHRpbmdzCisgIGF0dHJfYWNj
ZXNzb3IgOmJvb2xTZXR0aW5ncworICBhdHRyX2FjY2Vzc29yIDpub25Cb29sU2V0dGluZ3MKKyAg
YXR0cl9hY2Nlc3NvciA6c2V0dGluZ3NXaXRoQ29tcGxleFNldHRlcnMKKworICBkZWYgaW5pdGlh
bGl6ZShjb25kaXRpb24sIHNldHRpbmdzKQorICAgIEBjb25kaXRpb24gPSBjb25kaXRpb24KKyAg
ICBAc2V0dGluZ3MgPSBzZXR0aW5ncworICAgIAorICAgIEBib29sU2V0dGluZ3MgPSBAc2V0dGlu
Z3Muc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcudHlwZSA9PSAiYm9vbCIgfQorICAgIEBub25C
b29sU2V0dGluZ3MgPSBAc2V0dGluZ3MucmVqZWN0IHsgfHNldHRpbmd8IHNldHRpbmcudHlwZSA9
PSAiYm9vbCIgfQorICAgIEBzZXR0aW5nc1dpdGhDb21wbGV4U2V0dGVycyA9IEBzZXR0aW5ncy5z
ZWxlY3QgeyB8c2V0dGluZ3wgc2V0dGluZy5oYXNDb21wbGV4U2V0dGVyPyB9CisgIGVuZAorZW5k
CisKK2NsYXNzIFNldHRpbmdzCisgIGF0dHJfYWNjZXNzb3IgOnNldHRpbmdzCisgIGF0dHJfYWNj
ZXNzb3IgOnVuY29uZGl0aW9uYWxTZXR0aW5nCisgIGF0dHJfYWNjZXNzb3IgOnVuY29uZGl0aW9u
YWxCb29sU2V0dGluZworICBhdHRyX2FjY2Vzc29yIDp1bmNvbmRpdGlvbmFsTm9uQm9vbFNldHRp
bmcKKyAgYXR0cl9hY2Nlc3NvciA6dW5jb25kaXRpb25hbFNldHRpbmdXaXRoQ29tcGxleFNldHRl
cnMKKyAgYXR0cl9hY2Nlc3NvciA6Y29uZGl0aW9uYWxzCisgIAorICBkZWYgaW5pdGlhbGl6ZSho
YXNoKQorICAgIEBzZXR0aW5ncyA9IFtdCisgICAgaGFzaC5lYWNoIGRvIHxuYW1lLCBvcHRpb25z
fAorICAgICAgQHNldHRpbmdzIDw8IFNldHRpbmcubmV3KG5hbWUsIG9wdGlvbnMpCisgICAgZW5k
CisgICAgQHNldHRpbmdzLnNvcnQhIHsgfHgsIHl8IHgubmFtZSA8PT4geS5uYW1lIH0KKyAgICAK
KyAgICBAdW5jb25kaXRpb25hbFNldHRpbmcgPSBAc2V0dGluZ3MucmVqZWN0IHsgfHNldHRpbmd8
IHNldHRpbmcuY29uZGl0aW9uYWwgfQorICAgIEB1bmNvbmRpdGlvbmFsQm9vbFNldHRpbmcgPSBA
dW5jb25kaXRpb25hbFNldHRpbmcuc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcudHlwZSA9PSAi
Ym9vbCIgfQorICAgIEB1bmNvbmRpdGlvbmFsTm9uQm9vbFNldHRpbmcgPSBAdW5jb25kaXRpb25h
bFNldHRpbmcucmVqZWN0IHsgfHNldHRpbmd8IHNldHRpbmcudHlwZSA9PSAiYm9vbCIgfQorICAg
IEB1bmNvbmRpdGlvbmFsU2V0dGluZ1dpdGhDb21wbGV4U2V0dGVycyA9IEB1bmNvbmRpdGlvbmFs
U2V0dGluZy5zZWxlY3QgeyB8c2V0dGluZ3wgc2V0dGluZy5oYXNDb21wbGV4U2V0dGVyPyB9CisK
KyAgICBAY29uZGl0aW9uYWxzID0gW10KKyAgICBjb25kaXRpb25hbHNNYXAgPSB7IH0KKyAgICBA
c2V0dGluZ3Muc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuY29uZGl0aW9uYWwgfS5lYWNoIGRv
IHxzZXR0aW5nfAorICAgICAgaWYgbm90IGNvbmRpdGlvbmFsc01hcFtzZXR0aW5nLmNvbmRpdGlv
bmFsXQorICAgICAgICBjb25kaXRpb25hbHNNYXBbc2V0dGluZy5jb25kaXRpb25hbF0gPSBbXQor
ICAgICAgZW5kCisKKyAgICAgIGNvbmRpdGlvbmFsc01hcFtzZXR0aW5nLmNvbmRpdGlvbmFsXSA8
PCBzZXR0aW5nCisgICAgZW5kCisgICAgY29uZGl0aW9uYWxzTWFwLmVhY2ggZG8gfGtleSwgdmFs
dWV8CisgICAgICBAY29uZGl0aW9uYWxzIDw8IENvbmRpdGlvbmFsLm5ldyhrZXksIHZhbHVlKQor
ICAgIGVuZAorICAgIEBjb25kaXRpb25hbHMuc29ydCEgeyB8eCwgeXwgeC5jb25kaXRpb24gPD0+
IHkuY29uZGl0aW9uIH0KKyAgZW5kCisKKyAgZGVmIHJlbmRlclRvRmlsZSh0ZW1wbGF0ZSwgZmls
ZSkKKyAgICB0ZW1wbGF0ZSA9IEZpbGUuam9pbihGaWxlLmRpcm5hbWUoX19GSUxFX18pLCB0ZW1w
bGF0ZSkKKworICAgIG91dHB1dCA9IEVSQi5uZXcoRmlsZS5yZWFkKHRlbXBsYXRlKSwgMCwgIi0i
KS5yZXN1bHQoYmluZGluZykKKyAgICBGaWxlLm9wZW4oZmlsZSwgIncrIikgZG8gfGZ8CisgICAg
ICBmLndyaXRlKG91dHB1dCkKKyAgICBlbmQKKyAgZW5kCitlbmQKKworc2V0dGluZ3MgPSBTZXR0
aW5ncy5uZXcocGFyc2VkU2V0dGluZ3MpCitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmguZXJiIiwgRmlsZS5qb2luKG9wdGlvbnNbOm91dHB1dERpcmVj
dG9yeV0sICJTZXR0aW5ncy5oIikpCitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdzVGVt
cGxhdGVzL1NldHRpbmdzLmNwcC5lcmIiLCBGaWxlLmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0
b3J5XSwgIlNldHRpbmdzLmNwcCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJTZXR0aW5nc1Rl
bXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbC5lcmIiLCBGaWxlLmpvaW4ob3B0
aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIikp
CitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGlu
Z3NHZW5lcmF0ZWQuaC5lcmIiLCBGaWxlLmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwg
IkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJT
ZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIiLCBGaWxl
LmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwIikpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dl
bmVyYXRlU2V0dGluZ3MucmIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTAs
MCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYgkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4IEBACisv
KgorICogVEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQu
CisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQuaCIKKworI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6
OkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQoUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdl
KQorPCUtIGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcu
aWRsVHlwZSAtJT4KKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUo
PCU9IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorPCUtIGVuZCAtJT4KKyAgICAsIG1fPCU9IEBz
ZXR0aW5nLm5hbWUgJT4ocGFnZS0+c2V0dGluZ3MoKS48JT0gQHNldHRpbmcuZ2V0dGVyRnVuY3Rp
b25OYW1lICU+KCkpCis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+CisjZW5kaWYKKzwl
LSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK3sKK30KKworSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZDo6fkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQoKQoreworfQorCit2b2lk
IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQorewor
PCUtIGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcuaWRs
VHlwZSAtJT4KKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUoPCU9
IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorPCUtIGVuZCAtJT4KKyAgICBtX3BhZ2UtPnNldHRp
bmdzKCkuPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAlPihtXzwlPSBAc2V0dGluZy5u
YW1lICU+KTsKKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNlbmRpZgorPCUtIGVu
ZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorfQorCis8JS0gZm9yIEBzZXR0aW5nIGlu
IEBzZXR0aW5ncyBkbyAtJT4KKzwlLSBpZiBAc2V0dGluZy5pZGxUeXBlIC0lPgordm9pZCBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+
KDwlPSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KQorewor
PCUtIGlmIEBzZXR0aW5nLmNvbmRpdGlvbmFsIC0lPgorI2lmIEVOQUJMRSg8JT0gQHNldHRpbmcu
Y29uZGl0aW9uYWwgJT4pCisgICAgbV9wYWdlLT5zZXR0aW5ncygpLjwlPSBAc2V0dGluZy5zZXR0
ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworI2VuZGlmCis8JS0gZWxzZSAtJT4KKyAg
ICBtX3BhZ2UtPnNldHRpbmdzKCkuPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAlPig8
JT0gQHNldHRpbmcubmFtZSAlPik7Cis8JS0gZW5kIC0lPgorfQorCis8JS0gZW5kIC0lPgorPCUt
IGVuZCAtJT4KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oLmVyYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaC5lcmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmguZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBUSElTIEZJTEUg
V0FTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsK
KworY2xhc3MgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCA6IHB1YmxpYyBSZWZDb3VudGVkPElu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkKFBhZ2UqKTsKKyAgICB2aXJ0dWFsIH5JbnRlcm5hbFNldHRpbmdz
R2VuZXJhdGVkKCk7CisKKyAgICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKworPCUt
IGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcuaWRsVHlw
ZSAtJT4KKyAgICB2b2lkIDwlPSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBz
ZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4gPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworPCUtIGVuZCAt
JT4KKzwlLSBlbmQgLSU+CisKK3ByaXZhdGU6CisgICAgUGFnZSogbV9wYWdlOworCis8JS0gZm9y
IEBzZXR0aW5nIGluIEBzZXR0aW5ncyBkbyAtJT4KKzwlLSBpZiBAc2V0dGluZy5pZGxUeXBlIC0l
PgorPCUtIGlmIEBzZXR0aW5nLmNvbmRpdGlvbmFsIC0lPgorI2lmIEVOQUJMRSg8JT0gQHNldHRp
bmcuY29uZGl0aW9uYWwgJT4pCis8JS0gZW5kIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+
IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+
CisjZW5kaWYKKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGlu
Z3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZC5pZGwuZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJi
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBUSElTIEZJTEUgV0FTIEFV
VE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAqCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Tm9JbnRlcmZhY2VPYmplY3QsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9F
WFBPUlQsCitdIGludGVyZmFjZSBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkIHsKKzwlLSBmb3Ig
QHNldHRpbmcgaW4gQHNldHRpbmdzIGRvIC0lPgorPCUtIGlmIEBzZXR0aW5nLmlkbFR5cGUgLSU+
CisgICAgdm9pZCA8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwlPSBAc2V0dGlu
Zy5pZGxUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KTsKKzwlLSBlbmQgLSU+Cis8JS0gZW5k
IC0lPgorfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMv
U2V0dGluZ3MuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1Nl
dHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogVEhJUyBGSUxFIFdBUyBBVVRPTUFU
SUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UmVmPFNldHRpbmdzPiBTZXR0aW5nczo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2V0dGluZ3MocGFnZSkpOworfQorCitTZXR0aW5nczo6U2V0dGluZ3Mo
UGFnZSogcGFnZSkKKyAgICA6IFNldHRpbmdzQmFzZShwYWdlKQorPCUtIGZvciBAc2V0dGluZyBp
biBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nIGRvIC0lPgorICAgICwgbV88JT0gQHNldHRp
bmcubmFtZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+Cis8JS0gZm9y
IEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0lPgorPCUtIGlmIEBjb25kaXRpb25h
bC5ub25Cb29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29uZGl0
aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwubm9u
Qm9vbFNldHRpbmdzIC0lPgorICAgICwgbV88JT0gQHNldHRpbmcubmFtZSAlPig8JT0gQHNldHRp
bmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBlbmQgLSU+Cis8JS0gZW5k
IC0lPgorPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5nIGRvIC0l
PgorICAgICwgbV88JT0gQHNldHRpbmcubmFtZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikK
KzwlLSBlbmQgLSU+Cis8JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0l
PgorPCUtIGlmIEBjb25kaXRpb25hbC5ib29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYg
RU5BQkxFKDwlPSBAY29uZGl0aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBp
biBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzIC0lPgorICAgICwgbV88JT0gQHNldHRpbmcubmFt
ZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBl
bmQgLSU+Cis8JS0gZW5kIC0lPgoreworfQorCitTZXR0aW5nczo6flNldHRpbmdzKCkKK3sKK30K
KworPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbFNldHRpbmdXaXRoQ29tcGxleFNl
dHRlcnMgZG8gLSU+Cit2b2lkIFNldHRpbmdzOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgJT4oPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4gPCU9IEBzZXR0aW5nLm5hbWUg
JT4pCit7CisgICAgaWYgKG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gPT0gPCU9IEBzZXR0aW5nLm5h
bWUgJT4pCisgICAgICAgIHJldHVybjsKKyAgICBtXzwlPSBAc2V0dGluZy5uYW1lICU+ID0gPCU9
IEBzZXR0aW5nLm5hbWUgJT47CisgICAgPCU9IEBzZXR0aW5nLm9uQ2hhbmdlICU+KCk7Cit9CisK
KzwlLSBlbmQgLSU+Cis8JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0l
PgorPCUtIGlmIEBjb25kaXRpb25hbC5zZXR0aW5nc1dpdGhDb21wbGV4U2V0dGVycy5sZW5ndGgg
IT0gMCAtJT4KKyNpZiBFTkFCTEUoPCU9IEBjb25kaXRpb25hbC5jb25kaXRpb24gJT4pCis8JS0g
Zm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb25hbC5zZXR0aW5nc1dpdGhDb21wbGV4U2V0dGVycyAt
JT4KK3ZvaWQgU2V0dGluZ3M6OjwlPSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUoKSAlPig8
JT0gQHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPikKK3sKKyAg
ICBpZiAobV88JT0gQHNldHRpbmcubmFtZSAlPiA9PSA8JT0gQHNldHRpbmcubmFtZSAlPikKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gPSA8JT0gQHNldHRpbmcu
bmFtZSAlPjsKKyAgICA8JT0gQHNldHRpbmcub25DaGFuZ2UgJT4oKTsKK30KKzwlLSBlbmQgLSU+
CisjZW5kaWYKKworPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+Cit9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmguZXJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5l
cmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9TZXR0aW5ncy5oLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk4IEBACisvKgor
ICogVEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisg
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFBhZ2U7CisKK2NsYXNzIFNldHRpbmdzIDogcHVibGljIFNldHRpbmdzQmFzZSwgcHVibGljIFJl
ZkNvdW50ZWQ8U2V0dGluZ3M+IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXR0aW5ncyk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2V0dGlu
Z3M+IGNyZWF0ZShQYWdlKik7CisgICAgflNldHRpbmdzKCk7CisKKzwlLSBmb3IgQHNldHRpbmcg
aW4gQHVuY29uZGl0aW9uYWxTZXR0aW5nIGRvIC0lPgorICAgIDwlPSBAc2V0dGluZy5wYXJhbWV0
ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5nZXR0ZXJGdW5jdGlvbk5hbWUgJT4oKSBjb25zdCB7IHJl
dHVybiBtXzwlPSBAc2V0dGluZy5uYW1lICU+OyB9IAorICAgIDwlLSBpZiBAc2V0dGluZy5oYXND
b21wbGV4U2V0dGVyPyAtJT4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIDwlPSBAc2V0dGluZy5z
ZXR0ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4pOworICAg
IDwlLSBlbHNlIC0lPgorICAgIHZvaWQgPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAl
Pig8JT0gQHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPiA8JT0gQHNldHRpbmcubmFtZSAlPikgeyBt
XzwlPSBAc2V0dGluZy5uYW1lICU+ID0gPCU9IEBzZXR0aW5nLm5hbWUgJT47IH0KKyAgICA8JS0g
ZW5kIC0lPgorPCUtIGVuZCAtJT4KKworPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlv
bmFscyBkbyAtJT4KKyNpZiBFTkFCTEUoPCU9IEBjb25kaXRpb25hbC5jb25kaXRpb24gJT4pCis8
JS0gZm9yIEBzZXR0aW5nIGluIEBjb25kaXRpb25hbC5zZXR0aW5ncyBkbyAtJT4KKyAgICA8JT0g
QHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPiA8JT0gQHNldHRpbmcuZ2V0dGVyRnVuY3Rpb25OYW1l
ICU+KCkgY29uc3QgeyByZXR1cm4gbV88JT0gQHNldHRpbmcubmFtZSAlPjsgfSAKKyAgICA8JS0g
aWYgQHNldHRpbmcuaGFzQ29tcGxleFNldHRlcj8gLSU+CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCA8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwlPSBAc2V0dGluZy5wYXJhbWV0
ZXJUeXBlICU+KTsKKyAgICA8JS0gZWxzZSAtJT4KKyAgICB2b2lkIDwlPSBAc2V0dGluZy5zZXR0
ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4gPCU9IEBzZXR0
aW5nLm5hbWUgJT4pIHsgbV88JT0gQHNldHRpbmcubmFtZSAlPiA9IDwlPSBAc2V0dGluZy5uYW1l
ICU+OyB9CisgICAgPCUtIGVuZCAtJT4KKzwlLSBlbmQgLSU+CisjZW5kaWYKKworPCUgZW5kIC0l
PgorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKKworPCUtIGZvciBA
c2V0dGluZyBpbiBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nIGRvIC0lPgorICAgIDwlPSBA
c2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0gZW5kIC0lPgorCis8
JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0lPgorPCUtIGlmIEBjb25k
aXRpb25hbC5ub25Cb29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBA
Y29uZGl0aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9u
YWwubm9uQm9vbFNldHRpbmdzIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBz
ZXR0aW5nLm5hbWUgJT47Cis8JS0gZW5kIC0lPgorI2VuZGlmCis8JS0gZW5kIC0lPgorPCUtIGVu
ZCAtJT4KKworPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5nIGRv
IC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gOiAx
OworPCUtIGVuZCAtJT4KKworPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlvbmFscyBk
byAtJT4KKzwlLSBpZiBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzLmxlbmd0aCAhPSAwIC0lPgor
I2lmIEVOQUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBmb3IgQHNldHRp
bmcgaW4gQGNvbmRpdGlvbmFsLmJvb2xTZXR0aW5ncyAtJT4KKyAgICA8JT0gQHNldHRpbmcudHlw
ZSAlPiBtXzwlPSBAc2V0dGluZy5uYW1lICU+IDogMTsKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwl
LSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIzODE2KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDkwOCw4ICsxMDkwOCw2IEBACiAJCTdDMzlDMzZFMUREQkEzRTAwMEZF
RkIyOSAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQYXRoU2VnTGlzdFZh
bHVlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFZh
bHVlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzM5QzM3MDFEREJBNDQwMDBG
RUZCMjkgLyogU1ZHUGF0aFNlZ0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHUGF0aFNlZ0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk3QzNBOEM1RTFGN0Q3MkI0MDBGNDZFODQgLyogR2VuZXJhdGVTZXR0aW5ncyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEdl
bmVyYXRlU2V0dGluZ3M7IHBhdGggPSBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3M7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDM0E4QzYwMUY3RDcyQjUwMEY0NkU4NCAvKiBHZW5lcmF0
ZVNldHRpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBuYW1lID0gR2VuZXJh
dGVTZXR0aW5ncy5weTsgcGF0aCA9IFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MzQTkxRTUxQzk2M0I4ODAwRDFBN0UzIC8qIENsaXBi
b2FyZEFjY2Vzc1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlw
Ym9hcmRBY2Nlc3NQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MzQjc5
NkYxOTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzNCNzk3MDE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1l
c3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNz
YWdlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExMjEsNiArMTEx
MTksNyBAQAogCQk3Q0QzNDQxMjFGMzEwOEUyMDAwRENENDkgLyogSlNNdXRhdGlvbkNhbGxiYWNr
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRDQ5NENBMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJB
dHRhY2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
ckF0dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQjFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55YW1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFNldHRpbmdzLnlhbWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdDREU4RUJDMUYxOTNCQzUwMDE2OEZFNyAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0UxOTE0NzFGMkE5OEFGMDAyNzJG
NzggLyogRmV0Y2hSZXF1ZXN0SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGZXRjaFJlcXVlc3RJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTE5
MTQ5MUYyQTk4QjAwMDI3MkY3OCAvKiBGZXRjaFJlcXVlc3RJbml0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBGZXRjaFJlcXVlc3RJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE3NTMyLDkgKzE3NTMxLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJRjQ4Mzg5NzkxRTFERDIzQTAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5ICov
LAotCQkJCTdDM0E4QzVFMUY3RDcyQjQwMEY0NkU4NCAvKiBHZW5lcmF0ZVNldHRpbmdzICovLAog
CQkJCTM3MTdEN0U1MTdFQ0MzQTYwMDNDMjc2RCAvKiBleHRyYWN0LWxvY2FsaXphYmxlLXN0cmlu
Z3MucGwgKi8sCi0JCQkJN0MzQThDNjAxRjdENzJCNTAwRjQ2RTg0IC8qIEdlbmVyYXRlU2V0dGlu
Z3MucHkgKi8sCiAJCQkJMzdENDU2RkIxQTlBNTBCNjAwMzMzMEExIC8qIExvY2FsaXphYmxlU3Ry
aW5ncy5wbSAqLywKIAkJCSk7CiAJCQluYW1lID0gU2NyaXB0czsKQEAgLTE5NTcyLDYgKzE5NTY5
LDcgQEAKIAkJCQk5NzREMkRBMjE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuY3Bw
ICovLAogCQkJCTk3NEQyREEzMTQ2QTUzNUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5oICov
LAogCQkJCUJDNTlERUY4MTY5REVEQzMwMDE2QUMzNCAvKiBTZXR0aW5ncy5pbiAqLywKKwkJCQk3
Q0RFNzM5NjFGOUJENTk1MDAzOTAzMTIgLyogU2V0dGluZ3MueWFtbCAqLywKIAkJCQk3Q0M2NjA5
QjFGOTMwNTc5MDBENTAwRTkgLyogU2V0dGluZ3NCYXNlLmNwcCAqLywKIAkJCQk3Q0M2NjA5OTFG
OTMwNTc4MDBENTAwRTkgLyogU2V0dGluZ3NCYXNlLmggKi8sCiAJCQkJN0M2RUZFRUExRjk0NkEy
RTAwRkZBRDQxIC8qIFNldHRpbmdzRGVmYXVsdFZhbHVlcy5oICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmluCShub25leGlzdGVudCkKQEAgLTEsMzYzICswLDAgQEAKLSMgRklYTUU6IEFkZCBz
dXBwb3J0IGZvciBnbG9iYWwgc2V0dGluZ3MuCi0jIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY3Vz
dG9tIGdldHRlcnMvc2V0dGVycy4KLQotZGVmYXVsdFRleHRFbmNvZGluZ05hbWUgdHlwZT1TdHJp
bmcKLWZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCB0eXBlPVN0cmluZwotbG9jYWxTdG9yYWdlRGF0
YWJhc2VQYXRoIHR5cGU9U3RyaW5nCi1lZGl0YWJsZUxpbmtCZWhhdmlvciB0eXBlPUVkaXRhYmxl
TGlua0JlaGF2aW9yLCBpbml0aWFsPUVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgotdGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciB0eXBlPVRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3IsIGluaXRpYWw9VGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNh
bGx5SW5jbHVkZWQKLXBkZkltYWdlQ2FjaGluZ1BvbGljeSB0eXBlPVBERkltYWdlQ2FjaGluZ1Bv
bGljeSwgaW5pdGlhbCA9IFBERkltYWdlQ2FjaGluZ0RlZmF1bHQKLXBhc3N3b3JkRWNob0R1cmF0
aW9uSW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFsPTEKLQotIyBTZXRzIHRoZSBtYWduaWZp
Y2F0aW9uIHZhbHVlIGZvciB2YWxpZGF0aW9uIG1lc3NhZ2UgdGltZXIuICBJZiB0aGUKLSMgbWFn
bmlmaWNhdGlvbiB2YWx1ZSBpcyBOLCBhIHZhbGlkYXRpb24gbWVzc2FnZSBkaXNhcHBlYXJzIGF1
dG9tYXRpY2FsbHkgYWZ0ZXIKLSMgPG1lc3NhZ2UgbGVuZ3RoPiAqIE4gLyAxMDAwIHNlY29uZHMu
ICBJZiBOIGlzIGVxdWFsIHRvIG9yIGxlc3MgdGhhbiAwLCBhCi0jIHZhbGlkYXRpb24gbWVzc2Fn
ZSBkb2Vzbid0IGRpc2FwcGVhcnMgYXV0b21hdGljYWx5LgotdmFsaWRhdGlvbk1lc3NhZ2VUaW1l
ck1hZ25pZmljYXRpb24gdHlwZT1pbnQsIGluaXRpYWw9NTAKLQotIyBOdW1iZXIgb2YgcGl4ZWxz
IGJlbG93IHdoaWNoIDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBzb2Z0d2FyZQotIyBldmVuIGlm
IGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkLgotIyBIYXJkd2FyZSBhY2NlbGVyYXRp
b24gaXMgdXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBpdCBjYW4gYXZvaWQgdGhlCi0j
IHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQVS4gQnV0IEdQVSBhY2NlbGVy
YXRpb24gY29tZXMgYXQKLSMgYSBwcmljZSAtIGV4dHJhIGJhY2stYnVmZmVyIGFuZCB0ZXh0dXJl
IGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCi0jIHdpZGVseSB1c2VkIGZvciBzdHlsaXpl
ZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJlIGF0IHRoYXQKLSMgc2NhbGUg
aXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWluIHNpemUgaXQgaXMgYmV0dGVy
IHRvCi0jIGRyYXcgY2FudmFzIGluIHNvZnR3YXJlLgotbWluaW11bUFjY2VsZXJhdGVkMmRDYW52
YXNTaXplIHR5cGU9aW50LCBpbml0aWFsPTI1NyoyNTYKLQotbWF4aW11bUFjY2VsZXJhdGVkMmRD
YW52YXNTaXplIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9NTEyMCoyODgwCi0KLWxheW91dEZhbGxi
YWNrV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9OTgwCi1kZXZpY2VXaWR0aCB0eXBlPWludCwgaW5p
dGlhbD0wCi1kZXZpY2VIZWlnaHQgdHlwZT1pbnQsIGluaXRpYWw9MAotCi0jIEFsbG93IGNsaWVu
dHMgY29uY2VybmVkIHdpdGggbWVtb3J5IGNvbnN1bXB0aW9uIHRvIHNldCBhIHF1b3RhIG9uIHNl
c3Npb24gc3RvcmFnZQotIyBzaW5jZSB0aGUgbWVtb3J5IHVzZWQgd29uJ3QgYmUgcmVsZWFzZWQg
dW50aWwgdGhlIFBhZ2UgaXMgZGVzdHJveWVkLgotc2Vzc2lvblN0b3JhZ2VRdW90YSB0eXBlPXVu
c2lnbmVkLCBpbml0aWFsPVN0b3JhZ2VNYXA6Om5vUXVvdGEKLQotbWluaW11bUZvbnRTaXplIHR5
cGU9aW50LCBpbml0aWFsPTAsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1l
cwotbWluaW11bUxvZ2ljYWxGb250U2l6ZSB0eXBlPWludCwgaW5pdGlhbD0wLCBvbkNoYW5nZT1z
ZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLWRlZmF1bHRGb250U2l6ZSB0eXBlPWludCwg
aW5pdGlhbD0xNiwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1kZWZh
dWx0Rml4ZWRGb250U2l6ZSB0eXBlPWludCwgaW5pdGlhbD0wLCBvbkNoYW5nZT1zZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMKLQotZWRpdGluZ0JlaGF2aW9yVHlwZSB0eXBlPUVkaXRpbmdC
ZWhhdmlvclR5cGUsIGluaXRpYWw9ZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKLW1h
eGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoIHR5cGU9dW5zaWduZWQsIGluaXRpYWw9ZGVmYXVs
dE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoCi0KLSMgVGhpcyBzZXR0aW5nIG9ubHkgYWZm
ZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkg
c2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5nIGlzIHRydWUuCi0jIEFsbCBvdGhlciBw
ZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4K
LWxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nIGluaXRpYWw9ZmFsc2UK
LQotY2FyZXRCcm93c2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotcHJldmVudEtleWJvYXJkRE9N
RXZlbnREaXNwYXRjaCBpbml0aWFsPWZhbHNlCi1sb2NhbFN0b3JhZ2VFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLWFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIGluaXRpYWw9dHJ1ZQotYWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIGluaXRpYWw9dHJ1ZQotbmVlZHNTdG9yYWdlQWNjZXNz
RnJvbUZpbGVVUkxzUXVpcmsgaW5pdGlhbD10cnVlCi1qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NB
dXRvbWF0aWNhbGx5IGluaXRpYWw9ZmFsc2UKLWphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQg
aW5pdGlhbD1mYWxzZQotc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyBpbml0aWFsPWZhbHNlCi11c2Vz
RGFzaGJvYXJkQmFja3dhcmRDb21wYXRpYmlsaXR5TW9kZSBpbml0aWFsPWZhbHNlLCBjb25kaXRp
b25hbD1EQVNIQk9BUkRfU1VQUE9SVAotY2xpcGJvYXJkQWNjZXNzUG9saWN5IHR5cGU9Q2xpcGJv
YXJkQWNjZXNzUG9saWN5LCBpbml0aWFsPUNsaXBib2FyZEFjY2Vzc1BvbGljeTo6UmVxdWlyZXNV
c2VyR2VzdHVyZQotCi10ZXh0QXJlYXNBcmVSZXNpemFibGUgaW5pdGlhbD1mYWxzZSwgb25DaGFu
Z2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1hdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZCBpbml0aWFsPXRydWUsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1l
cwotdXNlclN0eWxlU2hlZXRMb2NhdGlvbiB0eXBlPVVSTCwgb25DaGFuZ2U9dXNlclN0eWxlU2hl
ZXRMb2NhdGlvbkNoYW5nZWQKLWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIGluaXRpYWw9
dHJ1ZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1hY2NlbGVyYXRl
ZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZCBpbml0aWFsPXRydWUsIG9uQ2hhbmdlPXNldE5l
ZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotc2hvd0RlYnVnQm9yZGVycyBpbml0aWFsPWZhbHNl
LCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLXNob3dSZXBhaW50Q291
bnRlciBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFt
ZXMKLXZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIHR5cGU9RGVidWdPdmVybGF5UmVnaW9ucywg
aW5pdGlhbD0wCi1zaG93VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IgaW5pdGlhbD1mYWxzZQotcmVz
b3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXJlc291cmNl
VXNhZ2VPdmVybGF5VmlzaWJsZUNoYW5nZWQsIGNvbmRpdGlvbj1SRVNPVVJDRV9VU0FHRQotCi0j
IFRoaXMgaXMgYSBxdWlyayB3ZSBhcmUgcHJvLWFjdGl2ZWx5IGFwcGx5aW5nIHRvIG9sZCBhcHBs
aWNhdGlvbnMuIEl0IGNoYW5nZXMga2V5Ym9hcmQgZXZlbnQgZGlzcGF0Y2hpbmcsCi0jIG1ha2lu
ZyBrZXlJZGVudGlmaWVyIGF2YWlsYWJsZSBvbiBrZXlwcmVzcyBldmVudHMsIG1ha2luZyBjaGFy
Q29kZSBhdmFpbGFibGUgb24ga2V5ZG93bi9rZXl1cCBldmVudHMsCi0jIGFuZCBnZXR0aW5nIGtl
eXByZXNzIGRpc3BhdGNoZWQgaW4gbW9yZSBjYXNlcy4KLW5lZWRzS2V5Ym9hcmRFdmVudERpc2Ft
YmlndWF0aW9uUXVpcmtzIGluaXRpYWw9ZmFsc2UKLQotdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0
eWxlc2hlZXQgaW5pdGlhbD1mYWxzZQotc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdCBpbml0
aWFsPXRydWUKLXBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyBpbml0aWFsPWZhbHNlCi1zaG93c1VS
THNJblRvb2xUaXBzIGluaXRpYWw9ZmFsc2UKLXNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0
IGluaXRpYWw9ZmFsc2UKLWZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MgaW5pdGlhbD1mYWxzZQot
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1zY3JpcHRNYXJrdXBFbmFibGVk
IGluaXRpYWw9dHJ1ZQotbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgaW5pdGlhbD1mYWxzZQotZG9t
VGltZXJzVGhyb3R0bGluZ0VuYWJsZWQgaW5pdGlhbD10cnVlCi13ZWJBcmNoaXZlRGVidWdNb2Rl
RW5hYmxlZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1XRUJfQVJDSElWRQotbG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1vZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQotZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJr
c01vZGUgaW5pdGlhbD10cnVlCi11c2VzRW5jb2RpbmdEZXRlY3RvciBpbml0aWFsPWZhbHNlCi1h
bGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyBpbml0aWFsPWZhbHNlCi1jYW52YXNVc2VzQWNjZWxl
cmF0ZWREcmF3aW5nIGluaXRpYWw9ZmFsc2UKLWFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgaW5p
dGlhbD1mYWxzZQotZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1hY2Nl
bGVyYXRlZEZpbHRlcnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKLXVzZUxlZ2FjeVRleHRBbGlnblBv
c2l0aW9uZWRFbGVtZW50QmVoYXZpb3IgaW5pdGlhbD1mYWxzZQotamF2YVNjcmlwdFJ1bnRpbWVG
bGFncyB0eXBlPUpTQzo6UnVudGltZUZsYWdzCi0KLSMgRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxs
eSBiZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFzIGl0IG1ha2VzIHBsYXRmb3JtcyB0aGF0IGRvbid0
IHN1cHBvcnQgdGhlIGZlYXR1cmUgZG93bmxvYWQgZmlsZXMKLSMgdGhleSBjYW4ndCB1c2UgYnku
IExlYXZpbmcgZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZpb3Iu
Ci1kb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQgaW5pdGlhbD10cnVlCi0KLXhzc0F1ZGl0
b3JFbmFibGVkIGluaXRpYWw9ZmFsc2UKLWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4
ZWRQb3NpdGlvbkVuYWJsZWQKLWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9s
bEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotcnViYmVyQmFuZGluZ0ZvclN1YlNjcm9sbGFibGVSZWdp
b25zRW5hYmxlZCBpbml0aWFsPXRydWUsIGNvbmRpdGlvbmFsPVJVQkJFUl9CQU5ESU5HCi0KLWV4
cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIGluaXRpYWw9ZmFsc2UKLXdlYkdMRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCi13ZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQgaW5pdGlhbD10cnVl
Ci1mb3JjZVNvZnR3YXJlV2ViR0xSZW5kZXJpbmcgaW5pdGlhbD1mYWxzZQotZm9yY2VXZWJHTFVz
ZXNMb3dQb3dlciBpbml0aWFsPWZhbHNlCi1hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCi1sb2FkRGVmZXJyaW5nRW5hYmxlZCBpbml0aWFsPXRydWUKLXdlYkF1ZGlvRW5h
YmxlZCBpbml0aWFsPWZhbHNlCi1wYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQgaW5pdGlhbD1m
YWxzZQotZnVsbFNjcmVlbkVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9RlVMTFND
UkVFTl9BUEkKLWFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UK
LQotIyBUaGlzIGZlYXR1cmUgcmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgVmFsaWRhdGlv
bk1lc3NhZ2VDbGllbnQuCi1pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCBpbml0aWFs
PWZhbHNlCi0KLXVzZVByZUhUTUw1UGFyc2VyUXVpcmtzIGluaXRpYWw9ZmFsc2UKLWh5cGVybGlu
a0F1ZGl0aW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1jcm9zc09yaWdpbkNoZWNrSW5HZXRNYXRj
aGVkQ1NTUnVsZXNEaXNhYmxlZCBpbml0aWFsPWZhbHNlCi1mb3JjZUNvbXBvc2l0aW5nTW9kZSBp
bml0aWFsPWZhbHNlCi1zaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1l
bnQgaW5pdGlhbD1mYWxzZQotZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSBpbml0
aWFsPWZhbHNlCi1hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPWZhbHNlCi1h
bGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCBpbml0aWFsPWZhbHNlCi1yZXF1aXJlc1VzZXJH
ZXN0dXJlVG9Mb2FkVmlkZW8gaW5pdGlhbD1kZWZhdWx0UmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9h
ZFZpZGVvCi12aWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSBpbml0aWFsPWRlZmF1bHRW
aWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQotYXVkaW9QbGF5YmFja1JlcXVpcmVzVXNl
ckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0QXVkaW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUK
LW1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQotbWVk
aWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50IGluaXRpYWw9ZmFsc2UKLWFsbG93c0lu
bGluZU1lZGlhUGxheWJhY2sgaW5pdGlhbD1kZWZhdWx0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFj
awotYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiBpbml0aWFsPXRydWUK
LWlubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIGluaXRpYWw9
ZGVmYXVsdElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCi1h
bGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayBpbml0aWFsPWRlZmF1bHRBbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjawotbWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Va
b29tIGluaXRpYWw9ZGVmYXVsdE1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbQotaW52aXNp
YmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgaW5pdGlhbD1mYWxzZQotcGFzc3dvcmRFY2hvRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCi1zdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgaW5pdGlhbD1m
YWxzZQotaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMgdHlw
ZT1kb3VibGUsIGluaXRpYWw9ZGVmYXVsdEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25U
aW1lb3V0SW5TZWNvbmRzCi1iYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCBpbml0aWFsPXRy
dWUKLXNob3VsZERpc3BsYXlTdWJ0aXRsZXMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklE
RU9fVFJBQ0sKLXNob3VsZERpc3BsYXlDYXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25h
bD1WSURFT19UUkFDSwotc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMgaW5pdGlhbD1mYWxz
ZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKLXNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCBp
bml0aWFsPWZhbHNlCi1zY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXMgaW5pdGlhbD1kZWZhdWx0
U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzCi1zY3JvbGxBbmltYXRvckVuYWJsZWQgaW5pdGlh
bD10cnVlLCBjb25kaXRpb25hbD1TTU9PVEhfU0NST0xMSU5HCi1mb3JjZVVwZGF0ZVNjcm9sbGJh
cnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcgaW5pdGlhbD1mYWxzZQotbm90aWZp
Y2F0aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVlCi0KLSMgU29tZSBhcHBzIG5lZWRzIGlzTG9hZGlu
Z0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHN1YnJlc291cmNlIGxvYWRlcnMuCi1u
ZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyayBpbml0aWFsPWZhbHNlCi0KLXNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uIGluaXRpYWw9ZGVmYXVsdFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uCi1pbWFnZVN1YnNhbXBsaW5nRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRJbWFnZVN1YnNh
bXBsaW5nRW5hYmxlZAotd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciBpbml0
aWFsPWZhbHNlCi1yZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIGluaXRpYWw9dHJ1ZQotCi1j
b29raWVFbmFibGVkIGluaXRpYWw9dHJ1ZQotbWVkaWFFbmFibGVkIGluaXRpYWw9dHJ1ZQotRE9N
UGFzdGVBbGxvd2VkIGluaXRpYWw9ZmFsc2UKLQotIyBXaGVuIGVuYWJsZWQsIHdpbmRvdy5ibHVy
KCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKLSMgd2luZG93LmZvY3VzKCkgb25seSBjaGFu
Z2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRoYXQKLSMgY3JlYXRlZCB0
aGUgd2luZG93Lgotd2luZG93Rm9jdXNSZXN0cmljdGVkIGluaXRpYWw9dHJ1ZQotCi1kaWFnbm9z
dGljTG9nZ2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotZGVsZWdhdGVzUGFnZVNjYWxpbmcgaW5p
dGlhbD1mYWxzZQotcGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1zbmFw
c2hvdEFsbFBsdWdJbnMgaW5pdGlhbD1mYWxzZQotYXV0b3N0YXJ0T3JpZ2luUGx1Z0luU25hcHNo
b3R0aW5nRW5hYmxlZCBpbml0aWFsPXRydWUKLXByaW1hcnlQbHVnSW5TbmFwc2hvdERldGVjdGlv
bkVuYWJsZWQgaW5pdGlhbD10cnVlCi1tYXhpbXVtUGx1Z0luU25hcHNob3RBdHRlbXB0cyB0eXBl
PXVuc2lnbmVkLCBpbml0aWFsPTIwCi1mcmFtZUZsYXR0ZW5pbmcgdHlwZT1GcmFtZUZsYXR0ZW5p
bmcsIGluaXRpYWw9RnJhbWVGbGF0dGVuaW5nOjpEaXNhYmxlZAotYXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi13ZWJTZWN1cml0eUVuYWJsZWQgaW5pdGlhbD10cnVl
Ci1zcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1hdXRvc2Nyb2xsRm9y
RHJhZ0FuZERyb3BFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkCi0KLWxvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotYmFja0Zvcndh
cmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbCB0eXBlPWRvdWJsZSwgaW5pdGlhbD0xODAwCi0KLSMg
U29tZSBhcHBzIGNvdWxkIGhhdmUgYSBkZWZhdWx0IHZpZGVvIHBvc3RlciBpZiBpdCBpcyBub3Qg
c2V0LgotZGVmYXVsdFZpZGVvUG9zdGVyVVJMIHR5cGU9U3RyaW5nCi0KLXNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQKLXNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZAotCi11c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2
aW9yIGluaXRpYWw9ZmFsc2UKLWZpeGVkQmFja2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVu
dCBpbml0aWFsPWRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQK
LQotdGV4dEF1dG9zaXppbmdFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFRleHRBdXRvc2l6aW5nRW5h
YmxlZCgpLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMsIGNvbmRpdGlv
bmFsPVRFWFRfQVVUT1NJWklORwotdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUgdHlw
ZT1JbnRTaXplLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMsIGNvbmRp
dGlvbmFsPVRFWFRfQVVUT1NJWklORwotbWluaW11bVpvb21Gb250U2l6ZSB0eXBlPWZsb2F0LCBp
bml0aWFsPWRlZmF1bHRNaW5pbXVtWm9vbUZvbnRTaXplKCksIGNvbmRpdGlvbmFsPVRFWFRfQVVU
T1NJWklORwotCi1zdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZCBpbml0aWFsPWZh
bHNlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLXNpbXBsZUxpbmVM
YXlvdXRFbmFibGVkIGluaXRpYWw9dHJ1ZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUlu
QWxsRnJhbWVzCi1zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCBpbml0aWFsPWZh
bHNlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLQotc3VicGl4ZWxD
U1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLXVzZUdpYW50VGlsZXMg
aW5pdGlhbD1mYWxzZQotCi1tZWRpYVNvdXJjZUVuYWJsZWQgaW5pdGlhbD10cnVlLCBjb25kaXRp
b25hbD1NRURJQV9TT1VSQ0UKLQotIyBGSVhNRTogUmVuYW1lIHRvIGFsbG93TXVsdGlFbGVtZW50
SW1wbGljaXRGb3JtU3VibWlzc2lvbiBvbmNlIHdlIHVwc3RyZWFtIHRoZSBpT1MgY2hhbmdlcyB0
byBXZWJWaWV3Lm1tLgotYWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdFN1Ym1pc3Npb24gaW5pdGlh
bD1mYWxzZQotCi1hbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjayBpbml0aWFsPXRydWUsIGNv
bmRpdGlvbmFsPVdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVAotCi1zaG91bGRDb252ZXJ0UG9zaXRp
b25TdHlsZU9uQ29weSBpbml0aWFsPWZhbHNlCi0KLW1heFBhcnNlRHVyYXRpb24gdHlwZT1kb3Vi
bGUsIGluaXRpYWw9LTEKLXN0YW5kYWxvbmUgaW5pdGlhbD1mYWxzZQotdGVsZXBob25lTnVtYmVy
UGFyc2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
IGluaXRpYWw9ZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseQotYWx3YXlzVXNlQWNj
ZWxlcmF0ZWRPdmVyZmxvd1Njcm9sbCBpbml0aWFsPWZhbHNlCi1pbWFnZUNvbnRyb2xzRW5hYmxl
ZCBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1TRVJWSUNFX0NPTlRST0xTCi0KLWVuYWJsZUlu
aGVyaXRVUklRdWVyeUNvbXBvbmVudCBpbml0aWFsPWZhbHNlCi0KLWFnZ3Jlc3NpdmVUaWxlUmV0
ZW50aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlCi10ZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9u
RW5hYmxlZCBpbml0aWFsPXRydWUKLQotdXNlSW1hZ2VEb2N1bWVudEZvclN1YmZyYW1lUERGIGlu
aXRpYWw9ZmFsc2UKLWRhdGFEZXRlY3RvclR5cGVzIHR5cGU9RGF0YURldGVjdG9yVHlwZXMsIGlu
aXRpYWw9RGF0YURldGVjdG9yVHlwZU5vbmUsIGNvbmRpdGlvbmFsPURBVEFfREVURUNUSU9OCi0K
LSMgQWxsb3cgU291cmNlQnVmZmVycyB0byBzdG9yZSB1cCB0byAzMDRNQiBlYWNoLCBlbm91Z2gg
Zm9yIGFwcHJveGltYXRlbHkgZml2ZSBtaW51dGVzCi0jIG9mIDEwODBwIHZpZGVvIGFuZCBzdGVy
ZW8gYXVkaW8uCi1tYXhpbXVtU291cmNlQnVmZmVyU2l6ZSB0eXBlPWludCwgaW5pdGlhbD0zMTg3
NjcxMDQsIGNvbmRpdGlvbmFsPU1FRElBX1NPVVJDRQotCi1zZXJ2aWNlQ29udHJvbHNFbmFibGVk
IGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVNFUlZJQ0VfQ09OVFJPTFMKLQotYXBwbGVNYWls
UGFnaW5hdGlvblF1aXJrRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLWRlZmVycmVkQ1NTUGFyc2Vy
RW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLXJlcGFpbnRPdXRzaWRlTGF5b3V0RW5hYmxlZCBpbml0
aWFsPWZhbHNlCi0KLWh0dHBFcXVpdkVuYWJsZWQgaW5pdGlhbD10cnVlCi0KLSMgU29tZSBwb3J0
cyAoZS5nLiBpT1MpIG1pZ2h0IGNob29zZSB0byBkaXNwbGF5IGF0dGFjaG1lbnRzIGlubGluZSwg
cmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSByZXNwb25zZSBpbmNsdWRlcyB0aGUKLSMgSFRUUCBo
ZWFkZXIgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQiLiBUaGlzIHNldHRpbmcgZW5h
YmxlcyBhIHNhbmRib3ggYXJvdW5kIHRoZXNlIGF0dGFjaG1lbnRzLiBUaGUgc2FuZGJveAotIyBl
bmZvcmNlcyBhbGwgZnJhbWUgc2FuZGJveCBmbGFncyAoc2VlIGVudW0gU2FuZGJveEZsYWcgaW4g
U2VjdXJpdHlDb250ZXh0LmgpLCBhbmQgYWxzbyBkaXNhYmxlcyA8bWV0YSBodHRwLWVxdWl2Pgot
IyBwcm9jZXNzaW5nIGFuZCBzdWJmcmFtZSBsb2FkaW5nLgotY29udGVudERpc3Bvc2l0aW9uQXR0
YWNobWVudFNhbmRib3hFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeSB0eXBlPVVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3ksIGluaXRpYWw9VXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6Q29udGVudAotc3lzdGVtTGF5b3V0RGlyZWN0aW9u
IHR5cGU9VGV4dERpcmVjdGlvbiwgaW5pdGlhbD1MVFIKLQotYWxsb3dDb250ZW50U2VjdXJpdHlQ
b2xpY3lTb3VyY2VTdGFyVG9NYXRjaEFueVByb3RvY29sIGluaXRpYWw9ZmFsc2UKLQotc2VsZWN0
aW9uUGFpbnRpbmdXaXRob3V0U2VsZWN0aW9uR2Fwc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1z
aG91bGRDb252ZXJ0SW52YWxpZFVSTHNUb0JsYW5rIGluaXRpYWw9dHJ1ZQotCi1zcHJpbmdUaW1p
bmdGdW5jdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi10cmVhdElQQWRkcmVzc0FzRG9tYWlu
IGluaXRpYWw9ZmFsc2UKLQotbWVkaWFQcmVsb2FkaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0K
LSMgUnVudGltZS1lbmFibGVkIGZlYXR1cmVzCi12aXN1YWxWaWV3cG9ydEVuYWJsZWQgaW5pdGlh
bD1mYWxzZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi0KLWlucHV0
RXZlbnRzRW5hYmxlZCBpbml0aWFsPXRydWUKLQotcXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRF
bmFibGVkIGluaXRpYWw9ZGVmYXVsdFF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZAot
eW91VHViZUZsYXNoUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFlvdVR1
YmVGbGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZAotCi1mb3JjZWRDb2xvcnNBcmVJbnZlcnRl
ZEFjY2Vzc2liaWxpdHlWYWx1ZSB0eXBlPUZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZSwgaW5pdGlh
bD1kZWZhdWx0Rm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUKLWZvcmNl
ZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUgdHlwZT1Gb3JjZWRBY2Nlc3Np
YmlsaXR5VmFsdWUsIGluaXRpYWw9ZGVmYXVsdEZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nl
c3NpYmlsaXR5VmFsdWUKLWZvcmNlZFByZWZlcnNSZWR1Y2VkTW90aW9uQWNjZXNzaWJpbGl0eVZh
bHVlIHR5cGU9Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLCBpbml0aWFsPWRlZmF1bHRGb3JjZWRQ
cmVmZXJzUmVkdWNlZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZQotCi1sYXJnZUltYWdlQXN5bmNE
ZWNvZGluZ0VuYWJsZWQgaW5pdGlhbD10cnVlCi1hbmltYXRlZEltYWdlQXN5bmNEZWNvZGluZ0Vu
YWJsZWQgaW5pdGlhbD10cnVlCi13ZWJraXRJbWFnZVJlYWR5RXZlbnRFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLQotc2hvdWxkU3VwcHJlc3NUZXh0SW5wdXRGcm9tRWRpdGluZ0R1cmluZ1Byb3Zpc2lv
bmFsTmF2aWdhdGlvbiBpbml0aWFsPWZhbHNlCi0KLWxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250
cm9sVUlFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotc3VicmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVk
IGluaXRpYWw9dHJ1ZQotCi1saW5rUHJlY29ubmVjdEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1i
ZWFjb25BUElFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotZ2VvbG9jYXRpb25GbG9vckxldmVsRW5h
YmxlZCBpbml0aWFsPXRydWUKLQotY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0aWFsPWZh
bHNlCi0KLXZpZXdwb3J0Rml0RW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLWFsbG93TWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRBc0ZhbGxiYWNrIGluaXRpYWw9ZmFsc2UK
LQotc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi10aW1lV2l0aG91dE1v
dXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyB0eXBlPVNlY29uZHMsIGluaXRpYWw9M19z
IAotCi1mb250RmFsbGJhY2tQcmVmZXJzUGljdG9ncmFwaHMgaW5pdGlhbD1mYWxzZSwgb25DaGFu
Z2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi0KLWZvbnRMb2FkVGltaW5nT3ZlcnJp
ZGUgdHlwZT1Gb250TG9hZFRpbWluZ092ZXJyaWRlLCBpbml0aWFsPUZvbnRMb2FkVGltaW5nT3Zl
cnJpZGU6Ok5vbmUKLXNob3VsZElnbm9yZUZvbnRMb2FkQ29tcGxldGlvbnMgaW5pdGlhbD1mYWxz
ZQotCi1wYXltZW50UmVxdWVzdEVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9UEFZ
TUVOVF9SRVFVRVNUCi1hcHBsZVBheUVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9
QVBQTEVfUEFZCi1hcHBsZVBheUNhcGFiaWxpdHlEaXNjbG9zdXJlQWxsb3dlZCBpbml0aWFsPXRy
dWUsIGNvbmRpdGlvbmFsPUFQUExFX1BBWQotCi1qYXZhRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBn
ZXR0ZXI9aXNKYXZhRW5hYmxlZAotamF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzIGluaXRpYWw9dHJ1
ZSwgZ2V0dGVyPWlzSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzCi0KLSMgVW5saWtlIHRoZSBpbWFn
ZXNFbmFibGVkIHNldHRpbmcsIHRoaXMgb25seSBzdXBwcmVzc2VzIHRoZSBuZXR3b3JrIGxvYWQg
b2YKLSMgdGhlIGltYWdlIFVSTC4gQSBjYWNoZWQgaW1hZ2Ugd2lsbCBzdGlsbCBiZSByZW5kZXJl
ZCBpZiByZXF1ZXN0ZWQuCi1sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgaW5pdGlhbD1mYWxzZSwg
b25DaGFuZ2U9aW1hZ2VzRW5hYmxlZENoYW5nZWQKLWltYWdlc0VuYWJsZWQgaW5pdGlhbD10cnVl
LCBnZXR0ZXI9YXJlSW1hZ2VzRW5hYmxlZCwgb25DaGFuZ2U9aW1hZ2VzRW5hYmxlZENoYW5nZWQK
LXNjcmlwdEVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgZ2V0dGVyPWlzU2NyaXB0RW5hYmxlZCwgb25D
aGFuZ2U9c2NyaXB0RW5hYmxlZENoYW5nZWQKLXBsdWdpbnNFbmFibGVkIGluaXRpYWw9ZmFsc2Us
IGdldHRlcj1hcmVQbHVnaW5zRW5hYmxlZCwgb25DaGFuZ2U9cGx1Z2luc0VuYWJsZWRDaGFuZ2Vk
Ci0KLXVzZXNQYWdlQ2FjaGUgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9dXNlc1BhZ2VDYWNoZUNo
YW5nZWQKLQotZG5zUHJlZmV0Y2hpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPWRu
c1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQKLQotYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9u
ZFBhZ2UgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9YmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9u
ZFBhZ2VDaGFuZ2VkCi0KLXNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgaW5pdGlh
bD1mYWxzZSwgb25DaGFuZ2U9c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZENoYW5n
ZWQKLQotaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwg
b25DaGFuZ2U9aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZAotaGlkZGVu
UGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMgaW5pdGlhbD1mYWxzZSwgb25DaGFu
Z2U9aGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ1N0YXRlQ2hhbmdlZAotaGlkZGVuUGFnZUNT
U0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPWhpZGRl
blBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZENoYW5nZWQKLQotc3RvcmFnZUJsb2Nr
aW5nUG9saWN5IHR5cGU9U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgaW5p
dGlhbD1TZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlLCBvbkNoYW5nZT1zdG9yYWdlQmxv
Y2tpbmdQb2xpY3lDaGFuZ2VkCi0KLSMgT25seSBzZXQgYnkgTGF5b3V0IFRlc3RzLgotbWVkaWFU
eXBlT3ZlcnJpZGUgdHlwZT1TdHJpbmcsIGluaXRpYWw9InNjcmVlbiIsIG9uQ2hhbmdlPW1lZGlh
VHlwZU92ZXJyaWRlQ2hhbmdlZAotCi0KLWZvbnRSZW5kZXJpbmdNb2RlIHR5cGU9Rm9udFJlbmRl
cmluZ01vZGUsIGluaXRpYWw9Rm9udFJlbmRlcmluZ01vZGU6Ok5vcm1hbAotCi1wcmVmZXJNSU1F
VHlwZUZvckltYWdlcyBpbml0aWFsPWZhbHNlCi0KLWZvcmNlUGVuZGluZ1dlYkdMUG9saWN5IGlu
aXRpYWw9ZmFsc2UsIGdldHRlcj1pc0ZvcmNlUGVuZGluZ1dlYkdMUG9saWN5Ci0KLW1lZGlhS2V5
c1N0b3JhZ2VEaXJlY3RvcnkgdHlwZT1TdHJpbmcsIGNvbmRpdGlvbmFsPUxFR0FDWV9FTkNSWVBU
RURfTUVESUEKLW1lZGlhRGV2aWNlSWRlbnRpZmllclN0b3JhZ2VEaXJlY3RvcnkgdHlwZT1TdHJp
bmcsIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQotCi0jIEZJWE1FOiBUaGlzIHF1aXJrIGlzIG5l
ZWRlZCBiZWNhdXNlIG9mIFJhZGFyIDQ2NzQ1MzcgYW5kIDUyMTEyNzEuIFdlIG5lZWQgdG8gcGhh
c2UgaXQgb3V0IG9uY2UgQWRvYmUKLSMgY2FuIGZpeCB0aGUgYnVnIGZyb20gdGhlaXIgZW5kLgot
bmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcmsgaW5pdGlhbD1mYWxzZSwgZ2V0dGVyPW5lZWRz
QWNyb2JhdEZyYW1lUmVsb2FkaW5nUXVpcmsKLQotdG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQg
aW5pdGlhbD1mYWxzZSwgZ2V0dGVyPWlzVG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQsIGNvbmRp
dGlvbmFsPVRPVUNIX0VWRU5UUwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55
YW1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw2OTMgQEAKKyMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBnbG9iYWwg
c2V0dGluZ3MuCisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgY3VzdG9tIGdldHRlcnMvc2V0dGVy
cy4KKworZGVmYXVsdFRleHRFbmNvZGluZ05hbWU6CisgICAgdHlwZTogU3RyaW5nCitmdHBEaXJl
Y3RvcnlUZW1wbGF0ZVBhdGg6CisgICAgdHlwZTogU3RyaW5nCitsb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGg6CisgICAgdHlwZTogU3RyaW5nCitlZGl0YWJsZUxpbmtCZWhhdmlvcjoKKyAgICB0eXBl
OiBFZGl0YWJsZUxpbmtCZWhhdmlvcgorICAgIGluaXRpYWw6IEVkaXRhYmxlTGlua0RlZmF1bHRC
ZWhhdmlvcgordGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjoKKyAgICB0eXBl
OiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yCisgICAgaW5pdGlhbDogVGV4
dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5jbHVkZWQKK3BkZkltYWdlQ2FjaGluZ1Bv
bGljeToKKyAgICB0eXBlOiBQREZJbWFnZUNhY2hpbmdQb2xpY3kKKyAgICBpbml0aWFsOiBQREZJ
bWFnZUNhY2hpbmdEZWZhdWx0CitwYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kczoKKyAgICB0
eXBlOiBkb3VibGUKKyAgICBpbml0aWFsOiAxCisKKyMgU2V0cyB0aGUgbWFnbmlmaWNhdGlvbiB2
YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLiAgSWYgdGhlCisjIG1hZ25pZmljYXRp
b24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlzYXBwZWFycyBhdXRvbWF0aWNh
bGx5IGFmdGVyCisjIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8gMTAwMCBzZWNvbmRzLiAgSWYgTiBp
cyBlcXVhbCB0byBvciBsZXNzIHRoYW4gMCwgYQorIyB2YWxpZGF0aW9uIG1lc3NhZ2UgZG9lc24n
dCBkaXNhcHBlYXJzIGF1dG9tYXRpY2FseS4KK3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZp
Y2F0aW9uOgorICAgIHR5cGU6IGludAorICAgIGluaXRpYWw6IDUwCisKKyMgTnVtYmVyIG9mIHBp
eGVscyBiZWxvdyB3aGljaCAyRCBjYW52YXMgaXMgcmVuZGVyZWQgaW4gc29mdHdhcmUKKyMgZXZl
biBpZiBoYXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgZW5hYmxlZC4KKyMgSGFyZHdhcmUgYWNjZWxl
cmF0aW9uIGlzIHVzZWZ1bCBmb3IgbGFyZ2UgY2FudmFzZXMgd2hlcmUgaXQgY2FuIGF2b2lkIHRo
ZQorIyBwaXhlbCBiYW5kd2lkdGggYmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUgYWNj
ZWxlcmF0aW9uIGNvbWVzIGF0CisjIGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQgdGV4
dHVyZSBjb3B5LiBTbWFsbCBjYW52YXNlcyBhcmUgYWxzbworIyB3aWRlbHkgdXNlZCBmb3Igc3R5
bGl6ZWQgZm9udHMuIEFudGktYWxpYXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0CisjIHNj
YWxlIGlzIGdlbmVyYWxseSBzbG93ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBzaXplIGl0IGlzIGJl
dHRlciB0bworIyBkcmF3IGNhbnZhcyBpbiBzb2Z0d2FyZS4KK21pbmltdW1BY2NlbGVyYXRlZDJk
Q2FudmFzU2l6ZToKKyAgICB0eXBlOiBpbnQKKyAgICBpbml0aWFsOiAyNTcqMjU2CisKK21heGlt
dW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZToKKyAgICB0eXBlOiB1bnNpZ25lZAorICAgIGluaXRp
YWw6IDUxMjAqMjg4MAorCitsYXlvdXRGYWxsYmFja1dpZHRoOgorICAgIHR5cGU6IGludAorICAg
IGluaXRpYWw6IDk4MAorZGV2aWNlV2lkdGg6CisgICAgdHlwZTogaW50CisgICAgaW5pdGlhbDog
MAorZGV2aWNlSGVpZ2h0OgorICAgIHR5cGU6IGludAorICAgIGluaXRpYWw6IDAKKworIyBBbGxv
dyBjbGllbnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlvbiB0byBzZXQgYSBxdW90
YSBvbiBzZXNzaW9uIHN0b3JhZ2UKKyMgc2luY2UgdGhlIG1lbW9yeSB1c2VkIHdvbid0IGJlIHJl
bGVhc2VkIHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KK3Nlc3Npb25TdG9yYWdlUXVvdGE6
CisgICAgdHlwZTogdW5zaWduZWQKKyAgICBpbml0aWFsOiBTdG9yYWdlTWFwOjpub1F1b3RhCisK
K21pbmltdW1Gb250U2l6ZToKKyAgICB0eXBlOiBpbnQKKyAgICBpbml0aWFsOiAwCisgICAgb25D
aGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworbWluaW11bUxvZ2ljYWxGb250
U2l6ZToKKyAgICB0eXBlOiBpbnQKKyAgICBpbml0aWFsOiAwCisgICAgb25DaGFuZ2U6IHNldE5l
ZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworZGVmYXVsdEZvbnRTaXplOgorICAgIHR5cGU6IGlu
dAorICAgIGluaXRpYWw6IDE2CisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFs
bEZyYW1lcworZGVmYXVsdEZpeGVkRm9udFNpemU6CisgICAgdHlwZTogaW50CisgICAgaW5pdGlh
bDogMAorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKKworZWRp
dGluZ0JlaGF2aW9yVHlwZToKKyAgICB0eXBlOiBFZGl0aW5nQmVoYXZpb3JUeXBlCisgICAgaW5p
dGlhbDogZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRmb3JtKCkKK21heGltdW1IVE1MUGFyc2Vy
RE9NVHJlZURlcHRoOgorICAgIHR5cGU6IHVuc2lnbmVkCisgICAgaW5pdGlhbDogZGVmYXVsdE1h
eGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoCisKKyMgVGhpcyBzZXR0aW5nIG9ubHkgYWZmZWN0
cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0
dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5nIGlzIHRydWUuCisjIEFsbCBvdGhlciBwZXJt
dXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgc2V0dGluZy4KK2xv
YWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nOgorICAgIGluaXRpYWw6IGZh
bHNlCisKK2NhcmV0QnJvd3NpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCitwcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoOgorICAgIGluaXRpYWw6IGZhbHNlCitsb2NhbFN0b3Jh
Z2VFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCithbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMczoKKyAgICBpbml0aWFsOiB0cnVlCithbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6
CisgICAgaW5pdGlhbDogdHJ1ZQorbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVpcms6
CisgICAgaW5pdGlhbDogdHJ1ZQoramF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxs
eToKKyAgICBpbml0aWFsOiBmYWxzZQoramF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDoKKyAg
ICBpbml0aWFsOiBmYWxzZQorc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczoKKyAgICBpbml0aWFsOiBm
YWxzZQordXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0eU1vZGU6CisgICAgaW5pdGlh
bDogZmFsc2UKKyAgICBjb25kaXRpb25hbDogREFTSEJPQVJEX1NVUFBPUlQKK2NsaXBib2FyZEFj
Y2Vzc1BvbGljeToKKyAgICB0eXBlOiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3kKKyAgICBpbml0aWFs
OiBDbGlwYm9hcmRBY2Nlc3NQb2xpY3k6OlJlcXVpcmVzVXNlckdlc3R1cmUKKwordGV4dEFyZWFz
QXJlUmVzaXphYmxlOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IHNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcworYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQ6CisgICAg
aW5pdGlhbDogdHJ1ZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFt
ZXMKK3VzZXJTdHlsZVNoZWV0TG9jYXRpb246CisgICAgdHlwZTogVVJMCisgICAgb25DaGFuZ2U6
IHVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5
bGVJbkFsbEZyYW1lcworYWNjZWxlcmF0ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0VuYWJsZWQ6Cisg
ICAgaW5pdGlhbDogdHJ1ZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxG
cmFtZXMKK3Nob3dEZWJ1Z0JvcmRlcnM6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBvbkNoYW5n
ZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCitzaG93UmVwYWludENvdW50ZXI6Cisg
ICAgaW5pdGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxs
RnJhbWVzCit2aXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczoKKyAgICB0eXBlOiBEZWJ1Z092ZXJs
YXlSZWdpb25zCisgICAgaW5pdGlhbDogMAorc2hvd1RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yOgor
ICAgIGluaXRpYWw6IGZhbHNlCityZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6CisgICAgaW5p
dGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlQ2hh
bmdlZAorICAgIGNvbmRpdGlvbjogUkVTT1VSQ0VfVVNBR0UKKworIyBUaGlzIGlzIGEgcXVpcmsg
d2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBwbGljYXRpb25zLiBJdCBjaGFu
Z2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAorIyBtYWtpbmcga2V5SWRlbnRpZmllciBh
dmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hhckNvZGUgYXZhaWxhYmxlIG9u
IGtleWRvd24va2V5dXAgZXZlbnRzLAorIyBhbmQgZ2V0dGluZyBrZXlwcmVzcyBkaXNwYXRjaGVk
IGluIG1vcmUgY2FzZXMuCituZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrczoK
KyAgICBpbml0aWFsOiBmYWxzZQorCit0cmVhdHNBbnlUZXh0Q1NTTGlua0FzU3R5bGVzaGVldDoK
KyAgICBpbml0aWFsOiBmYWxzZQorc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdDoKKyAgICBp
bml0aWFsOiB0cnVlCitwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6CisgICAgaW5pdGlhbDogZmFs
c2UKK3Nob3dzVVJMc0luVG9vbFRpcHM6CisgICAgaW5pdGlhbDogZmFsc2UKK3Nob3dzVG9vbFRp
cE92ZXJUcnVuY2F0ZWRUZXh0OgorICAgIGluaXRpYWw6IGZhbHNlCitmb3JjZUZUUERpcmVjdG9y
eUxpc3RpbmdzOgorICAgIGluaXRpYWw6IGZhbHNlCitkZXZlbG9wZXJFeHRyYXNFbmFibGVkOgor
ICAgIGluaXRpYWw6IGZhbHNlCitzY3JpcHRNYXJrdXBFbmFibGVkOgorICAgIGluaXRpYWw6IHRy
dWUKK25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOgorICAgIGluaXRpYWw6IGZhbHNlCitkb21UaW1l
cnNUaHJvdHRsaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCit3ZWJBcmNoaXZlRGVidWdN
b2RlRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIGNvbmRpdGlvbmFsOiBXRUJfQVJD
SElWRQorbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNl
CitlbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZToKKyAgICBpbml0aWFsOiB0cnVlCit1
c2VzRW5jb2RpbmdEZXRlY3RvcjoKKyAgICBpbml0aWFsOiBmYWxzZQorYWxsb3dTY3JpcHRzVG9D
bG9zZVdpbmRvd3M6CisgICAgaW5pdGlhbDogZmFsc2UKK2NhbnZhc1VzZXNBY2NlbGVyYXRlZERy
YXdpbmc6CisgICAgaW5pdGlhbDogZmFsc2UKK2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6Cisg
ICAgaW5pdGlhbDogZmFsc2UKK2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6CisgICAgaW5pdGlh
bDogZmFsc2UKK2FjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UK
K3VzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3I6CisgICAgaW5pdGlh
bDogZmFsc2UKK2phdmFTY3JpcHRSdW50aW1lRmxhZ3M6CisgICAgdHlwZTogSlNDOjpSdW50aW1l
RmxhZ3MKKworIyBGSVhNRTogVGhpcyBzaG91bGQgcmVhbGx5IGJlIGRpc2FibGVkIGJ5IGRlZmF1
bHQgYXMgaXQgbWFrZXMgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGUgZmVhdHVyZSBk
b3dubG9hZCBmaWxlcworIyB0aGV5IGNhbid0IHVzZSBieS4gTGVhdmluZyBlbmFibGVkIGZvciBu
b3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBiZWhhdmlvci4KK2Rvd25sb2FkYWJsZUJpbmFyeUZv
bnRzRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisKK3hzc0F1ZGl0b3JFbmFibGVkOgorICAg
IGluaXRpYWw6IGZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVu
YWJsZWQ6CisgICAgaW5pdGlhbDogZGVmYXVsdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhl
ZFBvc2l0aW9uRW5hYmxlZAorYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xs
RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorcnViYmVyQmFuZGluZ0ZvclN1YlNjcm9sbGFi
bGVSZWdpb25zRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisgICAgY29uZGl0aW9uYWw6IFJV
QkJFUl9CQU5ESU5HCisKK2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCit3ZWJHTEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK3dlYkdMRXJy
b3JzVG9Db25zb2xlRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCitmb3JjZVNvZnR3YXJlV2Vi
R0xSZW5kZXJpbmc6CisgICAgaW5pdGlhbDogZmFsc2UKK2ZvcmNlV2ViR0xVc2VzTG93UG93ZXI6
CisgICAgaW5pdGlhbDogZmFsc2UKK2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCitsb2FkRGVmZXJyaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCit3
ZWJBdWRpb0VuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK3BhZ2luYXRlRHVyaW5nTGF5b3V0
RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorZnVsbFNjcmVlbkVuYWJsZWQ6CisgICAgaW5p
dGlhbDogZmFsc2UKKyAgICBjb25kaXRpb25hbDogRlVMTFNDUkVFTl9BUEkKK2FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKKyMgVGhpcyBmZWF0
dXJlIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50
LgoraW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UK
KwordXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6CisgICAgaW5pdGlhbDogZmFsc2UKK2h5cGVybGlu
a0F1ZGl0aW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorY3Jvc3NPcmlnaW5DaGVja0lu
R2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2ZvcmNlQ29t
cG9zaXRpbmdNb2RlOgorICAgIGluaXRpYWw6IGZhbHNlCitzaG91bGRJbmplY3RVc2VyU2NyaXB0
c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQ6CisgICAgaW5pdGlhbDogZmFsc2UKK2ZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWU6CisgICAgaW5pdGlhbDogZmFsc2UKK2FsbG93RGlzcGxh
eU9mSW5zZWN1cmVDb250ZW50OgorICAgIGluaXRpYWw6IGZhbHNlCithbGxvd1J1bm5pbmdPZklu
c2VjdXJlQ29udGVudDoKKyAgICBpbml0aWFsOiBmYWxzZQorcmVxdWlyZXNVc2VyR2VzdHVyZVRv
TG9hZFZpZGVvOgorICAgIGluaXRpYWw6IGRlZmF1bHRSZXF1aXJlc1VzZXJHZXN0dXJlVG9Mb2Fk
VmlkZW8KK3ZpZGVvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlOgorICAgIGluaXRpYWw6IGRl
ZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQorYXVkaW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmU6CisgICAgaW5pdGlhbDogZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJl
c1VzZXJHZXN0dXJlCittYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkOgorICAg
IGluaXRpYWw6IGZhbHNlCittZWRpYVVzZXJHZXN0dXJlSW5oZXJpdHNGcm9tRG9jdW1lbnQ6Cisg
ICAgaW5pdGlhbDogZmFsc2UKK2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s6CisgICAgaW5pdGlh
bDogZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sKK2FsbG93c0lubGluZU1lZGlhUGxh
eWJhY2tBZnRlckZ1bGxzY3JlZW46CisgICAgaW5pdGlhbDogdHJ1ZQoraW5saW5lTWVkaWFQbGF5
YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6CisgICAgaW5pdGlhbDogZGVmYXVsdElu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCithbGxvd3NQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjazoKKyAgICBpbml0aWFsOiBkZWZhdWx0QWxsb3dzUGlj
dHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sKK21lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9v
bToKKyAgICBpbml0aWFsOiBkZWZhdWx0TWVkaWFDb250cm9sc1NjYWxlV2l0aFBhZ2Vab29tCitp
bnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorcGFzc3dv
cmRFY2hvRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorc3VwcHJlc3Nlc0luY3JlbWVudGFs
UmVuZGVyaW5nOgorICAgIGluaXRpYWw6IGZhbHNlCitpbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHBy
ZXNzaW9uVGltZW91dEluU2Vjb25kczoKKyAgICB0eXBlOiBkb3VibGUKKyAgICBpbml0aWFsOiBk
ZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMKK2Jh
Y2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKK3Nob3VsZERp
c3BsYXlTdWJ0aXRsZXM6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBjb25kaXRpb25hbDogVklE
RU9fVFJBQ0sKK3Nob3VsZERpc3BsYXlDYXB0aW9uczoKKyAgICBpbml0aWFsOiBmYWxzZQorICAg
IGNvbmRpdGlvbmFsOiBWSURFT19UUkFDSworc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnM6
CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBjb25kaXRpb25hbDogVklERU9fVFJBQ0sKK3Njcm9s
bGluZ0Nvb3JkaW5hdG9yRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorc2Nyb2xsaW5nVHJl
ZUluY2x1ZGVzRnJhbWVzOgorICAgIGluaXRpYWw6IGRlZmF1bHRTY3JvbGxpbmdUcmVlSW5jbHVk
ZXNGcmFtZXMKK3Njcm9sbEFuaW1hdG9yRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisgICAg
Y29uZGl0aW9uYWw6IFNNT09USF9TQ1JPTExJTkcKK2ZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFp
blRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZzoKKyAgICBpbml0aWFsOiBmYWxzZQorbm90aWZp
Y2F0aW9uc0VuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCisjIFNvbWUgYXBwcyBuZWVkcyBp
c0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFjY291bnQgZm9yIGFjdGl2ZSBzdWJyZXNvdXJjZSBsb2Fk
ZXJzLgorbmVlZHNJc0xvYWRpbmdJbkFQSVNlbnNlUXVpcms6CisgICAgaW5pdGlhbDogZmFsc2UK
Kworc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb246CisgICAgaW5pdGlhbDogZGVmYXVsdFNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uCitpbWFnZVN1YnNhbXBsaW5nRW5hYmxlZDoKKyAg
ICBpbml0aWFsOiBkZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQKK3dhbnRzQmFsYW5jZWRT
ZXREZWZlcnNMb2FkaW5nQmVoYXZpb3I6CisgICAgaW5pdGlhbDogZmFsc2UKK3JlcXVlc3RBbmlt
YXRpb25GcmFtZUVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCitjb29raWVFbmFibGVkOgor
ICAgIGluaXRpYWw6IHRydWUKK21lZGlhRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCitET01Q
YXN0ZUFsbG93ZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworIyBXaGVuIGVuYWJsZWQsIHdpbmRv
dy5ibHVyKCkgZG9lcyBub3QgY2hhbmdlIGZvY3VzLCBhbmQKKyMgd2luZG93LmZvY3VzKCkgb25s
eSBjaGFuZ2VzIGZvY3VzIHdoZW4gaW52b2tlZCBmcm9tIHRoZSBjb250ZXh0IHRoYXQKKyMgY3Jl
YXRlZCB0aGUgd2luZG93Lgord2luZG93Rm9jdXNSZXN0cmljdGVkOgorICAgIGluaXRpYWw6IHRy
dWUKKworZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCitkZWxl
Z2F0ZXNQYWdlU2NhbGluZzoKKyAgICBpbml0aWFsOiBmYWxzZQorcGx1Z0luU25hcHNob3R0aW5n
RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorc25hcHNob3RBbGxQbHVnSW5zOgorICAgIGlu
aXRpYWw6IGZhbHNlCithdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOgor
ICAgIGluaXRpYWw6IHRydWUKK3ByaW1hcnlQbHVnSW5TbmFwc2hvdERldGVjdGlvbkVuYWJsZWQ6
CisgICAgaW5pdGlhbDogdHJ1ZQorbWF4aW11bVBsdWdJblNuYXBzaG90QXR0ZW1wdHM6CisgICAg
dHlwZTogdW5zaWduZWQKKyAgICBpbml0aWFsOiAyMAorZnJhbWVGbGF0dGVuaW5nOgorICAgIHR5
cGU6IEZyYW1lRmxhdHRlbmluZworICAgIGluaXRpYWw6IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJs
ZWQKK2FzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK3dl
YlNlY3VyaXR5RW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCitzcGF0aWFsTmF2aWdhdGlvbkVu
YWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5h
YmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit1bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkOgor
ICAgIGluaXRpYWw6IGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkCisKK2xvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK2Jh
Y2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWw6CisgICAgdHlwZTogZG91YmxlCisgICAg
aW5pdGlhbDogMTgwMAorCisjIFNvbWUgYXBwcyBjb3VsZCBoYXZlIGEgZGVmYXVsdCB2aWRlbyBw
b3N0ZXIgaWYgaXQgaXMgbm90IHNldC4KK2RlZmF1bHRWaWRlb1Bvc3RlclVSTDoKKyAgICB0eXBl
OiBTdHJpbmcKKworc21hcnRJbnNlcnREZWxldGVFbmFibGVkOgorICAgIGluaXRpYWw6IGRlZmF1
bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ6CisgICAgaW5pdGlhbDogZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQK
KwordXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcjoKKyAgICBpbml0aWFs
OiBmYWxzZQorZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50OgorICAgIGlu
aXRpYWw6IGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQKKwor
dGV4dEF1dG9zaXppbmdFbmFibGVkOgorICAgIGluaXRpYWw6IGRlZmF1bHRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoKQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMK
KyAgICBjb25kaXRpb25hbDogVEVYVF9BVVRPU0laSU5HCit0ZXh0QXV0b3NpemluZ1dpbmRvd1Np
emVPdmVycmlkZToKKyAgICB0eXBlOiBJbnRTaXplCisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVj
YWxjU3R5bGVJbkFsbEZyYW1lcworICAgIGNvbmRpdGlvbmFsOiBURVhUX0FVVE9TSVpJTkcKK21p
bmltdW1ab29tRm9udFNpemU6CisgICAgdHlwZTogZmxvYXQKKyAgICBpbml0aWFsOiBkZWZhdWx0
TWluaW11bVpvb21Gb250U2l6ZSgpCisgICAgY29uZGl0aW9uYWw6IFRFWFRfQVVUT1NJWklORwor
CitzdWJwaXhlbEFudGlhbGlhc2VkTGF5ZXJUZXh0RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3NpbXBsZUxp
bmVMYXlvdXRFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKKyAgICBvbkNoYW5nZTogc2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCitzaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5h
YmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0
eWxlSW5BbGxGcmFtZXMKKworc3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZDoKKyAg
ICBpbml0aWFsOiBmYWxzZQorCit1c2VHaWFudFRpbGVzOgorICAgIGluaXRpYWw6IGZhbHNlCisK
K21lZGlhU291cmNlRW5hYmxlZDoKKyAgICBpbml0aWFsOiB0cnVlCisgICAgY29uZGl0aW9uYWw6
IE1FRElBX1NPVVJDRQorCisjIEZJWE1FOiBSZW5hbWUgdG8gYWxsb3dNdWx0aUVsZW1lbnRJbXBs
aWNpdEZvcm1TdWJtaXNzaW9uIG9uY2Ugd2UgdXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIFdl
YlZpZXcubW0uCithbGxvd011bHRpRWxlbWVudEltcGxpY2l0U3VibWlzc2lvbjoKKyAgICBpbml0
aWFsOiBmYWxzZQorCithbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjazoKKyAgICBpbml0aWFs
OiB0cnVlCisgICAgY29uZGl0aW9uYWw6IFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVAorCitzaG91
bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weToKKyAgICBpbml0aWFsOiBmYWxzZQorCittYXhQ
YXJzZUR1cmF0aW9uOgorICAgIHR5cGU6IGRvdWJsZQorICAgIGluaXRpYWw6IC0xCitzdGFuZGFs
b25lOgorICAgIGluaXRpYWw6IGZhbHNlCit0ZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZDoK
KyAgICBpbml0aWFsOiBmYWxzZQorbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5OgorICAgIGlu
aXRpYWw6IGRlZmF1bHRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkKK2Fsd2F5c1VzZUFjY2Vs
ZXJhdGVkT3ZlcmZsb3dTY3JvbGw6CisgICAgaW5pdGlhbDogZmFsc2UKK2ltYWdlQ29udHJvbHNF
bmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgY29uZGl0aW9uYWw6IFNFUlZJQ0VfQ09O
VFJPTFMKKworZW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50OgorICAgIGluaXRpYWw6IGZh
bHNlCisKK2FnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQordGVtcG9yYXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1
ZQorCit1c2VJbWFnZURvY3VtZW50Rm9yU3ViZnJhbWVQREY6CisgICAgaW5pdGlhbDogZmFsc2UK
K2RhdGFEZXRlY3RvclR5cGVzOgorICAgIHR5cGU6IERhdGFEZXRlY3RvclR5cGVzCisgICAgaW5p
dGlhbDogRGF0YURldGVjdG9yVHlwZU5vbmUKKyAgICBjb25kaXRpb25hbDogREFUQV9ERVRFQ1RJ
T04KKworIyBBbGxvdyBTb3VyY2VCdWZmZXJzIHRvIHN0b3JlIHVwIHRvIDMwNE1CIGVhY2gsIGVu
b3VnaCBmb3IgYXBwcm94aW1hdGVseSBmaXZlIG1pbnV0ZXMKKyMgb2YgMTA4MHAgdmlkZW8gYW5k
IHN0ZXJlbyBhdWRpby4KK21heGltdW1Tb3VyY2VCdWZmZXJTaXplOgorICAgIHR5cGU6IGludAor
ICAgIGluaXRpYWw6IDMxODc2NzEwNAorICAgIGNvbmRpdGlvbmFsOiBNRURJQV9TT1VSQ0UKKwor
c2VydmljZUNvbnRyb2xzRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIGNvbmRpdGlv
bmFsOiBTRVJWSUNFX0NPTlRST0xTCisKK2FwcGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJsZWQ6
CisgICAgaW5pdGlhbDogZmFsc2UKKworZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkOgorICAgIGlu
aXRpYWw6IGZhbHNlCisKK3JlcGFpbnRPdXRzaWRlTGF5b3V0RW5hYmxlZDoKKyAgICBpbml0aWFs
OiBmYWxzZQorCitodHRwRXF1aXZFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUKKworIyBTb21l
IHBvcnRzIChlLmcuIGlPUykgbWlnaHQgY2hvb3NlIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgaW5s
aW5lLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZQorIyBI
VFRQIGhlYWRlciAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudCIuIFRoaXMgc2V0dGlu
ZyBlbmFibGVzIGEgc2FuZGJveCBhcm91bmQgdGhlc2UgYXR0YWNobWVudHMuIFRoZSBzYW5kYm94
CisjIGVuZm9yY2VzIGFsbCBmcmFtZSBzYW5kYm94IGZsYWdzIChzZWUgZW51bSBTYW5kYm94Rmxh
ZyBpbiBTZWN1cml0eUNvbnRleHQuaCksIGFuZCBhbHNvIGRpc2FibGVzIDxtZXRhIGh0dHAtZXF1
aXY+CisjIHByb2Nlc3NpbmcgYW5kIHN1YmZyYW1lIGxvYWRpbmcuCitjb250ZW50RGlzcG9zaXRp
b25BdHRhY2htZW50U2FuZGJveEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKwordXNlcklu
dGVyZmFjZURpcmVjdGlvblBvbGljeToKKyAgICB0eXBlOiBVc2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5CisgICAgaW5pdGlhbDogVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeTo6Q29udGVu
dAorc3lzdGVtTGF5b3V0RGlyZWN0aW9uOgorICAgIHR5cGU6IFRleHREaXJlY3Rpb24KKyAgICBp
bml0aWFsOiBMVFIKKworYWxsb3dDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VTdGFyVG9NYXRj
aEFueVByb3RvY29sOgorICAgIGluaXRpYWw6IGZhbHNlCisKK3NlbGVjdGlvblBhaW50aW5nV2l0
aG91dFNlbGVjdGlvbkdhcHNFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisKK3Nob3VsZENv
bnZlcnRJbnZhbGlkVVJMc1RvQmxhbms6CisgICAgaW5pdGlhbDogdHJ1ZQorCitzcHJpbmdUaW1p
bmdGdW5jdGlvbkVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKwordHJlYXRJUEFkZHJlc3NB
c0RvbWFpbjoKKyAgICBpbml0aWFsOiBmYWxzZQorCittZWRpYVByZWxvYWRpbmdFbmFibGVkOgor
ICAgIGluaXRpYWw6IGZhbHNlCisKKyMgUnVudGltZS1lbmFibGVkIGZlYXR1cmVzCit2aXN1YWxW
aWV3cG9ydEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogc2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCisKK2lucHV0RXZlbnRzRW5hYmxlZDoKKyAgICBpbml0
aWFsOiB0cnVlCisKK3F1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZDoKKyAgICBpbml0
aWFsOiBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkCit5b3VUdWJlRmxh
c2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZGVmYXVsdFlvdVR1YmVG
bGFzaFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZAorCitmb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFj
Y2Vzc2liaWxpdHlWYWx1ZToKKyAgICB0eXBlOiBGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUKKyAg
ICBpbml0aWFsOiBkZWZhdWx0Rm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFs
dWUKK2ZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWU6CisgICAgdHlw
ZTogRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlCisgICAgaW5pdGlhbDogZGVmYXVsdEZvcmNlZERp
c3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWUKK2ZvcmNlZFByZWZlcnNSZWR1Y2Vk
TW90aW9uQWNjZXNzaWJpbGl0eVZhbHVlOgorICAgIHR5cGU6IEZvcmNlZEFjY2Vzc2liaWxpdHlW
YWx1ZQorICAgIGluaXRpYWw6IGRlZmF1bHRGb3JjZWRQcmVmZXJzUmVkdWNlZE1vdGlvbkFjY2Vz
c2liaWxpdHlWYWx1ZQorCitsYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6CisgICAgaW5p
dGlhbDogdHJ1ZQorYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOgorICAgIGluaXRp
YWw6IHRydWUKK3dlYmtpdEltYWdlUmVhZHlFdmVudEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFs
c2UKKworc2hvdWxkU3VwcHJlc3NUZXh0SW5wdXRGcm9tRWRpdGluZ0R1cmluZ1Byb3Zpc2lvbmFs
TmF2aWdhdGlvbjoKKyAgICBpbml0aWFsOiBmYWxzZQorCitsYW5nQXR0cmlidXRlQXdhcmVGb3Jt
Q29udHJvbFVJRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCitzdWJyZXNvdXJjZUludGVn
cml0eUVuYWJsZWQ6CisgICAgaW5pdGlhbDogdHJ1ZQorCitsaW5rUHJlY29ubmVjdEVuYWJsZWQ6
CisgICAgaW5pdGlhbDogZmFsc2UKKworYmVhY29uQVBJRW5hYmxlZDoKKyAgICBpbml0aWFsOiBm
YWxzZQorCitnZW9sb2NhdGlvbkZsb29yTGV2ZWxFbmFibGVkOgorICAgIGluaXRpYWw6IHRydWUK
KworY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorCit2aWV3
cG9ydEZpdEVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKworYWxsb3dNZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2s6CisgICAgaW5pdGlhbDogZmFs
c2UKKworc3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKwordGlt
ZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHM6CisgICAgdHlwZTogU2Vj
b25kcworICAgIGluaXRpYWw6IDNfcyAKKworZm9udEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhz
OgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJ
bkFsbEZyYW1lcworCitmb250TG9hZFRpbWluZ092ZXJyaWRlOgorICAgIHR5cGU6IEZvbnRMb2Fk
VGltaW5nT3ZlcnJpZGUKKyAgICBpbml0aWFsOiBGb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25l
CitzaG91bGRJZ25vcmVGb250TG9hZENvbXBsZXRpb25zOgorICAgIGluaXRpYWw6IGZhbHNlCisK
K3BheW1lbnRSZXF1ZXN0RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIGNvbmRpdGlv
bmFsOiBQQVlNRU5UX1JFUVVFU1QKK2FwcGxlUGF5RW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorICAgIGNvbmRpdGlvbmFsOiBBUFBMRV9QQVkKK2FwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1
cmVBbGxvd2VkOgorICAgIGluaXRpYWw6IHRydWUKKyAgICBjb25kaXRpb25hbDogQVBQTEVfUEFZ
CisKK2phdmFFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgZ2V0dGVyOiBpc0phdmFF
bmFibGVkCitqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXM6CisgICAgaW5pdGlhbDogdHJ1ZQorICAg
IGdldHRlcjogaXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMKKworIyBVbmxpa2UgdGhlIGltYWdl
c0VuYWJsZWQgc2V0dGluZywgdGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBv
ZgorIyB0aGUgaW1hZ2UgVVJMLiBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVk
IGlmIHJlcXVlc3RlZC4KK2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseToKKyAgICBpbml0aWFsOiBm
YWxzZQorICAgIG9uQ2hhbmdlOiBpbWFnZXNFbmFibGVkQ2hhbmdlZAoraW1hZ2VzRW5hYmxlZDoK
KyAgICBpbml0aWFsOiB0cnVlCisgICAgZ2V0dGVyOiBhcmVJbWFnZXNFbmFibGVkCisgICAgb25D
aGFuZ2U6IGltYWdlc0VuYWJsZWRDaGFuZ2VkCitzY3JpcHRFbmFibGVkOgorICAgIGluaXRpYWw6
IGZhbHNlCisgICAgZ2V0dGVyOiBpc1NjcmlwdEVuYWJsZWQKKyAgICBvbkNoYW5nZTogc2NyaXB0
RW5hYmxlZENoYW5nZWQKK3BsdWdpbnNFbmFibGVkOgorICAgIGluaXRpYWw6IGZhbHNlCisgICAg
Z2V0dGVyOiBhcmVQbHVnaW5zRW5hYmxlZAorICAgIG9uQ2hhbmdlOiBwbHVnaW5zRW5hYmxlZENo
YW5nZWQKKwordXNlc1BhZ2VDYWNoZToKKyAgICBpbml0aWFsOiBmYWxzZQorICAgIG9uQ2hhbmdl
OiB1c2VzUGFnZUNhY2hlQ2hhbmdlZAorCitkbnNQcmVmZXRjaGluZ0VuYWJsZWQ6CisgICAgaW5p
dGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogZG5zUHJlZmV0Y2hpbmdFbmFibGVkQ2hhbmdlZAor
CitiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZToKKyAgICBpbml0aWFsOiBmYWxzZQor
ICAgIG9uQ2hhbmdlOiBiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZUNoYW5nZWQKKwor
c2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxzZQor
ICAgIG9uQ2hhbmdlOiBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkQ2hhbmdlZAor
CitoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDoKKyAgICBpbml0aWFsOiBmYWxz
ZQorICAgIG9uQ2hhbmdlOiBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2Vk
CitoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlczoKKyAgICBpbml0aWFs
OiBmYWxzZQorICAgIG9uQ2hhbmdlOiBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nU3RhdGVD
aGFuZ2VkCitoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQ6CisgICAgaW5p
dGlhbDogZmFsc2UKKyAgICBvbkNoYW5nZTogaGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNp
b25FbmFibGVkQ2hhbmdlZAorCitzdG9yYWdlQmxvY2tpbmdQb2xpY3k6CisgICAgdHlwZTogU2Vj
dXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeQorICAgIGluaXRpYWw6IFNlY3VyaXR5
T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UKKyAgICBvbkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9s
aWN5Q2hhbmdlZAorCisjIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KK21lZGlhVHlwZU92ZXJy
aWRlOgorICAgIHR5cGU6IFN0cmluZworICAgIGluaXRpYWw6ICcic2NyZWVuIicKKyAgICBvbkNo
YW5nZTogbWVkaWFUeXBlT3ZlcnJpZGVDaGFuZ2VkCisKKworZm9udFJlbmRlcmluZ01vZGU6Cisg
ICAgdHlwZTogRm9udFJlbmRlcmluZ01vZGUKKyAgICBpbml0aWFsOiBGb250UmVuZGVyaW5nTW9k
ZTo6Tm9ybWFsCisKK3ByZWZlck1JTUVUeXBlRm9ySW1hZ2VzOgorICAgIGluaXRpYWw6IGZhbHNl
CisKK2ZvcmNlUGVuZGluZ1dlYkdMUG9saWN5OgorICAgIGluaXRpYWw6IGZhbHNlCisgICAgZ2V0
dGVyOiBpc0ZvcmNlUGVuZGluZ1dlYkdMUG9saWN5CisKK21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rv
cnk6CisgICAgdHlwZTogU3RyaW5nCisgICAgY29uZGl0aW9uYWw6IExFR0FDWV9FTkNSWVBURURf
TUVESUEKK21lZGlhRGV2aWNlSWRlbnRpZmllclN0b3JhZ2VEaXJlY3Rvcnk6CisgICAgdHlwZTog
U3RyaW5nCisgICAgY29uZGl0aW9uYWw6IE1FRElBX1NUUkVBTQorCisjIEZJWE1FOiBUaGlzIHF1
aXJrIGlzIG5lZWRlZCBiZWNhdXNlIG9mIFJhZGFyIDQ2NzQ1MzcgYW5kIDUyMTEyNzEuIFdlIG5l
ZWQgdG8gcGhhc2UgaXQgb3V0IG9uY2UgQWRvYmUKKyMgY2FuIGZpeCB0aGUgYnVnIGZyb20gdGhl
aXIgZW5kLgorbmVlZHNBZG9iZUZyYW1lUmVsb2FkaW5nUXVpcms6CisgICAgaW5pdGlhbDogZmFs
c2UKKyAgICBnZXR0ZXI6IG5lZWRzQWNyb2JhdEZyYW1lUmVsb2FkaW5nUXVpcmsKKwordG91Y2hF
dmVudEVtdWxhdGlvbkVuYWJsZWQ6CisgICAgaW5pdGlhbDogZmFsc2UKKyAgICBnZXR0ZXI6IGlz
VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQKKyAgICBjb25kaXRpb25hbDogVE9VQ0hfRVZFTlRT
Cg==
</data>
<flag name="review"
          id="344153"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324536</attachid>
            <date>2017-10-22 18:47:21 -0700</date>
            <delta_ts>2017-10-22 20:13:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178634-20171022184720.patch</filename>
            <type>text/plain</type>
            <size>110017</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMzgxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE3LTEwLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1NldHRpbmdzXSBSZXBsYWNlIGN1cnJl
bnQgU2V0dGluZ3MgZ2VuZXJhdGlvbiB3aXRoIHRlbXBsYXRlIGZpbGUgYmFzZWQgYXBwcm9hY2gK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODYzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KKworICAgICAgICBUaGlzIHJl
cGxhY2VzIHRoZSByZWNlbnRseSBhZGRlZCBweXRob24gYmFzZWQgU2V0dGluZ3MgZ2VuZXJhdGlv
biB3aXRoIGEgZ2VuZXJhdG9yCisgICAgICAgIGJ1aWx0IGluIHJ1YnksIHNvIHdlIGNhbiB0YWtl
IGFkdmFudGFnZSBvZiBFUkIgZm9yIHRlbXBsYXRpbmcuIFRoZSByZXN1bHQgaGFzIG11Y2gKKyAg
ICAgICAgb2YgdGhlIGxvZ2ljIGluIHRoZSB0ZW1wbGF0ZXMgYW5kIGFzIGEgcmVzdWx0IGZlZWxz
IG11Y2ggZWFzaWVyIHRvIGZvbGxvdyBhbmQgY2xlYW5lci4KKworICAgICAgICBTaW5jZSBJIHdh
cyBtb3ZpbmcgdGhpbmdzIHRvIHJ1YnksIEkgdG9vayB0aGUgb3BlcnR1bml0eSB0byBzd2l0Y2gg
dGhlIFNldHRpbmdzIGRlZmluaXRpb24KKyAgICAgICAgZmlsZSBmcm9tIG91ciAuaW4gZm9ybWF0
IHRvIHlhbWwsIHdoaWNoIGlzIHF1aXRlIGEgYml0IGVhc2llciB0byByZWFkLgorCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAg
ICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3M6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0
cy9HZW5lcmF0ZVNldHRpbmdzLnB5OiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvR2VuZXJh
dGVTZXR0aW5ncy5yYjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
L0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHk6IFJlbW92ZWQuCisgICAgICAg
ICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZp
bGUucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVy
YXRlSW50ZXJuYWxTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5ncy5weTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hl
YWRlckZpbGUucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
L0dlbmVyYXRlU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHk6IFJlbW92ZWQuCisgICAgICAg
ICogU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1NldHRpbmdzLnB5OiBSZW1vdmVkLgorICAgICAg
ICAqIFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2luaXRfXy5weTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYjogQWRk
ZWQuCisgICAgICAgICogU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdz
R2VuZXJhdGVkLmguZXJiOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxh
dGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsLmVyYjogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiOiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmguZXJiOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
Q29yZU1hY3Jvcy5jbWFrZToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBSZW1vdmVkLgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDogQWRkZWQuCisKIDIwMTctMTAtMjEgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNd
IEFkZCBiaW5kaW5ncyB0byB1bmlmaWVkIHNvdXJjZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtNDAyNSw3ICs0MDI1LDcgQEAgR0VORVJBVEVfRVZFTlRfRkFDVE9SWSgk
e1dFQkNPUkVfRElSfS9kbwogbGlzdChBUFBFTkQgV2ViQ29yZV9ERVJJVkVEX1NPVVJDRVMgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L0V2ZW50VGFyZ2V0SW50ZXJmYWNlcy5oKQogCiAK
LUdFTkVSQVRFX1NFVFRJTkdTX01BQ1JPUygke1dFQkNPUkVfRElSfS9wYWdlL1NldHRpbmdzLmlu
IFNldHRpbmdzLmgpCitHRU5FUkFURV9TRVRUSU5HU19NQUNST1MoJHtXRUJDT1JFX0RJUn0vcGFn
ZS9TZXR0aW5ncy55YW1sIFNldHRpbmdzLmgpCiBsaXN0KEFQUEVORCBXZWJDb3JlX0RFUklWRURf
U09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vU2V0dGluZ3MuaCkKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfREVSSVZFRF9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVf
RElSfS9TZXR0aW5ncy5jcHApCiBsaXN0KEFQUEVORCBXZWJDb3JlVGVzdFN1cHBvcnRfU09VUkNF
UyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5jcHApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDIyMzgx
NikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTEzNzIsMTggKzEzNzIsMTUgQEAgSlNNYXRoTUxFbGVtZW50V3JhcHBlckZhY3RvcnklY3Bw
IEpTTWF0aAogIyBJbnRlcm5hbCBTZXR0aW5ncwogCiBHRU5FUkFURV9TRVRUSU5HU19TQ1JJUFRT
ID0gXAotICAgICQoV2ViQ29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50
ZXJuYWxTZXR0aW5nc0hlYWRlckZpbGUucHkgXAotICAgICQoV2ViQ29yZSkvU2NyaXB0cy9HZW5l
cmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0lETEZpbGUucHkgXAotICAgICQo
V2ViQ29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5n
c0ltcGxlbWVudGF0aW9uRmlsZS5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRl
U2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5ncy5weSBcCi0gICAgJChXZWJDb3JlKS9TY3JpcHRzL0dl
bmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkgXAotICAgICQoV2Vi
Q29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NJbXBsZW1lbnRh
dGlvbkZpbGUucHkgXAotICAgICQoV2ViQ29yZSkvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1Nl
dHRpbmdzLnB5IFwKLSAgICAkKFdlYkNvcmUpL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9fX2lu
aXRfXy5weQorICAgICQoV2ViQ29yZSkvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIgXAorICAgICQoV2ViQ29yZSkvU2NyaXB0cy9TZXR0
aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbC5lcmIgXAorICAgICQo
V2ViQ29yZSkvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJh
dGVkLmguZXJiIFwKKyAgICAkKFdlYkNvcmUpL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0
dGluZ3MuY3BwLmVyYiBcCisgICAgJChXZWJDb3JlKS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVz
L1NldHRpbmdzLmguZXJiCiAKIGFsbCA6IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIElu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCBT
ZXR0aW5ncy5jcHAgU2V0dGluZ3MuaAotSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCVpZGwgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCVjcHAgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCVoIFNl
dHRpbmdzJWNwcCBTZXR0aW5ncyVoIDogJChXZWJDb3JlKS9TY3JpcHRzL0dlbmVyYXRlU2V0dGlu
Z3MucHkgJChHRU5FUkFURV9TRVRUSU5HU19TQ1JJUFRTKSBwYWdlL1NldHRpbmdzLmluCi0JJChQ
WVRIT04pICQ8IC0taW5wdXQgJChXZWJDb3JlKS9wYWdlL1NldHRpbmdzLmluCitJbnRlcm5hbFNl
dHRpbmdzR2VuZXJhdGVkJWlkbCBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkJWNwcCBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkJWggU2V0dGluZ3MlY3BwIFNldHRpbmdzJWggOiAkKFdlYkNvcmUp
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYiAkKEdFTkVSQVRFX1NFVFRJTkdTX1NDUklQVFMp
IHBhZ2UvU2V0dGluZ3MueWFtbAorCSQoUlVCWSkgJDwgLS1pbnB1dCAkKFdlYkNvcmUpL3BhZ2Uv
U2V0dGluZ3MueWFtbAogCiAjIC0tLS0tLS0tCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmVNYWNyb3MuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZU1hY3Jv
cy5jbWFrZQkocmV2aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZU1hY3Jv
cy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjAzLDcgKzIwMyw3IEBAIGVuZG1hY3JvKCkKIAog
CiBtYWNybyhHRU5FUkFURV9TRVRUSU5HU19NQUNST1MgX2luZmlsZSBfb3V0ZmlsZSkKLSAgICBz
ZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy5weSkKKyAgICBzZXQoTkFNRVNfR0VORVJBVE9SICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy5yYikKIAogICAgICMgRG8gbm90IGxpc3QgdGhlIG91dHB1dCBpbiBtb3Jl
IHRoYW4gb25lIGluZGVwZW5kZW50IHRhcmdldCB0aGF0IG1heQogICAgICMgYnVpbGQgaW4gcGFy
YWxsZWwgb3IgdGhlIHR3byBpbnN0YW5jZXMgb2YgdGhlIHJ1bGUgbWF5IGNvbmZsaWN0LgpAQCAt
MjE2LDE0ICsyMTYsMTEgQEAgbWFjcm8oR0VORVJBVEVfU0VUVElOR1NfTUFDUk9TIF9pbmZpbGUg
XwogICAgICkKIAogICAgIHNldChHRU5FUkFURV9TRVRUSU5HU19TQ1JJUFRTCi0gICAgICAgICR7
V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NIZWFkZXJGaWxlLnB5Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2VuZXJh
dGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlLnB5Ci0gICAgICAgICR7
V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0
dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKLSAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0
cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlU2V0dGluZ3NIZWFkZXJGaWxlLnB5Ci0gICAgICAg
ICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdz
SW1wbGVtZW50YXRpb25GaWxlLnB5Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzLnB5Ci0gICAgICAgICR7V0VCQ09SRV9ESVJ9
L1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9TZXR0aW5ncy5weQotICAgICAgICAke1dFQkNPUkVf
RElSfS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvX19pbml0X18ucHkKKyAgICAgICAgJHtXRUJD
T1JFX0RJUn0vU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJh
dGVkLmNwcC5lcmIKKyAgICAgICAgJHtXRUJDT1JFX0RJUn0vU2NyaXB0cy9TZXR0aW5nc1RlbXBs
YXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbC5lcmIKKyAgICAgICAgJHtXRUJDT1JF
X0RJUn0vU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmguZXJiCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMv
U2V0dGluZ3MuY3BwLmVyYgorICAgICAgICAke1dFQkNPUkVfRElSfS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmguZXJiCiAgICAgKQogCiAgICAgc2V0KF9hcmdzIEJZUFJPRFVD
VFMgJHtfZXh0cmFfb3V0cHV0fSkKQEAgLTIzMSw3ICsyMjgsNyBAQCBtYWNybyhHRU5FUkFURV9T
RVRUSU5HU19NQUNST1MgX2luZmlsZSBfCiAgICAgICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vJHtfb3V0ZmlsZX0KICAgICAgICAgTUFJTl9ERVBFTkRFTkNZICR7X2lu
ZmlsZX0KICAgICAgICAgREVQRU5EUyAke05BTUVTX0dFTkVSQVRPUn0gJHtHRU5FUkFURV9TRVRU
SU5HU19TQ1JJUFRTfSAke1NDUklQVFNfQklORElOR1N9Ci0gICAgICAgIENPTU1BTkQgJHtQWVRI
T05fRVhFQ1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5maWxlfSAtLW91
dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KKyAgICAgICAgQ09NTUFORCAk
e1JVQllfRVhFQ1VUQUJMRX0gJHtOQU1FU19HRU5FUkFUT1J9IC0taW5wdXQgJHtfaW5maWxlfSAt
LW91dHB1dERpciAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICAgICAgVkVSQkFU
SU0gJHtfYXJnc30pCiBlbmRtYWNybygpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMv
R2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxlLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5l
cmF0ZUludGVybmFsU2V0dGluZ3NIZWFkZXJGaWxlLnB5CShyZXZpc2lvbiAyMjM4MTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNl
dHRpbmdzSGVhZGVyRmlsZS5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDgyICswLDAgQEAKLSMhL3Vz
ci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6
Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
IyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotIyBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotaW1wb3J0IG9zLnBhdGgKLQotZnJvbSBTZXR0aW5ncyBpbXBvcnQgbGljZW5zZSwgbWFrZUNv
bmRpdGlvbmFsU3RyaW5nCi0KLQotZGVmIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0hlYWRlckZp
bGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0aW5ncyk6Ci0gICAgb3V0cHV0UGF0aCA9IG9zLnBhdGgu
am9pbihvdXRwdXREaXJlY3RvcnksICJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmgiKQotICAg
IG91dHB1dEZpbGUgPSBvcGVuKG91dHB1dFBhdGgsICd3JykKLSAgICBvdXRwdXRGaWxlLndyaXRl
KGxpY2Vuc2UoKSkKLQotICAgIG91dHB1dEZpbGUud3JpdGUoIiNwcmFnbWEgb25jZVxuXG4iKQot
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJTdXBwbGVtZW50YWJsZS5oXCJcbiIp
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+XG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD5cblxu
IikKLQotICAgIG91dHB1dEZpbGUud3JpdGUoIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIikKLQot
ICAgIG91dHB1dEZpbGUud3JpdGUoImNsYXNzIFBhZ2U7XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCJjbGFzcyBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkIDogcHVibGljIFJlZkNvdW50
ZWQ8SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZD4ge1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRl
KCJwdWJsaWM6XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBleHBsaWNpdCBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkKFBhZ2UqKTtcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAg
IHZpcnR1YWwgfkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQoKTtcblxuIikKLSAgICBvdXRwdXRG
aWxlLndyaXRlKCIgICAgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7XG5cbiIpCi0KLSAg
ICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAg
ICBzZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgIGlkbFR5cGUgPSBzZXR0
aW5nLmlkbFR5cGUoKQotICAgICAgICBpZiBub3QgaWRsVHlwZToKLSAgICAgICAgICAgIGNvbnRp
bnVlCi0KLSAgICAgICAgdHlwZSA9ICJjb25zdCBTdHJpbmcmIiBpZiBzZXR0aW5nLnR5cGUgPT0g
IlN0cmluZyIgZWxzZSBzZXR0aW5nLnR5cGUKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAg
IHZvaWQgIiArIHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lKCkgKyAiKCIgKyB0eXBlICsgIiAi
ICsgc2V0dGluZy5uYW1lICsgIik7XG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiXG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoInByaXZhdGU6XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
IiAgICBQYWdlKiBtX3BhZ2U7XG5cbiIpCi0KLSAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVk
KHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAgICBzZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGlu
Z05hbWVdCi0gICAgICAgIGlkbFR5cGUgPSBzZXR0aW5nLmlkbFR5cGUoKQotICAgICAgICBpZiBu
b3QgaWRsVHlwZToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgaWYgc2V0dGluZy5j
b25kaXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNv
bmRpdGlvbmFsU3RyaW5nKHNldHRpbmcuY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICBv
dXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgbV8iICsgc2V0dGluZy5u
YW1lICsgIjtcbiIpCi0KLSAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25hbDoKLSAgICAgICAg
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuIikKLQotICAgIG91dHB1dEZpbGUud3JpdGUo
In07XG5cbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxu
IikKLQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNl
L1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVyYXRlSW50ZXJuYWxTZXR0aW5n
c0hlYWRlckZpbGUucHkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSAr
MCwwICMjCi0qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJ
RExGaWxlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVT
ZXR0aW5ncy9HZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlLnB5CShyZXZpc2lvbiAyMjM4
MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJ
bnRlcm5hbFNldHRpbmdzSURMRmlsZS5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDQ5ICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFy
ZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotaW1wb3J0IG9zLnBhdGgKLQotZnJvbSBTZXR0aW5ncyBpbXBvcnQgbGljZW5zZQot
Ci0KLWRlZiBnZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlKG91dHB1dERpcmVjdG9yeSwg
c2V0dGluZ3MpOgotICAgIG91dHB1dFBhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5
LCAiSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwiKQotICAgIG91dHB1dEZpbGUgPSBvcGVu
KG91dHB1dFBhdGgsICd3JykKLSAgICBvdXRwdXRGaWxlLndyaXRlKGxpY2Vuc2UoKSkKLQotICAg
IG91dHB1dEZpbGUud3JpdGUoIltcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIE5vSW50
ZXJmYWNlT2JqZWN0LFxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgRXhwb3J0TWFjcm89
V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIl0g
aW50ZXJmYWNlIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQge1xuIikKLQotICAgIGZvciBzZXR0
aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAgIHNldHRpbmcg
PSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRpbmcuaWRsVHlw
ZSgpCi0gICAgICAgIGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIHZvaWQgIiArIHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgKyAiKCIgKyBpZGxUeXBlICsgIiAiICsgc2V0dGluZy5uYW1lICsgIik7XG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgifTtcbiIpCi0gICAgb3V0cHV0RmlsZS5jbG9zZSgpCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3Mv
R2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSURMRmlsZS5weQpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjpleGVjdXRhYmxlCiMjIC0xICswLDAgIyMKLSoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVy
YXRlSW50ZXJuYWxTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZS5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNl
dHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5CShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdz
SW1wbGVtZW50YXRpb25GaWxlLnB5CShub25leGlzdGVudCkKQEAgLTEsMTEyICswLDAgQEAKLSMh
L3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBt
ZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
IyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotaW1wb3J0IG9zLnBhdGgKLQotZnJvbSBTZXR0aW5ncyBpbXBvcnQgbGljZW5zZSwgbWFr
ZUNvbmRpdGlvbmFsU3RyaW5nLCBtYWtlQ29uZGl0aW9uYWxTdHJpbmcKLQotCi1kZWYgZ2VuZXJh
dGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0
dGluZ3MpOgotICAgIG91dHB1dFBhdGggPSBvcy5wYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCAi
SW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAiKQotICAgIG91dHB1dEZpbGUgPSBvcGVuKG91
dHB1dFBhdGgsICd3JykKLSAgICBvdXRwdXRGaWxlLndyaXRlKGxpY2Vuc2UoKSkKLQotICAgIG91
dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuIikKLSAgICBvdXRwdXRGaWxl
LndyaXRlKCIjaW5jbHVkZSBcIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaFwiXG5cbiIpCi0K
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlBhZ2UuaFwiXG4iKQotICAgIG91dHB1
dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiU2V0dGluZ3MuaFwiXG5cbiIpCi0KLSAgICBvdXRwdXRG
aWxlLndyaXRlKCJuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxlLndy
aXRlKCJJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkOjpJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
KFBhZ2UqIHBhZ2UpXG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICA6IG1fcGFnZShwYWdl
KVxuIikKLQotICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMo
KSk6Ci0gICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWRs
VHlwZSA9IHNldHRpbmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5vdCBpZGxUeXBlOgotICAgICAg
ICAgICAgY29udGludWUKLQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsOgotICAgICAg
ICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoc2V0
dGluZy5jb25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiAg
ICAsIG1fIiArIHNldHRpbmcubmFtZSArICIocGFnZS0+c2V0dGluZ3MoKS4iICsgc2V0dGluZy5n
ZXR0ZXJGdW5jdGlvbk5hbWUoKSArICIoKSlcbiIpCi0KLSAgICAgICAgaWYgc2V0dGluZy5jb25k
aXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuIikKLQotICAg
IG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQot
Ci0gICAgb3V0cHV0RmlsZS53cml0ZSgiSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZDo6fkludGVy
bmFsU2V0dGluZ3NHZW5lcmF0ZWQoKVxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7XG4iKQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUud3JpdGUoInZv
aWQgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZDo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpXG4i
KQotICAgIG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0KLSAgICBmb3Igc2V0dGluZ05hbWUgaW4g
c29ydGVkKHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAgICBzZXR0aW5nID0gc2V0dGluZ3Nb
c2V0dGluZ05hbWVdCi0gICAgICAgIGlkbFR5cGUgPSBzZXR0aW5nLmlkbFR5cGUoKQotICAgICAg
ICBpZiBub3QgaWRsVHlwZToKLSAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgaWYgc2V0
dGluZy5jb25kaXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsg
bWFrZUNvbmRpdGlvbmFsU3RyaW5nKHNldHRpbmcuY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAg
ICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgbV9wYWdlLT5zZXR0aW5ncygpLiIgKyBzZXR0aW5n
LnNldHRlckZ1bmN0aW9uTmFtZSgpICsgIihtXyIgKyBzZXR0aW5nLm5hbWUgKyAiKTtcbiIpCi0K
LSAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25hbDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUu
d3JpdGUoIiNlbmRpZlxuIikKLQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAg
IGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3MuaXRlcmtleXMoKSk6Ci0gICAgICAg
IHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgaWRsVHlwZSA9IHNldHRp
bmcuaWRsVHlwZSgpCi0gICAgICAgIGlmIG5vdCBpZGxUeXBlOgotICAgICAgICAgICAgY29udGlu
dWUKLQotICAgICAgICB0eXBlID0gImNvbnN0IFN0cmluZyYiIGlmIHNldHRpbmcudHlwZSA9PSAi
U3RyaW5nIiBlbHNlIHNldHRpbmcudHlwZQotCi0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoInZv
aWQgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZDo6IiArIHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lKCkgKyAiKCIgKyB0eXBlICsgIiAiICsgc2V0dGluZy5uYW1lICsgIilcbiIpCi0gICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIntcbiIpCi0KLSAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25h
bDoKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNvbmRpdGlvbmFs
U3RyaW5nKHNldHRpbmcuY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICBvdXRwdXRGaWxl
LndyaXRlKCIgICAgbV9wYWdlLT5zZXR0aW5ncygpLiIgKyBzZXR0aW5nLnNldHRlckZ1bmN0aW9u
TmFtZSgpICsgIigiICsgc2V0dGluZy5uYW1lICsgIik7XG4iKQotCi0gICAgICAgIGlmIHNldHRp
bmcuY29uZGl0aW9uYWw6Ci0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjZWxzZVxuIikK
LSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBVTlVTRURfUEFSQU0oIiArIHNldHRp
bmcubmFtZSArICIpO1xuIikKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxu
IikKLQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxl
LndyaXRlKCJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG4iKQotCi0gICAgb3V0cHV0RmlsZS5jbG9z
ZSgpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRl
U2V0dGluZ3MvR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5Cl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAjIwotKgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dl
bmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5ncy5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5ncy5weQkocmV2
aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdz
L0dlbmVyYXRlU2V0dGluZ3MucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw2ICswLDAgQEAKLWZyb20g
U2V0dGluZ3MgaW1wb3J0ICoKLWZyb20gR2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmls
ZSBpbXBvcnQgKgotZnJvbSBHZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlIGltcG9ydCAq
Ci1mcm9tIEdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmlsZSBpbXBvcnQg
KgotZnJvbSBHZW5lcmF0ZVNldHRpbmdzSGVhZGVyRmlsZSBpbXBvcnQgKgotZnJvbSBHZW5lcmF0
ZVNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlIGltcG9ydCAqCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dl
bmVyYXRlU2V0dGluZ3NIZWFkZXJGaWxlLnB5CShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZp
bGUucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNjEgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0jIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSMgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0jIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1pbXBvcnQgb3Mu
cGF0aAotCi1mcm9tIFNldHRpbmdzIGltcG9ydCBsaWNlbnNlLCBtYWtlQ29uZGl0aW9uYWxTdHJp
bmcsIG1ha2VQcmVmZXJyZWRDb25kaXRpb25hbAotCi0KLWRlZiBnZW5lcmF0ZVNldHRpbmdzSGVh
ZGVyRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKToKLSAgICBzZXR0aW5nc0J5Q29uZGl0
aW9uYWwgPSB7fQotICAgIHVuY29uZGl0aW9uYWxTZXR0aW5ncyA9IHt9Ci0KLSAgICBmb3Igc2V0
dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzLml0ZXJrZXlzKCkpOgotICAgICAgICBzZXR0aW5n
ID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRpbmcuY29uZGl0aW9uYWw6
Ci0gICAgICAgICAgICBpZiBzZXR0aW5nLmNvbmRpdGlvbmFsIG5vdCBpbiBzZXR0aW5nc0J5Q29u
ZGl0aW9uYWw6Ci0gICAgICAgICAgICAgICAgc2V0dGluZ3NCeUNvbmRpdGlvbmFsW3NldHRpbmcu
Y29uZGl0aW9uYWxdID0ge30KLSAgICAgICAgICAgIHNldHRpbmdzQnlDb25kaXRpb25hbFtzZXR0
aW5nLmNvbmRpdGlvbmFsXVtzZXR0aW5nLm5hbWVdID0gVHJ1ZQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgdW5jb25kaXRpb25hbFNldHRpbmdzW3NldHRpbmcubmFtZV0gPSBUcnVlCi0KLSAg
ICBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcyA9IHNvcnRlZCh1bmNvbmRpdGlvbmFs
U2V0dGluZ3MuaXRlcmtleXMoKSkKLSAgICBzb3J0ZWRDb25kaXRpb25hbHMgPSBzb3J0ZWQoc2V0
dGluZ3NCeUNvbmRpdGlvbmFsLml0ZXJrZXlzKCkpCi0KLSAgICBvdXRwdXRQYXRoID0gb3MucGF0
aC5qb2luKG91dHB1dERpcmVjdG9yeSwgIlNldHRpbmdzLmgiKQotICAgIG91dHB1dEZpbGUgPSBv
cGVuKG91dHB1dFBhdGgsICd3JykKLSAgICBvdXRwdXRGaWxlLndyaXRlKGxpY2Vuc2UoKSkKLQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIiNwcmFnbWEgb25jZVxuXG4iKQotCi0gICAgb3V0cHV0Rmls
ZS53cml0ZSgiI2luY2x1ZGUgXCJTZXR0aW5nc0Jhc2UuaFwiXG4iKQotICAgIG91dHB1dEZpbGUu
d3JpdGUoIiNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPlxuXG4iKQotCi0gICAgb3V0cHV0Rmls
ZS53cml0ZSgibmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKQotCi0gICAgb3V0cHV0RmlsZS53cml0
ZSgiY2xhc3MgUGFnZTtcblxuIikKLQotICAgIG91dHB1dEZpbGUud3JpdGUoImNsYXNzIFNldHRp
bmdzIDogcHVibGljIFNldHRpbmdzQmFzZSwgcHVibGljIFJlZkNvdW50ZWQ8U2V0dGluZ3M+IHtc
biIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNldHRp
bmdzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
InB1YmxpYzpcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiICAgIHN0YXRpYyBSZWY8U2V0dGlu
Z3M+IGNyZWF0ZShQYWdlKik7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICB+U2V0dGlu
Z3MoKTtcblxuIikKLQotICAgIHByaW50R2V0dGVyc0FuZFNldHRlcnMob3V0cHV0RmlsZSwgc29y
dGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXMsIHNvcnRlZENvbmRpdGlvbmFscywgc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsLCBzZXR0aW5ncykKLQotICAgIG91dHB1dEZpbGUud3JpdGUoInByaXZh
dGU6XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUoIiAgICBleHBsaWNpdCBTZXR0aW5ncyhQYWdl
Kik7XG5cbiIpCi0KLSAgICBwcmludE1lbWJlclZhcmlhYmxlcyhvdXRwdXRGaWxlLCBzb3J0ZWRV
bmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5nc0J5
Q29uZGl0aW9uYWwsIHNldHRpbmdzKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifTtcblxuIikK
LQotICAgIG91dHB1dEZpbGUud3JpdGUoIn1cbiIpCi0KLSAgICBvdXRwdXRGaWxlLmNsb3NlKCkK
LQotCi1kZWYgcHJpbnRHZXR0ZXJBbmRTZXR0ZXIob3V0cHV0RmlsZSwgc2V0dGluZyk6Ci0gICAg
c2V0dGVyRnVuY3Rpb25OYW1lID0gc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUoKQotICAgIGdl
dHRlckZ1bmN0aW9uTmFtZSA9IHNldHRpbmcuZ2V0dGVyRnVuY3Rpb25OYW1lKCkKLQotICAgIHdl
YmNvcmVFeHBvcnQgPSAiV0VCQ09SRV9FWFBPUlQgIiBpZiBzZXR0aW5nLmhhc0NvbXBsZXhTZXR0
ZXIoKSBlbHNlICIiCi0KLSAgICBpZiBzZXR0aW5nLnR5cGVJc1ZhbHVlVHlwZSgpOgotICAgICAg
ICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgIiArIGdldHRlckZ1
bmN0aW9uTmFtZSArICIoKSBjb25zdCB7IHJldHVybiBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiOyB9
XG4iKQotICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHdlYmNvcmVFeHBvcnQgKyAi
dm9pZCAiICsgc2V0dGVyRnVuY3Rpb25OYW1lICsgIigiICsgc2V0dGluZy50eXBlICsgIiAiICsg
c2V0dGluZy5uYW1lICsgIikiKQotICAgIGVsc2U6Ci0gICAgICAgIG91dHB1dEZpbGUud3JpdGUo
IiAgICBjb25zdCAiICsgc2V0dGluZy50eXBlICsgIiYgIiArIGdldHRlckZ1bmN0aW9uTmFtZSAr
ICIoKSBjb25zdCB7IHJldHVybiBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiOyB9XG4iKQotICAgICAg
ICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHdlYmNvcmVFeHBvcnQgKyAidm9pZCAiICsgc2V0
dGVyRnVuY3Rpb25OYW1lICsgIihjb25zdCAiICsgc2V0dGluZy50eXBlICsgIiYgIiArIHNldHRp
bmcubmFtZSArICIpIikKLQotICAgIGlmIHNldHRpbmcuaGFzQ29tcGxleFNldHRlcigpOgotICAg
ICAgICBvdXRwdXRGaWxlLndyaXRlKCI7XG4iKQotICAgIGVsc2U6Ci0gICAgICAgIG91dHB1dEZp
bGUud3JpdGUoIiB7IG1fIiArIHNldHRpbmcubmFtZSArICIgPSAiICsgc2V0dGluZy5uYW1lICsg
IjsgfVxuIikKLQotCi1kZWYgcHJpbnRHZXR0ZXJzQW5kU2V0dGVycyhvdXRwdXRGaWxlLCBzb3J0
ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBzZXR0aW5n
c0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKToKLSAgICBmb3IgdW5jb25kaXRpb25hbFNldHRpbmdO
YW1lIGluIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzOgotICAgICAgICBwcmludEdl
dHRlckFuZFNldHRlcihvdXRwdXRGaWxlLCBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGluZ05h
bWVdKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgiXG4iKQotCi0gICAgZm9yIGNvbmRpdGlvbmFs
IGluIHNvcnRlZENvbmRpdGlvbmFsczoKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIg
KyBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICBm
b3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25h
bF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAgICBwcmludEdldHRlckFuZFNldHRlcihvdXRwdXRG
aWxlLCBzZXR0aW5nc1tzZXR0aW5nTmFtZV0pCi0KLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgi
I2VuZGlmXG5cbiIpCi0KLQotZGVmIHByaW50TWVtYmVyVmFyaWFibGVzKG91dHB1dEZpbGUsIHNv
cnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzLCBzb3J0ZWRDb25kaXRpb25hbHMsIHNldHRp
bmdzQnlDb25kaXRpb25hbCwgc2V0dGluZ3MpOgotICAgIGZvciB1bmNvbmRpdGlvbmFsU2V0dGlu
Z05hbWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXM6Ci0gICAgICAgIHNldHRp
bmcgPSBzZXR0aW5nc1t1bmNvbmRpdGlvbmFsU2V0dGluZ05hbWVdCi0gICAgICAgIGlmIHNldHRp
bmcudHlwZSA9PSAiYm9vbCI6Ci0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBvdXRwdXRG
aWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgbV8iICsgc2V0dGluZy5uYW1lICsg
IjtcbiIpCi0KLSAgICBmb3IgY29uZGl0aW9uYWwgaW4gc29ydGVkQ29uZGl0aW9uYWxzOgotICAg
ICAgICBoYXNNZW1iZXJWYXJpYWJsZSA9IEZhbHNlCi0gICAgICAgIGZvciBzZXR0aW5nTmFtZSBp
biBzb3J0ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToK
LSAgICAgICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAgICAgICAg
IGlmIHNldHRpbmcudHlwZSAhPSAiYm9vbCI6Ci0gICAgICAgICAgICAgICAgaGFzTWVtYmVyVmFy
aWFibGUgPSBUcnVlCi0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNNZW1i
ZXJWYXJpYWJsZToKLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNv
bmRpdGlvbmFsU3RyaW5nKGNvbmRpdGlvbmFsKSArICJcbiIpCi0KLSAgICAgICAgICAgIGZvciBz
ZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5p
dGVya2V5cygpKToKLSAgICAgICAgICAgICAgICBzZXR0aW5nID0gc2V0dGluZ3Nbc2V0dGluZ05h
bWVdCi0gICAgICAgICAgICAgICAgaWYgc2V0dGluZy50eXBlICE9ICJib29sIjoKLSAgICAgICAg
ICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAgICIgKyBzZXR0aW5nLnR5cGUgKyAiIG1f
IiArIHNldHRpbmcubmFtZSArICI7XG4iKQotCi0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRl
KCIjZW5kaWZcbiIpCi0KLSAgICBmb3IgdW5jb25kaXRpb25hbFNldHRpbmdOYW1lIGluIHNvcnRl
ZFVuY29uZGl0aW9uYWxTZXR0aW5nc05hbWVzOgotICAgICAgICBzZXR0aW5nID0gc2V0dGluZ3Nb
dW5jb25kaXRpb25hbFNldHRpbmdOYW1lXQotICAgICAgICBpZiBzZXR0aW5nLnR5cGUgIT0gImJv
b2wiOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiICAg
ICIgKyBzZXR0aW5nLnR5cGUgKyAiIG1fIiArIHNldHRpbmcubmFtZSArICIgOiAxO1xuIikKLQot
ICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRDb25kaXRpb25hbHM6Ci0gICAgICAgIGhhc01l
bWJlclZhcmlhYmxlID0gRmFsc2UKLSAgICAgICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChz
ZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgotICAgICAgICAg
ICAgc2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICAgICAgaWYgc2V0dGlu
Zy50eXBlID09ICJib29sIjoKLSAgICAgICAgICAgICAgICBoYXNNZW1iZXJWYXJpYWJsZSA9IFRy
dWUKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGhhc01lbWJlclZhcmlhYmxl
OgotICAgICAgICAgICAgb3V0cHV0RmlsZS53cml0ZSgiI2lmICIgKyBtYWtlQ29uZGl0aW9uYWxT
dHJpbmcoY29uZGl0aW9uYWwpICsgIlxuIikKLQotICAgICAgICAgICAgZm9yIHNldHRpbmdOYW1l
IGluIHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkp
OgotICAgICAgICAgICAgICAgIHNldHRpbmcgPSBzZXR0aW5nc1tzZXR0aW5nTmFtZV0KLSAgICAg
ICAgICAgICAgICBpZiBzZXR0aW5nLnR5cGUgPT0gImJvb2wiOgotICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIHNldHRpbmcudHlwZSArICIgbV8iICsgc2V0dGlu
Zy5uYW1lICsgIiA6IDE7XG4iKQotCi0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjZW5k
aWZcbiIpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVy
YXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0hlYWRlckZpbGUucHkKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxl
dGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5n
cy9HZW5lcmF0ZVNldHRpbmdzSW1wbGVtZW50YXRpb25GaWxlLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9HZW5lcmF0ZVNldHRpbmdzSW1w
bGVtZW50YXRpb25GaWxlLnB5CShyZXZpc2lvbiAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9T
Y3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvR2VuZXJhdGVTZXR0aW5nc0ltcGxlbWVudGF0aW9uRmls
ZS5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDE4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcy5w
YXRoCi0KLWZyb20gU2V0dGluZ3MgaW1wb3J0IGxpY2Vuc2UsIG1ha2VDb25kaXRpb25hbFN0cmlu
ZywgbWFrZVByZWZlcnJlZENvbmRpdGlvbmFsCi0KLQotZGVmIGdlbmVyYXRlU2V0dGluZ3NJbXBs
ZW1lbnRhdGlvbkZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0aW5ncyk6Ci0gICAgc2V0dGluZ3NC
eUNvbmRpdGlvbmFsID0ge30KLSAgICB1bmNvbmRpdGlvbmFsU2V0dGluZ3MgPSB7fQotCi0gICAg
Zm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChzZXR0aW5ncy5pdGVya2V5cygpKToKLSAgICAgICAg
c2V0dGluZyA9IHNldHRpbmdzW3NldHRpbmdOYW1lXQotICAgICAgICBpZiBzZXR0aW5nLmNvbmRp
dGlvbmFsOgotICAgICAgICAgICAgaWYgc2V0dGluZy5jb25kaXRpb25hbCBub3QgaW4gc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsOgotICAgICAgICAgICAgICAgIHNldHRpbmdzQnlDb25kaXRpb25hbFtz
ZXR0aW5nLmNvbmRpdGlvbmFsXSA9IHt9Ci0gICAgICAgICAgICBzZXR0aW5nc0J5Q29uZGl0aW9u
YWxbc2V0dGluZy5jb25kaXRpb25hbF1bc2V0dGluZy5uYW1lXSA9IFRydWUKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHVuY29uZGl0aW9uYWxTZXR0aW5nc1tzZXR0aW5nLm5hbWVdID0gVHJ1
ZQotCi0gICAgc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXMgPSBzb3J0ZWQodW5jb25k
aXRpb25hbFNldHRpbmdzLml0ZXJrZXlzKCkpCi0gICAgc29ydGVkQ29uZGl0aW9uYWxzID0gc29y
dGVkKHNldHRpbmdzQnlDb25kaXRpb25hbC5pdGVya2V5cygpKQotCi0gICAgb3V0cHV0UGF0aCA9
IG9zLnBhdGguam9pbihvdXRwdXREaXJlY3RvcnksICJTZXR0aW5ncy5jcHAiKQotICAgIG91dHB1
dEZpbGUgPSBvcGVuKG91dHB1dFBhdGgsICd3JykKLSAgICBvdXRwdXRGaWxlLndyaXRlKGxpY2Vu
c2UoKSkKLQotICAgIG91dHB1dEZpbGUud3JpdGUoIiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuIikK
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIjaW5jbHVkZSBcIlNldHRpbmdzLmhcIlxuXG4iKQotCi0g
ICAgb3V0cHV0RmlsZS53cml0ZSgiI2luY2x1ZGUgXCJQYWdlLmhcIlxuIikKLSAgICBvdXRwdXRG
aWxlLndyaXRlKCIjaW5jbHVkZSBcIlNldHRpbmdzRGVmYXVsdFZhbHVlcy5oXCJcblxuIikKLQot
ICAgIG91dHB1dEZpbGUud3JpdGUoIm5hbWVzcGFjZSBXZWJDb3JlIHtcblxuIikKLQotICAgIG91
dHB1dEZpbGUud3JpdGUoIlJlZjxTZXR0aW5ncz4gU2V0dGluZ3M6OmNyZWF0ZShQYWdlKiBwYWdl
KVxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ7XG4iKQotICAgIG91dHB1dEZpbGUud3JpdGUo
IiAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXR0aW5ncyhwYWdlKSk7XG4iKQotICAgIG91dHB1
dEZpbGUud3JpdGUoIn1cblxuIikKLQotICAgIG91dHB1dEZpbGUud3JpdGUoIlNldHRpbmdzOjpT
ZXR0aW5ncyhQYWdlKiBwYWdlKVxuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgOiBTZXR0
aW5nc0Jhc2UocGFnZSlcbiIpCi0KLSAgICBwcmludEluaXRpYWxpemVyTGlzdChvdXRwdXRGaWxl
LCBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29uZGl0aW9uYWxzLCBz
ZXR0aW5nc0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKQotCi0gICAgb3V0cHV0RmlsZS53cml0ZSgi
e1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0KLSAgICBvdXRwdXRGaWxlLndy
aXRlKCJTZXR0aW5nczo6flNldHRpbmdzKClcbiIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgie1xu
IikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCJ9XG5cbiIpCi0KLSAgICBwcmludFNldHRlckJvZGll
cyhvdXRwdXRGaWxlLCBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVkQ29u
ZGl0aW9uYWxzLCBzZXR0aW5nc0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKQotCi0gICAgb3V0cHV0
RmlsZS53cml0ZSgifVxuIikKLQotICAgIG91dHB1dEZpbGUuY2xvc2UoKQotCi0KLWRlZiBoYXNO
b25Cb29sSW5pdGlhbGl6ZXIoc2V0dGluZyk6Ci0gICAgaWYgc2V0dGluZy50eXBlID09ICJib29s
IjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgaWYgbm90IHNldHRpbmcuaW5pdGlhbDoKLSAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgcmV0dXJuIFRydWUKLQotCi1kZWYgcHJpbnROb25Cb29s
SW5pdGlhbGl6ZXIob3V0cHV0RmlsZSwgc2V0dGluZyk6Ci0gICAgaWYgbm90IGhhc05vbkJvb2xJ
bml0aWFsaXplcihzZXR0aW5nKToKLSAgICAgICAgcmV0dXJuCi0gICAgb3V0cHV0RmlsZS53cml0
ZSgiICAgICwgbV8iICsgc2V0dGluZy5uYW1lICsgIigiICsgc2V0dGluZy5pbml0aWFsICsgIilc
biIpCi0KLQotZGVmIGhhc0Jvb2xJbml0aWFsaXplcihzZXR0aW5nKToKLSAgICBpZiBzZXR0aW5n
LnR5cGUgIT0gImJvb2wiOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBpZiBub3Qgc2V0dGlu
Zy5pbml0aWFsOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRl
ZiBwcmludEJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBpZiBub3Qg
aGFzQm9vbEluaXRpYWxpemVyKHNldHRpbmcpOgotICAgICAgICByZXR1cm4KLSAgICBvdXRwdXRG
aWxlLndyaXRlKCIgICAgLCBtXyIgKyBzZXR0aW5nLm5hbWUgKyAiKCIgKyBzZXR0aW5nLmluaXRp
YWwgKyAiKVxuIikKLQotCi1kZWYgcHJpbnRJbml0aWFsaXplckxpc3Qob3V0cHV0RmlsZSwgc29y
dGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFtZXMsIHNvcnRlZENvbmRpdGlvbmFscywgc2V0dGlu
Z3NCeUNvbmRpdGlvbmFsLCBzZXR0aW5ncyk6Ci0gICAgZm9yIHVuY29uZGl0aW9uYWxTZXR0aW5n
TmFtZSBpbiBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lczoKLSAgICAgICAgcHJpbnRO
b25Cb29sSW5pdGlhbGl6ZXIob3V0cHV0RmlsZSwgc2V0dGluZ3NbdW5jb25kaXRpb25hbFNldHRp
bmdOYW1lXSkKLQotICAgIGZvciBjb25kaXRpb25hbCBpbiBzb3J0ZWRDb25kaXRpb25hbHM6Ci0g
ICAgICAgIGhhc0luaXRpYWxpemVyID0gRmFsc2UKLSAgICAgICAgZm9yIHNldHRpbmdOYW1lIGlu
IHNvcnRlZChzZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgot
ICAgICAgICAgICAgaWYgaGFzTm9uQm9vbEluaXRpYWxpemVyKHNldHRpbmdzW3NldHRpbmdOYW1l
XSk6Ci0gICAgICAgICAgICAgICAgaGFzSW5pdGlhbGl6ZXIgPSBUcnVlCi0gICAgICAgICAgICAg
ICAgYnJlYWsKLQotICAgICAgICBpZiBoYXNJbml0aWFsaXplcjoKLSAgICAgICAgICAgIG91dHB1
dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNvbmRpdGlvbmFsU3RyaW5nKGNvbmRpdGlvbmFsKSAr
ICJcbiIpCi0KLSAgICAgICAgICAgIGZvciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NC
eUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFsXS5pdGVya2V5cygpKToKLSAgICAgICAgICAgICAgICBw
cmludE5vbkJvb2xJbml0aWFsaXplcihvdXRwdXRGaWxlLCBzZXR0aW5nc1tzZXR0aW5nTmFtZV0p
Ci0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuIikKLQotICAgIGZvciB1
bmNvbmRpdGlvbmFsU2V0dGluZ05hbWUgaW4gc29ydGVkVW5jb25kaXRpb25hbFNldHRpbmdzTmFt
ZXM6Ci0gICAgICAgIHByaW50Qm9vbEluaXRpYWxpemVyKG91dHB1dEZpbGUsIHNldHRpbmdzW3Vu
Y29uZGl0aW9uYWxTZXR0aW5nTmFtZV0pCi0KLSAgICBmb3IgY29uZGl0aW9uYWwgaW4gc29ydGVk
Q29uZGl0aW9uYWxzOgotICAgICAgICBoYXNJbml0aWFsaXplciA9IEZhbHNlCi0gICAgICAgIGZv
ciBzZXR0aW5nTmFtZSBpbiBzb3J0ZWQoc2V0dGluZ3NCeUNvbmRpdGlvbmFsW2NvbmRpdGlvbmFs
XS5pdGVya2V5cygpKToKLSAgICAgICAgICAgIGlmIGhhc0Jvb2xJbml0aWFsaXplcihzZXR0aW5n
c1tzZXR0aW5nTmFtZV0pOgotICAgICAgICAgICAgICAgIGhhc0luaXRpYWxpemVyID0gVHJ1ZQot
ICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgaGFzSW5pdGlhbGl6ZXI6Ci0gICAg
ICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjaWYgIiArIG1ha2VDb25kaXRpb25hbFN0cmluZyhj
b25kaXRpb25hbCkgKyAiXG4iKQotCi0gICAgICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29y
dGVkKHNldHRpbmdzQnlDb25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAg
ICAgICAgICAgICAgcHJpbnRCb29sSW5pdGlhbGl6ZXIob3V0cHV0RmlsZSwgc2V0dGluZ3Nbc2V0
dGluZ05hbWVdKQotCi0gICAgICAgICAgICBvdXRwdXRGaWxlLndyaXRlKCIjZW5kaWZcbiIpCi0K
LQotZGVmIHByaW50U2V0dGVyQm9keShvdXRwdXRGaWxlLCBzZXR0aW5nKToKLSAgICBpZiBub3Qg
c2V0dGluZy5oYXNDb21wbGV4U2V0dGVyKCk6Ci0gICAgICAgIHJldHVybgotCi0gICAgc2V0dGVy
RnVuY3Rpb25OYW1lID0gc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUoKQotICAgIGNoYW5nZUZ1
bmN0aW9uTmFtZSA9IHNldHRpbmcuc2V0dGVyQ2hhbmdlRnVuY3Rpb25OYW1lKCkKLQotICAgIGlm
IHNldHRpbmcudHlwZUlzVmFsdWVUeXBlKCk6Ci0gICAgICAgIG91dHB1dEZpbGUud3JpdGUoInZv
aWQgU2V0dGluZ3M6OiIgKyBzZXR0ZXJGdW5jdGlvbk5hbWUgKyAiKCIgKyBzZXR0aW5nLnR5cGUg
KyAiICIgKyBzZXR0aW5nLm5hbWUgKyAiKVxuIikKLSAgICBlbHNlOgotICAgICAgICBvdXRwdXRG
aWxlLndyaXRlKCJ2b2lkIFNldHRpbmdzOjoiICsgc2V0dGVyRnVuY3Rpb25OYW1lICsgIihjb25z
dCAiICsgc2V0dGluZy50eXBlICsgIiYgIiArIHNldHRpbmcubmFtZSArICIpXG4iKQotCi0gICAg
b3V0cHV0RmlsZS53cml0ZSgie1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgaWYgKG1f
IiArIHNldHRpbmcubmFtZSArICIgPT0gIiArIHNldHRpbmcubmFtZSArICIpXG4iKQotICAgIG91
dHB1dEZpbGUud3JpdGUoIiAgICAgICAgcmV0dXJuO1xuIikKLSAgICBvdXRwdXRGaWxlLndyaXRl
KCIgICAgbV8iICsgc2V0dGluZy5uYW1lICsgIiA9ICIgKyBzZXR0aW5nLm5hbWUgKyAiO1xuIikK
LSAgICBvdXRwdXRGaWxlLndyaXRlKCIgICAgIiArIGNoYW5nZUZ1bmN0aW9uTmFtZSArICIoKTtc
biIpCi0gICAgb3V0cHV0RmlsZS53cml0ZSgifVxuXG4iKQotCi0KLWRlZiBwcmludFNldHRlckJv
ZGllcyhvdXRwdXRGaWxlLCBzb3J0ZWRVbmNvbmRpdGlvbmFsU2V0dGluZ3NOYW1lcywgc29ydGVk
Q29uZGl0aW9uYWxzLCBzZXR0aW5nc0J5Q29uZGl0aW9uYWwsIHNldHRpbmdzKToKLSAgICBmb3Ig
dW5jb25kaXRpb25hbFNldHRpbmdOYW1lIGluIHNvcnRlZFVuY29uZGl0aW9uYWxTZXR0aW5nc05h
bWVzOgotICAgICAgICBzZXR0aW5nID0gc2V0dGluZ3NbdW5jb25kaXRpb25hbFNldHRpbmdOYW1l
XQotICAgICAgICBwcmludFNldHRlckJvZHkob3V0cHV0RmlsZSwgc2V0dGluZykKLQotICAgIGZv
ciBjb25kaXRpb25hbCBpbiBzb3J0ZWRDb25kaXRpb25hbHM6Ci0gICAgICAgIGhhc1NldHRlckJv
ZHkgPSBGYWxzZQotICAgICAgICBmb3Igc2V0dGluZ05hbWUgaW4gc29ydGVkKHNldHRpbmdzQnlD
b25kaXRpb25hbFtjb25kaXRpb25hbF0uaXRlcmtleXMoKSk6Ci0gICAgICAgICAgICBzZXR0aW5n
ID0gc2V0dGluZ3Nbc2V0dGluZ05hbWVdCi0gICAgICAgICAgICBpZiBzZXR0aW5nLmhhc0NvbXBs
ZXhTZXR0ZXIoKToKLSAgICAgICAgICAgICAgICBoYXNTZXR0ZXJCb2R5ID0gVHJ1ZQotICAgICAg
ICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgaGFzU2V0dGVyQm9keToKLSAgICAgICAgICAg
IG91dHB1dEZpbGUud3JpdGUoIiNpZiAiICsgbWFrZUNvbmRpdGlvbmFsU3RyaW5nKGNvbmRpdGlv
bmFsKSArICJcblxuIikKLQotICAgICAgICAgICAgZm9yIHNldHRpbmdOYW1lIGluIHNvcnRlZChz
ZXR0aW5nc0J5Q29uZGl0aW9uYWxbY29uZGl0aW9uYWxdLml0ZXJrZXlzKCkpOgotICAgICAgICAg
ICAgICAgIHByaW50U2V0dGVyQm9keShvdXRwdXRGaWxlLCBzZXR0aW5nc1tzZXR0aW5nTmFtZV0p
Ci0KLSAgICAgICAgICAgIG91dHB1dEZpbGUud3JpdGUoIiNlbmRpZlxuXG4iKQoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL0dlbmVy
YXRlU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUucHkKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
ZXhlY3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy9TZXR0aW5n
cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGlu
Z3MvU2V0dGluZ3MucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1Njcmlw
dHMvR2VuZXJhdGVTZXR0aW5ncy9TZXR0aW5ncy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDE2MyAr
MCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChjKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcy5wYXRoCi1pbXBvcnQgcmUKLQotCi1kZWYgbGljZW5z
ZSgpOgotICAgIHJldHVybiAiIiIvKgotICogVEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdF
TkVSQVRFRCwgRE8gTk9UIEVESVQuCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotIiIiCi0KLQotY2xhc3MgU2V0dGlu
ZzoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYubmFtZSA9IG5h
bWUKLSAgICAgICAgc2VsZi50eXBlID0gJ2Jvb2wnCi0gICAgICAgIHNlbGYuaW5pdGlhbCA9IE5v
bmUKLSAgICAgICAgc2VsZi5jb25kaXRpb25hbCA9IE5vbmUKLSAgICAgICAgc2VsZi5vbkNoYW5n
ZSA9IE5vbmUKLSAgICAgICAgc2VsZi5nZXR0ZXIgPSBOb25lCi0KLSAgICBkZWYgX19zdHJfXyhz
ZWxmKToKLSAgICAgICAgcmVzdWx0ID0gc2VsZi5uYW1lICsgJyBUWVBFOicgKyBzZWxmLnR5cGUK
LSAgICAgICAgaWYgKHNlbGYuaW5pdGlhbCk6Ci0gICAgICAgICAgICByZXN1bHQgKz0gJyBJTklU
OicgKyBzZWxmLmluaXRpYWwKLSAgICAgICAgaWYgKHNlbGYuY29uZGl0aW9uYWwpOgotICAgICAg
ICAgICAgcmVzdWx0ICs9ICcgQ09ORDonICsgc2VsZi5jb25kaXRpb25hbAotICAgICAgICBpZiAo
c2VsZi5vbkNoYW5nZSk6Ci0gICAgICAgICAgICByZXN1bHQgKz0gJyBDSEFOR0U6JyArIHNlbGYu
b25DaGFuZ2UKLSAgICAgICAgaWYgKHNlbGYuZ2V0dGVyKToKLSAgICAgICAgICAgIHJlc3VsdCAr
PSAnIEdFVFRFUjonICsgc2VsZi5nZXR0ZXIKLSAgICAgICAgcmV0dXJuIHJlc3VsdAotCi0gICAg
ZGVmIHR5cGVJc1ZhbHVlVHlwZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi50eXBlID09ICdTdHJp
bmcnOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHNlbGYudHlwZSA9PSAn
VVJMJzoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0g
ICAgZGVmIHNldHRlckZ1bmN0aW9uTmFtZShzZWxmKToKLSAgICAgICAgZm9yIHByZWZpeCBpbiBb
J2NzcycsICd4c3MnLCAnZnRwJywgJ2RvbScsICdkbnMnXToKLSAgICAgICAgICAgIGlmIHNlbGYu
bmFtZS5zdGFydHN3aXRoKHByZWZpeCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICdzZXQnICsg
dXBwZXJjYXNlRmlyc3ROKHNlbGYubmFtZSwgbGVuKHByZWZpeCkpCi0gICAgICAgIHJldHVybiAn
c2V0JyArIHVwcGVyY2FzZUZpcnN0TihzZWxmLm5hbWUsIDEpCi0KLSAgICBkZWYgZ2V0dGVyRnVu
Y3Rpb25OYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5nZXR0ZXIgb3Igc2VsZi5uYW1l
Ci0KLSAgICBkZWYgc2V0dGVyQ2hhbmdlRnVuY3Rpb25OYW1lKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZi5vbkNoYW5nZQotCi0gICAgZGVmIGhhc0NvbXBsZXhTZXR0ZXIoc2VsZik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLm9uQ2hhbmdlICE9IE5vbmUKLQotICAgIGRlZiBpZGxUeXBlKHNlbGYp
OgotICAgICAgICAjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbW9yZSB0eXBlcyBpbmNsdWRpbmcg
ZW51bWVyYXRlIHR5cGVzLgotICAgICAgICBpZiBzZWxmLnR5cGUgPT0gJ2ludCc6Ci0gICAgICAg
ICAgICByZXR1cm4gJ2xvbmcnCi0gICAgICAgIGlmIHNlbGYudHlwZSA9PSAndW5zaWduZWQnOgot
ICAgICAgICAgICAgcmV0dXJuICd1bnNpZ25lZCBsb25nJwotICAgICAgICBpZiBzZWxmLnR5cGUg
PT0gJ2RvdWJsZSc6Ci0gICAgICAgICAgICByZXR1cm4gJ2RvdWJsZScKLSAgICAgICAgaWYgc2Vs
Zi50eXBlID09ICdmbG9hdCc6Ci0gICAgICAgICAgICByZXR1cm4gJ2Zsb2F0JwotICAgICAgICBp
ZiBzZWxmLnR5cGUgPT0gJ1N0cmluZyc6Ci0gICAgICAgICAgICByZXR1cm4gJ0RPTVN0cmluZycK
LSAgICAgICAgaWYgc2VsZi50eXBlID09ICdib29sJzoKLSAgICAgICAgICAgIHJldHVybiAnYm9v
bGVhbicKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgdXBwZXJjYXNlRmlyc3ROKHN0cmlu
Zywgbik6Ci0gICAgcmV0dXJuIHN0cmluZ1s6bl0udXBwZXIoKSArIHN0cmluZ1tuOl0KLQotCi1k
ZWYgbWFrZVByZWZlcnJlZENvbmRpdGlvbmFsKGNvbmRpdGlvbmFsKToKLSAgICByZXR1cm4gY29u
ZGl0aW9uYWwuc3BsaXQoJ3wnKVswXQotCi0KLWRlZiBtYWtlQ29uZGl0aW9uYWxTdHJpbmcoY29u
ZGl0aW9uYWwpOgotICAgIGNvbmRpdGlvbmFscyA9IGNvbmRpdGlvbmFsLnNwbGl0KCd8JykKLSAg
ICByZXR1cm4gJ0VOQUJMRSgnICsgJykgfHwgRU5BQkxFKCcuam9pbihjb25kaXRpb25hbHMpICsg
JyknCi0KLQotZGVmIHBhcnNlSW5wdXQoaW5wdXQpOgotICAgIHNldHRpbmdzID0ge30KLQotICAg
IHdpdGggb3BlbihpbnB1dCwgJ3InKSBhcyBmaWxlOgotICAgICAgICBmb3IgbGluZSBpbiBmaWxl
OgotICAgICAgICAgICAgaWYgbm90IGxpbmUuc3RhcnRzd2l0aCgnIycpIGFuZCBub3QgbGluZS5p
c3NwYWNlKCk6Ci0KLSAgICAgICAgICAgICAgICAobmFtZSwgb3B0aW9uc1N0cmluZykgPSBsaW5l
LnJzdHJpcCgpLnNwbGl0KCcgJywgMSkKLQotICAgICAgICAgICAgICAgIG9wdGlvbnMgPSByZS5z
cGxpdChyJyAqLCAqJywgb3B0aW9uc1N0cmluZykKLQotICAgICAgICAgICAgICAgIHNldHRpbmcg
PSBTZXR0aW5nKG5hbWUpCi0gICAgICAgICAgICAgICAgZm9yIG9wdGlvbiBpbiBvcHRpb25zOgot
ICAgICAgICAgICAgICAgICAgICAobmFtZSwgdmFsdWUpID0gcmUuc3BsaXQocicgKj0gKicsIG9w
dGlvbikKLSAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0gJ3R5cGUnKToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNldHRpbmcudHlwZSA9IHZhbHVlCi0gICAgICAgICAgICAgICAgICAg
IGlmIChuYW1lID09ICdpbml0aWFsJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5n
LmluaXRpYWwgPSB2YWx1ZQotICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAnY29uZGl0
aW9uYWwnKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcuY29uZGl0aW9uYWwgPSB2
YWx1ZQotICAgICAgICAgICAgICAgICAgICBpZiAobmFtZSA9PSAnb25DaGFuZ2UnKToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNldHRpbmcub25DaGFuZ2UgPSB2YWx1ZQotICAgICAgICAgICAg
ICAgICAgICBpZiAobmFtZSA9PSAnZ2V0dGVyJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
ZXR0aW5nLmdldHRlciA9IHZhbHVlCi0KLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBBU1NFUlQg
c29tZXRoaW5nIGFib3V0IHNldHRpbmcuaW5pdGlhbAotCi0gICAgICAgICAgICAgICAgc2V0dGlu
Z3Nbc2V0dGluZy5uYW1lXSA9IHNldHRpbmcKLQotICAgIHJldHVybiBzZXR0aW5ncwoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL1Nl
dHRpbmdzLnB5Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTEgKzAsMCAj
IwotKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzL19faW5pdF9fLnB5CShyZXZpc2lv
biAyMjM4MTYpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MvX19p
bml0X18ucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSwzICswLDAgQEAKLSMgUmVxdWlyZWQgZm9yIFB5
dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcwotCi1mcm9tIEdl
bmVyYXRlU2V0dGluZ3MgaW1wb3J0ICoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2Vu
ZXJhdGVTZXR0aW5ncy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dl
bmVyYXRlU2V0dGluZ3MucHkJKHJldmlzaW9uIDIyMzgxNikKKysrIFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDYwICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKGMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFy
ZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0jIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0j
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotaW1wb3J0IG9zLnBhdGgKLWltcG9ydCBzeXMKLWZyb20gb3B0cGFyc2UgaW1wb3J0
IE9wdGlvblBhcnNlcgotCi1mcm9tIEdlbmVyYXRlU2V0dGluZ3MgaW1wb3J0ICoKLQotCi1kZWYg
bWFpbigpOgotICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcih1c2FnZT0idXNhZ2U6ICVwcm9nIC0t
aW5wdXQgZmlsZSIpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0taW5wdXQnLCBkZXN0PSdpbnB1
dCcsIGhlbHA9J2ZpbGUgdG8gZ2VuZXJhdGUgc2V0dGluZ3MgZnJvbScsIG1ldGF2YXI9J2ZpbGUn
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLW91dHB1dERpcicsIGRlc3Q9J291dHB1dERpcics
IGhlbHA9J2RpcmVjdG9yeSB0byBnZW5lcmF0ZSBmaWxlIGluJywgbWV0YXZhcj0nZGlyJykKLQot
ICAgIChvcHRpb25zLCBhcmd1bWVudHMpID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotCi0gICAgaWYg
bm90IG9wdGlvbnMuaW5wdXQ6Ci0gICAgICAgIHByaW50ICJFcnJvcjogbXVzdCBwcm92aWRlIGFu
IGlucHV0IGZpbGUiCi0gICAgICAgIHBhcnNlci5wcmludF91c2FnZSgpCi0gICAgICAgIGV4aXQo
LTEpCi0KLSAgICBvdXRwdXREaXJlY3RvcnkgPSBvcHRpb25zLm91dHB1dERpciBpZiBvcHRpb25z
Lm91dHB1dERpciBlbHNlIG9zLmdldGN3ZCgpCi0KLSAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMo
b3V0cHV0RGlyZWN0b3J5KToKLSAgICAgICAgb3MubWFrZWRpcnMob3V0cHV0RGlyZWN0b3J5KQot
Ci0gICAgc2V0dGluZ3MgPSBwYXJzZUlucHV0KG9wdGlvbnMuaW5wdXQpCi0KLSAgICBnZW5lcmF0
ZVNldHRpbmdzSGVhZGVyRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKQotICAgIGdlbmVy
YXRlU2V0dGluZ3NJbXBsZW1lbnRhdGlvbkZpbGUob3V0cHV0RGlyZWN0b3J5LCBzZXR0aW5ncykK
LSAgICBnZW5lcmF0ZUludGVybmFsU2V0dGluZ3NJRExGaWxlKG91dHB1dERpcmVjdG9yeSwgc2V0
dGluZ3MpCi0gICAgZ2VuZXJhdGVJbnRlcm5hbFNldHRpbmdzSGVhZGVyRmlsZShvdXRwdXREaXJl
Y3RvcnksIHNldHRpbmdzKQotICAgIGdlbmVyYXRlSW50ZXJuYWxTZXR0aW5nc0ltcGxlbWVudGF0
aW9uRmlsZShvdXRwdXREaXJlY3RvcnksIHNldHRpbmdzKQotCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgbWFpbigpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29y
ZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucHkKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZXhl
Y3V0YWJsZQojIyAtMSArMCwwICMjCi0qClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3MucmIJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvU2NyaXB0cy9HZW5lcmF0ZVNldHRpbmdzLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTk2IEBACisjIS91c3IvYmluL2VudiBydWJ5CisjCisj
IENvcHlyaWdodCAoYykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyMgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisjIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCityZXF1aXJlICJmaWxldXRpbHMi
CityZXF1aXJlICdlcmInCityZXF1aXJlICdvcHRwYXJzZScKK3JlcXVpcmUgJ3lhbWwnCisKK29w
dGlvbnMgPSB7IAorICA6aW5wdXQgPT4gbmlsLAorICA6b3V0cHV0RGlyZWN0b3J5ID0+IG5pbAor
fQorb3B0cGFyc2UgPSBPcHRpb25QYXJzZXIubmV3IGRvIHxvcHRzfAorICAgIG9wdHMuYmFubmVy
ID0gIlVzYWdlOiAje0ZpbGUuYmFzZW5hbWUoJDApfSAtLWlucHV0IGZpbGUiCisKKyAgICBvcHRz
LnNlcGFyYXRvciAiIgorCisgICAgb3B0cy5vbigiLS1pbnB1dCBpbnB1dCIsICJmaWxlIHRvIGdl
bmVyYXRlIHNldHRpbmdzIGZyb20iKSB7IHxpbnB1dHwgb3B0aW9uc1s6aW5wdXRdID0gaW5wdXQg
fQorICAgIG9wdHMub24oIi0tb3V0cHV0RGlyIG91dHB1dCIsICJkaXJlY3RvcnkgdG8gZ2VuZXJh
dGUgZmlsZSBpbiIpIHsgfG91dHB1dHwgb3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSA9IG91dHB1
dCB9CitlbmQKKworb3B0cGFyc2UucGFyc2UhCisKK2lmICFvcHRpb25zWzppbnB1dF0KKyAgcHV0
cyBvcHRwYXJzZQorICBleGl0IC0xCitlbmQKKworaWYgIW9wdGlvbnNbOm91dHB1dERpcmVjdG9y
eV0KKyAgb3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSA9IERpci5nZXR3ZAorZW5kCisKK0ZpbGVV
dGlscy5ta2Rpcl9wKG9wdGlvbnNbOm91dHB1dERpcmVjdG9yeV0pCisKK3BhcnNlZFNldHRpbmdz
ID0gYmVnaW4KKyAgWUFNTC5sb2FkX2ZpbGUob3B0aW9uc1s6aW5wdXRdKQorcmVzY3VlIEFyZ3Vt
ZW50RXJyb3IgPT4gZQorICBwdXRzICJDb3VsZCBub3QgcGFyc2UgaW5wdXQgZmlsZTogI3tlLm1l
c3NhZ2V9IgorICBleGl0KC0xKQorZW5kCisKK2NsYXNzIFNldHRpbmcKKyAgYXR0cl9hY2Nlc3Nv
ciA6bmFtZQorICBhdHRyX2FjY2Vzc29yIDp0eXBlCisgIGF0dHJfYWNjZXNzb3IgOmluaXRpYWwK
KyAgYXR0cl9hY2Nlc3NvciA6Y29uZGl0aW9uYWwKKyAgYXR0cl9hY2Nlc3NvciA6b25DaGFuZ2UK
KyAgYXR0cl9hY2Nlc3NvciA6Z2V0dGVyCisgIAorICBkZWYgaW5pdGlhbGl6ZShuYW1lLCBvcHRz
KQorICAgIEBuYW1lID0gbmFtZQorICAgIEB0eXBlID0gb3B0c1sidHlwZSJdIHx8ICJib29sIgor
ICAgIEBpbml0aWFsID0gb3B0c1siaW5pdGlhbCJdCisgICAgQGNvbmRpdGlvbmFsID0gb3B0c1si
Y29uZGl0aW9uYWwiXQorICAgIEBvbkNoYW5nZSA9IG9wdHNbIm9uQ2hhbmdlIl0KKyAgICBAZ2V0
dGVyID0gb3B0c1siZ2V0dGVyIl0KKyAgZW5kCisKKyAgZGVmIHZhbHVlVHlwZT8KKyAgICBAdHlw
ZSAhPSAiU3RyaW5nIiAmJiBAdHlwZSAhPSAiVVJMIgorICBlbmQKKworICBkZWYgaWRsVHlwZQor
ICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBtb3JlIHR5cGVzIGluY2x1ZGluZyBlbnVtZXJh
dGUgdHlwZXMuCisgICAgaWYgQHR5cGUgPT0gImludCIKKyAgICAgICJsb25nIgorICAgIGVsc2lm
IEB0eXBlID09ICJ1bnNpZ25lZCIKKyAgICAgICJ1bnNpZ25lZCBsb25nIgorICAgIGVsc2lmIEB0
eXBlID09ICJkb3VibGUiCisgICAgICAiZG91YmxlIgorICAgIGVsc2lmIEB0eXBlID09ICJmbG9h
dCIKKyAgICAgICJmbG9hdCIKKyAgICBlbHNpZiBAdHlwZSA9PSAiU3RyaW5nIgorICAgICAgIkRP
TVN0cmluZyIKKyAgICBlbHNpZiBAdHlwZSA9PSAiYm9vbCIKKyAgICAgICJib29sZWFuIgorICAg
IGVsc2UKKyAgICAgIG5pbAorICAgIGVuZAorICBlbmQKKworICBkZWYgcGFyYW1ldGVyVHlwZQor
ICAgIGlmIHZhbHVlVHlwZT8KKyAgICAgIEB0eXBlCisgICAgZWxzZQorICAgICAgImNvbnN0ICN7
QHR5cGV9JiIKKyAgICBlbmQKKyAgZW5kCisKKyAgZGVmIGhhc0NvbXBsZXhTZXR0ZXI/CisgICAg
QG9uQ2hhbmdlICE9IG5pbAorICBlbmQKKworICBkZWYgc2V0dGVyRnVuY3Rpb25OYW1lCisgICAg
aWYgQG5hbWUuc3RhcnRfd2l0aD8oImNzcyIsICJ4c3MiLCAiZnRwIiwgImRvbSIsICJkbnMiKQor
ICAgICAgInNldCIgKyBAbmFtZVswLi4yXS51cGNhc2UgKyBAbmFtZVszLi5AbmFtZS5sZW5ndGhd
CisgICAgZWxzZQorICAgICAgInNldCIgKyBAbmFtZVswXS51cGNhc2UgKyBAbmFtZVsxLi5AbmFt
ZS5sZW5ndGhdCisgICAgZW5kCisgIGVuZAorCisgIGRlZiBnZXR0ZXJGdW5jdGlvbk5hbWUKKyAg
ICBAZ2V0dGVyIHx8IEBuYW1lCisgIGVuZAorZW5kCisKK2NsYXNzIENvbmRpdGlvbmFsCisgIGF0
dHJfYWNjZXNzb3IgOmNvbmRpdGlvbgorICBhdHRyX2FjY2Vzc29yIDpzZXR0aW5ncworICBhdHRy
X2FjY2Vzc29yIDpib29sU2V0dGluZ3MKKyAgYXR0cl9hY2Nlc3NvciA6bm9uQm9vbFNldHRpbmdz
CisgIGF0dHJfYWNjZXNzb3IgOnNldHRpbmdzV2l0aENvbXBsZXhTZXR0ZXJzCisKKyAgZGVmIGlu
aXRpYWxpemUoY29uZGl0aW9uLCBzZXR0aW5ncykKKyAgICBAY29uZGl0aW9uID0gY29uZGl0aW9u
CisgICAgQHNldHRpbmdzID0gc2V0dGluZ3MKKyAgICAKKyAgICBAYm9vbFNldHRpbmdzID0gQHNl
dHRpbmdzLnNlbGVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUgPT0gImJvb2wiIH0KKyAgICBA
bm9uQm9vbFNldHRpbmdzID0gQHNldHRpbmdzLnJlamVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5
cGUgPT0gImJvb2wiIH0KKyAgICBAc2V0dGluZ3NXaXRoQ29tcGxleFNldHRlcnMgPSBAc2V0dGlu
Z3Muc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuaGFzQ29tcGxleFNldHRlcj8gfQorICBlbmQK
K2VuZAorCitjbGFzcyBTZXR0aW5ncworICBhdHRyX2FjY2Vzc29yIDpzZXR0aW5ncworICBhdHRy
X2FjY2Vzc29yIDp1bmNvbmRpdGlvbmFsU2V0dGluZworICBhdHRyX2FjY2Vzc29yIDp1bmNvbmRp
dGlvbmFsQm9vbFNldHRpbmcKKyAgYXR0cl9hY2Nlc3NvciA6dW5jb25kaXRpb25hbE5vbkJvb2xT
ZXR0aW5nCisgIGF0dHJfYWNjZXNzb3IgOnVuY29uZGl0aW9uYWxTZXR0aW5nV2l0aENvbXBsZXhT
ZXR0ZXJzCisgIGF0dHJfYWNjZXNzb3IgOmNvbmRpdGlvbmFscworICAKKyAgZGVmIGluaXRpYWxp
emUoaGFzaCkKKyAgICBAc2V0dGluZ3MgPSBbXQorICAgIGhhc2guZWFjaCBkbyB8bmFtZSwgb3B0
aW9uc3wKKyAgICAgIEBzZXR0aW5ncyA8PCBTZXR0aW5nLm5ldyhuYW1lLCBvcHRpb25zKQorICAg
IGVuZAorICAgIEBzZXR0aW5ncy5zb3J0ISB7IHx4LCB5fCB4Lm5hbWUgPD0+IHkubmFtZSB9Cisg
ICAgCisgICAgQHVuY29uZGl0aW9uYWxTZXR0aW5nID0gQHNldHRpbmdzLnJlamVjdCB7IHxzZXR0
aW5nfCBzZXR0aW5nLmNvbmRpdGlvbmFsIH0KKyAgICBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5n
ID0gQHVuY29uZGl0aW9uYWxTZXR0aW5nLnNlbGVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUg
PT0gImJvb2wiIH0KKyAgICBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nID0gQHVuY29uZGl0
aW9uYWxTZXR0aW5nLnJlamVjdCB7IHxzZXR0aW5nfCBzZXR0aW5nLnR5cGUgPT0gImJvb2wiIH0K
KyAgICBAdW5jb25kaXRpb25hbFNldHRpbmdXaXRoQ29tcGxleFNldHRlcnMgPSBAdW5jb25kaXRp
b25hbFNldHRpbmcuc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuaGFzQ29tcGxleFNldHRlcj8g
fQorCisgICAgQGNvbmRpdGlvbmFscyA9IFtdCisgICAgY29uZGl0aW9uYWxzTWFwID0ge30KKyAg
ICBAc2V0dGluZ3Muc2VsZWN0IHsgfHNldHRpbmd8IHNldHRpbmcuY29uZGl0aW9uYWwgfS5lYWNo
IGRvIHxzZXR0aW5nfAorICAgICAgaWYgIWNvbmRpdGlvbmFsc01hcFtzZXR0aW5nLmNvbmRpdGlv
bmFsXQorICAgICAgICBjb25kaXRpb25hbHNNYXBbc2V0dGluZy5jb25kaXRpb25hbF0gPSBbXQor
ICAgICAgZW5kCisKKyAgICAgIGNvbmRpdGlvbmFsc01hcFtzZXR0aW5nLmNvbmRpdGlvbmFsXSA8
PCBzZXR0aW5nCisgICAgZW5kCisgICAgY29uZGl0aW9uYWxzTWFwLmVhY2ggZG8gfGtleSwgdmFs
dWV8CisgICAgICBAY29uZGl0aW9uYWxzIDw8IENvbmRpdGlvbmFsLm5ldyhrZXksIHZhbHVlKQor
ICAgIGVuZAorICAgIEBjb25kaXRpb25hbHMuc29ydCEgeyB8eCwgeXwgeC5jb25kaXRpb24gPD0+
IHkuY29uZGl0aW9uIH0KKyAgZW5kCisKKyAgZGVmIHJlbmRlclRvRmlsZSh0ZW1wbGF0ZSwgZmls
ZSkKKyAgICB0ZW1wbGF0ZSA9IEZpbGUuam9pbihGaWxlLmRpcm5hbWUoX19GSUxFX18pLCB0ZW1w
bGF0ZSkKKworICAgIG91dHB1dCA9IEVSQi5uZXcoRmlsZS5yZWFkKHRlbXBsYXRlKSwgMCwgIi0i
KS5yZXN1bHQoYmluZGluZykKKyAgICBGaWxlLm9wZW4oZmlsZSwgIncrIikgZG8gfGZ8CisgICAg
ICBmLndyaXRlKG91dHB1dCkKKyAgICBlbmQKKyAgZW5kCitlbmQKKworc2V0dGluZ3MgPSBTZXR0
aW5ncy5uZXcocGFyc2VkU2V0dGluZ3MpCitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdz
VGVtcGxhdGVzL1NldHRpbmdzLmguZXJiIiwgRmlsZS5qb2luKG9wdGlvbnNbOm91dHB1dERpcmVj
dG9yeV0sICJTZXR0aW5ncy5oIikpCitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdzVGVt
cGxhdGVzL1NldHRpbmdzLmNwcC5lcmIiLCBGaWxlLmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0
b3J5XSwgIlNldHRpbmdzLmNwcCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJTZXR0aW5nc1Rl
bXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmlkbC5lcmIiLCBGaWxlLmpvaW4ob3B0
aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaWRsIikp
CitzZXR0aW5ncy5yZW5kZXJUb0ZpbGUoIlNldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGlu
Z3NHZW5lcmF0ZWQuaC5lcmIiLCBGaWxlLmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwg
IkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCIpKQorc2V0dGluZ3MucmVuZGVyVG9GaWxlKCJT
ZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5lcmIiLCBGaWxl
LmpvaW4ob3B0aW9uc1s6b3V0cHV0RGlyZWN0b3J5XSwgIkludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwIikpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL0dl
bmVyYXRlU2V0dGluZ3MucmIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTAs
MCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdz
VGVtcGxhdGVzL0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYgkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0ludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQuY3BwLmVyYgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4IEBACisv
KgorICogVEhJUyBGSUxFIFdBUyBBVVRPTUFUSUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQu
CisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQuaCIKKworI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTZXR0aW5n
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6
OkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQoUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdl
KQorPCUtIGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcu
aWRsVHlwZSAtJT4KKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUo
PCU9IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorPCUtIGVuZCAtJT4KKyAgICAsIG1fPCU9IEBz
ZXR0aW5nLm5hbWUgJT4ocGFnZS0+c2V0dGluZ3MoKS48JT0gQHNldHRpbmcuZ2V0dGVyRnVuY3Rp
b25OYW1lICU+KCkpCis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+CisjZW5kaWYKKzwl
LSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK3sKK30KKworSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZDo6fkludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQoKQoreworfQorCit2b2lk
IEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQorewor
PCUtIGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcuaWRs
VHlwZSAtJT4KKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNpZiBFTkFCTEUoPCU9
IEBzZXR0aW5nLmNvbmRpdGlvbmFsICU+KQorPCUtIGVuZCAtJT4KKyAgICBtX3BhZ2UtPnNldHRp
bmdzKCkuPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAlPihtXzwlPSBAc2V0dGluZy5u
YW1lICU+KTsKKzwlLSBpZiBAc2V0dGluZy5jb25kaXRpb25hbCAtJT4KKyNlbmRpZgorPCUtIGVu
ZCAtJT4KKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorfQorCis8JS0gZm9yIEBzZXR0aW5nIGlu
IEBzZXR0aW5ncyBkbyAtJT4KKzwlLSBpZiBAc2V0dGluZy5pZGxUeXBlIC0lPgordm9pZCBJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+
KDwlPSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KQorewor
PCUtIGlmIEBzZXR0aW5nLmNvbmRpdGlvbmFsIC0lPgorI2lmIEVOQUJMRSg8JT0gQHNldHRpbmcu
Y29uZGl0aW9uYWwgJT4pCisgICAgbV9wYWdlLT5zZXR0aW5ncygpLjwlPSBAc2V0dGluZy5zZXR0
ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworI2VuZGlmCis8JS0gZWxzZSAtJT4KKyAg
ICBtX3BhZ2UtPnNldHRpbmdzKCkuPCU9IEBzZXR0aW5nLnNldHRlckZ1bmN0aW9uTmFtZSAlPig8
JT0gQHNldHRpbmcubmFtZSAlPik7Cis8JS0gZW5kIC0lPgorfQorCis8JS0gZW5kIC0lPgorPCUt
IGVuZCAtJT4KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oLmVyYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVzL0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaC5lcmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9JbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVk
LmguZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBUSElTIEZJTEUg
V0FTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsK
KworY2xhc3MgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCA6IHB1YmxpYyBSZWZDb3VudGVkPElu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQ+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkKFBhZ2UqKTsKKyAgICB2aXJ0dWFsIH5JbnRlcm5hbFNldHRpbmdz
R2VuZXJhdGVkKCk7CisKKyAgICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKworPCUt
IGZvciBAc2V0dGluZyBpbiBAc2V0dGluZ3MgZG8gLSU+Cis8JS0gaWYgQHNldHRpbmcuaWRsVHlw
ZSAtJT4KKyAgICB2b2lkIDwlPSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBz
ZXR0aW5nLnBhcmFtZXRlclR5cGUgJT4gPCU9IEBzZXR0aW5nLm5hbWUgJT4pOworPCUtIGVuZCAt
JT4KKzwlLSBlbmQgLSU+CisKK3ByaXZhdGU6CisgICAgUGFnZSogbV9wYWdlOworCis8JS0gZm9y
IEBzZXR0aW5nIGluIEBzZXR0aW5ncyBkbyAtJT4KKzwlLSBpZiBAc2V0dGluZy5pZGxUeXBlIC0l
PgorPCUtIGlmIEBzZXR0aW5nLmNvbmRpdGlvbmFsIC0lPgorI2lmIEVOQUJMRSg8JT0gQHNldHRp
bmcuY29uZGl0aW9uYWwgJT4pCis8JS0gZW5kIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+
IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0gaWYgQHNldHRpbmcuY29uZGl0aW9uYWwgLSU+
CisjZW5kaWYKKzwlLSBlbmQgLSU+Cis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGlu
Z3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0
aW5nc0dlbmVyYXRlZC5pZGwuZXJiCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL1Nj
cmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5pZGwuZXJi
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBUSElTIEZJTEUgV0FTIEFV
VE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAqCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
Tm9JbnRlcmZhY2VPYmplY3QsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9F
WFBPUlQsCitdIGludGVyZmFjZSBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkIHsKKzwlLSBmb3Ig
QHNldHRpbmcgaW4gQHNldHRpbmdzIGRvIC0lPgorPCUtIGlmIEBzZXR0aW5nLmlkbFR5cGUgLSU+
CisgICAgdm9pZCA8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwlPSBAc2V0dGlu
Zy5pZGxUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KTsKKzwlLSBlbmQgLSU+Cis8JS0gZW5k
IC0lPgorfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMv
U2V0dGluZ3MuY3BwLmVyYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1Nl
dHRpbmdzVGVtcGxhdGVzL1NldHRpbmdzLmNwcC5lcmIJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5jcHAuZXJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogVEhJUyBGSUxFIFdBUyBBVVRPTUFU
SUNBTExZIEdFTkVSQVRFRCwgRE8gTk9UIEVESVQuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
UmVmPFNldHRpbmdzPiBTZXR0aW5nczo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2V0dGluZ3MocGFnZSkpOworfQorCitTZXR0aW5nczo6U2V0dGluZ3Mo
UGFnZSogcGFnZSkKKyAgICA6IFNldHRpbmdzQmFzZShwYWdlKQorPCUtIGZvciBAc2V0dGluZyBp
biBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nIGRvIC0lPgorICAgICwgbV88JT0gQHNldHRp
bmcubmFtZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+Cis8JS0gZm9y
IEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0lPgorPCUtIGlmIEBjb25kaXRpb25h
bC5ub25Cb29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29uZGl0
aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwubm9u
Qm9vbFNldHRpbmdzIC0lPgorICAgICwgbV88JT0gQHNldHRpbmcubmFtZSAlPig8JT0gQHNldHRp
bmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBlbmQgLSU+Cis8JS0gZW5k
IC0lPgorPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5nIGRvIC0l
PgorICAgICwgbV88JT0gQHNldHRpbmcubmFtZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikK
KzwlLSBlbmQgLSU+Cis8JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0l
PgorPCUtIGlmIEBjb25kaXRpb25hbC5ib29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYg
RU5BQkxFKDwlPSBAY29uZGl0aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBp
biBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzIC0lPgorICAgICwgbV88JT0gQHNldHRpbmcubmFt
ZSAlPig8JT0gQHNldHRpbmcuaW5pdGlhbCAlPikKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBl
bmQgLSU+Cis8JS0gZW5kIC0lPgoreworfQorCitTZXR0aW5nczo6flNldHRpbmdzKCkKK3sKK30K
KworPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbFNldHRpbmdXaXRoQ29tcGxleFNl
dHRlcnMgZG8gLSU+Cit2b2lkIFNldHRpbmdzOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25O
YW1lICU+KDwlPSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+
KQoreworICAgIGlmIChtXzwlPSBAc2V0dGluZy5uYW1lICU+ID09IDwlPSBAc2V0dGluZy5uYW1l
ICU+KQorICAgICAgICByZXR1cm47CisgICAgbV88JT0gQHNldHRpbmcubmFtZSAlPiA9IDwlPSBA
c2V0dGluZy5uYW1lICU+OworICAgIDwlPSBAc2V0dGluZy5vbkNoYW5nZSAlPigpOworfQorCis8
JS0gZW5kIC0lPgorPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlvbmFscyBkbyAtJT4K
KzwlLSBpZiBAY29uZGl0aW9uYWwuc2V0dGluZ3NXaXRoQ29tcGxleFNldHRlcnMubGVuZ3RoICE9
IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29uZGl0aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZv
ciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwuc2V0dGluZ3NXaXRoQ29tcGxleFNldHRlcnMgLSU+
Cit2b2lkIFNldHRpbmdzOjo8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwlPSBA
c2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KQoreworICAgIGlm
IChtXzwlPSBAc2V0dGluZy5uYW1lICU+ID09IDwlPSBAc2V0dGluZy5uYW1lICU+KQorICAgICAg
ICByZXR1cm47CisgICAgbV88JT0gQHNldHRpbmcubmFtZSAlPiA9IDwlPSBAc2V0dGluZy5uYW1l
ICU+OworICAgIDwlPSBAc2V0dGluZy5vbkNoYW5nZSAlPigpOworfQorPCUtIGVuZCAtJT4KKyNl
bmRpZgorCis8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KK30KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1NjcmlwdHMvU2V0dGluZ3NUZW1wbGF0ZXMvU2V0dGluZ3MuaC5lcmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvU2NyaXB0cy9TZXR0aW5nc1RlbXBsYXRlcy9TZXR0aW5ncy5oLmVyYgko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9TY3JpcHRzL1NldHRpbmdzVGVtcGxhdGVz
L1NldHRpbmdzLmguZXJiCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBU
SElTIEZJTEUgV0FTIEFVVE9NQVRJQ0FMTFkgR0VORVJBVEVELCBETyBOT1QgRURJVC4KKyAqCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNldHRpbmdzQmFzZS5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFn
ZTsKKworY2xhc3MgU2V0dGluZ3MgOiBwdWJsaWMgU2V0dGluZ3NCYXNlLCBwdWJsaWMgUmVmQ291
bnRlZDxTZXR0aW5ncz4geworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNldHRpbmdzKTsgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTZXR0aW5ncz4g
Y3JlYXRlKFBhZ2UqKTsKKyAgICB+U2V0dGluZ3MoKTsKKworPCUtIGZvciBAc2V0dGluZyBpbiBA
dW5jb25kaXRpb25hbFNldHRpbmcgZG8gLSU+CisgICAgPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5
cGUgJT4gPCU9IEBzZXR0aW5nLmdldHRlckZ1bmN0aW9uTmFtZSAlPigpIGNvbnN0IHsgcmV0dXJu
IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47IH0gCisgICAgPCUtIGlmIEBzZXR0aW5nLmhhc0NvbXBs
ZXhTZXR0ZXI/IC0lPgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgPCU9IEBzZXR0aW5nLnNldHRl
ckZ1bmN0aW9uTmFtZSAlPig8JT0gQHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPik7CisgICAgPCUt
IGVsc2UgLSU+CisgICAgdm9pZCA8JT0gQHNldHRpbmcuc2V0dGVyRnVuY3Rpb25OYW1lICU+KDwl
PSBAc2V0dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5uYW1lICU+KSB7IG1fPCU9
IEBzZXR0aW5nLm5hbWUgJT4gPSA8JT0gQHNldHRpbmcubmFtZSAlPjsgfQorICAgIDwlLSBlbmQg
LSU+Cis8JS0gZW5kIC0lPgorCis8JS0gZm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxz
IGRvIC0lPgorI2lmIEVOQUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBm
b3IgQHNldHRpbmcgaW4gQGNvbmRpdGlvbmFsLnNldHRpbmdzIGRvIC0lPgorICAgIDwlPSBAc2V0
dGluZy5wYXJhbWV0ZXJUeXBlICU+IDwlPSBAc2V0dGluZy5nZXR0ZXJGdW5jdGlvbk5hbWUgJT4o
KSBjb25zdCB7IHJldHVybiBtXzwlPSBAc2V0dGluZy5uYW1lICU+OyB9IAorICAgIDwlLSBpZiBA
c2V0dGluZy5oYXNDb21wbGV4U2V0dGVyPyAtJT4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIDwl
PSBAc2V0dGluZy5zZXR0ZXJGdW5jdGlvbk5hbWUgJT4oPCU9IEBzZXR0aW5nLnBhcmFtZXRlclR5
cGUgJT4pOworICAgIDwlLSBlbHNlIC0lPgorICAgIHZvaWQgPCU9IEBzZXR0aW5nLnNldHRlckZ1
bmN0aW9uTmFtZSAlPig8JT0gQHNldHRpbmcucGFyYW1ldGVyVHlwZSAlPiA8JT0gQHNldHRpbmcu
bmFtZSAlPikgeyBtXzwlPSBAc2V0dGluZy5uYW1lICU+ID0gPCU9IEBzZXR0aW5nLm5hbWUgJT47
IH0KKyAgICA8JS0gZW5kIC0lPgorPCUtIGVuZCAtJT4KKyNlbmRpZgorCis8JS0gZW5kIC0lPgor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFNldHRpbmdzKFBhZ2UqKTsKKworPCUtIGZvciBAc2V0
dGluZyBpbiBAdW5jb25kaXRpb25hbE5vbkJvb2xTZXR0aW5nIGRvIC0lPgorICAgIDwlPSBAc2V0
dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT47Cis8JS0gZW5kIC0lPgorCis8JS0g
Zm9yIEBjb25kaXRpb25hbCBpbiBAY29uZGl0aW9uYWxzIGRvIC0lPgorPCUtIGlmIEBjb25kaXRp
b25hbC5ub25Cb29sU2V0dGluZ3MubGVuZ3RoICE9IDAgLSU+CisjaWYgRU5BQkxFKDwlPSBAY29u
ZGl0aW9uYWwuY29uZGl0aW9uICU+KQorPCUtIGZvciBAc2V0dGluZyBpbiBAY29uZGl0aW9uYWwu
bm9uQm9vbFNldHRpbmdzIC0lPgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0
aW5nLm5hbWUgJT47Cis8JS0gZW5kIC0lPgorI2VuZGlmCis8JS0gZW5kIC0lPgorPCUtIGVuZCAt
JT4KKworPCUtIGZvciBAc2V0dGluZyBpbiBAdW5jb25kaXRpb25hbEJvb2xTZXR0aW5nIGRvIC0l
PgorICAgIDwlPSBAc2V0dGluZy50eXBlICU+IG1fPCU9IEBzZXR0aW5nLm5hbWUgJT4gOiAxOwor
PCUtIGVuZCAtJT4KKworPCUtIGZvciBAY29uZGl0aW9uYWwgaW4gQGNvbmRpdGlvbmFscyBkbyAt
JT4KKzwlLSBpZiBAY29uZGl0aW9uYWwuYm9vbFNldHRpbmdzLmxlbmd0aCAhPSAwIC0lPgorI2lm
IEVOQUJMRSg8JT0gQGNvbmRpdGlvbmFsLmNvbmRpdGlvbiAlPikKKzwlLSBmb3IgQHNldHRpbmcg
aW4gQGNvbmRpdGlvbmFsLmJvb2xTZXR0aW5ncyAtJT4KKyAgICA8JT0gQHNldHRpbmcudHlwZSAl
PiBtXzwlPSBAc2V0dGluZy5uYW1lICU+IDogMTsKKzwlLSBlbmQgLSU+CisjZW5kaWYKKzwlLSBl
bmQgLSU+Cis8JS0gZW5kIC0lPgorfTsKKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjIzODE2KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDkwOCw4ICsxMDkwOCw2IEBACiAJCTdDMzlDMzZFMUREQkEzRTAwMEZFRkIy
OSAvKiBTVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFZhbHVlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDMzlDMzZGMUREQkEzRTAwMEZFRkIyOSAvKiBTVkdQYXRoU2VnTGlzdFZhbHVl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFZhbHVl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzM5QzM3MDFEREJBNDQwMDBGRUZC
MjkgLyogU1ZHUGF0aFNlZ0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU1ZHUGF0aFNlZ0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk3
QzNBOEM1RTFGN0Q3MkI0MDBGNDZFODQgLyogR2VuZXJhdGVTZXR0aW5ncyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZvbGRlcjsgbmFtZSA9IEdlbmVy
YXRlU2V0dGluZ3M7IHBhdGggPSBTY3JpcHRzL0dlbmVyYXRlU2V0dGluZ3M7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTdDM0E4QzYwMUY3RDcyQjUwMEY0NkU4NCAvKiBHZW5lcmF0ZVNl
dHRpbmdzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBuYW1lID0gR2VuZXJhdGVT
ZXR0aW5ncy5weTsgcGF0aCA9IFNjcmlwdHMvR2VuZXJhdGVTZXR0aW5ncy5weTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MzQTkxRTUxQzk2M0I4ODAwRDFBN0UzIC8qIENsaXBib2Fy
ZEFjY2Vzc1BvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwYm9h
cmRBY2Nlc3NQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MzQjc5NkYx
OTA4NzU3QjAwQjQ3QTJEIC8qIFVzZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVzc2FnZUhhbmRsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QzNCNzk3MDE5MDg3NTdCMDBCNDdBMkQgLyogVXNlck1lc3Nh
Z2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdl
SGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTExMjEsNiArMTExMTks
NyBAQAogCQk3Q0QzNDQxMjFGMzEwOEUyMDAwRENENDkgLyogSlNNdXRhdGlvbkNhbGxiYWNrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTXV0YXRpb25DYWxsYmFjay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDRDQ5NENBMUE4NkVCMUQwMDBBODdFQyAvKiBSZW5kZXJBdHRh
Y2htZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckF0
dGFjaG1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q0OTRDQjFBODZF
QjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJBdHRhY2htZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTdDREU3Mzk2MUY5QkQ1OTUwMDM5MDMxMiAvKiBTZXR0aW5ncy55YW1sICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFNldHRpbmdzLnlhbWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDREU4RUJDMUYxOTNCQzUwMDE2OEZFNyAvKiBDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1N0eWxlRGVjbGFyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0UxOTE0NzFGMkE5OEFGMDAyNzJGNzgg
LyogRmV0Y2hSZXF1ZXN0SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
ZXRjaFJlcXVlc3RJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRTE5MTQ5
MUYyQTk4QjAwMDI3MkY3OCAvKiBGZXRjaFJlcXVlc3RJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBGZXRjaFJlcXVlc3RJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0MDUxLDcgKzE0MDUwLDYgQEAKIAkJQkM1M0RBNDcxMTQzMTM0RDAwMEQ4MTdFIC8qIERP
TVdyYXBwZXJXb3JsZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
T01XcmFwcGVyV29ybGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzU4MjNG
NDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1ODI1RjIwQzBCODkzODAwNTNGMUI1IC8qIEpTQ1NT
U3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzU5REVGODE2OURFREMzMDAxNkFDMzQgLyogU2V0dGluZ3MuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU2V0dGluZ3MuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUExMkREMERD
MDQxNDgwMEM5QUZBRCAvKiBDU1NSZWZsZWN0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ1NTUmVmbGVjdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkM1QTEyREUwREMwNDE0ODAwQzlBRkFEIC8qIENTU1JlZmxlY3RWYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NSZWZsZWN0VmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1QTg2ODEwQzMzNjc2MDAwRUVBNjQ5IC8qIERP
TVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9N
U2VsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTMyLDkgKzE3
NTMwLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRjQ4Mzg5
NzkxRTFERDIzQTAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5ICovLAotCQkJCTdDM0E4QzVFMUY3
RDcyQjQwMEY0NkU4NCAvKiBHZW5lcmF0ZVNldHRpbmdzICovLAogCQkJCTM3MTdEN0U1MTdFQ0Mz
QTYwMDNDMjc2RCAvKiBleHRyYWN0LWxvY2FsaXphYmxlLXN0cmluZ3MucGwgKi8sCi0JCQkJN0Mz
QThDNjAxRjdENzJCNTAwRjQ2RTg0IC8qIEdlbmVyYXRlU2V0dGluZ3MucHkgKi8sCiAJCQkJMzdE
NDU2RkIxQTlBNTBCNjAwMzMzMEExIC8qIExvY2FsaXphYmxlU3RyaW5ncy5wbSAqLywKIAkJCSk7
CiAJCQluYW1lID0gU2NyaXB0czsKQEAgLTE5NTcxLDcgKzE5NTY3LDcgQEAKIAkJCQlCQ0QwRTBG
OTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8sCiAJCQkJOTc0RDJE
QTIxNDZBNTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNwcCAqLywKIAkJCQk5NzREMkRB
MzE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xpY3kuaCAqLywKLQkJCQlCQzU5REVGODE2
OURFREMzMDAxNkFDMzQgLyogU2V0dGluZ3MuaW4gKi8sCisJCQkJN0NERTczOTYxRjlCRDU5NTAw
MzkwMzEyIC8qIFNldHRpbmdzLnlhbWwgKi8sCiAJCQkJN0NDNjYwOUIxRjkzMDU3OTAwRDUwMEU5
IC8qIFNldHRpbmdzQmFzZS5jcHAgKi8sCiAJCQkJN0NDNjYwOTkxRjkzMDU3ODAwRDUwMEU5IC8q
IFNldHRpbmdzQmFzZS5oICovLAogCQkJCTdDNkVGRUVBMUY5NDZBMkUwMEZGQUQ0MSAvKiBTZXR0
aW5nc0RlZmF1bHRWYWx1ZXMuaCAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkocmV2
aXNpb24gMjIzODE2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgkobm9uZXhp
c3RlbnQpCkBAIC0xLDM2MyArMCwwIEBACi0jIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZ2xvYmFs
IHNldHRpbmdzLgotIyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZXR0ZXJzL3NldHRl
cnMuCi0KLWRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lIHR5cGU9U3RyaW5nCi1mdHBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGggdHlwZT1TdHJpbmcKLWxvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCB0eXBlPVN0
cmluZwotZWRpdGFibGVMaW5rQmVoYXZpb3IgdHlwZT1FZGl0YWJsZUxpbmtCZWhhdmlvciwgaW5p
dGlhbD1FZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3IKLXRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IgdHlwZT1UZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
LCBpbml0aWFsPVRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkCi1wZGZJ
bWFnZUNhY2hpbmdQb2xpY3kgdHlwZT1QREZJbWFnZUNhY2hpbmdQb2xpY3ksIGluaXRpYWwgPSBQ
REZJbWFnZUNhY2hpbmdEZWZhdWx0Ci1wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyB0eXBl
PWRvdWJsZSwgaW5pdGlhbD0xCi0KLSMgU2V0cyB0aGUgbWFnbmlmaWNhdGlvbiB2YWx1ZSBmb3Ig
dmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLiAgSWYgdGhlCi0jIG1hZ25pZmljYXRpb24gdmFsdWUg
aXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlzYXBwZWFycyBhdXRvbWF0aWNhbGx5IGFmdGVy
Ci0jIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8gMTAwMCBzZWNvbmRzLiAgSWYgTiBpcyBlcXVhbCB0
byBvciBsZXNzIHRoYW4gMCwgYQotIyB2YWxpZGF0aW9uIG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBl
YXJzIGF1dG9tYXRpY2FseS4KLXZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uIHR5
cGU9aW50LCBpbml0aWFsPTUwCi0KLSMgTnVtYmVyIG9mIHBpeGVscyBiZWxvdyB3aGljaCAyRCBj
YW52YXMgaXMgcmVuZGVyZWQgaW4gc29mdHdhcmUKLSMgZXZlbiBpZiBoYXJkd2FyZSBhY2NlbGVy
YXRpb24gaXMgZW5hYmxlZC4KLSMgSGFyZHdhcmUgYWNjZWxlcmF0aW9uIGlzIHVzZWZ1bCBmb3Ig
bGFyZ2UgY2FudmFzZXMgd2hlcmUgaXQgY2FuIGF2b2lkIHRoZQotIyBwaXhlbCBiYW5kd2lkdGgg
YmV0d2VlbiB0aGUgQ1BVIGFuZCBHUFUuIEJ1dCBHUFUgYWNjZWxlcmF0aW9uIGNvbWVzIGF0Ci0j
IGEgcHJpY2UgLSBleHRyYSBiYWNrLWJ1ZmZlciBhbmQgdGV4dHVyZSBjb3B5LiBTbWFsbCBjYW52
YXNlcyBhcmUgYWxzbwotIyB3aWRlbHkgdXNlZCBmb3Igc3R5bGl6ZWQgZm9udHMuIEFudGktYWxp
YXNpbmcgdGV4dCBpbiBoYXJkd2FyZSBhdCB0aGF0Ci0jIHNjYWxlIGlzIGdlbmVyYWxseSBzbG93
ZXIuIFNvIGJlbG93IGEgY2VydGFpbiBzaXplIGl0IGlzIGJldHRlciB0bwotIyBkcmF3IGNhbnZh
cyBpbiBzb2Z0d2FyZS4KLW1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSB0eXBlPWludCwg
aW5pdGlhbD0yNTcqMjU2Ci0KLW1heGltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZSB0eXBlPXVu
c2lnbmVkLCBpbml0aWFsPTUxMjAqMjg4MAotCi1sYXlvdXRGYWxsYmFja1dpZHRoIHR5cGU9aW50
LCBpbml0aWFsPTk4MAotZGV2aWNlV2lkdGggdHlwZT1pbnQsIGluaXRpYWw9MAotZGV2aWNlSGVp
Z2h0IHR5cGU9aW50LCBpbml0aWFsPTAKLQotIyBBbGxvdyBjbGllbnRzIGNvbmNlcm5lZCB3aXRo
IG1lbW9yeSBjb25zdW1wdGlvbiB0byBzZXQgYSBxdW90YSBvbiBzZXNzaW9uIHN0b3JhZ2UKLSMg
c2luY2UgdGhlIG1lbW9yeSB1c2VkIHdvbid0IGJlIHJlbGVhc2VkIHVudGlsIHRoZSBQYWdlIGlz
IGRlc3Ryb3llZC4KLXNlc3Npb25TdG9yYWdlUXVvdGEgdHlwZT11bnNpZ25lZCwgaW5pdGlhbD1T
dG9yYWdlTWFwOjpub1F1b3RhCi0KLW1pbmltdW1Gb250U2l6ZSB0eXBlPWludCwgaW5pdGlhbD0w
LCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLW1pbmltdW1Mb2dpY2Fs
Rm9udFNpemUgdHlwZT1pbnQsIGluaXRpYWw9MCwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHls
ZUluQWxsRnJhbWVzCi1kZWZhdWx0Rm9udFNpemUgdHlwZT1pbnQsIGluaXRpYWw9MTYsIG9uQ2hh
bmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotZGVmYXVsdEZpeGVkRm9udFNpemUg
dHlwZT1pbnQsIGluaXRpYWw9MCwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJh
bWVzCi0KLWVkaXRpbmdCZWhhdmlvclR5cGUgdHlwZT1FZGl0aW5nQmVoYXZpb3JUeXBlLCBpbml0
aWFsPWVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgpCi1tYXhpbXVtSFRNTFBhcnNlckRP
TVRyZWVEZXB0aCB0eXBlPXVuc2lnbmVkLCBpbml0aWFsPWRlZmF1bHRNYXhpbXVtSFRNTFBhcnNl
ckRPTVRyZWVEZXB0aAotCi0jIFRoaXMgc2V0dGluZyBvbmx5IGFmZmVjdHMgc2l0ZSBpY29uIGlt
YWdlIGxvYWRpbmcgaWYgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcgaXMgZmFsc2Ug
YW5kIHRoaXMgc2V0dGluZyBpcyB0cnVlLgotIyBBbGwgb3RoZXIgcGVybXV0YXRpb25zIHN0aWxs
IGhlZWQgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IHNldHRpbmcuCi1sb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyBpbml0aWFsPWZhbHNlCi0KLWNhcmV0QnJvd3NpbmdF
bmFibGVkIGluaXRpYWw9ZmFsc2UKLXByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2ggaW5p
dGlhbD1mYWxzZQotbG9jYWxTdG9yYWdlRW5hYmxlZCBpbml0aWFsPWZhbHNlCi1hbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBpbml0aWFsPXRydWUKLWFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMcyBpbml0aWFsPXRydWUKLW5lZWRzU3RvcmFnZUFjY2Vzc0Zyb21GaWxlVVJMc1F1aXJr
IGluaXRpYWw9dHJ1ZQotamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSBpbml0
aWFsPWZhbHNlCi1qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIGluaXRpYWw9ZmFsc2UKLXNo
b3VsZFByaW50QmFja2dyb3VuZHMgaW5pdGlhbD1mYWxzZQotdXNlc0Rhc2hib2FyZEJhY2t3YXJk
Q29tcGF0aWJpbGl0eU1vZGUgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9REFTSEJPQVJEX1NV
UFBPUlQKLWNsaXBib2FyZEFjY2Vzc1BvbGljeSB0eXBlPUNsaXBib2FyZEFjY2Vzc1BvbGljeSwg
aW5pdGlhbD1DbGlwYm9hcmRBY2Nlc3NQb2xpY3k6OlJlcXVpcmVzVXNlckdlc3R1cmUKLQotdGV4
dEFyZWFzQXJlUmVzaXphYmxlIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcwotYXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQgaW5pdGlhbD10cnVl
LCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKLXVzZXJTdHlsZVNoZWV0
TG9jYXRpb24gdHlwZT1VUkwsIG9uQ2hhbmdlPXVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2Vk
Ci1hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCBpbml0aWFsPXRydWUsIG9uQ2hhbmdlPXNl
dE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotYWNjZWxlcmF0ZWRDb21wb3NpdGVkQW5pbWF0
aW9uc0VuYWJsZWQgaW5pdGlhbD10cnVlLCBvbkNoYW5nZT1zZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMKLXNob3dEZWJ1Z0JvcmRlcnMgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9c2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1zaG93UmVwYWludENvdW50ZXIgaW5pdGlhbD1mYWxz
ZSwgb25DaGFuZ2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi12aXNpYmxlRGVidWdP
dmVybGF5UmVnaW9ucyB0eXBlPURlYnVnT3ZlcmxheVJlZ2lvbnMsIGluaXRpYWw9MAotc2hvd1Rp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yIGluaXRpYWw9ZmFsc2UKLXJlc291cmNlVXNhZ2VPdmVybGF5
VmlzaWJsZSBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1yZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2li
bGVDaGFuZ2VkLCBjb25kaXRpb249UkVTT1VSQ0VfVVNBR0UKLQotIyBUaGlzIGlzIGEgcXVpcmsg
d2UgYXJlIHByby1hY3RpdmVseSBhcHBseWluZyB0byBvbGQgYXBwbGljYXRpb25zLiBJdCBjaGFu
Z2VzIGtleWJvYXJkIGV2ZW50IGRpc3BhdGNoaW5nLAotIyBtYWtpbmcga2V5SWRlbnRpZmllciBh
dmFpbGFibGUgb24ga2V5cHJlc3MgZXZlbnRzLCBtYWtpbmcgY2hhckNvZGUgYXZhaWxhYmxlIG9u
IGtleWRvd24va2V5dXAgZXZlbnRzLAotIyBhbmQgZ2V0dGluZyBrZXlwcmVzcyBkaXNwYXRjaGVk
IGluIG1vcmUgY2FzZXMuCi1uZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrcyBp
bml0aWFsPWZhbHNlCi0KLXRyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0IGluaXRpYWw9
ZmFsc2UKLXNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQgaW5pdGlhbD10cnVlCi1wYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnMgaW5pdGlhbD1mYWxzZQotc2hvd3NVUkxzSW5Ub29sVGlwcyBpbml0
aWFsPWZhbHNlCi1zaG93c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCBpbml0aWFsPWZhbHNlCi1m
b3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzIGluaXRpYWw9ZmFsc2UKLWRldmVsb3BlckV4dHJhc0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQotc2NyaXB0TWFya3VwRW5hYmxlZCBpbml0aWFsPXRydWUKLW5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzIGluaXRpYWw9ZmFsc2UKLWRvbVRpbWVyc1Rocm90dGxpbmdF
bmFibGVkIGluaXRpYWw9dHJ1ZQotd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQgaW5pdGlhbD1m
YWxzZSwgY29uZGl0aW9uYWw9V0VCX0FSQ0hJVkUKLWxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQotb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkIGlu
aXRpYWw9ZmFsc2UKLWVuZm9yY2VDU1NNSU1FVHlwZUluTm9RdWlya3NNb2RlIGluaXRpYWw9dHJ1
ZQotdXNlc0VuY29kaW5nRGV0ZWN0b3IgaW5pdGlhbD1mYWxzZQotYWxsb3dTY3JpcHRzVG9DbG9z
ZVdpbmRvd3MgaW5pdGlhbD1mYWxzZQotY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyBpbml0
aWFsPWZhbHNlCi1hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKLWRpc3Bs
YXlMaXN0RHJhd2luZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotYWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZCBpbml0aWFsPWZhbHNlCi11c2VMZWdhY3lUZXh0QWxpZ25Qb3NpdGlvbmVkRWxlbWVudEJl
aGF2aW9yIGluaXRpYWw9ZmFsc2UKLWphdmFTY3JpcHRSdW50aW1lRmxhZ3MgdHlwZT1KU0M6OlJ1
bnRpbWVGbGFncwotCi0jIEZJWE1FOiBUaGlzIHNob3VsZCByZWFsbHkgYmUgZGlzYWJsZWQgYnkg
ZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZSBmZWF0
dXJlIGRvd25sb2FkIGZpbGVzCi0jIHRoZXkgY2FuJ3QgdXNlIGJ5LiBMZWF2aW5nIGVuYWJsZWQg
Zm9yIG5vdyB0byBub3QgY2hhbmdlIGV4aXN0aW5nIGJlaGF2aW9yLgotZG93bmxvYWRhYmxlQmlu
YXJ5Rm9udHNFbmFibGVkIGluaXRpYWw9dHJ1ZQotCi14c3NBdWRpdG9yRW5hYmxlZCBpbml0aWFs
PWZhbHNlCi1hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQgaW5p
dGlhbD1kZWZhdWx0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVk
Ci1hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLXJ1YmJlckJhbmRpbmdGb3JTdWJTY3JvbGxhYmxlUmVnaW9uc0VuYWJsZWQgaW5pdGlh
bD10cnVlLCBjb25kaXRpb25hbD1SVUJCRVJfQkFORElORwotCi1leHBlcmltZW50YWxOb3RpZmlj
YXRpb25zRW5hYmxlZCBpbml0aWFsPWZhbHNlCi13ZWJHTEVuYWJsZWQgaW5pdGlhbD1mYWxzZQot
d2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkIGluaXRpYWw9dHJ1ZQotZm9yY2VTb2Z0d2FyZVdl
YkdMUmVuZGVyaW5nIGluaXRpYWw9ZmFsc2UKLWZvcmNlV2ViR0xVc2VzTG93UG93ZXIgaW5pdGlh
bD1mYWxzZQotYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotbG9hZERl
ZmVycmluZ0VuYWJsZWQgaW5pdGlhbD10cnVlCi13ZWJBdWRpb0VuYWJsZWQgaW5pdGlhbD1mYWxz
ZQotcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkIGluaXRpYWw9ZmFsc2UKLWZ1bGxTY3JlZW5F
bmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPUZVTExTQ1JFRU5fQVBJCi1hc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLSMgVGhpcyBmZWF0dXJl
IHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lgot
aW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi11c2VQcmVI
VE1MNVBhcnNlclF1aXJrcyBpbml0aWFsPWZhbHNlCi1oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQg
aW5pdGlhbD1mYWxzZQotY3Jvc3NPcmlnaW5DaGVja0luR2V0TWF0Y2hlZENTU1J1bGVzRGlzYWJs
ZWQgaW5pdGlhbD1mYWxzZQotZm9yY2VDb21wb3NpdGluZ01vZGUgaW5pdGlhbD1mYWxzZQotc2hv
dWxkSW5qZWN0VXNlclNjcmlwdHNJbkluaXRpYWxFbXB0eURvY3VtZW50IGluaXRpYWw9ZmFsc2UK
LWZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUgaW5pdGlhbD1mYWxzZQotYWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQotYWxsb3dSdW5uaW5nT2ZJbnNl
Y3VyZUNvbnRlbnQgaW5pdGlhbD1mYWxzZQotcmVxdWlyZXNVc2VyR2VzdHVyZVRvTG9hZFZpZGVv
IGluaXRpYWw9ZGVmYXVsdFJlcXVpcmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbwotdmlkZW9QbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgaW5pdGlhbD1kZWZhdWx0VmlkZW9QbGF5YmFja1JlcXVp
cmVzVXNlckdlc3R1cmUKLWF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlIGluaXRpYWw9
ZGVmYXVsdEF1ZGlvUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlCi1tYWluQ29udGVudFVzZXJH
ZXN0dXJlT3ZlcnJpZGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKLW1lZGlhVXNlckdlc3R1cmVJbmhl
cml0c0Zyb21Eb2N1bWVudCBpbml0aWFsPWZhbHNlCi1hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
IGluaXRpYWw9ZGVmYXVsdEFsbG93c0lubGluZU1lZGlhUGxheWJhY2sKLWFsbG93c0lubGluZU1l
ZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gaW5pdGlhbD10cnVlCi1pbmxpbmVNZWRpYVBsYXli
YWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBpbml0aWFsPWRlZmF1bHRJbmxpbmVNZWRp
YVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZQotYWxsb3dzUGljdHVyZUluUGlj
dHVyZU1lZGlhUGxheWJhY2sgaW5pdGlhbD1kZWZhdWx0QWxsb3dzUGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2sKLW1lZGlhQ29udHJvbHNTY2FsZVdpdGhQYWdlWm9vbSBpbml0aWFsPWRlZmF1
bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20KLWludmlzaWJsZUF1dG9wbGF5Tm90UGVy
bWl0dGVkIGluaXRpYWw9ZmFsc2UKLXBhc3N3b3JkRWNob0VuYWJsZWQgaW5pdGlhbD1mYWxzZQot
c3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIGluaXRpYWw9ZmFsc2UKLWluY3JlbWVudGFs
UmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzIHR5cGU9ZG91YmxlLCBpbml0aWFs
PWRlZmF1bHRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcwot
YmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQgaW5pdGlhbD10cnVlCi1zaG91bGREaXNwbGF5
U3VidGl0bGVzIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJREVPX1RSQUNLCi1zaG91bGRE
aXNwbGF5Q2FwdGlvbnMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKLXNo
b3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVZJ
REVPX1RSQUNLCi1zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQgaW5pdGlhbD1mYWxzZQotc2Ny
b2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzIGluaXRpYWw9ZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNs
dWRlc0ZyYW1lcwotc2Nyb2xsQW5pbWF0b3JFbmFibGVkIGluaXRpYWw9dHJ1ZSwgY29uZGl0aW9u
YWw9U01PT1RIX1NDUk9MTElORwotZm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9y
UGVyZm9ybWFuY2VUZXN0aW5nIGluaXRpYWw9ZmFsc2UKLW5vdGlmaWNhdGlvbnNFbmFibGVkIGlu
aXRpYWw9dHJ1ZQotCi0jIFNvbWUgYXBwcyBuZWVkcyBpc0xvYWRpbmdJbkFQSVNlbnNlIHRvIGFj
Y291bnQgZm9yIGFjdGl2ZSBzdWJyZXNvdXJjZSBsb2FkZXJzLgotbmVlZHNJc0xvYWRpbmdJbkFQ
SVNlbnNlUXVpcmsgaW5pdGlhbD1mYWxzZQotCi1zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biBpbml0aWFsPWRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbgotaW1hZ2VTdWJz
YW1wbGluZ0VuYWJsZWQgaW5pdGlhbD1kZWZhdWx0SW1hZ2VTdWJzYW1wbGluZ0VuYWJsZWQKLXdh
bnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IgaW5pdGlhbD1mYWxzZQotcmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZCBpbml0aWFsPXRydWUKLQotY29va2llRW5hYmxlZCBpbml0
aWFsPXRydWUKLW1lZGlhRW5hYmxlZCBpbml0aWFsPXRydWUKLURPTVBhc3RlQWxsb3dlZCBpbml0
aWFsPWZhbHNlCi0KLSMgV2hlbiBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5n
ZSBmb2N1cywgYW5kCi0jIHdpbmRvdy5mb2N1cygpIG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVuIGlu
dm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0Ci0jIGNyZWF0ZWQgdGhlIHdpbmRvdy4KLXdpbmRv
d0ZvY3VzUmVzdHJpY3RlZCBpbml0aWFsPXRydWUKLQotZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
IGluaXRpYWw9ZmFsc2UKLWRlbGVnYXRlc1BhZ2VTY2FsaW5nIGluaXRpYWw9ZmFsc2UKLXBsdWdJ
blNuYXBzaG90dGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotc25hcHNob3RBbGxQbHVnSW5zIGlu
aXRpYWw9ZmFsc2UKLWF1dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQgaW5p
dGlhbD10cnVlCi1wcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVkIGluaXRpYWw9
dHJ1ZQotbWF4aW11bVBsdWdJblNuYXBzaG90QXR0ZW1wdHMgdHlwZT11bnNpZ25lZCwgaW5pdGlh
bD0yMAotZnJhbWVGbGF0dGVuaW5nIHR5cGU9RnJhbWVGbGF0dGVuaW5nLCBpbml0aWFsPUZyYW1l
RmxhdHRlbmluZzo6RGlzYWJsZWQKLWFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkIGluaXRpYWw9
ZmFsc2UKLQotd2ViU2VjdXJpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQotc3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCi0KLXVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgaW5pdGlhbD1kZWZh
dWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZAotCi1sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLWJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9u
SW50ZXJ2YWwgdHlwZT1kb3VibGUsIGluaXRpYWw9MTgwMAotCi0jIFNvbWUgYXBwcyBjb3VsZCBo
YXZlIGEgZGVmYXVsdCB2aWRlbyBwb3N0ZXIgaWYgaXQgaXMgbm90IHNldC4KLWRlZmF1bHRWaWRl
b1Bvc3RlclVSTCB0eXBlPVN0cmluZwotCi1zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgaW5pdGlh
bD1kZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkCi1zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQK
LQotdXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvciBpbml0aWFsPWZhbHNl
Ci1maXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgaW5pdGlhbD1kZWZhdWx0
Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50Ci0KLXRleHRBdXRvc2l6aW5n
RW5hYmxlZCBpbml0aWFsPWRlZmF1bHRUZXh0QXV0b3NpemluZ0VuYWJsZWQoKSwgb25DaGFuZ2U9
c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzLCBjb25kaXRpb25hbD1URVhUX0FVVE9TSVpJ
TkcKLXRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlIHR5cGU9SW50U2l6ZSwgb25DaGFu
Z2U9c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzLCBjb25kaXRpb25hbD1URVhUX0FVVE9T
SVpJTkcKLW1pbmltdW1ab29tRm9udFNpemUgdHlwZT1mbG9hdCwgaW5pdGlhbD1kZWZhdWx0TWlu
aW11bVpvb21Gb250U2l6ZSgpLCBjb25kaXRpb25hbD1URVhUX0FVVE9TSVpJTkcKLQotc3VicGl4
ZWxBbnRpYWxpYXNlZExheWVyVGV4dEVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9c2V0
TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi1zaW1wbGVMaW5lTGF5b3V0RW5hYmxlZCBpbml0
aWFsPXRydWUsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotc2ltcGxl
TGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwgb25DaGFuZ2U9c2V0
TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCi0KLXN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmlj
c0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi11c2VHaWFudFRpbGVzIGluaXRpYWw9ZmFsc2UKLQot
bWVkaWFTb3VyY2VFbmFibGVkIGluaXRpYWw9dHJ1ZSwgY29uZGl0aW9uYWw9TUVESUFfU09VUkNF
Ci0KLSMgRklYTUU6IFJlbmFtZSB0byBhbGxvd011bHRpRWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1p
c3Npb24gb25jZSB3ZSB1cHN0cmVhbSB0aGUgaU9TIGNoYW5nZXMgdG8gV2ViVmlldy5tbS4KLWFs
bG93TXVsdGlFbGVtZW50SW1wbGljaXRTdWJtaXNzaW9uIGluaXRpYWw9ZmFsc2UKLQotYWxsb3dz
QWlyUGxheUZvck1lZGlhUGxheWJhY2sgaW5pdGlhbD10cnVlLCBjb25kaXRpb25hbD1XSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQKLQotc2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkgaW5p
dGlhbD1mYWxzZQotCi1tYXhQYXJzZUR1cmF0aW9uIHR5cGU9ZG91YmxlLCBpbml0aWFsPS0xCi1z
dGFuZGFsb25lIGluaXRpYWw9ZmFsc2UKLXRlbGVwaG9uZU51bWJlclBhcnNpbmdFbmFibGVkIGlu
aXRpYWw9ZmFsc2UKLW1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBpbml0aWFsPWRlZmF1bHRN
ZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkKLWFsd2F5c1VzZUFjY2VsZXJhdGVkT3ZlcmZsb3dT
Y3JvbGwgaW5pdGlhbD1mYWxzZQotaW1hZ2VDb250cm9sc0VuYWJsZWQgaW5pdGlhbD1mYWxzZSwg
Y29uZGl0aW9uYWw9U0VSVklDRV9DT05UUk9MUwotCi1lbmFibGVJbmhlcml0VVJJUXVlcnlDb21w
b25lbnQgaW5pdGlhbD1mYWxzZQotCi1hZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQgaW5p
dGlhbD1mYWxzZQotdGVtcG9yYXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQgaW5pdGlhbD10
cnVlCi0KLXVzZUltYWdlRG9jdW1lbnRGb3JTdWJmcmFtZVBERiBpbml0aWFsPWZhbHNlCi1kYXRh
RGV0ZWN0b3JUeXBlcyB0eXBlPURhdGFEZXRlY3RvclR5cGVzLCBpbml0aWFsPURhdGFEZXRlY3Rv
clR5cGVOb25lLCBjb25kaXRpb25hbD1EQVRBX0RFVEVDVElPTgotCi0jIEFsbG93IFNvdXJjZUJ1
ZmZlcnMgdG8gc3RvcmUgdXAgdG8gMzA0TUIgZWFjaCwgZW5vdWdoIGZvciBhcHByb3hpbWF0ZWx5
IGZpdmUgbWludXRlcwotIyBvZiAxMDgwcCB2aWRlbyBhbmQgc3RlcmVvIGF1ZGlvLgotbWF4aW11
bVNvdXJjZUJ1ZmZlclNpemUgdHlwZT1pbnQsIGluaXRpYWw9MzE4NzY3MTA0LCBjb25kaXRpb25h
bD1NRURJQV9TT1VSQ0UKLQotc2VydmljZUNvbnRyb2xzRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBj
b25kaXRpb25hbD1TRVJWSUNFX0NPTlRST0xTCi0KLWFwcGxlTWFpbFBhZ2luYXRpb25RdWlya0Vu
YWJsZWQgaW5pdGlhbD1mYWxzZQotCi1kZWZlcnJlZENTU1BhcnNlckVuYWJsZWQgaW5pdGlhbD1m
YWxzZQotCi1yZXBhaW50T3V0c2lkZUxheW91dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1odHRw
RXF1aXZFbmFibGVkIGluaXRpYWw9dHJ1ZQotCi0jIFNvbWUgcG9ydHMgKGUuZy4gaU9TKSBtaWdo
dCBjaG9vc2UgdG8gZGlzcGxheSBhdHRhY2htZW50cyBpbmxpbmUsIHJlZ2FyZGxlc3Mgb2Ygd2hl
dGhlciB0aGUgcmVzcG9uc2UgaW5jbHVkZXMgdGhlCi0jIEhUVFAgaGVhZGVyICJDb250ZW50LURp
c3Bvc2l0aW9uOiBhdHRhY2htZW50Ii4gVGhpcyBzZXR0aW5nIGVuYWJsZXMgYSBzYW5kYm94IGFy
b3VuZCB0aGVzZSBhdHRhY2htZW50cy4gVGhlIHNhbmRib3gKLSMgZW5mb3JjZXMgYWxsIGZyYW1l
IHNhbmRib3ggZmxhZ3MgKHNlZSBlbnVtIFNhbmRib3hGbGFnIGluIFNlY3VyaXR5Q29udGV4dC5o
KSwgYW5kIGFsc28gZGlzYWJsZXMgPG1ldGEgaHR0cC1lcXVpdj4KLSMgcHJvY2Vzc2luZyBhbmQg
c3ViZnJhbWUgbG9hZGluZy4KLWNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94RW5h
YmxlZCBpbml0aWFsPWZhbHNlCi0KLXVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgdHlwZT1V
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LCBpbml0aWFsPVVzZXJJbnRlcmZhY2VEaXJlY3Rp
b25Qb2xpY3k6OkNvbnRlbnQKLXN5c3RlbUxheW91dERpcmVjdGlvbiB0eXBlPVRleHREaXJlY3Rp
b24sIGluaXRpYWw9TFRSCi0KLWFsbG93Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlU3RhclRv
TWF0Y2hBbnlQcm90b2NvbCBpbml0aWFsPWZhbHNlCi0KLXNlbGVjdGlvblBhaW50aW5nV2l0aG91
dFNlbGVjdGlvbkdhcHNFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotc2hvdWxkQ29udmVydEludmFs
aWRVUkxzVG9CbGFuayBpbml0aWFsPXRydWUKLQotc3ByaW5nVGltaW5nRnVuY3Rpb25FbmFibGVk
IGluaXRpYWw9ZmFsc2UKLQotdHJlYXRJUEFkZHJlc3NBc0RvbWFpbiBpbml0aWFsPWZhbHNlCi0K
LW1lZGlhUHJlbG9hZGluZ0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi0jIFJ1bnRpbWUtZW5hYmxl
ZCBmZWF0dXJlcwotdmlzdWFsVmlld3BvcnRFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdl
PXNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwotCi1pbnB1dEV2ZW50c0VuYWJsZWQgaW5p
dGlhbD10cnVlCi0KLXF1aWNrVGltZVBsdWdpblJlcGxhY2VtZW50RW5hYmxlZCBpbml0aWFsPWRl
ZmF1bHRRdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQKLXlvdVR1YmVGbGFzaFBsdWdp
blJlcGxhY2VtZW50RW5hYmxlZCBpbml0aWFsPWRlZmF1bHRZb3VUdWJlRmxhc2hQbHVnaW5SZXBs
YWNlbWVudEVuYWJsZWQKLQotZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFs
dWUgdHlwZT1Gb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUsIGluaXRpYWw9ZGVmYXVsdEZvcmNlZENv
bG9yc0FyZUludmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlCi1mb3JjZWREaXNwbGF5SXNNb25vY2hy
b21lQWNjZXNzaWJpbGl0eVZhbHVlIHR5cGU9Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLCBpbml0
aWFsPWRlZmF1bHRGb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlCi1m
b3JjZWRQcmVmZXJzUmVkdWNlZE1vdGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSB0eXBlPUZvcmNlZEFj
Y2Vzc2liaWxpdHlWYWx1ZSwgaW5pdGlhbD1kZWZhdWx0Rm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rp
b25BY2Nlc3NpYmlsaXR5VmFsdWUKLQotbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIGlu
aXRpYWw9dHJ1ZQotYW5pbWF0ZWRJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkIGluaXRpYWw9dHJ1
ZQotd2Via2l0SW1hZ2VSZWFkeUV2ZW50RW5hYmxlZCBpbml0aWFsPWZhbHNlCi0KLXNob3VsZFN1
cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24gaW5p
dGlhbD1mYWxzZQotCi1sYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCBpbml0
aWFsPWZhbHNlCi0KLXN1YnJlc291cmNlSW50ZWdyaXR5RW5hYmxlZCBpbml0aWFsPXRydWUKLQot
bGlua1ByZWNvbm5lY3RFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotYmVhY29uQVBJRW5hYmxlZCBp
bml0aWFsPWZhbHNlCi0KLWdlb2xvY2F0aW9uRmxvb3JMZXZlbEVuYWJsZWQgaW5pdGlhbD10cnVl
Ci0KLWNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi12aWV3cG9ydEZp
dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQotCi1hbGxvd01lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjayBpbml0aWFsPWZhbHNlCi0KLXN0b3JhZ2VBY2Nlc3NB
UElFbmFibGVkIGluaXRpYWw9ZmFsc2UKLQotdGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3Jl
SGlkaW5nQ29udHJvbHMgdHlwZT1TZWNvbmRzLCBpbml0aWFsPTNfcyAKLQotZm9udEZhbGxiYWNr
UHJlZmVyc1BpY3RvZ3JhcGhzIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcwotCi1mb250TG9hZFRpbWluZ092ZXJyaWRlIHR5cGU9Rm9udExvYWRU
aW1pbmdPdmVycmlkZSwgaW5pdGlhbD1Gb250TG9hZFRpbWluZ092ZXJyaWRlOjpOb25lCi1zaG91
bGRJZ25vcmVGb250TG9hZENvbXBsZXRpb25zIGluaXRpYWw9ZmFsc2UKLQotcGF5bWVudFJlcXVl
c3RFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVBBWU1FTlRfUkVRVUVTVAotYXBw
bGVQYXlFbmFibGVkIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPUFQUExFX1BBWQotYXBwbGVQ
YXlDYXBhYmlsaXR5RGlzY2xvc3VyZUFsbG93ZWQgaW5pdGlhbD10cnVlLCBjb25kaXRpb25hbD1B
UFBMRV9QQVkKLQotamF2YUVuYWJsZWQgaW5pdGlhbD1mYWxzZSwgZ2V0dGVyPWlzSmF2YUVuYWJs
ZWQKLWphdmFFbmFibGVkRm9yTG9jYWxGaWxlcyBpbml0aWFsPXRydWUsIGdldHRlcj1pc0phdmFF
bmFibGVkRm9yTG9jYWxGaWxlcwotCi0jIFVubGlrZSB0aGUgaW1hZ2VzRW5hYmxlZCBzZXR0aW5n
LCB0aGlzIG9ubHkgc3VwcHJlc3NlcyB0aGUgbmV0d29yayBsb2FkIG9mCi0jIHRoZSBpbWFnZSBV
UkwuIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgaWYgcmVxdWVzdGVkLgot
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5IGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPWltYWdlc0Vu
YWJsZWRDaGFuZ2VkCi1pbWFnZXNFbmFibGVkIGluaXRpYWw9dHJ1ZSwgZ2V0dGVyPWFyZUltYWdl
c0VuYWJsZWQsIG9uQ2hhbmdlPWltYWdlc0VuYWJsZWRDaGFuZ2VkCi1zY3JpcHRFbmFibGVkIGlu
aXRpYWw9ZmFsc2UsIGdldHRlcj1pc1NjcmlwdEVuYWJsZWQsIG9uQ2hhbmdlPXNjcmlwdEVuYWJs
ZWRDaGFuZ2VkCi1wbHVnaW5zRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBnZXR0ZXI9YXJlUGx1Z2lu
c0VuYWJsZWQsIG9uQ2hhbmdlPXBsdWdpbnNFbmFibGVkQ2hhbmdlZAotCi11c2VzUGFnZUNhY2hl
IGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPXVzZXNQYWdlQ2FjaGVDaGFuZ2VkCi0KLWRuc1ByZWZl
dGNoaW5nRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1kbnNQcmVmZXRjaGluZ0VuYWJs
ZWRDaGFuZ2VkCi0KLWJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlIGluaXRpYWw9ZmFs
c2UsIG9uQ2hhbmdlPWJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZAotCi1z
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdl
PXNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWRDaGFuZ2VkCi0KLWhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPWhpZGRlblBh
Z2VET01UaW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQKLWhpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdBdXRvSW5jcmVhc2VzIGluaXRpYWw9ZmFsc2UsIG9uQ2hhbmdlPWhpZGRlblBhZ2VET01U
aW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQKLWhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5z
aW9uRW5hYmxlZCBpbml0aWFsPWZhbHNlLCBvbkNoYW5nZT1oaWRkZW5QYWdlQ1NTQW5pbWF0aW9u
U3VzcGVuc2lvbkVuYWJsZWRDaGFuZ2VkCi0KLXN0b3JhZ2VCbG9ja2luZ1BvbGljeSB0eXBlPVNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3ksIGluaXRpYWw9U2VjdXJpdHlPcmln
aW46OkFsbG93QWxsU3RvcmFnZSwgb25DaGFuZ2U9c3RvcmFnZUJsb2NraW5nUG9saWN5Q2hhbmdl
ZAotCi0jIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KLW1lZGlhVHlwZU92ZXJyaWRlIHR5cGU9
U3RyaW5nLCBpbml0aWFsPSJzY3JlZW4iLCBvbkNoYW5nZT1tZWRpYVR5cGVPdmVycmlkZUNoYW5n
ZWQKLQotCi1mb250UmVuZGVyaW5nTW9kZSB0eXBlPUZvbnRSZW5kZXJpbmdNb2RlLCBpbml0aWFs
PUZvbnRSZW5kZXJpbmdNb2RlOjpOb3JtYWwKLQotcHJlZmVyTUlNRVR5cGVGb3JJbWFnZXMgaW5p
dGlhbD1mYWxzZQotCi1mb3JjZVBlbmRpbmdXZWJHTFBvbGljeSBpbml0aWFsPWZhbHNlLCBnZXR0
ZXI9aXNGb3JjZVBlbmRpbmdXZWJHTFBvbGljeQotCi1tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
IHR5cGU9U3RyaW5nLCBjb25kaXRpb25hbD1MRUdBQ1lfRU5DUllQVEVEX01FRElBCi1tZWRpYURl
dmljZUlkZW50aWZpZXJTdG9yYWdlRGlyZWN0b3J5IHR5cGU9U3RyaW5nLCBjb25kaXRpb25hbD1N
RURJQV9TVFJFQU0KLQotIyBGSVhNRTogVGhpcyBxdWlyayBpcyBuZWVkZWQgYmVjYXVzZSBvZiBS
YWRhciA0Njc0NTM3IGFuZCA1MjExMjcxLiBXZSBuZWVkIHRvIHBoYXNlIGl0IG91dCBvbmNlIEFk
b2JlCi0jIGNhbiBmaXggdGhlIGJ1ZyBmcm9tIHRoZWlyIGVuZC4KLW5lZWRzQWRvYmVGcmFtZVJl
bG9hZGluZ1F1aXJrIGluaXRpYWw9ZmFsc2UsIGdldHRlcj1uZWVkc0Fjcm9iYXRGcmFtZVJlbG9h
ZGluZ1F1aXJrCi0KLXRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkIGluaXRpYWw9ZmFsc2UsIGdl
dHRlcj1pc1RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkLCBjb25kaXRpb25hbD1UT1VDSF9FVkVO
VFMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NjkzIEBACisjIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZ2xvYmFsIHNldHRpbmdzLgorIyBGSVhN
RTogQWRkIHN1cHBvcnQgZm9yIGN1c3RvbSBnZXR0ZXJzL3NldHRlcnMuCisKK2RlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lOgorICB0eXBlOiBTdHJpbmcKK2Z0cERpcmVjdG9yeVRlbXBsYXRlUGF0aDoK
KyAgdHlwZTogU3RyaW5nCitsb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGg6CisgIHR5cGU6IFN0cmlu
ZworZWRpdGFibGVMaW5rQmVoYXZpb3I6CisgIHR5cGU6IEVkaXRhYmxlTGlua0JlaGF2aW9yCisg
IGluaXRpYWw6IEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcgordGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcjoKKyAgdHlwZTogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNp
b25CZWhhdmlvcgorICBpbml0aWFsOiBUZXh0RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJ
bmNsdWRlZAorcGRmSW1hZ2VDYWNoaW5nUG9saWN5OgorICB0eXBlOiBQREZJbWFnZUNhY2hpbmdQ
b2xpY3kKKyAgaW5pdGlhbDogUERGSW1hZ2VDYWNoaW5nRGVmYXVsdAorcGFzc3dvcmRFY2hvRHVy
YXRpb25JblNlY29uZHM6CisgIHR5cGU6IGRvdWJsZQorICBpbml0aWFsOiAxCisKKyMgU2V0cyB0
aGUgbWFnbmlmaWNhdGlvbiB2YWx1ZSBmb3IgdmFsaWRhdGlvbiBtZXNzYWdlIHRpbWVyLiAgSWYg
dGhlCisjIG1hZ25pZmljYXRpb24gdmFsdWUgaXMgTiwgYSB2YWxpZGF0aW9uIG1lc3NhZ2UgZGlz
YXBwZWFycyBhdXRvbWF0aWNhbGx5IGFmdGVyCisjIDxtZXNzYWdlIGxlbmd0aD4gKiBOIC8gMTAw
MCBzZWNvbmRzLiAgSWYgTiBpcyBlcXVhbCB0byBvciBsZXNzIHRoYW4gMCwgYQorIyB2YWxpZGF0
aW9uIG1lc3NhZ2UgZG9lc24ndCBkaXNhcHBlYXJzIGF1dG9tYXRpY2FseS4KK3ZhbGlkYXRpb25N
ZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uOgorICB0eXBlOiBpbnQKKyAgaW5pdGlhbDogNTAKKwor
IyBOdW1iZXIgb2YgcGl4ZWxzIGJlbG93IHdoaWNoIDJEIGNhbnZhcyBpcyByZW5kZXJlZCBpbiBz
b2Z0d2FyZQorIyBldmVuIGlmIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiBpcyBlbmFibGVkLgorIyBI
YXJkd2FyZSBhY2NlbGVyYXRpb24gaXMgdXNlZnVsIGZvciBsYXJnZSBjYW52YXNlcyB3aGVyZSBp
dCBjYW4gYXZvaWQgdGhlCisjIHBpeGVsIGJhbmR3aWR0aCBiZXR3ZWVuIHRoZSBDUFUgYW5kIEdQ
VS4gQnV0IEdQVSBhY2NlbGVyYXRpb24gY29tZXMgYXQKKyMgYSBwcmljZSAtIGV4dHJhIGJhY2st
YnVmZmVyIGFuZCB0ZXh0dXJlIGNvcHkuIFNtYWxsIGNhbnZhc2VzIGFyZSBhbHNvCisjIHdpZGVs
eSB1c2VkIGZvciBzdHlsaXplZCBmb250cy4gQW50aS1hbGlhc2luZyB0ZXh0IGluIGhhcmR3YXJl
IGF0IHRoYXQKKyMgc2NhbGUgaXMgZ2VuZXJhbGx5IHNsb3dlci4gU28gYmVsb3cgYSBjZXJ0YWlu
IHNpemUgaXQgaXMgYmV0dGVyIHRvCisjIGRyYXcgY2FudmFzIGluIHNvZnR3YXJlLgorbWluaW11
bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOgorICB0eXBlOiBpbnQKKyAgaW5pdGlhbDogMjU3KjI1
NgorCittYXhpbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemU6CisgIHR5cGU6IHVuc2lnbmVkCisg
IGluaXRpYWw6IDUxMjAqMjg4MAorCitsYXlvdXRGYWxsYmFja1dpZHRoOgorICB0eXBlOiBpbnQK
KyAgaW5pdGlhbDogOTgwCitkZXZpY2VXaWR0aDoKKyAgdHlwZTogaW50CisgIGluaXRpYWw6IDAK
K2RldmljZUhlaWdodDoKKyAgdHlwZTogaW50CisgIGluaXRpYWw6IDAKKworIyBBbGxvdyBjbGll
bnRzIGNvbmNlcm5lZCB3aXRoIG1lbW9yeSBjb25zdW1wdGlvbiB0byBzZXQgYSBxdW90YSBvbiBz
ZXNzaW9uIHN0b3JhZ2UKKyMgc2luY2UgdGhlIG1lbW9yeSB1c2VkIHdvbid0IGJlIHJlbGVhc2Vk
IHVudGlsIHRoZSBQYWdlIGlzIGRlc3Ryb3llZC4KK3Nlc3Npb25TdG9yYWdlUXVvdGE6CisgIHR5
cGU6IHVuc2lnbmVkCisgIGluaXRpYWw6IFN0b3JhZ2VNYXA6Om5vUXVvdGEKKworbWluaW11bUZv
bnRTaXplOgorICB0eXBlOiBpbnQKKyAgaW5pdGlhbDogMAorICBvbkNoYW5nZTogc2V0TmVlZHNS
ZWNhbGNTdHlsZUluQWxsRnJhbWVzCittaW5pbXVtTG9naWNhbEZvbnRTaXplOgorICB0eXBlOiBp
bnQKKyAgaW5pdGlhbDogMAorICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJh
bWVzCitkZWZhdWx0Rm9udFNpemU6CisgIHR5cGU6IGludAorICBpbml0aWFsOiAxNgorICBvbkNo
YW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCitkZWZhdWx0Rml4ZWRGb250U2l6
ZToKKyAgdHlwZTogaW50CisgIGluaXRpYWw6IDAKKyAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxj
U3R5bGVJbkFsbEZyYW1lcworCitlZGl0aW5nQmVoYXZpb3JUeXBlOgorICB0eXBlOiBFZGl0aW5n
QmVoYXZpb3JUeXBlCisgIGluaXRpYWw6IGVkaXRpbmdCZWhhdmlvclR5cGVGb3JQbGF0Zm9ybSgp
CittYXhpbXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDoKKyAgdHlwZTogdW5zaWduZWQKKyAgaW5p
dGlhbDogZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoCisKKyMgVGhpcyBzZXR0
aW5nIG9ubHkgYWZmZWN0cyBzaXRlIGljb24gaW1hZ2UgbG9hZGluZyBpZiBsb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkgc2V0dGluZyBpcyBmYWxzZSBhbmQgdGhpcyBzZXR0aW5nIGlzIHRydWUuCisj
IEFsbCBvdGhlciBwZXJtdXRhdGlvbnMgc3RpbGwgaGVlZCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkgc2V0dGluZy4KK2xvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nOgor
ICBpbml0aWFsOiBmYWxzZQorCitjYXJldEJyb3dzaW5nRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFs
c2UKK3ByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2g6CisgIGluaXRpYWw6IGZhbHNlCits
b2NhbFN0b3JhZ2VFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorYWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHM6CisgIGluaXRpYWw6IHRydWUKK2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMczoKKyAgaW5pdGlhbDogdHJ1ZQorbmVlZHNTdG9yYWdlQWNjZXNzRnJvbUZpbGVVUkxzUXVp
cms6CisgIGluaXRpYWw6IHRydWUKK2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHk6CisgIGluaXRpYWw6IGZhbHNlCitqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOgorICBp
bml0aWFsOiBmYWxzZQorc2hvdWxkUHJpbnRCYWNrZ3JvdW5kczoKKyAgaW5pdGlhbDogZmFsc2UK
K3VzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlOgorICBpbml0aWFsOiBmYWxz
ZQorICBjb25kaXRpb25hbDogREFTSEJPQVJEX1NVUFBPUlQKK2NsaXBib2FyZEFjY2Vzc1BvbGlj
eToKKyAgdHlwZTogQ2xpcGJvYXJkQWNjZXNzUG9saWN5CisgIGluaXRpYWw6IENsaXBib2FyZEFj
Y2Vzc1BvbGljeTo6UmVxdWlyZXNVc2VyR2VzdHVyZQorCit0ZXh0QXJlYXNBcmVSZXNpemFibGU6
CisgIGluaXRpYWw6IGZhbHNlCisgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxG
cmFtZXMKK2F1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisgIG9u
Q2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3VzZXJTdHlsZVNoZWV0TG9j
YXRpb246CisgIHR5cGU6IFVSTAorICBvbkNoYW5nZTogdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNo
YW5nZWQKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisg
IG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK2FjY2VsZXJhdGVkQ29t
cG9zaXRlZEFuaW1hdGlvbnNFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisgIG9uQ2hhbmdlOiBz
ZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3Nob3dEZWJ1Z0JvcmRlcnM6CisgIGluaXRp
YWw6IGZhbHNlCisgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3No
b3dSZXBhaW50Q291bnRlcjoKKyAgaW5pdGlhbDogZmFsc2UKKyAgb25DaGFuZ2U6IHNldE5lZWRz
UmVjYWxjU3R5bGVJbkFsbEZyYW1lcwordmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6CisgIHR5
cGU6IERlYnVnT3ZlcmxheVJlZ2lvbnMKKyAgaW5pdGlhbDogMAorc2hvd1RpbGVkU2Nyb2xsaW5n
SW5kaWNhdG9yOgorICBpbml0aWFsOiBmYWxzZQorcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxl
OgorICBpbml0aWFsOiBmYWxzZQorICBvbkNoYW5nZTogcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNp
YmxlQ2hhbmdlZAorICBjb25kaXRpb246IFJFU09VUkNFX1VTQUdFCisKKyMgVGhpcyBpcyBhIHF1
aXJrIHdlIGFyZSBwcm8tYWN0aXZlbHkgYXBwbHlpbmcgdG8gb2xkIGFwcGxpY2F0aW9ucy4gSXQg
Y2hhbmdlcyBrZXlib2FyZCBldmVudCBkaXNwYXRjaGluZywKKyMgbWFraW5nIGtleUlkZW50aWZp
ZXIgYXZhaWxhYmxlIG9uIGtleXByZXNzIGV2ZW50cywgbWFraW5nIGNoYXJDb2RlIGF2YWlsYWJs
ZSBvbiBrZXlkb3duL2tleXVwIGV2ZW50cywKKyMgYW5kIGdldHRpbmcga2V5cHJlc3MgZGlzcGF0
Y2hlZCBpbiBtb3JlIGNhc2VzLgorbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWly
a3M6CisgIGluaXRpYWw6IGZhbHNlCisKK3RyZWF0c0FueVRleHRDU1NMaW5rQXNTdHlsZXNoZWV0
OgorICBpbml0aWFsOiBmYWxzZQorc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdDoKKyAgaW5p
dGlhbDogdHJ1ZQorcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zOgorICBpbml0aWFsOiBmYWxzZQor
c2hvd3NVUkxzSW5Ub29sVGlwczoKKyAgaW5pdGlhbDogZmFsc2UKK3Nob3dzVG9vbFRpcE92ZXJU
cnVuY2F0ZWRUZXh0OgorICBpbml0aWFsOiBmYWxzZQorZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5n
czoKKyAgaW5pdGlhbDogZmFsc2UKK2RldmVsb3BlckV4dHJhc0VuYWJsZWQ6CisgIGluaXRpYWw6
IGZhbHNlCitzY3JpcHRNYXJrdXBFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCituZWVkc1NpdGVT
cGVjaWZpY1F1aXJrczoKKyAgaW5pdGlhbDogZmFsc2UKK2RvbVRpbWVyc1Rocm90dGxpbmdFbmFi
bGVkOgorICBpbml0aWFsOiB0cnVlCit3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZDoKKyAgaW5p
dGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IFdFQl9BUkNISVZFCitsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorb2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGVFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1
aXJrc01vZGU6CisgIGluaXRpYWw6IHRydWUKK3VzZXNFbmNvZGluZ0RldGVjdG9yOgorICBpbml0
aWFsOiBmYWxzZQorYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3M6CisgIGluaXRpYWw6IGZhbHNl
CitjYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nOgorICBpbml0aWFsOiBmYWxzZQorYWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKK2Rpc3BsYXlMaXN0RHJhd2lu
Z0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCithY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkOgor
ICBpbml0aWFsOiBmYWxzZQordXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRCZWhh
dmlvcjoKKyAgaW5pdGlhbDogZmFsc2UKK2phdmFTY3JpcHRSdW50aW1lRmxhZ3M6CisgIHR5cGU6
IEpTQzo6UnVudGltZUZsYWdzCisKKyMgRklYTUU6IFRoaXMgc2hvdWxkIHJlYWxseSBiZSBkaXNh
YmxlZCBieSBkZWZhdWx0IGFzIGl0IG1ha2VzIHBsYXRmb3JtcyB0aGF0IGRvbid0IHN1cHBvcnQg
dGhlIGZlYXR1cmUgZG93bmxvYWQgZmlsZXMKKyMgdGhleSBjYW4ndCB1c2UgYnkuIExlYXZpbmcg
ZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3RpbmcgYmVoYXZpb3IuCitkb3dubG9h
ZGFibGVCaW5hcnlGb250c0VuYWJsZWQ6CisgIGluaXRpYWw6IHRydWUKKworeHNzQXVkaXRvckVu
YWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCithY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQ
b3NpdGlvbkVuYWJsZWQ6CisgIGluaXRpYWw6IGRlZmF1bHRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQKK2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCitydWJiZXJCYW5kaW5nRm9yU3ViU2Ny
b2xsYWJsZVJlZ2lvbnNFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisgIGNvbmRpdGlvbmFsOiBS
VUJCRVJfQkFORElORworCitleHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZDoKKyAgaW5p
dGlhbDogZmFsc2UKK3dlYkdMRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKK3dlYkdMRXJyb3Jz
VG9Db25zb2xlRW5hYmxlZDoKKyAgaW5pdGlhbDogdHJ1ZQorZm9yY2VTb2Z0d2FyZVdlYkdMUmVu
ZGVyaW5nOgorICBpbml0aWFsOiBmYWxzZQorZm9yY2VXZWJHTFVzZXNMb3dQb3dlcjoKKyAgaW5p
dGlhbDogZmFsc2UKK2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOgorICBpbml0aWFsOiBmYWxz
ZQorbG9hZERlZmVycmluZ0VuYWJsZWQ6CisgIGluaXRpYWw6IHRydWUKK3dlYkF1ZGlvRW5hYmxl
ZDoKKyAgaW5pdGlhbDogZmFsc2UKK3BhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZDoKKyAgaW5p
dGlhbDogZmFsc2UKK2Z1bGxTY3JlZW5FbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorICBjb25k
aXRpb25hbDogRlVMTFNDUkVFTl9BUEkKK2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
OgorICBpbml0aWFsOiBmYWxzZQorCisjIFRoaXMgZmVhdHVyZSByZXF1aXJlcyBhbiBpbXBsZW1l
bnRhdGlvbiBvZiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC4KK2ludGVyYWN0aXZlRm9ybVZhbGlk
YXRpb25FbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCit1c2VQcmVIVE1MNVBhcnNlclF1aXJr
czoKKyAgaW5pdGlhbDogZmFsc2UKK2h5cGVybGlua0F1ZGl0aW5nRW5hYmxlZDoKKyAgaW5pdGlh
bDogZmFsc2UKK2Nyb3NzT3JpZ2luQ2hlY2tJbkdldE1hdGNoZWRDU1NSdWxlc0Rpc2FibGVkOgor
ICBpbml0aWFsOiBmYWxzZQorZm9yY2VDb21wb3NpdGluZ01vZGU6CisgIGluaXRpYWw6IGZhbHNl
CitzaG91bGRJbmplY3RVc2VyU2NyaXB0c0luSW5pdGlhbEVtcHR5RG9jdW1lbnQ6CisgIGluaXRp
YWw6IGZhbHNlCitmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lOgorICBpbml0aWFs
OiBmYWxzZQorYWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQ6CisgIGluaXRpYWw6IGZhbHNl
CithbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudDoKKyAgaW5pdGlhbDogZmFsc2UKK3JlcXVp
cmVzVXNlckdlc3R1cmVUb0xvYWRWaWRlbzoKKyAgaW5pdGlhbDogZGVmYXVsdFJlcXVpcmVzVXNl
ckdlc3R1cmVUb0xvYWRWaWRlbwordmlkZW9QbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmU6Cisg
IGluaXRpYWw6IGRlZmF1bHRWaWRlb1BsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZQorYXVkaW9Q
bGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmU6CisgIGluaXRpYWw6IGRlZmF1bHRBdWRpb1BsYXli
YWNrUmVxdWlyZXNVc2VyR2VzdHVyZQorbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5h
YmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKK21lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1
bWVudDoKKyAgaW5pdGlhbDogZmFsc2UKK2FsbG93c0lubGluZU1lZGlhUGxheWJhY2s6CisgIGlu
aXRpYWw6IGRlZmF1bHRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrCithbGxvd3NJbmxpbmVNZWRp
YVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOgorICBpbml0aWFsOiB0cnVlCitpbmxpbmVNZWRpYVBs
YXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZToKKyAgaW5pdGlhbDogZGVmYXVsdElu
bGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlCithbGxvd3NQaWN0
dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjazoKKyAgaW5pdGlhbDogZGVmYXVsdEFsbG93c1BpY3R1
cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrCittZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb206
CisgIGluaXRpYWw6IGRlZmF1bHRNZWRpYUNvbnRyb2xzU2NhbGVXaXRoUGFnZVpvb20KK2ludmlz
aWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkOgorICBpbml0aWFsOiBmYWxzZQorcGFzc3dvcmRFY2hv
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKK3N1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmlu
ZzoKKyAgaW5pdGlhbDogZmFsc2UKK2luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1l
b3V0SW5TZWNvbmRzOgorICB0eXBlOiBkb3VibGUKKyAgaW5pdGlhbDogZGVmYXVsdEluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzCitiYWNrc3BhY2VLZXlOYXZp
Z2F0aW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogdHJ1ZQorc2hvdWxkRGlzcGxheVN1YnRpdGxlczoK
KyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IFZJREVPX1RSQUNLCitzaG91bGREaXNw
bGF5Q2FwdGlvbnM6CisgIGluaXRpYWw6IGZhbHNlCisgIGNvbmRpdGlvbmFsOiBWSURFT19UUkFD
Sworc2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnM6CisgIGluaXRpYWw6IGZhbHNlCisgIGNv
bmRpdGlvbmFsOiBWSURFT19UUkFDSworc2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkOgorICBp
bml0aWFsOiBmYWxzZQorc2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzOgorICBpbml0aWFsOiBk
ZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzCitzY3JvbGxBbmltYXRvckVuYWJsZWQ6
CisgIGluaXRpYWw6IHRydWUKKyAgY29uZGl0aW9uYWw6IFNNT09USF9TQ1JPTExJTkcKK2ZvcmNl
VXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZzoKKyAgaW5p
dGlhbDogZmFsc2UKK25vdGlmaWNhdGlvbnNFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisKKyMg
U29tZSBhcHBzIG5lZWRzIGlzTG9hZGluZ0luQVBJU2Vuc2UgdG8gYWNjb3VudCBmb3IgYWN0aXZl
IHN1YnJlc291cmNlIGxvYWRlcnMuCituZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VRdWlyazoKKyAg
aW5pdGlhbDogZmFsc2UKKworc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb246CisgIGluaXRp
YWw6IGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbgoraW1hZ2VTdWJzYW1wbGlu
Z0VuYWJsZWQ6CisgIGluaXRpYWw6IGRlZmF1bHRJbWFnZVN1YnNhbXBsaW5nRW5hYmxlZAord2Fu
dHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvcjoKKyAgaW5pdGlhbDogZmFsc2UKK3Jl
cXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQ6CisgIGluaXRpYWw6IHRydWUKKworY29va2llRW5h
YmxlZDoKKyAgaW5pdGlhbDogdHJ1ZQorbWVkaWFFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCitE
T01QYXN0ZUFsbG93ZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKKyMgV2hlbiBlbmFibGVkLCB3aW5k
b3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1cywgYW5kCisjIHdpbmRvdy5mb2N1cygpIG9u
bHkgY2hhbmdlcyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUgY29udGV4dCB0aGF0CisjIGNy
ZWF0ZWQgdGhlIHdpbmRvdy4KK3dpbmRvd0ZvY3VzUmVzdHJpY3RlZDoKKyAgaW5pdGlhbDogdHJ1
ZQorCitkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCitkZWxlZ2F0
ZXNQYWdlU2NhbGluZzoKKyAgaW5pdGlhbDogZmFsc2UKK3BsdWdJblNuYXBzaG90dGluZ0VuYWJs
ZWQ6CisgIGluaXRpYWw6IGZhbHNlCitzbmFwc2hvdEFsbFBsdWdJbnM6CisgIGluaXRpYWw6IGZh
bHNlCithdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkOgorICBpbml0aWFs
OiB0cnVlCitwcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVkOgorICBpbml0aWFs
OiB0cnVlCittYXhpbXVtUGx1Z0luU25hcHNob3RBdHRlbXB0czoKKyAgdHlwZTogdW5zaWduZWQK
KyAgaW5pdGlhbDogMjAKK2ZyYW1lRmxhdHRlbmluZzoKKyAgdHlwZTogRnJhbWVGbGF0dGVuaW5n
CisgIGluaXRpYWw6IEZyYW1lRmxhdHRlbmluZzo6RGlzYWJsZWQKK2FzeW5jRnJhbWVTY3JvbGxp
bmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCit3ZWJTZWN1cml0eUVuYWJsZWQ6CisgIGlu
aXRpYWw6IHRydWUKK3NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UK
KworYXV0b3Njcm9sbEZvckRyYWdBbmREcm9wRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwor
dW5pZmllZFRleHRDaGVja2VyRW5hYmxlZDoKKyAgaW5pdGlhbDogZGVmYXVsdFVuaWZpZWRUZXh0
Q2hlY2tlckVuYWJsZWQKKworbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6
CisgIGluaXRpYWw6IGZhbHNlCisKK2JhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWw6
CisgIHR5cGU6IGRvdWJsZQorICBpbml0aWFsOiAxODAwCisKKyMgU29tZSBhcHBzIGNvdWxkIGhh
dmUgYSBkZWZhdWx0IHZpZGVvIHBvc3RlciBpZiBpdCBpcyBub3Qgc2V0LgorZGVmYXVsdFZpZGVv
UG9zdGVyVVJMOgorICB0eXBlOiBTdHJpbmcKKworc21hcnRJbnNlcnREZWxldGVFbmFibGVkOgor
ICBpbml0aWFsOiBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkCitzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkOgorICBpbml0aWFsOiBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZAorCit1c2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9y
OgorICBpbml0aWFsOiBmYWxzZQorZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3Vt
ZW50OgorICBpbml0aWFsOiBkZWZhdWx0Rml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0Rv
Y3VtZW50CisKK3RleHRBdXRvc2l6aW5nRW5hYmxlZDoKKyAgaW5pdGlhbDogZGVmYXVsdFRleHRB
dXRvc2l6aW5nRW5hYmxlZCgpCisgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxG
cmFtZXMKKyAgY29uZGl0aW9uYWw6IFRFWFRfQVVUT1NJWklORwordGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGU6CisgIHR5cGU6IEludFNpemUKKyAgb25DaGFuZ2U6IHNldE5lZWRzUmVj
YWxjU3R5bGVJbkFsbEZyYW1lcworICBjb25kaXRpb25hbDogVEVYVF9BVVRPU0laSU5HCittaW5p
bXVtWm9vbUZvbnRTaXplOgorICB0eXBlOiBmbG9hdAorICBpbml0aWFsOiBkZWZhdWx0TWluaW11
bVpvb21Gb250U2l6ZSgpCisgIGNvbmRpdGlvbmFsOiBURVhUX0FVVE9TSVpJTkcKKworc3VicGl4
ZWxBbnRpYWxpYXNlZExheWVyVGV4dEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIG9uQ2hh
bmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKK3NpbXBsZUxpbmVMYXlvdXRFbmFi
bGVkOgorICBpbml0aWFsOiB0cnVlCisgIG9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMKK3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOgorICBpbml0aWFs
OiBmYWxzZQorICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCisKK3N1
YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKK3Vz
ZUdpYW50VGlsZXM6CisgIGluaXRpYWw6IGZhbHNlCisKK21lZGlhU291cmNlRW5hYmxlZDoKKyAg
aW5pdGlhbDogdHJ1ZQorICBjb25kaXRpb25hbDogTUVESUFfU09VUkNFCisKKyMgRklYTUU6IFJl
bmFtZSB0byBhbGxvd011bHRpRWxlbWVudEltcGxpY2l0Rm9ybVN1Ym1pc3Npb24gb25jZSB3ZSB1
cHN0cmVhbSB0aGUgaU9TIGNoYW5nZXMgdG8gV2ViVmlldy5tbS4KK2FsbG93TXVsdGlFbGVtZW50
SW1wbGljaXRTdWJtaXNzaW9uOgorICBpbml0aWFsOiBmYWxzZQorCithbGxvd3NBaXJQbGF5Rm9y
TWVkaWFQbGF5YmFjazoKKyAgaW5pdGlhbDogdHJ1ZQorICBjb25kaXRpb25hbDogV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUCisKK3Nob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5OgorICBp
bml0aWFsOiBmYWxzZQorCittYXhQYXJzZUR1cmF0aW9uOgorICB0eXBlOiBkb3VibGUKKyAgaW5p
dGlhbDogLTEKK3N0YW5kYWxvbmU6CisgIGluaXRpYWw6IGZhbHNlCit0ZWxlcGhvbmVOdW1iZXJQ
YXJzaW5nRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKK21lZGlhRGF0YUxvYWRzQXV0b21hdGlj
YWxseToKKyAgaW5pdGlhbDogZGVmYXVsdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseQorYWx3
YXlzVXNlQWNjZWxlcmF0ZWRPdmVyZmxvd1Njcm9sbDoKKyAgaW5pdGlhbDogZmFsc2UKK2ltYWdl
Q29udHJvbHNFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorICBjb25kaXRpb25hbDogU0VSVklD
RV9DT05UUk9MUworCitlbmFibGVJbmhlcml0VVJJUXVlcnlDb21wb25lbnQ6CisgIGluaXRpYWw6
IGZhbHNlCisKK2FnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFs
c2UKK3RlbXBvcmFyeVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkOgorICBpbml0aWFsOiB0cnVl
CisKK3VzZUltYWdlRG9jdW1lbnRGb3JTdWJmcmFtZVBERjoKKyAgaW5pdGlhbDogZmFsc2UKK2Rh
dGFEZXRlY3RvclR5cGVzOgorICB0eXBlOiBEYXRhRGV0ZWN0b3JUeXBlcworICBpbml0aWFsOiBE
YXRhRGV0ZWN0b3JUeXBlTm9uZQorICBjb25kaXRpb25hbDogREFUQV9ERVRFQ1RJT04KKworIyBB
bGxvdyBTb3VyY2VCdWZmZXJzIHRvIHN0b3JlIHVwIHRvIDMwNE1CIGVhY2gsIGVub3VnaCBmb3Ig
YXBwcm94aW1hdGVseSBmaXZlIG1pbnV0ZXMKKyMgb2YgMTA4MHAgdmlkZW8gYW5kIHN0ZXJlbyBh
dWRpby4KK21heGltdW1Tb3VyY2VCdWZmZXJTaXplOgorICB0eXBlOiBpbnQKKyAgaW5pdGlhbDog
MzE4NzY3MTA0CisgIGNvbmRpdGlvbmFsOiBNRURJQV9TT1VSQ0UKKworc2VydmljZUNvbnRyb2xz
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKyAgY29uZGl0aW9uYWw6IFNFUlZJQ0VfQ09OVFJP
TFMKKworYXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UK
KworZGVmZXJyZWRDU1NQYXJzZXJFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCityZXBhaW50
T3V0c2lkZUxheW91dEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKK2h0dHBFcXVpdkVuYWJs
ZWQ6CisgIGluaXRpYWw6IHRydWUKKworIyBTb21lIHBvcnRzIChlLmcuIGlPUykgbWlnaHQgY2hv
b3NlIHRvIGRpc3BsYXkgYXR0YWNobWVudHMgaW5saW5lLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIg
dGhlIHJlc3BvbnNlIGluY2x1ZGVzIHRoZQorIyBIVFRQIGhlYWRlciAiQ29udGVudC1EaXNwb3Np
dGlvbjogYXR0YWNobWVudCIuIFRoaXMgc2V0dGluZyBlbmFibGVzIGEgc2FuZGJveCBhcm91bmQg
dGhlc2UgYXR0YWNobWVudHMuIFRoZSBzYW5kYm94CisjIGVuZm9yY2VzIGFsbCBmcmFtZSBzYW5k
Ym94IGZsYWdzIChzZWUgZW51bSBTYW5kYm94RmxhZyBpbiBTZWN1cml0eUNvbnRleHQuaCksIGFu
ZCBhbHNvIGRpc2FibGVzIDxtZXRhIGh0dHAtZXF1aXY+CisjIHByb2Nlc3NpbmcgYW5kIHN1YmZy
YW1lIGxvYWRpbmcuCitjb250ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveEVuYWJsZWQ6
CisgIGluaXRpYWw6IGZhbHNlCisKK3VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3k6CisgIHR5
cGU6IFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kKKyAgaW5pdGlhbDogVXNlckludGVyZmFj
ZURpcmVjdGlvblBvbGljeTo6Q29udGVudAorc3lzdGVtTGF5b3V0RGlyZWN0aW9uOgorICB0eXBl
OiBUZXh0RGlyZWN0aW9uCisgIGluaXRpYWw6IExUUgorCithbGxvd0NvbnRlbnRTZWN1cml0eVBv
bGljeVNvdXJjZVN0YXJUb01hdGNoQW55UHJvdG9jb2w6CisgIGluaXRpYWw6IGZhbHNlCisKK3Nl
bGVjdGlvblBhaW50aW5nV2l0aG91dFNlbGVjdGlvbkdhcHNFbmFibGVkOgorICBpbml0aWFsOiBm
YWxzZQorCitzaG91bGRDb252ZXJ0SW52YWxpZFVSTHNUb0JsYW5rOgorICBpbml0aWFsOiB0cnVl
CisKK3NwcmluZ1RpbWluZ0Z1bmN0aW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKwordHJl
YXRJUEFkZHJlc3NBc0RvbWFpbjoKKyAgaW5pdGlhbDogZmFsc2UKKworbWVkaWFQcmVsb2FkaW5n
RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKworIyBSdW50aW1lLWVuYWJsZWQgZmVhdHVyZXMK
K3Zpc3VhbFZpZXdwb3J0RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UKKyAgb25DaGFuZ2U6IHNl
dE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcworCitpbnB1dEV2ZW50c0VuYWJsZWQ6CisgIGlu
aXRpYWw6IHRydWUKKworcXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkOgorICBpbml0
aWFsOiBkZWZhdWx0UXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkCit5b3VUdWJlRmxh
c2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQ6CisgIGluaXRpYWw6IGRlZmF1bHRZb3VUdWJlRmxh
c2hQbHVnaW5SZXBsYWNlbWVudEVuYWJsZWQKKworZm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nl
c3NpYmlsaXR5VmFsdWU6CisgIHR5cGU6IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZQorICBpbml0
aWFsOiBkZWZhdWx0Rm9yY2VkQ29sb3JzQXJlSW52ZXJ0ZWRBY2Nlc3NpYmlsaXR5VmFsdWUKK2Zv
cmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5VmFsdWU6CisgIHR5cGU6IEZvcmNl
ZEFjY2Vzc2liaWxpdHlWYWx1ZQorICBpbml0aWFsOiBkZWZhdWx0Rm9yY2VkRGlzcGxheUlzTW9u
b2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZQorZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nl
c3NpYmlsaXR5VmFsdWU6CisgIHR5cGU6IEZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZQorICBpbml0
aWFsOiBkZWZhdWx0Rm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWUK
KworbGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCithbmlt
YXRlZEltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWQ6CisgIGluaXRpYWw6IHRydWUKK3dlYmtpdElt
YWdlUmVhZHlFdmVudEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisKK3Nob3VsZFN1cHByZXNz
VGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb246CisgIGluaXRp
YWw6IGZhbHNlCisKK2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkOgorICBp
bml0aWFsOiBmYWxzZQorCitzdWJyZXNvdXJjZUludGVncml0eUVuYWJsZWQ6CisgIGluaXRpYWw6
IHRydWUKKworbGlua1ByZWNvbm5lY3RFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCitiZWFj
b25BUElFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorCitnZW9sb2NhdGlvbkZsb29yTGV2ZWxF
bmFibGVkOgorICBpbml0aWFsOiB0cnVlCisKK2NvbnN0YW50UHJvcGVydGllc0VuYWJsZWQ6Cisg
IGluaXRpYWw6IGZhbHNlCisKK3ZpZXdwb3J0Rml0RW5hYmxlZDoKKyAgaW5pdGlhbDogZmFsc2UK
KworYWxsb3dNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJh
Y2s6CisgIGluaXRpYWw6IGZhbHNlCisKK3N0b3JhZ2VBY2Nlc3NBUElFbmFibGVkOgorICBpbml0
aWFsOiBmYWxzZQorCit0aW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9s
czoKKyAgdHlwZTogU2Vjb25kcworICBpbml0aWFsOiAzX3MKKworZm9udEZhbGxiYWNrUHJlZmVy
c1BpY3RvZ3JhcGhzOgorICBpbml0aWFsOiBmYWxzZQorICBvbkNoYW5nZTogc2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzCisKK2ZvbnRMb2FkVGltaW5nT3ZlcnJpZGU6CisgIHR5cGU6IEZv
bnRMb2FkVGltaW5nT3ZlcnJpZGUKKyAgaW5pdGlhbDogRm9udExvYWRUaW1pbmdPdmVycmlkZTo6
Tm9uZQorc2hvdWxkSWdub3JlRm9udExvYWRDb21wbGV0aW9uczoKKyAgaW5pdGlhbDogZmFsc2UK
KworcGF5bWVudFJlcXVlc3RFbmFibGVkOgorICBpbml0aWFsOiBmYWxzZQorICBjb25kaXRpb25h
bDogUEFZTUVOVF9SRVFVRVNUCithcHBsZVBheUVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisg
IGNvbmRpdGlvbmFsOiBBUFBMRV9QQVkKK2FwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVBbGxv
d2VkOgorICBpbml0aWFsOiB0cnVlCisgIGNvbmRpdGlvbmFsOiBBUFBMRV9QQVkKKworamF2YUVu
YWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIGdldHRlcjogaXNKYXZhRW5hYmxlZAoramF2YUVu
YWJsZWRGb3JMb2NhbEZpbGVzOgorICBpbml0aWFsOiB0cnVlCisgIGdldHRlcjogaXNKYXZhRW5h
YmxlZEZvckxvY2FsRmlsZXMKKworIyBVbmxpa2UgdGhlIGltYWdlc0VuYWJsZWQgc2V0dGluZywg
dGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgorIyB0aGUgaW1hZ2UgVVJM
LiBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGlmIHJlcXVlc3RlZC4KK2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseToKKyAgaW5pdGlhbDogZmFsc2UKKyAgb25DaGFuZ2U6IGlt
YWdlc0VuYWJsZWRDaGFuZ2VkCitpbWFnZXNFbmFibGVkOgorICBpbml0aWFsOiB0cnVlCisgIGdl
dHRlcjogYXJlSW1hZ2VzRW5hYmxlZAorICBvbkNoYW5nZTogaW1hZ2VzRW5hYmxlZENoYW5nZWQK
K3NjcmlwdEVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIGdldHRlcjogaXNTY3JpcHRFbmFi
bGVkCisgIG9uQ2hhbmdlOiBzY3JpcHRFbmFibGVkQ2hhbmdlZAorcGx1Z2luc0VuYWJsZWQ6Cisg
IGluaXRpYWw6IGZhbHNlCisgIGdldHRlcjogYXJlUGx1Z2luc0VuYWJsZWQKKyAgb25DaGFuZ2U6
IHBsdWdpbnNFbmFibGVkQ2hhbmdlZAorCit1c2VzUGFnZUNhY2hlOgorICBpbml0aWFsOiBmYWxz
ZQorICBvbkNoYW5nZTogdXNlc1BhZ2VDYWNoZUNoYW5nZWQKKworZG5zUHJlZmV0Y2hpbmdFbmFi
bGVkOgorICBpbml0aWFsOiBmYWxzZQorICBvbkNoYW5nZTogZG5zUHJlZmV0Y2hpbmdFbmFibGVk
Q2hhbmdlZAorCitiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZToKKyAgaW5pdGlhbDog
ZmFsc2UKKyAgb25DaGFuZ2U6IGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdl
ZAorCitzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkOgorICBpbml0aWFsOiBmYWxz
ZQorICBvbkNoYW5nZTogc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZENoYW5nZWQK
KworaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNl
CisgIG9uQ2hhbmdlOiBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nU3RhdGVDaGFuZ2VkCito
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlczoKKyAgaW5pdGlhbDogZmFs
c2UKKyAgb25DaGFuZ2U6IGhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdTdGF0ZUNoYW5nZWQK
K2hpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZDoKKyAgaW5pdGlhbDogZmFs
c2UKKyAgb25DaGFuZ2U6IGhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZENo
YW5nZWQKKworc3RvcmFnZUJsb2NraW5nUG9saWN5OgorICB0eXBlOiBTZWN1cml0eU9yaWdpbjo6
U3RvcmFnZUJsb2NraW5nUG9saWN5CisgIGluaXRpYWw6IFNlY3VyaXR5T3JpZ2luOjpBbGxvd0Fs
bFN0b3JhZ2UKKyAgb25DaGFuZ2U6IHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQKKworIyBP
bmx5IHNldCBieSBMYXlvdXQgVGVzdHMuCittZWRpYVR5cGVPdmVycmlkZToKKyAgdHlwZTogU3Ry
aW5nCisgIGluaXRpYWw6ICcic2NyZWVuIicKKyAgb25DaGFuZ2U6IG1lZGlhVHlwZU92ZXJyaWRl
Q2hhbmdlZAorCisKK2ZvbnRSZW5kZXJpbmdNb2RlOgorICB0eXBlOiBGb250UmVuZGVyaW5nTW9k
ZQorICBpbml0aWFsOiBGb250UmVuZGVyaW5nTW9kZTo6Tm9ybWFsCisKK3ByZWZlck1JTUVUeXBl
Rm9ySW1hZ2VzOgorICBpbml0aWFsOiBmYWxzZQorCitmb3JjZVBlbmRpbmdXZWJHTFBvbGljeToK
KyAgaW5pdGlhbDogZmFsc2UKKyAgZ2V0dGVyOiBpc0ZvcmNlUGVuZGluZ1dlYkdMUG9saWN5CisK
K21lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk6CisgIHR5cGU6IFN0cmluZworICBjb25kaXRpb25h
bDogTEVHQUNZX0VOQ1JZUFRFRF9NRURJQQorbWVkaWFEZXZpY2VJZGVudGlmaWVyU3RvcmFnZURp
cmVjdG9yeToKKyAgdHlwZTogU3RyaW5nCisgIGNvbmRpdGlvbmFsOiBNRURJQV9TVFJFQU0KKwor
IyBGSVhNRTogVGhpcyBxdWlyayBpcyBuZWVkZWQgYmVjYXVzZSBvZiBSYWRhciA0Njc0NTM3IGFu
ZCA1MjExMjcxLiBXZSBuZWVkIHRvIHBoYXNlIGl0IG91dCBvbmNlIEFkb2JlCisjIGNhbiBmaXgg
dGhlIGJ1ZyBmcm9tIHRoZWlyIGVuZC4KK25lZWRzQWRvYmVGcmFtZVJlbG9hZGluZ1F1aXJrOgor
ICBpbml0aWFsOiBmYWxzZQorICBnZXR0ZXI6IG5lZWRzQWNyb2JhdEZyYW1lUmVsb2FkaW5nUXVp
cmsKKwordG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQ6CisgIGluaXRpYWw6IGZhbHNlCisgIGdl
dHRlcjogaXNUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZAorICBjb25kaXRpb25hbDogVE9VQ0hf
RVZFTlRTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>