<?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>107136</bug_id>
          
          <creation_ts>2013-01-17 09:50:36 -0800</creation_ts>
          <short_desc>Web Inspector: Add early version of file system mappings editor to settings.</short_desc>
          <delta_ts>2013-01-18 04:29:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>809404</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-17 09:50:36 -0800</bug_when>
    <thetext>FileMapping simplified to use only one type of entries.
Added start/stopBatchUpdates to FileSystemWorkspaceProvider for better TabbedPane performance.
Added fileSystemProject experiment for file system support and (early and ugly) file system mappings editor behind this experiment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809410</commentid>
    <comment_count>1</comment_count>
      <attachid>183203</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-17 09:54:38 -0800</bug_when>
    <thetext>Created attachment 183203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809415</commentid>
    <comment_count>2</comment_count>
      <attachid>183204</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-17 10:00:01 -0800</bug_when>
    <thetext>Created attachment 183204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809416</commentid>
    <comment_count>3</comment_count>
      <attachid>183205</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-17 10:00:29 -0800</bug_when>
    <thetext>Created attachment 183205
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>809441</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-17 10:24:13 -0800</bug_when>
    <thetext>Attachment 183204 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/insp...&quot; exit_code: 1
Source/WebCore/inspector/front-end/Images/addIcon.png:0:  Have to enable auto props in the subversion config file (/home/alancutter/.subversion/config &quot;enable-auto-props = yes&quot;). Have to set the svn:mime-type in the subversion config file (/home/alancutter/.subversion/config &quot;*.png = svn:mime-type=image/png&quot;).  [image/png] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810469</commentid>
    <comment_count>5</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-18 04:29:10 -0800</bug_when>
    <thetext>Committed r140124: &lt;http://trac.webkit.org/changeset/140124&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183203</attachid>
            <date>2013-01-17 09:54:38 -0800</date>
            <delta_ts>2013-01-17 09:59:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107136-20130117215138.patch</filename>
            <type>text/plain</type>
            <size>29757</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwZmJiM2JhNDZkM2Q2
