<?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>223827</bug_id>
          
          <creation_ts>2021-03-26 16:24:03 -0700</creation_ts>
          <short_desc>Allow IDL `dictionary` to be `mixin` and used with `includes` by other `dictionary`</short_desc>
          <delta_ts>2021-04-02 16:26:28 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223621</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>heycam</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1744381</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-26 16:24:03 -0700</bug_when>
    <thetext>split off from Bug 223621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744382</commentid>
    <comment_count>1</comment_count>
      <attachid>424416</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-26 16:24:42 -0700</bug_when>
    <thetext>Created attachment 424416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744399</commentid>
    <comment_count>2</comment_count>
      <attachid>424416</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-26 17:19:20 -0700</bug_when>
    <thetext>Comment on attachment 424416
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Add support for `dictionary mixin` and `partial dictionary mixin`. Since `dictionary` are

Why are we doing this? Is this in the WebIDL specification? If so, please provide a link. I just checked the WebIDL specification and could not find it.
If this is not standard IDL, I am not convinced we should support this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744407</commentid>
    <comment_count>3</comment_count>
      <attachid>424416</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-26 17:31:43 -0700</bug_when>
    <thetext>Comment on attachment 424416
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Note that `dictionary mixin` is not officially supported by Web IDL, but it seemed simpler

Chris, Devin explicitly says here that it’s not part of WebIDL.

Devin, same question: Why are we doing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744410</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-26 17:42:11 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 424416 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424416&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        Note that `dictionary mixin` is not officially supported by Web IDL, but it seemed simpler
&gt; 
&gt; Chris, Devin explicitly says here that it’s not part of WebIDL.
&gt; 
&gt; Devin, same question: Why are we doing this?

Looks like the idea is to avoid some code duplication between dictionaries in the payment request standard and our Apple Pay dictionaries. Even so, I am non convinced it is worth adding non standard IDL to achieve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744413</commentid>
    <comment_count>5</comment_count>
      <attachid>424416</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-26 17:42:53 -0700</bug_when>
    <thetext>Comment on attachment 424416
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        Note that `dictionary mixin` is not officially supported by Web IDL, but it seemed simpler
&gt; 
&gt; Chris, Devin explicitly says here that it’s not part of WebIDL.
&gt; 
&gt; Devin, same question: Why are we doing this?

I would like to use this as part of bug 223621 (to avoid having duplicate code between Apple Pay JS and W3C Payment Request API).  I&apos;d be happy to discuss this offline next week if that&apos;d help :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744432</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-26 19:25:22 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Darin Adler from comment #3)
&gt; &gt; Comment on attachment 424416 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=424416&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; &gt; +        Note that `dictionary mixin` is not officially supported by Web IDL, but it seemed simpler
&gt; &gt; 
&gt; &gt; Chris, Devin explicitly says here that it’s not part of WebIDL.
&gt; &gt; 
&gt; &gt; Devin, same question: Why are we doing this?
&gt; 
&gt; Looks like the idea is to avoid some code duplication between dictionaries
&gt; in the payment request standard and our Apple Pay dictionaries. Even so, I
&gt; am non convinced it is worth adding non standard IDL to achieve this.

Yeah, I agree. It might seem nice in the short term, but having non-standard stuff in the generator has not really been worth it long term, especially just to avoid some duplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746722</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-02 16:26:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/76170322&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424416</attachid>
            <date>2021-03-26 16:24:42 -0700</date>
            <delta_ts>2021-03-26 19:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>223827.diff</filename>
            <type>text/plain</type>
            <size>47585</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MmNmZjU1NjlhNmI5NDhlN2Y4MWJhZjg5M2Q4M2NiMGFhOWM1YWU0Li5m
