<?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>71272</bug_id>
          
          <creation_ts>2011-11-01 02:29:32 -0700</creation_ts>
          <short_desc>Web Inspector: introduce PanelContainer class, start moving panel management from inspector.js to the new class.</short_desc>
          <delta_ts>2011-11-01 03:05:41 -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 (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493805</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-01 02:29:32 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493807</commentid>
    <comment_count>1</comment_count>
      <attachid>113146</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-01 02:33:06 -0700</bug_when>
    <thetext>Created attachment 113146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493814</commentid>
    <comment_count>2</comment_count>
      <attachid>113146</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-01 02:43:39 -0700</bug_when>
    <thetext>Comment on attachment 113146
Patch

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

&gt; Source/WebCore/WebCore.vcproj/WebCore.vcproj:6404
&gt; +

Please remove these blank lines.

&gt; Source/WebCore/inspector/front-end/PanelContainer.js:35
&gt; +WebInspector.PanelContainer = function()

PanelContainer =&gt; PanelContainerView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493825</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-01 03:05:41 -0700</bug_when>
    <thetext>Committed r98945: &lt;http://trac.webkit.org/changeset/98945&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113146</attachid>
            <date>2011-11-01 02:33:06 -0700</date>
            <delta_ts>2011-11-01 02:43:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71272-20111101133303.patch</filename>
            <type>text/plain</type>
            <size>50539</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGE5ODM2OGQ5YjViMmJi
M2Q5ZTdkOGQ5ZDUyMjMzYWE4YmIxYjQ1Li5hMGM3YzI4YTc1NTU5NDAxZTFhNjU3MzMyMTc4ODQ1
MjQ1YWEwOGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTEtMTEtMDEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGludHJvZHVjZSBQYW5lbENvbnRhaW5lciBjbGFzcywgc3RhcnQgbW92aW5nIHBhbmVsIG1hbmFn
ZW1lbnQgZnJvbSBpbnNwZWN0b3IuanMgdG8gdGhlIG5ldyBjbGFzcy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjcyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2Nv
bXBpbGUtZnJvbnQtZW5kLnNoOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRHJhd2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuc2hvdy5hbmltYXRp
b25GaW5pc2hlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRHJhd2VyLnByb3RvdHlwZS5zaG93
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlLmhpZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUuX3N0YXR1c0JhckRyYWdnaW5nKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuc3dpdGNoVG9BbmRGb2N1cyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUucmV2ZWFsQW5kU2Vs
ZWN0Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRs
aW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90
eXBlLnNldFZpc2libGUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvS2V5Ym9hcmRT
aG9ydGN1dC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2ZW50
SGFzQ3RybE9yTWV0YSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbENvbnRhaW5lci5qczogQWRkZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUGFuZWxDb250YWluZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVs
Q29udGFpbmVyLnByb3RvdHlwZS5hZGRQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUGFu
ZWxDb250YWluZXIucHJvdG90eXBlLmN1cnJlbnRQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUGFuZWxDb250YWluZXIucHJvdG90eXBlLl9rZXlEb3duKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5QYW5lbENvbnRhaW5lci5wcm90b3R5cGUuX2NhbkdvQmFja0luSGlzdG9yeSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUGFuZWxDb250YWluZXIucHJvdG90eXBlLl9nb0JhY2tJbkhpc3Rv
cnkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBhbmVsQ29udGFpbmVyLnByb3RvdHlwZS5fY2Fu
R29Gb3J3YXJkSW5IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbENvbnRhaW5l
ci5wcm90b3R5cGUuX2dvRm9yd2FyZEluSGlzdG9yeSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UGFuZWxDb250YWluZXIucHJvdG90eXBlLl9wdXNoVG9IaXN0b3J5KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVTZWFyY2hNYXRjaGVz
Q291bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBl
LnVwZGF0ZUN1cnJlbnRNYXRjaEluZGV4KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hD
b250cm9sbGVyLnByb3RvdHlwZS51cGRhdGVTZWFyY2hMYWJlbCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUuaGFuZGxlU2hvcnRjdXQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBlLl9wZXJmb3JtU2VhcmNo
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Rvb2xiYXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVG9vbGJhci5jcmVhdGVQYW5lbFRvb2xiYXJJdGVtLm9uVG9vbGJhckl0ZW1D
bGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Ub29sYmFyLmNyZWF0ZVBhbmVsVG9vbGJh
ckl0ZW0pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYzoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanM6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fY3JlYXRlUGFuZWxzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5fcGFuZWxTZWxlY3RlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuYWRkUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLndpbmRvd1Jlc2l6ZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5kb2N1bWVudENhbkNvcHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvY3VtZW50Q29weSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5zdGFydFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmlu
c3BlY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5fdG9vbGJhckl0ZW1DbGlja2VkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzOgorICAgICAgICAoVHJlZUVsZW1l
bnQucHJvdG90eXBlLnNlbGVjdCk6CisKIDIwMTEtMTEtMDEgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI5ODg0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwNmE2NzViNzgyZmY0YjdhZGVhYmJlMTdhNTRl
Y2I4OGEwZmRhODUwLi5mODBhMzU4OWE5MGM2MzkzZDFkNmU2NzlkYTYwMjg2NTgzYzc0MDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC02MzI2LDYgKzYzMjYsNyBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvT2JqZWN0UG9wb3ZlckhlbHBlci5qcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9QYW5lbENvbnRhaW5lci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9QYW5lbEVuYWJsZXJWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJv
bnQtZW5kL1BhcnRpYWxRdWlja1NvcnQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9u
dC1lbmQvUGxhY2FyZC5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDNiYTdiNTJjZTY1OWY5NGMyZDZhZTViNWZmNjdkYzQxMDdiM2UyMzEu
LmUyNzQ4ZDk0MjFmOGQ3MDc4MmI1MDRiOWNmNzY1YzE4NjllZDY4ODIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NDAxLDYgKzY0MDEsNyBA
QAogCQkJCQkvPgogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisKIAkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKIAkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCiAJCQkJCT4KQEAgLTIxNjEwLDYgKzIxNjExLDcgQEAKIAkJCQkJPgogCQkJCQk8
VG9vbAogCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwogCQkJCQkvPgogCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00NDE3MSw2ICs0NDE3
Myw3IEBACiAJCQkJCTxUb29sCiAJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgogCQkJCQkv
PgorCiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJ
CQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKQEAgLTUwMzgwLDYgKzUwMzgzLDcgQEAKIAkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgogCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKIAkJCQkJPgorCiAJCQkJCTxUb29sCiAJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgogCQkJCQkvPgpAQCAtNTIyMDEsNiArNTIyMDUsNyBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZWRpdGluZ1xUZXh0QWZmaW5pdHkuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisKIAkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFRleHRDaGVja2luZ0hlbHBlci5jcHAiCiAJCQkJ
PgpAQCAtNTM3OTEsNiArNTM3OTYsNyBAQAogCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcSFRNTERhdGFMaXN0RWxlbWVudC5jcHAiCisKIAkJCQk+CiAJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgpAQCAtNjI0MDQsNiAr
NjI0MTAsNyBAQAogCQkJCQkJLz4KIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisKIAkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
IAkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgogCQkJCQkJPgpAQCAtNjg4NjUsNiArNjg4
NzIsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcUGFuZWxDb250YWluZXIuanMiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJv
bnQtZW5kXFBhbmVsRW5hYmxlclZpZXcuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC02OTIw
NSw2ICs2OTIxNiw3IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlx3ZWJzb2NrZXRzXFdlYlNvY2tl
dC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKwogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHdlYnNvY2tldHNcV2ViU29ja2V0Q2hhbm5lbC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCmluZGV4IDA5YWYyZGFiY2UwZTZmNGMw
MTliMjY2MDdjYjc0ZjQ0MDc5ODlhYjMuLmU2MDdmODIwMjY1ZjY3NjI2YzY2NTQ5YWI4OGI2MDYy
N2U4OWI5YjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZy
b250LWVuZC5zaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQuc2gKQEAgLTcxLDcgKzcxLDcgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxlci5qYXIg
LS1zdW1tYXJ5X2RldGFpbF9sZXZlbCAzIC0tY29tcGlsYXRpb25fbGV2ZWwgU0kKICAgICAgICAg
LS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlLmpzIFwKICAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1VJU291cmNlQ29kZS5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfdWk6MzU6anNtb2R1bGVf
Y29tbW9uIFwKKyAgICAtLW1vZHVsZSBqc21vZHVsZV91aTozNjpqc21vZHVsZV9jb21tb24gXAog
ICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQWR2YW5jZWRT
ZWFyY2hDb250cm9sbGVyLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NoZWNrYm94LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbG9yLmpzIFwKQEAgLTg1LDYgKzg1LDcgQEAgamF2YSAtamFy
IH4vY2xvc3VyZS9jb21waWxlci5qYXIgLS1zdW1tYXJ5X2RldGFpbF9sZXZlbCAzIC0tY29tcGls
YXRpb25fbGV2ZWwgU0kKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0lGcmFtZVZpZXcuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1dC5qcyBcCiAgICAgICAgIC0tanMgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBcCisgICAgICAgIC0tanMgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbENvbnRhaW5lci5qcyBcCiAgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbEVuYWJsZXJW
aWV3LmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1BsYWNhcmQuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUG9wb3Zlci5qcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RyYXdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RHJhd2VyLmpzCmluZGV4IGUwZmY1NjRiZGQyYjNlM2UzOWIxYjEwNjU0NTdhNzEzNDdjZGU5NjAu
LmEwOTQxNzcyZGY3M2U2MDgxMzBmMTgwOWQ2ZDFhOWZiM2IzYjQ5OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCkBAIC0xMjMsNyArMTIzLDcgQEAg
V2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIAogICAgICAgICBmdW5j
dGlvbiBhbmltYXRpb25GaW5pc2hlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5jdXJyZW50UGFuZWwoKS5zdGF0dXNCYXJSZXNpemVkKCk7CisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCkuc3RhdHVzQmFyUmVzaXplZCgp
OwogICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXcgJiYgdGhpcy5fdmlldy5hZnRlclNob3cpCiAg
ICAgICAgICAgICAgICAgdGhpcy5fdmlldy5hZnRlclNob3coKTsKICAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9jdXJyZW50QW5pbWF0aW9uOwpAQCAtMTUzLDcgKzE1Myw3IEBAIFdlYkluc3BlY3Rv
ci5EcmF3ZXIucHJvdG90eXBlID0gewogICAgICAgICAvLyBsaWtlIEVsZW1lbnRzIGluIHRoZWly
IHVwZGF0ZVN0YXR1c0Jhckl0ZW1zIGNhbGwgd2lsbCBzaXplIHRoaW5ncyB0byBmaXQgdGhlIGZp
bmFsIGxvY2F0aW9uLgogICAgICAgICB0aGlzLl9tYWluU3RhdHVzQmFyLnN0eWxlLnNldFByb3Bl
cnR5KCJwYWRkaW5nLWxlZnQiLCAoYW5jaG9yZWRJdGVtcy5vZmZzZXRXaWR0aCAtIDEpICsgInB4
Iik7CiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygiZHJhd2VyLXZpc2li
bGUiKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpLnN0YXR1c0JhclJlc2l6
ZWQoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgp
LnN0YXR1c0JhclJlc2l6ZWQoKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRTdHlsZUNsYXNz
KCJkcmF3ZXItdmlzaWJsZSIpOwogCiAgICAgICAgIHZhciBhbmltYXRpb25zID0gWwpAQCAtMTcx
LDcgKzE3MSw3IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAg
IGZ1bmN0aW9uIGFuaW1hdGlvbkZpbmlzaGVkKCkKICAgICAgICAgewotICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpLmRvUmVzaXplKCk7CisgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCkuZG9SZXNpemUoKTsKICAgICAgICAg
ICAgIHRoaXMuX21haW5TdGF0dXNCYXIuaW5zZXJ0QmVmb3JlKGFuY2hvcmVkSXRlbXMsIHRoaXMu
X21haW5TdGF0dXNCYXIuZmlyc3RDaGlsZCk7CiAgICAgICAgICAgICB0aGlzLl9tYWluU3RhdHVz
QmFyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWxlZnQiKTsKIApAQCAtMjYyLDggKzI2
Miw4IEBAIFdlYkluc3BlY3Rvci5EcmF3ZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMu
X21haW5FbGVtZW50LnN0eWxlLmJvdHRvbSA9IGhlaWdodCArICJweCI7CiAgICAgICAgIHRoaXMu
ZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAicHgiOwotICAgICAgICBpZiAoV2ViSW5z
cGVjdG9yLmN1cnJlbnRQYW5lbCgpKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQ
YW5lbCgpLmRvUmVzaXplKCk7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxDb250YWlu
ZXIuY3VycmVudFBhbmVsKCkpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxDb250YWlu
ZXIuY3VycmVudFBhbmVsKCkuZG9SZXNpemUoKTsKICAgICAgICAgdGhpcy5fdmlldy5kb1Jlc2l6
ZSgpOwogCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggMTc0ZjAw
MGFlY2Y5ZWMzNmRiMTcyZmU2NTUzYWQ1MTU1MTIxYWNmNS4uZmRhMTIzY2I4Zjk2NThiOGEzYjQy
MThiMTBmZGM5NTllNWQwMjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtMzA3LDcgKzMwNyw3IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIC8vIFJlc2V0
IHNlYXJjaCByZXN0b3JlLgogICAgICAgICBXZWJJbnNwZWN0b3Iuc2VhcmNoQ29udHJvbGxlci5j
YW5jZWxTZWFyY2goKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbCh0aGlz
KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLnNldEN1cnJlbnRQYW5lbCh0
aGlzKTsKICAgICAgICAgdGhpcy5zZWxlY3RET01Ob2RlKG5vZGUsIHRydWUpOwogICAgIH0sCiAK
QEAgLTk3Myw3ICs5NzMsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICByZXZlYWxBbmRTZWxlY3ROb2RlOiBmdW5jdGlvbihub2RlSWQpCiAgICAgewot
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudFBhbmVsKHRoaXMpOworICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxDb250YWluZXIuc2V0Q3VycmVudFBhbmVsKHRoaXMpOwogCiAgICAgICAg
IHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJZChub2RlSWQpOwogICAg
ICAgICBpZiAoIW5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKaW5kZXggODVmMzY3NWQ3MTQ1ZTEzNjFk
N2NhMGM1MjgyMGU3NTgyYzQzNDQ4Zi4uNjBkZjk3MTFhZjAyYjE5NzM1NGJiOTRlYzMxMjBlZjEw
NjkyN2IzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtODEsNiArODEsOCBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2RlcygpOworICAgICAgICBpZiAodGhp
cy5fc2VsZWN0ZWRET01Ob2RlKQorICAgICAgICAgICAgdGhpcy5fcmV2ZWFsQW5kU2VsZWN0Tm9k
ZSh0aGlzLl9zZWxlY3RlZERPTU5vZGUsIGZhbHNlKTsKICAgICB9LAogCiAgICAgYWRkRXZlbnRM
aXN0ZW5lcjogZnVuY3Rpb24oZXZlbnRUeXBlLCBsaXN0ZW5lciwgdGhpc09iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1
dC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1
dC5qcwppbmRleCBiM2MwNGQ3NmI0ZGFhMGNmYjg2ZTRlYWQwYWY2ZDdjYzkyOGI1NTAyLi43OTRk
MmZhM2VkNTJiNDc0NDA5M2VlNGI3NjRjMGU1YmJlZTcwM2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9LZXlib2FyZFNob3J0Y3V0LmpzCkBAIC0x
MTcsNiArMTE3LDExIEBAIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXlGcm9t
RXZlbnQgPSBmdW5jdGlvbihrZXlib2FyZEV2ZW50KQogICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dC5fbWFrZUtleUZyb21Db2RlQW5kTW9kaWZpZXJzKGtleWJvYXJkRXZl
bnQua2V5Q29kZSwgbW9kaWZpZXJzKTsKIH0KIAorV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRj
dXQuZXZlbnRIYXNDdHJsT3JNZXRhID0gZnVuY3Rpb24oZXZlbnQpCit7CisgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5pc01hYygpID8gZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSA6IGV2
ZW50LmN0cmxLZXkgJiYgIWV2ZW50Lm1ldGFLZXk7Cit9CisKIC8qKgogICogQHBhcmFtIHtudW1i
ZXI9fSBtb2RpZmllcnMKICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UGFuZWwuanMKaW5kZXggY2IwYjVkZTEzZTEwODk1ZjBlYjg4MjY1ZmQ4NTgyZWUyMjUzMjRhZi4u
MTM1MWI5YzFhNzM4ODI3OWRiYjE4YjFlZjhmNjI2NzA2Njc1NmJmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC02Myw3ICs2Myw3IEBAIFdlYklu
c3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUuc2hvdy5jYWxsKHRoaXMsIFdl
Ykluc3BlY3Rvci5tYWluUGFuZWxzVmlldy5lbGVtZW50KTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LlZpZXcucHJvdG90eXBlLnNob3cuY2FsbCh0aGlzLCBXZWJJbnNwZWN0b3IucGFuZWxDb250YWlu
ZXIuZWxlbWVudCk7CiAgICAgfSwKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsQ29udGFpbmVyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbENvbnRhaW5lci5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOTRlYTMzOWFkMzEwMTVmM2FiY2M2N2FjMTk0M2Y0ZmYyMjc3YzNjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbENv
bnRhaW5lci5qcwpAQCAtMCwwICsxLDE3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0
ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9CisgKi8KK1dlYkluc3BlY3Rvci5QYW5lbENvbnRhaW5l
ciA9IGZ1bmN0aW9uKCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMpOworICAg
IHRoaXMubWFya0FzUm9vdCgpOworICAgIHRoaXMuZWxlbWVudC5pZCA9ICJtYWluLXBhbmVscyI7
CisgICAgdGhpcy5lbGVtZW50LnNldEF0dHJpYnV0ZSgic3BlbGxjaGVjayIsIGZhbHNlKTsKKyAg
ICB0aGlzLl9oaXN0b3J5ID0gW107CisgICAgdGhpcy5faGlzdG9yeUl0ZXJhdG9yID0gLTE7Cisg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2tleURvd24uYmlu
ZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX3BhbmVsT3JkZXIgPSBbXTsKK30KKworV2ViSW5z
cGVjdG9yLlBhbmVsQ29udGFpbmVyLkV2ZW50cyA9IHsKKyAgICBQYW5lbFNlbGVjdGVkOiAicGFu
ZWwtc2VsZWN0ZWQiCit9CisKK1dlYkluc3BlY3Rvci5QYW5lbENvbnRhaW5lci5wcm90b3R5cGUg
PSB7CisgICAgYWRkUGFuZWw6IGZ1bmN0aW9uKHBhbmVsKQorICAgIHsKKyAgICAgICAgdGhpcy5f
cGFuZWxPcmRlci5wdXNoKHBhbmVsKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnRvb2xiYXIuYWRk
UGFuZWwocGFuZWwpOworICAgIH0sCisKKyAgICBjdXJyZW50UGFuZWw6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFuZWw7CisgICAgfSwKKworICAgIHNl
dEN1cnJlbnRQYW5lbDogZnVuY3Rpb24oeCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9jdXJy
ZW50UGFuZWwgPT09IHgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHRoaXMu
X2N1cnJlbnRQYW5lbCkKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYW5lbC5kZXRhY2goKTsK
KworICAgICAgICB0aGlzLl9jdXJyZW50UGFuZWwgPSB4OworCisgICAgICAgIGlmICh4KSB7Cisg
ICAgICAgICAgICB4LnNob3coKTsKKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5QYW5lbENvbnRhaW5lci5FdmVudHMuUGFuZWxTZWxlY3RlZCk7
CisgICAgICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHNlYXJjaCBjb250cm9sbGVyLgorICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIuYWN0aXZlUGFuZWxDaGFuZ2VkKCk7
CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgcGFuZWxOYW1lIGluIFdlYkluc3BlY3Rvci5w
YW5lbHMpIHsKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzW3BhbmVsTmFtZV0g
PT09IHgpIHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdEFjdGl2
ZVBhbmVsLnNldChwYW5lbE5hbWUpOworICAgICAgICAgICAgICAgIHRoaXMuX3B1c2hUb0hpc3Rv
cnkocGFuZWxOYW1lKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IudXNlck1ldHJpY3Mu
cGFuZWxTaG93bihwYW5lbE5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwK
KworICAgIF9rZXlEb3duOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAo
ZXZlbnQua2V5SWRlbnRpZmllcikgeworICAgICAgICAgICAgY2FzZSAiTGVmdCI6CisgICAgICAg
ICAgICAgICAgdmFyIGlzQmFja0tleSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2
ZW50SGFzQ3RybE9yTWV0YShldmVudCk7CisgICAgICAgICAgICAgICAgaWYgKGlzQmFja0tleSAm
JiB0aGlzLl9jYW5Hb0JhY2tJbkhpc3RvcnkoKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9nb0JhY2tJbkhpc3RvcnkoKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
CisgICAgICAgICAgICBjYXNlICJSaWdodCI6CisgICAgICAgICAgICAgICAgdmFyIGlzRm9yd2Fy
ZEtleSA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2ZW50SGFzQ3RybE9yTWV0YShl
dmVudCk7CisgICAgICAgICAgICAgICAgaWYgKGlzRm9yd2FyZEtleSAmJiB0aGlzLl9jYW5Hb0Zv
cndhcmRJbkhpc3RvcnkoKSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9nb0ZvcndhcmRJ
bkhpc3RvcnkoKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgCisgICAgICAg
ICAgICAvLyBXaW5kb3dzIGFuZCBNYWMgaGF2ZSB0d28gZGlmZmVyZW50IGRlZmluaXRpb25zIG9m
IFssIHNvIGFjY2VwdCBib3RoLgorICAgICAgICAgICAgY2FzZSAiVSswMDVCIjoKKyAgICAgICAg
ICAgIGNhc2UgIlUrMDBEQiI6IC8vIFsga2V5CisgICAgICAgICAgICAgICAgdmFyIGlzUm90YXRl
TGVmdCA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LmV2ZW50SGFzQ3RybE9yTWV0YShl
dmVudCkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmICFldmVudC5hbHRLZXk7CisgICAgICAgICAgICAg
ICAgaWYgKGlzUm90YXRlTGVmdCkgeworICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSB0
aGlzLl9wYW5lbE9yZGVyLmluZGV4T2YodGhpcy5jdXJyZW50UGFuZWwoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGluZGV4ID0gKGluZGV4ID09PSAwKSA/IHRoaXMuX3BhbmVsT3JkZXIubGVuZ3Ro
IC0gMSA6IGluZGV4IC0gMTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGFuZWxPcmRlcltp
bmRleF0udG9vbGJhckl0ZW0uY2xpY2soKTsKKyAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJl
dmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgICAgIC8vIFdpbmRvd3MgYW5kIE1hYyBoYXZlIHR3byBkaWZmZXJlbnQgZGVm
aW5pdGlvbnMgb2YgXSwgc28gYWNjZXB0IGJvdGguCisgICAgICAgICAgICBjYXNlICJVKzAwNUQi
OgorICAgICAgICAgICAgY2FzZSAiVSswMEREIjogIC8vIF0ga2V5CisgICAgICAgICAgICAgICAg
dmFyIGlzUm90YXRlUmlnaHQgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5ldmVudEhh
c0N0cmxPck1ldGEoZXZlbnQpICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuYWx0S2V5Owor
ICAgICAgICAgICAgICAgIGlmIChpc1JvdGF0ZVJpZ2h0KSB7CisgICAgICAgICAgICAgICAgICAg
IHZhciBpbmRleCA9IHRoaXMuX3BhbmVsT3JkZXIuaW5kZXhPZih0aGlzLmN1cnJlbnRQYW5lbCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAoaW5kZXggKyAxKSAlIHRoaXMuX3BhbmVs
T3JkZXIubGVuZ3RoOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9wYW5lbE9yZGVyW2luZGV4
XS50b29sYmFySXRlbS5jbGljaygpOworICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfY2FuR29CYWNrSW5IaXN0b3J5OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5faGlzdG9yeUl0ZXJhdG9yID4gMDsKKyAg
ICB9LAorCisgICAgX2dvQmFja0luSGlzdG9yeTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
dGhpcy5faW5IaXN0b3J5ID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5zZXRDdXJyZW50UGFuZWwoV2Vi
SW5zcGVjdG9yLnBhbmVsc1t0aGlzLl9oaXN0b3J5Wy0tdGhpcy5faGlzdG9yeUl0ZXJhdG9yXV0p
OworICAgICAgICBkZWxldGUgdGhpcy5faW5IaXN0b3J5OworICAgIH0sCisKKyAgICBfY2FuR29G
b3J3YXJkSW5IaXN0b3J5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
aGlzdG9yeUl0ZXJhdG9yIDwgdGhpcy5faGlzdG9yeS5sZW5ndGggLSAxOworICAgIH0sCisKKyAg
ICBfZ29Gb3J3YXJkSW5IaXN0b3J5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9p
bkhpc3RvcnkgPSB0cnVlOworICAgICAgICB0aGlzLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0
b3IucGFuZWxzW3RoaXMuX2hpc3RvcnlbKyt0aGlzLl9oaXN0b3J5SXRlcmF0b3JdXSk7CisgICAg
ICAgIGRlbGV0ZSB0aGlzLl9pbkhpc3Rvcnk7CisgICAgfSwKKworICAgIF9wdXNoVG9IaXN0b3J5
OiBmdW5jdGlvbihwYW5lbE5hbWUpCisgICAgeworICAgICAgICBpZiAodGhpcy5faW5IaXN0b3J5
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuX2hpc3Rvcnkuc3BsaWNlKHRo
aXMuX2hpc3RvcnlJdGVyYXRvciArIDEsIHRoaXMuX2hpc3RvcnkubGVuZ3RoIC0gdGhpcy5faGlz
dG9yeUl0ZXJhdG9yIC0gMSk7CisgICAgICAgIGlmICghdGhpcy5faGlzdG9yeS5sZW5ndGggfHwg
dGhpcy5faGlzdG9yeVt0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIDFdICE9PSBwYW5lbE5hbWUpCisg
ICAgICAgICAgICB0aGlzLl9oaXN0b3J5LnB1c2gocGFuZWxOYW1lKTsKKyAgICAgICAgdGhpcy5f
aGlzdG9yeUl0ZXJhdG9yID0gdGhpcy5faGlzdG9yeS5sZW5ndGggLSAxOworICAgIH0KK30KKwor
V2ViSW5zcGVjdG9yLlBhbmVsQ29udGFpbmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuVmlldy5wcm90b3R5cGU7CisKKy8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5QYW5l
bENvbnRhaW5lcn0KKyAqLworV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyID0gbnVsbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMK
aW5kZXggNWE4Y2MxNGJmZDkwODAxNTI2YjE2YTUxYjk1MGFhOWUwM2ZlZGMwNi4uODk4N2ExYTcw
OWZiMDRiZmRiMDc4ZjljNDRjNTE4MmYyMjFiZWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTQ2NSw3ICs0NjUsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlz
Ll91cGRhdGVEZWJ1Z2dlckJ1dHRvbnMoKTsKIAotICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3Vy
cmVudFBhbmVsKHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuc2V0
Q3VycmVudFBhbmVsKHRoaXMpOwogCiAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFj
ay51cGRhdGUoY2FsbEZyYW1lcyk7CiAgICAgICAgIHRoaXMuX3VwZGF0ZUNhbGxGcmFtZSh0aGlz
Ll9wcmVzZW50YXRpb25Nb2RlbC5zZWxlY3RlZENhbGxGcmFtZSk7CkBAIC05OTMsMTEgKzk5Mywx
MSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZCkgewogICAgICAgICAgICAgRGVi
dWdnZXJBZ2VudC5zZXRCcmVha3BvaW50c0FjdGl2ZSh0cnVlKTsKICAgICAgICAgICAgIHRoaXMu
dG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRl
YWN0aXZhdGUgYWxsIGJyZWFrcG9pbnRzLiIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLm1h
aW5QYW5lbHNWaWV3LmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygiYnJlYWtwb2ludHMtZGVhY3Rp
dmF0ZWQiKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5lbGVtZW50
LnJlbW92ZVN0eWxlQ2xhc3MoImJyZWFrcG9pbnRzLWRlYWN0aXZhdGVkIik7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnNldEJyZWFrcG9pbnRzQWN0aXZlKGZh
bHNlKTsKICAgICAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFjdGl2YXRlIGFsbCBicmVha3BvaW50cy4iKTsKLSAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5tYWluUGFuZWxzVmlldy5lbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
ImJyZWFrcG9pbnRzLWRlYWN0aXZhdGVkIik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxDb250YWluZXIuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3BvaW50cy1kZWFjdGl2YXRl
ZCIpOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzCmluZGV4IDFiOGYwMDNjOThlNjg1
MzhjOTI3MmY3YWQ4NTc2NGE4YzJjZmFmYTEuLmI1OTAzMzkwOWYxNGVlZWEwNWJkMWQ1ODY2ODgx
YTM3YTM3MWFmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2VhcmNoQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NlYXJjaENvbnRyb2xsZXIuanMKQEAgLTQ3LDIzICs0NywyMyBAQCBXZWJJbnNwZWN0
b3IuU2VhcmNoQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlU2VhcmNoTWF0Y2hl
c0NvdW50OiBmdW5jdGlvbihtYXRjaGVzLCBwYW5lbCkKICAgICB7CiAgICAgICAgIGlmICghcGFu
ZWwpCi0gICAgICAgICAgICBwYW5lbCA9IFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKTsKKyAg
ICAgICAgICAgIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5l
bCgpOwogCiAgICAgICAgIHBhbmVsLmN1cnJlbnRTZWFyY2hNYXRjaGVzID0gbWF0Y2hlczsKIAot
ICAgICAgICBpZiAocGFuZWwgPT09IFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKSkKLSAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudEFuZEN1cnJlbnRNYXRjaEluZGV4
KFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKS5jdXJyZW50UXVlcnkgJiYgbWF0Y2hlcyk7Cisg
ICAgICAgIGlmIChwYW5lbCA9PT0gV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQ
YW5lbCgpKQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoTWF0Y2hlc0NvdW50QW5kQ3Vy
cmVudE1hdGNoSW5kZXgoV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgp
LmN1cnJlbnRRdWVyeSAmJiBtYXRjaGVzKTsKICAgICB9LAogCiAgICAgdXBkYXRlQ3VycmVudE1h
dGNoSW5kZXg6IGZ1bmN0aW9uKGN1cnJlbnRNYXRjaEluZGV4LCBwYW5lbCkKICAgICB7Ci0gICAg
ICAgIGlmIChwYW5lbCA9PT0gV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpKQorICAgICAgICBp
ZiAocGFuZWwgPT09IFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKSkK
ICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlYXJjaE1hdGNoZXNDb3VudEFuZEN1cnJlbnRNYXRj
aEluZGV4KHBhbmVsLmN1cnJlbnRTZWFyY2hNYXRjaGVzLCBjdXJyZW50TWF0Y2hJbmRleCk7CiAg
ICAgfSwKIAogICAgIHVwZGF0ZVNlYXJjaExhYmVsOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICB2YXIgcGFuZWxOYW1lID0gV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpICYmIFdlYkluc3Bl
Y3Rvci5jdXJyZW50UGFuZWwoKS50b29sYmFySXRlbUxhYmVsOworICAgICAgICB2YXIgcGFuZWxO
YW1lID0gV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgpICYmIFdlYklu
c3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKS50b29sYmFySXRlbUxhYmVsOwog
ICAgICAgICBpZiAoIXBhbmVsTmFtZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFy
IG5ld0xhYmVsID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWFyY2ggJXMiLCBwYW5lbE5hbWUp
OwpAQCAtMTEyLDcgKzExMiw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgY2FzZSAiVSsw
MDQ3IjogLy8gRyBrZXkKLSAgICAgICAgICAgICAgICB2YXIgY3VycmVudFBhbmVsID0gV2ViSW5z
cGVjdG9yLmN1cnJlbnRQYW5lbCgpOworICAgICAgICAgICAgICAgIHZhciBjdXJyZW50UGFuZWwg
PSBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCk7CiAKICAgICAgICAg
ICAgICAgICBpZiAoaXNNYWMgJiYgZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAh
ZXZlbnQuYWx0S2V5KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSkg
ewpAQCAtMTMzLDcgKzEzMyw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgaWYgKCF0aGlzLl9jdXJyZW50UXVlcnkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgp
OworICAgICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVu
dFBhbmVsKCk7CiAgICAgICAgIGlmIChwYW5lbC5wZXJmb3JtU2VhcmNoKSB7CiAgICAgICAgICAg
ICBmdW5jdGlvbiBwZXJmb3JtUGFuZWxTZWFyY2goKQogICAgICAgICAgICAgewpAQCAtMjczLDcg
KzI3Myw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHZhciBjdXJyZW50UGFuZWwg
PSBXZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsKCk7CisgICAgICAgIHZhciBjdXJyZW50UGFuZWwg
PSBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCk7CiAgICAgICAgIGlm
ICghcmVwZWF0U2VhcmNoICYmIHF1ZXJ5ID09PSBjdXJyZW50UGFuZWwuY3VycmVudFF1ZXJ5ICYm
IGN1cnJlbnRQYW5lbC5jdXJyZW50UXVlcnkgPT09IHRoaXMuX2N1cnJlbnRRdWVyeSkgewogICAg
ICAgICAgICAgLy8gV2hlbiB0aGlzIGlzIHRoZSBzYW1lIHF1ZXJ5IGFuZCBhIGZvcmNlZCBzZWFy
Y2gsIGp1bXAgdG8gdGhlIG5leHQKICAgICAgICAgICAgIC8vIHNlYXJjaCByZXN1bHQgZm9yIGEg
Z29vZCB1c2VyIGV4cGVyaWVuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1Rvb2xiYXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Rvb2xiYXIuanMKaW5kZXggMTQ2NGIwM2VjNTllNWNiMGQxNmJlMDhmNjNlMzcwYmEzM2U5
NTljNy4uMmMzMWQ2ZTlmMTZmNGZmM2FiM2VlMThiNTc0YzRmYTIxZTZlNjY0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub29sYmFyLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVG9vbGJhci5qcwpAQCAtMTU2LDcgKzE1
Niw3IEBAIFdlYkluc3BlY3Rvci5Ub29sYmFyLmNyZWF0ZVBhbmVsVG9vbGJhckl0ZW0gPSBmdW5j
dGlvbihwYW5lbCkKICAgICBmdW5jdGlvbiBvblRvb2xiYXJJdGVtQ2xpY2tlZCgpCiAgICAgewog
ICAgICAgICBXZWJJbnNwZWN0b3IudG9vbGJhci5fdXBkYXRlRHJvcGRvd25CdXR0b25BbmRIaWRl
RHJvcGRvd24oKTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbChwYW5lbCk7
CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5zZXRDdXJyZW50UGFuZWwocGFu
ZWwpOwogICAgIH0KICAgICB0b29sYmFySXRlbS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIG9u
VG9vbGJhckl0ZW1DbGlja2VkLCBmYWxzZSk7CiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBXZWJJbnNw
ZWN0b3IuVG9vbGJhci5jcmVhdGVQYW5lbFRvb2xiYXJJdGVtID0gZnVuY3Rpb24ocGFuZWwpCiAg
ICAgaWYgKCJ0b29sYmFySXRlbUxhYmVsIiBpbiBwYW5lbCkKICAgICAgICAgdG9vbGJhckl0ZW0u
Y3JlYXRlQ2hpbGQoImRpdiIsICJ0b29sYmFyLWxhYmVsIikudGV4dENvbnRlbnQgPSBwYW5lbC50
b29sYmFySXRlbUxhYmVsOwogCi0gICAgaWYgKHBhbmVsID09PSBXZWJJbnNwZWN0b3IuY3VycmVu
dFBhbmVsKCkpCisgICAgaWYgKHBhbmVsID09PSBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIu
Y3VycmVudFBhbmVsKCkpCiAgICAgICAgIHRvb2xiYXJJdGVtLmFkZFN0eWxlQ2xhc3MoInRvZ2ds
ZWQtb24iKTsKIAogICAgIHJldHVybiB0b29sYmFySXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwppbmRleCA4OGEyMmFjNmFkMGQzMDBhMTgwOWFm
MmI5NDM3ZGU0YTlmYzc4ZjI2Li5iODA0MTQ5ZDQ2ZjAwMWZmZTg5NzU0YzJjYmFhZGQxMTU4ODE5
MjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktp
dC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CkBAIC04MSw2ICs4MSw3IEBACiAgICAgPGZpbGU+T2JqZWN0UG9wb3ZlckhlbHBlci5qczwvZmls
ZT4KICAgICA8ZmlsZT5PYmplY3RQcm9wZXJ0aWVzU2VjdGlvbi5qczwvZmlsZT4KICAgICA8Zmls
ZT5QYW5lbC5qczwvZmlsZT4KKyAgICA8ZmlsZT5QYW5lbENvbnRhaW5lci5qczwvZmlsZT4KICAg
ICA8ZmlsZT5QYW5lbEVuYWJsZXJWaWV3LmpzPC9maWxlPgogICAgIDxmaWxlPlBhcnRpYWxRdWlj
a1NvcnQuanM8L2ZpbGU+CiAgICAgPGZpbGU+UGxhY2FyZC5qczwvZmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcwppbmRleCA3NDhkM2UzOWQxYWYy
NzY5ZWJjMTI4NzQxMDFjMmFiMGQ2OWQ0MDU1Li4zYzA4ZDQ5ZmM3M2Y1ZGJhODc5Y2UxOGRlNDBm
YjVhNTJjODEzYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2V4dGVybnMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9l
eHRlcm5zLmpzCkBAIC05MiwxOSArOTIsMTQgQEAgV2ViSW5zcGVjdG9yLm5ldHdvcmtSZXNvdXJj
ZUJ5SWQgPSBmdW5jdGlvbihyZXF1ZXN0SWQpCiBXZWJJbnNwZWN0b3IucGFuZWxzID0ge307CiAK
IC8qKgotICogQHR5cGUge1dlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWx9Ci0gKi8KLVdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cyA9IG51bGw7Ci0KLS8qKgotICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlBhbmVsfSAKKyAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuUGFuZWxDb250YWluZXJ9CiAgKi8K
LVdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwgPSBmdW5jdGlvbigpIHt9CitXZWJJbnNwZWN0b3Iu
cGFuZWxDb250YWluZXI7CiAKIC8qKgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUGFuZWx9IHBh
bmVsCisgKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbH0KICAqLwotV2ViSW5zcGVj
dG9yLnNldEN1cnJlbnRQYW5lbCA9IGZ1bmN0aW9uKHBhbmVsKSB7fQorV2ViSW5zcGVjdG9yLnBh
bmVscy5zY3JpcHRzID0gbnVsbDsKIAogLyoqCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3
fSB2aWV3CkBAIC0xNzcsOCArMTcyLDMgQEAgZnVuY3Rpb24gRXh0ZW5zaW9uUmVsb2FkT3B0aW9u
cygpIHsKICAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuSGFuZGxlclJlZ2lzdHJ5fQogICovCiBXZWJJ
bnNwZWN0b3Iub3BlbkFuY2hvckxvY2F0aW9uUmVnaXN0cnkgPSBudWxsOwotCi0vKioKLSAqIEB0
eXBlIHtXZWJJbnNwZWN0b3IuVmlld30KLSAqLwotV2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKaW5kZXggNjg3ZGFiZWRkODJmYjMxZDM2NzM1ZTY0OTA5YzY2NTViN2VjNTQ3Ny4uNjhhMDBm
NzUxNmY1MWJiNDA4OWVlNDZkMDAyOTUxMjlhM2EwZjdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC02MCw2ICs2MCw3IEBA
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29uc29s
ZU1lc3NhZ2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IkNvbnNvbGVWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJQYW5lbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iUGFuZWxDb250YWluZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkFkdmFuY2VkU2VhcmNoQ29udHJvbGxl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
VGltZWxpbmVHcmlkLmpzIj48L3NjcmlwdD4gICAgCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iUmVzb3VyY2UuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAyYjhiODFlMDBmNjliMzdh
Njc3NjBlNjE0NDAzMzU1OGY0Y2JlNjE0Li40OTE1MzgwMjE3Y2QzMTYyYzhiODliNmI4OTdmZTQ4
ZTU3MTA1N2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcwpAQCAtMjksNDQgKzI5LDEzIEBACiAgKi8KIAogdmFyIFdlYkluc3BlY3RvciA9
IHsKLSAgICBjdXJyZW50UGFuZWw6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9jdXJyZW50UGFuZWw7Ci0gICAgfSwKLQotICAgIHNldEN1cnJlbnRQYW5lbDogZnVuY3Rp
b24oeCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9jdXJyZW50UGFuZWwgPT09IHgpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRQYW5lbCkKLSAgICAg
ICAgICAgIHRoaXMuX2N1cnJlbnRQYW5lbC5kZXRhY2goKTsKLQotICAgICAgICB0aGlzLl9jdXJy
ZW50UGFuZWwgPSB4OwotCi0gICAgICAgIGlmICh4KSB7Ci0gICAgICAgICAgICB4LnNob3coKTsK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLmFjdGl2ZVBhbmVsQ2hh
bmdlZCgpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodmFyIHBhbmVsTmFtZSBpbiBXZWJJbnNw
ZWN0b3IucGFuZWxzKSB7Ci0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVsc1twYW5l
bE5hbWVdID09PSB4KSB7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxh
c3RBY3RpdmVQYW5lbC5zZXQocGFuZWxOYW1lKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9wYW5l
bEhpc3Rvcnkuc2V0UGFuZWwocGFuZWxOYW1lKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IudXNlck1ldHJpY3MucGFuZWxTaG93bihwYW5lbE5hbWUpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgdGhpcy5fdG9nZ2xlQ29uc29sZUJ1dHRvbi5kaXNhYmxlZCA9IHRo
aXMuX2N1cnJlbnRQYW5lbCA9PT0gV2ViSW5zcGVjdG9yLnBhbmVscy5jb25zb2xlOwotICAgIH0s
Ci0KICAgICBfY3JlYXRlUGFuZWxzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBXZWJJbnNw
ZWN0b3IubWFpblBhbmVsc1ZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlZpZXcoKTsKLSAgICAgICAg
V2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3Lm1hcmtBc1Jvb3QoKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQuaWQgPSAibWFpbi1wYW5lbHMiOwotICAgICAg
ICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudC5zZXRBdHRyaWJ1dGUoInNwZWxs
Y2hlY2siLCBmYWxzZSk7CisgICAgICAgIHRoaXMucGFuZWxzID0ge307CisgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbENvbnRhaW5lciA9IG5ldyBXZWJJbnNwZWN0b3IuUGFuZWxDb250YWluZXIo
KTsKICAgICAgICAgdmFyIHBhcmVudEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bWFpbiIpOwotICAgICAgICBXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuc2hvdyhwYXJlbnRF
bGVtZW50KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLnNob3cocGFyZW50
RWxlbWVudCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5QYW5lbENvbnRhaW5lci5FdmVudHMuUGFuZWxTZWxlY3RlZCwg
dGhpcy5fcGFuZWxTZWxlY3RlZCwgdGhpcyk7CiAKICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5X
b3JrZXJNYW5hZ2VyLmlzV29ya2VyRnJvbnRlbmQoKSkgewogICAgICAgICAgICAgdGhpcy5wYW5l
bHMuc2NyaXB0cyA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHRoaXMuZGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbCk7CkBAIC05Miw2ICs2MSwxMSBAQCB2YXIgV2ViSW5zcGVjdG9yID0g
ewogICAgICAgICAgICAgdGhpcy5wYW5lbHMuY29uc29sZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29u
c29sZVBhbmVsKCk7CiAgICAgfSwKIAorICAgIF9wYW5lbFNlbGVjdGVkOiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLl90b2dnbGVDb25zb2xlQnV0dG9uLmRpc2FibGVkID0gV2ViSW5z
cGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgpID09PSBXZWJJbnNwZWN0b3IucGFu
ZWxzLmNvbnNvbGU7CisgICAgfSwKKwogICAgIF9jcmVhdGVHbG9iYWxTdGF0dXNCYXJJdGVtczog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fZG9ja1RvZ2dsZUJ1dHRvbiA9IG5ldyBX
ZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKHRoaXMuX2RvY2tCdXR0b25UaXRsZSgpLCAiZG9j
ay1zdGF0dXMtYmFyLWl0ZW0iKTsKQEAgLTM5NCwxNSArMzY4LDEyIEBAIFdlYkluc3BlY3Rvci5k
b0xvYWRlZERvbmUgPSBmdW5jdGlvbigpCiAgICAgaWYgKFByZWZlcmVuY2VzLm5hdGl2ZUluc3Ry
dW1lbnRhdGlvbkVuYWJsZWQpCiAgICAgICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwogCi0gICAg
dGhpcy5wYW5lbHMgPSB7fTsKICAgICB0aGlzLl9jcmVhdGVQYW5lbHMoKTsKICAgICB0aGlzLl9j
cmVhdGVHbG9iYWxTdGF0dXNCYXJJdGVtcygpOwogCi0gICAgdGhpcy5fcGFuZWxIaXN0b3J5ID0g
bmV3IFdlYkluc3BlY3Rvci5QYW5lbEhpc3RvcnkoKTsKICAgICB0aGlzLnRvb2xiYXIgPSBuZXcg
V2ViSW5zcGVjdG9yLlRvb2xiYXIoKTsKICAgICB0aGlzLnRvb2xiYXIuYXR0YWNoZWQgPSBXZWJJ
bnNwZWN0b3IuYXR0YWNoZWQ7CiAKLSAgICB0aGlzLnBhbmVsT3JkZXIgPSBbXTsKICAgICBmb3Ig
KHZhciBwYW5lbE5hbWUgaW4gdGhpcy5wYW5lbHMpCiAgICAgICAgIHRoaXMuYWRkUGFuZWwodGhp
cy5wYW5lbHNbcGFuZWxOYW1lXSk7CiAKQEAgLTQzNCw4ICs0MDUsNyBAQCBXZWJJbnNwZWN0b3Iu
ZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IuYWRkUGFuZWwgPSBmdW5j
dGlvbihwYW5lbCkKIHsKLSAgICB0aGlzLnBhbmVsT3JkZXIucHVzaChwYW5lbCk7Ci0gICAgdGhp
cy50b29sYmFyLmFkZFBhbmVsKHBhbmVsKTsKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxDb250YWlu
ZXIuYWRkUGFuZWwocGFuZWwpOwogfQogCiB2YXIgd2luZG93TG9hZGVkID0gZnVuY3Rpb24oKQpA
QCAtNDg0LDEwICs0NTQsOSBAQCBXZWJJbnNwZWN0b3IuZGlzcGF0Y2hNZXNzYWdlRnJvbUJhY2tl
bmQgPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQogCiBXZWJJbnNwZWN0b3Iud2luZG93UmVzaXpl
ID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsKCkpCi0gICAg
ICAgIHRoaXMuY3VycmVudFBhbmVsKCkuZG9SZXNpemUoKTsKLSAgICB0aGlzLmRyYXdlci5yZXNp
emUoKTsKLSAgICB0aGlzLnRvb2xiYXIucmVzaXplKCk7CisgICAgV2ViSW5zcGVjdG9yLnBhbmVs
Q29udGFpbmVyLmRvUmVzaXplKCk7CisgICAgV2ViSW5zcGVjdG9yLmRyYXdlci5yZXNpemUoKTsK
KyAgICBXZWJJbnNwZWN0b3IudG9vbGJhci5yZXNpemUoKTsKIH0KIAogV2ViSW5zcGVjdG9yLnNl
dEF0dGFjaGVkV2luZG93ID0gZnVuY3Rpb24oYXR0YWNoZWQpCkBAIC02MTgsOCArNTg3LDggQEAg
V2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50KQogICAgICAgICB9
CiAgICAgfQogCi0gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsKCkpIHsKLSAgICAgICAgdGhpcy5j
dXJyZW50UGFuZWwoKS5oYW5kbGVTaG9ydGN1dChldmVudCk7CisgICAgaWYgKFdlYkluc3BlY3Rv
ci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKSkgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCkuaGFuZGxlU2hvcnRjdXQoZXZlbnQpOwogICAg
ICAgICBpZiAoZXZlbnQuaGFuZGxlZCkgewogICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTYzOCw2MSArNjA3LDEwIEBAIFdlYkluc3Bl
Y3Rvci5kb2N1bWVudEtleURvd24gPSBmdW5jdGlvbihldmVudCkKIAogICAgIHZhciBpc01hYyA9
IFdlYkluc3BlY3Rvci5pc01hYygpOwogICAgIHN3aXRjaCAoZXZlbnQua2V5SWRlbnRpZmllcikg
ewotICAgICAgICBjYXNlICJMZWZ0IjoKLSAgICAgICAgICAgIHZhciBpc0JhY2tLZXkgPSAhaXNJ
bkVkaXRNb2RlICYmIChpc01hYyA/IGV2ZW50Lm1ldGFLZXkgOiBldmVudC5jdHJsS2V5KTsKLSAg
ICAgICAgICAgIGlmIChpc0JhY2tLZXkgJiYgdGhpcy5fcGFuZWxIaXN0b3J5LmNhbkdvQmFjaygp
KSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcGFuZWxIaXN0b3J5LmdvQmFjaygpOwotICAgICAg
ICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICBjYXNlICJSaWdodCI6Ci0gICAgICAgICAgICB2YXIgaXNG
b3J3YXJkS2V5ID0gIWlzSW5FZGl0TW9kZSAmJiAoaXNNYWMgPyBldmVudC5tZXRhS2V5IDogZXZl
bnQuY3RybEtleSk7Ci0gICAgICAgICAgICBpZiAoaXNGb3J3YXJkS2V5ICYmIHRoaXMuX3BhbmVs
SGlzdG9yeS5jYW5Hb0ZvcndhcmQoKSkgewotICAgICAgICAgICAgICAgIHRoaXMuX3BhbmVsSGlz
dG9yeS5nb0ZvcndhcmQoKTsKLSAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgY2FzZSAiVSsw
MDFCIjogLy8gRXNjYXBlIGtleQogICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
ICAgICAgICAgICAgIHRoaXMuX2VzY1ByZXNzZWQoKTsKICAgICAgICAgICAgIGJyZWFrOwotCi0g
ICAgICAgIC8vIFdpbmRvd3MgYW5kIE1hYyBoYXZlIHR3byBkaWZmZXJlbnQgZGVmaW5pdGlvbnMg
b2YgWywgc28gYWNjZXB0IGJvdGguCi0gICAgICAgIGNhc2UgIlUrMDA1QiI6Ci0gICAgICAgIGNh
c2UgIlUrMDBEQiI6IC8vIFsga2V5Ci0gICAgICAgICAgICBpZiAoaXNNYWMpCi0gICAgICAgICAg
ICAgICAgdmFyIGlzUm90YXRlTGVmdCA9IGV2ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LnNoaWZ0S2V5
ICYmICFldmVudC5jdHJsS2V5ICYmICFldmVudC5hbHRLZXk7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgdmFyIGlzUm90YXRlTGVmdCA9IGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50
LnNoaWZ0S2V5ICYmICFldmVudC5tZXRhS2V5ICYmICFldmVudC5hbHRLZXk7Ci0KLSAgICAgICAg
ICAgIGlmIChpc1JvdGF0ZUxlZnQpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlz
LnBhbmVsT3JkZXIuaW5kZXhPZih0aGlzLmN1cnJlbnRQYW5lbCgpKTsKLSAgICAgICAgICAgICAg
ICBpbmRleCA9IChpbmRleCA9PT0gMCkgPyB0aGlzLnBhbmVsT3JkZXIubGVuZ3RoIC0gMSA6IGlu
ZGV4IC0gMTsKLSAgICAgICAgICAgICAgICB0aGlzLnBhbmVsT3JkZXJbaW5kZXhdLnRvb2xiYXJJ
dGVtLmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLy8gV2luZG93cyBh
bmQgTWFjIGhhdmUgdHdvIGRpZmZlcmVudCBkZWZpbml0aW9ucyBvZiBdLCBzbyBhY2NlcHQgYm90
aC4KLSAgICAgICAgY2FzZSAiVSswMDVEIjoKLSAgICAgICAgY2FzZSAiVSswMEREIjogIC8vIF0g
a2V5Ci0gICAgICAgICAgICBpZiAoaXNNYWMpCi0gICAgICAgICAgICAgICAgdmFyIGlzUm90YXRl
UmlnaHQgPSBldmVudC5tZXRhS2V5ICYmICFldmVudC5zaGlmdEtleSAmJiAhZXZlbnQuY3RybEtl
eSAmJiAhZXZlbnQuYWx0S2V5OwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZh
ciBpc1JvdGF0ZVJpZ2h0ID0gZXZlbnQuY3RybEtleSAmJiAhZXZlbnQuc2hpZnRLZXkgJiYgIWV2
ZW50Lm1ldGFLZXkgJiYgIWV2ZW50LmFsdEtleTsKLQotICAgICAgICAgICAgaWYgKGlzUm90YXRl
UmlnaHQpIHsKLSAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLnBhbmVsT3JkZXIuaW5k
ZXhPZih0aGlzLmN1cnJlbnRQYW5lbCgpKTsKLSAgICAgICAgICAgICAgICBpbmRleCA9IChpbmRl
eCArIDEpICUgdGhpcy5wYW5lbE9yZGVyLmxlbmd0aDsKLSAgICAgICAgICAgICAgICB0aGlzLnBh
bmVsT3JkZXJbaW5kZXhdLnRvb2xiYXJJdGVtLmNsaWNrKCk7Ci0gICAgICAgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgYnJlYWs7
Ci0KICAgICAgICAgY2FzZSAiVSswMDUyIjogLy8gUiBrZXkKICAgICAgICAgICAgIGlmICgoZXZl
bnQubWV0YUtleSAmJiBpc01hYykgfHwgKGV2ZW50LmN0cmxLZXkgJiYgIWlzTWFjKSkgewogICAg
ICAgICAgICAgICAgIFBhZ2VBZ2VudC5yZWxvYWQoZXZlbnQuc2hpZnRLZXkpOwpAQCAtNzEwLDE0
ICs2MjgsMTQgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50S2V5RG93biA9IGZ1bmN0aW9uKGV2ZW50
KQogCiBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDYW5Db3B5ID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0g
ICAgaWYgKHRoaXMuY3VycmVudFBhbmVsKCkgJiYgdGhpcy5jdXJyZW50UGFuZWwoKS5oYW5kbGVD
b3B5RXZlbnQpCisgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFu
ZWwoKSAmJiBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuY3VycmVudFBhbmVsKCkuaGFuZGxl
Q29weUV2ZW50KQogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfQogCiBXZWJJbnNw
ZWN0b3IuZG9jdW1lbnRDb3B5ID0gZnVuY3Rpb24oZXZlbnQpCiB7Ci0gICAgaWYgKHRoaXMuY3Vy
cmVudFBhbmVsKCkgJiYgdGhpcy5jdXJyZW50UGFuZWwoKS5oYW5kbGVDb3B5RXZlbnQpCi0gICAg
ICAgIHRoaXMuY3VycmVudFBhbmVsKCkuaGFuZGxlQ29weUV2ZW50KGV2ZW50KTsKKyAgICBpZiAo
V2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgpICYmIFdlYkluc3BlY3Rv
ci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKS5oYW5kbGVDb3B5RXZlbnQpCisgICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKS5oYW5kbGVDb3B5RXZl
bnQoZXZlbnQpOwogfQogCiBXZWJJbnNwZWN0b3IuY29udGV4dE1lbnVFdmVudEZpcmVkID0gZnVu
Y3Rpb24oZXZlbnQpCkBAIC03NDgsMTIgKzY2NiwxMiBAQCBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
ID0gZnVuY3Rpb24ocGFuZWwpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhbmVsID0gImVs
ZW1lbnRzIjsKICAgICB9Ci0gICAgdGhpcy5zZXRDdXJyZW50UGFuZWwodGhpcy5wYW5lbHNbcGFu
ZWxdKTsKKyAgICBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuc2V0Q3VycmVudFBhbmVsKHRo
aXMucGFuZWxzW3BhbmVsXSk7CiB9CiAKIFdlYkluc3BlY3Rvci5zdGFydFVzZXJJbml0aWF0ZWRE
ZWJ1Z2dpbmcgPSBmdW5jdGlvbigpCiB7Ci0gICAgdGhpcy5zZXRDdXJyZW50UGFuZWwodGhpcy5w
YW5lbHMuc2NyaXB0cyk7CisgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLnNldEN1cnJl
bnRQYW5lbCh0aGlzLnBhbmVscy5zY3JpcHRzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5lbmFibGVEZWJ1Z2dlcigpOwogfQogCkBAIC04NzksMTAgKzc5NywxMCBAQCBXZWJJbnNw
ZWN0b3IuaW5zcGVjdCA9IGZ1bmN0aW9uKHBheWxvYWQsIGhpbnRzKQogICAgIH0KIAogICAgIGlm
IChoaW50cy5kYXRhYmFzZUlkKSB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50UGFu
ZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMpOworICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxDb250YWluZXIuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMucmVzb3Vy
Y2VzKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMuc2VsZWN0RGF0YWJh
c2UoaGludHMuZGF0YWJhc2VJZCk7CiAgICAgfSBlbHNlIGlmIChoaW50cy5kb21TdG9yYWdlSWQp
IHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0b3IucGFu
ZWxzLnJlc291cmNlcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5zZXRD
dXJyZW50UGFuZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5yZXNvdXJjZXMpOwogICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnJlc291cmNlcy5zZWxlY3RET01TdG9yYWdlKGhpbnRzLmRvbVN0b3Jh
Z2VJZCk7CiAgICAgfQogCkBAIC05MTgsMTAgKzgzNiwxMCBAQCBXZWJJbnNwZWN0b3IuX3Nob3dB
bmNob3JMb2NhdGlvbkluUGFuZWwgPSBmdW5jdGlvbihhbmNob3IsIHBhbmVsKQogICAgIH0KIAog
ICAgIFdlYkluc3BlY3Rvci5zZWFyY2hDb250cm9sbGVyLmRpc2FibGVTZWFyY2hVbnRpbEV4cGxp
Y2l0QWN0aW9uKCk7Ci0gICAgdGhpcy5zZXRDdXJyZW50UGFuZWwocGFuZWwpOworICAgIFdlYklu
c3BlY3Rvci5wYW5lbENvbnRhaW5lci5zZXRDdXJyZW50UGFuZWwocGFuZWwpOwogICAgIGlmICh0
aGlzLmRyYXdlcikKICAgICAgICAgdGhpcy5kcmF3ZXIuaW1tZWRpYXRlbHlGaW5pc2hBbmltYXRp
b24oKTsKLSAgICB0aGlzLmN1cnJlbnRQYW5lbCgpLnNob3dBbmNob3JMb2NhdGlvbihhbmNob3Ip
OworICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKS5zaG93QW5j
aG9yTG9jYXRpb24oYW5jaG9yKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTQ5LDUwICs4
NjcsNyBAQCBXZWJJbnNwZWN0b3IuZnJvbnRlbmRSZXVzZWQgPSBmdW5jdGlvbigpCiBXZWJJbnNw
ZWN0b3IuX3Rvb2xiYXJJdGVtQ2xpY2tlZCA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciB0
b29sYmFySXRlbSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7Ci0gICAgdGhpcy5zZXRDdXJyZW50UGFu
ZWwodG9vbGJhckl0ZW0ucGFuZWwpOwotfQotCi1XZWJJbnNwZWN0b3IuUGFuZWxIaXN0b3J5ID0g
ZnVuY3Rpb24oKQotewotICAgIHRoaXMuX2hpc3RvcnkgPSBbXTsKLSAgICB0aGlzLl9oaXN0b3J5
SXRlcmF0b3IgPSAtMTsKLX0KLQotV2ViSW5zcGVjdG9yLlBhbmVsSGlzdG9yeS5wcm90b3R5cGUg
PSB7Ci0gICAgY2FuR29CYWNrOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5faGlzdG9yeUl0ZXJhdG9yID4gMDsKLSAgICB9LAotCi0gICAgZ29CYWNrOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB0aGlzLl9pbkhpc3RvcnkgPSB0cnVlOwotICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHNbdGhpcy5faGlzdG9yeVst
LXRoaXMuX2hpc3RvcnlJdGVyYXRvcl1dKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2luSGlzdG9y
eTsKLSAgICB9LAotCi0gICAgY2FuR29Gb3J3YXJkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5faGlzdG9yeUl0ZXJhdG9yIDwgdGhpcy5faGlzdG9yeS5sZW5ndGggLSAx
OwotICAgIH0sCi0KLSAgICBnb0ZvcndhcmQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2luSGlzdG9yeSA9IHRydWU7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50UGFu
ZWwoV2ViSW5zcGVjdG9yLnBhbmVsc1t0aGlzLl9oaXN0b3J5WysrdGhpcy5faGlzdG9yeUl0ZXJh
dG9yXV0pOwotICAgICAgICBkZWxldGUgdGhpcy5faW5IaXN0b3J5OwotICAgIH0sCi0KLSAgICBz
ZXRQYW5lbDogZnVuY3Rpb24ocGFuZWxOYW1lKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lu
SGlzdG9yeSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9oaXN0b3J5LnNw
bGljZSh0aGlzLl9oaXN0b3J5SXRlcmF0b3IgKyAxLCB0aGlzLl9oaXN0b3J5Lmxlbmd0aCAtIHRo
aXMuX2hpc3RvcnlJdGVyYXRvciAtIDEpOwotICAgICAgICBpZiAoIXRoaXMuX2hpc3RvcnkubGVu
Z3RoIHx8IHRoaXMuX2hpc3RvcnlbdGhpcy5faGlzdG9yeS5sZW5ndGggLSAxXSAhPT0gcGFuZWxO
YW1lKQotICAgICAgICAgICAgdGhpcy5faGlzdG9yeS5wdXNoKHBhbmVsTmFtZSk7Ci0gICAgICAg
IHRoaXMuX2hpc3RvcnlJdGVyYXRvciA9IHRoaXMuX2hpc3RvcnkubGVuZ3RoIC0gMTsKLSAgICB9
CisgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLnNldEN1cnJlbnRQYW5lbCh0b29sYmFy
SXRlbS5wYW5lbCk7CiB9CiAKIFdlYkluc3BlY3Rvci5pbnN0YWxsU291cmNlTWFwcGluZ0ZvclRl
c3QgPSBmdW5jdGlvbih1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC90cmVlb3V0bGluZS5qcwppbmRleCAxMDAzOThiODQwZTEwMmU1NTEyMmNlZTkyM2QwYzY1
NzdiMTEwMDk0Li40Y2JiNGUwYTY2Y2NmZTY0OWFjMjEwYmI1ZWM4N2I3MTY3Mzk4YjgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdHJlZW91dGxpbmUuanMK
QEAgLTgzMyw5ICs4MzMsMTUgQEAgVHJlZUVsZW1lbnQucHJvdG90eXBlLnNlbGVjdE9uTW91c2VE
b3duID0gZnVuY3Rpb24oZXZlbnQpCiAgKi8KIFRyZWVFbGVtZW50LnByb3RvdHlwZS5zZWxlY3Qg
PSBmdW5jdGlvbihvbWl0Rm9jdXMsIHNlbGVjdGVkQnlVc2VyKQogewotICAgIGlmICghdGhpcy50
cmVlT3V0bGluZSB8fCAhdGhpcy5zZWxlY3RhYmxlIHx8IHRoaXMuc2VsZWN0ZWQpCisgICAgaWYg
KCF0aGlzLnRyZWVPdXRsaW5lIHx8ICF0aGlzLnNlbGVjdGFibGUpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7CisgICAgICAgIGlmICghb21pdEZvY3VzKQorICAg
ICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5fY2hpbGRyZW5MaXN0Tm9kZS5mb2N1cygpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAogICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLnNlbGVj
dGVkVHJlZUVsZW1lbnQpCiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxl
bWVudC5kZXNlbGVjdCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzQ3ZDhkOWRiZTQ2MzgzNDI1ODk5Y2RiODU5ZDkw
NmRkYTMxNjJhMi4uYTNkY2IzM2FlODFiZGE5MGY2ZGY1Yzk3NDNkZGRlNDJlMDlkYWI4NSAxMDA3
NTUKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTExLTAxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Z29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbnRyb2R1Y2UgUGFuZWxDb250
YWluZXIgY2xhc3MsIHN0YXJ0IG1vdmluZyBwYW5lbCBtYW5hZ2VtZW50IGZyb20gaW5zcGVjdG9y
LmpzIHRvIHRoZSBuZXcgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTI3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qczoKKyAg
ICAgICAgKGluaXRpYWxpemVfRWxlbWVudFRlc3QuSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50
c1RyZWUpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRyZWUvcmVz
b3VyY2UtdHJlZS10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9SZXNvdXJjZVRyZWVUZXN0
Lkluc3BlY3RvclRlc3QuZHVtcFJlc291cmNlc1RyZWUpOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9kZWJ1Z2dlci1leHBhbmQtc2NvcGUuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvZGVidWdnZXItcHJvdG8tcHJvcGVydHkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2Vs
ZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4uaHRtbDoKKyAgICAgICAgKiBp
bnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS5odG1sOgorICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvc3R5bGVzLW5ldy1BUEkuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivdmll
dy1jc3MuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivdmlldy1ldmVudHMuaHRtbDoKKwogMjAx
MS0xMS0wMSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQgZ2FyZGVuaW5nIChmaXhlZCBwbGF0Zm9ybSBxdWFsaWZpZXJzIGZvciB2aXNp
YmlsaXR5LWltYWdlLWxheWVycy5odG1sKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzLXRlc3QuanMKaW5kZXggYTQ4ODNmYTRjYmQzYTMxMGJjZTExMjBk
MzllYzZkMjk5MzcxODI1NC4uMjQyYTE4MzlmNjQ5ZjlhZmVhNzk5OTU3N2Y1NDI0ZDRjZGVhMGQ2
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMt
dGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10
ZXN0LmpzCkBAIC0zNDQsNyArMzQ0LDcgQEAgSW5zcGVjdG9yVGVzdC5leHBhbmRFbGVtZW50c1Ry
ZWUgPSBmdW5jdGlvbihjYWxsYmFjaykKICAgICAgICAgZXhwYW5kKFdlYkluc3BlY3Rvci5wYW5l
bHMuZWxlbWVudHMudHJlZU91dGxpbmUpOwogICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KLSAg
ICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVu
dHMpOworICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5zZXRDdXJyZW50UGFuZWwoV2Vi
SW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cyk7CiAgICAgSW5zcGVjdG9yVGVzdC5maW5kTm9kZShm
dW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9LCBvbkFsbE5vZGVzQXZhaWxhYmxlKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLXRy
ZWUvcmVzb3VyY2UtdHJlZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMKaW5kZXggODBhMjE4MDE3OTYx
M2YxNjI0NDIwYTlhNDkxZjhiYzFlYmViMjg5OC4uNmVjNDcyMWUzMjMxNDViMDQyMzkxZTc5MTRk
ZmEzNjY3OTkwNWFjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtdHJlZS9yZXNvdXJjZS10cmVlLXRlc3QuanMK
QEAgLTYzLDcgKzYzLDcgQEAgSW5zcGVjdG9yVGVzdC5kdW1wUmVzb3VyY2VzVHJlZSA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIGR1bXAoY2hpbGRyZW5baV0sIHByZWZpeCArICIgICAgIik7CiAg
ICAgfQogCi0gICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0b3IucGFu
ZWxzLnJlc291cmNlcyk7CisgICAgV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLnNldEN1cnJl
bnRQYW5lbChXZWJJbnNwZWN0b3IucGFuZWxzLnJlc291cmNlcyk7CiAgICAgZHVtcChXZWJJbnNw
ZWN0b3IucGFuZWxzLnJlc291cmNlcy5yZXNvdXJjZXNMaXN0VHJlZUVsZW1lbnQsICIiKTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLWV4
cGFuZC1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LWV4cGFuZC1zY29wZS5odG1sCmluZGV4IGRkNWJiMzZmYzA0MDgzYzRjYWQyZmNkOWY4YzA5ZmQ5
Njc4ZmJmMGUuLjkwYmRjOGI3NGY0MDQ4MDI2NjgwMzhhZjFlMDNjZjlhMmRkNzZlMWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1leHBhbmQtc2Nv
cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXItZXhw
YW5kLXNjb3BlLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewog
ICAgICAgICAvLyBFeHBhbmQgYWxsIGJ1dCBnbG9iYWwgc2NvcGVzLiBFeHBhbmRpbmcgZ2xvYmFs
IHNjb3BlIHRha2VzIGZvciB0b28gbG9uZwogICAgICAgICAvLyBzbyB3ZSBrZWVwIGl0IGNvbGxh
cHNlZC4KLSAgICAgICAgdmFyIHNlY3Rpb25zID0gV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgp
LnNpZGViYXJQYW5lcy5zY29wZWNoYWluLl9zZWN0aW9uczsKKyAgICAgICAgdmFyIHNlY3Rpb25z
ID0gV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgpLnNpZGViYXJQYW5l
cy5zY29wZWNoYWluLl9zZWN0aW9uczsKICAgICAgICAgLy8gZ2xvYmFsIHNjb3BlIGlzIGFsd2F5
cyB0aGUgbGFzdCBvbmUuCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjdGlvbnMubGVu
Z3RoIC0gMTsgaSsrKQogICAgICAgICAgICAgc2VjdGlvbnNbaV0uZXhwYW5kKCk7CkBAIC00NSw3
ICs0NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIHN0ZXAzKCkKICAgICB7CiAg
ICAgCi0gICAgICAgIHZhciBzZWN0aW9ucyA9IFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwoKS5z
aWRlYmFyUGFuZXMuc2NvcGVjaGFpbi5fc2VjdGlvbnM7CisgICAgICAgIHZhciBzZWN0aW9ucyA9
IFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5jdXJyZW50UGFuZWwoKS5zaWRlYmFyUGFuZXMu
c2NvcGVjaGFpbi5fc2VjdGlvbnM7CiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIi
KTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXAgc2NvcGUgc2VjdGlvbnM6
Iik7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1wcm90
by1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LXByb3RvLXByb3BlcnR5Lmh0bWwKaW5kZXggNTJjNTgxNWEyYzAyODU4ZTBiMWM5NGNlYTYzZDli
NWQ4MGUxZDkzZC4uN2M4Y2RlMGY2ZmNlYTBjM2ZkN2RmMDlkNDdhNzhhZDMyMWVkNmVmYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXByb3RvLXBy
b3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LXByb3RvLXByb3BlcnR5Lmh0bWwKQEAgLTMwLDcgKzMwLDcgQEAgdmFyIHRlc3QgPSBmdW5jdGlv
bigpCiAKICAgICBmdW5jdGlvbiBzdGVwMihjYWxsRnJhbWVzKQogICAgIHsKLSAgICAgICAgdmFy
IHNlY3Rpb25zID0gV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpLnNpZGViYXJQYW5lcy5zY29w
ZWNoYWluLl9zZWN0aW9uczsKKyAgICAgICAgdmFyIHNlY3Rpb25zID0gV2ViSW5zcGVjdG9yLnBh
bmVsQ29udGFpbmVyLmN1cnJlbnRQYW5lbCgpLnNpZGViYXJQYW5lcy5zY29wZWNoYWluLl9zZWN0
aW9uczsKICAgICAgICAgdmFyIGxvY2FsU2NvcGUgPSBzZWN0aW9uc1swXS5wcm9wZXJ0aWVzVHJl
ZU91dGxpbmU7CiAgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gWwogICAgICAgICAgICAgbG9jYWxT
Y29wZSwgWyJvIiwgIl9fcHJvdG9fXyIsICJfX3Byb3RvX18iXSwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kb20tYnJlYWtwb2ludHMuaHRtbAppbmRleCA2OGNjODNm
YzBhMGIyZWY4MWQyNjcyNTFiYjQwZDE0NTY3NmY2YmZjLi5hNzNjNTMyNWYyMmQ0YWMwYjhmMDM3
MjlmZDMwZTFjNTdmNzVmMjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZG9tLWJyZWFrcG9pbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2RvbS1icmVha3BvaW50cy5odG1sCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIHJl
bW92ZUVsZW1lbnQoZWxlbWVudElkKQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBXZWJJbnNw
ZWN0b3Iuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMpOworICAg
IFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5zZXRDdXJyZW50UGFuZWwoV2ViSW5zcGVjdG9y
LnBhbmVscy5lbGVtZW50cyk7CiAKICAgICB2YXIgcGFuZSA9IFdlYkluc3BlY3Rvci5kb21CcmVh
a3BvaW50c1NpZGViYXJQYW5lOwogICAgIHZhciByb290RWxlbWVudDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50cy1pbWctdG9vbHRpcC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0bWwK
aW5kZXggMjI4MjU3ZTQzODY4MDg0YmZhYjY5NTY3ODU1NjI5YmNlZmIxMTZlYy4uZGU5ZmU0YjMw
MjAxZjJkZjMzMGNhZDE3ODI5MzliYjZhMzRlNTJhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLWltZy10b29sdGlwLmh0bWwKQEAgLTcs
NyArNyw3IEBACiAKIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogewotICAgIFdlYkluc3BlY3Rvci5z
ZXRDdXJyZW50UGFuZWwoV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cyk7CisgICAgV2ViSW5z
cGVjdG9yLnBhbmVsQ29udGFpbmVyLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0b3IucGFuZWxz
LmVsZW1lbnRzKTsKIAogICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgiaW1hZ2UiLCBzdGVw
MSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy9lbGVtZW50
cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxl
bWVudHMvZWxlbWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi5odG1sCmluZGV4IGVmMmJmZmRj
ZWM3NjkzMjU1ZjliNWRiNjYyNTQ0NWEzZWJlMmI0M2IuLmNmZjQ1ZjRmZjRiODU4ZGVlOWE2ZDZl
ZDU5YmRiNjlhNDlhMGU1OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2VsZW1lbnRzL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4uaHRt
bApAQCAtMTgsNyArMTgsNyBAQCBmdW5jdGlvbiBpbnNlcnROb2RlKCkKIGZ1bmN0aW9uIHRlc3Qo
KQogewogICAgIHZhciBkYXRhVHJlZUVsZW1lbnQ7Ci0gICAgV2ViSW5zcGVjdG9yLnNldEN1cnJl
bnRQYW5lbChXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzKTsKKyAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxDb250YWluZXIuc2V0Q3VycmVudFBhbmVsKFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVu
dHMpOwogICAgIEluc3BlY3RvclRlc3Qubm9kZVdpdGhJZCgiZGF0YSIsIHN0ZXAxKTsKIAogICAg
IGZ1bmN0aW9uIHN0ZXAxKG5vZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3RvcmFnZS1wYW5lbC1kb20tc3RvcmFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
b3JhZ2UtcGFuZWwtZG9tLXN0b3JhZ2UuaHRtbAppbmRleCAzZDRmZmM3MzRiNTZhMzdmNGUxMTk2
NTIyZTBlZWQyODBkMGQ4NWFmLi5lZTllYmY2ZmI5ZWExNmJlYTgwMjI0MzFlODRiMWUzYzk2YzVj
ZTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3RvcmFnZS1wYW5lbC1kb20t
c3RvcmFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdG9yYWdlLXBhbmVsLWRv
bS1zdG9yYWdlLmh0bWwKQEAgLTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
IGlmIChzdG9yYWdlcykgewogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdG9yYWdl
cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgIHZhciBzdG9yYWdlID0gc3RvcmFnZXNb
aV07Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5lbCgpLnNob3dET01T
dG9yYWdlKHN0b3JhZ2UpOworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbENvbnRh
aW5lci5jdXJyZW50UGFuZWwoKS5zaG93RE9NU3RvcmFnZShzdG9yYWdlKTsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRGlkIHNob3c6ICIgKyBuYW1lKHN0b3JhZ2Up
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzL3N0eWxlcy1uZXctQVBJLmh0bWwKaW5kZXggOTVjNjc4MTY5NzAyNDgzYTVm
ZWY1YzNmNTBjNmUzYWY2ODU5OTY3Yi4uZTYxZWQyYjBjNjQzYjhmNTA2YTE0ZGU4YzRjZWJmNWZi
ZjA3ZjhjYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9zdHlsZXMt
bmV3LUFQSS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLW5l
dy1BUEkuaHRtbApAQCAtOSw3ICs5LDcgQEAKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgV2Vi
SW5zcGVjdG9yLnNldEN1cnJlbnRQYW5lbChXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzKTsK
KyAgICBXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuc2V0Q3VycmVudFBhbmVsKFdlYkluc3Bl
Y3Rvci5wYW5lbHMuZWxlbWVudHMpOwogCiAgICAgdGVzdF9zdHlsZXMoKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctY3NzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivdmlldy1jc3MuaHRtbAppbmRleCAzNjBlOGMzMmIyMTdkZjllMDNhYjgzOWUxZDkxYmI4
YTMwYzY3YmI0Li44MjgyMWViMDM0ZmFlZTQzOTk3ZWRiN2M4MTYyOGYxNjdkZTA0NTc5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivdmlldy1jc3MuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivdmlldy1jc3MuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gdGVzdEV2ZW50cyhuZXh0KQogICAgICAgICB7CiAgICAg
ICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50IiwgInBhcmVudC5j
c3MiKTsKLSAgICAgICAgICAgIHBhcmVudFZpZXcuc2hvdyhXZWJJbnNwZWN0b3IubWFpblBhbmVs
c1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9y
LnBhbmVsQ29udGFpbmVyLmVsZW1lbnQpOwogCiAgICAgICAgICAgICB2YXIgY2hpbGRWaWV3MSA9
IG5ldyBUZXN0VmlldygiQ2hpbGQgMSIsICJjaGlsZC5jc3MiLCAiY2hpbGQxLmNzcyIpOwogICAg
ICAgICAgICAgdmFyIGNoaWxkVmlldzIgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIDIiLCAiY2hpbGQu
Y3NzIiwgImNoaWxkMi5jc3MiKTsKQEAgLTU3LDcgKzU3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAK
ICAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7CiAKLSAgICAgICAgICAgIHBhcmVudFZp
ZXcuc2hvdyhXZWJJbnNwZWN0b3IubWFpblBhbmVsc1ZpZXcuZWxlbWVudCk7CisgICAgICAgICAg
ICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLnBhbmVsQ29udGFpbmVyLmVsZW1lbnQpOwog
CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci92aWV3LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXct
ZXZlbnRzLmh0bWwKaW5kZXggZjQyNzBkOWZlZjAwYjQwYzM3MWFjYjU5YjBiMjZhZWFhNDVkNTEz
NC4uODZhNmNmNTllMzA1MzU4YjM4M2QwYmNjMTc4YzU4OTg1YjgxYTBhMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3ZpZXctZXZlbnRzLmh0bWwKQEAgLTU0LDcgKzU0LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTaG93VmlldyhuZXh0KQogICAgICAgICB7CiAgICAg
ICAgICAgICB2YXIgdmlldyA9IG5ldyBUZXN0VmlldygiVmlldyIpOwotICAgICAgICAgICAgdmll
dy5zaG93KFdlYkluc3BlY3Rvci5tYWluUGFuZWxzVmlldy5lbGVtZW50KTsKKyAgICAgICAgICAg
IHZpZXcuc2hvdyhXZWJJbnNwZWN0b3IucGFuZWxDb250YWluZXIuZWxlbWVudCk7CiAgICAgICAg
ICAgICB2aWV3LmRldGFjaCgpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9LApAQCAt
MTI1LDEzICsxMjUsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcGFyZW50
VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7CiAgICAgICAgICAgICBwYXJlbnRWaWV3Lm1h
cmtBc1Jvb3QoKTsKICAgICAgICAgICAgIHZhciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNo
aWxkIik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLm1haW5QYW5l
bHNWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYkluc3BlY3Rv
ci5wYW5lbENvbnRhaW5lci5lbGVtZW50KTsKIAogICAgICAgICAgICAgcGFyZW50Vmlldy5kb1Jl
c2l6ZSgpOwogICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50Vmlldy5lbGVtZW50KTsK
ICAgICAgICAgICAgIHBhcmVudFZpZXcuZG9SZXNpemUoKTsKICAgICAgICAgICAgIHBhcmVudFZp
ZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLm1h
aW5QYW5lbHNWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYklu
c3BlY3Rvci5wYW5lbENvbnRhaW5lci5lbGVtZW50KTsKICAgICAgICAgICAgIGNoaWxkVmlldy5k
ZXRhY2goKTsKICAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7CiAgICAgICAgICAgICBu
ZXh0KCk7CkBAIC0xNDIsMTMgKzE0MiwxMyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
IHZhciBwYXJlbnRWaWV3ID0gbmV3IFRlc3RWaWV3KCJQYXJlbnQiKTsKICAgICAgICAgICAgIHZh
ciBjaGlsZFZpZXcgPSBuZXcgVGVzdFZpZXcoIkNoaWxkIik7CiAgICAgICAgICAgICBjaGlsZFZp
ZXcuc2V0SGlkZU9uRGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5z
cGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50Vmlldy5z
aG93KFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5lbGVtZW50KTsKIAogICAgICAgICAgICAg
cGFyZW50Vmlldy5kb1Jlc2l6ZSgpOwogICAgICAgICAgICAgY2hpbGRWaWV3LnNob3cocGFyZW50
Vmlldy5lbGVtZW50KTsKICAgICAgICAgICAgIHBhcmVudFZpZXcuZG9SZXNpemUoKTsKICAgICAg
ICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3co
V2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50
Vmlldy5zaG93KFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5lbGVtZW50KTsKICAgICAgICAg
ICAgIGNoaWxkVmlldy5kZXRhY2goKTsKICAgICAgICAgICAgIHBhcmVudFZpZXcuZGV0YWNoKCk7
CiAgICAgICAgICAgICBuZXh0KCk7CkBAIC0xNTcsNyArMTU3LDcgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIGZ1bmN0aW9uIHRlc3RWaWV3Q291bnRlcihuZXh0KQogICAgICAgICB7CiAgICAg
ICAgICAgICB2YXIgcGFyZW50VmlldyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAg
ICAgICBwYXJlbnRWaWV3LnNob3coV2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQp
OworICAgICAgICAgICAgcGFyZW50Vmlldy5zaG93KFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5l
ci5lbGVtZW50KTsKIAogICAgICAgICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0Vmlldygi
Q2hpbGQiKTsKICAgICAgICAgICAgIGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7
CkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZ1bmN0aW9uIHRl
c3RSZW1vdmVDaGlsZChuZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgcGFyZW50Vmll
dyA9IG5ldyBUZXN0VmlldygiUGFyZW50Iik7Ci0gICAgICAgICAgICBwYXJlbnRWaWV3LnNob3co
V2ViSW5zcGVjdG9yLm1haW5QYW5lbHNWaWV3LmVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50
Vmlldy5zaG93KFdlYkluc3BlY3Rvci5wYW5lbENvbnRhaW5lci5lbGVtZW50KTsKIAogICAgICAg
ICAgICAgdmFyIGNoaWxkVmlldyA9IG5ldyBUZXN0VmlldygiQ2hpbGQiKTsKICAgICAgICAgICAg
IGNoaWxkVmlldy5zaG93KHBhcmVudFZpZXcuZWxlbWVudCk7Cg==
</data>
<flag name="review"
          id="111406"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>