Y2Q3N2I2MzRiM2E1MTFkYTMyNTcwZmJmYy4uMzczZTMzZTQ0ZmRlNDBiZDg2ZGNhMjNjZjQ2ZDE5
YWRkYmM1OTUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1IEBACiAyMDEzLTAxLTE3ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBlYXJseSB2ZXJzaW9uIG9mIGZpbGUgc3lzdGVtIG1hcHBpbmdzIGVkaXRvciB0byBz
ZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpbGVNYXBwaW5nIHNpbXBsaWZpZWQgdG8gdXNlIG9ubHkgb25lIHR5cGUgb2YgZW50cmllcy4K
KyAgICAgICAgQWRkZWQgc3RhcnQvc3RvcEJhdGNoVXBkYXRlcyB0byBGaWxlU3lzdGVtV29ya3Nw
YWNlUHJvdmlkZXIgZm9yIGJldHRlciBUYWJiZWRQYW5lIHBlcmZvcm1hbmNlLgorICAgICAgICBB
ZGRlZCBmaWxlU3lzdGVtUHJvamVjdCBleHBlcmltZW50IGZvciBmaWxlIHN5c3RlbSBzdXBwb3J0
IGFuZCAoZWFybHkgYW5kIHVnbHkpIGZpbGUgc3lzdGVtIG1hcHBpbmdzIGVkaXRvciBiZWhpbmQg
dGhpcyBleHBlcmltZW50LgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0ZpbGVNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuX2VudHJ5TWF0
Y2hlc1VSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcucHJvdG90eXBlLl9l
bnRyeVVSSVByZWZpeCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcucHJvdG90
eXBlLmhhc01hcHBpbmdGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LnByb3RvdHlwZS5faW5uZXJVUklGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS51cmlGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS51cmxGb3JVUkkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS5tYXBwaW5nRW50cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmlsZU1hcHBpbmcucHJvdG90eXBlLnNldE1hcHBpbmdFbnRyaWVzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuc2V0IF9sb2FkRnJvbVNldHRpbmdzLmdldCB0
aGlzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuc2V0IF9s
b2FkRnJvbVNldHRpbmdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRy
eSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtV29ya3NwYWNlUHJv
dmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3Zp
ZGVyLnByb3RvdHlwZS5fZmlsZVN5c3RlbVJlbW92ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvSXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9maWxlU3lzdGVtQWRkZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5nc1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VT
ZXR0aW5nc1RhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIu
cHJvdG90eXBlLl9jcmVhdGVGaWxlU3lzdGVtc0VkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9jcmVhdGVTaG93VGV4dElucHV0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2Ny
ZWF0ZUVkaXRUZXh0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRp
bmdzVGFiLnByb3RvdHlwZS5fY3JlYXRlUmVtb3ZlQnV0dG9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2NyZWF0ZUFkZEJ1dHRvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9hZGRG
aWxlU3lzdGVtUm93LnJlbW92ZUZpbGVTeXN0ZW1DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2FkZEZpbGVTeXN0ZW1Sb3cuZmls
ZVN5c3RlbVJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRpbmdz
VGFiLnByb3RvdHlwZS5fYWRkRmlsZVN5c3RlbVJvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9hZGRGaWxlU3lzdGVtQ2xpY2tlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9maWxl
U3lzdGVtQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRpbmdzVGFi
LnByb3RvdHlwZS5fY3JlYXRlRmlsZU1hcHBpbmdFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldvcmtzcGFjZVNldHRpbmdzVGFiLnByb3RvdHlwZS5fYWRkTWFwcGluZ1Jvdy5yZW1vdmVN
YXBwaW5nQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NU
YWIucHJvdG90eXBlLl9hZGRNYXBwaW5nUm93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2FkZEZpbGVNYXBwaW5nQ2xpY2tlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAgKC5zZXR0
aW5ncy10YWIgLmZpbGUtc3lzdGVtcy1lZGl0b3IgaW5wdXQuZmlsZS1zeXN0ZW0tcGF0aCk6Cisg
ICAgICAgICguc2V0dGluZ3MtdGFiIC5maWxlLW1hcHBpbmdzLWVkaXRvciAud29ya3NwYWNlLXNl
dHRpbmdzLXJvdyBpbnB1dCk6CisgICAgICAgICguc2V0dGluZ3MtdGFiIC5maWxlLW1hcHBpbmdz
LWVkaXRvciAud29ya3NwYWNlLXNldHRpbmdzLXJvdyBpbnB1dC5maWxlLW1hcHBpbmctdXJsKToK
KyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLmJ1dHRvbjpob3Zlcik6CisgICAgICAg
ICgjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93OmhvdmVyIC5i
dXR0b24pOgorICAgICAgICAoI3dvcmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRp
bmdzLXJvdyAuYnV0dG9uKToKKyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLndvcmtz
cGFjZS1zZXR0aW5ncy1yb3cgLnJlbW92ZS1idXR0b24pOgorICAgICAgICAoI3dvcmtzcGFjZS10
YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdyAuYWRkLWJ1dHRvbik6CisgICAgICAg
ICgjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IC5maWxlLXN5
c3RlbS1hZGQtYnV0dG9uKToKKyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLndvcmtz
cGFjZS1zZXR0aW5ncy1yb3cgLmZpbGUtc3lzdGVtLWFkZC1idXR0b246aG92ZXIpOgorCisyMDEz
LTAxLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE9wZW4gcmVzb3VyY2UgZGlhbG9nIGhhcyBwb29yIHBlcmZvcm1hbmNl
LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MTIy
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cwppbmRleCBhYTk2ZDNiMjQ3NjczYmU5NzBmYmViZDJiODZmMjE1ZjlkMTFmYzdiLi5mNjI4ZWM4
NDI4M2IzMWFlZGI5OGZhN2RmNjk3M2Y5MjFmNGQzNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC00NDMsNiArNDQzLDcgQEAg
bG9jYWxpemVkU3RyaW5nc1siV2l0aCBCbG9jayJdID0gIldpdGggQmxvY2siOwogbG9jYWxpemVk
U3RyaW5nc1siV29yZCBXcmFwIl0gPSAiV29yZCBXcmFwIjsKIGxvY2FsaXplZFN0cmluZ3NbIldv
cmQgd3JhcCJdID0gIldvcmQgd3JhcCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXb3JrZXJzIl0gPSAi
V29ya2VycyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXb3Jrc3BhY2UiXSA9ICJXb3Jrc3BhY2UiOwog
bG9jYWxpemVkU3RyaW5nc1siWEhSIExvYWQiXSA9ICJYSFIgTG9hZCI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJYSFIgUmVhZHkgU3RhdGUgQ2hhbmdlIl0gPSAiWEhSIFJlYWR5IFN0YXRlIENoYW5nZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJYSFIiXSA9ICJYSFIiOwpAQCAtODI5LDMgKzgzMCw5IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIlNob3cgdG9vbGJhciBpY29ucyJdID0gIlNob3cgdG9vbGJhciBpY29u
cyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBcHBlYXJhbmNlIl0gPSAiQXBwZWFyYW5jZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJMaXZlIEVkaXQiXSA9ICJMaXZlIEVkaXQiOwogbG9jYWxpemVkU3RyaW5n
c1siTGl2ZSBlZGl0Il0gPSAiTGl2ZSBlZGl0IjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGUgbWFw
cGluZyB1cmwiXSA9ICJGaWxlIG1hcHBpbmcgdXJsIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGUg
bWFwcGluZyBwYXRoIl0gPSAiRmlsZSBtYXBwaW5nIHBhdGgiOworbG9jYWxpemVkU3RyaW5nc1si
QWRkIGZpbGUgc3lzdGVtIl0gPSAiQWRkIGZpbGUgc3lzdGVtIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkZpbGUgc3lzdGVtcyJdID0gIkZpbGUgc3lzdGVtcyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJNYXBw
aW5ncyJdID0gIk1hcHBpbmdzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFkZCJdID0gIkFkZCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggYTAzNGY1ZDAwOThjMTRkOTRkZWQ0YzJjNzMwZjhkMWJlMzFjZTRh
NC4uOWM1YTA4YjA1MzVmOTgxZTM4OGUzMWU2ZGIzODM4NTMyNzExMTgyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTQwOCw2ICs1NDA4LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL1VnbGlmeUpTL3BhcnNlLWpzLmpzJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmluc3Bl
Y3Rvcl9pbWFnZV9maWxlcyc6IFsKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0lt
YWdlcy9hZGRJY29uLnBuZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFn
ZXMvYXBwbGljYXRpb25DYWNoZS5wbmcnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvSW1hZ2VzL2JhY2sucG5nJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0lt
YWdlcy9icmVha3BvaW50Qm9yZGVyLnBuZycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9GaWxlTWFwcGluZy5qcwppbmRleCA2ODYxZDAwMmI5MzlkYTY2ODY5OTkz
YjUxOGFjYTJkN2U2M2ExZGEyLi5iMzQ3Y2Y3NzcyNWQyYzkwNTZlNGMwNzE3MDhjYzgxZWQ2NzJl
ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVN
YXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1h
cHBpbmcuanMKQEAgLTM2LDI2ICszNiw1MyBAQCBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcgPSBm
dW5jdGlvbihmaWxlU3lzdGVtTWFwcGluZykKIHsKICAgICB0aGlzLl9maWxlU3lzdGVtTWFwcGlu
ZyA9IGZpbGVTeXN0ZW1NYXBwaW5nOwogICAgIHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZyA9
IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJmaWxlTWFwcGluZ0VudHJpZXMi
LCBbXSk7Ci0gICAgLyoqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLk1h
cHBpbmdFbnRyeT59ICovCi0gICAgdGhpcy5fbWFwcGluZ0VudHJpZXMgPSBbXTsKLSAgICB0aGlz
Ll9kZXNlcmlhbGl6ZSgvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcu
TWFwcGluZ0VudHJ5Pn0gKi8gKHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZy5nZXQoKSkpOwor
ICAgIC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeT59ICov
CisgICAgdGhpcy5fZW50cmllcyA9IFtdOworICAgIHRoaXMuX2xvYWRGcm9tU2V0dGluZ3MoKTsK
IH0KIAotLyoqIEB0eXBlZGVmIHt7dXJsUHJlZml4OiBzdHJpbmcsIHBhdGhQcmVmaXg6IHN0cmlu
Z319ICovCi1XZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuU2VyaWFsaXplZE1hcHBpbmdFbnRyeTsK
LQogV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAvKioKKyAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeX0gZW50cnkKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAg
ICBfZW50cnlNYXRjaGVzVVJMOiBmdW5jdGlvbihlbnRyeSwgdXJsKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHVybC5pbmRleE9mKGVudHJ5LnVybFByZWZpeCkgPT09IDA7CisgICAgfSwKKyAgICAK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeX0g
ZW50cnkKKyAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQorICAgICAqLworICAgIF9lbnRyeVVSSVBy
ZWZpeDogZnVuY3Rpb24oZW50cnkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZmlsZVN5
c3RlbU1hcHBpbmcudXJpRm9yUGF0aChlbnRyeS5wYXRoUHJlZml4KTsKKyAgICB9LAorICAgIAor
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcmV0dXJuIHtib29s
ZWFufQogICAgICAqLwogICAgIGhhc01hcHBpbmdGb3JVUkw6IGZ1bmN0aW9uKHVybCkKICAgICB7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9tYXBwaW5nRW50cmllc1tpXS5tYXRjaGVz
VVJMKHVybCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiAh
IXRoaXMuX2lubmVyVVJJRm9yVVJMKHVybCk7CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7P3N0cmluZ30KKyAgICAgKi8K
KyAgICBfaW5uZXJVUklGb3JVUkw6IGZ1bmN0aW9uKHVybCkKKyAgICB7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fZW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAg
dmFyIGVudHJ5ID0gdGhpcy5fZW50cmllc1tpXTsKKyAgICAgICAgICAgIHZhciB1cmlQcmVmaXgg
PSB0aGlzLl9lbnRyeVVSSVByZWZpeChlbnRyeSk7CisgICAgICAgICAgICBpZiAodXJpUHJlZml4
ICYmIHRoaXMuX2VudHJ5TWF0Y2hlc1VSTChlbnRyeSwgdXJsKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdXJpUHJlZml4ICsgdXJsLnN1YnN0cmluZyhlbnRyeS51cmxQcmVmaXgubGVuZ3RoKTsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBudWxsOwog
ICAgIH0sCiAgICAgCiAgICAgLyoqCkBAIC02NCwxMyArOTEsOCBAQCBXZWJJbnNwZWN0b3IuRmls
ZU1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHVyaUZvclVSTDogZnVuY3Rpb24o
dXJsKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9tYXBwaW5nRW50
cmllcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHVyaSA9IHRoaXMuX21hcHBpbmdF
bnRyaWVzW2ldLnVyaUZvclVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKHR5cGVvZiB1cmkgPT09
ICJzdHJpbmciKQotICAgICAgICAgICAgICAgIHJldHVybiB1cmk7Ci0gICAgICAgIH0KICAgICAg
ICAgLy8gRklYTUU6IEZpbGVNYXBwaW5nIHNob3VsZCBiZSBuZXR3b3JrIHByb2plY3QgYXdhcmUu
IEl0IHNob3VsZCByZXR1cm4gY29ycmVjdCB1cmkgZm9yIG5ldHdvcmsgcHJvamVjdCB1aVNvdXJj
ZUNvZGVzLgotICAgICAgICByZXR1cm4gdXJsOworICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJV
UklGb3JVUkwodXJsKSB8fCB1cmw7CiAgICAgfSwKICAgICAKICAgICAvKioKQEAgLTc5LDQ2ICsx
MDEsNDAgQEAgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICB1cmxGb3JVUkk6IGZ1bmN0aW9uKHVyaSkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IGlmICh0aGlzLl9tYXBwaW5nRW50cmllc1tpXS5tYXRjaGVzVVJJKHVyaSkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX21hcHBpbmdFbnRyaWVzW2ldLnVybEZvclVSSSh1cmkpOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2VudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgIHZhciBlbnRyeSA9IHRoaXMuX2VudHJpZXNbaV07CisgICAgICAgICAgICB2YXIg
dXJpUHJlZml4ID0gdGhpcy5fZW50cnlVUklQcmVmaXgoZW50cnkpOworICAgICAgICAgICAgaWYg
KHVyaVByZWZpeCAmJiB1cmkuaW5kZXhPZih1cmlQcmVmaXgpID09PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiBlbnRyeS51cmxQcmVmaXggKyB1cmkuc3Vic3RyaW5nKHVyaVByZWZpeC5sZW5n
dGgpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9LAogCiAgICAgLyoqCi0g
ICAgICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLlNlcmlhbGl6ZWRN
YXBwaW5nRW50cnk+fSBzZXJpYWxpemVkTWFwcGluZ0VudHJpZXMKLSAgICAgKi8KLSAgICBzZXRN
YXBwaW5nczogZnVuY3Rpb24oc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fZGVzZXJpYWxpemUoc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKTsKLSAgICAgICAg
dGhpcy5fc2VyaWFsaXplKCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge0Fy
cmF5LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5Pn0KKyAgICAgKiBAcmV0
dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5Pn0KICAgICAgKi8KLSAg
ICBtYXBwaW5nczogZnVuY3Rpb24oKQorICAgIG1hcHBpbmdFbnRyaWVzOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbWFwcGluZ0VudHJpZXMuc2xpY2UoKTsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2VudHJpZXMuc2xpY2UoKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLlNlcmlhbGl6ZWRNYXBw
aW5nRW50cnk+fSBzZXJpYWxpemVkTWFwcGluZ0VudHJpZXMKKyAgICAgKiBAcGFyYW0ge0FycmF5
LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnk+fSBtYXBwaW5nRW50cmllcwogICAgICAq
LwotICAgIF9kZXNlcmlhbGl6ZTogZnVuY3Rpb24oc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKQor
ICAgIHNldE1hcHBpbmdFbnRyaWVzOiBmdW5jdGlvbihtYXBwaW5nRW50cmllcykKICAgICB7Ci0g
ICAgICAgIHRoaXMuX21hcHBpbmdFbnRyaWVzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAg
dGhpcy5fbWFwcGluZ0VudHJpZXMucHVzaChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGlu
Z0VudHJ5LmRlc2VyaWFsaXplKHNlcmlhbGl6ZWRNYXBwaW5nRW50cmllc1tpXSwgdGhpcy5fZmls
ZVN5c3RlbU1hcHBpbmcpKTsKKyAgICAgICAgdGhpcy5fZW50cmllcyA9IG1hcHBpbmdFbnRyaWVz
OworICAgICAgICB0aGlzLl9tYXBwaW5nRW50cmllc1NldHRpbmcuc2V0KG1hcHBpbmdFbnRyaWVz
KTsKICAgICB9LAogCi0gICAgX3NlcmlhbGl6ZTogZnVuY3Rpb24oKQorICAgIF9sb2FkRnJvbVNl
dHRpbmdzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgc2F2ZWRFbnRyaWVzID0gW107
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICBzYXZlZEVudHJpZXMucHVzaCh0aGlzLl9tYXBwaW5nRW50cmll
c1tpXS5zZXJpYWxpemUoKSk7Ci0gICAgICAgIHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZy5z
ZXQoc2F2ZWRFbnRyaWVzKTsKKyAgICAgICAgdmFyIHNhdmVkRW50cmllcyA9IHRoaXMuX21hcHBp
bmdFbnRyaWVzU2V0dGluZy5nZXQoKTsKKyAgICAgICAgdGhpcy5fZW50cmllcyA9IFtdOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhdmVkRW50cmllcy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgdmFyIGVudHJ5ID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeShz
YXZlZEVudHJpZXNbaV0udXJsUHJlZml4LCBzYXZlZEVudHJpZXNbaV0ucGF0aFByZWZpeCk7Cisg
ICAgICAgICAgICB0aGlzLl9lbnRyaWVzLnB1c2goZW50cnkpOworICAgICAgICB9CiAgICAgfSwK
IAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKQEAgLTEyOCw3
NyArMTQ0LDExIEBAIFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgKiBA
Y29uc3RydWN0b3IKICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxQcmVmaXgKICAqIEBwYXJhbSB7c3Ry
aW5nfSBwYXRoUHJlZml4Ci0gKiBAcGFyYW0gez9zdHJpbmd9IHVyaVByZWZpeAogICovCi1XZWJJ
bnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5ID0gZnVuY3Rpb24odXJsUHJlZml4LCBw
YXRoUHJlZml4LCB1cmlQcmVmaXgpCitXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkgPSBm
dW5jdGlvbih1cmxQcmVmaXgsIHBhdGhQcmVmaXgpCiB7Ci0gICAgdGhpcy5fdXJsUHJlZml4ID0g
dXJsUHJlZml4OwotICAgIHRoaXMuX3BhdGhQcmVmaXggPSBwYXRoUHJlZml4OwotICAgIHRoaXMu
X3VyaVByZWZpeCA9IHVyaVByZWZpeDsKLX0KLQotLyoqCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5GaWxlTWFwcGluZy5TZXJpYWxpemVkTWFwcGluZ0VudHJ5fSBzZXJpYWxpemVkTWFwcGluZ0Vu
dHJ5Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZ30gZmlsZVN5c3Rl
bU1hcHBpbmcKLSAqLwotV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLk1hcHBpbmdFbnRyeS5kZXNl
cmlhbGl6ZSA9IGZ1bmN0aW9uKHNlcmlhbGl6ZWRNYXBwaW5nRW50cnksIGZpbGVTeXN0ZW1NYXBw
aW5nKQotewotICAgIHZhciB1cmlQcmVmaXggPSBmaWxlU3lzdGVtTWFwcGluZy51cmlGb3JQYXRo
KHNlcmlhbGl6ZWRNYXBwaW5nRW50cnkucGF0aFByZWZpeCk7Ci0gICAgcmV0dXJuIG5ldyBXZWJJ
bnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5KHNlcmlhbGl6ZWRNYXBwaW5nRW50cnku
dXJsUHJlZml4LCBzZXJpYWxpemVkTWFwcGluZ0VudHJ5LnBhdGhQcmVmaXgsIHVyaVByZWZpeCk7
Ci19Ci0KLVdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5NYXBwaW5nRW50cnkucHJvdG90eXBlID0g
ewotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAgICAgKiBAcmV0dXJuIHti
b29sZWFufQotICAgICAqLwotICAgIG1hdGNoZXNVUkw6IGZ1bmN0aW9uKHVybCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB1cmwuaW5kZXhPZih0aGlzLl91cmxQcmVmaXgpID09PSAwOwotICAgIH0s
Ci0gICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQotICAgICAqIEByZXR1
cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgbWF0Y2hlc1VSSTogZnVuY3Rpb24odXJpKQotICAg
IHsKLSAgICAgICAgaWYgKCF0aGlzLl91cmlQcmVmaXgpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIHJldHVybiB1cmkuaW5kZXhPZih0aGlzLl91cmlQcmVmaXgpID09PSAwOwot
ICAgIH0sCi0gICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAq
IEByZXR1cm4gez9zdHJpbmd9Ci0gICAgICovCi0gICAgdXJpRm9yVVJMOiBmdW5jdGlvbih1cmwp
Ci0gICAgewotICAgICAgICBpZiAodGhpcy5fdXJpUHJlZml4ICYmIHRoaXMubWF0Y2hlc1VSTCh1
cmwpKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VyaVByZWZpeCArIHVybC5zdWJzdHJpbmco
dGhpcy5fdXJsUHJlZml4Lmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0sCi0g
ICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQotICAgICAqIEByZXR1cm4g
e3N0cmluZ30KLSAgICAgKi8KLSAgICB1cmxGb3JVUkk6IGZ1bmN0aW9uKHVyaSkKLSAgICB7Ci0g
ICAgICAgIGlmICh0aGlzLm1hdGNoZXNVUkkodXJpKSkKLSAgICAgICAgICAgIHJldHVybiB0aGlz
Ll91cmxQcmVmaXggKyB1cmkuc3Vic3RyaW5nKHRoaXMuX3VyaVByZWZpeC5sZW5ndGgpOwotICAg
ICAgICByZXR1cm4gIiI7Ci0gICAgfSwKLSAgICAKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtP
YmplY3R9Ci0gICAgICovCi0gICAgc2VyaWFsaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICByZXR1cm4geyB1cmxQcmVmaXg6IHRoaXMuX3VybFByZWZpeCwgcGF0aFByZWZpeDogdGhpcy5f
cGF0aFByZWZpeCB9OwotICAgIH0sCi0KLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlCisgICAgdGhpcy51cmxQcmVmaXggPSB1cmxQcmVmaXg7CisgICAgdGhpcy5w
YXRoUHJlZml4ID0gcGF0aFByZWZpeDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVdvcmtzcGFjZVBy
b3ZpZGVyLmpzCmluZGV4IGZlMDdjOWJiZWE2ODFiMDhmYTc3ODhmOTg4OGJhYzU2YmJkMDM5OTYu
LmFmNjI3MjZlNzVhZDIwYjdiYWUzMjMxODU5ZmZiMGJlOWFjMGIyYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVdvcmtzcGFjZVByb3Zp
ZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3Rl
bVdvcmtzcGFjZVByb3ZpZGVyLmpzCkBAIC0xMzAsOSArMTMwLDExIEBAIFdlYkluc3BlY3Rvci5G
aWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9m
aWxlU3lzdGVtUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgeworICAgICAgICBXZWJJbnNw
ZWN0b3Iuc3RhcnRCYXRjaFVwZGF0ZSgpOwogICAgICAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSAv
KiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOwogICAgICAgICBmb3IgKHZhciB1cmkg
aW4gdGhpcy5fZmlsZXNbZmlsZVN5c3RlbVBhdGhdKQogICAgICAgICAgICAgdGhpcy5fcmVtb3Zl
RmlsZShmaWxlU3lzdGVtUGF0aCwgdXJpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmVuZEJhdGNo
VXBkYXRlKCk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwuanMKaW5k
ZXggZWI4NGVlZTQzNTIwZjU1Y2VlNjc4Yzg1N2Y5OTUwYTlhZDYyYTFiZC4uZmQyYWIyOGM2MGQ1
YWNhODUzMDNiNzAzMjQ5ZDVmMmQxZGY0N2VkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbU1vZGVsLmpz
CkBAIC03NCw3ICs3NCw3IEBAIFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
c3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxs
YmFjawogICAgICAqLwogICAgIGFkZEZpbGVTeXN0ZW06IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAg
IHsKQEAgLTEzNCwxNyArMTM0LDE0IEBAIFdlYkluc3BlY3Rvci5Jc29sYXRlZEZpbGVTeXN0ZW1N
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2ZpbGVTeXN0ZW1BZGRlZDogZnVuY3Rp
b24oZXJyb3JNZXNzYWdlLCBmaWxlU3lzdGVtKQogICAgIHsKLSAgICAgICAgaWYgKGVycm9yTWVz
c2FnZSkgewotICAgICAgICAgICAgY29uc29sZS5lcnJvcigiRXJyb3I6ICIgKyBlcnJvck1lc3Nh
Z2UpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZmlsZVN5
c3RlbSkKLSAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1QYXRoOwot
ICAgICAgICBpZiAoZmlsZVN5c3RlbSkgeworICAgICAgICBpZiAoZXJyb3JNZXNzYWdlKQorICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKQorICAg
ICAgICBlbHNlIGlmIChmaWxlU3lzdGVtKSB7CiAgICAgICAgICAgICB0aGlzLl9pbm5lckFkZEZp
bGVTeXN0ZW0oZmlsZVN5c3RlbSk7CiAgICAgICAgICAgICBmaWxlU3lzdGVtUGF0aCA9IGZpbGVT
eXN0ZW0uZmlsZVN5c3RlbVBhdGg7CiAgICAgICAgIH0KKwogICAgICAgICBpZiAodGhpcy5fc2Vs
ZWN0RmlsZVN5c3RlbVBhdGhDYWxsYmFjaykgewogICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rmls
ZVN5c3RlbVBhdGhDYWxsYmFjayhmaWxlU3lzdGVtUGF0aCk7CiAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fc2VsZWN0RmlsZVN5c3RlbVBhdGhDYWxsYmFjazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDgzZjVmYjkyODQyMmUxNWFmNDhi
N2YxNzFhMTUyMmQ2OGJkYmE5NWYuLmI5ZTg2NGJlNzQ1YmI3MzcwOWQ2NjIwOWY2ZjEwMWQ3YzFh
OTgzNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0
dGluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5n
cy5qcwpAQCAtMjA5LDYgKzIwOSw3IEBAIFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdz
ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuY29kZW1pcnJvciA9IHRoaXMuX2NyZWF0ZUV4cGVyaW1l
bnQoImNvZGVtaXJyb3IiLCAiVXNlIENvZGVNaXJyb3IgZWRpdG9yIik7CiAgICAgdGhpcy5jc3NS
ZWdpb25zID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgiY3NzUmVnaW9ucyIsICJDU1MgUmVnaW9u
cyBTdXBwb3J0Iik7CiAgICAgdGhpcy5zaG93T3ZlcnJpZGVzSW5EcmF3ZXIgPSB0aGlzLl9jcmVh
dGVFeHBlcmltZW50KCJzaG93T3ZlcnJpZGVzSW5EcmF3ZXIiLCAiU2hvdyBPdmVycmlkZXMgaW4g
ZHJhd2VyIik7CisgICAgdGhpcy5maWxlU3lzdGVtUHJvamVjdCA9IHRoaXMuX2NyZWF0ZUV4cGVy
aW1lbnQoImZpbGVTeXN0ZW1Qcm9qZWN0IiwgIkZpbGUgc3lzdGVtIGZvbGRlcnMgaW4gU291cmNl
cyBQYW5lbCIpOwogCiAgICAgdGhpcy5fY2xlYW5VcFNldHRpbmcoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCmluZGV4
IDhkZjBkNmNhMWYzN2ViYTAyMTZmNmJjY2NjMGU2NTFjNzQ5NzE4MjAuLmM2NTg5MjhmZTY3ZTRm
ZDU0MDc2OTFkMmZkNjdhMTU5ZTA4ZDMwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcwpAQCAtNTEsNiArNTEsOCBAQCBX
ZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbihvbkhpZGUpCiAgICAgdGhpcy5f
dGFiYmVkUGFuZS5hcHBlbmRUYWIoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRhYnMuR2Vu
ZXJhbCwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHZW5lcmFsIiksIG5ldyBXZWJJbnNwZWN0b3Iu
R2VuZXJpY1NldHRpbmdzVGFiKCkpOwogICAgIGlmICghV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRz
U2V0dGluZ3Muc2hvd092ZXJyaWRlc0luRHJhd2VyLmlzRW5hYmxlZCgpKQogICAgICAgICB0aGlz
Ll90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFicy5P
dmVycmlkZXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiT3ZlcnJpZGVzIiksIG5ldyBXZWJJbnNw
ZWN0b3IuT3ZlcnJpZGVzU2V0dGluZ3NUYWIoKSk7CisgICAgaWYgKFdlYkluc3BlY3Rvci5leHBl
cmltZW50c1NldHRpbmdzLmZpbGVTeXN0ZW1Qcm9qZWN0LmlzRW5hYmxlZCgpKQorICAgICAgICB0
aGlzLl90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFi
cy5Xb3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiV29ya3NwYWNlIiksIG5ldyBXZWJJ
bnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIoKSk7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5l
eHBlcmltZW50c1NldHRpbmdzLmV4cGVyaW1lbnRzRW5hYmxlZCkKICAgICAgICAgdGhpcy5fdGFi
YmVkUGFuZS5hcHBlbmRUYWIoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRhYnMuRXhwZXJp
bWVudHMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhwZXJpbWVudHMiKSwgbmV3IFdlYkluc3Bl
Y3Rvci5FeHBlcmltZW50c1NldHRpbmdzVGFiKCkpOwogICAgIHRoaXMuX3RhYmJlZFBhbmUuYXBw
ZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5UYWJzLlNob3J0Y3V0cywgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTaG9ydGN1dHMiKSwgV2ViSW5zcGVjdG9yLnNob3J0Y3V0c1NjcmVl
bi5jcmVhdGVTaG9ydGN1dHNUYWJWaWV3KCkpOwpAQCAtNjUsNiArNjcsNyBAQCBXZWJJbnNwZWN0
b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5jdGlvbihvbkhpZGUpCiBXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NTY3JlZW4uVGFicyA9IHsKICAgICBHZW5lcmFsOiAiZ2VuZXJhbCIsCiAgICAgT3ZlcnJpZGVz
OiAib3ZlcnJpZGVzIiwKKyAgICBXb3Jrc3BhY2U6ICJ3b3Jrc3BhY2UiLAogICAgIEV4cGVyaW1l
bnRzOiAiZXhwZXJpbWVudHMiLAogICAgIFNob3J0Y3V0czogInNob3J0Y3V0cyIKIH0KQEAgLTQz
Niw2ICs0MzksMTkyIEBAIFdlYkluc3BlY3Rvci5PdmVycmlkZXNTZXR0aW5nc1RhYi5wcm90b3R5
cGUgPSB7CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NUYWJ9CiAgKi8KK1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYiA9IGZ1bmN0aW9u
KCkKK3sKKyAgICBXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWIuY2FsbCh0aGlzLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIldvcmtzcGFjZSIpLCAid29ya3NwYWNlLXRhYi1jb250ZW50Iik7CisgICAg
dGhpcy5fY3JlYXRlRmlsZVN5c3RlbXNFZGl0b3IoKTsKKyAgICB0aGlzLl9jcmVhdGVGaWxlTWFw
cGluZ0VkaXRvcigpOworfQorCitXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJv
dG90eXBlID0geworICAgIF9jcmVhdGVGaWxlU3lzdGVtc0VkaXRvcjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHAgPSB0aGlzLl9hcHBlbmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRmlsZSBzeXN0ZW1zIikpOworICAgICAgICB0aGlzLl9maWxlU3lzdGVtc0VkaXRvciA9
IHAuY3JlYXRlQ2hpbGQoInAiLCAiZmlsZS1zeXN0ZW1zLWVkaXRvciIpOworCisgICAgICAgIHRo
aXMuX2FkZEZpbGVTeXN0ZW1Sb3dFbGVtZW50ID0gdGhpcy5fZmlsZVN5c3RlbXNFZGl0b3IuY3Jl
YXRlQ2hpbGQoImRpdiIsICJ3b3Jrc3BhY2Utc2V0dGluZ3Mtcm93Iik7CisgICAgICAgIHZhciBh
ZGRGaWxlU3lzdGVtQnV0dG9uID0gdGhpcy5fYWRkRmlsZVN5c3RlbVJvd0VsZW1lbnQuY3JlYXRl
Q2hpbGQoImlucHV0IiwgImZpbGUtc3lzdGVtLWFkZC1idXR0b24iKTsKKyAgICAgICAgYWRkRmls
ZVN5c3RlbUJ1dHRvbi50eXBlID0gImJ1dHRvbiI7CisgICAgICAgIGFkZEZpbGVTeXN0ZW1CdXR0
b24udmFsdWUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFkZCBmaWxlIHN5c3RlbSIpOworICAg
ICAgICBhZGRGaWxlU3lzdGVtQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
YWRkRmlsZVN5c3RlbUNsaWNrZWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdmFyIGZpbGVTeXN0
ZW1QYXRocyA9IFdlYkluc3BlY3Rvci5pc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5tYXBwaW5nKCku
ZmlsZVN5c3RlbVBhdGhzKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZVN5c3Rl
bVBhdGhzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fYWRkRmlsZVN5c3RlbVJvdyhm
aWxlU3lzdGVtUGF0aHNbaV0pOworCisgICAgICAgIHJldHVybiB0aGlzLl9maWxlU3lzdGVtc0Vk
aXRvcjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7RWxlbWVudH0KKyAgICAg
Ki8KKyAgICBfY3JlYXRlU2hvd1RleHRJbnB1dDogZnVuY3Rpb24oY2xhc3NOYW1lLCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIHZhciBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOworICAgICAgICBpbnB1dEVsZW1lbnQuYWRkU3R5bGVDbGFzcyhjbGFzc05hbWUp
OworICAgICAgICBpbnB1dEVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsKKyAgICAgICAgaW5wdXRFbGVt
ZW50LnZhbHVlID0gdmFsdWU7CisgICAgICAgIGlucHV0RWxlbWVudC50aXRsZSA9IHZhbHVlOwor
ICAgICAgICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gaW5w
dXRFbGVtZW50OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQor
ICAgICAqLworICAgIF9jcmVhdGVFZGl0VGV4dElucHV0OiBmdW5jdGlvbihjbGFzc05hbWUsIHBs
YWNlSG9sZGVyKQorICAgIHsKKyAgICAgICAgdmFyIGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImlucHV0Iik7CisgICAgICAgIGlucHV0RWxlbWVudC5hZGRTdHlsZUNsYXNz
KGNsYXNzTmFtZSk7CisgICAgICAgIGlucHV0RWxlbWVudC50eXBlID0gInRleHQiOworICAgICAg
ICBpbnB1dEVsZW1lbnQucGxhY2Vob2xkZXIgPSBwbGFjZUhvbGRlcjsKKyAgICAgICAgcmV0dXJu
IGlucHV0RWxlbWVudDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlv
bihFdmVudCl9IGhhbmRsZXIKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQorICAgICAqLworICAg
IF9jcmVhdGVSZW1vdmVCdXR0b246IGZ1bmN0aW9uKGhhbmRsZXIpCisgICAgeworICAgICAgICB2
YXIgcmVtb3ZlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CisgICAg
ICAgIHJlbW92ZUJ1dHRvbi5hZGRTdHlsZUNsYXNzKCJidXR0b24iKTsKKyAgICAgICAgcmVtb3Zl
QnV0dG9uLmFkZFN0eWxlQ2xhc3MoInJlbW92ZS1idXR0b24iKTsKKyAgICAgICAgcmVtb3ZlQnV0
dG9uLnZhbHVlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW1vdmUiKTsKKyAgICAgICAgcmVt
b3ZlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaGFuZGxlciwgZmFsc2UpOworICAg
ICAgICByZXR1cm4gcmVtb3ZlQnV0dG9uOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKEV2ZW50KX0gaGFuZGxlcgorICAgICAqIEByZXR1cm4ge0VsZW1lbnR9Cisg
ICAgICovCisgICAgX2NyZWF0ZUFkZEJ1dHRvbjogZnVuY3Rpb24oaGFuZGxlcikKKyAgICB7Cisg
ICAgICAgIHZhciBhZGRCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsK
KyAgICAgICAgYWRkQnV0dG9uLmFkZFN0eWxlQ2xhc3MoImJ1dHRvbiIpOworICAgICAgICBhZGRC
dXR0b24uYWRkU3R5bGVDbGFzcygiYWRkLWJ1dHRvbiIpOworICAgICAgICBhZGRCdXR0b24udmFs
dWUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFkZCIpOworICAgICAgICBhZGRCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVyLCBmYWxzZSk7CisgICAgICAgIHJldHVybiBh
ZGRCdXR0b247CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxl
U3lzdGVtUGF0aAorICAgICAqLworICAgIF9hZGRGaWxlU3lzdGVtUm93OiBmdW5jdGlvbihmaWxl
U3lzdGVtUGF0aCkKKyAgICB7CisgICAgICAgIHZhciBmaWxlU3lzdGVtUm93ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGZpbGVTeXN0ZW1Sb3cuYWRkU3R5bGVDbGFz
cygid29ya3NwYWNlLXNldHRpbmdzLXJvdyIpOworICAgICAgICBmaWxlU3lzdGVtUm93LmFkZFN0
eWxlQ2xhc3MoImZpbGUtc3lzdGVtLXJvdyIpOworICAgICAgICB0aGlzLl9maWxlU3lzdGVtc0Vk
aXRvci5pbnNlcnRCZWZvcmUoZmlsZVN5c3RlbVJvdywgdGhpcy5fYWRkRmlsZVN5c3RlbVJvd0Vs
ZW1lbnQpOworCisgICAgICAgIGZpbGVTeXN0ZW1Sb3cuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRl
U2hvd1RleHRJbnB1dCgiZmlsZS1zeXN0ZW0tcGF0aCIsIGZpbGVTeXN0ZW1QYXRoKSk7CisgICAg
ICAgIHZhciByZW1vdmVGaWxlU3lzdGVtQnV0dG9uID0gdGhpcy5fY3JlYXRlUmVtb3ZlQnV0dG9u
KHJlbW92ZUZpbGVTeXN0ZW1DbGlja2VkLmJpbmQodGhpcykpOworICAgICAgICBmaWxlU3lzdGVt
Um93LmFwcGVuZENoaWxkKHJlbW92ZUZpbGVTeXN0ZW1CdXR0b24pOworCisgICAgICAgIGZ1bmN0
aW9uIHJlbW92ZUZpbGVTeXN0ZW1DbGlja2VkKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVt
b3ZlRmlsZVN5c3RlbUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IuaXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwucmVtb3ZlRmlsZVN5c3RlbShmaWxlU3lzdGVt
UGF0aCwgZmlsZVN5c3RlbVJlbW92ZWQuYmluZCh0aGlzKSk7CisgICAgICAgIH0KKyAgICAgICAg
CisgICAgICAgIGZ1bmN0aW9uIGZpbGVTeXN0ZW1SZW1vdmVkKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdGhpcy5fZmlsZVN5c3RlbXNFZGl0b3IucmVtb3ZlQ2hpbGQoZmlsZVN5c3RlbVJvdyk7
CisgICAgICAgICAgICByZW1vdmVGaWxlU3lzdGVtQnV0dG9uLmRpc2FibGVkID0gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICB9LAorCisgICAgX2FkZEZpbGVTeXN0ZW1DbGlja2VkOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuaXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwuYWRk
RmlsZVN5c3RlbSh0aGlzLl9maWxlU3lzdGVtQWRkZWQuYmluZCh0aGlzKSk7CisgICAgfSwKKwor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7P3N0cmluZ30gZmlsZVN5c3RlbVBhdGgKKyAgICAgKi8K
KyAgICBfZmlsZVN5c3RlbUFkZGVkOiBmdW5jdGlvbihmaWxlU3lzdGVtUGF0aCkKKyAgICB7Cisg
ICAgICAgIGlmIChmaWxlU3lzdGVtUGF0aCkKKyAgICAgICAgICAgIHRoaXMuX2FkZEZpbGVTeXN0
ZW1Sb3coZmlsZVN5c3RlbVBhdGgpOworICAgIH0sCisKKyAgICBfY3JlYXRlRmlsZU1hcHBpbmdF
ZGl0b3I6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBwID0gdGhpcy5fYXBwZW5kU2Vj
dGlvbihXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk1hcHBpbmdzIikpOworICAgICAgICB0aGlzLl9m
aWxlTWFwcGluZ0VkaXRvciA9IHAuY3JlYXRlQ2hpbGQoInAiLCAiZmlsZS1tYXBwaW5ncy1lZGl0
b3IiKTsKKworICAgICAgICB0aGlzLl9hZGRNYXBwaW5nUm93RWxlbWVudCA9IHRoaXMuX2ZpbGVN
YXBwaW5nRWRpdG9yLmNyZWF0ZUNoaWxkKCJkaXYiLCAid29ya3NwYWNlLXNldHRpbmdzLXJvdyIp
OworCisgICAgICAgIHRoaXMuX3VybElucHV0RWxlbWVudCA9IHRoaXMuX2NyZWF0ZUVkaXRUZXh0
SW5wdXQoImZpbGUtbWFwcGluZy11cmwiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbGUgbWFw
cGluZyB1cmwiKSk7CisgICAgICAgIHRoaXMuX2FkZE1hcHBpbmdSb3dFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3VybElucHV0RWxlbWVudCk7CisgICAgICAgIHRoaXMuX3BhdGhJbnB1dEVsZW1l
bnQgPSB0aGlzLl9jcmVhdGVFZGl0VGV4dElucHV0KCJmaWxlLW1hcHBpbmctcGF0aCIsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiRmlsZSBtYXBwaW5nIHBhdGgiKSk7CisgICAgICAgIHRoaXMuX2Fk
ZE1hcHBpbmdSb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3BhdGhJbnB1dEVsZW1lbnQpOwor
CisgICAgICAgIHRoaXMuX2FkZE1hcHBpbmdSb3dFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2Ny
ZWF0ZUFkZEJ1dHRvbih0aGlzLl9hZGRGaWxlTWFwcGluZ0NsaWNrZWQuYmluZCh0aGlzKSkpOwor
CisgICAgICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy5t
YXBwaW5nRW50cmllcygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcHBpbmdFbnRy
aWVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fYWRkTWFwcGluZ1JvdyhtYXBwaW5n
RW50cmllc1tpXSk7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVNYXBwaW5nRWRpdG9yOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGlu
Zy5FbnRyeX0gbWFwcGluZ0VudHJ5CisgICAgICovCisgICAgX2FkZE1hcHBpbmdSb3c6IGZ1bmN0
aW9uKG1hcHBpbmdFbnRyeSkKKyAgICB7CisgICAgICAgIHZhciBmaWxlTWFwcGluZ1JvdyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBmaWxlTWFwcGluZ1Jvdy5hZGRT
dHlsZUNsYXNzKCJ3b3Jrc3BhY2Utc2V0dGluZ3Mtcm93Iik7CisgICAgICAgIHRoaXMuX2ZpbGVN
YXBwaW5nRWRpdG9yLmluc2VydEJlZm9yZShmaWxlTWFwcGluZ1JvdywgdGhpcy5fYWRkTWFwcGlu
Z1Jvd0VsZW1lbnQpOworCisgICAgICAgIGZpbGVNYXBwaW5nUm93LmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZVNob3dUZXh0SW5wdXQoImZpbGUtbWFwcGluZy11cmwiLCBtYXBwaW5nRW50cnkudXJs
UHJlZml4KSk7CisgICAgICAgIGZpbGVNYXBwaW5nUm93LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0
ZVNob3dUZXh0SW5wdXQoImZpbGUtbWFwcGluZy1wYXRoIiwgbWFwcGluZ0VudHJ5LnBhdGhQcmVm
aXgpKTsKKworICAgICAgICBmaWxlTWFwcGluZ1Jvdy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVS
ZW1vdmVCdXR0b24ocmVtb3ZlTWFwcGluZ0NsaWNrZWQuYmluZCh0aGlzKSkpOworCisgICAgICAg
IGZ1bmN0aW9uIHJlbW92ZU1hcHBpbmdDbGlja2VkKCkKKyAgICAgICAgeworICAgICAgICAgICAg
dmFyIGluZGV4ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZmlsZU1hcHBpbmdSb3cucGFy
ZW50RWxlbWVudC5jaGlsZE5vZGVzKS5pbmRleE9mKGZpbGVNYXBwaW5nUm93KTsKKyAgICAgICAg
ICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy5tYXBwaW5n
RW50cmllcygpOworICAgICAgICAgICAgbWFwcGluZ0VudHJpZXMuc3BsaWNlKGluZGV4LCAxKTsK
KyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5maWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyht
YXBwaW5nRW50cmllcyk7CisgICAgICAgICAgICB0aGlzLl9maWxlTWFwcGluZ0VkaXRvci5yZW1v
dmVDaGlsZChmaWxlTWFwcGluZ1Jvdyk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgX2FkZEZp
bGVNYXBwaW5nQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl91
cmxJbnB1dEVsZW1lbnQudmFsdWUgfHwgIXRoaXMuX3BhdGhJbnB1dEVsZW1lbnQudmFsdWUpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFdlYkluc3Bl
Y3Rvci5maWxlTWFwcGluZy5tYXBwaW5nRW50cmllcygpOworICAgICAgICB2YXIgbWFwcGluZ0Vu
dHJ5ID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSh0aGlzLl91cmxJbnB1dEVs
ZW1lbnQudmFsdWUsIHRoaXMuX3BhdGhJbnB1dEVsZW1lbnQudmFsdWUpOworICAgICAgICBtYXBw
aW5nRW50cmllcy5wdXNoKG1hcHBpbmdFbnRyeSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5maWxl
TWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhtYXBwaW5nRW50cmllcyk7CisgICAgICAgIHRoaXMu
X2FkZE1hcHBpbmdSb3cobWFwcGluZ0VudHJ5KTsKKyAgICAgICAgdGhpcy5fdXJsSW5wdXRFbGVt
ZW50LnZhbHVlID0gIiI7CisgICAgICAgIHRoaXMuX3BhdGhJbnB1dEVsZW1lbnQudmFsdWUgPSAi
IjsKKyAgICB9LAorCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWIucHJv
dG90eXBlCit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLlNldHRpbmdzVGFifQorICovCiBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5nc1Rh
YiA9IGZ1bmN0aW9uKCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2V0dGluZ3NUYWIuY2FsbCh0aGlz
LCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkV4cGVyaW1lbnRzIiksICJleHBlcmltZW50cy10YWIt
Y29udGVudCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9oZWxwU2NyZWVuLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVs
cFNjcmVlbi5jc3MKaW5kZXggOTI4MTgxYmYzYmRhYTIyOTNhOGMzNzE4ZjRmYjE1YWRiYjhlMDRk
OS4uYjlmNTNlZTY2YzM0NWVjZTk5OThmZjVjMjU5ZDNkN2EyMmY5YzU4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzCkBAIC00MzYs
MyArNDM2LDU3IEBAIGJvZHkucGxhdGZvcm0tbWFjIC5oZWxwLWNvbnRlbnQgaW5wdXRbdHlwZT1y
YWRpb10gewogLnNldHRpbmdzLXRhYiBzZWxlY3Q6ZGlzYWJsZWQgewogICAgIGJhY2tncm91bmQt
Y29sb3I6IHJnYigyMjEsIDIyMSwgMjIxKTsKIH0KKworCisKKy5zZXR0aW5ncy10YWIgLmZpbGUt
c3lzdGVtcy1lZGl0b3IgaW5wdXQuZmlsZS1zeXN0ZW0tcGF0aCB7CisgICAgd2lkdGg6IDM4M3B4
OworfQorCisuc2V0dGluZ3MtdGFiIC5maWxlLW1hcHBpbmdzLWVkaXRvciAud29ya3NwYWNlLXNl
dHRpbmdzLXJvdyBpbnB1dCB7CisgICAgd2lkdGg6IDE5MHB4OworfQorCisuc2V0dGluZ3MtdGFi
IC5maWxlLW1hcHBpbmdzLWVkaXRvciAud29ya3NwYWNlLXNldHRpbmdzLXJvdyBpbnB1dC5maWxl
LW1hcHBpbmctdXJsIHsKKyAgICBtYXJnaW4tcmlnaHQ6IDNweDsKK30KKworI3dvcmtzcGFjZS10
YWItY29udGVudCAuYnV0dG9uOmhvdmVyIHsKKyAgICBvcGFjaXR5OiAxLjAgIWltcG9ydGFudDsK
K30KKworI3dvcmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdzpob3Zl
ciAuYnV0dG9uIHsKKyAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOworICAgIG9wYWNpdHk6IDAuNDsK
K30KKworI3dvcmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdyAuYnV0
dG9uIHsKKyAgICB3aWR0aDogMTBweDsKKyAgICBoZWlnaHQ6IDEwcHg7CisgICAgYm9yZGVyOiBu
b25lOworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiB0cmFuc3BhcmVudDsKKyAgICB2aXNpYmlsaXR5OiBoaWRkZW47CisgICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogY2VudGVyOworICAgIG1hcmdpbjogMCAwIDAgNHB4OworfQorCisjd29ya3NwYWNl
LXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IC5yZW1vdmUtYnV0dG9uIHsKKyAg
ICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2RlbGV0ZUljb24ucG5nKTsKK30KKworI3dv
cmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdyAuYWRkLWJ1dHRvbiB7
CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9hZGRJY29uLnBuZyk7Cit9CisKKyN3
b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLndvcmtzcGFjZS1zZXR0aW5ncy1yb3cgLmZpbGUtc3lzdGVt
LWFkZC1idXR0b24geworICAgIGNvbG9yOiBncmF5OworICAgIGJvcmRlcjogbm9uZTsKKyAgICBi
b3JkZXItYm90dG9tOiAxcHggdHJhbnNwYXJlbnQgc29saWQ7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lOworICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OworfQorCisjd29ya3NwYWNl
LXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IC5maWxlLXN5c3RlbS1hZGQtYnV0
dG9uOmhvdmVyIHsKKyAgICBib3JkZXItYm90dG9tOiAxcHggZ3JheSBkYXNoZWQ7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNzE2YzljNWQ0ZmIzYmY5NzBjMWUxMmNjNTM5MjVjMGRiMzMxMGJkYi4uZTJiZDhhOTQ0NTQz
ZGZlNzk2ODcwNDMwNzA1M2RjZmEzOWYwY2U3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEz
LTAxLTE3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IEFkZCBlYXJseSB2ZXJzaW9uIG9mIGZpbGUgc3lzdGVtIG1hcHBpbmdz
IGVkaXRvciB0byBzZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNzEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sOgorCiAyMDEzLTAxLTE2
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IEludHJvZHVjZSBGaWxlU3lzdGVtV29ya3NwYWNlUHJvdmlkZXIgdG8gYWxsb3cg
c2hvd2luZyBmaWxlcyBmcm9tIGZpbGUgc3lzdGVtIGluIHdvcmtzcGFjZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9maWxlLW1hcHBpbmcuaHRtbAppbmRleCAxODVhNjgzMDViZDk4YmY5NjMxMDAyODM5
NTFmNDVkODgzNjVjN2VjLi43ZmQ0MmE4ZDBhZWY5MDY5ZjQ3NzZmYTdlZWViYzg0ZGNjMjBjMmFm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sCkBAIC0xMCwyMSArMTAs
MTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICByZXR1cm4gInVyaToiICsgcGF0aDsK
ICAgICAgICAgfQogICAgIH07Ci0gICAgCi0gICAgZnVuY3Rpb24gY3JlYXRlTW9ja01hcHBpbmdF
bnRyeSh1cmxQcmVmaXgsIHBhdGhQcmVmaXgpCi0gICAgewotICAgICAgICB2YXIgcmVzdWx0ID0g
e307Ci0gICAgICAgIHJlc3VsdC51cmxQcmVmaXggPSB1cmxQcmVmaXg7Ci0gICAgICAgIHJlc3Vs
dC5wYXRoUHJlZml4ID0gcGF0aFByZWZpeDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9
CiAKICAgICAvLyBBdCBmaXJzdCBmaWxsIGZpbGUgbWFwcGluZyB3aXRoIGVudHJpZXMuCiAgICAg
dmFyIGZpbGVNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZyhuZXcgTW9ja0Zp
bGVTeXN0ZW1NYXBwaW5nKCkpOwogICAgIHZhciBtYXBwaW5nRW50cmllcyA9IFtdOwotICAgIG1h
cHBpbmdFbnRyaWVzLnB1c2goY3JlYXRlTW9ja01hcHBpbmdFbnRyeSgiaHR0cDovL2xvY2FsaG9z
dCIsICIvdmFyL3d3dyIpKTsKLSAgICBtYXBwaW5nRW50cmllcy5wdXNoKGNyZWF0ZU1vY2tNYXBw
aW5nRW50cnkoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAiL2hvbWUvZXhhbXBsZS5jb20iKSk7
Ci0gICAgZmlsZU1hcHBpbmcuc2V0TWFwcGluZ3MobWFwcGluZ0VudHJpZXMpOworICAgIG1hcHBp
bmdFbnRyaWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDov
L2xvY2FsaG9zdCIsICIvdmFyL3d3dyIpKTsKKyAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLCAi
L2hvbWUvZXhhbXBsZS5jb20iKSk7CisgICAgbWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5z
cGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJodHRwOi8vd3d3LmZvby5jb20iLCAiL2Jhci8iKSk7
CisgICAgZmlsZU1hcHBpbmcuc2V0TWFwcGluZ0VudHJpZXMobWFwcGluZ0VudHJpZXMpOwogCiAg
ICAgLy8gVGhlbiBjcmVhdGUgYW5vdGhlciBmaWxlIG1hcHBpbmcgdG8gbWFrZSBzdXJlIGl0IGlz
IGNvcnJlY3RseSByZXN0b3JlZCBmcm9tIHRoZSBzZXR0aW5ncy4KICAgICBmaWxlTWFwcGluZyA9
IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcobmV3IE1vY2tGaWxlU3lzdGVtTWFwcGluZygp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183204</attachid>
            <date>2013-01-17 10:00:01 -0800</date>
            <delta_ts>2013-01-18 04:04:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107136-20130117215700.patch</filename>
            <type>text/plain</type>
            <size>30446</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTcwZmJiM2JhNDZkM2Q2
