<?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>215992</bug_id>
          
          <creation_ts>2020-08-30 16:01:12 -0700</creation_ts>
          <short_desc>EnabledBySetting extended attributes on a partial interface do not get merged with EnabledBySetting extended attributes on properties of that partial interface</short_desc>
          <delta_ts>2020-08-30 18:25:33 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>215981</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1684044</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-30 16:01:12 -0700</bug_when>
    <thetext>While investigating https://bugs.webkit.org/show_bug.cgi?id=215981, one failure was in the generation of NavigatorMediaDevices.idl which currently looks like:

[
    Conditional=MEDIA_STREAM,
    EnabledAtRuntime=MediaDevices,
] partial interface Navigator {
    [SameObject, SecureContext, ContextAllowsMediaDevices] readonly attribute MediaDevices mediaDevices;
    [Custom, EnabledBySetting=LegacyGetUserMedia] undefined getUserMedia(object constraints, object? successCallback, object? errorCallback);
};

One thing to note here is that the extended attributes on the partial interface declaration itself (Conditional=MEDIA_STREAM and EnabledAtRuntime=MediaDevices) are really shorthand for mapping those extended attributes to all the member properties.

In the mentioned bug, I want to change the partial interface wide &quot;EnabledAtRuntime=MediaDevices&quot; to &quot;EnabledBySetting=MediaDevices&quot;, which maps the EnabledBySetting to each member of the partial interface. The issue is that the code generator currently overwrites &quot;EnabledBySetting=LegacyGetUserMedia&quot; on the getUserMedia operation, but really it would make more sense to merge them.

This seems to be a general problem for many potentially mergeable extended attributes, we already kind of merge &quot;Conditional&quot; extended attributes, but only for operations for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684048</commentid>
    <comment_count>1</comment_count>
      <attachid>407579</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-30 16:17:05 -0700</bug_when>
    <thetext>Created attachment 407579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684053</commentid>
    <comment_count>2</comment_count>
      <attachid>407579</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-30 16:50:39 -0700</bug_when>
    <thetext>Comment on attachment 407579
Patch

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

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySettingSupplemental.cpp:5
&gt; +    JSTestEnabledBySettingSupplemental.cpp at every build. This file must not be tried to compile.

Not new or part of this patch, but just noticed:

1) We might want to reword &quot;This file must not be tried to compile.&quot; since that&apos;s not English.

2) If we don’t want people to compile something normally we’d put #error in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684058</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-30 18:20:53 -0700</bug_when>
    <thetext>Committed r266339: &lt;https://trac.webkit.org/changeset/266339&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 407579.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684059</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-30 18:21:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68045887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1684061</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-08-30 18:25:33 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 407579 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=407579&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySettingSupplemental.cpp:5
&gt; &gt; +    JSTestEnabledBySettingSupplemental.cpp at every build. This file must not be tried to compile.
&gt; 
&gt; Not new or part of this patch, but just noticed:
&gt; 
&gt; 1) We might want to reword &quot;This file must not be tried to compile.&quot; since
&gt; that&apos;s not English.
&gt; 
&gt; 2) If we don’t want people to compile something normally we’d put #error in
&gt; it.

Will do this with https://bugs.webkit.org/show_bug.cgi?id=215995.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>407579</attachid>
            <date>2020-08-30 16:17:05 -0700</date>
            <delta_ts>2020-08-30 18:20:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215992-20200830161705.patch</filename>
            <type>text/plain</type>
            <size>27871</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NjMzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDIwLTA4LTMwICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGVkQnlTZXR0aW5nIGV4dGVu
