<?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>83922</bug_id>
          
          <creation_ts>2012-04-13 11:32:32 -0700</creation_ts>
          <short_desc>Web Inspector: extract ContentProvider into its own file, make NetworkRequest, Resoruce and others implement it.</short_desc>
          <delta_ts>2012-04-16 04:47:13 -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>602272</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-13 11:32:32 -0700</bug_when>
    <thetext>We have two different types of requestContent methods: one on the source mapping level and one on the resource level. There are also adapters between the two. I&apos;m aligning it all to a single requestContent method declared in ContentProvider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602276</commentid>
    <comment_count>1</comment_count>
      <attachid>137114</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-13 11:34:50 -0700</bug_when>
    <thetext>Created attachment 137114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603046</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-04-16 04:47:13 -0700</bug_when>
    <thetext>Committed r114241: &lt;http://trac.webkit.org/changeset/114241&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137114</attachid>
            <date>2012-04-13 11:34:50 -0700</date>
            <delta_ts>2012-04-16 04:20:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-83922-20120413223447.patch</filename>
            <type>text/plain</type>
            <size>50536</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjM1NTUxNzBiNDM3YmM0
YWMxN2E4NjQ2YjkwN2IwMzNhOTQ0NzYxZC4uY2NhODA0ZjlkMTZjYTYwMDQ5MWNlNjQ1OTA2NTEx
YzZlZWEyMWVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgwIEBACiAyMDEyLTA0LTEzICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGV4dHJhY3QgQ29udGVudFByb3ZpZGVyIGludG8gaXRzIG93biBmaWxlLCBtYWtlIE5ldHdv
cmtSZXF1ZXN0LCBSZXNvcnVjZSBhbmQgb3RoZXJzIGltcGxlbWVudCBpdC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzOTIyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgaGF2ZSB0d28gZGlmZmVyZW50
IHR5cGVzIG9mIHJlcXVlc3RDb250ZW50IG1ldGhvZHM6IG9uZSBvbiB0aGUgc291cmNlIG1hcHBp
bmcgbGV2ZWwgYW5kIG9uZSBvbiB0aGUgcmVzb3VyY2UgbGV2ZWwuCisgICAgICAgIFRoZXJlIGFy
ZSBhbHNvIGFkYXB0ZXJzIGJldHdlZW4gdGhlIHR3by4gSSdtIGFsaWduaW5nIGl0IGFsbCB0byBh
IHNpbmdsZSByZXF1ZXN0Q29udGVudCBtZXRob2QgZGVjbGFyZWQgaW4gQ29udGVudFByb3ZpZGVy
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUu
cHJvdG90eXBlLmFkZEJyZWFrcG9pbnQuZGlkUmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5hZGRC
cmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRl
ci5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIucHJvdG90eXBlLmNvbnRlbnRVUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5wcm90b3R5cGUucmVxdWVz
dENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlci5wcm90b3R5
cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlk
ZXIuU2VhcmNoTWF0Y2gpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFBy
b3ZpZGVycy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJvdmlkZXIu
cHJvdG90eXBlLmNvbnRlbnRVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdENvbnRl
bnRQcm92aWRlci5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLmNvbnRlbnRV
UkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJv
dmlkZXIucHJvdG90eXBlLnJlcXVlc3RDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5D
b21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIucHJvdG90eXBlLmNvbnRlbnRVUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbXBpbGVyU291cmNlTWFwcGluZ0NvbnRlbnRQcm92
aWRlci5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0
YXRpY0NvbnRlbnRQcm92aWRlci5wcm90b3R5cGUuY29udGVudFVSTCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUuX2dldFJlc291
cmNlQ29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291
cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrSXRlbVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVxdWVzdENvbnRl
bnRWaWV3LnByb3RvdHlwZS5fZW5zdXJlSW5uZXJWaWV3U2hvd24uY2FsbGJhY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlcXVlc3RDb250ZW50Vmlldy5wcm90b3R5cGUuX2Vuc3VyZUlubmVy
Vmlld1Nob3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtSZXF1ZXN0
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0LnByb3RvdHlwZS5jb250
ZW50VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5wcm90b3R5cGUu
cmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0LnBy
b3RvdHlwZS5zZWFyY2hJbkNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtS
ZXF1ZXN0LnByb3RvdHlwZS5wb3B1bGF0ZUltYWdlU291cmNlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrUmVxdWVzdC5wcm90b3R5cGUuX2lubmVyUmVxdWVzdENvbnRlbnQub25SZXNv
dXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0LnByb3Rv
dHlwZS5faW5uZXJSZXF1ZXN0Q29udGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SYXdTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
cHJvdG90eXBlLl9jcmVhdGVDb250ZW50UHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJhd1NvdXJjZUNvZGUucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VNYXBwaW5nLmRpZFJlcXVlc3RD
b250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5f
Y3JlYXRlU291cmNlTWFwcGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuY29udGVu
dFVSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLnJlcXVlc3RD
b250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUuX2lubmVy
UmVxdWVzdENvbnRlbnQuY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
LnByb3RvdHlwZS5faW5uZXJSZXF1ZXN0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VSZXZpc2lvbi5wcm90b3R5cGUuY29udGVudFVSTCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VSZXZpc2lvbi5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQuY2FsbGJhY2tX
cmFwcGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uLnByb3RvdHlw
ZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lv
bi5wcm90b3R5cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1Jlc291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNvdXJj
ZUZyYW1lLnByb3RvdHlwZS5yZXF1ZXN0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VTb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NvbnRlbnRDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVJldmlzaW9uU291cmNlRnJhbWUucHJvdG90eXBlLnJlcXVl
c3RDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRl
ci5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLnJlcXVlc3RWaXNpYmxl
U2NyaXB0T3V0bGluZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFt
ZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc2V0Q29u
dGVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnJlcXVlc3RDb250ZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLl9kaWRSZXF1ZXN0Q29udGVudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisKKzIwMTItMDQtMTMgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogZG8gbm90
IGF0dGVtcHQgdG8gbG9hZCBjb250ZW50IGZyb20gcmVzb3VyY2UgdW50aWwgcmVxdWVzdCBmaW5p
c2hlZCBsb2FkaW5nLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODM4OTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDQ1YTBlNjFiZDI2NjUyNTU2YzVhZjBi
ZDBkNjlkNmQzZTNhZDk0MTIuLjRhMDU2YjBhYjg4MjI5NjdmMmI5NDBhNjhhMDE0OWU2MmRiNWIw
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYyODUsNiArNjI4NSw3IEBACiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ29uc29sZVBhbmVsLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnRlbnRQcm92aWRlci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db250ZW50UHJvdmlkZXJzLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnRleHRNZW51LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0Nvb2tp
ZUl0ZW1zVmlldy5qcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IGQ5OTMwMzJmNmZhZjhkYTY1YjMzZTJmYjA4MGRjNWY5YjNmZWQ5YWYuLmJl
YzU3ODgxYjhmMjBiNjRkODIxYzk0MjNjYzRkNzdmNzdiOTMzNzMgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MzY5Myw2ICs3MzY5MywxMCBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXGZyb250LWVuZFxDb250ZW50UHJvdmlkZXIuanMiCisJCQkJCT4KKwkJCQk8L0Zp
bGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5k
XENvbnRlbnRQcm92aWRlcnMuanMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKaW5kZXggNWNlMjFlOTFhNDZkMjBh
MzM2MmJkYzExNDBiOTcwNzg3YzliZGFmMC4uNjY1MWVjZTg3NzI5NzA5MzgxOTlhNGRiM2JiZGY5
YjJiYWE4NDI4MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUt
ZnJvbnQtZW5kLnB5CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weQpAQCAtNjIsNiArNjIsNyBAQCBtb2R1bGVzID0gWwogICAgICAgICAgICAgIkNvbG9y
LmpzIiwKICAgICAgICAgICAgICJDb21waWxlclNjcmlwdE1hcHBpbmcuanMiLAogICAgICAgICAg
ICAgIkNvbnNvbGVNb2RlbC5qcyIsCisgICAgICAgICAgICAiQ29udGVudFByb3ZpZGVyLmpzIiwK
ICAgICAgICAgICAgICJDb250ZW50UHJvdmlkZXJzLmpzIiwKICAgICAgICAgICAgICJDb29raWVQ
YXJzZXIuanMiLAogICAgICAgICAgICAgIkNTU0NvbXBsZXRpb25zLmpzIiwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFu
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5qcwppbmRleCAzZDY0MWQzMTZhNDcyYjY5MGY5NGQ0MmU3NGMwZWM3ZGQwYjA0MGZh
Li4zOWViMmQxYjJkNjRkYzE2YzUzMzA4OTJjMDk4MDk1ZDM4MzkwMTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1Np
ZGViYXJQYW5lLmpzCkBAIC03NCw3ICs3NCwxMyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJy
ZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc25pcHBldEVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgc25pcHBldEVs
ZW1lbnQuY2xhc3NOYW1lID0gInNvdXJjZS10ZXh0IG1vbm9zcGFjZSI7CiAgICAgICAgIGVsZW1l
bnQuYXBwZW5kQ2hpbGQoc25pcHBldEVsZW1lbnQpOwotICAgICAgICBmdW5jdGlvbiBkaWRSZXF1
ZXN0Q29udGVudChtaW1lVHlwZSwgY29udGVudCkKKworICAgICAgICAvKioKKyAgICAgICAgICog
QHBhcmFtIHs/c3RyaW5nfSBjb250ZW50CisgICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY29u
dGVudEVuY29kZWQKKyAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IG1pbWVUeXBlCisgICAgICAg
ICAqLworICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjb250ZW50LCBjb250ZW50
RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBsaW5lRW5kaW5n
cyA9IGNvbnRlbnQubGluZUVuZGluZ3MoKTsKICAgICAgICAgICAgIGlmIChicmVha3BvaW50Lmxp
bmVOdW1iZXIgPCBsaW5lRW5kaW5ncy5sZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwY2I2
Y2U1MGNkN2U2YTllMTBlOTU1YmU3YmJlNzBmNmM3YTVlZTIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92aWRlci5qcwpAQCAt
MCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXIgPSBmdW5jdGlvbigpIHsgfQorCitXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQorICAgICAq
LworICAgIGNvbnRlbnRVUkw6IGZ1bmN0aW9uKCkgeyB9LAorCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtmdW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8K
KyAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spIHsgfSwKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2Fz
ZVNlbnNpdGl2ZQorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNSZWdleAorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0
Y2g+KX0gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1
ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykgeyB9Cit9CisKKy8qKgorICog
QGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICogQHBhcmFtIHtz
dHJpbmd9IGxpbmVDb250ZW50CisgKi8KK1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2Vh
cmNoTWF0Y2ggPSBmdW5jdGlvbihsaW5lTnVtYmVyLCBsaW5lQ29udGVudCkgeworICAgIHRoaXMu
bGluZU51bWJlciA9IGxpbmVOdW1iZXI7CisgICAgdGhpcy5saW5lQ29udGVudCA9IGxpbmVDb250
ZW50OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b250ZW50UHJvdmlkZXJzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b250ZW50UHJvdmlkZXJzLmpzCmluZGV4IDQzOWYyYzU2NzEyNmM4NDZmN2UyOGRlODM3NjdlNWRm
OGViNGZhOTUuLjZmMDc0YThlMTM3NmZiYzFiMjg0OThjNTEwYjJmY2JlZTUwMWE2YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29udGVudFByb3ZpZGVy
cy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnRlbnRQcm92
aWRlcnMuanMKQEAgLTMxLDYgKzMxLDcgQEAKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAaW1w
bGVtZW50cyB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0KKyAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlNjcmlwdH0gc2NyaXB0CiAgKi8KIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50UHJv
dmlkZXIgPSBmdW5jdGlvbihzY3JpcHQpCiB7CkBAIC00MCwxMyArNDEsMjEgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdENvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKHNjcmlwdCkKIAogV2ViSW5zcGVj
dG9yLlNjcmlwdENvbnRlbnRQcm92aWRlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCi0gICAgICog
QHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsc3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKiBAcmV0dXJu
IHs/c3RyaW5nfQorICAgICAqLworICAgIGNvbnRlbnRVUkw6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHQuc291cmNlVVJMOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcsYm9vbGVhbixzdHJpbmcpfSBjYWxsYmFj
awogICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7
CiAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RTb3VyY2Uoc291cmNlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgc291cmNlKTsKKyAgICAgICAgICAg
IGNhbGxiYWNrKHNvdXJjZSwgZmFsc2UsIHRoaXMuX21pbWVUeXBlKTsKICAgICAgICAgfQogICAg
ICAgICB0aGlzLl9zY3JpcHQucmVxdWVzdFNvdXJjZShkaWRSZXF1ZXN0U291cmNlLmJpbmQodGhp
cykpOwogICAgIH0sCkBAIC02OCw2ICs3Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRDb250ZW50
UHJvdmlkZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5Db250ZW50UHJvCiAv
KioKICAqIEBjb25zdHJ1Y3RvcgogICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rvci5Db250ZW50
UHJvdmlkZXJ9CisgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuU2NyaXB0Pn0gc2NyaXB0
cwogICovCiBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlciA9
IGZ1bmN0aW9uKHNjcmlwdHMpCiB7CkBAIC0xMDksNyArMTE5LDE1IEBAIFdlYkluc3BlY3Rvci5D
b25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcsc3RyaW5nKX0gY2FsbGJh
Y2sKKyAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQorICAgICAqLworICAgIGNvbnRlbnRVUkw6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcsYm9vbGVhbixzdHJpbmcpfSBjYWxsYmFj
awogICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7
CkBAIC0xMTksNyArMTM3LDcgQEAgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250
ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAgICB7CiAgICAgICAgICAgICBzb3VyY2Vz
LnB1c2goc291cmNlKTsKICAgICAgICAgICAgIGlmIChzb3VyY2VzLmxlbmd0aCA9PSBzY3JpcHRz
Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgdGhpcy5f
Y29uY2F0ZW5hdGVTY3JpcHRzQ29udGVudChzY3JpcHRzLCBzb3VyY2VzKSk7CisgICAgICAgICAg
ICAgICAgY2FsbGJhY2sodGhpcy5fY29uY2F0ZW5hdGVTY3JpcHRzQ29udGVudChzY3JpcHRzLCBz
b3VyY2VzKSwgZmFsc2UsIHRoaXMuX21pbWVUeXBlKTsKICAgICAgICAgfQogICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICBzY3JpcHRz
W2ldLnJlcXVlc3RTb3VyY2UoZGlkUmVxdWVzdFNvdXJjZS5iaW5kKHRoaXMpKTsKQEAgLTIwNSw0
NCArMjIzLDYgQEAgV2ViSW5zcGVjdG9yLkNvbmNhdGVuYXRlZFNjcmlwdHNDb250ZW50UHJvdmlk
ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3QKIC8qKgogICogQGNvbnN0cnVjdG9y
CiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0KLSAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNvdXJjZQotICovCi1XZWJJbnNwZWN0b3IuUmVz
b3VyY2VDb250ZW50UHJvdmlkZXIgPSBmdW5jdGlvbihyZXNvdXJjZSkKLXsKLSAgICB0aGlzLl9t
aW1lVHlwZSA9IHJlc291cmNlLnR5cGUgPT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNj
cmlwdCA/ICJ0ZXh0L2phdmFzY3JpcHQiIDogInRleHQvaHRtbCI7Ci0gICAgdGhpcy5fcmVzb3Vy
Y2UgPSByZXNvdXJjZTsKLX07Ci0KLVdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRQcm92aWRl
ci5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcs
c3RyaW5nKX0gY2FsbGJhY2sKLSAgICAgKi8KLSAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24o
Y2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjb250
ZW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1lVHlwZSwgY29u
dGVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVxdWVzdENvbnRlbnQo
ZGlkUmVxdWVzdENvbnRlbnQuYmluZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBxdWVyeQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNp
dGl2ZQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNSZWdleAotICAgICAqIEBwYXJhbSB7ZnVu
Y3Rpb24oQXJyYXkuPFdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0g
Y2FsbGJhY2sKLSAgICAgKi8KLSAgICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBj
YXNlU2Vuc2l0aXZlLCBpc1JlZ2V4LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jl
c291cmNlLnNlYXJjaEluQ29udGVudChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2Fs
bGJhY2spOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLlJlc291cmNlQ29udGVudFByb3ZpZGVy
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLnByb3Rv
dHlwZTsKLQotLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0
b3IuQ29udGVudFByb3ZpZGVyfQogICovCiBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBw
aW5nQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oc291cmNlVVJMKQogewpAQCAtMjUyLDcgKzIz
MiwxNSBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVy
ID0gZnVuY3Rpb24oc291cmNlVVJMKQogCiBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBw
aW5nQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxsYmFjaworICAgICAqIEByZXR1cm4gez9zdHJp
bmd9CisgICAgICovCisgICAgY29udGVudFVSTDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3NvdXJjZVVSTDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKX0gY2FsbGJhY2sKICAgICAgKi8KICAg
ICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewpAQCAtMjYzLDcgKzI1
MSw3IEBAIFdlYkluc3BlY3Rvci5Db21waWxlclNvdXJjZU1hcHBpbmdDb250ZW50UHJvdmlkZXIu
cHJvdG90eXBlID0gewogICAgICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgICAgIGNvbnNvbGUu
ZXJyb3IoZS5tZXNzYWdlKTsKICAgICAgICAgfQotICAgICAgICBjYWxsYmFjayh0aGlzLl9taW1l
VHlwZSwgc291cmNlQ29kZSk7CisgICAgICAgIGNhbGxiYWNrKHNvdXJjZUNvZGUsIGZhbHNlLCB0
aGlzLl9taW1lVHlwZSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjkyLDExICsyODAsMTkgQEAg
V2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92aWRlciA9IGZ1bmN0aW9uKG1pbWVUeXBlLCBj
b250ZW50KQogCiBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyLnByb3RvdHlwZSA9
IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxs
YmFjaworICAgICAqIEByZXR1cm4gez9zdHJpbmd9CisgICAgICovCisgICAgY29udGVudFVSTDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0cmluZyl9IGNhbGxi
YWNrCiAgICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAg
IHsKLSAgICAgICAgY2FsbGJhY2sodGhpcy5fbWltZVR5cGUsIHRoaXMuX2NvbnRlbnQpOworICAg
ICAgICBjYWxsYmFjayh0aGlzLl9jb250ZW50LCBmYWxzZSwgdGhpcy5fbWltZVR5cGUpOwogICAg
IH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBhMTdlNzFl
ZGY3YTE5OTQxMzNmNjQ5OThmNTA4NjVhOGM0ZTZiODZjLi5hYmU0NzViMTY1NDYxODc0MWM3YWIy
NWM3NzY0YmIwNmM2OTcwOTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC04
MTAsOCArODEwLDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWxSZXNv
dXJjZUJpbmRpbmcucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmlu
Zyl9IHVzZXJDYWxsYmFjawogICAgICAqIEBwYXJhbSB7P3N0cmluZ30gb2xkQ29udGVudAogICAg
ICAqIEBwYXJhbSB7Ym9vbGVhbn0gb2xkQ29udGVudEVuY29kZWQKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gbWltZVR5cGUKICAgICAgKi8KLSAgICBfc2V0Q29udGVudFdpdGhJbml0aWFsQ29udGVu
dDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBjb250ZW50LCB1c2VyQ2FsbGJhY2ssIG9sZENvbnRl
bnQsIG9sZENvbnRlbnRFbmNvZGVkKQorICAgIF9zZXRDb250ZW50V2l0aEluaXRpYWxDb250ZW50
OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNvbnRlbnQsIHVzZXJDYWxsYmFjaywgb2xkQ29udGVu
dCwgb2xkQ29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgIHsKICAgICAgICAgLyoqCiAgICAg
ICAgICAqIEB0aGlzIHtXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbFJlc291
cmNlQmluZGluZ30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uU2VydmVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanMKaW5kZXggNGI0ZmVhZTFhMzQ5ZDU2YWQyZDNhNmI0NDI5ODQ2
MjhjZDQ1ZTk5My4uNjk5YTVlYmY5OWU0NTkyYzllYjNiYTk1Mjk2MDg5OGIwNGZjZTgwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2
ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMKQEAgLTQzOSwxMCArNDM5LDE1IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogCiAgICAgX2dldFJlc291cmNlQ29udGVudDogZnVuY3Rpb24ocmVz
b3VyY2UsIG1lc3NhZ2UsIHBvcnQpCiAgICAgewotICAgICAgICBmdW5jdGlvbiBvbkNvbnRlbnRB
dmFpbGFibGUoY29udGVudCwgZW5jb2RlZCkKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJh
bSB7P3N0cmluZ30gY29udGVudAorICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNvbnRlbnRF
bmNvZGVkCisgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtaW1lVHlwZQorICAgICAgICAgKi8K
KyAgICAgICAgZnVuY3Rpb24gb25Db250ZW50QXZhaWxhYmxlKGNvbnRlbnQsIGNvbnRlbnRFbmNv
ZGVkLCBtaW1lVHlwZSkKICAgICAgICAgewogICAgICAgICAgICAgdmFyIHJlc3BvbnNlID0gewot
ICAgICAgICAgICAgICAgIGVuY29kaW5nOiBlbmNvZGVkID8gImJhc2U2NCIgOiAiIiwKKyAgICAg
ICAgICAgICAgICBlbmNvZGluZzogY29udGVudEVuY29kZWQgPyAiYmFzZTY0IiA6ICIiLAogICAg
ICAgICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnQKICAgICAgICAgICAgIH07CiAgICAgICAgICAg
ICB0aGlzLl9kaXNwYXRjaENhbGxiYWNrKG1lc3NhZ2UucmVxdWVzdElkLCBwb3J0LCByZXNwb25z
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFT
Y3JpcHRTb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCmluZGV4IGI3NWI3NWM0OGExYTk4ODk2YWRkMTA1Zjgx
YjhjNjRlMTNjMDJhYWMuLjI5ZGM2NzI4ZTZiMmFjMmFjNDg2NTIzYjBiZDI3NjRiZWVlYmRjYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlw
dFNvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCkBAIC02OCwxMyArNjgsMjAgQEAgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3BvcG92
ZXJIZWxwZXIuaGlkZVBvcG92ZXIoKTsKICAgICB9LAogCi0gICAgLy8gU291cmNlRnJhbWUgb3Zl
cnJpZGVzCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nLCBib29sZWFu
LCBzdHJpbmcpfSBjYWxsYmFjaworICAgICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlv
bihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2sobWltZVR5cGUs
IGNvbnRlbnQpCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRl
bnQKKyAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBjb250ZW50RW5jb2RlZAorICAgICAgICAg
KiBAcGFyYW0ge3N0cmluZ30gbWltZVR5cGUKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9u
IG15Y2FsbGJhY2soY29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgICAgICB7
CiAgICAgICAgICAgICB0aGlzLl9vcmlnaW5hbENvbnRlbnQgPSBjb250ZW50OwotICAgICAgICAg
ICAgY2FsbGJhY2sobWltZVR5cGUsIGNvbnRlbnQpOworICAgICAgICAgICAgY2FsbGJhY2soY29u
dGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKTsKICAgICAgICAgfQogICAgICAgICB0aGlz
Ll91aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQobXljYWxsYmFjay5iaW5kKHRoaXMpKTsKICAg
ICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrSXRlbVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtJdGVtVmlldy5qcwppbmRleCA2OGU0OTBjZjM3NzA1YzNhYTZhOTBjM2QwNmM3NmM4YjE0Nzdk
YTkwLi5hMjhjZGVjOTRkM2JmMGExMWNhMTljYjUxZDNlYTlhNzUyMzczMmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtJdGVtVmlldy5q
cwpAQCAtMTI4LDcgKzEyOCwxMiBAQCBXZWJJbnNwZWN0b3IuUmVxdWVzdENvbnRlbnRWaWV3LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdGhpcy5faW5uZXJWaWV3
U2hvd1JlcXVlc3RlZCA9IHRydWU7CiAKLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAg
ICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBjb250ZW50CisgICAgICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gY29udGVudEVuY29kZWQKKyAgICAgICAgICogQHBhcmFtIHtzdHJp
bmd9IG1pbWVUeXBlCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhjb250
ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgIHsKICAgICAgICAgICAgIHRo
aXMuX2lubmVyVmlld1Nob3dSZXF1ZXN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgIHRoaXMuY29u
dGVudExvYWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrUmVxdWVzdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya1JlcXVlc3QuanMKaW5kZXggOTY0NDFkYjA1YWJmOWQwZjkyYmUxYjFjNmVkOWQw
YzA5NWU4MDdkYy4uMjY4YzA2ZjU4OGFhNDk4ZDAzNTJlZTVjODJiNjNjNWQ1YTlkYjFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUmVxdWVz
dC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtSZXF1
ZXN0LmpzCkBAIC0zMSw3ICszMSw3IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVu
ZHMge1dlYkluc3BlY3Rvci5PYmplY3R9Ci0gKgorICogQGltcGxlbWVudHMge1dlYkluc3BlY3Rv
ci5Db250ZW50UHJvdmlkZXJ9CiAgKiBAcGFyYW0ge05ldHdvcmtBZ2VudC5SZXF1ZXN0SWR9IHJl
cXVlc3RJZAogICogQHBhcmFtIHtzdHJpbmd9IHVybAogICogQHBhcmFtIHtzdHJpbmd9IGRvY3Vt
ZW50VVJMCkBAIC02NzMsNyArNjczLDE1IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
P3N0cmluZywgYm9vbGVhbil9IGNhbGxiYWNrCisgICAgICogQHJldHVybiB7P3N0cmluZ30KKyAg
ICAgKi8KKyAgICBjb250ZW50VVJMOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fdXJsOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9z
dHJpbmcsIGJvb2xlYW4sIHN0cmluZyl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgcmVxdWVzdENv
bnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKQEAgLTY4MSwxMSArNjg5LDExIEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFNpbmNl
IFdlYlNvY2tldHMgYXJlIHBvdGVudGlhbGx5IGxvbmctbGl2aW5nLCBmYWlsIHJlcXVlc3RzIGlt
bWVkaWF0ZWx5CiAgICAgICAgIC8vIHRvIHByZXZlbnQgY2FsbGVyIGJsb2NraW5nIHVudGlsIHJl
c291cmNlIGlzIG1hcmtlZCBhcyBmaW5pc2hlZC4KICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0g
V2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuV2ViU29ja2V0KSB7Ci0gICAgICAgICAgICBjYWxs
YmFjayhudWxsLCBmYWxzZSk7CisgICAgICAgICAgICBjYWxsYmFjayhudWxsLCBmYWxzZSwgdGhp
cy5fbWltZVR5cGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlm
ICh0eXBlb2YgdGhpcy5fY29udGVudCAhPT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAgIGNh
bGxiYWNrKHRoaXMuY29udGVudCwgdGhpcy5fY29udGVudEVuY29kZWQpOworICAgICAgICAgICAg
Y2FsbGJhY2sodGhpcy5jb250ZW50LCB0aGlzLl9jb250ZW50RW5jb2RlZCwgdGhpcy5fbWltZVR5
cGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3BlbmRp
bmdDb250ZW50Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwpAQCAtNjk0LDYgKzcwMiwxNyBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya1JlcXVlc3QucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59
IGNhc2VTZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKKyAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJj
aE1hdGNoPil9IGNhbGxiYWNrCisgICAgICovCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlv
bihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCisgICAgeworICAgICAg
ICBjYWxsYmFjayhbXSk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEByZXR1cm4ge2Jvb2xl
YW59CiAgICAgICovCiAgICAgaXNIdHRwRmFtaWx5OiBmdW5jdGlvbigpCkBAIC03MzAsNyArNzQ5
LDEyIEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrUmVxdWVzdC5wcm90b3R5cGUgPSB7CiAgICAgICov
CiAgICAgcG9wdWxhdGVJbWFnZVNvdXJjZTogZnVuY3Rpb24oaW1hZ2UpCiAgICAgewotICAgICAg
ICBmdW5jdGlvbiBvblJlc291cmNlQ29udGVudCgpCisgICAgICAgIC8qKgorICAgICAgICAgKiBA
cGFyYW0gez9zdHJpbmd9IGNvbnRlbnQKKyAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBjb250
ZW50RW5jb2RlZAorICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWltZVR5cGUKKyAgICAgICAg
ICovCisgICAgICAgIGZ1bmN0aW9uIG9uUmVzb3VyY2VDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRF
bmNvZGVkLCBtaW1lVHlwZSkKICAgICAgICAgewogICAgICAgICAgICAgaW1hZ2Uuc3JjID0gdGhp
cy5fY29udGVudFVSTCgpOwogICAgICAgICB9CkBAIC03NjgsNyArNzkyLDcgQEAgV2ViSW5zcGVj
dG9yLk5ldHdvcmtSZXF1ZXN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2NvbnRl
bnRFbmNvZGVkID0gY29udGVudEVuY29kZWQ7CiAgICAgICAgICAgICB2YXIgY2FsbGJhY2tzID0g
dGhpcy5fcGVuZGluZ0NvbnRlbnRDYWxsYmFja3Muc2xpY2UoKTsKICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgY2FsbGJhY2tzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGNh
bGxiYWNrc1tpXSh0aGlzLl9jb250ZW50LCB0aGlzLl9jb250ZW50RW5jb2RlZCk7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2tzW2ldKHRoaXMuX2NvbnRlbnQsIHRoaXMuX2NvbnRlbnRFbmNvZGVk
LCB0aGlzLl9taW1lVHlwZSk7CiAgICAgICAgICAgICB0aGlzLl9wZW5kaW5nQ29udGVudENhbGxi
YWNrcy5sZW5ndGggPSAwOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2NvbnRlbnRSZXF1ZXN0
ZWQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmF3U291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmF3U291cmNlQ29kZS5qcwppbmRleCBkNzZlNTM2Y2VhMTIwZmUxZDU3NmEyMDk3MjhjYWQ0
MzY3MDBjNDA5Li40MWE1MDQyOWU5OGRhMDg2MGM5ODg5NTlkYTI5M2U2MzVjODhlN2U2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNvZGUu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2Rl
LmpzCkBAIC0xNjUsNyArMTY1LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJvdG90
eXBlID0gewogICAgIF9jcmVhdGVDb250ZW50UHJvdmlkZXI6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLl9yZXNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLlJlc291cmNlQ29udGVudFByb3ZpZGVyKHRoaXMuX3Jlc291cmNlKTsKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZTsKICAgICAgICAgaWYgKHRoaXMuX3NjcmlwdHMubGVu
Z3RoID09PSAxICYmICF0aGlzLl9zY3JpcHRzWzBdLmxpbmVPZmZzZXQgJiYgIXRoaXMuX3Njcmlw
dHNbMF0uY29sdW1uT2Zmc2V0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3Iu
U2NyaXB0Q29udGVudFByb3ZpZGVyKHRoaXMuX3NjcmlwdHNbMF0pOwogICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyKHRoaXMu
X3NjcmlwdHMpOwpAQCAtMTg2LDEwICsxODYsMTEgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNv
ZGUucHJvdG90eXBlID0gewogCiAgICAgICAgIC8qKgogICAgICAgICAgKiBAdGhpcyB7V2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGV9CisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gY29udGVu
dAorICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNvbnRlbnRFbmNvZGVkCiAgICAgICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBtaW1lVHlwZQotICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29u
dGVudAogICAgICAgICAgKi8KLSAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQobWlt
ZVR5cGUsIGNvbnRlbnQpCisgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNvbnRl
bnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKICAgICAgICAgewogICAgICAgICAgICAgLyoq
CiAgICAgICAgICAgICAgKiBAdGhpcyB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGV9CkBAIC0y
MDMsNyArMjA0LDcgQEAgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcodGhpcywgdWlTb3VyY2VDb2RlLCBtYXBw
aW5nKTsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhzb3VyY2VNYXBwaW5nKTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlci5mb3JtYXRDb250ZW50KG1pbWVUeXBl
LCBjb250ZW50LCBkaWRGb3JtYXRDb250ZW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhp
cy5fZm9ybWF0dGVyLmZvcm1hdENvbnRlbnQobWltZVR5cGUsIGNvbnRlbnQgfHwgIiIsIGRpZEZv
cm1hdENvbnRlbnQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KICAgICAgICAgb3JpZ2luYWxDb250
ZW50UHJvdmlkZXIucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQuYmluZCh0aGlzKSk7
CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
LmpzCmluZGV4IDc5MjRjYjA3YTg5NTE4ZTc5YmI4YTQxMDdlMzFjZjNjYzJjNWFiMWIuLjE3YTQ5
OWU5YzJmZWRmYjRmNTMzZjI5MzNmZTBmYTUzOTM5ODdlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZS5qcwpAQCAtMjksNyArMjksNyBAQAogLyoq
CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQotICoK
KyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfQogICogQHBhcmFt
IHs/V2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0fSByZXF1ZXN0CiAgKiBAcGFyYW0ge3N0cmlu
Z30gdXJsCiAgKiBAcGFyYW0ge3N0cmluZ30gZG9jdW1lbnRVUkwKQEAgLTM2MCwxMiArMzYwLDIw
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZywgYm9vbGVhbil9IGNhbGxiYWNrCisg
ICAgICogQHJldHVybiB7P3N0cmluZ30KKyAgICAgKi8KKyAgICBjb250ZW50VVJMOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdXJsOworICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcsIGJvb2xlYW4sIHN0cmluZyl9IGNhbGxi
YWNrCiAgICAgICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9jb250ZW50ICE9PSAidW5kZWZpbmVkIikgewot
ICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fY29udGVudCwgISF0aGlzLl9jb250ZW50RW5jb2Rl
ZCk7CisgICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9jb250ZW50LCAhIXRoaXMuX2NvbnRlbnRF
bmNvZGVkLCB0aGlzLm1pbWVUeXBlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0zNzcsNyArMzg1LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlLnByb3RvdHlwZSA9IHsK
ICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNh
c2VTZW5zaXRpdmUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKLSAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKEFycmF5LjxQYWdlQWdlbnQuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKKyAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVy
LlNlYXJjaE1hdGNoPil9IGNhbGxiYWNrCiAgICAgICovCiAgICAgc2VhcmNoSW5Db250ZW50OiBm
dW5jdGlvbihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCiAgICAgewpA
QCAtNDQwLDcgKzQ0OCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICB0aGlzLl9vcmlnaW5hbENvbnRlbnQgPSBjb250ZW50OwogICAgICAgICAgICAg
dmFyIGNhbGxiYWNrcyA9IHRoaXMuX3BlbmRpbmdDb250ZW50Q2FsbGJhY2tzLnNsaWNlKCk7CiAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgICAgICBjYWxsYmFja3NbaV0odGhpcy5fY29udGVudCwgdGhpcy5fY29udGVudEVu
Y29kZWQpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrc1tpXSh0aGlzLl9jb250ZW50LCB0aGlz
Ll9jb250ZW50RW5jb2RlZCwgdGhpcy5taW1lVHlwZSk7CiAgICAgICAgICAgICB0aGlzLl9wZW5k
aW5nQ29udGVudENhbGxiYWNrcy5sZW5ndGggPSAwOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2NvbnRlbnRSZXF1ZXN0ZWQ7CiAgICAgICAgIH0KQEAgLTQ1Miw2ICs0NjAsNyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlOwogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVudHMge1dlYklu
c3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJj
ZX0gcmVzb3VyY2UKICAqIEBwYXJhbSB7c3RyaW5nfHVuZGVmaW5lZH0gY29udGVudAogICogQHBh
cmFtIHtudW1iZXJ9IHRpbWVzdGFtcApAQCAtNDk4LDE5ICs1MDcsMjcgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlUmV2aXNpb24ucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjaworICAgICAqIEByZXR1cm4gez9z
dHJpbmd9CisgICAgICovCisgICAgY29udGVudFVSTDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlLnVybDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nLCBib29sZWFuLCBzdHJpbmcpfSBjYWxsYmFjawogICAg
ICAqLwogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAg
ICAgIGlmICh0eXBlb2YgdGhpcy5fY29udGVudCA9PT0gInN0cmluZyIpIHsKLSAgICAgICAgICAg
IGNhbGxiYWNrKHRoaXMuX2NvbnRlbnQpOworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fY29u
dGVudCwgZmFsc2UsIHRoaXMucmVzb3VyY2UubWltZVR5cGUpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgd2UgYXJlIGhlcmUsIHRoaXMgaXMgaW5pdGlh
bCByZXZpc2lvbi4gRmlyc3QsIGxvb2sgdXAgY29udGVudCBmZXRjaGVkIG92ZXIgdGhlIHdpcmUu
CiAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNvdXJjZS5fb3JpZ2luYWxDb250ZW50ID09PSAi
c3RyaW5nIikgewogICAgICAgICAgICAgdGhpcy5fY29udGVudCA9IHRoaXMuX3Jlc291cmNlLl9v
cmlnaW5hbENvbnRlbnQ7Ci0gICAgICAgICAgICBjYWxsYmFjayh0aGlzLl9jb250ZW50KTsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2NvbnRlbnQsIGZhbHNlLCB0aGlzLnJlc291cmNlLm1p
bWVUeXBlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC01MjEsMTAgKzUz
OCwyMSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VSZXZpc2lvbi5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAqLwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFja1dyYXBwZXIoZXJyb3IsIGNvbnRlbnQs
IGNvbnRlbnRFbmNvZGVkKQogICAgICAgICB7Ci0gICAgICAgICAgICBjYWxsYmFjayhlcnJvciA/
IG51bGwgOiBjb250ZW50KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKGVycm9yID8gbnVsbCA6IGNv
bnRlbnQsIGNvbnRlbnRFbmNvZGVkLCB0aGlzLnJlc291cmNlLm1pbWVUeXBlKTsKICAgICAgICAg
fQogCi0gICAgICAgIFBhZ2VBZ2VudC5nZXRSZXNvdXJjZUNvbnRlbnQodGhpcy5fcmVzb3VyY2Uu
ZnJhbWVJZCwgdGhpcy5fcmVzb3VyY2UudXJsLCBjYWxsYmFja1dyYXBwZXIpOworICAgICAgICBQ
YWdlQWdlbnQuZ2V0UmVzb3VyY2VDb250ZW50KHRoaXMuX3Jlc291cmNlLmZyYW1lSWQsIHRoaXMu
X3Jlc291cmNlLnVybCwgY2FsbGJhY2tXcmFwcGVyLmJpbmQodGhpcykpOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IGNhc2VTZW5zaXRpdmUKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKKyAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNl
YXJjaE1hdGNoPil9IGNhbGxiYWNrCisgICAgICovCisgICAgc2VhcmNoSW5Db250ZW50OiBmdW5j
dGlvbihxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spCisgICAgeworICAg
ICAgICBjYWxsYmFjayhbXSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VWaWV3LmpzCmluZGV4IGIxMDhmM2MwMjQzYTYzNzRj
Nzg4NjM5MDNjMjJiMzYxMWE2MmJjNzEuLmZhYjE0NWEzNDk3NDI4MDI3NTczZTllYjE2NDhhODAy
NWRmNjdlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UmVzb3VyY2VWaWV3LmpzCkBAIC0xMDksMjAgKzEwOSwyNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJj
ZTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nLGJv
b2xlYW4sc3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KICAgICByZXF1ZXN0Q29udGVudDogZnVu
Y3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICBmdW5jdGlvbiBjb250ZW50TG9hZGVkKHRl
eHQpCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRlbnQKKyAg
ICAgICAgICogQHBhcmFtIHtib29sZWFufSBjb250ZW50RW5jb2RlZAorICAgICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gbWltZVR5cGUKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxi
YWNrV3JhcHBlcihjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHZhciBtaW1lVHlwZSA9IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNvdXJjZUZy
YW1lLl9taW1lVHlwZUZvclJlc291cmNlKHRoaXMuX3Jlc291cmNlKTsKLSAgICAgICAgICAgIGNh
bGxiYWNrKG1pbWVUeXBlLCB0ZXh0KTsKKyAgICAgICAgICAgIC8vIENhbm9uaWNhbGl6ZSBtaW1l
VHlwZS4KKyAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZS5fbWltZVR5cGVGb3JSZXNvdXJjZSh0aGlzLl9y
ZXNvdXJjZSkpOwogICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5yZXNvdXJjZS5yZXF1ZXN0Q29u
dGVudChjb250ZW50TG9hZGVkLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLnJlc291cmNlLnJl
cXVlc3RDb250ZW50KGNhbGxiYWNrV3JhcHBlci5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAg
X2NvbnRlbnRDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuc2V0
Q29udGVudChXZWJJbnNwZWN0b3IuUmVzb3VyY2VTb3VyY2VGcmFtZS5fbWltZVR5cGVGb3JSZXNv
dXJjZVt0aGlzLl9yZXNvdXJjZV0sIHRoaXMuX3Jlc291cmNlLmNvbnRlbnQpOworICAgICAgICB0
aGlzLnNldENvbnRlbnQodGhpcy5fcmVzb3VyY2UuY29udGVudCwgZmFsc2UsIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZVNvdXJjZUZyYW1lLl9taW1lVHlwZUZvclJlc291cmNlKHRoaXMuX3Jlc291cmNl
KSk7CiAgICAgfQogfQogCkBAIC0yMTAsMTUgKzIxNywxMiBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VSZXZpc2lvblNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMu
X3JldmlzaW9uLnJlc291cmNlOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKD9zdHJpbmcsYm9vbGVhbixzdHJpbmcpfSBjYWxsYmFjaworICAgICAqLwogICAgIHJl
cXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9u
IGNvbnRlbnRMb2FkZWQodGV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIG1pbWVUeXBl
ID0gV2ViSW5zcGVjdG9yLlJlc291cmNlU291cmNlRnJhbWUuX21pbWVUeXBlRm9yUmVzb3VyY2Uo
dGhpcy5yZXNvdXJjZSk7Ci0gICAgICAgICAgICBjYWxsYmFjayhtaW1lVHlwZSwgdGV4dCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICB0aGlzLl9yZXZpc2lvbi5yZXF1ZXN0Q29udGVudChjb250ZW50
TG9hZGVkLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9yZXZpc2lvbi5yZXF1ZXN0Q29udGVu
dChjYWxsYmFjayk7CiAgICAgfSwKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcwppbmRleCAyZjJjYWM1MTBmZjcxMGYw
YzZjMjQyYjA2YzRjMzNlNWYwMzA1NzdmLi5mZjJmZDkwOGI3ZjBkNzE3M2MxOTJkYTU2YTA0Mzdi
Mjg3OGQ5ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdEZvcm1hdHRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdEZvcm1hdHRlci5qcwpAQCAtNjYsNyArNjYsNyBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdzLCBw
b3NpdGlvbgogV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wcm90b3R5cGUgPSB7CiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG1pbWVUeXBlCi0gICAgICogQHBhcmFtIHtzdHJp
bmd9IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRlbnQKICAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKHN0cmluZywgV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJjZU1hcHBpbmcp
fSBjYWxsYmFjawogICAgICAqLwogICAgIGZvcm1hdENvbnRlbnQ6IGZ1bmN0aW9uKG1pbWVUeXBl
LCBjb250ZW50LCBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggY2FlYjFjYTBiYTBjYzI2MTZmY2JmMGRmYzYw
N2U3YThjZGVkNjQxMS4uMWFkODZkNWM0MzcxY2Q1N2JlNzY4ZTk3ZDY1NDQ2YWE5ZmQxZDRjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKQEAgLTQ5Miw3ICs0OTIsMTMgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAKICAgICByZXF1ZXN0VmlzaWJsZVNjcmlwdE91dGxpbmU6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNvbnRlbnRDYWxsYmFjayhtaW1lVHlwZSwgY29udGVu
dCkKKyAgICAgICAgCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGNv
bnRlbnQKKyAgICAgICAgICogQHBhcmFtIHtib29sZWFufSBjb250ZW50RW5jb2RlZAorICAgICAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gbWltZVR5cGUKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0
aW9uIGNvbnRlbnRDYWxsYmFjayhjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9vdXRsaW5lV29ya2VyKQogICAgICAgICAg
ICAgICAgIHRoaXMuX291dGxpbmVXb3JrZXIudGVybWluYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCBhNmE5OTZhYzE0
YmQzYjk2MDZjZWE5ZjMyNzY4Y2E3NWNmNDQzMzZmLi4xOGY3NzA3NTNiNTMzNjEyOGVhOGJkY2Ex
Y2FlNDFmZjcyMjcwOWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTExOCw2ICsxMTgsOSBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZywgYm9vbGVhbiwgc3RyaW5nKX0gY2FsbGJhY2sK
KyAgICAgKi8KICAgICByZXF1ZXN0Q29udGVudDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewog
ICAgIH0sCkBAIC0yMDcsMTIgKzIxMCwxNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgIHsKICAgICB9LAogCi0gICAgc2V0Q29udGVudDogZnVuY3Rpb24obWlt
ZVR5cGUsIGNvbnRlbnQpCisgICAgLyoqCisgICAgICogQHBhcmFtIHs/c3RyaW5nfSBjb250ZW50
CisgICAgICogQHBhcmFtIHtib29sZWFufSBjb250ZW50RW5jb2RlZAorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBtaW1lVHlwZQorICAgICAqLworICAgIHNldENvbnRlbnQ6IGZ1bmN0aW9uKGNvbnRl
bnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKICAgICB7CiAgICAgICAgIHRoaXMuX3RleHRW
aWV3ZXIubWltZVR5cGUgPSBtaW1lVHlwZTsKIAogICAgICAgICB0aGlzLl9sb2FkZWQgPSB0cnVl
OwotICAgICAgICB0aGlzLl90ZXh0TW9kZWwuc2V0VGV4dChjb250ZW50KTsKKyAgICAgICAgdGhp
cy5fdGV4dE1vZGVsLnNldFRleHQoY29udGVudCB8fCAiIik7CiAKICAgICAgICAgdGhpcy5fdGV4
dFZpZXdlci5iZWdpblVwZGF0ZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwppbmRleCA1MmQzY2Y1NTNlZjdjYzQ0ZGU3NTYy
YjI2MWQyNzdjOWIzYmNmNDk4Li4wOWU1N2JjNGNjMDIzNjAyYzgwY2RiMWYzOGZhOTBmZjUwOTJm
ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291
cmNlQ29kZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291
cmNlQ29kZS5qcwpAQCAtNDMsNyArNDMsNyBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlID0g
ZnVuY3Rpb24oaWQsIHVybCwgY29udGVudFByb3ZpZGVyKQogICAgIHRoaXMuaXNDb250ZW50U2Ny
aXB0ID0gZmFsc2U7CiAgICAgdGhpcy5pc0VkaXRhYmxlID0gZmFsc2U7CiAgICAgLyoqCi0gICAg
ICogQHR5cGUgQXJyYXkuPGZ1bmN0aW9uKHN0cmluZyxzdHJpbmcpPgorICAgICAqIEB0eXBlIEFy
cmF5LjxmdW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKT4KICAgICAgKi8KICAgICB0aGlz
Ll9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9IFtdOwogfQpAQCAtNzQsMTIgKzc0LDEyIEBAIFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioK
LSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyxzdHJpbmcpfSBjYWxsYmFjaworICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0cmluZyl9IGNhbGxiYWNrCiAgICAg
ICovCiAgICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX2NvbnRlbnRMb2FkZWQpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMu
X21pbWVUeXBlLCB0aGlzLl9jb250ZW50KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHRoaXMuX2Nv
bnRlbnQsIGZhbHNlLCB0aGlzLl9taW1lVHlwZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIApAQCAtMTk3LDE3ICsxOTcsMTggQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7P3N0cmluZ30g
Y29udGVudAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY29udGVudEVuY29kZWQKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gbWltZVR5cGUKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGVudAog
ICAgICAqLwotICAgIF9kaWRSZXF1ZXN0Q29udGVudDogZnVuY3Rpb24obWltZVR5cGUsIGNvbnRl
bnQpCisgICAgX2RpZFJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjb250ZW50LCBjb250ZW50RW5j
b2RlZCwgbWltZVR5cGUpCiAgICAgewogICAgICAgICB0aGlzLl9jb250ZW50TG9hZGVkID0gdHJ1
ZTsKICAgICAgICAgdGhpcy5fbWltZVR5cGUgPSBtaW1lVHlwZTsKICAgICAgICAgdGhpcy5fY29u
dGVudCA9IGNvbnRlbnQ7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZXF1
ZXN0Q29udGVudENhbGxiYWNrcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX3JlcXVl
c3RDb250ZW50Q2FsbGJhY2tzW2ldKG1pbWVUeXBlLCBjb250ZW50KTsKKyAgICAgICAgICAgIHRo
aXMuX3JlcXVlc3RDb250ZW50Q2FsbGJhY2tzW2ldKGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBt
aW1lVHlwZSk7CiAgICAgICAgIHRoaXMuX3JlcXVlc3RDb250ZW50Q2FsbGJhY2tzID0gW107CiAg
ICAgfSwKIApAQCAtMjIzLDMyICsyMjQsMyBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnBy
b3RvdHlwZSA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Ci0KLS8qKgotICogQGludGVy
ZmFjZQotICovCi1XZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyID0gZnVuY3Rpb24oKSB7IH0K
LVdlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXIucHJvdG90eXBlID0gewotICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oc3RyaW5nLHN0cmluZyl9IGNhbGxiYWNrCi0gICAgICovCi0g
ICAgcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7IH0sCi0KLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNhc2VT
ZW5zaXRpdmUKLSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzUmVnZXgKLSAgICAgKiBAcGFyYW0g
e2Z1bmN0aW9uKEFycmF5LjxXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJjaE1hdGNo
Pil9IGNhbGxiYWNrCi0gICAgICovCi0gICAgc2VhcmNoSW5Db250ZW50OiBmdW5jdGlvbihxdWVy
eSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spIHsgfQotfQotCi0vKioKLSAqIEBj
b25zdHJ1Y3RvcgotICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKLSAqIEBwYXJhbSB7c3Ry
aW5nfSBsaW5lQ29udGVudAotICovCi1XZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyLlNlYXJj
aE1hdGNoID0gZnVuY3Rpb24obGluZU51bWJlciwgbGluZUNvbnRlbnQpIHsKLSAgICB0aGlzLmxp
bmVOdW1iZXIgPSBsaW5lTnVtYmVyOwotICAgIHRoaXMubGluZUNvbnRlbnQgPSBsaW5lQ29udGVu
dDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2Vi
S2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpp
bmRleCBhNjFlY2I4OTc5OWEzODYyNjk2ZjhmN2MyMjk3ZWZkYTM1ZmU1NDBkLi4yNTE2NTAwNTcw
ZTY1MTE1OGNiZDFiYzRjM2I4MjRlNDY1ODA1MjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0yMSw2ICsyMSw3IEBACiAgICAgPGZpbGU+
Q29uc29sZU1vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPkNvbnNvbGVQYW5lbC5qczwvZmlsZT4K
ICAgICA8ZmlsZT5Db25zb2xlVmlldy5qczwvZmlsZT4KKyAgICA8ZmlsZT5Db250ZW50UHJvdmlk
ZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+Q29udGVudFByb3ZpZGVycy5qczwvZmlsZT4KICAgICA8
ZmlsZT5Db250ZXh0TWVudS5qczwvZmlsZT4KICAgICA8ZmlsZT5Db29raWVJdGVtc1ZpZXcuanM8
L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuaHRtbAppbmRleCAzMmUyODU2N2Y2MDNmMmQxMmIzYjk2YzVlZGFkNzFhYWYwZmM5MzliLi4w
ZjBmNGViNzVhMzQ1YmUxNzQxNjY2YThjZGUyY2U3MmEyNWFmNmMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKQEAgLTY0LDYgKzY0
LDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJJ
bnNwZWN0b3JWaWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJBZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRpbWVsaW5lR3JpZC5qcyI+PC9zY3Jp
cHQ+ICAgIAorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbnRlbnRQ
cm92aWRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iUmVzb3VyY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ik5ldHdvcmtSZXF1ZXN0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDU1NTdHlsZU1vZGVsLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA1ZDU3NDhmNTBhMWRkNzlmY2M5NmFlNzkxNDA3NTE0MzJmOGJmMWU1Li40ZTg3OGQ5ZmY3
NDU1M2JiMDc3ODM2ZmYyY2ZlYzkzYTg1Yjc4MzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMDQtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBDb250ZW50UHJvdmlkZXIgaW50byBpdHMgb3duIGZp
bGUsIG1ha2UgTmV0d29ya1JlcXVlc3QsIFJlc29ydWNlIGFuZCBvdGhlcnMgaW1wbGVtZW50IGl0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM5MjIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWw6CisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3VpLXNvdXJjZS1jb2RlLmh0bWw6CisKIDIwMTItMDQtMTMgIFN0ZXBo
ZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1d
IExheW91dFRlc3QgZmFpbHVyZXMvZmxha3kgZm9yIHN2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3Jp
cHQtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29tcGls
ZXItc2NyaXB0LW1hcHBpbmcuaHRtbAppbmRleCAzNGNjZDZjZTYxYjVkODYzNmE1MDBlNzllNTc3
ZjBlZTY3ZjdjOTdkLi41MjQ5MTE2NzI0NzAxMmVhNjFiZTQ5NWU4YjQ3MDk4NjdkZWIwNjMxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb21waWxlci1zY3Jp
cHQtbWFwcGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2Nv
bXBpbGVyLXNjcmlwdC1tYXBwaW5nLmh0bWwKQEAgLTE0NSwxMyArMTQ1LDEzIEBAIGZ1bmN0aW9u
IHRlc3QoKQogCiAgICAgICAgICAgICB1aVNvdXJjZUNvZGVMaXN0WzBdLnJlcXVlc3RDb250ZW50
KGRpZFJlcXVlc3RDb250ZW50MSk7CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RD
b250ZW50MShtaW1lVHlwZSwgY29udGVudCkKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVl
c3RDb250ZW50MShjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMCwgY29udGVu
dC5pbmRleE9mKCJ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciIpKTsKICAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGVMaXN0WzFdLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50Mik7CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50Miht
aW1lVHlwZSwgY29udGVudCkKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50
Mihjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMCwgY29udGVudC5pbmRleE9m
KCJmdW5jdGlvbiBDbGlja0hhbmRsZXIoKSIpKTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CkBA
IC0xODEsNyArMTgxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIHVpU291cmNl
Q29kZUxpc3RbMF0ucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwogCi0gICAgICAg
ICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChtaW1lVHlwZSwgY29udGVudCkKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVk
LCBtaW1lVHlwZSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscygiPHNvdXJjZSBjb250ZW50PiIsIGNvbnRlbnQpOwogICAgICAgICAgICAg
ICAgIG5leHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
b250ZW50LXByb3ZpZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY29udGVudC1wcm92aWRlcnMtZXhwZWN0ZWQudHh0CmluZGV4IDNjMjEwMGYwZjVlZTJi
ZmJmOGZkMDVmZGU2ZGRkYjczOGIyNTlkODkuLjkwNTYxZGZiNzI0ZDVjNjQxOTBjZDNkNzdlMjNj
NWJmZTNhNDM5YTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
b250ZW50LXByb3ZpZGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2NvbnRlbnQtcHJvdmlkZXJzLWV4cGVjdGVkLnR4dApAQCAtMTQsNiArMTQsMyBA
QCBmdW5jdGlvbiBiYXooKQogfQogPC9zY3JpcHQ+CiAKLVJ1bm5pbmc6IHRlc3RSZXNvdXJjZUNv
bnRlbnRQcm92aWRlcgotUmVxdWVzdCByZXNvdXJjZSBjb250ZW50LgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29udGVudC1wcm92aWRlcnMuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5odG1sCmluZGV4
IDE4Y2FlNWNjZGVmOGM4ZjFmNjk5MDQ5ODg1YTdjNDAwOTllOGY0NWQuLmVlZjNhMzc2NjdkNmI0
MGNkMjhhYWQ0ZDE4ZmNhNzZiZDVhZGViYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9jb250ZW50LXByb3ZpZGVycy5odG1sCkBAIC0yNyw3ICsyNyw3IEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIG1vY2tTY3JpcHRTb3VyY2UgPSAiZnVu
Y3Rpb24gZm9vKCkgeyByZXR1cm4gMDsgfSI7CiAgICAgICAgICAgICB2YXIgbW9ja1NjcmlwdCA9
IGNyZWF0ZU1vY2tTY3JpcHQoImZvby5qcyIsIG1vY2tTY3JpcHRTb3VyY2UpOwogICAgICAgICAg
ICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0Q29udGVudFBy
b3ZpZGVyKG1vY2tTY3JpcHQpOwotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRl
bnQobWltZVR5cGUsIGNvbnRlbnQpCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29u
dGVudChjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvamF2YXNjcmlw
dCIsIG1pbWVUeXBlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhtb2NrU2NyaXB0U291cmNlLCBjb250ZW50KTsKQEAgLTQ0LDMzICs0NCwxMyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgICAgIHNjcmlwdHMucHVzaChjcmVhdGVNb2NrU2NyaXB0KCIzIiwg
ImZ1bmN0aW9uIGJhcigpIHsgcmV0dXJuIDA7IH0iLCBbMSwgNzAsIDEsIDk4XSkpOwogICAgICAg
ICAgICAgc2NyaXB0cy5wdXNoKGNyZWF0ZU1vY2tTY3JpcHQoIjQiLCAidGhpcyBzaG91bGQgbm90
IGFwcGVhciBpbiBkaXNwbGF5ZWQgY29udGVudCIsIFswLCAyMCwgMCwgNjNdKSk7CiAgICAgICAg
ICAgICB2YXIgY29udGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRT
Y3JpcHRzQ29udGVudFByb3ZpZGVyKHNjcmlwdHMpOwotICAgICAgICAgICAgZnVuY3Rpb24gZGlk
UmVxdWVzdENvbnRlbnQobWltZVR5cGUsIGNvbnRlbnQpCisgICAgICAgICAgICBmdW5jdGlvbiBk
aWRSZXF1ZXN0Q29udGVudChjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRl
eHQvaHRtbCIsIG1pbWVUeXBlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChjb250ZW50KTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBjb250ZW50UHJvdmlkZXIucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRl
bnQpOwotICAgICAgICB9LAotCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RSZXNvdXJjZUNvbnRlbnRQ
cm92aWRlcihuZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbW9ja1Jlc291cmNlQ29u
dGVudCA9ICI8c2NyaXB0PnZhciB4ID0gMDs8LyIgKyAic2NyaXB0PiI7Ci0gICAgICAgICAgICB2
YXIgbW9ja1Jlc291cmNlID0gewotICAgICAgICAgICAgICAgIHJlcXVlc3RDb250ZW50OiBmdW5j
dGlvbihjYWxsYmFjaykKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXF1ZXN0IHJlc291cmNlIGNvbnRlbnQuIik7Ci0gICAg
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKG1vY2tSZXNvdXJjZUNvbnRlbnQpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB2YXIgY29udGVudFByb3ZpZGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZUNvbnRlbnRQcm92aWRlcihtb2NrUmVzb3VyY2Up
OwotICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQobWltZVR5cGUsIGNvbnRl
bnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoInRleHQvaHRtbCIsIG1pbWVUeXBlKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyhtb2NrUmVzb3VyY2VDb250ZW50LCBjb250ZW50KTsKLSAgICAgICAg
ICAgICAgICBuZXh0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250ZW50UHJvdmlk
ZXIucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwogICAgICAgICB9CiAgICAgXSk7
CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3Vy
Y2UtY29kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3VyY2Ut
Y29kZS5odG1sCmluZGV4IDZiNmYxMzIyNDAxYmU1OGE1OTkwODQzYjlhNjAzYjZhNTZkYzhjZDcu
LmUzMzE5YjNiMDliYTNkNDU2MDUzZTRjODE0NjRlMjg5ZWQ2YWE1MGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291cmNlLWNvZGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWwKQEAgLTI3
LDYgKzI3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVRyZWVNb2RlbC5fYWRkRnJhbWUobmV3IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZShX
ZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwsIG51bGwsIHtpZDogImZyYW1lLWlkIn0pKTsK
ICAgICAgICAgdmFyIHJlcXVlc3QgPSBuZXcgV2ViSW5zcGVjdG9yLk5ldHdvcmtSZXF1ZXN0KHJl
cXVlc3RJZCwgdXJsLCAiaHR0cDovL2Zha2UudXJsIiwgImZyYW1lLWlkIiwgImxvYWRlci1pZCIp
OwogICAgICAgICByZXF1ZXN0LnR5cGUgPSB0eXBlID09PSAiZG9jdW1lbnQiID8gV2ViSW5zcGVj
dG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQgOiBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5T
Y3JpcHQ7CisgICAgICAgIHJlcXVlc3QubWltZVR5cGUgPSB0eXBlID09PSAiZG9jdW1lbnQiID8g
InRleHQvaHRtbCIgOiAidGV4dC9qYXZhc2NyaXB0IjsKIAogICAgICAgICBXZWJJbnNwZWN0b3Iu
bmV0d29ya01hbmFnZXIuX2Rpc3BhdGNoZXIuX3N0YXJ0TmV0d29ya1JlcXVlc3QocmVxdWVzdCk7
CiAgICAgICAgIGlmIChmaW5pc2hlZCkKQEAgLTEwMyw3ICsxMDQsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEw
LCAwLCByYXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwg
MTAsIDApKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1
ZXN0Q29udGVudCk7CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KG1p
bWVUeXBlLCBjb250ZW50KQorICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQo
Y29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0L2phdmFzY3JpcHQiLCBt
aW1lVHlwZSk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIjxz
Y3JpcHQgc291cmNlPiIsIGNvbnRlbnQpOwpAQCAtMTM0LDkgKzEzNSw5IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1
ZXN0Q29udGVudCk7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJl
cXVlc3RDb250ZW50KG1pbWVUeXBlLCBjb250ZW50KQorICAgICAgICAgICAgZnVuY3Rpb24gZGlk
UmVxdWVzdENvbnRlbnQoY29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG1pbWVU
eXBlLCAidGV4dC9odG1sIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHMoInRleHQvaHRtbCIsIG1pbWVUeXBlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscygiPHJlc291cmNlIGNvbnRlbnQ+IiwgY29udGVudCk7CiAKICAgICAg
ICAgICAgICAgICByYXdTb3VyY2VDb2RlLmFkZFNjcmlwdChzY3JpcHQyKTsKQEAgLTE1OSw5ICsx
NjAsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKGZhbHNlLCB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0KTsKICAgICAgICAgICAg
IHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudCk7CiAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KG1pbWVUeXBlLCBjb250ZW50KQorICAg
ICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQoY29udGVudCwgY29udGVudEVuY29k
ZWQsIG1pbWVUeXBlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKG1pbWVUeXBlLCAidGV4dC9odG1sIik7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvaHRtbCIsIG1pbWVUeXBlKTsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiPHJlc291cmNlIGNvbnRlbnQ+
IiwgY29udGVudCk7CiAKICAgICAgICAgICAgICAgICByYXdTb3VyY2VDb2RlLmFkZFNjcmlwdChz
Y3JpcHQyKTsKQEAgLTE5NCw5ICsxOTUsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
ICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRPbmVTY3Jp
cHQpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29u
dGVudE9uZVNjcmlwdChtaW1lVHlwZSwgY29udGVudCkKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFJlcXVlc3RDb250ZW50T25lU2NyaXB0KGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlw
ZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyhtaW1lVHlwZSwgInRleHQvaHRtbCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0L2h0bWwiLCBtaW1lVHlwZSk7CiAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIiAgPHNjcmlwdD48c2NyaXB0IHNvdXJjZSAxPjwv
IiArICJzY3JpcHQ+IiwgY29udGVudCk7CiAKICAgICAgICAgICAgICAgICByYXdTb3VyY2VDb2Rl
LmZvcmNlVXBkYXRlU291cmNlTWFwcGluZygpOwpAQCAtMjEyLDkgKzIxMyw5IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRS
ZXF1ZXN0Q29udGVudFR3b1NjcmlwdHMpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBm
dW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudFR3b1NjcmlwdHMobWltZVR5cGUsIGNvbnRlbnQpCisg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudFR3b1NjcmlwdHMoY29udGVudCwg
Y29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG1pbWVUeXBlLCAidGV4dC9odG1sIik7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvaHRtbCIsIG1pbWVU
eXBlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiICA8c2Ny
aXB0PjxzY3JpcHQgc291cmNlIDE+PC8iICsgInNjcmlwdD4gPHNjcmlwdD48c2NyaXB0IHNvdXJj
ZSAyPjwvIiArICJzY3JpcHQ+IiwgY29udGVudCk7CiAKICAgICAgICAgICAgICAgICByYXdTb3Vy
Y2VDb2RlLmZvcmNlVXBkYXRlU291cmNlTWFwcGluZygpOwpAQCAtMjI5LDkgKzIzMCw5IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVu
dChkaWRSZXF1ZXN0Q29udGVudFJlcXVlc3QpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudFJlcXVlc3QobWltZVR5cGUsIGNvbnRlbnQpCisg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudFJlcXVlc3QoY29udGVudCwgY29u
dGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKG1pbWVUeXBlLCAidGV4dC9odG1sIik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvaHRtbCIsIG1pbWVUeXBl
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiPHJlc291cmNl
IGNvbnRlbnQ+IiwgY29udGVudCk7CiAKICAgICAgICAgICAgICAgICByYXdTb3VyY2VDb2RlLmFk
ZFNjcmlwdChzY3JpcHQzKTsKQEAgLTI1NCw3ICsyNTUsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDIsIDAsIHJh
d1NvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCAyLCAwKSk7
CiAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRl
bnQpOwogCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChtaW1lVHlwZSwg
Y29udGVudCkKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFJlcXVlc3RDb250ZW50KGNvbnRlbnQs
IGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygidGV4dC9qYXZhc2NyaXB0IiwgbWltZVR5cGUp
OwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCI8cmVzb3VyY2Ug
Y29udGVudD4iLCBjb250ZW50KTsKQEAgLTI3Myw5ICsyNzQsOSBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdEZv
cm1hdHRlZENvbnRlbnQpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBk
aWRSZXF1ZXN0Rm9ybWF0dGVkQ29udGVudChtaW1lVHlwZSwgY29udGVudCkKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGRpZFJlcXVlc3RGb3JtYXR0ZWRDb250ZW50KGNvbnRlbnQsIGNvbnRlbnRFbmNv
ZGVkLCBtaW1lVHlwZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydEVxdWFscyhtaW1lVHlwZSwgInRleHQvamF2YXNjcmlwdCIpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0L2phdmFzY3JpcHQiLCBtaW1l
VHlwZSk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoIjxmb3Jt
YXR0ZWQ+IDxyZXNvdXJjZSBjb250ZW50PiIsIGNvbnRlbnQpOwogCiAgICAgICAgICAgICAgICAg
d2FpdEZvclVJU291cmNlQ29kZUNoYW5nZWRFdmVudChyYXdTb3VyY2VDb2RlLCByZXF1ZXN0Tm90
Rm9ybWF0dGVkQ29udGVudCk7CkBAIC0yOTEsNyArMjkyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3ROb3RG
b3JtYXR0ZWRDb250ZW50KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkUmVxdWVzdE5vdEZvcm1hdHRlZENvbnRlbnQobWltZVR5cGUsIGNvbnRlbnQpCisgICAgICAg
ICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Tm90Rm9ybWF0dGVkQ29udGVudChjb250ZW50LCBjb250
ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvamF2YXNjcmlwdCIsIG1pbWVUeXBlKTsKICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiPHJlc291cmNlIGNvbnRl
bnQ+IiwgY29udGVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvdWktc291cmNlLWNvZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91
aS1zb3VyY2UtY29kZS5odG1sCmluZGV4IDZlOWE3YTM3ODE3MzliN2Q4ZGU1YmZmNDE4OTVkYTlk
YjAzNzE5MjcuLjJiNDVkMDFmYzY1NTZjZjdkNjUwNTU4NDQ1YzEwOGY3MTU2OTE0ZjcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci91aS1zb3VyY2UtY29kZS5odG1s
CkBAIC0xMCw3ICsxMCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXF1ZXN0Q29udGVu
dDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgICAgIHsKICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJDb250ZW50IGlzIHJlcXVlc3RlZCBmcm9tIFNvdXJjZUNvZGVQcm92aWRl
ci4iKTsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoY2FsbGJhY2suYmluZChudWxsLCAidGV4dC9q
YXZhc2NyaXB0IiwgInZhciB4ID0gMDsiKSwgMCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGNh
bGxiYWNrLmJpbmQobnVsbCwgInZhciB4ID0gMDsiLCBmYWxzZSwgInRleHQvamF2YXNjcmlwdCIp
LCAwKTsKICAgICAgICAgfQogICAgIH07CiAKQEAgLTE4LDcgKzE4LDcgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RVSVNvdXJjZUNvZGUobmV4dCkKICAgICAgICAgewog
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlKCJpZCIsICJ1cmwiLCBjb250ZW50UHJvdmlkZXIpOwotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkUmVxdWVzdENvbnRlbnQoY2FsbE51bWJlciwgbWltZVR5cGUsIGNvbnRlbnQpCisgICAgICAg
ICAgICBmdW5jdGlvbiBkaWRSZXF1ZXN0Q29udGVudChjYWxsTnVtYmVyLCBjb250ZW50LCBjb250
ZW50RW5jb2RlZCwgbWltZVR5cGUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNhbGxiYWNrICIgKyBjYWxsTnVtYmVyICsgIiBpcyBpbnZv
a2VkLiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCJ0ZXh0
L2phdmFzY3JpcHQiLCBtaW1lVHlwZSk7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAgICAgICAgICAgICAgICAgaWYgKGNhbGxOdW1iZXIgPT09IDMpIHsKICAgICAgICAgICAg
ICAgICAgICAgLy8gQ2hlY2sgdGhhdCBzb3VyY2VDb2RlUHJvdmlkZXIucmVxdWVzdENvbnRlbnQg
d29uJ3QgYmUgY2FsbGVkIGFueW1vcmUuCi0gICAgICAgICAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5yZXF1ZXN0Q29udGVudChmdW5jdGlvbihtaW1lVHlwZSwgY29udGVudCkKKyAgICAgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGZ1bmN0aW9uKGNvbnRlbnQsIGNv
bnRlbnRFbmNvZGVkLCBtaW1lVHlwZSkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoInRleHQvamF2YXNjcmlw
dCIsIG1pbWVUeXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0RXF1YWxzKCJ2YXIgeCA9IDA7IiwgY29udGVudCk7Cg==
</data>
<flag name="review"
          id="142102"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>