Y2Q3N2I2MzRiM2E1MTFkYTMyNTcwZmJmYy4uZGViNTIxOGUzNWIzOTZhMmQ2OGU5YTAwN2VkNGQy
OTVjMGQ5MWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY2IEBACiAyMDEzLTAxLTE3ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBlYXJseSB2ZXJzaW9uIG9mIGZpbGUgc3lzdGVtIG1hcHBpbmdzIGVkaXRvciB0byBz
ZXR0aW5ncy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNzEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpbGVNYXBwaW5nIHNpbXBsaWZpZWQgdG8gdXNlIG9ubHkgb25lIHR5cGUgb2YgZW50cmllcy4K
KyAgICAgICAgQWRkZWQgc3RhcnQvc3RvcEJhdGNoVXBkYXRlcyB0byBGaWxlU3lzdGVtV29ya3Nw
YWNlUHJvdmlkZXIgZm9yIGJldHRlciBUYWJiZWRQYW5lIHBlcmZvcm1hbmNlLgorICAgICAgICBB
ZGRlZCBmaWxlU3lzdGVtUHJvamVjdCBleHBlcmltZW50IGZvciBmaWxlIHN5c3RlbSBzdXBwb3J0
IGFuZCAoZWFybHkgYW5kIHVnbHkpIGZpbGUgc3lzdGVtIG1hcHBpbmdzIGVkaXRvciBiZWhpbmQg
dGhpcyBleHBlcmltZW50LgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0ZpbGVNYXBwaW5nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuX2VudHJ5TWF0
Y2hlc1VSTCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcucHJvdG90eXBlLl9l
bnRyeVVSSVByZWZpeCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcucHJvdG90
eXBlLmhhc01hcHBpbmdGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5n
LnByb3RvdHlwZS5faW5uZXJVUklGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS51cmlGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS51cmxGb3JVUkkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLnByb3RvdHlwZS5tYXBwaW5nRW50cmllcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmlsZU1hcHBpbmcucHJvdG90eXBlLnNldE1hcHBpbmdFbnRyaWVzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuc2V0IF9sb2FkRnJvbVNldHRpbmdzLmdldCB0
aGlzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUuc2V0IF9s
b2FkRnJvbVNldHRpbmdzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRy
eSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWxlU3lzdGVtV29ya3NwYWNlUHJv
dmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3Zp
ZGVyLnByb3RvdHlwZS5fZmlsZVN5c3RlbVJlbW92ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvSXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSXNvbGF0ZWRGaWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9maWxlU3lzdGVtQWRkZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5nc1NjcmVlbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VT
ZXR0aW5nc1RhYik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIu
cHJvdG90eXBlLl9jcmVhdGVGaWxlU3lzdGVtc0VkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9jcmVhdGVTaG93VGV4dElucHV0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2Ny
ZWF0ZUVkaXRUZXh0SW5wdXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRp
bmdzVGFiLnByb3RvdHlwZS5fY3JlYXRlUmVtb3ZlQnV0dG9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2NyZWF0ZUFkZEJ1dHRvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9hZGRG
aWxlU3lzdGVtUm93LnJlbW92ZUZpbGVTeXN0ZW1DbGlja2VkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2FkZEZpbGVTeXN0ZW1Sb3cuZmls
ZVN5c3RlbVJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRpbmdz
VGFiLnByb3RvdHlwZS5fYWRkRmlsZVN5c3RlbVJvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
V29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9hZGRGaWxlU3lzdGVtQ2xpY2tlZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NUYWIucHJvdG90eXBlLl9maWxl
U3lzdGVtQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRpbmdzVGFi
LnByb3RvdHlwZS5fY3JlYXRlRmlsZU1hcHBpbmdFZGl0b3IpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLldvcmtzcGFjZVNldHRpbmdzVGFiLnByb3RvdHlwZS5fYWRkTWFwcGluZ1Jvdy5yZW1vdmVN
YXBwaW5nQ2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya3NwYWNlU2V0dGluZ3NU
YWIucHJvdG90eXBlLl9hZGRNYXBwaW5nUm93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3Jr
c3BhY2VTZXR0aW5nc1RhYi5wcm90b3R5cGUuX2FkZEZpbGVNYXBwaW5nQ2xpY2tlZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9oZWxwU2NyZWVuLmNzczoKKyAgICAgICAgKC5zZXR0
aW5ncy10YWIgLmZpbGUtc3lzdGVtcy1lZGl0b3IgaW5wdXQuZmlsZS1zeXN0ZW0tcGF0aCk6Cisg
ICAgICAgICguc2V0dGluZ3MtdGFiIC5maWxlLW1hcHBpbmdzLWVkaXRvciAud29ya3NwYWNlLXNl
dHRpbmdzLXJvdyBpbnB1dCk6CisgICAgICAgICguc2V0dGluZ3MtdGFiIC5maWxlLW1hcHBpbmdz
LWVkaXRvciAud29ya3NwYWNlLXNldHRpbmdzLXJvdyBpbnB1dC5maWxlLW1hcHBpbmctdXJsKToK
KyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLmJ1dHRvbjpob3Zlcik6CisgICAgICAg
ICgjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93OmhvdmVyIC5i
dXR0b24pOgorICAgICAgICAoI3dvcmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRp
bmdzLXJvdyAuYnV0dG9uKToKKyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLndvcmtz
cGFjZS1zZXR0aW5ncy1yb3cgLnJlbW92ZS1idXR0b24pOgorICAgICAgICAoI3dvcmtzcGFjZS10
YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdyAuYWRkLWJ1dHRvbik6CisgICAgICAg
ICgjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IC5maWxlLXN5
c3RlbS1hZGQtYnV0dG9uKToKKyAgICAgICAgKCN3b3Jrc3BhY2UtdGFiLWNvbnRlbnQgLndvcmtz
cGFjZS1zZXR0aW5ncy1yb3cgLmZpbGUtc3lzdGVtLWFkZC1idXR0b246aG92ZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvYWRkSWNvbi5wbmc6IEFkZGVkLgorCisyMDEzLTAxLTE3
ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IE9wZW4gcmVzb3VyY2UgZGlhbG9nIGhhcyBwb29yIHBlcmZvcm1hbmNlLgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MTIyCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5q
cyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCBhYTk2ZDNiMjQ3NjczYmU5NzBmYmViZDJiODZmMjE1ZjlkMTFmYzdiLi5mNjI4ZWM4NDI4M2Iz
MWFlZGI5OGZhN2RmNjk3M2Y5MjFmNGQzNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9F
bmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5n
bGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC00NDMsNiArNDQzLDcgQEAgbG9jYWxp
emVkU3RyaW5nc1siV2l0aCBCbG9jayJdID0gIldpdGggQmxvY2siOwogbG9jYWxpemVkU3RyaW5n
c1siV29yZCBXcmFwIl0gPSAiV29yZCBXcmFwIjsKIGxvY2FsaXplZFN0cmluZ3NbIldvcmQgd3Jh
cCJdID0gIldvcmQgd3JhcCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJXb3JrZXJzIl0gPSAiV29ya2Vy
cyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJXb3Jrc3BhY2UiXSA9ICJXb3Jrc3BhY2UiOwogbG9jYWxp
emVkU3RyaW5nc1siWEhSIExvYWQiXSA9ICJYSFIgTG9hZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJY
SFIgUmVhZHkgU3RhdGUgQ2hhbmdlIl0gPSAiWEhSIFJlYWR5IFN0YXRlIENoYW5nZSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJYSFIiXSA9ICJYSFIiOwpAQCAtODI5LDMgKzgzMCw5IEBAIGxvY2FsaXpl
ZFN0cmluZ3NbIlNob3cgdG9vbGJhciBpY29ucyJdID0gIlNob3cgdG9vbGJhciBpY29ucyI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJBcHBlYXJhbmNlIl0gPSAiQXBwZWFyYW5jZSI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJMaXZlIEVkaXQiXSA9ICJMaXZlIEVkaXQiOwogbG9jYWxpemVkU3RyaW5nc1siTGl2
ZSBlZGl0Il0gPSAiTGl2ZSBlZGl0IjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGUgbWFwcGluZyB1
cmwiXSA9ICJGaWxlIG1hcHBpbmcgdXJsIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGUgbWFwcGlu
ZyBwYXRoIl0gPSAiRmlsZSBtYXBwaW5nIHBhdGgiOworbG9jYWxpemVkU3RyaW5nc1siQWRkIGZp
bGUgc3lzdGVtIl0gPSAiQWRkIGZpbGUgc3lzdGVtIjsKK2xvY2FsaXplZFN0cmluZ3NbIkZpbGUg
c3lzdGVtcyJdID0gIkZpbGUgc3lzdGVtcyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJNYXBwaW5ncyJd
ID0gIk1hcHBpbmdzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFkZCJdID0gIkFkZCI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggYTAzNGY1ZDAwOThjMTRkOTRkZWQ0YzJjNzMwZjhkMWJlMzFjZTRhNC4uOWM1
YTA4YjA1MzVmOTgxZTM4OGUzMWU2ZGIzODM4NTMyNzExMTgyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNTQwOCw2ICs1NDA4LDcgQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1Vn
bGlmeUpTL3BhcnNlLWpzLmpzJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmluc3BlY3Rvcl9p
bWFnZV9maWxlcyc6IFsKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9h
ZGRJY29uLnBuZycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9JbWFnZXMvYXBw
bGljYXRpb25DYWNoZS5wbmcnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvSW1h
Z2VzL2JhY2sucG5nJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ltYWdlcy9i
cmVha3BvaW50Qm9yZGVyLnBuZycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9GaWxlTWFwcGluZy5qcwppbmRleCA2ODYxZDAwMmI5MzlkYTY2ODY5OTkzYjUxOGFj
YTJkN2U2M2ExZGEyLi5iMzQ3Y2Y3NzcyNWQyYzkwNTZlNGMwNzE3MDhjYzgxZWQ2NzJlODAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVNYXBwaW5n
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZU1hcHBpbmcu
anMKQEAgLTM2LDI2ICszNiw1MyBAQCBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcgPSBmdW5jdGlv
bihmaWxlU3lzdGVtTWFwcGluZykKIHsKICAgICB0aGlzLl9maWxlU3lzdGVtTWFwcGluZyA9IGZp
bGVTeXN0ZW1NYXBwaW5nOwogICAgIHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZyA9IFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJmaWxlTWFwcGluZ0VudHJpZXMiLCBbXSk7
Ci0gICAgLyoqIEB0eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLk1hcHBpbmdF
bnRyeT59ICovCi0gICAgdGhpcy5fbWFwcGluZ0VudHJpZXMgPSBbXTsKLSAgICB0aGlzLl9kZXNl
cmlhbGl6ZSgvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGlu
Z0VudHJ5Pn0gKi8gKHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZy5nZXQoKSkpOworICAgIC8q
KiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeT59ICovCisgICAg
dGhpcy5fZW50cmllcyA9IFtdOworICAgIHRoaXMuX2xvYWRGcm9tU2V0dGluZ3MoKTsKIH0KIAot
LyoqIEB0eXBlZGVmIHt7dXJsUHJlZml4OiBzdHJpbmcsIHBhdGhQcmVmaXg6IHN0cmluZ319ICov
Ci1XZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuU2VyaWFsaXplZE1hcHBpbmdFbnRyeTsKLQogV2Vi
SW5zcGVjdG9yLkZpbGVNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAvKioKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeX0gZW50cnkKKyAgICAgKiBAcGFyYW0g
e3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBfZW50
cnlNYXRjaGVzVVJMOiBmdW5jdGlvbihlbnRyeSwgdXJsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHVybC5pbmRleE9mKGVudHJ5LnVybFByZWZpeCkgPT09IDA7CisgICAgfSwKKyAgICAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeX0gZW50cnkK
KyAgICAgKiBAcmV0dXJuIHs/c3RyaW5nfQorICAgICAqLworICAgIF9lbnRyeVVSSVByZWZpeDog
ZnVuY3Rpb24oZW50cnkpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZmlsZVN5c3RlbU1h
cHBpbmcudXJpRm9yUGF0aChlbnRyeS5wYXRoUHJlZml4KTsKKyAgICB9LAorICAgIAorICAgIC8q
KgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKICAgICAgKiBAcmV0dXJuIHtib29sZWFufQog
ICAgICAqLwogICAgIGhhc01hcHBpbmdGb3JVUkw6IGZ1bmN0aW9uKHVybCkKICAgICB7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgICAgIGlmICh0aGlzLl9tYXBwaW5nRW50cmllc1tpXS5tYXRjaGVzVVJMKHVy
bCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiAhIXRoaXMu
X2lubmVyVVJJRm9yVVJMKHVybCk7CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7P3N0cmluZ30KKyAgICAgKi8KKyAgICBf
aW5uZXJVUklGb3JVUkw6IGZ1bmN0aW9uKHVybCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fZW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGVu
dHJ5ID0gdGhpcy5fZW50cmllc1tpXTsKKyAgICAgICAgICAgIHZhciB1cmlQcmVmaXggPSB0aGlz
Ll9lbnRyeVVSSVByZWZpeChlbnRyeSk7CisgICAgICAgICAgICBpZiAodXJpUHJlZml4ICYmIHRo
aXMuX2VudHJ5TWF0Y2hlc1VSTChlbnRyeSwgdXJsKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dXJpUHJlZml4ICsgdXJsLnN1YnN0cmluZyhlbnRyeS51cmxQcmVmaXgubGVuZ3RoKTsKICAgICAg
ICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBudWxsOwogICAgIH0s
CiAgICAgCiAgICAgLyoqCkBAIC02NCwxMyArOTEsOCBAQCBXZWJJbnNwZWN0b3IuRmlsZU1hcHBp
bmcucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHVyaUZvclVSTDogZnVuY3Rpb24odXJsKQog
ICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9tYXBwaW5nRW50cmllcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHVyaSA9IHRoaXMuX21hcHBpbmdFbnRyaWVz
W2ldLnVyaUZvclVSTCh1cmwpOwotICAgICAgICAgICAgaWYgKHR5cGVvZiB1cmkgPT09ICJzdHJp
bmciKQotICAgICAgICAgICAgICAgIHJldHVybiB1cmk7Ci0gICAgICAgIH0KICAgICAgICAgLy8g
RklYTUU6IEZpbGVNYXBwaW5nIHNob3VsZCBiZSBuZXR3b3JrIHByb2plY3QgYXdhcmUuIEl0IHNo
b3VsZCByZXR1cm4gY29ycmVjdCB1cmkgZm9yIG5ldHdvcmsgcHJvamVjdCB1aVNvdXJjZUNvZGVz
LgotICAgICAgICByZXR1cm4gdXJsOworICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJVUklGb3JV
UkwodXJsKSB8fCB1cmw7CiAgICAgfSwKICAgICAKICAgICAvKioKQEAgLTc5LDQ2ICsxMDEsNDAg
QEAgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICB1
cmxGb3JVUkk6IGZ1bmN0aW9uKHVyaSkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmICh0
aGlzLl9tYXBwaW5nRW50cmllc1tpXS5tYXRjaGVzVVJJKHVyaSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuX21hcHBpbmdFbnRyaWVzW2ldLnVybEZvclVSSSh1cmkpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2VudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
ICAgIHZhciBlbnRyeSA9IHRoaXMuX2VudHJpZXNbaV07CisgICAgICAgICAgICB2YXIgdXJpUHJl
Zml4ID0gdGhpcy5fZW50cnlVUklQcmVmaXgoZW50cnkpOworICAgICAgICAgICAgaWYgKHVyaVBy
ZWZpeCAmJiB1cmkuaW5kZXhPZih1cmlQcmVmaXgpID09PSAwKQorICAgICAgICAgICAgICAgIHJl
dHVybiBlbnRyeS51cmxQcmVmaXggKyB1cmkuc3Vic3RyaW5nKHVyaVByZWZpeC5sZW5ndGgpOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICog
QHBhcmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLlNlcmlhbGl6ZWRNYXBwaW5n
RW50cnk+fSBzZXJpYWxpemVkTWFwcGluZ0VudHJpZXMKLSAgICAgKi8KLSAgICBzZXRNYXBwaW5n
czogZnVuY3Rpb24oc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKQotICAgIHsKLSAgICAgICAgdGhp
cy5fZGVzZXJpYWxpemUoc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKTsKLSAgICAgICAgdGhpcy5f
c2VyaWFsaXplKCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEByZXR1cm4ge0FycmF5LjxX
ZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5Pn0KKyAgICAgKiBAcmV0dXJuIHtB
cnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5Pn0KICAgICAgKi8KLSAgICBtYXBw
aW5nczogZnVuY3Rpb24oKQorICAgIG1hcHBpbmdFbnRyaWVzOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fbWFwcGluZ0VudHJpZXMuc2xpY2UoKTsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX2VudHJpZXMuc2xpY2UoKTsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBh
cmFtIHtBcnJheS48V2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLlNlcmlhbGl6ZWRNYXBwaW5nRW50
cnk+fSBzZXJpYWxpemVkTWFwcGluZ0VudHJpZXMKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJ
bnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnk+fSBtYXBwaW5nRW50cmllcwogICAgICAqLwotICAg
IF9kZXNlcmlhbGl6ZTogZnVuY3Rpb24oc2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzKQorICAgIHNl
dE1hcHBpbmdFbnRyaWVzOiBmdW5jdGlvbihtYXBwaW5nRW50cmllcykKICAgICB7Ci0gICAgICAg
IHRoaXMuX21hcHBpbmdFbnRyaWVzID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c2VyaWFsaXplZE1hcHBpbmdFbnRyaWVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5f
bWFwcGluZ0VudHJpZXMucHVzaChXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5
LmRlc2VyaWFsaXplKHNlcmlhbGl6ZWRNYXBwaW5nRW50cmllc1tpXSwgdGhpcy5fZmlsZVN5c3Rl
bU1hcHBpbmcpKTsKKyAgICAgICAgdGhpcy5fZW50cmllcyA9IG1hcHBpbmdFbnRyaWVzOworICAg
ICAgICB0aGlzLl9tYXBwaW5nRW50cmllc1NldHRpbmcuc2V0KG1hcHBpbmdFbnRyaWVzKTsKICAg
ICB9LAogCi0gICAgX3NlcmlhbGl6ZTogZnVuY3Rpb24oKQorICAgIF9sb2FkRnJvbVNldHRpbmdz
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgc2F2ZWRFbnRyaWVzID0gW107Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbWFwcGluZ0VudHJpZXMubGVuZ3RoOyArK2kp
Ci0gICAgICAgICAgICBzYXZlZEVudHJpZXMucHVzaCh0aGlzLl9tYXBwaW5nRW50cmllc1tpXS5z
ZXJpYWxpemUoKSk7Ci0gICAgICAgIHRoaXMuX21hcHBpbmdFbnRyaWVzU2V0dGluZy5zZXQoc2F2
ZWRFbnRyaWVzKTsKKyAgICAgICAgdmFyIHNhdmVkRW50cmllcyA9IHRoaXMuX21hcHBpbmdFbnRy
aWVzU2V0dGluZy5nZXQoKTsKKyAgICAgICAgdGhpcy5fZW50cmllcyA9IFtdOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNhdmVkRW50cmllcy5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgdmFyIGVudHJ5ID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeShzYXZlZEVu
dHJpZXNbaV0udXJsUHJlZml4LCBzYXZlZEVudHJpZXNbaV0ucGF0aFByZWZpeCk7CisgICAgICAg
ICAgICB0aGlzLl9lbnRyaWVzLnB1c2goZW50cnkpOworICAgICAgICB9CiAgICAgfSwKIAogICAg
IF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUKQEAgLTEyOCw3NyArMTQ0
LDExIEBAIFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5wcm90b3R5cGUgPSB7CiAgKiBAY29uc3Ry
dWN0b3IKICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxQcmVmaXgKICAqIEBwYXJhbSB7c3RyaW5nfSBw
YXRoUHJlZml4Ci0gKiBAcGFyYW0gez9zdHJpbmd9IHVyaVByZWZpeAogICovCi1XZWJJbnNwZWN0
b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5ID0gZnVuY3Rpb24odXJsUHJlZml4LCBwYXRoUHJl
Zml4LCB1cmlQcmVmaXgpCitXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkgPSBmdW5jdGlv
bih1cmxQcmVmaXgsIHBhdGhQcmVmaXgpCiB7Ci0gICAgdGhpcy5fdXJsUHJlZml4ID0gdXJsUHJl
Zml4OwotICAgIHRoaXMuX3BhdGhQcmVmaXggPSBwYXRoUHJlZml4OwotICAgIHRoaXMuX3VyaVBy
ZWZpeCA9IHVyaVByZWZpeDsKLX0KLQotLyoqCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxl
TWFwcGluZy5TZXJpYWxpemVkTWFwcGluZ0VudHJ5fSBzZXJpYWxpemVkTWFwcGluZ0VudHJ5Ci0g
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5GaWxlU3lzdGVtTWFwcGluZ30gZmlsZVN5c3RlbU1hcHBp
bmcKLSAqLwotV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLk1hcHBpbmdFbnRyeS5kZXNlcmlhbGl6
ZSA9IGZ1bmN0aW9uKHNlcmlhbGl6ZWRNYXBwaW5nRW50cnksIGZpbGVTeXN0ZW1NYXBwaW5nKQot
ewotICAgIHZhciB1cmlQcmVmaXggPSBmaWxlU3lzdGVtTWFwcGluZy51cmlGb3JQYXRoKHNlcmlh
bGl6ZWRNYXBwaW5nRW50cnkucGF0aFByZWZpeCk7Ci0gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0
b3IuRmlsZU1hcHBpbmcuTWFwcGluZ0VudHJ5KHNlcmlhbGl6ZWRNYXBwaW5nRW50cnkudXJsUHJl
Zml4LCBzZXJpYWxpemVkTWFwcGluZ0VudHJ5LnBhdGhQcmVmaXgsIHVyaVByZWZpeCk7Ci19Ci0K
LVdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5NYXBwaW5nRW50cnkucHJvdG90eXBlID0gewotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQotICAgICAqLwotICAgIG1hdGNoZXNVUkw6IGZ1bmN0aW9uKHVybCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB1cmwuaW5kZXhPZih0aGlzLl91cmxQcmVmaXgpID09PSAwOwotICAgIH0sCi0gICAg
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQotICAgICAqIEByZXR1cm4ge2Jv
b2xlYW59Ci0gICAgICovCi0gICAgbWF0Y2hlc1VSSTogZnVuY3Rpb24odXJpKQotICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLl91cmlQcmVmaXgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIHJldHVybiB1cmkuaW5kZXhPZih0aGlzLl91cmlQcmVmaXgpID09PSAwOwotICAgIH0s
Ci0gICAgCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAotICAgICAqIEByZXR1
cm4gez9zdHJpbmd9Ci0gICAgICovCi0gICAgdXJpRm9yVVJMOiBmdW5jdGlvbih1cmwpCi0gICAg
ewotICAgICAgICBpZiAodGhpcy5fdXJpUHJlZml4ICYmIHRoaXMubWF0Y2hlc1VSTCh1cmwpKQot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VyaVByZWZpeCArIHVybC5zdWJzdHJpbmcodGhpcy5f
dXJsUHJlZml4Lmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0sCi0gICAgCi0g
ICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVyaQotICAgICAqIEByZXR1cm4ge3N0cmlu
Z30KLSAgICAgKi8KLSAgICB1cmxGb3JVUkk6IGZ1bmN0aW9uKHVyaSkKLSAgICB7Ci0gICAgICAg
IGlmICh0aGlzLm1hdGNoZXNVUkkodXJpKSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl91cmxQ
cmVmaXggKyB1cmkuc3Vic3RyaW5nKHRoaXMuX3VyaVByZWZpeC5sZW5ndGgpOwotICAgICAgICBy
ZXR1cm4gIiI7Ci0gICAgfSwKLSAgICAKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtPYmplY3R9
Ci0gICAgICovCi0gICAgc2VyaWFsaXplOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1
cm4geyB1cmxQcmVmaXg6IHRoaXMuX3VybFByZWZpeCwgcGF0aFByZWZpeDogdGhpcy5fcGF0aFBy
ZWZpeCB9OwotICAgIH0sCi0KLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJv
dG90eXBlCisgICAgdGhpcy51cmxQcmVmaXggPSB1cmxQcmVmaXg7CisgICAgdGhpcy5wYXRoUHJl
Zml4ID0gcGF0aFByZWZpeDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVy
LmpzCmluZGV4IGZlMDdjOWJiZWE2ODFiMDhmYTc3ODhmOTg4OGJhYzU2YmJkMDM5OTYuLmFmNjI3
MjZlNzVhZDIwYjdiYWUzMjMxODU5ZmZiMGJlOWFjMGIyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsZVN5c3RlbVdvcmtz
cGFjZVByb3ZpZGVyLmpzCkBAIC0xMzAsOSArMTMwLDExIEBAIFdlYkluc3BlY3Rvci5GaWxlU3lz
dGVtV29ya3NwYWNlUHJvdmlkZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9maWxlU3lz
dGVtUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
c3RhcnRCYXRjaFVwZGF0ZSgpOwogICAgICAgICB2YXIgZmlsZVN5c3RlbVBhdGggPSAvKiogQHR5
cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOwogICAgICAgICBmb3IgKHZhciB1cmkgaW4gdGhp
cy5fZmlsZXNbZmlsZVN5c3RlbVBhdGhdKQogICAgICAgICAgICAgdGhpcy5fcmVtb3ZlRmlsZShm
aWxlU3lzdGVtUGF0aCwgdXJpKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBkYXRl
KCk7CiAgICAgfSwKIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbWFnZXMvYWRkSWNvbi5wbmcgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0ltYWdlcy9hZGRJY29uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmQwN2IwZTRkZmUy
NTVjOGVhNzQ4NjFjMTQ1MmE0ZjRhOGZmZDY4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNzEK
emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF5BVH0yVjg8NlpaST0+ZjRGJX0yOEoyOSp+Qy1WfT5W
TjNGTWNWWU1zCnpmKCFPOHA5fmI/RWJ4ZGRXPzxrSjI0T35xUyN1PFNnNnQpcHpPTCtkODNoSElP
fFBHUnY8RTJFQDlFK2dCNX1GMwp6WnpDXzBwI2FOcWVReXk1NF9XeU03ZHhVaVdOKFp2UEBHV3Zm
Yjk7JHs4fm1BQDF9IUJ7V0QoVjx1OT5TP3NWZ0wKenhTN0d3P2Vlb3UjXipCVWJ7aFRAdDUwPDEy
IUY3dHs3dXxXJEBoRHx0KlI8STd0cyopYGhRa309RiZPUTJJcXwjCnptUUp9QiV+UWFfJDhoZz13
Zj9keGUpPUJgSiNWUzNvcGYjRXh+RyVPdG1XRUluZnNmNHYoTV9TU1NTdjM4aVN7KwpLcFVYT0Bn
ZUN4WlpENHItCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbU1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5q
cwppbmRleCBlYjg0ZWVlNDM1MjBmNTVjZWU2NzhjODU3Zjk5NTBhOWFkNjJhMWJkLi5mZDJhYjI4
YzYwZDVhY2E4NTMwM2I3MDMyNDlkNWYyZDFkZjQ3ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVkRmlsZVN5c3RlbU1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNvbGF0ZWRGaWxlU3lzdGVtTW9k
ZWwuanMKQEAgLTc0LDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5c3RlbU1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5j
dGlvbihzdHJpbmcpfSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0cmluZyl9
IGNhbGxiYWNrCiAgICAgICovCiAgICAgYWRkRmlsZVN5c3RlbTogZnVuY3Rpb24oY2FsbGJhY2sp
CiAgICAgewpAQCAtMTM0LDE3ICsxMzQsMTQgQEAgV2ViSW5zcGVjdG9yLklzb2xhdGVkRmlsZVN5
c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfZmlsZVN5c3RlbUFkZGVkOiBm
dW5jdGlvbihlcnJvck1lc3NhZ2UsIGZpbGVTeXN0ZW0pCiAgICAgewotICAgICAgICBpZiAoZXJy
b3JNZXNzYWdlKSB7Ci0gICAgICAgICAgICBjb25zb2xlLmVycm9yKCJFcnJvcjogIiArIGVycm9y
TWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFm
aWxlU3lzdGVtKQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgZmlsZVN5c3RlbVBh
dGg7Ci0gICAgICAgIGlmIChmaWxlU3lzdGVtKSB7CisgICAgICAgIGlmIChlcnJvck1lc3NhZ2Up
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2Up
CisgICAgICAgIGVsc2UgaWYgKGZpbGVTeXN0ZW0pIHsKICAgICAgICAgICAgIHRoaXMuX2lubmVy
QWRkRmlsZVN5c3RlbShmaWxlU3lzdGVtKTsKICAgICAgICAgICAgIGZpbGVTeXN0ZW1QYXRoID0g
ZmlsZVN5c3RlbS5maWxlU3lzdGVtUGF0aDsKICAgICAgICAgfQorCiAgICAgICAgIGlmICh0aGlz
Ll9zZWxlY3RGaWxlU3lzdGVtUGF0aENhbGxiYWNrKSB7CiAgICAgICAgICAgICB0aGlzLl9zZWxl
Y3RGaWxlU3lzdGVtUGF0aENhbGxiYWNrKGZpbGVTeXN0ZW1QYXRoKTsKICAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9zZWxlY3RGaWxlU3lzdGVtUGF0aENhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggODNmNWZiOTI4NDIyZTE1
YWY0OGI3ZjE3MWExNTIyZDY4YmRiYTk1Zi4uYjllODY0YmU3NDViYjczNzA5ZDY2MjA5ZjZmMTAx
ZDdjMWE5ODM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nl
dHRpbmdzLmpzCkBAIC0yMDksNiArMjA5LDcgQEAgV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0
dGluZ3MgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5jb2RlbWlycm9yID0gdGhpcy5fY3JlYXRlRXhw
ZXJpbWVudCgiY29kZW1pcnJvciIsICJVc2UgQ29kZU1pcnJvciBlZGl0b3IiKTsKICAgICB0aGlz
LmNzc1JlZ2lvbnMgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJjc3NSZWdpb25zIiwgIkNTUyBS
ZWdpb25zIFN1cHBvcnQiKTsKICAgICB0aGlzLnNob3dPdmVycmlkZXNJbkRyYXdlciA9IHRoaXMu
X2NyZWF0ZUV4cGVyaW1lbnQoInNob3dPdmVycmlkZXNJbkRyYXdlciIsICJTaG93IE92ZXJyaWRl
cyBpbiBkcmF3ZXIiKTsKKyAgICB0aGlzLmZpbGVTeXN0ZW1Qcm9qZWN0ID0gdGhpcy5fY3JlYXRl
RXhwZXJpbWVudCgiZmlsZVN5c3RlbVByb2plY3QiLCAiRmlsZSBzeXN0ZW0gZm9sZGVycyBpbiBT
b3VyY2VzIFBhbmVsIik7CiAKICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMK
aW5kZXggOGRmMGQ2Y2ExZjM3ZWJhMDIxNmY2YmNjY2MwZTY1MWM3NDk3MTgyMC4uYzY1ODkyOGZl
NjdlNGZkNTQwNzY5MWQyZmQ2N2ExNTllMDhkMzA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC01MSw2ICs1MSw4
IEBAIFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKG9uSGlkZSkKICAgICB0
aGlzLl90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFi
cy5HZW5lcmFsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkdlbmVyYWwiKSwgbmV3IFdlYkluc3Bl
Y3Rvci5HZW5lcmljU2V0dGluZ3NUYWIoKSk7CiAgICAgaWYgKCFXZWJJbnNwZWN0b3IuZXhwZXJp
bWVudHNTZXR0aW5ncy5zaG93T3ZlcnJpZGVzSW5EcmF3ZXIuaXNFbmFibGVkKCkpCiAgICAgICAg
IHRoaXMuX3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVlbi5U
YWJzLk92ZXJyaWRlcywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJPdmVycmlkZXMiKSwgbmV3IFdl
Ykluc3BlY3Rvci5PdmVycmlkZXNTZXR0aW5nc1RhYigpKTsKKyAgICBpZiAoV2ViSW5zcGVjdG9y
LmV4cGVyaW1lbnRzU2V0dGluZ3MuZmlsZVN5c3RlbVByb2plY3QuaXNFbmFibGVkKCkpCisgICAg
ICAgIHRoaXMuX3RhYmJlZFBhbmUuYXBwZW5kVGFiKFdlYkluc3BlY3Rvci5TZXR0aW5nc1NjcmVl
bi5UYWJzLldvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJXb3Jrc3BhY2UiKSwgbmV3
IFdlYkluc3BlY3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1RhYigpKTsKICAgICBpZiAoV2ViSW5zcGVj
dG9yLmV4cGVyaW1lbnRzU2V0dGluZ3MuZXhwZXJpbWVudHNFbmFibGVkKQogICAgICAgICB0aGlz
Ll90YWJiZWRQYW5lLmFwcGVuZFRhYihXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4uVGFicy5F
eHBlcmltZW50cywgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBlcmltZW50cyIpLCBuZXcgV2Vi
SW5zcGVjdG9yLkV4cGVyaW1lbnRzU2V0dGluZ3NUYWIoKSk7CiAgICAgdGhpcy5fdGFiYmVkUGFu
ZS5hcHBlbmRUYWIoV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuLlRhYnMuU2hvcnRjdXRzLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3J0Y3V0cyIpLCBXZWJJbnNwZWN0b3Iuc2hvcnRjdXRz
U2NyZWVuLmNyZWF0ZVNob3J0Y3V0c1RhYlZpZXcoKSk7CkBAIC02NSw2ICs2Nyw3IEBAIFdlYklu
c3BlY3Rvci5TZXR0aW5nc1NjcmVlbiA9IGZ1bmN0aW9uKG9uSGlkZSkKIFdlYkluc3BlY3Rvci5T
ZXR0aW5nc1NjcmVlbi5UYWJzID0gewogICAgIEdlbmVyYWw6ICJnZW5lcmFsIiwKICAgICBPdmVy
cmlkZXM6ICJvdmVycmlkZXMiLAorICAgIFdvcmtzcGFjZTogIndvcmtzcGFjZSIsCiAgICAgRXhw
ZXJpbWVudHM6ICJleHBlcmltZW50cyIsCiAgICAgU2hvcnRjdXRzOiAic2hvcnRjdXRzIgogfQpA
QCAtNDM2LDYgKzQzOSwxOTIgQEAgV2ViSW5zcGVjdG9yLk92ZXJyaWRlc1NldHRpbmdzVGFiLnBy
b3RvdHlwZSA9IHsKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5T
ZXR0aW5nc1RhYn0KICAqLworV2ViSW5zcGVjdG9yLldvcmtzcGFjZVNldHRpbmdzVGFiID0gZnVu
Y3Rpb24oKQoreworICAgIFdlYkluc3BlY3Rvci5TZXR0aW5nc1RhYi5jYWxsKHRoaXMsIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiV29ya3NwYWNlIiksICJ3b3Jrc3BhY2UtdGFiLWNvbnRlbnQiKTsK
KyAgICB0aGlzLl9jcmVhdGVGaWxlU3lzdGVtc0VkaXRvcigpOworICAgIHRoaXMuX2NyZWF0ZUZp
bGVNYXBwaW5nRWRpdG9yKCk7Cit9CisKK1dlYkluc3BlY3Rvci5Xb3Jrc3BhY2VTZXR0aW5nc1Rh
Yi5wcm90b3R5cGUgPSB7CisgICAgX2NyZWF0ZUZpbGVTeXN0ZW1zRWRpdG9yOiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICB2YXIgcCA9IHRoaXMuX2FwcGVuZFNlY3Rpb24oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJGaWxlIHN5c3RlbXMiKSk7CisgICAgICAgIHRoaXMuX2ZpbGVTeXN0ZW1zRWRp
dG9yID0gcC5jcmVhdGVDaGlsZCgicCIsICJmaWxlLXN5c3RlbXMtZWRpdG9yIik7CisKKyAgICAg
ICAgdGhpcy5fYWRkRmlsZVN5c3RlbVJvd0VsZW1lbnQgPSB0aGlzLl9maWxlU3lzdGVtc0VkaXRv
ci5jcmVhdGVDaGlsZCgiZGl2IiwgIndvcmtzcGFjZS1zZXR0aW5ncy1yb3ciKTsKKyAgICAgICAg
dmFyIGFkZEZpbGVTeXN0ZW1CdXR0b24gPSB0aGlzLl9hZGRGaWxlU3lzdGVtUm93RWxlbWVudC5j
cmVhdGVDaGlsZCgiaW5wdXQiLCAiZmlsZS1zeXN0ZW0tYWRkLWJ1dHRvbiIpOworICAgICAgICBh
ZGRGaWxlU3lzdGVtQnV0dG9uLnR5cGUgPSAiYnV0dG9uIjsKKyAgICAgICAgYWRkRmlsZVN5c3Rl
bUJ1dHRvbi52YWx1ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWRkIGZpbGUgc3lzdGVtIik7
CisgICAgICAgIGFkZEZpbGVTeXN0ZW1CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0
aGlzLl9hZGRGaWxlU3lzdGVtQ2xpY2tlZC5iaW5kKHRoaXMpKTsKKworICAgICAgICB2YXIgZmls
ZVN5c3RlbVBhdGhzID0gV2ViSW5zcGVjdG9yLmlzb2xhdGVkRmlsZVN5c3RlbU1vZGVsLm1hcHBp
bmcoKS5maWxlU3lzdGVtUGF0aHMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxl
U3lzdGVtUGF0aHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9hZGRGaWxlU3lzdGVt
Um93KGZpbGVTeXN0ZW1QYXRoc1tpXSk7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVTeXN0
ZW1zRWRpdG9yOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQor
ICAgICAqLworICAgIF9jcmVhdGVTaG93VGV4dElucHV0OiBmdW5jdGlvbihjbGFzc05hbWUsIHZh
bHVlKQorICAgIHsKKyAgICAgICAgdmFyIGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlucHV0Iik7CisgICAgICAgIGlucHV0RWxlbWVudC5hZGRTdHlsZUNsYXNzKGNsYXNz
TmFtZSk7CisgICAgICAgIGlucHV0RWxlbWVudC50eXBlID0gInRleHQiOworICAgICAgICBpbnB1
dEVsZW1lbnQudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgaW5wdXRFbGVtZW50LnRpdGxlID0gdmFs
dWU7CisgICAgICAgIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVy
biBpbnB1dEVsZW1lbnQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0VsZW1l
bnR9CisgICAgICovCisgICAgX2NyZWF0ZUVkaXRUZXh0SW5wdXQ6IGZ1bmN0aW9uKGNsYXNzTmFt
ZSwgcGxhY2VIb2xkZXIpCisgICAgeworICAgICAgICB2YXIgaW5wdXRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKKyAgICAgICAgaW5wdXRFbGVtZW50LmFkZFN0eWxl
Q2xhc3MoY2xhc3NOYW1lKTsKKyAgICAgICAgaW5wdXRFbGVtZW50LnR5cGUgPSAidGV4dCI7Cisg
ICAgICAgIGlucHV0RWxlbWVudC5wbGFjZWhvbGRlciA9IHBsYWNlSG9sZGVyOworICAgICAgICBy
ZXR1cm4gaW5wdXRFbGVtZW50OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKEV2ZW50KX0gaGFuZGxlcgorICAgICAqIEByZXR1cm4ge0VsZW1lbnR9CisgICAgICov
CisgICAgX2NyZWF0ZVJlbW92ZUJ1dHRvbjogZnVuY3Rpb24oaGFuZGxlcikKKyAgICB7CisgICAg
ICAgIHZhciByZW1vdmVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsK
KyAgICAgICAgcmVtb3ZlQnV0dG9uLmFkZFN0eWxlQ2xhc3MoImJ1dHRvbiIpOworICAgICAgICBy
ZW1vdmVCdXR0b24uYWRkU3R5bGVDbGFzcygicmVtb3ZlLWJ1dHRvbiIpOworICAgICAgICByZW1v
dmVCdXR0b24udmFsdWUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlbW92ZSIpOworICAgICAg
ICByZW1vdmVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBoYW5kbGVyLCBmYWxzZSk7
CisgICAgICAgIHJldHVybiByZW1vdmVCdXR0b247CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7ZnVuY3Rpb24oRXZlbnQpfSBoYW5kbGVyCisgICAgICogQHJldHVybiB7RWxlbWVu
dH0KKyAgICAgKi8KKyAgICBfY3JlYXRlQWRkQnV0dG9uOiBmdW5jdGlvbihoYW5kbGVyKQorICAg
IHsKKyAgICAgICAgdmFyIGFkZEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRv
biIpOworICAgICAgICBhZGRCdXR0b24uYWRkU3R5bGVDbGFzcygiYnV0dG9uIik7CisgICAgICAg
IGFkZEJ1dHRvbi5hZGRTdHlsZUNsYXNzKCJhZGQtYnV0dG9uIik7CisgICAgICAgIGFkZEJ1dHRv
bi52YWx1ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQWRkIik7CisgICAgICAgIGFkZEJ1dHRv
bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGhhbmRsZXIsIGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuIGFkZEJ1dHRvbjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9
IGZpbGVTeXN0ZW1QYXRoCisgICAgICovCisgICAgX2FkZEZpbGVTeXN0ZW1Sb3c6IGZ1bmN0aW9u
KGZpbGVTeXN0ZW1QYXRoKQorICAgIHsKKyAgICAgICAgdmFyIGZpbGVTeXN0ZW1Sb3cgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgZmlsZVN5c3RlbVJvdy5hZGRTdHls
ZUNsYXNzKCJ3b3Jrc3BhY2Utc2V0dGluZ3Mtcm93Iik7CisgICAgICAgIGZpbGVTeXN0ZW1Sb3cu
YWRkU3R5bGVDbGFzcygiZmlsZS1zeXN0ZW0tcm93Iik7CisgICAgICAgIHRoaXMuX2ZpbGVTeXN0
ZW1zRWRpdG9yLmluc2VydEJlZm9yZShmaWxlU3lzdGVtUm93LCB0aGlzLl9hZGRGaWxlU3lzdGVt
Um93RWxlbWVudCk7CisKKyAgICAgICAgZmlsZVN5c3RlbVJvdy5hcHBlbmRDaGlsZCh0aGlzLl9j
cmVhdGVTaG93VGV4dElucHV0KCJmaWxlLXN5c3RlbS1wYXRoIiwgZmlsZVN5c3RlbVBhdGgpKTsK
KyAgICAgICAgdmFyIHJlbW92ZUZpbGVTeXN0ZW1CdXR0b24gPSB0aGlzLl9jcmVhdGVSZW1vdmVC
dXR0b24ocmVtb3ZlRmlsZVN5c3RlbUNsaWNrZWQuYmluZCh0aGlzKSk7CisgICAgICAgIGZpbGVT
eXN0ZW1Sb3cuYXBwZW5kQ2hpbGQocmVtb3ZlRmlsZVN5c3RlbUJ1dHRvbik7CisKKyAgICAgICAg
ZnVuY3Rpb24gcmVtb3ZlRmlsZVN5c3RlbUNsaWNrZWQoKQorICAgICAgICB7CisgICAgICAgICAg
ICByZW1vdmVGaWxlU3lzdGVtQnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5pc29sYXRlZEZpbGVTeXN0ZW1Nb2RlbC5yZW1vdmVGaWxlU3lzdGVtKGZpbGVT
eXN0ZW1QYXRoLCBmaWxlU3lzdGVtUmVtb3ZlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZnVuY3Rpb24gZmlsZVN5c3RlbVJlbW92ZWQoKQorICAgICAgICB7Cisg
ICAgICAgICAgICB0aGlzLl9maWxlU3lzdGVtc0VkaXRvci5yZW1vdmVDaGlsZChmaWxlU3lzdGVt
Um93KTsKKyAgICAgICAgICAgIHJlbW92ZUZpbGVTeXN0ZW1CdXR0b24uZGlzYWJsZWQgPSBmYWxz
ZTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBfYWRkRmlsZVN5c3RlbUNsaWNrZWQ6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5pc29sYXRlZEZpbGVTeXN0ZW1Nb2Rl
bC5hZGRGaWxlU3lzdGVtKHRoaXMuX2ZpbGVTeXN0ZW1BZGRlZC5iaW5kKHRoaXMpKTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHs/c3RyaW5nfSBmaWxlU3lzdGVtUGF0aAorICAg
ICAqLworICAgIF9maWxlU3lzdGVtQWRkZWQ6IGZ1bmN0aW9uKGZpbGVTeXN0ZW1QYXRoKQorICAg
IHsKKyAgICAgICAgaWYgKGZpbGVTeXN0ZW1QYXRoKQorICAgICAgICAgICAgdGhpcy5fYWRkRmls
ZVN5c3RlbVJvdyhmaWxlU3lzdGVtUGF0aCk7CisgICAgfSwKKworICAgIF9jcmVhdGVGaWxlTWFw
cGluZ0VkaXRvcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHAgPSB0aGlzLl9hcHBl
bmRTZWN0aW9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTWFwcGluZ3MiKSk7CisgICAgICAgIHRo
aXMuX2ZpbGVNYXBwaW5nRWRpdG9yID0gcC5jcmVhdGVDaGlsZCgicCIsICJmaWxlLW1hcHBpbmdz
LWVkaXRvciIpOworCisgICAgICAgIHRoaXMuX2FkZE1hcHBpbmdSb3dFbGVtZW50ID0gdGhpcy5f
ZmlsZU1hcHBpbmdFZGl0b3IuY3JlYXRlQ2hpbGQoImRpdiIsICJ3b3Jrc3BhY2Utc2V0dGluZ3Mt
cm93Iik7CisKKyAgICAgICAgdGhpcy5fdXJsSW5wdXRFbGVtZW50ID0gdGhpcy5fY3JlYXRlRWRp
dFRleHRJbnB1dCgiZmlsZS1tYXBwaW5nLXVybCIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRmls
ZSBtYXBwaW5nIHVybCIpKTsKKyAgICAgICAgdGhpcy5fYWRkTWFwcGluZ1Jvd0VsZW1lbnQuYXBw
ZW5kQ2hpbGQodGhpcy5fdXJsSW5wdXRFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fcGF0aElucHV0
RWxlbWVudCA9IHRoaXMuX2NyZWF0ZUVkaXRUZXh0SW5wdXQoImZpbGUtbWFwcGluZy1wYXRoIiwg
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGaWxlIG1hcHBpbmcgcGF0aCIpKTsKKyAgICAgICAgdGhp
cy5fYWRkTWFwcGluZ1Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fcGF0aElucHV0RWxlbWVu
dCk7CisKKyAgICAgICAgdGhpcy5fYWRkTWFwcGluZ1Jvd0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fY3JlYXRlQWRkQnV0dG9uKHRoaXMuX2FkZEZpbGVNYXBwaW5nQ2xpY2tlZC5iaW5kKHRoaXMp
KSk7CisKKyAgICAgICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBw
aW5nLm1hcHBpbmdFbnRyaWVzKCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFwcGlu
Z0VudHJpZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl9hZGRNYXBwaW5nUm93KG1h
cHBpbmdFbnRyaWVzW2ldKTsKKworICAgICAgICByZXR1cm4gdGhpcy5fZmlsZU1hcHBpbmdFZGl0
b3I7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZpbGVN
YXBwaW5nLkVudHJ5fSBtYXBwaW5nRW50cnkKKyAgICAgKi8KKyAgICBfYWRkTWFwcGluZ1Jvdzog
ZnVuY3Rpb24obWFwcGluZ0VudHJ5KQorICAgIHsKKyAgICAgICAgdmFyIGZpbGVNYXBwaW5nUm93
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIGZpbGVNYXBwaW5nUm93
LmFkZFN0eWxlQ2xhc3MoIndvcmtzcGFjZS1zZXR0aW5ncy1yb3ciKTsKKyAgICAgICAgdGhpcy5f
ZmlsZU1hcHBpbmdFZGl0b3IuaW5zZXJ0QmVmb3JlKGZpbGVNYXBwaW5nUm93LCB0aGlzLl9hZGRN
YXBwaW5nUm93RWxlbWVudCk7CisKKyAgICAgICAgZmlsZU1hcHBpbmdSb3cuYXBwZW5kQ2hpbGQo
dGhpcy5fY3JlYXRlU2hvd1RleHRJbnB1dCgiZmlsZS1tYXBwaW5nLXVybCIsIG1hcHBpbmdFbnRy
eS51cmxQcmVmaXgpKTsKKyAgICAgICAgZmlsZU1hcHBpbmdSb3cuYXBwZW5kQ2hpbGQodGhpcy5f
Y3JlYXRlU2hvd1RleHRJbnB1dCgiZmlsZS1tYXBwaW5nLXBhdGgiLCBtYXBwaW5nRW50cnkucGF0
aFByZWZpeCkpOworCisgICAgICAgIGZpbGVNYXBwaW5nUm93LmFwcGVuZENoaWxkKHRoaXMuX2Ny
ZWF0ZVJlbW92ZUJ1dHRvbihyZW1vdmVNYXBwaW5nQ2xpY2tlZC5iaW5kKHRoaXMpKSk7CisKKyAg
ICAgICAgZnVuY3Rpb24gcmVtb3ZlTWFwcGluZ0NsaWNrZWQoKQorICAgICAgICB7CisgICAgICAg
ICAgICB2YXIgaW5kZXggPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmaWxlTWFwcGluZ1Jv
dy5wYXJlbnRFbGVtZW50LmNoaWxkTm9kZXMpLmluZGV4T2YoZmlsZU1hcHBpbmdSb3cpOworICAg
ICAgICAgICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLm1h
cHBpbmdFbnRyaWVzKCk7CisgICAgICAgICAgICBtYXBwaW5nRW50cmllcy5zcGxpY2UoaW5kZXgs
IDEpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRy
aWVzKG1hcHBpbmdFbnRyaWVzKTsKKyAgICAgICAgICAgIHRoaXMuX2ZpbGVNYXBwaW5nRWRpdG9y
LnJlbW92ZUNoaWxkKGZpbGVNYXBwaW5nUm93KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICBf
YWRkRmlsZU1hcHBpbmdDbGlja2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRo
aXMuX3VybElucHV0RWxlbWVudC52YWx1ZSB8fCAhdGhpcy5fcGF0aElucHV0RWxlbWVudC52YWx1
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gV2Vi
SW5zcGVjdG9yLmZpbGVNYXBwaW5nLm1hcHBpbmdFbnRyaWVzKCk7CisgICAgICAgIHZhciBtYXBw
aW5nRW50cnkgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KHRoaXMuX3VybElu
cHV0RWxlbWVudC52YWx1ZSwgdGhpcy5fcGF0aElucHV0RWxlbWVudC52YWx1ZSk7CisgICAgICAg
IG1hcHBpbmdFbnRyaWVzLnB1c2gobWFwcGluZ0VudHJ5KTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmZpbGVNYXBwaW5nLnNldE1hcHBpbmdFbnRyaWVzKG1hcHBpbmdFbnRyaWVzKTsKKyAgICAgICAg
dGhpcy5fYWRkTWFwcGluZ1JvdyhtYXBwaW5nRW50cnkpOworICAgICAgICB0aGlzLl91cmxJbnB1
dEVsZW1lbnQudmFsdWUgPSAiIjsKKyAgICAgICAgdGhpcy5fcGF0aElucHV0RWxlbWVudC52YWx1
ZSA9ICIiOworICAgIH0sCisKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5TZXR0aW5nc1Rh
Yi5wcm90b3R5cGUKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJ
bnNwZWN0b3IuU2V0dGluZ3NUYWJ9CisgKi8KIFdlYkluc3BlY3Rvci5FeHBlcmltZW50c1NldHRp
bmdzVGFiID0gZnVuY3Rpb24oKQogewogICAgIFdlYkluc3BlY3Rvci5TZXR0aW5nc1RhYi5jYWxs
KHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRXhwZXJpbWVudHMiKSwgImV4cGVyaW1lbnRz
LXRhYi1jb250ZW50Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2hlbHBTY3JlZW4uY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9oZWxwU2NyZWVuLmNzcwppbmRleCA5MjgxODFiZjNiZGFhMjI5M2E4YzM3MThmNGZiMTVhZGJi
OGUwNGQ5Li5iOWY1M2VlNjZjMzQ1ZWNlOTk5OGZmNWMyNTlkM2Q3YTIyZjljNThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBTY3JlZW4uY3NzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVscFNjcmVlbi5jc3MKQEAg
LTQzNiwzICs0MzYsNTcgQEAgYm9keS5wbGF0Zm9ybS1tYWMgLmhlbHAtY29udGVudCBpbnB1dFt0
eXBlPXJhZGlvXSB7CiAuc2V0dGluZ3MtdGFiIHNlbGVjdDpkaXNhYmxlZCB7CiAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiKDIyMSwgMjIxLCAyMjEpOwogfQorCisKKworLnNldHRpbmdzLXRhYiAu
ZmlsZS1zeXN0ZW1zLWVkaXRvciBpbnB1dC5maWxlLXN5c3RlbS1wYXRoIHsKKyAgICB3aWR0aDog
MzgzcHg7Cit9CisKKy5zZXR0aW5ncy10YWIgLmZpbGUtbWFwcGluZ3MtZWRpdG9yIC53b3Jrc3Bh
Y2Utc2V0dGluZ3Mtcm93IGlucHV0IHsKKyAgICB3aWR0aDogMTkwcHg7Cit9CisKKy5zZXR0aW5n
cy10YWIgLmZpbGUtbWFwcGluZ3MtZWRpdG9yIC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IGlucHV0
LmZpbGUtbWFwcGluZy11cmwgeworICAgIG1hcmdpbi1yaWdodDogM3B4OworfQorCisjd29ya3Nw
YWNlLXRhYi1jb250ZW50IC5idXR0b246aG92ZXIgeworICAgIG9wYWNpdHk6IDEuMCAhaW1wb3J0
YW50OworfQorCisjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93
OmhvdmVyIC5idXR0b24geworICAgIHZpc2liaWxpdHk6IHZpc2libGU7CisgICAgb3BhY2l0eTog
MC40OworfQorCisjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93
IC5idXR0b24geworICAgIHdpZHRoOiAxMHB4OworICAgIGhlaWdodDogMTBweDsKKyAgICBib3Jk
ZXI6IG5vbmU7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHRyYW5zcGFyZW50OworICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKKyAgICBiYWNrZ3Jv
dW5kLXBvc2l0aW9uOiBjZW50ZXI7CisgICAgbWFyZ2luOiAwIDAgMCA0cHg7Cit9CisKKyN3b3Jr
c3BhY2UtdGFiLWNvbnRlbnQgLndvcmtzcGFjZS1zZXR0aW5ncy1yb3cgLnJlbW92ZS1idXR0b24g
eworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvZGVsZXRlSWNvbi5wbmcpOworfQor
Cisjd29ya3NwYWNlLXRhYi1jb250ZW50IC53b3Jrc3BhY2Utc2V0dGluZ3Mtcm93IC5hZGQtYnV0
dG9uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2FkZEljb24ucG5nKTsKK30K
KworI3dvcmtzcGFjZS10YWItY29udGVudCAud29ya3NwYWNlLXNldHRpbmdzLXJvdyAuZmlsZS1z
eXN0ZW0tYWRkLWJ1dHRvbiB7CisgICAgY29sb3I6IGdyYXk7CisgICAgYm9yZGVyOiBub25lOwor
ICAgIGJvcmRlci1ib3R0b206IDFweCB0cmFuc3BhcmVudCBzb2xpZDsKKyAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IG5vbmU7CisgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7Cit9CisKKyN3b3Jr
c3BhY2UtdGFiLWNvbnRlbnQgLndvcmtzcGFjZS1zZXR0aW5ncy1yb3cgLmZpbGUtc3lzdGVtLWFk
ZC1idXR0b246aG92ZXIgeworICAgIGJvcmRlci1ib3R0b206IDFweCBncmF5IGRhc2hlZDsKK30K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MTZjOWM1ZDRmYjNiZjk3MGMxZTEyY2M1MzkyNWMwZGIzMzEwYmRiLi5lMmJkOGE5
NDQ1NDNkZmU3OTY4NzA0MzA3MDUzZGNmYTM5ZjBjZTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTMtMDEtMTcgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGVhcmx5IHZlcnNpb24gb2YgZmlsZSBzeXN0ZW0gbWFw
cGluZ3MgZWRpdG9yIHRvIHNldHRpbmdzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA3MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWw6CisKIDIwMTMt
MDEtMTYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogSW50cm9kdWNlIEZpbGVTeXN0ZW1Xb3Jrc3BhY2VQcm92aWRlciB0byBh
bGxvdyBzaG93aW5nIGZpbGVzIGZyb20gZmlsZSBzeXN0ZW0gaW4gd29ya3NwYWNlLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2ZpbGUtbWFwcGluZy5odG1sCmluZGV4IDE4NWE2ODMwNWJkOThiZjk2MzEw
MDI4Mzk1MWY0NWQ4ODM2NWM3ZWMuLjdmZDQyYThkMGFlZjkwNjlmNDc3NmZhN2VlZWJjODRkY2My
MGMyYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWxlLW1hcHBpbmcuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsZS1tYXBwaW5nLmh0bWwKQEAgLTEwLDIx
ICsxMCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHJldHVybiAidXJpOiIgKyBw
YXRoOwogICAgICAgICB9CiAgICAgfTsKLSAgICAKLSAgICBmdW5jdGlvbiBjcmVhdGVNb2NrTWFw
cGluZ0VudHJ5KHVybFByZWZpeCwgcGF0aFByZWZpeCkKLSAgICB7Ci0gICAgICAgIHZhciByZXN1
bHQgPSB7fTsKLSAgICAgICAgcmVzdWx0LnVybFByZWZpeCA9IHVybFByZWZpeDsKLSAgICAgICAg
cmVzdWx0LnBhdGhQcmVmaXggPSBwYXRoUHJlZml4OwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KIAogICAgIC8vIEF0IGZpcnN0IGZpbGwgZmlsZSBtYXBwaW5nIHdpdGggZW50cmllcy4K
ICAgICB2YXIgZmlsZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nKG5ldyBN
b2NrRmlsZVN5c3RlbU1hcHBpbmcoKSk7CiAgICAgdmFyIG1hcHBpbmdFbnRyaWVzID0gW107Ci0g
ICAgbWFwcGluZ0VudHJpZXMucHVzaChjcmVhdGVNb2NrTWFwcGluZ0VudHJ5KCJodHRwOi8vbG9j
YWxob3N0IiwgIi92YXIvd3d3IikpOwotICAgIG1hcHBpbmdFbnRyaWVzLnB1c2goY3JlYXRlTW9j
a01hcHBpbmdFbnRyeSgiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIsICIvaG9tZS9leGFtcGxlLmNv
bSIpKTsKLSAgICBmaWxlTWFwcGluZy5zZXRNYXBwaW5ncyhtYXBwaW5nRW50cmllcyk7CisgICAg
bWFwcGluZ0VudHJpZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLkZpbGVNYXBwaW5nLkVudHJ5KCJo
dHRwOi8vbG9jYWxob3N0IiwgIi92YXIvd3d3IikpOworICAgIG1hcHBpbmdFbnRyaWVzLnB1c2go
bmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZy5FbnRyeSgiaHR0cDovL3d3dy5leGFtcGxlLmNv
bSIsICIvaG9tZS9leGFtcGxlLmNvbSIpKTsKKyAgICBtYXBwaW5nRW50cmllcy5wdXNoKG5ldyBX
ZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcuRW50cnkoImh0dHA6Ly93d3cuZm9vLmNvbSIsICIvYmFy
LyIpKTsKKyAgICBmaWxlTWFwcGluZy5zZXRNYXBwaW5nRW50cmllcyhtYXBwaW5nRW50cmllcyk7
CiAKICAgICAvLyBUaGVuIGNyZWF0ZSBhbm90aGVyIGZpbGUgbWFwcGluZyB0byBtYWtlIHN1cmUg
aXQgaXMgY29ycmVjdGx5IHJlc3RvcmVkIGZyb20gdGhlIHNldHRpbmdzLgogICAgIGZpbGVNYXBw
aW5nID0gbmV3IFdlYkluc3BlY3Rvci5GaWxlTWFwcGluZyhuZXcgTW9ja0ZpbGVTeXN0ZW1NYXBw
aW5nKCkpOwo=
</data>
<flag name="review"
          id="201509"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>183205</attachid>
            <date>2013-01-17 10:00:29 -0800</date>
            <delta_ts>2013-01-17 10:00:29 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>workspace.png</filename>
            <type>image/png</type>
            <size>27575</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">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
