<?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>109790</bug_id>
          
          <creation_ts>2013-02-14 00:32:55 -0800</creation_ts>
          <short_desc>Web Inspector: [Console] Add console API message types for profile/profileEnd.</short_desc>
          <delta_ts>2013-02-21 08:51:46 -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>
          <dependson>109906</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugene Klyuchnikov">eustas</reporter>
          <assigned_to name="Eugene Klyuchnikov">eustas</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</cc>
    
    <cc>timothy</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>832790</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-14 00:32:55 -0800</bug_when>
    <thetext>Currently likifier plugin is a function that translates link title.

This way we have logic about linkified links spread in several files.

This patch turns linkier plugin to interface responsible for checking
URL, title translation and URL navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832811</commentid>
    <comment_count>1</comment_count>
      <attachid>188279</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-14 01:05:43 -0800</bug_when>
    <thetext>Created attachment 188279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832841</commentid>
    <comment_count>2</comment_count>
      <attachid>188279</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-14 01:35:03 -0800</bug_when>
    <thetext>Comment on attachment 188279
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        This patch turns linkier plugin to interface responsible for checking

linkifier

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:788
&gt; +    showProfile: function(typeId, title, uid)

title is not used.

&gt; Source/WebCore/inspector/front-end/ResourceUtils.js:56
&gt; +WebInspector.ProfileURLRegExp = /webkit-profile:\/\/(.+)\/(.+)#([0-9]+)/;

ResourceUtils should know nothing about the profiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836059</commentid>
    <comment_count>3</comment_count>
      <attachid>189010</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-19 00:12:31 -0800</bug_when>
    <thetext>Created attachment 189010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836118</commentid>
    <comment_count>4</comment_count>
      <attachid>189010</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-02-19 01:29:39 -0800</bug_when>
    <thetext>Comment on attachment 189010
Patch

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

&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:653
&gt; -    showProfile: function(profile)
&gt; +    showProfile_: function(profile)

The underscore should be a prefix not a suffix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836122</commentid>
    <comment_count>5</comment_count>
      <attachid>189021</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-19 01:33:28 -0800</bug_when>
    <thetext>Created attachment 189021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836124</commentid>
    <comment_count>6</comment_count>
      <attachid>189010</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-19 01:33:50 -0800</bug_when>
    <thetext>Comment on attachment 189010
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/ProfilesPanel.js:653
&gt;&gt; +    showProfile_: function(profile)
&gt; 
&gt; The underscore should be a prefix not a suffix.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837326</commentid>
    <comment_count>7</comment_count>
      <attachid>189021</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 04:08:44 -0800</bug_when>
    <thetext>Comment on attachment 189021
Patch

Attachment 189021 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16653237

New failing tests:
inspector/profiler/heap-snapshot-comparison-expansion-preserved-when-sorting.html
inspector/profiler/cpu-profiler-profiling.html
inspector/profiler/heap-snapshot-summary-show-all.html
inspector/profiler/heap-snapshot-dominators-shown-node-count-preserved-when-sorting.html
inspector/profiler/heap-snapshot-dominators-expansion-preserved-when-sorting.html
inspector/profiler/heap-snapshot-summary-retainers.html
animations/suspend-resume-animation-events.html
inspector/audits/audits-panel-functional.html
fast/loader/text-document-wrapping.html
inspector/profiler/heap-snapshot-comparison-sorting.html
inspector/profiler/heap-snapshot-dominators-show-all.html
inspector/profiler/heap-snapshot-summary-expansion-preserved-when-sorting.html
inspector/profiler/heap-snapshot-dominators-show-next.html
inspector/profiler/heap-snapshot-comparison-shown-node-count-preserved-when-sorting.html
inspector/profiler/heap-snapshot-comparison-show-next.html
inspector/profiler/heap-snapshot-comparison-show-all.html
inspector/profiler/canvas2d/canvas-replay-log-grid.html
inspector/profiler/heap-snapshot-containment-expansion-preserved-when-sorting.html
inspector/profiler/heap-snapshot-dominators-sorting.html
inspector/profiler/heap-snapshot-reveal-in-dominators-view.html
fast/table/border-collapsing/cached-69296.html
inspector/profiler/heap-snapshot-comparison-dom-groups-change.html
inspector/profiler/heap-snapshot-loader.html
inspector/profiler/heap-snapshot-containment-sorting.html
inspector/profiler/heap-snapshot-containment-show-all.html
inspector/profiler/heap-snapshot-containment-show-next.html
inspector/profiler/heap-snapshot-summary-show-next.html
inspector/profiler/heap-snapshot-summary-shown-node-count-preserved-when-sorting.html
fast/loader/javascript-url-in-object.html
inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837478</commentid>
    <comment_count>8</comment_count>
      <attachid>189322</attachid>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-20 08:16:11 -0800</bug_when>
    <thetext>Created attachment 189322
Patch

fixed-tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838298</commentid>
    <comment_count>9</comment_count>
    <who name="Eugene Klyuchnikov">eustas</who>
    <bug_when>2013-02-21 03:41:14 -0800</bug_when>
    <thetext>Committed r143580: &lt;http://trac.webkit.org/changeset/143580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838406</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-21 07:31:08 -0800</bug_when>
    <thetext>@eustas: plz look at what you have committed: http://trac.webkit.org/changeset/143580/trunk/Source/WebCore/inspector/Inspector.json

I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838471</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-21 08:51:46 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; @eustas: plz look at what you have committed: http://trac.webkit.org/changeset/143580/trunk/Source/WebCore/inspector/Inspector.json
&gt; 
&gt; I&apos;ll fix it.

Partial roll out: http://trac.webkit.org/changeset/143603</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188279</attachid>
            <date>2013-02-14 01:05:43 -0800</date>
            <delta_ts>2013-02-19 00:12:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109790-20130214130210.patch</filename>
            <type>text/plain</type>
            <size>12100</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1Y2IzYjYxMzgyYTk1
MGY1MTNlYzZmMzE3MTgwNjZmMmRhNWVjZC4uZWQyYWRiMTUzYzViYzI4Y2IyMjI2YTQ3MWFkNmUz
NWZjMTM1MWFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTE0ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtSZXNvdXJjZXNdIEltcHJvdmUgbGlua2lmaWVyIHBsdWdpbnMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk3OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgbGlraWZpZXIg
cGx1Z2luIGlzIGEgZnVuY3Rpb24gdGhhdCB0cmFuc2xhdGVzIGxpbmsgdGl0bGUuCisKKyAgICAg
ICAgVGhpcyB3YXkgd2UgaGF2ZSBsb2dpYyBhYm91dCBsaW5raWZpZWQgbGlua3Mgc3ByZWFkIGlu
IHNldmVyYWwgZmlsZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCB0dXJucyBsaW5raWVyIHBsdWdp
biB0byBpbnRlcmZhY2UgcmVzcG9uc2libGUgZm9yIGNoZWNraW5nCisgICAgICAgIFVSTCwgdGl0
bGUgdHJhbnNsYXRpb24gYW5kIFVSTCBuYXZpZ2F0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWwucHJvdG90eXBlLnNob3dQcm9maWxlXyk6IAorICAgICAgICBNYWtlIHNob3dQcm9m
aWxlKHByb2ZpbGUpIHByaXZhdGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bC5wcm90b3R5cGUuc2hvd1Byb2ZpbGUpOgorICAgICAgICBBY2NlcHQgcHJvZmlsZVR5cGUsIHRp
dGxlIGFuZCB1aWQgaW5zdGVhZCBvZiBVUkwuCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVV0aWxzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpbmtpZmllclBsdWdp
bik6IEFkZGVkIExpbmtpZmllciBQbHVnaW4gaW50ZXJmYWNlLgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNQVVByb2ZpbGVMaW5raWZpZXJQbHVnaW4pOiAiQ1BVIiBQcm9maWxlIGxpbmtpZmllci4K
KyAgICAgICAgKFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCk6CisgICAgICAg
IERvIG5vdCBtYXJrIGxpbmtpZmllZCBsaW5rcyBhcyBleHRlcm5hbC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5mb2xsb3dMaW5rKTogTW92ZWQgZm9ybSBpbnNwZWN0b3IuanMKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5k
b2N1bWVudENsaWNrLmZvbGxvd0xpbmspOiBBZG9wdCBjaGFuZ2VzLgorCiAyMDEzLTAyLTEzICBL
ZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEdlbmVy
YXRlIHdyYXBwZXIgbWV0aG9kcyBmb3IgY3VzdG9tIG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcwppbmRleCA3M2NkN2Nj
ZmFiMjYwOWMwYjkwYTBkM2UxMTNhZWI4NWM0M2UwMTMyLi5hZTQyODE1MTBkZjgyMjZjOGI3NDVh
NGNjZGFmY2Q1Y2YxM2Y2ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC01OTgsNyArNTk4LDcgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBzaWRlYmFyUGFyZW50LmFw
cGVuZENoaWxkKHByb2ZpbGVUcmVlRWxlbWVudCk7CiAgICAgICAgIGlmICghcHJvZmlsZS5pc1Rl
bXBvcmFyeSkgewogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2libGVWaWV3KQotICAgICAgICAg
ICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5z
aG93UHJvZmlsZV8ocHJvZmlsZSk7CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycygicHJvZmlsZSBhZGRlZCIsIHsKICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlSWQK
ICAgICAgICAgICAgIH0pOwpAQCAtNjQ2LDcgKzY0Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAgICAgICovCi0gICAgc2hvd1Byb2ZpbGU6IGZ1bmN0
aW9uKHByb2ZpbGUpCisgICAgc2hvd1Byb2ZpbGVfOiBmdW5jdGlvbihwcm9maWxlKQogICAgIHsK
ICAgICAgICAgaWYgKCFwcm9maWxlIHx8IHByb2ZpbGUuaXNUZW1wb3JhcnkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC03MDAsNyArNzAwLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHByb2ZpbGUgPSBoZWFwUHJvZmlsZXNbaV07
CiAgICAgICAgICAgICAvLyBUT0RPOiBhbGxvdyB0byBjaG9vc2Ugc25hcHNob3QgaWYgdGhlcmUg
YXJlIHNldmVyYWwgb3B0aW9ucy4KICAgICAgICAgICAgIGlmIChwcm9maWxlLm1heEpTT2JqZWN0
SWQgPj0gc25hcHNob3RPYmplY3RJZCkgewotICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2Zp
bGUocHJvZmlsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5zaG93UHJvZmlsZV8ocHJvZmlsZSk7
CiAgICAgICAgICAgICAgICAgcHJvZmlsZS52aWV3KCkuY2hhbmdlVmlldyh2aWV3TmFtZSwgZnVu
Y3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUudmlldygpLmRhdGFHcmlkLmhp
Z2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQoc25hcHNob3RPYmplY3RJZCk7CiAgICAgICAg
ICAgICAgICAgfSk7CkBAIC03NjksNyArNzY5LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNob3dWaWV3OiBmdW5jdGlvbih2aWV3KQog
ICAgIHsKLSAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh2aWV3LnByb2ZpbGUpOworICAgICAgICB0
aGlzLnNob3dQcm9maWxlXyh2aWV3LnByb2ZpbGUpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTc4
MSwxNCArNzgxLDEzIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSB0eXBlSWQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdWlkCiAgICAgICovCi0gICAgc2hvd1Byb2ZpbGVGb3JVUkw6IGZ1
bmN0aW9uKHVybCkKKyAgICBzaG93UHJvZmlsZTogZnVuY3Rpb24odHlwZUlkLCB0aXRsZSwgdWlk
KQogICAgIHsKLSAgICAgICAgdmFyIG1hdGNoID0gdXJsLm1hdGNoKFdlYkluc3BlY3Rvci5Qcm9m
aWxlVVJMUmVnRXhwKTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh0aGlzLl9wcm9maWxlc0lkTWFwW3RoaXMuX21ha2VL
ZXkoTnVtYmVyKG1hdGNoWzNdKSwgbWF0Y2hbMV0pXSk7CisgICAgICAgIHRoaXMuc2hvd1Byb2Zp
bGVfKHRoaXMuX3Byb2ZpbGVzSWRNYXBbdGhpcy5fbWFrZUtleShOdW1iZXIodWlkKSwgdHlwZUlk
KV0pOwogICAgIH0sCiAKICAgICBjbG9zZVZpc2libGVWaWV3OiBmdW5jdGlvbigpCkBAIC0xNDAz
LDcgKzE0MDIsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICgh
dGhpcy5fc3VwcHJlc3NPblNlbGVjdCkKLSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUucGFu
ZWwuc2hvd1Byb2ZpbGUodGhpcy5wcm9maWxlKTsKKyAgICAgICAgICAgIHRoaXMudHJlZU91dGxp
bmUucGFuZWwuc2hvd1Byb2ZpbGVfKHRoaXMucHJvZmlsZSk7CiAgICAgfSwKIAogICAgIG9uZGVs
ZXRlOiBmdW5jdGlvbigpCkBAIC0xNDc5LDcgKzE0NzgsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZUdyb3VwU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBvbnNlbGVjdDogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCkKLSAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLl9pbnN0YW5jZS5zaG93UHJvZmls
ZSh0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV0ucHJvZmlsZSk7CisgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5faW5zdGFuY2Uuc2hvd1Byb2ZpbGVf
KHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXS5wcm9maWxlKTsKICAgICB9
LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnByb3Rv
dHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVV0aWxzLmpzCmluZGV4IGU3M2JhYTY4NDFmNzZmMGFhNjA3NzQ5MTc0M2Y2MTUxOTVlMGM4NzMu
LjI3NjBjYjYzMTkyOGU1NmYyYzhiZjEwNTExMWNhMzZkM2EzYWFhY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTI5
LDYgKzI5LDU2IEBACiAgKi8KIAogLyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rv
ci5MaW5raWZpZXJQbHVnaW4gPSBmdW5jdGlvbigpIHsgfQorCitXZWJJbnNwZWN0b3IuTGlua2lm
aWVyUGx1Z2luLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30g
dXJsCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICB0ZXN0OiBmdW5jdGlv
bih1cmwpIHsgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICov
CisgICAgdGl0bGU6IGZ1bmN0aW9uKHVybCwgdGl0bGUpIHsgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKi8KKyAgICBuYXZpZ2F0ZTogZnVuY3Rpb24odXJs
KSB7IH0KK30KKworV2ViSW5zcGVjdG9yLlByb2ZpbGVVUkxSZWdFeHAgPSAvd2Via2l0LXByb2Zp
bGU6XC9cLyguKylcLyguKykjKFswLTldKykvOworCitXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZUxp
bmtpZmllclBsdWdpbiA9IGZ1bmN0aW9uKCkgeyB9CisKK1dlYkluc3BlY3Rvci5DUFVQcm9maWxl
TGlua2lmaWVyUGx1Z2luLnByb3RvdHlwZSA9IHsKKyAgICB0ZXN0OiBmdW5jdGlvbih1cmwpCisg
ICAgeworICAgICAgICB2YXIgbWF0Y2ggPSBXZWJJbnNwZWN0b3IuUHJvZmlsZVVSTFJlZ0V4cC5l
eGVjKHVybCk7CisgICAgICAgIHJldHVybiAhIW1hdGNoICYmIChtYXRjaFsxXSA9PT0gIkNQVSIp
OworICAgIH0sCisKKyAgICB0aXRsZTogZnVuY3Rpb24odXJsLCB0aXRsZSkKKyAgICB7CisgICAg
ICAgIHZhciBtYXRjaCA9IFdlYkluc3BlY3Rvci5Qcm9maWxlVVJMUmVnRXhwLmV4ZWModGl0bGUp
OworICAgICAgICB2YXIgcHJvZmlsZXNQYW5lbCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWx9ICovIChXZWJJbnNwZWN0b3IucGFuZWwoInByb2ZpbGVzIikpOworICAgICAg
ICByZXR1cm4gcHJvZmlsZXNQYW5lbC5kaXNwbGF5VGl0bGVGb3JQcm9maWxlTGluayhtYXRjaFsy
XSwgbWF0Y2hbMV0pOworICAgIH0sCisKKyAgICBuYXZpZ2F0ZTogZnVuY3Rpb24odXJsKQorICAg
IHsKKyAgICAgICAgdmFyIG1hdGNoID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVVUkxSZWdFeHAuZXhl
Yyh1cmwpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJwcm9maWxlcyIpLnNob3dQ
cm9maWxlKG1hdGNoWzFdLCBtYXRjaFsyXSwgbWF0Y2hbM10pOworICAgIH0KK30KKworLyoqCiAg
KiBAcGFyYW0ge3N0cmluZ30gdXJsCiAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlJlc291cmNl
fQogICovCkBAIC0xMjAsMTAgKzE3MCwxMCBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0Fz
RnJhZ21lbnRXaXRoQ3VzdG9tTGlua2lmaWVyID0gZnVuY3Rpb24oc3RyaW5nLCBsaW5raQogICAg
IHJldHVybiBjb250YWluZXI7CiB9CiAKLVdlYkluc3BlY3Rvci5fbGlua2lmaWVyUGx1Z2lucyA9
IFtdOworV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zID0gLyoqIEB0eXBlIHshQXJyYXku
PCFXZWJJbnNwZWN0b3IuTGlua2lmaWVyUGx1Z2luPn0qLyAoW10pOwogCiAvKioKLSAqIEBwYXJh
bSB7ZnVuY3Rpb24oc3RyaW5nKTpzdHJpbmd9IHBsdWdpbgorICogQHBhcmFtIHshV2ViSW5zcGVj
dG9yLkxpbmtpZmllclBsdWdpbn0gcGx1Z2luCiAgKi8KIFdlYkluc3BlY3Rvci5yZWdpc3Rlckxp
bmtpZmllclBsdWdpbiA9IGZ1bmN0aW9uKHBsdWdpbikKIHsKQEAgLTE0NCwxMCArMTk0LDE3IEBA
IFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0cmluZykK
ICAgICAgKi8KICAgICBmdW5jdGlvbiBsaW5raWZpZXIodGl0bGUsIHVybCwgbGluZU51bWJlcikK
ICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgV2ViSW5zcGVjdG9yLl9saW5raWZp
ZXJQbHVnaW5zLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3Iu
X2xpbmtpZmllclBsdWdpbnNbaV0odGl0bGUpOwotCiAgICAgICAgIHZhciBpc0V4dGVybmFsID0g
IVdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCh1cmwpOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgcGx1Z2luID0gV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zW2ld
OworICAgICAgICAgICAgaWYgKHBsdWdpbi50ZXN0KHVybCkpIHsKKyAgICAgICAgICAgICAgICB0
aXRsZSA9IHBsdWdpbi50aXRsZSh1cmwsIHRpdGxlKTsKKyAgICAgICAgICAgICAgICBpc0V4dGVy
bmFsID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKwogICAgICAgICB2YXIgdXJsTm9kZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNO
b2RlKHVybCwgdGl0bGUsIHVuZGVmaW5lZCwgaXNFeHRlcm5hbCk7CiAgICAgICAgIGlmICh0eXBl
b2YobGluZU51bWJlcikgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgICB1cmxOb2RlLmxp
bmVOdW1iZXIgPSBsaW5lTnVtYmVyOwpAQCAtMjQ0LDMgKzMwMSwzMSBAQCBXZWJJbnNwZWN0b3Iu
Y29udGVudEFzRGF0YVVSTCA9IGZ1bmN0aW9uKGNvbnRlbnQsIG1pbWVUeXBlLCBjb250ZW50RW5j
b2RlZCkKIAogICAgIHJldHVybiAiZGF0YToiICsgbWltZVR5cGUgKyAoY29udGVudEVuY29kZWQg
PyAiO2Jhc2U2NCwiIDogIiwiKSArIGNvbnRlbnQ7CiB9CisKKy8qKgorICogQHBhcmFtIHshRWxl
bWVudH0gYW5jaG9yCisgKi8KK1dlYkluc3BlY3Rvci5mb2xsb3dMaW5rID0gZnVuY3Rpb24oYW5j
aG9yKQoreworICAgIHZhciB1cmwgPSBhbmNob3IuaHJlZjsKKworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgIHZhciBwbHVnaW4gPSBXZWJJbnNwZWN0b3IuX2xpbmtpZmllclBsdWdpbnNbaV07CisgICAg
ICAgIGlmIChwbHVnaW4udGVzdCh1cmwpKSB7CisgICAgICAgICAgICBwbHVnaW4ubmF2aWdhdGUo
dXJsKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZhciBw
YXJzZWRVUkwgPSB1cmwuYXNQYXJzZWRVUkwoKTsKKyAgICBpZiAocGFyc2VkVVJMICYmIHBhcnNl
ZFVSTC5zY2hlbWUgPT09ICJ3ZWJraXQtbGluay1hY3Rpb24iKSB7CisgICAgICAgIGlmIChwYXJz
ZWRVUkwuaG9zdCA9PT0gInNob3ctcGFuZWwiKSB7CisgICAgICAgICAgICB2YXIgcGFuZWwgPSBw
YXJzZWRVUkwucGF0aC5zdWJzdHJpbmcoMSk7CisgICAgICAgICAgICBpZiAoV2ViSW5zcGVjdG9y
LnBhbmVsKHBhbmVsKSkKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKHBh
bmVsKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih1cmwpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKaW5kZXggMjE5YmZhOGQxMzBlMmY0MzdkNDg4MzVhMjRjYTQ5ZmFmZGJmMjU5OC4uY2M5YmU2
ODZiYTA2ZjBlOTZkNmJhMDRjOWRjMTk3Mzc2YTYyYmIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI3MiwxNiArMjcyLDYgQEAg
dmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnNldElu
c3BlY3RNb2RlRW5hYmxlZChlbmFibGVkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAog
Ci0gICAgX3Byb2ZpbGVzTGlua2lmaWVyOiBmdW5jdGlvbih0aXRsZSkKLSAgICB7Ci0gICAgICAg
IHZhciBwcm9maWxlU3RyaW5nTWF0Y2hlcyA9IFdlYkluc3BlY3Rvci5Qcm9maWxlVVJMUmVnRXhw
LmV4ZWModGl0bGUpOwotICAgICAgICBpZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpIHsKLSAgICAg
ICAgICAgIHZhciBwcm9maWxlc1BhbmVsID0gLyoqIEAgdHlwZSB7V2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWx9ICovIFdlYkluc3BlY3Rvci5wYW5lbCgicHJvZmlsZXMiKTsKLSAgICAgICAgICAg
IHRpdGxlID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuX2luc3RhbmNlLmRpc3BsYXlUaXRs
ZUZvclByb2ZpbGVMaW5rKHByb2ZpbGVTdHJpbmdNYXRjaGVzWzJdLCBwcm9maWxlU3RyaW5nTWF0
Y2hlc1sxXSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRpdGxlOwotICAgIH0sCi0KICAg
ICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIENyZWF0ZSBz
Y3JpcHRzIHBhbmVsIHVwb24gZGVtYW5kLgpAQCAtNDY3LDcgKzQ1Nyw3IEBAIFdlYkluc3BlY3Rv
ci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGllcyA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNw
ZWN0b3IuZW5kQmF0Y2hVcGRhdGUoKTsKIAogICAgIHRoaXMuYWRkTWFpbkV2ZW50TGlzdGVuZXJz
KGRvY3VtZW50KTsKLSAgICBXZWJJbnNwZWN0b3IucmVnaXN0ZXJMaW5raWZpZXJQbHVnaW4odGhp
cy5fcHJvZmlsZXNMaW5raWZpZXIuYmluZCh0aGlzKSk7CisgICAgV2ViSW5zcGVjdG9yLnJlZ2lz
dGVyTGlua2lmaWVyUGx1Z2luKG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZUxpbmtpZmllclBs
dWdpbigpKTsKIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCB0aGlzLndp
bmRvd1Jlc2l6ZS5iaW5kKHRoaXMpLCB0cnVlKTsKIApAQCAtNTgyLDcgKzU3Miw3IEBAIFdlYklu
c3BlY3Rvci5jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogV2ViSW5zcGVjdG9yLmRvY3VtZW50Q2xp
Y2sgPSBmdW5jdGlvbihldmVudCkKIHsKICAgICB2YXIgYW5jaG9yID0gZXZlbnQudGFyZ2V0LmVu
Y2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoImEiKTsKLSAgICBpZiAoIWFuY2hvciB8fCAo
YW5jaG9yLnRhcmdldCA9PT0gIl9ibGFuayIgJiYgIVdlYkluc3BlY3Rvci5Qcm9maWxlVVJMUmVn
RXhwLmV4ZWMoYW5jaG9yLmhyZWYpKSkKKyAgICBpZiAoIWFuY2hvcikKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gUHJldmVudCB0aGUgbGluayBmcm9tIG5hdmlnYXRpbmcsIHNpbmNlIHdlIGRv
bid0IGRvIGFueSBuYXZpZ2F0aW9uIGJ5IGZvbGxvd2luZyBsaW5rcyBub3JtYWxseS4KQEAgLTU5
MiwyNCArNTgyLDcgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q2xpY2sgPSBmdW5jdGlvbihldmVu
dCkKICAgICB7CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuaXNCZWluZ0VkaXRlZChldmVudC50
YXJnZXQpIHx8IFdlYkluc3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uKGFuY2hvcikpCiAgICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29uc3QgcHJvZmlsZU1hdGNoID0gV2ViSW5zcGVj
dG9yLlByb2ZpbGVVUkxSZWdFeHAuZXhlYyhhbmNob3IuaHJlZik7Ci0gICAgICAgIGlmIChwcm9m
aWxlTWF0Y2gpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UHJvZmlsZUZvclVSTChh
bmNob3IuaHJlZik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICB2
YXIgcGFyc2VkVVJMID0gYW5jaG9yLmhyZWYuYXNQYXJzZWRVUkwoKTsKLSAgICAgICAgaWYgKHBh
cnNlZFVSTCAmJiBwYXJzZWRVUkwuc2NoZW1lID09PSAid2Via2l0LWxpbmstYWN0aW9uIikgewot
ICAgICAgICAgICAgaWYgKHBhcnNlZFVSTC5ob3N0ID09PSAic2hvdy1wYW5lbCIpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgcGFuZWwgPSBwYXJzZWRVUkwucGF0aC5zdWJzdHJpbmcoMSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbChwYW5lbCkpCi0gICAgICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwocGFuZWwpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0Lm9wZW5Jbk5ld1RhYihhbmNob3IuaHJlZik7CisgICAgICAgIFdlYkluc3BlY3Rvci5mb2xs
b3dMaW5rKGFuY2hvcik7CiAgICAgfQogCiAgICAgaWYgKFdlYkluc3BlY3Rvci5mb2xsb3dMaW5r
VGltZW91dCkKQEAgLTk4MywxMSArOTU2LDYgQEAgV2ViSW5zcGVjdG9yLl9zaG93QW5jaG9yTG9j
YXRpb25JblBhbmVsID0gZnVuY3Rpb24oYW5jaG9yLCBwYW5lbCkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotV2ViSW5zcGVjdG9yLnNob3dQcm9maWxlRm9yVVJMID0gZnVuY3Rpb24odXJsKQotewot
ICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2ZpbGVzIikuc2hvd1Byb2ZpbGVGb3JVUkwo
dXJsKTsKLX0KLQogV2ViSW5zcGVjdG9yLmV2YWx1YXRlSW5Db25zb2xlID0gZnVuY3Rpb24oZXhw
cmVzc2lvbiwgc2hvd1Jlc3VsdE9ubHkpCiB7CiAgICAgdGhpcy5zaG93Q29uc29sZSgpOwpAQCAt
MTAwNCw4ICs5NzIsNiBAQCBXZWJJbnNwZWN0b3IuYWRkTWFpbkV2ZW50TGlzdGVuZXJzID0gZnVu
Y3Rpb24oZG9jKQogICAgIGRvYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuZG9jdW1l
bnRDbGljay5iaW5kKHRoaXMpLCB0cnVlKTsKIH0KIAotV2ViSW5zcGVjdG9yLlByb2ZpbGVVUkxS
ZWdFeHAgPSAvd2Via2l0LXByb2ZpbGU6XC9cLyguKylcLyguKykjKFswLTldKykvOwotCiBXZWJJ
bnNwZWN0b3IuWm9vbSA9IHsKICAgICBUYWJsZTogWzAuMjUsIDAuMzMsIDAuNSwgMC42NiwgMC43
NSwgMC45LCAxLCAxLjEsIDEuMjUsIDEuNSwgMS43NSwgMiwgMi41LCAzLCA0LCA1XSwKICAgICBE
ZWZhdWx0T2Zmc2V0OiA2Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189010</attachid>
            <date>2013-02-19 00:12:31 -0800</date>
            <delta_ts>2013-02-19 01:33:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109790-20130219120853.patch</filename>
            <type>text/plain</type>
            <size>21975</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFiOWEzNzBjMjgzODUy
YmM2NGI2MGU5NjU1N2JkYjAwYzgyOWNlZi4uMjZiMWNlNDkxYTcwMTEzMjdjYjJhOTdlNDM5YmU1
NWQxMzA1NTg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDb25zb2xlXSBBZGQgY29uc29sZSBBUEkgbWVzc2FnZSB0eXBlcyBmb3IgcHJvZmls
ZS9wcm9maWxlRW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2l0aCBwcm9maWxlL3Byb2ZpbGVFbmQgbWVzc2FnZSB0eXBlcyB3ZSB3aWxsIGdhaW4g
bW9yZSBjb250cm9sIG92ZXIKKyAgICAgICAgb3V0cHV0IG1lc3NhZ2VzLgorCisgICAgICAgICog
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOiBBZGRlZCBjb3JyZXNwb25naW5nIHN0
cmluZ3MuCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oOiBBZGRlZCBlbnVt
IG1lbWJlcnMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1l
c3NhZ2VUeXBlVmFsdWUpOiBBZGRlZCBjYXNlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5jcHA6IEFkb3B0ZWQgY2hhbmdlcy4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgQWRkZWQgbWVzc2FnZSBnZW5lcmF0
b3JzIGZvciBpbnRyb2R1Y2VkIG1lc3NhZ2UgdHlwZXMuCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICBUdXJuZWQgc2hvd1Byb2ZpbGVGb3JV
UkwodXJsKSB0byBzaG93UHJvZmlsZSh0eXBlSWQsIHVpZCkuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxlKTogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOiBSZW1vdmVk
IGxpbmtpZmllciBwbHVnaW5zLgorCiAyMDEzLTAyLTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIE1lcmdlIGhhbmRsZVNwZWNpYWxDaGlsZCBpbnRvIGxheW91
dEJsb2NrQ2hpbGRyZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcwppbmRleCBmM2I5NjJhNDI5MDZlNmMyMzVkMzE4YzZjNWRlYjBkNTY3ODJk
NjU1Li5kZjAzYzg4NGIzNmRjNWI1YWZkY2UyNzA3MTE4MTEwYjIyN2U1ZThmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0zMTEs
NiArMzExLDggQEAgbG9jYWxpemVkU3RyaW5nc1siUGF1c2VkIl0gPSAiUGF1c2VkIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlBhdXNlZCBvbiBleGNlcHRpb246ICclcycuIl0gPSAiUGF1c2VkIG9uIGV4
Y2VwdGlvbjogJyVzJy4iOwogbG9jYWxpemVkU3RyaW5nc1siUGF1c2luZyJdID0gIlBhdXNpbmci
OwogbG9jYWxpemVkU3RyaW5nc1siUHJldmlldyJdID0gIlByZXZpZXciOworbG9jYWxpemVkU3Ry
aW5nc1siUHJvZmlsZSAnJXMnIHN0YXJ0ZWQuIl0gPSAiUHJvZmlsZSAnJXMnIHN0YXJ0ZWQuIjsK
K2xvY2FsaXplZFN0cmluZ3NbIlByb2ZpbGUgJyVzJyBmaW5pc2hlZC4iXSA9ICJQcm9maWxlICcl
cycgZmluaXNoZWQuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByb2ZpbGVzIl0gPSAiUHJvZmlsZXMi
OwogbG9jYWxpemVkU3RyaW5nc1siUHJvZmlsaW5nIGRpc2FibGVkLiBDbGljayB0byBlbmFibGUu
Il0gPSAiUHJvZmlsaW5nIGRpc2FibGVkLiBDbGljayB0byBlbmFibGUuIjsKIGxvY2FsaXplZFN0
cmluZ3NbIlByb2ZpbGluZyBlbmFibGVkLiBDbGljayB0byBkaXNhYmxlLiJdID0gIlByb2ZpbGlu
ZyBlbmFibGVkLiBDbGljayB0byBkaXNhYmxlLiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29uc29sZUFQSVR5cGVzLmgKaW5kZXggMzFmMDNiMmFhZjI3ZTlkNjViMjZkZWFlNmI2ZmEwODky
NWJhZmFjMS4uMTFmNjVlYzIxMGM5ZTJkNzEwMjk0MWNhMTU1YjgzNGE3NGZkMzgzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJVHlwZXMuaApAQCAtMzgsNyArMzgsOSBA
QCBlbnVtIE1lc3NhZ2VUeXBlIHsKICAgICBFbmRHcm91cE1lc3NhZ2VUeXBlLAogICAgIENsZWFy
TWVzc2FnZVR5cGUsCiAgICAgQXNzZXJ0TWVzc2FnZVR5cGUsCi0gICAgVGltaW5nTWVzc2FnZVR5
cGUKKyAgICBUaW1pbmdNZXNzYWdlVHlwZSwKKyAgICBQcm9maWxlTWVzc2FnZVR5cGUsCisgICAg
UHJvZmlsZUVuZE1lc3NhZ2VUeXBlCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCAwYTM2MGRlNTk1
ZDI2ZjdhODMzY2JlZGZlNDExOTg2N2JkOTVmMDNjLi5kZTJlZjA0MjQwODJiZjJmMmZmMGUwYjAw
ZTllZWRjYTU1YTQ1ZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5jcHAKQEAgLTE2MSw2ICsxNjEsOCBAQCBzdGF0aWMgVHlwZUJ1aWxkZXI6OkNvbnNvbGU6
OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpFbnVtIG1lc3NhZ2VUeXBlVmFsdWUoTWVzc2FnZQogICAg
IGNhc2UgRW5kR3JvdXBNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpD
b25zb2xlTWVzc2FnZTo6VHlwZTo6RW5kR3JvdXA7CiAgICAgY2FzZSBBc3NlcnRNZXNzYWdlVHlw
ZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6QXNz
ZXJ0OwogICAgIGNhc2UgVGltaW5nTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29u
c29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OlRpbWluZzsKKyAgICBjYXNlIFByb2ZpbGVNZXNz
YWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlw
ZTo6UHJvZmlsZTsKKyAgICBjYXNlIFByb2ZpbGVFbmRNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVC
dWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6UHJvZmlsZUVuZDsKICAgICB9
CiAgICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6
TG9nOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGMxY2I5
ODA0OWUzNzNmZTgzMzlhZTViOTZmODBhMWIzNWYxMGU4YjEuLjQ3M2RkYmI3YWMwOTdkYjFhZDYw
NjM1YzkzODdkNWM1NzRhOGFkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KQEAgLTc3MSw3ICs3NzEsNyBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNvdXJjZSIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJodG1sIiwgIndtbCIsICJ4bWwi
LCAiamF2YXNjcmlwdCIsICJuZXR3b3JrIiwgImNvbnNvbGUtYXBpIiwgIm90aGVyIl0sICJkZXNj
cmlwdGlvbiI6ICJNZXNzYWdlIHNvdXJjZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAibGV2ZWwiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsidGlwIiwgImxvZyIsICJ3
YXJuaW5nIiwgImVycm9yIiwgImRlYnVnIl0sICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHNldmVy
aXR5LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2UgdGV4dC4iIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRy
dWUsICJlbnVtIjogWyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIsICJ0cmFjZSIsICJj
bGVhciIsICJzdGFydEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5kR3JvdXAiLCAi
YXNzZXJ0IiwgInRpbWluZyJdLCAiZGVzY3JpcHRpb24iOiAiQ29uc29sZSBtZXNzYWdlIHR5cGUu
IiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZW51bSI6IFsibG9nIiwgImRpciIsICJkaXJ4bWwiLCAi
dGFibGUiLCAidHJhY2UiLCAiY2xlYXIiLCAic3RhcnRHcm91cCIsICJzdGFydEdyb3VwQ29sbGFw
c2VkIiwgImVuZEdyb3VwIiwgImFzc2VydCIsICJ0aW1pbmciLCAicHJvZmlsZSIsICJwcm9maWxl
RW5kIl0sICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgbWVzc2FnZSBvcmlnaW4uIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmUiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRoZSByZXNv
dXJjZSB0aGF0IGdlbmVyYXRlZCB0aGlzIG1lc3NhZ2UuIiB9LAogICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInJlcGVhdENvdW50IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXBlYXQgY291bnQgZm9yIHJlcGVhdGVkIG1lc3NhZ2Vz
LiIgfSwKQEAgLTM0OTQsNyArMzQ5NCw2IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYXJndW1lbnRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNhbGxB
cmd1bWVudCIgfSwgIm9wdGlvbmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInJlc3VsdCIsICIkcmVmIjogIkNhbGxBcmd1bWVudCIsICJvcHRpb25hbCI6IHRydWUg
fSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc0RyYXdpbmdDYWxsIiwgInR5cGUi
OiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc0ZyYW1lRW5kQ2FsbCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHkiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidmFsdWUiLCAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAib3B0aW9uYWwiOiB0cnVlIH0s
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlVVJMIiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IDJkN2IwODNlZjRlMGQxNDY3OTZi
MGYyNDYxOTIxMGFiY2JkMjI3MGQuLjI1MTQ0ZmU3NjAyYWE1ZDUyNjI5YTc5Mzg3YzYxMTdiNmI2
ZDk4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9m
aWxlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5jcHAKQEAgLTE2NCwxNyArMTY0LDE1IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6YWRkUHJvZmlsZUZpbmlzaGVkTWVzc2FnZVRvQ29uc29sZShQYXNzUmVmUHRyPFNj
cmlwCiAgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAgICByZXR1cm47CiAgICAgUmVmUHRyPFNj
cmlwdFByb2ZpbGU+IHByb2ZpbGUgPSBwcnBQcm9maWxlOwotICAgIFN0cmluZyB0aXRsZSA9IHBy
b2ZpbGUtPnRpdGxlKCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJQcm9maWxl
IFwid2Via2l0LXByb2ZpbGU6Ly8iLCBDUFVQcm9maWxlVHlwZSwgJy8nLCBlbmNvZGVXaXRoVVJM
RXNjYXBlU2VxdWVuY2VzKHRpdGxlKSwgJyMnLCBTdHJpbmc6Om51bWJlcihwcm9maWxlLT51aWQo
KSksICJcIiBmaW5pc2hlZC4iKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29u
c29sZShDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIERlYnVnTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgIFN0cmluZyBtZXNz
YWdlID0gbWFrZVN0cmluZyhwcm9maWxlLT50aXRsZSgpLCAnIycsIFN0cmluZzo6bnVtYmVyKHBy
b2ZpbGUtPnVpZCgpKSk7CisgICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
Q29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIFByb2ZpbGVFbmRNZXNzYWdlVHlwZSwgRGVidWdNZXNz
YWdlTGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudDo6YWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMKQogewogICAgIGlmICghbV9mcm9udGVuZCkKICAgICAgICAgcmV0dXJuOwotICAgIFN0
cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiUHJvZmlsZSBcIndlYmtpdC1wcm9maWxlOi8vIiwg
Q1BVUHJvZmlsZVR5cGUsICcvJywgZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyh0aXRsZSks
ICIjMFwiIHN0YXJ0ZWQuIik7Ci0gICAgbV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNv
bGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAgICBtX2NvbnNvbGVBZ2Vu
dC0+YWRkTWVzc2FnZVRvQ29uc29sZShDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgUHJvZmlsZU1l
c3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VMZXZlbCwgdGl0bGUsIHNvdXJjZVVSTCwgbGluZU51bWJl
cik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y29sbGVjdEdhcmJhZ2UoV2Vi
Q29yZTo6RXJyb3JTdHJpbmcqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggMGU1ODJiMmQxZDhlZjhjZTU1NDY2M2Q1
ZWU4YjkwOWU4ZWNjOGE3Mi4uZmQ4NTJlODgzZWI1MWY2ZTY3YjRjMjMwYmYwYzMxZWM4YjA2ZDdi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xl
TWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVNZXNzYWdlLmpzCkBAIC0xMTEsNiArMTExLDE5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFsi
JU8iLCBvYmpdOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlRWxlbWVudCA9IHRo
aXMuX2Zvcm1hdChhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUHJvZmls
ZToKKyAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWxEZXNjcmlwdG9yLnJlc29sdmVQcm9maWxlVGl0bGUodGhpcy5fbWVzc2FnZVRleHQpOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZSAnJXMnIHN0YXJ0ZWQuIiwg
dGl0bGUpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUHJvZmlsZUVuZDoKKyAg
ICAgICAgICAgICAgICAgICAgdmFyIGhhc2hJbmRleCA9IHRoaXMuX21lc3NhZ2VUZXh0Lmxhc3RJ
bmRleE9mKCIjIik7CisgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IFdlYkluc3BlY3Rv
ci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxlKHRoaXMuX21lc3Nh
Z2VUZXh0LnN1YnN0cmluZygwLCBoYXNoSW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHVpZCA9IHRoaXMuX21lc3NhZ2VUZXh0LnN1YnN0cmluZyhoYXNoSW5kZXggKyAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIGZvcm1hdCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJvZmls
ZSAnJXMnIGZpbmlzaGVkLiIsICIlXyIpOworICAgICAgICAgICAgICAgICAgICB2YXIgbGluayA9
IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKCJ3ZWJraXQtcHJvZmlsZTovL0NQVS8iICsg
dWlkLCB0aXRsZSk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VFbGVtZW50ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICAgICAgICAgICAgICB0aGlz
Ll9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nKGZvcm1hdCwgW2xpbmtdLCB0aGlzLl9tZXNz
YWdlRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gdGhpcy5fcGFyYW1ldGVy
cyB8fCBbdGhpcy5fbWVzc2FnZVRleHRdOwogICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNz
YWdlRWxlbWVudCA9IHRoaXMuX2Zvcm1hdChhcmdzKTsKQEAgLTI0Nyw3ICsyNjAsNyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gTXVs
dGlwbGUgcGFyYW1ldGVycyB3aXRoIHRoZSBmaXJzdCBiZWluZyBhIGZvcm1hdCBzdHJpbmcuIFNh
dmUgdW51c2VkIHN1YnN0aXR1dGlvbnMuCiAgICAgICAgIGlmIChzaG91bGRGb3JtYXRNZXNzYWdl
KSB7CiAgICAgICAgICAgICAvLyBNdWx0aXBsZSBwYXJhbWV0ZXJzIHdpdGggdGhlIGZpcnN0IGJl
aW5nIGEgZm9ybWF0IHN0cmluZy4gU2F2ZSB1bnVzZWQgc3Vic3RpdHV0aW9ucy4KLSAgICAgICAg
ICAgIHZhciByZXN1bHQgPSB0aGlzLl9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nKHBhcmFt
ZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCk7CisgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5f
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZyhwYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uLCBw
YXJhbWV0ZXJzLnNsaWNlKDEpLCBmb3JtYXR0ZWRSZXN1bHQpOwogICAgICAgICAgICAgcGFyYW1l
dGVycyA9IHJlc3VsdC51bnVzZWRTdWJzdGl0dXRpb25zOwogICAgICAgICAgICAgaWYgKHBhcmFt
ZXRlcnMubGVuZ3RoKQogICAgICAgICAgICAgICAgIGZvcm1hdHRlZFJlc3VsdC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiICIpKTsKQEAgLTU2NSw3ICs1NzgsNyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX2Zvcm1hdFBhcmFtZXRlcihvdXRwdXQsIG91dHB1dC5zdWJ0eXBlICYmIG91dHB1dC5z
dWJ0eXBlID09PSAiYXJyYXkiLCBmYWxzZSk7CiAgICAgfSwKIAotICAgIF9mb3JtYXRXaXRoU3Vi
c3RpdHV0aW9uU3RyaW5nOiBmdW5jdGlvbihwYXJhbWV0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQpCisg
ICAgX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmc6IGZ1bmN0aW9uKGZvcm1hdCwgcGFyYW1l
dGVycywgZm9ybWF0dGVkUmVzdWx0KQogICAgIHsKICAgICAgICAgdmFyIGZvcm1hdHRlcnMgPSB7
fTsKIApAQCAtNTkzLDYgKzYwNiwxMSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG9iai52YWx1ZSk7
CiAgICAgICAgIH0KIAorICAgICAgICBmdW5jdGlvbiBieXBhc3NGb3JtYXR0ZXIob2JqKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gKG9iaiBpbnN0YW5jZW9mIE5vZGUpID8gb2JqIDog
IiI7CisgICAgICAgIH0KKwogICAgICAgICB2YXIgY3VycmVudFN0eWxlID0gbnVsbDsKICAgICAg
ICAgZnVuY3Rpb24gc3R5bGVGb3JtYXR0ZXIob2JqKQogICAgICAgICB7CkBAIC02MzAsNiArNjQ4
LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIC8vIFN1cHBvcnQgJU8gdG8gZm9yY2Ugb2JqZWN0IGZvcm1hdHRpbmcsIGluc3RlYWQgb2Yg
dGhlIHR5cGUtYmFzZWQgJW8gZm9ybWF0dGluZy4KICAgICAgICAgZm9ybWF0dGVycy5PID0gcGFy
YW1ldGVyRm9ybWF0dGVyLmJpbmQodGhpcywgdHJ1ZSk7CiAKKyAgICAgICAgZm9ybWF0dGVycy5f
ID0gYnlwYXNzRm9ybWF0dGVyOworCiAgICAgICAgIGZ1bmN0aW9uIGFwcGVuZChhLCBiKQogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAoYiBpbnN0YW5jZW9mIE5vZGUpCkBAIC02NDksNyArNjY5
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBTdHJpbmcuZm9ybWF0IGRvZXMgdHJlYXQgZm9ybWF0dGVkUmVz
dWx0IGxpa2UgYSBCdWlsZGVyLCByZXN1bHQgaXMgYW4gb2JqZWN0LgotICAgICAgICByZXR1cm4g
U3RyaW5nLmZvcm1hdChwYXJhbWV0ZXJzWzBdLmRlc2NyaXB0aW9uLCBwYXJhbWV0ZXJzLnNsaWNl
KDEpLCBmb3JtYXR0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQsIGFwcGVuZCk7CisgICAgICAgIHJldHVy
biBTdHJpbmcuZm9ybWF0KGZvcm1hdCwgcGFyYW1ldGVycywgZm9ybWF0dGVycywgZm9ybWF0dGVk
UmVzdWx0LCBhcHBlbmQpOwogICAgIH0sCiAKICAgICBjbGVhckhpZ2hsaWdodDogZnVuY3Rpb24o
KQpAQCAtODIwLDYgKzg0MCwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
Lk1lc3NhZ2VUeXBlLlJlc3VsdDoKICAgICAgICAgICAgICAgICB0eXBlU3RyaW5nID0gIlJlc3Vs
dCI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Qcm9maWxlOgorICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUHJvZmlsZUVuZDoKKyAgICAg
ICAgICAgICAgICB0eXBlU3RyaW5nID0gIlByb2ZpbGluZyI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgbGV2ZWxTdHJpbmc7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCmluZGV4IGFkNDQz
MTRjMzczNjI5NDk1ZDllNzFjMDgxY2Y5ZmFlNjQ5NjZiMGIuLjdkOTgzZDc1YjY3MGIwYWQzMGYx
NGVmN2JkMzc4YTM0YWQxMDU5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCkBAIC0yMzcsNyArMjM3LDkgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlID0gewogICAgIFN0YXJ0R3JvdXBDb2xsYXBz
ZWQ6ICJzdGFydEdyb3VwQ29sbGFwc2VkIiwKICAgICBFbmRHcm91cDogImVuZEdyb3VwIiwKICAg
ICBBc3NlcnQ6ICJhc3NlcnQiLAotICAgIFJlc3VsdDogInJlc3VsdCIKKyAgICBSZXN1bHQ6ICJy
ZXN1bHQiLAorICAgIFByb2ZpbGU6ICJwcm9maWxlIiwKKyAgICBQcm9maWxlRW5kOiAicHJvZmls
ZUVuZCIKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VMZXZlbCA9IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5l
bC5qcwppbmRleCAwOTBkYTQ2NWI1YzI4ODEyOTM2NjgyZTkxNDVjYjRlOGI1MjllMjc0Li5lNjkx
MTZkNjNkOWI5MTRhMzQ0MTJiMzYxNzhmZDExYWVhODc4ZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCkBAIC02MDIsNyAr
NjAyLDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICBzaWRlYmFyUGFyZW50LmFwcGVuZENoaWxkKHByb2ZpbGVUcmVlRWxlbWVudCk7CiAgICAgICAg
IGlmICghcHJvZmlsZS5pc1RlbXBvcmFyeSkgewogICAgICAgICAgICAgaWYgKCF0aGlzLnZpc2li
bGVWaWV3KQotICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CisgICAg
ICAgICAgICAgICAgdGhpcy5zaG93UHJvZmlsZV8ocHJvZmlsZSk7CiAgICAgICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycygicHJvZmlsZSBhZGRlZCIsIHsKICAgICAgICAgICAg
ICAgICB0eXBlOiB0eXBlSWQKICAgICAgICAgICAgIH0pOwpAQCAtNjUwLDcgKzY1MCw3IEBAIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5Qcm9maWxlSGVhZGVyfSBwcm9maWxlCiAgICAgICovCi0gICAg
c2hvd1Byb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUpCisgICAgc2hvd1Byb2ZpbGVfOiBmdW5jdGlv
bihwcm9maWxlKQogICAgIHsKICAgICAgICAgaWYgKCFwcm9maWxlIHx8IHByb2ZpbGUuaXNUZW1w
b3JhcnkpCiAgICAgICAgICAgICByZXR1cm47CkBAIC03MDQsNyArNzA0LDcgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHByb2ZpbGUg
PSBoZWFwUHJvZmlsZXNbaV07CiAgICAgICAgICAgICAvLyBUT0RPOiBhbGxvdyB0byBjaG9vc2Ug
c25hcHNob3QgaWYgdGhlcmUgYXJlIHNldmVyYWwgb3B0aW9ucy4KICAgICAgICAgICAgIGlmIChw
cm9maWxlLm1heEpTT2JqZWN0SWQgPj0gc25hcHNob3RPYmplY3RJZCkgewotICAgICAgICAgICAg
ICAgIHRoaXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CisgICAgICAgICAgICAgICAgdGhpcy5zaG93
UHJvZmlsZV8ocHJvZmlsZSk7CiAgICAgICAgICAgICAgICAgcHJvZmlsZS52aWV3KCkuY2hhbmdl
Vmlldyh2aWV3TmFtZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgIHByb2ZpbGUu
dmlldygpLmRhdGFHcmlkLmhpZ2hsaWdodE9iamVjdEJ5SGVhcFNuYXBzaG90SWQoc25hcHNob3RP
YmplY3RJZCk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC03NzMsNyArNzczLDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNob3dWaWV3
OiBmdW5jdGlvbih2aWV3KQogICAgIHsKLSAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh2aWV3LnBy
b2ZpbGUpOworICAgICAgICB0aGlzLnNob3dQcm9maWxlXyh2aWV3LnByb2ZpbGUpOwogICAgIH0s
CiAKICAgICAvKioKQEAgLTc4NSwxNCArNzg1LDEyIEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJp
bmd9IHVybAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlSWQKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gdWlkCiAgICAgICovCi0gICAgc2hvd1Byb2ZpbGVGb3JVUkw6IGZ1bmN0aW9uKHVybCkK
KyAgICBzaG93UHJvZmlsZTogZnVuY3Rpb24odHlwZUlkLCB1aWQpCiAgICAgewotICAgICAgICB2
YXIgbWF0Y2ggPSB1cmwubWF0Y2goV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9y
LlByb2ZpbGVVUkxSZWdFeHApOwotICAgICAgICBpZiAoIW1hdGNoKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB0aGlzLnNob3dQcm9maWxlKHRoaXMuX3Byb2ZpbGVzSWRNYXBbdGhpcy5f
bWFrZUtleShOdW1iZXIobWF0Y2hbM10pLCBtYXRjaFsxXSldKTsKKyAgICAgICAgdGhpcy5zaG93
UHJvZmlsZV8odGhpcy5fcHJvZmlsZXNJZE1hcFt0aGlzLl9tYWtlS2V5KE51bWJlcih1aWQpLCB0
eXBlSWQpXSk7CiAgICAgfSwKIAogICAgIGNsb3NlVmlzaWJsZVZpZXc6IGZ1bmN0aW9uKCkKQEAg
LTgwMywzMSArODAxLDYgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gdHlwZUlkCi0gICAgICovCi0gICAgZGlzcGxheVRpdGxlRm9yUHJv
ZmlsZUxpbms6IGZ1bmN0aW9uKHRpdGxlLCB0eXBlSWQpCi0gICAgewotICAgICAgICB0aXRsZSA9
IHVuZXNjYXBlKHRpdGxlKTsKLSAgICAgICAgaWYgKHRpdGxlLnN0YXJ0c1dpdGgoVXNlckluaXRp
YXRlZFByb2ZpbGVOYW1lKSkgewotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlByb2ZpbGUgJWQiLCB0aXRsZS5zdWJzdHJpbmcoVXNlckluaXRpYXRlZFByb2ZpbGVO
YW1lLmxlbmd0aCArIDEpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhciB0aXRs
ZUtleSA9IHRoaXMuX21ha2VUaXRsZUtleSh0aXRsZSwgdHlwZUlkKTsKLSAgICAgICAgICAgIGlm
ICghKHRpdGxlS2V5IGluIHRoaXMuX3Byb2ZpbGVHcm91cHNGb3JMaW5rcykpCi0gICAgICAgICAg
ICAgICAgdGhpcy5fcHJvZmlsZUdyb3Vwc0ZvckxpbmtzW3RpdGxlS2V5XSA9IDA7Ci0KLSAgICAg
ICAgICAgIHZhciBncm91cE51bWJlciA9ICsrdGhpcy5fcHJvZmlsZUdyb3Vwc0ZvckxpbmtzW3Rp
dGxlS2V5XTsKLQotICAgICAgICAgICAgaWYgKGdyb3VwTnVtYmVyID4gMikKLSAgICAgICAgICAg
ICAgICAvLyBUaGUgdGl0bGUgaXMgdXNlZCBpbiB0aGUgY29uc29sZSBtZXNzYWdlIGFubm91bmNp
bmcgdGhhdCBhIHByb2ZpbGUgaGFzIHN0YXJ0ZWQgc28gaXQgZ2V0cwotICAgICAgICAgICAgICAg
IC8vIGluY3JlbWVudGVkIHR3aWNlIGFzIG9mdGVuIGFzIGl0J3MgZGlzcGxheWVkCi0gICAgICAg
ICAgICAgICAgdGl0bGUgKz0gIiAiICsgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSdW4gJWQiLCAo
Z3JvdXBOdW1iZXIgKyAxKSAvIDIpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIHRpdGxl
OwotICAgIH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlcnkKICAgICAg
Ki8KICAgICBwZXJmb3JtU2VhcmNoOiBmdW5jdGlvbihxdWVyeSkKQEAgLTE0MDcsNyArMTM4MCw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICBvbnNlbGVjdDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9zdXBw
cmVzc09uU2VsZWN0KQotICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5wYW5lbC5zaG93UHJv
ZmlsZSh0aGlzLnByb2ZpbGUpOworICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5wYW5lbC5z
aG93UHJvZmlsZV8odGhpcy5wcm9maWxlKTsKICAgICB9LAogCiAgICAgb25kZWxldGU6IGZ1bmN0
aW9uKCkKQEAgLTE0ODMsNyArMTQ1Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlR3JvdXBTaWRl
YmFyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIG9uc2VsZWN0OiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwKQotICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuX2luc3RhbmNlLnNob3dQcm9maWxlKHRoaXMuY2hp
bGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXS5wcm9maWxlKTsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLl9pbnN0YW5jZS5zaG93UHJvZmlsZV8odGhpcy5jaGls
ZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdLnByb2ZpbGUpOwogICAgIH0sCiAKICAgICBf
X3Byb3RvX186IFdlYkluc3BlY3Rvci5TaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWxE
ZXNjcmlwdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxl
c1BhbmVsRGVzY3JpcHRvci5qcwppbmRleCAyNGMwNmUxMWU0MDE5MWNjMGE4ODllMWNjY2UwOGNi
OThkODEzZTUzLi5kNjljNjc3NTI0ZjQwYmU3ZTE5OTZiZmRlZmNhYjM4NGM3MDkwZThjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWxE
ZXNjcmlwdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZXNQYW5lbERlc2NyaXB0b3IuanMKQEAgLTY0LDMgKzY0LDE0IEBAIFdlYkluc3BlY3Rvci5Q
cm9maWxlc1BhbmVsRGVzY3JpcHRvci51c2VySW5pdGlhdGVkUHJvZmlsZUluZGV4ID0gZnVuY3Rp
b24odGl0bGUpCiAgICAgdmFyIHN1ZmZpeCA9IHRpdGxlLnN1YnN0cmluZyhXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbERlc2NyaXB0b3IuVXNlckluaXRpYXRlZFByb2ZpbGVOYW1lLmxlbmd0aCAr
IDEpOwogICAgIHJldHVybiBwYXJzZUludChzdWZmaXgsIDEwKTsKIH0KKworLyoqCisgKiBAcGFy
YW0ge3N0cmluZ30gdGl0bGUKKyAqIEByZXR1cm4ge3N0cmluZ30KKyAqLworV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLnJlc29sdmVQcm9maWxlVGl0bGUgPSBmdW5jdGlvbih0
aXRsZSkKK3sKKyAgICBpZiAoIVdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5p
c1VzZXJJbml0aWF0ZWRQcm9maWxlKHRpdGxlKSkKKyAgICAgICAgcmV0dXJuIHRpdGxlOworICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGUgJWQiLCBXZWJJbnNwZWN0b3Iu
UHJvZmlsZXNQYW5lbERlc2NyaXB0b3IudXNlckluaXRpYXRlZFByb2ZpbGVJbmRleCh0aXRsZSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZVV0aWxzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZVV0aWxzLmpzCmluZGV4IGU1YmMyYjQ5NjM2YzNmOGQ4N2FjN2E0NzE4MTcyM2JjZTk0NzlmZGYu
LmVmMTkxM2FlZTM4OTc5ZDI2NTQ3YzhhYjNkNWJiYTdlM2I4NmQ2YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMKQEAgLTEy
NCwxNiArMTI0LDYgQEAgV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdBc0ZyYWdtZW50V2l0aEN1
c3RvbUxpbmtpZmllciA9IGZ1bmN0aW9uKHN0cmluZywgbGlua2kKICAgICByZXR1cm4gY29udGFp
bmVyOwogfQogCi1XZWJJbnNwZWN0b3IuX2xpbmtpZmllclBsdWdpbnMgPSBbXTsKLQotLyoqCi0g
KiBAcGFyYW0ge2Z1bmN0aW9uKHN0cmluZyk6c3RyaW5nfSBwbHVnaW4KLSAqLwotV2ViSW5zcGVj
dG9yLnJlZ2lzdGVyTGlua2lmaWVyUGx1Z2luID0gZnVuY3Rpb24ocGx1Z2luKQotewotICAgIFdl
Ykluc3BlY3Rvci5fbGlua2lmaWVyUGx1Z2lucy5wdXNoKHBsdWdpbik7Ci19Ci0KIC8qKgogICog
QHBhcmFtIHtzdHJpbmd9IHN0cmluZwogICogQHJldHVybiB7RG9jdW1lbnRGcmFnbWVudH0KQEAg
LTE0OCw5ICsxMzgsNiBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnQgPSBm
dW5jdGlvbihzdHJpbmcpCiAgICAgICovCiAgICAgZnVuY3Rpb24gbGlua2lmaWVyKHRpdGxlLCB1
cmwsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IFdlYklu
c3BlY3Rvci5fbGlua2lmaWVyUGx1Z2lucy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRpdGxl
ID0gV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zW2ldKHRpdGxlKTsKLQogICAgICAgICB2
YXIgaXNFeHRlcm5hbCA9ICFXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwodXJsKTsKICAgICAg
ICAgdmFyIHVybE5vZGUgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIHRpdGxl
LCB1bmRlZmluZWQsIGlzRXh0ZXJuYWwpOwogICAgICAgICBpZiAodHlwZW9mKGxpbmVOdW1iZXIp
ICE9PSAidW5kZWZpbmVkIikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwppbmRleCAyZTcyYmNmNGY2MWMzZDIzNWU1NjQ3ODAzY2RhODA0NjUy
N2JlNzZmLi5mNjcxMzg0OGIwOGEzM2E3NGFlMzIzZDEzNDFiNjExYzA0OTJiN2ZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtMjcy
LDE2ICsyNzIsNiBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tQWdlbnQuc2V0SW5zcGVjdE1vZGVFbmFibGVkKGVuYWJsZWQsIGNhbGxiYWNrLmJpbmQodGhp
cykpOwogICAgIH0sCiAKLSAgICBfcHJvZmlsZXNMaW5raWZpZXI6IGZ1bmN0aW9uKHRpdGxlKQot
ICAgIHsKLSAgICAgICAgdmFyIHByb2ZpbGVTdHJpbmdNYXRjaGVzID0gV2ViSW5zcGVjdG9yLlBy
b2ZpbGVzUGFuZWxEZXNjcmlwdG9yLlByb2ZpbGVVUkxSZWdFeHAuZXhlYyh0aXRsZSk7Ci0gICAg
ICAgIGlmIChwcm9maWxlU3RyaW5nTWF0Y2hlcykgewotICAgICAgICAgICAgdmFyIHByb2ZpbGVz
UGFuZWwgPSAvKiogQCB0eXBlIHtXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbH0gKi8gV2ViSW5z
cGVjdG9yLnBhbmVsKCJwcm9maWxlcyIpOwotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5faW5zdGFuY2UuZGlzcGxheVRpdGxlRm9yUHJvZmlsZUxpbmsocHJv
ZmlsZVN0cmluZ01hdGNoZXNbMl0sIHByb2ZpbGVTdHJpbmdNYXRjaGVzWzFdKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gdGl0bGU7Ci0gICAgfSwKLQogICAgIF9kZWJ1Z2dlclBhdXNlZDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgLy8gQ3JlYXRlIHNjcmlwdHMgcGFuZWwgdXBvbiBk
ZW1hbmQuCkBAIC00NjcsNyArNDU3LDYgQEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRo
Q2FwYWJpbGl0aWVzID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5lbmRCYXRjaFVwZGF0
ZSgpOwogCiAgICAgdGhpcy5hZGRNYWluRXZlbnRMaXN0ZW5lcnMoZG9jdW1lbnQpOwotICAgIFdl
Ykluc3BlY3Rvci5yZWdpc3RlckxpbmtpZmllclBsdWdpbih0aGlzLl9wcm9maWxlc0xpbmtpZmll
ci5iaW5kKHRoaXMpKTsKIAogICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCB0
aGlzLndpbmRvd1Jlc2l6ZS5iaW5kKHRoaXMpLCB0cnVlKTsKIApAQCAtNTgyLDcgKzU3MSw3IEBA
IFdlYkluc3BlY3Rvci5jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KQogV2ViSW5zcGVjdG9yLmRvY3Vt
ZW50Q2xpY2sgPSBmdW5jdGlvbihldmVudCkKIHsKICAgICB2YXIgYW5jaG9yID0gZXZlbnQudGFy
Z2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoTm9kZU5hbWUoImEiKTsKLSAgICBpZiAoIWFuY2hv
ciB8fCAoYW5jaG9yLnRhcmdldCA9PT0gIl9ibGFuayIgJiYgIVdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsRGVzY3JpcHRvci5Qcm9maWxlVVJMUmVnRXhwLmV4ZWMoYW5jaG9yLmhyZWYpKSkKKyAg
ICBpZiAoIWFuY2hvciB8fCAoYW5jaG9yLnRhcmdldCA9PT0gIl9ibGFuayIpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICAvLyBQcmV2ZW50IHRoZSBsaW5rIGZyb20gbmF2aWdhdGluZywgc2luY2Ug
d2UgZG9uJ3QgZG8gYW55IG5hdmlnYXRpb24gYnkgZm9sbG93aW5nIGxpbmtzIG5vcm1hbGx5LgpA
QCAtNTk1LDcgKzU4NCw3IEBAIFdlYkluc3BlY3Rvci5kb2N1bWVudENsaWNrID0gZnVuY3Rpb24o
ZXZlbnQpCiAKICAgICAgICAgY29uc3QgcHJvZmlsZU1hdGNoID0gV2ViSW5zcGVjdG9yLlByb2Zp
bGVzUGFuZWxEZXNjcmlwdG9yLlByb2ZpbGVVUkxSZWdFeHAuZXhlYyhhbmNob3IuaHJlZik7CiAg
ICAgICAgIGlmIChwcm9maWxlTWF0Y2gpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93
UHJvZmlsZUZvclVSTChhbmNob3IuaHJlZik7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2hv
d1BhbmVsKCJwcm9maWxlcyIpLnNob3dQcm9maWxlKHByb2ZpbGVNYXRjaFsxXSwgcHJvZmlsZU1h
dGNoWzJdKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC05ODMsMTEgKzk3
Miw2IEBAIFdlYkluc3BlY3Rvci5fc2hvd0FuY2hvckxvY2F0aW9uSW5QYW5lbCA9IGZ1bmN0aW9u
KGFuY2hvciwgcGFuZWwpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVdlYkluc3BlY3Rvci5zaG93
UHJvZmlsZUZvclVSTCA9IGZ1bmN0aW9uKHVybCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1Bh
bmVsKCJwcm9maWxlcyIpLnNob3dQcm9maWxlRm9yVVJMKHVybCk7Ci19Ci0KIFdlYkluc3BlY3Rv
ci5ldmFsdWF0ZUluQ29uc29sZSA9IGZ1bmN0aW9uKGV4cHJlc3Npb24sIHNob3dSZXN1bHRPbmx5
KQogewogICAgIHRoaXMuc2hvd0NvbnNvbGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189021</attachid>
            <date>2013-02-19 01:33:28 -0800</date>
            <delta_ts>2013-02-20 04:08:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109790-20130219132950.patch</filename>
            <type>text/plain</type>
            <size>21965</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU1MDc0NmM0Y2FiYzI5
