<?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>66779</bug_id>
          
          <creation_ts>2011-08-23 08:06:24 -0700</creation_ts>
          <short_desc>REGRESSION(r93603): Breaks build (Requested by pfeldman on #webkit).</short_desc>
          <delta_ts>2022-03-01 02:50:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>37768</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>apavlov</cc>
    
    <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>455409</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 08:06:24 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/93603 broke the build:
Breaks build (Requested by pfeldman on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455410</commentid>
    <comment_count>1</comment_count>
      <attachid>104847</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 08:06:59 -0700</bug_when>
    <thetext>Created attachment 104847
ROLLOUT of r93603

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104847</attachid>
            <date>2011-08-23 08:06:59 -0700</date>
            <delta_ts>2022-03-01 02:50:24 -0800</delta_ts>
            <desc>ROLLOUT of r93603</desc>
            <filename>bug-66779-20110823150638.patch</filename>
            <type>text/plain</type>
            <size>53065</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM2MDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNWZiNDljZDNkNjk3YWQy
NjhmOTlhYjk2MDA3M2Q2MDA1NmUyZGJiLi5hNmFlMzdhNzBjNmIyY2VkNzJlZDY2YTQwOWM3YjI2
ZjgyY2NkYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMDgtMjMgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5MzYwMy4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvOTM2MDMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY2Nzc5CisKKyAgICAgICAgQnJlYWtzIGJ1aWxkIChSZXF1ZXN0ZWQgYnkgcGZlbGRt
YW4gb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5vZGVIaWdobGlnaHRlcjo6ZHJhd05vZGVIaWdo
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTm9kZUhpZ2hsaWdodGVyOjpkcmF3UmVjdEhp
Z2hsaWdodCk6CisgICAgICAgICogaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6
On5JbnNwZWN0b3JET01BZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
aGFuZGxlTW91c2VQcmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
QWdlbnQ6OnNldFNlYXJjaGluZ0Zvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OnNldEluc3BlY3RNb2RlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpoaWdobGlnaHRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFn
ZW50OjpoaWdobGlnaHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50
OjpoaWdobGlnaHRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
aGlkZUhpZ2hsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6ZHJh
d0hpZ2hsaWdodCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0ZWROb2RlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1BhbmVsLnByb3RvdHlwZS5zZXRTZWFyY2hpbmdGb3JOb2RlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5NZXRyaWNzU2lkZWJhclBhbmUucHJvdG90eXBlLl9oaWdobGlnaHRET01Ob2RlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQucHJvdG90eXBlLnNldCBob3ZlcmVkKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX2hpZ2hsaWdodFJlY3QpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKC5tZXRy
aWNzIC5tYXJnaW4uaG92ZXJlZCk6CisgICAgICAgICgubWV0cmljcyAuYm9yZGVyLmhvdmVyZWQp
OgorICAgICAgICAoLm1ldHJpY3MgLnBhZGRpbmcuaG92ZXJlZCk6CisgICAgICAgICgubWV0cmlj
cyAuY29udGVudC5ob3ZlcmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5oaWdobGlnaHRET01Ob2RlKToKKwogMjAx
MS0wOC0yMyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGRpZmZlcmVudGlhdGUgZWxlbWVudCBoaWdobGlnaHQgY29sb3Jz
IGZvciBtYXJnaW4gYW5kIHBhZGRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RP
TU5vZGVIaWdobGlnaHRlci5jcHAKaW5kZXggNzlmZTM0MjJiY2QyYmJhMjBjMDVhMGI1NTRlNTU1
MTUzNTJiNTY2My4uMDRiYjQ0ODAwMzlhYWU0N2RiNGE0NmQwNzAwMzI3OWQ2NzdkZDc1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKQEAg
LTMzLDExICszMyw5IEBACiAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRm9udENh
Y2hlLmgiCi0jaW5jbHVkZSAiRm9udEZhbWlseS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVk
ZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1
ZGUgIlJlbmRlcklubGluZS5oIgpAQCAtNDksMTUgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBuYW1lc3BhY2UgewogCi1jb25zdCBzdGF0aWMgaW50IHJlY3RJbmZsYXRlUHggPSA0Owot
Y29uc3Qgc3RhdGljIGludCBmb250SGVpZ2h0UHggPSAxMjsKLWNvbnN0IHN0YXRpYyBpbnQgYm9y
ZGVyV2lkdGhQeCA9IDE7Ci1jb25zdCBzdGF0aWMgaW50IHRvb2x0aXBQYWRkaW5nID0gNDsKLQot
Y29uc3Qgc3RhdGljIGludCBhcnJvd1RpcE9mZnNldCA9IDIwOwotY29uc3Qgc3RhdGljIGludCBh
cnJvd0hlaWdodCA9IDc7Ci1jb25zdCBzdGF0aWMgaW50IGFycm93SGFsZldpZHRoID0gNzsKLQog
UGF0aCBxdWFkVG9QYXRoKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKICAgICBQYXRoIHF1YWRQ
YXRoOwpAQCAtNjksOSArNTgsMTAgQEAgUGF0aCBxdWFkVG9QYXRoKGNvbnN0IEZsb2F0UXVhZCYg
cXVhZCkKICAgICByZXR1cm4gcXVhZFBhdGg7CiB9CiAKLXZvaWQgZHJhd091dGxpbmVkUXVhZChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgY29uc3QgQ29s
b3ImIGZpbGxDb2xvciwgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xvcikKK3ZvaWQgZHJhd091dGxp
bmVkUXVhZChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwg
Y29uc3QgQ29sb3ImIGZpbGxDb2xvcikKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IG91dGxpbmVU
aGlja25lc3MgPSAyOworICAgIHN0YXRpYyBjb25zdCBDb2xvciBvdXRsaW5lQ29sb3IoNjIsIDg2
LCAxODAsIDIyOCk7CiAKICAgICBQYXRoIHF1YWRQYXRoID0gcXVhZFRvUGF0aChxdWFkKTsKIApA
QCAtOTMsNTEgKzgzLDQ3IEBAIHZvaWQgZHJhd091dGxpbmVkUXVhZChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgY29uc3QgQ29sCiAgICAgY29udGV4dC5m
aWxsUGF0aChxdWFkUGF0aCk7CiB9CiAKLXZvaWQgZHJhd091dGxpbmVkUXVhZFdpdGhDbGlwKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBGbG9h
dFF1YWQmIGNsaXBRdWFkLCBjb25zdCBDb2xvciYgZmlsbENvbG9yLCBjb25zdCBDb2xvciYgb3V0
bGluZUNvbG9yKQordm9pZCBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0IEZsb2F0UXVhZCYgY2xpcFF1
YWQsIGNvbnN0IENvbG9yJiBmaWxsQ29sb3IpCiB7CiAgICAgY29udGV4dC5zYXZlKCk7CiAgICAg
UGF0aCBjbGlwUXVhZFBhdGggPSBxdWFkVG9QYXRoKGNsaXBRdWFkKTsKICAgICBjb250ZXh0LmNs
aXBPdXQoY2xpcFF1YWRQYXRoKTsKLSAgICBkcmF3T3V0bGluZWRRdWFkKGNvbnRleHQsIHF1YWQs
IGZpbGxDb2xvciwgb3V0bGluZUNvbG9yKTsKKyAgICBkcmF3T3V0bGluZWRRdWFkKGNvbnRleHQs
IHF1YWQsIGZpbGxDb2xvcik7CiAgICAgY29udGV4dC5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgZHJh
d0hpZ2hsaWdodEZvckJveChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVh
ZCYgY29udGVudFF1YWQsIGNvbnN0IEZsb2F0UXVhZCYgcGFkZGluZ1F1YWQsIGNvbnN0IEZsb2F0
UXVhZCYgYm9yZGVyUXVhZCwgY29uc3QgRmxvYXRRdWFkJiBtYXJnaW5RdWFkLCBIaWdobGlnaHRE
YXRhKiBoaWdobGlnaHREYXRhKQordm9pZCBkcmF3SGlnaGxpZ2h0Rm9yQm94KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRRdWFkJiBjb250ZW50UXVhZCwgY29uc3QgRmxvYXRR
dWFkJiBwYWRkaW5nUXVhZCwgY29uc3QgRmxvYXRRdWFkJiBib3JkZXJRdWFkLCBjb25zdCBGbG9h
dFF1YWQmIG1hcmdpblF1YWQsIERPTU5vZGVIaWdobGlnaHRlcjo6SGlnaGxpZ2h0TW9kZSBtb2Rl
KQogewotICAgIGJvb2wgaGFzTWFyZ2luID0gaGlnaGxpZ2h0RGF0YS0+bWFyZ2luICE9IENvbG9y
Ojp0cmFuc3BhcmVudCB8fCBoaWdobGlnaHREYXRhLT5tYXJnaW5PdXRsaW5lICE9IENvbG9yOjp0
cmFuc3BhcmVudDsKLSAgICBib29sIGhhc0JvcmRlciA9IGhpZ2hsaWdodERhdGEtPmJvcmRlciAh
PSBDb2xvcjo6dHJhbnNwYXJlbnQgfHwgaGlnaGxpZ2h0RGF0YS0+Ym9yZGVyT3V0bGluZSAhPSBD
b2xvcjo6dHJhbnNwYXJlbnQ7Ci0gICAgYm9vbCBoYXNQYWRkaW5nID0gaGlnaGxpZ2h0RGF0YS0+
cGFkZGluZyAhPSBDb2xvcjo6dHJhbnNwYXJlbnQgfHwgaGlnaGxpZ2h0RGF0YS0+cGFkZGluZ091
dGxpbmUgIT0gQ29sb3I6OnRyYW5zcGFyZW50OwotICAgIGJvb2wgaGFzQ29udGVudCA9IGhpZ2hs
aWdodERhdGEtPmNvbnRlbnQgIT0gQ29sb3I6OnRyYW5zcGFyZW50IHx8IGhpZ2hsaWdodERhdGEt
PmNvbnRlbnRPdXRsaW5lICE9IENvbG9yOjp0cmFuc3BhcmVudDsKKyAgICBzdGF0aWMgY29uc3Qg
Q29sb3IgY29udGVudEJveENvbG9yKDEyNSwgMTczLCAyMTcsIDEyOCk7CisgICAgc3RhdGljIGNv
bnN0IENvbG9yIHBhZGRpbmdCb3hDb2xvcigxMjUsIDE3MywgMjE3LCAxNjApOworICAgIHN0YXRp
YyBjb25zdCBDb2xvciBib3JkZXJCb3hDb2xvcigxMjUsIDE3MywgMjE3LCAxOTIpOworICAgIHN0
YXRpYyBjb25zdCBDb2xvciBtYXJnaW5Cb3hDb2xvcigxMjUsIDE3MywgMjE3LCAyMjgpOwogCiAg
ICAgRmxvYXRRdWFkIGNsaXBRdWFkOwotICAgIENvbG9yIGNsaXBDb2xvcjsKLSAgICBpZiAoaGFz
TWFyZ2luICYmICghaGFzQm9yZGVyIHx8IG1hcmdpblF1YWQgIT0gYm9yZGVyUXVhZCkpIHsKLSAg
ICAgICAgZHJhd091dGxpbmVkUXVhZFdpdGhDbGlwKGNvbnRleHQsIG1hcmdpblF1YWQsIGJvcmRl
clF1YWQsIGhpZ2hsaWdodERhdGEtPm1hcmdpbiwgaGlnaGxpZ2h0RGF0YS0+bWFyZ2luT3V0bGlu
ZSk7CisgICAgaWYgKG1vZGUgPT0gRE9NTm9kZUhpZ2hsaWdodGVyOjpIaWdobGlnaHRNYXJnaW4g
fHwgKG1vZGUgPT0gRE9NTm9kZUhpZ2hsaWdodGVyOjpIaWdobGlnaHRBbGwgJiYgbWFyZ2luUXVh
ZCAhPSBib3JkZXJRdWFkKSkgeworICAgICAgICBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoY29u
dGV4dCwgbWFyZ2luUXVhZCwgYm9yZGVyUXVhZCwgbWFyZ2luQm94Q29sb3IpOwogICAgICAgICBj
bGlwUXVhZCA9IGJvcmRlclF1YWQ7Ci0gICAgICAgIGNsaXBDb2xvciA9IGhpZ2hsaWdodERhdGEt
Pm1hcmdpbk91dGxpbmU7CiAgICAgfQotICAgIGlmIChoYXNCb3JkZXIgJiYgKCFoYXNQYWRkaW5n
IHx8IGJvcmRlclF1YWQgIT0gcGFkZGluZ1F1YWQpKSB7Ci0gICAgICAgIGRyYXdPdXRsaW5lZFF1
YWRXaXRoQ2xpcChjb250ZXh0LCBib3JkZXJRdWFkLCBwYWRkaW5nUXVhZCwgaGlnaGxpZ2h0RGF0
YS0+Ym9yZGVyLCBoaWdobGlnaHREYXRhLT5ib3JkZXJPdXRsaW5lKTsKKyAgICBpZiAobW9kZSA9
PSBET01Ob2RlSGlnaGxpZ2h0ZXI6OkhpZ2hsaWdodEJvcmRlciB8fCAobW9kZSA9PSBET01Ob2Rl
SGlnaGxpZ2h0ZXI6OkhpZ2hsaWdodEFsbCAmJiBib3JkZXJRdWFkICE9IHBhZGRpbmdRdWFkKSkg
eworICAgICAgICBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoY29udGV4dCwgYm9yZGVyUXVhZCwg
cGFkZGluZ1F1YWQsIGJvcmRlckJveENvbG9yKTsKICAgICAgICAgY2xpcFF1YWQgPSBwYWRkaW5n
UXVhZDsKLSAgICAgICAgY2xpcENvbG9yID0gaGlnaGxpZ2h0RGF0YS0+Ym9yZGVyT3V0bGluZTsK
ICAgICB9Ci0gICAgaWYgKGhhc1BhZGRpbmcgJiYgKCFoYXNDb250ZW50IHx8IHBhZGRpbmdRdWFk
ICE9IGNvbnRlbnRRdWFkKSkgewotICAgICAgICBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoY29u
dGV4dCwgcGFkZGluZ1F1YWQsIGNvbnRlbnRRdWFkLCBoaWdobGlnaHREYXRhLT5wYWRkaW5nLCBo
aWdobGlnaHREYXRhLT5wYWRkaW5nT3V0bGluZSk7CisgICAgaWYgKG1vZGUgPT0gRE9NTm9kZUhp
Z2hsaWdodGVyOjpIaWdobGlnaHRQYWRkaW5nIHx8IChtb2RlID09IERPTU5vZGVIaWdobGlnaHRl
cjo6SGlnaGxpZ2h0QWxsICYmIHBhZGRpbmdRdWFkICE9IGNvbnRlbnRRdWFkKSkgeworICAgICAg
ICBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoY29udGV4dCwgcGFkZGluZ1F1YWQsIGNvbnRlbnRR
dWFkLCBwYWRkaW5nQm94Q29sb3IpOwogICAgICAgICBjbGlwUXVhZCA9IGNvbnRlbnRRdWFkOwot
ICAgICAgICBjbGlwQ29sb3IgPSBoaWdobGlnaHREYXRhLT5wYWRkaW5nT3V0bGluZTsKLSAgICB9
Ci0gICAgaWYgKGhhc0NvbnRlbnQpCi0gICAgICAgIGRyYXdPdXRsaW5lZFF1YWQoY29udGV4dCwg
Y29udGVudFF1YWQsIGhpZ2hsaWdodERhdGEtPmNvbnRlbnQsIGhpZ2hsaWdodERhdGEtPmNvbnRl
bnRPdXRsaW5lKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKGNsaXBDb2xvci5pc1ZhbGlkKCkp
Ci0gICAgICAgICAgICBkcmF3T3V0bGluZWRRdWFkV2l0aENsaXAoY29udGV4dCwgY2xpcFF1YWQs
IGNsaXBRdWFkLCBjbGlwQ29sb3IsIGNsaXBDb2xvcik7CiAgICAgfQorICAgIGlmIChtb2RlID09
IERPTU5vZGVIaWdobGlnaHRlcjo6SGlnaGxpZ2h0Q29udGVudCB8fCBtb2RlID09IERPTU5vZGVI
aWdobGlnaHRlcjo6SGlnaGxpZ2h0QWxsKQorICAgICAgICBkcmF3T3V0bGluZWRRdWFkKGNvbnRl
eHQsIGNvbnRlbnRRdWFkLCBjb250ZW50Qm94Q29sb3IpOworICAgIGVsc2UKKyAgICAgICAgZHJh
d091dGxpbmVkUXVhZFdpdGhDbGlwKGNvbnRleHQsIGNsaXBRdWFkLCBjbGlwUXVhZCwgY29udGVu
dEJveENvbG9yKTsKIH0KIAotdm9pZCBkcmF3SGlnaGxpZ2h0Rm9yTGluZUJveGVzT3JTVkdSZW5k
ZXJlcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBs
aW5lQm94UXVhZHMsIEhpZ2hsaWdodERhdGEqIGhpZ2hsaWdodERhdGEpCit2b2lkIGRyYXdIaWdo
bGlnaHRGb3JMaW5lQm94ZXNPclNWR1JlbmRlcmVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIGxpbmVCb3hRdWFkcykKIHsKKyAgICBzdGF0aWMgY29u
c3QgQ29sb3IgbGluZUJveENvbG9yKDEyNSwgMTczLCAyMTcsIDEyOCk7CisKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxpbmVCb3hRdWFkcy5zaXplKCk7ICsraSkKLSAgICAgICAgZHJhd091
dGxpbmVkUXVhZChjb250ZXh0LCBsaW5lQm94UXVhZHNbaV0sIGhpZ2hsaWdodERhdGEtPmNvbnRl
bnQsIGhpZ2hsaWdodERhdGEtPmNvbnRlbnRPdXRsaW5lKTsKKyAgICAgICAgZHJhd091dGxpbmVk
UXVhZChjb250ZXh0LCBsaW5lQm94UXVhZHNbaV0sIGxpbmVCb3hDb2xvcik7CiB9CiAKIGlubGlu
ZSBMYXlvdXRTaXplIGZyYW1lVG9NYWluRnJhbWVPZmZzZXQoRnJhbWUqIGZyYW1lKQpAQCAtMTQ2
LDEzNSArMTMyLDU4IEBAIGlubGluZSBMYXlvdXRTaXplIGZyYW1lVG9NYWluRnJhbWVPZmZzZXQo
RnJhbWUqIGZyYW1lKQogICAgIHJldHVybiB0b0xheW91dFNpemUobWFpbkZyYW1lUG9pbnQpOwog
fQogCi1pbnQgZHJhd1N1YnN0cmluZyhjb25zdCBUZXh0UnVuJiBnbG9iYWxUZXh0UnVuLCBpbnQg
b2Zmc2V0LCBpbnQgbGVuZ3RoLCBjb25zdCBDb2xvciYgdGV4dENvbG9yLCBjb25zdCBGb250JiBm
b250LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IExheW91dFJlY3QmIHRpdGxlUmVj
dCkKLXsKLSAgICBjb250ZXh0LnNldEZpbGxDb2xvcih0ZXh0Q29sb3IsIENvbG9yU3BhY2VEZXZp
Y2VSR0IpOwotICAgIGNvbnRleHQuZHJhd1RleHQoZm9udCwgZ2xvYmFsVGV4dFJ1biwgTGF5b3V0
UG9pbnQodGl0bGVSZWN0LngoKSArIHJlY3RJbmZsYXRlUHgsIHRpdGxlUmVjdC55KCkgKyBmb250
LmZvbnRNZXRyaWNzKCkuaGVpZ2h0KCkpLCBvZmZzZXQsIG9mZnNldCArIGxlbmd0aCk7Ci0gICAg
cmV0dXJuIG9mZnNldCArIGxlbmd0aDsKLX0KLQotaW50IGNhbGN1bGF0ZUFycm93VGlwWChjb25z
dCBMYXlvdXRSZWN0JiBhbmNob3JCb3gsIGNvbnN0IExheW91dFJlY3QmIHRpdGxlUmVjdCkKLXsK
LSAgICBpbnQgYW5jaG9yWCA9IGFuY2hvckJveC54KCk7Ci0KLSAgICAvLyBDaGVjayBmb3IgaGVh
dmlseSBtaXNhbGlnbmVkIHRvb2x0aXAgZmlyc3QuCi0gICAgaWYgKHRpdGxlUmVjdC54KCkgPiBh
bmNob3JCb3gubWF4WCgpKQotICAgICAgICByZXR1cm4gdGl0bGVSZWN0LngoKSArIGFycm93SGFs
ZldpZHRoOwotCi0gICAgaWYgKHRpdGxlUmVjdC5tYXhYKCkgPCBhbmNob3JYKQotICAgICAgICBy
ZXR1cm4gdGl0bGVSZWN0Lm1heFgoKSAtIGFycm93SGFsZldpZHRoOwotCi0gICAgaW50IHggPSB0
aXRsZVJlY3QueCgpICsgYXJyb3dUaXBPZmZzZXQ7Ci0gICAgaWYgKHggPCBhbmNob3JYKQotICAg
ICAgICB4ID0gYW5jaG9yWCArIGFycm93VGlwT2Zmc2V0OwotICAgIGlmICh4ID4gdGl0bGVSZWN0
Lm1heFgoKSAtIGFycm93SGFsZldpZHRoKQotICAgICAgICB4ID0gdGl0bGVSZWN0Lm1heFgoKSAt
IGFycm93SGFsZldpZHRoOwotCi0gICAgcmV0dXJuIHg7Ci19Ci0KLXZvaWQgc2V0VXBGb250RmFt
aWxpZXMoRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIFdlYkNvcmU6OlNldHRpbmdz
KiBzZXR0aW5ncykKLXsKLSNkZWZpbmUgVE9PTFRJUF9GT05UX0ZBTUlMSUVTKHNpemUsIC4uLikg
XAotc3RhdGljIHVuc2lnbmVkIHRvb2x0aXBGb250RmFjZVNpemUgPSBzaXplO1wKLXN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcqIHRvb2x0aXBGb250RmFjZVtzaXplXSA9IHsgX19WQV9BUkdTX18g
fTsKLQotI2lmIE9TKFdJTkRPV1MpCi1UT09MVElQX0ZPTlRfRkFNSUxJRVMoMiwgbmV3IEF0b21p
Y1N0cmluZygiQ29uc29sYXMiKSwgbmV3IEF0b21pY1N0cmluZygiTHVjaWRhIENvbnNvbGUiKSkK
LSNlbGlmIE9TKFVOSVgpCi1UT09MVElQX0ZPTlRfRkFNSUxJRVMoMSwgbmV3IEF0b21pY1N0cmlu
ZygiZGVqYXZ1IHNhbnMgbW9ubyIpKQotI2VsaWYgT1MoTUFDX09TX1gpCi1UT09MVElQX0ZPTlRf
RkFNSUxJRVMoMiwgbmV3IEF0b21pY1N0cmluZygiTWVubG8iKSwgbmV3IEF0b21pY1N0cmluZygi
TW9uYWNvIikpCi0jZW5kaWYKLS8vIEluIHRoZSBkZWZhdWx0IGNhc2UsIHdlIGdldCB0aGUgc2V0
dGluZ3MtcHJvdmlkZWQgbW9ub3NwYWNlIGZvbnQuCi0KLSN1bmRlZiBUT09MVElQX0ZPTlRfRkFN
SUxJRVMKLQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZml4ZWRGb250RmFtaWx5ID0gc2V0dGlu
Z3MtPmZpeGVkRm9udEZhbWlseSgpOwotICAgIGlmICghZml4ZWRGb250RmFtaWx5LmlzRW1wdHko
KSkgewotICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3Jp
cHRpb246Ok1vbm9zcGFjZUZhbWlseSk7Ci0gICAgICAgIEZvbnRGYW1pbHkqIGN1cnJlbnRGYW1p
bHkgPSAwOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdG9vbHRpcEZvbnRGYWNl
U2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIWN1cnJlbnRGYW1pbHkpIHsKLSAgICAgICAg
ICAgICAgICBmb250RGVzY3JpcHRpb24uZmlyc3RGYW1pbHkoKS5zZXRGYW1pbHkoKnRvb2x0aXBG
b250RmFjZVtpXSk7Ci0gICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5
KCkuYXBwZW5kRmFtaWx5KDApOwotICAgICAgICAgICAgICAgIGN1cnJlbnRGYW1pbHkgPSAmZm9u
dERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIFJlZlB0cjxTaGFyZWRGb250RmFtaWx5PiBuZXdGYW1pbHkgPSBTaGFyZWRGb250
RmFtaWx5OjpjcmVhdGUoKTsKLSAgICAgICAgICAgICAgICBuZXdGYW1pbHktPnNldEZhbWlseSgq
dG9vbHRpcEZvbnRGYWNlW2ldKTsKLSAgICAgICAgICAgICAgICBjdXJyZW50RmFtaWx5LT5hcHBl
bmRGYW1pbHkobmV3RmFtaWx5KTsKLSAgICAgICAgICAgICAgICBjdXJyZW50RmFtaWx5ID0gbmV3
RmFtaWx5LmdldCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIFJlZlB0cjxT
aGFyZWRGb250RmFtaWx5PiBuZXdGYW1pbHkgPSBTaGFyZWRGb250RmFtaWx5OjpjcmVhdGUoKTsK
LSAgICAgICAgbmV3RmFtaWx5LT5zZXRGYW1pbHkoZml4ZWRGb250RmFtaWx5KTsKLSAgICAgICAg
Y3VycmVudEZhbWlseS0+YXBwZW5kRmFtaWx5KG5ld0ZhbWlseSk7Ci0gICAgICAgIGN1cnJlbnRG
YW1pbHkgPSBuZXdGYW1pbHkuZ2V0KCk7Ci0gICAgfQotfQotCiB2b2lkIGRyYXdFbGVtZW50VGl0
bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBMYXlvdXRSZWN0
JiBib3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgYW5jaG9yQm94LCBjb25zdCBGbG9hdFJl
Y3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCiB7Ci0KLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBiYWNrZ3JvdW5kQ29sb3IsICgyNTUsIDI1NSwgMTk0
LCAyNTUpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCB0YWdDb2xvciwgKDEzNiwg
MTgsIDEyOCkpOyAvLyBTYW1lIGFzIC53ZWJraXQtaHRtbC10YWcuCi0gICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChDb2xvciwgYXR0ckNvbG9yLCAoMjYsIDI2LCAxNjYpKTsgLy8gU2FtZSBhcyAud2Vi
a2l0LWh0bWwtYXR0cmlidXRlLXZhbHVlLgotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3Is
IG5vcm1hbENvbG9yLCAoQ29sb3I6OmJsYWNrKSk7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChD
b2xvciwgcHhBbmRCb3JkZXJDb2xvciwgKDEyOCwgMTI4LCAxMjgpKTsKLQotICAgIERFRklORV9T
VEFUSUNfTE9DQUwoU3RyaW5nLCBweFN0cmluZywgKCJweCIpKTsKLSAgICBjb25zdCBzdGF0aWMg
VUNoYXIgdGltZXNVQ2hhcltdID0geyAweDAwRDcsIDAgfTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgdGltZXNTdHJpbmcsICh0aW1lc1VDaGFyKSk7IC8vICZ0aW1lczsgc3RyaW5n
Ci0KKyAgICBzdGF0aWMgY29uc3QgaW50IHJlY3RJbmZsYXRlUHggPSA0OworICAgIHN0YXRpYyBj
b25zdCBpbnQgZm9udEhlaWdodFB4ID0gMTI7CisgICAgc3RhdGljIGNvbnN0IGludCBib3JkZXJX
aWR0aFB4ID0gMTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCB0b29sdGlwQmFja2dy
b3VuZENvbG9yLCAoMjU1LCAyNTUsIDE5NCwgMjU1KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChDb2xvciwgdG9vbHRpcEJvcmRlckNvbG9yLCAoQ29sb3I6OmJsYWNrKSk7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChDb2xvciwgdG9vbHRpcEZvbnRDb2xvciwgKENvbG9yOjpibGFjaykpOwog
ICAgIEZvbnRDYWNoZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogCiAg
ICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKICAgICBi
b29sIGlzWEhUTUwgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5pc1hIVE1MRG9jdW1lbnQoKTsKLSAg
ICBTdHJpbmcgbm9kZVRpdGxlKGlzWEhUTUwgPyBlbGVtZW50LT5ub2RlTmFtZSgpIDogZWxlbWVu
dC0+bm9kZU5hbWUoKS5sb3dlcigpKTsKLSAgICB1bnNpZ25lZCB0YWdOYW1lTGVuZ3RoID0gbm9k
ZVRpdGxlLmxlbmd0aCgpOwotCisgICAgU3RyaW5nIG5vZGVUaXRsZSA9IGlzWEhUTUwgPyBlbGVt
ZW50LT5ub2RlTmFtZSgpIDogZWxlbWVudC0+bm9kZU5hbWUoKS5sb3dlcigpOwogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgaWRWYWx1ZSA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7Ci0gICAg
dW5zaWduZWQgaWRTdHJpbmdMZW5ndGggPSAwOwotICAgIFN0cmluZyBpZFN0cmluZzsKICAgICBp
ZiAoIWlkVmFsdWUuaXNOdWxsKCkgJiYgIWlkVmFsdWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIG5v
ZGVUaXRsZSArPSAiIyI7CiAgICAgICAgIG5vZGVUaXRsZSArPSBpZFZhbHVlOwotICAgICAgICBp
ZFN0cmluZ0xlbmd0aCA9IDEgKyBpZFZhbHVlLmxlbmd0aCgpOwogICAgIH0KLQotICAgIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKLSAgICB1bnNpZ25lZCBjbGFzc2VzU3Ry
aW5nTGVuZ3RoID0gMDsKICAgICBpZiAoZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBlbGVtZW50LT5p
c1N0eWxlZEVsZW1lbnQoKSkgewogICAgICAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFz
c05hbWVzU3RyaW5nID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpLT5jbGFz
c05hbWVzKCk7CiAgICAgICAgIHNpemVfdCBjbGFzc05hbWVDb3VudCA9IGNsYXNzTmFtZXNTdHJp
bmcuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNsYXNzTmFtZUNvdW50
OyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY2xhc3NOYW1lID0gY2xh
c3NOYW1lc1N0cmluZ1tpXTsKLSAgICAgICAgICAgIGlmICh1c2VkQ2xhc3NOYW1lcy5jb250YWlu
cyhjbGFzc05hbWUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdXNl
ZENsYXNzTmFtZXMuYWRkKGNsYXNzTmFtZSk7Ci0gICAgICAgICAgICBub2RlVGl0bGUgKz0gIi4i
OwotICAgICAgICAgICAgbm9kZVRpdGxlICs9IGNsYXNzTmFtZTsKLSAgICAgICAgICAgIGNsYXNz
ZXNTdHJpbmdMZW5ndGggKz0gMSArIGNsYXNzTmFtZS5sZW5ndGgoKTsKKyAgICAgICAgaWYgKGNs
YXNzTmFtZUNvdW50KSB7CisgICAgICAgICAgICBIYXNoU2V0PEF0b21pY1N0cmluZz4gdXNlZENs
YXNzTmFtZXM7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNsYXNzTmFtZUNv
dW50OyArK2kpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNsYXNzTmFt
ZSA9IGNsYXNzTmFtZXNTdHJpbmdbaV07CisgICAgICAgICAgICAgICAgaWYgKHVzZWRDbGFzc05h
bWVzLmNvbnRhaW5zKGNsYXNzTmFtZSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgIHVzZWRDbGFzc05hbWVzLmFkZChjbGFzc05hbWUpOworICAgICAgICAg
ICAgICAgIG5vZGVUaXRsZSArPSAiLiI7CisgICAgICAgICAgICAgICAgbm9kZVRpdGxlICs9IGNs
YXNzTmFtZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAotICAgIFN0cmluZyB3
aWR0aE51bWJlclBhcnQgPSAiICIgKyBTdHJpbmc6Om51bWJlcihib3VuZGluZ0JveC53aWR0aCgp
KTsKLSAgICBub2RlVGl0bGUgKz0gd2lkdGhOdW1iZXJQYXJ0ICsgcHhTdHJpbmc7Ci0gICAgbm9k
ZVRpdGxlICs9IHRpbWVzU3RyaW5nOwotICAgIFN0cmluZyBoZWlnaHROdW1iZXJQYXJ0ID0gU3Ry
aW5nOjpudW1iZXIoYm91bmRpbmdCb3guaGVpZ2h0KCkpOwotICAgIG5vZGVUaXRsZSArPSBoZWln
aHROdW1iZXJQYXJ0ICsgcHhTdHJpbmc7CisgICAgbm9kZVRpdGxlICs9ICIgWyI7CisgICAgbm9k
ZVRpdGxlICs9IFN0cmluZzo6bnVtYmVyKGJvdW5kaW5nQm94LndpZHRoKCkpOworICAgIG5vZGVU
aXRsZS5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KDB4MDBENykpOyAvLyAmdGltZXM7CisgICAg
bm9kZVRpdGxlICs9IFN0cmluZzo6bnVtYmVyKGJvdW5kaW5nQm94LmhlaWdodCgpKTsKKyAgICBu
b2RlVGl0bGUgKz0gIl0iOwogCiAgICAgRm9udERlc2NyaXB0aW9uIGRlc2M7Ci0gICAgZGVzYy5z
ZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKKyAgICBGb250
RmFtaWx5IGZhbWlseTsKKyAgICBmYW1pbHkuc2V0RmFtaWx5KHNldHRpbmdzLT5maXhlZEZvbnRG
YW1pbHkoKSk7CisgICAgZGVzYy5zZXRGYW1pbHkoZmFtaWx5KTsKICAgICBkZXNjLnNldENvbXB1
dGVkU2l6ZShmb250SGVpZ2h0UHgpOwotICAgIHNldFVwRm9udEZhbWlsaWVzKGRlc2MsIHNldHRp
bmdzKTsKICAgICBGb250IGZvbnQgPSBGb250KGRlc2MsIDAsIDApOwogICAgIGZvbnQudXBkYXRl
KDApOwogCiAgICAgVGV4dFJ1biBub2RlVGl0bGVSdW4obm9kZVRpdGxlKTsKICAgICBMYXlvdXRQ
b2ludCB0aXRsZUJhc2VQb2ludCA9IExheW91dFBvaW50KGFuY2hvckJveC54KCksIGFuY2hvckJv
eC5tYXhZKCkgLSAxKTsKICAgICB0aXRsZUJhc2VQb2ludC5tb3ZlKHJlY3RJbmZsYXRlUHgsIHJl
Y3RJbmZsYXRlUHgpOwotICAgIExheW91dFJlY3QgdGl0bGVSZWN0ID0gZW5jbG9zaW5nTGF5b3V0
UmVjdChmb250LnNlbGVjdGlvblJlY3RGb3JUZXh0KG5vZGVUaXRsZVJ1biwgdGl0bGVCYXNlUG9p
bnQsIGZvbnRIZWlnaHRQeCkpOworICAgIExheW91dFJlY3QgdGl0bGVSZWN0ID0gZW5jbG9zaW5n
SW50UmVjdChmb250LnNlbGVjdGlvblJlY3RGb3JUZXh0KG5vZGVUaXRsZVJ1biwgdGl0bGVCYXNl
UG9pbnQsIGZvbnRIZWlnaHRQeCkpOwogICAgIHRpdGxlUmVjdC5pbmZsYXRlKHJlY3RJbmZsYXRl
UHgpOwogCiAgICAgLy8gVGhlIGluaXRpYWwgb2Zmc2V0cyBuZWVkZWQgdG8gY29tcGVuc2F0ZSBm
b3IgYSAxcHgtdGhpY2sgYm9yZGVyIHN0cm9rZSAod2hpY2ggaXMgbm90IGEgcGFydCBvZiB0aGUg
cmVjdGFuZ2xlKS4KQEAgLTMwMiw0NyArMjExLDIwIEBAIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IExheW91dFJlY3QmIGJv
CiAgICAgICAgIGR5ID0gb3ZlcmxheVJlY3QueSgpIC0gdGl0bGVSZWN0LnkoKSArIGJvcmRlcldp
ZHRoUHg7CiAKICAgICB0aXRsZVJlY3QubW92ZShkeCwgZHkpOwotCi0gICAgYm9vbCBpc0Fycm93
QXRUb3AgPSB0aXRsZVJlY3QueSgpID4gYW5jaG9yQm94LnkoKTsKLSAgICB0aXRsZVJlY3QubW92
ZSgwLCB0b29sdGlwUGFkZGluZyAqIChpc0Fycm93QXRUb3AgPyAxIDogLTEpKTsKLQotICAgIGNv
bnRleHQuc2V0U3Ryb2tlQ29sb3IocHhBbmRCb3JkZXJDb2xvciwgQ29sb3JTcGFjZURldmljZVJH
Qik7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcih0b29sdGlwQm9yZGVyQ29sb3IsIENvbG9y
U3BhY2VEZXZpY2VSR0IpOwogICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKGJvcmRlcldp
ZHRoUHgpOwotICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGJhY2tncm91bmRDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7CisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IodG9vbHRpcEJhY2tncm91
bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgY29udGV4dC5kcmF3UmVjdCh0aXRs
ZVJlY3QpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHRvb2x0aXBGb250Q29sb3IsIENvbG9y
U3BhY2VEZXZpY2VSR0IpOworICAgIGNvbnRleHQuZHJhd1RleHQoZm9udCwgbm9kZVRpdGxlUnVu
LCBMYXlvdXRQb2ludCh0aXRsZVJlY3QueCgpICsgcmVjdEluZmxhdGVQeCwgdGl0bGVSZWN0Lnko
KSArIGZvbnQuZm9udE1ldHJpY3MoKS5oZWlnaHQoKSkpOworfQogCi0gICAgewotICAgICAgICBp
bnQgYXJyb3dUaXBYID0gY2FsY3VsYXRlQXJyb3dUaXBYKGFuY2hvckJveCwgdGl0bGVSZWN0KTsK
LSAgICAgICAgRmxvYXRQb2ludCBhcnJvd1BvaW50c1szXTsKLSAgICAgICAgZmxvYXQgYXJyb3dC
YXNlWSA9IGlzQXJyb3dBdFRvcCA/IHRpdGxlUmVjdC55KCkgOiB0aXRsZVJlY3QubWF4WSgpOwot
ICAgICAgICBhcnJvd1BvaW50c1swXSA9IEZsb2F0UG9pbnQoYXJyb3dUaXBYIC0gYXJyb3dIYWxm
V2lkdGgsIGFycm93QmFzZVkpOwotICAgICAgICBhcnJvd1BvaW50c1sxXSA9IEZsb2F0UG9pbnQo
YXJyb3dUaXBYLCBhcnJvd0Jhc2VZICsgYXJyb3dIZWlnaHQgKiAoaXNBcnJvd0F0VG9wID8gLTEg
OiAxKSk7Ci0gICAgICAgIGFycm93UG9pbnRzWzJdID0gRmxvYXRQb2ludChhcnJvd1RpcFggKyBh
cnJvd0hhbGZXaWR0aCwgYXJyb3dCYXNlWSk7Ci0gICAgICAgIGNvbnRleHQuZHJhd0NvbnZleFBv
bHlnb24oMywgYXJyb3dQb2ludHMpOwotCi0gICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Io
YmFja2dyb3VuZENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3IoYmFja2dyb3VuZENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoYm9yZGVyV2lkdGhQeCArIDEpOwotICAgICAg
ICBMYXlvdXRQb2ludCBzdGFydFBvaW50ID0gTGF5b3V0UG9pbnQoYXJyb3dQb2ludHNbMF0ueCgp
ICsgMSwgYXJyb3dQb2ludHNbMF0ueSgpKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgZW5kUG9pbnQg
PSBMYXlvdXRQb2ludChhcnJvd1BvaW50c1syXS54KCkgLSAxLCBhcnJvd1BvaW50c1syXS55KCkp
OwotICAgICAgICBjb250ZXh0LmRyYXdMaW5lKHN0YXJ0UG9pbnQsIGVuZFBvaW50KTsKLSAgICB9
Cit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKIAotICAgIGludCBjdXJyZW50UG9zID0gMDsKLSAg
ICBjdXJyZW50UG9zID0gZHJhd1N1YnN0cmluZyhub2RlVGl0bGVSdW4sIGN1cnJlbnRQb3MsIHRh
Z05hbWVMZW5ndGgsIHRhZ0NvbG9yLCBmb250LCBjb250ZXh0LCB0aXRsZVJlY3QpOwotICAgIGlm
IChpZFN0cmluZ0xlbmd0aCkKLSAgICAgICAgY3VycmVudFBvcyA9IGRyYXdTdWJzdHJpbmcobm9k
ZVRpdGxlUnVuLCBjdXJyZW50UG9zLCBpZFN0cmluZ0xlbmd0aCwgYXR0ckNvbG9yLCBmb250LCBj
b250ZXh0LCB0aXRsZVJlY3QpOwotICAgIGlmIChjbGFzc2VzU3RyaW5nTGVuZ3RoKQotICAgICAg
ICBjdXJyZW50UG9zID0gZHJhd1N1YnN0cmluZyhub2RlVGl0bGVSdW4sIGN1cnJlbnRQb3MsIGNs
YXNzZXNTdHJpbmdMZW5ndGgsIGF0dHJDb2xvciwgZm9udCwgY29udGV4dCwgdGl0bGVSZWN0KTsK
LSAgICBjdXJyZW50UG9zID0gZHJhd1N1YnN0cmluZyhub2RlVGl0bGVSdW4sIGN1cnJlbnRQb3Ms
IHdpZHRoTnVtYmVyUGFydC5sZW5ndGgoKSwgbm9ybWFsQ29sb3IsIGZvbnQsIGNvbnRleHQsIHRp
dGxlUmVjdCk7Ci0gICAgY3VycmVudFBvcyA9IGRyYXdTdWJzdHJpbmcobm9kZVRpdGxlUnVuLCBj
dXJyZW50UG9zLCBweFN0cmluZy5sZW5ndGgoKSArIHRpbWVzU3RyaW5nLmxlbmd0aCgpLCBweEFu
ZEJvcmRlckNvbG9yLCBmb250LCBjb250ZXh0LCB0aXRsZVJlY3QpOwotICAgIGN1cnJlbnRQb3Mg
PSBkcmF3U3Vic3RyaW5nKG5vZGVUaXRsZVJ1biwgY3VycmVudFBvcywgaGVpZ2h0TnVtYmVyUGFy
dC5sZW5ndGgoKSwgbm9ybWFsQ29sb3IsIGZvbnQsIGNvbnRleHQsIHRpdGxlUmVjdCk7Ci0gICAg
ZHJhd1N1YnN0cmluZyhub2RlVGl0bGVSdW4sIGN1cnJlbnRQb3MsIHB4U3RyaW5nLmxlbmd0aCgp
LCBweEFuZEJvcmRlckNvbG9yLCBmb250LCBjb250ZXh0LCB0aXRsZVJlY3QpOwotfQorbmFtZXNw
YWNlIERPTU5vZGVIaWdobGlnaHRlciB7CiAKLXZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBIaWdobGlnaHREYXRhKiBoaWdobGlnaHREYXRhKQordm9pZCBk
cmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIEhp
Z2hsaWdodE1vZGUgbW9kZSkKIHsKLSAgICBOb2RlKiBub2RlID0gaGlnaGxpZ2h0RGF0YS0+bm9k
ZS5nZXQoKTsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsK
ICAgICBGcmFtZSogY29udGFpbmluZ0ZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsK
IApAQCAtMzU4LDcgKzI0MCw3IEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBIaWdobGlnaHREYXRhKiBoaWdobGlnaHREYXRhKQogCiAgICAgRnJhbWVW
aWV3KiB2aWV3ID0gY29udGFpbmluZ0ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7
CiAgICAgRmxvYXRSZWN0IG92ZXJsYXlSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7
Ci0gICAgaWYgKCFvdmVybGF5UmVjdC5jb250YWlucyhib3VuZGluZ0JveCkgJiYgIWJvdW5kaW5n
Qm94LmNvbnRhaW5zKGVuY2xvc2luZ0xheW91dFJlY3Qob3ZlcmxheVJlY3QpKSkKKyAgICBpZiAo
IW92ZXJsYXlSZWN0LmNvbnRhaW5zKGJvdW5kaW5nQm94KSAmJiAhYm91bmRpbmdCb3guY29udGFp
bnMoZW5jbG9zaW5nSW50UmVjdChvdmVybGF5UmVjdCkpKQogICAgICAgICBvdmVybGF5UmVjdCA9
IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgIGNvbnRleHQudHJhbnNsYXRlKC1vdmVy
bGF5UmVjdC54KCksIC1vdmVybGF5UmVjdC55KCkpOwogCkBAIC0zODQsNiArMjY2LDcgQEAgdm9p
ZCBkcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEhpZ2hsaWdodERh
dGEqIGhpZ2hsaWdodERhdGEpCiAgICAgICAgIExheW91dFJlY3QgbWFyZ2luQm94KGJvcmRlckJv
eC54KCkgLSByZW5kZXJCb3gtPm1hcmdpbkxlZnQoKSwgYm9yZGVyQm94LnkoKSAtIHJlbmRlckJv
eC0+bWFyZ2luVG9wKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJveC53aWR0
aCgpICsgcmVuZGVyQm94LT5tYXJnaW5MZWZ0KCkgKyByZW5kZXJCb3gtPm1hcmdpblJpZ2h0KCks
IGJvcmRlckJveC5oZWlnaHQoKSArIHJlbmRlckJveC0+bWFyZ2luVG9wKCkgKyByZW5kZXJCb3gt
Pm1hcmdpbkJvdHRvbSgpKTsKIAorCiAgICAgICAgIEZsb2F0UXVhZCBhYnNDb250ZW50UXVhZCA9
IHJlbmRlckJveC0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoY29udGVudEJveCkpOwog
ICAgICAgICBGbG9hdFF1YWQgYWJzUGFkZGluZ1F1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KHBhZGRpbmdCb3gpKTsKICAgICAgICAgRmxvYXRRdWFkIGFic0Jv
cmRlclF1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGJvcmRl
ckJveCkpOwpAQCAtMzk2LDcgKzI3OSw3IEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBIaWdobGlnaHREYXRhKiBoaWdobGlnaHREYXRhKQogCiAgICAg
ICAgIHRpdGxlQW5jaG9yQm94ID0gYWJzTWFyZ2luUXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OwogCi0gICAgICAgIGRyYXdIaWdobGlnaHRGb3JCb3goY29udGV4dCwgYWJzQ29udGVudFF1YWQs
IGFic1BhZGRpbmdRdWFkLCBhYnNCb3JkZXJRdWFkLCBhYnNNYXJnaW5RdWFkLCBoaWdobGlnaHRE
YXRhKTsKKyAgICAgICAgZHJhd0hpZ2hsaWdodEZvckJveChjb250ZXh0LCBhYnNDb250ZW50UXVh
ZCwgYWJzUGFkZGluZ1F1YWQsIGFic0JvcmRlclF1YWQsIGFic01hcmdpblF1YWQsIG1vZGUpOwog
ICAgIH0gZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVySW5saW5lKCkgfHwgaXNTVkdSZW5kZXJl
cikgewogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNob3cgbWFyZ2lucy9wYWRkaW5nL2Jv
cmRlciBmb3IgaW5saW5lcy4KICAgICAgICAgVmVjdG9yPEZsb2F0UXVhZD4gbGluZUJveFF1YWRz
OwpAQCAtNDA0LDcgKzI4Nyw3IEBAIHZvaWQgZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBIaWdobGlnaHREYXRhKiBoaWdobGlnaHREYXRhKQogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGluZUJveFF1YWRzLnNpemUoKTsgKytpKQogICAgICAgICAg
ICAgbGluZUJveFF1YWRzW2ldICs9IG1haW5GcmFtZU9mZnNldDsKIAotICAgICAgICBkcmF3SGln
aGxpZ2h0Rm9yTGluZUJveGVzT3JTVkdSZW5kZXJlcihjb250ZXh0LCBsaW5lQm94UXVhZHMsIGhp
Z2hsaWdodERhdGEpOworICAgICAgICBkcmF3SGlnaGxpZ2h0Rm9yTGluZUJveGVzT3JTVkdSZW5k
ZXJlcihjb250ZXh0LCBsaW5lQm94UXVhZHMpOwogICAgIH0KIAogICAgIC8vIERyYXcgbm9kZSB0
aXRsZSBpZiBuZWNlc3NhcnkuCkBAIC00MTIsMTEgKzI5NSwxMiBAQCB2b2lkIGRyYXdOb2RlSGln
aGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgSGlnaGxpZ2h0RGF0YSogaGlnaGxpZ2h0
RGF0YSkKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKGhpZ2hsaWdodERhdGEtPnNob3dJbmZvKQotICAgICAgICBkcmF3RWxlbWVudFRp
dGxlKGNvbnRleHQsIG5vZGUsIGJvdW5kaW5nQm94LCB0aXRsZUFuY2hvckJveCwgb3ZlcmxheVJl
Y3QsIGNvbnRhaW5pbmdGcmFtZS0+c2V0dGluZ3MoKSk7CisgICAgV2ViQ29yZTo6U2V0dGluZ3Mq
IHNldHRpbmdzID0gY29udGFpbmluZ0ZyYW1lLT5zZXR0aW5ncygpOworICAgIGlmIChtb2RlID09
IERPTU5vZGVIaWdobGlnaHRlcjo6SGlnaGxpZ2h0QWxsKQorICAgICAgICBkcmF3RWxlbWVudFRp
dGxlKGNvbnRleHQsIG5vZGUsIGJvdW5kaW5nQm94LCB0aXRsZUFuY2hvckJveCwgb3ZlcmxheVJl
Y3QsIHNldHRpbmdzKTsKIH0KIAotdm9pZCBkcmF3UmVjdEhpZ2hsaWdodChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIERvY3VtZW50KiBkb2N1bWVudCwgSGlnaGxpZ2h0RGF0YSogaGlnaGxpZ2h0
RGF0YSkKK3ZvaWQgZHJhd1JlY3RIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBE
b2N1bWVudCogZG9jdW1lbnQsIEludFJlY3QqIHJlY3QpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNDI2LDggKzMxMCwxMCBAQCB2b2lkIGRyYXdSZWN0SGlnaGxp
Z2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRG9jdW1lbnQqIGRvY3VtZW50LCBIaWdobGln
aHREYQogICAgIGNvbnRleHQudHJhbnNsYXRlKC1vdmVybGF5UmVjdC54KCksIC1vdmVybGF5UmVj
dC55KCkpOwogCiAgICAgc3RhdGljIGNvbnN0IGludCBvdXRsaW5lVGhpY2tuZXNzID0gMjsKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbG9yLCBvdXRsaW5lQ29sb3IsICgyNTUsIDAsIDAsIDIy
OCkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29sb3IsIGZpbGxDb2xvciwgKDI1NSwgMCwg
MCwgMjApKTsKIAotICAgIFBhdGggcXVhZFBhdGggPSBxdWFkVG9QYXRoKEZsb2F0UmVjdCgqKGhp
Z2hsaWdodERhdGEtPnJlY3QpKSk7CisgICAgUGF0aCBxdWFkUGF0aCA9IHF1YWRUb1BhdGgoRmxv
YXRSZWN0KCpyZWN0KSk7CiAKICAgICAvLyBDbGlwIG91dCB0aGUgcXVhZCwgdGhlbiBkcmF3IHdp
dGggYSAycHggc3Ryb2tlIHRvIGdldCBhIHBpeGVsCiAgICAgLy8gb2Ygb3V0bGluZSAoYmVjYXVz
ZSBpbmZsYXRpbmcgYSBxdWFkIGlzIGhhcmQpCkBAIC00MzYsMzIgKzMyMiwxNyBAQCB2b2lkIGRy
YXdSZWN0SGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBIaWdobGlnaHREYQogICAgICAgICBjb250ZXh0LmNsaXBPdXQocXVhZFBhdGgpOwogCiAg
ICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKG91dGxpbmVUaGlja25lc3MpOwotICAg
ICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGhpZ2hsaWdodERhdGEtPmNvbnRlbnRPdXRsaW5l
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihv
dXRsaW5lQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogICAgICAgICBjb250ZXh0LnN0cm9r
ZVBhdGgocXVhZFBhdGgpOwogCiAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOwogICAgIH0KIAog
ICAgIC8vIE5vdyBkbyB0aGUgZmlsbAotICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGhpZ2hsaWdo
dERhdGEtPmNvbnRlbnQsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKGZpbGxDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgY29udGV4dC5maWxs
UGF0aChxdWFkUGF0aCk7CiB9CiAKLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQotCi1uYW1lc3Bh
Y2UgRE9NTm9kZUhpZ2hsaWdodGVyIHsKLQotdm9pZCBkcmF3SGlnaGxpZ2h0KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgRG9jdW1lbnQqIGRvY3VtZW50LCBIaWdobGlnaHREYXRhKiBoaWdobGln
aHREYXRhKQotewotICAgIGlmICghaGlnaGxpZ2h0RGF0YSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKGhpZ2hsaWdodERhdGEtPm5vZGUpCi0gICAgICAgIGRyYXdOb2RlSGlnaGxpZ2h0KGNv
bnRleHQsIGhpZ2hsaWdodERhdGEpOwotICAgIGVsc2UgaWYgKGhpZ2hsaWdodERhdGEtPnJlY3Qp
Ci0gICAgICAgIGRyYXdSZWN0SGlnaGxpZ2h0KGNvbnRleHQsIGRvY3VtZW50LCBoaWdobGlnaHRE
YXRhKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgRE9NTm9kZUhpZ2hsaWdodGVyCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01O
b2RlSGlnaGxpZ2h0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxp
Z2h0ZXIuaAppbmRleCBmYWM4YzE0NGJiNTE1OGJjMTM4ZDU2OGEyMDRmOGIzYTQzMDU4OTI0Li4z
MGQ3NzYwMDRhZjJlZDk3YmVkNzI2MDdmYWM4MDlmMjU4NWYxMjhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oCkBAIC0yOSwzOCArMjksMjYgQEAK
ICNpZm5kZWYgRE9NTm9kZUhpZ2hsaWdodGVyX2gKICNkZWZpbmUgRE9NTm9kZUhpZ2hsaWdodGVy
X2gKIAotI2luY2x1ZGUgIkNvbG9yLmgiCi0KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbG9y
OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgTm9kZTsKIAotc3RydWN0IEhpZ2hsaWdodERhdGEgewotICAgIENvbG9yIGNvbnRl
bnQ7Ci0gICAgQ29sb3IgY29udGVudE91dGxpbmU7Ci0gICAgQ29sb3IgcGFkZGluZzsKLSAgICBD
b2xvciBwYWRkaW5nT3V0bGluZTsKLSAgICBDb2xvciBib3JkZXI7Ci0gICAgQ29sb3IgYm9yZGVy
T3V0bGluZTsKLSAgICBDb2xvciBtYXJnaW47Ci0gICAgQ29sb3IgbWFyZ2luT3V0bGluZTsKLSAg
ICBib29sIHNob3dJbmZvOworbmFtZXNwYWNlIERPTU5vZGVIaWdobGlnaHRlciB7CiAKLSAgICAv
LyBFaXRoZXIgb2YgdGhlc2UgbXVzdCBiZSAwLgotICAgIFJlZlB0cjxOb2RlPiBub2RlOwotICAg
IE93blB0cjxJbnRSZWN0PiByZWN0OworZW51bSBIaWdobGlnaHRNb2RlIHsKKyAgICBIaWdobGln
aHRBbGwsCisgICAgSGlnaGxpZ2h0Q29udGVudCwKKyAgICBIaWdobGlnaHRQYWRkaW5nLAorICAg
IEhpZ2hsaWdodEJvcmRlciwKKyAgICBIaWdobGlnaHRNYXJnaW4KIH07CiAKLW5hbWVzcGFjZSBE
T01Ob2RlSGlnaGxpZ2h0ZXIgewordm9pZCBkcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRl
eHQmLCBOb2RlKiwgSGlnaGxpZ2h0TW9kZSk7CiAKLXZvaWQgZHJhd0hpZ2hsaWdodChHcmFwaGlj
c0NvbnRleHQmLCBEb2N1bWVudCosIEhpZ2hsaWdodERhdGEqKTsKK3ZvaWQgZHJhd1JlY3RIaWdo
bGlnaHQoR3JhcGhpY3NDb250ZXh0JiwgRG9jdW1lbnQqLCBJbnRSZWN0Kik7CiAKIH0gLy8gbmFt
ZXNwYWNlIERPTU5vZGVIaWdobGlnaHRlcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KaW5kZXggZWFlMjU0YzFkYmU1MDgzYTNiYjczMTg0MTY3YTM4OGY0ZDg2ODVlOS4u
YTYyMDc5ZDcxZGY0MTIzNWViNDAxYzNkY2U5OGM2MTcwZWI0ZWVlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtODcxLDMzICs4NzEsNiBAQAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiRGVidWdnZXIuTG9jYXRp
b24iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSGFuZGxlciBjb2RlIGxvY2F0
aW9uLiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkRPTSBpbnRlcmFjdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBtaXJyb3Igb2Jq
ZWN0cyB0aGF0IHJlcHJlc2VudCB0aGUgYWN0dWFsIERPTSBub2Rlcy4gRE9NTm9kZSBpcyBhIGJh
c2Ugbm9kZSBtaXJyb3IgdHlwZS4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICJpZCI6ICJSR0JBIiwKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmpl
Y3QiLAotICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlRoZSBy
ZWQgY29tcG9uZW50LCBpbiB0aGUgWzAtMjU1XSByYW5nZS4iIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZyIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGdyZWVuIGNvbXBvbmVudCwgaW4gdGhlIFswLTI1NV0gcmFuZ2UuIiB9LAotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IlRoZSBibHVlIGNvbXBvbmVudCwgaW4gdGhlIFswLTI1NV0gcmFuZ2UuIiB9LAotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImEiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGFscGhhIGNvbXBvbmVudCwgaW4gdGhlIFswLTFdIHJh
bmdlIChkZWZhdWx0OiAxKS4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJBIHN0cnVjdHVyZSBob2xkaW5nIGFuIFJHQkEgY29sb3IuIgotICAg
ICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAiaWQiOiAiQm94SGln
aGxpZ2h0Q29uZmlnIiwKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNob3dJbmZvIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJXaGV0aGVyIHRoZSBub2RlIGluZm8gdG9vbHRpcCBzaG91bGQgYmUgc2hvd24gKGRl
ZmF1bHQ6IGZhbHNlKS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVu
dENvbG9yIiwgIiRyZWYiOiAiUkdCQSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJUaGUgY29udGVudCBib3ggaGlnaGxpZ2h0IGZpbGwgY29sb3IgKGRlZmF1bHQ6IHRyYW5zcGFy
ZW50KS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudE91dGxpbmVD
b2xvciIsICIkcmVmIjogIlJHQkEiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
VGhlIGNvbnRlbnQgYm94IGhpZ2hsaWdodCBvdXRsaW5lIGNvbG9yIChkZWZhdWx0OiB0cmFuc3Bh
cmVudCkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhZGRpbmdDb2xvciIs
ICIkcmVmIjogIlJHQkEiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBh
ZGRpbmcgaGlnaGxpZ2h0IGZpbGwgY29sb3IgKGRlZmF1bHQ6IHRyYW5zcGFyZW50KS4iIH0sCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFkZGluZ091dGxpbmVDb2xvciIsICIkcmVm
IjogIlJHQkEiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhZGRpbmcg
aGlnaGxpZ2h0IG91dGxpbmUgY29sb3IgKGRlZmF1bHQ6IHRyYW5zcGFyZW50KS4iIH0sCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYm9yZGVyQ29sb3IiLCAiJHJlZiI6ICJSR0JBIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBib3JkZXIgaGlnaGxpZ2h0IGZp
bGwgY29sb3IgKGRlZmF1bHQ6IHRyYW5zcGFyZW50KS4iIH0sCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYm9yZGVyT3V0bGluZUNvbG9yIiwgIiRyZWYiOiAiUkdCQSIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgYm9yZGVyIGhpZ2hsaWdodCBvdXRsaW5lIGNv
bG9yIChkZWZhdWx0OiB0cmFuc3BhcmVudCkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm1hcmdpbkNvbG9yIiwgIiRyZWYiOiAiUkdCQSIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgbWFyZ2luIGhpZ2hsaWdodCBmaWxsIGNvbG9yIChkZWZhdWx0OiB0
cmFuc3BhcmVudCkuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1hcmdpbk91
dGxpbmVDb2xvciIsICIkcmVmIjogIlJHQkEiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiVGhlIG1hcmdpbiBoaWdobGlnaHQgb3V0bGluZSBjb2xvciAoZGVmYXVsdDogdHJhbnNw
YXJlbnQpLiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhlIGhpZ2hsaWdodGluZyBvZiBwYWdlIGVs
ZW1lbnRzLiIKICAgICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImNvbW1hbmRzIjog
WwpAQCAtMTA1Nyw4ICsxMDMwLDcgQEAKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRJbnNw
ZWN0TW9kZUVuYWJsZWQiLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuYWJsZWQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIlRydWUgdG8gZW5h
YmxlIGluc3BlY3Rpb24gbW9kZSwgZmFsc2UgdG8gZGlzYWJsZSBpdC4iIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaGlnaGxpZ2h0Q29uZmlnIiwgIiRyZWYiOiAiQm94SGlnaGxp
Z2h0Q29uZmlnIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkEgZGVzY3JpcHRv
ciBmb3IgdGhlIGhpZ2hsaWdodCBhcHBlYXJhbmNlIG9mIGhvdmVyZWQtb3ZlciBub2Rlcy4gTWF5
IGJlIG9taXR0ZWQgaWYgPGNvZGU+ZW5hYmxlZCA9PSBmYWxzZTwvY29kZT4uIiB9CisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5hYmxlZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVz
Y3JpcHRpb24iOiAiVHJ1ZSB0byBlbmFibGUgaW5zcGVjdGlvbiBtb2RlLCBmYWxzZSB0byBkaXNh
YmxlIGl0LiIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkVudGVycyB0aGUgJ2luc3BlY3QnIG1vZGUuIEluIHRoaXMgbW9kZSwgZWxlbWVudHMg
dGhhdCB1c2VyIGlzIGhvdmVyaW5nIG92ZXIgYXJlIGhpZ2hsaWdodGVkLiBCYWNrZW5kIHRoZW4g
Z2VuZXJhdGVzICdpbnNwZWN0JyBjb21tYW5kIHVwb24gZWxlbWVudCBzZWxlY3Rpb24uIgogICAg
ICAgICAgICAgfSwKQEAgLTEwNjgsMTcgKzEwNDAsMTUgQEAKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ4IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJYIGNvb3Jk
aW5hdGUiIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAieSIsICJ0eXBlIjogImlu
dGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiWSBjb29yZGluYXRlIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6
ICJSZWN0YW5nbGUgd2lkdGgiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVp
Z2h0IiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJSZWN0YW5nbGUgaGVpZ2h0
IiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbG9yIiwgIiRyZWYiOiAiUkdC
QSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGlnaGxpZ2h0IGZpbGwg
Y29sb3IgKGRlZmF1bHQ6IHRyYW5zcGFyZW50KS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib3V0bGluZUNvbG9yIiwgIiRyZWYiOiAiUkdCQSIsICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaGlnaGxpZ2h0IG91dGxpbmUgY29sb3IgKGRlZmF1bHQ6IHRy
YW5zcGFyZW50KS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoZWlnaHQiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlJlY3RhbmdsZSBoZWlnaHQiIH0KICAg
ICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIaWdobGln
aHRzIGdpdmVuIHJlY3RhbmdsZS4gQ29vcmRpbmF0ZXMgYXJlIGFic29sdXRlIHdpdGggcmVzcGVj
dCB0byB0aGUgbWFpbiBmcmFtZSB2aWV3cG9ydC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImhpZ2hsaWdodE5vZGUiLAogICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5v
ZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRo
ZSBub2RlIHRvIGhpZ2hsaWdodC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aGlnaGxpZ2h0Q29uZmlnIiwgIiRyZWYiOiAiQm94SGlnaGxpZ2h0Q29uZmlnIiwgImRlc2NyaXB0
aW9uIjogIkEgZGVzY3JpcHRvciBmb3IgdGhlIGhpZ2hsaWdodCBhcHBlYXJhbmNlLiIgfQorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVJZCIsICIkcmVmIjogIk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBub2RlIHRvIGhpZ2hsaWdodCIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtb2RlIiwgInR5cGUiOiAic3RyaW5nIiwgImVu
dW0iOiBbImFsbCIsICJjb250ZW50IiwgInBhZGRpbmciLCAiYm9yZGVyIiwgIm1hcmdpbiJdLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJveCBtb2RlbCBjb21wb25lbnQo
cykgdG8gaGlnaGxpZ2h0IChkZWZhdWx0OiBcImFsbFwiKS4iIH0KICAgICAgICAgICAgICAgICBd
LAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJIaWdobGlnaHRzIERPTSBub2RlIHdp
dGggZ2l2ZW4gaWQuIgogICAgICAgICAgICAgfSwKQEAgLTEwODksOSArMTA1OSw3IEBACiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiaGlnaGxpZ2h0RnJhbWUiLAogICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZyYW1lSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRlbnRpZmll
ciBvZiB0aGUgZnJhbWUgdG8gaGlnaGxpZ2h0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJjb250ZW50Q29sb3IiLCAiJHJlZiI6ICJSR0JBIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIlRoZSBjb250ZW50IGJveCBoaWdobGlnaHQgZmlsbCBjb2xvciAoZGVm
YXVsdDogdHJhbnNwYXJlbnQpLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
b250ZW50T3V0bGluZUNvbG9yIiwgIiRyZWYiOiAiUkdCQSIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgY29udGVudCBib3ggaGlnaGxpZ2h0IG91dGxpbmUgY29sb3IgKGRl
ZmF1bHQ6IHRyYW5zcGFyZW50KS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUlkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIklkZW50aWZpZXIgb2Yg
dGhlIGZyYW1lIHRvIGhpZ2hsaWdodCIgfQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkhpZ2hsaWdodHMgb3duZXIgZWxlbWVudCBvZiB0aGUgZnJh
bWUgd2l0aCBnaXZlbiBpZC4iLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA0NWM3
NGE2MDE1ZGNjYjk2YjJhZWUzNzc3ZmRhNTA4OGFlMzRkODcwLi5kNjkzM2U4Yjg0YWVmMzZlY2I2
NjMyZDUyMThlMjY2MjY0ZTBjN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTk4LDQwICs5OCw2IEBAIG5hbWVzcGFjZSBET01BZ2Vu
dFN0YXRlIHsKIHN0YXRpYyBjb25zdCBjaGFyIGRvY3VtZW50UmVxdWVzdGVkW10gPSAiZG9jdW1l
bnRSZXF1ZXN0ZWQiOwogfTsKIAotc3RhdGljIENvbG9yIHBhcnNlQ29sb3IoY29uc3QgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4qIGNvbG9yT2JqZWN0KQotewotICAgIGlmICghY29sb3JPYmplY3Qg
fHwgISgqY29sb3JPYmplY3QpKQotICAgICAgICByZXR1cm4gQ29sb3I6OnRyYW5zcGFyZW50Owot
Ci0gICAgaW50IHI7Ci0gICAgaW50IGc7Ci0gICAgaW50IGI7Ci0gICAgYm9vbCBzdWNjZXNzID0g
KCpjb2xvck9iamVjdCktPmdldE51bWJlcigiciIsICZyKTsKLSAgICBzdWNjZXNzIHw9ICgqY29s
b3JPYmplY3QpLT5nZXROdW1iZXIoImciLCAmZyk7Ci0gICAgc3VjY2VzcyB8PSAoKmNvbG9yT2Jq
ZWN0KS0+Z2V0TnVtYmVyKCJiIiwgJmIpOwotICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgcmV0
dXJuIENvbG9yOjp0cmFuc3BhcmVudDsKLQotICAgIGRvdWJsZSBhOwotICAgIHN1Y2Nlc3MgPSAo
KmNvbG9yT2JqZWN0KS0+Z2V0TnVtYmVyKCJhIiwgJmEpOwotICAgIGlmICghc3VjY2VzcykKLSAg
ICAgICAgcmV0dXJuIENvbG9yKHIsIGcsIGIpOwotCi0gICAgLy8gQ2xhbXAgYWxwaGEgdG8gdGhl
IFswLi4xXSByYW5nZS4KLSAgICBpZiAoYSA8IDApCi0gICAgICAgIGEgPSAwOwotICAgIGVsc2Ug
aWYgKGEgPiAxKQotICAgICAgICBhID0gMTsKLQotICAgIHJldHVybiBDb2xvcihyLCBnLCBiLCBz
dGF0aWNfY2FzdDxpbnQ+KGEgKiAyNTUpKTsKLX0KLQotc3RhdGljIENvbG9yIHBhcnNlQ29uZmln
Q29sb3IoY29uc3QgU3RyaW5nJiBmaWVsZE5hbWUsIEluc3BlY3Rvck9iamVjdCogY29uZmlnT2Jq
ZWN0KQotewotICAgIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNvbG9yT2JqZWN0ID0g
Y29uZmlnT2JqZWN0LT5nZXRPYmplY3QoZmllbGROYW1lKTsKLSAgICByZXR1cm4gcGFyc2VDb2xv
cigmY29sb3JPYmplY3QpOwotfQotCiBjbGFzcyBNYXRjaEpvYiB7CiBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG1hdGNoKExpc3RIYXNoU2V0PE5vZGUqPiYgcmVzdWx0Q29sbGVjdG9yKSA9IDA7
CkBAIC0zMDksNyArMjc1LDcgQEAgSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEkKIEluc3BlY3RvckRP
TUFnZW50Ojp+SW5zcGVjdG9yRE9NQWdlbnQoKQogewogICAgIHJlc2V0KCk7Ci0gICAgQVNTRVJU
KCFtX2hpZ2hsaWdodERhdGEgfHwgKCFtX2hpZ2hsaWdodERhdGEtPm5vZGUgJiYgIW1faGlnaGxp
Z2h0RGF0YS0+cmVjdCkpOworICAgIEFTU0VSVCghbV9oaWdobGlnaHRlZE5vZGUpOwogICAgIEFT
U0VSVCghbV9zZWFyY2hpbmdGb3JOb2RlKTsKIH0KIApAQCAtMzI3LDcgKzI5Myw3IEBAIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVu
ZCkKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogewogICAgIEFTU0VS
VChtX2Zyb250ZW5kKTsKLSAgICBzZXRTZWFyY2hpbmdGb3JOb2RlKGZhbHNlLCAwKTsKKyAgICBz
ZXRTZWFyY2hpbmdGb3JOb2RlKGZhbHNlKTsKIAogICAgIEVycm9yU3RyaW5nIGVycm9yOwogICAg
IGhpZGVIaWdobGlnaHQoJmVycm9yKTsKQEAgLTM1NywxMSArMzIzLDYgQEAgVmVjdG9yPERvY3Vt
ZW50Kj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmRvY3VtZW50cygpCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodGVkTm9kZSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1faGlnaGxpZ2h0RGF0YSA/IG1faGlnaGxpZ2h0RGF0YS0+bm9kZS5nZXQo
KSA6IDA7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc2V0KCkKIHsKICAgICBFcnJv
clN0cmluZyBlcnJvcjsKQEAgLTk3Myw5ICs5MzQsOSBAQCBib29sIEluc3BlY3RvckRPTUFnZW50
OjpoYW5kbGVNb3VzZVByZXNzKCkKICAgICBpZiAoIW1fc2VhcmNoaW5nRm9yTm9kZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1faGlnaGxpZ2h0RGF0YSAmJiBtX2hpZ2hsaWdo
dERhdGEtPm5vZGUpIHsKLSAgICAgICAgUmVmUHRyPE5vZGU+IG5vZGUgPSBtX2hpZ2hsaWdodERh
dGEtPm5vZGU7Ci0gICAgICAgIHNldFNlYXJjaGluZ0Zvck5vZGUoZmFsc2UsIDApOworICAgIGlm
IChtX2hpZ2hsaWdodGVkTm9kZSkgeworICAgICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IG1faGln
aGxpZ2h0ZWROb2RlOworICAgICAgICBzZXRTZWFyY2hpbmdGb3JOb2RlKGZhbHNlKTsKICAgICAg
ICAgaW5zcGVjdChub2RlLmdldCgpKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMDE2
LDExMSArOTc3LDY1IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmZvY3VzTm9kZSgpCiAKIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRl
c3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQpCiB7Ci0gICAgaWYgKCFtX3NlYXJjaGluZ0Zvck5v
ZGUgfHwgIW1faGlnaGxpZ2h0RGF0YSkKKyAgICBpZiAoIW1fc2VhcmNoaW5nRm9yTm9kZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKICAg
ICB3aGlsZSAobm9kZSAmJiBub2RlLT5ub2RlVHlwZSgpID09IE5vZGU6OlRFWFRfTk9ERSkKICAg
ICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICBpZiAobm9kZSkgewotICAgICAg
ICBtX2hpZ2hsaWdodERhdGEtPm5vZGUgPSBub2RlOwotICAgICAgICBoaWdobGlnaHQoKTsKKyAg
ICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CisgICAgICAgIGhpZ2hsaWdodCgmZXJyb3IsIG5vZGUs
ICJhbGwiKTsKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFNlYXJjaGlu
Z0Zvck5vZGUoYm9vbCBlbmFibGVkLCBJbnNwZWN0b3JPYmplY3QqIGhpZ2hsaWdodENvbmZpZykK
K3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVk
KQogewogICAgIGlmIChtX3NlYXJjaGluZ0Zvck5vZGUgPT0gZW5hYmxlZCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fc2VhcmNoaW5nRm9yTm9kZSA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQp
Ci0gICAgICAgIHNldEhpZ2hsaWdodERhdGFGcm9tQ29uZmlnKGhpZ2hsaWdodENvbmZpZyk7Ci0g
ICAgZWxzZSB7CisgICAgaWYgKCFlbmFibGVkKSB7CiAgICAgICAgIEVycm9yU3RyaW5nIGVycm9y
OwogICAgICAgICBoaWRlSGlnaGxpZ2h0KCZlcnJvcik7Ci0gICAgICAgIG1faGlnaGxpZ2h0RGF0
YS5jbGVhcigpOwogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6c2V0SW5zcGVj
dE1vZGVFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogaGlnaGxpZ2h0Q29uZmlnKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
c2V0SW5zcGVjdE1vZGVFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkKQogewotICAg
IHNldFNlYXJjaGluZ0Zvck5vZGUoZW5hYmxlZCwgaGlnaGxpZ2h0Q29uZmlnID8gaGlnaGxpZ2h0
Q29uZmlnLT5nZXQoKSA6IDApOworICAgIHNldFNlYXJjaGluZ0Zvck5vZGUoZW5hYmxlZCk7CiB9
CiAKLWJvb2wgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldEhpZ2hsaWdodERhdGFGcm9tQ29uZmlnKElu
c3BlY3Rvck9iamVjdCogaGlnaGxpZ2h0Q29uZmlnKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
aGlnaGxpZ2h0KEVycm9yU3RyaW5nKiwgTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtb2RlKQog
ewotICAgIGlmICghaGlnaGxpZ2h0Q29uZmlnKSB7Ci0gICAgICAgIG1faGlnaGxpZ2h0RGF0YS5j
bGVhcigpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgbV9oaWdobGlnaHRE
YXRhID0gYWRvcHRQdHIobmV3IEhpZ2hsaWdodERhdGEoKSk7Ci0gICAgYm9vbCBzaG93SW5mbyA9
IGZhbHNlOyAvLyBEZWZhdWx0OiBmYWxzZSAoZG8gbm90IHNob3cgYSB0b29sdGlwKS4KLSAgICBo
aWdobGlnaHRDb25maWctPmdldEJvb2xlYW4oInNob3dJbmZvIiwgJnNob3dJbmZvKTsKLSAgICBt
X2hpZ2hsaWdodERhdGEtPnNob3dJbmZvID0gc2hvd0luZm87Ci0gICAgbV9oaWdobGlnaHREYXRh
LT5jb250ZW50ID0gcGFyc2VDb25maWdDb2xvcigiY29udGVudENvbG9yIiwgaGlnaGxpZ2h0Q29u
ZmlnKTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPmNvbnRlbnRPdXRsaW5lID0gcGFyc2VDb25maWdD
b2xvcigiY29udGVudE91dGxpbmVDb2xvciIsIGhpZ2hsaWdodENvbmZpZyk7Ci0gICAgbV9oaWdo
bGlnaHREYXRhLT5wYWRkaW5nID0gcGFyc2VDb25maWdDb2xvcigicGFkZGluZ0NvbG9yIiwgaGln
aGxpZ2h0Q29uZmlnKTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPnBhZGRpbmdPdXRsaW5lID0gcGFy
c2VDb25maWdDb2xvcigicGFkZGluZ091dGxpbmVDb2xvciIsIGhpZ2hsaWdodENvbmZpZyk7Ci0g
ICAgbV9oaWdobGlnaHREYXRhLT5ib3JkZXIgPSBwYXJzZUNvbmZpZ0NvbG9yKCJib3JkZXJDb2xv
ciIsIGhpZ2hsaWdodENvbmZpZyk7Ci0gICAgbV9oaWdobGlnaHREYXRhLT5ib3JkZXJPdXRsaW5l
ID0gcGFyc2VDb25maWdDb2xvcigiYm9yZGVyT3V0bGluZUNvbG9yIiwgaGlnaGxpZ2h0Q29uZmln
KTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPm1hcmdpbiA9IHBhcnNlQ29uZmlnQ29sb3IoIm1hcmdp
bkNvbG9yIiwgaGlnaGxpZ2h0Q29uZmlnKTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPm1hcmdpbk91
dGxpbmUgPSBwYXJzZUNvbmZpZ0NvbG9yKCJtYXJnaW5PdXRsaW5lQ29sb3IiLCBoaWdobGlnaHRD
b25maWcpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEluc3BlY3RvckRPTUFnZW50Ojpo
aWdobGlnaHQoKQotewotICAgIC8vIFRoaXMgbWV0aG9kIHJlcXVpcmVzIG1faGlnaGxpZ2h0RGF0
YSB0byBoYXZlIGJlZW4gZmlsbGVkIGluIGJ5IGl0cyBjbGllbnQuCi0gICAgQVNTRVJUKG1faGln
aGxpZ2h0RGF0YSk7CisgICAgQVNTRVJUX0FSRyhub2RlLCBub2RlKTsKKyAgICBtX2hpZ2hsaWdo
dGVkTm9kZSA9IG5vZGU7CisgICAgbV9oaWdobGlnaHRNb2RlID0gbW9kZTsKICAgICBtX2NsaWVu
dC0+aGlnaGxpZ2h0KCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmhpZ2hsaWdodFJl
Y3QoRXJyb3JTdHJpbmcqLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgY29u
c3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGNvbG9yLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0Piogb3V0bGluZUNvbG9yKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0
UmVjdChFcnJvclN0cmluZyosIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQog
ewotICAgIG1faGlnaGxpZ2h0RGF0YSA9IGFkb3B0UHRyKG5ldyBIaWdobGlnaHREYXRhKCkpOwot
ICAgIG1faGlnaGxpZ2h0RGF0YS0+cmVjdCA9IGFkb3B0UHRyKG5ldyBJbnRSZWN0KHgsIHksIHdp
ZHRoLCBoZWlnaHQpKTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPmNvbnRlbnQgPSBwYXJzZUNvbG9y
KGNvbG9yKTsKLSAgICBtX2hpZ2hsaWdodERhdGEtPmNvbnRlbnRPdXRsaW5lID0gcGFyc2VDb2xv
cihvdXRsaW5lQ29sb3IpOworICAgIG1faGlnaGxpZ2h0ZWRSZWN0ID0gYWRvcHRQdHIobmV3IElu
dFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwogICAgIG1fY2xpZW50LT5oaWdobGlnaHQoKTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6aGlnaGxpZ2h0Tm9kZSgKLSAgICBFcnJvclN0
cmluZyosCi0gICAgaW50IG5vZGVJZCwKLSAgICBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBoaWdobGlnaHRDb25maWcpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdobGlnaHROb2Rl
KEVycm9yU3RyaW5nKiBlcnJvciwgaW50IG5vZGVJZCwgU3RyaW5nKiBtb2RlKQogewotICAgIGlm
IChOb2RlKiBub2RlID0gbm9kZUZvcklkKG5vZGVJZCkpIHsKLSAgICAgICAgaWYgKHNldEhpZ2hs
aWdodERhdGFGcm9tQ29uZmlnKGhpZ2hsaWdodENvbmZpZy5nZXQoKSkpIHsKLSAgICAgICAgICAg
IG1faGlnaGxpZ2h0RGF0YS0+bm9kZSA9IG5vZGU7Ci0gICAgICAgICAgICBoaWdobGlnaHQoKTsK
LSAgICAgICAgfQotICAgIH0KKyAgICBpZiAoTm9kZSogbm9kZSA9IG5vZGVGb3JJZChub2RlSWQp
KQorICAgICAgICBoaWdobGlnaHQoZXJyb3IsIG5vZGUsIG1vZGUgJiYgIW1vZGUtPmlzRW1wdHko
KSA/ICptb2RlIDogImFsbCIpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50OjpoaWdobGln
aHRGcmFtZSgKLSAgICBFcnJvclN0cmluZyogZXJyb3IsCi0gICAgY29uc3QgU3RyaW5nJiBmcmFt
ZUlkLAotICAgIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBjb2xvciwKLSAgICBjb25z
dCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogb3V0bGluZUNvbG9yKQordm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6aGlnaGxpZ2h0RnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yLCBjb25zdCBTdHJpbmcm
IGZyYW1lSWQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlQWdlbnQtPmZyYW1lRm9ySWQo
ZnJhbWVJZCk7Ci0gICAgaWYgKGZyYW1lICYmIGZyYW1lLT5vd25lckVsZW1lbnQoKSkgewotICAg
ICAgICBtX2hpZ2hsaWdodERhdGEgPSBhZG9wdFB0cihuZXcgSGlnaGxpZ2h0RGF0YSgpKTsKLSAg
ICAgICAgbV9oaWdobGlnaHREYXRhLT5ub2RlID0gZnJhbWUtPm93bmVyRWxlbWVudCgpOwotICAg
ICAgICBtX2hpZ2hsaWdodERhdGEtPnNob3dJbmZvID0gdHJ1ZTsgLy8gQWx3YXlzIHNob3cgdG9v
bHRpcHMgZm9yIGZyYW1lcy4KLSAgICAgICAgbV9oaWdobGlnaHREYXRhLT5jb250ZW50ID0gcGFy
c2VDb2xvcihjb2xvcik7Ci0gICAgICAgIG1faGlnaGxpZ2h0RGF0YS0+Y29udGVudE91dGxpbmUg
PSBwYXJzZUNvbG9yKG91dGxpbmVDb2xvcik7Ci0gICAgICAgIGhpZ2hsaWdodCgpOwotICAgIH0K
KyAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPm93bmVyRWxlbWVudCgpKQorICAgICAgICBoaWdobGln
aHQoZXJyb3IsIGZyYW1lLT5vd25lckVsZW1lbnQoKSwgImFsbCIpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpoaWRlSGlnaGxpZ2h0KEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAobV9o
aWdobGlnaHREYXRhKSB7Ci0gICAgICAgIG1faGlnaGxpZ2h0RGF0YS0+bm9kZS5jbGVhcigpOwot
ICAgICAgICBtX2hpZ2hsaWdodERhdGEtPnJlY3QuY2xlYXIoKTsKLSAgICB9CisgICAgbV9oaWdo
bGlnaHRlZE5vZGUgPSAwOworICAgIG1faGlnaGxpZ2h0ZWRSZWN0LmNsZWFyKCk7CiAgICAgbV9j
bGllbnQtPmhpZGVIaWdobGlnaHQoKTsKIH0KIApAQCAtMTU5NiwxMCArMTUxMSwyNCBAQCBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OnJlc29sdmVOb2RlKE5v
ZGUqIG5vZGUsIGNvbnN0IFN0cgogCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkcmF3SGlnaGxp
Z2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKLSAgICBpZiAoIW1faGlnaGxp
Z2h0RGF0YSkKKyAgICBpZiAobV9oaWdobGlnaHRlZFJlY3QpIHsKKyAgICAgICAgRE9NTm9kZUhp
Z2hsaWdodGVyOjpkcmF3UmVjdEhpZ2hsaWdodChjb250ZXh0LCBtX2RvY3VtZW50LmdldCgpLCBt
X2hpZ2hsaWdodGVkUmVjdC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoIW1faGlnaGxpZ2h0ZWROb2RlKQogICAgICAgICByZXR1cm47CiAKLSAgICBET01Ob2RlSGln
aGxpZ2h0ZXI6OmRyYXdIaWdobGlnaHQoY29udGV4dCwgbV9oaWdobGlnaHREYXRhLT5ub2RlID8g
bV9oaWdobGlnaHREYXRhLT5ub2RlLT5kb2N1bWVudCgpIDogbV9kb2N1bWVudC5nZXQoKSwgbV9o
aWdobGlnaHREYXRhLmdldCgpKTsKKyAgICBET01Ob2RlSGlnaGxpZ2h0ZXI6OkhpZ2hsaWdodE1v
ZGUgbW9kZSA9IERPTU5vZGVIaWdobGlnaHRlcjo6SGlnaGxpZ2h0QWxsOworICAgIGlmIChtX2hp
Z2hsaWdodE1vZGUgPT0gImNvbnRlbnQiKQorICAgICAgICBtb2RlID0gRE9NTm9kZUhpZ2hsaWdo
dGVyOjpIaWdobGlnaHRDb250ZW50OworICAgIGVsc2UgaWYgKG1faGlnaGxpZ2h0TW9kZSA9PSAi
cGFkZGluZyIpCisgICAgICAgIG1vZGUgPSBET01Ob2RlSGlnaGxpZ2h0ZXI6OkhpZ2hsaWdodFBh
ZGRpbmc7CisgICAgZWxzZSBpZiAobV9oaWdobGlnaHRNb2RlID09ICJib3JkZXIiKQorICAgICAg
ICBtb2RlID0gRE9NTm9kZUhpZ2hsaWdodGVyOjpIaWdobGlnaHRCb3JkZXI7CisgICAgZWxzZSBp
ZiAobV9oaWdobGlnaHRNb2RlID09ICJtYXJnaW4iKQorICAgICAgICBtb2RlID0gRE9NTm9kZUhp
Z2hsaWdodGVyOjpIaWdobGlnaHRNYXJnaW47CisgICAgRE9NTm9kZUhpZ2hsaWdodGVyOjpkcmF3
Tm9kZUhpZ2hsaWdodChjb250ZXh0LCBtX2hpZ2hsaWdodGVkTm9kZS5nZXQoKSwgbW9kZSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKaW5kZXggY2IxM2NkN2MzNjc2Y2E4ZDMyOWQ3NWZjZTY3NGNmOTEy
NzM4ZDc2Yi4uZGE1NTFmMTllMjNhNThiNDIwYzhkZWU5MTk5NDQ5NDBkMzJmY2Q5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTYyLDcgKzYy
LDYgQEAgY2xhc3MgSW50UmVjdDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBNYXRjaEpv
YjsKIGNsYXNzIEhUTUxFbGVtZW50OwotY2xhc3MgSGlnaGxpZ2h0RGF0YTsKIGNsYXNzIEluc3Bl
Y3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIE5hbWVOb2RlTWFw
OwpAQCAtMTMwLDE2ICsxMjksMTYgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsU2VhcmNoKEVy
cm9yU3RyaW5nKik7CiAgICAgdm9pZCByZXNvbHZlTm9kZShFcnJvclN0cmluZyosIGludCBub2Rl
SWQsIGNvbnN0IFN0cmluZyogY29uc3Qgb2JqZWN0R3JvdXAsIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+KiByZXN1bHQpOwogICAgIHZvaWQgZ2V0QXR0cmlidXRlcyhFcnJvclN0cmluZyosIGludCBu
b2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIHJlc3VsdCk7Ci0gICAgdm9pZCBzZXRJbnNw
ZWN0TW9kZUVuYWJsZWQoRXJyb3JTdHJpbmcqLCBib29sIGVuYWJsZWQsIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KiBoaWdobGlnaHRDb25maWcpOworICAgIHZvaWQgc2V0SW5zcGVjdE1v
ZGVFbmFibGVkKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkKTsKICAgICB2b2lkIHJlcXVlc3RO
b2RlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgaW50KiBub2RlSWQpOwog
ICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBwYXRoLCBpbnQqIG5vZGVJZCk7CiAgICAgdm9pZCBoaWRlSGlnaGxpZ2h0KEVycm9yU3Ry
aW5nKik7Ci0gICAgdm9pZCBoaWdobGlnaHRSZWN0KEVycm9yU3RyaW5nKiwgaW50IHgsIGludCB5
LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBj
b2xvciwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIG91dGxpbmVDb2xvcik7Ci0gICAg
dm9pZCBoaWdobGlnaHROb2RlKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgY29uc3QgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gaGlnaGxpZ2h0Q29uZmlnKTsKLSAgICB2b2lkIGhpZ2hsaWdodEZy
YW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiogY29sb3IsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBvdXRs
aW5lQ29sb3IpOworICAgIHZvaWQgaGlnaGxpZ2h0UmVjdChFcnJvclN0cmluZyosIGludCB4LCBp
bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGhpZ2hsaWdodE5vZGUoRXJy
b3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBTdHJpbmcqIG1vZGUpOworICAgIHZvaWQgaGlnaGxpZ2h0
RnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpOwogICAgIHZvaWQgbW92
ZVRvKEVycm9yU3RyaW5nKiwgaW50IG5vZGVJZCwgaW50IHRhcmdldE5vZGVJZCwgY29uc3QgaW50
KiBjb25zdCBhbmNob3JOb2RlSWQsIGludCogbmV3Tm9kZUlkKTsKIAotICAgIE5vZGUqIGhpZ2hs
aWdodGVkTm9kZSgpIGNvbnN0OworICAgIE5vZGUqIGhpZ2hsaWdodGVkTm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1faGlnaGxpZ2h0ZWROb2RlLmdldCgpOyB9CiAKICAgICAvLyBNZXRob2RzIGNhbGxl
ZCBmcm9tIHRoZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uCiAgICAgdm9pZCBzZXREb2N1bWVu
dChEb2N1bWVudCopOwpAQCAtMTgzLDkgKzE4Miw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2Vu
dCosIEluc3BlY3RvckNsaWVudCosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKik7CiAKLSAgICB2b2lkIHNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkLCBJbnNw
ZWN0b3JPYmplY3QqIGhpZ2hsaWdodENvbmZpZyk7Ci0gICAgYm9vbCBzZXRIaWdobGlnaHREYXRh
RnJvbUNvbmZpZyhJbnNwZWN0b3JPYmplY3QqIGhpZ2hsaWdodENvbmZpZyk7Ci0gICAgdm9pZCBo
aWdobGlnaHQoKTsKKyAgICB2b2lkIHNldFNlYXJjaGluZ0Zvck5vZGUoYm9vbCBlbmFibGVkKTsK
KyAgICB2b2lkIGhpZ2hsaWdodChFcnJvclN0cmluZyosIE5vZGUqLCBjb25zdCBTdHJpbmcmIG1v
ZGUpOwogCiAgICAgLy8gTm9kZS1yZWxhdGVkIG1ldGhvZHMuCiAgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxOb2RlPiwgaW50PiBOb2RlVG9JZE1hcDsKQEAgLTIzMyw3ICsyMzEsOSBAQCBwcml2
YXRlOgogICAgIFRpbWVyPEluc3BlY3RvckRPTUFnZW50PiBtX21hdGNoSm9ic1RpbWVyOwogICAg
IEhhc2hTZXQ8UmVmUHRyPE5vZGU+ID4gbV9zZWFyY2hSZXN1bHRzOwogICAgIE93blB0cjxSZXZh
bGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrPiBtX3JldmFsaWRhdGVTdHlsZUF0dHJUYXNrOwotICAg
IE93blB0cjxIaWdobGlnaHREYXRhPiBtX2hpZ2hsaWdodERhdGE7CisgICAgUmVmUHRyPE5vZGU+
IG1faGlnaGxpZ2h0ZWROb2RlOworICAgIE93blB0cjxJbnRSZWN0PiBtX2hpZ2hsaWdodGVkUmVj
dDsKKyAgICBTdHJpbmcgbV9oaWdobGlnaHRNb2RlOwogICAgIFJlZlB0cjxOb2RlPiBtX25vZGVU
b0ZvY3VzOwogICAgIGJvb2wgbV9zZWFyY2hpbmdGb3JOb2RlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29sb3IuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzCmluZGV4IDJjNWJhMDNhNjMwMGMzYmNjNTYy
ZTkzNTM4YzIyMjJkZTNjZmYzZGQuLjczZTQ3ZDQ1NWQ2NjliNTkxNmIyYWRjN2I1YTM0ODY4Njkx
OWMyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29s
b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcwpA
QCAtMzMsMTEgKzMzLDYgQEAgV2ViSW5zcGVjdG9yLkNvbG9yID0gZnVuY3Rpb24oc3RyKQogICAg
IHRoaXMuX3BhcnNlKCk7CiB9CiAKLVdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQSA9IGZ1bmN0
aW9uKHIsIGcsIGIsIGEpCi17Ci0gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ29sb3IoInJn
YmEoIiArIHIgKyAiLCIgKyBnICsgIiwiICsgYiArICIsIiArICh0eXBlb2YgYSA9PT0gInVuZGVm
aW5lZCIgPyAxIDogYSkgKyAiKSIpOwotfQotCiBXZWJJbnNwZWN0b3IuQ29sb3IucHJvdG90eXBl
ID0gewogICAgIGdldCBzaG9ydGhleCgpCiAgICAgewpAQCAtMTcxLDIxICsxNjYsNiBAQCBXZWJJ
bnNwZWN0b3IuQ29sb3IucHJvdG90eXBlID0gewogICAgICAgICB0aHJvdyAiaW52YWxpZCBjb2xv
ciBmb3JtYXQiOwogICAgIH0sCiAKLSAgICB0b1Byb3RvY29sUkdCQTogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX3Byb3RvY29sUkdCQSkKLSAgICAgICAgICAgIHJldHVybiB0
aGlzLl9wcm90b2NvbFJHQkE7Ci0KLSAgICAgICAgdmFyIGNvbXBvbmVudHMgPSB0aGlzLnJnYmE7
Ci0gICAgICAgIGlmIChjb21wb25lbnRzKQotICAgICAgICAgICAgdGhpcy5fcHJvdG9jb2xSR0JB
ID0geyByOiBOdW1iZXIoY29tcG9uZW50c1swXSksIGc6IE51bWJlcihjb21wb25lbnRzWzFdKSwg
YjogTnVtYmVyKGNvbXBvbmVudHNbMl0pLCBhOiBOdW1iZXIoY29tcG9uZW50c1szXSkgfTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBjb21wb25lbnRzID0gdGhpcy5yZ2I7Ci0gICAgICAg
ICAgICB0aGlzLl9wcm90b2NvbFJHQkEgPSB7IHI6IE51bWJlcihjb21wb25lbnRzWzBdKSwgZzog
TnVtYmVyKGNvbXBvbmVudHNbMV0pLCBiOiBOdW1iZXIoY29tcG9uZW50c1syXSkgfTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fcHJvdG9jb2xSR0JBOwotICAgIH0sCi0KICAgICBf
cmdiVG9IZXg6IGZ1bmN0aW9uKHJnYikKICAgICB7CiAgICAgICAgIHZhciByID0gcGFyc2VJbnQo
cmdiWzBdKS50b1N0cmluZygxNik7CkBAIC02ODEsMTQgKzY2MSwzIEBAIFdlYkluc3BlY3Rvci5D
b2xvci5BZHZhbmNlZE5pY2tOYW1lcyA9IHsKICAgICAicmdiYSgwLDAsMCwwKSI6IFtbMCwgMCwg
MCwgMF0sIFswLCAwLCAwLCAwXSwgInRyYW5zcGFyZW50Il0sCiAgICAgImhzbGEoMCwwLDAsMCki
OiBbWzAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMF0sICJ0cmFuc3BhcmVudCJdLAogfTsKLQotV2Vi
SW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdobGlnaHQgPSB7Ci0gICAgQ29udGVudDogV2ViSW5zcGVj
dG9yLkNvbG9yLmZyb21SR0JBKDExMSwgMTY4LCAyMjAsIC42NiksCi0gICAgQ29udGVudE91dGxp
bmU6IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQSg5LCA4MywgMTQ4KSwKLSAgICBQYWRkaW5n
OiBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVJHQkEoMTQ3LCAxOTYsIDEyNSwgLjU1KSwKLSAgICBQ
YWRkaW5nT3V0bGluZTogV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21SR0JBKDU1LCAxMTgsIDI4KSwK
LSAgICBCb3JkZXI6IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQSgyNTUsIDIyOSwgMTUzLCAu
NjYpLAotICAgIEJvcmRlck91dGxpbmU6IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQSgxMjcs
IDk2LCAwKSwKLSAgICBNYXJnaW46IFdlYkluc3BlY3Rvci5Db2xvci5mcm9tUkdCQSgyNDYsIDE3
OCwgMTA3LCAuNjYpLAotICAgIE1hcmdpbk91dGxpbmU6IFdlYkluc3BlY3Rvci5Db2xvci5mcm9t
UkdCQSgxODAsIDk1LCA0KQotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwppbmRl
eCA1Yjk4NzJlMjg3NzI2ZDU4MWU2MWMzNTM5YzNlNTIxNzBmNmI3YzBlLi4wZDA4NmY2NmZkN2Zl
ZGUyMTRhYzY1MzYzNzJhNmMwMmVmNmUwNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC0xMTA5LDcgKzExMDksNyBA
QCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRTZWFy
Y2hpbmdGb3JOb2RlOiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKLSAgICAgICAgRE9NQWdlbnQu
c2V0SW5zcGVjdE1vZGVFbmFibGVkKGVuYWJsZWQsIFdlYkluc3BlY3Rvci5idWlsZEhpZ2hsaWdo
dENvbmZpZygpLCB0aGlzLl9zZXRTZWFyY2hpbmdGb3JOb2RlLmJpbmQodGhpcywgZW5hYmxlZCkp
OworICAgICAgICBET01BZ2VudC5zZXRJbnNwZWN0TW9kZUVuYWJsZWQoZW5hYmxlZCwgdGhpcy5f
c2V0U2VhcmNoaW5nRm9yTm9kZS5iaW5kKHRoaXMsIGVuYWJsZWQpKTsKICAgICB9LAogCiAgICAg
dG9nZ2xlU2VhcmNoaW5nRm9yTm9kZTogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9NZXRyaWNzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qcwppbmRleCBj
MmUwMjZjYWJmOTE3MTZhZjRiY2M3YjkzMDQzMmY2OGZiNjNmNjg3Li5iMDU4YTQwMDMxYjBhYzA0
ZTFiMGI4YTcyMTIzMmU4ZjMxNTU0MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL01ldHJpY3NTaWRlYmFyUGFuZS5qcwpAQCAtMTI4LDM4ICsx
MjgsMTUgQEAgV2ViSW5zcGVjdG9yLk1ldHJpY3NTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGlmIChmcm9tRWxlbWVudCA9PT0gdG9FbGVtZW50KQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1vdXNlT3ZlcihlbGVtZW50KQotICAgICAgICB7
Ci0gICAgICAgICAgICBlbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhvdmVyZWQiKTsKLQotICAgICAg
ICAgICAgdmFyIGJnQ29sb3I7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNTdHlsZUNsYXNz
KCJtYXJnaW4iKSkKLSAgICAgICAgICAgICAgICBiZ0NvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9y
LlBhZ2VIaWdobGlnaHQuTWFyZ2luLnRvU3RyaW5nKCJvcmlnaW5hbCIpOwotICAgICAgICAgICAg
ZWxzZSBpZiAoZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJib3JkZXIiKSkKLSAgICAgICAgICAgICAg
ICBiZ0NvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdobGlnaHQuQm9yZGVyLnRvU3Ry
aW5nKCJvcmlnaW5hbCIpOwotICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNTdHlsZUNs
YXNzKCJwYWRkaW5nIikpCi0gICAgICAgICAgICAgICAgYmdDb2xvciA9IFdlYkluc3BlY3Rvci5D
b2xvci5QYWdlSGlnaGxpZ2h0LlBhZGRpbmcudG9TdHJpbmcoIm9yaWdpbmFsIik7Ci0gICAgICAg
ICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1N0eWxlQ2xhc3MoImNvbnRlbnQiKSkKLSAgICAgICAg
ICAgICAgICBiZ0NvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdobGlnaHQuQ29udGVu
dC50b1N0cmluZygib3JpZ2luYWwiKTsKLSAgICAgICAgICAgIGlmIChiZ0NvbG9yKQotICAgICAg
ICAgICAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmdDb2xvcjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGhhbmRsZU1vdXNlT3V0KGVsZW1lbnQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gIiI7Ci0gICAg
ICAgICAgICBlbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3MoImhvdmVyZWQiKTsKLSAgICAgICAgfQot
CiAgICAgICAgIGlmIChzaG93SGlnaGxpZ2h0KSB7CiAgICAgICAgICAgICAvLyBJbnRvIGVsZW1l
bnQuCiAgICAgICAgICAgICBpZiAodGhpcy5ub2RlICYmIHRvRWxlbWVudCkKLSAgICAgICAgICAg
ICAgICBoYW5kbGVNb3VzZU92ZXIodG9FbGVtZW50KTsKKyAgICAgICAgICAgICAgICB0b0VsZW1l
bnQuYWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwogICAgICAgICAgICAgdmFyIG5vZGVJZCA9IHRo
aXMubm9kZSA/IHRoaXMubm9kZS5pZCA6IDA7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAvLyBPdXQgb2YgZWxlbWVudC4KICAgICAgICAgICAgIGlmIChmcm9tRWxlbWVudCkKLSAgICAg
ICAgICAgICAgICBoYW5kbGVNb3VzZU91dChmcm9tRWxlbWVudCk7CisgICAgICAgICAgICAgICAg
ZnJvbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaG92ZXJlZCIpOwogICAgICAgICAgICAgdmFy
IG5vZGVJZCA9IDA7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG5vZGVJZCkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5k
ZXggMjk2OGE4OTgzZTdlMTlhYmU1MmNmOGIxNzkxMWFmMTYyMDA3OTRiZS4uNzNlZTdhYmIzNjI5
MDgyNTUyZjM4Nzg5ZTFjY2UyMmU0ZjZjOWY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0xMDk1LDcgKzEwOTUs
NyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICBpZiAoaG92ZXJlZCkgewogICAgICAgICAgICAgdGhpcy5saXN0SXRlbUVsZW1lbnQu
YWRkU3R5bGVDbGFzcygiaG92ZXJlZCIpOwotICAgICAgICAgICAgRE9NQWdlbnQuaGlnaGxpZ2h0
RnJhbWUodGhpcy5fZnJhbWVJZCwgV2ViSW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdobGlnaHQuQ29u
dGVudC50b1Byb3RvY29sUkdCQSgpLCBXZWJJbnNwZWN0b3IuQ29sb3IuUGFnZUhpZ2hsaWdodC5D
b250ZW50T3V0bGluZS50b1Byb3RvY29sUkdCQSgpKTsKKyAgICAgICAgICAgIERPTUFnZW50Lmhp
Z2hsaWdodEZyYW1lKHRoaXMuX2ZyYW1lSWQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgdGhpcy5saXN0SXRlbUVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiaG92ZXJlZCIpOwogICAg
ICAgICAgICAgRE9NQWdlbnQuaGlkZUhpZ2hsaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGQyNWQ5YmFjNjQ5
MmI1ODBjMjE4YjNlMWY5ZTZhYmI2OTFiODdkZGEuLmE2Yjk0ZWNmNDgzNWFmMWY2M2UxNjYwMGRh
NGE0Y2NiNzhhMjE3YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTczNyw3ICs3MzcsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9oaWdobGlnaHRl
ZFJlY3QgPT09IHJlY29yZC5kYXRhKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlz
Ll9oaWdobGlnaHRlZFJlY3QgPSByZWNvcmQuZGF0YTsKLSAgICAgICAgRE9NQWdlbnQuaGlnaGxp
Z2h0UmVjdCh0aGlzLl9oaWdobGlnaHRlZFJlY3QueCwgdGhpcy5faGlnaGxpZ2h0ZWRSZWN0Lnks
IHRoaXMuX2hpZ2hsaWdodGVkUmVjdC53aWR0aCwgdGhpcy5faGlnaGxpZ2h0ZWRSZWN0LmhlaWdo
dCwgV2ViSW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdobGlnaHQuQ29udGVudC50b1Byb3RvY29sUkdC
QSgpLCBXZWJJbnNwZWN0b3IuQ29sb3IuUGFnZUhpZ2hsaWdodC5Db250ZW50T3V0bGluZS50b1By
b3RvY29sUkdCQSgpKTsKKyAgICAgICAgRE9NQWdlbnQuaGlnaGxpZ2h0UmVjdCh0aGlzLl9oaWdo
bGlnaHRlZFJlY3QueCwgdGhpcy5faGlnaGxpZ2h0ZWRSZWN0LnksIHRoaXMuX2hpZ2hsaWdodGVk
UmVjdC53aWR0aCwgdGhpcy5faGlnaGxpZ2h0ZWRSZWN0LmhlaWdodCk7CiAgICAgfSwKIAogICAg
IF9oaWRlUmVjdEhpZ2hsaWdodDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCmluZGV4IGM2NGRjZmMwMDk0YmUwY2Q0ZTM0
ODZmMjc5ODA0MTA4MTEzOTAxYTEuLmYwN2UyYzMxZTE3OTczOGQ1MmRiOWZlOTY2YmJhYmZkMGNi
ZDFmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5jc3MKQEAgLTE4ODgsNiArMTg4OCwxMCBAQCBib2R5LnBsYXRmb3JtLXdpbmRvd3MgLnNp
ZGViYXItcGFuZS1zdWJ0aXRsZSB7CiAgICAgbWFyZ2luOiAzcHg7CiB9CiAKKy5tZXRyaWNzIC5t
YXJnaW4uaG92ZXJlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDEzOSwgMTgyLCAyMjEp
OworfQorCiAubWV0cmljcyAuYm9yZGVyIHsKICAgICBib3JkZXI6IDFweCBibGFjayBzb2xpZDsK
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKQEAgLTE4OTgsNiArMTkwMiwxMCBAQCBib2R5
LnBsYXRmb3JtLXdpbmRvd3MgLnNpZGViYXItcGFuZS1zdWJ0aXRsZSB7CiAgICAgbWFyZ2luOiAz
cHg7CiB9CiAKKy5tZXRyaWNzIC5ib3JkZXIuaG92ZXJlZCB7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogcmdiKDE1NywgMTkzLCAyMjYpOworfQorCiAubWV0cmljcyAucGFkZGluZyB7CiAgICAgYm9y
ZGVyOiAxcHggZ3JleSBkYXNoZWQ7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CkBAIC0x
OTA4LDYgKzE5MTYsMTAgQEAgYm9keS5wbGF0Zm9ybS13aW5kb3dzIC5zaWRlYmFyLXBhbmUtc3Vi
dGl0bGUgewogICAgIG1hcmdpbjogM3B4OwogfQogCisubWV0cmljcyAucGFkZGluZy5ob3ZlcmVk
IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTczLCAyMDQsIDIzMSk7Cit9CisKIC5tZXRy
aWNzIC5jb250ZW50IHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogICAgIGJvcmRlcjogMXB4IGdy
ZXkgc29saWQ7CkBAIC0xOTIyLDYgKzE5MzQsMTAgQEAgYm9keS5wbGF0Zm9ybS13aW5kb3dzIC5z
aWRlYmFyLXBhbmUtc3VidGl0bGUgewogICAgIG92ZXJmbG93OiB2aXNpYmxlOwogfQogCisubWV0
cmljcyAuY29udGVudC5ob3ZlcmVkIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTkwLCAy
MTQsIDIzNik7Cit9CisKIC5tZXRyaWNzIC5jb250ZW50IHNwYW4gewogICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKaW5kZXggN2FlOTAzZTVmYWJjM2ZjZDViNjdlMzZlYzhkODZiMzA0NDUzZGM2
Mi4uM2U5MWE3Y2Y0NDRiZmMyNWMzOWQ2MDUwNTUxMzEzZGYyN2NlNzU5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTM3MSwzMyAr
MzcxLDYgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgICAgIGVycm9yV2FybmluZ0Vs
ZW1lbnQudGl0bGUgPSBudWxsOwogICAgIH0sCiAKLSAgICBidWlsZEhpZ2hsaWdodENvbmZpZzog
ZnVuY3Rpb24obW9kZSkKLSAgICB7Ci0gICAgICAgIG1vZGUgPSBtb2RlIHx8ICJhbGwiOwotICAg
ICAgICB2YXIgaGlnaGxpZ2h0Q29uZmlnID0geyBzaG93SW5mbzogbW9kZSA9PT0gImFsbCIgfTsK
LSAgICAgICAgaWYgKG1vZGUgPT09ICJhbGwiIHx8IG1vZGUgPT09ICJjb250ZW50IikgewotICAg
ICAgICAgICAgaGlnaGxpZ2h0Q29uZmlnLmNvbnRlbnRDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xv
ci5QYWdlSGlnaGxpZ2h0LkNvbnRlbnQudG9Qcm90b2NvbFJHQkEoKTsKLSAgICAgICAgICAgIGhp
Z2hsaWdodENvbmZpZy5jb250ZW50T3V0bGluZUNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLlBh
Z2VIaWdobGlnaHQuQ29udGVudE91dGxpbmUudG9Qcm90b2NvbFJHQkEoKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAicGFkZGluZyIpIHsKLSAg
ICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5wYWRkaW5nQ29sb3IgPSBXZWJJbnNwZWN0b3IuQ29s
b3IuUGFnZUhpZ2hsaWdodC5QYWRkaW5nLnRvUHJvdG9jb2xSR0JBKCk7Ci0gICAgICAgICAgICBo
aWdobGlnaHRDb25maWcucGFkZGluZ091dGxpbmVDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5Q
YWdlSGlnaGxpZ2h0LlBhZGRpbmdPdXRsaW5lLnRvUHJvdG9jb2xSR0JBKCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBpZiAobW9kZSA9PT0gImFsbCIgfHwgbW9kZSA9PT0gImJvcmRlciIpIHsKLSAg
ICAgICAgICAgIGhpZ2hsaWdodENvbmZpZy5ib3JkZXJDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xv
ci5QYWdlSGlnaGxpZ2h0LkJvcmRlci50b1Byb3RvY29sUkdCQSgpOwotICAgICAgICAgICAgaGln
aGxpZ2h0Q29uZmlnLmJvcmRlck91dGxpbmVDb2xvciA9IFdlYkluc3BlY3Rvci5Db2xvci5QYWdl
SGlnaGxpZ2h0LkJvcmRlck91dGxpbmUudG9Qcm90b2NvbFJHQkEoKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChtb2RlID09PSAiYWxsIiB8fCBtb2RlID09PSAibWFyZ2luIikgewotICAgICAg
ICAgICAgaGlnaGxpZ2h0Q29uZmlnLm1hcmdpbkNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLlBh
Z2VIaWdobGlnaHQuTWFyZ2luLnRvUHJvdG9jb2xSR0JBKCk7Ci0gICAgICAgICAgICBoaWdobGln
aHRDb25maWcubWFyZ2luT3V0bGluZUNvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLlBhZ2VIaWdo
bGlnaHQuTWFyZ2luT3V0bGluZS50b1Byb3RvY29sUkdCQSgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIGhpZ2hsaWdodENvbmZpZzsKLSAgICB9LAotCiAgICAgaGlnaGxpZ2h0RE9NTm9k
ZTogZnVuY3Rpb24obm9kZUlkLCBtb2RlKQogICAgIHsKICAgICAgICAgaWYgKCJfaGlkZURPTU5v
ZGVIaWdobGlnaHRUaW1lb3V0IiBpbiB0aGlzKSB7CkBAIC00MTAsNyArMzgzLDcgQEAgdmFyIFdl
Ykluc3BlY3RvciA9IHsKIAogICAgICAgICB0aGlzLl9oaWdobGlnaHRlZERPTU5vZGVJZCA9IG5v
ZGVJZDsKICAgICAgICAgaWYgKG5vZGVJZCkKLSAgICAgICAgICAgIERPTUFnZW50LmhpZ2hsaWdo
dE5vZGUobm9kZUlkLCB0aGlzLmJ1aWxkSGlnaGxpZ2h0Q29uZmlnKG1vZGUpKTsKKyAgICAgICAg
ICAgIERPTUFnZW50LmhpZ2hsaWdodE5vZGUobm9kZUlkLCBtb2RlIHx8ICJhbGwiKTsKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgRE9NQWdlbnQuaGlkZUhpZ2hsaWdodCgpOwogICAgIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>