QwQAAAAAAPCcsrCwkEgkEonExMREKpWamJjw+XxdbkNzm03n7Ojg6GAXn5BMRKfPXwzv3qVLp5B7
Obn3cx4Q0ZWrCeHduxLRg7z8d2Z/NHJ41PnjB1b9sGT77n1btu0iIllZmZmZ6dF923pHhBGRlrQL
vv72QX7Bz8sXi42Nz164fPrcxT1/rjsXu9/f13v5yl+ZRqsVCqFQsO7XFet/W3HuwuWdew/kPsj7
+POv58x65+KJg3+u//XKtYQjsSdkZWXvzP5wyKD+52L3L/3qs2U//pKcmlZSKnvrvTnhYV3Pxe5f
9cPSdZv+/OvYyRYdIgAAAAAAgOcUcwNtdXV1VVVVRUVFeXl5mZ4WXw+qe9fOcfGJvSLCzpy7OG3y
RKFQEBLU4cy5C6NeGZqUkvrFJx8Q0bGTZzzcXUcOG0xEbq4ukydG79p7sEdYVyIaO3KYmalUqVQS
0ddLf4hPTN6zdZ1QKCAisbHoYXHJ3gOHw7t3ff/d6Wz2fyPnKZPGE5FAIBg5POrw0RPDowbu3Bzj
7OhQVSWXlZWbm5mWlJSeu3DZ0tycmc/s4O+7dvWPdnY2x06eNRaJXn9tAhG1c3Ea88rQPQcOD+jb
u6VHCQAAoE1UVlZiiRd4KswSL8bGxswuTiF4WganELwAaq9Jq8tq8WgzrGunX35bV/Sw+FbmnS6h
wUQU3r3rxctXPNq7O9rb29naEFHRw2J7O1vdR+xsbYoeljDbZmamuvS8/IKKysor1+IjwroRUUhQ
4Py57+/ae/Cn1TFWlhbTJk9k4lWhUCB+dPqaSqVFD4tZbPbufYcOHjnGYpFne7cquVyrpYLCImsr
S13lXp7tiaiwsKiwqCi83zAmUa1RO9rbt+TwAAAAtKWcnByxmM/j4dc+eFJKZU1OTo5uZSCcQvC0
DE4heN7pr0mrW5lWl9vi0Wan4KAP7n5x9Pip4KAOzJxkeFjXn39d4+XRPvzRUrTm5mYJSSm6j+Q+
yLe0MKtd1bJvFhw9fnrh4u93bgowMRE/yMtv7+b6+8/fV1dX7z8cu3Dxsl7h3YhILq8uKy+XmJgQ
0f2cXFsbq30H/zp45Ni6X39kgtvJ0/9NROZmZoVFD3WV79xzoJ2Lk5mZqYe7+5a1q5jEkpJStd5g
AQAAvGBqamoQJ8BT4fG4NTWVul2cQvC0DE4heLG17HObRCQUCgI7+G3cuoOZkCQiJwd7S0vzA0di
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
uuaaa8Y94NCrTs/1qwAAABhb+cOq28eqzUwmc/Zv/P7773/mM5+55JJLoihqaGhYv379sWPHqntf
eumll19+ub+/f/78+Z/85Cfj8fjx48efeeaZkydPplKpT3ziE6tWrers7Hz44Yebm5sPHjw4ZcqU
fD7/xBNPrFmzZunSpe++++6ePXva2trS6fTq1auXL1/e2dn54IMPfuELX6jcEGn79u2zZ89+5513
qq9asmTJM888c/DgwYGBgUsuueS6666bPn362f+aAAAAF5sR1zare8/5PWmXLFny5JNPLl++fNas
WdOnT583b968efOqezs6On71V381n89v3br10KFDs2bN2r59+7p165YsWdLe3v7II48kEol58+YV
i8Xa2trPf/7zsVjsoYceuvHGG2fPnl0sFrdv375mzZply5a99957P/zhDy+55JIRC3nTpk3f+c53
Kq86cuTIkSNH7rzzznQ6vXfv3r17927ZsuVcfwgAAAAXm3Nemxs2bDh8+PAbb7zx05/+NJ/PNzU1
rVmzprGxsbK3paUlnU6n0+lZs2Z1dnbm8/lp06ZVrhedOnXqypUrX3311UqdLl++fFhJHj16tK6u
bvny5VEUzZgx49Zbb21oaPjIM2ZTqVQ+n3/ttdeamprWrl378bwTEgAAwMff2PekPee1WSqVmpub
m5uboyjq6en57//+723btt11112Vvel0uvJDIpEYHBzs7e3NZrPV12az2eqNZGtra4eN3NPTU19f
X31YOSH2I2tz1qxZ119//YEDB/bt21dXV3fVVVcFuRkSAADAxWm06zZHvSdtEIcPH/7Xf/3XUqlU
eVhfX9/S0tLb29vd3T3i82tra7u6uqoPu7q6To3MoU/u6empPnz11Vfffvvtys/Vni4UCsNe1d3d
PW3atFtuueU3f/M3V61atWvXLt+MAgAAMA7Drtscdmfac1ubc+fOzWQyjz766JtvvtnZ2Xn8+PEn
n3xy6tSpuVxuxOcvWLCgra3ttddeK5fL7e3t+/fvX7JkybDnxOPxzs7O/v7+efPm9fT0HDhwIIqi
d999d+/evYlEoq6uLpFItLa2DgwMHDx48MSJE8Ne9dZbbz3yyCMdHR3JZDKTySSTyWTynC/wAgAA
XGzObWglEolf/uVf3rdv386dOwuFQiqVmjt37qc//enRrpbMZrObN2/eu3fv7t27M5nM8uXLV6xY
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
</data>

          </attachment>
      

    </bug>

</bugzilla>