NjlkOGNkMDI0YWZjYzkzMzlhYzIzNTNkMy4uYWViMGJmN2RiMmNkNjU3OWVmZDc0MWE1MjliMTcz
MGRjNDQyMThkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDb25zb2xlXSBBZGQgY29uc29sZSBBUEkgbWVzc2FnZSB0eXBlcyBmb3IgcHJvZmls
ZS9wcm9maWxlRW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2l0aCBwcm9maWxlL3Byb2ZpbGVFbmQgbWVzc2FnZSB0eXBlcyB3ZSB3aWxsIGdhaW4g
bW9yZSBjb250cm9sIG92ZXIKKyAgICAgICAgb3V0cHV0IG1lc3NhZ2VzLgorCisgICAgICAgICog
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOiBBZGRlZCBjb3JyZXNwb25naW5nIHN0
cmluZ3MuCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oOiBBZGRlZCBlbnVt
IG1lbWJlcnMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1l
c3NhZ2VUeXBlVmFsdWUpOiBBZGRlZCBjYXNlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5jcHA6IEFkb3B0ZWQgY2hhbmdlcy4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgQWRkZWQgbWVzc2FnZSBnZW5lcmF0
b3JzIGZvciBpbnRyb2R1Y2VkIG1lc3NhZ2UgdHlwZXMuCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICBUdXJuZWQgc2hvd1Byb2ZpbGVGb3JV
UkwodXJsKSB0byBzaG93UHJvZmlsZSh0eXBlSWQsIHVpZCkuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxlKTogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOiBSZW1vdmVk
IGxpbmtpZmllciBwbHVnaW5zLgorCiAyMDEzLTAyLTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFlldCBhbnRoZXIgSlNDIGJ1aWxkIGZpeCBhZnRlciByMTQz
MzA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IGYzYjk2MmE0MjkwNmU2YzIzNWQzMThjNmM1ZGViMGQ1Njc4MmQ2NTUuLmRmMDNj
ODg0YjM2ZGM1YjVhZmRjZTI3MDcxMTgxMTBiMjI3ZTVlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTMxMSw2ICszMTEsOCBA
QCBsb2NhbGl6ZWRTdHJpbmdzWyJQYXVzZWQiXSA9ICJQYXVzZWQiOwogbG9jYWxpemVkU3RyaW5n
c1siUGF1c2VkIG9uIGV4Y2VwdGlvbjogJyVzJy4iXSA9ICJQYXVzZWQgb24gZXhjZXB0aW9uOiAn
JXMnLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQYXVzaW5nIl0gPSAiUGF1c2luZyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJQcmV2aWV3Il0gPSAiUHJldmlldyI7Citsb2NhbGl6ZWRTdHJpbmdzWyJQcm9m
aWxlICclcycgc3RhcnRlZC4iXSA9ICJQcm9maWxlICclcycgc3RhcnRlZC4iOworbG9jYWxpemVk
U3RyaW5nc1siUHJvZmlsZSAnJXMnIGZpbmlzaGVkLiJdID0gIlByb2ZpbGUgJyVzJyBmaW5pc2hl
ZC4iOwogbG9jYWxpemVkU3RyaW5nc1siUHJvZmlsZXMiXSA9ICJQcm9maWxlcyI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyJQcm9maWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iXSA9ICJQcm9m
aWxpbmcgZGlzYWJsZWQuIENsaWNrIHRvIGVuYWJsZS4iOwogbG9jYWxpemVkU3RyaW5nc1siUHJv
ZmlsaW5nIGVuYWJsZWQuIENsaWNrIHRvIGRpc2FibGUuIl0gPSAiUHJvZmlsaW5nIGVuYWJsZWQu
IENsaWNrIHRvIGRpc2FibGUuIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Db25zb2xlQVBJVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJ
VHlwZXMuaAppbmRleCAzMWYwM2IyYWFmMjdlOWQ2NWIyNmRlYWU2YjZmYTA4OTI1YmFmYWMxLi4x
MWY2NWVjMjEwYzllMmQ3MTAyOTQxY2ExNTViODM0YTc0ZmQzODNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oCkBAIC0zOCw3ICszOCw5IEBAIGVudW0gTWVz
c2FnZVR5cGUgewogICAgIEVuZEdyb3VwTWVzc2FnZVR5cGUsCiAgICAgQ2xlYXJNZXNzYWdlVHlw
ZSwKICAgICBBc3NlcnRNZXNzYWdlVHlwZSwKLSAgICBUaW1pbmdNZXNzYWdlVHlwZQorICAgIFRp
bWluZ01lc3NhZ2VUeXBlLAorICAgIFByb2ZpbGVNZXNzYWdlVHlwZSwKKyAgICBQcm9maWxlRW5k
TWVzc2FnZVR5cGUKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDBhMzYwZGU1OTVkMjZmN2E4MzNj
YmVkZmU0MTE5ODY3YmQ5NWYwM2MuLmRlMmVmMDQyNDA4MmJmMmYyZmYwZTBiMDBlOWVlZGNhNTVh
NDVkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApA
QCAtMTYxLDYgKzE2MSw4IEBAIHN0YXRpYyBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1l
c3NhZ2U6OlR5cGU6OkVudW0gbWVzc2FnZVR5cGVWYWx1ZShNZXNzYWdlCiAgICAgY2FzZSBFbmRH
cm91cE1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNz
YWdlOjpUeXBlOjpFbmRHcm91cDsKICAgICBjYXNlIEFzc2VydE1lc3NhZ2VUeXBlOiByZXR1cm4g
VHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpBc3NlcnQ7CiAgICAg
Y2FzZSBUaW1pbmdNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25z
b2xlTWVzc2FnZTo6VHlwZTo6VGltaW5nOworICAgIGNhc2UgUHJvZmlsZU1lc3NhZ2VUeXBlOiBy
ZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpQcm9maWxl
OworICAgIGNhc2UgUHJvZmlsZUVuZE1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNv
bnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpQcm9maWxlRW5kOwogICAgIH0KICAgICByZXR1
cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpMb2c7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYzFjYjk4MDQ5ZTM3M2Zl
ODMzOWFlNWI5NmY4MGExYjM1ZjEwZThiMS4uNDczZGRiYjdhYzA5N2RiMWFkNjA2MzVjOTM4N2Q1
YzU3NGE4YWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
NzcxLDcgKzc3MSw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwg
InR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImh0bWwiLCAid21sIiwgInhtbCIsICJqYXZhc2Ny
aXB0IiwgIm5ldHdvcmsiLCAiY29uc29sZS1hcGkiLCAib3RoZXIiXSwgImRlc2NyaXB0aW9uIjog
Ik1lc3NhZ2Ugc291cmNlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZXZl
bCIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0aXAiLCAibG9nIiwgIndhcm5pbmciLCAi
ZXJyb3IiLCAiZGVidWciXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc2V2ZXJpdHkuIiB9LAog
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiTWVzc2FnZSB0ZXh0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImVudW0i
OiBbImxvZyIsICJkaXIiLCAiZGlyeG1sIiwgInRhYmxlIiwgInRyYWNlIiwgImNsZWFyIiwgInN0
YXJ0R3JvdXAiLCAic3RhcnRHcm91cENvbGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQiLCAi
dGltaW5nIl0sICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUsICJlbnVtIjogWyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIsICJ0
cmFjZSIsICJjbGVhciIsICJzdGFydEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5k
R3JvdXAiLCAiYXNzZXJ0IiwgInRpbWluZyIsICJwcm9maWxlIiwgInByb2ZpbGVFbmQiXSwgImRl
c2NyaXB0aW9uIjogIkNvbnNvbGUgbWVzc2FnZSB0eXBlLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVVJMIG9mIHRoZSBtZXNzYWdlIG9yaWdpbi4iIH0sCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAibGluZSIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTGluZSBudW1iZXIgaW4gdGhlIHJlc291cmNlIHRoYXQg
Z2VuZXJhdGVkIHRoaXMgbWVzc2FnZS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVwZWF0Q291bnQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlJlcGVhdCBjb3VudCBmb3IgcmVwZWF0ZWQgbWVzc2FnZXMuIiB9LApAQCAt
MzQ5NCw3ICszNDk0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhcmd1bWVu
dHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiB9
LCAib3B0aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVz
dWx0IiwgIiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImlzRHJhd2luZ0NhbGwiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlz
RnJhbWVFbmRDYWxsIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9wZXJ0eSIsICJ0eXBlIjogInN0cmluZyIs
ICJvcHRpb25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1
ZSIsICIkcmVmIjogIkNhbGxBcmd1bWVudCIsICJvcHRpb25hbCI6IHRydWUgfSwKICAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2VVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0
aW9uYWwiOiB0cnVlIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5jcHAKaW5kZXggMmQ3YjA4M2VmNGUwZDE0Njc5NmIwZjI0NjE5MjEw
YWJjYmQyMjcwZC4uMjUxNDRmZTc2MDJhYTVkNTI2MjlhNzkzODdjNjExN2I2YjZkOTg1YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcApAQCAtMTY0LDE3ICsxNjQsMTUgQEAgdm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojph
ZGRQcm9maWxlRmluaXNoZWRNZXNzYWdlVG9Db25zb2xlKFBhc3NSZWZQdHI8U2NyaXAKICAgICBp
ZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKICAgICBSZWZQdHI8U2NyaXB0UHJvZmls
ZT4gcHJvZmlsZSA9IHBycFByb2ZpbGU7Ci0gICAgU3RyaW5nIHRpdGxlID0gcHJvZmlsZS0+dGl0
bGUoKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlByb2ZpbGUgXCJ3ZWJraXQt
cHJvZmlsZTovLyIsIENQVVByb2ZpbGVUeXBlLCAnLycsIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXModGl0bGUpLCAnIycsIFN0cmluZzo6bnVtYmVyKHByb2ZpbGUtPnVpZCgpKSwgIlwiIGZp
bmlzaGVkLiIpOwotICAgIG1fY29uc29sZUFnZW50LT5hZGRNZXNzYWdlVG9Db25zb2xlKENvbnNv
bGVBUElNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRGVidWdNZXNzYWdlTGV2ZWwsIG1l
c3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtl
U3RyaW5nKHByb2ZpbGUtPnRpdGxlKCksICcjJywgU3RyaW5nOjpudW1iZXIocHJvZmlsZS0+dWlk
KCkpKTsKKyAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShDb25zb2xlQVBJ
TWVzc2FnZVNvdXJjZSwgUHJvZmlsZUVuZE1lc3NhZ2VUeXBlLCBEZWJ1Z01lc3NhZ2VMZXZlbCwg
bWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjphZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUoY29uc3QgU3RyaW5n
JiB0aXRsZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7
CiAgICAgaWYgKCFtX2Zyb250ZW5kKQogICAgICAgICByZXR1cm47Ci0gICAgU3RyaW5nIG1lc3Nh
Z2UgPSBtYWtlU3RyaW5nKCJQcm9maWxlIFwid2Via2l0LXByb2ZpbGU6Ly8iLCBDUFVQcm9maWxl
VHlwZSwgJy8nLCBlbmNvZGVXaXRoVVJMRXNjYXBlU2VxdWVuY2VzKHRpdGxlKSwgIiMwXCIgc3Rh
cnRlZC4iKTsKLSAgICBtX2NvbnNvbGVBZ2VudC0+YWRkTWVzc2FnZVRvQ29uc29sZShDb25zb2xl
QVBJTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIERlYnVnTWVzc2FnZUxldmVsLCBtZXNz
YWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgIG1fY29uc29sZUFnZW50LT5hZGRNZXNz
YWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBQcm9maWxlTWVzc2FnZVR5cGUs
IERlYnVnTWVzc2FnZUxldmVsLCB0aXRsZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpjb2xsZWN0R2FyYmFnZShXZWJDb3JlOjpFcnJv
clN0cmluZyopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlTWVzc2FnZS5qcwppbmRleCAwZTU4MmIyZDFkOGVmOGNlNTU0NjYzZDVlZThiOTA5ZThl
Y2M4YTcyLi5mZDg1MmU4ODNlYjUxZjZlNjdiNGMyMzBiZjBjMzFlYzhiMDZkN2IxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anMKQEAgLTExMSw2ICsxMTEsMTkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gWyIlTyIsIG9ial07
CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VFbGVtZW50ID0gdGhpcy5fZm9ybWF0
KGFyZ3MpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Qcm9maWxlOgorICAgICAg
ICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbERlc2Ny
aXB0b3IucmVzb2x2ZVByb2ZpbGVUaXRsZSh0aGlzLl9tZXNzYWdlVGV4dCk7CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX21lc3NhZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlICclcycgc3RhcnRlZC4iLCB0aXRsZSkpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Qcm9maWxlRW5kOgorICAgICAgICAgICAg
ICAgICAgICB2YXIgaGFzaEluZGV4ID0gdGhpcy5fbWVzc2FnZVRleHQubGFzdEluZGV4T2YoIiMi
KTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHRpdGxlID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVz
UGFuZWxEZXNjcmlwdG9yLnJlc29sdmVQcm9maWxlVGl0bGUodGhpcy5fbWVzc2FnZVRleHQuc3Vi
c3RyaW5nKDAsIGhhc2hJbmRleCkpOworICAgICAgICAgICAgICAgICAgICB2YXIgdWlkID0gdGhp
cy5fbWVzc2FnZVRleHQuc3Vic3RyaW5nKGhhc2hJbmRleCArIDEpOworICAgICAgICAgICAgICAg
ICAgICB2YXIgZm9ybWF0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlICclcycgZmlu
aXNoZWQuIiwgIiVfIik7CisgICAgICAgICAgICAgICAgICAgIHZhciBsaW5rID0gV2ViSW5zcGVj
dG9yLmxpbmtpZnlVUkxBc05vZGUoIndlYmtpdC1wcm9maWxlOi8vQ1BVLyIgKyB1aWQsIHRpdGxl
KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZUVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdFdp
dGhTdWJzdGl0dXRpb25TdHJpbmcoZm9ybWF0LCBbbGlua10sIHRoaXMuX21lc3NhZ2VFbGVtZW50
KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSB0aGlzLl9wYXJhbWV0ZXJzIHx8IFt0aGlz
Ll9tZXNzYWdlVGV4dF07CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VFbGVtZW50
ID0gdGhpcy5fZm9ybWF0KGFyZ3MpOwpAQCAtMjQ3LDcgKzI2MCw3IEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICAvLyBNdWx0aXBsZSBwYXJh
bWV0ZXJzIHdpdGggdGhlIGZpcnN0IGJlaW5nIGEgZm9ybWF0IHN0cmluZy4gU2F2ZSB1bnVzZWQg
c3Vic3RpdHV0aW9ucy4KICAgICAgICAgaWYgKHNob3VsZEZvcm1hdE1lc3NhZ2UpIHsKICAgICAg
ICAgICAgIC8vIE11bHRpcGxlIHBhcmFtZXRlcnMgd2l0aCB0aGUgZmlyc3QgYmVpbmcgYSBmb3Jt
YXQgc3RyaW5nLiBTYXZlIHVudXNlZCBzdWJzdGl0dXRpb25zLgotICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IHRoaXMuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmcocGFyYW1ldGVycywgZm9y
bWF0dGVkUmVzdWx0KTsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9mb3JtYXRXaXRo
U3Vic3RpdHV0aW9uU3RyaW5nKHBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMu
c2xpY2UoMSksIGZvcm1hdHRlZFJlc3VsdCk7CiAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcmVz
dWx0LnVudXNlZFN1YnN0aXR1dGlvbnM7CiAgICAgICAgICAgICBpZiAocGFyYW1ldGVycy5sZW5n
dGgpCiAgICAgICAgICAgICAgICAgZm9ybWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCIgIikpOwpAQCAtNTY1LDcgKzU3OCw3IEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fZm9y
bWF0UGFyYW1ldGVyKG91dHB1dCwgb3V0cHV0LnN1YnR5cGUgJiYgb3V0cHV0LnN1YnR5cGUgPT09
ICJhcnJheSIsIGZhbHNlKTsKICAgICB9LAogCi0gICAgX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25T
dHJpbmc6IGZ1bmN0aW9uKHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCkKKyAgICBfZm9ybWF0
V2l0aFN1YnN0aXR1dGlvblN0cmluZzogZnVuY3Rpb24oZm9ybWF0LCBwYXJhbWV0ZXJzLCBmb3Jt
YXR0ZWRSZXN1bHQpCiAgICAgewogICAgICAgICB2YXIgZm9ybWF0dGVycyA9IHt9OwogCkBAIC01
OTMsNiArNjA2LDExIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgcmV0dXJuIE1hdGguZmxvb3Iob2JqLnZhbHVlKTsKICAgICAgICAg
fQogCisgICAgICAgIGZ1bmN0aW9uIGJ5cGFzc0Zvcm1hdHRlcihvYmopCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiAob2JqIGluc3RhbmNlb2YgTm9kZSkgPyBvYmogOiAiIjsKKyAgICAg
ICAgfQorCiAgICAgICAgIHZhciBjdXJyZW50U3R5bGUgPSBudWxsOwogICAgICAgICBmdW5jdGlv
biBzdHlsZUZvcm1hdHRlcihvYmopCiAgICAgICAgIHsKQEAgLTYzMCw2ICs2NDgsOCBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gU3Vw
cG9ydCAlTyB0byBmb3JjZSBvYmplY3QgZm9ybWF0dGluZywgaW5zdGVhZCBvZiB0aGUgdHlwZS1i
YXNlZCAlbyBmb3JtYXR0aW5nLgogICAgICAgICBmb3JtYXR0ZXJzLk8gPSBwYXJhbWV0ZXJGb3Jt
YXR0ZXIuYmluZCh0aGlzLCB0cnVlKTsKIAorICAgICAgICBmb3JtYXR0ZXJzLl8gPSBieXBhc3NG
b3JtYXR0ZXI7CisKICAgICAgICAgZnVuY3Rpb24gYXBwZW5kKGEsIGIpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmIChiIGluc3RhbmNlb2YgTm9kZSkKQEAgLTY0OSw3ICs2NjksNyBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIFN0cmluZy5mb3JtYXQgZG9lcyB0cmVhdCBmb3JtYXR0ZWRSZXN1bHQgbGlrZSBh
IEJ1aWxkZXIsIHJlc3VsdCBpcyBhbiBvYmplY3QuCi0gICAgICAgIHJldHVybiBTdHJpbmcuZm9y
bWF0KHBhcmFtZXRlcnNbMF0uZGVzY3JpcHRpb24sIHBhcmFtZXRlcnMuc2xpY2UoMSksIGZvcm1h
dHRlcnMsIGZvcm1hdHRlZFJlc3VsdCwgYXBwZW5kKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZy5m
b3JtYXQoZm9ybWF0LCBwYXJhbWV0ZXJzLCBmb3JtYXR0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQsIGFw
cGVuZCk7CiAgICAgfSwKIAogICAgIGNsZWFySGlnaGxpZ2h0OiBmdW5jdGlvbigpCkBAIC04MjAs
NiArODQwLDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5
cGUuUmVzdWx0OgogICAgICAgICAgICAgICAgIHR5cGVTdHJpbmcgPSAiUmVzdWx0IjsKICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlLk1lc3NhZ2VUeXBlLlByb2ZpbGU6CisgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5Qcm9maWxlRW5kOgorICAgICAgICAgICAgICAg
IHR5cGVTdHJpbmcgPSAiUHJvZmlsaW5nIjsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCiAgICAgICAgIHZhciBsZXZlbFN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggYWQ0NDMxNGMzNzM2Mjk0
OTVkOWU3MWMwODFjZjlmYWU2NDk2NmIwYi4uN2Q5ODNkNzViNjcwYjBhZDMwZjE0ZWY3YmQzNzhh
MzRhZDEwNTkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlTW9kZWwuanMKQEAgLTIzNyw3ICsyMzcsOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUgPSB7CiAgICAgU3RhcnRHcm91cENvbGxhcHNlZDogInN0YXJ0
R3JvdXBDb2xsYXBzZWQiLAogICAgIEVuZEdyb3VwOiAiZW5kR3JvdXAiLAogICAgIEFzc2VydDog
ImFzc2VydCIsCi0gICAgUmVzdWx0OiAicmVzdWx0IgorICAgIFJlc3VsdDogInJlc3VsdCIsCisg
ICAgUHJvZmlsZTogInByb2ZpbGUiLAorICAgIFByb2ZpbGVFbmQ6ICJwcm9maWxlRW5kIgogfQog
CiBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsID0gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4
IDA5MGRhNDY1YjVjMjg4MTI5MzY2ODJlOTE0NWNiNGU4YjUyOWUyNzQuLjlhYzc1MTEwYzljNDRl
YWRlNTQwN2JhZTZlZmMzNDNmZDE0NTgzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWwuanMKQEAgLTYwMiw3ICs2MDIsNyBAQCBX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHNpZGViYXJQ
YXJlbnQuYXBwZW5kQ2hpbGQocHJvZmlsZVRyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKCFwcm9m
aWxlLmlzVGVtcG9yYXJ5KSB7CiAgICAgICAgICAgICBpZiAoIXRoaXMudmlzaWJsZVZpZXcpCi0g
ICAgICAgICAgICAgICAgdGhpcy5zaG93UHJvZmlsZShwcm9maWxlKTsKKyAgICAgICAgICAgICAg
ICB0aGlzLl9zaG93UHJvZmlsZShwcm9maWxlKTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKCJwcm9maWxlIGFkZGVkIiwgewogICAgICAgICAgICAgICAgIHR5cGU6
IHR5cGVJZAogICAgICAgICAgICAgfSk7CkBAIC02NTAsNyArNjUwLDcgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlByb2ZpbGVIZWFkZXJ9IHByb2ZpbGUKICAgICAgKi8KLSAgICBzaG93UHJvZmls
ZTogZnVuY3Rpb24ocHJvZmlsZSkKKyAgICBfc2hvd1Byb2ZpbGU6IGZ1bmN0aW9uKHByb2ZpbGUp
CiAgICAgewogICAgICAgICBpZiAoIXByb2ZpbGUgfHwgcHJvZmlsZS5pc1RlbXBvcmFyeSkKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTcwNCw3ICs3MDQsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmls
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgcHJvZmlsZSA9IGhlYXBQcm9m
aWxlc1tpXTsKICAgICAgICAgICAgIC8vIFRPRE86IGFsbG93IHRvIGNob29zZSBzbmFwc2hvdCBp
ZiB0aGVyZSBhcmUgc2V2ZXJhbCBvcHRpb25zLgogICAgICAgICAgICAgaWYgKHByb2ZpbGUubWF4
SlNPYmplY3RJZCA+PSBzbmFwc2hvdE9iamVjdElkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5z
aG93UHJvZmlsZShwcm9maWxlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9zaG93UHJvZmlsZShw
cm9maWxlKTsKICAgICAgICAgICAgICAgICBwcm9maWxlLnZpZXcoKS5jaGFuZ2VWaWV3KHZpZXdO
YW1lLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZS52aWV3KCkuZGF0
YUdyaWQuaGlnaGxpZ2h0T2JqZWN0QnlIZWFwU25hcHNob3RJZChzbmFwc2hvdE9iamVjdElkKTsK
ICAgICAgICAgICAgICAgICB9KTsKQEAgLTc3Myw3ICs3NzMsNyBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc2hvd1ZpZXc6IGZ1bmN0aW9u
KHZpZXcpCiAgICAgewotICAgICAgICB0aGlzLnNob3dQcm9maWxlKHZpZXcucHJvZmlsZSk7Cisg
ICAgICAgIHRoaXMuX3Nob3dQcm9maWxlKHZpZXcucHJvZmlsZSk7CiAgICAgfSwKIAogICAgIC8q
KgpAQCAtNzg1LDE0ICs3ODUsMTIgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwucHJvdG90
eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVJZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1aWQK
ICAgICAgKi8KLSAgICBzaG93UHJvZmlsZUZvclVSTDogZnVuY3Rpb24odXJsKQorICAgIHNob3dQ
cm9maWxlOiBmdW5jdGlvbih0eXBlSWQsIHVpZCkKICAgICB7Ci0gICAgICAgIHZhciBtYXRjaCA9
IHVybC5tYXRjaChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbERlc2NyaXB0b3IuUHJvZmlsZVVS
TFJlZ0V4cCk7Ci0gICAgICAgIGlmICghbWF0Y2gpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHRoaXMuc2hvd1Byb2ZpbGUodGhpcy5fcHJvZmlsZXNJZE1hcFt0aGlzLl9tYWtlS2V5KE51
bWJlcihtYXRjaFszXSksIG1hdGNoWzFdKV0pOworICAgICAgICB0aGlzLl9zaG93UHJvZmlsZSh0
aGlzLl9wcm9maWxlc0lkTWFwW3RoaXMuX21ha2VLZXkoTnVtYmVyKHVpZCksIHR5cGVJZCldKTsK
ICAgICB9LAogCiAgICAgY2xvc2VWaXNpYmxlVmlldzogZnVuY3Rpb24oKQpAQCAtODAzLDMxICs4
MDEsNiBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQotICAgICAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlSWQKLSAgICAgKi8KLSAgICBkaXNwbGF5VGl0bGVGb3JQcm9maWxlTGluazog
ZnVuY3Rpb24odGl0bGUsIHR5cGVJZCkKLSAgICB7Ci0gICAgICAgIHRpdGxlID0gdW5lc2NhcGUo
dGl0bGUpOwotICAgICAgICBpZiAodGl0bGUuc3RhcnRzV2l0aChVc2VySW5pdGlhdGVkUHJvZmls
ZU5hbWUpKSB7Ci0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJv
ZmlsZSAlZCIsIHRpdGxlLnN1YnN0cmluZyhVc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUubGVuZ3Ro
ICsgMSkpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIHRpdGxlS2V5ID0gdGhp
cy5fbWFrZVRpdGxlS2V5KHRpdGxlLCB0eXBlSWQpOwotICAgICAgICAgICAgaWYgKCEodGl0bGVL
ZXkgaW4gdGhpcy5fcHJvZmlsZUdyb3Vwc0ZvckxpbmtzKSkKLSAgICAgICAgICAgICAgICB0aGlz
Ll9wcm9maWxlR3JvdXBzRm9yTGlua3NbdGl0bGVLZXldID0gMDsKLQotICAgICAgICAgICAgdmFy
IGdyb3VwTnVtYmVyID0gKyt0aGlzLl9wcm9maWxlR3JvdXBzRm9yTGlua3NbdGl0bGVLZXldOwot
Ci0gICAgICAgICAgICBpZiAoZ3JvdXBOdW1iZXIgPiAyKQotICAgICAgICAgICAgICAgIC8vIFRo
ZSB0aXRsZSBpcyB1c2VkIGluIHRoZSBjb25zb2xlIG1lc3NhZ2UgYW5ub3VuY2luZyB0aGF0IGEg
cHJvZmlsZSBoYXMgc3RhcnRlZCBzbyBpdCBnZXRzCi0gICAgICAgICAgICAgICAgLy8gaW5jcmVt
ZW50ZWQgdHdpY2UgYXMgb2Z0ZW4gYXMgaXQncyBkaXNwbGF5ZWQKLSAgICAgICAgICAgICAgICB0
aXRsZSArPSAiICIgKyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJ1biAlZCIsIChncm91cE51bWJl
ciArIDEpIC8gMik7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gdGl0bGU7Ci0gICAgfSwK
LQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVyeQogICAgICAqLwogICAgIHBl
cmZvcm1TZWFyY2g6IGZ1bmN0aW9uKHF1ZXJ5KQpAQCAtMTQwNyw3ICsxMzgwLDcgQEAgV2ViSW5z
cGVjdG9yLlByb2ZpbGVTaWRlYmFyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIG9uc2Vs
ZWN0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3N1cHByZXNzT25TZWxl
Y3QpCi0gICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnBhbmVsLnNob3dQcm9maWxlKHRoaXMu
cHJvZmlsZSk7CisgICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnBhbmVsLl9zaG93UHJvZmls
ZSh0aGlzLnByb2ZpbGUpOwogICAgIH0sCiAKICAgICBvbmRlbGV0ZTogZnVuY3Rpb24oKQpAQCAt
MTQ4Myw3ICsxNDU2LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVHcm91cFNpZGViYXJUcmVlRWxl
bWVudC5wcm90b3R5cGUgPSB7CiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDApCi0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5faW5zdGFuY2Uuc2hvd1Byb2ZpbGUodGhpcy5jaGlsZHJlblt0aGlz
LmNoaWxkcmVuLmxlbmd0aCAtIDFdLnByb2ZpbGUpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVzUGFuZWwuX2luc3RhbmNlLl9zaG93UHJvZmlsZSh0aGlzLmNoaWxkcmVuW3RoaXMu
Y2hpbGRyZW4ubGVuZ3RoIC0gMV0ucHJvZmlsZSk7CiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzog
V2ViSW5zcGVjdG9yLlNpZGViYXJUcmVlRWxlbWVudC5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbERlc2NyaXB0b3Iu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWxEZXNj
cmlwdG9yLmpzCmluZGV4IDI0YzA2ZTExZTQwMTkxY2MwYTg4OWUxY2NjZTA4Y2I5OGQ4MTNlNTMu
LmQ2OWM2Nzc1MjRmNDBiZTdlMTk5NmJmZGVmY2FiMzg0YzcwOTBlOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbERlc2NyaXB0b3Iu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVs
RGVzY3JpcHRvci5qcwpAQCAtNjQsMyArNjQsMTQgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWxEZXNjcmlwdG9yLnVzZXJJbml0aWF0ZWRQcm9maWxlSW5kZXggPSBmdW5jdGlvbih0aXRsZSkK
ICAgICB2YXIgc3VmZml4ID0gdGl0bGUuc3Vic3RyaW5nKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsRGVzY3JpcHRvci5Vc2VySW5pdGlhdGVkUHJvZmlsZU5hbWUubGVuZ3RoICsgMSk7CiAgICAg
cmV0dXJuIHBhcnNlSW50KHN1ZmZpeCwgMTApOwogfQorCisvKioKKyAqIEBwYXJhbSB7c3RyaW5n
fSB0aXRsZQorICogQHJldHVybiB7c3RyaW5nfQorICovCitXZWJJbnNwZWN0b3IuUHJvZmlsZXNQ
YW5lbERlc2NyaXB0b3IucmVzb2x2ZVByb2ZpbGVUaXRsZSA9IGZ1bmN0aW9uKHRpdGxlKQorewor
ICAgIGlmICghV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLmlzVXNlckluaXRp
YXRlZFByb2ZpbGUodGl0bGUpKQorICAgICAgICByZXR1cm4gdGl0bGU7CisgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiUHJvZmlsZSAlZCIsIFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsRGVzY3JpcHRvci51c2VySW5pdGlhdGVkUHJvZmlsZUluZGV4KHRpdGxlKSk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRpbHMuanMK
aW5kZXggZTViYzJiNDk2MzZjM2Y4ZDg3YWM3YTQ3MTgxNzIzYmNlOTQ3OWZkZi4uZWYxOTEzYWVl
Mzg5NzlkMjY1NDdjOGFiM2Q1YmJhN2UzYjg2ZDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcwpAQCAtMTI0LDE2ICsxMjQs
NiBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVN0cmluZ0FzRnJhZ21lbnRXaXRoQ3VzdG9tTGlua2lm
aWVyID0gZnVuY3Rpb24oc3RyaW5nLCBsaW5raQogICAgIHJldHVybiBjb250YWluZXI7CiB9CiAK
LVdlYkluc3BlY3Rvci5fbGlua2lmaWVyUGx1Z2lucyA9IFtdOwotCi0vKioKLSAqIEBwYXJhbSB7
ZnVuY3Rpb24oc3RyaW5nKTpzdHJpbmd9IHBsdWdpbgotICovCi1XZWJJbnNwZWN0b3IucmVnaXN0
ZXJMaW5raWZpZXJQbHVnaW4gPSBmdW5jdGlvbihwbHVnaW4pCi17Ci0gICAgV2ViSW5zcGVjdG9y
Ll9saW5raWZpZXJQbHVnaW5zLnB1c2gocGx1Z2luKTsKLX0KLQogLyoqCiAgKiBAcGFyYW0ge3N0
cmluZ30gc3RyaW5nCiAgKiBAcmV0dXJuIHtEb2N1bWVudEZyYWdtZW50fQpAQCAtMTQ4LDkgKzEz
OCw2IEBAIFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNGcmFnbWVudCA9IGZ1bmN0aW9uKHN0
cmluZykKICAgICAgKi8KICAgICBmdW5jdGlvbiBsaW5raWZpZXIodGl0bGUsIHVybCwgbGluZU51
bWJlcikKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgV2ViSW5zcGVjdG9yLl9s
aW5raWZpZXJQbHVnaW5zLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNw
ZWN0b3IuX2xpbmtpZmllclBsdWdpbnNbaV0odGl0bGUpOwotCiAgICAgICAgIHZhciBpc0V4dGVy
bmFsID0gIVdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTCh1cmwpOwogICAgICAgICB2YXIgdXJs
Tm9kZSA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNOb2RlKHVybCwgdGl0bGUsIHVuZGVmaW5l
ZCwgaXNFeHRlcm5hbCk7CiAgICAgICAgIGlmICh0eXBlb2YobGluZU51bWJlcikgIT09ICJ1bmRl
ZmluZWQiKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCmluZGV4IDJlNzJiY2Y0ZjYxYzNkMjM1ZTU2NDc4MDNjZGE4MDQ2NTI3YmU3NmYuLmY2
NzEzODQ4YjA4YTMzYTc0YWUzMjNkMTM0MWI2MTFjMDQ5MmI3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0yNzIsMTYgKzI3Miw2
IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5z
ZXRJbnNwZWN0TW9kZUVuYWJsZWQoZW5hYmxlZCwgY2FsbGJhY2suYmluZCh0aGlzKSk7CiAgICAg
fSwKIAotICAgIF9wcm9maWxlc0xpbmtpZmllcjogZnVuY3Rpb24odGl0bGUpCi0gICAgewotICAg
ICAgICB2YXIgcHJvZmlsZVN0cmluZ01hdGNoZXMgPSBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bERlc2NyaXB0b3IuUHJvZmlsZVVSTFJlZ0V4cC5leGVjKHRpdGxlKTsKLSAgICAgICAgaWYgKHBy
b2ZpbGVTdHJpbmdNYXRjaGVzKSB7Ci0gICAgICAgICAgICB2YXIgcHJvZmlsZXNQYW5lbCA9IC8q
KiBAIHR5cGUge1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsfSAqLyBXZWJJbnNwZWN0b3IucGFu
ZWwoInByb2ZpbGVzIik7Ci0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLl9pbnN0YW5jZS5kaXNwbGF5VGl0bGVGb3JQcm9maWxlTGluayhwcm9maWxlU3RyaW5n
TWF0Y2hlc1syXSwgcHJvZmlsZVN0cmluZ01hdGNoZXNbMV0pOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0aXRsZTsKLSAgICB9LAotCiAgICAgX2RlYnVnZ2VyUGF1c2VkOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICAvLyBDcmVhdGUgc2NyaXB0cyBwYW5lbCB1cG9uIGRlbWFuZC4KQEAg
LTQ2Nyw3ICs0NTcsNiBAQCBXZWJJbnNwZWN0b3IuX2RvTG9hZGVkRG9uZVdpdGhDYXBhYmlsaXRp
ZXMgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLmVuZEJhdGNoVXBkYXRlKCk7CiAKICAg
ICB0aGlzLmFkZE1haW5FdmVudExpc3RlbmVycyhkb2N1bWVudCk7Ci0gICAgV2ViSW5zcGVjdG9y
LnJlZ2lzdGVyTGlua2lmaWVyUGx1Z2luKHRoaXMuX3Byb2ZpbGVzTGlua2lmaWVyLmJpbmQodGhp
cykpOwogCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsIHRoaXMud2luZG93
UmVzaXplLmJpbmQodGhpcyksIHRydWUpOwogCkBAIC01ODIsNyArNTcxLDcgQEAgV2ViSW5zcGVj
dG9yLmNsb3NlID0gZnVuY3Rpb24oZXZlbnQpCiBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDbGljayA9
IGZ1bmN0aW9uKGV2ZW50KQogewogICAgIHZhciBhbmNob3IgPSBldmVudC50YXJnZXQuZW5jbG9z
aW5nTm9kZU9yU2VsZldpdGhOb2RlTmFtZSgiYSIpOwotICAgIGlmICghYW5jaG9yIHx8IChhbmNo
b3IudGFyZ2V0ID09PSAiX2JsYW5rIiAmJiAhV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNj
cmlwdG9yLlByb2ZpbGVVUkxSZWdFeHAuZXhlYyhhbmNob3IuaHJlZikpKQorICAgIGlmICghYW5j
aG9yIHx8IChhbmNob3IudGFyZ2V0ID09PSAiX2JsYW5rIikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIFByZXZlbnQgdGhlIGxpbmsgZnJvbSBuYXZpZ2F0aW5nLCBzaW5jZSB3ZSBkb24ndCBk
byBhbnkgbmF2aWdhdGlvbiBieSBmb2xsb3dpbmcgbGlua3Mgbm9ybWFsbHkuCkBAIC01OTUsNyAr
NTg0LDcgQEAgV2ViSW5zcGVjdG9yLmRvY3VtZW50Q2xpY2sgPSBmdW5jdGlvbihldmVudCkKIAog
ICAgICAgICBjb25zdCBwcm9maWxlTWF0Y2ggPSBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbERl
c2NyaXB0b3IuUHJvZmlsZVVSTFJlZ0V4cC5leGVjKGFuY2hvci5ocmVmKTsKICAgICAgICAgaWYg
KHByb2ZpbGVNYXRjaCkgewotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNob3dQcm9maWxlRm9y
VVJMKGFuY2hvci5ocmVmKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInBy
b2ZpbGVzIikuc2hvd1Byb2ZpbGUocHJvZmlsZU1hdGNoWzFdLCBwcm9maWxlTWF0Y2hbMl0pOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTk4MywxMSArOTcyLDYgQEAgV2Vi
SW5zcGVjdG9yLl9zaG93QW5jaG9yTG9jYXRpb25JblBhbmVsID0gZnVuY3Rpb24oYW5jaG9yLCBw
YW5lbCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotV2ViSW5zcGVjdG9yLnNob3dQcm9maWxlRm9y
VVJMID0gZnVuY3Rpb24odXJsKQotewotICAgIFdlYkluc3BlY3Rvci5zaG93UGFuZWwoInByb2Zp
bGVzIikuc2hvd1Byb2ZpbGVGb3JVUkwodXJsKTsKLX0KLQogV2ViSW5zcGVjdG9yLmV2YWx1YXRl
SW5Db25zb2xlID0gZnVuY3Rpb24oZXhwcmVzc2lvbiwgc2hvd1Jlc3VsdE9ubHkpCiB7CiAgICAg
dGhpcy5zaG93Q29uc29sZSgpOwo=
</data>
<flag name="review"
          id="209298"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="209637"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189322</attachid>
            <date>2013-02-20 08:16:11 -0800</date>
            <delta_ts>2013-02-21 03:46:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109790-20130220201232.patch</filename>
            <type>text/plain</type>
            <size>26692</size>
            <attacher name="Eugene Klyuchnikov">eustas</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI4ZjZmNDgzNDVkODZm
