<?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>195580</bug_id>
          
          <creation_ts>2019-03-11 16:51:57 -0700</creation_ts>
          <short_desc>Web Inspector: Styles: remove unused protocol values</short_desc>
          <delta_ts>2019-08-05 13:38:09 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195123</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>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1515097</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-11 16:51:57 -0700</bug_when>
    <thetext>As an example, `CSS.CSSStyle` has a `width` and `height`, which don&apos;t appear to be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515098</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-11 16:52:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/48789619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1515344</commentid>
    <comment_count>2</comment_count>
      <attachid>364363</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-12 00:09:16 -0700</bug_when>
    <thetext>Created attachment 364363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516888</commentid>
    <comment_count>3</comment_count>
      <attachid>364363</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-14 22:14:46 -0700</bug_when>
    <thetext>Comment on attachment 364363
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        * inspector/protocol/CSS.json:
&gt; +         - remove `range` property from `SelectorList`
&gt; +         - remove `CSSStyleAttribute` type
&gt; +         - rename `CSSStyleSheetHeader` to `CSSStyleSheet`
&gt; +         - remove `title` and `disabled` properties from `CSSStyleSheet`
&gt; +         - remove `CSSStyleSheetBody` type
&gt; +         - remove `sourceURL` and `sourceLine` properties from `CSSRule`
&gt; +         - remove `ShorthandEntry` type
&gt; +         - remove `shorthandEntries`, `width`, and `height` properties from `CSSStyle`
&gt; +         - remove `source`, `sourceURL`, and `sourceLine` properties from `CSSMedia`
&gt; +         - remove `getStyleSheet` command
&gt; +        Unify the source location range/url data to be held on the `CSSRule` (range) and `CSSStyleSheet` (url).

It might make sense to split this up into separate patches that are much easier to review. As is there are all kinds of extraneous changes that have to be reviewed together which makes it hard, even though removing some things on their own are easy to review.

It would be good to understand why some of these are no longer needed, or what supplants them. Without any explanation it is difficult to review. Each of these had a purpose before, so what are we missing out on by removing them. It could be we can add them back and get a feature, which would be better than removing and adding back.

&gt; LayoutTests/inspector/css/add-rule-expected.txt:8
&gt;  PASS: Rule selector should be &quot;body&quot;
&gt; -PASS: Rule range should be [0:0,0:4]
&gt; +PASS: Rule range should be [0:6,0:6]
&gt;  PASS: Rule origin should be &quot;inspector&quot;

These do not look right. Previously it looks like it would be &apos;body&apos; and now it looks like it would be &apos;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1516894</commentid>
    <comment_count>4</comment_count>
      <attachid>364363</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-14 22:34:19 -0700</bug_when>
    <thetext>Comment on attachment 364363
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt; +        Unify the source location range/url data to be held on the `CSSRule` (range) and `CSSStyleSheet` (url).
&gt; 
&gt; It might make sense to split this up into separate patches that are much easier to review. As is there are all kinds of extraneous changes that have to be reviewed together which makes it hard, even though removing some things on their own are easy to review.
&gt; 
&gt; It would be good to understand why some of these are no longer needed, or what supplants them. Without any explanation it is difficult to review. Each of these had a purpose before, so what are we missing out on by removing them. It could be we can add them back and get a feature, which would be better than removing and adding back.

Most of these either weren&apos;t ever used (e.g. `shorthandEntries`, `width`, and `height` properties from `CSSStyle`) or could be replaced/merged (e.g. unnecessary duplication of data) into a single payload (e.g. all of the `sourceURL` and `sourceLine` changes).  I don&apos;t think splitting it up would be that much better, as much of it is the unification of all of the `sourceURL`/`sourceLine` values into a single value.

&gt;&gt; LayoutTests/inspector/css/add-rule-expected.txt:8
&gt;&gt;  PASS: Rule origin should be &quot;inspector&quot;
&gt; 
&gt; These do not look right. Previously it looks like it would be &apos;body&apos; and now it looks like it would be &apos;&apos;

