<?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>10685</bug_id>
          
          <creation_ts>2006-09-01 21:09:05 -0700</creation_ts>
          <short_desc>ObjC DOM should have no unnamed parameters</short_desc>
          <delta_ts>2006-09-03 13:31:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54601</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-01 21:09:05 -0700</bug_when>
    <thetext>This would improve the look of the methods with more than one parameter. Now that we are auto-generating the DOM bindings this is easy to add. We will want to generate the old style for methods that already exist in our API ad generate the new version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54602</commentid>
    <comment_count>1</comment_count>
      <attachid>10358</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-01 21:25:50 -0700</bug_when>
    <thetext>Created attachment 10358
Implements this and other small tweaks

- The ObjC code generation script now outputs parameter prefixes
  for methods that have more than 1 parameter. This prefix is simply
  the parameter name. Some parameter names have been changed in the IDL
  files to produce good prefixes. Please don&apos;t change existing
  parameter names, or the ObjC API will change.

- A backwards compatible version of the method is placed in a
  category with a deprecation marco for 10.5 and later. This step only
  happens if the IDL extended attribute &quot;OldStyleObjC&quot; is defined.
  All new functions in IDL should not get this attribute.

- Moved RemoveExcludedAttributesAndFunctions to CodeGenerator.pm
  so it can be shared between the two generators.
  
- The ObjC generate will now die before starting if the platform is
  not Mac OS. This is determined by the &quot;OS&quot; env variable Xcode sets.
  
- Many cleanup tweaks in CodeGeneratorObjC.pm.

- Removed IDL and CSS files from the project&apos;s resource copy phase,
  these do no need to be in WebCore&apos;s resources. 

* WebCore.xcodeproj/project.pbxproj
* bindings/scripts/CodeGenerator.pm
* bindings/scripts/CodeGeneratorJS.pm
* bindings/scripts/CodeGeneratorObjC.pm
* css/CSSPrimitiveValue.idl
* dom/CharacterData.idl
* dom/DOMImplementation.idl
* dom/Document.idl
* dom/Element.idl
* dom/KeyboardEvent.idl
* dom/MouseEvent.idl
* dom/MutationEvent.idl
* dom/NamedNodeMap.idl
* dom/UIEvent.idl
* html/HTMLCanvasElement.idl
* html/HTMLSelectElement.idl
* ksvg2/bindings/idl/svg/SVGLengthList.idl
* ksvg2/bindings/idl/svg/SVGNumberList.idl
* ksvg2/bindings/idl/svg/SVGPointList.idl
* ksvg2/bindings/idl/svg/SVGStringList.idl
* ksvg2/bindings/idl/svg/SVGTextContentElement.idl
* ksvg2/bindings/idl/svg/SVGTransformList.idl
* ksvg2/svg/SVGSVGElement.idl
* page/DOMWindow.idl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54603</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-01 21:40:45 -0700</bug_when>
    <thetext>That patch is missing one part, the deprecation macro.

Here it is:

$deprecatedFunctionSig =~ s/;\n$/ DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;\n/;

It tacks it on the end in the header. I will land the patch plus that line.

Here is an example:

@interface DOMElement : DOMNode
- (NSString *)tagName;
- (DOMCSSStyleDeclaration *)style;
- (int)offsetLeft;
- (int)offsetTop;
- (int)offsetWidth;
- (int)offsetHeight;
- (DOMElement *)offsetParent;
- (int)clientWidth;
- (int)clientHeight;
- (int)scrollLeft;
- (void)setScrollLeft:(int)newScrollLeft;
- (int)scrollTop;
- (void)setScrollTop:(int)newScrollTop;
- (int)scrollWidth;
- (int)scrollHeight;