ZGVkIGF0dHJpYnV0ZXMgb24gYSBwYXJ0aWFsIGludGVyZmFjZSBkbyBub3QgZ2V0IG1lcmdlZCB3
aXRoIEVuYWJsZWRCeVNldHRpbmcgZXh0ZW5kZWQgYXR0cmlidXRlcyBvbiBwcm9wZXJ0aWVzIG9m
IHRoYXQgcGFydGlhbCBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNTk5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBtZXJnaW5nIGV4dGVuZGVkIGF0dHJpYnV0
ZXMgdGhhdCBzdXBwb3J0IGNvbmp1bmN0aW9ucyAobGlrZSBFbmFibGVkQnlTZXR0aW5nKSB3aGVu
CisgICAgICAgIHRoZXkgYXJlIHVzZWQgaW4gYm90aCBhIHBhcnRpYWwgd2lkZSBjb250ZXh0IGFu
ZCBvbiBhIG1lbWJlci4gVGhpcyBhbGxvd3MgYSBjYXNlIGxpa2U6CisgICAgICAgIAorICAgICAg
ICAgICAgWworICAgICAgICAgICAgICAgIEVuYWJsZWRCeVNldHRpbmdzPUZpcnN0U2V0dGluZwor
ICAgICAgICAgICAgXSBwYXJ0aWFsIGludGVyZmFjZSBGb28geworICAgICAgICAgICAgICAgIFtF
bmFibGVkQnlTZXR0aW5ncz1TZWNvbmRTZXR0aW5nXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGJhcjsK
KyAgICAgICAgICAgIH07CisKKyAgICAgICAgdG8gYmUgaWRlbnRpY2FsIHRvOgorICAgICAgICAK
KyAgICAgICAgICAgIHBhcnRpYWwgaW50ZXJmYWNlIEZvbyB7CisgICAgICAgICAgICAgICAgW0Vu
YWJsZWRCeVNldHRpbmdzPUZpcnN0U2V0dGluZyZTZWNvbmRTZXR0aW5nXSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGJhcjsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3IucG06CisgICAgICAgIChNZXJnZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21T
dXBwbGVtZW50YWwpOgorICAgICAgICBGYWN0b3Igb3V0IGFuZCByZXdvcmsgbWVyZ2luZyBsb2dp
Yy4gT25seSBhbGxvdyBhZGRpbmcgZXh0ZW5kZWQgYXR0cmlidXRlcyB0aGF0IGFyZSBhbGxvd2Vk
IGZvciB0aGUgY29udGV4dAorICAgICAgICB0aGV5IGFyZSBiZWluZyBtZXJnZSBpbnRvIHRvIGJl
IG1lcmdlZCwgYW5kIG9ubHkgYWxsb3cgZXh0ZW5kZWQgYXR0cmlidXRlcyBkZWNsYXJlZCBpbiBJ
RExBdHRyaWJ1dGVzLmpzb24gYXMKKyAgICAgICAgc3VwcG9ydGluZyBjb25qdW5jdGlvbnMgdG8g
YmUgbWVyZ2VkLgorCisgICAgICAgIChQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzKToK
KyAgICAgICAgQ2FsbCBNZXJnZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21TdXBwbGVtZW50YWwgZm9y
IGVhY2ggdHlwZSBvZiBtZW1iZXIuCisKKyAgICAgICAgKEV4dGVuZGVkQXR0cmlidXRlQ29udGFp
bnMpOgorICAgICAgICBGaXggdmFyaWFibGUgbmFtZSwgc2luY2UgdGhpcyBpcyB1c2VkIGZvciBh
bGwgZXh0ZW5kZWQgYXR0cmlidXRlcywgbm90IGp1c3QgY2FsbFdpdGguCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAgQWRkIHN1cHBvcnRz
Q29uanVuY3Rpb24ga2V5cyBmb3IgZXh0ZW5kZWQgYXR0cmlidXRlcyB0aGF0IHN1cHBvcnQgdGhl
IGNvbmp1bmN0aW9uICgmKSBzeW50YXggYW5kIHNlbWFudGljcy4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29T
ZXR0aW5nc0F0dHJpYnV0ZUdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRl
U2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFi
bGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlR2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0
ZVNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3Vw
cGxlbWVudGFsQXR0cmlidXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5jcHA6IEFkZGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVu
dGFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVtZW50
YWxEZXBlbmRlbmNpZXMuZGVwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
RW5hYmxlZEJ5U2V0dGluZy5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmlkbDogQWRkZWQuCisgICAgICAgIEFkZC91
cGRhdGUgdGVzdHMuCisKIDIwMjAtMDgtMzAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyYmFuZGluZyBpbiBhbiBvdmVyZmxvdzpzY3JvbGwg
Y2FuIHRyaWdnZXIgcGFnZSBqaWdnbGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiAyNjYzMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTI0Nyw2ICsyNDcsNDAgQEAgc3ViIFByb2Nlc3NEb2N1bWVudAogICAgIGRpZSAiUHJv
Y2Vzc2luZyBkb2N1bWVudCAiIC4gJHVzZURvY3VtZW50LT5maWxlTmFtZSAuICIgZGlkIG5vdCBn
ZW5lcmF0ZSBhbnl0aGluZyIKIH0KIAorc3ViIE1lcmdlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbVN1
cHBsZW1lbnRhbAoreworICAgIG15ICgkb2JqZWN0LCAkc3VwcGxlbWVudGFsLCAkcHJvcGVydHks
ICRjb250ZXh0KSA9IEBfOworCisgICAgZm9yZWFjaCBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVOYW1l
IChrZXlzICV7JHN1cHBsZW1lbnRhbC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzfSkgeworICAgICAgICBt
eSAkaXNBbGxvd2VkID0gMDsKKyAgICAgICAgZm9yIG15ICRjb250ZXh0QWxsb3dlZCAoQHskaWRs
QXR0cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9LT57ImNvbnRleHRzQWxsb3dlZCJ9
fSkgeworICAgICAgICAgICAgaWYgKCRjb250ZXh0QWxsb3dlZCBlcSAkY29udGV4dCkgeworICAg
ICAgICAgICAgICAgICRpc0FsbG93ZWQgPSAxOworICAgICAgICAgICAgICAgIGxhc3Q7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbmV4dCB1bmxlc3MgJGlzQWxsb3dlZDsKKwor
ICAgICAgICAjIEZJWE1FOiBUZXN0cyBjdXJyZW50bHkgZGVwZW5kIG9uIHNwZWNpYWwgY2FzZSBm
b3IgQ29uZGl0aW9uYWwgb3ZlcndyaXRpbmcgbm9uLW9wZXJhdGlvbiBjYXNlcywgYnV0IHRoaXMg
c2hvdWxkCisgICAgICAgICMgYmUgZml4ZWQuIFVsdGltYXRlbHksIHRoaXMgd2lsbCBwcm9iYWJs
eSBtZWFuIGVpdGhlciByZW1vdmluZyBzdXBwb3J0IGZvciBkaXNqdW5jdGlvbnMgZm9yIENvbmRp
dGlvbmFsLAorICAgICAgICAjIHdoaWNoIGlzIG5vdCB1c2VkIG91dHNpZGUgb2YgdGhlIHRlc3Rz
LCBvciBhZGRpbmcgc3VwcG9ydCBmb3IgcGFyZW50aGVzZXMgdG8gZGlzYW1iaWd1YXRlLgorICAg
ICAgICBpZiAoJGV4dGVuZGVkQXR0cmlidXRlTmFtZSBlcSAiQ29uZGl0aW9uYWwiICYmICRjb250
ZXh0IG5lICJvcGVyYXRpb24iKSB7CisgICAgICAgICAgICAkcHJvcGVydHktPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9ID0gJHN1cHBsZW1lbnRhbC0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07CisgICAgICAgICAgICBuZXh0
OworICAgICAgICB9CisKKyAgICAgICAgIyBIYW5kbGUgY2FzZSB0aGF0IHRoZSBhdHRyaWJ1dGUg
YWxyZWFkeSBoYXMgYSBleHRlbnRlZCBhdHRyaWJ1dGUgd2l0aCB0aGlzIGtleS4KKyAgICAgICAg
aWYgKCRwcm9wZXJ0eS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFt
ZX0pIHsKKyAgICAgICAgICAgIGlmICghJGlkbEF0dHJpYnV0ZXMtPnskZXh0ZW5kZWRBdHRyaWJ1
dGVOYW1lfS0+eyJzdXBwb3J0c0Nvbmp1bmN0aW9uIn0pIHsKKyAgICAgICAgICAgICAgICBkaWUg
IkR1cGxpY2F0ZSBub24tbWVyZ2VhYmxlIGV4dGVuZGVkIGF0dHJpYnV0ZSAoJGV4dGVuZGVkQXR0
cmlidXRlTmFtZSkgZm91bmQgd2hlbiBtZXJnaW5nIGV4dGVuZGVkIGF0dHJpYnV0ZXMgZm9yICR7
cHJvcGVydHktPm5hbWV9IjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICRwcm9wZXJ0eS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX0gPSAkcHJvcGVydHkt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9IC4gIiYiIC4gJHN1
cHBsZW1lbnRhbC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAkcHJvcGVydHktPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9ID0gJHN1cHBsZW1lbnRhbC0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07CisgICAgICAgIH0KKyAgICB9Cit9
CisKIHN1YiBQcm9jZXNzU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzCiB7CiAgICAgbXkgKCRvYmpl
Y3QsICR0YXJnZXREb2N1bWVudCkgPSBAXzsKQEAgLTI4OCw5ICszMjIsOCBAQCBzdWIgUHJvY2Vz
c1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwogICAgICAgICAgICAgICAgICRhdHRyaWJ1dGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In0gPSAkaW50ZXJmYWNlTmFtZSBpZiAk
aW50ZXJmYWNlLT5pc1BhcnRpYWwgJiYgISRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e1JlZmxlY3R9OwogCiAgICAgICAgICAgICAgICAgIyBBZGQgaW50ZXJmYWNlLXdpZGUgZXh0ZW5k
ZWQgYXR0cmlidXRlcyB0byBlYWNoIGF0dHJpYnV0ZS4KLSAgICAgICAgICAgICAgICBmb3JlYWNo
IG15ICRleHRlbmRlZEF0dHJpYnV0ZU5hbWUgKGtleXMgJXskaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICAgICAgICAgICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07Ci0gICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICRvYmplY3QtPk1lcmdlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbVN1cHBs
ZW1lbnRhbCgkaW50ZXJmYWNlLCAkYXR0cmlidXRlLCAiYXR0cmlidXRlIik7CisKICAgICAgICAg
ICAgICAgICBwdXNoKEB7JHRhcmdldERhdGFOb2RlLT5hdHRyaWJ1dGVzfSwgJGF0dHJpYnV0ZSk7
CiAgICAgICAgICAgICB9CiAKQEAgLTMwMCwxNSArMzMzLDkgQEAgc3ViIFByb2Nlc3NTdXBwbGVt
ZW50YWxEZXBlbmRlbmNpZXMKIAogICAgICAgICAgICAgICAgICMgUmVjb3JkIHRoYXQgdGhpcyBt
ZXRob2QgaXMgaW1wbGVtZW50ZWQgYnkgJGludGVyZmFjZU5hbWUuCiAgICAgICAgICAgICAgICAg
JG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifSA9ICRpbnRl
cmZhY2VOYW1lIGlmICRpbnRlcmZhY2UtPmlzUGFydGlhbDsKLQotICAgICAgICAgICAgICAgICMg
QWRkIGludGVyZmFjZS13aWRlIGV4dGVuZGVkIGF0dHJpYnV0ZXMgdG8gZWFjaCBtZXRob2QuCi0g
ICAgICAgICAgICAgICAgZm9yZWFjaCBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVOYW1lIChrZXlzICV7
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzfSkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVkQXR0cmlidXRlTmFt
ZX0gJiYgJGV4dGVuZGVkQXR0cmlidXRlTmFtZSBlcSAiQ29uZGl0aW9uYWwiKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnskZXh0ZW5k
ZWRBdHRyaWJ1dGVOYW1lfSA9ICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyRleHRl
bmRlZEF0dHJpYnV0ZU5hbWV9IC4gJyYnIC4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57JGV4dGVuZGVkQXR0cmlidXRlTmFtZX07Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnskZXh0ZW5kZWRBdHRyaWJ1dGVOYW1lfSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfQorICAgIAorICAgICAgICAgICAgICAgICMgQWRkIGludGVyZmFjZS13aWRl
IGV4dGVuZGVkIGF0dHJpYnV0ZXMgdG8gZWFjaCBvcGVyYXRpb24uCisgICAgICAgICAgICAgICAg
JG9iamVjdC0+TWVyZ2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tU3VwcGxlbWVudGFsKCRpbnRlcmZh
Y2UsICRvcGVyYXRpb24sICJvcGVyYXRpb24iKTsKICAgICAgICAgICAgICAgICBwdXNoKEB7JHRh
cmdldERhdGFOb2RlLT5vcGVyYXRpb25zfSwgJG9wZXJhdGlvbik7CiAgICAgICAgICAgICB9CiAK
QEAgLTMyMCw5ICszNDcsOCBAQCBzdWIgUHJvY2Vzc1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcwog
ICAgICAgICAgICAgICAgICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVu
dGVkQnkifSA9ICRpbnRlcmZhY2VOYW1lIGlmICRpbnRlcmZhY2UtPmlzUGFydGlhbDsKIAogICAg
ICAgICAgICAgICAgICMgQWRkIGludGVyZmFjZS13aWRlIGV4dGVuZGVkIGF0dHJpYnV0ZXMgdG8g
ZWFjaCBjb25zdGFudC4KLSAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRleHRlbmRlZEF0dHJp
YnV0ZU5hbWUgKGtleXMgJXskaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXN9KSB7Ci0gICAg
ICAgICAgICAgICAgICAgICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57JGV4dGVuZGVk
QXR0cmlidXRlTmFtZX0gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnskZXh0ZW5k
ZWRBdHRyaWJ1dGVOYW1lfTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgJG9i
amVjdC0+TWVyZ2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tU3VwcGxlbWVudGFsKCRpbnRlcmZhY2Us
ICRjb25zdGFudCwgImNvbnN0YW50Iik7CisKICAgICAgICAgICAgICAgICBwdXNoKEB7JHRhcmdl
dERhdGFOb2RlLT5jb25zdGFudHN9LCAkY29uc3RhbnQpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0zNTEsOSArMzc3LDggQEAgc3ViIFByb2Nlc3NTdXBwbGVtZW50YWxEZXBlbmRlbmNp
ZXMKICAgICAgICAgICAgICAgICAkbWVtYmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVt
ZW50ZWRCeSJ9ID0gJGludGVyZmFjZU5hbWU7CiAKICAgICAgICAgICAgICAgICAjIEFkZCBpbnRl
cmZhY2Utd2lkZSBleHRlbmRlZCBhdHRyaWJ1dGVzIHRvIGVhY2ggbWVtYmVyLgotICAgICAgICAg
ICAgICAgIGZvcmVhY2ggbXkgJGV4dGVuZGVkQXR0cmlidXRlTmFtZSAoa2V5cyAleyRkaWN0aW9u
YXJ5LT5leHRlbmRlZEF0dHJpYnV0ZXN9KSB7Ci0gICAgICAgICAgICAgICAgICAgICRtZW1iZXIt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9ID0gJGRpY3Rpb25h
cnktPmV4dGVuZGVkQXR0cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZU5hbWV9OwotICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAkb2JqZWN0LT5NZXJnZUV4dGVuZGVkQXR0cmli
dXRlc0Zyb21TdXBwbGVtZW50YWwoJGRpY3Rpb25hcnksICRtZW1iZXIsICJkaWN0aW9uYXJ5LW1l
bWJlciIpOworCiAgICAgICAgICAgICAgICAgcHVzaChAeyR0YXJnZXREYXRhTm9kZS0+bWVtYmVy
c30sICRtZW1iZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMzEzLDEyICsxMzM4
LDEyIEBAIHN1YiBHZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lmTmUKIHN1YiBFeHRl
bmRlZEF0dHJpYnV0ZUNvbnRhaW5zCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15
ICRjYWxsV2l0aCA9IHNoaWZ0OwotICAgIHJldHVybiAwIHVubGVzcyAkY2FsbFdpdGg7CisgICAg
bXkgJGV4dGVuZGVkQXR0cmlidXRlID0gc2hpZnQ7CisgICAgcmV0dXJuIDAgdW5sZXNzICRleHRl
bmRlZEF0dHJpYnV0ZTsKICAgICBteSAka2V5d29yZCA9IHNoaWZ0OwogCi0gICAgbXkgQGNhbGxX
aXRoS2V5d29yZHMgPSBzcGxpdCAvXHMqXCZccyovLCAkY2FsbFdpdGg7Ci0gICAgcmV0dXJuIGdy
ZXAgeyAkXyBlcSAka2V5d29yZCB9IEBjYWxsV2l0aEtleXdvcmRzOworICAgIG15IEBleHRlbmRl
ZEF0dHJpYnV0ZUtleXdvcmRzID0gc3BsaXQgL1xzKlwmXHMqLywgJGV4dGVuZGVkQXR0cmlidXRl
OworICAgIHJldHVybiBncmVwIHsgJF8gZXEgJGtleXdvcmQgfSBAZXh0ZW5kZWRBdHRyaWJ1dGVL
ZXl3b3JkczsKIH0KIAogIyBGSVhNRTogVGhpcyBpcyBiYWNrd2FyZHMuIFdlIGN1cnJlbnRseSBu
YW1lIHRoZSBpbnRlcmZhY2UgYW5kIHRoZSBJREwgZmlsZXMgd2l0aCB0aGUgaW1wbGVtZW50YXRp
b24gbmFtZS4gV2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy5qc29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy5qc29uCShyZXZpc2lvbiAyNjYzMTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAt
NDMsNyArNDMsOCBAQAogICAgICAgICB9LAogICAgICAgICAiQ2FsbFdpdGgiOiB7CiAgICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIl0sCi0gICAg
ICAgICAgICAidmFsdWVzIjogWyJEb2N1bWVudCIsICJFeGVjU3RhdGUiLCAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCIsICJHbG9iYWxPYmplY3QiLCAiQWN0aXZlV2luZG93IiwgIkZpcnN0V2luZG93
IiwgIlJlc3BvbnNpYmxlRG9jdW1lbnQiLCAiV29ybGQiXQorICAgICAgICAgICAgInZhbHVlcyI6
IFsiRG9jdW1lbnQiLCAiRXhlY1N0YXRlIiwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiR2xv
YmFsT2JqZWN0IiwgIkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyIsICJSZXNwb25zaWJsZURv
Y3VtZW50IiwgIldvcmxkIl0sCisgICAgICAgICAgICAic3VwcG9ydHNDb25qdW5jdGlvbiI6IHRy
dWUKICAgICAgICAgfSwKICAgICAgICAgIkNoZWNrU2VjdXJpdHkiOiB7CiAgICAgICAgICAgICAi
Y29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQpAQCAtNTksMTEgKzYwLDEzIEBACiAgICAg
ICAgIH0sCiAgICAgICAgICJDb25kaXRpb25hbCI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImRpY3Rpb25hcnktbWVtYmVyIiwg
ImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25zdGFudCIsICJjYWxsYmFjay1m
dW5jdGlvbiJdLAotICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdCisgICAgICAgICAgICAidmFs
dWVzIjogWyIqIl0sCisgICAgICAgICAgICAic3VwcG9ydHNDb25qdW5jdGlvbiI6IHRydWUKICAg
ICAgICAgfSwKICAgICAgICAgIkNvbmRpdGlvbmFsbHlSZWFkV3JpdGUiOiB7CiAgICAgICAgICAg
ICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXSwKLSAgICAgICAgICAgICJ2YWx1ZXMi
OiBbIioiXQorICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLAorICAgICAgICAgICAgInN1cHBv
cnRzQ29uanVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgICJDb25zdGFudHNTY29w
ZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJdLApAQCAt
NzcsMTEgKzgwLDEzIEBACiAgICAgICAgIH0sCiAgICAgICAgICJDb25zdHJ1Y3RvckNhbGxXaXRo
IjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0sCi0gICAg
ICAgICAgICAidmFsdWVzIjogWyJEb2N1bWVudCIsICJFeGVjU3RhdGUiLCAiUnVudGltZUZsYWdz
IiwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiXQorICAgICAgICAgICAgInZhbHVlcyI6IFsiRG9j
dW1lbnQiLCAiRXhlY1N0YXRlIiwgIlJ1bnRpbWVGbGFncyIsICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0Il0sCisgICAgICAgICAgICAic3VwcG9ydHNDb25qdW5jdGlvbiI6IHRydWUKICAgICAgICAg
fSwKICAgICAgICAgIkNvbnN0cnVjdG9yRW5hYmxlZEJ5U2V0dGluZyI6IHsKICAgICAgICAgICAg
ICJjb250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSIsICJpbnRlcmZhY2UiXSwKLSAgICAgICAg
ICAgICJ2YWx1ZXMiOiBbIioiXQorICAgICAgICAgICAgInZhbHVlcyI6IFsiKiJdLAorICAgICAg
ICAgICAgInN1cHBvcnRzQ29uanVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgICJD
b25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiaW50ZXJmYWNlIl0KQEAgLTE1NCw3ICsxNTksOCBAQAogICAgICAgICB9LAogICAg
ICAgICAiRE9NSklUIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJm
YWNlIiwgImF0dHJpYnV0ZSIsICJvcGVyYXRpb24iXSwKLSAgICAgICAgICAgICJ2YWx1ZXMiOiBb
IiIsICJSZWFkRE9NIiwgIkdldHRlciJdCisgICAgICAgICAgICAidmFsdWVzIjogWyIiLCAiUmVh
ZERPTSIsICJHZXR0ZXIiXSwKKyAgICAgICAgICAgICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1
ZQogICAgICAgICB9LAogICAgICAgICAiRGVmYXVsdERlZmluZU93blByb3BlcnR5IjogewogICAg
ICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KQEAgLTE3NiwxMSArMTgy
LDEzIEBACiAgICAgICAgIH0sCiAgICAgICAgICJFbmFibGVkQXRSdW50aW1lIjogewogICAgICAg
ICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51
bSIsICJhdHRyaWJ1dGUiLCAib3BlcmF0aW9uIiwgImNvbnN0YW50IiwgIml0ZXJhYmxlIl0sCi0g
ICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KKyAgICAgICAgICAgICJ2YWx1ZXMiOiBbIioiXSwK
KyAgICAgICAgICAgICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQogICAgICAgICB9LAogICAg
ICAgICAiRW5hYmxlZEJ5U2V0dGluZyI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQi
OiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJh
dGlvbiIsICJjb25zdGFudCIsICJkaWN0aW9uYXJ5LW1lbWJlciJdLAotICAgICAgICAgICAgInZh
bHVlcyI6IFsiKiJdCisgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0sCisgICAgICAgICAgICAi
c3VwcG9ydHNDb25qdW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKICAgICAgICAgIkRpc2FibGVk
QnlRdWlyayI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIs
ICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJhdGlvbiIsICJjb25zdGFu
dCJdLApAQCAtMTkxLDcgKzE5OSw4IEBACiAgICAgICAgIH0sCiAgICAgICAgICJFbmFibGVkRm9y
V29ybGQiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiLCAi
b3BlcmF0aW9uIl0sCi0gICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KKyAgICAgICAgICAgICJ2
YWx1ZXMiOiBbIioiXSwKKyAgICAgICAgICAgICJzdXBwb3J0c0Nvbmp1bmN0aW9uIjogdHJ1ZQog
ICAgICAgICB9LAogICAgICAgICAiRW5mb3JjZVJhbmdlIjogewogICAgICAgICAgICAgImNvbnRl
eHRzQWxsb3dlZCI6IFsidHlwZSJdLApAQCAtNDA5LDcgKzQxOCw4IEBACiAgICAgICAgIH0sCiAg
ICAgICAgICJSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZSI6IHsKICAgICAgICAgICAgICJj
b250ZXh0c0FsbG93ZWQiOiBbImF0dHJpYnV0ZSJdLAotICAgICAgICAgICAgInZhbHVlcyI6IFsi
KiJdCisgICAgICAgICAgICAidmFsdWVzIjogWyIqIl0sCisgICAgICAgICAgICAic3VwcG9ydHND
b25qdW5jdGlvbiI6IHRydWUKICAgICAgICAgfSwKICAgICAgICAgIlNhbWVPYmplY3QiOiB7CiAg
ICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXSwKQEAgLTQyNiw3ICs0
MzYsOCBAQAogICAgICAgICB9LAogICAgICAgICAiU2V0dGVyQ2FsbFdpdGgiOiB7CiAgICAgICAg
ICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJhdHRyaWJ1dGUiXSwKLSAgICAgICAgICAgICJ2YWx1
ZXMiOiBbIkV4ZWNTdGF0ZSIsICJTY3JpcHRFeGVjdXRpb25Db250ZXh0IiwgIkdsb2JhbE9iamVj
dCIsICJBY3RpdmVXaW5kb3ciLCAiRmlyc3RXaW5kb3ciXQorICAgICAgICAgICAgInZhbHVlcyI6
IFsiRXhlY1N0YXRlIiwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiLCAiR2xvYmFsT2JqZWN0Iiwg
IkFjdGl2ZVdpbmRvdyIsICJGaXJzdFdpbmRvdyJdLAorICAgICAgICAgICAgInN1cHBvcnRzQ29u
anVuY3Rpb24iOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgICJTa2lwQ2FsbGJhY2tJbnZva2VD
aGVjayI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbIm9wZXJhdGlvbiIsICJj
YWxsYmFjay1mdW5jdGlvbiJdCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRlcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvU3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzLmRl
cAkocmV2aXNpb24gMjY2MzEyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkg
KzM4LDEwIEBAIFdlYkRPTVRlc3REZXJpdmVkRGljdGlvbmFyeTIuaDogCiBKU1Rlc3REb21haW5T
ZWN1cml0eS5oOiAKIERPTVRlc3REb21haW5TZWN1cml0eS5oOiAKIFdlYkRPTVRlc3REb21haW5T
ZWN1cml0eS5oOiAKLUpTVGVzdEVuYWJsZWRCeVNldHRpbmcuaDogCi1ET01UZXN0RW5hYmxlZEJ5
U2V0dGluZy5oOiAKLVdlYkRPTVRlc3RFbmFibGVkQnlTZXR0aW5nLmg6IAorSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZy5oOiBUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5pZGwKK0RPTVRl
c3RFbmFibGVkQnlTZXR0aW5nLmg6IFRlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmlk
bAorV2ViRE9NVGVzdEVuYWJsZWRCeVNldHRpbmcuaDogVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBw
bGVtZW50YWwuaWRsCitUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5pZGw6CiBKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dC5oOiAKIERPTVRlc3RFbmFibGVkRm9yQ29udGV4dC5oOiAKIFdl
YkRPTVRlc3RFbmFibGVkRm9yQ29udGV4dC5oOiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0RW5hYmxlZEJ5U2V0dGluZy5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RFbmFibGVkQnlTZXR0aW5n
LmlkbAkocmV2aXNpb24gMjY2MzEyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RFbmFibGVkQnlTZXR0aW5nLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNCAr
MjksNiBAQCBpbnRlcmZhY2UgVGVzdEVuYWJsZWRCeVNldHRpbmcgewogICAgIC8vIFtFbmFibGVk
QnlTZXR0aW5nXSBhdHRyaWJ1dGVzIGFuZCBvcGVyYXRpb25zLgogICAgIFtDb25kaXRpb25hbD1U
RVNUX0ZFQVRVUkUsIEVuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIGF0dHJpYnV0ZSBET01T
dHJpbmcgZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZTsKICAgICBbQ29uZGl0aW9uYWw9VEVTVF9G
RUFUVVJFLCBFbmFibGVkQnlTZXR0aW5nPVRlc3RTZXR0aW5nXSB1bmRlZmluZWQgZW5hYmxlZEJ5
U2V0dGluZ09wZXJhdGlvbihET01TdHJpbmcgdGVzdFBhcmFtKTsKKworICAgIFtDb25kaXRpb25h
bD1URVNUX0ZFQVRVUkUsIEVuYWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmcmT3RoZXJUZXN0U2V0
dGluZ10gYXR0cmlidXRlIERPTVN0cmluZyBlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZTsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEVuYWJs
ZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5p
ZGwJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGlu
ZyB0aGUgYmluZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdl
cyBpbiBpdHMgb3V0cHV0LgorCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZ0Zy
b21QYXJ0aWFsSW50ZXJmYWNlCitdIHBhcnRpYWwgaW50ZXJmYWNlIFRlc3RFbmFibGVkQnlTZXR0
aW5nIHsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZ0Zyb21QYXJ0aWFsSW50ZXJm
YWNlQXR0cmlidXRlXSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHN1cHBsZW1lbnRhbEF0dHJpYnV0ZTsK
K307CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCShyZXZpc2lvbiAy
NjYzMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEyICsyNywxNCBAQAog
I2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKKyNpbmNsdWRlICJK
U0RPTUNvbnZlcnRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyQ2Fj
aGUuaCIKICNpbmNsdWRlICJKU1Rlc3RTdWJPYmouaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXN0RW5hYmxl
ZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXplci5oPgpAQCAtNDMsMTAgKzQ1LDYgQEAKICNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4K
IAotI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5n
cy5oIgotI2VuZGlmCi0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKQEAgLTY3LDYgKzY1LDEyIEBAIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RT
dWJPYmoKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRC
eVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Vu
YWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCisjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIHNldEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CisjZW5kaWYKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTI4LDYgKzEz
MiwxMiBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0RW5hYmxlCiAgICAgeyAw
LCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCisgICAgeyAiZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUiLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IgfCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSkgfSB9LAorI2Vsc2UKKyAgICB7IDAs
IDAsIE5vSW50cmluc2ljLCB7IDAsIDAgfSB9LAorI2VuZGlmCisgICAgeyAic3VwcGxlbWVudGFs
QXR0cmlidXRlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmlidXRlKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSkgfSB9LAorI2lmIEVOQUJM
RShURVNUX0ZFQVRVUkUpCiAgICAgeyAiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlv
biksIChpbnRwdHJfdCkgKDEpIH0gfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywg
eyAwLCAwIH0gfSwKQEAgLTE1OSw2ICsxNjksMjIgQEAgdm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nUHJvdG90eXBlOjpmaQogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0KCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgfQogI2VuZGlmCisjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKKyAgICBpZiAoIShkb3duY2FzdDxEb2N1bWVudD4oanNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpLT5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpICYmIGRvd25jYXN0PERvY3Vt
ZW50Pihqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSktPnNldHRpbmdzKCkub3RoZXJUZXN0U2V0dGluZ0VuYWJsZWQoKSkp
IHsKKyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpLCBz
dHJsZW4oImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlIikpOworICAgICAgICBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSk7CisgICAgICAgIERlbGV0ZVByb3BlcnR5U2xvdCBzbG90OworICAg
ICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CisgICAgfQorI2VuZGlmCisgICAgaWYgKCEoZG93bmNhc3Q8RG9jdW1l
bnQ+KGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKS0+c2V0dGluZ3MoKS50ZXN0U2V0dGluZ0Zyb21QYXJ0aWFsSW50ZXJm
YWNlQXR0cmlidXRlRW5hYmxlZCgpICYmIGRvd25jYXN0PERvY3VtZW50Pihqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkt
PnNldHRpbmdzKCkudGVzdFNldHRpbmdGcm9tUGFydGlhbEludGVyZmFjZUVuYWJsZWQoKSkpIHsK
KyAgICAgICAgaGFzRGlzYWJsZWRSdW50aW1lUHJvcGVydGllcyA9IHRydWU7CisgICAgICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiKSwgc3RybGVuKCJzdXBw
bGVtZW50YWxBdHRyaWJ1dGUiKSk7CisgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29w
ZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsK
KyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90IHNsb3Q7CisgICAgICAgIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAg
ICB9CiAgICAgaWYgKGhhc0Rpc2FibGVkUnVudGltZVByb3BlcnRpZXMgJiYgc3RydWN0dXJlKCkt
PmlzRGljdGlvbmFyeSgpKQogICAgICAgICBmbGF0dGVuRGljdGlvbmFyeU9iamVjdCh2bSk7CiAg
ICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CkBAIC0yOTcsNiArMzIz
LDc0IEBAIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVMKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRo
aXNPYmplY3QpCit7CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAg
ICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CisgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSgpKSkpOworfQor
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlUd29T
ZXR0aW5nc0F0dHJpYnV0ZSIpOworfQorCisjZW5kaWYKKworI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCitzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRC
eVR3b1NldHRpbmdzQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nJiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQoreworICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Cisg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYXV0byYg
aW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOworICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252
ZXJ0PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOworICAgIEF0dHJpYnV0ZVNldHRlcjo6
Y2FsbChsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geworICAgICAgICByZXR1
cm4gaW1wbC5zZXRFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVu
YWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3
b1NldHRpbmdzQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpOworfQorCisj
ZW5kaWYKKworc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBw
bGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRoaXNPYmplY3QpCit7CisgICAgYXV0byYgdm0g
PSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53
cmFwcGVkKCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdEVu
YWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbEF0dHJpYnV0ZShpbXBsKSkp
KTsKK30KKworRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRh
bEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBw
bGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUi
KTsKK30KKworc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBw
bGVtZW50YWxBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcmIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7
CisgICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKyAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBhdXRvJiBpbXBs
ID0gdGhpc09iamVjdC53cmFwcGVkKCk7CisgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7CisgICAgQXR0cmlidXRlU2V0dGVyOjpjYWxs
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7CisgICAgICAgIHJldHVybiBX
ZWJDb3JlOjpUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbDo6c2V0U3VwcGxlbWVudGFs
QXR0cmlidXRlKGltcGwsIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICB9KTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFs
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsQXR0cmlidXRlIik7
Cit9CisKKyNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRC
eVNldHRpbmdPcGVyYXRpb25Cb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKIHsKICAg
ICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1N1cHBsZW1lbnRhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuY3BwCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDYgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBqdXN0IHRvIHRlbGwg
YnVpbGQgc2NyaXB0cyB0aGF0IEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuaCBh
bmQKKyAgICBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmNwcCBhcmUgY3JlYXRl
ZCBmb3IgVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuaWRsLCBhbmQgdGh1cworICAg
IHByZXZlbnQgdGhlIGJ1aWxkIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gZ2VuZXJhdGUgSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5oIGFuZAorICAgIEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdTdXBwbGVtZW50YWwuY3BwIGF0IGV2ZXJ5IGJ1aWxkLiBUaGlzIGZpbGUgbXVzdCBub3Qg
YmUgdHJpZWQgdG8gY29tcGlsZS4KKyovCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
bmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBw
bGVtZW50YWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKKy8qCisgICAgVGhpcyBm
aWxlIGlzIGdlbmVyYXRlZCBqdXN0IHRvIHRlbGwgYnVpbGQgc2NyaXB0cyB0aGF0IEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuaCBhbmQKKyAgICBKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nU3VwcGxlbWVudGFsLmNwcCBhcmUgY3JlYXRlZCBmb3IgVGVzdEVuYWJsZWRCeVNldHRpbmdT
dXBwbGVtZW50YWwuaWRsLCBhbmQgdGh1cworICAgIHByZXZlbnQgdGhlIGJ1aWxkIHNjcmlwdHMg
ZnJvbSB0cnlpbmcgdG8gZ2VuZXJhdGUgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRh
bC5oIGFuZAorICAgIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWwuY3BwIGF0IGV2
ZXJ5IGJ1aWxkLiBUaGlzIGZpbGUgbXVzdCBub3QgYmUgdHJpZWQgdG8gY29tcGlsZS4KKyovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>