<?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>71220</bug_id>
          
          <creation_ts>2011-10-31 06:55:55 -0700</creation_ts>
          <short_desc>Web Inspector: move localization support into UIUtil.js, reduce externs.</short_desc>
          <delta_ts>2011-10-31 16:01:04 -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>rniwa</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493292</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-31 06:55:55 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493306</commentid>
    <comment_count>1</comment_count>
      <attachid>113048</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-31 07:25:10 -0700</bug_when>
    <thetext>Created attachment 113048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493309</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-31 07:32:58 -0700</bug_when>
    <thetext>Committed r98855: &lt;http://trac.webkit.org/changeset/98855&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493574</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-31 16:01:04 -0700</bug_when>
    <thetext>It appears that this patch caused a bunch of tests to fail on SL bots:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/34319

Current failures:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r98863%20(34324)/results.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113048</attachid>
            <date>2011-10-31 07:25:10 -0700</date>
            <delta_ts>2011-10-31 07:30:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71220-20111031182508.patch</filename>
            <type>text/plain</type>
            <size>36267</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg4NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ODdmNzFlZWU3OTg3OTVj
MjQ0NDMwYmVmNGEzZDZiOTllYzYxMWM3Li4wNTViMjViNThjZWVhMzdhZjlmMjk4Mzk0ZWE0YmJi
NTBkMGQzNWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjIgQEAKIDIwMTEtMTAtMzEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1vdmUgbG9jYWxpemF0aW9uIHN1cHBvcnQgaW50byBVSVV0aWwuanMsIHJlZHVjZSBleHRlcm5z
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9jb21waWxlLWZyb250LWVuZC5zaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0FkdmFuY2VkU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFy
Y2hWaWV3LnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5
cGUuYWZ0ZXJTaG93KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qczoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0dvVG9MaW5lRGlhbG9nLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkdvVG9MaW5lRGlhbG9nLnByb3RvdHlwZS5faGlkZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9IZWxwU2NyZWVuLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkhlbHBTY3JlZW4ucHJvdG90eXBlLnNob3cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4ucHJvdG90eXBlLmhpZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlbHBTY3Jl
ZW4ucHJvdG90eXBlLl9vbkJsdXIpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0tleWJvYXJkU2hvcnRjdXQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9y
dGN1dC5fa2V5TmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlwZS5fb25TZWFyY2hGaWVsZE1hbnVh
bEZvY3VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlw
ZS5fb25LZXlEb3duKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpz
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvVG9vbGJhci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Ub29sYmFyLnByb3RvdHlwZS5f
dG9vbGJhckRyYWdTdGFydCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVV0aWxz
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnN0YXJ0RWRpdGluZy5jbGVhblVwQWZ0ZXJFZGl0
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcudmFyKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5wbGF0Zm9ybSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaXNN
YWMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLnBsYXRmb3JtRmxhdm9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5wb3J0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5pbnN0YWxsUG9ydFN0eWxl
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX3dpbmRvd0ZvY3VzZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLl93aW5kb3dCbHVycmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5wcmV2aW91
c0ZvY3VzRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2ZvY3VzQ2hhbmdlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3Iuc2V0Q3VycmVudEZvY3VzRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9leHRlcm5zLmpzOgorICAgICAgICAoRXZlbnQucHJvdG90eXBlLmluaXRXZWJLaXRX
aGVlbEV2ZW50KToKKyAgICAgICAgKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKToKKyAgICAgICAg
KEluc3BlY3RvckJhY2tlbmQucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
ZG9jdW1lbnRLZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5hZGRNYWluRXZlbnRMaXN0
ZW5lcnMpOgorCisyMDExLTEwLTMxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNv
bT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBkbyBub3QgbWFwIHNjcmlwdHMgZ2VuZXJhdGVk
IHdpdGggZG9jdW1lbnQud3JpdGUgdG8gdGhlIGRvY3VtZW50IHJlc291cmNlcy4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTE0CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggYWY1NjhmODVmYjY3NTM3YjJiZDA2MGRhYTBhODc3ZjA3M2Mx
ZTkxNC4uOWQ5Y2FmOTE0ZGM1MmJlMGVkZjRhOTU1NmRiYzFmMGExNTk2ODFiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMC0zMSAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92
ZSBsb2NhbGl6YXRpb24gc3VwcG9ydCBpbnRvIFVJVXRpbC5qcywgcmVkdWNlIGV4dGVybnMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL2pzL0Rl
dlRvb2xzLmpzOgorCiAyMDExLTEwLTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBUaGUgQ2hyb21pdW0gcG9ydCBjYWxscyBPd25QdHI6Omdl
dCBhbmQgUmVmUHRyOjpnZXQgd2F5IG1vcmUgb2Z0ZW4gdGhhbiBuZWVkZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAppbmRleCBkYTc0ZTAwY2FiYjY2
MmI4ZmM5MmY4NDlkYzZiMDk1N2Q2MmIxNDE5Li4wOWFmMmRhYmNlMGU2ZjRjMDE5YjI2NjA3Y2I3
NGY0NDA3OTg5YWIzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQuc2gKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJv
bnQtZW5kLnNoCkBAIC0zNywxNSArMzcsMTQgQEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxl
ci5qYXIgLS1zdW1tYXJ5X2RldGFpbF9sZXZlbCAzIC0tY29tcGlsYXRpb25fbGV2ZWwgU0kKICAg
ICAtLW1vZHVsZSBqc21vZHVsZV91dGlsOjIgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3RyZWVvdXRsaW5lLmpzIFwKLSAgICAtLW1vZHVs
ZSBqc21vZHVsZV9ob3N0OjEgXAotICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcyBcCi0gICAgLS1tb2R1bGUg
anNtb2R1bGVfY29tbW9uOjY6anNtb2R1bGVfdXRpbCxqc21vZHVsZV9ob3N0IFwKKyAgICAtLW1v
ZHVsZSBqc21vZHVsZV9jb21tb246Nzpqc21vZHVsZV91dGlsIFwKICAgICAgICAgLS1qcyBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JpbmFyeVNlYXJjaC5qcyBcCiAgICAgICAg
IC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanMgXAogICAg
ICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFydGlhbFF1aWNr
U29ydC5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Vc2VyTWV0cmljcy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9IYW5kbGVyUmVnaXN0cnkuanMgXAorICAgICAgICAtLWpzIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5q
cyBcCiAgICAgLS1tb2R1bGUganNtb2R1bGVfc2RrOjI1OmpzbW9kdWxlX2NvbW1vbiBcCiAgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNvdXJj
ZU1hcHBpbmcuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29tcGlsZXJTb3VyY2VNYXBwaW5nUHJvdmlkZXIuanMgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BZHZhbmNlZFNlYXJjaENvbnRyb2xsZXIu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29u
dHJvbGxlci5qcwppbmRleCA0ZTkyYTNhNDJkZDg3OTM1OTAyNmI2NGUwNmE2ODZjNzg4NjljNGYw
Li41MWZhZmVjZjUzMTYxNjUxZDgxM2U1ZGQwZDk0ZjE5YzUyOThkM2U3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2VhcmNoQ29udHJvbGxl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FkdmFuY2VkU2Vh
cmNoQ29udHJvbGxlci5qcwpAQCAtMzM3LDcgKzMzNyw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hW
aWV3LnByb3RvdHlwZSA9IHsKIAogICAgIGZvY3VzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9IHRoaXMuX3NlYXJjaDsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQodGhpcy5fc2VhcmNoKTsKICAg
ICAgICAgdGhpcy5fc2VhcmNoLnNlbGVjdCgpOwogICAgIH0sCiAKQEAgLTY3MSwzICs2NzEsOCBA
QCBXZWJJbnNwZWN0b3IuRmlsZUJhc2VkU2VhcmNoUmVzdWx0c1BhbmUuU2VhcmNoUmVzdWx0ID0g
ZnVuY3Rpb24oZmlsZSwgc2VhcmNoTWF0YwogICAgIHRoaXMuZmlsZSA9IGZpbGU7CiAgICAgdGhp
cy5zZWFyY2hNYXRjaGVzID0gc2VhcmNoTWF0Y2hlczsKIH0KKworLyoqCisgKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLkFkdmFuY2VkU2VhcmNoQ29udHJvbGxlcn0KKyAqLworV2ViSW5zcGVjdG9yLmFk
dmFuY2VkU2VhcmNoQ29udHJvbGxlciA9IG51bGw7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcu
anMKaW5kZXggYmM2YWIwMzcyYzU2NjllZTIzODY2YzgyZWU0NTNiMTBmMTk5NDY0MC4uY2NlODU5
OTk5NzFiY2RlNGI1ZjFjNTA5NDA4OTBjNzI0MWI2ZjI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC0yMzIsNyArMjMyLDcg
QEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIGFmdGVyU2hv
dzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0Vs
ZW1lbnQgPSB0aGlzLnByb21wdEVsZW1lbnQ7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJy
ZW50Rm9jdXNFbGVtZW50KHRoaXMucHJvbXB0RWxlbWVudCk7CiAgICAgfSwKIAogICAgIHN0b3Jl
U2Nyb2xsUG9zaXRpb25zOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RyYXdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRHJhd2VyLmpzCmluZGV4IDFiNGI3NmI2NTExNTA3MTAwODFkNzE4ZDBjMTRkMWM2
ODM3MjZiYjIuLmUwZmY1NjRiZGQyYjNlM2UzOWIxYjEwNjU0NTdhNzEzNDdjZGU5NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRHJhd2VyLmpzCkBAIC0xNDQsOCAr
MTQ0LDggQEAgV2ViSW5zcGVjdG9yLkRyYXdlci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhp
cy5fc2F2ZWRIZWlnaHQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0SGVpZ2h0OwogCi0gICAgICAgIGlm
ICh0aGlzLmVsZW1lbnQgPT09IFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50IHx8IHRo
aXMuZWxlbWVudC5pc0FuY2VzdG9yKFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KSkK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50ID0gV2ViSW5zcGVj
dG9yLnByZXZpb3VzRm9jdXNFbGVtZW50OworICAgICAgICBpZiAodGhpcy5lbGVtZW50ID09PSBX
ZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgpIHx8IHRoaXMuZWxlbWVudC5pc0FuY2Vz
dG9yKFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCkpKQorICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQoV2ViSW5zcGVjdG9yLnByZXZpb3VzRm9j
dXNFbGVtZW50KCkpOwogCiAgICAgICAgIHZhciBhbmNob3JlZEl0ZW1zID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImFuY2hvcmVkLXN0YXR1cy1iYXItaXRlbXMiKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Hb1RvTGluZURpYWxvZy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvR29Ub0xpbmVEaWFsb2cuanMKaW5kZXgg
NDVhMGRjODBhNmFkZTM3Mzg0MTJmMTQzODYxYTEzZDFmNWFkYmRjMS4uNDM1MTM2YzhiN2ZmZDhk
YmUyNzk3NjgyNDk0NDU5ZThiMzZhZDA0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Hb1RvTGluZURpYWxvZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0dvVG9MaW5lRGlhbG9nLmpzCkBAIC02NCw4ICs2NCw4IEBAIFdl
Ykluc3BlY3Rvci5Hb1RvTGluZURpYWxvZyA9IGZ1bmN0aW9uKHZpZXcpCiAgICAgdGhpcy5fdmll
dyA9IHZpZXc7CiAgICAgdmlldy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpOwog
Ci0gICAgdGhpcy5fcHJldmlvdXNGb2N1c0VsZW1lbnQgPSBXZWJJbnNwZWN0b3IuY3VycmVudEZv
Y3VzRWxlbWVudDsKLSAgICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9IHRoaXMu
X2lucHV0OworICAgIHRoaXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLmN1
cnJlbnRGb2N1c0VsZW1lbnQoKTsKKyAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZvY3VzRWxl
bWVudCh0aGlzLl9pbnB1dCk7CiAgICAgdGhpcy5faW5wdXQuc2VsZWN0KCk7CiB9CiAKQEAgLTEw
Nyw3ICsxMDcsNyBAQCBXZWJJbnNwZWN0b3IuR29Ub0xpbmVEaWFsb2cucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9pc0hpZGluZyA9IHRydWU7CiAKLSAg
ICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSB0aGlzLl9wcmV2aW91c0Zv
Y3VzRWxlbWVudDsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQo
dGhpcy5fcHJldmlvdXNGb2N1c0VsZW1lbnQpOwogICAgICAgICBXZWJJbnNwZWN0b3IuR29Ub0xp
bmVEaWFsb2cuX2luc3RhbmNlID0gbnVsbDsKICAgICAgICAgdGhpcy5fZWxlbWVudC5wYXJlbnRF
bGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlbHBTY3JlZW4uanMKaW5kZXggYWRiMzE3ZTBl
MDdmZTgyOTkwZWM2NWZlZmU4MGE5ZjllNDhjOWJhZC4uOGY5YjU4NjlmMGM0OTM5ZTNiNzA4OWM1
ZDU2ODliMWUwNzJlZGY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9IZWxwU2NyZWVuLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVscFNjcmVlbi5qcwpAQCAtNjMsOCArNjMsOCBAQCBXZWJJbnNwZWN0b3IuSGVscFNj
cmVlbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhp
cy5fZWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2lzU2hvd24gPSB0cnVlOwogICAgICAgICB0aGlz
Ll9vbkhpZGUgPSBvbkhpZGU7Ci0gICAgICAgIHRoaXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50ID0g
V2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQ7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5j
dXJyZW50Rm9jdXNFbGVtZW50ID0gdGhpcy5jb250ZW50RWxlbWVudDsKKyAgICAgICAgdGhpcy5f
cHJldmlvdXNGb2N1c0VsZW1lbnQgPSBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgp
OworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZvY3VzRWxlbWVudCh0aGlzLmNvbnRl
bnRFbGVtZW50KTsKICAgICB9LAogCiAgICAgaGlkZTogZnVuY3Rpb24oKQpAQCAtNzQsNyArNzQs
NyBAQCBXZWJJbnNwZWN0b3IuSGVscFNjcmVlbi5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhp
cy5faXNTaG93biA9IGZhbHNlOwogICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRo
aXMuX2VsZW1lbnQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9
IHRoaXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50OworICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0Q3Vy
cmVudEZvY3VzRWxlbWVudCh0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCk7CiAgICAgICAgIGlm
ICh0aGlzLl9vbkhpZGUpIHsKICAgICAgICAgICAgIHRoaXMuX29uSGlkZSgpOwogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX29uSGlkZTsKQEAgLTkzLDYgKzkzLDYgQEAgV2ViSW5zcGVjdG9yLkhl
bHBTY3JlZW4ucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgIC8vIFByZXRlbmQgd2UncmUg
bW9kYWwsIGdyYWIgZm9jdXMgYmFjayBpZiB3ZSdyZSBzdGlsbCBzaG93bi4KICAgICAgICAgaWYg
KHRoaXMuX2lzU2hvd24pCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxl
bWVudCA9IHRoaXMuY29udGVudEVsZW1lbnQ7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0
Q3VycmVudEZvY3VzRWxlbWVudCh0aGlzLmNvbnRlbnRFbGVtZW50KTsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250
ZW5kSG9zdFN0dWIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3Bl
Y3RvckZyb250ZW5kSG9zdFN0dWIuanMKaW5kZXggZTdhODBiNzQ0YTkyYTUxODlkMmU4NmE1Yzc1
YjUwZjRiNmZjNmYzZS4uMGVlNGI3YjIwZTU1MDU2NzU0MmFlMzZiOWY2MmI4NmU1YTIwNTY3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JG
cm9udGVuZEhvc3RTdHViLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5qcwpAQCAtMjgsMjEgKzI4LDYgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yID0gewotICAgIFdp
bmRvd3NWaXN0YTogIndpbmRvd3MtdmlzdGEiLAotICAgIE1hY1RpZ2VyOiAibWFjLXRpZ2VyIiwK
LSAgICBNYWNMZW9wYXJkOiAibWFjLWxlb3BhcmQiLAotICAgIE1hY1Nub3dMZW9wYXJkOiAibWFj
LXNub3dsZW9wYXJkIgotfQotCi1XZWJJbnNwZWN0b3IuaXNNYWMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgaWYgKHR5cGVvZiBXZWJJbnNwZWN0b3IuX2lzTWFjID09PSAidW5kZWZpbmVkIikKLSAgICAg
ICAgV2ViSW5zcGVjdG9yLl9pc01hYyA9IFdlYkluc3BlY3Rvci5wbGF0Zm9ybSA9PT0gIm1hYyI7
Ci0KLSAgICByZXR1cm4gV2ViSW5zcGVjdG9yLl9pc01hYzsKLX0KLQogaWYgKCF3aW5kb3cuSW5z
cGVjdG9yRnJvbnRlbmRIb3N0KSB7CiAKIC8qKgpAQCAtNTMsOCArMzgsNiBAQCBXZWJJbnNwZWN0
b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1YiA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9hdHRh
Y2hlZFdpbmRvd0hlaWdodCA9IDA7CiB9CiAKLVdlYkluc3BlY3Rvci5fcGxhdGZvcm1GbGF2b3Ig
PSBXZWJJbnNwZWN0b3IuUGxhdGZvcm1GbGF2b3IuTWFjTGVvcGFyZDsKLQogV2ViSW5zcGVjdG9y
Lkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIucHJvdG90eXBlID0gewogICAgIHBsYXRmb3JtOiBm
dW5jdGlvbigpCiAgICAgewpAQCAtMTcwLDUgKzE1Myw2IEBAIFdlYkluc3BlY3Rvci5JbnNwZWN0
b3JGcm9udGVuZEhvc3RTdHViLnByb3RvdHlwZSA9IHsKIH0KIAogdmFyIEluc3BlY3RvckZyb250
ZW5kSG9zdCA9IG5ldyBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1YigpOwor
UHJlZmVyZW5jZXMubG9jYWxpemVVSSA9IGZhbHNlOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hvcnRjdXQuanMKaW5kZXggOWQ2
ZTA4ODMyOWFiMGUxNTFhMjFjMDg0ZGYxZWY4ZDRlZjQzOWJlOC4uYjNjMDRkNzZiNGRhYTBjZmI4
NmU0ZWFkMGFmNmQ3Y2M5MjhiNTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9LZXlib2FyZFNob3J0Y3V0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvS2V5Ym9hcmRTaG9ydGN1dC5qcwpAQCAtMTQyLDcgKzE0Miw3IEBA
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Ll9rZXlOYW1lID0gZnVuY3Rpb24oa2V5KQog
ICAgICAgICByZXR1cm4ga2V5LnRvVXBwZXJDYXNlKCk7CiAgICAgaWYgKHR5cGVvZiBrZXkubmFt
ZSA9PT0gInN0cmluZyIpCiAgICAgICAgIHJldHVybiBrZXkubmFtZTsKLSAgICByZXR1cm4ga2V5
Lm5hbWVbV2ViSW5zcGVjdG9yLnBsYXRmb3JtXSB8fCBrZXkubmFtZS5vdGhlcjsKKyAgICByZXR1
cm4ga2V5Lm5hbWVbV2ViSW5zcGVjdG9yLnBsYXRmb3JtKCldIHx8IGtleS5uYW1lLm90aGVyOwog
fQogCiBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5fbWFrZUtleUZyb21Db2RlQW5kTW9k
aWZpZXJzID0gZnVuY3Rpb24oa2V5Q29kZSwgbW9kaWZpZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggZDg4MjMxZWQ2MGY3MjMwYTg4YzNlMWYw
ODcwNTFmMDkwMDdmMDlkZC4uY2IwYjVkZTEzZTEwODk1ZjBlYjg4MjY1ZmQ4NTgyZWUyMjUzMjRh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC03
OSw3ICs3OSw3IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICgiX3Rvb2xiYXJJdGVtIiBpbiB0aGlzKQogICAgICAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW0u
YWRkU3R5bGVDbGFzcygidG9nZ2xlZC1vbiIpOwogCi0gICAgICAgIFdlYkluc3BlY3Rvci5jdXJy
ZW50Rm9jdXNFbGVtZW50ID0gdGhpcy5kZWZhdWx0Rm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIFdl
Ykluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMuZGVmYXVsdEZvY3VzZWRFbGVt
ZW50KTsKIAogICAgICAgICB0aGlzLnJlc3RvcmVTaWRlYmFyV2lkdGgoKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlQYW5lbFNob3duKHRoaXMubmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRy
b2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NlYXJjaENvbnRy
b2xsZXIuanMKaW5kZXggYTE4MjJlZTkyMzI5MDg3ODk5MjUyMzM4OWM3ZTRhZTYzMWQ1N2NlOS4u
MWI4ZjAwM2M5OGU2ODUzOGM5MjcyZjdhZDg1NzY0YThjMmNmYWZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZWFyY2hDb250cm9sbGVyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2VhcmNoQ29udHJvbGxlci5qcwpA
QCAtMTkwLDcgKzE5MCw3IEBAIFdlYkluc3BlY3Rvci5TZWFyY2hDb250cm9sbGVyLnByb3RvdHlw
ZSA9IHsKIAogICAgIF9vblNlYXJjaEZpZWxkTWFudWFsRm9jdXM6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSBldmVudC50
YXJnZXQ7CisgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KGV2ZW50
LnRhcmdldCk7CiAgICAgfSwKIAogICAgIF9vbktleURvd246IGZ1bmN0aW9uKGV2ZW50KQpAQCAt
MjAwLDE1ICsyMDAsMTUgQEAgV2ViSW5zcGVjdG9yLlNlYXJjaENvbnRyb2xsZXIucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgLy8gSWYgZm9jdXMgYmVsb25ncyBoZXJlIGFuZCB0ZXh0IGlzIGVt
cHR5IC0gbm90aGluZyB0byBkbywgcmV0dXJuIHVuaGFuZGxlZC4KICAgICAgICAgICAgIC8vIFdo
ZW4gc2VhcmNoIHdhcyBzZWxlY3RlZCBtYW51YWxseSBhbmQgaXMgY3VycmVudGx5IGJsYW5rLCB3
ZSdkIGxpa2UgRXNjIHN0YXkgdW5oYW5kbGVkCiAgICAgICAgICAgICAvLyBhbmQgaGl0IGNvbnNv
bGUgZHJhd2VyIGhhbmRsZXIuCi0gICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnZhbHVlID09
PSAiIiAmJiBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9PT0gV2ViSW5zcGVjdG9y
LnByZXZpb3VzRm9jdXNFbGVtZW50KQorICAgICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC52YWx1
ZSA9PT0gIiIgJiYgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQoKSA9PT0gV2ViSW5z
cGVjdG9yLnByZXZpb3VzRm9jdXNFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOwogCiAgICAgICAgICAgICB0aGlzLmNhbmNlbFNlYXJjaCgpOwotICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQgPSBXZWJJbnNwZWN0b3Iu
cHJldmlvdXNGb2N1c0VsZW1lbnQ7Ci0gICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmN1cnJl
bnRGb2N1c0VsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkKLSAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudC5jdXJyZW50Rm9jdXNFbGVtZW50LnNlbGVjdCgpOwor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQoV2ViSW5zcGVj
dG9yLnByZXZpb3VzRm9jdXNFbGVtZW50KCkpOworICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rv
ci5jdXJyZW50Rm9jdXNFbGVtZW50KCkgPT09IGV2ZW50LnRhcmdldCkKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgpLnNlbGVjdCgpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IGQyYmE2ZDU5ZWFjZTRmYWU4YjY0MmJhMWRl
OGNkNzFhYTIxMDA0NzguLmIyYWJhZGZlNTFiZWE1NGQwZWU2ZDFjYzM3NjFjOTIzNWY5YTg1YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3Mu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpA
QCAtNTcsNyArNTcsOCBAQCB2YXIgUHJlZmVyZW5jZXMgPSB7CiAgICAgY2FuRGlzYWJsZUNhY2hl
OiBmYWxzZSwKICAgICBzaG93TmV0d29ya1BhbmVsSW5pdGlhdG9yQ29sdW1uOiBmYWxzZSwKICAg
ICBoYXZlRXh0ZW5zaW9uczogZmFsc2UsCi0gICAgc2hhcmVkV29ya2Vyc0xpc3RVUkw6IHVuZGVm
aW5lZAorICAgIHNoYXJlZFdvcmtlcnNMaXN0VVJMOiB1bmRlZmluZWQsCisgICAgbG9jYWxpemVV
STogdHJ1ZQogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IDY0NWY4MmQyYWMzMTQ4MjdhYTViNzkxNWRkZTNjZjA1
OTcwYmU4YmUuLmViOTY1ZmYzNjExYzU0M2IzZDFlZmQ2OWU1ODQ2MjMwMmI3NjdhMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpA
QCAtNDMsNyArNDMsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUgPSBmdW5jdGlvbihkZWxl
Z2F0ZSwgdXJsKQogICAgIHRoaXMuX3RleHRNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1vZGVsKCk7CiAKICAgICB2YXIgdGV4dFZpZXdlckRlbGVnYXRlID0gbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0Vmlld2VyRGVsZWdhdGVGb3JTb3VyY2VGcmFtZSh0aGlzKTsKLSAgICB0aGlzLl90
ZXh0Vmlld2VyID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyKHRoaXMuX3RleHRNb2RlbCwg
V2ViSW5zcGVjdG9yLnBsYXRmb3JtLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7Cisg
ICAgdGhpcy5fdGV4dFZpZXdlciA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlcih0aGlzLl90
ZXh0TW9kZWwsIFdlYkluc3BlY3Rvci5wbGF0Zm9ybSgpLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJE
ZWxlZ2F0ZSk7CiAKICAgICB0aGlzLnBvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk9i
amVjdFBvcG92ZXJIZWxwZXIodGhpcy5fdGV4dFZpZXdlci5lbGVtZW50LAogICAgICAgICAgICAg
dGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLm9uU2hvd1BvcG92ZXIuYmlu
ZCh0aGlzKSwgdGhpcy5vbkhpZGVQb3BvdmVyLmJpbmQodGhpcyksIHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub29sYmFyLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Ub29sYmFyLmpzCmluZGV4IDAwNzZkMGQ0Y2Q2
NjE3YzJhMTk1N2RiMGYwMjc2YThlMDAzYTYxNWIuLjE0NjRiMDNlYzU5ZTVjYjBkMTZiZTA4ZjYz
ZTM3MGJhMzNlOTU5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvVG9vbGJhci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Rvb2xiYXIuanMKQEAgLTY3LDcgKzY3LDcgQEAgV2ViSW5zcGVjdG9yLlRvb2xiYXIucHJvdG90
eXBlID0gewogCiAgICAgX3Rvb2xiYXJEcmFnU3RhcnQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgaWYgKCghV2ViSW5zcGVjdG9yLmF0dGFjaGVkICYmIFdlYkluc3BlY3Rvci5wbGF0
Zm9ybUZsYXZvciAhPT0gV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yLk1hY0xlb3BhcmQgJiYg
V2ViSW5zcGVjdG9yLnBsYXRmb3JtRmxhdm9yICE9PSBXZWJJbnNwZWN0b3IuUGxhdGZvcm1GbGF2
b3IuTWFjU25vd0xlb3BhcmQpIHx8IFdlYkluc3BlY3Rvci5wb3J0ID09ICJxdCIpCisgICAgICAg
IGlmICgoIVdlYkluc3BlY3Rvci5hdHRhY2hlZCAmJiBXZWJJbnNwZWN0b3IucGxhdGZvcm1GbGF2
b3IoKSAhPT0gV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yLk1hY0xlb3BhcmQgJiYgV2ViSW5z
cGVjdG9yLnBsYXRmb3JtRmxhdm9yKCkgIT09IFdlYkluc3BlY3Rvci5QbGF0Zm9ybUZsYXZvci5N
YWNTbm93TGVvcGFyZCkgfHwgV2ViSW5zcGVjdG9yLnBvcnQoKSA9PSAicXQiKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJVXRpbHMuanMKaW5kZXggZmY3ZWIyM2U0
MmU2YTRlN2NhOWI1NTQwZDNiMTZkYzk2MGY5YTdkYi4uYTAwOGZhYjI2MjViMmRjMTU4NGQyMDdj
Y2I1Nzk0YzljNzk4ZTg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9VSVV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVUlVdGlscy5qcwpAQCAtMjg4LDggKzI4OCw4IEBAIFdlYkluc3BlY3Rvci5zdGFydEVkaXRp
bmcgPSBmdW5jdGlvbihlbGVtZW50LCBjb25maWcpCiAgICAgICAgIGlmIChwYXN0ZUNhbGxiYWNr
KQogICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwYXN0ZSIsIHBhc3Rl
RXZlbnRMaXN0ZW5lciwgdHJ1ZSk7CiAKLSAgICAgICAgaWYgKGVsZW1lbnQgPT09IFdlYkluc3Bl
Y3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50IHx8IGVsZW1lbnQuaXNBbmNlc3RvcihXZWJJbnNwZWN0
b3IuY3VycmVudEZvY3VzRWxlbWVudCkpCi0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3VycmVu
dEZvY3VzRWxlbWVudCA9IFdlYkluc3BlY3Rvci5wcmV2aW91c0ZvY3VzRWxlbWVudDsKKyAgICAg
ICAgaWYgKGVsZW1lbnQgPT09IFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCkgfHwg
ZWxlbWVudC5pc0FuY2VzdG9yKFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCkpKQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldEN1cnJlbnRGb2N1c0VsZW1lbnQoV2ViSW5zcGVj
dG9yLnByZXZpb3VzRm9jdXNFbGVtZW50KCkpOwogICAgIH0KIAogICAgIC8qKiBAdGhpcyB7RWxl
bWVudH0gKi8KQEAgLTM2MSw3ICszNjEsNyBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRFZGl0aW5nID0g
ZnVuY3Rpb24oZWxlbWVudCwgY29uZmlnKQogICAgIGlmIChwYXN0ZUNhbGxiYWNrKQogICAgICAg
ICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgcGFzdGVFdmVudExpc3RlbmVyLCB0
cnVlKTsKIAotICAgIFdlYkluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50ID0gZWxlbWVudDsK
KyAgICBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudEZvY3VzRWxlbWVudChlbGVtZW50KTsKICAgICBy
ZXR1cm4gewogICAgICAgICBjYW5jZWw6IGVkaXRpbmdDYW5jZWxsZWQuYmluZChlbGVtZW50KSwK
ICAgICAgICAgY29tbWl0OiBlZGl0aW5nQ29tbWl0dGVkLmJpbmQoZWxlbWVudCkKQEAgLTQyMSw2
ICs0MjEsMzQgQEAgTnVtYmVyLmJ5dGVzVG9TdHJpbmcgPSBmdW5jdGlvbihieXRlcywgaGlnaGVy
UmVzb2x1dGlvbikKICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiJS4wZk1C
IiwgbWVnYWJ5dGVzKTsKIH0KIAorV2ViSW5zcGVjdG9yLl9taXNzaW5nTG9jYWxpemVkU3RyaW5n
cyA9IHt9OworCisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcKKyAqIEBwYXJhbSB7Li4u
Kn0gdmFyYXJnCisgKi8KK1dlYkluc3BlY3Rvci5VSVN0cmluZyA9IGZ1bmN0aW9uKHN0cmluZywg
dmFyYXJnKQoreworICAgIGlmIChQcmVmZXJlbmNlcy5sb2NhbGl6ZVVJKSB7CisgICAgICAgIGlm
ICh3aW5kb3cubG9jYWxpemVkU3RyaW5ncyAmJiBzdHJpbmcgaW4gd2luZG93LmxvY2FsaXplZFN0
cmluZ3MpCisgICAgICAgICAgICBzdHJpbmcgPSB3aW5kb3cubG9jYWxpemVkU3RyaW5nc1tzdHJp
bmddOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghKHN0cmluZyBpbiBXZWJJbnNw
ZWN0b3IuX21pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzKSkgeworICAgICAgICAgICAgICAgIGNvbnNv
bGUud2FybigiTG9jYWxpemVkIHN0cmluZyBcIiIgKyBzdHJpbmcgKyAiXCIgbm90IGZvdW5kLiIp
OworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5fbWlzc2luZ0xvY2FsaXplZFN0cmluZ3Nb
c3RyaW5nXSA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICBpZiAoUHJl
ZmVyZW5jZXMuc2hvd01pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzKQorICAgICAgICAgICAgICAgIHN0
cmluZyArPSAiIChub3QgbG9jYWxpemVkKSI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IFN0cmluZy52c3ByaW50ZihzdHJpbmcsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3Vt
ZW50cywgMSkpOworfQorCitXZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNlTWVudVRpdGxlcyA9IGZ1
bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLnBsYXRmb3JtKCkgPT09ICJ3aW5k
b3dzIiAmJiBQcmVmZXJlbmNlcy51c2VMb3dlckNhc2VNZW51VGl0bGVzT25XaW5kb3dzOworfQog
CiBXZWJJbnNwZWN0b3IuZm9ybWF0TG9jYWxpemVkID0gZnVuY3Rpb24oZm9ybWF0LCBzdWJzdGl0
dXRpb25zLCBmb3JtYXR0ZXJzLCBpbml0aWFsVmFsdWUsIGFwcGVuZCkKIHsKQEAgLTQ0MSwzICs0
NjksMTQyIEBAIFdlYkluc3BlY3Rvci5jb3B5TGlua0FkZHJlc3NMYWJlbCA9IGZ1bmN0aW9uKCkK
IHsKICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKFdlYkluc3BlY3Rvci51c2VMb3dl
ckNhc2VNZW51VGl0bGVzKCkgPyAiQ29weSBsaW5rIGFkZHJlc3MiIDogIkNvcHkgTGluayBBZGRy
ZXNzIik7CiB9CisKK1dlYkluc3BlY3Rvci5wbGF0Zm9ybSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBp
ZiAoIVdlYkluc3BlY3Rvci5fcGxhdGZvcm0pCisgICAgICAgIFdlYkluc3BlY3Rvci5fcGxhdGZv
cm0gPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QucGxhdGZvcm0oKTsKKyAgICByZXR1cm4gV2ViSW5z
cGVjdG9yLl9wbGF0Zm9ybTsKK30KKworV2ViSW5zcGVjdG9yLmlzTWFjID0gZnVuY3Rpb24oKQor
eworICAgIGlmICh0eXBlb2YgV2ViSW5zcGVjdG9yLl9pc01hYyA9PT0gInVuZGVmaW5lZCIpCisg
ICAgICAgIFdlYkluc3BlY3Rvci5faXNNYWMgPSBXZWJJbnNwZWN0b3IucGxhdGZvcm0oKSA9PT0g
Im1hYyI7CisKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLl9pc01hYzsKK30KKworV2ViSW5zcGVj
dG9yLlBsYXRmb3JtRmxhdm9yID0geworICAgIFdpbmRvd3NWaXN0YTogIndpbmRvd3MtdmlzdGEi
LAorICAgIE1hY1RpZ2VyOiAibWFjLXRpZ2VyIiwKKyAgICBNYWNMZW9wYXJkOiAibWFjLWxlb3Bh
cmQiLAorICAgIE1hY1Nub3dMZW9wYXJkOiAibWFjLXNub3dsZW9wYXJkIgorfQorCitXZWJJbnNw
ZWN0b3IucGxhdGZvcm1GbGF2b3IgPSBmdW5jdGlvbigpCit7CisgICAgZnVuY3Rpb24gZGV0ZWN0
Rmxhdm9yKCkKKyAgICB7CisgICAgICAgIGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2Vy
QWdlbnQ7CisKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wbGF0Zm9ybSgpID09PSAid2luZG93
cyIpIHsKKyAgICAgICAgICAgIHZhciBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvV2luZG93cyBO
VCAoXGQrKVwuKD86XGQrKS8pOworICAgICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdID49
IDYpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5QbGF0Zm9ybUZsYXZvci5X
aW5kb3dzVmlzdGE7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSBlbHNlIGlm
IChXZWJJbnNwZWN0b3IucGxhdGZvcm0oKSA9PT0gIm1hYyIpIHsKKyAgICAgICAgICAgIHZhciBt
YXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvTWFjIE9TIFhccyooPzooXGQrKV8oXGQrKSk/Lyk7Cisg
ICAgICAgICAgICBpZiAoIW1hdGNoIHx8IG1hdGNoWzFdICE9IDEwKQorICAgICAgICAgICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuUGxhdGZvcm1GbGF2b3IuTWFjU25vd0xlb3BhcmQ7CisgICAg
ICAgICAgICBzd2l0Y2ggKE51bWJlcihtYXRjaFsyXSkpIHsKKyAgICAgICAgICAgICAgICBjYXNl
IDQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUGxhdGZvcm1GbGF2
b3IuTWFjVGlnZXI7CisgICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yLk1hY0xlb3BhcmQ7CisgICAgICAg
ICAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuUGxhdGZvcm1GbGF2b3IuTWFjU25vd0xlb3BhcmQ7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIVdlYkluc3BlY3Rv
ci5fcGxhdGZvcm1GbGF2b3IpCisgICAgICAgIFdlYkluc3BlY3Rvci5fcGxhdGZvcm1GbGF2b3Ig
PSBkZXRlY3RGbGF2b3IoKTsKKworICAgIHJldHVybiBXZWJJbnNwZWN0b3IuX3BsYXRmb3JtRmxh
dm9yOworfQorCitXZWJJbnNwZWN0b3IucG9ydCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoIVdl
Ykluc3BlY3Rvci5fcG9ydCkKKyAgICAgICAgV2ViSW5zcGVjdG9yLl9wb3J0ID0gSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LnBvcnQoKTsKKworICAgIHJldHVybiBXZWJJbnNwZWN0b3IuX3BvcnQ7Cit9
CisKK1dlYkluc3BlY3Rvci5pbnN0YWxsUG9ydFN0eWxlcyA9IGZ1bmN0aW9uKCkKK3sKKyAgICB2
YXIgcGxhdGZvcm0gPSBXZWJJbnNwZWN0b3IucGxhdGZvcm0oKTsKKyAgICBkb2N1bWVudC5ib2R5
LmFkZFN0eWxlQ2xhc3MoInBsYXRmb3JtLSIgKyBwbGF0Zm9ybSk7CisgICAgdmFyIGZsYXZvciA9
IFdlYkluc3BlY3Rvci5wbGF0Zm9ybUZsYXZvcigpOworICAgIGlmIChmbGF2b3IpCisgICAgICAg
IGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFzcygicGxhdGZvcm0tIiArIGZsYXZvcik7CisgICAg
dmFyIHBvcnQgPSBXZWJJbnNwZWN0b3IucG9ydCgpOworICAgIGRvY3VtZW50LmJvZHkuYWRkU3R5
bGVDbGFzcygicG9ydC0iICsgcG9ydCk7Cit9CisKK1dlYkluc3BlY3Rvci5fd2luZG93Rm9jdXNl
ZCA9IGZ1bmN0aW9uKGV2ZW50KQoreworICAgIGlmIChldmVudC50YXJnZXQuZG9jdW1lbnQubm9k
ZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVTdHlsZUNsYXNzKCJpbmFjdGl2ZSIpOworfQorCitXZWJJbnNwZWN0b3IuX3dpbmRvd0JsdXJy
ZWQgPSBmdW5jdGlvbihldmVudCkKK3sKKyAgICBpZiAoZXZlbnQudGFyZ2V0LmRvY3VtZW50Lm5v
ZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05PREUpCisgICAgICAgIGRvY3VtZW50LmJvZHkuYWRk
U3R5bGVDbGFzcygiaW5hY3RpdmUiKTsKK30KKworV2ViSW5zcGVjdG9yLnByZXZpb3VzRm9jdXNF
bGVtZW50ID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiBXZWJJbnNwZWN0b3IuX3ByZXZpb3Vz
Rm9jdXNFbGVtZW50OworfQorCitXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCA9IGZ1
bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLl9jdXJyZW50Rm9jdXNFbGVtZW50
OworfQorCitXZWJJbnNwZWN0b3IuX2ZvY3VzQ2hhbmdlZCA9IGZ1bmN0aW9uKGV2ZW50KQorewor
ICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KGV2ZW50LnRhcmdldCk7Cit9
CisKK1dlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50ID0gZnVuY3Rpb24oeCkKK3sK
KyAgICBpZiAoV2ViSW5zcGVjdG9yLl9jdXJyZW50Rm9jdXNFbGVtZW50ICE9PSB4KQorICAgICAg
ICBXZWJJbnNwZWN0b3IuX3ByZXZpb3VzRm9jdXNFbGVtZW50ID0gV2ViSW5zcGVjdG9yLl9jdXJy
ZW50Rm9jdXNFbGVtZW50OworICAgIFdlYkluc3BlY3Rvci5fY3VycmVudEZvY3VzRWxlbWVudCA9
IHg7CisKKyAgICBpZiAoV2ViSW5zcGVjdG9yLl9jdXJyZW50Rm9jdXNFbGVtZW50KSB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5fY3VycmVudEZvY3VzRWxlbWVudC5mb2N1cygpOworCisgICAgICAg
IC8vIE1ha2UgYSBjYXJldCBzZWxlY3Rpb24gaW5zaWRlIHRoZSBuZXcgZWxlbWVudCBpZiB0aGVy
ZSBpc24ndCBhIHJhbmdlIHNlbGVjdGlvbiBhbmQKKyAgICAgICAgLy8gdGhlcmUgaXNuJ3QgYWxy
ZWFkeSBhIGNhcmV0IHNlbGVjdGlvbiBpbnNpZGUuCisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3
aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlmIChzZWxlY3Rpb24uaXNDb2xsYXBzZWQg
JiYgIVdlYkluc3BlY3Rvci5fY3VycmVudEZvY3VzRWxlbWVudC5pc0luc2VydGlvbkNhcmV0SW5z
aWRlKCkpIHsKKyAgICAgICAgICAgIHZhciBzZWxlY3Rpb25SYW5nZSA9IFdlYkluc3BlY3Rvci5f
Y3VycmVudEZvY3VzRWxlbWVudC5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAgICAg
ICAgICBzZWxlY3Rpb25SYW5nZS5zZXRTdGFydChXZWJJbnNwZWN0b3IuX2N1cnJlbnRGb2N1c0Vs
ZW1lbnQsIDApOworICAgICAgICAgICAgc2VsZWN0aW9uUmFuZ2Uuc2V0RW5kKFdlYkluc3BlY3Rv
ci5fY3VycmVudEZvY3VzRWxlbWVudCwgMCk7CisKKyAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1v
dmVBbGxSYW5nZXMoKTsKKyAgICAgICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShzZWxlY3Rpb25S
YW5nZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKFdlYkluc3BlY3Rvci5fcHJldmlvdXNG
b2N1c0VsZW1lbnQpCisgICAgICAgIFdlYkluc3BlY3Rvci5fcHJldmlvdXNGb2N1c0VsZW1lbnQu
Ymx1cigpOworfQorCis7KGZ1bmN0aW9uKCkgeworCitmdW5jdGlvbiB3aW5kb3dMb2FkZWQoKQor
eworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIFdlYkluc3BlY3Rvci5fd2lu
ZG93Rm9jdXNlZCwgZmFsc2UpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwg
V2ViSW5zcGVjdG9yLl93aW5kb3dCbHVycmVkLCBmYWxzZSk7CisgICAgZG9jdW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXMiLCBXZWJJbnNwZWN0b3IuX2ZvY3VzQ2hhbmdlZC5iaW5kKHRoaXMp
LCB0cnVlKTsKKyAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRl
ZCIsIHdpbmRvd0xvYWRlZCwgZmFsc2UpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
RE9NQ29udGVudExvYWRlZCIsIHdpbmRvd0xvYWRlZCwgZmFsc2UpOworCit9KSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCmluZGV4IDgxOTBjOGY0
ZGEwZTM1ODEyOWRkMDRkYTBiMDdkZWUyODFkODZmNGUuLjc0OGQzZTM5ZDFhZjI3NjllYmMxMjg3
NDEwMWMyYWIwZDY5ZDQwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvZXh0ZXJucy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2V4dGVybnMuanMKQEAgLTI4LDYgKzI4LDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAor
Ly8gV2ViS2l0IFdlYiBGYWNpbmcgQVBJCiB2YXIgY29uc29sZSA9IHt9CiAvKiogQHBhcmFtIHsu
Li4qfSB2YXJhcmcgKi8KIGNvbnNvbGUud2FybiA9IGZ1bmN0aW9uKHZhcmFyZykge30KQEAgLTM3
LDQ2ICszOCw0OSBAQCBjb25zb2xlLmFzc2VydCA9IGZ1bmN0aW9uKHZhcmFyZykge30KIGNvbnNv
bGUuZXJyb3IgPSBmdW5jdGlvbih2YXJhcmcpIHt9CiBjb25zb2xlLnRyYWNlID0gZnVuY3Rpb24o
KSB7fQogCi12YXIgV2ViSW5zcGVjdG9yID0ge30KLQotLyoqCi0gKiBAcGFyYW0ge3N0cmluZ30g
c3RyCi0gKiBAcGFyYW0gey4uLip9IHZhckFyZ3MKLSAqLwotV2ViSW5zcGVjdG9yLlVJU3RyaW5n
ID0gZnVuY3Rpb24oc3RyLCB2YXJBcmdzKSB7fQotdmFyIEluc3BlY3RvckJhY2tlbmQgPSB7fQot
SW5zcGVjdG9yQmFja2VuZC5ydW5BZnRlclBlbmRpbmdEaXNwYXRjaGVzID0gZnVuY3Rpb24obWVz
c2FnZSkge30KLQogdmFyIEpTT04gPSB7fQogLyoqIEBwYXJhbSB7c3RyaW5nfSBzdHIgKi8KIEpT
T04ucGFyc2UgPSBmdW5jdGlvbihzdHIpIHt9Ci0KIC8qKiBAcGFyYW0ge09iamVjdH0gb2JqICov
CiAvKiogQHJldHVybiB7c3RyaW5nfSAqLwogSlNPTi5zdHJpbmdpZnkgPSBmdW5jdGlvbihzdHIp
IHt9CiAKLS8qKgotICogQHBhcmFtIHtib29sZWFuPX0gcGFyYW0KLSAqLworLyoqIEBwYXJhbSB7
Ym9vbGVhbj19IHBhcmFtICovCiBFbGVtZW50LnByb3RvdHlwZS5zY3JvbGxJbnRvVmlld0lmTmVl
ZGVkID0gZnVuY3Rpb24ocGFyYW0pIHt9CisvKiogQHR5cGUge2Jvb2xlYW59ICovCitFdmVudC5w
cm90b3R5cGUuaXNNZXRhT3JDdHJsRm9yVGVzdCA9IGZhbHNlOworLyoqIEBwYXJhbSB7Li4uKn0g
dmFyYXJnICovCitFdmVudC5wcm90b3R5cGUuaW5pdFdlYktpdFdoZWVsRXZlbnQgPSBmdW5jdGlv
bih2YXJhcmcpIHt9CisvKiogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50ICovCit3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSA9IGZ1bmN0aW9uKGVsZW1lbnQpIHt9CiAKLS8qKgotICogQHBhcmFtIHti
b29sZWFuPX0gb25seUZpcnN0Ci0gKi8KKy8qKiBAcGFyYW0ge2Jvb2xlYW49fSBvbmx5Rmlyc3Qg
Ki8KIEFycmF5LnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihvYmosIG9ubHlGaXJzdCkge30K
LQogQXJyYXkucHJvdG90eXBlLmtleVNldCA9IGZ1bmN0aW9uKCkge30KIAorRE9NQXBwbGljYXRp
b25DYWNoZS5wcm90b3R5cGUuVU5DQUNIRUQgPSAwOworRE9NQXBwbGljYXRpb25DYWNoZS5wcm90
b3R5cGUuSURMRSA9IDE7CitET01BcHBsaWNhdGlvbkNhY2hlLnByb3RvdHlwZS5DSEVDS0lORyA9
IDI7CitET01BcHBsaWNhdGlvbkNhY2hlLnByb3RvdHlwZS5ET1dOTE9BRElORyA9IDM7CitET01B
cHBsaWNhdGlvbkNhY2hlLnByb3RvdHlwZS5VUERBVEVSRUFEWSA9IDQ7CitET01BcHBsaWNhdGlv
bkNhY2hlLnByb3RvdHlwZS5PQlNPTEVURSA9IDU7CisKKworCisvLyBJbnNwZWN0b3IgQmFja2Vu
ZAordmFyIEluc3BlY3RvckJhY2tlbmQgPSB7fQorSW5zcGVjdG9yQmFja2VuZC5ydW5BZnRlclBl
bmRpbmdEaXNwYXRjaGVzID0gZnVuY3Rpb24obWVzc2FnZSkge30KKworCisvLyBGSVhNRTogcmVt
b3ZlIGV2ZXJ5dGhpbmcgYmVsb3cuCit2YXIgV2ViSW5zcGVjdG9yID0ge30KKwogV2ViSW5zcGVj
dG9yLmV4dGVuc2lvblNlcnZlciA9IHt9CiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5v
dGlmeVJlc291cmNlQ29udGVudENvbW1pdHRlZCA9IGZ1bmN0aW9uKHJlc291cmNlLCBjb250ZW50
KSB7fQogV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlci5ub3RpZnlQYW5lbFNob3duID0gZnVu
Y3Rpb24ocGFuZWwpIHt9CiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVyLm5vdGlmeVBhbmVs
SGlkZGVuID0gZnVuY3Rpb24ocGFuZWwpIHt9CiBXZWJJbnNwZWN0b3IuZXh0ZW5zaW9uU2VydmVy
Lm5vdGlmeU9iamVjdFNlbGVjdGVkID0gZnVuY3Rpb24ob2JqZWN0KSB7fQogCi1XZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IHsKLSAgICBsaW5raWZ5TG9jYXRpb246IGZ1
bmN0aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjbGFzc05hbWUpIHt9Ci19Ci0K
IC8qKgogICogQHBhcmFtIHtOZXR3b3JrQWdlbnQuUmVxdWVzdElkfSByZXF1ZXN0SWQKICAqIEBy
ZXR1cm4gez9XZWJJbnNwZWN0b3IuUmVzb3VyY2V9CkBAIC04NSwxMyArODksNiBAQCBXZWJJbnNw
ZWN0b3IubmV0d29ya1Jlc291cmNlQnlJZCA9IGZ1bmN0aW9uKHJlcXVlc3RJZCkKIHsKIH0KIAot
LyoqCi0gKiBAcmV0dXJuIHtib29sZWFufQotICovCi1XZWJJbnNwZWN0b3IudXNlTG93ZXJDYXNl
TWVudVRpdGxlcyA9IGZ1bmN0aW9uKCkKLXsKLX0KLQogV2ViSW5zcGVjdG9yLnBhbmVscyA9IHt9
OwogCiAvKioKQEAgLTExMCw0MiArMTA3LDEwIEBAIFdlYkluc3BlY3Rvci5jdXJyZW50UGFuZWwg
PSBmdW5jdGlvbigpIHt9CiBXZWJJbnNwZWN0b3Iuc2V0Q3VycmVudFBhbmVsID0gZnVuY3Rpb24o
cGFuZWwpIHt9CiAKIC8qKgotICogQHR5cGUgez9FbGVtZW50fQotICovCi1XZWJJbnNwZWN0b3Iu
Y3VycmVudEZvY3VzRWxlbWVudCA9IG51bGw7Ci0KLS8qKgotICogQHR5cGUgez9FbGVtZW50fQot
ICovCi1XZWJJbnNwZWN0b3IucHJldmlvdXNGb2N1c0VsZW1lbnQgPSBudWxsOwotCi0vKioKICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLlZpZXd9IHZpZXcKICAqLwogV2ViSW5zcGVjdG9yLnNob3dW
aWV3SW5EcmF3ZXIgPSBmdW5jdGlvbih2aWV3KSB7fQogCi0vKioKLSAqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuQWR2YW5jZWRTZWFyY2hDb250cm9sbGVyfQotICovCi1XZWJJbnNwZWN0b3IuYWR2YW5j
ZWRTZWFyY2hDb250cm9sbGVyID0gbnVsbDsKLQotLyoqCi0gKiBAdHlwZSB7c3RyaW5nfQotICov
Ci1XZWJJbnNwZWN0b3IucGxhdGZvcm1GbGF2b3IgPSAiIjsKLQotLyoqIEBwYXJhbSB7RWxlbWVu
dH0gZWxlbWVudCAqLwotd2luZG93LmdldENvbXB1dGVkU3R5bGUgPSBmdW5jdGlvbihlbGVtZW50
KSB7fQotCi0vKioKLSAqIEB0eXBlIHtib29sZWFufQotICovCi1FdmVudC5wcm90b3R5cGUuaXNN
ZXRhT3JDdHJsRm9yVGVzdCA9IGZhbHNlOwotCi0vKioKLSAqIEBwYXJhbSB7Li4uKn0gdmFyYXJn
Ci0gKi8KLUV2ZW50LnByb3RvdHlwZS5pbml0V2ViS2l0V2hlZWxFdmVudCA9IGZ1bmN0aW9uKHZh
cmFyZykge30KIAogLyoqCiAgKiBAcGFyYW0ge3N0cmluZz19IG1lc3NhZ2VMZXZlbApAQCAtMTU3
LDEzICsxMjIsNiBAQCBXZWJJbnNwZWN0b3IuYWRkTWFpbkV2ZW50TGlzdGVuZXJzID0gZnVuY3Rp
b24oZG9jKSB7fQogCiBXZWJJbnNwZWN0b3Iub3BlblJlc291cmNlID0gZnVuY3Rpb24odXJsLCBl
eHRlcm5hbCkge30KIAotRE9NQXBwbGljYXRpb25DYWNoZS5wcm90b3R5cGUuVU5DQUNIRUQgPSAw
OwotRE9NQXBwbGljYXRpb25DYWNoZS5wcm90b3R5cGUuSURMRSA9IDE7Ci1ET01BcHBsaWNhdGlv
bkNhY2hlLnByb3RvdHlwZS5DSEVDS0lORyA9IDI7Ci1ET01BcHBsaWNhdGlvbkNhY2hlLnByb3Rv
dHlwZS5ET1dOTE9BRElORyA9IDM7Ci1ET01BcHBsaWNhdGlvbkNhY2hlLnByb3RvdHlwZS5VUERB
VEVSRUFEWSA9IDQ7Ci1ET01BcHBsaWNhdGlvbkNhY2hlLnByb3RvdHlwZS5PQlNPTEVURSA9IDU7
Ci0KIFdlYkluc3BlY3Rvci5vcGVuUmVxdWVzdEluTmV0d29ya1BhbmVsID0gZnVuY3Rpb24ocmVx
dWVzdCkge30KIAogdmFyIEluamVjdGVkRmFrZVdvcmtlciA9IGZ1bmN0aW9uKCkge30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggOTNi
MWY5YWY4MGM2OTIwM2U5NmRkNGJiNDJhYmIxOWJlMjc1NjUxNC4uMmI4YjgxZTAwZjY5YjM3YTY3
NzYwZTYxNDQwMzM1NThmNGNiZTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI5LDk1ICsyOSw2IEBACiAgKi8KIAogdmFyIFdl
Ykluc3BlY3RvciA9IHsKLSAgICByZXNvdXJjZXM6IHt9LAotICAgIG1pc3NpbmdMb2NhbGl6ZWRT
dHJpbmdzOiB7fSwKLSAgICBwZW5kaW5nRGlzcGF0Y2hlczogMCwKLQotICAgIGdldCBwbGF0Zm9y
bSgpCi0gICAgewotICAgICAgICBpZiAoISgiX3BsYXRmb3JtIiBpbiB0aGlzKSkKLSAgICAgICAg
ICAgIHRoaXMuX3BsYXRmb3JtID0gSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnBsYXRmb3JtKCk7Ci0K
LSAgICAgICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtOwotICAgIH0sCi0KLSAgICBnZXQgcGxhdGZv
cm1GbGF2b3IoKQotICAgIHsKLSAgICAgICAgaWYgKCEoIl9wbGF0Zm9ybUZsYXZvciIgaW4gdGhp
cykpCi0gICAgICAgICAgICB0aGlzLl9wbGF0Zm9ybUZsYXZvciA9IHRoaXMuX2RldGVjdFBsYXRm
b3JtRmxhdm9yKCk7Ci0KLSAgICAgICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtRmxhdm9yOwotICAg
IH0sCi0KLSAgICBfZGV0ZWN0UGxhdGZvcm1GbGF2b3I6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAg
ICAgIGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7Ci0KLSAgICAgICAgaWYg
KHRoaXMucGxhdGZvcm0gPT09ICJ3aW5kb3dzIikgewotICAgICAgICAgICAgdmFyIG1hdGNoID0g
dXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzIE5UIChcZCspXC4oPzpcZCspLyk7Ci0gICAgICAgICAg
ICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gPj0gNikKLSAgICAgICAgICAgICAgICByZXR1cm4gV2Vi
SW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yLldpbmRvd3NWaXN0YTsKLSAgICAgICAgICAgIHJldHVy
biBudWxsOwotICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGxhdGZvcm0gPT09ICJtYWMiKSB7Ci0g
ICAgICAgICAgICB2YXIgbWF0Y2ggPSB1c2VyQWdlbnQubWF0Y2goL01hYyBPUyBYXHMqKD86KFxk
KylfKFxkKykpPy8pOwotICAgICAgICAgICAgaWYgKCFtYXRjaCB8fCBtYXRjaFsxXSAhPSAxMCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9yLk1hY1Nu
b3dMZW9wYXJkOwotICAgICAgICAgICAgc3dpdGNoIChOdW1iZXIobWF0Y2hbMl0pKSB7Ci0gICAg
ICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLlBsYXRmb3JtRmxhdm9yLk1hY1RpZ2VyOwotICAgICAgICAgICAgICAgIGNhc2UgNToKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5QbGF0Zm9ybUZsYXZvci5NYWNM
ZW9wYXJkOwotICAgICAgICAgICAgICAgIGNhc2UgNjoKLSAgICAgICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlBsYXRmb3JtRmxhdm9y
Lk1hY1Nub3dMZW9wYXJkOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0
dXJuIG51bGw7Ci0gICAgfSwKLQotICAgIGdldCBwb3J0KCkKLSAgICB7Ci0gICAgICAgIGlmICgh
KCJfcG9ydCIgaW4gdGhpcykpCi0gICAgICAgICAgICB0aGlzLl9wb3J0ID0gSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LnBvcnQoKTsKLQotICAgICAgICByZXR1cm4gdGhpcy5fcG9ydDsKLSAgICB9LAot
Ci0gICAgZ2V0IHByZXZpb3VzRm9jdXNFbGVtZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudDsKLSAgICB9LAotCi0gICAgZ2V0IGN1cnJlbnRGb2N1
c0VsZW1lbnQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRGb2N1c0VsZW1l
bnQ7Ci0gICAgfSwKLQotICAgIHNldCBjdXJyZW50Rm9jdXNFbGVtZW50KHgpCi0gICAgewotICAg
ICAgICBpZiAodGhpcy5fY3VycmVudEZvY3VzRWxlbWVudCAhPT0geCkKLSAgICAgICAgICAgIHRo
aXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50ID0gdGhpcy5fY3VycmVudEZvY3VzRWxlbWVudDsKLSAg
ICAgICAgdGhpcy5fY3VycmVudEZvY3VzRWxlbWVudCA9IHg7Ci0KLSAgICAgICAgaWYgKHRoaXMu
X2N1cnJlbnRGb2N1c0VsZW1lbnQpIHsKLSAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c0Vs
ZW1lbnQuZm9jdXMoKTsKLQotICAgICAgICAgICAgLy8gTWFrZSBhIGNhcmV0IHNlbGVjdGlvbiBp
bnNpZGUgdGhlIG5ldyBlbGVtZW50IGlmIHRoZXJlIGlzbid0IGEgcmFuZ2Ugc2VsZWN0aW9uIGFu
ZAotICAgICAgICAgICAgLy8gdGhlcmUgaXNuJ3QgYWxyZWFkeSBhIGNhcmV0IHNlbGVjdGlvbiBp
bnNpZGUuCi0gICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigp
OwotICAgICAgICAgICAgaWYgKHNlbGVjdGlvbi5pc0NvbGxhcHNlZCAmJiAhdGhpcy5fY3VycmVu
dEZvY3VzRWxlbWVudC5pc0luc2VydGlvbkNhcmV0SW5zaWRlKCkpIHsKLSAgICAgICAgICAgICAg
ICB2YXIgc2VsZWN0aW9uUmFuZ2UgPSB0aGlzLl9jdXJyZW50Rm9jdXNFbGVtZW50Lm93bmVyRG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKLSAgICAgICAgICAgICAgICBzZWxlY3Rpb25SYW5nZS5zZXRT
dGFydCh0aGlzLl9jdXJyZW50Rm9jdXNFbGVtZW50LCAwKTsKLSAgICAgICAgICAgICAgICBzZWxl
Y3Rpb25SYW5nZS5zZXRFbmQodGhpcy5fY3VycmVudEZvY3VzRWxlbWVudCwgMCk7Ci0KLSAgICAg
ICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7Ci0gICAgICAgICAgICAgICAg
c2VsZWN0aW9uLmFkZFJhbmdlKHNlbGVjdGlvblJhbmdlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlIGlmICh0aGlzLl9wcmV2aW91c0ZvY3VzRWxlbWVudCkKLSAgICAgICAgICAgIHRo
aXMuX3ByZXZpb3VzRm9jdXNFbGVtZW50LmJsdXIoKTsKLSAgICB9LAotCiAgICAgY3VycmVudFBh
bmVsOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhbmVs
OwpAQCAtNDQ1LDEzICszNTYsOCBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rp
b24oKQogewogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkZWQoKTsKIAotICAgIHZhciBw
bGF0Zm9ybSA9IFdlYkluc3BlY3Rvci5wbGF0Zm9ybTsKLSAgICBkb2N1bWVudC5ib2R5LmFkZFN0
eWxlQ2xhc3MoInBsYXRmb3JtLSIgKyBwbGF0Zm9ybSk7Ci0gICAgdmFyIGZsYXZvciA9IFdlYklu
c3BlY3Rvci5wbGF0Zm9ybUZsYXZvcjsKLSAgICBpZiAoZmxhdm9yKQotICAgICAgICBkb2N1bWVu
dC5ib2R5LmFkZFN0eWxlQ2xhc3MoInBsYXRmb3JtLSIgKyBmbGF2b3IpOwotICAgIHZhciBwb3J0
ID0gV2ViSW5zcGVjdG9yLnBvcnQ7Ci0gICAgZG9jdW1lbnQuYm9keS5hZGRTdHlsZUNsYXNzKCJw
b3J0LSIgKyBwb3J0KTsKKyAgICBXZWJJbnNwZWN0b3IuaW5zdGFsbFBvcnRTdHlsZXMoKTsKKwog
ICAgIGlmIChXZWJJbnNwZWN0b3Iuc29ja2V0KQogICAgICAgICBkb2N1bWVudC5ib2R5LmFkZFN0
eWxlQ2xhc3MoInJlbW90ZSIpOwogCkBAIC01ODQsMjkgKzQ5MCw2IEBAIFdlYkluc3BlY3Rvci53
aW5kb3dSZXNpemUgPSBmdW5jdGlvbihldmVudCkKICAgICB0aGlzLnRvb2xiYXIucmVzaXplKCk7
CiB9CiAKLVdlYkluc3BlY3Rvci53aW5kb3dGb2N1c2VkID0gZnVuY3Rpb24oZXZlbnQpCi17Ci0g
ICAgLy8gRmlyZXMgYWZ0ZXIgYmx1ciwgc28gd2hlbiBmb2N1c2luZyBvbiBlaXRoZXIgdGhlIG1h
aW4gaW5zcGVjdG9yCi0gICAgLy8gb3IgYW4gPGlmcmFtZT4gd2l0aGluIHRoZSBpbnNwZWN0b3Ig
d2Ugc2hvdWxkIGFsd2F5cyByZW1vdmUgdGhlCi0gICAgLy8gImluYWN0aXZlIiBjbGFzcy4KLSAg
ICBpZiAoZXZlbnQudGFyZ2V0LmRvY3VtZW50Lm5vZGVUeXBlID09PSBOb2RlLkRPQ1VNRU5UX05P
REUpCi0gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlU3R5bGVDbGFzcygiaW5hY3RpdmUiKTsK
LX0KLQotV2ViSW5zcGVjdG9yLndpbmRvd0JsdXJyZWQgPSBmdW5jdGlvbihldmVudCkKLXsKLSAg
ICAvLyBMZWF2aW5nIHRoZSBtYWluIGluc3BlY3RvciBvciBhbiA8aWZyYW1lPiB3aXRoaW4gdGhl
IGluc3BlY3Rvci4KLSAgICAvLyBXZSBjYW4gYWRkICJpbmFjdGl2ZSIgbm93LCBhbmQgaWYgd2Ug
YXJlIG1vdmluZyB0aGUgZm9jdXMgdG8gYW5vdGhlcgotICAgIC8vIHBhcnQgb2YgdGhlIGluc3Bl
Y3RvciB0aGVuIHdpbmRvd0ZvY3VzZWQgd2lsbCBjb3JyZWN0IHRoaXMuCi0gICAgaWYgKGV2ZW50
LnRhcmdldC5kb2N1bWVudC5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKQotICAgICAg
ICBkb2N1bWVudC5ib2R5LmFkZFN0eWxlQ2xhc3MoImluYWN0aXZlIik7Ci19Ci0KLVdlYkluc3Bl
Y3Rvci5mb2N1c0NoYW5nZWQgPSBmdW5jdGlvbihldmVudCkKLXsKLSAgICB0aGlzLmN1cnJlbnRG
b2N1c0VsZW1lbnQgPSBldmVudC50YXJnZXQ7Ci19Ci0KIFdlYkluc3BlY3Rvci5zZXRBdHRhY2hl
ZFdpbmRvdyA9IGZ1bmN0aW9uKGF0dGFjaGVkKQogewogICAgIHRoaXMuYXR0YWNoZWQgPSBhdHRh
Y2hlZDsKQEAgLTcyNyw4ICs2MTAsOCBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRLZXlEb3duID0g
ZnVuY3Rpb24oZXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAodGhpcy5j
dXJyZW50Rm9jdXNFbGVtZW50ICYmIHRoaXMuY3VycmVudEZvY3VzRWxlbWVudC5oYW5kbGVLZXlF
dmVudCkgewotICAgICAgICB0aGlzLmN1cnJlbnRGb2N1c0VsZW1lbnQuaGFuZGxlS2V5RXZlbnQo
ZXZlbnQpOworICAgIGlmIChXZWJJbnNwZWN0b3IuY3VycmVudEZvY3VzRWxlbWVudCgpICYmIFdl
Ykluc3BlY3Rvci5jdXJyZW50Rm9jdXNFbGVtZW50KCkuaGFuZGxlS2V5RXZlbnQpIHsKKyAgICAg
ICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRGb2N1c0VsZW1lbnQoKS5oYW5kbGVLZXlFdmVudChldmVu
dCk7CiAgICAgICAgIGlmIChldmVudC5oYW5kbGVkKSB7CiAgICAgICAgICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA1MCwxNCArOTMzLDEwIEBA
IFdlYkluc3BlY3Rvci5zaG93UHJvZmlsZUZvclVSTCA9IGZ1bmN0aW9uKHVybCkKIAogV2ViSW5z
cGVjdG9yLmFkZE1haW5FdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uKGRvYykKIHsKLSAgICBkb2Mu
YWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLmZvY3VzQ2hhbmdlZC5iaW5kKHRoaXMpLCB0
cnVlKTsKICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuZG9jdW1lbnRL
ZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigiYmVm
b3JlY29weSIsIHRoaXMuZG9jdW1lbnRDYW5Db3B5LmJpbmQodGhpcyksIHRydWUpOwogICAgIGRv
Yy5hZGRFdmVudExpc3RlbmVyKCJjb3B5IiwgdGhpcy5kb2N1bWVudENvcHkuYmluZCh0aGlzKSwg
dHJ1ZSk7CiAgICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5jb250
ZXh0TWVudUV2ZW50RmlyZWQuYmluZCh0aGlzKSwgdHJ1ZSk7Ci0KLSAgICBkb2MuZGVmYXVsdFZp
ZXcuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLndpbmRvd0ZvY3VzZWQuYmluZCh0aGlz
KSwgZmFsc2UpOwotICAgIGRvYy5kZWZhdWx0Vmlldy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwg
dGhpcy53aW5kb3dCbHVycmVkLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICBkb2MuYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLmRvY3VtZW50Q2xpY2suYmluZCh0aGlzKSwgdHJ1ZSk7CiB9
CiAKQEAgLTEwNjcsMjkgKzk0Niw2IEBAIFdlYkluc3BlY3Rvci5mcm9udGVuZFJldXNlZCA9IGZ1
bmN0aW9uKCkKICAgICB0aGlzLnJlc2V0KCk7CiB9CiAKLVdlYkluc3BlY3Rvci5VSVN0cmluZyA9
IGZ1bmN0aW9uKHN0cmluZykKLXsKLSAgICBpZiAod2luZG93LmxvY2FsaXplZFN0cmluZ3MgJiYg
c3RyaW5nIGluIHdpbmRvdy5sb2NhbGl6ZWRTdHJpbmdzKQotICAgICAgICBzdHJpbmcgPSB3aW5k
b3cubG9jYWxpemVkU3RyaW5nc1tzdHJpbmddOwotICAgIGVsc2UgewotICAgICAgICBpZiAoIShz
dHJpbmcgaW4gV2ViSW5zcGVjdG9yLm1pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzKSkgewotICAgICAg
ICAgICAgaWYgKCFXZWJJbnNwZWN0b3IuSW5zcGVjdG9yQmFja2VuZFN0dWIpCi0gICAgICAgICAg
ICAgICAgY29uc29sZS53YXJuKCJMb2NhbGl6ZWQgc3RyaW5nIFwiIiArIHN0cmluZyArICJcIiBu
b3QgZm91bmQuIik7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IubWlzc2luZ0xvY2FsaXplZFN0
cmluZ3Nbc3RyaW5nXSA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoUHJlZmVyZW5j
ZXMuc2hvd01pc3NpbmdMb2NhbGl6ZWRTdHJpbmdzKQotICAgICAgICAgICAgc3RyaW5nICs9ICIg
KG5vdCBsb2NhbGl6ZWQpIjsKLSAgICB9Ci0KLSAgICByZXR1cm4gU3RyaW5nLnZzcHJpbnRmKHN0
cmluZywgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSk7Ci19Ci0KLVdl
Ykluc3BlY3Rvci51c2VMb3dlckNhc2VNZW51VGl0bGVzID0gZnVuY3Rpb24oKQotewotICAgIHJl
dHVybiBXZWJJbnNwZWN0b3IucGxhdGZvcm0gPT09ICJ3aW5kb3dzIiAmJiBQcmVmZXJlbmNlcy51
c2VMb3dlckNhc2VNZW51VGl0bGVzT25XaW5kb3dzOwotfQotCiBXZWJJbnNwZWN0b3IuX3Rvb2xi
YXJJdGVtQ2xpY2tlZCA9IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciB0b29sYmFySXRlbSA9
IGV2ZW50LmN1cnJlbnRUYXJnZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9qcy9EZXZUb29scy5qcyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRv
b2xzLmpzCmluZGV4IDUwODVjZWUyZmNhZjllZmFkYzU2YTcxMDNjZTUzOTM4ZjM0NTg0YTAuLjIz
ZDdhMGY0NjFhZDZjYjAzM2YxYzZiNDI4NDhjMjhhYzM4YTZlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCkBAIC01OCw2ICs1OCw3IEBAIHZhciBjb250ZXh0
ID0ge307ICAvLyBVc2VkIGJ5IFdlYkNvcmUncyBpbnNwZWN0b3Igcm91dGluZXMuCiAgICAgUHJl
ZmVyZW5jZXMuc2hvd05ldHdvcmtQYW5lbEluaXRpYXRvckNvbHVtbiA9IHRydWU7CiAgICAgUHJl
ZmVyZW5jZXMuaGF2ZUV4dGVuc2lvbnMgPSB0cnVlOwogICAgIFByZWZlcmVuY2VzLnNoYXJlZFdv
cmtlcnNMaXN0VVJMID0gImNocm9tZTovL3dvcmtlcnMvIjsKKyAgICBQcmVmZXJlbmNlcy5sb2Nh
bGl6ZVVJID0gZmFsc2U7CiB9KSgpOwogCiAvLyBSZWNvZ25pemUgV2ViUCBhcyBhIHZhbGlkIGlt
YWdlIG1pbWUgdHlwZS4K
</data>
<flag name="review"
          id="111279"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>