- (NSString *)getAttribute:(NSString *)name;
- (void)setAttribute:(NSString *)name value:(NSString *)value;
- (void)removeAttribute:(NSString *)name;
- (DOMAttr *)getAttributeNode:(NSString *)name;
- (DOMAttr *)setAttributeNode:(DOMAttr *)newAttr;
- (DOMAttr *)removeAttributeNode:(DOMAttr *)oldAttr;
- (DOMNodeList *)getElementsByTagName:(NSString *)name;
- (NSString *)getAttributeNS:(NSString *)namespaceURI localName:(NSString *)localName;
- (void)setAttributeNS:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName value:(NSString *)value;
- (void)removeAttributeNS:(NSString *)namespaceURI localName:(NSString *)localName;
- (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI localName:(NSString *)localName;
- (DOMAttr *)getAttributeNodeNS:(NSString *)namespaceURI localName:(NSString *)localName;
- (DOMAttr *)setAttributeNodeNS:(DOMAttr *)newAttr;
- (BOOL)hasAttribute:(NSString *)name;
- (BOOL)hasAttributeNS:(NSString *)namespaceURI localName:(NSString *)localName;
- (void)focus;
- (void)blur;
- (void)scrollIntoView:(BOOL)alignWithTop;
- (void)scrollIntoViewIfNeeded:(BOOL)centerIfNeeded;
@end

@interface DOMElement (DOMElementDeprecated)
- (void)setAttribute:(NSString *)name :(NSString *)value DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (NSString *)getAttributeNS:(NSString *)namespaceURI :(NSString *)localName DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (void)setAttributeNS:(NSString *)namespaceURI :(NSString *)qualifiedName :(NSString *)value DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (void)removeAttributeNS:(NSString *)namespaceURI :(NSString *)localName DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (DOMNodeList *)getElementsByTagNameNS:(NSString *)namespaceURI :(NSString *)localName DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (DOMAttr *)getAttributeNodeNS:(NSString *)namespaceURI :(NSString *)localName DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
- (BOOL)hasAttributeNS:(NSString *)namespaceURI :(NSString *)localName DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER;
@end

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54606</commentid>
    <comment_count>3</comment_count>
      <attachid>10358</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-02 00:57:26 -0700</bug_when>
    <thetext>Comment on attachment 10358
Implements this and other small tweaks

I mostly just have little nit comments:

I think this restriction could be eased using a ObjC specific keyword, if necessary:
&quot;Please don&apos;t change existing parameter names, or the ObjC API will change.&quot;  Not something we need now, but could keep in mind for the future if another language needs specific parameter names.


This seems a little confusing:
+    die &quot;Skipping ObjC code generation, not needed on platforms other than Mac OS.&quot; unless $ENV{&quot;OS&quot;} and $ENV{&quot;OS&quot;} eq &quot;MACOS&quot;;

you&apos;re not actually skipping, you&apos;re dieing.  Maybe it should say.  &quot;ObjC code generation is not supported on your platform.&quot; or similar.

Personally I found the old style more readable:

-    if ($type eq &quot;Counter&quot;
-            or $type eq &quot;MediaList&quot;
-            or $type eq &quot;CSSStyleSheet&quot;) {
+    if ($type eq &quot;Counter&quot; or $type eq &quot;MediaList&quot; or $type eq &quot;CSSStyleSheet&quot;) {
(actually in a couple places).

Another style comment:
+    $implIncludes{&quot;DOMHTMLInternal.h&quot;} = 1 if $type =~ /^HTML/;
One of the things we have started to do in our Ruby code (which also uses one-line ifs all over) it to place an extra space between the code line and the if, I find this really helps readability.  Perhaps WebKit would like to consider doing the same.

Eventually this will not be true:
+    die &quot;A class can&apos;t have more than one parent.&quot; if @{$dataNode-&gt;parents} &gt; 1;
The others will just be categories.  WildFox just fixed this for JS.  You might also consider saying &quot;... more than one parent for ObjC.&quot;

I&apos;m surprised the double-check is necessary here:
+            if ($ENV{&quot;MACOSX_DEPLOYMENT_TARGET&quot;} and $ENV{&quot;MACOSX_DEPLOYMENT_TARGET&quot;} &gt;= 10.5) {

Why remove this?
-            if ($hasGetterException) {
-                die &quot;We should not have any getter exceptions yet!&quot;;
-            }
-            
I don&apos;t see it used anywhere, but maybe it was already being used in code before.

All in all, this looks fine.  I think at least darin should look over the API changes.  I&apos;m not sure simple argument names make the most sense for Obj-C argument labels.  AppKit often uses prepositions with argument names, like &quot;to&quot; or &quot;with&quot;, etc.

I&apos;m going to leave this ? for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54633</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-02 04:46:56 -0700</bug_when>
    <thetext>&gt; I think this restriction could be eased using a ObjC specific keyword, if
&gt; necessary:
&gt; &quot;Please don&apos;t change existing parameter names, or the ObjC API will change.&quot; 
&gt; Not something we need now, but could keep in mind for the future if another
&gt; language needs specific parameter names.

Yeah, I should add support for that now.

&gt; This seems a little confusing:
&gt; +    die &quot;Skipping ObjC code generation, not needed on platforms other than Mac
&gt; OS.&quot; unless $ENV{&quot;OS&quot;} and $ENV{&quot;OS&quot;} eq &quot;MACOS&quot;;
&gt; 
&gt; you&apos;re not actually skipping, you&apos;re dieing.  Maybe it should say.  &quot;ObjC code
&gt; generation is not supported on your platform.&quot; or similar.

You are right, I will fix this.

&gt; Personally I found the old style more readable:
&gt; 
&gt; -    if ($type eq &quot;Counter&quot;
&gt; -            or $type eq &quot;MediaList&quot;
&gt; -            or $type eq &quot;CSSStyleSheet&quot;) {
&gt; +    if ($type eq &quot;Counter&quot; or $type eq &quot;MediaList&quot; or $type eq
&gt; &quot;CSSStyleSheet&quot;) {
&gt; (actually in a couple places).

I only un-wraped ifs that could fit on one line easily, arguably easier to read.

&gt; Eventually this will not be true:
&gt; +    die &quot;A class can&apos;t have more than one parent.&quot; if @{$dataNode-&gt;parents} &gt;
&gt; 1;
&gt; The others will just be categories.  WildFox just fixed this for JS.  You might
&gt; also consider saying &quot;... more than one parent for ObjC.&quot;

We don&apos;t support SVG bindings yet.

&gt; I&apos;m surprised the double-check is necessary here:
&gt; +            if ($ENV{&quot;MACOSX_DEPLOYMENT_TARGET&quot;} and
&gt; $ENV{&quot;MACOSX_DEPLOYMENT_TARGET&quot;} &gt;= 10.5) {

The double check is needed to prevent a warning about comparing an undefined value.

&gt; Why remove this?
&gt; -            if ($hasGetterException) {
&gt; -                die &quot;We should not have any getter exceptions yet!&quot;;
&gt; -            }
&gt; -            
&gt; I don&apos;t see it used anywhere, but maybe it was already being used in code
&gt; before.

Sam added support for $hasGetterException a while ago but this die was never removed.

&gt; All in all, this looks fine.  I think at least darin should look over the API
&gt; changes.  I&apos;m not sure simple argument names make the most sense for Obj-C
&gt; argument labels.  AppKit often uses prepositions with argument names, like &quot;to&quot;
&gt; or &quot;with&quot;, etc.

This is something Darin and I talked about offline before I worked on the patch. This approch makes the ObjC binding easy to maintain and consistent. We could add IDL attributes fro each prefix, but I don&apos;t see any good way to generate these prefixes reliably with prepositions sprinkled in without IDL attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54636</commentid>
    <comment_count>5</comment_count>
      <attachid>10365</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-02 06:23:35 -0700</bug_when>
    <thetext>Created attachment 10365
Revised per Eric&apos;s comments

- The ObjC code generation script now outputs parameter prefixes
  for methods that have more than 1 parameter. This prefix is simply
  the parameter name. Some parameter names have been changed in the IDL
  files to produce better prefixes. If an extended attribute of &quot;ObjCPrefix&quot;
  exists on a parameter we will use that for the prefix.

- A backwards compatible version of the method is placed in a
  category with a deprecation marco for 10.5 and later. This step only
  happens if the IDL extended attribute &quot;OldStyleObjC&quot; is defined.
  All new functions in IDL should not get this attribute.

- Made the $interfaceMethodSelector regex in IDLStructure.pm allow &quot;=&quot; so 
  parameter extended attributes can have values.

- Moved RemoveExcludedAttributesAndFunctions to CodeGenerator.pm
  so it can be shared between the two generators.
  
- Removed the die when we encounter a getter that uses exceptions.
  Sam Weinig added support for this in an earlier change.

- Check if $ENV{&quot;MACOSX_DEPLOYMENT_TARGET&quot;} is defined before we compare.
  This caused a perl warning when generating on other platforms.

- The ObjC generation will not happen on platforms other than Mac OS.
  This is determined by the &quot;OS&quot; env variable Xcode sets. This check
  is in the DerivedSources.make.

- Added a way to skip generation if the constructor of the specific
  generator returns undef. Not used yet.

- Many cleanup tweaks in CodeGeneratorObjC.pm.

- Removed IDL and CSS files from the project&apos;s resource copy phase,
  these do no need to be in WebCore&apos;s resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54712</commentid>
    <comment_count>6</comment_count>
      <attachid>10365</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-03 11:56:37 -0700</bug_when>
    <thetext>Comment on attachment 10365
Revised per Eric&apos;s comments

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54729</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-03 13:31:26 -0700</bug_when>
    <thetext>Landed in r16201.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10358</attachid>
            <date>2006-09-01 21:25:50 -0700</date>
            <delta_ts>2006-09-02 06:23:35 -0700</delta_ts>
            <desc>Implements this and other small tweaks</desc>
            <filename>10685.patch</filename>
            <type>text/plain</type>
            <size>59455</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTkx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMDYtMDkt
MDEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAxMDY4NTogT2JqQyBET00gc2hv
dWxkIGhhdmUgbm8gdW5uYW1lZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2ODUKKyAgICAgICAgCisgICAgICAgIC0g
VGhlIE9iakMgY29kZSBnZW5lcmF0aW9uIHNjcmlwdCBub3cgb3V0cHV0cyBwYXJhbWV0ZXIgcHJl
Zml4ZXMKKyAgICAgICAgICBmb3IgbWV0aG9kcyB0aGF0IGhhdmUgbW9yZSB0aGFuIDEgcGFyYW1l
dGVyLiBUaGlzIHByZWZpeCBpcyBzaW1wbHkKKyAgICAgICAgICB0aGUgcGFyYW1ldGVyIG5hbWUu
IFNvbWUgcGFyYW1ldGVyIG5hbWVzIGhhdmUgYmVlbiBjaGFuZ2VkIGluIHRoZSBJREwKKyAgICAg
ICAgICBmaWxlcyB0byBwcm9kdWNlIGdvb2QgcHJlZml4ZXMuIFBsZWFzZSBkb24ndCBjaGFuZ2Ug
ZXhpc3RpbmcKKyAgICAgICAgICBwYXJhbWV0ZXIgbmFtZXMsIG9yIHRoZSBPYmpDIEFQSSB3aWxs
IGNoYW5nZS4KKworICAgICAgICAtIEEgYmFja3dhcmRzIGNvbXBhdGlibGUgdmVyc2lvbiBvZiB0
aGUgbWV0aG9kIGlzIHBsYWNlZCBpbiBhCisgICAgICAgICAgY2F0ZWdvcnkgd2l0aCBhIGRlcHJl
Y2F0aW9uIG1hcmNvIGZvciAxMC41IGFuZCBsYXRlci4gVGhpcyBzdGVwIG9ubHkKKyAgICAgICAg
ICBoYXBwZW5zIGlmIHRoZSBJREwgZXh0ZW5kZWQgYXR0cmlidXRlICJPbGRTdHlsZU9iakMiIGlz
IGRlZmluZWQuCisgICAgICAgICAgQWxsIG5ldyBmdW5jdGlvbnMgaW4gSURMIHNob3VsZCBub3Qg
Z2V0IHRoaXMgYXR0cmlidXRlLgorCisgICAgICAgIC0gTW92ZWQgUmVtb3ZlRXhjbHVkZWRBdHRy
aWJ1dGVzQW5kRnVuY3Rpb25zIHRvIENvZGVHZW5lcmF0b3IucG0KKyAgICAgICAgICBzbyBpdCBj
YW4gYmUgc2hhcmVkIGJldHdlZW4gdGhlIHR3byBnZW5lcmF0b3JzLgorICAgICAgICAgIAorICAg
ICAgICAtIFRoZSBPYmpDIGdlbmVyYXRlIHdpbGwgbm93IGRpZSBiZWZvcmUgc3RhcnRpbmcgaWYg
dGhlIHBsYXRmb3JtIGlzCisgICAgICAgICAgbm90IE1hYyBPUy4gVGhpcyBpcyBkZXRlcm1pbmVk
IGJ5IHRoZSAiT1MiIGVudiB2YXJpYWJsZSBYY29kZSBzZXRzLgorICAgICAgICAgIAorICAgICAg
ICAtIE1hbnkgY2xlYW51cCB0d2Vha3MgaW4gQ29kZUdlbmVyYXRvck9iakMucG0uCisgICAgICAg
IAorICAgICAgICAtIFJlbW92ZWQgSURMIGFuZCBDU1MgZmlsZXMgZnJvbSB0aGUgcHJvamVjdCdz
IHJlc291cmNlIGNvcHkgcGhhc2UsCisgICAgICAgICAgdGhlc2UgZG8gbm8gbmVlZCB0byBiZSBp
biBXZWJDb3JlJ3MgcmVzb3VyY2VzLiAKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5w
bQorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorICAgICAgICAqIGNzcy9D
U1NQcmltaXRpdmVWYWx1ZS5pZGwKKyAgICAgICAgKiBkb20vQ2hhcmFjdGVyRGF0YS5pZGwKKyAg
ICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisgICAgICAgICogZG9tL0RvY3VtZW50
LmlkbAorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbAorICAgICAgICAqIGRvbS9LZXlib2FyZEV2
ZW50LmlkbAorICAgICAgICAqIGRvbS9Nb3VzZUV2ZW50LmlkbAorICAgICAgICAqIGRvbS9NdXRh
dGlvbkV2ZW50LmlkbAorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuaWRsCisgICAgICAgICog
ZG9tL1VJRXZlbnQuaWRsCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5pZGwKKyAg
ICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAorICAgICAgICAqIGtzdmcyL2JpbmRp
bmdzL2lkbC9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9p
ZGwvc3ZnL1NWR051bWJlckxpc3QuaWRsCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2
Zy9TVkdQb2ludExpc3QuaWRsCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdT
dHJpbmdMaXN0LmlkbAorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmlkbAorICAgICAgICAqIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHVHJh
bnNmb3JtTGlzdC5pZGwKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwKKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGwKKwogMjAwNi0wOS0wMSAgRGF2aWQgSHlhdHQgIDxo
eWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciAxMDY4MiwgcmVmaW5lIHRoZSBGT1VD
IHBhaW50IHN1cHByZXNzaW9uIGxvZ2ljIHNvIHRoYXQgaXQKSW5kZXg6IFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MTc3KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw2IEBACiAJCTFBNjkzODAyMEEx
MTEwMEEwMEMxMjdGRSAvKiBUZXh0RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjkzODAwMEExMTEwMEEwMEMxMjdGRSAvKiBUZXh0RG9j
dW1lbnQuaCAqLzsgfTsKIAkJMUE3NTBENUMwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTc1
MEQ1QTBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmNwcCAqLzsgfTsKIAkJMUE3NTBE
NUQwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE3NTBENUIwQTkwREVFMTAwMEZGMjE1IC8qIEpT
VHJlZVdhbGtlci5oICovOyB9OwotCQkxQTc1MEQ4ODBBOTBFMzk0MDAwRkYyMTUgLyogTm9kZUl0
ZXJhdG9yLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUE3NTBEODcwQTkwRTM5NDAwMEZGMjE1IC8qIE5vZGVJdGVyYXRvci5pZGwgKi87IH07CiAJ
CTFBNzUwRDhEMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTc1MEQ4QjBBOTBFNTIxMDAw
RkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuY3BwICovOyB9OwogCQkxQTc1MEQ4RTBBOTBFNTIxMDAw
RkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNzUwRDhDMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ci5oICovOyB9OwogCQkxQTc1MERENDBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE3NTBERDMwQTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCAqLzsg
fTsKQEAgLTM3Nyw5ICszNzYsNiBAQAogCQk4NTAzMUI0RjBBNDRFRkM3MDBGOTkyRTAgLyogVUlF
dmVudFdpdGhLZXlTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODUwMzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUu
aCAqLzsgfTsKIAkJODUwMzFCNTAwQTQ0RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzFCM0EwQTQ0
RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuY3BwICovOyB9OwogCQk4NTAzMUI1MTBBNDRFRkM3
MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUwMzFCM0IwQTQ0RUZDNzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCAq
LzsgfTsKLQkJODUwODlDQzgwQTk4QzIyNjAwQTI3NUFBIC8qIENvbW1lbnQuaWRsIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTA4OUNDNzBBOThDMjI2
MDBBMjc1QUEgLyogQ29tbWVudC5pZGwgKi87IH07Ci0JCTg1MDg5Q0NBMEE5OEMyQUIwMEEyNzVB
QSAvKiBDREFUQVNlY3Rpb24uaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTA4OUNDOTBBOThDMkFCMDBBMjc1QUEgLyogQ0RBVEFTZWN0aW9uLmlk
bCAqLzsgfTsKLQkJODUwODlDQ0MwQTk4QzMzQTAwQTI3NUFBIC8qIEVudGl0eVJlZmVyZW5jZS5p
ZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5
Q0NCMEE5OEMzM0EwMEEyNzVBQSAvKiBFbnRpdHlSZWZlcmVuY2UuaWRsICovOyB9OwogCQk4NTA4
OUNENzBBOThDNDI4MDBBMjc1QUEgLyogRE9NQ0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTA4OUNDRjBBOThDNDI3MDBBMjc1QUEg
LyogRE9NQ0RBVEFTZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsg
fTsKIAkJODUwODlDRDgwQTk4QzQyODAwQTI3NUFBIC8qIERPTUNEQVRBU2VjdGlvbi5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0QwMEE5OEM0
MjcwMEEyNzVBQSAvKiBET01DREFUQVNlY3Rpb24ubW0gKi87IH07CiAJCTg1MDg5Q0Q5MEE5OEM0
MjgwMEEyNzVBQSAvKiBET01Db21tZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTA4OUNEMTBBOThDNDI3MDBBMjc1QUEgLyogRE9NQ29tbWVudC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC00NjIsOCArNDU4LDYg
QEAKIAkJODVBQ0E5OUQwQTlCNTc1OTAwNjcxRTkwIC8qIERPTVRleHQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFDQTk5QjBBOUI1NzU5MDA2NzFF
OTAgLyogRE9NVGV4dC5tbSAqLzsgfTsKIAkJODVBQ0E5QzAwQTlCNUZBNTAwNjcxRTkwIC8qIERP
TUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QUNBOUJFMEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVtZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJODVBQ0E5QzEwQTlCNUZBNTAwNjcxRTkwIC8qIERP
TUVsZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NUFDQTlCRjBBOUI1RkE1MDA2NzFFOTAgLyogRE9NRWxlbWVudC5tbSAqLzsgfTsKLQkJODVB
Q0E5RkIwQTlCNjMxMDAwNjcxRTkwIC8qIE5hbWVkTm9kZU1hcC5pZGwgaW4gUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBOUY5MEE5QjYzMTAwMDY3MUU5
MCAvKiBOYW1lZE5vZGVNYXAuaWRsICovOyB9OwotCQk4NUFDQTlGQzBBOUI2MzEwMDA2NzFFOTAg
LyogTm9kZUxpc3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUFDQTlGQTBBOUI2MzEwMDA2NzFFOTAgLyogTm9kZUxpc3QuaWRsICovOyB9Owog
CQk4NUFDQUE4RDBBOUI3NTlDMDA2NzFFOTAgLyogRE9NTm9kZUxpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQTg5MEE5Qjc1OUMwMDY3MUU5
MCAvKiBET01Ob2RlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07
CiAJCTg1QUNBQThFMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQThBMEE5Qjc1OUMwMDY3
MUU5MCAvKiBET01Ob2RlTGlzdC5tbSAqLzsgfTsKIAkJODVBQ0FCQjAwQTlDQUY4MDAwNjcxRTkw
IC8qIERPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtMTcwMyw3ICsxNjk3LDYgQEAKIAkJ
QkMxQTM3QzAwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzdBQTA5N0M3MTVGMDAxOUYzRDggLyog
RE9NVmlld3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzFBMzdDMTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzdBQjA5N0M3MTVGMDAxOUYz
RDggLyogRE9NVmlld3MubW0gKi87IH07CiAJCUJDMUEzN0MyMDk3QzcxNUYwMDE5RjNEOCAvKiBE
T01WaWV3c0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzFBMzdBQzA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3NJbnRlcm5hbC5oICov
OyB9OwotCQlCQzVFQzE3NzBBNTA3RTNFMDA2MDA3RjUgLyogdmlldy1zb3VyY2UuY3NzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVFQzE3NjBBNTA3
RTNFMDA2MDA3RjUgLyogdmlldy1zb3VyY2UuY3NzICovOyB9OwogCQlCQzZCN0JBRjA5OTM2MDND
MDA1Mjg2N0IgLyogSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM2QjdCQUUwOTkzNjAzQzAwNTI4NjdCIC8qIEltYWdlLmNwcCAqLzsgfTsK
IAkJQkM2QjdFQ0YwOTk4QUM3RjAwNTI4NjdCIC8qIEltYWdlU291cmNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzZCN0VDRTA5OThBQzdGMDA1Mjg2
N0IgLyogSW1hZ2VTb3VyY2UuaCAqLzsgfTsKIAkJQkM2RDZERDIwOUFGOTA2NjAwRjU5NzU5IC8q
IEZvbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM2RDZERDAwOUFGOTA2NjAwRjU5NzU5IC8qIEZvbnQuY3BwICovOyB9OwpAQCAtNzQzMiwxNyAr
NzQyNSwxMCBAQAogCQkJCUE3Qjk3Qjg1MDk3OUMzQTEwMDBFOEVCMSAvKiBXS1RhYmxlVHJhbnNm
ZXJGaWx0ZXIuY2lrZXJuZWwgaW4gUmVzb3VyY2VzICovLAogCQkJCUE3NjM4QTkyMDk5NTkyQzMw
MDA3RTE0RiAvKiBXS0Rpc3BsYWNlbWVudE1hcEZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJQUI0MjYxRDgwQTJGNkM5NzAwQkREMTdEIC8qIG1pc3NpbmdJbWFnZS50aWZmIGlu
IFJlc291cmNlcyAqLywKLQkJCQlCQzVFQzE3NzBBNTA3RTNFMDA2MDA3RjUgLyogdmlldy1zb3Vy
Y2UuY3NzIGluIFJlc291cmNlcyAqLywKIAkJCQkxQ0Q0NDE4RDBBNENFNzZGMDBBMDA3QUIgLyog
ZWFzdFdlc3RSZXNpemVDdXJzb3IudGlmZiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJMUNENDQxOEUw
QTRDRTc2RjAwQTAwN0FCIC8qIG5vcnRoRWFzdFNvdXRoV2VzdFJlc2l6ZUN1cnNvci50aWZmIGlu
IFJlc291cmNlcyAqLywKIAkJCQkxQ0Q0NDE4RjBBNENFNzZGMDBBMDA3QUIgLyogbm9ydGhTb3V0
aFJlc2l6ZUN1cnNvci50aWZmIGluIFJlc291cmNlcyAqLywKIAkJCQkxQ0Q0NDE5MDBBNENFNzZG
MDBBMDA3QUIgLyogbm9ydGhXZXN0U291dGhFYXN0UmVzaXplQ3Vyc29yLnRpZmYgaW4gUmVzb3Vy
Y2VzICovLAotCQkJCTFBNzUwRDg4MEE5MEUzOTQwMDBGRjIxNSAvKiBOb2RlSXRlcmF0b3IuaWRs
IGluIFJlc291cmNlcyAqLywKLQkJCQk4NTA4OUNDODBBOThDMjI2MDBBMjc1QUEgLyogQ29tbWVu
dC5pZGwgaW4gUmVzb3VyY2VzICovLAotCQkJCTg1MDg5Q0NBMEE5OEMyQUIwMEEyNzVBQSAvKiBD
REFUQVNlY3Rpb24uaWRsIGluIFJlc291cmNlcyAqLywKLQkJCQk4NTA4OUNDQzBBOThDMzNBMDBB
Mjc1QUEgLyogRW50aXR5UmVmZXJlbmNlLmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJODVBQ0E5
RkIwQTlCNjMxMDAwNjcxRTkwIC8qIE5hbWVkTm9kZU1hcC5pZGwgaW4gUmVzb3VyY2VzICovLAot
CQkJCTg1QUNBOUZDMEE5QjYzMTAwMDY3MUU5MCAvKiBOb2RlTGlzdC5pZGwgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTUxMTUwOTVDMEE5Q0UwNDcwMDkwMTAxMyAvKiB1cmxJY29uLnRpZmYgaW4gUmVz
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwpJbmRleDogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkocmV2aXNpb24gMTYxNzcpCisr
KyBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTc3
LDggKzc3LDYgQEAgc3ViIFByb2Nlc3NEb2N1bWVudAogICByZXF1aXJlICRpZmFjZU5hbWUgLiAi
LnBtIjsKICAgJGNvZGVHZW5lcmF0b3IgPSAkaWZhY2VOYW1lLT5uZXcoJG9iamVjdCwgJHVzZU91
dHB1dERpciwgJHVzZUxheWVyT25Ub3ApOwogCi0jICBwcmludCAiIHwgKioqIFN0YXJ0aW5nIHRv
IGdlbmVyYXRlIGNvZGUgdXNpbmcgXCIkaWZhY2VOYW1lXCIuLi5cbiB8XG4iOwotCiAgICMgU3Rh
cnQgdGhlIGFjdHVhbCBjb2RlIGdlbmVyYXRpb24hCiAgICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZU1vZHVsZSgkdXNlRG9jdW1lbnQpOwogCkBAIC05MSw4ICs4OSw2IEBAIHN1YiBQcm9jZXNzRG9j
dW1lbnQKICAgfQogCiAgICRjb2RlR2VuZXJhdG9yLT5maW5pc2goKTsKLQotIyAgcHJpbnQgIiB8
ICoqKiBGaW5pc2hlZCBnZW5lcmF0aW9uIVxuIjsKIH0KIAogIyBIZWxwZXIgZm9yIGFsbCBDb2Rl
R2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKQEAgLTMzMiw2ICszMjgsMzQgQEAgc3ViIFJlY3Vyc2l2
ZUluaGVyaXRhbmNlSGVscGVyCiB9CiAKICMgSGVscGVyIGZvciBhbGwgQ29kZUdlbmVyYXRvcioq
Ki5wbSBtb2R1bGVzCitzdWIgUmVtb3ZlRXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVuY3Rpb25zCit7
CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAg
IG15ICRleGNsdWRlTGFuZyA9IHNoaWZ0OworCisgICAgbXkgJGkgPSAwOworICAgIHdoaWxlICgk
aSA8IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkbGFuZyA9ICR7JGRh
dGFOb2RlLT5hdHRyaWJ1dGVzfVskaV0tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkV4Y2x1ZGUifTsKKyAgICAgICAgaWYgKCRsYW5nIGFuZCAkbGFuZyBlcSAkZXhjbHVkZUxhbmcp
IHsKKyAgICAgICAgICAgIHNwbGljZShAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30sICRpLCAxKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRpKys7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICAkaSA9IDA7CisgICAgd2hpbGUgKCRpIDwgQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsK
KyAgICAgICAgbXkgJGxhbmcgPSAkeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfVskaV0tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUifTsKKyAgICAgICAgaWYgKCRsYW5nIGFu
ZCAkbGFuZyBlcSAkZXhjbHVkZUxhbmcpIHsKKyAgICAgICAgICAgIHNwbGljZShAeyRkYXRhTm9k
ZS0+ZnVuY3Rpb25zfSwgJGksIDEpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgJGkr
KzsKKyAgICAgICAgfQorICAgIH0KK30KKworIyBIZWxwZXIgZm9yIGFsbCBDb2RlR2VuZXJhdG9y
KioqLnBtIG1vZHVsZXMKIHN1YiBJc1ByaW1pdGl2ZVR5cGUKIHsKICAgbXkgJG9iamVjdCA9IHNo
aWZ0OwpJbmRleDogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDE2MTc3
KQorKysgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTg3LDcgKzg3LDcgQEAgc3ViIEdlbmVyYXRlSW50ZXJmYWNlCiAgICAgbXkgJG9iamVjdCA9
IHNoaWZ0OwogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCi0gICAgJG9iamVjdC0+UmVtb3Zl
RXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVuY3Rpb25zKCRkYXRhTm9kZSk7CisgICAgJGNvZGVHZW5l
cmF0b3ItPlJlbW92ZUV4Y2x1ZGVkQXR0cmlidXRlc0FuZEZ1bmN0aW9ucygkZGF0YU5vZGUsICJK
UyIpOwogCiAgICAgIyBTdGFydCBhY3R1YWwgZ2VuZXJhdGlvbi4uCiAgICAgJG9iamVjdC0+R2Vu
ZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKQEAgLTExMiwzMiArMTEyLDYgQEAgc3ViIEdlbmVyYXRl
TW9kdWxlCiAgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOyAgICAKIH0KIAotc3ViIFJl
bW92ZUV4Y2x1ZGVkQXR0cmlidXRlc0FuZEZ1bmN0aW9ucwotewotICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLQotICAgIG15ICRpID0gMDsKLSAgICB3
aGlsZSAoJGkgPCBzY2FsYXIoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSkgewotICAgICAgICBt
eSAkbGFuZyA9ICR7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfVskaV0tPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUifTsKLSAgICAgICAgaWYgKCRsYW5nIGFuZCAkbGFuZyBl
cSAiSlMiKSB7Ci0gICAgICAgICAgICBzcGxpY2UoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9LCAk
aSwgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkaSsrOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgJGkgPSAwOwotICAgIHdoaWxlICgkaSA8IHNjYWxhcihAeyRkYXRhTm9kZS0+
ZnVuY3Rpb25zfSkpIHsKLSAgICAgICAgbXkgJGxhbmcgPSAkeyRkYXRhTm9kZS0+ZnVuY3Rpb25z
fVskaV0tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUifTsKLSAgICAg
ICAgaWYgKCRsYW5nIGFuZCAkbGFuZyBlcSAiSlMiKSB7Ci0gICAgICAgICAgICBzcGxpY2UoQHsk
ZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpLCAxKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICRpKys7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIHN1YiBHZXRQYXJlbnRDbGFzc05hbWUK
IHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKSW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gMTYxNzcpCisrKyBiaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JPYmpDLnBtCSh3b3JraW5nIGNvcHkpCkBAIC05Myw2ICs5Myw4IEBAIEVPRgogIyBE
ZWZhdWx0IGNvbnN0cnVjdG9yCiBzdWIgbmV3CiB7CisgICAgZGllICJTa2lwcGluZyBPYmpDIGNv
ZGUgZ2VuZXJhdGlvbiwgbm90IG5lZWRlZCBvbiBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBNYWMgT1Mu
IiB1bmxlc3MgJEVOVnsiT1MifSBhbmQgJEVOVnsiT1MifSBlcSAiTUFDT1MiOworCiAgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICRyZWZlcmVuY2UgPSB7IH07CiAKQEAgLTExNyw3ICsx
MTksNyBAQCBzdWIgR2VuZXJhdGVJbnRlcmZhY2UKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7CiAg
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAKLSAgICAkb2JqZWN0LT5SZW1vdmVFeGNsdWRlZEF0
dHJpYnV0ZXNBbmRGdW5jdGlvbnMoJGRhdGFOb2RlKTsKKyAgICAkY29kZUdlbmVyYXRvci0+UmVt
b3ZlRXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVuY3Rpb25zKCRkYXRhTm9kZSwgIk9iakMiKTsKIAog
ICAgICMgU3RhcnQgYWN0dWFsIGdlbmVyYXRpb24uLgogICAgICRvYmplY3QtPkdlbmVyYXRlSGVh
ZGVyKCRkYXRhTm9kZSk7CkBAIC0xNDIsMzMgKzE0NCw2IEBAIHN1YiBHZW5lcmF0ZU1vZHVsZQog
ICAgICRtb2R1bGUgPSAkZGF0YU5vZGUtPm1vZHVsZTsgICAgCiB9CiAKLXN1YiBSZW1vdmVFeGNs
dWRlZEF0dHJpYnV0ZXNBbmRGdW5jdGlvbnMKLXsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0g
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0KLSAgICBteSAkaSA9IDA7Ci0KLSAgICB3aGlsZSAo
JGkgPCBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKLSAgICAgICAgbXkgJGxhbmcgPSAkeyRk
YXRhTm9kZS0+YXR0cmlidXRlc31bJGldLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJFeGNsdWRlIn07Ci0gICAgICAgIGlmICgkbGFuZyBhbmQgJGxhbmcgZXEgIk9iakMiKSB7Ci0g
ICAgICAgICAgICBzcGxpY2UoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9LCAkaSwgMSk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkaSsrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
JGkgPSAwOwotICAgIHdoaWxlICgkaSA8IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7Ci0gICAg
ICAgIG15ICRsYW5nID0gJHskZGF0YU5vZGUtPmZ1bmN0aW9uc31bJGldLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJFeGNsdWRlIn07Ci0gICAgICAgIGlmICgkbGFuZyBhbmQgJGxh
bmcgZXEgIk9iakMiKSB7Ci0gICAgICAgICAgICBzcGxpY2UoQHskZGF0YU5vZGUtPmZ1bmN0aW9u
c30sICRpLCAxKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICRpKys7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KIHN1YiBHZXRDbGFzc05hbWUKIHsKICAgICBteSAkbmFtZSA9ICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CkBAIC0yMDEsNyArMTc2LDcgQEAgc3ViIEdl
dENsYXNzTmFtZQogc3ViIEdldEltcGxDbGFzc05hbWUKIHsKICAgICBteSAkbmFtZSA9ICRjb2Rl
R2VuZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0gICAgCisKICAgICAjIHNwZWNpYWwgY2Fz
ZXMKICAgICBpZiAoJG5hbWUgZXEgIkRPTUltcGxlbWVudGF0aW9uIikgewogICAgICAgICByZXR1
cm4gIldlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uRnJvbnQiOwpAQCAtMjE0LDEyICsxODksMTAg
QEAgc3ViIEdldFBhcmVudEltcGxDbGFzc05hbWUKIHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlm
dDsKIAotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMCkgewotICAgICAgICByZXR1
cm4gIk9iamVjdCI7Ci0gICAgfQorICAgIHJldHVybiAiT2JqZWN0IiBpZiBAeyRkYXRhTm9kZS0+
cGFyZW50c30gZXEgMDsKIAogICAgIG15ICRwYXJlbnQgPSAkY29kZUdlbmVyYXRvci0+U3RyaXBN
b2R1bGUoJGRhdGFOb2RlLT5wYXJlbnRzKDApKTsKLSAgICAKKwogICAgICMgc3BlY2lhbCBjYXNl
cwogICAgIGlmICgkcGFyZW50IGVxICJFdmVudFRhcmdldE5vZGUiKSB7CiAgICAgICAgICRwYXJl
bnQgPSAiTm9kZSI7CkBAIC0zMDYsNyArMjc5LDcgQEAgc3ViIEFkZEZvcndhcmREZWNsYXJhdGlv
bnNGb3JUeXBlCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUp
IG9yICR0eXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAg
CisKICAgICBpZiAoJHR5cGUgZXEgIkRPTUltcGxlbWVudGF0aW9uIikgewogICAgICAgICAkaGVh
ZGVyRm9yd2FyZERlY2xhcmF0aW9uc3siJHR5cGUifSA9IDE7CiAgICAgICAgIHJldHVybjsKQEAg
LTMxOCw3ICsyOTEsNiBAQCBzdWIgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKLSAgICAgICAgIyBPbmx5
IG9uZSBwcm90b2NvbCBzbyBmYXIuCiAgICAgICAgICRoZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25z
Rm9yUHJvdG9jb2xzeyJET01YUGF0aE5TUmVzb2x2ZXIifSA9IDE7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0zMjksMTAgKzMwMSw4IEBAIHN1YiBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9y
VHlwZQogc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogewogICAgIG15ICR0eXBlID0gJGNvZGVHZW5l
cmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKLSAgICAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzUHJpbWl0aXZlVHlwZSgkdHlwZSkpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKworICAg
IHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKTsKIAogICAg
IGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJQbGF0
Zm9ybVN0cmluZy5oIn0gPSAxOwpAQCAtMzQwLDE5ICszMTAsMTkgQEAgc3ViIEFkZEluY2x1ZGVz
Rm9yVHlwZQogICAgIH0KIAogICAgICMgVGVtcCBET01DU1MuaAotICAgIGlmICgkdHlwZSBlcSAi
Q291bnRlciIKLSAgICAgICAgICAgIG9yICR0eXBlIGVxICJNZWRpYUxpc3QiCi0gICAgICAgICAg
ICBvciAkdHlwZSBlcSAiQ1NTU3R5bGVTaGVldCIpIHsKKyAgICBpZiAoJHR5cGUgZXEgIkNvdW50
ZXIiIG9yICR0eXBlIGVxICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NTdHlsZVNoZWV0Iikg
ewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01DU1MuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJ
bmNsdWRlc3siJHR5cGUuaCJ9ID0gMTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogICAgIGlm
ICgkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKICAgICAgICAgJGltcGxJbmNsdWRl
c3siRE9NQ1NTLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7
CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgifSA9
IDE7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBpZiAoJHR5cGUgZXEgIlJHQkNvbG9y
IiBvciAkdHlwZSBlcSAiUmVjdCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NQ1NTLmgi
fSA9IDE7CiAgICAgICAgIHJldHVybjsKQEAgLTM4MCw3ICszNTAsNyBAQCBzdWIgQWRkSW5jbHVk
ZXNGb3JUeXBlCiAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgCisKICAgICAjIFRlbXAgRE9NVmlld3MuaAogICAgIGlmICgk
dHlwZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01WaWV3cy5o
In0gPSAxOwpAQCAtMzg4LDExICszNTgsOSBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgCisKICAgICAjIFRlbXAgRE9NWFBhdGguaAotICAgIGlmICgkdHlwZSBlcSAiWFBhdGhF
eHByZXNzaW9uIgotICAgICAgICAgICAgb3IgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIKLSAg
ICAgICAgICAgIG9yICR0eXBlIGVxICJYUGF0aFJlc3VsdCIpIHsKKyAgICBpZiAoJHR5cGUgZXEg
IlhQYXRoRXhwcmVzc2lvbiIgb3IgJHR5cGUgZXEgIlhQYXRoTlNSZXNvbHZlciIgb3IgJHR5cGUg
ZXEgIlhQYXRoUmVzdWx0IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01YUGF0aC5oIn0g
PSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01YUGF0aEludGVybmFsLmgifSA9IDE7CiAg
ICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CkBAIC00MDUsNyArMzczLDcgQEAg
c3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgIH0KIAogICAgICMgQWRkIHR5cGUgc3BlY2lmaWMg
aW50ZXJuYWwgdHlwZXMuCi0gICAgJGltcGxJbmNsdWRlc3siRE9NSFRNTEludGVybmFsLmgifSA9
IDEgaWYgKCR0eXBlID1+IC9eSFRNTC8pOworICAgICRpbXBsSW5jbHVkZXN7IkRPTUhUTUxJbnRl
cm5hbC5oIn0gPSAxIGlmICR0eXBlID1+IC9eSFRNTC87CiAKICAgICAjIERlZmF1bHQsIGluY2x1
ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZSAodGhlIGltcGxlbWVudGF0aW9uKSBhbmQgdGhlIHNhbWUg
bmFtZSBwcmVmaXhlZCB3aXRoICJET00iLiAKICAgICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0g
PSAxOwpAQCAtNDE4LDkgKzM4Niw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OwogCiAgICAgIyBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBoYXZlIG1vcmUg
dGhhbiBvbmUgcGFyZW50LgotICAgIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAxKSB7Ci0g
ICAgICAgIGRpZSAiQSBjbGFzcyBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgcGFyZW50LiI7Ci0g
ICAgfQorICAgIGRpZSAiQSBjbGFzcyBjYW4ndCBoYXZlIG1vcmUgdGhhbiBvbmUgcGFyZW50LiIg
aWYgQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMTsKIAogICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGRhdGFOb2RlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGludGVy
ZmFjZU5hbWUpOwpAQCAtNDM0LDE3ICs0MDAsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
QGhlYWRlckNvbnRlbnRIZWFkZXIgPSBzcGxpdCgiXHIiLCAkaGVhZGVyTGljZW5jZVRlbXBsYXRl
KTsKIAogICAgICMgLSBJTkNMVURFUyAtCi0gICAgcHVzaChAaGVhZGVyQ29udGVudEhlYWRlciwg
IlxuI2ltcG9ydCA8V2ViQ29yZS8kcGFyZW50Q2xhc3NOYW1lLmg+IC8vIHBhcmVudCBjbGFzc1xu
XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaW1wb3J0IDxXZWJDb3Jl
LyRwYXJlbnRDbGFzc05hbWUuaD5cblxuIik7CiAKICAgICAjIC0gQWRkIGNvbnN0YW50cy4KICAg
ICBpZiAoJG51bUNvbnN0YW50cyA+IDApIHsKICAgICAgICAgbXkgQGhlYWRlckNvbnN0YW50cyA9
ICgpOwogICAgICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNvbnN0YW50
c30pIHsKLQogICAgICAgICAgICAgbXkgJGNvbnN0YW50TmFtZSA9ICRjb25zdGFudC0+bmFtZTsK
ICAgICAgICAgICAgIG15ICRjb25zdGFudFZhbHVlID0gJGNvbnN0YW50LT52YWx1ZTsKICAgICAg
ICAgICAgIG15ICRvdXRwdXQgPSAiICAgIERPTV8iIC4gJGNvbnN0YW50TmFtZSAuICIgPSAiIC4g
JGNvbnN0YW50VmFsdWU7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnN0YW50cywgJG91dHB1dCk7CiAgICAgICAgIH0KIApAQCAtNDU1LDcgKzQxOSw3IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAkY29tYmluZWRDb25z
dGFudHMpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG59O1xuIik7ICAgICAgICAK
ICAgICB9Ci0gICAgCisKICAgICAjIC0gQmVnaW4gQGludGVyZmFjZSAKICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiXEBpbnRlcmZhY2UgJGNsYXNzTmFtZSA6ICRwYXJlbnRDbGFzc05hbWVcbiIp
OwogCkBAIC00NjUsNyArNDI5LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAgICAgZm9y
ZWFjaCAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkYXR0cmli
dXRlID0gJF87Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0
aW9uc0ZvclR5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAgICAg
bXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CkBAIC00ODAs
MzAgKzQ0NCwyNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIG15ICRhdHRyaWJ1
dGVUeXBlID0gR2V0T2JqQ1R5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAg
ICAgICAgIG15ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15y
ZWFkb25seS8pOwogCi0gICAgICAgICAgICBpZiAoJEVOVnsiTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUIn0gPj0gMTAuNSkgeworICAgICAgICAgICAgaWYgKCRFTlZ7Ik1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVCJ9IGFuZCAkRU5WeyJNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQifSA+PSAxMC41KSB7
CiAgICAgICAgICAgICAgICAgbXkgJHByb3BlcnR5ID0gIlxAcHJvcGVydHkiIC4gKCRhdHRyaWJ1
dGVJc1JlYWRvbmx5ID8gIihyZWFkb25seSkiIDogIiIpIC4gIiAiIC4gJGF0dHJpYnV0ZVR5cGUg
LiAoJGF0dHJpYnV0ZVR5cGUgPX4gL1wqJC8gPyAiIiA6ICIgIikgLiAkYXR0cmlidXRlTmFtZSAu
ICI7XG4iOwotCiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQXR0cmlidXRlcywgJHByb3Bl
cnR5KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIyAtIEdFVFRFUgog
ICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAiLSAoIiAuICRhdHRyaWJ1dGVUeXBlIC4gIiki
IC4gJGF0dHJpYnV0ZU5hbWUgLiAiO1xuIjsKLQogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckF0dHJpYnV0ZXMsICRnZXR0ZXIpOwogCiAgICAgICAgICAgICAgICAgIyAtIFNFVFRFUgogICAg
ICAgICAgICAgICAgIGlmICghJGF0dHJpYnV0ZUlzUmVhZG9ubHkpIHsKICAgICAgICAgICAgICAg
ICAgICAgbXkgJHNldHRlciA9ICItICh2b2lkKXNldCIgLiB1Y2ZpcnN0KCRhdHRyaWJ1dGVOYW1l
KSAuICI6KCIgLiAkYXR0cmlidXRlVHlwZSAuICIpbmV3IiAuIHVjZmlyc3QoJGF0dHJpYnV0ZU5h
bWUpIC4gIjtcbiI7Ci0gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJBdHRyaWJ1dGVzLCAkc2V0dGVyKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoQGhlYWRlckF0dHJpYnV0ZXMgPiAw
KSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBAaGVhZGVyQXR0cmlidXRlcyk7
Ci0gICAgICAgIH0KKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGhlYWRlckF0dHJpYnV0
ZXMpIGlmIEBoZWFkZXJBdHRyaWJ1dGVzID4gMDsKICAgICB9CiAKKyAgICBteSBAZGVwcmVjYXRl
ZEhlYWRlckZ1bmN0aW9ucyA9ICgpOworCiAgICAgIyAtIEFkZCBmdW5jdGlvbnMuCiAgICAgaWYg
KCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIG15IEBoZWFkZXJGdW5jdGlvbnMgPSAoKTsK
QEAgLTUxNywxOSArNDc4LDMwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkg
JHJldHVyblR5cGUgPSBHZXRPYmpDVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7CiAg
ICAgICAgICAgICBteSAkbnVtYmVyT2ZQYXJhbWV0ZXJzID0gQHskZnVuY3Rpb24tPnBhcmFtZXRl
cnN9OwogCi0gICAgICAgICAgICBteSAkb3V0cHV0ID0gIi0gKCRyZXR1cm5UeXBlKSRmdW5jdGlv
bk5hbWUiOworICAgICAgICAgICAgbXkgJHBhcmFtZXRlckluZGV4ID0gMDsKKyAgICAgICAgICAg
IG15ICRmdW5jdGlvblNpZyA9ICItICgkcmV0dXJuVHlwZSkkZnVuY3Rpb25OYW1lIjsKICAgICAg
ICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAg
ICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwogICAgICAgICAgICAg
ICAgIG15ICRwYXJhbVR5cGUgPSBHZXRPYmpDVHlwZSgkcGFyYW0tPnR5cGUpOworCiAgICAgICAg
ICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGUoJHBhcmFtLT50eXBlKTsKIAot
ICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gIjooJHBhcmFtVHlwZSkkcGFyYW1OYW1lICI7Cisg
ICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIgJHBhcmFtTmFtZSIgaWYgJHBhcmFtZXRl
ckluZGV4ID49IDE7CisgICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICI6KCRwYXJhbVR5
cGUpJHBhcmFtTmFtZSI7CisKKyAgICAgICAgICAgICAgICAkcGFyYW1ldGVySW5kZXgrKzsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICI7XG4iOworCisgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJGdW5jdGlvbnMsICRmdW5jdGlvblNpZyk7CisKKyAgICAgICAg
ICAgICMgZ2VuZXJhdGUgdGhlIG9sZCBzdHlsZSBtZXRob2QgbmFtZXMgd2l0aCB1bi1uYW1lZCBw
YXJhbWV0ZXJzLCB0aGVzZSBtZXRob2RzIGFyZSBkZXByZWNhdGVkCisgICAgICAgICAgICBpZiAo
QHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9ID4gMSBhbmQgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJPbGRTdHlsZU9iakMifSkgeworICAgICAgICAgICAgICAgIG15
ICRkZXByZWNhdGVkRnVuY3Rpb25TaWcgPSAkZnVuY3Rpb25TaWc7CisgICAgICAgICAgICAgICAg
JGRlcHJlY2F0ZWRGdW5jdGlvblNpZyA9fiBzL1xzXHcrOi8gOi9nOyAjIHJlbW92ZSBwYXJhbWV0
ZXIgbmFtZXMKKyAgICAgICAgICAgICAgICBwdXNoKEBkZXByZWNhdGVkSGVhZGVyRnVuY3Rpb25z
LCAkZGVwcmVjYXRlZEZ1bmN0aW9uU2lnKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICMg
cmVtb3ZlIGFueSB0cmFpbGluZyBzcGFjZXMuCi0gICAgICAgICAgICAkb3V0cHV0ID1+IHMvXHMr
JC8vOwotICAgICAgICAgICAgJG91dHB1dCAuPSAiO1xuIjsKLSAgICAKLSAgICAgICAgICAgIHB1
c2goQGhlYWRlckZ1bmN0aW9ucywgJG91dHB1dCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
QGhlYWRlckZ1bmN0aW9ucyA+IDApIHsKQEAgLTU0MCw2ICs1MTIsMTMgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAKICAgICAjIC0gRW5kIEBpbnRlcmZhY2UgCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIlxAZW5kXG4iKTsKKworICAgIGlmIChAZGVwcmVjYXRlZEhlYWRlckZ1bmN0aW9ucyA+IDAp
IHsKKyAgICAgICAgIyAtIERlcHJlY2F0ZWQgY2F0ZWdvcnkgQGludGVyZmFjZSAKKyAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIlxuXEBpbnRlcmZhY2UgJGNsYXNzTmFtZSAoIiAuICRjbGFz
c05hbWUgLiAiRGVwcmVjYXRlZClcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBA
ZGVwcmVjYXRlZEhlYWRlckZ1bmN0aW9ucyk7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJcQGVuZFxuIik7CisgICAgfQogfQogCiBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgpAQCAt
NTY2LDcgKzU0NSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgaWYgKCRoYXNG
dW5jdGlvbnNPckF0dHJpYnV0ZXMpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRIZWFkZXIs
ICIjaW1wb3J0IFwiRE9NSW50ZXJuYWwuaFwiXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnRIZWFkZXIsICIjaW1wb3J0IDx3dGYvR2V0UHRyLmg+XG4iKTsKLSAgICAgICAgCisKICAgICAg
ICAgIyBpbmNsdWRlIG1vZHVsZS1kZXBlbmRlbnQgaW50ZXJuYWwgaW50ZXJmYWNlcy4KICAgICAg
ICAgaWYgKCRtb2R1bGUgZXEgImh0bWwiKSB7CiAgICAgICAgICAgICAjIEhUTUwgbW9kdWxlIGlu
dGVybmFsIGludGVyZmFjZXMKQEAgLTY1MiwyMCArNjMxLDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAKICAgICAgICAgICAgICMgLSBHRVRURVIKICAgICAgICAgICAgIG15ICRnZXR0
ZXJTaWcgPSAiLSAoJGF0dHJpYnV0ZVR5cGUpJGludGVyZmFjZU5hbWVcbiI7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgICMgRXhjZXB0aW9uIGhhbmRsaW5nCiAgICAgICAgICAgICBteSAkaGFz
R2V0dGVyRXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5nZXR0ZXJFeGNlcHRpb25zfTsKLSAgICAg
ICAgICAgIGlmICgkaGFzR2V0dGVyRXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgICAgZGllICJX
ZSBzaG91bGQgbm90IGhhdmUgYW55IGdldHRlciBleGNlcHRpb25zIHlldCEiOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBteSAkZ2V0dGVyQ29udGVudEhlYWQgPSAi
SU1QTC0+JGF0dHJpYnV0ZU5hbWUoIjsKICAgICAgICAgICAgIG15ICRnZXR0ZXJDb250ZW50VGFp
bCA9ICIpIjsKIAogICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVR5cGVTYW5zUHRyID0gJGF0dHJp
YnV0ZVR5cGU7CiAgICAgICAgICAgICAkYXR0cmlidXRlVHlwZVNhbnNQdHIgPX4gcy8gXCokLy87
ICMgUmVtb3ZlIHRyYWlsaW5nICIgKiIgZnJvbSBwb2ludGVyIHR5cGVzLgogICAgICAgICAgICAg
bXkgJHR5cGVNYWtlciA9IEdldE9iakNUeXBlTWFrZXIoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50
eXBlKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZXMKICAgICAg
ICAgICAgIGlmICgkYXR0cmlidXRlVHlwZVNhbnNQdHIgZXEgIkRPTUltcGxlbWVudGF0aW9uIikg
ewogICAgICAgICAgICAgICAgICMgRklYTUU6IFdlIGhhdmUgdG8gc3BlY2lhbCBjYXNlIERPTUlt
cGxlbWVudGF0aW9uIHVudGlsIERPTUltcGxlbWVudGF0aW9uRnJvbnQgaXMgcmVtb3ZlZApAQCAt
NjgwLDE0ICs2NTMsMTQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiWyRhdHRyaWJ1dGVUeXBlU2Fuc1B0ciAkdHlwZU1h
a2VyOldURjo6Z2V0UHRyKCIgLiAkZ2V0dGVyQ29udGVudEhlYWQ7CiAgICAgICAgICAgICAgICAg
JGdldHRlckNvbnRlbnRUYWlsIC49ICIpXSI7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAK
KwogICAgICAgICAgICAgbXkgJGdldHRlckNvbnRlbnQ7CiAgICAgICAgICAgICBpZiAoJGhhc0dl
dHRlckV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50ID0gJGdldHRl
ckNvbnRlbnRIZWFkIC4gImVjIiAuICRnZXR0ZXJDb250ZW50VGFpbDsKICAgICAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnQgPSAkZ2V0dGVyQ29udGVudEhl
YWQgLiAkZ2V0dGVyQ29udGVudFRhaWw7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRnZXR0ZXJTaWcpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIGlmICgkaGFzR2V0dGVyRXhj
ZXB0aW9uKSB7CkBAIC03MzAsNyArNzAzLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgJGFyZyA9ICJbIiAuICRhcmdOYW1lIC4gIiBfIiAuIGxjZmly
c3QoJGlkbFR5cGUpIC4gIl0iOwogICAgICAgICAgICAgICAgIH0KIAotCiAgICAgICAgICAgICAg
ICAgbXkgJHNldHRlclNpZyA9ICItICh2b2lkKSRzZXR0ZXJOYW1lOigkYXR0cmlidXRlVHlwZSkk
YXJnTmFtZVxuIjsKIAogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkc2V0dGVy
U2lnKTsKQEAgLTc1Myw2ICs3MjUsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICB9CiAgICAgfQogCisgICAgbXkgQGRlcHJlY2F0ZWRGdW5jdGlvbnMgPSAoKTsKKwogICAg
ICMgLSBGdW5jdGlvbnMKICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgZm9y
ZWFjaCAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKQEAgLTc2OSwxNCArNzQzLDE0IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSBAbmVlZHNBc3NlcnQgPSAo
KTsKICAgICAgICAgICAgIG15ICVjdXN0b20gPSAoKTsKIAorICAgICAgICAgICAgbXkgJHBhcmFt
ZXRlckluZGV4ID0gMDsKICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICItICgkcmV0dXJu
VHlwZSkkZnVuY3Rpb25OYW1lIjsKICAgICAgICAgICAgIGZvcmVhY2ggKEB7JGZ1bmN0aW9uLT5w
YXJhbWV0ZXJzfSkgewogICAgICAgICAgICAgICAgIG15ICRwYXJhbSA9ICRfOwotCisgICAgICAg
ICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsKICAgICAgICAgICAgICAgICBt
eSAkcGFyYW1UeXBlID0gR2V0T2JqQ1R5cGUoJHBhcmFtLT50eXBlKTsKLSAgICAgICAgICAgICAg
ICBBZGRJbmNsdWRlc0ZvclR5cGUoJHBhcmFtLT50eXBlKTsKIAotICAgICAgICAgICAgICAgIG15
ICRwYXJhbU5hbWUgPSAkcGFyYW0tPm5hbWU7CisgICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNG
b3JUeXBlKCRwYXJhbS0+dHlwZSk7CiAKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBzaG91bGQg
bW92ZSB0aGlzIG91dCBpbnRvIGl0J3Mgb3duIGZ1Y3Rpb24gdG8gc2hhcmUgd2l0aAogICAgICAg
ICAgICAgICAgICMgdGhlIHNpbWlsYXIgc2V0dGVyIHBhcmFtZXRlciBjb2RlIGFib3ZlLgpAQCAt
ODAyLDEzICs3NzYsMjIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAbmVlZHNBc3NlcnQsICIgICAgQVNTRVJUKCRwYXJhbU5hbWUpO1xuIik7
CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICI6
KCRwYXJhbVR5cGUpJHBhcmFtTmFtZSAiOworICAgICAgICAgICAgICAgICRmdW5jdGlvblNpZyAu
PSAiICRwYXJhbU5hbWUiIGlmICRwYXJhbWV0ZXJJbmRleCA+PSAxOworICAgICAgICAgICAgICAg
ICRmdW5jdGlvblNpZyAuPSAiOigkcGFyYW1UeXBlKSRwYXJhbU5hbWUiOworCisgICAgICAgICAg
ICAgICAgJHBhcmFtZXRlckluZGV4Kys7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIHJl
bW92ZSBhbnkgdHJhaWxpbmcgc3BhY2VzLgotICAgICAgICAgICAgJGZ1bmN0aW9uU2lnID1+IHMv
XHMrJC8vOwogCiAgICAgICAgICAgICBteSBAZnVuY3Rpb25Db250ZW50ID0gKCk7CiAKKyAgICAg
ICAgICAgICMgc3BlY2lhbCBjYXNlIHRoZSBYUGF0aE5TUmVzb2x2ZXIKKyAgICAgICAgICAgIGlm
IChkZWZpbmVkICRuZWVkc0N1c3RvbXsiWFBhdGhOU1Jlc29sdmVyIn0pIHsKKyAgICAgICAgICAg
ICAgICBteSAkcGFyYW1OYW1lID0gJG5lZWRzQ3VzdG9teyJYUGF0aE5TUmVzb2x2ZXIifTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgaWYgKCRwYXJhbU5hbWUg
JiYgIVskcGFyYW1OYW1lIGlzTWVtYmVyT2ZDbGFzczpbRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVy
IGNsYXNzXV0pXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0dlbmVyaWNFeGNlcHRpb24gZm9ybWF0OlxAXCJj
cmVhdGVFeHByZXNzaW9uIGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrIHdpdGggY3VzdG9tIE5TIHJl
c29sdmVyc1wiXTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwg
IiAgICBET01OYXRpdmVYUGF0aE5TUmVzb2x2ZXIgKm5hdGl2ZVJlc29sdmVyID0gKERPTU5hdGl2
ZVhQYXRoTlNSZXNvbHZlciAqKSRwYXJhbU5hbWU7XG5cbiIpOworICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICBpZiAoJHJldHVyblR5cGUgZXEgInZvaWQiKSB7CiAgICAgICAgICAgICAgICAg
IyBTcGVjaWFsIGNhc2UgJ3ZvaWQnIHJldHVybiB0eXBlLgogICAgICAgICAgICAgICAgIG15ICRm
dW5jdGlvbkNvbnRlbnRIZWFkID0gIklNUEwtPiRmdW5jdGlvbk5hbWUoIjsKQEAgLTgyOSw3ICs4
MTIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAg
ICAgJGNvbnRlbnQgPSAkZnVuY3Rpb25Db250ZW50SGVhZCAuICRmdW5jdGlvbkNvbnRlbnRUYWls
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICAgICAgaWYgKCRyYWlzZXNFeGNlcHRpb25zKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9uSW5pdFxu
Iik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkY29u
dGVudFxuIik7CkBAIC04NzQsNyArODU3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50ID0gJGZ1bmN0aW9uQ29udGVudEhlYWQg
LiAkZnVuY3Rpb25Db250ZW50VGFpbDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIGlmICgkcmFpc2Vz
RXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAjIERpZmZlcmVudGlhdGVkIGJldHdl
ZW4gd2hlbiB0aGUgcmV0dXJuIHR5cGUgaXMgYSBwb2ludGVyIGFuZAogICAgICAgICAgICAgICAg
ICAgICAjIG5vdCBmb3Igd2hpdGUgc3BhY2UgaXNzdWUgKGllLiBGb28gKnJlc3VsdCB2cy4gaW50
IHJlc3VsdCkuCkBAIC04ODMsNyArODY2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICRj
b250ZW50ID0gJHJldHVyblR5cGUgLiAiIHJlc3VsdCA9ICIgLiAkY29udGVudDsKICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGV4Y2VwdGlvbkluaXRcbiIpOwogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGNvbnRlbnQ7XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRleGNlcHRp
b25SYWlzZU9uRXJyb3JcbiIpOwpAQCAtODk1LDE4ICs4NzgsMjAgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIkZnVuY3Rpb25T
aWdcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgdGhlIFhQYXRoTlNSZXNvbHZlcgotICAg
ICAgICAgICAgaWYgKGRlZmluZWQgJG5lZWRzQ3VzdG9teyJYUGF0aE5TUmVzb2x2ZXIifSkgewot
ICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkbmVlZHNDdXN0b217IlhQYXRoTlNSZXNv
bHZlciJ9OwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICgkcGFy
YW1OYW1lICYmICFbJHBhcmFtTmFtZSBpc01lbWJlck9mQ2xhc3M6W0RPTU5hdGl2ZVhQYXRoTlNS
ZXNvbHZlciBjbGFzc11dKVxuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0dlbmVyaWNFeGNlcHRpb24gZm9ybWF0OlxA
XCJjcmVhdGVFeHByZXNzaW9uIGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrIHdpdGggY3VzdG9tIE5T
IHJlc29sdmVyc1wiXTtcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqbmF0aXZlUmVzb2x2ZXIgPSAoRE9NTmF0aXZl
WFBhdGhOU1Jlc29sdmVyICopJHBhcmFtTmFtZTtcblxuIik7Ci0gICAgICAgICAgICB9Ci0KICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBAZnVuY3Rpb25Db250ZW50KTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgICAgIAorCisgICAgICAg
ICAgICAjIGdlbmVyYXRlIHRoZSBvbGQgc3R5bGUgbWV0aG9kIG5hbWVzIHdpdGggdW4tbmFtZWQg
cGFyYW1ldGVycywgdGhlc2UgbWV0aG9kcyBhcmUgZGVwcmVjYXRlZAorICAgICAgICAgICAgaWYg
KEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSA+IDEgYW5kICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiT2xkU3R5bGVPYmpDIn0pIHsKKyAgICAgICAgICAgICAgICBt
eSAkZGVwcmVjYXRlZEZ1bmN0aW9uU2lnID0gJGZ1bmN0aW9uU2lnOworICAgICAgICAgICAgICAg
ICRkZXByZWNhdGVkRnVuY3Rpb25TaWcgPX4gcy9cc1x3KzovIDovZzsgIyByZW1vdmUgcGFyYW1l
dGVyIG5hbWVzCisKKyAgICAgICAgICAgICAgICBwdXNoKEBkZXByZWNhdGVkRnVuY3Rpb25zLCAi
XG4kZGVwcmVjYXRlZEZ1bmN0aW9uU2lnXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBkZXBy
ZWNhdGVkRnVuY3Rpb25zLCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZGVwcmVjYXRl
ZEZ1bmN0aW9ucywgQGZ1bmN0aW9uQ29udGVudCk7CisgICAgICAgICAgICAgICAgcHVzaChAZGVw
cmVjYXRlZEZ1bmN0aW9ucywgIn1cblxuIik7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAg
ICMgQ2xlYXIgdGhlIGhhc2gKICAgICAgICAgICAgICVuZWVkc0N1c3RvbSA9ICgpOwogICAgICAg
ICB9CkBAIC05MTQsNiArODk5LDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICAjIEVORCBpbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250ZW50LCAiXEBlbmRcbiIp
OworCisgICAgaWYgKEBkZXByZWNhdGVkRnVuY3Rpb25zID4gMCkgeworICAgICAgICAjIC0gRGVw
cmVjYXRlZCBjYXRlZ29yeSBAaW1wbGVtZW50YXRpb24KKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcblxAaW1wbGVtZW50YXRpb24gJGNsYXNzTmFtZSAoIiAuICRjbGFzc05hbWUgLiAiRGVw
cmVjYXRlZClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgQGRlcHJlY2F0ZWRGdW5j
dGlvbnMpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxAZW5kXG4iKTsKKyAgICB9CiB9
CiAKICMgSW50ZXJuYWwgaGVscGVyCkBAIC05MjIsMjEgKzkxNCwxOSBAQCBzdWIgV3JpdGVEYXRh
CiAgICAgaWYgKGRlZmluZWQoJElNUEwpKSB7CiAgICAgICAgICMgV3JpdGUgY29udGVudCB0byBm
aWxlLgogICAgICAgICBwcmludCAkSU1QTCBAaW1wbENvbnRlbnRIZWFkZXI7Ci0gICAgICAgIAor
CiAgICAgICAgIG15ICRpbmNsdWRlQ291bnQgPSAwOwogICAgICAgICBmb3JlYWNoIG15ICRpbXBs
SW5jbHVkZSAoc29ydCBrZXlzKCVpbXBsSW5jbHVkZXMpKSB7CiAgICAgICAgICAgICBwcmludCAk
SU1QTCAiI2ltcG9ydCBcIiRpbXBsSW5jbHVkZVwiXG4iOwogICAgICAgICAgICAgJGluY2x1ZGVD
b3VudCsrOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB1bmxlc3MgKCRpbmNsdWRlQ291
bnQgPT0gMCkgewotICAgICAgICAgICAgcHJpbnQgJElNUEwgIlxuIjsKLSAgICAgICAgfQorCisg
ICAgICAgIHByaW50ICRJTVBMICJcbiIgaWYgJGluY2x1ZGVDb3VudDsKIAogICAgICAgICBwcmlu
dCAkSU1QTCBAaW1wbENvbnRlbnQ7CiAgICAgICAgIGNsb3NlKCRJTVBMKTsKICAgICAgICAgdW5k
ZWYoJElNUEwpOwotICAgICAgICAKKwogICAgICAgICBAaW1wbEhlYWRlckNvbnRlbnQgPSAiIjsK
ICAgICAgICAgQGltcGxDb250ZW50ID0gIiI7ICAgIAogICAgICAgICAlaW1wbEluY2x1ZGVzID0g
KCk7CkBAIC05NDUsMjYgKzkzNSwyNCBAQCBzdWIgV3JpdGVEYXRhCiAgICAgaWYgKGRlZmluZWQo
JEhFQURFUikpIHsKICAgICAgICAgIyBXcml0ZSBjb250ZW50IHRvIGZpbGUuCiAgICAgICAgIHBy
aW50ICRIRUFERVIgQGhlYWRlckNvbnRlbnRIZWFkZXI7Ci0gICAgICAgIAorCiAgICAgICAgIG15
ICRmb3J3YXJkRGVjbGFyYXRpb25Db3VudCA9IDA7CiAgICAgICAgIGZvcmVhY2ggbXkgJGZvcndh
cmRDbGFzc0RlY2xhcmF0aW9uIChzb3J0IGtleXMoJWhlYWRlckZvcndhcmREZWNsYXJhdGlvbnMp
KSB7CiAgICAgICAgICAgICBwcmludCAkSEVBREVSICJcQGNsYXNzICRmb3J3YXJkQ2xhc3NEZWNs
YXJhdGlvbjtcbiI7CiAgICAgICAgICAgICAkZm9yd2FyZERlY2xhcmF0aW9uQ291bnQrKzsKICAg
ICAgICAgfQotICAgICAgICAKKwogICAgICAgICBmb3JlYWNoIG15ICRmb3J3YXJkUHJvdG9jb2xE
ZWNsYXJhdGlvbiAoc29ydCBrZXlzKCVoZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zRm9yUHJvdG9j
b2xzKSkgewogICAgICAgICAgICAgcHJpbnQgJEhFQURFUiAiXEBwcm90b2NvbCAkZm9yd2FyZFBy
b3RvY29sRGVjbGFyYXRpb247XG4iOwogICAgICAgICAgICAgJGZvcndhcmREZWNsYXJhdGlvbkNv
dW50Kys7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHVubGVzcyAoJGZvcndhcmREZWNs
YXJhdGlvbkNvdW50ID09IDApIHsKLSAgICAgICAgICAgIHByaW50ICRIRUFERVIgIlxuIjsKLSAg
ICAgICAgfQorCisgICAgICAgIHByaW50ICRIRUFERVIgIlxuIiBpZiAkZm9yd2FyZERlY2xhcmF0
aW9uQ291bnQ7CiAKICAgICAgICAgcHJpbnQgJEhFQURFUiBAaGVhZGVyQ29udGVudDsKICAgICAg
ICAgY2xvc2UoJEhFQURFUik7CiAgICAgICAgIHVuZGVmKCRIRUFERVIpOwotICAgICAgICAKKwog
ICAgICAgICBAaGVhZGVyQ29udGVudEhlYWRlciA9ICIiOwogICAgICAgICBAaGVhZGVyQ29udGVu
dCA9ICIiOwogICAgICAgICAlaGVhZGVyRm9yd2FyZERlY2xhcmF0aW9ucyA9ICgpOwpJbmRleDog
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDExICs1MSwxMSBAQCBtb2R1bGUgY3NzIHsKIAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKIAotICAg
ICAgICB2b2lkIHNldEZsb2F0VmFsdWUoaW4gdW5zaWduZWQgc2hvcnQgdW5pdFR5cGUsCisgICAg
ICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0RmxvYXRWYWx1ZShpbiB1bnNpZ25lZCBzaG9ydCB1
bml0VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGZsb2F0IGZsb2F0VmFsdWUp
CiAgICAgICAgICAgICByYWlzZXMoZG9tOjpET01FeGNlcHRpb24pOwogICAgICAgICBmbG9hdCBn
ZXRGbG9hdFZhbHVlKGluIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKLSAgICAgICAgdm9pZCBz
ZXRTdHJpbmdWYWx1ZShpbiB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCAKKyAgICAgICAgW09s
ZFN0eWxlT2JqQ10gdm9pZCBzZXRTdHJpbmdWYWx1ZShpbiB1bnNpZ25lZCBzaG9ydCBzdHJpbmdU
eXBlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgc3RyaW5nVmFs
dWUpCiAgICAgICAgICAgICByYWlzZXMoZG9tOjpET01FeGNlcHRpb24pOwogICAgICAgICBET01T
dHJpbmcgZ2V0U3RyaW5nVmFsdWUoKTsKSW5kZXg6IGRvbS9DaGFyYWN0ZXJEYXRhLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBkb20vQ2hhcmFjdGVyRGF0YS5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysgZG9t
L0NoYXJhY3RlckRhdGEuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyNCArMjYsMjQgQEAgbW9k
dWxlIGNvcmUgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKICAgICAgICAgCi0gICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0
cmluZyBzdWJzdHJpbmdEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGNvdW50KQorICAgICAgICBbQ29udmVydE51bGxT
dHJpbmdUbz1OdWxsLCBPbGRTdHlsZU9iakNdIERPTVN0cmluZyBzdWJzdHJpbmdEYXRhKGluIFtJ
c0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4XSB1bnNpZ25lZCBs
b25nIGxlbmd0aCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAg
IHZvaWQgYXBwZW5kRGF0YShpbiBET01TdHJpbmcgYXJnKQorICAgICAgICB2b2lkIGFwcGVuZERh
dGEoaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICB2b2lkIGluc2VydERhdGEoaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgb2Zm
c2V0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBhcmcpCisgICAgICAg
IFtPbGRTdHlsZU9iakNdIHZvaWQgaW5zZXJ0RGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9u
ZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGRhdGEpCiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGRlbGV0ZURh
dGEoaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGNvdW50KQorICAgICAgICBbT2xkU3R5
bGVPYmpDXSB2b2lkIGRlbGV0ZURhdGEoaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGxl
bmd0aCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQg
cmVwbGFjZURhdGEoaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBjb3VudCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgYXJnKQorICAgICAgICBbT2xkU3R5bGVP
YmpDXSB2b2lkIHJlcGxhY2VEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwg
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBkYXRhKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgCiAgICAgfTsKSW5kZXg6IGRvbS9ET01J
bXBsZW1lbnRhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0RPTUltcGxlbWVudGF0aW9uLmlk
bAkocmV2aXNpb24gMTYxNzcpCisrKyBkb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCwyNCArMjQsMjQgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIERP
TSBMZXZlbCAxCiAKLSAgICAgICAgYm9vbGVhbiBoYXNGZWF0dXJlKGluIERPTVN0cmluZyBmZWF0
dXJlLCAKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gYm9vbGVhbiBoYXNGZWF0dXJlKGluIERPTVN0
cmluZyBmZWF0dXJlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZlcnNpb24pOwogCiAgICAgICAgIC8vIERPTSBMZXZl
bCAyCiAKLSAgICAgICAgRG9jdW1lbnRUeXBlIGNyZWF0ZURvY3VtZW50VHlwZShpbiBET01TdHJp
bmcgcXVhbGlmaWVkTmFtZSwKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gRG9jdW1lbnRUeXBlIGNy
ZWF0ZURvY3VtZW50VHlwZShpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmlu
ZyBwdWJsaWNJZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBzeXN0ZW1JZCkKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICBEb2N1bWVudCBjcmVhdGVEb2N1bWVudChpbiBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIAorICAgICAgICBbT2xk
U3R5bGVPYmpDXSBEb2N1bWVudCBjcmVhdGVEb2N1bWVudChpbiBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIHF1YWxpZmllZE5hbWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRG9jdW1lbnRUeXBl
IGRvY3R5cGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAv
LyBET01JbXBsZW1lbnRhdGlvbkNTUyBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBDU1MKIAot
ICAgICAgICBDU1NTdHlsZVNoZWV0IGNyZWF0ZUNTU1N0eWxlU2hlZXQoaW4gRE9NU3RyaW5nIHRp
dGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBt
ZWRpYSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gQ1NTU3R5bGVTaGVldCBjcmVhdGVDU1NTdHls
ZVNoZWV0KGluIERPTVN0cmluZyB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBtZWRpYSkKICAgICAgICAgICAgIHJhaXNlcyhET01F
eGNlcHRpb24pOwogCiAgICAgICAgIC8vIEhUTUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2Ug
ZnJvbSBET00gTGV2ZWwgMiBIVE1MCkluZGV4OiBkb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGRvbS9Eb2N1bWVudC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysgZG9tL0RvY3VtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAg
IENEQVRBU2VjdGlvbiBjcmVhdGVDREFUQVNlY3Rpb24oaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCi0gICAgICAgIFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiBjcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oaW4gRE9NU3RyaW5nIHRh
cmdldCwgCisgICAgICAgIFtPbGRTdHlsZU9iakNdIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiBjcmVh
dGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oaW4gRE9NU3RyaW5nIHRhcmdldCwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBET01TdHJpbmcgZGF0YSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgCkBAIC01NiwxOSArNTYsMTkgQEAgbW9kdWxlIGNvcmUgewogICAgICAg
ICAKICAgICAgICAgLy8gRE9NIExldmVsIDIgQ29yZQogICAgICAgICAKLSAgICAgICAgTm9kZSBp
bXBvcnROb2RlKGluIE5vZGUgaW1wb3J0ZWROb2RlLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBO
b2RlIGltcG9ydE5vZGUoaW4gTm9kZSBpbXBvcnRlZE5vZGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gZGVlcCkKICAgICAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCi0gICAgICAgIEVsZW1lbnQgY3JlYXRlRWxlbWVu
dE5TKGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgIFtPbGRTdHlsZU9iakNdIEVs
ZW1lbnQgY3JlYXRlRWxlbWVudE5TKGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHF1
YWxpZmllZE5hbWUpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IAotICAgICAgICBBdHRyIGNyZWF0ZUF0dHJpYnV0ZU5TKGluIERPTVN0cmluZyBuYW1lc3BhY2VV
UkksCisgICAgICAgIFtPbGRTdHlsZU9iakNdIEF0dHIgY3JlYXRlQXR0cmlidXRlTlMoaW4gRE9N
U3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBxdWFsaWZpZWROYW1lKQogICAgICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICAKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVu
dHNCeVRhZ05hbWVOUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICBbT2xkU3R5
bGVPYmpDXSBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGluIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKICAgICAgICAgCiAgICAgICAgIEVs
ZW1lbnQgZ2V0RWxlbWVudEJ5SWQoaW4gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CkBAIC0xMDYsOCAr
MTA2LDggQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIChE
b2N1bWVudENTUyBpbnRlcmZhY2UpCiAKLSAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRP
dmVycmlkZVN0eWxlKGluIEVsZW1lbnQgZWx0LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwc2V1ZG9FbHQpOworICAgICAgICBbT2xk
U3R5bGVPYmpDXSBDU1NTdHlsZURlY2xhcmF0aW9uIGdldE92ZXJyaWRlU3R5bGUoaW4gRWxlbWVu
dCBlbGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMyBD
b3JlCiAKQEAgLTExOCwxMyArMTE4LDEzIEBAIG1vZHVsZSBjb3JlIHsKIAogI2lmZGVmIFhQQVRI
X1NVUFBPUlQKICAgICAgICAgLy8gRE9NIExldmVsIDMgWFBhdGggKFhQYXRoRXZhbHVhdG9yIGlu
dGVyZmFjZSkKLSAgICAgICAgWFBhdGhFeHByZXNzaW9uIGNyZWF0ZUV4cHJlc3Npb24oaW4gRE9N
U3RyaW5nIGV4cHJlc3Npb24sCisgICAgICAgIFtPbGRTdHlsZU9iakNdIFhQYXRoRXhwcmVzc2lv
biBjcmVhdGVFeHByZXNzaW9uKGluIERPTVN0cmluZyBleHByZXNzaW9uLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBYUGF0aE5TUmVzb2x2ZXIgcmVzb2x2ZXIp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBYUGF0aE5TUmVz
b2x2ZXIgY3JlYXRlTlNSZXNvbHZlcihpbiBOb2RlIG5vZGVSZXNvbHZlcik7CiAgICAgICAgIAot
ICAgICAgICBYUGF0aFJlc3VsdCBldmFsdWF0ZShpbiBET01TdHJpbmcgZXhwcmVzc2lvbiwKKyAg
ICAgICAgW09sZFN0eWxlT2JqQ10gWFBhdGhSZXN1bHQgZXZhbHVhdGUoaW4gRE9NU3RyaW5nIGV4
cHJlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGUgY29udGV4dE5v
ZGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBYUGF0aE5TUmVzb2x2ZXIgcmVz
b2x2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIHNob3J0IHR5
cGUsCkluZGV4OiBkb20vRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL0VsZW1lbnQuaWRs
CShyZXZpc2lvbiAxNjE3NykKKysrIGRvbS9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5n
VG89TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZShpbiBET01TdHJpbmcgbmFtZSk7CiAKLSAg
ICAgICAgdm9pZCBzZXRBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5hbWUsCisgICAgICAgIFtPbGRT
dHlsZU9iakNdIHZvaWQgc2V0QXR0cmlidXRlKGluIERPTVN0cmluZyBuYW1lLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKIApAQCAtNDcsMjIgKzQ3LDIyIEBAIG1vZHVsZSBjb3JlIHsKIAogICAg
ICAgICAvLyBET00gTGV2ZWwgMiBDb3JlCiAKLSAgICAgICAgRE9NU3RyaW5nIGdldEF0dHJpYnV0
ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
KyAgICAgICAgW09sZFN0eWxlT2JqQ10gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZU5TKGluIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCi0gICAgICAg
IHZvaWQgc2V0QXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgbmFtZXNwYWNlVVJJLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNldEF0dHJpYnV0
ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHZhbHVlKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCByZW1vdmVBdHRyaWJ1
dGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkks
CisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgcmVtb3ZlQXR0cmlidXRlTlMoaW4gW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBOb2RlTGlzdCBnZXRFbGVtZW50c0J5VGFn
TmFtZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVS
SSwKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVO
UyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01TdHJpbmcgbG9jYWxOYW1lKTsKIAotICAgICAgICBBdHRyIGdldEF0dHJpYnV0ZU5vZGVO
UyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisg
ICAgICAgIFtPbGRTdHlsZU9iakNdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGluIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1l
KTsKIAogICAgICAgICBBdHRyIHNldEF0dHJpYnV0ZU5vZGVOUyhpbiBBdHRyIG5ld0F0dHIpCkBA
IC03MCw3ICs3MCw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICBib29sZWFuIGhhc0F0dHJp
YnV0ZShpbiBET01TdHJpbmcgbmFtZSk7CiAKLSAgICAgICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGVO
UyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisg
ICAgICAgIFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoaW4gW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwpAQCAtMTA4LDcgKzEwOCw3
IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgLy8gSUUgZXh0ZW5zaW9ucwogCiAgICAgICAgIFtF
eGNsdWRlPU9iakNdIE5vZGUgaW5zZXJ0QWRqYWNlbnRFbGVtZW50KGluIERPTVN0cmluZyBwb3Np
dGlvbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIE5vZGUgbmV3RWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gTm9kZSBlbGVtZW50KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgW0V4Y2x1ZGU9T2JqQ10gYm9vbGVhbiBjb250YWlucyhpbiBF
bGVtZW50IGVsZW1lbnQpOwpJbmRleDogZG9tL0tleWJvYXJkRXZlbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGRvbS9LZXlib2FyZEV2ZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBkb20vS2V5Ym9h
cmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxNyBAQCBtb2R1bGUgZXZl
bnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgc2hpZnRL
ZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIGFsdEdyYXBo
S2V5OwogCi0gICAgICAgIHZvaWQgaW5pdEtleWJvYXJkRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5
cGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnVi
YmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbmNl
bGFibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2
aWV3QXJnLCAKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbml0S2V5Ym9hcmRFdmVudChp
biBBdG9taWNTdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9N
V2luZG93IHZpZXcsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmlu
ZyBrZXlJZGVudGlmaWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2ln
bmVkIGxvbmcga2V5TG9jYXRpb25BcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBjdHJsS2V5QXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gYWx0S2V5QXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gc2hpZnRLZXlBcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9v
bGVhbiBtZXRhS2V5QXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xl
YW4gYWx0R3JhcGhLZXlBcmcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVu
c2lnbmVkIGxvbmcga2V5TG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBjdHJsS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gYWx0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
c2hpZnRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBtZXRh
S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0R3JhcGhL
ZXkpOwogICAgIH07CiAKIH0KSW5kZXg6IGRvbS9Nb3VzZUV2ZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBkb20vTW91c2VFdmVudC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysgZG9tL01vdXNlRXZlbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwyMSArMzgsMjEgQEAgbW9kdWxlIGV2ZW50cyB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIGZyb21FbGVtZW50Owog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICB0b0VsZW1lbnQ7CiAg
ICAgICAgIAotICAgICAgICB2b2lkICAgICAgICAgICAgICAgaW5pdE1vdXNlRXZlbnQoaW4gQXRv
bWljU3RyaW5nIHR5cGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3QXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWlsQXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc2Ny
ZWVuWEFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBs
b25nIHNjcmVlbllBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gbG9uZyBjbGllbnRYQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGxvbmcgY2xpZW50WUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGN0cmxLZXlBcmcsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRLZXlBcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBzaGlmdEtleUFy
ZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFu
IG1ldGFLZXlBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gdW5zaWduZWQgc2hvcnQgYnV0dG9uQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIEV2ZW50VGFyZ2V0IHJlbGF0ZWRUYXJnZXRBcmcpOworICAgICAg
ICBbT2xkU3R5bGVPYmpDXSB2b2lkIGluaXRNb3VzZUV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
Y2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBET01XaW5kb3cgdmlldywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBsb25nIGRldGFpbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblgsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50WCwgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFksIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjdHJsS2V5LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0S2V5
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
c2hpZnRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBtZXRhS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIHVuc2lnbmVkIHNob3J0IGJ1dHRvbiwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBFdmVudFRhcmdldCByZWxhdGVkVGFyZ2V0KTsKICAgICB9Owog
CiB9CkluZGV4OiBkb20vTXV0YXRpb25FdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL011dGF0
aW9uRXZlbnQuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGRvbS9NdXRhdGlvbkV2ZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDE0IEBAIG1vZHVsZSBldmVudHMgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgYXR0ck5hbWU7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBhdHRyQ2hhbmdlOwogCi0gICAgICAgIHZv
aWQgaW5pdE11dGF0aW9uRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5cGVBcmcsIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGUgcmVsYXRlZE5vZGVBcmcsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwcmV2VmFsdWVBcmcsIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBuZXdWYWx1ZUFyZywgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGF0dHJOYW1lQXJnLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBzaG9ydCBhdHRyQ2hh
bmdlQXJnKTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbml0TXV0YXRpb25FdmVudChp
biBBdG9taWNTdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
Ym9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gTm9k
ZSByZWxhdGVkTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3Ry
aW5nIHByZXZWYWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3Ry
aW5nIG5ld1ZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJp
bmcgYXR0ck5hbWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVk
IHNob3J0IGF0dHJDaGFuZ2UpOwogCiAgICAgfTsKIApJbmRleDogZG9tL05hbWVkTm9kZU1hcC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gZG9tL05hbWVkTm9kZU1hcC5pZGwJKHJldmlzaW9uIDE2MTc3KQor
KysgZG9tL05hbWVkTm9kZU1hcC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAg
bW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAK
LSAgICAgICAgTm9kZSBnZXROYW1lZEl0ZW1OUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAK
KyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZSBnZXROYW1lZEl0ZW1OUyhpbiBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpCiAgICAgICAgICAgICAvLyBGSVhNRTogdGhlIGlt
cGxlbWVudGF0aW9uIGRvZXMgdGFrZSBhbiBleGNlcHRpb25jb2RlIHBhcmFtZXRlci4KICAgICAg
ICAgICAgIC8qcmFpc2VzKERPTUV4Y2VwdGlvbikqLzsKQEAgLTQ0LDcgKzQ0LDcgQEAgbW9kdWxl
IGNvcmUgewogICAgICAgICBOb2RlIHNldE5hbWVkSXRlbU5TKGluIE5vZGUgYXJnKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgTm9kZSByZW1vdmVOYW1lZEl0
ZW1OUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKKyAgICAgICAgW09sZFN0eWxlT2JqQ10g
Tm9kZSByZW1vdmVOYW1lZEl0ZW1OUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBs
b2NhbE5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIApJbmRleDogZG9t
L1VJRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9VSUV2ZW50LmlkbAkocmV2aXNpb24gMTYx
NzcpCisrKyBkb20vVUlFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM0LDExICszNCwxMSBA
QCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAg
ICAgICAgICAgIHBhZ2VZOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAg
ICAgICAgICAgd2hpY2g7CiAgICAgICAgIAotICAgICAgICB2b2lkICAgICAgICAgICAgICAgaW5p
dFVJRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5cGVBcmcsIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3QXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWls
QXJnKTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbml0VUlFdmVudChpbiBBdG9taWNT
dHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBi
b29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gbG9uZyBkZXRhaWwpOwogICAgIH07CiAKIH0KSW5kZXg6IGh0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQu
aWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIGxvbmcgd2lkdGg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKIAotICAgICAg
ICBET01PYmplY3QgZ2V0Q29udGV4dChpbiBET01TdHJpbmcgY29udGV4dElEKTsKKyAgICAgICAg
RE9NT2JqZWN0IGdldENvbnRleHQoaW4gRE9NU3RyaW5nIGNvbnRleHRJZCk7CiAKICAgICB9Owog
CkluZGV4OiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hU
TUxTZWxlY3RFbGVtZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBodG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgc2l6ZTsKICAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICB0YWJJbmRleDsKICAgICAgICAg
Ci0gICAgICAgIHZvaWQgICAgICAgICAgICAgICBhZGQoaW4gSFRNTEVsZW1lbnQgZWxlbWVudCwg
CisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgYWRkKGluIEhUTUxFbGVtZW50IGVsZW1lbnQs
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIEhUTUxFbGVtZW50IGJlZm9yZSkK
ICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkICAgICAgICAg
ICAgICAgcmVtb3ZlKGluIGxvbmcgaW5kZXgpOwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2
Zy9TVkdMZW5ndGhMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3Zn
L1NWR0xlbmd0aExpc3QuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxNyBA
QCBtb2R1bGUgc3ZnCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZJdGVtczsKICAgICB2b2lkICAgY2xlYXIgKCAgKQogICAgICAgICAgICAgICAgICAgICByYWlz
ZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR0xlbmd0aCBpbml0aWFsaXplICggaW4gU1ZHTGVu
Z3RoIG5ld0l0ZW0gKQorICAgIFNWR0xlbmd0aCBpbml0aWFsaXplICggaW4gU1ZHTGVuZ3RoIGl0
ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0
aW9uICk7CiAgICAgU1ZHTGVuZ3RoIGdldEl0ZW0gKCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkK
ICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdMZW5n
dGggaW5zZXJ0SXRlbUJlZm9yZSAoIGluIFNWR0xlbmd0aCBuZXdJdGVtLCBpbiB1bnNpZ25lZCBs
b25nIGluZGV4ICkKKyAgICBTVkdMZW5ndGggaW5zZXJ0SXRlbUJlZm9yZSAoIGluIFNWR0xlbmd0
aCBpdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFp
c2VzKCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwotICAgIFNWR0xlbmd0aCByZXBsYWNl
SXRlbSAoIGluIFNWR0xlbmd0aCBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKKyAg
ICBTVkdMZW5ndGggcmVwbGFjZUl0ZW0gKCBpbiBTVkdMZW5ndGggaXRlbSwgaW4gdW5zaWduZWQg
bG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBT
VkdFeGNlcHRpb24gKTsKICAgICBTVkdMZW5ndGggcmVtb3ZlSXRlbSAoIGluIHVuc2lnbmVkIGxv
bmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwot
ICAgIFNWR0xlbmd0aCBhcHBlbmRJdGVtICggaW4gU1ZHTGVuZ3RoIG5ld0l0ZW0gKQorICAgIFNW
R0xlbmd0aCBhcHBlbmRJdGVtICggaW4gU1ZHTGVuZ3RoIGl0ZW0gKQogICAgICAgICAgICAgICAg
ICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgIH07CiB9OwpJbmRl
eDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdOdW1iZXJMaXN0LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR051bWJlckxpc3QuaWRsCShyZXZpc2lvbiAxNjE3
NykKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTnVtYmVyTGlzdC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDE3ICsyOSwxNyBAQCBtb2R1bGUgc3ZnCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKICAgICB2b2lkICAgY2xlYXIgKCAgKQog
ICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR051bWJl
ciBpbml0aWFsaXplICggaW4gU1ZHTnVtYmVyIG5ld0l0ZW0gKQorICAgIFNWR051bWJlciBpbml0
aWFsaXplICggaW4gU1ZHTnVtYmVyIGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMo
IERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgICAgU1ZHTnVtYmVyIGdldEl0ZW0gKCBp
biB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01F
eGNlcHRpb24gKTsKLSAgICBTVkdOdW1iZXIgaW5zZXJ0SXRlbUJlZm9yZSAoIGluIFNWR051bWJl
ciBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKKyAgICBTVkdOdW1iZXIgaW5zZXJ0
SXRlbUJlZm9yZSAoIGluIFNWR051bWJlciBpdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkK
ICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiAp
OwotICAgIFNWR051bWJlciByZXBsYWNlSXRlbSAoIGluIFNWR051bWJlciBuZXdJdGVtLCBpbiB1
bnNpZ25lZCBsb25nIGluZGV4ICkKKyAgICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0gKCBpbiBTVkdO
dW1iZXIgaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAg
IHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKICAgICBTVkdOdW1iZXIgcmVt
b3ZlSXRlbSAoIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICBy
YWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR051bWJlciBhcHBlbmRJdGVtICggaW4gU1ZH
TnVtYmVyIG5ld0l0ZW0gKQorICAgIFNWR051bWJlciBhcHBlbmRJdGVtICggaW4gU1ZHTnVtYmVy
IGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhj
ZXB0aW9uICk7CiAgIH07CiB9OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdQb2lu
dExpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHUG9pbnRM
aXN0LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1Bv
aW50TGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxNyBAQCBtb2R1bGUgc3Zn
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKICAg
ICB2b2lkICAgY2xlYXIgKCAgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2Vw
dGlvbiApOwotICAgIFNWR1BvaW50IGluaXRpYWxpemUgKCBpbiBTVkdQb2ludCBuZXdJdGVtICkK
KyAgICBTVkdQb2ludCBpbml0aWFsaXplICggaW4gU1ZHUG9pbnQgaXRlbSApCiAgICAgICAgICAg
ICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKICAgICBTVkdQ
b2ludCBnZXRJdGVtICggaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAg
ICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7Ci0gICAgU1ZHUG9pbnQgaW5zZXJ0SXRlbUJlZm9y
ZSAoIGluIFNWR1BvaW50IG5ld0l0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQorICAgIFNW
R1BvaW50IGluc2VydEl0ZW1CZWZvcmUgKCBpbiBTVkdQb2ludCBpdGVtLCBpbiB1bnNpZ25lZCBs
b25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNW
R0V4Y2VwdGlvbiApOwotICAgIFNWR1BvaW50IHJlcGxhY2VJdGVtICggaW4gU1ZHUG9pbnQgbmV3
SXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCisgICAgU1ZHUG9pbnQgcmVwbGFjZUl0ZW0g
KCBpbiBTVkdQb2ludCBpdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAg
ICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICAgIFNWR1Bv
aW50IHJlbW92ZUl0ZW0gKCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAg
ICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdQb2ludCBhcHBlbmRJdGVtICgg
aW4gU1ZHUG9pbnQgbmV3SXRlbSApCisgICAgU1ZHUG9pbnQgYXBwZW5kSXRlbSAoIGluIFNWR1Bv
aW50IGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZH
RXhjZXB0aW9uICk7CiAgIH07CiB9OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdT
dHJpbmdMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1N0
cmluZ0xpc3QuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcv
U1ZHU3RyaW5nTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE3ICsyOSwxNyBAQCBtb2R1
bGUgc3ZnCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVt
czsKICAgICB2b2lkICAgY2xlYXIgKCAgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIGNv
cmU6OkRPTUV4Y2VwdGlvbiApOwotICAgIGNvcmU6OkRPTVN0cmluZyBpbml0aWFsaXplICggaW4g
Y29yZTo6RE9NU3RyaW5nIG5ld0l0ZW0gKQorICAgIGNvcmU6OkRPTVN0cmluZyBpbml0aWFsaXpl
ICggaW4gY29yZTo6RE9NU3RyaW5nIGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMo
IGNvcmU6OkRPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgICAgY29yZTo6RE9NU3RyaW5n
IGdldEl0ZW0gKCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAg
cmFpc2VzKCBjb3JlOjpET01FeGNlcHRpb24gKTsKLSAgICBjb3JlOjpET01TdHJpbmcgaW5zZXJ0
SXRlbUJlZm9yZSAoIGluIGNvcmU6OkRPTVN0cmluZyBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25n
IGluZGV4ICkKKyAgICBjb3JlOjpET01TdHJpbmcgaW5zZXJ0SXRlbUJlZm9yZSAoIGluIGNvcmU6
OkRPTVN0cmluZyBpdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAg
ICAgICAgcmFpc2VzKCBjb3JlOjpET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwotICAgIGNv
cmU6OkRPTVN0cmluZyByZXBsYWNlSXRlbSAoIGluIGNvcmU6OkRPTVN0cmluZyBuZXdJdGVtLCBp
biB1bnNpZ25lZCBsb25nIGluZGV4ICkKKyAgICBjb3JlOjpET01TdHJpbmcgcmVwbGFjZUl0ZW0g
KCBpbiBjb3JlOjpET01TdHJpbmcgaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAg
ICAgICAgICAgICAgICAgIHJhaXNlcyggY29yZTo6RE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24g
KTsKICAgICBjb3JlOjpET01TdHJpbmcgcmVtb3ZlSXRlbSAoIGluIHVuc2lnbmVkIGxvbmcgaW5k
ZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIGNvcmU6OkRPTUV4Y2VwdGlvbiApOwot
ICAgIGNvcmU6OkRPTVN0cmluZyBhcHBlbmRJdGVtICggaW4gY29yZTo6RE9NU3RyaW5nIG5ld0l0
ZW0gKQorICAgIGNvcmU6OkRPTVN0cmluZyBhcHBlbmRJdGVtICggaW4gY29yZTo6RE9NU3RyaW5n
IGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIGNvcmU6OkRPTUV4Y2VwdGlvbiwg
U1ZHRXhjZXB0aW9uICk7CiAgIH07CiB9OwpJbmRleDoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBrc3Zn
Mi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDE4ICszOSwxOCBAQCBtb2R1bGUgc3ZnCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNWR0FuaW1hdGVkRW51bWVyYXRpb24gbGVuZ3RoQWRqdXN0OwogICAgIGxvbmcgICAgIGdldE51
bWJlck9mQ2hhcnMgKCAgKTsKICAgICBmbG9hdCAgICBnZXRDb21wdXRlZFRleHRMZW5ndGggKCAg
KTsKLSAgICBmbG9hdCAgICBnZXRTdWJTdHJpbmdMZW5ndGggKCBpbiB1bnNpZ25lZCBsb25nIGNo
YXJudW0sIGluIHVuc2lnbmVkIGxvbmcgbmNoYXJzICkKKyAgICBmbG9hdCAgICBnZXRTdWJTdHJp
bmdMZW5ndGggKCBpbiB1bnNpZ25lZCBsb25nIG9mZnNldCwgaW4gdW5zaWduZWQgbG9uZyBsZW5n
dGggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNW
R1BvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIgKCBpbiB1bnNpZ25lZCBsb25nIGNoYXJudW0g
KQorICAgIFNWR1BvaW50IGdldFN0YXJ0UG9zaXRpb25PZkNoYXIgKCBpbiB1bnNpZ25lZCBsb25n
IG9mZnNldCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7Ci0g
ICAgU1ZHUG9pbnQgZ2V0RW5kUG9zaXRpb25PZkNoYXIgKCBpbiB1bnNpZ25lZCBsb25nIGNoYXJu
dW0gKQorICAgIFNWR1BvaW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyICggaW4gdW5zaWduZWQgbG9u
ZyBvZmZzZXQgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwot
ICAgIFNWR1JlY3QgIGdldEV4dGVudE9mQ2hhciAoIGluIHVuc2lnbmVkIGxvbmcgY2hhcm51bSAp
CisgICAgU1ZHUmVjdCAgZ2V0RXh0ZW50T2ZDaGFyICggaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQg
KQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIGZsb2F0
ICAgIGdldFJvdGF0aW9uT2ZDaGFyICggaW4gdW5zaWduZWQgbG9uZyBjaGFybnVtICkKKyAgICBm
bG9hdCAgICBnZXRSb3RhdGlvbk9mQ2hhciAoIGluIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ICkKICAg
ICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKICAgICBsb25nICAgICBn
ZXRDaGFyTnVtQXRQb3NpdGlvbiAoIGluIFNWR1BvaW50IHBvaW50ICk7Ci0gICAgdm9pZCAgICAg
c2VsZWN0U3ViU3RyaW5nICggaW4gdW5zaWduZWQgbG9uZyBjaGFybnVtLCBpbiB1bnNpZ25lZCBs
b25nIG5jaGFycyApCisgICAgdm9pZCAgICAgc2VsZWN0U3ViU3RyaW5nICggaW4gdW5zaWduZWQg
bG9uZyBvZmZzZXQsIGluIHVuc2lnbmVkIGxvbmcgbGVuZ3RoICkKICAgICAgICAgICAgICAgICAg
ICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKICAgfTsKIH07CkluZGV4OiBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL2JpbmRp
bmdzL2lkbC9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysga3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjksMTcgKzI5LDE3IEBAIG1vZHVsZSBzdmcKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBudW1iZXJPZkl0ZW1zOwogICAgIHZvaWQgICBjbGVhciAoICApCiAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7Ci0gICAgU1ZHVHJhbnNmb3JtIGlu
aXRpYWxpemUgKCBpbiBTVkdUcmFuc2Zvcm0gbmV3SXRlbSApCisgICAgU1ZHVHJhbnNmb3JtIGlu
aXRpYWxpemUgKCBpbiBTVkdUcmFuc2Zvcm0gaXRlbSApCiAgICAgICAgICAgICAgICAgICAgIHJh
aXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKICAgICBTVkdUcmFuc2Zvcm0gZ2V0
SXRlbSAoIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICByYWlz
ZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR1RyYW5zZm9ybSBpbnNlcnRJdGVtQmVmb3JlICgg
aW4gU1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQorICAgIFNW
R1RyYW5zZm9ybSBpbnNlcnRJdGVtQmVmb3JlICggaW4gU1ZHVHJhbnNmb3JtIGl0ZW0sIGluIHVu
c2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2Vw
dGlvbiwgU1ZHRXhjZXB0aW9uICk7Ci0gICAgU1ZHVHJhbnNmb3JtIHJlcGxhY2VJdGVtICggaW4g
U1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQorICAgIFNWR1Ry
YW5zZm9ybSByZXBsYWNlSXRlbSAoIGluIFNWR1RyYW5zZm9ybSBpdGVtLCBpbiB1bnNpZ25lZCBs
b25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNW
R0V4Y2VwdGlvbiApOwogICAgIFNWR1RyYW5zZm9ybSByZW1vdmVJdGVtICggaW4gdW5zaWduZWQg
bG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7
Ci0gICAgU1ZHVHJhbnNmb3JtIGFwcGVuZEl0ZW0gKCBpbiBTVkdUcmFuc2Zvcm0gbmV3SXRlbSAp
CisgICAgU1ZHVHJhbnNmb3JtIGFwcGVuZEl0ZW0gKCBpbiBTVkdUcmFuc2Zvcm0gaXRlbSApCiAg
ICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsK
ICAgICBTVkdUcmFuc2Zvcm0gY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCAoIGluIFNWR01h
dHJpeCBtYXRyaXggKTsKICAgICBTVkdUcmFuc2Zvcm0gY29uc29saWRhdGUgKCAgKTsKSW5kZXg6
IGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9zdmcvU1ZH
U1ZHRWxlbWVudC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysga3N2ZzIvc3ZnL1NWR1NWR0VsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01Niw4ICs1Niw4IEBAIG1vZHVsZSBzdmcKICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgRE9NRXhjZXB0aW9uOwogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnQgY3VycmVudFRyYW5zbGF0ZTsKIAotICAgICAgICB1
bnNpZ25lZCBsb25nIHN1c3BlbmRSZWRyYXcoIGluIHVuc2lnbmVkIGxvbmcgbWF4X3dhaXRfbWls
bGlzZWNvbmRzICk7Ci0gICAgICAgIHZvaWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3KCBpbiB1
bnNpZ25lZCBsb25nIHN1c3BlbmRfaGFuZGxlX2lkICkKKyAgICAgICAgdW5zaWduZWQgbG9uZyBz
dXNwZW5kUmVkcmF3KCBpbiB1bnNpZ25lZCBsb25nIG1heFdhaXRNaWxsaXNlY29uZHMgKTsKKyAg
ICAgICAgdm9pZCAgICAgICAgICB1bnN1c3BlbmRSZWRyYXcoIGluIHVuc2lnbmVkIGxvbmcgc3Vz
cGVuZEhhbmRsZUlkICkKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0
aW9uICk7CiAgICAgICAgIHZvaWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3QWxsKCk7CiAgICAg
ICAgIHZvaWQgICAgICAgICAgZm9yY2VSZWRyYXcoKTsKSW5kZXg6IHBhZ2UvRE9NV2luZG93Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBwYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysg
cGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMiArMzIsMTIgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCBkb2N1bWVu
dDsKICAgICAgICAgCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIFN0eWxlIEludGVyZmFjZQotICAg
ICAgICBDU1NTdHlsZURlY2xhcmF0aW9uIGdldENvbXB1dGVkU3R5bGUoaW4gRWxlbWVudCBlbHQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJp
bmcgcHNldWRvRWx0KTsKKyAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0
eWxlKGluIEVsZW1lbnQgZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50KTsKIAogICAgICAgICAvLyBX
ZWJLaXQgZXh0ZW5zaW9ucwotICAgICAgICBDU1NSdWxlTGlzdCBnZXRNYXRjaGVkQ1NTUnVsZXMo
aW4gRWxlbWVudCBlbHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01TdHJpbmcgcHNldWRvRWx0LAorICAgICAgICBDU1NSdWxlTGlzdCBnZXRNYXRjaGVkQ1NT
UnVsZXMoaW4gRWxlbWVudCBlbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIHBzZXVkb0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gYXV0aG9yT25seSk7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgZGV2aWNlUGl4ZWxSYXRpbzsKICAgICAg
ICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10365</attachid>
            <date>2006-09-02 06:23:35 -0700</date>
            <delta_ts>2006-09-03 11:56:37 -0700</delta_ts>
            <desc>Revised per Eric&apos;s comments</desc>
            <filename>10685.patch</filename>
            <type>text/plain</type>
            <size>64253</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTkx
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzIgQEAKKzIwMDYtMDkt
MDIgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyAxMDY4NTogT2JqQyBET00gc2hv
dWxkIGhhdmUgbm8gdW5uYW1lZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2ODUKKworICAgICAgICAtIFRoZSBPYmpD
IGNvZGUgZ2VuZXJhdGlvbiBzY3JpcHQgbm93IG91dHB1dHMgcGFyYW1ldGVyIHByZWZpeGVzCisg
ICAgICAgICAgZm9yIG1ldGhvZHMgdGhhdCBoYXZlIG1vcmUgdGhhbiAxIHBhcmFtZXRlci4gVGhp
cyBwcmVmaXggaXMgc2ltcGx5CisgICAgICAgICAgdGhlIHBhcmFtZXRlciBuYW1lLiBTb21lIHBh
cmFtZXRlciBuYW1lcyBoYXZlIGJlZW4gY2hhbmdlZCBpbiB0aGUgSURMCisgICAgICAgICAgZmls
ZXMgdG8gcHJvZHVjZSBiZXR0ZXIgcHJlZml4ZXMuIElmIGFuIGV4dGVuZGVkIGF0dHJpYnV0ZSBv
ZiAiT2JqQ1ByZWZpeCIKKyAgICAgICAgICBleGlzdHMgb24gYSBwYXJhbWV0ZXIgd2Ugd2lsbCB1
c2UgdGhhdCBmb3IgdGhlIHByZWZpeC4KKworICAgICAgICAtIEEgYmFja3dhcmRzIGNvbXBhdGli
bGUgdmVyc2lvbiBvZiB0aGUgbWV0aG9kIGlzIHBsYWNlZCBpbiBhCisgICAgICAgICAgY2F0ZWdv
cnkgd2l0aCBhIGRlcHJlY2F0aW9uIG1hcmNvIGZvciAxMC41IGFuZCBsYXRlci4gVGhpcyBzdGVw
IG9ubHkKKyAgICAgICAgICBoYXBwZW5zIGlmIHRoZSBJREwgZXh0ZW5kZWQgYXR0cmlidXRlICJP
bGRTdHlsZU9iakMiIGlzIGRlZmluZWQuCisgICAgICAgICAgQWxsIG5ldyBmdW5jdGlvbnMgaW4g
SURMIHNob3VsZCBub3QgZ2V0IHRoaXMgYXR0cmlidXRlLgorCisgICAgICAgIC0gTWFkZSB0aGUg
JGludGVyZmFjZU1ldGhvZFNlbGVjdG9yIHJlZ2V4IGluIElETFN0cnVjdHVyZS5wbSBhbGxvdyAi
PSIgc28gCisgICAgICAgICAgcGFyYW1ldGVyIGV4dGVuZGVkIGF0dHJpYnV0ZXMgY2FuIGhhdmUg
dmFsdWVzLgorCisgICAgICAgIC0gTW92ZWQgUmVtb3ZlRXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVu
Y3Rpb25zIHRvIENvZGVHZW5lcmF0b3IucG0KKyAgICAgICAgICBzbyBpdCBjYW4gYmUgc2hhcmVk
IGJldHdlZW4gdGhlIHR3byBnZW5lcmF0b3JzLgorICAgICAgICAgIAorICAgICAgICAtIFJlbW92
ZWQgdGhlIGRpZSB3aGVuIHdlIGVuY291bnRlciBhIGdldHRlciB0aGF0IHVzZXMgZXhjZXB0aW9u
cy4KKyAgICAgICAgICBTYW0gV2VpbmlnIGFkZGVkIHN1cHBvcnQgZm9yIHRoaXMgaW4gYW4gZWFy
bGllciBjaGFuZ2UuCisKKyAgICAgICAgLSBDaGVjayBpZiAkRU5WeyJNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVQifSBpcyBkZWZpbmVkIGJlZm9yZSB3ZSBjb21wYXJlLgorICAgICAgICAgIFRoaXMg
Y2F1c2VkIGEgcGVybCB3YXJuaW5nIHdoZW4gZ2VuZXJhdGluZyBvbiBvdGhlciBwbGF0Zm9ybXMu
CisKKyAgICAgICAgLSBUaGUgT2JqQyBnZW5lcmF0aW9uIHdpbGwgbm90IGhhcHBlbiBvbiBwbGF0
Zm9ybXMgb3RoZXIgdGhhbiBNYWMgT1MuCisgICAgICAgICAgVGhpcyBpcyBkZXRlcm1pbmVkIGJ5
IHRoZSAiT1MiIGVudiB2YXJpYWJsZSBYY29kZSBzZXRzLiBUaGlzIGNoZWNrCisgICAgICAgICAg
aXMgaW4gdGhlIERlcml2ZWRTb3VyY2VzLm1ha2UuCisKKyAgICAgICAgLSBBZGRlZCBhIHdheSB0
byBza2lwIGdlbmVyYXRpb24gaWYgdGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBzcGVjaWZpYworICAg
ICAgICAgIGdlbmVyYXRvciByZXR1cm5zIHVuZGVmLiBOb3QgdXNlZCB5ZXQuCisKKyAgICAgICAg
LSBNYW55IGNsZWFudXAgdHdlYWtzIGluIENvZGVHZW5lcmF0b3JPYmpDLnBtLgorCisgICAgICAg
IC0gUmVtb3ZlZCBJREwgYW5kIENTUyBmaWxlcyBmcm9tIHRoZSBwcm9qZWN0J3MgcmVzb3VyY2Ug
Y29weSBwaGFzZSwKKyAgICAgICAgICB0aGVzZSBkbyBubyBuZWVkIHRvIGJlIGluIFdlYkNvcmUn
cyByZXNvdXJjZXMuIAorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZQorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvci5wbQorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2Jq
Qy5wbQorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMU3RydWN0dXJlLnBtCisgICAgICAg
ICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmlkbAorICAgICAgICAqIGRvbS9DaGFyYWN0ZXJEYXRh
LmlkbAorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaWRsCisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsCisgICAgICAgICogZG9tL0tl
eWJvYXJkRXZlbnQuaWRsCisgICAgICAgICogZG9tL01vdXNlRXZlbnQuaWRsCisgICAgICAgICog
ZG9tL011dGF0aW9uRXZlbnQuaWRsCisgICAgICAgICogZG9tL05hbWVkTm9kZU1hcC5pZGwKKyAg
ICAgICAgKiBkb20vVUlFdmVudC5pZGwKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
LmlkbAorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisgICAgICAgICoga3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdMZW5ndGhMaXN0LmlkbAorICAgICAgICAqIGtzdmcyL2Jp
bmRpbmdzL2lkbC9zdmcvU1ZHTnVtYmVyTGlzdC5pZGwKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR1BvaW50TGlzdC5pZGwKKyAgICAgICAgKiBrc3ZnMi9iaW5kaW5ncy9pZGwv
c3ZnL1NWR1N0cmluZ0xpc3QuaWRsCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuaWRsCisgICAgICAgICoga3N2ZzIvYmluZGluZ3MvaWRsL3N2
Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdTVkdFbGVtZW50
LmlkbAorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbAorCiAyMDA2LTA5LTAxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZm9yIDEwNjgyLCByZWZpbmUg
dGhlIEZPVUMgcGFpbnQgc3VwcHJlc3Npb24gbG9naWMgc28gdGhhdCBpdApJbmRleDogRGVyaXZl
ZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBEZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lv
biAxNjE3NykKKysrIERlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM0MCw3
ICszNDAsNyBAQCBTVkdFbGVtZW50RmFjdG9yeS5jcHAgU1ZHTmFtZXMuY3BwIDoga3N2CiBYTGlu
a05hbWVzLmNwcCA6IGtzdmcyL3NjcmlwdHMvbWFrZV9uYW1lcy5wbCBrc3ZnMi9taXNjL3hsaW5r
YXR0cnMuaW4KIAlwZXJsICQ8IC0tYXR0cnMgJChXZWJDb3JlKS9rc3ZnMi9taXNjL3hsaW5rYXR0
cnMuaW4gXAogICAgICAgICAgICAgLS1uYW1lc3BhY2UgWExpbmsgLS1jcHBOYW1lc3BhY2UgV2Vi
Q29yZSAtLW5hbWVzcGFjZVVSSSAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgLS1vdXRw
dXQgLgotICAgICAgICAgICAgCisKIFhNTE5hbWVzLmNwcCA6IGtzdmcyL3NjcmlwdHMvbWFrZV9u
YW1lcy5wbCB4bWwveG1sYXR0cnMuaW4KIAlwZXJsICQ8IC0tYXR0cnMgJChXZWJDb3JlKS94bWwv
eG1sYXR0cnMuaW4gXAogICAgICAgICAgICAgLS1uYW1lc3BhY2UgWE1MIC0tY3BwTmFtZXNwYWNl
IFdlYkNvcmUgLS1uYW1lc3BhY2VVUkkgImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVz
cGFjZSIgLS1vdXRwdXQgLgpAQCAtMzkxLDcgKzM5MSw5IEBAIE9CSkNfQklORElOR1NfU0NSSVBU
UyA9IFwKICMKIAogRE9NJS5oIDogJS5pZGwgJChPQkpDX0JJTkRJTkdTX1NDUklQVFMpCi0JcGVy
bCAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRpbmdzL3Njcmlw
dHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVGSU5FUykiIC0t
Z2VuZXJhdG9yIE9iakMgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgeHBh
dGggLS1pbmNsdWRlIGtzdmcyL3N2ZyAtLW91dHB1dGRpciAgLiAkPAoraWZlcSAoJChPUyksTUFD
T1MpCisJcGVybCAtSSQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0cyAkKFdlYkNvcmUpL2JpbmRp
bmdzL3NjcmlwdHMvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIkKEZFQVRVUkVfREVG
SU5FUykiIC0tZ2VuZXJhdG9yIE9iakMgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWlu
Y2x1ZGUgeHBhdGggLS1pbmNsdWRlIGtzdmcyL3N2ZyAtLW91dHB1dGRpciAuICQ8CitlbmRpZgog
CiAjIG5ldy1zdHlsZSBKYXZhU2NyaXB0IGJpbmRpbmdzCiAKQEAgLTQwNCw0ICs0MDYsNCBAQCBK
U19CSU5ESU5HU19TQ1JJUFRTID0gXAogIwogCiBKUyUuaCA6ICUuaWRsICQoSlNfQklORElOR1Nf
U0NSSVBUUykKLQlwZXJsIC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkv
YmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVS
RV9ERUZJTkVTKSIgLS1nZW5lcmF0b3IgSlMgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAt
LWluY2x1ZGUgeG1sIC0taW5jbHVkZSBrc3ZnMi9zdmcgLS1vdXRwdXRkaXIgIC4gJDwKKwlwZXJs
IC1JJChXZWJDb3JlKS9iaW5kaW5ncy9zY3JpcHRzICQoV2ViQ29yZSkvYmluZGluZ3Mvc2NyaXB0
cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9ERUZJTkVTKSIgLS1n
ZW5lcmF0b3IgSlMgLS1pbmNsdWRlIGRvbSAtLWluY2x1ZGUgaHRtbCAtLWluY2x1ZGUgeG1sIC0t
aW5jbHVkZSBrc3ZnMi9zdmcgLS1vdXRwdXRkaXIgLiAkPApJbmRleDogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTYxNzcpCisrKyBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDYgQEAKIAkJMUE2OTM4MDIwQTEx
MTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2OTM4MDAwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1
bWVudC5oICovOyB9OwogCQkxQTc1MEQ1QzBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzUw
RDVBMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuY3BwICovOyB9OwogCQkxQTc1MEQ1
RDBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTc1MEQ1QjBBOTBERUUxMDAwRkYyMTUgLyogSlNU
cmVlV2Fsa2VyLmggKi87IH07Ci0JCTFBNzUwRDg4MEE5MEUzOTQwMDBGRjIxNSAvKiBOb2RlSXRl
cmF0b3IuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTc1MEQ4NzBBOTBFMzk0MDAwRkYyMTUgLyogTm9kZUl0ZXJhdG9yLmlkbCAqLzsgfTsKIAkJ
MUE3NTBEOEQwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzUwRDhCMEE5MEU1MjEwMDBG
RjIxNSAvKiBKU05vZGVJdGVyYXRvci5jcHAgKi87IH07CiAJCTFBNzUwRDhFMEE5MEU1MjEwMDBG
RjIxNSAvKiBKU05vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE3NTBEOEMwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9y
LmggKi87IH07CiAJCTFBNzUwREQ0MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTc1MEREMzBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovOyB9
OwpAQCAtMzc3LDkgKzM3Niw2IEBACiAJCTg1MDMxQjRGMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2
ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NTAzMUIzOTBBNDRFRkM3MDBGOTkyRTAgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5o
ICovOyB9OwogCQk4NTAzMUI1MDBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIzQTBBNDRF
RkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgKi87IH07CiAJCTg1MDMxQjUxMEE0NEVGQzcw
MEY5OTJFMCAvKiBXaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oICov
OyB9OwotCQk4NTA4OUNDODBBOThDMjI2MDBBMjc1QUEgLyogQ29tbWVudC5pZGwgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0M3MEE5OEMyMjYw
MEEyNzVBQSAvKiBDb21tZW50LmlkbCAqLzsgfTsKLQkJODUwODlDQ0EwQTk4QzJBQjAwQTI3NUFB
IC8qIENEQVRBU2VjdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1MDg5Q0M5MEE5OEMyQUIwMEEyNzVBQSAvKiBDREFUQVNlY3Rpb24uaWRs
ICovOyB9OwotCQk4NTA4OUNDQzBBOThDMzNBMDBBMjc1QUEgLyogRW50aXR5UmVmZXJlbmNlLmlk
bCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwODlD
Q0IwQTk4QzMzQTAwQTI3NUFBIC8qIEVudGl0eVJlZmVyZW5jZS5pZGwgKi87IH07CiAJCTg1MDg5
Q0Q3MEE5OEM0MjgwMEEyNzVBQSAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0NGMEE5OEM0MjcwMEEyNzVBQSAv
KiBET01DREFUQVNlY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9
OwogCQk4NTA4OUNEODBBOThDNDI4MDBBMjc1QUEgLyogRE9NQ0RBVEFTZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwODlDRDAwQTk4QzQy
NzAwQTI3NUFBIC8qIERPTUNEQVRBU2VjdGlvbi5tbSAqLzsgfTsKIAkJODUwODlDRDkwQTk4QzQy
ODAwQTI3NUFBIC8qIERPTUNvbW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDg5Q0QxMEE5OEM0MjcwMEEyNzVBQSAvKiBET01Db21tZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTQ2Miw4ICs0NTgsNiBA
QAogCQk4NUFDQTk5RDBBOUI1NzU5MDA2NzFFOTAgLyogRE9NVGV4dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBOTlCMEE5QjU3NTkwMDY3MUU5
MCAvKiBET01UZXh0Lm1tICovOyB9OwogCQk4NUFDQTlDMDBBOUI1RkE1MDA2NzFFOTAgLyogRE9N
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVBQ0E5QkUwQTlCNUZBNTAwNjcxRTkwIC8qIERPTUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUFDQTlDMTBBOUI1RkE1MDA2NzFFOTAgLyogRE9N
RWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QUNBOUJGMEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVtZW50Lm1tICovOyB9OwotCQk4NUFD
QTlGQjBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0E5RjkwQTlCNjMxMDAwNjcxRTkw
IC8qIE5hbWVkTm9kZU1hcC5pZGwgKi87IH07Ci0JCTg1QUNBOUZDMEE5QjYzMTAwMDY3MUU5MCAv
KiBOb2RlTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1QUNBOUZBMEE5QjYzMTAwMDY3MUU5MCAvKiBOb2RlTGlzdC5pZGwgKi87IH07CiAJ
CTg1QUNBQThEMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0FBODkwQTlCNzU5QzAwNjcxRTkw
IC8qIERPTU5vZGVMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsK
IAkJODVBQ0FBOEUwQTlCNzU5QzAwNjcxRTkwIC8qIERPTU5vZGVMaXN0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBQ0FBOEEwQTlCNzU5QzAwNjcx
RTkwIC8qIERPTU5vZGVMaXN0Lm1tICovOyB9OwogCQk4NUFDQUJCMDBBOUNBRjgwMDA2NzFFOTAg
LyogRE9NRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg1QUNBQkFFMEE5Q0FGODAwMDY3MUU5MCAvKiBET01Eb2N1bWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC0xNzAzLDcgKzE2OTcsNiBAQAogCQlC
QzFBMzdDMDA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0FBMDk3QzcxNUYwMDE5RjNEOCAvKiBE
T01WaWV3cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDMUEzN0MxMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0FCMDk3QzcxNUYwMDE5RjNE
OCAvKiBET01WaWV3cy5tbSAqLzsgfTsKIAkJQkMxQTM3QzIwOTdDNzE1RjAwMTlGM0Q4IC8qIERP
TVZpZXdzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMUEzN0FDMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3c0ludGVybmFsLmggKi87
IH07Ci0JCUJDNUVDMTc3MEE1MDdFM0UwMDYwMDdGNSAvKiB2aWV3LXNvdXJjZS5jc3MgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUVDMTc2MEE1MDdF
M0UwMDYwMDdGNSAvKiB2aWV3LXNvdXJjZS5jc3MgKi87IH07CiAJCUJDNkI3QkFGMDk5MzYwM0Mw
MDUyODY3QiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzZCN0JBRTA5OTM2MDNDMDA1Mjg2N0IgLyogSW1hZ2UuY3BwICovOyB9Owog
CQlCQzZCN0VDRjA5OThBQzdGMDA1Mjg2N0IgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkI3RUNFMDk5OEFDN0YwMDUyODY3
QiAvKiBJbWFnZVNvdXJjZS5oICovOyB9OwogCQlCQzZENkREMjA5QUY5MDY2MDBGNTk3NTkgLyog
Rm9udC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzZENkREMDA5QUY5MDY2MDBGNTk3NTkgLyogRm9udC5jcHAgKi87IH07CkBAIC03NDMyLDE3ICs3
NDI1LDEwIEBACiAJCQkJQTdCOTdCODUwOTc5QzNBMTAwMEU4RUIxIC8qIFdLVGFibGVUcmFuc2Zl
ckZpbHRlci5jaWtlcm5lbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTc2MzhBOTIwOTk1OTJDMzAw
MDdFMTRGIC8qIFdLRGlzcGxhY2VtZW50TWFwRmlsdGVyLmNpa2VybmVsIGluIFJlc291cmNlcyAq
LywKIAkJCQlBQjQyNjFEODBBMkY2Qzk3MDBCREQxN0QgLyogbWlzc2luZ0ltYWdlLnRpZmYgaW4g
UmVzb3VyY2VzICovLAotCQkJCUJDNUVDMTc3MEE1MDdFM0UwMDYwMDdGNSAvKiB2aWV3LXNvdXJj
ZS5jc3MgaW4gUmVzb3VyY2VzICovLAogCQkJCTFDRDQ0MThEMEE0Q0U3NkYwMEEwMDdBQiAvKiBl
YXN0V2VzdFJlc2l6ZUN1cnNvci50aWZmIGluIFJlc291cmNlcyAqLywKIAkJCQkxQ0Q0NDE4RTBB
NENFNzZGMDBBMDA3QUIgLyogbm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yLnRpZmYgaW4g
UmVzb3VyY2VzICovLAogCQkJCTFDRDQ0MThGMEE0Q0U3NkYwMEEwMDdBQiAvKiBub3J0aFNvdXRo
UmVzaXplQ3Vyc29yLnRpZmYgaW4gUmVzb3VyY2VzICovLAogCQkJCTFDRDQ0MTkwMEE0Q0U3NkYw
MEEwMDdBQiAvKiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJzb3IudGlmZiBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJMUE3NTBEODgwQTkwRTM5NDAwMEZGMjE1IC8qIE5vZGVJdGVyYXRvci5pZGwg
aW4gUmVzb3VyY2VzICovLAotCQkJCTg1MDg5Q0M4MEE5OEMyMjYwMEEyNzVBQSAvKiBDb21tZW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJODUwODlDQ0EwQTk4QzJBQjAwQTI3NUFBIC8qIENE
QVRBU2VjdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovLAotCQkJCTg1MDg5Q0NDMEE5OEMzM0EwMEEy
NzVBQSAvKiBFbnRpdHlSZWZlcmVuY2UuaWRsIGluIFJlc291cmNlcyAqLywKLQkJCQk4NUFDQTlG
QjBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJODVBQ0E5RkMwQTlCNjMxMDAwNjcxRTkwIC8qIE5vZGVMaXN0LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJNTExNTA5NUMwQTlDRTA0NzAwOTAxMDEzIC8qIHVybEljb24udGlmZiBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CkluZGV4OiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiAxNjE3NykKKysr
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkod29ya2luZyBjb3B5KQpAQCAtNTks
MTAgKzU5LDEwIEBAIHN1YiBuZXcKIAogc3ViIFN0cmlwTW9kdWxlKCQpCiB7Ci0JbXkgJG9iamVj
dCA9IHNoaWZ0OwotCW15ICRuYW1lID0gc2hpZnQ7Ci0JJG5hbWUgPX4gcy9bYS16QS1aMC05XSo6
Oi8vOwotCXJldHVybiAkbmFtZTsKKyAgbXkgJG9iamVjdCA9IHNoaWZ0OworICBteSAkbmFtZSA9
IHNoaWZ0OworICAkbmFtZSA9fiBzL1thLXpBLVowLTldKjo6Ly87CisgIHJldHVybiAkbmFtZTsK
IH0KIAogc3ViIFByb2Nlc3NEb2N1bWVudApAQCAtNzYsMjMgKzc2LDI2IEBAIHN1YiBQcm9jZXNz
RG9jdW1lbnQKICAgIyBEeW5hbWljYWxseSBsb2FkIGV4dGVybmFsIGNvZGUgZ2VuZXJhdGlvbiBw
ZXJsIG1vZHVsZS4uLgogICByZXF1aXJlICRpZmFjZU5hbWUgLiAiLnBtIjsKICAgJGNvZGVHZW5l
cmF0b3IgPSAkaWZhY2VOYW1lLT5uZXcoJG9iamVjdCwgJHVzZU91dHB1dERpciwgJHVzZUxheWVy
T25Ub3ApOwotCi0jICBwcmludCAiIHwgKioqIFN0YXJ0aW5nIHRvIGdlbmVyYXRlIGNvZGUgdXNp
bmcgXCIkaWZhY2VOYW1lXCIuLi5cbiB8XG4iOworICB1bmxlc3MgKGRlZmluZWQoJGNvZGVHZW5l
cmF0b3IpKSB7CisgICAgbXkgJGNsYXNzZXMgPSAkdXNlRG9jdW1lbnQtPmNsYXNzZXM7CisgICAg
Zm9yZWFjaChAJGNsYXNzZXMpIHsKKyAgICAgIG15ICRjbGFzcyA9ICRfOworICAgICAgcHJpbnQg
IlNraXBwaW5nICR1c2VHZW5lcmF0b3IgY29kZSBnZW5lcmF0aW9uIGZvciBJREwgaW50ZXJmYWNl
IFwiIiAuICRjbGFzcy0+bmFtZSAuICJcIi5cbiI7CisgICAgfQorICAgIHJldHVybjsKKyAgfQog
CiAgICMgU3RhcnQgdGhlIGFjdHVhbCBjb2RlIGdlbmVyYXRpb24hCiAgICRjb2RlR2VuZXJhdG9y
LT5HZW5lcmF0ZU1vZHVsZSgkdXNlRG9jdW1lbnQpOwogCi0gIG15ICRhcnJheVJlZiA9ICR1c2VE
b2N1bWVudC0+Y2xhc3NlczsKLSAgZm9yZWFjaChAJGFycmF5UmVmKSB7CisgIG15ICRjbGFzc2Vz
ID0gJHVzZURvY3VtZW50LT5jbGFzc2VzOworICBmb3JlYWNoKEAkY2xhc3NlcykgewogICAgIG15
ICRjbGFzcyA9ICRfOwotCi0gICAgcHJpbnQgIkdlbmVyYXRpbmcgY29kZSBmb3IgSURMIGludGVy
ZmFjZSBcIiIgLiAkY2xhc3MtPm5hbWUgLiAiXCIuLi5cbiI7CisgICAgcHJpbnQgIkdlbmVyYXRp
bmcgJHVzZUdlbmVyYXRvciBiaW5kaW5ncyBjb2RlIGZvciBJREwgaW50ZXJmYWNlIFwiIiAuICRj
bGFzcy0+bmFtZSAuICJcIi4uLlxuIjsKICAgICAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVJbnRl
cmZhY2UoJGNsYXNzKTsKICAgfQogCiAgICRjb2RlR2VuZXJhdG9yLT5maW5pc2goKTsKLQotIyAg
cHJpbnQgIiB8ICoqKiBGaW5pc2hlZCBnZW5lcmF0aW9uIVxuIjsKIH0KIAogIyBIZWxwZXIgZm9y
IGFsbCBDb2RlR2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKQEAgLTMzMiw2ICszMzUsMzQgQEAgc3Vi
IFJlY3Vyc2l2ZUluaGVyaXRhbmNlSGVscGVyCiB9CiAKICMgSGVscGVyIGZvciBhbGwgQ29kZUdl
bmVyYXRvcioqKi5wbSBtb2R1bGVzCitzdWIgUmVtb3ZlRXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVu
Y3Rpb25zCit7CisgICAgbXkgJG9iamVjdCA9IHNoaWZ0OworICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OworICAgIG15ICRleGNsdWRlTGFuZyA9IHNoaWZ0OworCisgICAgbXkgJGkgPSAwOworICAg
IHdoaWxlICgkaSA8IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBteSAkbGFu
ZyA9ICR7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfVskaV0tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkV4Y2x1ZGUifTsKKyAgICAgICAgaWYgKCRsYW5nIGFuZCAkbGFuZyBlcSAkZXhj
bHVkZUxhbmcpIHsKKyAgICAgICAgICAgIHNwbGljZShAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30s
ICRpLCAxKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICRpKys7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICAkaSA9IDA7CisgICAgd2hpbGUgKCRpIDwgQHskZGF0YU5vZGUtPmZ1bmN0
aW9uc30pIHsKKyAgICAgICAgbXkgJGxhbmcgPSAkeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfVskaV0t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUifTsKKyAgICAgICAgaWYg
KCRsYW5nIGFuZCAkbGFuZyBlcSAkZXhjbHVkZUxhbmcpIHsKKyAgICAgICAgICAgIHNwbGljZShA
eyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSwgJGksIDEpOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgJGkrKzsKKyAgICAgICAgfQorICAgIH0KK30KKworIyBIZWxwZXIgZm9yIGFsbCBDb2Rl
R2VuZXJhdG9yKioqLnBtIG1vZHVsZXMKIHN1YiBJc1ByaW1pdGl2ZVR5cGUKIHsKICAgbXkgJG9i
amVjdCA9IHNoaWZ0OwpJbmRleDogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlz
aW9uIDE2MTc3KQorKysgYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTg3LDcgKzg3LDcgQEAgc3ViIEdlbmVyYXRlSW50ZXJmYWNlCiAgICAgbXkg
JG9iamVjdCA9IHNoaWZ0OwogICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwogCi0gICAgJG9iamVj
dC0+UmVtb3ZlRXhjbHVkZWRBdHRyaWJ1dGVzQW5kRnVuY3Rpb25zKCRkYXRhTm9kZSk7CisgICAg
JGNvZGVHZW5lcmF0b3ItPlJlbW92ZUV4Y2x1ZGVkQXR0cmlidXRlc0FuZEZ1bmN0aW9ucygkZGF0
YU5vZGUsICJKUyIpOwogCiAgICAgIyBTdGFydCBhY3R1YWwgZ2VuZXJhdGlvbi4uCiAgICAgJG9i
amVjdC0+R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKQEAgLTExMiwzMiArMTEyLDYgQEAgc3Vi
IEdlbmVyYXRlTW9kdWxlCiAgICAgJG1vZHVsZSA9ICRkYXRhTm9kZS0+bW9kdWxlOyAgICAKIH0K
IAotc3ViIFJlbW92ZUV4Y2x1ZGVkQXR0cmlidXRlc0FuZEZ1bmN0aW9ucwotewotICAgIG15ICRv
YmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLQotICAgIG15ICRpID0g
MDsKLSAgICB3aGlsZSAoJGkgPCBzY2FsYXIoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSkgewot
ICAgICAgICBteSAkbGFuZyA9ICR7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfVskaV0tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUifTsKLSAgICAgICAgaWYgKCRsYW5nIGFu
ZCAkbGFuZyBlcSAiSlMiKSB7Ci0gICAgICAgICAgICBzcGxpY2UoQHskZGF0YU5vZGUtPmF0dHJp
YnV0ZXN9LCAkaSwgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkaSsrOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgJGkgPSAwOwotICAgIHdoaWxlICgkaSA8IHNjYWxhcihAeyRk
YXRhTm9kZS0+ZnVuY3Rpb25zfSkpIHsKLSAgICAgICAgbXkgJGxhbmcgPSAkeyRkYXRhTm9kZS0+
ZnVuY3Rpb25zfVskaV0tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4Y2x1ZGUi
fTsKLSAgICAgICAgaWYgKCRsYW5nIGFuZCAkbGFuZyBlcSAiSlMiKSB7Ci0gICAgICAgICAgICBz
cGxpY2UoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30sICRpLCAxKTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICRpKys7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIHN1YiBHZXRQYXJlbnRD
bGFzc05hbWUKIHsKICAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKSW5kZXg6IGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkocmV2aXNpb24gMTYxNzcpCisrKyBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcg
QEAgc3ViIEdlbmVyYXRlSW50ZXJmYWNlCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OwogCi0gICAgJG9iamVjdC0+UmVtb3ZlRXhjbHVkZWRBdHRyaWJ1
dGVzQW5kRnVuY3Rpb25zKCRkYXRhTm9kZSk7CisgICAgJGNvZGVHZW5lcmF0b3ItPlJlbW92ZUV4
Y2x1ZGVkQXR0cmlidXRlc0FuZEZ1bmN0aW9ucygkZGF0YU5vZGUsICJPYmpDIik7CiAKICAgICAj
IFN0YXJ0IGFjdHVhbCBnZW5lcmF0aW9uLi4KICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhlYWRlcigk
ZGF0YU5vZGUpOwpAQCAtMTQyLDMzICsxNDIsNiBAQCBzdWIgR2VuZXJhdGVNb2R1bGUKICAgICAk
bW9kdWxlID0gJGRhdGFOb2RlLT5tb2R1bGU7ICAgIAogfQogCi1zdWIgUmVtb3ZlRXhjbHVkZWRB
dHRyaWJ1dGVzQW5kRnVuY3Rpb25zCi17Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OwotCi0gICAgbXkgJGkgPSAwOwotCi0gICAgd2hpbGUgKCRpIDwg
QHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgIG15ICRsYW5nID0gJHskZGF0YU5v
ZGUtPmF0dHJpYnV0ZXN9WyRpXS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXhj
bHVkZSJ9OwotICAgICAgICBpZiAoJGxhbmcgYW5kICRsYW5nIGVxICJPYmpDIikgewotICAgICAg
ICAgICAgc3BsaWNlKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGksIDEpOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgJGkrKzsKLSAgICAgICAgfQotICAgIH0KLQotICAgICRpID0g
MDsKLSAgICB3aGlsZSAoJGkgPCBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewotICAgICAgICBt
eSAkbGFuZyA9ICR7JGRhdGFOb2RlLT5mdW5jdGlvbnN9WyRpXS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRXhjbHVkZSJ9OwotICAgICAgICBpZiAoJGxhbmcgYW5kICRsYW5nIGVx
ICJPYmpDIikgewotICAgICAgICAgICAgc3BsaWNlKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9LCAk
aSwgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkaSsrOwotICAgICAgICB9Ci0g
ICAgfQotfQotCiBzdWIgR2V0Q2xhc3NOYW1lCiB7CiAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVy
YXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwpAQCAtMjAxLDcgKzE3NCw3IEBAIHN1YiBHZXRDbGFz
c05hbWUKIHN1YiBHZXRJbXBsQ2xhc3NOYW1lCiB7CiAgICAgbXkgJG5hbWUgPSAkY29kZUdlbmVy
YXRvci0+U3RyaXBNb2R1bGUoc2hpZnQpOwotICAgIAorCiAgICAgIyBzcGVjaWFsIGNhc2VzCiAg
ICAgaWYgKCRuYW1lIGVxICJET01JbXBsZW1lbnRhdGlvbiIpIHsKICAgICAgICAgcmV0dXJuICJX
ZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbkZyb250IjsKQEAgLTIxNCwxMiArMTg3LDEwIEBAIHN1
YiBHZXRQYXJlbnRJbXBsQ2xhc3NOYW1lCiB7CiAgICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CiAK
LSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9IGVxIDApIHsKLSAgICAgICAgcmV0dXJuICJP
YmplY3QiOwotICAgIH0KKyAgICByZXR1cm4gIk9iamVjdCIgaWYgQHskZGF0YU5vZGUtPnBhcmVu
dHN9IGVxIDA7CiAKICAgICBteSAkcGFyZW50ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxl
KCRkYXRhTm9kZS0+cGFyZW50cygwKSk7Ci0gICAgCisKICAgICAjIHNwZWNpYWwgY2FzZXMKICAg
ICBpZiAoJHBhcmVudCBlcSAiRXZlbnRUYXJnZXROb2RlIikgewogICAgICAgICAkcGFyZW50ID0g
Ik5vZGUiOwpAQCAtMzA2LDcgKzI3Nyw3IEBAIHN1YiBBZGRGb3J3YXJkRGVjbGFyYXRpb25zRm9y
VHlwZQogICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAk
dHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKCR0eXBlIGVxICJET01JbXBsZW1lbnRhdGlvbiIpIHsKICAgICAgICAgJGhlYWRlckZv
cndhcmREZWNsYXJhdGlvbnN7IiR0eXBlIn0gPSAxOwogICAgICAgICByZXR1cm47CkBAIC0zMTgs
NyArMjg5LDYgQEAgc3ViIEFkZEZvcndhcmREZWNsYXJhdGlvbnNGb3JUeXBlCiAgICAgfQogCiAg
ICAgaWYgKCR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7Ci0gICAgICAgICMgT25seSBvbmUg
cHJvdG9jb2wgc28gZmFyLgogICAgICAgICAkaGVhZGVyRm9yd2FyZERlY2xhcmF0aW9uc0ZvclBy
b3RvY29sc3siRE9NWFBhdGhOU1Jlc29sdmVyIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMzI5LDEwICsyOTksOCBAQCBzdWIgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGUK
IHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKIHsKICAgICBteSAkdHlwZSA9ICRjb2RlR2VuZXJhdG9y
LT5TdHJpcE1vZHVsZShzaGlmdCk7Ci0gICAgCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1By
aW1pdGl2ZVR5cGUoJHR5cGUpKSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisKKyAgICByZXR1
cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7CiAKICAgICBpZiAo
JHR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siUGxhdGZvcm1T
dHJpbmcuaCJ9ID0gMTsKQEAgLTM0MCwxOSArMzA4LDE5IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5
cGUKICAgICB9CiAKICAgICAjIFRlbXAgRE9NQ1NTLmgKLSAgICBpZiAoJHR5cGUgZXEgIkNvdW50
ZXIiCi0gICAgICAgICAgICBvciAkdHlwZSBlcSAiTWVkaWFMaXN0IgotICAgICAgICAgICAgb3Ig
JHR5cGUgZXEgIkNTU1N0eWxlU2hlZXQiKSB7CisgICAgaWYgKCR0eXBlIGVxICJDb3VudGVyIiBv
ciAkdHlwZSBlcSAiTWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTU3R5bGVTaGVldCIpIHsKICAg
ICAgICAgJGltcGxJbmNsdWRlc3siRE9NQ1NTLmgifSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVk
ZXN7IiR0eXBlLmgifSA9IDE7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBpZiAoJHR5
cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRP
TUNTUy5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwogICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIn0gPSAxOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorCiAgICAgaWYgKCR0eXBlIGVxICJSR0JDb2xvciIgb3Ig
JHR5cGUgZXEgIlJlY3QiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTUy5oIn0gPSAx
OwogICAgICAgICByZXR1cm47CkBAIC0zODAsNyArMzQ4LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9y
VHlwZQogICAgICAgICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIAorCiAgICAgIyBUZW1wIERPTVZpZXdzLmgKICAgICBpZiAoJHR5cGUg
ZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NVmlld3MuaCJ9ID0g
MTsKQEAgLTM4OCwxMSArMzU2LDkgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgICAk
aW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IAorCiAgICAgIyBUZW1wIERPTVhQYXRoLmgKLSAgICBpZiAoJHR5cGUgZXEgIlhQYXRoRXhwcmVz
c2lvbiIKLSAgICAgICAgICAgIG9yICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiCi0gICAgICAg
ICAgICBvciAkdHlwZSBlcSAiWFBhdGhSZXN1bHQiKSB7CisgICAgaWYgKCR0eXBlIGVxICJYUGF0
aEV4cHJlc3Npb24iIG9yICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiIG9yICR0eXBlIGVxICJY
UGF0aFJlc3VsdCIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NWFBhdGguaCJ9ID0gMTsK
ICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NWFBhdGhJbnRlcm5hbC5oIn0gPSAxOwogICAgICAg
ICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwpAQCAtNDA1LDcgKzM3MSw3IEBAIHN1YiBB
ZGRJbmNsdWRlc0ZvclR5cGUKICAgICB9CiAKICAgICAjIEFkZCB0eXBlIHNwZWNpZmljIGludGVy
bmFsIHR5cGVzLgotICAgICRpbXBsSW5jbHVkZXN7IkRPTUhUTUxJbnRlcm5hbC5oIn0gPSAxIGlm
ICgkdHlwZSA9fiAvXkhUTUwvKTsKKyAgICAkaW1wbEluY2x1ZGVzeyJET01IVE1MSW50ZXJuYWwu
aCJ9ID0gMSBpZiAkdHlwZSA9fiAvXkhUTUwvOwogCiAgICAgIyBEZWZhdWx0LCBpbmNsdWRlIHRo
ZSBzYW1lIG5hbWVkIGZpbGUgKHRoZSBpbXBsZW1lbnRhdGlvbikgYW5kIHRoZSBzYW1lIG5hbWUg
cHJlZml4ZWQgd2l0aCAiRE9NIi4gCiAgICAgJGltcGxJbmNsdWRlc3siJHR5cGUuaCJ9ID0gMTsK
QEAgLTQxOCw5ICszODQsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKIAogICAgICMgTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBtb3JlIHRoYW4g
b25lIHBhcmVudC4KLSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMSkgewotICAgICAg
ICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudC4iOwotICAgIH0K
KyAgICBkaWUgIkEgY2xhc3MgY2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCBpbiBPYmpD
LiIgaWYgQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMTsKIAogICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSBHZXRDbGFzc05hbWUoJGlu
dGVyZmFjZU5hbWUpOwpAQCAtNDM0LDE3ICszOTgsMTUgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgQGhlYWRlckNvbnRlbnRIZWFkZXIgPSBzcGxpdCgiXHIiLCAkaGVhZGVyTGljZW5jZVRlbXBs
YXRlKTsKIAogICAgICMgLSBJTkNMVURFUyAtCi0gICAgcHVzaChAaGVhZGVyQ29udGVudEhlYWRl
ciwgIlxuI2ltcG9ydCA8V2ViQ29yZS8kcGFyZW50Q2xhc3NOYW1lLmg+IC8vIHBhcmVudCBjbGFz
c1xuXG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jaW1wb3J0IDxXZWJD
b3JlLyRwYXJlbnRDbGFzc05hbWUuaD5cblxuIik7CiAKICAgICAjIC0gQWRkIGNvbnN0YW50cy4K
ICAgICBpZiAoJG51bUNvbnN0YW50cyA+IDApIHsKICAgICAgICAgbXkgQGhlYWRlckNvbnN0YW50
cyA9ICgpOwogICAgICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNvbnN0
YW50c30pIHsKLQogICAgICAgICAgICAgbXkgJGNvbnN0YW50TmFtZSA9ICRjb25zdGFudC0+bmFt
ZTsKICAgICAgICAgICAgIG15ICRjb25zdGFudFZhbHVlID0gJGNvbnN0YW50LT52YWx1ZTsKICAg
ICAgICAgICAgIG15ICRvdXRwdXQgPSAiICAgIERPTV8iIC4gJGNvbnN0YW50TmFtZSAuICIgPSAi
IC4gJGNvbnN0YW50VmFsdWU7Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnN0YW50cywgJG91dHB1dCk7CiAgICAgICAgIH0KIApAQCAtNDU1LDcgKzQxNyw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAkY29tYmluZWRD
b25zdGFudHMpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG59O1xuIik7ICAgICAg
ICAKICAgICB9Ci0gICAgCisKICAgICAjIC0gQmVnaW4gQGludGVyZmFjZSAKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiXEBpbnRlcmZhY2UgJGNsYXNzTmFtZSA6ICRwYXJlbnRDbGFzc05hbWVc
biIpOwogCkBAIC00NjUsNyArNDI3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAgICAg
Zm9yZWFjaCAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkYXR0
cmlidXRlID0gJF87Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xh
cmF0aW9uc0ZvclR5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAg
ICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CkBAIC00
ODAsMzAgKzQ0MiwyNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGVUeXBlID0gR2V0T2JqQ1R5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAg
ICAgICAgICAgIG15ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4g
L15yZWFkb25seS8pOwogCi0gICAgICAgICAgICBpZiAoJEVOVnsiTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUIn0gPj0gMTAuNSkgeworICAgICAgICAgICAgaWYgKCRFTlZ7Ik1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVCJ9IGFuZCAkRU5WeyJNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQifSA+PSAxMC41
KSB7CiAgICAgICAgICAgICAgICAgbXkgJHByb3BlcnR5ID0gIlxAcHJvcGVydHkiIC4gKCRhdHRy
aWJ1dGVJc1JlYWRvbmx5ID8gIihyZWFkb25seSkiIDogIiIpIC4gIiAiIC4gJGF0dHJpYnV0ZVR5
cGUgLiAoJGF0dHJpYnV0ZVR5cGUgPX4gL1wqJC8gPyAiIiA6ICIgIikgLiAkYXR0cmlidXRlTmFt
ZSAuICI7XG4iOwotCiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQXR0cmlidXRlcywgJHBy
b3BlcnR5KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIyAtIEdFVFRF
UgogICAgICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAiLSAoIiAuICRhdHRyaWJ1dGVUeXBlIC4g
IikiIC4gJGF0dHJpYnV0ZU5hbWUgLiAiO1xuIjsKLQogICAgICAgICAgICAgICAgIHB1c2goQGhl
YWRlckF0dHJpYnV0ZXMsICRnZXR0ZXIpOwogCiAgICAgICAgICAgICAgICAgIyAtIFNFVFRFUgog
ICAgICAgICAgICAgICAgIGlmICghJGF0dHJpYnV0ZUlzUmVhZG9ubHkpIHsKICAgICAgICAgICAg
ICAgICAgICAgbXkgJHNldHRlciA9ICItICh2b2lkKXNldCIgLiB1Y2ZpcnN0KCRhdHRyaWJ1dGVO
YW1lKSAuICI6KCIgLiAkYXR0cmlidXRlVHlwZSAuICIpbmV3IiAuIHVjZmlyc3QoJGF0dHJpYnV0
ZU5hbWUpIC4gIjtcbiI7Ci0gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJBdHRyaWJ1dGVzLCAkc2V0dGVyKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoQGhlYWRlckF0dHJpYnV0ZXMg
PiAwKSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBAaGVhZGVyQXR0cmlidXRl
cyk7Ci0gICAgICAgIH0KKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGhlYWRlckF0dHJp
YnV0ZXMpIGlmIEBoZWFkZXJBdHRyaWJ1dGVzID4gMDsKICAgICB9CiAKKyAgICBteSBAZGVwcmVj
YXRlZEhlYWRlckZ1bmN0aW9ucyA9ICgpOworCiAgICAgIyAtIEFkZCBmdW5jdGlvbnMuCiAgICAg
aWYgKCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIG15IEBoZWFkZXJGdW5jdGlvbnMgPSAo
KTsKQEAgLTUxNywxOSArNDc2LDM2IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAg
bXkgJHJldHVyblR5cGUgPSBHZXRPYmpDVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7
CiAgICAgICAgICAgICBteSAkbnVtYmVyT2ZQYXJhbWV0ZXJzID0gQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9OwogCi0gICAgICAgICAgICBteSAkb3V0cHV0ID0gIi0gKCRyZXR1cm5UeXBlKSRmdW5j
dGlvbk5hbWUiOworICAgICAgICAgICAgbXkgJHBhcmFtZXRlckluZGV4ID0gMDsKKyAgICAgICAg
ICAgIG15ICRmdW5jdGlvblNpZyA9ICItICgkcmV0dXJuVHlwZSkkZnVuY3Rpb25OYW1lIjsKICAg
ICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsK
ICAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwogICAgICAgICAg
ICAgICAgIG15ICRwYXJhbVR5cGUgPSBHZXRPYmpDVHlwZSgkcGFyYW0tPnR5cGUpOworCiAgICAg
ICAgICAgICAgICAgQWRkRm9yd2FyZERlY2xhcmF0aW9uc0ZvclR5cGUoJHBhcmFtLT50eXBlKTsK
IAotICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gIjooJHBhcmFtVHlwZSkkcGFyYW1OYW1lICI7
CisgICAgICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXJJbmRleCA+PSAxKSB7CisgICAgICAgICAg
ICAgICAgICAgIG15ICRwYXJhbVByZWZpeCA9ICRwYXJhbS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik9iakNQcmVmaXgifTsKKyAgICAgICAgICAgICAgICAgICAgJHBhcmFtUHJlZml4ID0gJHBhcmFt
TmFtZSB1bmxlc3MgZGVmaW5lZCgkcGFyYW1QcmVmaXgpOworICAgICAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25TaWcgLj0gIiAkcGFyYW1QcmVmaXgiOworICAgICAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiOigkcGFyYW1UeXBlKSRwYXJhbU5hbWUiOwor
CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlckluZGV4Kys7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiO1xuIjsKKworICAgICAgICAgICAgcHVzaChAaGVh
ZGVyRnVuY3Rpb25zLCAkZnVuY3Rpb25TaWcpOworCisgICAgICAgICAgICAjIGdlbmVyYXRlIHRo
ZSBvbGQgc3R5bGUgbWV0aG9kIG5hbWVzIHdpdGggdW4tbmFtZWQgcGFyYW1ldGVycywgdGhlc2Ug
bWV0aG9kcyBhcmUgZGVwcmVjYXRlZAorICAgICAgICAgICAgaWYgKEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfSA+IDEgYW5kICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiT2xkU3R5bGVPYmpDIn0pIHsKKyAgICAgICAgICAgICAgICBteSAkZGVwcmVjYXRlZEZ1bmN0
aW9uU2lnID0gJGZ1bmN0aW9uU2lnOworICAgICAgICAgICAgICAgICRkZXByZWNhdGVkRnVuY3Rp
b25TaWcgPX4gcy9cc1x3KzovIDovZzsgIyByZW1vdmUgcGFyYW1ldGVyIG5hbWVzCisgICAgICAg
ICAgICAgICAgJGRlcHJlY2F0ZWRGdW5jdGlvblNpZyA9fiBzLztcbiQvIERFUFJFQ0FURURfSU5f
TUFDX09TX1hfVkVSU0lPTl8xMF81X0FORF9MQVRFUjtcbi87CisgICAgICAgICAgICAgICAgcHVz
aChAZGVwcmVjYXRlZEhlYWRlckZ1bmN0aW9ucywgJGRlcHJlY2F0ZWRGdW5jdGlvblNpZyk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAjIHJlbW92ZSBhbnkgdHJhaWxpbmcgc3BhY2VzLgot
ICAgICAgICAgICAgJG91dHB1dCA9fiBzL1xzKyQvLzsKLSAgICAgICAgICAgICRvdXRwdXQgLj0g
IjtcbiI7Ci0gICAgCi0gICAgICAgICAgICBwdXNoKEBoZWFkZXJGdW5jdGlvbnMsICRvdXRwdXQp
OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKEBoZWFkZXJGdW5jdGlvbnMgPiAwKSB7CkBAIC01
NDAsNiArNTE2LDEzIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyAtIEVuZCBAaW50ZXJm
YWNlIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcQGVuZFxuIik7CisKKyAgICBpZiAoQGRl
cHJlY2F0ZWRIZWFkZXJGdW5jdGlvbnMgPiAwKSB7CisgICAgICAgICMgLSBEZXByZWNhdGVkIGNh
dGVnb3J5IEBpbnRlcmZhY2UgCisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcblxAaW50
ZXJmYWNlICRjbGFzc05hbWUgKCIgLiAkY2xhc3NOYW1lIC4gIkRlcHJlY2F0ZWQpXG4iKTsKKyAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgQGRlcHJlY2F0ZWRIZWFkZXJGdW5jdGlvbnMpOwor
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXEBlbmRcbiIpOworICAgIH0KIH0KIAogc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KQEAgLTU2Niw3ICs1NDksNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgIGlmICgkaGFzRnVuY3Rpb25zT3JBdHRyaWJ1dGVzKSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2ltcG9ydCBcIkRPTUludGVybmFsLmhcIlxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCAiI2ltcG9ydCA8d3RmL0dldFB0
ci5oPlxuIik7Ci0gICAgICAgIAorCiAgICAgICAgICMgaW5jbHVkZSBtb2R1bGUtZGVwZW5kZW50
IGludGVybmFsIGludGVyZmFjZXMuCiAgICAgICAgIGlmICgkbW9kdWxlIGVxICJodG1sIikgewog
ICAgICAgICAgICAgIyBIVE1MIG1vZHVsZSBpbnRlcm5hbCBpbnRlcmZhY2VzCkBAIC02NTIsMjAg
KzYzNSwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAjIC0g
R0VUVEVSCiAgICAgICAgICAgICBteSAkZ2V0dGVyU2lnID0gIi0gKCRhdHRyaWJ1dGVUeXBlKSRp
bnRlcmZhY2VOYW1lXG4iOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAjIEV4Y2VwdGlvbiBo
YW5kbGluZwogICAgICAgICAgICAgbXkgJGhhc0dldHRlckV4Y2VwdGlvbiA9IEB7JGF0dHJpYnV0
ZS0+Z2V0dGVyRXhjZXB0aW9uc307Ci0gICAgICAgICAgICBpZiAoJGhhc0dldHRlckV4Y2VwdGlv
bikgewotICAgICAgICAgICAgICAgIGRpZSAiV2Ugc2hvdWxkIG5vdCBoYXZlIGFueSBnZXR0ZXIg
ZXhjZXB0aW9ucyB5ZXQhIjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICAg
ICAgbXkgJGdldHRlckNvbnRlbnRIZWFkID0gIklNUEwtPiRhdHRyaWJ1dGVOYW1lKCI7CiAgICAg
ICAgICAgICBteSAkZ2V0dGVyQ29udGVudFRhaWwgPSAiKSI7CiAKICAgICAgICAgICAgIG15ICRh
dHRyaWJ1dGVUeXBlU2Fuc1B0ciA9ICRhdHRyaWJ1dGVUeXBlOwogICAgICAgICAgICAgJGF0dHJp
YnV0ZVR5cGVTYW5zUHRyID1+IHMvIFwqJC8vOyAjIFJlbW92ZSB0cmFpbGluZyAiICoiIGZyb20g
cG9pbnRlciB0eXBlcy4KICAgICAgICAgICAgIG15ICR0eXBlTWFrZXIgPSBHZXRPYmpDVHlwZU1h
a2VyKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7Ci0gICAgICAgICAgICAKKwogICAgICAg
ICAgICAgIyBTcGVjaWFsIGNhc2VzCiAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZVR5cGVTYW5z
UHRyIGVxICJET01JbXBsZW1lbnRhdGlvbiIpIHsKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBX
ZSBoYXZlIHRvIHNwZWNpYWwgY2FzZSBET01JbXBsZW1lbnRhdGlvbiB1bnRpbCBET01JbXBsZW1l
bnRhdGlvbkZyb250IGlzIHJlbW92ZWQKQEAgLTY4MCwxNCArNjU3LDE0IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRIZWFkID0gIlsk
YXR0cmlidXRlVHlwZVNhbnNQdHIgJHR5cGVNYWtlcjpXVEY6OmdldFB0cigiIC4gJGdldHRlckNv
bnRlbnRIZWFkOwogICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50VGFpbCAuPSAiKV0iOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCisKICAgICAgICAgICAgIG15ICRnZXR0ZXJDb250
ZW50OwogICAgICAgICAgICAgaWYgKCRoYXNHZXR0ZXJFeGNlcHRpb24pIHsKICAgICAgICAgICAg
ICAgICAkZ2V0dGVyQ29udGVudCA9ICRnZXR0ZXJDb250ZW50SGVhZCAuICJlYyIgLiAkZ2V0dGVy
Q29udGVudFRhaWw7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICRnZXR0
ZXJDb250ZW50ID0gJGdldHRlckNvbnRlbnRIZWFkIC4gJGdldHRlckNvbnRlbnRUYWlsOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCisKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAkZ2V0dGVyU2lnKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgICAgICBpZiAoJGhhc0dldHRlckV4Y2VwdGlvbikgewpAQCAtNzMwLDcgKzcwNyw2IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICRhcmcgPSAi
WyIgLiAkYXJnTmFtZSAuICIgXyIgLiBsY2ZpcnN0KCRpZGxUeXBlKSAuICJdIjsKICAgICAgICAg
ICAgICAgICB9CiAKLQogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJTaWcgPSAiLSAodm9pZCkk
c2V0dGVyTmFtZTooJGF0dHJpYnV0ZVR5cGUpJGFyZ05hbWVcbiI7CiAKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgJHNldHRlclNpZyk7CkBAIC03NTMsNiArNzI5LDggQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0KIAorICAgIG15IEBkZXBy
ZWNhdGVkRnVuY3Rpb25zID0gKCk7CisKICAgICAjIC0gRnVuY3Rpb25zCiAgICAgaWYgKCRudW1G
dW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIGZvcmVhY2ggKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
KSB7CkBAIC03NjksMTQgKzc0NywxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgbXkgQG5lZWRzQXNzZXJ0ID0gKCk7CiAgICAgICAgICAgICBteSAlY3VzdG9tID0g
KCk7CiAKKyAgICAgICAgICAgIG15ICRwYXJhbWV0ZXJJbmRleCA9IDA7CiAgICAgICAgICAgICBt
eSAkZnVuY3Rpb25TaWcgPSAiLSAoJHJldHVyblR5cGUpJGZ1bmN0aW9uTmFtZSI7CiAgICAgICAg
ICAgICBmb3JlYWNoIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKICAgICAgICAgICAgICAg
ICBteSAkcGFyYW0gPSAkXzsKLQorICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkcGFy
YW0tPm5hbWU7CiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtVHlwZSA9IEdldE9iakNUeXBlKCRw
YXJhbS0+dHlwZSk7Ci0gICAgICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRwYXJhbS0+
dHlwZSk7CiAKLSAgICAgICAgICAgICAgICBteSAkcGFyYW1OYW1lID0gJHBhcmFtLT5uYW1lOwor
ICAgICAgICAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkcGFyYW0tPnR5cGUpOwogCiAgICAg
ICAgICAgICAgICAgIyBGSVhNRTogc2hvdWxkIG1vdmUgdGhpcyBvdXQgaW50byBpdCdzIG93biBm
dWN0aW9uIHRvIHNoYXJlIHdpdGgKICAgICAgICAgICAgICAgICAjIHRoZSBzaW1pbGFyIHNldHRl
ciBwYXJhbWV0ZXIgY29kZSBhYm92ZS4KQEAgLTgwMiwxMyArNzgwLDI3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQG5lZWRzQXNzZXJ0LCAi
ICAgIEFTU0VSVCgkcGFyYW1OYW1lKTtcbiIpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgICAgICRmdW5jdGlvblNpZyAuPSAiOigkcGFyYW1UeXBlKSRwYXJhbU5hbWUgIjsKKyAg
ICAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlckluZGV4ID49IDEpIHsKKyAgICAgICAgICAgICAg
ICAgICAgbXkgJHBhcmFtUHJlZml4ID0gJHBhcmFtLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT2Jq
Q1ByZWZpeCJ9OworICAgICAgICAgICAgICAgICAgICAkcGFyYW1QcmVmaXggPSAkcGFyYW1OYW1l
IHVubGVzcyBkZWZpbmVkKCRwYXJhbVByZWZpeCk7CisgICAgICAgICAgICAgICAgICAgICRmdW5j
dGlvblNpZyAuPSAiICRwYXJhbVByZWZpeCI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICI6KCRwYXJhbVR5cGUpJHBhcmFtTmFtZSI7CisKKyAg
ICAgICAgICAgICAgICAkcGFyYW1ldGVySW5kZXgrKzsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICMgcmVtb3ZlIGFueSB0cmFpbGluZyBzcGFjZXMuCi0gICAgICAgICAgICAkZnVuY3Rpb25T
aWcgPX4gcy9ccyskLy87CiAKICAgICAgICAgICAgIG15IEBmdW5jdGlvbkNvbnRlbnQgPSAoKTsK
IAorICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgdGhlIFhQYXRoTlNSZXNvbHZlcgorICAgICAg
ICAgICAgaWYgKGRlZmluZWQgJG5lZWRzQ3VzdG9teyJYUGF0aE5TUmVzb2x2ZXIifSkgeworICAg
ICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUgPSAkbmVlZHNDdXN0b217IlhQYXRoTlNSZXNvbHZl
ciJ9OworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICBpZiAoJHBh
cmFtTmFtZSAmJiAhWyRwYXJhbU5hbWUgaXNNZW1iZXJPZkNsYXNzOltET01OYXRpdmVYUGF0aE5T
UmVzb2x2ZXIgY2xhc3NdXSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29u
dGVudCwgIiAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TR2VuZXJpY0V4Y2VwdGlvbiBmb3Jt
YXQ6XEBcImNyZWF0ZUV4cHJlc3Npb24gY3VycmVudGx5IGRvZXMgbm90IHdvcmsgd2l0aCBjdXN0
b20gTlMgcmVzb2x2ZXJzXCJdO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25D
b250ZW50LCAiICAgIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqbmF0aXZlUmVzb2x2ZXIgPSAo
RE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICopJHBhcmFtTmFtZTtcblxuIik7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIGlmICgkcmV0dXJuVHlwZSBlcSAidm9pZCIpIHsKICAgICAgICAg
ICAgICAgICAjIFNwZWNpYWwgY2FzZSAndm9pZCcgcmV0dXJuIHR5cGUuCiAgICAgICAgICAgICAg
ICAgbXkgJGZ1bmN0aW9uQ29udGVudEhlYWQgPSAiSU1QTC0+JGZ1bmN0aW9uTmFtZSgiOwpAQCAt
ODI5LDcgKzgyMSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAg
ICAgICAgICAgICAkY29udGVudCA9ICRmdW5jdGlvbkNvbnRlbnRIZWFkIC4gJGZ1bmN0aW9uQ29u
dGVudFRhaWw7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlvbnMpIHsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICRleGNlcHRp
b25Jbml0XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAi
ICAgICRjb250ZW50XG4iKTsKQEAgLTg3NCw3ICs4NjYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRlbnQgPSAkZnVuY3Rpb25Db250
ZW50SGVhZCAuICRmdW5jdGlvbkNvbnRlbnRUYWlsOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgaWYg
KCRyYWlzZXNFeGNlcHRpb25zKSB7CiAgICAgICAgICAgICAgICAgICAgICMgRGlmZmVyZW50aWF0
ZWQgYmV0d2VlbiB3aGVuIHRoZSByZXR1cm4gdHlwZSBpcyBhIHBvaW50ZXIgYW5kCiAgICAgICAg
ICAgICAgICAgICAgICMgbm90IGZvciB3aGl0ZSBzcGFjZSBpc3N1ZSAoaWUuIEZvbyAqcmVzdWx0
IHZzLiBpbnQgcmVzdWx0KS4KQEAgLTg4Myw3ICs4NzUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICAgICAgJGNvbnRlbnQgPSAkcmV0dXJuVHlwZSAuICIgcmVzdWx0ID0gIiAuICRjb250ZW50Owog
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9uSW5pdFxuIik7
CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkY29udGVu
dDtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAg
JGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIik7CkBAIC04OTUsMTggKzg4NywyMCBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRm
dW5jdGlvblNpZ1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwot
ICAgICAgICAgICAgCi0gICAgICAgICAgICAjIHNwZWNpYWwgY2FzZSB0aGUgWFBhdGhOU1Jlc29s
dmVyCi0gICAgICAgICAgICBpZiAoZGVmaW5lZCAkbmVlZHNDdXN0b217IlhQYXRoTlNSZXNvbHZl
ciJ9KSB7Ci0gICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRuZWVkc0N1c3RvbXsiWFBh
dGhOU1Jlc29sdmVyIn07Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKCRwYXJhbU5hbWUgJiYgIVskcGFyYW1OYW1lIGlzTWVtYmVyT2ZDbGFzczpbRE9NTmF0aXZl
WFBhdGhOU1Jlc29sdmVyIGNsYXNzXV0pXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TR2VuZXJpY0V4Y2VwdGlvbiBm
b3JtYXQ6XEBcImNyZWF0ZUV4cHJlc3Npb24gY3VycmVudGx5IGRvZXMgbm90IHdvcmsgd2l0aCBj
dXN0b20gTlMgcmVzb2x2ZXJzXCJdO1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICpuYXRpdmVSZXNvbHZlciA9IChE
T01OYXRpdmVYUGF0aE5TUmVzb2x2ZXIgKikkcGFyYW1OYW1lO1xuXG4iKTsKLSAgICAgICAgICAg
IH0KLQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEBmdW5jdGlvbkNvbnRlbnQpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwotICAgICAgICAgICAgCisK
KyAgICAgICAgICAgICMgZ2VuZXJhdGUgdGhlIG9sZCBzdHlsZSBtZXRob2QgbmFtZXMgd2l0aCB1
bi1uYW1lZCBwYXJhbWV0ZXJzLCB0aGVzZSBtZXRob2RzIGFyZSBkZXByZWNhdGVkCisgICAgICAg
ICAgICBpZiAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9ID4gMSBhbmQgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbGRTdHlsZU9iakMifSkgeworICAgICAgICAg
ICAgICAgIG15ICRkZXByZWNhdGVkRnVuY3Rpb25TaWcgPSAkZnVuY3Rpb25TaWc7CisgICAgICAg
ICAgICAgICAgJGRlcHJlY2F0ZWRGdW5jdGlvblNpZyA9fiBzL1xzXHcrOi8gOi9nOyAjIHJlbW92
ZSBwYXJhbWV0ZXIgbmFtZXMKKworICAgICAgICAgICAgICAgIHB1c2goQGRlcHJlY2F0ZWRGdW5j
dGlvbnMsICJcbiRkZXByZWNhdGVkRnVuY3Rpb25TaWdcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGRlcHJlY2F0ZWRGdW5jdGlvbnMsICJ7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBk
ZXByZWNhdGVkRnVuY3Rpb25zLCBAZnVuY3Rpb25Db250ZW50KTsKKyAgICAgICAgICAgICAgICBw
dXNoKEBkZXByZWNhdGVkRnVuY3Rpb25zLCAifVxuXG4iKTsKKyAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgIyBDbGVhciB0aGUgaGFzaAogICAgICAgICAgICAgJW5lZWRzQ3VzdG9tID0gKCk7
CiAgICAgICAgIH0KQEAgLTkxNCw2ICs5MDgsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgICMgRU5EIGltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJc
QGVuZFxuIik7CisKKyAgICBpZiAoQGRlcHJlY2F0ZWRGdW5jdGlvbnMgPiAwKSB7CisgICAgICAg
ICMgLSBEZXByZWNhdGVkIGNhdGVnb3J5IEBpbXBsZW1lbnRhdGlvbgorICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIlxuXEBpbXBsZW1lbnRhdGlvbiAkY2xhc3NOYW1lICgiIC4gJGNsYXNzTmFt
ZSAuICJEZXByZWNhdGVkKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBAZGVwcmVj
YXRlZEZ1bmN0aW9ucyk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXEBlbmRcbiIpOwor
ICAgIH0KIH0KIAogIyBJbnRlcm5hbCBoZWxwZXIKQEAgLTkyMiwyMSArOTIzLDE5IEBAIHN1YiBX
cml0ZURhdGEKICAgICBpZiAoZGVmaW5lZCgkSU1QTCkpIHsKICAgICAgICAgIyBXcml0ZSBjb250
ZW50IHRvIGZpbGUuCiAgICAgICAgIHByaW50ICRJTVBMIEBpbXBsQ29udGVudEhlYWRlcjsKLSAg
ICAgICAgCisKICAgICAgICAgbXkgJGluY2x1ZGVDb3VudCA9IDA7CiAgICAgICAgIGZvcmVhY2gg
bXkgJGltcGxJbmNsdWRlIChzb3J0IGtleXMoJWltcGxJbmNsdWRlcykpIHsKICAgICAgICAgICAg
IHByaW50ICRJTVBMICIjaW1wb3J0IFwiJGltcGxJbmNsdWRlXCJcbiI7CiAgICAgICAgICAgICAk
aW5jbHVkZUNvdW50Kys7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHVubGVzcyAoJGlu
Y2x1ZGVDb3VudCA9PSAwKSB7Ci0gICAgICAgICAgICBwcmludCAkSU1QTCAiXG4iOwotICAgICAg
ICB9CisKKyAgICAgICAgcHJpbnQgJElNUEwgIlxuIiBpZiAkaW5jbHVkZUNvdW50OwogCiAgICAg
ICAgIHByaW50ICRJTVBMIEBpbXBsQ29udGVudDsKICAgICAgICAgY2xvc2UoJElNUEwpOwogICAg
ICAgICB1bmRlZigkSU1QTCk7Ci0gICAgICAgIAorCiAgICAgICAgIEBpbXBsSGVhZGVyQ29udGVu
dCA9ICIiOwogICAgICAgICBAaW1wbENvbnRlbnQgPSAiIjsgICAgCiAgICAgICAgICVpbXBsSW5j
bHVkZXMgPSAoKTsKQEAgLTk0NSwyNiArOTQ0LDI0IEBAIHN1YiBXcml0ZURhdGEKICAgICBpZiAo
ZGVmaW5lZCgkSEVBREVSKSkgewogICAgICAgICAjIFdyaXRlIGNvbnRlbnQgdG8gZmlsZS4KICAg
ICAgICAgcHJpbnQgJEhFQURFUiBAaGVhZGVyQ29udGVudEhlYWRlcjsKLSAgICAgICAgCisKICAg
ICAgICAgbXkgJGZvcndhcmREZWNsYXJhdGlvbkNvdW50ID0gMDsKICAgICAgICAgZm9yZWFjaCBt
eSAkZm9yd2FyZENsYXNzRGVjbGFyYXRpb24gKHNvcnQga2V5cyglaGVhZGVyRm9yd2FyZERlY2xh
cmF0aW9ucykpIHsKICAgICAgICAgICAgIHByaW50ICRIRUFERVIgIlxAY2xhc3MgJGZvcndhcmRD
bGFzc0RlY2xhcmF0aW9uO1xuIjsKICAgICAgICAgICAgICRmb3J3YXJkRGVjbGFyYXRpb25Db3Vu
dCsrOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGZvcmVhY2ggbXkgJGZvcndhcmRQ
cm90b2NvbERlY2xhcmF0aW9uIChzb3J0IGtleXMoJWhlYWRlckZvcndhcmREZWNsYXJhdGlvbnNG
b3JQcm90b2NvbHMpKSB7CiAgICAgICAgICAgICBwcmludCAkSEVBREVSICJcQHByb3RvY29sICRm
b3J3YXJkUHJvdG9jb2xEZWNsYXJhdGlvbjtcbiI7CiAgICAgICAgICAgICAkZm9yd2FyZERlY2xh
cmF0aW9uQ291bnQrKzsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgdW5sZXNzICgkZm9y
d2FyZERlY2xhcmF0aW9uQ291bnQgPT0gMCkgewotICAgICAgICAgICAgcHJpbnQgJEhFQURFUiAi
XG4iOwotICAgICAgICB9CisKKyAgICAgICAgcHJpbnQgJEhFQURFUiAiXG4iIGlmICRmb3J3YXJk
RGVjbGFyYXRpb25Db3VudDsKIAogICAgICAgICBwcmludCAkSEVBREVSIEBoZWFkZXJDb250ZW50
OwogICAgICAgICBjbG9zZSgkSEVBREVSKTsKICAgICAgICAgdW5kZWYoJEhFQURFUik7Ci0gICAg
ICAgIAorCiAgICAgICAgIEBoZWFkZXJDb250ZW50SGVhZGVyID0gIiI7CiAgICAgICAgIEBoZWFk
ZXJDb250ZW50ID0gIiI7CiAgICAgICAgICVoZWFkZXJGb3J3YXJkRGVjbGFyYXRpb25zID0gKCk7
CkluZGV4OiBiaW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBi
aW5kaW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQkocmV2aXNpb24gMTYxNzcpCisrKyBiaW5k
aW5ncy9zY3JpcHRzL0lETFN0cnVjdHVyZS5wbQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTks
NyBAQCAkZXhjZXB0aW9uU2VsZWN0b3IgPSAnZXhjZXB0aW9uXHMqKCcgLiAkCiAkZXhjZXB0aW9u
U3ViU2VsZWN0b3IgPSAne1xzKicgLiAkc3VwcG9ydGVkVHlwZXMgLiAnXHMqKCcgLiAkaWRsVHlw
ZSAuICcqKVxzKjtccyp9JzsKIAogJGludGVyZmFjZVNlbGVjdG9yID0gJ2ludGVyZmFjZVxzKigo
PzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPykoJyAuICRpZGxJZE5zIC4gJyop
XHMqKD86OihccypbXntdKikpP3soW2EtekEtWjAtOV89XHMoKSw7OlxbXF1dKiknOwotJGludGVy
ZmFjZU1ldGhvZFNlbGVjdG9yID0gJ1xzKigoPzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4
IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKignIC4gJGlkbElkTnMgLiAnKilccypc
KFxzKihbYS16QS1aMC05OlxzLFxbXF1dKiknOworJGludGVyZmFjZU1ldGhvZFNlbGVjdG9yID0g
J1xzKigoPzonIC4gJGV4dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPyknIC4gJHN1cHBvcnRl
ZFR5cGVzIC4gJ1xzKignIC4gJGlkbElkTnMgLiAnKilccypcKFxzKihbYS16QS1aMC05OlxzLD1c
W1xdXSopJzsKICRpbnRlcmZhY2VQYXJhbWV0ZXJTZWxlY3RvciA9ICdpblxzKigoPzonIC4gJGV4
dGVuZGVkQXR0cmlidXRlU3ludGF4IC4gJyApPyknIC4gJHN1cHBvcnRlZFR5cGVzIC4gJ1xzKign
IC4gJGlkbElkTnMgLiAnKiknOwogCiAkaW50ZXJmYWNlQXR0cmlidXRlU2VsZWN0b3IgPSAnXHMq
KHJlYWRvbmx5IGF0dHJpYnV0ZXxhdHRyaWJ1dGUpXHMqKCcgLiAkZXh0ZW5kZWRBdHRyaWJ1dGVT
eW50YXggLiAnICk/JyAuICRzdXBwb3J0ZWRUeXBlcyAuICdccyooJyAuICRpZGxUeXBlIC4gJyop
JzsKSW5kZXg6IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBjc3MvQ1NTUHJpbWl0aXZl
VmFsdWUuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMSArNTEsMTEgQEAgbW9kdWxlIGNzcyB7
CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHByaW1pdGl2ZVR5
cGU7CiAKLSAgICAgICAgdm9pZCBzZXRGbG9hdFZhbHVlKGluIHVuc2lnbmVkIHNob3J0IHVuaXRU
eXBlLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNldEZsb2F0VmFsdWUoaW4gdW5zaWdu
ZWQgc2hvcnQgdW5pdFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBmbG9hdCBm
bG9hdFZhbHVlKQogICAgICAgICAgICAgcmFpc2VzKGRvbTo6RE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgZmxvYXQgZ2V0RmxvYXRWYWx1ZShpbiB1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSk7Ci0gICAg
ICAgIHZvaWQgc2V0U3RyaW5nVmFsdWUoaW4gdW5zaWduZWQgc2hvcnQgc3RyaW5nVHlwZSwgCisg
ICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0U3RyaW5nVmFsdWUoaW4gdW5zaWduZWQgc2hv
cnQgc3RyaW5nVHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5n
IHN0cmluZ1ZhbHVlKQogICAgICAgICAgICAgcmFpc2VzKGRvbTo6RE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgRE9NU3RyaW5nIGdldFN0cmluZ1ZhbHVlKCk7CkluZGV4OiBkb20vQ2hhcmFjdGVyRGF0
YS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gZG9tL0NoYXJhY3RlckRhdGEuaWRsCShyZXZpc2lvbiAxNjE3
NykKKysrIGRvbS9DaGFyYWN0ZXJEYXRhLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjQgKzI2
LDI0IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7CiAgICAgICAgIAotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1O
dWxsXSBET01TdHJpbmcgc3Vic3RyaW5nRGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBv
ZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBjb3VudCkKKyAgICAgICAgW0Nv
bnZlcnROdWxsU3RyaW5nVG89TnVsbCwgT2xkU3R5bGVPYmpDXSBET01TdHJpbmcgc3Vic3RyaW5n
RGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleF0g
dW5zaWduZWQgbG9uZyBsZW5ndGgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICB2b2lkIGFwcGVuZERhdGEoaW4gRE9NU3RyaW5nIGFyZykKKyAgICAgICAgdm9p
ZCBhcHBlbmREYXRhKGluIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSAgICAgICAgdm9pZCBpbnNlcnREYXRhKGluIFtJc0luZGV4XSB1bnNpZ25l
ZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgYXJn
KQorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIGluc2VydERhdGEoaW4gW0lzSW5kZXhdIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmlu
ZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgdm9p
ZCBkZWxldGVEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBjb3VudCkKKyAgICAg
ICAgW09sZFN0eWxlT2JqQ10gdm9pZCBkZWxldGVEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBs
b25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWdu
ZWQgbG9uZyBsZW5ndGgpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAg
ICAgICB2b2lkIHJlcGxhY2VEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgY291
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGFyZykKKyAgICAgICAg
W09sZFN0eWxlT2JqQ10gdm9pZCByZXBsYWNlRGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9u
ZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4XSB1bnNpZ25l
ZCBsb25nIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgZGF0
YSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIAogICAgIH07CkluZGV4
OiBkb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9ET01JbXBsZW1l
bnRhdGlvbi5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysgZG9tL0RPTUltcGxlbWVudGF0aW9uLmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMjQsMjQgKzI0LDI0IEBAIG1vZHVsZSBjb3JlIHsKIAogICAg
ICAgICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAgIGJvb2xlYW4gaGFzRmVhdHVyZShpbiBET01T
dHJpbmcgZmVhdHVyZSwgCisgICAgICAgIFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaGFzRmVhdHVy
ZShpbiBET01TdHJpbmcgZmVhdHVyZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2ZXJzaW9uKTsKIAogICAgICAgICAv
LyBET00gTGV2ZWwgMgogCi0gICAgICAgIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUo
aW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCisgICAgICAgIFtPbGRTdHlsZU9iakNdIERvY3Vt
ZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUoaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01TdHJpbmcgcHVibGljSWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgc3lzdGVtSWQpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnQo
aW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKKyAg
ICAgICAgW09sZFN0eWxlT2JqQ10gRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnQoaW4gW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29udmVydE51bGxUb051bGxT
dHJpbmddIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERv
Y3VtZW50VHlwZSBkb2N0eXBlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
ICAgICAgICAgLy8gRE9NSW1wbGVtZW50YXRpb25DU1MgaW50ZXJmYWNlIGZyb20gRE9NIExldmVs
IDIgQ1NTCiAKLSAgICAgICAgQ1NTU3R5bGVTaGVldCBjcmVhdGVDU1NTdHlsZVNoZWV0KGluIERP
TVN0cmluZyB0aXRsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgbWVkaWEpCisgICAgICAgIFtPbGRTdHlsZU9iakNdIENTU1N0eWxlU2hlZXQgY3Jl
YXRlQ1NTU3R5bGVTaGVldChpbiBET01TdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbWVkaWEpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBIVE1MRE9NSW1wbGVtZW50YXRpb24g
aW50ZXJmYWNlIGZyb20gRE9NIExldmVsIDIgSFRNTApJbmRleDogZG9tL0RvY3VtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBkb20vRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGRvbS9E
b2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICBDREFUQVNlY3Rpb24gY3JlYXRlQ0RBVEFTZWN0aW9uKGluIERPTVN0cmluZyBk
YXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIAotICAgICAg
ICBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGluIERP
TVN0cmluZyB0YXJnZXQsIAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0aW9uKGluIERPTVN0cmluZyB0YXJnZXQsIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIApAQCAtNTYsMTkgKzU2LDE5IEBAIG1vZHVsZSBjb3Jl
IHsKICAgICAgICAgCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIENvcmUKICAgICAgICAgCi0gICAg
ICAgIE5vZGUgaW1wb3J0Tm9kZShpbiBOb2RlIGltcG9ydGVkTm9kZSwKKyAgICAgICAgW09sZFN0
eWxlT2JqQ10gTm9kZSBpbXBvcnROb2RlKGluIE5vZGUgaW1wb3J0ZWROb2RlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGRlZXApCiAgICAgICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIAotICAgICAgICBFbGVtZW50IGNy
ZWF0ZUVsZW1lbnROUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAgICAgICBbT2xkU3R5
bGVPYmpDXSBFbGVtZW50IGNyZWF0ZUVsZW1lbnROUyhpbiBET01TdHJpbmcgbmFtZXNwYWNlVVJJ
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERP
TVN0cmluZyBxdWFsaWZpZWROYW1lKQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICAKLSAgICAgICAgQXR0ciBjcmVhdGVBdHRyaWJ1dGVOUyhpbiBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBBdHRyIGNyZWF0ZUF0dHJpYnV0
ZU5TKGluIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSkKICAgICAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgCi0gICAgICAgIE5vZGVMaXN0
IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAg
ICAgW09sZFN0eWxlT2JqQ10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBET01T
dHJpbmcgbmFtZXNwYWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAgICAgICAgIAog
ICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkKGluIERPTVN0cmluZyBlbGVtZW50SWQpOwpA
QCAtMTA2LDggKzEwNiw4IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwg
MiBTdHlsZSAoRG9jdW1lbnRDU1MgaW50ZXJmYWNlKQogCi0gICAgICAgIENTU1N0eWxlRGVjbGFy
YXRpb24gZ2V0T3ZlcnJpZGVTdHlsZShpbiBFbGVtZW50IGVsdCwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcHNldWRvRWx0KTsKKyAg
ICAgICAgW09sZFN0eWxlT2JqQ10gQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRPdmVycmlkZVN0eWxl
KGluIEVsZW1lbnQgZWxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBET01TdHJpbmcgcHNldWRvRWxlbWVudCk7CiAKICAgICAgICAgLy8gRE9N
IExldmVsIDMgQ29yZQogCkBAIC0xMTgsMTMgKzExOCwxMyBAQCBtb2R1bGUgY29yZSB7CiAKICNp
ZmRlZiBYUEFUSF9TVVBQT1JUCiAgICAgICAgIC8vIERPTSBMZXZlbCAzIFhQYXRoIChYUGF0aEV2
YWx1YXRvciBpbnRlcmZhY2UpCi0gICAgICAgIFhQYXRoRXhwcmVzc2lvbiBjcmVhdGVFeHByZXNz
aW9uKGluIERPTVN0cmluZyBleHByZXNzaW9uLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBYUGF0
aEV4cHJlc3Npb24gY3JlYXRlRXhwcmVzc2lvbihpbiBET01TdHJpbmcgZXhwcmVzc2lvbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gWFBhdGhOU1Jlc29sdmVy
IHJlc29sdmVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAg
WFBhdGhOU1Jlc29sdmVyIGNyZWF0ZU5TUmVzb2x2ZXIoaW4gTm9kZSBub2RlUmVzb2x2ZXIpOwog
ICAgICAgICAKLSAgICAgICAgWFBhdGhSZXN1bHQgZXZhbHVhdGUoaW4gRE9NU3RyaW5nIGV4cHJl
c3Npb24sCisgICAgICAgIFtPbGRTdHlsZU9iakNdIFhQYXRoUmVzdWx0IGV2YWx1YXRlKGluIERP
TVN0cmluZyBleHByZXNzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBOb2Rl
IGNvbnRleHROb2RlLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gWFBhdGhOU1Jl
c29sdmVyIHJlc29sdmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25l
ZCBzaG9ydCB0eXBlLApJbmRleDogZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9F
bGVtZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBkb20vRWxlbWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDcgKzI4LDcgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5h
bWUpOwogCi0gICAgICAgIHZvaWQgc2V0QXR0cmlidXRlKGluIERPTVN0cmluZyBuYW1lLAorICAg
ICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNldEF0dHJpYnV0ZShpbiBET01TdHJpbmcgbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHZhbHVlKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKQEAgLTQ3LDIyICs0NywyMiBAQCBtb2R1bGUgY29y
ZSB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIgQ29yZQogCi0gICAgICAgIERPTVN0cmluZyBn
ZXRBdHRyaWJ1dGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCisgICAgICAgIFtPbGRTdHlsZU9iakNdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGVO
UyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsK
IAotICAgICAgICB2b2lkIHNldEF0dHJpYnV0ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBz
ZXRBdHRyaWJ1dGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHF1YWxp
ZmllZE5hbWUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyB2YWx1
ZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgcmVt
b3ZlQXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5T
KGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxl
bWVudHNCeVRhZ05hbWVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBu
YW1lc3BhY2VVUkksCisgICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGVMaXN0IGdldEVsZW1lbnRz
QnlUYWdOYW1lTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSk7CiAKLSAgICAgICAgQXR0ciBnZXRBdHRy
aWJ1dGVOb2RlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhp
biBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5n
IGxvY2FsTmFtZSk7CiAKICAgICAgICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlTlMoaW4gQXR0ciBu
ZXdBdHRyKQpAQCAtNzAsNyArNzAsNyBAQCBtb2R1bGUgY29yZSB7CiAKICAgICAgICAgYm9vbGVh
biBoYXNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5hbWUpOwogCi0gICAgICAgIGJvb2xlYW4gaGFz
QXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNw
YWNlVVJJLAorICAgICAgICBbT2xkU3R5bGVPYmpDXSBib29sZWFuIGhhc0F0dHJpYnV0ZU5TKGlu
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJhdGlvbiBzdHlsZTsKQEAgLTEw
OCw3ICsxMDgsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIElFIGV4dGVuc2lvbnMKIAog
ICAgICAgICBbRXhjbHVkZT1PYmpDXSBOb2RlIGluc2VydEFkamFjZW50RWxlbWVudChpbiBET01T
dHJpbmcgcG9zaXRpb24sIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBOb2RlIG5ld0VsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIE5vZGUgZWxlbWVudCkKICAgICAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIFtFeGNsdWRlPU9iakNdIGJvb2xlYW4gY29u
dGFpbnMoaW4gRWxlbWVudCBlbGVtZW50KTsKSW5kZXg6IGRvbS9LZXlib2FyZEV2ZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBkb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysg
ZG9tL0tleWJvYXJkRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjksMTcgQEAg
bW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgIHNoaWZ0S2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
ICBhbHRHcmFwaEtleTsKIAotICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2ZW50KGluIEF0b21p
Y1N0cmluZyB0eXBlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29s
ZWFuIGNhbkJ1YmJsZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9v
bGVhbiBjYW5jZWxhYmxlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01XaW5kb3cgdmlld0FyZywgCisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgaW5pdEtleWJv
YXJkRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIERPTVdpbmRvdyB2aWV3LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01TdHJpbmcga2V5SWRlbnRpZmllciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiB1bnNpZ25lZCBsb25nIGtleUxvY2F0aW9uQXJnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGJvb2xlYW4gY3RybEtleUFyZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBib29sZWFuIGFsdEtleUFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIHNoaWZ0S2V5QXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIGJvb2xlYW4gbWV0YUtleUFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBib29sZWFuIGFsdEdyYXBoS2V5QXJnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiB1bnNpZ25lZCBsb25nIGtleUxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIGFsdEtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIHNoaWZ0S2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gbWV0YUtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFu
IGFsdEdyYXBoS2V5KTsKICAgICB9OwogCiB9CkluZGV4OiBkb20vTW91c2VFdmVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gZG9tL01vdXNlRXZlbnQuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGRvbS9N
b3VzZUV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzgsMjEgKzM4LDIxIEBAIG1vZHVsZSBl
dmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICBmcm9t
RWxlbWVudDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgICAgICAgICAgICAgdG9F
bGVtZW50OwogICAgICAgICAKLSAgICAgICAgdm9pZCAgICAgICAgICAgICAgIGluaXRNb3VzZUV2
ZW50KGluIEF0b21pY1N0cmluZyB0eXBlQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01XaW5kb3cgdmll
d0FyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25n
IGRldGFpbEFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBsb25nIHNjcmVlblhBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gbG9uZyBzY3JlZW5ZQXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIGxvbmcgY2xpZW50WEFyZywgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFlBcmcsIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjdHJsS2V5QXJnLCAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gYWx0S2V5QXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
c2hpZnRLZXlBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBtZXRhS2V5QXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIHVuc2lnbmVkIHNob3J0IGJ1dHRvbkFyZywgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBFdmVudFRhcmdldCByZWxhdGVkVGFyZ2V0QXJn
KTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbml0TW91c2VFdmVudChpbiBBdG9taWNT
dHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBkZXRhaWwsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5YLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc2NyZWVuWSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFgsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBjbGllbnRZLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY3Ry
bEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29s
ZWFuIGFsdEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBib29sZWFuIHNoaWZ0S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gbWV0YUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBzaG9ydCBidXR0b24sIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRXZlbnRUYXJnZXQgcmVsYXRlZFRhcmdldCk7
CiAgICAgfTsKIAogfQpJbmRleDogZG9tL011dGF0aW9uRXZlbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGRvbS9NdXRhdGlvbkV2ZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBkb20vTXV0YXRpb25F
dmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywxNCBAQCBtb2R1bGUgZXZlbnRz
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgIGF0dHJOYW1lOwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgYXR0ckNoYW5nZTsKIAot
ICAgICAgICB2b2lkIGluaXRNdXRhdGlvbkV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBlQXJnLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBOb2RlIHJlbGF0ZWROb2RlQXJn
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcHJldlZhbHVl
QXJnLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbmV3VmFs
dWVBcmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBhdHRy
TmFtZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgc2hv
cnQgYXR0ckNoYW5nZUFyZyk7CisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgaW5pdE11dGF0
aW9uRXZlbnQoaW4gQXRvbWljU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIGNhbmNlbGFibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIE5vZGUgcmVsYXRlZE5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIERPTVN0cmluZyBwcmV2VmFsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIERPTVN0cmluZyBuZXdWYWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gRE9NU3RyaW5nIGF0dHJOYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biB1bnNpZ25lZCBzaG9ydCBhdHRyQ2hhbmdlKTsKIAogICAgIH07CiAKSW5kZXg6IGRvbS9OYW1l
ZE5vZGVNYXAuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9OYW1lZE5vZGVNYXAuaWRsCShyZXZpc2lv
biAxNjE3NykKKysrIGRvbS9OYW1lZE5vZGVNYXAuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3
ICszNiw3IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBM
ZXZlbCAyOgogCi0gICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtTlMoaW4gRE9NU3RyaW5nIG5hbWVz
cGFjZVVSSSwgCisgICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGUgZ2V0TmFtZWRJdGVtTlMoaW4g
RE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKQogICAgICAgICAgICAgLy8gRklY
TUU6IHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIHRha2UgYW4gZXhjZXB0aW9uY29kZSBwYXJhbWV0
ZXIuCiAgICAgICAgICAgICAvKnJhaXNlcyhET01FeGNlcHRpb24pKi87CkBAIC00NCw3ICs0NCw3
IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZSBzZXROYW1lZEl0ZW1OUyhpbiBOb2RlIGFy
ZykKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIE5vZGUgcmVt
b3ZlTmFtZWRJdGVtTlMoaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCisgICAgICAgIFtPbGRT
dHlsZU9iakNdIE5vZGUgcmVtb3ZlTmFtZWRJdGVtTlMoaW4gRE9NU3RyaW5nIG5hbWVzcGFjZVVS
SSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgbG9jYWxOYW1lKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
SW5kZXg6IGRvbS9VSUV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vVUlFdmVudC5pZGwJKHJl
dmlzaW9uIDE2MTc3KQorKysgZG9tL1VJRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwx
MSArMzQsMTEgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nICAgICAgICAgICAgICAgICBwYWdlWTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgICAgICAgICAgICAgICAgIHdoaWNoOwogICAgICAgICAKLSAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIGluaXRVSUV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBlQXJnLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLCAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJs
ZUFyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01XaW5k
b3cgdmlld0FyZywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBs
b25nIGRldGFpbEFyZyk7CisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgaW5pdFVJRXZlbnQo
aW4gQXRvbWljU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWlsKTsKICAgICB9OwogCiB9CkluZGV4
OiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxDYW52
YXNFbGVtZW50LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBodG1sL0hUTUxDYW52YXNFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBsb25nIHdpZHRoOwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBoZWlnaHQ7
CiAKLSAgICAgICAgRE9NT2JqZWN0IGdldENvbnRleHQoaW4gRE9NU3RyaW5nIGNvbnRleHRJRCk7
CisgICAgICAgIERPTU9iamVjdCBnZXRDb250ZXh0KGluIERPTVN0cmluZyBjb250ZXh0SWQpOwog
CiAgICAgfTsKIApJbmRleDogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysgaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgIHNp
emU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgdGFiSW5kZXg7
CiAgICAgICAgIAotICAgICAgICB2b2lkICAgICAgICAgICAgICAgYWRkKGluIEhUTUxFbGVtZW50
IGVsZW1lbnQsIAorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIGFkZChpbiBIVE1MRWxlbWVu
dCBlbGVtZW50LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBIVE1MRWxlbWVu
dCBiZWZvcmUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9p
ZCAgICAgICAgICAgICAgIHJlbW92ZShpbiBsb25nIGluZGV4KTsKSW5kZXg6IGtzdmcyL2JpbmRp
bmdzL2lkbC9zdmcvU1ZHTGVuZ3RoTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGlu
Z3MvaWRsL3N2Zy9TVkdMZW5ndGhMaXN0LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBrc3ZnMi9i
aW5kaW5ncy9pZGwvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwx
NyArMjksMTcgQEAgbW9kdWxlIHN2ZwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIG51bWJlck9mSXRlbXM7CiAgICAgdm9pZCAgIGNsZWFyICggICkKICAgICAgICAgICAgICAg
ICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdMZW5ndGggaW5pdGlhbGl6ZSAo
IGluIFNWR0xlbmd0aCBuZXdJdGVtICkKKyAgICBTVkdMZW5ndGggaW5pdGlhbGl6ZSAoIGluIFNW
R0xlbmd0aCBpdGVtICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24s
IFNWR0V4Y2VwdGlvbiApOwogICAgIFNWR0xlbmd0aCBnZXRJdGVtICggaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7Ci0g
ICAgU1ZHTGVuZ3RoIGluc2VydEl0ZW1CZWZvcmUgKCBpbiBTVkdMZW5ndGggbmV3SXRlbSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCApCisgICAgU1ZHTGVuZ3RoIGluc2VydEl0ZW1CZWZvcmUgKCBp
biBTVkdMZW5ndGggaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKLSAgICBTVkdMZW5n
dGggcmVwbGFjZUl0ZW0gKCBpbiBTVkdMZW5ndGggbmV3SXRlbSwgaW4gdW5zaWduZWQgbG9uZyBp
bmRleCApCisgICAgU1ZHTGVuZ3RoIHJlcGxhY2VJdGVtICggaW4gU1ZHTGVuZ3RoIGl0ZW0sIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4
Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgICAgU1ZHTGVuZ3RoIHJlbW92ZUl0ZW0gKCBpbiB1
bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNl
cHRpb24gKTsKLSAgICBTVkdMZW5ndGggYXBwZW5kSXRlbSAoIGluIFNWR0xlbmd0aCBuZXdJdGVt
ICkKKyAgICBTVkdMZW5ndGggYXBwZW5kSXRlbSAoIGluIFNWR0xlbmd0aCBpdGVtICkKICAgICAg
ICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICB9
OwogfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHTnVtYmVyTGlzdC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdOdW1iZXJMaXN0LmlkbAkocmV2
aXNpb24gMTYxNzcpCisrKyBrc3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR051bWJlckxpc3QuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjksMTcgQEAgbW9kdWxlIHN2ZwogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9mSXRlbXM7CiAgICAgdm9pZCAgIGNs
ZWFyICggICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAg
ICBTVkdOdW1iZXIgaW5pdGlhbGl6ZSAoIGluIFNWR051bWJlciBuZXdJdGVtICkKKyAgICBTVkdO
dW1iZXIgaW5pdGlhbGl6ZSAoIGluIFNWR051bWJlciBpdGVtICkKICAgICAgICAgICAgICAgICAg
ICAgcmFpc2VzKCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICAgIFNWR051bWJlciBn
ZXRJdGVtICggaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJh
aXNlcyggRE9NRXhjZXB0aW9uICk7Ci0gICAgU1ZHTnVtYmVyIGluc2VydEl0ZW1CZWZvcmUgKCBp
biBTVkdOdW1iZXIgbmV3SXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCisgICAgU1ZHTnVt
YmVyIGluc2VydEl0ZW1CZWZvcmUgKCBpbiBTVkdOdW1iZXIgaXRlbSwgaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdF
eGNlcHRpb24gKTsKLSAgICBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0gKCBpbiBTVkdOdW1iZXIgbmV3
SXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCisgICAgU1ZHTnVtYmVyIHJlcGxhY2VJdGVt
ICggaW4gU1ZHTnVtYmVyIGl0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAg
ICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgICAgU1ZH
TnVtYmVyIHJlbW92ZUl0ZW0gKCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAg
ICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdOdW1iZXIgYXBwZW5kSXRl
bSAoIGluIFNWR051bWJlciBuZXdJdGVtICkKKyAgICBTVkdOdW1iZXIgYXBwZW5kSXRlbSAoIGlu
IFNWR051bWJlciBpdGVtICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRp
b24sIFNWR0V4Y2VwdGlvbiApOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lkbC9z
dmcvU1ZHUG9pbnRMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9iaW5kaW5ncy9pZGwvc3Zn
L1NWR1BvaW50TGlzdC5pZGwJKHJldmlzaW9uIDE2MTc3KQorKysga3N2ZzIvYmluZGluZ3MvaWRs
L3N2Zy9TVkdQb2ludExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjksMTcgQEAg
bW9kdWxlIHN2ZwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51bWJlck9m
SXRlbXM7CiAgICAgdm9pZCAgIGNsZWFyICggICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2Vz
KCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdQb2ludCBpbml0aWFsaXplICggaW4gU1ZHUG9pbnQg
bmV3SXRlbSApCisgICAgU1ZHUG9pbnQgaW5pdGlhbGl6ZSAoIGluIFNWR1BvaW50IGl0ZW0gKQog
ICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7
CiAgICAgU1ZHUG9pbnQgZ2V0SXRlbSAoIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAg
ICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR1BvaW50IGluc2Vy
dEl0ZW1CZWZvcmUgKCBpbiBTVkdQb2ludCBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4
ICkKKyAgICBTVkdQb2ludCBpbnNlcnRJdGVtQmVmb3JlICggaW4gU1ZHUG9pbnQgaXRlbSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhj
ZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKLSAgICBTVkdQb2ludCByZXBsYWNlSXRlbSAoIGluIFNW
R1BvaW50IG5ld0l0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5kZXggKQorICAgIFNWR1BvaW50IHJl
cGxhY2VJdGVtICggaW4gU1ZHUG9pbnQgaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAg
ICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsK
ICAgICBTVkdQb2ludCByZW1vdmVJdGVtICggaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAg
ICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7Ci0gICAgU1ZHUG9pbnQgYXBw
ZW5kSXRlbSAoIGluIFNWR1BvaW50IG5ld0l0ZW0gKQorICAgIFNWR1BvaW50IGFwcGVuZEl0ZW0g
KCBpbiBTVkdQb2ludCBpdGVtICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNl
cHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdzL2lk
bC9zdmcvU1ZHU3RyaW5nTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2ZzIvYmluZGluZ3MvaWRs
L3N2Zy9TVkdTdHJpbmdMaXN0LmlkbAkocmV2aXNpb24gMTYxNzcpCisrKyBrc3ZnMi9iaW5kaW5n
cy9pZGwvc3ZnL1NWR1N0cmluZ0xpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjks
MTcgQEAgbW9kdWxlIHN2ZwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIG51
bWJlck9mSXRlbXM7CiAgICAgdm9pZCAgIGNsZWFyICggICkKICAgICAgICAgICAgICAgICAgICAg
cmFpc2VzKCBjb3JlOjpET01FeGNlcHRpb24gKTsKLSAgICBjb3JlOjpET01TdHJpbmcgaW5pdGlh
bGl6ZSAoIGluIGNvcmU6OkRPTVN0cmluZyBuZXdJdGVtICkKKyAgICBjb3JlOjpET01TdHJpbmcg
aW5pdGlhbGl6ZSAoIGluIGNvcmU6OkRPTVN0cmluZyBpdGVtICkKICAgICAgICAgICAgICAgICAg
ICAgcmFpc2VzKCBjb3JlOjpET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICAgIGNvcmU6
OkRPTVN0cmluZyBnZXRJdGVtICggaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAg
ICAgICAgICAgIHJhaXNlcyggY29yZTo6RE9NRXhjZXB0aW9uICk7Ci0gICAgY29yZTo6RE9NU3Ry
aW5nIGluc2VydEl0ZW1CZWZvcmUgKCBpbiBjb3JlOjpET01TdHJpbmcgbmV3SXRlbSwgaW4gdW5z
aWduZWQgbG9uZyBpbmRleCApCisgICAgY29yZTo6RE9NU3RyaW5nIGluc2VydEl0ZW1CZWZvcmUg
KCBpbiBjb3JlOjpET01TdHJpbmcgaXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAg
ICAgICAgICAgICAgICAgIHJhaXNlcyggY29yZTo6RE9NRXhjZXB0aW9uLCBTVkdFeGNlcHRpb24g
KTsKLSAgICBjb3JlOjpET01TdHJpbmcgcmVwbGFjZUl0ZW0gKCBpbiBjb3JlOjpET01TdHJpbmcg
bmV3SXRlbSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCApCisgICAgY29yZTo6RE9NU3RyaW5nIHJl
cGxhY2VJdGVtICggaW4gY29yZTo6RE9NU3RyaW5nIGl0ZW0sIGluIHVuc2lnbmVkIGxvbmcgaW5k
ZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIGNvcmU6OkRPTUV4Y2VwdGlvbiwgU1ZH
RXhjZXB0aW9uICk7CiAgICAgY29yZTo6RE9NU3RyaW5nIHJlbW92ZUl0ZW0gKCBpbiB1bnNpZ25l
ZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBjb3JlOjpET01FeGNl
cHRpb24gKTsKLSAgICBjb3JlOjpET01TdHJpbmcgYXBwZW5kSXRlbSAoIGluIGNvcmU6OkRPTVN0
cmluZyBuZXdJdGVtICkKKyAgICBjb3JlOjpET01TdHJpbmcgYXBwZW5kSXRlbSAoIGluIGNvcmU6
OkRPTVN0cmluZyBpdGVtICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBjb3JlOjpET01F
eGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwogICB9OwogfTsKSW5kZXg6IGtzdmcyL2JpbmRpbmdz
L2lkbC9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrc3ZnMi9i
aW5kaW5ncy9pZGwvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5pZGwJKHJldmlzaW9uIDE2MTc3
KQorKysga3N2ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zOSwxOCArMzksMTggQEAgbW9kdWxlIHN2ZwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGxlbmd0aEFkanVzdDsKICAgICBsb25n
ICAgICBnZXROdW1iZXJPZkNoYXJzICggICk7CiAgICAgZmxvYXQgICAgZ2V0Q29tcHV0ZWRUZXh0
TGVuZ3RoICggICk7Ci0gICAgZmxvYXQgICAgZ2V0U3ViU3RyaW5nTGVuZ3RoICggaW4gdW5zaWdu
ZWQgbG9uZyBjaGFybnVtLCBpbiB1bnNpZ25lZCBsb25nIG5jaGFycyApCisgICAgZmxvYXQgICAg
Z2V0U3ViU3RyaW5nTGVuZ3RoICggaW4gdW5zaWduZWQgbG9uZyBvZmZzZXQsIGluIHVuc2lnbmVk
IGxvbmcgbGVuZ3RoICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24g
KTsKLSAgICBTVkdQb2ludCBnZXRTdGFydFBvc2l0aW9uT2ZDaGFyICggaW4gdW5zaWduZWQgbG9u
ZyBjaGFybnVtICkKKyAgICBTVkdQb2ludCBnZXRTdGFydFBvc2l0aW9uT2ZDaGFyICggaW4gdW5z
aWduZWQgbG9uZyBvZmZzZXQgKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2Vw
dGlvbiApOwotICAgIFNWR1BvaW50IGdldEVuZFBvc2l0aW9uT2ZDaGFyICggaW4gdW5zaWduZWQg
bG9uZyBjaGFybnVtICkKKyAgICBTVkdQb2ludCBnZXRFbmRQb3NpdGlvbk9mQ2hhciAoIGluIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNl
cHRpb24gKTsKLSAgICBTVkdSZWN0ICBnZXRFeHRlbnRPZkNoYXIgKCBpbiB1bnNpZ25lZCBsb25n
IGNoYXJudW0gKQorICAgIFNWR1JlY3QgIGdldEV4dGVudE9mQ2hhciAoIGluIHVuc2lnbmVkIGxv
bmcgb2Zmc2V0ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsK
LSAgICBmbG9hdCAgICBnZXRSb3RhdGlvbk9mQ2hhciAoIGluIHVuc2lnbmVkIGxvbmcgY2hhcm51
bSApCisgICAgZmxvYXQgICAgZ2V0Um90YXRpb25PZkNoYXIgKCBpbiB1bnNpZ25lZCBsb25nIG9m
ZnNldCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7CiAgICAg
bG9uZyAgICAgZ2V0Q2hhck51bUF0UG9zaXRpb24gKCBpbiBTVkdQb2ludCBwb2ludCApOwotICAg
IHZvaWQgICAgIHNlbGVjdFN1YlN0cmluZyAoIGluIHVuc2lnbmVkIGxvbmcgY2hhcm51bSwgaW4g
dW5zaWduZWQgbG9uZyBuY2hhcnMgKQorICAgIHZvaWQgICAgIHNlbGVjdFN1YlN0cmluZyAoIGlu
IHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBpbiB1bnNpZ25lZCBsb25nIGxlbmd0aCApCiAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhjZXB0aW9uICk7CiAgIH07CiB9OwpJbmRleDoga3N2
ZzIvYmluZGluZ3MvaWRsL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBr
c3ZnMi9iaW5kaW5ncy9pZGwvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaWRsCShyZXZpc2lvbiAxNjE3
NykKKysrIGtzdmcyL2JpbmRpbmdzL2lkbC9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDE3ICsyOSwxNyBAQCBtb2R1bGUgc3ZnCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZJdGVtczsKICAgICB2b2lkICAgY2xlYXIgKCAg
KQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiApOwotICAgIFNWR1Ry
YW5zZm9ybSBpbml0aWFsaXplICggaW4gU1ZHVHJhbnNmb3JtIG5ld0l0ZW0gKQorICAgIFNWR1Ry
YW5zZm9ybSBpbml0aWFsaXplICggaW4gU1ZHVHJhbnNmb3JtIGl0ZW0gKQogICAgICAgICAgICAg
ICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhjZXB0aW9uICk7CiAgICAgU1ZHVHJh
bnNmb3JtIGdldEl0ZW0gKCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAg
ICAgICAgcmFpc2VzKCBET01FeGNlcHRpb24gKTsKLSAgICBTVkdUcmFuc2Zvcm0gaW5zZXJ0SXRl
bUJlZm9yZSAoIGluIFNWR1RyYW5zZm9ybSBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4
ICkKKyAgICBTVkdUcmFuc2Zvcm0gaW5zZXJ0SXRlbUJlZm9yZSAoIGluIFNWR1RyYW5zZm9ybSBp
dGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkKICAgICAgICAgICAgICAgICAgICAgcmFpc2Vz
KCBET01FeGNlcHRpb24sIFNWR0V4Y2VwdGlvbiApOwotICAgIFNWR1RyYW5zZm9ybSByZXBsYWNl
SXRlbSAoIGluIFNWR1RyYW5zZm9ybSBuZXdJdGVtLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4ICkK
KyAgICBTVkdUcmFuc2Zvcm0gcmVwbGFjZUl0ZW0gKCBpbiBTVkdUcmFuc2Zvcm0gaXRlbSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCApCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyggRE9NRXhj
ZXB0aW9uLCBTVkdFeGNlcHRpb24gKTsKICAgICBTVkdUcmFuc2Zvcm0gcmVtb3ZlSXRlbSAoIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXggKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4
Y2VwdGlvbiApOwotICAgIFNWR1RyYW5zZm9ybSBhcHBlbmRJdGVtICggaW4gU1ZHVHJhbnNmb3Jt
IG5ld0l0ZW0gKQorICAgIFNWR1RyYW5zZm9ybSBhcHBlbmRJdGVtICggaW4gU1ZHVHJhbnNmb3Jt
IGl0ZW0gKQogICAgICAgICAgICAgICAgICAgICByYWlzZXMoIERPTUV4Y2VwdGlvbiwgU1ZHRXhj
ZXB0aW9uICk7CiAgICAgU1ZHVHJhbnNmb3JtIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXgg
KCBpbiBTVkdNYXRyaXggbWF0cml4ICk7CiAgICAgU1ZHVHJhbnNmb3JtIGNvbnNvbGlkYXRlICgg
ICk7CkluZGV4OiBrc3ZnMi9zdmcvU1ZHU1ZHRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga3N2
ZzIvc3ZnL1NWR1NWR0VsZW1lbnQuaWRsCShyZXZpc2lvbiAxNjE3NykKKysrIGtzdmcyL3N2Zy9T
VkdTVkdFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTYsOCArNTYsOCBAQCBtb2R1bGUg
c3ZnCiAgICAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIERPTUV4Y2VwdGlvbjsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IGN1cnJlbnRUcmFuc2xhdGU7CiAK
LSAgICAgICAgdW5zaWduZWQgbG9uZyBzdXNwZW5kUmVkcmF3KCBpbiB1bnNpZ25lZCBsb25nIG1h
eF93YWl0X21pbGxpc2Vjb25kcyApOwotICAgICAgICB2b2lkICAgICAgICAgIHVuc3VzcGVuZFJl
ZHJhdyggaW4gdW5zaWduZWQgbG9uZyBzdXNwZW5kX2hhbmRsZV9pZCApCisgICAgICAgIHVuc2ln
bmVkIGxvbmcgc3VzcGVuZFJlZHJhdyggaW4gdW5zaWduZWQgbG9uZyBtYXhXYWl0TWlsbGlzZWNv
bmRzICk7CisgICAgICAgIHZvaWQgICAgICAgICAgdW5zdXNwZW5kUmVkcmF3KCBpbiB1bnNpZ25l
ZCBsb25nIHN1c3BlbmRIYW5kbGVJZCApCiAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZXMo
IERPTUV4Y2VwdGlvbiApOwogICAgICAgICB2b2lkICAgICAgICAgIHVuc3VzcGVuZFJlZHJhd0Fs
bCgpOwogICAgICAgICB2b2lkICAgICAgICAgIGZvcmNlUmVkcmF3KCk7CkluZGV4OiBwYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAx
NjE3NykKKysrIHBhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTIgKzMy
LDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1l
bnQgZG9jdW1lbnQ7CiAgICAgICAgIAogICAgICAgICAvLyBET00gTGV2ZWwgMiBTdHlsZSBJbnRl
cmZhY2UKLSAgICAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiBnZXRDb21wdXRlZFN0eWxlKGluIEVs
ZW1lbnQgZWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gRE9NU3RyaW5nIHBzZXVkb0VsdCk7CisgICAgICAgIENTU1N0eWxlRGVjbGFyYXRpb24gZ2V0
Q29tcHV0ZWRTdHlsZShpbiBFbGVtZW50IGVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgcHNldWRvRWxlbWVudCk7CiAKICAg
ICAgICAgLy8gV2ViS2l0IGV4dGVuc2lvbnMKLSAgICAgICAgQ1NTUnVsZUxpc3QgZ2V0TWF0Y2hl
ZENTU1J1bGVzKGluIEVsZW1lbnQgZWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIHBzZXVkb0VsdCwKKyAgICAgICAgQ1NTUnVsZUxpc3QgZ2V0
TWF0Y2hlZENTU1J1bGVzKGluIEVsZW1lbnQgZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwc2V1ZG9FbGVtZW50LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsXSBib29sZWFuIGF1dGhv
ck9ubHkpOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGRldmljZVBpeGVsUmF0
aW87CiAgICAgICAgIAo=
</data>
<flag name="review"
          id="3299"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>