MTlhYjZjNDhjY2RlMjY5ZGY2M2JhYzFjMy4uZDdiYzQxZGFhMDEwOGFmZDU4NTI5OTg0OTg1MmQz
ZGNiMjZhZWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAyLTE5ICBFdWdl
bmUgS2x5dWNobmlrb3YgIDxldXN0YXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFtDb25zb2xlXSBBZGQgY29uc29sZSBBUEkgbWVzc2FnZSB0eXBlcyBmb3IgcHJvZmls
ZS9wcm9maWxlRW5kLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2l0aCBwcm9maWxlL3Byb2ZpbGVFbmQgbWVzc2FnZSB0eXBlcyB3ZSB3aWxsIGdhaW4g
bW9yZSBjb250cm9sIG92ZXIKKyAgICAgICAgb3V0cHV0IG1lc3NhZ2VzLgorCisgICAgICAgICog
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOiBBZGRlZCBjb3JyZXNwb25naW5nIHN0
cmluZ3MuCisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oOiBBZGRlZCBlbnVt
IG1lbWJlcnMuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1l
c3NhZ2VUeXBlVmFsdWUpOiBBZGRlZCBjYXNlcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5jcHA6IEFkb3B0ZWQgY2hhbmdlcy4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qczoKKyAgICAgICAgQWRkZWQgbWVzc2FnZSBnZW5lcmF0
b3JzIGZvciBpbnRyb2R1Y2VkIG1lc3NhZ2UgdHlwZXMuCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzOgorICAgICAgICBUdXJuZWQgc2hvd1Byb2ZpbGVGb3JV
UkwodXJsKSB0byBzaG93UHJvZmlsZSh0eXBlSWQsIHVpZCkuCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxlKTogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0aWxzLmpzOiBSZW1vdmVk
IGxpbmtpZmllciBwbHVnaW5zLgorCiAyMDEzLTAyLTIwICBJbHlhIFRpa2hvbm92c2t5ICA8bG9p
c2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBmaXggZm9yIGZyb250
ZW5kIGNsb3N1cmUgY29tcGlsZSBlcnJvcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9F
bmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNo
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZjNiOTYyYTQyOTA2ZTZjMjM1ZDMxOGM2
YzVkZWIwZDU2NzgyZDY1NS4uZGYwM2M4ODRiMzZkYzViNWFmZGNlMjcwNzExODExMGIyMjdlNWU4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwpAQCAtMzExLDYgKzMxMSw4IEBAIGxvY2FsaXplZFN0cmluZ3NbIlBhdXNlZCJdID0gIlBh
dXNlZCI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQYXVzZWQgb24gZXhjZXB0aW9uOiAnJXMnLiJdID0g
IlBhdXNlZCBvbiBleGNlcHRpb246ICclcycuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlBhdXNpbmci
XSA9ICJQYXVzaW5nIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByZXZpZXciXSA9ICJQcmV2aWV3IjsK
K2xvY2FsaXplZFN0cmluZ3NbIlByb2ZpbGUgJyVzJyBzdGFydGVkLiJdID0gIlByb2ZpbGUgJyVz
JyBzdGFydGVkLiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJQcm9maWxlICclcycgZmluaXNoZWQuIl0g
PSAiUHJvZmlsZSAnJXMnIGZpbmlzaGVkLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9maWxlcyJd
ID0gIlByb2ZpbGVzIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByb2ZpbGluZyBkaXNhYmxlZC4gQ2xp
Y2sgdG8gZW5hYmxlLiJdID0gIlByb2ZpbGluZyBkaXNhYmxlZC4gQ2xpY2sgdG8gZW5hYmxlLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJQcm9maWxpbmcgZW5hYmxlZC4gQ2xpY2sgdG8gZGlzYWJsZS4i
XSA9ICJQcm9maWxpbmcgZW5hYmxlZC4gQ2xpY2sgdG8gZGlzYWJsZS4iOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oCmluZGV4IDMxZjAzYjJhYWYyN2U5ZDY1YjI2
ZGVhZTZiNmZhMDg5MjViYWZhYzEuLjExZjY1ZWMyMTBjOWUyZDcxMDI5NDFjYTE1NWI4MzRhNzRm
ZDM4M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJVHlw
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmgKQEAg
LTM4LDcgKzM4LDkgQEAgZW51bSBNZXNzYWdlVHlwZSB7CiAgICAgRW5kR3JvdXBNZXNzYWdlVHlw
ZSwKICAgICBDbGVhck1lc3NhZ2VUeXBlLAogICAgIEFzc2VydE1lc3NhZ2VUeXBlLAotICAgIFRp
bWluZ01lc3NhZ2VUeXBlCisgICAgVGltaW5nTWVzc2FnZVR5cGUsCisgICAgUHJvZmlsZU1lc3Nh
Z2VUeXBlLAorICAgIFByb2ZpbGVFbmRNZXNzYWdlVHlwZQogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5k
ZXggMGEzNjBkZTU5NWQyNmY3YTgzM2NiZWRmZTQxMTk4NjdiZDk1ZjAzYy4uZGUyZWYwNDI0MDgy
YmYyZjJmZjBlMGIwMGU5ZWVkY2E1NWE0NWRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0xNjEsNiArMTYxLDggQEAgc3RhdGljIFR5cGVCdWls
ZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6RW51bSBtZXNzYWdlVHlwZVZhbHVl
KE1lc3NhZ2UKICAgICBjYXNlIEVuZEdyb3VwTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRl
cjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OkVuZEdyb3VwOwogICAgIGNhc2UgQXNz
ZXJ0TWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3Nh
Z2U6OlR5cGU6OkFzc2VydDsKICAgICBjYXNlIFRpbWluZ01lc3NhZ2VUeXBlOiByZXR1cm4gVHlw
ZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpUaW1pbmc7CisgICAgY2Fz
ZSBQcm9maWxlTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29s
ZU1lc3NhZ2U6OlR5cGU6OlByb2ZpbGU7CisgICAgY2FzZSBQcm9maWxlRW5kTWVzc2FnZVR5cGU6
IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OlByb2Zp
bGVFbmQ7CiAgICAgfQogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1l
c3NhZ2U6OlR5cGU6OkxvZzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgppbmRleCBjYmExZWRlYmRiZTgxYmZlMTVkYzczYTkzOGIwODdlYzc2MDM4YmIwLi4wZjk5YTY3
ZDQ0ODlkOGEwMGI5ZWRjODEzZTRhZTk1NzU4ZThjMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCkBAIC03NzEsNyArNzcxLDcgQEAKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6IFsiaHRtbCIs
ICJ3bWwiLCAieG1sIiwgImphdmFzY3JpcHQiLCAibmV0d29yayIsICJjb25zb2xlLWFwaSIsICJv
dGhlciJdLCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSBzb3VyY2UuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImxldmVsIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbInRp
cCIsICJsb2ciLCAid2FybmluZyIsICJlcnJvciIsICJkZWJ1ZyJdLCAiZGVzY3JpcHRpb24iOiAi
TWVzc2FnZSBzZXZlcml0eS4iIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4
dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIHRleHQuIiB9LAot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZW51bSI6IFsibG9nIiwgImRpciIsICJkaXJ4bWwiLCAidGFibGUi
LCAidHJhY2UiLCAiY2xlYXIiLCAic3RhcnRHcm91cCIsICJzdGFydEdyb3VwQ29sbGFwc2VkIiwg
ImVuZEdyb3VwIiwgImFzc2VydCIsICJ0aW1pbmciXSwgImRlc2NyaXB0aW9uIjogIkNvbnNvbGUg
bWVzc2FnZSB0eXBlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImVudW0iOiBbImxvZyIsICJkaXIi
LCAiZGlyeG1sIiwgInRhYmxlIiwgInRyYWNlIiwgImNsZWFyIiwgInN0YXJ0R3JvdXAiLCAic3Rh
cnRHcm91cENvbGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQiLCAidGltaW5nIiwgInByb2Zp
bGUiLCAicHJvZmlsZUVuZCJdLCAiZGVzY3JpcHRpb24iOiAiQ29uc29sZSBtZXNzYWdlIHR5cGUu
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIG1lc3NhZ2Ug
b3JpZ2luLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lIiwgInR5cGUi
OiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJl
ciBpbiB0aGUgcmVzb3VyY2UgdGhhdCBnZW5lcmF0ZWQgdGhpcyBtZXNzYWdlLiIgfSwKICAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXBlYXRDb3VudCIsICJ0eXBlIjogImludGVnZXIi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVwZWF0IGNvdW50IGZvciByZXBl
YXRlZCBtZXNzYWdlcy4iIH0sCkBAIC0zNDgwLDcgKzM0ODAsNiBAQAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAi
JHJlZiI6ICJDYWxsQXJndW1lbnQiIH0sICJvcHRpb25hbCI6IHRydWUgfSwKICAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJDYWxsQXJndW1lbnQiLCAib3B0
aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNEcmF3aW5n
Q2FsbCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaXNGcmFtZUVuZENhbGwiLCAidHlwZSI6ICJib29sZWFuIiwg
Im9wdGlvbmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3Bl
cnR5IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgIiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNvdXJjZVVSTCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAppbmRleCA3NjBmZWNm
NDM3ZWRjODc3MzVkM2VhNDE2NTcxNmE2ZjYwNzkxNTg5Li4zOWIzNWRjOTE3OWM2MDJjODdiMWNh
ZDRjZjdkMDc4ODViNmJmNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCkBAIC0xNjQsMTcgKzE2NCwxNSBAQCB2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUo
UGFzc1JlZlB0cjxTY3JpcAogICAgIGlmICghbV9mcm9udGVuZCkKICAgICAgICAgcmV0dXJuOwog
ICAgIFJlZlB0cjxTY3JpcHRQcm9maWxlPiBwcm9maWxlID0gcHJwUHJvZmlsZTsKLSAgICBTdHJp
bmcgdGl0bGUgPSBwcm9maWxlLT50aXRsZSgpOwotICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0
cmluZygiUHJvZmlsZSBcIndlYmtpdC1wcm9maWxlOi8vIiwgQ1BVUHJvZmlsZVR5cGUsICcvJywg
ZW5jb2RlV2l0aFVSTEVzY2FwZVNlcXVlbmNlcyh0aXRsZSksICcjJywgU3RyaW5nOjpudW1iZXIo
cHJvZmlsZS0+dWlkKCkpLCAiXCIgZmluaXNoZWQuIik7Ci0gICAgbV9jb25zb2xlQWdlbnQtPmFk
ZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBEZWJ1Z01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyKTsKKyAg
ICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcocHJvZmlsZS0+dGl0bGUoKSwgJyMnLCBTdHJp
bmc6Om51bWJlcihwcm9maWxlLT51aWQoKSkpOworICAgIG1fY29uc29sZUFnZW50LT5hZGRNZXNz
YWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBQcm9maWxlRW5kTWVzc2FnZVR5
cGUsIERlYnVnTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOwog
fQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmFkZFN0YXJ0UHJvZmlsaW5nTWVzc2Fn
ZVRvQ29uc29sZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCkKIHsKICAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJl
dHVybjsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlByb2ZpbGUgXCJ3ZWJraXQt
cHJvZmlsZTovLyIsIENQVVByb2ZpbGVUeXBlLCAnLycsIGVuY29kZVdpdGhVUkxFc2NhcGVTZXF1
ZW5jZXModGl0bGUpLCAiIzBcIiBzdGFydGVkLiIpOwotICAgIG1fY29uc29sZUFnZW50LT5hZGRN
ZXNzYWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RGVidWdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlcik7CisgICAg
bV9jb25zb2xlQWdlbnQtPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UsIFByb2ZpbGVNZXNzYWdlVHlwZSwgRGVidWdNZXNzYWdlTGV2ZWwsIHRpdGxlLCBzb3VyY2VV
UkwsIGxpbmVOdW1iZXIpOwogfQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNvbGxl
Y3RHYXJiYWdlKFdlYkNvcmU6OkVycm9yU3RyaW5nKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IDBlNTgyYjJkMWQ4
ZWY4Y2U1NTQ2NjNkNWVlOGI5MDllOGVjYzhhNzIuLmZkODUyZTg4M2ViNTFmNmU2N2I0YzIzMGJm
MGMzMWVjOGIwNmQ3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtMTExLDYgKzExMSwxOSBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAg
dmFyIGFyZ3MgPSBbIiVPIiwgb2JqXTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWVzc2Fn
ZUVsZW1lbnQgPSB0aGlzLl9mb3JtYXQoYXJncyk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VUeXBlLlByb2ZpbGU6CisgICAgICAgICAgICAgICAgICAgIHZhciB0aXRsZSA9IFdlYkluc3Bl
Y3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxlKHRoaXMuX21l
c3NhZ2VUZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlByb2ZpbGUgJyVz
JyBzdGFydGVkLiIsIHRpdGxlKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlBy
b2ZpbGVFbmQ6CisgICAgICAgICAgICAgICAgICAgIHZhciBoYXNoSW5kZXggPSB0aGlzLl9tZXNz
YWdlVGV4dC5sYXN0SW5kZXhPZigiIyIpOworICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUg
PSBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbERlc2NyaXB0b3IucmVzb2x2ZVByb2ZpbGVUaXRs
ZSh0aGlzLl9tZXNzYWdlVGV4dC5zdWJzdHJpbmcoMCwgaGFzaEluZGV4KSk7CisgICAgICAgICAg
ICAgICAgICAgIHZhciB1aWQgPSB0aGlzLl9tZXNzYWdlVGV4dC5zdWJzdHJpbmcoaGFzaEluZGV4
ICsgMSk7CisgICAgICAgICAgICAgICAgICAgIHZhciBmb3JtYXQgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlByb2ZpbGUgJyVzJyBmaW5pc2hlZC4iLCAiJV8iKTsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSgid2Via2l0LXByb2Zp
bGU6Ly9DUFUvIiArIHVpZCwgdGl0bGUpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tZXNz
YWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fZm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZyhmb3JtYXQsIFtsaW5r
XSwgdGhpcy5fbWVzc2FnZUVsZW1lbnQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IHRo
aXMuX3BhcmFtZXRlcnMgfHwgW3RoaXMuX21lc3NhZ2VUZXh0XTsKICAgICAgICAgICAgICAgICAg
ICAgdGhpcy5fbWVzc2FnZUVsZW1lbnQgPSB0aGlzLl9mb3JtYXQoYXJncyk7CkBAIC0yNDcsNyAr
MjYwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIC8vIE11bHRpcGxlIHBhcmFtZXRlcnMgd2l0aCB0aGUgZmlyc3QgYmVpbmcgYSBmb3Jt
YXQgc3RyaW5nLiBTYXZlIHVudXNlZCBzdWJzdGl0dXRpb25zLgogICAgICAgICBpZiAoc2hvdWxk
Rm9ybWF0TWVzc2FnZSkgewogICAgICAgICAgICAgLy8gTXVsdGlwbGUgcGFyYW1ldGVycyB3aXRo
IHRoZSBmaXJzdCBiZWluZyBhIGZvcm1hdCBzdHJpbmcuIFNhdmUgdW51c2VkIHN1YnN0aXR1dGlv
bnMuCi0gICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fZm9ybWF0V2l0aFN1YnN0aXR1dGlv
blN0cmluZyhwYXJhbWV0ZXJzLCBmb3JtYXR0ZWRSZXN1bHQpOworICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IHRoaXMuX2Zvcm1hdFdpdGhTdWJzdGl0dXRpb25TdHJpbmcocGFyYW1ldGVyc1swXS5k
ZXNjcmlwdGlvbiwgcGFyYW1ldGVycy5zbGljZSgxKSwgZm9ybWF0dGVkUmVzdWx0KTsKICAgICAg
ICAgICAgIHBhcmFtZXRlcnMgPSByZXN1bHQudW51c2VkU3Vic3RpdHV0aW9uczsKICAgICAgICAg
ICAgIGlmIChwYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1
bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiAiKSk7CkBAIC01NjUsNyAr
NTc4LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXRQYXJhbWV0ZXIob3V0cHV0LCBvdXRwdXQuc3VidHlw
ZSAmJiBvdXRwdXQuc3VidHlwZSA9PT0gImFycmF5IiwgZmFsc2UpOwogICAgIH0sCiAKLSAgICBf
Zm9ybWF0V2l0aFN1YnN0aXR1dGlvblN0cmluZzogZnVuY3Rpb24ocGFyYW1ldGVycywgZm9ybWF0
dGVkUmVzdWx0KQorICAgIF9mb3JtYXRXaXRoU3Vic3RpdHV0aW9uU3RyaW5nOiBmdW5jdGlvbihm
b3JtYXQsIHBhcmFtZXRlcnMsIGZvcm1hdHRlZFJlc3VsdCkKICAgICB7CiAgICAgICAgIHZhciBm
b3JtYXR0ZXJzID0ge307CiAKQEAgLTU5Myw2ICs2MDYsMTEgQEAgV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gTWF0aC5mbG9v
cihvYmoudmFsdWUpOwogICAgICAgICB9CiAKKyAgICAgICAgZnVuY3Rpb24gYnlwYXNzRm9ybWF0
dGVyKG9iaikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIChvYmogaW5zdGFuY2VvZiBO
b2RlKSA/IG9iaiA6ICIiOworICAgICAgICB9CisKICAgICAgICAgdmFyIGN1cnJlbnRTdHlsZSA9
IG51bGw7CiAgICAgICAgIGZ1bmN0aW9uIHN0eWxlRm9ybWF0dGVyKG9iaikKICAgICAgICAgewpA
QCAtNjMwLDYgKzY0OCw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90
eXBlID0gewogICAgICAgICAvLyBTdXBwb3J0ICVPIHRvIGZvcmNlIG9iamVjdCBmb3JtYXR0aW5n
LCBpbnN0ZWFkIG9mIHRoZSB0eXBlLWJhc2VkICVvIGZvcm1hdHRpbmcuCiAgICAgICAgIGZvcm1h
dHRlcnMuTyA9IHBhcmFtZXRlckZvcm1hdHRlci5iaW5kKHRoaXMsIHRydWUpOwogCisgICAgICAg
IGZvcm1hdHRlcnMuXyA9IGJ5cGFzc0Zvcm1hdHRlcjsKKwogICAgICAgICBmdW5jdGlvbiBhcHBl
bmQoYSwgYikKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBOb2RlKQpA
QCAtNjQ5LDcgKzY2OSw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90
eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgLy8gU3RyaW5nLmZvcm1hdCBkb2VzIHRyZWF0
IGZvcm1hdHRlZFJlc3VsdCBsaWtlIGEgQnVpbGRlciwgcmVzdWx0IGlzIGFuIG9iamVjdC4KLSAg
ICAgICAgcmV0dXJuIFN0cmluZy5mb3JtYXQocGFyYW1ldGVyc1swXS5kZXNjcmlwdGlvbiwgcGFy
YW1ldGVycy5zbGljZSgxKSwgZm9ybWF0dGVycywgZm9ybWF0dGVkUmVzdWx0LCBhcHBlbmQpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nLmZvcm1hdChmb3JtYXQsIHBhcmFtZXRlcnMsIGZvcm1hdHRl
cnMsIGZvcm1hdHRlZFJlc3VsdCwgYXBwZW5kKTsKICAgICB9LAogCiAgICAgY2xlYXJIaWdobGln
aHQ6IGZ1bmN0aW9uKCkKQEAgLTgyMCw2ICs4NDAsMTAgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5SZXN1bHQ6CiAgICAgICAgICAgICAgICAgdHlwZVN0
cmluZyA9ICJSZXN1bHQiOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuUHJvZmlsZToKKyAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlByb2Zp
bGVFbmQ6CisgICAgICAgICAgICAgICAgdHlwZVN0cmluZyA9ICJQcm9maWxpbmciOworICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgdmFyIGxldmVsU3RyaW5nOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9k
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5q
cwppbmRleCBhZDQ0MzE0YzM3MzYyOTQ5NWQ5ZTcxYzA4MWNmOWZhZTY0OTY2YjBiLi43ZDk4M2Q3
NWI2NzBiMGFkMzBmMTRlZjdiZDM3OGEzNGFkMTA1OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcwpAQCAtMjM3LDcgKzIzNyw5
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZSA9IHsKICAgICBTdGFy
dEdyb3VwQ29sbGFwc2VkOiAic3RhcnRHcm91cENvbGxhcHNlZCIsCiAgICAgRW5kR3JvdXA6ICJl
bmRHcm91cCIsCiAgICAgQXNzZXJ0OiAiYXNzZXJ0IiwKLSAgICBSZXN1bHQ6ICJyZXN1bHQiCisg
ICAgUmVzdWx0OiAicmVzdWx0IiwKKyAgICBQcm9maWxlOiAicHJvZmlsZSIsCisgICAgUHJvZmls
ZUVuZDogInByb2ZpbGVFbmQiCiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNz
YWdlTGV2ZWwgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1Byb2ZpbGVzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Byb2ZpbGVzUGFuZWwuanMKaW5kZXggMDkwZGE0NjViNWMyODgxMjkzNjY4MmU5MTQ1Y2I0ZThi
NTI5ZTI3NC4uOWFjNzUxMTBjOWM0NGVhZGU1NDA3YmFlNmVmYzM0M2ZkMTQ1ODM1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQYW5lbC5q
cwpAQCAtNjAyLDcgKzYwMiw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgc2lkZWJhclBhcmVudC5hcHBlbmRDaGlsZChwcm9maWxlVHJlZUVsZW1l
bnQpOwogICAgICAgICBpZiAoIXByb2ZpbGUuaXNUZW1wb3JhcnkpIHsKICAgICAgICAgICAgIGlm
ICghdGhpcy52aXNpYmxlVmlldykKLSAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9maWxlKHBy
b2ZpbGUpOworICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQcm9maWxlKHByb2ZpbGUpOwogICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInByb2ZpbGUgYWRkZWQiLCB7
CiAgICAgICAgICAgICAgICAgdHlwZTogdHlwZUlkCiAgICAgICAgICAgICB9KTsKQEAgLTY1MCw3
ICs2NTAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJvZmlsZUhlYWRlcn0gcHJvZmlsZQog
ICAgICAqLwotICAgIHNob3dQcm9maWxlOiBmdW5jdGlvbihwcm9maWxlKQorICAgIF9zaG93UHJv
ZmlsZTogZnVuY3Rpb24ocHJvZmlsZSkKICAgICB7CiAgICAgICAgIGlmICghcHJvZmlsZSB8fCBw
cm9maWxlLmlzVGVtcG9yYXJ5KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNzA0LDcgKzcwNCw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHZhciBwcm9maWxlID0gaGVhcFByb2ZpbGVzW2ldOwogICAgICAgICAgICAgLy8gVE9ETzogYWxs
b3cgdG8gY2hvb3NlIHNuYXBzaG90IGlmIHRoZXJlIGFyZSBzZXZlcmFsIG9wdGlvbnMuCiAgICAg
ICAgICAgICBpZiAocHJvZmlsZS5tYXhKU09iamVjdElkID49IHNuYXBzaG90T2JqZWN0SWQpIHsK
LSAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9maWxlKHByb2ZpbGUpOworICAgICAgICAgICAg
ICAgIHRoaXMuX3Nob3dQcm9maWxlKHByb2ZpbGUpOwogICAgICAgICAgICAgICAgIHByb2ZpbGUu
dmlldygpLmNoYW5nZVZpZXcodmlld05hbWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAg
ICAgICBwcm9maWxlLnZpZXcoKS5kYXRhR3JpZC5oaWdobGlnaHRPYmplY3RCeUhlYXBTbmFwc2hv
dElkKHNuYXBzaG90T2JqZWN0SWQpOwogICAgICAgICAgICAgICAgIH0pOwpAQCAtNzczLDcgKzc3
Myw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBzaG93VmlldzogZnVuY3Rpb24odmlldykKICAgICB7Ci0gICAgICAgIHRoaXMuc2hvd1By
b2ZpbGUodmlldy5wcm9maWxlKTsKKyAgICAgICAgdGhpcy5fc2hvd1Byb2ZpbGUodmlldy5wcm9m
aWxlKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC03ODUsMTQgKzc4NSwxMiBAQCBXZWJJbnNwZWN0
b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZUlkCisgICAg
ICogQHBhcmFtIHtzdHJpbmd9IHVpZAogICAgICAqLwotICAgIHNob3dQcm9maWxlRm9yVVJMOiBm
dW5jdGlvbih1cmwpCisgICAgc2hvd1Byb2ZpbGU6IGZ1bmN0aW9uKHR5cGVJZCwgdWlkKQogICAg
IHsKLSAgICAgICAgdmFyIG1hdGNoID0gdXJsLm1hdGNoKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsRGVzY3JpcHRvci5Qcm9maWxlVVJMUmVnRXhwKTsKLSAgICAgICAgaWYgKCFtYXRjaCkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5zaG93UHJvZmlsZSh0aGlzLl9wcm9maWxl
c0lkTWFwW3RoaXMuX21ha2VLZXkoTnVtYmVyKG1hdGNoWzNdKSwgbWF0Y2hbMV0pXSk7CisgICAg
ICAgIHRoaXMuX3Nob3dQcm9maWxlKHRoaXMuX3Byb2ZpbGVzSWRNYXBbdGhpcy5fbWFrZUtleShO
dW1iZXIodWlkKSwgdHlwZUlkKV0pOwogICAgIH0sCiAKICAgICBjbG9zZVZpc2libGVWaWV3OiBm
dW5jdGlvbigpCkBAIC04MDMsMzEgKzgwMSw2IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9
IHRpdGxlCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGVJZAotICAgICAqLwotICAgIGRpc3Bs
YXlUaXRsZUZvclByb2ZpbGVMaW5rOiBmdW5jdGlvbih0aXRsZSwgdHlwZUlkKQotICAgIHsKLSAg
ICAgICAgdGl0bGUgPSB1bmVzY2FwZSh0aXRsZSk7Ci0gICAgICAgIGlmICh0aXRsZS5zdGFydHNX
aXRoKFVzZXJJbml0aWF0ZWRQcm9maWxlTmFtZSkpIHsKLSAgICAgICAgICAgIHRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlICVkIiwgdGl0bGUuc3Vic3RyaW5nKFVzZXJJbml0
aWF0ZWRQcm9maWxlTmFtZS5sZW5ndGggKyAxKSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICB2YXIgdGl0bGVLZXkgPSB0aGlzLl9tYWtlVGl0bGVLZXkodGl0bGUsIHR5cGVJZCk7Ci0g
ICAgICAgICAgICBpZiAoISh0aXRsZUtleSBpbiB0aGlzLl9wcm9maWxlR3JvdXBzRm9yTGlua3Mp
KQotICAgICAgICAgICAgICAgIHRoaXMuX3Byb2ZpbGVHcm91cHNGb3JMaW5rc1t0aXRsZUtleV0g
PSAwOwotCi0gICAgICAgICAgICB2YXIgZ3JvdXBOdW1iZXIgPSArK3RoaXMuX3Byb2ZpbGVHcm91
cHNGb3JMaW5rc1t0aXRsZUtleV07Ci0KLSAgICAgICAgICAgIGlmIChncm91cE51bWJlciA+IDIp
Ci0gICAgICAgICAgICAgICAgLy8gVGhlIHRpdGxlIGlzIHVzZWQgaW4gdGhlIGNvbnNvbGUgbWVz
c2FnZSBhbm5vdW5jaW5nIHRoYXQgYSBwcm9maWxlIGhhcyBzdGFydGVkIHNvIGl0IGdldHMKLSAg
ICAgICAgICAgICAgICAvLyBpbmNyZW1lbnRlZCB0d2ljZSBhcyBvZnRlbiBhcyBpdCdzIGRpc3Bs
YXllZAotICAgICAgICAgICAgICAgIHRpdGxlICs9ICIgIiArIFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiUnVuICVkIiwgKGdyb3VwTnVtYmVyICsgMSkgLyAyKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHJldHVybiB0aXRsZTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9
IHF1ZXJ5CiAgICAgICovCiAgICAgcGVyZm9ybVNlYXJjaDogZnVuY3Rpb24ocXVlcnkpCkBAIC0x
NDA3LDcgKzEzODAsNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZVNpZGViYXJUcmVlRWxlbWVudC5w
cm90b3R5cGUgPSB7CiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlm
ICghdGhpcy5fc3VwcHJlc3NPblNlbGVjdCkKLSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUu
cGFuZWwuc2hvd1Byb2ZpbGUodGhpcy5wcm9maWxlKTsKKyAgICAgICAgICAgIHRoaXMudHJlZU91
dGxpbmUucGFuZWwuX3Nob3dQcm9maWxlKHRoaXMucHJvZmlsZSk7CiAgICAgfSwKIAogICAgIG9u
ZGVsZXRlOiBmdW5jdGlvbigpCkBAIC0xNDgzLDcgKzE0NTYsNyBAQCBXZWJJbnNwZWN0b3IuUHJv
ZmlsZUdyb3VwU2lkZWJhclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICBvbnNlbGVjdDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCkK
LSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLl9pbnN0YW5jZS5zaG93UHJv
ZmlsZSh0aGlzLmNoaWxkcmVuW3RoaXMuY2hpbGRyZW4ubGVuZ3RoIC0gMV0ucHJvZmlsZSk7Cisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5faW5zdGFuY2UuX3Nob3dQcm9m
aWxlKHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXS5wcm9maWxlKTsKICAg
ICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuU2lkZWJhclRyZWVFbGVtZW50LnBy
b3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsRGVzY3JpcHRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbERlc2NyaXB0b3IuanMKaW5kZXggMjRjMDZlMTFlNDAxOTFjYzBh
ODg5ZTFjY2NlMDhjYjk4ZDgxM2U1My4uZDY5YzY3NzUyNGY0MGJlN2UxOTk2YmZkZWZjYWIzODRj
NzA5MGU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Q
cm9maWxlc1BhbmVsRGVzY3JpcHRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Byb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLmpzCkBAIC02NCwzICs2NCwxNCBAQCBX
ZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbERlc2NyaXB0b3IudXNlckluaXRpYXRlZFByb2ZpbGVJ
bmRleCA9IGZ1bmN0aW9uKHRpdGxlKQogICAgIHZhciBzdWZmaXggPSB0aXRsZS5zdWJzdHJpbmco
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLlVzZXJJbml0aWF0ZWRQcm9maWxl
TmFtZS5sZW5ndGggKyAxKTsKICAgICByZXR1cm4gcGFyc2VJbnQoc3VmZml4LCAxMCk7CiB9CisK
Ky8qKgorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgKiBAcmV0dXJuIHtzdHJpbmd9CisgKi8K
K1dlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5yZXNvbHZlUHJvZmlsZVRpdGxl
ID0gZnVuY3Rpb24odGl0bGUpCit7CisgICAgaWYgKCFXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5l
bERlc2NyaXB0b3IuaXNVc2VySW5pdGlhdGVkUHJvZmlsZSh0aXRsZSkpCisgICAgICAgIHJldHVy
biB0aXRsZTsKKyAgICByZXR1cm4gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQcm9maWxlICVkIiwg
V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWxEZXNjcmlwdG9yLnVzZXJJbml0aWF0ZWRQcm9maWxl
SW5kZXgodGl0bGUpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmVzb3VyY2VVdGlscy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VVdGlscy5qcwppbmRleCBkY2M3ODkxM2VkNjE3ZThlOGEyMDMxMTk1MTM3
MjJmYTQwZGY5MWM3Li4zNjJjZjU2MjFjOWI2YTM1MmY4ZDFkMWYxYTNlYjUxOGZjMDdlMmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVXRp
bHMuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVV0
aWxzLmpzCkBAIC0xMjMsMTYgKzEyMyw2IEBAIFdlYkluc3BlY3Rvci5saW5raWZ5U3RyaW5nQXNG
cmFnbWVudFdpdGhDdXN0b21MaW5raWZpZXIgPSBmdW5jdGlvbihzdHJpbmcsIGxpbmtpCiAgICAg
cmV0dXJuIGNvbnRhaW5lcjsKIH0KIAotV2ViSW5zcGVjdG9yLl9saW5raWZpZXJQbHVnaW5zID0g
W107Ci0KLS8qKgotICogQHBhcmFtIHtmdW5jdGlvbihzdHJpbmcpOnN0cmluZ30gcGx1Z2luCi0g
Ki8KLVdlYkluc3BlY3Rvci5yZWdpc3RlckxpbmtpZmllclBsdWdpbiA9IGZ1bmN0aW9uKHBsdWdp
bikKLXsKLSAgICBXZWJJbnNwZWN0b3IuX2xpbmtpZmllclBsdWdpbnMucHVzaChwbHVnaW4pOwot
fQotCiAvKioKICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmcKICAqIEByZXR1cm4ge0RvY3VtZW50
RnJhZ21lbnR9CkBAIC0xNDcsOSArMTM3LDYgQEAgV2ViSW5zcGVjdG9yLmxpbmtpZnlTdHJpbmdB
c0ZyYWdtZW50ID0gZnVuY3Rpb24oc3RyaW5nKQogICAgICAqLwogICAgIGZ1bmN0aW9uIGxpbmtp
Zmllcih0aXRsZSwgdXJsLCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBXZWJJbnNwZWN0b3IuX2xpbmtpZmllclBsdWdpbnMubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5fbGlua2lmaWVyUGx1Z2luc1tpXSh0aXRsZSk7
Ci0KICAgICAgICAgdmFyIGlzRXh0ZXJuYWwgPSAhV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJM
KHVybCk7CiAgICAgICAgIHZhciB1cmxOb2RlID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05v
ZGUodXJsLCB0aXRsZSwgdW5kZWZpbmVkLCBpc0V4dGVybmFsKTsKICAgICAgICAgaWYgKHR5cGVv
ZihsaW5lTnVtYmVyKSAhPT0gInVuZGVmaW5lZCIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggMGE2OTkxY2Q5YzRhN2FjMjI1YzI1
YzE3NGU1NTEwYzg3ODJkNDZmYS4uODUxNTBkNTkxOGU5MDc4MWRmODU4OWEzNzk3NzZlMTU3ODdi
YzUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKQEAgLTI3MiwxNiArMjcyLDYgQEAgdmFyIFdlYkluc3BlY3RvciA9IHsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmRvbUFnZW50LnNldEluc3BlY3RNb2RlRW5hYmxlZChlbmFibGVkLCBjYWxs
YmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgX3Byb2ZpbGVzTGlua2lmaWVyOiBmdW5j
dGlvbih0aXRsZSkKLSAgICB7Ci0gICAgICAgIHZhciBwcm9maWxlU3RyaW5nTWF0Y2hlcyA9IFdl
Ykluc3BlY3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5Qcm9maWxlVVJMUmVnRXhwLmV4ZWMo
dGl0bGUpOwotICAgICAgICBpZiAocHJvZmlsZVN0cmluZ01hdGNoZXMpIHsKLSAgICAgICAgICAg
IHZhciBwcm9maWxlc1BhbmVsID0gLyoqIEAgdHlwZSB7V2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFu
ZWx9ICovIFdlYkluc3BlY3Rvci5wYW5lbCgicHJvZmlsZXMiKTsKLSAgICAgICAgICAgIHRpdGxl
ID0gV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwuX2luc3RhbmNlLmRpc3BsYXlUaXRsZUZvclBy
b2ZpbGVMaW5rKHByb2ZpbGVTdHJpbmdNYXRjaGVzWzJdLCBwcm9maWxlU3RyaW5nTWF0Y2hlc1sx
XSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRpdGxlOwotICAgIH0sCi0KICAgICBfZGVi
dWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIC8vIENyZWF0ZSBzY3JpcHRz
IHBhbmVsIHVwb24gZGVtYW5kLgpAQCAtNDY4LDcgKzQ1OCw2IEBAIFdlYkluc3BlY3Rvci5fZG9M
b2FkZWREb25lV2l0aENhcGFiaWxpdGllcyA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3Iu
ZW5kQmF0Y2hVcGRhdGUoKTsKIAogICAgIHRoaXMuYWRkTWFpbkV2ZW50TGlzdGVuZXJzKGRvY3Vt
ZW50KTsKLSAgICBXZWJJbnNwZWN0b3IucmVnaXN0ZXJMaW5raWZpZXJQbHVnaW4odGhpcy5fcHJv
ZmlsZXNMaW5raWZpZXIuYmluZCh0aGlzKSk7CiAKICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigicmVzaXplIiwgdGhpcy53aW5kb3dSZXNpemUuYmluZCh0aGlzKSwgdHJ1ZSk7CiAKQEAgLTU4
Myw3ICs1NzIsNyBAQCBXZWJJbnNwZWN0b3IuY2xvc2UgPSBmdW5jdGlvbihldmVudCkKIFdlYklu
c3BlY3Rvci5kb2N1bWVudENsaWNrID0gZnVuY3Rpb24oZXZlbnQpCiB7CiAgICAgdmFyIGFuY2hv
ciA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aE5vZGVOYW1lKCJhIik7Ci0g
ICAgaWYgKCFhbmNob3IgfHwgKGFuY2hvci50YXJnZXQgPT09ICJfYmxhbmsiICYmICFXZWJJbnNw
ZWN0b3IuUHJvZmlsZXNQYW5lbERlc2NyaXB0b3IuUHJvZmlsZVVSTFJlZ0V4cC5leGVjKGFuY2hv
ci5ocmVmKSkpCisgICAgaWYgKCFhbmNob3IgfHwgKGFuY2hvci50YXJnZXQgPT09ICJfYmxhbmsi
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUHJldmVudCB0aGUgbGluayBmcm9tIG5hdmln
YXRpbmcsIHNpbmNlIHdlIGRvbid0IGRvIGFueSBuYXZpZ2F0aW9uIGJ5IGZvbGxvd2luZyBsaW5r
cyBub3JtYWxseS4KQEAgLTU5Niw3ICs1ODUsNyBAQCBXZWJJbnNwZWN0b3IuZG9jdW1lbnRDbGlj
ayA9IGZ1bmN0aW9uKGV2ZW50KQogCiAgICAgICAgIGNvbnN0IHByb2ZpbGVNYXRjaCA9IFdlYklu
c3BlY3Rvci5Qcm9maWxlc1BhbmVsRGVzY3JpcHRvci5Qcm9maWxlVVJMUmVnRXhwLmV4ZWMoYW5j
aG9yLmhyZWYpOwogICAgICAgICBpZiAocHJvZmlsZU1hdGNoKSB7Ci0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2hvd1Byb2ZpbGVGb3JVUkwoYW5jaG9yLmhyZWYpOworICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKS5zaG93UHJvZmlsZShwcm9maWxlTWF0Y2hb
MV0sIHByb2ZpbGVNYXRjaFsyXSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApA
QCAtOTg0LDExICs5NzMsNiBAQCBXZWJJbnNwZWN0b3IuX3Nob3dBbmNob3JMb2NhdGlvbkluUGFu
ZWwgPSBmdW5jdGlvbihhbmNob3IsIHBhbmVsKQogICAgIHJldHVybiB0cnVlOwogfQogCi1XZWJJ
bnNwZWN0b3Iuc2hvd1Byb2ZpbGVGb3JVUkwgPSBmdW5jdGlvbih1cmwpCi17Ci0gICAgV2ViSW5z
cGVjdG9yLnNob3dQYW5lbCgicHJvZmlsZXMiKS5zaG93UHJvZmlsZUZvclVSTCh1cmwpOwotfQot
CiBXZWJJbnNwZWN0b3IuZXZhbHVhdGVJbkNvbnNvbGUgPSBmdW5jdGlvbihleHByZXNzaW9uLCBz
aG93UmVzdWx0T25seSkKIHsKICAgICB0aGlzLnNob3dDb25zb2xlKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLXJlcGxheS1sb2ct
Z3JpZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZh
cy1yZXBsYXktbG9nLWdyaWQuaHRtbAppbmRleCBmYjE2MTFmZjY5YzU4ZTQ2NDk1ZDcyOGIzYzE5
MzYyNDQwM2RmYzVkLi4wNWEyNzY1OGViY2ZmNzJmMzBkOGI0YzBlMDM2ZjE4Njc3NjE1ZjhjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFz
LXJlcGxheS1sb2ctZ3JpZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9jYW52YXMyZC9jYW52YXMtcmVwbGF5LWxvZy1ncmlkLmh0bWwKQEAgLTU1LDcgKzU1LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gZGlkU3RhcnRDYXB0dXJpbmdGcmFtZShwcm9m
aWxlc1BhbmVsLCBmcmFtZUlkLCBlcnJvciwgdHJhY2VMb2dJZCkKICAgICB7CiAgICAgICAgIHBy
b2ZpbGVIZWFkZXIgPSBwcm9maWxlc1BhbmVsLmdldFByb2ZpbGVzKFdlYkluc3BlY3Rvci5DYW52
YXNQcm9maWxlVHlwZS5UeXBlSWQpWzBdOwotICAgICAgICBwcm9maWxlc1BhbmVsLnNob3dQcm9m
aWxlKHByb2ZpbGVIZWFkZXIpOworICAgICAgICBwcm9maWxlc1BhbmVsLl9zaG93UHJvZmlsZShw
cm9maWxlSGVhZGVyKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVI
ZWFkZXIsICJfdXBkYXRlQ2FwdHVyaW5nU3RhdHVzIiwgZGlkUmVjZWl2ZUZpcnN0RnJhbWUpOwog
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJkb1NvbWVDYW52YXNDYWxs
cygyKSIpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWluc3BlY3QtZG9tLXdyYXBwZXIuaHRtbApp
bmRleCAwMzVmYzRjZTdiNDk1Nzk5MzE5NDMzMDAyNTM4YjM0ZmU3NTkzMTg0Li45MjRkNWM1ZTk5
ZDBhMTdkYTUyNjIwNmJjYmI1YTg1ZjI3NWI3YzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1pbnNwZWN0LWRvbS13cmFwcGVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtaW5zcGVj
dC1kb20td3JhcHBlci5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IGZ1bmN0aW9uIHN0ZXAwKCkKICAgICB7CiAgICAgICAgIHZhciBwcm9maWxlcyA9IFdlYkluc3Bl
Y3Rvci5wYW5lbHMucHJvZmlsZXMuZ2V0UHJvZmlsZXMoIkhFQVAiKTsKLSAgICAgICAgV2ViSW5z
cGVjdG9yLnBhbmVscy5wcm9maWxlcy5zaG93UHJvZmlsZShwcm9maWxlc1twcm9maWxlcy5sZW5n
dGggLSAxXSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX3Nob3dQcm9m
aWxlKHByb2ZpbGVzW3Byb2ZpbGVzLmxlbmd0aCAtIDFdKTsKICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMsICJfZmluaXNoSGVhcFNu
YXBzaG90Iiwgc3RlcDEpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAppbmRleCBjZDg2NWJlMDdh
NjlmN2E5NzkxNjBhZGNhOGVlMjk4MmNiYWZkYjBkLi4wY2RhYmRkOWJlNDNkNmE3Mzk1ZTk0NjQ4
ZTY5ZjM5YzcxZjg1NTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1sb2FkZXIuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHByb2ZpbGVIZWFk
ZXIsICJfc25hcHNob3RSZWNlaXZlZCIsIHNuYXBzaG90TG9hZGVkKTsKIAogICAgICAgICBJbnNw
ZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVhcFNuYXBzaG90Iiwg
Z2V0SGVhcFNuYXBzaG90TW9jayk7Ci0gICAgICAgIHBhbmVsLnNob3dQcm9maWxlKHByb2ZpbGVI
ZWFkZXIpOworICAgICAgICBwYW5lbC5fc2hvd1Byb2ZpbGUocHJvZmlsZUhlYWRlcik7CiAgICAg
fQogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKaW5kZXggYjU4MTg5
ODIzZDg0MTVjNzI2N2I3ZjM3ZDNlNjliMDY5NGM5MWRmYi4uMmU2YmIxZmZjZThhZmM2OTI2ZmQ1
OGEyZjgzNDExODk1N2U2MGViZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2hlYXAtc25hcHNob3QtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCkBAIC03MzgsNyArNzM4LDcgQEAgSW5zcGVj
dG9yVGVzdC50YWtlQW5kT3BlblNuYXBzaG90ID0gZnVuY3Rpb24oZ2VuZXJhdG9yLCBjYWxsYmFj
aykKICAgICBJbnNwZWN0b3JUZXN0Lm92ZXJyaWRlKEhlYXBQcm9maWxlckFnZW50LCAiZ2V0SGVh
cFNuYXBzaG90IiwgcHVzaEdlbmVyYXRlZFNuYXBzaG90KTsKICAgICBJbnNwZWN0b3JUZXN0Ll90
YWtlQW5kT3BlblNuYXBzaG90Q2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLnByb2ZpbGVzLmFkZFByb2ZpbGVIZWFkZXIocHJvZmlsZSk7Ci0gICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5wcm9maWxlcy5zaG93UHJvZmlsZShwcm9maWxlKTsKKyAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLnByb2ZpbGVzLl9zaG93UHJvZmlsZShwcm9maWxlKTsKIH07CiAKIEluc3BlY3Rv
clRlc3Qudmlld0NvbHVtbnMgPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcHJvZmlsZXIvcHJvZmlsZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9wcm9maWxlci10ZXN0LmpzCmluZGV4IGNjNzAzM2M2YzFmY2YyMjUzMjRmOTlj
ZTM5ZTZhOGJhNjZlY2VmNjEuLjJiY2YzMGVkODRiNmI0NDc2OWFkNTM2Zjg3YWRhOGUyZTFkZWUx
NTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10
ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9wcm9maWxlci10ZXN0
LmpzCkBAIC02Niw3ICs2Niw3IEBAIEluc3BlY3RvclRlc3Quc2hvd1Byb2ZpbGVXaGVuQWRkZWQg
PSBmdW5jdGlvbih0aXRsZSkKIEluc3BlY3RvclRlc3QuX3Byb2ZpbGVIZWFkZXJBZGRlZCA9IGZ1
bmN0aW9uKHByb2ZpbGUpCiB7CiAgICAgaWYgKEluc3BlY3RvclRlc3QuX3Nob3dQcm9maWxlV2hl
bkFkZGVkID09PSBwcm9maWxlLnRpdGxlKSB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMu
cHJvZmlsZXMuc2hvd1Byb2ZpbGUocHJvZmlsZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5wYW5l
bHMucHJvZmlsZXMuX3Nob3dQcm9maWxlKHByb2ZpbGUpOwogICAgIH0KIH07CiAKZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hlYXAtc25hcHNob3QtcGVyZm9ybWFuY2Ut
dGVzdC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvaW5zcGVjdG9yL2hlYXAtc25hcHNob3QtcGVyZm9y
bWFuY2UtdGVzdC5qcwppbmRleCBhZDk0N2I4MWM1ZjAwYmNjZmY3NzkyYzhmOWUwODcxZDAzZjI0
ZjE5Li5hYTdhYjM1MjE4MjBkMzhiNjk0NTgwNzgyYmY5MDdkYmQ3ZGQ4NWU4IDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL2luc3BlY3Rvci9oZWFwLXNuYXBzaG90LXBlcmZvcm1hbmNlLXRl
c3QuanMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9pbnNwZWN0b3IvaGVhcC1zbmFwc2hvdC1wZXJm
b3JtYW5jZS10ZXN0LmpzCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgdGltZXIuZmluaXNoKGJhY2tlbmRUaW1lckNvb2tpZSk7CiAgICAgICAgICAgICB0cmFu
c2ZlclRpbWVyQ29va2llID0gdGltZXIuc3RhcnQoInRyYW5zZmVyLXNuYXBzaG90Iik7CiAgICAg
ICAgICAgICB2YXIgcHJvZmlsZXMgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLmdldFBy
b2ZpbGVzKCJIRUFQIik7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVz
LnNob3dQcm9maWxlKHByb2ZpbGVzW3Byb2ZpbGVzLmxlbmd0aCAtIDFdKTsKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMucHJvZmlsZXMuX3Nob3dQcm9maWxlKHByb2ZpbGVzW3Byb2Zp
bGVzLmxlbmd0aCAtIDFdKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihX
ZWJJbnNwZWN0b3IucGFuZWxzLnByb2ZpbGVzLCAiX2ZpbmlzaEhlYXBTbmFwc2hvdCIsIHN0ZXAx
KTsKICAgICAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>