They are correct, but they deserve a better explanation than I provided :(

Previously, we said that the range of the rule was the range of the selector.  I don&apos;t think that makes a lot of sense, especially when it comes to how Web Inspector uses that range to &quot;go to source location&quot;.  If there is whitespace between the selector and the rule&apos;s body (e.g. the style), &quot;go to source location&quot; would highlight the last line of the selector, rather than the first line of the style.  The change in this case is to make it so that the rule&apos;s range is now the full range of the style.  In this case, it looks like the range is empty because the rule&apos;s content in the actual &lt;style&gt; is empty.  If we modified `inspeector/css/add-rule.html` to include some text (even plain whitespace), you&apos;d see that the range printed here would reflect that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558531</commentid>
    <comment_count>5</comment_count>
      <attachid>364363</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-08-05 13:38:09 -0700</bug_when>
    <thetext>Comment on attachment 364363
Patch

This really needs to be broken up into smaller patches. r- for now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364363</attachid>
            <date>2019-03-12 00:09:16 -0700</date>
            <delta_ts>2019-08-05 13:38:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195580-20190312000914.patch</filename>
            <type>text/plain</type>
            <size>47348</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3ZmI5MTdkYWE5M2E2NjQ3NjhiMDQyZDUyN2Y2
N2MyZTgyNjdkNzMuLmY1YmE0NWIxOTU5ZTk2YTE1NWUzNTQyYWI3Mjc1NzdmZjU0MDU5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTEyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
dHlsZXM6IHJlbW92ZSB1bnVzZWQgcHJvdG9jb2wgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU1ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzQ4Nzg5NjE5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uOgorICAgICAgICAgLSByZW1vdmUg
YHJhbmdlYCBwcm9wZXJ0eSBmcm9tIGBTZWxlY3Rvckxpc3RgCisgICAgICAgICAtIHJlbW92ZSBg
Q1NTU3R5bGVBdHRyaWJ1dGVgIHR5cGUKKyAgICAgICAgIC0gcmVuYW1lIGBDU1NTdHlsZVNoZWV0
SGVhZGVyYCB0byBgQ1NTU3R5bGVTaGVldGAKKyAgICAgICAgIC0gcmVtb3ZlIGB0aXRsZWAgYW5k
IGBkaXNhYmxlZGAgcHJvcGVydGllcyBmcm9tIGBDU1NTdHlsZVNoZWV0YAorICAgICAgICAgLSBy
ZW1vdmUgYENTU1N0eWxlU2hlZXRCb2R5YCB0eXBlCisgICAgICAgICAtIHJlbW92ZSBgc291cmNl
VVJMYCBhbmQgYHNvdXJjZUxpbmVgIHByb3BlcnRpZXMgZnJvbSBgQ1NTUnVsZWAKKyAgICAgICAg
IC0gcmVtb3ZlIGBTaG9ydGhhbmRFbnRyeWAgdHlwZQorICAgICAgICAgLSByZW1vdmUgYHNob3J0
aGFuZEVudHJpZXNgLCBgd2lkdGhgLCBhbmQgYGhlaWdodGAgcHJvcGVydGllcyBmcm9tIGBDU1NT
dHlsZWAKKyAgICAgICAgIC0gcmVtb3ZlIGBzb3VyY2VgLCBgc291cmNlVVJMYCwgYW5kIGBzb3Vy
Y2VMaW5lYCBwcm9wZXJ0aWVzIGZyb20gYENTU01lZGlhYAorICAgICAgICAgLSByZW1vdmUgYGdl
dFN0eWxlU2hlZXRgIGNvbW1hbmQKKyAgICAgICAgVW5pZnkgdGhlIHNvdXJjZSBsb2NhdGlvbiBy
YW5nZS91cmwgZGF0YSB0byBiZSBoZWxkIG9uIHRoZSBgQ1NTUnVsZWAgKHJhbmdlKSBhbmQgYENT
U1N0eWxlU2hlZXRgICh1cmwpLgorCiAyMDE5LTAzLTExICBKdXN0aW4gRmFuICA8anVzdGluX2Zh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBHUFVdIFVwZGF0ZSBHUFVTd2FwQ2hhaW5EZXNj
cmlwdG9yLCBHUFVTd2FwQ2hhaW4gYW5kIGltcGxlbWVudCBHUFVDYW52YXNDb250ZXh0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggODNmZDlkMGViZDM1N2ZjN2FmOWYxYzg2YjUxOGVmZTNlMmUzMTY3Ny4uMWNlY2Fj
NjhkNjRjZGJiZjcwMjA0YWM3YWI4ZWYwOWNlNGU3MGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM0IEBACisyMDE5LTAzLTEyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXM6IHJlbW92ZSB1bnVzZWQgcHJvdG9jb2wgdmFs
dWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTU1
ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ4Nzg5NjE5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpi
dWlsZFNvdXJjZVJhbmdlT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkTWVkaWFPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbE1lZGlhTGlzdENoYWluKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVdpdGhQcm9wZXJ0aWVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGVTaGVldEluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVp
bGRPYmplY3RGb3JTZWxlY3Rvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5
bGVTaGVldDo6YnVpbGRPYmplY3RGb3JSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R5bGU6OnNob3J0aGFuZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRQcmlvcml0eSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6bG9uZ2hhbmRQcm9wZXJ0aWVzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1
aWxkT2JqZWN0Rm9yU3R5bGVTaGVldCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2Vu
dDo6Z2V0QWxsU3R5bGVTaGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OmdldFN0eWxlU2hlZXQpOiBEZWxldGVkLgorCiAyMDE5LTAzLTExICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIzNjI4MSk6IFlvdVR1
YmUgTW92aWVzIGZhaWwgd2l0aCAidmlkZW8gZm9ybWF0IiBlcnJvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggMmVjNThmNTI0MmYwMjY5MDQ2YjBlM2UzZjRmZTc1NzYwMjhmNmVkZi4uMTNk
YTY1ZjZmM2FkY2Q1NDdiMWFkOWUyOTE5M2Y3NDQyZDIzZTdhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMDMtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogcmVtb3ZlIHVu
dXNlZCBwcm90b2NvbCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NTU4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg3ODk2MTk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0NTU01hbmFnZXIuanM6CisgICAgICAgIChXSS5DU1NNYW5hZ2Vy
LnByb3RvY29sTWVkaWFTb3VyY2VUb0VudW0pOiBEZWxldGVkLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanM6CisgICAgICAgIChXSS5DU1NNZWRpYSk6CisgICAg
ICAgIChXSS5DU1NNZWRpYS5wcm90b3R5cGUuZ2V0IHR5cGUpOiBEZWxldGVkLgorICAgICAgICAo
V0kuQ1NTTWVkaWEucHJvdG90eXBlLmdldCBzb3VyY2VDb2RlTG9jYXRpb24pOiBEZWxldGVkLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qczoKKyAgICAg
ICAgKFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLl9wYXJzZVN0eWxlRGVjbGFyYXRpb25QYXls
b2FkKToKKyAgICAgICAgKFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLl9wYXJzZVJ1bGVQYXls
b2FkKToKKyAgICAgICAgKFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLnJ1bGVzRm9yU2VsZWN0
b3IucnVsZUhhc1NlbGVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKFdJLkRPTU5vZGVTdHlsZXMu
cHJvdG90eXBlLnJ1bGVzRm9yU2VsZWN0b3IpOiBEZWxldGVkLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9UZXN0Lmh0bWw6CisKIDIwMTktMDMtMTEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHVzZSAtd2Via2l0LXttYXJnaW4s
cGFkZGluZ30te3N0YXJ0LGVuZH0gaW5zdGVhZCBvZiBbZGlyPXtsdHIvcnRsfV0gcnVsZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpz
b24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NTUy5qc29uCmlu
ZGV4IDAxY2UzYzg2NzEyMWM2MjNjMDE1OTc0NTkzNTEwMTQzMDVhNTA3NGQuLjgyNzgxMmU2Y2Ri
MGNlZjRmYTNjYTdjNDE0NDMzNDYyZTk1NjU2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbgpAQCAtNzQsMjEgKzc0LDExIEBACiAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2VsZWN0b3IgbGlzdCBkYXRhLiIsCiAgICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlbGVjdG9y
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDU1NTZWxlY3RvciIgfSwg
ImRlc2NyaXB0aW9uIjogIlNlbGVjdG9ycyBpbiB0aGUgbGlzdC4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlJ1
bGUgc2VsZWN0b3IgdGV4dC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyYW5nZSIs
ICIkcmVmIjogIlNvdXJjZVJhbmdlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlJ1bGUgc2VsZWN0b3IgcmFuZ2UgaW4gdGhlIHVuZGVybHlpbmcgcmVzb3VyY2UgKGlmIGF2YWls
YWJsZSkuIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIlJ1bGUgc2VsZWN0b3IgdGV4dC4iIH0KICAgICAgICAgICAg
IF0KICAgICAgICAgfSwKICAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNTU1N0eWxlQXR0
cmlidXRlIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQ1NTIHN0eWxlIGluZm9ybWF0aW9uIGZvciBhIERPTSBzdHlsZSBhdHRyaWJ1
dGUuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJET00gYXR0cmli
dXRlIG5hbWUgKGUuZy4gXCJ3aWR0aFwiKS4ifSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxlIGdl
bmVyYXRlZCBieSB0aGUgcmVzcGVjdGl2ZSBET00gYXR0cmlidXRlLiJ9Ci0gICAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDU1NTdHlsZVNoZWV0
SGVhZGVyIiwKKyAgICAgICAgICAgICJpZCI6ICJDU1NTdHlsZVNoZWV0IiwKICAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxl
c2hlZXQgbWV0YS1pbmZvcm1hdGlvbi4iLAogICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCkBA
IC05NiwyMyArODYsMTEgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAi
JHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAiZGVzY3JpcHRpb24iOiAiT3duZXIgZnJhbWUgaWRl
bnRpZmllci4ifSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZVVSTCIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTdHlsZXNoZWV0IHJlc291cmNlIFVSTC4ifSwK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICIkcmVmIjogIlN0eWxlU2hlZXRP
cmlnaW4iLCAiZGVzY3JpcHRpb24iOiAiU3R5bGVzaGVldCBvcmlnaW4uIn0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aXRsZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJTdHlsZXNoZWV0IHRpdGxlLiJ9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlzYWJs
ZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIkRlbm90ZXMgd2hldGhlciB0
aGUgc3R5bGVzaGVldCBpcyBkaXNhYmxlZC4ifSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImlzSW5saW5lIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRo
aXMgc3R5bGVzaGVldCBpcyBhIDxzdHlsZT4gdGFnIGNyZWF0ZWQgYnkgdGhlIHBhcnNlci4gVGhp
cyBpcyBub3Qgc2V0IGZvciBkb2N1bWVudC53cml0dGVuIDxzdHlsZT4gdGFncy4iIH0sCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFydExpbmUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiTGluZSBvZmZzZXQgb2YgdGhlIHN0eWxlc2hlZXQgd2l0aGluIHRoZSByZXNv
dXJjZSAoemVybyBiYXNlZCkuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnRD
b2x1bW4iLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG9mZnNldCBv
ZiB0aGUgc3R5bGVzaGVldCB3aXRoaW4gdGhlIHJlc291cmNlICh6ZXJvIGJhc2VkKS4iIH0KICAg
ICAgICAgICAgIF0KICAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNT
U1N0eWxlU2hlZXRCb2R5IiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQ1NTIHN0eWxlc2hlZXQgY29udGVudHMuIiwKLSAgICAgICAg
ICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVTaGVl
dElkIiwgIiRyZWYiOiAiU3R5bGVTaGVldElkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBzdHlsZXNo
ZWV0IGlkZW50aWZpZXIuIn0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJydWxlcyIsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDU1NSdWxlIiB9LCAiZGVzY3JpcHRp
b24iOiAiU3R5bGVzaGVldCByZXNvdXJjZSBVUkwuIn0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlN0eWxlc2hlZXQgcmVzb3VyY2UgY29udGVudHMgKGlmIGF2YWlsYWJsZSkuIn0KLSAg
ICAgICAgICAgIF0KLSAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgImlkIjogIkNT
U1J1bGUiLAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKQEAgLTEyMCw4ICs5OCw2IEBA
CiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJ1bGVJZCIsICIkcmVmIjogIkNTU1J1bGVJZCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJUaGUgQ1NTIHJ1bGUgaWRlbnRpZmllciAoYWJzZW50IGZvciB1c2VyIGFnZW50IHN0
eWxlc2hlZXQgYW5kIHVzZXItc3BlY2lmaWVkIHN0eWxlc2hlZXQgcnVsZXMpLiJ9LAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic2VsZWN0b3JMaXN0IiwgIiRyZWYiOiAiU2VsZWN0b3JMaXN0
IiwgImRlc2NyaXB0aW9uIjogIlJ1bGUgc2VsZWN0b3IgZGF0YS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzb3VyY2VVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiUGFyZW50IHN0eWxlc2hlZXQgcmVzb3VyY2UgVVJMIChmb3Ig
cmVndWxhciBydWxlcykuIn0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VMaW5l
IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG9yZGluYWwgb2YgdGhl
IHJ1bGUgc2VsZWN0b3Igc3RhcnQgY2hhcmFjdGVyIGluIHRoZSByZXNvdXJjZS4ifSwKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICIkcmVmIjogIlN0eWxlU2hlZXRPcmlnaW4i
LCAiZGVzY3JpcHRpb24iOiAiUGFyZW50IHN0eWxlc2hlZXQncyBvcmlnaW4uIn0sCiAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzdHlsZSIsICIkcmVmIjogIkNTU1N0eWxlIiwgImRlc2NyaXB0
aW9uIjogIkFzc29jaWF0ZWQgc3R5bGUgZGVjbGFyYXRpb24uIiB9LAogICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibWVkaWEiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAi
Q1NTTWVkaWEiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJNZWRpYSBsaXN0
IGFycmF5IChmb3IgcnVsZXMgaW52b2x2aW5nIG1lZGlhIHF1ZXJpZXMpLiBUaGUgYXJyYXkgZW51
bWVyYXRlcyBtZWRpYSBxdWVyaWVzIHN0YXJ0aW5nIHdpdGggdGhlIGlubmVybW9zdCBvbmUsIGdv
aW5nIG91dHdhcmRzLiIgfQpAQCAtMTM4LDE0ICsxMTQsNiBAQAogICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZW5kQ29sdW1uIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJF
bmQgY29sdW1uIG9mIHJhbmdlIChleGNsdXNpdmUpLiIgfQogICAgICAgICAgICAgXQogICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiU2hvcnRoYW5kRW50cnkiLAotICAg
ICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJTaG9ydGhhbmQgbmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ2YWx1ZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTaG9ydGhhbmQgdmFs
dWUuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAg
ICJpZCI6ICJDU1NQcm9wZXJ0eUluZm8iLAogICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
QEAgLTE3MiwxNiArMTQwLDEzIEBACiAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBDU1Mgc3R5bGUgaWRlbnRpZmllciAo
YWJzZW50IGZvciBhdHRyaWJ1dGUgc3R5bGVzKS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjc3NQcm9wZXJ0aWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjog
IkNTU1Byb3BlcnR5IiB9LCAiZGVzY3JpcHRpb24iOiAiQ1NTIHByb3BlcnRpZXMgaW4gdGhlIHN0
eWxlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNob3J0aGFuZEVudHJpZXMiLCAi
dHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiU2hvcnRoYW5kRW50cnkiIH0sICJk
ZXNjcmlwdGlvbiI6ICJDb21wdXRlZCB2YWx1ZXMgZm9yIGFsbCBzaG9ydGhhbmRzIGZvdW5kIGlu
IHRoZSBzdHlsZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjc3NUZXh0IiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlN0eWxlIGRl
Y2xhcmF0aW9uIHRleHQgKGlmIGF2YWlsYWJsZSkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmFuZ2UiLCAiJHJlZiI6ICJTb3VyY2VSYW5nZSIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJTdHlsZSBkZWNsYXJhdGlvbiByYW5nZSBpbiB0aGUgZW5jbG9zaW5nIHN0
eWxlc2hlZXQgKGlmIGF2YWlsYWJsZSkuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
d2lkdGgiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGVmZmVjdGl2ZSBcIndpZHRoXCIgcHJvcGVydHkgdmFsdWUgZnJvbSB0aGlzIHN0eWxl
LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgZWZmZWN0aXZlIFwiaGVp
Z2h0XCIgcHJvcGVydHkgdmFsdWUgZnJvbSB0aGlzIHN0eWxlLiIgfQorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmFuZ2UiLCAiJHJlZiI6ICJTb3VyY2VSYW5nZSIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJTdHlsZSBkZWNsYXJhdGlvbiByYW5nZSBpbiB0aGUgZW5jbG9z
aW5nIHN0eWxlc2hlZXQgKGlmIGF2YWlsYWJsZSkuIiB9CiAgICAgICAgICAgICBdCiAgICAgICAg
IH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJpZCI6ICJDU1NQcm9wZXJ0eVN0YXR1cyIsCi0J
ICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAg
ICAgICAgICAgImVudW0iOiBbImFjdGl2ZSIsICJpbmFjdGl2ZSIsICJkaXNhYmxlZCIsICJzdHls
ZSJdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoZSBwcm9wZXJ0eSBzdGF0dXM6IFwi
YWN0aXZlXCIgaWYgdGhlIHByb3BlcnR5IGlzIGVmZmVjdGl2ZSBpbiB0aGUgc3R5bGUsIFwiaW5h
Y3RpdmVcIiBpZiB0aGUgcHJvcGVydHkgaXMgb3ZlcnJpZGRlbiBieSBhIHNhbWUtbmFtZWQgcHJv
cGVydHkgaW4gdGhpcyBzdHlsZSBsYXRlciBvbiwgXCJkaXNhYmxlZFwiIGlmIHRoZSBwcm9wZXJ0
eSBpcyBkaXNhYmxlZCBieSB0aGUgdXNlciwgXCJzdHlsZVwiIChpbXBsaWVkIGlmIGFic2VudCkg
aWYgdGhlIHByb3BlcnR5IGlzIHJlcG9ydGVkIGJ5IHRoZSBicm93c2VyIHJhdGhlciB0aGFuIGJ5
IHRoZSBDU1Mgc291cmNlIHBhcnNlci4iCiAgICAgICAgIH0sCkBAIC0yMDUsMTAgKzE3MCw3IEBA
CiAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkNTUyBtZWRpYSBxdWVyeSBkZXNjcmlwdG9yLiIsCiAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiTWVkaWEgcXVlcnkgdGV4dC4iIH0sCi0gICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsibWVkaWFSdWxl
IiwgImltcG9ydFJ1bGUiLCAibGlua2VkU2hlZXQiLCAiaW5saW5lU2hlZXQiXSwgImRlc2NyaXB0
aW9uIjogIlNvdXJjZSBvZiB0aGUgbWVkaWEgcXVlcnk6IFwibWVkaWFSdWxlXCIgaWYgc3BlY2lm
aWVkIGJ5IGEgQG1lZGlhIHJ1bGUsIFwiaW1wb3J0UnVsZVwiIGlmIHNwZWNpZmllZCBieSBhbiBA
aW1wb3J0IHJ1bGUsIFwibGlua2VkU2hlZXRcIiBpZiBzcGVjaWZpZWQgYnkgYSBcIm1lZGlhXCIg
YXR0cmlidXRlIGluIGEgbGlua2VkIHN0eWxlc2hlZXQncyBMSU5LIHRhZywgXCJpbmxpbmVTaGVl
dFwiIGlmIHNwZWNpZmllZCBieSBhIFwibWVkaWFcIiBhdHRyaWJ1dGUgaW4gYW4gaW5saW5lIHN0
eWxlc2hlZXQncyBTVFlMRSB0YWcuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291
cmNlVVJMIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIlVSTCBvZiB0aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgbWVkaWEgcXVlcnkgZGVzY3Jp
cHRpb24uIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlTGluZSIsICJ0eXBl
IjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTGluZSBpbiB0
aGUgZG9jdW1lbnQgY29udGFpbmluZyB0aGUgbWVkaWEgcXVlcnkgKG5vdCBkZWZpbmVkIGZvciB0
aGUgXCJzdHlsZXNoZWV0XCIgc291cmNlKS4iIH0KKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTWVkaWEgcXVlcnkgdGV4
dC4iIH0KICAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCkBAIC0yNjAsMTcgKzIyMiw3
IEBACiAgICAgICAgICAgICAibmFtZSI6ICJnZXRBbGxTdHlsZVNoZWV0cyIsCiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBtZXRhaW5mbyBlbnRyaWVzIGZvciBhbGwga25vd24g
c3R5bGVzaGVldHMuIiwKICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGVhZGVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6
ICJDU1NTdHlsZVNoZWV0SGVhZGVyIiB9LCAiZGVzY3JpcHRpb24iOiAiRGVzY3JpcHRvciBlbnRy
aWVzIGZvciBhbGwgYXZhaWxhYmxlIHN0eWxlc2hlZXRzLiIgfQotICAgICAgICAgICAgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJnZXRTdHlsZVNoZWV0IiwK
LSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHN0eWxlc2hlZXQgZGF0YSBmb3Ig
dGhlIHNwZWNpZmllZCA8Y29kZT5zdHlsZVNoZWV0SWQ8L2NvZGU+LiIsCi0gICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRJZCIs
ICIkcmVmIjogIlN0eWxlU2hlZXRJZCIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJy
ZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVTaGVldCIsICIkcmVm
IjogIkNTU1N0eWxlU2hlZXRCb2R5IiwgImRlc2NyaXB0aW9uIjogIlN0eWxlc2hlZXQgY29udGVu
dHMgZm9yIHRoZSBzcGVjaWZpZWQgPGNvZGU+c3R5bGVTaGVldElkPC9jb2RlPi4iIH0KKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlU2hlZXRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRl
bXMiOiB7ICIkcmVmIjogIkNTU1N0eWxlU2hlZXQiIH0sICJkZXNjcmlwdGlvbiI6ICJEZXNjcmlw
dG9yIGVudHJpZXMgZm9yIGFsbCBhdmFpbGFibGUgc3R5bGVzaGVldHMuIiB9CiAgICAgICAgICAg
ICBdCiAgICAgICAgIH0sCiAgICAgICAgIHsKQEAgLTM3Myw3ICszMjUsNyBAQAogICAgICAgICAg
ICAgIm5hbWUiOiAic3R5bGVTaGVldEFkZGVkIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJGaXJlZCB3aGVuZXZlciBhbiBhY3RpdmUgZG9jdW1lbnQgc3R5bGVzaGVldCBpcyBhZGRlZC4i
LAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJoZWFkZXIiLCAiJHJlZiI6ICJDU1NTdHlsZVNoZWV0SGVhZGVyIiwgImRlc2NyaXB0aW9uIjog
IkFkZGVkIHN0eWxlc2hlZXQgbWV0YWluZm8uIiB9CisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdHlsZVNoZWV0IiwgIiRyZWYiOiAiQ1NTU3R5bGVTaGVldCIsICJkZXNjcmlwdGlvbiI6ICJB
ZGRlZCBzdHlsZXNoZWV0IG1ldGFpbmZvLiIgfQogICAgICAgICAgICAgXQogICAgICAgICB9LAog
ICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5jcHAKaW5kZXggNjg3MTY1NGNlZDg3YzFjZThjMjk4MzZmODFkN2ZjODRhMzM1YjdkOC4u
YWU3MDViZGNiOTA0MDkwMjcyMDNhMTA4OTM0NmFkZGQ4ODIyYWIwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMzg1LDcgKzM4
NSw3IEBAIGVudW0gTWVkaWFMaXN0U291cmNlIHsKICAgICBNZWRpYUxpc3RTb3VyY2VJbXBvcnRS
dWxlCiB9OwogCi1zdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNl
UmFuZ2U+IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlLCBj
b25zdCBWZWN0b3I8c2l6ZV90PiYgbGluZUVuZGluZ3MsIGludCogZW5kaW5nTGluZSA9IG51bGxw
dHIpCitzdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U+
IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlLCBjb25zdCBW
ZWN0b3I8c2l6ZV90PiYgbGluZUVuZGluZ3MpCiB7CiAgICAgaWYgKGxpbmVFbmRpbmdzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0zOTMsOSArMzkzLDYgQEAgc3RhdGlj
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNvdXJjZVJhbmdlPiBidWlsZFNvdXJj
ZVJhbmdlT2JqZWN0KGNvbnMKICAgICBUZXh0UG9zaXRpb24gc3RhcnQgPSBDb250ZW50U2VhcmNo
VXRpbGl0aWVzOjp0ZXh0UG9zaXRpb25Gcm9tT2Zmc2V0KHJhbmdlLnN0YXJ0LCBsaW5lRW5kaW5n
cyk7CiAgICAgVGV4dFBvc2l0aW9uIGVuZCA9IENvbnRlbnRTZWFyY2hVdGlsaXRpZXM6OnRleHRQ
b3NpdGlvbkZyb21PZmZzZXQocmFuZ2UuZW5kLCBsaW5lRW5kaW5ncyk7CiAKLSAgICBpZiAoZW5k
aW5nTGluZSkKLSAgICAgICAgKmVuZGluZ0xpbmUgPSBlbmQubV9saW5lLnplcm9CYXNlZEludCgp
OwotCiAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U291cmNlUmFuZ2U6OmNy
ZWF0ZSgpCiAgICAgICAgIC5zZXRTdGFydExpbmUoc3RhcnQubV9saW5lLnplcm9CYXNlZEludCgp
KQogICAgICAgICAuc2V0U3RhcnRDb2x1bW4oc3RhcnQubV9jb2x1bW4uemVyb0Jhc2VkSW50KCkp
CkBAIC00MDQsMzUgKzQwMSwxMSBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6U291cmNlUmFuZ2U+IGJ1aWxkU291cmNlUmFuZ2VPYmplY3QoY29ucwogICAgICAgICAu
cmVsZWFzZSgpOwogfQogCi1zdGF0aWMgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
TWVkaWE+IGJ1aWxkTWVkaWFPYmplY3QoY29uc3QgTWVkaWFMaXN0KiBtZWRpYSwgTWVkaWFMaXN0
U291cmNlIG1lZGlhTGlzdFNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCitzdGF0aWMg
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTTWVkaWE+IGJ1aWxkTWVkaWFPYmplY3Qo
Y29uc3QgTWVkaWFMaXN0KiBtZWRpYSkKIHsKLSAgICAvLyBNYWtlIGNlcnRhaW4gY29tcGlsZXJz
IGhhcHB5IGJ5IGluaXRpYWxpemluZyB8c291cmNlfCB1cC1mcm9udC4KLSAgICBJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU01lZGlhOjpTb3VyY2Ugc291cmNlID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpDU1NNZWRpYTo6U291cmNlOjpJbmxpbmVTaGVldDsKLSAgICBzd2l0Y2ggKG1l
ZGlhTGlzdFNvdXJjZSkgewotICAgIGNhc2UgTWVkaWFMaXN0U291cmNlTWVkaWFSdWxlOgotICAg
ICAgICBzb3VyY2UgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU01lZGlhOjpTb3VyY2U6
Ok1lZGlhUnVsZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNZWRpYUxpc3RTb3VyY2VJbXBv
cnRSdWxlOgotICAgICAgICBzb3VyY2UgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU01l
ZGlhOjpTb3VyY2U6OkltcG9ydFJ1bGU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTWVkaWFM
aXN0U291cmNlTGlua2VkU2hlZXQ6Ci0gICAgICAgIHNvdXJjZSA9IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTTWVkaWE6OlNvdXJjZTo6TGlua2VkU2hlZXQ7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgTWVkaWFMaXN0U291cmNlSW5saW5lU2hlZXQ6Ci0gICAgICAgIHNvdXJjZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTTWVkaWE6OlNvdXJjZTo6SW5saW5lU2hlZXQ7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGF1dG8gbWVkaWFPYmplY3QgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU01lZGlhOjpjcmVhdGUoKQorICAgIHJldHVybiBJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OkNTU01lZGlhOjpjcmVhdGUoKQogICAgICAgICAuc2V0VGV4dChtZWRp
YS0+bWVkaWFUZXh0KCkpCi0gICAgICAgIC5zZXRTb3VyY2Uoc291cmNlKQogICAgICAgICAucmVs
ZWFzZSgpOwotCi0gICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1lZGlh
T2JqZWN0LT5zZXRTb3VyY2VVUkwoc291cmNlVVJMKTsKLSAgICAgICAgbWVkaWFPYmplY3QtPnNl
dFNvdXJjZUxpbmUobWVkaWEtPnF1ZXJpZXMoKS0+bGFzdExpbmUoKSk7Ci0gICAgfQotICAgIHJl
dHVybiBtZWRpYU9iamVjdDsKIH0KIAogc3RhdGljIFJlZlB0cjxDU1NSdWxlTGlzdD4gYXNDU1NS
dWxlTGlzdChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQpAQCAtNDY4LDEwICs0NDEsOCBAQCBz
dGF0aWMgdm9pZCBmaWxsTWVkaWFMaXN0Q2hhaW4oQ1NTUnVsZSogcnVsZSwgSlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOgogewogICAgIE1lZGlhTGlzdCogbWVkaWFMaXN0OwogICAg
IENTU1J1bGUqIHBhcmVudFJ1bGUgPSBydWxlOwotICAgIFN0cmluZyBzb3VyY2VVUkw7CiAgICAg
d2hpbGUgKHBhcmVudFJ1bGUpIHsKICAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVT
aGVldCA9IG51bGxwdHI7Ci0gICAgICAgIGJvb2wgaXNNZWRpYVJ1bGUgPSB0cnVlOwogICAgICAg
ICBpZiAoaXM8Q1NTTWVkaWFSdWxlPigqcGFyZW50UnVsZSkpIHsKICAgICAgICAgICAgIENTU01l
ZGlhUnVsZSYgbWVkaWFSdWxlID0gZG93bmNhc3Q8Q1NTTWVkaWFSdWxlPigqcGFyZW50UnVsZSk7
CiAgICAgICAgICAgICBtZWRpYUxpc3QgPSBtZWRpYVJ1bGUubWVkaWEoKTsKQEAgLTQ4MCwxOSAr
NDUxLDExIEBAIHN0YXRpYyB2b2lkIGZpbGxNZWRpYUxpc3RDaGFpbihDU1NSdWxlKiBydWxlLCBK
U09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6CiAgICAgICAgICAgICBDU1NJbXBvcnRS
dWxlJiBpbXBvcnRSdWxlID0gZG93bmNhc3Q8Q1NTSW1wb3J0UnVsZT4oKnBhcmVudFJ1bGUpOwog
ICAgICAgICAgICAgbWVkaWFMaXN0ID0gJmltcG9ydFJ1bGUubWVkaWEoKTsKICAgICAgICAgICAg
IHBhcmVudFN0eWxlU2hlZXQgPSBpbXBvcnRSdWxlLnBhcmVudFN0eWxlU2hlZXQoKTsKLSAgICAg
ICAgICAgIGlzTWVkaWFSdWxlID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAg
bWVkaWFMaXN0ID0gbnVsbHB0cjsKIAotICAgICAgICBpZiAocGFyZW50U3R5bGVTaGVldCkgewot
ICAgICAgICAgICAgc291cmNlVVJMID0gcGFyZW50U3R5bGVTaGVldC0+Y29udGVudHMoKS5iYXNl
VVJMKCk7Ci0gICAgICAgICAgICBpZiAoc291cmNlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICBzb3VyY2VVUkwgPSBJbnNwZWN0b3JET01BZ2VudDo6ZG9jdW1lbnRVUkxTdHJpbmcocGFy
ZW50U3R5bGVTaGVldC0+b3duZXJEb2N1bWVudCgpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBzb3VyY2VVUkwgPSBlbXB0eVN0cmluZygpOwotCiAgICAgICAgIGlmIChtZWRpYUxpc3Qg
JiYgbWVkaWFMaXN0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgIG1lZGlhQXJyYXkuYWRkSXRlbShi
dWlsZE1lZGlhT2JqZWN0KG1lZGlhTGlzdCwgaXNNZWRpYVJ1bGUgPyBNZWRpYUxpc3RTb3VyY2VN
ZWRpYVJ1bGUgOiBNZWRpYUxpc3RTb3VyY2VJbXBvcnRSdWxlLCBzb3VyY2VVUkwpKTsKKyAgICAg
ICAgICAgIG1lZGlhQXJyYXkuYWRkSXRlbShidWlsZE1lZGlhT2JqZWN0KG1lZGlhTGlzdCkpOwog
CiAgICAgICAgIGlmIChwYXJlbnRSdWxlLT5wYXJlbnRSdWxlKCkpCiAgICAgICAgICAgICBwYXJl
bnRSdWxlID0gcGFyZW50UnVsZS0+cGFyZW50UnVsZSgpOwpAQCAtNTAwLDE2ICs0NjMsOCBAQCBz
dGF0aWMgdm9pZCBmaWxsTWVkaWFMaXN0Q2hhaW4oQ1NTUnVsZSogcnVsZSwgSlNPTjo6QXJyYXlP
ZjxJbnNwZWN0b3I6OlByb3RvY29sOgogICAgICAgICAgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVT
aGVldCA9IHBhcmVudFJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKTsKICAgICAgICAgICAgIHdoaWxl
IChzdHlsZVNoZWV0KSB7CiAgICAgICAgICAgICAgICAgbWVkaWFMaXN0ID0gc3R5bGVTaGVldC0+
bWVkaWEoKTsKLSAgICAgICAgICAgICAgICBpZiAobWVkaWFMaXN0ICYmIG1lZGlhTGlzdC0+bGVu
Z3RoKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnQqIGRvYyA9IHN0eWxlU2hlZXQt
Pm93bmVyRG9jdW1lbnQoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRvYykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNvdXJjZVVSTCA9IGRvYy0+dXJsKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKCFzdHlsZVNoZWV0LT5jb250ZW50cygpLmJhc2VVUkwoKS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VVUkwgPSBzdHlsZVNoZWV0LT5jb250ZW50
cygpLmJhc2VVUkwoKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgc291cmNlVVJMID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgICAgICAgICAgICAg
bWVkaWFBcnJheS5hZGRJdGVtKGJ1aWxkTWVkaWFPYmplY3QobWVkaWFMaXN0LCBzdHlsZVNoZWV0
LT5vd25lck5vZGUoKSA/IE1lZGlhTGlzdFNvdXJjZUxpbmtlZFNoZWV0IDogTWVkaWFMaXN0U291
cmNlSW5saW5lU2hlZXQsIHNvdXJjZVVSTCkpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAobWVkaWFMaXN0ICYmIG1lZGlhTGlzdC0+bGVuZ3RoKCkpCisgICAgICAgICAg
ICAgICAgICAgIG1lZGlhQXJyYXkuYWRkSXRlbShidWlsZE1lZGlhT2JqZWN0KG1lZGlhTGlzdCkp
OwogICAgICAgICAgICAgICAgIHBhcmVudFJ1bGUgPSBzdHlsZVNoZWV0LT5vd25lclJ1bGUoKTsK
ICAgICAgICAgICAgICAgICBpZiAocGFyZW50UnVsZSkKICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC01MzksOSArNDk0LDYgQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
Q1NTU3R5bGU+IEluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxlKCkKICAgICBpZiAo
IW1fc3R5bGVJZC5pc0VtcHR5KCkpCiAgICAgICAgIHJlc3VsdC0+c2V0U3R5bGVJZChtX3N0eWxl
SWQuYXNQcm90b2NvbFZhbHVlPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVJZD4o
KSk7CiAKLSAgICByZXN1bHQtPnNldFdpZHRoKG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUoIndp
ZHRoIikpOwotICAgIHJlc3VsdC0+c2V0SGVpZ2h0KG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUo
ImhlaWdodCIpKTsKLQogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9
IGV4dHJhY3RTb3VyY2VEYXRhKCk7CiAgICAgaWYgKHNvdXJjZURhdGEpCiAgICAgICAgIHJlc3Vs
dC0+c2V0UmFuZ2UoYnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VEYXRhLT5ydWxlQm9keVJh
bmdlLCBtX3BhcmVudFN0eWxlU2hlZXQtPmxpbmVFbmRpbmdzKCkpKTsKQEAgLTYyMSw5ICs1NzMs
NyBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gSW5zcGVjdG9yU3R5
bGU6OnN0eWxlV2l0aFByb3BlcnRpZXMoKSBjbwogICAgIHBvcHVsYXRlQWxsUHJvcGVydGllcygm
cHJvcGVydGllcyk7CiAKICAgICBhdXRvIHByb3BlcnRpZXNPYmplY3QgPSBKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHk+OjpjcmVhdGUoKTsKLSAgICBh
dXRvIHNob3J0aGFuZEVudHJpZXMgPSBBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
U2hvcnRoYW5kRW50cnk+OjpjcmVhdGUoKTsKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHk+PiBwcm9wZXJ0eU5hbWVUb1ByZXZp
b3VzQWN0aXZlUHJvcGVydHk7Ci0gICAgSGFzaFNldDxTdHJpbmc+IGZvdW5kU2hvcnRoYW5kczsK
ICAgICBTdHJpbmcgcHJldmlvdXNQcmlvcml0eTsKICAgICBTdHJpbmcgcHJldmlvdXNTdGF0dXM7
CiAgICAgVmVjdG9yPHNpemVfdD4gbGluZUVuZGluZ3MgPSBtX3BhcmVudFN0eWxlU2hlZXQgPyBt
X3BhcmVudFN0eWxlU2hlZXQtPmxpbmVFbmRpbmdzKCkgOiBWZWN0b3I8c2l6ZV90PiB7IH07CkBA
IC03MDgsMTggKzY1OCw2IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxl
PiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRoUHJvcGVydGllcygpIGNvCiAgICAgICAgICAgICAg
ICAgaWYgKGltcGxpY2l0KQogICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS0+c2V0SW1wbGlj
aXQodHJ1ZSk7CiAgICAgICAgICAgICAgICAgc3RhdHVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpDU1NQcm9wZXJ0eVN0YXR1czo6U3R5bGU7Ci0KLSAgICAgICAgICAgICAgICBTdHJpbmcg
c2hvcnRoYW5kID0gbV9zdHlsZS0+Z2V0UHJvcGVydHlTaG9ydGhhbmQobmFtZSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFzaG9ydGhhbmQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghZm91bmRTaG9ydGhhbmRzLmNvbnRhaW5zKHNob3J0aGFuZCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZvdW5kU2hvcnRoYW5kcy5hZGQoc2hvcnRoYW5kKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNob3J0
aGFuZEVudHJ5OjpjcmVhdGUoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXROYW1l
KHNob3J0aGFuZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0VmFsdWUoc2hvcnRo
YW5kVmFsdWUoc2hvcnRoYW5kKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVsZWFz
ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRoYW5kRW50cmllcy0+YWRkSXRlbShX
VEZNb3ZlKGVudHJ5KSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtNzMwLDcgKzY2OCw2IEBAIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiBJbnNwZWN0b3JTdHlsZTo6c3R5bGVXaXRo
UHJvcGVydGllcygpIGNvCiAKICAgICByZXR1cm4gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpD
U1NTdHlsZTo6Y3JlYXRlKCkKICAgICAgICAgLnNldENzc1Byb3BlcnRpZXMoV1RGTW92ZShwcm9w
ZXJ0aWVzT2JqZWN0KSkKLSAgICAgICAgLnNldFNob3J0aGFuZEVudHJpZXMoV1RGTW92ZShzaG9y
dGhhbmRFbnRyaWVzKSkKICAgICAgICAgLnJlbGVhc2UoKTsKIH0KIApAQCAtNzQ2LDU4ICs2ODMs
NiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnNwZWN0b3JTdHlsZTo6c2V0VGV4dChjb25zdCBTdHJp
bmcmIHRleHQpCiAgICAgcmV0dXJuIG1fcGFyZW50U3R5bGVTaGVldC0+c2V0U3R5bGVUZXh0KG1f
c3R5bGUucHRyKCksIHRleHQpOwogfQogCi1TdHJpbmcgSW5zcGVjdG9yU3R5bGU6OnNob3J0aGFu
ZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0Ci17Ci0gICAgU3Ry
aW5nIHZhbHVlID0gbV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShzaG9ydGhhbmRQcm9wZXJ0eSk7
Ci0gICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc3R5
bGUtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgU3RyaW5nIGluZGl2aWR1YWxQcm9wZXJ0eSA9
IG1fc3R5bGUtPml0ZW0oaSk7Ci0gICAgICAgIGlmIChtX3N0eWxlLT5nZXRQcm9wZXJ0eVNob3J0
aGFuZChpbmRpdmlkdWFsUHJvcGVydHkpICE9IHNob3J0aGFuZFByb3BlcnR5KQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGlmIChtX3N0eWxlLT5pc1Byb3BlcnR5SW1wbGljaXQoaW5k
aXZpZHVhbFByb3BlcnR5KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBTdHJpbmcg
aW5kaXZpZHVhbFZhbHVlID0gbV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShpbmRpdmlkdWFsUHJv
cGVydHkpOwotICAgICAgICBpZiAoaW5kaXZpZHVhbFZhbHVlID09ICJpbml0aWFsIikKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIWJ1aWxkZXIuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoaW5kaXZp
ZHVhbFZhbHVlKTsKLSAgICB9Ci0gICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKLX0KLQot
U3RyaW5nIEluc3BlY3RvclN0eWxlOjpzaG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNo
b3J0aGFuZFByb3BlcnR5KSBjb25zdAotewotICAgIFN0cmluZyBwcmlvcml0eSA9IG1fc3R5bGUt
PmdldFByb3BlcnR5UHJpb3JpdHkoc2hvcnRoYW5kUHJvcGVydHkpOwotICAgIGlmIChwcmlvcml0
eS5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc3R5bGUt
Pmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgICAgIFN0cmluZyBpbmRpdmlkdWFsUHJvcGVydHkg
PSBtX3N0eWxlLT5pdGVtKGkpOwotICAgICAgICAgICAgaWYgKG1fc3R5bGUtPmdldFByb3BlcnR5
U2hvcnRoYW5kKGluZGl2aWR1YWxQcm9wZXJ0eSkgIT0gc2hvcnRoYW5kUHJvcGVydHkpCi0gICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBwcmlvcml0eSA9IG1fc3R5bGUtPmdl
dFByb3BlcnR5UHJpb3JpdHkoaW5kaXZpZHVhbFByb3BlcnR5KTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBwcmlvcml0eTsKLX0KLQotVmVjdG9yPFN0
cmluZz4gSW5zcGVjdG9yU3R5bGU6OmxvbmdoYW5kUHJvcGVydGllcyhjb25zdCBTdHJpbmcmIHNo
b3J0aGFuZFByb3BlcnR5KSBjb25zdAotewotICAgIFZlY3RvcjxTdHJpbmc+IHByb3BlcnRpZXM7
Ci0gICAgSGFzaFNldDxTdHJpbmc+IGZvdW5kUHJvcGVydGllczsKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9zdHlsZS0+bGVuZ3RoKCk7ICsraSkgewotICAgICAgICBTdHJpbmcgaW5k
aXZpZHVhbFByb3BlcnR5ID0gbV9zdHlsZS0+aXRlbShpKTsKLSAgICAgICAgaWYgKGZvdW5kUHJv
cGVydGllcy5jb250YWlucyhpbmRpdmlkdWFsUHJvcGVydHkpIHx8IG1fc3R5bGUtPmdldFByb3Bl
cnR5U2hvcnRoYW5kKGluZGl2aWR1YWxQcm9wZXJ0eSkgIT0gc2hvcnRoYW5kUHJvcGVydHkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBmb3VuZFByb3BlcnRpZXMuYWRkKGluZGl2
aWR1YWxQcm9wZXJ0eSk7Ci0gICAgICAgIHByb3BlcnRpZXMuYXBwZW5kKGluZGl2aWR1YWxQcm9w
ZXJ0eSk7Ci0gICAgfQotICAgIHJldHVybiBwcm9wZXJ0aWVzOwotfQotCiBSZWY8SW5zcGVjdG9y
U3R5bGVTaGVldD4gSW5zcGVjdG9yU3R5bGVTaGVldDo6Y3JlYXRlKEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50LCBjb25zdCBTdHJpbmcmIGlkLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4mJiBw
YWdlU3R5bGVTaGVldCwgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2lu
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBkb2N1bWVudFVSTCwgTGlzdGVuZXIqIGxpc3RlbmVyKQog
ewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvclN0eWxlU2hlZXQocGFnZUFnZW50
LCBpZCwgV1RGTW92ZShwYWdlU3R5bGVTaGVldCksIG9yaWdpbiwgZG9jdW1lbnRVUkwsIGxpc3Rl
bmVyKSk7CkBAIC0xMDAwLDI3ICs4ODUsNyBAQCBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvclN0eWxl
U2hlZXQ6OnJ1bGVGb3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQpIGNvbnN0CiAgICAgcmV0
dXJuIGlkLm9yZGluYWwoKSA+PSBtX2ZsYXRSdWxlcy5zaXplKCkgPyBudWxscHRyIDogbV9mbGF0
UnVsZXMuYXQoaWQub3JkaW5hbCgpKS5nZXQoKTsKIH0KIAotUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxk
T2JqZWN0Rm9yU3R5bGVTaGVldCgpCi17Ci0gICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9
IHBhZ2VTdHlsZVNoZWV0KCk7Ci0gICAgaWYgKCFzdHlsZVNoZWV0KQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gY3NzUnVsZUxpc3QgPSBhc0NTU1J1
bGVMaXN0KHN0eWxlU2hlZXQpOwotCi0gICAgYXV0byByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OkNTU1N0eWxlU2hlZXRCb2R5OjpjcmVhdGUoKQotICAgICAgICAuc2V0U3R5bGVT
aGVldElkKGlkKCkpCi0gICAgICAgIC5zZXRSdWxlcyhidWlsZEFycmF5Rm9yUnVsZUxpc3QoY3Nz
UnVsZUxpc3QuZ2V0KCkpKQotICAgICAgICAucmVsZWFzZSgpOwotCi0gICAgYXV0byBzdHlsZVNo
ZWV0VGV4dCA9IHRleHQoKTsKLSAgICBpZiAoIXN0eWxlU2hlZXRUZXh0Lmhhc0V4Y2VwdGlvbigp
KQotICAgICAgICByZXN1bHQtPnNldFRleHQoc3R5bGVTaGVldFRleHQucmVsZWFzZVJldHVyblZh
bHVlKCkpOwotCi0gICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKLX0KLQotUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4gSW5zcGVjdG9yU3R5bGVT
aGVldDo6YnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0SW5mbygpCitSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9i
amVjdEZvclN0eWxlU2hlZXRJbmZvKCkKIHsKICAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0
ID0gcGFnZVN0eWxlU2hlZXQoKTsKICAgICBpZiAoIXN0eWxlU2hlZXQpCkBAIC0xMDI4LDEyICs4
OTMsMTAgQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhl
YWRlcj4gSW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGQKIAogICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9IHN0eWxlU2hlZXQtPm93bmVyRG9jdW1lbnQoKTsKICAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogbnVsbHB0cjsKLSAgICByZXR1cm4gSW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyOjpjcmVhdGUoKQorICAgIHJldHVy
biBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXQ6OmNyZWF0ZSgpCiAgICAg
ICAgIC5zZXRTdHlsZVNoZWV0SWQoaWQoKSkKICAgICAgICAgLnNldE9yaWdpbihtX29yaWdpbikK
LSAgICAgICAgLnNldERpc2FibGVkKHN0eWxlU2hlZXQtPmRpc2FibGVkKCkpCiAgICAgICAgIC5z
ZXRTb3VyY2VVUkwoZmluYWxVUkwoKSkKLSAgICAgICAgLnNldFRpdGxlKHN0eWxlU2hlZXQtPnRp
dGxlKCkpCiAgICAgICAgIC5zZXRGcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGZyYW1lKSkK
ICAgICAgICAgLnNldElzSW5saW5lKHN0eWxlU2hlZXQtPmlzSW5saW5lKCkgJiYgc3R5bGVTaGVl
dC0+c3RhcnRQb3NpdGlvbigpICE9IFRleHRQb3NpdGlvbigpKQogICAgICAgICAuc2V0U3RhcnRM
aW5lKHN0eWxlU2hlZXQtPnN0YXJ0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jhc2VkSW50KCkpCkBA
IC0xMTIxLDcgKzk4NCw3IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1NlbGVj
dG9yPiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclNlCiAgICAgcmV0dXJuIGJ1
aWxkT2JqZWN0Rm9yU2VsZWN0b3JIZWxwZXIoc2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLCAqc2Vs
ZWN0b3IsIGVsZW1lbnQpOwogfQogCi1SZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTZWxl
Y3Rvckxpc3Q+IEluc3BlY3RvclN0eWxlU2hlZXQ6OmJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3JMaXN0
KENTU1N0eWxlUnVsZSogcnVsZSwgRWxlbWVudCogZWxlbWVudCwgaW50JiBlbmRpbmdMaW5lKQor
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U2VsZWN0b3JMaXN0PiBJbnNwZWN0b3JTdHls
ZVNoZWV0OjpidWlsZE9iamVjdEZvclNlbGVjdG9yTGlzdChDU1NTdHlsZVJ1bGUqIHJ1bGUsIEVs
ZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VE
YXRhOwogICAgIGlmIChlbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkKQEAgLTExNDMsOCArMTAwNiw2
IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlNlbGVjdG9yTGlzdD4gSW5zcGVjdG9y
U3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTCiAgICAgICAgIC5zZXRTZWxlY3RvcnMoV1RGTW92
ZShzZWxlY3RvcnMpKQogICAgICAgICAuc2V0VGV4dChzZWxlY3RvclRleHQpCiAgICAgICAgIC5y
ZWxlYXNlKCk7Ci0gICAgaWYgKHNvdXJjZURhdGEpCi0gICAgICAgIHJlc3VsdC0+c2V0UmFuZ2Uo
YnVpbGRTb3VyY2VSYW5nZU9iamVjdChzb3VyY2VEYXRhLT5ydWxlSGVhZGVyUmFuZ2UsIGxpbmVF
bmRpbmdzKCksICZlbmRpbmdMaW5lKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTE1
NCwxOCArMTAxNSwxMiBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxl
PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWlsZE9iamVjdEZvclJ1bAogICAgIGlmICghc3R5bGVT
aGVldCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpbnQgZW5kaW5nTGluZSA9IDA7
CiAgICAgYXV0byByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU6OmNy
ZWF0ZSgpCi0gICAgICAgIC5zZXRTZWxlY3Rvckxpc3QoYnVpbGRPYmplY3RGb3JTZWxlY3Rvckxp
c3QocnVsZSwgZWxlbWVudCwgZW5kaW5nTGluZSkpCi0gICAgICAgIC5zZXRTb3VyY2VMaW5lKGVu
ZGluZ0xpbmUpCisgICAgICAgIC5zZXRTZWxlY3Rvckxpc3QoYnVpbGRPYmplY3RGb3JTZWxlY3Rv
ckxpc3QocnVsZSwgZWxlbWVudCkpCiAgICAgICAgIC5zZXRPcmlnaW4obV9vcmlnaW4pCiAgICAg
ICAgIC5zZXRTdHlsZShidWlsZE9iamVjdEZvclN0eWxlKCZydWxlLT5zdHlsZSgpKSkKICAgICAg
ICAgLnJlbGVhc2UoKTsKIAotICAgIC8vICJzb3VyY2VVUkwiIGlzIHByZXNlbnQgb25seSBmb3Ig
cmVndWxhciBydWxlcywgb3RoZXJ3aXNlICJvcmlnaW4iIHNob3VsZCBiZSB1c2VkIGluIHRoZSBm
cm9udGVuZC4KLSAgICBpZiAobV9vcmlnaW4gPT0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpT
dHlsZVNoZWV0T3JpZ2luOjpSZWd1bGFyKQotICAgICAgICByZXN1bHQtPnNldFNvdXJjZVVSTChm
aW5hbFVSTCgpKTsKLQogICAgIGlmIChjYW5CaW5kKCkpIHsKICAgICAgICAgSW5zcGVjdG9yQ1NT
SWQgaWQocnVsZUlkKHJ1bGUpKTsKICAgICAgICAgaWYgKCFpZC5pc0VtcHR5KCkpCkBAIC0xMTkx
LDcgKzEwNDYsNiBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4g
SW5zcGVjdG9yU3R5bGVTaGVldDo6YnVpbGRPYmplY3RGb3JTdAogICAgIGlmIChpZC5pc0VtcHR5
KCkpIHsKICAgICAgICAgcmV0dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU6
OmNyZWF0ZSgpCiAgICAgICAgICAgICAuc2V0Q3NzUHJvcGVydGllcyhBcnJheU9mPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6Q1NTUHJvcGVydHk+OjpjcmVhdGUoKSkKLSAgICAgICAgICAgIC5z
ZXRTaG9ydGhhbmRFbnRyaWVzKEFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTaG9y
dGhhbmRFbnRyeT46OmNyZWF0ZSgpKQogICAgICAgICAgICAgLnJlbGVhc2UoKTsKICAgICB9CiAg
ICAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IGluc3BlY3RvclN0eWxl
Rm9ySWQoaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNo
ZWV0LmgKaW5kZXggZWI0OGY2N2QzZWE1ZjJjODQ2YmM4NmU0NjQwNWUzNDg0ZDRhYWMzNS4uNWIz
ZmVhMDYyZTY4MWViYjgxZDAwMmUyMDJhYjk5MTMzM2MzNzBkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCkBAIC0xMzgsOSArMTM4LDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHBvcHVsYXRlQWxsUHJvcGVydGllcyhWZWN0b3I8SW5zcGVjdG9y
U3R5bGVQcm9wZXJ0eT4qIHJlc3VsdCkgY29uc3Q7CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6Q1NTU3R5bGU+IHN0eWxlV2l0aFByb3BlcnRpZXMoKSBjb25zdDsKICAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IGV4dHJhY3RTb3VyY2VEYXRhKCkgY29uc3Q7Ci0gICAgU3Ry
aW5nIHNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0
OwotICAgIFN0cmluZyBzaG9ydGhhbmRQcmlvcml0eShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFBy
b3BlcnR5KSBjb25zdDsKLSAgICBWZWN0b3I8U3RyaW5nPiBsb25naGFuZFByb3BlcnRpZXMoY29u
c3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkgY29uc3Q7CiAKICAgICBJbnNwZWN0b3JDU1NJ
ZCBtX3N0eWxlSWQ7CiAgICAgUmVmPENTU1N0eWxlRGVjbGFyYXRpb24+IG1fc3R5bGU7CkBAIC0x
NzIsOCArMTY5LDcgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPENTU1N0eWxlUnVsZSo+IGFk
ZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3Rvcik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVs
ZXRlUnVsZShjb25zdCBJbnNwZWN0b3JDU1NJZCYpOwogICAgIENTU1N0eWxlUnVsZSogcnVsZUZv
cklkKGNvbnN0IEluc3BlY3RvckNTU0lkJikgY29uc3Q7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEJvZHk+IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVl
dCgpOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRI
ZWFkZXI+IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldEluZm8oKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZVNoZWV0PiBidWlsZE9iamVjdEZvclN0eWxlU2hl
ZXRJbmZvKCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4g
YnVpbGRPYmplY3RGb3JSdWxlKENTU1N0eWxlUnVsZSosIEVsZW1lbnQqKTsKICAgICBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JTdHlsZShD
U1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0U3R5bGVUZXh0
KGNvbnN0IEluc3BlY3RvckNTU0lkJiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBTdHJpbmcqIG9sZFRl
eHQpOwpAQCAtMjE1LDcgKzIxMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpbmxpbmVTdHlsZVNo
ZWV0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3Q7CiAgICAgUmVmPEpTT046OkFycmF5T2Y8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPj4gYnVpbGRBcnJheUZvclJ1bGVMaXN0KENT
U1J1bGVMaXN0Kik7CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU2VsZWN0
b3I+IGJ1aWxkT2JqZWN0Rm9yU2VsZWN0b3IoY29uc3QgQ1NTU2VsZWN0b3IqLCBFbGVtZW50Kik7
Ci0gICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U2VsZWN0b3JMaXN0PiBidWlsZE9i
amVjdEZvclNlbGVjdG9yTGlzdChDU1NTdHlsZVJ1bGUqLCBFbGVtZW50KiwgaW50JiBlbmRpbmdM
aW5lKTsKKyAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTZWxlY3Rvckxpc3Q+IGJ1
aWxkT2JqZWN0Rm9yU2VsZWN0b3JMaXN0KENTU1N0eWxlUnVsZSosIEVsZW1lbnQqKTsKIAogICAg
IEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAgU3RyaW5nIG1faWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCmluZGV4IGQ1YTIyNzQxMzM5ZDUyNDA5Mjk4OGNhZDg3MDE1YTcxNzYxMWFlYjIuLjcxM2Fj
MWRmNDZhMzAyMzU2YmMyMTEwZjllZGUxYTdkMzc2ZTVhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC01MjEs
OSArNTIxLDkgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0Q29tcHV0ZWRTdHlsZUZvck5v
ZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBpbnQgbm8KICAgICBzdHlsZSA9IGluc3BlY3Rv
clN0eWxlLT5idWlsZEFycmF5Rm9yQ29tcHV0ZWRTdHlsZSgpOwogfQogCi12b2lkIEluc3BlY3Rv
ckNTU0FnZW50OjpnZXRBbGxTdHlsZVNoZWV0cyhFcnJvclN0cmluZyYsIFJlZlB0cjxKU09OOjpB
cnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4+JiBz
dHlsZUluZm9zKQordm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0QWxsU3R5bGVTaGVldHMoRXJy
b3JTdHJpbmcmLCBSZWZQdHI8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1N0eWxlU2hlZXQ+PiYgc3R5bGVJbmZvcykKIHsKLSAgICBzdHlsZUluZm9zID0gSlNPTjo6
QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRIZWFkZXI+Ojpj
cmVhdGUoKTsKKyAgICBzdHlsZUluZm9zID0gSlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OkNTU1N0eWxlU2hlZXQ+OjpjcmVhdGUoKTsKIAogICAgIFZlY3RvcjxJbnNwZWN0
b3JTdHlsZVNoZWV0Kj4gaW5zcGVjdG9yU3R5bGVTaGVldHM7CiAgICAgY29sbGVjdEFsbFN0eWxl
U2hlZXRzKGluc3BlY3RvclN0eWxlU2hlZXRzKTsKQEAgLTU2MSwxNSArNTYxLDYgQEAgdm9pZCBJ
bnNwZWN0b3JDU1NBZ2VudDo6Y29sbGVjdFN0eWxlU2hlZXRzKENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQsIFZlY3RvcjxDU1MKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6Omdl
dFN0eWxlU2hlZXQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHN0eWxl
U2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGVTaGVldEJv
ZHk+JiBzdHlsZVNoZWV0T2JqZWN0KQotewotICAgIEluc3BlY3RvclN0eWxlU2hlZXQqIGluc3Bl
Y3RvclN0eWxlU2hlZXQgPSBhc3NlcnRTdHlsZVNoZWV0Rm9ySWQoZXJyb3JTdHJpbmcsIHN0eWxl
U2hlZXRJZCk7Ci0gICAgaWYgKCFpbnNwZWN0b3JTdHlsZVNoZWV0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBzdHlsZVNoZWV0T2JqZWN0ID0gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmpl
Y3RGb3JTdHlsZVNoZWV0KCk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldFN0eWxl
U2hlZXRUZXh0KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBzdHlsZVNo
ZWV0SWQsIFN0cmluZyogcmVzdWx0KQogewogICAgIEluc3BlY3RvclN0eWxlU2hlZXQqIGluc3Bl
Y3RvclN0eWxlU2hlZXQgPSBhc3NlcnRTdHlsZVNoZWV0Rm9ySWQoZXJyb3JTdHJpbmcsIHN0eWxl
U2hlZXRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNTU0FnZW50LmgKaW5kZXggMzU0OTRmZTVjOTFiZDBkMDNlNDNlNTI0NzVhNWMyMDFhOTEy
MzFlMy4uNGU4OGNhNDNmOTE3NTIxNzQ5Y2I1YzM0YmVlMWZkY2Y0NjhlYzA5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuaApA
QCAtMTAwLDggKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGVGb3JO
b2RlKEVycm9yU3RyaW5nJiwgaW50IG5vZGVJZCwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NDb21wdXRlZFN0eWxlUHJvcGVydHk+PiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZ2V0SW5saW5lU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyYsIGludCBub2Rl
SWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgaW5saW5lU3R5
bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgYXR0cmlidXRl
cykgb3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShFcnJvclN0cmlu
ZyYsIGludCBub2RlSWQsIGNvbnN0IGJvb2wqIGluY2x1ZGVQc2V1ZG8sIGNvbnN0IGJvb2wqIGlu
Y2x1ZGVJbmhlcml0ZWQsIFJlZlB0cjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkNTUzo6UnVsZU1hdGNoPj4mIG1hdGNoZWRDU1NSdWxlcywgUmVmUHRyPEpTT046OkFycmF5T2Y8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+PiYsIFJlZlB0cjxKU09O
OjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeT4+
JiBpbmhlcml0ZWRFbnRyaWVzKSBvdmVycmlkZTsKLSAgICB2b2lkIGdldEFsbFN0eWxlU2hlZXRz
KEVycm9yU3RyaW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpDU1NTdHlsZVNoZWV0SGVhZGVyPj4mIHN0eWxlU2hlZXRJbmZvcykgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBnZXRTdHlsZVNoZWV0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNo
ZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRCb2R5
PiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEFsbFN0eWxlU2hlZXRzKEVycm9yU3Ry
aW5nJiwgUmVmUHRyPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NT
dHlsZVNoZWV0Pj4mIHN0eWxlU2hlZXRJbmZvcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBnZXRTdHls
ZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBTdHJp
bmcqIHJlc3VsdCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTdHlsZVNoZWV0VGV4dChFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBjb25zdCBTdHJpbmcmIHRleHQpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0U3R5bGVUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgSlNPTjo6
T2JqZWN0JiBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NTU01hbmFnZXIu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DU1NN
YW5hZ2VyLmpzCmluZGV4IGMwMGNkYTJlYWY3NTExNzVkNGVjZTk1OWE1NzljZDIzOTBmNGZiZWQu
LjkzZWIwMjIzYjgwZjNmZTJhMTNjNjE5ODY3MjBiZTRkOThhZjEwNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NTU01hbmFnZXIu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q1NTTWFuYWdlci5qcwpAQCAtODEsMjMgKzgxLDYgQEAgV0kuQ1NTTWFuYWdlciA9IGNsYXNzIENT
U01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfQogICAgIH0KIAotICAgIHN0YXRp
YyBwcm90b2NvbE1lZGlhU291cmNlVG9FbnVtKHNvdXJjZSkKLSAgICB7Ci0gICAgICAgIHN3aXRj
aCAoc291cmNlKSB7Ci0gICAgICAgIGNhc2UgQ1NTQWdlbnQuQ1NTTWVkaWFTb3VyY2UuTWVkaWFS
dWxlOgotICAgICAgICAgICAgcmV0dXJuIFdJLkNTU01lZGlhLlR5cGUuTWVkaWFSdWxlOwotICAg
ICAgICBjYXNlIENTU0FnZW50LkNTU01lZGlhU291cmNlLkltcG9ydFJ1bGU6Ci0gICAgICAgICAg
ICByZXR1cm4gV0kuQ1NTTWVkaWEuVHlwZS5JbXBvcnRSdWxlOwotICAgICAgICBjYXNlIENTU0Fn
ZW50LkNTU01lZGlhU291cmNlLkxpbmtlZFNoZWV0OgotICAgICAgICAgICAgcmV0dXJuIFdJLkNT
U01lZGlhLlR5cGUuTGlua2VkU3R5bGVTaGVldDsKLSAgICAgICAgY2FzZSBDU1NBZ2VudC5DU1NN
ZWRpYVNvdXJjZS5JbmxpbmVTaGVldDoKLSAgICAgICAgICAgIHJldHVybiBXSS5DU1NNZWRpYS5U
eXBlLklubGluZVN0eWxlU2hlZXQ7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjb25z
b2xlLmFzc2VydChmYWxzZSwgIlVua25vd24gQ1NTLkNTU01lZGlhU291cmNlIiwgc291cmNlKTsK
LSAgICAgICAgICAgIHJldHVybiBXSS5DU1NNZWRpYS5UeXBlLk1lZGlhUnVsZTsKLSAgICAgICAg
fQotICAgIH0KLQogICAgIC8vIFB1YmxpYwogCiAgICAgZ2V0IHByZWZlcnJlZENvbG9yRm9ybWF0
KCkKQEAgLTI0MCw3ICsyMjMsNyBAQCBXSS5DU1NNYW5hZ2VyID0gY2xhc3MgQ1NTTWFuYWdlciBl
eHRlbmRzIFdJLk9iamVjdAogICAgICAgICBpZiAoZG9Ob3RDcmVhdGVJZk1pc3NpbmcpCiAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKENTU0FnZW50LmNyZWF0ZVN0eWxlU2hlZXQp
IHsKKyAgICAgICAgaWYgKEluc3BlY3RvckJhY2tlbmQuZG9tYWlucy5DU1MuY3JlYXRlU3R5bGVT
aGVldCkgewogICAgICAgICAgICAgQ1NTQWdlbnQuY3JlYXRlU3R5bGVTaGVldChmcmFtZS5pZCwg
ZnVuY3Rpb24oZXJyb3IsIHN0eWxlU2hlZXRJZCkgewogICAgICAgICAgICAgICAgIGxldCBzdHls
ZVNoZWV0ID0gV0kuY3NzTWFuYWdlci5zdHlsZVNoZWV0Rm9ySWRlbnRpZmllcihzdHlsZVNoZWV0
SWQpOwogICAgICAgICAgICAgICAgIHN0eWxlU2hlZXRbV0kuQ1NTTWFuYWdlci5QcmVmZXJyZWRJ
bnNwZWN0b3JTdHlsZVNoZWV0U3ltYm9sXSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTTWVkaWEuanMKaW5kZXggM2JkNjg5
OWRjYmM0MjFiMzBlM2RkMDYzYjQ4OWUyZTE3MmRlYzliZC4uYTQ3NzNmYmQwMDg2OWY0MWY0NzE2
YWI1MzExNTYzMjYwOTdiNDcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NTU01lZGlhLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NNZWRpYS5qcwpAQCAtMjUsMjUgKzI1LDEyIEBACiAK
IFdJLkNTU01lZGlhID0gY2xhc3MgQ1NTTWVkaWEKIHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlLCB0
ZXh0LCBzb3VyY2VDb2RlTG9jYXRpb24pCisgICAgY29uc3RydWN0b3IodGV4dCkKICAgICB7Ci0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFzb3VyY2VDb2RlTG9jYXRpb24gfHwgc291cmNlQ29kZUxv
Y2F0aW9uIGluc3RhbmNlb2YgV0kuU291cmNlQ29kZUxvY2F0aW9uKTsKLQotICAgICAgICB0aGlz
Ll90eXBlID0gdHlwZSB8fCBudWxsOwogICAgICAgICB0aGlzLl90ZXh0ID0gdGV4dCB8fCAiIjsK
LSAgICAgICAgdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uID0gc291cmNlQ29kZUxvY2F0aW9uIHx8
IG51bGw7CiAgICAgfQogCiAgICAgLy8gUHVibGljCiAKLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJu
IHRoaXMuX3R5cGU7IH0KICAgICBnZXQgdGV4dCgpIHsgcmV0dXJuIHRoaXMuX3RleHQ7IH0KLSAg
ICBnZXQgc291cmNlQ29kZUxvY2F0aW9uKCkgeyByZXR1cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0
aW9uOyB9Ci19OwotCi1XSS5DU1NNZWRpYS5UeXBlID0gewotICAgIE1lZGlhUnVsZTogImNzcy1t
ZWRpYS10eXBlLW1lZGlhLXJ1bGUiLAotICAgIEltcG9ydFJ1bGU6ICJjc3MtbWVkaWEtdHlwZS1p
bXBvcnQtcnVsZSIsCi0gICAgTGlua2VkU3R5bGVTaGVldDogImNzcy1tZWRpYS10eXBlLWxpbmtl
ZC1zdHlsZXNoZWV0IiwKLSAgICBJbmxpbmVTdHlsZVNoZWV0OiAiY3NzLW1lZGlhLXR5cGUtaW5s
aW5lLXN0eWxlc2hlZXQiCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcwppbmRleCAyNjdkY2Q0MWQ2
ZjUzNWY5YWZkNzcxNDE3ODUyMTE2MDcxYjgwNjNlLi5hOWJjMzQ0NWY4YjNiMmI3OGJiMjNkZjRk
ZjAzMDI5OTM1YTM0ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcwpAQCAtNTEsMTAgKzUxLDcg
QEAgV0kuRE9NTm9kZVN0eWxlcyA9IGNsYXNzIERPTU5vZGVTdHlsZXMgZXh0ZW5kcyBXSS5PYmpl
Y3QKIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IG5vZGUoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuX25vZGU7Ci0gICAgfQorICAgIGdldCBub2RlKCkgeyByZXR1cm4gdGhpcy5fbm9k
ZTsgfQogCiAgICAgZ2V0IG5lZWRzUmVmcmVzaCgpCiAgICAgewpAQCAtMjk4LDcgKzI5NSw3IEBA
IFdJLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01Ob2RlU3R5bGVzIGV4dGVuZHMgV0kuT2JqZWN0
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDT01QQVRJQklMSVRZIChpT1MgOSk6IEJlZm9yZSBD
U1MuY3JlYXRlU3R5bGVTaGVldCwgQ1NTLmFkZFJ1bGUgY291bGQgYmUgY2FsbGVkIHdpdGggYSBj
b250ZXh0Tm9kZS4KLSAgICAgICAgaWYgKCFDU1NBZ2VudC5jcmVhdGVTdHlsZVNoZWV0KSB7Cisg
ICAgICAgIGlmICghSW5zcGVjdG9yQmFja2VuZC5kb21haW5zLkNTUy5jcmVhdGVTdHlsZVNoZWV0
KSB7CiAgICAgICAgICAgICBDU1NBZ2VudC5hZGRSdWxlLmludm9rZSh7Y29udGV4dE5vZGVJZDog
dGhpcy5fbm9kZS5pZCwgc2VsZWN0b3J9LCBhZGRlZFJ1bGUuYmluZCh0aGlzKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTMxNyw1NiArMzE0LDEzIEBAIFdJLkRPTU5vZGVT
dHlsZXMgPSBjbGFzcyBET01Ob2RlU3R5bGVzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAg
ICBXSS5jc3NNYW5hZ2VyLnByZWZlcnJlZEluc3BlY3RvclN0eWxlU2hlZXRGb3JGcmFtZSh0aGlz
Ll9ub2RlLmZyYW1lLCBpbnNwZWN0b3JTdHlsZVNoZWV0QXZhaWxhYmxlLmJpbmQodGhpcykpOwog
ICAgIH0KIAotICAgIHJ1bGVzRm9yU2VsZWN0b3Ioc2VsZWN0b3IpCi0gICAgewotICAgICAgICBz
ZWxlY3RvciA9IHNlbGVjdG9yIHx8IHRoaXMuX25vZGUuYXBwcm9wcmlhdGVTZWxlY3RvckZvcih0
cnVlKTsKLQotICAgICAgICBmdW5jdGlvbiBydWxlSGFzU2VsZWN0b3IocnVsZSkgewotICAgICAg
ICAgICAgcmV0dXJuICFydWxlLm1lZGlhTGlzdC5sZW5ndGggJiYgcnVsZS5zZWxlY3RvclRleHQg
PT09IHNlbGVjdG9yOwotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IHJ1bGVzID0gdGhpcy5fbWF0
Y2hlZFJ1bGVzLmZpbHRlcihydWxlSGFzU2VsZWN0b3IpOwotCi0gICAgICAgIGZvciAobGV0IGlk
IGluIHRoaXMuX3BzZXVkb0VsZW1lbnRzKQotICAgICAgICAgICAgcnVsZXMgPSBydWxlcy5jb25j
YXQodGhpcy5fcHNldWRvRWxlbWVudHNbaWRdLm1hdGNoZWRSdWxlcy5maWx0ZXIocnVsZUhhc1Nl
bGVjdG9yKSk7Ci0KLSAgICAgICAgcmV0dXJuIHJ1bGVzOwotICAgIH0KLQotICAgIGdldCBtYXRj
aGVkUnVsZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoZWRSdWxlczsKLSAg
ICB9Ci0KLSAgICBnZXQgaW5oZXJpdGVkUnVsZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX2luaGVyaXRlZFJ1bGVzOwotICAgIH0KLQotICAgIGdldCBpbmxpbmVTdHlsZSgpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lU3R5bGU7Ci0gICAgfQotCi0gICAgZ2V0IGF0
dHJpYnV0ZXNTdHlsZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlc1N0
eWxlOwotICAgIH0KLQotICAgIGdldCBwc2V1ZG9FbGVtZW50cygpCi0gICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHM7Ci0gICAgfQotCi0gICAgZ2V0IGNvbXB1dGVkU3R5
bGUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXB1dGVkU3R5bGU7Ci0gICAgfQot
Ci0gICAgZ2V0IG9yZGVyZWRTdHlsZXMoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX29y
ZGVyZWRTdHlsZXM7Ci0gICAgfQorICAgIGdldCBtYXRjaGVkUnVsZXMoKSB7IHJldHVybiB0aGlz
Ll9tYXRjaGVkUnVsZXM7IH0KKyAgICBnZXQgaW5oZXJpdGVkUnVsZXMoKSB7IHJldHVybiB0aGlz
Ll9pbmhlcml0ZWRSdWxlczsgfQorICAgIGdldCBwc2V1ZG9FbGVtZW50cygpIHsgcmV0dXJuIHRo
aXMuX3BzZXVkb0VsZW1lbnRzOyB9CisgICAgZ2V0IGlubGluZVN0eWxlKCkgeyByZXR1cm4gdGhp
cy5faW5saW5lU3R5bGU7IH0KKyAgICBnZXQgYXR0cmlidXRlc1N0eWxlKCkgeyByZXR1cm4gdGhp
cy5fYXR0cmlidXRlc1N0eWxlOyB9CisgICAgZ2V0IGNvbXB1dGVkU3R5bGUoKSB7IHJldHVybiB0
aGlzLl9jb21wdXRlZFN0eWxlOyB9CisgICAgZ2V0IG9yZGVyZWRTdHlsZXMoKSB7IHJldHVybiB0
aGlzLl9vcmRlcmVkU3R5bGVzOyB9CiAKICAgICBnZXQgdW5pcXVlT3JkZXJlZFN0eWxlcygpCiAg
ICAgewpAQCAtNjQ3LDEyICs2MDEsNiBAQCBXSS5ET01Ob2RlU3R5bGVzID0gY2xhc3MgRE9NTm9k
ZVN0eWxlcyBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAg
ICAgICAgdmFyIHNob3J0aGFuZHMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IHBheWxv
YWQuc2hvcnRoYW5kRW50cmllcyAmJiBpIDwgcGF5bG9hZC5zaG9ydGhhbmRFbnRyaWVzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgc2hvcnRoYW5kID0gcGF5bG9hZC5zaG9ydGhhbmRF
bnRyaWVzW2ldOwotICAgICAgICAgICAgc2hvcnRoYW5kc1tzaG9ydGhhbmQubmFtZV0gPSBzaG9y
dGhhbmQudmFsdWU7Ci0gICAgICAgIH0KLQogICAgICAgICB2YXIgaW5oZXJpdGVkUHJvcGVydHlD
b3VudCA9IDA7CiAKICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKQEAgLTc2MiwxOCArNzEw
LDMyIEBAIFdJLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01Ob2RlU3R5bGVzIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgIHZhciBzZWxlY3RvcnMgPSB0aGlzLl9wYXJzZVNlbGVjdG9yTGlzdFBh
eWxvYWQocGF5bG9hZC5zZWxlY3Rvckxpc3QpOwogICAgICAgICB2YXIgdHlwZSA9IFdJLkNTU01h
bmFnZXIucHJvdG9jb2xTdHlsZVNoZWV0T3JpZ2luVG9FbnVtKHBheWxvYWQub3JpZ2luKTsKIAot
ICAgICAgICB2YXIgc291cmNlQ29kZUxvY2F0aW9uID0gbnVsbDsKLSAgICAgICAgdmFyIHNvdXJj
ZVJhbmdlID0gcGF5bG9hZC5zZWxlY3Rvckxpc3QucmFuZ2U7Ci0gICAgICAgIGlmIChzb3VyY2VS
YW5nZSkKLSAgICAgICAgICAgIHNvdXJjZUNvZGVMb2NhdGlvbiA9IHRoaXMuX2NyZWF0ZVNvdXJj
ZUNvZGVMb2NhdGlvbihwYXlsb2FkLnNvdXJjZVVSTCwgc291cmNlUmFuZ2Uuc3RhcnRMaW5lLCBz
b3VyY2VSYW5nZS5zdGFydENvbHVtbik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgLy8g
RklYTUU6IElzIGl0IHBvc3NpYmxlIGZvciBhIENTU1J1bGUgdG8gaGF2ZSBhIHNvdXJjZUxpbmUg
d2l0aG91dCBpdHMgc2VsZWN0b3JMaXN0IGhhdmluZyBhIHNvdXJjZVJhbmdlPyBGYWxsIGJhY2sg
anVzdCBpbiBjYXNlLgotICAgICAgICAgICAgc291cmNlQ29kZUxvY2F0aW9uID0gdGhpcy5fY3Jl
YXRlU291cmNlQ29kZUxvY2F0aW9uKHBheWxvYWQuc291cmNlVVJMLCBwYXlsb2FkLnNvdXJjZUxp
bmUpOworICAgICAgICBsZXQgbGluZU51bWJlciA9IE5hTjsKKyAgICAgICAgbGV0IGNvbHVtbk51
bWJlciA9IE5hTjsKKworICAgICAgICBpZiAoc3R5bGUuc3R5bGVTaGVldFRleHRSYW5nZSkgewor
ICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVOdW1iZXIpKQorICAgICAgICAgICAgICAgIGxpbmVO
dW1iZXIgPSBzdHlsZS5zdHlsZVNoZWV0VGV4dFJhbmdlLnN0YXJ0TGluZTsKKyAgICAgICAgICAg
IGlmIChpc05hTihjb2x1bW5OdW1iZXIpKQorICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlciA9
IHN0eWxlLnN0eWxlU2hlZXRUZXh0UmFuZ2Uuc3RhcnRDb2x1bW47CiAgICAgICAgIH0KIAorICAg
ICAgICBsZXQgc2VsZWN0b3JSYW5nZSA9IHBheWxvYWQuc2VsZWN0b3JMaXN0LnJhbmdlOworICAg
ICAgICBpZiAoc2VsZWN0b3JSYW5nZSkgeworICAgICAgICAgICAgaWYgKGlzTmFOKGxpbmVOdW1i
ZXIpKQorICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIgPSBzZWxlY3RvclJhbmdlLnN0YXJ0TGlu
ZTsKKyAgICAgICAgICAgIGlmIChpc05hTihjb2x1bW5OdW1iZXIpKQorICAgICAgICAgICAgICAg
IGNvbHVtbk51bWJlciA9IHNlbGVjdG9yUmFuZ2Uuc3RhcnRDb2x1bW47CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAocGF5bG9hZC5zb3VyY2VMaW5lICYmIGlzTmFOKGxpbmVOdW1iZXIpKQorICAg
ICAgICAgICAgbGluZU51bWJlciA9IHBheWxvYWQuc291cmNlTGluZTsKKworICAgICAgICBsZXQg
c291cmNlQ29kZUxvY2F0aW9uID0gdGhpcy5fY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uKHBheWxv
YWQuc291cmNlVVJMIHx8IHN0eWxlU2hlZXQudXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIp
OworCiAgICAgICAgIGlmIChzdHlsZVNoZWV0KSB7CiAgICAgICAgICAgICBpZiAoIXNvdXJjZUNv
ZGVMb2NhdGlvbiAmJiBzdHlsZVNoZWV0LmlzSW5zcGVjdG9yU3R5bGVTaGVldCgpKQotICAgICAg
ICAgICAgICAgIHNvdXJjZUNvZGVMb2NhdGlvbiA9IHN0eWxlU2hlZXQuY3JlYXRlU291cmNlQ29k
ZUxvY2F0aW9uKHNvdXJjZVJhbmdlLnN0YXJ0TGluZSwgc291cmNlUmFuZ2Uuc3RhcnRDb2x1bW4p
OworICAgICAgICAgICAgICAgIHNvdXJjZUNvZGVMb2NhdGlvbiA9IHN0eWxlU2hlZXQuY3JlYXRl
U291cmNlQ29kZUxvY2F0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiAKICAgICAgICAg
ICAgIHNvdXJjZUNvZGVMb2NhdGlvbiA9IHN0eWxlU2hlZXQub2Zmc2V0U291cmNlQ29kZUxvY2F0
aW9uKHNvdXJjZUNvZGVMb2NhdGlvbik7CiAgICAgICAgIH0KQEAgLTc4MSwxMyArNzQzLDcgQEAg
V0kuRE9NTm9kZVN0eWxlcyA9IGNsYXNzIERPTU5vZGVTdHlsZXMgZXh0ZW5kcyBXSS5PYmplY3QK
ICAgICAgICAgdmFyIG1lZGlhTGlzdCA9IFtdOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgcGF5
bG9hZC5tZWRpYSAmJiBpIDwgcGF5bG9hZC5tZWRpYS5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgdmFyIG1lZGlhSXRlbSA9IHBheWxvYWQubWVkaWFbaV07Ci0gICAgICAgICAgICB2YXIgbWVk
aWFUeXBlID0gV0kuQ1NTTWFuYWdlci5wcm90b2NvbE1lZGlhU291cmNlVG9FbnVtKG1lZGlhSXRl
bS5zb3VyY2UpOwotICAgICAgICAgICAgdmFyIG1lZGlhVGV4dCA9IG1lZGlhSXRlbS50ZXh0Owot
ICAgICAgICAgICAgdmFyIG1lZGlhU291cmNlQ29kZUxvY2F0aW9uID0gdGhpcy5fY3JlYXRlU291
cmNlQ29kZUxvY2F0aW9uKG1lZGlhSXRlbS5zb3VyY2VVUkwsIG1lZGlhSXRlbS5zb3VyY2VMaW5l
KTsKLSAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0KQotICAgICAgICAgICAgICAgIG1lZGlhU291
cmNlQ29kZUxvY2F0aW9uID0gc3R5bGVTaGVldC5vZmZzZXRTb3VyY2VDb2RlTG9jYXRpb24obWVk
aWFTb3VyY2VDb2RlTG9jYXRpb24pOwotCi0gICAgICAgICAgICBtZWRpYUxpc3QucHVzaChuZXcg
V0kuQ1NTTWVkaWEobWVkaWFUeXBlLCBtZWRpYVRleHQsIG1lZGlhU291cmNlQ29kZUxvY2F0aW9u
KSk7CisgICAgICAgICAgICBtZWRpYUxpc3QucHVzaChuZXcgV0kuQ1NTTWVkaWEobWVkaWFJdGVt
LnRleHQpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChydWxlKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggMmFmZGY4YWZhMmM1NzZk
OWM2NGFiMDc3ZjY3ODFlZjRmMjRjNzk5NS4uMjYwZThhZTZkOWIyYWFkYTM1ZWE4YjM4MTRhNDBl
NTY4MTcwZGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QuaHRtbApAQCAtMjI4LDYgKzIyOCw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlByb3hpZXMvSGVh
cFNuYXBzaG90V29ya2VyUHJveHkuanMiPjwvc2NyaXB0PgogCiAgICAgPHNjcmlwdCBzcmM9IkNv
bnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IkNv
bnRyb2xsZXJzL0JyYW5jaE1hbmFnZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJD
b250cm9sbGVycy9CcmVha3BvaW50TG9nTWVzc2FnZUxleGVyLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGQ5ZGNhZmZkZDBlOWI1MTYyMDAyODAzMTE1NWI4ZTY1YWFmNmQwYzQuLmQ4NDI0YmUyNGM2Yjll
NzgwNWI5NmU4ZTJiZDJkZDg0N2YxODRmZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0w
My0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogU3R5bGVzOiByZW1vdmUgdW51c2VkIHByb3RvY29sIHZhbHVlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTgwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80ODc4OTYxOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvYWRkLXJ1bGUuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL2FkZC1ydWxlLWV4cGVjdGVkLnR4dDoKKwogMjAxOS0wMy0xMSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtTeW50aGV0aWMgQ2xpY2td
IERpc3BhdGNoIG1vdXNlb3V0IHNvb24gYWZ0ZXIgbW91c2V1cApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy9hZGQtcnVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY3NzL2FkZC1ydWxlLWV4cGVjdGVkLnR4dAppbmRleCBiNmYzZWZmNzdlODIxMzE0
NjUxMmIwZjI5Mzk0M2JlZWJkNjgxMjc2Li44MDYzZGUzNzNkMTUxMTcxZGY1NDc1NWMwOGY4NGMx
ZjU3YTRlYmJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1ydWxl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1ydWxlLWV4
cGVjdGVkLnR4dApAQCAtNCwxNyArNCwxNyBAQCBUZXN0aW5nIHRoYXQgQ1NTLmFkZFJ1bGUgd29y
a3MgZm9yIGFsbCB0eXBlcyBvZiBzdHlsZXNoZWV0cy4KID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
Q1NTLmFkZFJ1bGUKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuYWRkUnVsZS5Jbk5vbkV4aXN0
aW5nSW5zcGVjdG9yU3R5bGVTaGVldAogUEFTUzogUnVsZSBzZWxlY3RvciBzaG91bGQgYmUgImJv
ZHkiCi1QQVNTOiBSdWxlIHJhbmdlIHNob3VsZCBiZSBbMDowLDA6NF0KK1BBU1M6IFJ1bGUgcmFu
Z2Ugc2hvdWxkIGJlIFswOjYsMDo2XQogUEFTUzogUnVsZSBvcmlnaW4gc2hvdWxkIGJlICJpbnNw
ZWN0b3IiCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuYWRkUnVsZS5JbkV4aXN0aW5nSW5z
cGVjdG9yU3R5bGVTaGVldAogUEFTUzogUnVsZSBzZWxlY3RvciBzaG91bGQgYmUgImRpdiIKLVBB
U1M6IFJ1bGUgcmFuZ2Ugc2hvdWxkIGJlIFsxOjAsMTozXQorUEFTUzogUnVsZSByYW5nZSBzaG91
bGQgYmUgWzE6NSwxOjVdCiBQQVNTOiBSdWxlIG9yaWdpbiBzaG91bGQgYmUgImluc3BlY3RvciIK
IAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5hZGRSdWxlLkV4dGVybmFsU3R5bGVTaGVldAog
UEFTUzogUnVsZSBzZWxlY3RvciBzaG91bGQgYmUgImRpdiIKLVBBU1M6IFJ1bGUgcmFuZ2Ugc2hv
dWxkIGJlIFsyOjAsMjozXQorUEFTUzogUnVsZSByYW5nZSBzaG91bGQgYmUgWzI6NSwyOjVdCiBQ
QVNTOiBSdWxlIG9yaWdpbiBzaG91bGQgYmUgInJlZ3VsYXIiCiAKIC0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDU1MuYWRkUnVsZS5CYWRTdHlsZVNoZWV0SWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3MvYWRkLXJ1bGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
YWRkLXJ1bGUuaHRtbAppbmRleCA5OGIyNmYzN2FmMzkzZjFlMjAzNTNiZGZhMTNlMzhkM2JhMzJh
Nzk2Li5iNWRjODQ4ZWFlMmIzM2I4ZTE0Yzg2NDAyZDFkMzU5ZGEzZTAyMTk0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2FkZC1ydWxlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9hZGQtcnVsZS5odG1sCkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9u
IHRlc3QoKSB7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChydWxlUGF5bG9hZC5zZWxlY3Rvckxpc3QudGV4dCwgImJvZHkiLCBg
UnVsZSBzZWxlY3RvciBzaG91bGQgYmUgImJvZHkiYCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVsZVBheWxvYWQuc2VsZWN0b3JMaXN0LnJh
bmdlKSwgIjA6MCwwOjQiLCBgUnVsZSByYW5nZSBzaG91bGQgYmUgWzA6MCwwOjRdYCk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVsZVBheWxv
YWQuc3R5bGUucmFuZ2UpLCAiMDo2LDA6NiIsIGBSdWxlIHJhbmdlIHNob3VsZCBiZSBbMDo2LDA6
Nl1gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJ1bGVQYXls
b2FkLm9yaWdpbiwgImluc3BlY3RvciIsIGBSdWxlIG9yaWdpbiBzaG91bGQgYmUgImluc3BlY3Rv
ciJgKTsKIAogICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTYzLDcgKzYzLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJ1bGVQYXlsb2FkLnNlbGVjdG9yTGlzdC50ZXh0LCAiZGl2
IiwgYFJ1bGUgc2VsZWN0b3Igc2hvdWxkIGJlICJkaXYiYCk7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVsZVBheWxvYWQuc2VsZWN0b3JMaXN0
LnJhbmdlKSwgIjE6MCwxOjMiLCBgUnVsZSByYW5nZSBzaG91bGQgYmUgWzE6MCwxOjNdYCk7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVsZVBh
eWxvYWQuc3R5bGUucmFuZ2UpLCAiMTo1LDE6NSIsIGBSdWxlIHJhbmdlIHNob3VsZCBiZSBbMTo1
LDE6NV1gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJ1bGVQ
YXlsb2FkLm9yaWdpbiwgImluc3BlY3RvciIsIGBSdWxlIG9yaWdpbiBzaG91bGQgYmUgImluc3Bl
Y3RvciJgKTsKIAogICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKQEAgLTk5LDcgKzk5LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJ1bGVQYXlsb2FkLnNlbGVjdG9yTGlzdC50ZXh0LCAi
ZGl2IiwgYFJ1bGUgc2VsZWN0b3Igc2hvdWxkIGJlICJkaXYiYCk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVsZVBheWxvYWQuc2VsZWN0b3JM
aXN0LnJhbmdlKSwgIjI6MCwyOjMiLCBgUnVsZSByYW5nZSBzaG91bGQgYmUgWzI6MCwyOjNdYCk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHJpbmdpZnkocnVs
ZVBheWxvYWQuc3R5bGUucmFuZ2UpLCAiMjo1LDI6NSIsIGBSdWxlIHJhbmdlIHNob3VsZCBiZSBb
Mjo1LDI6NV1gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJ1
bGVQYXlsb2FkLm9yaWdpbiwgInJlZ3VsYXIiLCBgUnVsZSBvcmlnaW4gc2hvdWxkIGJlICJyZWd1
bGFyImApOwogCiAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwo=
</data>
<flag name="review"
          id="380886"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
      

    </bug>

</bugzilla>