NGQwNjRiNDBlYjJhOTQ1MDI5MzE3MWM0MzFiNzU0MjQ2ZjUyMDI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTkgQEAKKzIwMjEtMDMtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFsbG93IElETCBgZGljdGlvbmFyeWAgdG8gYmUgYG1peGluYCBhbmQgdXNl
ZCB3aXRoIGBpbmNsdWRlc2AgYnkgb3RoZXIgYGRpY3Rpb25hcnlgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM4MjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYGRpY3Rpb25h
cnkgbWl4aW5gIGFuZCBgcGFydGlhbCBkaWN0aW9uYXJ5IG1peGluYC4gU2luY2UgYGRpY3Rpb25h
cnlgIGFyZQorICAgICAgICBiYXNpY2FsbHkganVzdCBhIHBsYWluIEpTIGBvYmplY3RgIHdpdGgg
bm8gc3BlY2lhbCBwcm90b3R5cGUvaW5oZXJpdGFuY2UsIGl0IG1ha2VzIHNlbnNlCisgICAgICAg
IHRvIGFsbG93IGZvciBtdWx0aXBsZSAiaW5oZXJpdGFuY2UiIGluIHRoZSBmb3JtIG9mIGBtaXhp
bmAgKGp1c3QgbGlrZSBmb3IgYGludGVyZmFjZWApLgorICAgICAgICBOb3RlIHRoYXQgYGRpY3Rp
b25hcnkgbWl4aW5gIGlzIG5vdCBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBXZWIgSURMLCBidXQg
aXQgc2VlbWVkIHNpbXBsZXIKKyAgICAgICAgKGFuZCBtb3JlIHJlYXNvbmFibGUvZmFtaWxpYXIp
IHRvIGFkZCBzdXBwb3J0IGZvciBpdCBpbnN0ZWFkIG9mIHNvbWV0aGluZyBsaWtlIGEgY3VzdG9t
CisgICAgICAgIGV4dGVuZGVkIGF0dHJpYnV0ZS4KKworICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvcHJlcHJvY2Vzcy1pZGxzLnBsOgorICAgICAgICAoZ2V0UGFydGlhbE5hbWVzRnJvbUlETCk6
CisgICAgICAgIChnZXRJbmNsdWRlc0Zyb21JREwpOiBBZGRlZC4KKyAgICAgICAgKGdldFVuZGVm
aW5lZEJhc2VEaWN0aW9uYXJpZXNGcm9tSURMKToKKyAgICAgICAgKGdldEluY2x1ZGVkSW50ZXJm
YWNlc0Zyb21JREwpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtOgorICAgICAgICAocGFyc2VEZWZpbml0aW9uKToKKyAgICAgICAgKHBhcnNlQ2FsbGJh
Y2tPckludGVyZmFjZU9ySW50ZXJmYWNlTWl4aW4pOiBBZGRlZC8KKyAgICAgICAgKHBhcnNlSW50
ZXJmYWNlT3JJbnRlcmZhY2VNaXhpbik6IEFkZGVkLgorICAgICAgICAocGFyc2VJbnRlcmZhY2VN
aXhpbik6IEFkZGVkLgorICAgICAgICAocGFyc2VJbnRlcmZhY2VNaXhpbk1lbWJlcnMpOiBBZGRl
ZC4KKyAgICAgICAgKHBhcnNlSW50ZXJmYWNlTWl4aW5NZW1iZXIpOiBBZGRlZC4KKyAgICAgICAg
KHBhcnNlUGFydGlhbERlZmluaXRpb24pOgorICAgICAgICAocGFyc2VQYXJ0aWFsSW50ZXJmYWNl
T3JQYXJ0aWFsSW50ZXJmYWNlTWl4aW4pOiBBZGRlZC4KKyAgICAgICAgKHBhcnNlUGFydGlhbERp
Y3Rpb25hcnlPclBhcnRpYWxEaWN0aW9uYXJ5TWl4aW4pOiBBZGRlZC4KKyAgICAgICAgKHBhcnNl
RGljdGlvbmFyeU9yRGljdGlvbmFyeU1peGluKTogQWRkZWQuCisgICAgICAgIChwYXJzZURpY3Rp
b25hcnlNaXhpbik6IEFkZGVkLgorICAgICAgICAocGFyc2VEaWN0aW9uYXJ5KToKKyAgICAgICAg
KHBhcnNlSW5jbHVkZXNTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VDYWxsYmFja09ySW50ZXJm
YWNlT3JNaXhpbik6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZUludGVyZmFjZU9yTWl4aW4pOiBE
ZWxldGVkLgorICAgICAgICAocGFyc2VNaXhpbik6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZU1p
eGluTWVtYmVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZU1peGluTWVtYmVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKHBhcnNlUGFydGlhbEludGVyZmFjZU9yUGFydGlhbE1peGluKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06CisgICAgICAg
IChQcm9jZXNzRGljdGlvbmFyaWVzKToKKyAgICAgICAgKElzVmFsaWRTdXBwbGVtZW50YWxEaWN0
aW9uYXJ5KToKKyAgICAgICAgKFByb2Nlc3NJbnRlcmZhY2VTdXBwbGVtZW50YWxEZXBlbmRlbmNp
ZXMpOgorICAgICAgICAoUHJvY2Vzc0RpY3Rpb25hcnlTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMp
OgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REaWN0aW9uYXJ5LmlkbDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERpY3Rpb25h
cnkuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERp
Y3Rpb25hcnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE1peGluRGljdGlvbmFyeS5pZGw6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNaXhpbkRpY3Rpb25hcnkuaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1peGluRGljdGlvbmFyeS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0UGFydGlhbE1peGluRGljdGlvbmFyeS5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQYXJ0
aWFsTWl4aW5EaWN0aW9uYXJ5Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmNwcDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXA6CisK
IDIwMjEtMDMtMjIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBFbmFi
bGUgYWJpbGl0eSB0byBwcmV2ZW50IHNjcm9sbGluZyBpbiBFbGVtZW50LmZvY3VzKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQppbmRleCAy
Y2EyNDIwNDE1MTM1NTVkY2IxOGMxNzc1NzFjMDc5ZWYwNWJmZDY3Li5lY2YwYmRmM2QwODAzZWQ0
MzA5ODdmYTAwMzIxMmVhZTA3YjhhYTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC0yOTEsNyArMjkxLDcgQEAgc3ViIFByb2Nl
c3NEaWN0aW9uYXJpZXMKICAgICAgICAgZGllICJNdWx0aXBsZSBkaWN0aW9uYXJpZXMgcGVyIGRv
Y3VtZW50IGFyZSBvbmx5IHN1cHBvcnRlZCBpZiBvbmUgbWF0Y2hlcyB0aGUgZmlsZW5hbWUiIHVu
bGVzcyAkZGljdGlvbmFyeTsKICAgICB9CiAKLSAgICBpZiAoJGRpY3Rpb25hcnktPmlzUGFydGlh
bCkgeworICAgIGlmICgkZGljdGlvbmFyeS0+aXNNaXhpbiB8fCAkZGljdGlvbmFyeS0+aXNQYXJ0
aWFsKSB7CiAgICAgICAgICRvYmplY3QtPkdlbmVyYXRlRW1wdHlIZWFkZXJBbmRDcHAoJHVzZURv
Y3VtZW50LCAkY29kZUdlbmVyYXRvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNjMs
OSArMzYzLDEwIEBAIHN1YiBJc1ZhbGlkU3VwcGxlbWVudGFsSW50ZXJmYWNlCiAKIHN1YiBJc1Zh
bGlkU3VwcGxlbWVudGFsRGljdGlvbmFyeQogewotICAgIG15ICgkb2JqZWN0LCAkc3VwcGxlbWVu
dGFsRGljdGlvbmFyeSwgJHRhcmdldERpY3Rpb25hcnkpID0gQF87CisgICAgbXkgKCRvYmplY3Qs
ICRzdXBwbGVtZW50YWxEaWN0aW9uYXJ5LCAkdGFyZ2V0RGljdGlvbmFyeSwgJGluY2x1ZGVzTWFw
KSA9IEBfOwogCiAgICAgcmV0dXJuIDEgaWYgJHN1cHBsZW1lbnRhbERpY3Rpb25hcnktPmlzUGFy
dGlhbCAmJiAkc3VwcGxlbWVudGFsRGljdGlvbmFyeS0+dHlwZS0+bmFtZSBlcSAkdGFyZ2V0RGlj
dGlvbmFyeS0+dHlwZS0+bmFtZTsKKyAgICByZXR1cm4gMSBpZiAkc3VwcGxlbWVudGFsRGljdGlv
bmFyeS0+aXNNaXhpbiAmJiAkaW5jbHVkZXNNYXAtPnskc3VwcGxlbWVudGFsRGljdGlvbmFyeS0+
dHlwZS0+bmFtZX07CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTM4Miw3ICszODMsNyBAQCBzdWIg
UHJvY2Vzc0ludGVyZmFjZVN1cHBsZW1lbnRhbERlcGVuZGVuY2llcwogICAgICMgaXMgYXJ0aWZp
Y2lhbCBhbmQgd2UgY291bGQgYWRkIHN1cHBvcnQgZm9yIGluY2x1ZGVzIHN0YXRlbWVudHMgZWxz
ZXdoZXJlLgogICAgIG15ICVpbmNsdWRlc01hcCA9ICgpOwogICAgIGZvcmVhY2ggbXkgJGluY2x1
ZGUgKEB7JHRhcmdldERvY3VtZW50LT5pbmNsdWRlc30pIHsKLSAgICAgICAgaWYgKCRpbmNsdWRl
LT5pbnRlcmZhY2VJZGVudGlmaWVyIGVxICR0YXJnZXRJbnRlcmZhY2UtPnR5cGUtPm5hbWUpIHsK
KyAgICAgICAgaWYgKCRpbmNsdWRlLT50YXJnZXRJZGVudGlmaWVyIGVxICR0YXJnZXRJbnRlcmZh
Y2UtPnR5cGUtPm5hbWUpIHsKICAgICAgICAgICAgIHVubGVzcyAoZ3JlcCB7IGZpbGVwYXJzZSgk
XywgIi5pZGwiKSBlcSAkaW5jbHVkZS0+bWl4aW5JZGVudGlmaWVyIH0gQHskc3VwcGxlbWVudGFs
RGVwZW5kZW5jaWVzLT57JHRhcmdldEZpbGVOYW1lfX0pIHsKICAgICAgICAgICAgICAgICBkaWUg
ImluY2x1ZGVkIGludGVyZmFjZSBtaXhpbiAiIC4gJGluY2x1ZGUtPm1peGluSWRlbnRpZmllciAu
ICIgbm90IGluIHN1cHBsZW1lbnRhbCBkZXBlbmRlbmNpZXMuIgogICAgICAgICAgICAgfQpAQCAt
NDYyLDYgKzQ2MywyMSBAQCBzdWIgUHJvY2Vzc0RpY3Rpb25hcnlTdXBwbGVtZW50YWxEZXBlbmRl
bmNpZXMKICAgICByZXR1cm4gdW5sZXNzICRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXM7CiAKICAg
ICBteSAkdGFyZ2V0RmlsZU5hbWUgPSBmaWxlcGFyc2UoJHRhcmdldERvY3VtZW50LT5maWxlTmFt
ZSk7CisKKyAgICAjIEZJWE1FOiBDdXJyZW50bHksIHdlIHJlcXVpcmUgYWxsIHRoZSBpbmNsdWRl
cyBzdGF0ZW1lbnRzIHRvIGJlIGluIHRoZQorICAgICMgc2FtZSBmaWxlIGFzIHRoZSBkaWN0aW9u
YXJ5IHRoZXkgYXJlIGJlaW5nIG1peGVkIGludG8sIGJ1dCB0aGF0IHJlc3RyaWN0aW9uCisgICAg
IyBpcyBhcnRpZmljaWFsIGFuZCB3ZSBjb3VsZCBhZGQgc3VwcG9ydCBmb3IgaW5jbHVkZXMgc3Rh
dGVtZW50cyBlbHNld2hlcmUuCisgICAgbXkgJWluY2x1ZGVzTWFwID0gKCk7CisgICAgZm9yZWFj
aCBteSAkaW5jbHVkZSAoQHskdGFyZ2V0RG9jdW1lbnQtPmluY2x1ZGVzfSkgeworICAgICAgICBp
ZiAoJGluY2x1ZGUtPnRhcmdldElkZW50aWZpZXIgZXEgJHRhcmdldERpY3Rpb25hcnktPnR5cGUt
Pm5hbWUpIHsKKyAgICAgICAgICAgIHVubGVzcyAoZ3JlcCB7IGZpbGVwYXJzZSgkXywgIi5pZGwi
KSBlcSAkaW5jbHVkZS0+bWl4aW5JZGVudGlmaWVyIH0gQHskc3VwcGxlbWVudGFsRGVwZW5kZW5j
aWVzLT57JHRhcmdldEZpbGVOYW1lfX0pIHsKKyAgICAgICAgICAgICAgICBkaWUgImluY2x1ZGVk
IGRpY3Rpb25hcnkgbWl4aW4gIiAuICRpbmNsdWRlLT5taXhpbklkZW50aWZpZXIgLiAiIG5vdCBp
biBzdXBwbGVtZW50YWwgZGVwZW5kZW5jaWVzLiIKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgJGluY2x1ZGVzTWFweyRpbmNsdWRlLT5taXhpbklkZW50aWZpZXJ9ID0gJGluY2x1ZGU7Cisg
ICAgICAgIH0KKyAgICB9CisKICAgICBmb3JlYWNoIG15ICRpZGxGaWxlIChAeyRzdXBwbGVtZW50
YWxEZXBlbmRlbmNpZXMtPnskdGFyZ2V0RmlsZU5hbWV9fSkgewogICAgICAgICBuZXh0IGlmIGZp
bGVwYXJzZSgkaWRsRmlsZSkgZXEgJHRhcmdldEZpbGVOYW1lOwogCkBAIC00NzAsMTEgKzQ4Niwy
MiBAQCBzdWIgUHJvY2Vzc0RpY3Rpb25hcnlTdXBwbGVtZW50YWxEZXBlbmRlbmNpZXMKICAgICAg
ICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGlkbEZpbGUsICRkZWZpbmVzLCAkcHJl
cHJvY2Vzc29yLCAkaWRsQXR0cmlidXRlcyk7CiAKICAgICAgICAgZm9yZWFjaCBteSAkZGljdGlv
bmFyeSAoQHskZG9jdW1lbnQtPmRpY3Rpb25hcmllc30pIHsKLSAgICAgICAgICAgIG5leHQgdW5s
ZXNzICRvYmplY3QtPklzVmFsaWRTdXBwbGVtZW50YWxEaWN0aW9uYXJ5KCRkaWN0aW9uYXJ5LCAk
dGFyZ2V0RGljdGlvbmFyeSk7CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkb2JqZWN0LT5Jc1Zh
bGlkU3VwcGxlbWVudGFsRGljdGlvbmFyeSgkZGljdGlvbmFyeSwgJHRhcmdldERpY3Rpb25hcnks
IFwlaW5jbHVkZXNNYXApOworCisgICAgICAgICAgICBpZiAoJGRpY3Rpb25hcnktPmlzTWl4aW4g
JiYgISRkaWN0aW9uYXJ5LT5pc1BhcnRpYWwpIHsKKyAgICAgICAgICAgICAgICAjIFJlY3Vyc2l2
ZWx5IHByb2Nlc3MgYW55IHN1cHBsZW1lbnRhbCBkZXBlbmRlbmNpZXMgZm9yIGVhY2ggdmFsaWQg
bWl4aW4uIFRoaXMKKyAgICAgICAgICAgICAgICAjIGFsbG93cyBwYXJ0aWFsIGRpY3Rpb25hcnkg
bWl4aW5zIHRvIGJlIG1lcmdlZCBpbnRvIHRoZSBtaXhpbi4KKyAgICAgICAgICAgICAgICAkb2Jq
ZWN0LT5Qcm9jZXNzRGljdGlvbmFyeVN1cHBsZW1lbnRhbERlcGVuZGVuY2llcygkZGljdGlvbmFy
eSwgJGRvY3VtZW50KTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgIyBTdXBwb3J0IGZv
ciBtZW1iZXJzIG9mIHBhcnRpYWwgZGljdGlvbmFyaWVzLgogICAgICAgICAgICAgZm9yZWFjaCBt
eSAkbWVtYmVyIChAeyRkaWN0aW9uYXJ5LT5tZW1iZXJzfSkgewotICAgICAgICAgICAgICAgIG5l
eHQgdW5sZXNzIHNob3VsZFByb3BlcnR5QmVFeHBvc2VkKCRtZW1iZXIsICR0YXJnZXREaWN0aW9u
YXJ5KTsKKyAgICAgICAgICAgICAgICBuZXh0IHVubGVzcyAkdGFyZ2V0RGljdGlvbmFyeS0+aXNN
aXhpbiB8fCBzaG91bGRQcm9wZXJ0eUJlRXhwb3NlZCgkbWVtYmVyLCAkdGFyZ2V0RGljdGlvbmFy
eSk7CisKKyAgICAgICAgICAgICAgICBpZiAoJGRpY3Rpb25hcnktPmlzTWl4aW4gJiYgISRkaWN0
aW9uYXJ5LT5pc1BhcnRpYWwpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBBZGQgaW5jbHVkZXMg
c3RhdGVtZW50IHNwZWNpZmljIGV4dGVuZGVkIGF0dHJpYnV0ZXMgdG8gZWFjaCBvcGVyYXRpb24u
CisgICAgICAgICAgICAgICAgICAgICRvYmplY3QtPk1lcmdlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJv
bVN1cHBsZW1lbnRhbCgkaW5jbHVkZXNNYXB7JGRpY3Rpb25hcnktPnR5cGUtPm5hbWV9LT5leHRl
bmRlZEF0dHJpYnV0ZXMsICRtZW1iZXIsICJkaWN0aW9uYXJ5LW1lbWJlciIpOworICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgICMgQWRkIGludGVyZmFjZS13aWRlIGV4dGVuZGVk
IGF0dHJpYnV0ZXMgdG8gZWFjaCBtZW1iZXIuCiAgICAgICAgICAgICAgICAgJG9iamVjdC0+TWVy
Z2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tU3VwcGxlbWVudGFsKCRkaWN0aW9uYXJ5LT5leHRlbmRl
ZEF0dHJpYnV0ZXMsICRtZW1iZXIsICJkaWN0aW9uYXJ5LW1lbWJlciIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCBjNDAxNzRmMWUxZDExZWU4
NzZlNGVkNzI2NTQ0MWM2Mjg1OWYzM2Y4Li41OTdhOWY4MTIyODY3MDE1NmNmM2VkZTI3N2ZhNjRl
NThjY2UyMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQpAQCAtMTcyLDYgKzE3Miw3IEBAIHN0cnVjdCggSURMRGljdGlvbmFyeSA9PiB7CiAgICAg
dHlwZSA9PiAnSURMVHlwZScsCiAgICAgcGFyZW50VHlwZSA9PiAnSURMVHlwZScsCiAgICAgbWVt
YmVycyA9PiAnQCcsICMgTGlzdCBvZiAnSURMRGljdGlvbmFyeU1lbWJlcicKKyAgICBpc01peGlu
ID0+ICckJywgIyBVc2VkIGZvciBtaXhpbiBkaWN0aW9uYXJpZXMKICAgICBpc1BhcnRpYWwgPT4g
JyQnLCAjIFVzZWQgZm9yIHBhcnRpYWwgZGljdGlvbmFyaWVzCiAgICAgZXh0ZW5kZWRBdHRyaWJ1
dGVzID0+ICclJywKIH0pOwpAQCAtMTk0LDcgKzE5NSw3IEBAIHN0cnVjdCggSURMTmFtZXNwYWNl
ID0+IHsKIAogIyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbmNsdWRlcy1zdGF0
ZW1lbnQKIHN0cnVjdCggSURMSW5jbHVkZXNTdGF0ZW1lbnQgPT4gewotICAgIGludGVyZmFjZUlk
ZW50aWZpZXIgPT4gJyQnLAorICAgIHRhcmdldElkZW50aWZpZXIgPT4gJyQnLAogICAgIG1peGlu
SWRlbnRpZmllciA9PiAnJCcsCiAgICAgZXh0ZW5kZWRBdHRyaWJ1dGVzID0+ICclJywKIH0pOwpA
QCAtNzQ3LDcgKzc0OCw3IEBAIHN1YiBwYXJzZURlZmluaXRpb24KIAogICAgIG15ICRuZXh0ID0g
JHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dmFsdWUoKSA9fiAvJG5leHRDYWxs
YmFja09ySW50ZXJmYWNlLykgewotICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlQ2FsbGJhY2tP
ckludGVyZmFjZU9yTWl4aW4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT3JJbnRlcmZhY2VNaXhpbigkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJuYW1l
c3BhY2UiKSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VOYW1lc3BhY2UoJGV4dGVuZGVk
QXR0cmlidXRlTGlzdCk7CkBAIC03NTYsNyArNzU3LDcgQEAgc3ViIHBhcnNlRGVmaW5pdGlvbgog
ICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlUGFydGlhbCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgewotICAg
ICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRGljdGlvbmFyeSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZURpY3Rpb25hcnlPckRpY3Rpb25hcnlNaXhp
bigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgp
IGVxICJlbnVtIikgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRW51bSgkZXh0ZW5kZWRB
dHRyaWJ1dGVMaXN0KTsKQEAgLTc3MCw3ICs3NzEsNyBAQCBzdWIgcGFyc2VEZWZpbml0aW9uCiAg
ICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18p
OwogfQogCi1zdWIgcGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT3JNaXhpbgorc3ViIHBhcnNlQ2Fs
bGJhY2tPckludGVyZmFjZU9ySW50ZXJmYWNlTWl4aW4KIHsKICAgICBteSAkc2VsZiA9IHNoaWZ0
OwogICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3QgPSBzaGlmdDsKQEAgLTc4Miw3ICs3ODMs
NyBAQCBzdWIgcGFyc2VDYWxsYmFja09ySW50ZXJmYWNlT3JNaXhpbgogICAgIH0KICAgICBpZiAo
JG5leHQtPnZhbHVlKCkgZXEgImludGVyZmFjZSIpIHsKICAgICAgICAgJHNlbGYtPmFzc2VydFRv
a2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJpbnRlcmZhY2UiLCBfX0xJTkVfXyk7Ci0gICAg
ICAgIHJldHVybiAkc2VsZi0+cGFyc2VJbnRlcmZhY2VPck1peGluKCRleHRlbmRlZEF0dHJpYnV0
ZUxpc3QpOworICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlSW50ZXJmYWNlT3JJbnRlcmZhY2VN
aXhpbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOwogfQpAQCAtODAzLDE0ICs4
MDQsMTQgQEAgc3ViIHBhcnNlQ2FsbGJhY2tSZXN0T3JJbnRlcmZhY2UKICAgICAkc2VsZi0+YXNz
ZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKLXN1YiBw
YXJzZUludGVyZmFjZU9yTWl4aW4KK3N1YiBwYXJzZUludGVyZmFjZU9ySW50ZXJmYWNlTWl4aW4K
IHsKICAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIG15ICRleHRlbmRlZEF0dHJpYnV0ZUxpc3Qg
PSBzaGlmdDsKIAogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgk
bmV4dC0+dmFsdWUoKSBlcSAibWl4aW4iKSB7Ci0gICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VN
aXhpbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJz
ZUludGVyZmFjZU1peGluKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgIH0KICAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKICAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZUludGVyZmFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKQEAgLTkyMiw3ICs5MjMs
NyBAQCBzdWIgcGFyc2VDYWxsYmFja0ludGVyZmFjZU1lbWJlcgogICAgICRzZWxmLT5hc3NlcnRV
bmV4cGVjdGVkVG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAotc3ViIHBhcnNl
TWl4aW4KK3N1YiBwYXJzZUludGVyZmFjZU1peGluCiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsK
ICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CkBAIC05NDEsNyArOTQyLDcg
QEAgc3ViIHBhcnNlTWl4aW4KICAgICAgICAgJGludGVyZmFjZU1peGluLT50eXBlKG1ha2VTaW1w
bGVUeXBlKCRuYW1lKSk7CiAKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYt
PmdldFRva2VuKCksICJ7IiwgX19MSU5FX18pOwotICAgICAgICBteSAkaW50ZXJmYWNlTWl4aW5N
ZW1iZXJzID0gJHNlbGYtPnBhcnNlTWl4aW5NZW1iZXJzKCk7CisgICAgICAgIG15ICRpbnRlcmZh
Y2VNaXhpbk1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRlcmZhY2VNaXhpbk1lbWJlcnMoKTsKICAg
ICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJ9IiwgX19M
SU5FX18pOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIjsiLCBfX0xJTkVfXyk7CiAgICAgICAgIGFwcGx5TWVtYmVyTGlzdCgkaW50ZXJmYWNlTWl4
aW4sICRpbnRlcmZhY2VNaXhpbk1lbWJlcnMpOwpAQCAtOTU0LDcgKzk1NSw3IEBAIHN1YiBwYXJz
ZU1peGluCiAgICAgJHNlbGYtPmFzc2VydFVuZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwg
X19MSU5FX18pOwogfQogCi1zdWIgcGFyc2VNaXhpbk1lbWJlcnMKK3N1YiBwYXJzZUludGVyZmFj
ZU1peGluTWVtYmVycwogewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgQG1peGluTWVt
YmVycyA9ICgpOwpAQCAtOTY1LDcgKzk2Niw3IEBAIHN1YiBwYXJzZU1peGluTWVtYmVycwogICAg
ICAgICBteSAkbWl4aW5NZW1iZXI7CiAKICAgICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRl
bnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dE1peGluTWVtYmVyc18xLykg
ewotICAgICAgICAgICAgJG1peGluTWVtYmVyID0gJHNlbGYtPnBhcnNlTWl4aW5NZW1iZXIoJGV4
dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICAgICAkbWl4aW5NZW1iZXIgPSAkc2VsZi0+
cGFyc2VJbnRlcmZhY2VNaXhpbk1lbWJlcigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgIH0KQEAgLTk3Niw3ICs5Nzcs
NyBAQCBzdWIgcGFyc2VNaXhpbk1lbWJlcnMKICAgICByZXR1cm4gXEBtaXhpbk1lbWJlcnM7CiB9
CiAKLXN1YiBwYXJzZU1peGluTWVtYmVyCitzdWIgcGFyc2VJbnRlcmZhY2VNaXhpbk1lbWJlcgog
ewogICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9
IHNoaWZ0OwpAQCAtMTEwNiwxMSArMTEwNywxMCBAQCBzdWIgcGFyc2VQYXJ0aWFsRGVmaW5pdGlv
bgogICAgIG15ICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgIGlmICgkbmV4dC0+dmFs
dWUoKSBlcSAiaW50ZXJmYWNlIikgewogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgk
c2VsZi0+Z2V0VG9rZW4oKSwgImludGVyZmFjZSIsIF9fTElORV9fKTsKLSAgICAgICAgcmV0dXJu
ICRzZWxmLT5wYXJzZVBhcnRpYWxJbnRlcmZhY2VPclBhcnRpYWxNaXhpbigkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxJbnRlcmZhY2VP
clBhcnRpYWxJbnRlcmZhY2VNaXhpbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICB9CiAg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJkaWN0aW9uYXJ5IikgewotICAgICAgICAkc2VsZi0+
YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnkiLCBfX0xJTkVf
Xyk7Ci0gICAgICAgIHJldHVybiAkc2VsZi0+cGFyc2VQYXJ0aWFsRGljdGlvbmFyeSgkZXh0ZW5k
ZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZVBhcnRpYWxEaWN0
aW9uYXJ5T3JQYXJ0aWFsRGljdGlvbmFyeU1peGluKCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwog
ICAgIH0KICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIm5hbWVzcGFjZSIpIHsKICAgICAgICAg
bXkgJG5hbWVzcGFjZSA9ICRzZWxmLT5wYXJzZU5hbWVzcGFjZSgkZXh0ZW5kZWRBdHRyaWJ1dGVM
aXN0KTsKQEAgLTExMjAsMTQgKzExMjAsMTQgQEAgc3ViIHBhcnNlUGFydGlhbERlZmluaXRpb24K
ICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7CiB9CiAKLXN1YiBwYXJzZVBhcnRpYWxJbnRlcmZhY2VPclBhcnRpYWxNaXhpbgorc3ViIHBh
cnNlUGFydGlhbEludGVyZmFjZU9yUGFydGlhbEludGVyZmFjZU1peGluCiB7CiAgICAgbXkgJHNl
bGYgPSBzaGlmdDsKICAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CiAKICAg
ICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICBpZiAoJG5leHQtPnZhbHVlKCkg
ZXEgIm1peGluIikgewotICAgICAgICBteSAkbWl4aW4gPSAkc2VsZi0+cGFyc2VNaXhpbigkZXh0
ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICAgICAgbXkgJG1peGluID0gJHNlbGYtPnBhcnNlSW50
ZXJmYWNlTWl4aW4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgICRtaXhpbi0+aXNQ
YXJ0aWFsKDEpOwogICAgICAgICByZXR1cm4gJG1peGluOwogICAgIH0KQEAgLTEyNzEsNiArMTI3
MSwyNSBAQCBzdWIgcGFyc2VJbnRlcmZhY2VNZW1iZXIKICAgICAkc2VsZi0+YXNzZXJ0VW5leHBl
Y3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVfXyk7CiB9CiAKK3N1YiBwYXJzZVBhcnRp
YWxEaWN0aW9uYXJ5T3JQYXJ0aWFsRGljdGlvbmFyeU1peGluCit7CisgICAgbXkgJHNlbGYgPSBz
aGlmdDsKKyAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0ID0gc2hpZnQ7CisKKyAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgImRpY3Rpb25hcnkiLCBfX0xJ
TkVfXyk7CisKKyAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKKyAgICBpZiAoJG5l
eHQtPnZhbHVlKCkgZXEgIm1peGluIikgeworICAgICAgICBteSAkbWl4aW4gPSAkc2VsZi0+cGFy
c2VEaWN0aW9uYXJ5TWl4aW4oJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisgICAgICAgICRtaXhp
bi0+aXNQYXJ0aWFsKDEpOworICAgICAgICByZXR1cm4gJG1peGluOworICAgIH0KKyAgICBpZiAo
JG5leHQtPnR5cGUoKSA9PSBJZGVudGlmaWVyVG9rZW4pIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZVBhcnRpYWxEaWN0aW9uYXJ5KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKIHN1YiBwYXJzZVBhcnRpYWxEaWN0aW9uYXJ5CiB7CiAgICAgbXkgJHNlbGYgPSBz
aGlmdDsKQEAgLTEyOTksMTUgKzEzMTgsNjEgQEAgc3ViIHBhcnNlUGFydGlhbERpY3Rpb25hcnkK
ICAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7CiB9CiAKK3N1YiBwYXJzZURpY3Rpb25hcnlPckRpY3Rpb25hcnlNaXhpbgoreworICAgIG15
ICRzZWxmID0gc2hpZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0Owor
CisgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJkaWN0aW9u
YXJ5IiwgX19MSU5FX18pOworCisgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7Cisg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtaXhpbiIpIHsKKyAgICAgICAgcmV0dXJuICRzZWxm
LT5wYXJzZURpY3Rpb25hcnlNaXhpbigkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKKyAgICB9Cisg
ICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuKSB7CisgICAgICAgIHJldHVy
biAkc2VsZi0+cGFyc2VEaWN0aW9uYXJ5KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOworICAgIH0K
KyAgICAkc2VsZi0+YXNzZXJ0VW5leHBlY3RlZFRva2VuKCRuZXh0LT52YWx1ZSgpLCBfX0xJTkVf
Xyk7Cit9CisKK3N1YiBwYXJzZURpY3Rpb25hcnlNaXhpbgoreworICAgIG15ICRzZWxmID0gc2hp
ZnQ7CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlTGlzdCA9IHNoaWZ0OworCisgICAgbXkgJG5l
eHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CisgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICJtaXhp
biIpIHsKKyAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICJtaXhpbiIsIF9fTElORV9fKTsKKworICAgICAgICBteSAkZGljdGlvbmFyeSA9IElETERpY3Rp
b25hcnktPm5ldygpOworICAgICAgICAkZGljdGlvbmFyeS0+aXNNaXhpbigxKTsKKworICAgICAg
ICAkc2VsZi0+YXNzZXJ0RXh0ZW5kZWRBdHRyaWJ1dGVzVmFsaWRGb3JDb250ZXh0KCRleHRlbmRl
ZEF0dHJpYnV0ZUxpc3QsICJkaWN0aW9uYXJ5Iik7CisgICAgICAgICRkaWN0aW9uYXJ5LT5leHRl
bmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CisKKyAgICAgICAgbXkgJG5h
bWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOworICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5U
eXBlKCRuYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CisKKyAgICAgICAgbXkgJG5hbWUgPSAk
bmFtZVRva2VuLT52YWx1ZSgpOworICAgICAgICAkZGljdGlvbmFyeS0+dHlwZShtYWtlU2ltcGxl
VHlwZSgkbmFtZSkpOworCisgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKKyAgICAgICAgJGRpY3Rpb25hcnktPm1lbWJlcnMo
JHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMoKSk7CisgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKKyAgICAgICAgJHNl
bGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOwor
CisgICAgICAgIHJldHVybiAkZGljdGlvbmFyeTsKKyAgICB9CisgICAgJHNlbGYtPmFzc2VydFVu
ZXhwZWN0ZWRUb2tlbigkbmV4dC0+dmFsdWUoKSwgX19MSU5FX18pOworfQorCiBzdWIgcGFyc2VE
aWN0aW9uYXJ5CiB7CiAgICAgbXkgJHNlbGYgPSBzaGlmdDsKICAgICBteSAkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0ID0gc2hpZnQ7CiAKICAgICBteSAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsK
LSAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImRpY3Rpb25hcnkiKSB7Ci0gICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiZGljdGlvbmFyeSIsIF9fTElO
RV9fKTsKLQorICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbikgewogICAg
ICAgICBteSAkZGljdGlvbmFyeSA9IElETERpY3Rpb25hcnktPm5ldygpOwogCiAgICAgICAgICRz
ZWxmLT5hc3NlcnRFeHRlbmRlZEF0dHJpYnV0ZXNWYWxpZEZvckNvbnRleHQoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCwgImRpY3Rpb25hcnkiKTsKQEAgLTE1NjIsOCArMTYyNyw4IEBAIHN1YiBwYXJz
ZUluY2x1ZGVzU3RhdGVtZW50CiAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRv
a2VuKSB7CiAgICAgICAgIG15ICRpbmNsdWRlc1N0YXRlbWVudCA9IElETEluY2x1ZGVzU3RhdGVt
ZW50LT5uZXcoKTsKICAgICAKLSAgICAgICAgbXkgJGludGVyZmFjZUlkZW50aWZpZXIgPSAkc2Vs
Zi0+cGFyc2VOYW1lKCk7Ci0gICAgICAgICRpbmNsdWRlc1N0YXRlbWVudC0+aW50ZXJmYWNlSWRl
bnRpZmllcigkaW50ZXJmYWNlSWRlbnRpZmllcik7CisgICAgICAgIG15ICR0YXJnZXRJZGVudGlm
aWVyID0gJHNlbGYtPnBhcnNlTmFtZSgpOworICAgICAgICAkaW5jbHVkZXNTdGF0ZW1lbnQtPnRh
cmdldElkZW50aWZpZXIoJHRhcmdldElkZW50aWZpZXIpOwogCiAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiaW5jbHVkZXMiLCBfX0xJTkVfXyk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvcHJlcHJvY2Vzcy1p
ZGxzLnBsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMu
cGwKaW5kZXggZDAzM2VkNjA2MTdkYTQzMmE1MzQxMTE1NGQxMmQwNjVkNDgwODRhNy4uOGUzYWE5
NjM5ZjBkMjJmMGVkNGY1NjE4MDMwYTA5N2VjZjc2YzU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9wcmVwcm9jZXNzLWlkbHMucGwKQEAgLTE4OCwxNiArMTg4
LDEyIEBAIGZvcmVhY2ggbXkgJGlkbEZpbGVOYW1lIChzb3J0IGtleXMgJWlkbEZpbGVOYW1lSGFz
aCkgewogICAgICAgICAkZGljdGlvbmFyeURlcGVuZGVuY2llc3skaWRsRmlsZS0+cHJpbWFyeURl
Y2xhcmF0aW9uTmFtZX0gPSAoam9pbigiLmlkbCAiLCBAeyRiYXNlRGljdGlvbmFyaWVzfSkgLiAi
LmlkbCIpOwogICAgIH0KIAotICAgICMgU2tpcCBpZiB0aGUgSURMIGZpbGUgZG9lcyBub3QgY29u
dGFpbiBhbiBpbnRlcmZhY2Ugb3IgYSBjYWxsYmFjayBpbnRlcmZhY2UuCi0gICAgIyBUaGUgSURM
IG1heSBjb250YWluIGEgZGljdGlvbmFyeS4KLSAgICBuZXh0IHVubGVzcyBjb250YWluc0ludGVy
ZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsKLQogICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gJGlkbEZpbGUtPnByaW1hcnlEZWNsYXJhdGlvbk5hbWU7CiAgICAgIyBIYW5k
bGUgaW5jbHVkZSBzdGF0ZW1lbnRzLgotICAgIG15ICRpbmNsdWRlZEludGVyZmFjZXMgPSBnZXRJ
bmNsdWRlZEludGVyZmFjZXNGcm9tSURMKCRpZGxGaWxlLCAkaW50ZXJmYWNlTmFtZSk7Ci0gICAg
Zm9yZWFjaCBteSAkaW5jbHVkZWRJbnRlcmZhY2UgKEB7JGluY2x1ZGVkSW50ZXJmYWNlc30pIHsK
LSAgICAgICAgbXkgJGluY2x1ZGVkSWRsRmlsZVBhdGggPSAkaW50ZXJmYWNlTmFtZVRvSWRsRmls
ZVBhdGh7JGluY2x1ZGVkSW50ZXJmYWNlfTsKLSAgICAgICAgZGllICJDb3VsZCBub3QgZmluZCBh
IHRoZSBJREwgZmlsZSB3aGVyZSB0aGUgZm9sbG93aW5nIGluY2x1ZGVkIGludGVyZmFjZSBpcyBk
ZWZpbmVkOiAkaW5jbHVkZWRJbnRlcmZhY2UiIHVubGVzcyAkaW5jbHVkZWRJZGxGaWxlUGF0aDsK
KyAgICBteSAkaW5jbHVkZXMgPSBnZXRJbmNsdWRlc0Zyb21JREwoJGlkbEZpbGUsICRpbnRlcmZh
Y2VOYW1lKTsKKyAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChAeyRpbmNsdWRlc30pIHsKKyAgICAg
ICAgbXkgJGluY2x1ZGVkSWRsRmlsZVBhdGggPSAkaW50ZXJmYWNlTmFtZVRvSWRsRmlsZVBhdGh7
JGluY2x1ZGV9OworICAgICAgICBkaWUgIkNvdWxkIG5vdCBmaW5kIHRoZSBJREwgZmlsZSB3aGVy
ZSAkaW5jbHVkZSBpcyBkZWZpbmVkIiB1bmxlc3MgJGluY2x1ZGVkSWRsRmlsZVBhdGg7CiAgICAg
ICAgIGlmICgkc3VwcGxlbWVudGFsRGVwZW5kZW5jaWVzeyRpbmNsdWRlZElkbEZpbGVQYXRofSkg
ewogICAgICAgICAgICAgcHVzaChAeyRzdXBwbGVtZW50YWxEZXBlbmRlbmNpZXN7JGluY2x1ZGVk
SWRsRmlsZVBhdGh9fSwgJGludGVyZmFjZU5hbWUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMjA1
LDYgKzIwMSwxMCBAQCBmb3JlYWNoIG15ICRpZGxGaWxlTmFtZSAoc29ydCBrZXlzICVpZGxGaWxl
TmFtZUhhc2gpIHsKICAgICAgICAgfQogICAgIH0KIAorICAgICMgU2tpcCBpZiB0aGUgSURMIGZp
bGUgZG9lcyBub3QgY29udGFpbiBhbiBpbnRlcmZhY2Ugb3IgYSBjYWxsYmFjayBpbnRlcmZhY2Uu
CisgICAgIyBUaGUgSURMIG1heSBjb250YWluIGEgZGljdGlvbmFyeS4KKyAgICBuZXh0IHVubGVz
cyBjb250YWluc0ludGVyZmFjZU9yQ2FsbGJhY2tJbnRlcmZhY2VGcm9tSURMKCRpZGxGaWxlKTsK
KwogICAgIG5leHQgaWYgaXNNaXhpbkludGVyZmFjZUZyb21JREwoJGlkbEZpbGUpOwogCiAgICAg
bXkgJGlzQ2FsbGJhY2tJbnRlcmZhY2UgPSBpc0NhbGxiYWNrSW50ZXJmYWNlRnJvbUlETCgkaWRs
RmlsZSk7CkBAIC00ODksMTMgKzQ4OSwxMyBAQCBzdWIgZ2V0UGFydGlhbE5hbWVzRnJvbUlETAog
ICAgIG15ICRmaWxlQ29udGVudHMgPSAkaWRsRmlsZS0+ZmlsZUNvbnRlbnRzOwogCiAgICAgbXkg
QHBhcnRpYWxOYW1lcyA9ICgpOwotICAgIHdoaWxlICgkZmlsZUNvbnRlbnRzID1+IC9wYXJ0aWFs
XHMraW50ZXJmYWNlXHMrbWl4aW5ccysoXHcrKS9tZykgeworICAgIHdoaWxlICgkZmlsZUNvbnRl
bnRzID1+IC9wYXJ0aWFsXHMrKD86aW50ZXJmYWNlfGRpY3Rpb25hcnkpXHMrbWl4aW5ccysoXHcr
KS9tZykgewogICAgICAgICBwdXNoKEBwYXJ0aWFsTmFtZXMsICQxKTsKICAgICB9CiAKICAgICAk
ZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKLSAgICB3aGlsZSAoJGZpbGVD
b250ZW50cyA9fiAvcGFydGlhbFxzKyhpbnRlcmZhY2V8ZGljdGlvbmFyeXxuYW1lc3BhY2UpXHMr
KFx3KykvbWcpIHsKLSAgICAgICAgcHVzaChAcGFydGlhbE5hbWVzLCAkMikgaWYgJDIgbmUgIm1p
eGluIjsKKyAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9fiAvcGFydGlhbFxzKyg/OmludGVyZmFj
ZXxkaWN0aW9uYXJ5fG5hbWVzcGFjZSlccysoXHcrKS9tZykgeworICAgICAgICBwdXNoKEBwYXJ0
aWFsTmFtZXMsICQxKSBpZiAkMSBuZSAibWl4aW4iOwogICAgIH0KICAgICAKICAgICBpZiAoJHZh
bGlkYXRlQWdhaW5zdFBhcnNlcikgewpAQCAtNTI4LDQwICs1MjgsNDAgQEAgc3ViIGdldFBhcnRp
YWxOYW1lc0Zyb21JREwKIAogIyBpZGVudGlmaWVyLUEgaW5jbHVkZXMgaWRlbnRpZmllci1COwog
IyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbmNsdWRlcy1zdGF0ZW1lbnQKLXN1
YiBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMCitzdWIgZ2V0SW5jbHVkZXNGcm9tSURMCiB7
CiAgICAgbXkgJGlkbEZpbGUgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0
OworICAgIG15ICRpZGVudGlmaWVyID0gc2hpZnQ7CiAKICAgICBteSAkZmlsZUNvbnRlbnRzID0g
JGlkbEZpbGUtPmZpbGVDb250ZW50czsKIAotICAgIG15IEBpbmNsdWRlZEludGVyZmFjZXMgPSAo
KTsKKyAgICBteSBAaW5jbHVkZXMgPSAoKTsKICAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9fiAv
XGIoXHcrKVxzK2luY2x1ZGVzXHMrKFx3Kylccyo7L21nKSB7Ci0gICAgICAgIGRpZSAiSWRlbnRp
ZmllciBvbiB0aGUgbGVmdCBvZiB0aGUgJ2luY2x1ZGVzJyBzdGF0ZW1lbnQgc2hvdWxkIGJlICRp
bnRlcmZhY2VOYW1lIGluICRpbnRlcmZhY2VOYW1lLmlkbCwgYnV0IGZvdW5kICQxIiBpZiAkMSBu
ZSAkaW50ZXJmYWNlTmFtZTsKLSAgICAgICAgcHVzaChAaW5jbHVkZWRJbnRlcmZhY2VzLCAkMik7
CisgICAgICAgIGRpZSAiSWRlbnRpZmllciBvbiB0aGUgbGVmdCBvZiB0aGUgJ2luY2x1ZGVzJyBz
dGF0ZW1lbnQgc2hvdWxkIGJlICRpZGVudGlmaWVyIGluICRpZGVudGlmaWVyLmlkbCwgYnV0IGZv
dW5kICQxIiBpZiAkMSBuZSAkaWRlbnRpZmllcjsKKyAgICAgICAgcHVzaChAaW5jbHVkZXMsICQy
KTsKICAgICB9CiAKICAgICBpZiAoJHZhbGlkYXRlQWdhaW5zdFBhcnNlcikgewotICAgICAgICBw
cmludCAiVmFsaWRhdGluZyBnZXRJbmNsdWRlZEludGVyZmFjZXNGcm9tSURMIGZvciAiIC4gJGlk
bEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24gcGFyc2VyLlxuIiBpZiAkdmVy
Ym9zZTsKKyAgICAgICAgcHJpbnQgIlZhbGlkYXRpbmcgZ2V0SW5jbHVkZXNGcm9tSURMIGZvciAi
IC4gJGlkbEZpbGUtPmZpbGVOYW1lIC4gIiBhZ2FpbnN0IHZhbGlkYXRpb24gcGFyc2VyLlxuIiBp
ZiAkdmVyYm9zZTsKIAotICAgICAgICBteSBAaW5jbHVkZWRJbnRlcmZhY2VzRnJvbVBhcnNlZERv
Y3VtZW50ID0gKCk7CisgICAgICAgIG15IEBpbmNsdWRlc0Zyb21QYXJzZWREb2N1bWVudCA9ICgp
OwogICAgICAgICBmb3JlYWNoIG15ICRpbmNsdWRlIChAeyRpZGxGaWxlLT5wYXJzZWREb2N1bWVu
dC0+aW5jbHVkZXN9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbmNsdWRlZEludGVyZmFjZXNGcm9t
UGFyc2VkRG9jdW1lbnQsICRpbmNsdWRlLT5taXhpbklkZW50aWZpZXIpOworICAgICAgICAgICAg
cHVzaChAaW5jbHVkZXNGcm9tUGFyc2VkRG9jdW1lbnQsICRpbmNsdWRlLT5taXhpbklkZW50aWZp
ZXIpOwogICAgICAgICB9CiAKLSAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcyA9
IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNlczsKLSAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVkSW50
ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQgQGluY2x1ZGVkSW50ZXJmYWNlc0Zyb21Q
YXJzZWREb2N1bWVudDsKKyAgICAgICAgbXkgQHNvcnRlZEluY2x1ZGVzID0gc29ydCBAaW5jbHVk
ZXM7CisgICAgICAgIG15IEBzb3J0ZWRJbmNsdWRlc0Zyb21QYXJzZWREb2N1bWVudCA9IHNvcnQg
QGluY2x1ZGVzRnJvbVBhcnNlZERvY3VtZW50OwogCiAgICAgICAgIGxvY2FsICREYXRhOjpEdW1w
ZXI6OlRlcnNlID0gMTsKICAgICAgICAgbG9jYWwgJERhdGE6OkR1bXBlcjo6SW5kZW50ID0gMDsK
IAotICAgICAgICB1bmxlc3MgKGxpc3RzQXJlSWRlbnRpY2FsKFxAc29ydGVkSW5jbHVkZWRJbnRl
cmZhY2VzLCBcQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlc0Zyb21QYXJzZWREb2N1bWVudCkpIHsK
LSAgICAgICAgICAgIGRpZSAiRkFJTFVSRTogSW5jbHVkZWQgaW50ZXJmYWNlcyBmcm9tIHJlZ3Vs
YXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBEdW1wZXIoQHNvcnRlZEluY2x1ZGVkSW50
ZXJmYWNlcykgLiAiKSBkb24ndCBtYXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgi
IC4gRHVtcGVyKEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXNGcm9tUGFyc2VkRG9jdW1lbnQpIC4g
IikgWyIgLiAkaWRsRmlsZS0+ZmlsZU5hbWUgLiAiXSI7CisgICAgICAgIHVubGVzcyAobGlzdHNB
cmVJZGVudGljYWwoXEBzb3J0ZWRJbmNsdWRlcywgXEBzb3J0ZWRJbmNsdWRlc0Zyb21QYXJzZWRE
b2N1bWVudCkpIHsKKyAgICAgICAgICAgIGRpZSAiRkFJTFVSRTogSW5jbHVkZXMgZnJvbSByZWd1
bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRJbmNsdWRlcykg
LiAiKSBkb24ndCBtYXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVy
KEBzb3J0ZWRJbmNsdWRlc0Zyb21QYXJzZWREb2N1bWVudCkgLiAiKSBbIiAuICRpZGxGaWxlLT5m
aWxlTmFtZSAuICJdIjsKICAgICAgICAgfQotICAgICAgICBwcmludCAiU1VDQ0VTUyEgSW5jbHVk
ZWQgaW50ZXJmYWNlcyBmcm9tIHJlZ3VsYXIgZXhwcmVzc2lvbiBiYXNlZCBwYXJzZXIgKCIgLiBE
dW1wZXIoQHNvcnRlZEluY2x1ZGVkSW50ZXJmYWNlcykgLiAiKSBtYXRjaCB0aG9zZSBmcm9tIHZh
bGlkYXRpb24gcGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRJbmNsdWRlZEludGVyZmFjZXNGcm9t
UGFyc2VkRG9jdW1lbnQpIC4gIikuXG4iIGlmICR2ZXJib3NlOworICAgICAgICBwcmludCAiU1VD
Q0VTUyEgSW5jbHVkZXMgZnJvbSByZWd1bGFyIGV4cHJlc3Npb24gYmFzZWQgcGFyc2VyICgiIC4g
RHVtcGVyKEBzb3J0ZWRJbmNsdWRlcykgLiAiKSBtYXRjaCB0aG9zZSBmcm9tIHZhbGlkYXRpb24g
cGFyc2VyICgiIC4gRHVtcGVyKEBzb3J0ZWRJbmNsdWRlc0Zyb21QYXJzZWREb2N1bWVudCkgLiAi
KS5cbiIgaWYgJHZlcmJvc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIFxAaW5jbHVkZWRJbnRlcmZh
Y2VzCisgICAgcmV0dXJuIFxAaW5jbHVkZXMKIH0KIAogc3ViIGlzQ2FsbGJhY2tJbnRlcmZhY2VG
cm9tSURMCkBAIC03NTYsMTMgKzc1NiwxMyBAQCBzdWIgZ2V0VW5kZWZpbmVkQmFzZURpY3Rpb25h
cmllc0Zyb21JREwKICAgICBteSAkZmlsZUNvbnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50
czsKIAogICAgIG15IEBkaWN0aW9uYXJ5TmFtZXMgPSAoKTsKLSAgICB3aGlsZSAoJGZpbGVDb250
ZW50cyA9fiAvXHMqZGljdGlvbmFyeVxzKyhcdyspXHMqL21nKSB7CisgICAgd2hpbGUgKCRmaWxl
Q29udGVudHMgPX4gL1xzKmRpY3Rpb25hcnlccysoPzptaXhpblxzKyk/KFx3KylccyovbWcpIHsK
ICAgICAgICAgcHVzaChAZGljdGlvbmFyeU5hbWVzLCAkMSkKICAgICB9CiAKICAgICAkZmlsZUNv
bnRlbnRzID0gJGlkbEZpbGUtPmZpbGVDb250ZW50czsKICAgICBteSBAYmFzZURpY3Rpb25hcmll
cyA9ICgpOwotICAgIHdoaWxlICgkZmlsZUNvbnRlbnRzID1+IC9ccypkaWN0aW9uYXJ5XHMrKFx3
Kylccys6XHMrKFx3KylccyovbWcpIHsKKyAgICB3aGlsZSAoJGZpbGVDb250ZW50cyA9fiAvXHMq
ZGljdGlvbmFyeVxzKyg/Om1peGluXHMrKT8oXHcrKVxzKzpccysoXHcrKVxzKi9tZykgewogICAg
ICAgICBuZXh0IGlmIChncmVwIHsgJF8gZXEgJDIgfSBAZGljdGlvbmFyeU5hbWVzKTsKICAgICAg
ICAgbmV4dCBpZiAoZ3JlcCB7ICRfIGVxICQyIH0gQGJhc2VEaWN0aW9uYXJpZXMpOwogICAgICAg
ICBwdXNoKEBiYXNlRGljdGlvbmFyaWVzLCAkMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGljdGlvbmFyeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGljdGlvbmFyeS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjQwNTQxZjA3MjFhMGYwYzkwZThjMDQwMTllMGEzNjExYzJhODgyMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REaWN0aW9uYXJ5LmNwcApAQCAtMCwwICsxLDIzNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMg
cGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgICAgVGhpcyBmaWxlIGhh
cyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEK
KworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjIpCisKKyNpbmNsdWRlICJKU1Rlc3REaWN0aW9uYXJ5LmgiCisKKyNpbmNs
dWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCisjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNDSW5saW5lcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL09iamVjdENv
bnN0cnVjdG9yLmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgewordXNpbmcgbmFtZXNwYWNlIEpT
QzsKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKwordGVt
cGxhdGU8PiBUZXN0RGljdGlvbmFyeSBjb252ZXJ0RGljdGlvbmFyeTxUZXN0RGljdGlvbmFyeT4o
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgYm9vbCBpc051bGxPclVu
ZGVmaW5lZCA9IHZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCk7CisgICAgYXV0byogb2JqZWN0ID0g
aXNOdWxsT3JVbmRlZmluZWQgPyBudWxscHRyIDogdmFsdWUuZ2V0T2JqZWN0KCk7CisgICAgaWYg
KFVOTElLRUxZKCFpc051bGxPclVuZGVmaW5lZCAmJiAhb2JqZWN0KSkgeworICAgICAgICB0aHJv
d1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CisgICAgICAgIHJl
dHVybiB7IH07CisgICAgfQorICAgIFRlc3REaWN0aW9uYXJ5IHJlc3VsdDsKKyNpZiBFTkFCTEUo
Q29uZGl0aW9uMTEpCisgICAgSlNWYWx1ZSBjb25kaXRpb25hbFByb3BlcnR5VmFsdWU7CisgICAg
aWYgKGlzTnVsbE9yVW5kZWZpbmVkKQorICAgICAgICBjb25kaXRpb25hbFByb3BlcnR5VmFsdWUg
PSBqc1VuZGVmaW5lZCgpOworICAgIGVsc2UgeworICAgICAgICBjb25kaXRpb25hbFByb3BlcnR5
VmFsdWUgPSBvYmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgImNvbmRpdGlvbmFsUHJvcGVydHkiKSk7CisgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICB9CisgICAgaWYgKCFjb25kaXRpb25hbFBy
b3BlcnR5VmFsdWUuaXNVbmRlZmluZWQoKSkgeworICAgICAgICByZXN1bHQuY29uZGl0aW9uYWxQ
cm9wZXJ0eSA9IGNvbnZlcnQ8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25kaXRp
b25hbFByb3BlcnR5VmFsdWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHsgfSk7CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCisgICAgSlNWYWx1ZSBtaXhpbkNvbmRpdGlvbmFsUHJvcGVydHlWYWx1
ZTsKKyAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQpCisgICAgICAgIG1peGluQ29uZGl0aW9uYWxQ
cm9wZXJ0eVZhbHVlID0ganNVbmRlZmluZWQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbWl4aW5D
b25kaXRpb25hbFByb3BlcnR5VmFsdWUgPSBvYmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eSIp
KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIH0K
KyAgICBpZiAoIW1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eVZhbHVlLmlzVW5kZWZpbmVkKCkpIHsK
KyAgICAgICAgcmVzdWx0Lm1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eSA9IGNvbnZlcnQ8SURMRG91
YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBtaXhpbkNvbmRpdGlvbmFsUHJvcGVydHlWYWx1ZSk7
CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICB9Cisj
ZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAg
ICBKU1ZhbHVlIG1peGluUHJvcGVydHlWYWx1ZTsKKyAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQp
CisgICAgICAgIG1peGluUHJvcGVydHlWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgZWxzZSB7
CisgICAgICAgIG1peGluUHJvcGVydHlWYWx1ZSA9IG9iamVjdC0+Z2V0KCZsZXhpY2FsR2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWl4aW5Qcm9wZXJ0eSIpKTsKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIH0KKyAgICBp
ZiAoIW1peGluUHJvcGVydHlWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIHJlc3VsdC5t
aXhpblByb3BlcnR5ID0gY29udmVydDxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIG1p
eGluUHJvcGVydHlWYWx1ZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgeyB9KTsKKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKKyAgICBKU1ZhbHVlIG1peGluU2V0dGluZ1Byb3BlcnR5VmFsdWU7Cisg
ICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKQorICAgICAgICBtaXhpblNldHRpbmdQcm9wZXJ0eVZh
bHVlID0ganNVbmRlZmluZWQoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbWl4aW5TZXR0aW5nUHJv
cGVydHlWYWx1ZSA9IG9iamVjdC0+Z2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAibWl4aW5TZXR0aW5nUHJvcGVydHkiKSk7CisgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICB9CisgICAgaWYgKCFtaXhpblNl
dHRpbmdQcm9wZXJ0eVZhbHVlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAgcmVzdWx0Lm1peGlu
U2V0dGluZ1Byb3BlcnR5ID0gY29udmVydDxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3Qs
IG1peGluU2V0dGluZ1Byb3BlcnR5VmFsdWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIHsgfSk7CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisgICAgSlNWYWx1ZSBwYXJ0aWFsTWl4aW5Db25kaXRp
b25hbFByb3BlcnR5VmFsdWU7CisgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKQorICAgICAgICBw
YXJ0aWFsTWl4aW5Db25kaXRpb25hbFByb3BlcnR5VmFsdWUgPSBqc1VuZGVmaW5lZCgpOworICAg
IGVsc2UgeworICAgICAgICBwYXJ0aWFsTWl4aW5Db25kaXRpb25hbFByb3BlcnR5VmFsdWUgPSBv
YmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgInBhcnRpYWxNaXhpbkNvbmRpdGlvbmFsUHJvcGVydHkiKSk7CisgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAgICB9CisgICAgaWYgKCFwYXJ0aWFsTWl4
aW5Db25kaXRpb25hbFByb3BlcnR5VmFsdWUuaXNVbmRlZmluZWQoKSkgeworICAgICAgICByZXN1
bHQucGFydGlhbE1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eSA9IGNvbnZlcnQ8SURMRG91YmxlPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBwYXJ0aWFsTWl4aW5Db25kaXRpb25hbFByb3BlcnR5VmFsdWUp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgfQor
I2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCisg
ICAgSlNWYWx1ZSBwYXJ0aWFsTWl4aW5Qcm9wZXJ0eVZhbHVlOworICAgIGlmIChpc051bGxPclVu
ZGVmaW5lZCkKKyAgICAgICAgcGFydGlhbE1peGluUHJvcGVydHlWYWx1ZSA9IGpzVW5kZWZpbmVk
KCk7CisgICAgZWxzZSB7CisgICAgICAgIHBhcnRpYWxNaXhpblByb3BlcnR5VmFsdWUgPSBvYmpl
Y3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
InBhcnRpYWxNaXhpblByb3BlcnR5IikpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIHsgfSk7CisgICAgfQorICAgIGlmICghcGFydGlhbE1peGluUHJvcGVydHlWYWx1
ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIHJlc3VsdC5wYXJ0aWFsTWl4aW5Qcm9wZXJ0eSA9
IGNvbnZlcnQ8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBwYXJ0aWFsTWl4aW5Qcm9w
ZXJ0eVZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0p
OworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQorICAgIEpTVmFsdWUgcGFydGlhbE1peGluU2V0dGluZ1Byb3BlcnR5VmFsdWU7Cisg
ICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKQorICAgICAgICBwYXJ0aWFsTWl4aW5TZXR0aW5nUHJv
cGVydHlWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7CisgICAgZWxzZSB7CisgICAgICAgIHBhcnRpYWxN
aXhpblNldHRpbmdQcm9wZXJ0eVZhbHVlID0gb2JqZWN0LT5nZXQoJmxleGljYWxHbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJwYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVy
dHkiKSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKKyAg
ICB9CisgICAgaWYgKCFwYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVydHlWYWx1ZS5pc1VuZGVmaW5l
ZCgpKSB7CisgICAgICAgIHJlc3VsdC5wYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVydHkgPSBjb252
ZXJ0PElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgcGFydGlhbE1peGluU2V0dGluZ1By
b3BlcnR5VmFsdWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsg
fSk7CisgICAgfQorI2VuZGlmCisgICAgSlNWYWx1ZSBwcm9wZXJ0eVZhbHVlOworICAgIGlmIChp
c051bGxPclVuZGVmaW5lZCkKKyAgICAgICAgcHJvcGVydHlWYWx1ZSA9IGpzVW5kZWZpbmVkKCk7
CisgICAgZWxzZSB7CisgICAgICAgIHByb3BlcnR5VmFsdWUgPSBvYmplY3QtPmdldCgmbGV4aWNh
bEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInByb3BlcnR5IikpOwor
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisgICAgfQorICAg
IGlmICghcHJvcGVydHlWYWx1ZS5pc1VuZGVmaW5lZCgpKSB7CisgICAgICAgIHJlc3VsdC5wcm9w
ZXJ0eSA9IGNvbnZlcnQ8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eVZh
bHVlKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAg
IH0KKyAgICBKU1ZhbHVlIHNldHRpbmdQcm9wZXJ0eVZhbHVlOworICAgIGlmIChpc051bGxPclVu
ZGVmaW5lZCkKKyAgICAgICAgc2V0dGluZ1Byb3BlcnR5VmFsdWUgPSBqc1VuZGVmaW5lZCgpOwor
ICAgIGVsc2UgeworICAgICAgICBzZXR0aW5nUHJvcGVydHlWYWx1ZSA9IG9iamVjdC0+Z2V0KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic2V0dGluZ1By
b3BlcnR5IikpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7
CisgICAgfQorICAgIGlmICghc2V0dGluZ1Byb3BlcnR5VmFsdWUuaXNVbmRlZmluZWQoKSkgewor
ICAgICAgICByZXN1bHQuc2V0dGluZ1Byb3BlcnR5ID0gY29udmVydDxJRExEb3VibGU+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHNldHRpbmdQcm9wZXJ0eVZhbHVlKTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitKU0M6OkpTT2JqZWN0KiBjb252ZXJ0RGljdGlvbmFyeVRvSlMoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgY29uc3QgVGVzdERpY3Rpb25hcnkmIGRpY3Rpb25hcnkpCit7CisgICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKKworICAgIGF1dG8gcmVzdWx0ID0gY29u
c3RydWN0RW1wdHlPYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKSk7CisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpCisgICAgaWYgKCFJRExE
b3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuY29uZGl0aW9uYWxQcm9wZXJ0eSkpIHsKKyAg
ICAgICAgYXV0byBjb25kaXRpb25hbFByb3BlcnR5VmFsdWUgPSB0b0pTPElETERvdWJsZT4oSURM
RG91YmxlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZGljdGlvbmFyeS5jb25kaXRpb25hbFBy
b3BlcnR5KSk7CisgICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJjb25kaXRpb25hbFByb3BlcnR5IiksIGNvbmRpdGlvbmFsUHJvcGVy
dHlWYWx1ZSk7CisgICAgfQorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCisgICAgaWYgKCFJRExEb3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25h
cnkubWl4aW5Db25kaXRpb25hbFByb3BlcnR5KSkgeworICAgICAgICBhdXRvIG1peGluQ29uZGl0
aW9uYWxQcm9wZXJ0eVZhbHVlID0gdG9KUzxJRExEb3VibGU+KElETERvdWJsZTo6ZXh0cmFjdFZh
bHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkubWl4aW5Db25kaXRpb25hbFByb3BlcnR5KSk7Cisg
ICAgICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sICJtaXhpbkNvbmRpdGlvbmFsUHJvcGVydHkiKSwgbWl4aW5Db25kaXRpb25hbFByb3BlcnR5
VmFsdWUpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQorICAgIGlmICghSURMRG91YmxlOjppc051bGxWYWx1ZShkaWN0aW9uYXJ5
Lm1peGluUHJvcGVydHkpKSB7CisgICAgICAgIGF1dG8gbWl4aW5Qcm9wZXJ0eVZhbHVlID0gdG9K
UzxJRExEb3VibGU+KElETERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25h
cnkubWl4aW5Qcm9wZXJ0eSkpOworICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibWl4aW5Qcm9wZXJ0eSIpLCBtaXhpblByb3BlcnR5
VmFsdWUpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQorICAgIGlmIChqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmZ2xvYmFs
T2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5nc1ZhbHVlcygpLnRlc3RT
ZXR0aW5nRW5hYmxlZCkgeworICAgICAgICBpZiAoIUlETERvdWJsZTo6aXNOdWxsVmFsdWUoZGlj
dGlvbmFyeS5taXhpblNldHRpbmdQcm9wZXJ0eSkpIHsKKyAgICAgICAgICAgIGF1dG8gbWl4aW5T
ZXR0aW5nUHJvcGVydHlWYWx1ZSA9IHRvSlM8SURMRG91YmxlPihJRExEb3VibGU6OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5Lm1peGluU2V0dGluZ1Byb3BlcnR5KSk7CisgICAg
ICAgICAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCAibWl4aW5TZXR0aW5nUHJvcGVydHkiKSwgbWl4aW5TZXR0aW5nUHJvcGVydHlWYWx1ZSk7
CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKKyAgICBpZiAoIUlETERvdWJsZTo6aXNOdWxsVmFsdWUoZGljdGlv
bmFyeS5wYXJ0aWFsTWl4aW5Db25kaXRpb25hbFByb3BlcnR5KSkgeworICAgICAgICBhdXRvIHBh
cnRpYWxNaXhpbkNvbmRpdGlvbmFsUHJvcGVydHlWYWx1ZSA9IHRvSlM8SURMRG91YmxlPihJRExE
b3VibGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5LnBhcnRpYWxNaXhpbkNv
bmRpdGlvbmFsUHJvcGVydHkpKTsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInBhcnRpYWxNaXhpbkNvbmRpdGlvbmFsUHJvcGVy
dHkiKSwgcGFydGlhbE1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eVZhbHVlKTsKKyAgICB9CisjZW5k
aWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKKyAgICBp
ZiAoIUlETERvdWJsZTo6aXNOdWxsVmFsdWUoZGljdGlvbmFyeS5wYXJ0aWFsTWl4aW5Qcm9wZXJ0
eSkpIHsKKyAgICAgICAgYXV0byBwYXJ0aWFsTWl4aW5Qcm9wZXJ0eVZhbHVlID0gdG9KUzxJRExE
b3VibGU+KElETERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnkucGFy
dGlhbE1peGluUHJvcGVydHkpKTsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInBhcnRpYWxNaXhpblByb3BlcnR5IiksIHBhcnRp
YWxNaXhpblByb3BlcnR5VmFsdWUpOworICAgIH0KKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRp
b24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQorICAgIGlmIChqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigmZ2xvYmFsT2JqZWN0KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXR0aW5n
c1ZhbHVlcygpLnRlc3RTZXR0aW5nMkVuYWJsZWQpIHsKKyAgICAgICAgaWYgKCFJRExEb3VibGU6
OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkucGFydGlhbE1peGluU2V0dGluZ1Byb3BlcnR5KSkgewor
ICAgICAgICAgICAgYXV0byBwYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVydHlWYWx1ZSA9IHRvSlM8
SURMRG91YmxlPihJRExEb3VibGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5
LnBhcnRpYWxNaXhpblNldHRpbmdQcm9wZXJ0eSkpOworICAgICAgICAgICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIEpTQzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInBhcnRpYWxNaXhpblNl
dHRpbmdQcm9wZXJ0eSIpLCBwYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVydHlWYWx1ZSk7CisgICAg
ICAgIH0KKyAgICB9CisjZW5kaWYKKyAgICBpZiAoIUlETERvdWJsZTo6aXNOdWxsVmFsdWUoZGlj
dGlvbmFyeS5wcm9wZXJ0eSkpIHsKKyAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gdG9KUzxJ
RExEb3VibGU+KElETERvdWJsZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRpY3Rpb25hcnku
cHJvcGVydHkpKTsKKyAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpTQzo6SWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgInByb3BlcnR5IiksIHByb3BlcnR5VmFsdWUpOworICAgIH0KKyAg
ICBpZiAoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmdsb2JhbE9iamVjdCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+c2V0dGluZ3NWYWx1ZXMoKS50ZXN0U2V0dGluZ0VuYWJsZWQpIHsK
KyAgICAgICAgaWYgKCFJRExEb3VibGU6OmlzTnVsbFZhbHVlKGRpY3Rpb25hcnkuc2V0dGluZ1By
b3BlcnR5KSkgeworICAgICAgICAgICAgYXV0byBzZXR0aW5nUHJvcGVydHlWYWx1ZSA9IHRvSlM8
SURMRG91YmxlPihJRExEb3VibGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShkaWN0aW9uYXJ5
LnNldHRpbmdQcm9wZXJ0eSkpOworICAgICAgICAgICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIEpT
Qzo6SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgInNldHRpbmdQcm9wZXJ0eSIpLCBzZXR0aW5n
UHJvcGVydHlWYWx1ZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REaWN0aW9uYXJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGljdGlvbmFyeS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ3OWZjMjg4Yzk2MzdlYmJlOTAxMmI5MDBkMzBlYjNmZGE5MTZjM2MKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RGljdGlvbmFyeS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICAgIFRoaXMgZmlsZSBoYXMgYmVl
biBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisKKyAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIpCisKKyNpbmNsdWRlICJKU0RPTUNvbnZlcnREaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiVGVz
dERpY3Rpb25hcnkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTw+IFdFQkNP
UkVfRVhQT1JUIFRlc3REaWN0aW9uYXJ5IGNvbnZlcnREaWN0aW9uYXJ5PFRlc3REaWN0aW9uYXJ5
PihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsKKworV0VCQ09SRV9FWFBPUlQg
SlNDOjpKU09iamVjdCogY29udmVydERpY3Rpb25hcnlUb0pTKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFRlc3REaWN0aW9uYXJ5Jik7CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNaXhpbkRpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1peGluRGljdGlvbmFyeS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjU4MTI3YWJjM2EzMjJmOTM1NDJlODU1MmIxNGZmNDc2YTZmYzM3NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNaXhpbkRp
Y3Rpb25hcnkuY3BwCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAgICBUaGlzIGZpbGUgaXMgZ2VuZXJh
dGVkIHRvIGluZm9ybSBidWlsZCBzY3JpcHRzIHRoYXQgSlNUZXN0TWl4aW5EaWN0aW9uYXJ5Lmgg
YW5kCisgICAgSlNUZXN0TWl4aW5EaWN0aW9uYXJ5LmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFRlc3RN
aXhpbkRpY3Rpb25hcnkuaWRsLCBhbmQgcHJldmVudCB0aGUgYnVpbGQKKyAgICBzY3JpcHRzIGZy
b20gdHJ5aW5nIHRvIHJlZ2VuZXJhdGUgSlNUZXN0TWl4aW5EaWN0aW9uYXJ5LmggYW5kIEpTVGVz
dE1peGluRGljdGlvbmFyeS5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1peGluRGljdGlvbmFy
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1peGlu
RGljdGlvbmFyeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ODEyN2FiYzNhMzIyZjkzNTQyZTg1NTJiMTRmZjQ3
NmE2ZmMzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWl4aW5EaWN0aW9uYXJ5LmgKQEAgLTAsMCArMSw1IEBACisvKgor
ICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1aWxkIHNjcmlwdHMgdGhhdCBK
U1Rlc3RNaXhpbkRpY3Rpb25hcnkuaCBhbmQKKyAgICBKU1Rlc3RNaXhpbkRpY3Rpb25hcnkuY3Bw
IHdlcmUgY3JlYXRlZCBmb3IgVGVzdE1peGluRGljdGlvbmFyeS5pZGwsIGFuZCBwcmV2ZW50IHRo
ZSBidWlsZAorICAgIHNjcmlwdHMgZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBKU1Rlc3RNaXhp
bkRpY3Rpb25hcnkuaCBhbmQgSlNUZXN0TWl4aW5EaWN0aW9uYXJ5LmNwcCBvbiBldmVyeSBidWls
ZC4KKyovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0UGFydGlhbE1peGluRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGFydGlhbE1peGluRGljdGlvbmFyeS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmQ1MmYxZmM5YTFhYTk0YzE3YThhMjhmMTg4YmY1YTg3MDQwMzhmZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmNwcApAQCAtMCwwICsxLDUgQEAKKy8qCisgICAgVGhp
cyBmaWxlIGlzIGdlbmVyYXRlZCB0byBpbmZvcm0gYnVpbGQgc2NyaXB0cyB0aGF0IEpTVGVzdFBh
cnRpYWxNaXhpbkRpY3Rpb25hcnkuaCBhbmQKKyAgICBKU1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9u
YXJ5LmNwcCB3ZXJlIGNyZWF0ZWQgZm9yIFRlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmlkbCwg
YW5kIHByZXZlbnQgdGhlIGJ1aWxkCisgICAgc2NyaXB0cyBmcm9tIHRyeWluZyB0byByZWdlbmVy
YXRlIEpTVGVzdFBhcnRpYWxNaXhpbkRpY3Rpb25hcnkuaCBhbmQgSlNUZXN0UGFydGlhbE1peGlu
RGljdGlvbmFyeS5jcHAgb24gZXZlcnkgYnVpbGQuCisqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBhcnRpYWxNaXhpbkRpY3Rpb25h
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQYXJ0
aWFsTWl4aW5EaWN0aW9uYXJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ1MmYxZmM5YTFhYTk0YzE3YThhMjhm
MTg4YmY1YTg3MDQwMzhmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmgKQEAgLTAs
MCArMSw1IEBACisvKgorICAgIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgdG8gaW5mb3JtIGJ1aWxk
IHNjcmlwdHMgdGhhdCBKU1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmggYW5kCisgICAgSlNU
ZXN0UGFydGlhbE1peGluRGljdGlvbmFyeS5jcHAgd2VyZSBjcmVhdGVkIGZvciBUZXN0UGFydGlh
bE1peGluRGljdGlvbmFyeS5pZGwsIGFuZCBwcmV2ZW50IHRoZSBidWlsZAorICAgIHNjcmlwdHMg
ZnJvbSB0cnlpbmcgdG8gcmVnZW5lcmF0ZSBKU1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5Lmgg
YW5kIEpTVGVzdFBhcnRpYWxNaXhpbkRpY3Rpb25hcnkuY3BwIG9uIGV2ZXJ5IGJ1aWxkLgorKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9TdXBwbGVt
ZW50YWxEZXBlbmRlbmNpZXMuZGVwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKaW5kZXggYTZmMGNiYmM2OGExY2U5ODRk
YWM5MDBmZWM2NGM4MjEyYmQ0MjM0My4uZWI5ZWUzMjZkMTY5YTMwZDRmZjAzZjIwZjRlYWU1ZThk
N2NjYTQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1N1cHBsZW1lbnRhbERlcGVuZGVuY2llcy5kZXAKQEAgLTgyLDYgKzgy
LDEwIEBAIFdlYkRPTVRlc3REZXJpdmVkRGljdGlvbmFyeS5oOgogSlNUZXN0RGVyaXZlZERpY3Rp
b25hcnkyLmg6IAogRE9NVGVzdERlcml2ZWREaWN0aW9uYXJ5Mi5oOiAKIFdlYkRPTVRlc3REZXJp
dmVkRGljdGlvbmFyeTIuaDogCitKU1Rlc3REaWN0aW9uYXJ5Lmg6IFRlc3RNaXhpbkRpY3Rpb25h
cnkuaWRsCitET01UZXN0RGljdGlvbmFyeS5oOiBUZXN0TWl4aW5EaWN0aW9uYXJ5LmlkbAorV2Vi
RE9NVGVzdERpY3Rpb25hcnkuaDogVGVzdE1peGluRGljdGlvbmFyeS5pZGwKK1Rlc3RNaXhpbkRp
Y3Rpb25hcnkuaWRsOgogSlNUZXN0RGljdGlvbmFyeVdpdGhPbmx5Q29uZGl0aW9uYWxNZW1iZXJz
Lmg6IAogRE9NVGVzdERpY3Rpb25hcnlXaXRoT25seUNvbmRpdGlvbmFsTWVtYmVycy5oOiAKIFdl
YkRPTVRlc3REaWN0aW9uYXJ5V2l0aE9ubHlDb25kaXRpb25hbE1lbWJlcnMuaDogCkBAIC0xNTks
NiArMTYzLDEwIEBAIFdlYkRPTVRlc3RNYXBMaWtlLmg6CiBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zLmg6IAogRE9NVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnMuaDogCiBXZWJET01UZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5oOiAKK0pT
VGVzdE1peGluRGljdGlvbmFyeS5oOiBUZXN0UGFydGlhbE1peGluRGljdGlvbmFyeS5pZGwKK0RP
TVRlc3RNaXhpbkRpY3Rpb25hcnkuaDogVGVzdFBhcnRpYWxNaXhpbkRpY3Rpb25hcnkuaWRsCitX
ZWJET01UZXN0TWl4aW5EaWN0aW9uYXJ5Lmg6IFRlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5Lmlk
bAorVGVzdFBhcnRpYWxNaXhpbkRpY3Rpb25hcnkuaWRsOgogSlNUZXN0TWl4aW5JbnRlcmZhY2Uu
aDogVGVzdFBhcnRpYWxNaXhpbkludGVyZmFjZS5pZGwKIERPTVRlc3RNaXhpbkludGVyZmFjZS5o
OiBUZXN0UGFydGlhbE1peGluSW50ZXJmYWNlLmlkbAogV2ViRE9NVGVzdE1peGluSW50ZXJmYWNl
Lmg6IFRlc3RQYXJ0aWFsTWl4aW5JbnRlcmZhY2UuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdERpY3Rpb25hcnkuaWRsIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REaWN0aW9uYXJ5LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNmI0MWI0NmQ3ODRkMzQwODI2MDdhZDk4NTY4ZTk5ZWMyNzdiNDBkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3REaWN0aW9uYXJ5
LmlkbApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm0sIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmluZGluZ3Mg
Y29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdlcyBpbiBpdHMgb3V0cHV0
LgorCitbCisgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMXxDb25kaXRpb24yLAorICAgIEV4cG9y
dE1hY3JvPVdFQkNPUkVfRVhQT1JULAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0
aW9uYXJ5IFRlc3REaWN0aW9uYXJ5IHsKKyAgICBkb3VibGUgcHJvcGVydHk7CisgICAgW0NvbmRp
dGlvbmFsPUNvbmRpdGlvbjExXSBkb3VibGUgY29uZGl0aW9uYWxQcm9wZXJ0eTsKKyAgICBbRW5h
YmxlZEJ5U2V0dGluZz1UZXN0U2V0dGluZ10gZG91YmxlIHNldHRpbmdQcm9wZXJ0eTsKK307CisK
K1Rlc3REaWN0aW9uYXJ5IGluY2x1ZGVzIFRlc3RNaXhpbkRpY3Rpb25hcnk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE1peGluRGljdGlvbmFy
eS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE1peGluRGlj
dGlvbmFyeS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzMzg4ZGE4ZDI1ZWM5Njc2ZWE3YjlhNmY1MTM1MDgx
YzJmYTQ3MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0TWl4aW5EaWN0aW9uYXJ5LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zdHJBcmcs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVz
dHJBcmcsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUaGlz
IElETCBmaWxlIGlzIGZvciB0ZXN0aW5nIHRoZSBiaW5kaW5ncyBjb2RlIGdlbmVyYXRvciBhbmQg
Zm9yIHRyYWNraW5nCisvLyBjaGFuZ2VzIGluIGl0cyBvdXRwdXQuCisKK1sKKyAgICBDb25kaXRp
b25hbD1Db25kaXRpb24yMnxDb25kaXRpb24yMywKK10gZGljdGlvbmFyeSBtaXhpbiBUZXN0TWl4
aW5EaWN0aW9uYXJ5IHsKKyAgICBkb3VibGUgbWl4aW5Qcm9wZXJ0eTsKKyAgICBbQ29uZGl0aW9u
YWw9Q29uZGl0aW9uMTFdIGRvdWJsZSBtaXhpbkNvbmRpdGlvbmFsUHJvcGVydHk7CisgICAgW0Vu
YWJsZWRCeVNldHRpbmc9VGVzdFNldHRpbmddIGRvdWJsZSBtaXhpblNldHRpbmdQcm9wZXJ0eTsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dFBhcnRpYWxNaXhpbkRpY3Rpb25hcnkuaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RQYXJ0aWFsTWl4aW5EaWN0aW9uYXJ5LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTM5
MzIxNDcxNWIyOTQ1NmMyNGI2ZTQ4ZjBiMzdlNGRhZmFlYTVmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RQYXJ0aWFsTWl4aW5EaWN0
aW9uYXJ5LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm0sIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgor
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBJREwgZmlsZSBpcyBmb3IgdGVzdGluZyB0aGUgYmlu
ZGluZ3MgY29kZSBnZW5lcmF0b3IgYW5kIGZvciB0cmFja2luZworLy8gY2hhbmdlcyBpbiBpdHMg
b3V0cHV0LgorCitbCisgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMzMsCitdIHBhcnRpYWwgZGlj
dGlvbmFyeSBtaXhpbiBUZXN0TWl4aW5EaWN0aW9uYXJ5IHsKKyAgICBkb3VibGUgcGFydGlhbE1p
eGluUHJvcGVydHk7CisgICAgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjQ0XSBkb3VibGUgcGFydGlh
bE1peGluQ29uZGl0aW9uYWxQcm9wZXJ0eTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1UZXN0U2V0
dGluZzJdIGRvdWJsZSBwYXJ0aWFsTWl4aW5TZXR0aW5nUHJvcGVydHk7Cit9Owo=
</data>
<flag name="review"
          id="444075"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>