<?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>69833</bug_id>
          
          <creation_ts>2011-10-11 06:17:12 -0700</creation_ts>
          <short_desc>Web Inspector: make Extensions component compile.</short_desc>
          <delta_ts>2011-10-11 07:42:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>481596</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-11 06:17:12 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481598</commentid>
    <comment_count>1</comment_count>
      <attachid>110508</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-11 06:21:19 -0700</bug_when>
    <thetext>Created attachment 110508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481600</commentid>
    <comment_count>2</comment_count>
      <attachid>110509</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-11 06:28:06 -0700</bug_when>
    <thetext>Created attachment 110509
[Patch] Same with settings screen and test controller</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481608</commentid>
    <comment_count>3</comment_count>
      <attachid>110509</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-11 06:44:27 -0700</bug_when>
    <thetext>Comment on attachment 110509
[Patch] Same with settings screen and test controller

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

&gt; Source/WebCore/inspector/front-end/TestController.js:-50
&gt; -                result = window[script].call(WebInspector, controller);

Please make sure this code is not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481610</commentid>
    <comment_count>4</comment_count>
      <attachid>110509</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-11 06:52:58 -0700</bug_when>
    <thetext>Comment on attachment 110509
[Patch] Same with settings screen and test controller

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

&gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:-383
&gt; -    createResult: function()

This is an API method, this will break extension API interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481624</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-11 07:42:55 -0700</bug_when>
    <thetext>Committed r97152: &lt;http://trac.webkit.org/changeset/97152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110508</attachid>
            <date>2011-10-11 06:21:19 -0700</date>
            <delta_ts>2011-10-11 06:27:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69833-20111011172117.patch</filename>
            <type>text/plain</type>
            <size>24745</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNmRkMmQxODNlYmJjYjY1
MDNmMTRiYTY5NDNjM2JkZTQ0NzY0ZmMxLi45YmY2ODZiMTU4M2UzZGFkNDJlNmFjMTViNTBjY2E2
YzMzMmVjMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMTAtMTEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgRXh0ZW5zaW9ucyBjb21wb25lbnQgY29tcGlsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQu
c2g6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CaW5hcnlTZWFyY2guanM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanM6CisgICAgICAgIChpbmplY3RlZEV4dGVu
c2lvbkFQSS5OZXR3b3JrLnByb3RvdHlwZS5hZGRSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChp
bmplY3RlZEV4dGVuc2lvbkFQSS5BdWRpdFJlc3VsdEltcGwucHJvdG90eXBlLmFkZFJlc3VsdCk6
CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5BdWRpdFJlc3VsdE5vZGUucHJvdG90eXBl
LmFkZENoaWxkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkF1ZGl0
Q2F0ZWdvcnkuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZS5wcm90b3R5
cGUuc2V0RXhwcmVzc2lvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25SZWdpc3RyeVN0dWIuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3Rv
dHlwZS5fcG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5fb25BZGRSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFn
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fcmVn
aXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblN0YXR1cyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cucHJvdG90eXBlLl9vblJlc291cmNlU3RhcnRlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qczoKKyAgICAgICAgKGNvbnNvbGUud2Fy
bik6CisgICAgICAgIChjb25zb2xlLmFzc2VydCk6CisgICAgICAgIChjb25zb2xlLmVycm9yKToK
KyAgICAgICAgKCk6CisgICAgICAgIChBdWRpdFJlc3VsdCk6CisgICAgICAgIChFdmVudFNpbmsp
OgorICAgICAgICAoRXh0ZW5zaW9uU2lkZWJhclBhbmUpOgorICAgICAgICAoUGFuZWwpOgorICAg
ICAgICAoUGFuZWxXaXRoU2lkZWJhcik6CisgICAgICAgIChSZXF1ZXN0KToKKyAgICAgICAgKFJl
c291cmNlKToKKyAgICAgICAgKFRpbWVsaW5lKToKKwogMjAxMS0xMC0xMCAgQW5kcmVhcyBLbGlu
ZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2hyaW5rIFdlYkNvcmU6Ok5vZGUgb24g
NjQtYml0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJv
bnQtZW5kLnNoIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNo
CmluZGV4IGY5MTg2YzVjYzVkYzZiZDIzOGI4M2E5YmNiYzQyOGI3MWFlN2I4ZTguLmI1MWRmNTEx
MjJlNTNhZjNjMmFhYWE3MTUzMDQ3ZWNiMmU3ZDRkNDAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKQEAgLTE2NywxMiArMTY3LDE5IEBAIGphdmEg
LWphciB+L2Nsb3N1cmUvY29tcGlsZXIuamFyIC0tY29tcGlsYXRpb25fbGV2ZWwgU0lNUExFX09Q
VElNSVpBVElPTlMgLS13YXJuCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMgXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcyBcCi0g
ICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5l
bC5qcworICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRzUGFuZWwuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxlX2V4dGVuc2lvbnM6NTpqc21vZHVs
ZV9jb21wb25lbnRzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BdWRpdENhdGVnb3J5LmpzIFwKKyAgICAgICAgLS1q
cyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzIFwK
KyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blJlZ2lzdHJ5U3R1Yi5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxlX3Rl
c3RzOjE6anNtb2R1bGVfY29tcG9uZW50cyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcyBcCiAjICAgICAtLW1vZHVsZSBq
c21vZHVsZV90b2tlbml6ZXJzOjM6anNtb2R1bGVfY29tcG9uZW50cyBcCiAjICAgICAgICAtLWpz
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLmpz
IFwKICMgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VIVE1MVG9rZW5pemVyLmpzIFwKLSMgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb3VyY2VKYXZhU2NyaXB0VG9rZW5pemVyLmpzIFwKLQorIyAgICAgICAg
LS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFTY3JpcHRU
b2tlbml6ZXIuanMKIAogIyBUbyBiZSBjb21waWxlZC4uLgogIyAKQEAgLTE4OSwxNiArMTk2LDgg
QEAgamF2YSAtamFyIH4vY2xvc3VyZS9jb21waWxlci5qYXIgLS1jb21waWxhdGlvbl9sZXZlbCBT
SU1QTEVfT1BUSU1JWkFUSU9OUyAtLXdhcm4KICMgUHJvZmlsZVZpZXcKICMgVG9wRG93blByb2Zp
bGVEYXRhR3JpZFRyZWUKICMKLSMgW0V4dGVuc2lvbnNdCi0jIEV4dGVuc2lvbkFQSQotIyBFeHRl
bnNpb25BdWRpdENhdGVnb3J5Ci0jIEV4dGVuc2lvblBhbmVsCi0jIEV4dGVuc2lvblJlZ2lzdHJ5
U3R1YgotIyBFeHRlbnNpb25TZXJ2ZXIKLSMKICMgW01pc2NdCiAjIGluc3BlY3RvcgogIyBTZXR0
aW5nc1NjcmVlbgotIyBUZXN0Q29udHJvbGxlcgogIyBKYXZhU2NyaXB0Rm9ybWF0dGVyCiAjIFNj
cmlwdEZvcm1hdHRlcldvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9CaW5hcnlTZWFyY2guanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0JpbmFyeVNlYXJjaC5qcwppbmRleCAxOWUyYTkxMDNjNTI1NmE3YWJhMWI1ZGZiZDc2
YWJhYjY0MDJlY2RhLi5lNmM5OWMyNzJiNzQ5Nzk2OTNlZTI2Y2E0NDBkMjI5MjQ2YWFjNGMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JpbmFyeVNlYXJj
aC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JpbmFyeVNlYXJj
aC5qcwpAQCAtMjksNiArMjksMTEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBA
cGFyYW0geyp9IG9iamVjdAorICogQHBhcmFtIHtBcnJheS48Kj59IGFycmF5CisgKiBAcGFyYW0g
e2Z1bmN0aW9uKCosICopfSBjb21wYXJhdG9yCisgKi8KIGZ1bmN0aW9uIGJpbmFyeVNlYXJjaChv
YmplY3QsIGFycmF5LCBjb21wYXJhdG9yKQogewogICAgIHZhciBmaXJzdCA9IDA7CkBAIC01NSw2
ICs2MCwxMSBAQCBPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCAiYmluYXJ5
SW5kZXhPZiIsIHsgdmFsdWU6IGZ1bmN0aW9uKHZhbHVlLAogICAgIHJldHVybiByZXN1bHQgPj0g
MCA/IHJlc3VsdCA6IC0xOwogfX0pOwogCisvKioKKyAqIEBwYXJhbSB7Kn0gYW5PYmplY3QKKyAq
IEBwYXJhbSB7QXJyYXkuPCo+fSBhTGlzdAorICogQHBhcmFtIHtmdW5jdGlvbigqLCAqKX0gYUZ1
bmN0aW9uCisgKi8KIGZ1bmN0aW9uIGluc2VydGlvbkluZGV4Rm9yT2JqZWN0SW5MaXN0U29ydGVk
QnlGdW5jdGlvbihhbk9iamVjdCwgYUxpc3QsIGFGdW5jdGlvbikKIHsKICAgICB2YXIgaW5kZXgg
PSBiaW5hcnlTZWFyY2goYW5PYmplY3QsIGFMaXN0LCBhRnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcwppbmRleCBhYjgz
ZmRlNDgwZjAxYzE0ZTc4ZWJhM2NkOWYxOWZkYmRiZTVjZTYwLi4xYTY4ZjRiYWYyY2FhMzAwYWM3
MWI0MTljYmQ1ODliNDk4ZTgyNzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcwpAQCAtNjQsNiArNjQsOSBAQCBXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZX0gbXNnCisgICAg
ICovCiAgICAgYWRkTWVzc2FnZTogZnVuY3Rpb24obXNnKQogICAgIHsKICAgICAgICAgdGhpcy5t
ZXNzYWdlcy5wdXNoKG1zZyk7CkBAIC03Myw2ICs3Niw5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9pbnRlcnJ1cHRSZXBlYXRDb3VudCA9
IGZhbHNlOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5D
b25zb2xlTWVzc2FnZX0gbXNnCisgICAgICovCiAgICAgX2luY3JlbWVudEVycm9yV2FybmluZ0Nv
dW50OiBmdW5jdGlvbihtc2cpCiAgICAgewogICAgICAgICBzd2l0Y2ggKG1zZy5sZXZlbCkgewpA
QCAtMTQzLDYgKzE0OSw5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZSA9IGZ1bmN0aW9u
KCkKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCiAgICAgZ2V0IHRvdGFsUmVwZWF0
Q291bnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3RvdGFsUmVwZWF0Q291bnQ7CkBA
IC0yMjgsNiArMjM3LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyID0gZnVuY3Rp
b24oY29uc29sZSkKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVEaXNwYXRjaGVyLnByb3RvdHlw
ZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0NvbnNvbGVBZ2VudC5Db25zb2xlTWVzc2Fn
ZX0gcGF5bG9hZAorICAgICAqLwogICAgIG1lc3NhZ2VBZGRlZDogZnVuY3Rpb24ocGF5bG9hZCkK
ICAgICB7CiAgICAgICAgIHZhciBjb25zb2xlTWVzc2FnZSA9IFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZS5jcmVhdGUoCkBAIC0yNDQsNiArMjU2LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVE
aXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY29uc29sZS5hZGRNZXNzYWdl
KGNvbnNvbGVNZXNzYWdlKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1i
ZXJ9IGNvdW50CisgICAgICovCiAgICAgbWVzc2FnZVJlcGVhdENvdW50VXBkYXRlZDogZnVuY3Rp
b24oY291bnQpCiAgICAgewogICAgICAgICB0aGlzLl9jb25zb2xlLl9tZXNzYWdlUmVwZWF0Q291
bnRVcGRhdGVkKGNvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25BUEkuanMKaW5kZXggMTY5OGExOTc1NjVmYmFiMjVlMzdiZjBlNTNkNTVi
YjhjNDAyNGZmMy4uMjVhNjcxNzIwOWQwNmQ3ZTQ2ZjhkZmRjNDQyN2Q0MWM2YzNiZjU1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEku
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEku
anMKQEAgLTYzLDYgKzYzLDkgQEAgZGVmaW5lQ29tbW9uRXh0ZW5zaW9uU3ltYm9scyhhcGlQcml2
YXRlKTsKIC8vIGJ5IEZvbyBjb25zdXRyY3RvciB0byByZS1iaW5kIHB1YmxpY2x5IGV4cG9ydGVk
IG1lbWJlcnMgdG8gYW4gaW5zdGFuY2UKIC8vIG9mIEZvby4KIAorLyoqCisgKiBAY29uc3RydWN0
b3IKKyAqLwogZnVuY3Rpb24gRXZlbnRTaW5rSW1wbCh0eXBlLCBjdXN0b21EaXNwYXRjaCkKIHsK
ICAgICB0aGlzLl90eXBlID0gdHlwZTsKQEAgLTExMSw2ICsxMTQsOSBAQCBFdmVudFNpbmtJbXBs
LnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1
bmN0aW9uIEluc3BlY3RvckV4dGVuc2lvbkFQSSgpCiB7CiAgICAgdGhpcy5hdWRpdHMgPSBuZXcg
QXVkaXRzKCk7CkBAIC0xMjQsNiArMTMwLDkgQEAgZnVuY3Rpb24gSW5zcGVjdG9yRXh0ZW5zaW9u
QVBJKCkKICAgICB0aGlzLm9uUmVzZXQgPSBuZXcgRXZlbnRTaW5rKCJyZXNldCIpOwogfQogCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBJbnNwZWN0b3JFeHRlbnNpb25BUEkucHJvdG90eXBl
ID0gewogICAgIGxvZzogZnVuY3Rpb24obWVzc2FnZSkKICAgICB7CkBAIC0xMzEsNiArMTQwLDkg
QEAgSW5zcGVjdG9yRXh0ZW5zaW9uQVBJLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgor
ICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIENvbnNvbGUoKQogewogICAgIHRoaXMub25N
ZXNzYWdlQWRkZWQgPSBuZXcgRXZlbnRTaW5rKCJjb25zb2xlLW1lc3NhZ2UtYWRkZWQiKTsKQEAg
LTE1MSw4ICsxNjMsMTEgQEAgQ29uc29sZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBy
ZXR1cm4gYXBpUHJpdmF0ZS5jb25zb2xlLlNldmVyaXR5OwogICAgIH0KLX07Cit9CiAKKy8qKgor
ICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIE5ldHdvcmsoKQogewogICAgIGZ1bmN0aW9u
IGRpc3BhdGNoUmVxdWVzdEV2ZW50KG1lc3NhZ2UpCkBAIC0xODMsMTAgKzE5OCwxMyBAQCBOZXR3
b3JrLnByb3RvdHlwZSA9IHsKIAogICAgIGFkZFJlcXVlc3RIZWFkZXJzOiBmdW5jdGlvbihoZWFk
ZXJzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7
IGNvbW1hbmQ6ICJhZGRSZXF1ZXN0SGVhZGVycyIsIGhlYWRlcnM6IGhlYWRlcnMsIGV4dGVuc2lv
bklkOiBsb2NhdGlvbi5ob3N0bmFtZSB9KTsKKyAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNlcnZl
ci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJhZGRSZXF1ZXN0SGVhZGVycyIsIGhlYWRlcnM6IGhl
YWRlcnMsIGV4dGVuc2lvbklkOiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgfSk7CiAgICAgfQog
fQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBSZXF1ZXN0SW1wbChpZCkK
IHsKICAgICB0aGlzLl9pZCA9IGlkOwpAQCAtMjAxLDggKzIxOSwxMSBAQCBSZXF1ZXN0SW1wbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1
ZXN0KHsgY29tbWFuZDogImdldFJlcXVlc3RDb250ZW50IiwgaWQ6IHRoaXMuX2lkIH0sIGNhbGxi
YWNrICYmIGNhbGxiYWNrV3JhcHBlcik7CiAgICAgfQotfTsKK30KIAorLyoqCisgKiBAY29uc3Ry
dWN0b3IKKyAqLwogZnVuY3Rpb24gUGFuZWxzKCkKIHsKICAgICB2YXIgcGFuZWxzID0gewpAQCAt
MjUwLDYgKzI3MSw5IEBAIFBhbmVscy5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBQYW5lbEltcGwoaWQpCiB7CiAgICAgdGhpcy5f
aWQgPSBpZDsKQEAgLTI1Nyw2ICsyODEsMTAgQEAgZnVuY3Rpb24gUGFuZWxJbXBsKGlkKQogICAg
IHRoaXMub25IaWRkZW4gPSBuZXcgRXZlbnRTaW5rKCJwYW5lbC1oaWRkZW4tIiArIGlkKTsKIH0K
IAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtQYW5lbEltcGx9CisgKi8KIGZ1
bmN0aW9uIFBhbmVsV2l0aFNpZGViYXJJbXBsKGlkKQogewogICAgIFBhbmVsSW1wbC5jYWxsKHRo
aXMsIGlkKTsKQEAgLTI4Miw2ICszMTAsMTAgQEAgUGFuZWxXaXRoU2lkZWJhckltcGwucHJvdG90
eXBlID0gewogCiBQYW5lbFdpdGhTaWRlYmFySW1wbC5wcm90b3R5cGUuX19wcm90b19fID0gUGFu
ZWxJbXBsLnByb3RvdHlwZTsKIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtQ
YW5lbFdpdGhTaWRlYmFyfQorICovCiBmdW5jdGlvbiBFbGVtZW50c1BhbmVsKCkKIHsKICAgICB2
YXIgaWQgPSAiZWxlbWVudHMiOwpAQCAtMjg5LDEyICszMjEsMTkgQEAgZnVuY3Rpb24gRWxlbWVu
dHNQYW5lbCgpCiAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRTaW5rKCJw
YW5lbC1vYmplY3RTZWxlY3RlZC0iICsgaWQpOwogfQogCisvKioKKyAqIEBjb25zdHJ1Y3Rvcgor
ICogQGV4dGVuZHMge1BhbmVsfQorICovCiBmdW5jdGlvbiBFeHRlbnNpb25QYW5lbChpZCkKIHsK
ICAgICBQYW5lbC5jYWxsKHRoaXMsIGlkKTsKICAgICB0aGlzLm9uU2VhcmNoID0gbmV3IEV2ZW50
U2luaygicGFuZWwtc2VhcmNoLSIgKyBpZCk7CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
Ki8KIGZ1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbChpZCkKIHsKICAgICB0aGlzLl9p
ZCA9IGlkOwpAQCAtMzIzLDYgKzM2Miw5IEBAIEV4dGVuc2lvblNpZGViYXJQYW5lSW1wbC5wcm90
b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlv
biBBdWRpdHMoKQogewogfQpAQCAtMzM2LDYgKzM3OCw5IEBAIEF1ZGl0cy5wcm90b3R5cGUgPSB7
CiAgICAgfQogfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBBdWRpdENh
dGVnb3J5SW1wbChpZCkKIHsKICAgICBmdW5jdGlvbiBkaXNwYXRjaEF1ZGl0RXZlbnQocmVxdWVz
dCkKQEAgLTM1Miw2ICszOTcsOSBAQCBmdW5jdGlvbiBBdWRpdENhdGVnb3J5SW1wbChpZCkKICAg
ICB0aGlzLm9uQXVkaXRTdGFydGVkID0gbmV3IEV2ZW50U2luaygiYXVkaXQtc3RhcnRlZC0iICsg
aWQsIGRpc3BhdGNoQXVkaXRFdmVudCk7CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8K
IGZ1bmN0aW9uIEF1ZGl0UmVzdWx0SW1wbChpZCkKIHsKICAgICB0aGlzLl9pZCA9IGlkOwpAQCAt
MzY3LDcgKzQxNSw3IEBAIEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICAvLyBzaG9ydGhhbmQgZm9yIHNwZWNpZnlpbmcgZGV0YWlscyBkaXJlY3RseSBpbiBhZGRS
ZXN1bHQoKS4KICAgICAgICAgaWYgKGRldGFpbHMgJiYgIShkZXRhaWxzIGluc3RhbmNlb2YgQXVk
aXRSZXN1bHROb2RlKSkKLSAgICAgICAgICAgIGRldGFpbHMgPSBkZXRhaWxzIGluc3RhbmNlb2Yg
QXJyYXkgPyB0aGlzLmNyZWF0ZU5vZGUuYXBwbHkodGhpcywgZGV0YWlscykgOiB0aGlzLmNyZWF0
ZU5vZGUoZGV0YWlscyk7CisgICAgICAgICAgICBkZXRhaWxzID0gbmV3IEF1ZGl0UmVzdWx0Tm9k
ZShkZXRhaWxzIGluc3RhbmNlb2YgQXJyYXkgPyBkZXRhaWxzIDogW2RldGFpbHNdKTsKIAogICAg
ICAgICB2YXIgcmVxdWVzdCA9IHsKICAgICAgICAgICAgIGNvbW1hbmQ6ICJhZGRBdWRpdFJlc3Vs
dCIsCkBAIC0zODAsMTMgKzQyOCw2IEBAIEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdChyZXF1ZXN0KTsKICAgICB9LAogCi0g
ICAgY3JlYXRlUmVzdWx0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgbm9kZSA9IG5l
dyBBdWRpdFJlc3VsdE5vZGUoKTsKLSAgICAgICAgbm9kZS5jb250ZW50cyA9IEFycmF5LnByb3Rv
dHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0s
Ci0KICAgICBkb25lOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBleHRlbnNpb25TZXJ2ZXIu
c2VuZFJlcXVlc3QoeyBjb21tYW5kOiAic3RvcEF1ZGl0Q2F0ZWdvcnlSdW4iLCByZXN1bHRJZDog
dGhpcy5faWQgfSk7CkBAIC00MDYsNiArNDQ3LDkgQEAgQXVkaXRSZXN1bHRJbXBsLnByb3RvdHlw
ZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIEF1
ZGl0UmVzdWx0Tm9kZShjb250ZW50cykKIHsKICAgICB0aGlzLmNvbnRlbnRzID0gY29udGVudHM7
CkBAIC00MTYsMTIgKzQ2MCwxNSBAQCBmdW5jdGlvbiBBdWRpdFJlc3VsdE5vZGUoY29udGVudHMp
CiBBdWRpdFJlc3VsdE5vZGUucHJvdG90eXBlID0gewogICAgIGFkZENoaWxkOiBmdW5jdGlvbigp
CiAgICAgewotICAgICAgICB2YXIgbm9kZSA9IEF1ZGl0UmVzdWx0SW1wbC5wcm90b3R5cGUuY3Jl
YXRlUmVzdWx0LmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7CisgICAgICAgIHZhciBub2RlID0gbmV3
IEF1ZGl0UmVzdWx0Tm9kZShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTsK
ICAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKG5vZGUpOwogICAgICAgICByZXR1cm4gbm9kZTsK
ICAgICB9CiB9OwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBJbnNwZWN0
ZWRXaW5kb3coKQogewogICAgIGZ1bmN0aW9uIGRpc3BhdGNoUmVzb3VyY2VFdmVudChtZXNzYWdl
KQpAQCAtNDY4LDYgKzUxNSw5IEBAIEluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUgPSB7CiAgICAg
fQogfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBSZXNvdXJjZUltcGwo
cmVzb3VyY2VEYXRhKQogewogICAgIHRoaXMuX3VybCA9IHJlc291cmNlRGF0YS51cmwKQEAgLTQ5
OSwxMyArNTQ5LDE5IEBAIFJlc291cmNlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAg
ICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogInNldFJlc291
cmNlQ29udGVudCIsIHVybDogdGhpcy5fdXJsLCBjb250ZW50OiBjb250ZW50LCBjb21taXQ6IGNv
bW1pdCB9LCBjYWxsYmFjayk7CiAgICAgfQotfTsKK30KIAorLyoqCisgKiBAY29uc3RydWN0b3IK
KyAqLwogZnVuY3Rpb24gVGltZWxpbmVJbXBsKCkKIHsKICAgICB0aGlzLm9uRXZlbnRSZWNvcmRl
ZCA9IG5ldyBFdmVudFNpbmsoInRpbWVsaW5lLWV2ZW50LXJlY29yZGVkIik7CiB9CiAKKy8qKgor
ICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIEV4dGVuc2lvblNlcnZlckNsaWVudCgpCiB7
CiAgICAgdGhpcy5fY2FsbGJhY2tzID0ge307CkBAIC01NzYsNyArNjMyLDEwIEBAIEV4dGVuc2lv
blNlcnZlckNsaWVudC5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1mdW5jdGlvbiBiaW5kKGZ1
bmMsIHRoaXNPYmplY3QpCisvKioKKyAqIEBwYXJhbSB7Li4uKn0gdmFyYXJnCisgKi8KK2Z1bmN0
aW9uIGJpbmQoZnVuYywgdGhpc09iamVjdCwgdmFyYXJnKQogewogICAgIHZhciBhcmdzID0gQXJy
YXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKTsKICAgICByZXR1cm4gZnVuY3Rp
b24oKSB7IHJldHVybiBmdW5jLmFwcGx5KHRoaXNPYmplY3QsIGFyZ3MuY29uY2F0KEFycmF5LnBy
b3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMCkpKTsgfTsKQEAgLTYzOCw5ICs2OTcsOSBA
QCB2YXIgVGltZWxpbmUgPSBkZWNsYXJlSW50ZXJmYWNlQ2xhc3MoVGltZWxpbmVJbXBsKTsKIAog
dmFyIGV4dGVuc2lvblNlcnZlciA9IG5ldyBFeHRlbnNpb25TZXJ2ZXJDbGllbnQoKTsKIAotd2Vi
SW5zcGVjdG9yID0gbmV3IEluc3BlY3RvckV4dGVuc2lvbkFQSSgpOwotZXhwZXJpbWVudGFsID0g
d2luZG93LmV4cGVyaW1lbnRhbCB8fCB7fTsKLWV4cGVyaW1lbnRhbC53ZWJJbnNwZWN0b3IgPSB3
ZWJJbnNwZWN0b3I7Cit3aW5kb3cud2ViSW5zcGVjdG9yID0gbmV3IEluc3BlY3RvckV4dGVuc2lv
bkFQSSgpOword2luZG93LmV4cGVyaW1lbnRhbCA9IHdpbmRvdy5leHBlcmltZW50YWwgfHwge307
Cit3aW5kb3cuZXhwZXJpbWVudGFsLndlYkluc3BlY3RvciA9IHdpbmRvdy53ZWJJbnNwZWN0b3I7
CiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25BdWRpdENhdGVnb3J5LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FeHRlbnNpb25BdWRpdENhdGVnb3J5LmpzCmluZGV4IDVkMTU1ZDdiNzMyYzY2M2YxMzFh
NzlkZTI5MTEwNDY0MjczYmFlYzIuLmFmMTJhN2FkYTZjYjkwYTRkZTdmOWE4ODZlY2I1YmRiNDk4
NjI2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uQXVkaXRDYXRlZ29yeS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvbkF1ZGl0Q2F0ZWdvcnkuanMKQEAgLTI4LDYgKzI4LDkgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9y
LkV4dGVuc2lvbkF1ZGl0Q2F0ZWdvcnkgPSBmdW5jdGlvbihpZCwgZGlzcGxheU5hbWUsIHJ1bGVD
b3VudCkKIHsKICAgICB0aGlzLl9pZCA9IGlkOwpAQCAtNTgsNiArNjEsOSBAQCBXZWJJbnNwZWN0
b3IuRXh0ZW5zaW9uQXVkaXRDYXRlZ29yeS5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQXVkaXRDYXRlZ29y
eVJlc3VsdHMgPSBmdW5jdGlvbihjYXRlZ29yeSwgY2FsbGJhY2spCiB7CiAgICAgdGhpcy5fY2F0
ZWdvcnkgPSBjYXRlZ29yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCmluZGV4IGEyYzZhM2E4NzAzNzBjZmE1ZjJiYjcwNWM3
ZGYyNTcxM2M0YWEzZjMuLmRiZjAwMzVkYTBlOGIzMjE5ZTUxYmU0ZDUzNTIwNmFmM2VmM2Q2NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9u
UGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25QYW5lbC5qcwpAQCAtMjgsNiArMjgsMTMgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUGFuZWx9CisgKiBA
cGFyYW0ge3N0cmluZ30gaWQKKyAqIEBwYXJhbSB7c3RyaW5nfSBsYWJlbAorICogQHBhcmFtIHtz
dHJpbmd9IGljb25VUkwKKyAqLwogV2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsID0gZnVuY3Rp
b24oaWQsIGxhYmVsLCBpY29uVVJMKQogewogICAgIHRoaXMuX3Rvb2xiYXJJdGVtTGFiZWwgPSBs
YWJlbDsKQEAgLTgzLDYgKzkwLDEyIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25QYW5lbC5wcm90
b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5FeHRlbnNpb25QYW5lbC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLlBhbmVsLnByb3RvdHlwZTsKIAorLyoqCisgKiBAY29uc3RydWN0
b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmV9CisgKiBAcGFyYW0ge3N0
cmluZ30gdGl0bGUKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICovCiBXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2lkZWJhclBhbmUgPSBmdW5jdGlvbih0aXRsZSwgaWQpCiB7CiAgICAgV2ViSW5zcGVj
dG9yLlNpZGViYXJQYW5lLmNhbGwodGhpcywgdGl0bGUpOwpAQCAtOTcsNyArMTEwLDcgQEAgV2Vi
SW5zcGVjdG9yLkV4dGVuc2lvblNpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIHNldEV4
cHJlc3Npb246IGZ1bmN0aW9uKGV4cHJlc3Npb24sIHRpdGxlKQogICAgIHsKLSAgICAgICAgUnVu
dGltZUFnZW50LmV2YWx1YXRlKGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCB0cnVlLCB0
aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0bGUpKTsKKyAgICAgICAgUnVudGltZUFnZW50
LmV2YWx1YXRlKGV4cHJlc3Npb24sICJleHRlbnNpb24td2F0Y2giLCB0cnVlLCB1bmRlZmluZWQs
IHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0aGlzLl9vbkV2YWx1YXRlLmJpbmQodGhpcywgdGl0bGUp
KTsKICAgICB9LAogCiAgICAgc2V0UGFnZTogZnVuY3Rpb24odXJsKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25SZWdpc3RyeVN0dWIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblJlZ2lzdHJ5U3R1
Yi5qcwppbmRleCBhOWM5NmVmODQ3MTE0MWJiNmVmZjM2YTk1ODAxNjMwOWFlZDg4N2RmLi4yNTgw
ODgwMjRjM2VlY2I4NWE4MmQyMjg1Y2VmYjY4YjBlYzg3OTU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblJlZ2lzdHJ5U3R1Yi5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblJlZ2lzdHJ5U3R1
Yi5qcwpAQCAtMzAsNiArMzAsOSBAQAogCiBpZiAoIXdpbmRvdy5JbnNwZWN0b3JFeHRlbnNpb25S
ZWdpc3RyeSkgewogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuSW5z
cGVjdG9yRXh0ZW5zaW9uUmVnaXN0cnlTdHViID0gZnVuY3Rpb24oKQogewogfQpAQCAtMzgsOCAr
NDEsOCBAQCBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRXh0ZW5zaW9uUmVnaXN0cnlTdHViLnByb3Rv
dHlwZSA9IHsKICAgICBnZXRFeHRlbnNpb25zQXN5bmM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
fQotfTsKK30KIAotSW5zcGVjdG9yRXh0ZW5zaW9uUmVnaXN0cnkgPSBuZXcgV2ViSW5zcGVjdG9y
Lkluc3BlY3RvckV4dGVuc2lvblJlZ2lzdHJ5U3R1YigpOwordmFyIEluc3BlY3RvckV4dGVuc2lv
blJlZ2lzdHJ5ID0gbmV3IFdlYkluc3BlY3Rvci5JbnNwZWN0b3JFeHRlbnNpb25SZWdpc3RyeVN0
dWIoKTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBlOWMyN2E4NDhmYjBhN2UxYzA5NjZhZGU5YmUwNGM1
MTllNTM1MDJiLi4wZDM5OGRhMThjNzk1Y2U2OWEwY2M5MDkyY2IzYTVmNWFhNTU2OTYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZl
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcwpAQCAtMjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyID0gZnVuY3Rp
b24oKQogewogICAgIHRoaXMuX2NsaWVudE9iamVjdHMgPSB7fTsKQEAgLTEyMSw3ICsxMjQsMTAg
QEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuX3Bvc3ROb3RpZmljYXRpb24oInJlc291cmNlLWNvbnRlbnQtY29tbWl0dGVkIiwgdGhpcy5f
bWFrZVJlc291cmNlKHJlc291cmNlKSwgY29udGVudCk7CiAgICAgfSwKIAotICAgIF9wb3N0Tm90
aWZpY2F0aW9uOiBmdW5jdGlvbih0eXBlLCBkZXRhaWxzKQorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7Li4uKn0gdmFyYXJnCisgICAgICovCisgICAgX3Bvc3ROb3RpZmljYXRpb246IGZ1bmN0aW9u
KHR5cGUsIHZhcmFyZykKICAgICB7CiAgICAgICAgIHZhciBzdWJzY3JpYmVycyA9IHRoaXMuX3N1
YnNjcmliZXJzW3R5cGVdOwogICAgICAgICBpZiAoIXN1YnNjcmliZXJzKQpAQCAtMTY5LDEwICsx
NzUsMTAgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBleHRlbnNpb25IZWFkZXJzID0ge307CiAgICAgICAgICAgICB0aGlzLl9leHRyYUhl
YWRlcnNbaWRdID0gZXh0ZW5zaW9uSGVhZGVyczsKICAgICAgICAgfQotICAgICAgICBmb3IgKG5h
bWUgaW4gbWVzc2FnZS5oZWFkZXJzKQorICAgICAgICBmb3IgKHZhciBuYW1lIGluIG1lc3NhZ2Uu
aGVhZGVycykKICAgICAgICAgICAgIGV4dGVuc2lvbkhlYWRlcnNbbmFtZV0gPSBtZXNzYWdlLmhl
YWRlcnNbbmFtZV07Ci0gICAgICAgIHZhciBhbGxIZWFkZXJzID0ge307Ci0gICAgICAgIGZvciAo
ZXh0ZW5zaW9uIGluIHRoaXMuX2V4dHJhSGVhZGVycykgeworICAgICAgICB2YXIgYWxsSGVhZGVy
cyA9IC8qKiBAdHlwZSBOZXR3b3JrQWdlbnQuSGVhZGVycyAqLyB7fTsKKyAgICAgICAgZm9yICh2
YXIgZXh0ZW5zaW9uIGluIHRoaXMuX2V4dHJhSGVhZGVycykgewogICAgICAgICAgICAgdmFyIGhl
YWRlcnMgPSB0aGlzLl9leHRyYUhlYWRlcnNbZXh0ZW5zaW9uXTsKICAgICAgICAgICAgIGZvciAo
bmFtZSBpbiBoZWFkZXJzKSB7CiAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBoZWFkZXJzW25h
bWVdID09PSAic3RyaW5nIikKQEAgLTMwMSw3ICszMDcsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5z
aW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2FsbGJh
Y2sobWVzc2FnZS5yZXF1ZXN0SWQsIHBvcnQsIHJlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAg
dmFyIGV2YWxFeHByZXNzaW9uID0gIkpTT04uc3RyaW5naWZ5KGV2YWwodW5lc2NhcGUoJyIgKyBl
c2NhcGUobWVzc2FnZS5leHByZXNzaW9uKSArICInKSkpOyI7Ci0gICAgICAgIFJ1bnRpbWVBZ2Vu
dC5ldmFsdWF0ZShldmFsRXhwcmVzc2lvbiwgIiIsIHRydWUsIGNhbGxiYWNrLmJpbmQodGhpcykp
OworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXZhbEV4cHJlc3Npb24sICIiLCB0cnVl
LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjYWxsYmFjay5iaW5kKHRoaXMpKTsK
ICAgICB9LAogCiAgICAgX29uR2V0Q29uc29sZU1lc3NhZ2VzOiBmdW5jdGlvbigpCkBAIC01NDUs
NiArNTUxLDkgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24oInRpbWVsaW5lLWV2ZW50LXJlY29yZGVkIiwg
ZXZlbnQuZGF0YSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPEV4
dGVuc2lvbkRlc2NyaXB0b3I+fSBleHRlbnNpb25zCisgICAgICovCiAgICAgX2FkZEV4dGVuc2lv
bnM6IGZ1bmN0aW9uKGV4dGVuc2lvbnMpCiAgICAgewogICAgICAgICAvLyBTZWUgRXh0ZW5zaW9u
QVBJLmpzIGFuZCBFeHRlbnNpb25Db21tb24uanMgZm9yIGRldGFpbHMuCkBAIC01OTAsNyArNTk5
LDcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgX3Jl
Z2lzdGVyRXh0ZW5zaW9uOiBmdW5jdGlvbihvcmlnaW4sIHBvcnQpCiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuX3JlZ2lzdGVyZWRFeHRlbnNpb25zLmhhc093blByb3BlcnR5KG9yaWdpbikpIHsK
LSAgICAgICAgICAgIGlmIChvcmlnaW4gIT09IGxvY2F0aW9uLm9yaWdpbikgLy8gSnVzdCBpZ25v
cmUgaW5zcGVjdG9yIGZyYW1lcy4KKyAgICAgICAgICAgIGlmIChvcmlnaW4gIT09IHdpbmRvdy5s
b2NhdGlvbi5vcmlnaW4pIC8vIEp1c3QgaWdub3JlIGluc3BlY3RvciBmcmFtZXMuCiAgICAgICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiSWdub3JpbmcgdW5hdXRob3JpemVkIGNsaWVudCByZXF1
ZXN0IGZyb20gIiArIG9yaWdpbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTY1OCwyMyArNjY3LDE0IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
ID0gewogICAgIH0KIH0KIAotV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5fc3RhdHVzZXMg
PQotewotICAgIE9LOiAiIiwKLSAgICBFX0VYSVNUUzogIk9iamVjdCBhbHJlYWR5IGV4aXN0czog
JXMiLAotICAgIEVfQkFEQVJHOiAiSW52YWxpZCBhcmd1bWVudCAlczogJXMiLAotICAgIEVfQkFE
QVJHVFlQRTogIkludmFsaWQgdHlwZSBmb3IgYXJndW1lbnQgJXM6IGdvdCAlcywgZXhwZWN0ZWQg
JXMiLAotICAgIEVfTk9URk9VTkQ6ICJPYmplY3Qgbm90IGZvdW5kOiAlcyIsCi0gICAgRV9OT1RT
VVBQT1JURUQ6ICJPYmplY3QgZG9lcyBub3Qgc3VwcG9ydCByZXF1ZXN0ZWQgb3BlcmF0aW9uOiAl
cyIsCi0gICAgRV9GQUlMRUQ6ICJPcGVyYXRpb24gZmFpbGVkOiAlcyIKLX0KLQorLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqLwogV2ViSW5zcGVjdG9yLkV4dGVuc2lvblN0YXR1cyA9IGZ1bmN0aW9u
KCkKIHsKLSAgICBmdW5jdGlvbiBtYWtlU3RhdHVzKGNvZGUpCisgICAgZnVuY3Rpb24gbWFrZVN0
YXR1cyhjb2RlLCBkZXNjcmlwdGlvbikKICAgICB7Ci0gICAgICAgIHZhciBkZXNjcmlwdGlvbiA9
IFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIuX3N0YXR1c2VzW2NvZGVdIHx8IGNvZGU7Ci0g
ICAgICAgIHZhciBkZXRhaWxzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz
LCAxKTsKKyAgICAgICAgdmFyIGRldGFpbHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChh
cmd1bWVudHMsIDIpOwogICAgICAgICB2YXIgc3RhdHVzID0geyBjb2RlOiBjb2RlLCBkZXNjcmlw
dGlvbjogZGVzY3JpcHRpb24sIGRldGFpbHM6IGRldGFpbHMgfTsKICAgICAgICAgaWYgKGNvZGUg
IT09ICJPSyIpIHsKICAgICAgICAgICAgIHN0YXR1cy5pc0Vycm9yID0gdHJ1ZTsKQEAgLTY4Miw4
ICs2ODIsMTQgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblN0YXR1cyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KLSAgICBmb3IgKHN0YXR1cyBp
biBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLl9zdGF0dXNlcykKLSAgICAgICAgdGhpc1tz
dGF0dXNdID0gbWFrZVN0YXR1cy5iaW5kKG51bGwsIHN0YXR1cyk7CisKKyAgICB0aGlzLk9LID0g
bWFrZVN0YXR1cy5iaW5kKG51bGwsICJPSyIsICJPSyIpOworICAgIHRoaXMuRV9FWElTVFMgPSBt
YWtlU3RhdHVzLmJpbmQobnVsbCwgIkVfRVhJU1RTIiwgIk9iamVjdCBhbHJlYWR5IGV4aXN0czog
JXMiKTsKKyAgICB0aGlzLkVfQkFEQVJHID0gbWFrZVN0YXR1cy5iaW5kKG51bGwsICJFX0JBREFS
RyIsICJJbnZhbGlkIGFyZ3VtZW50ICVzOiAlcyIpOworICAgIHRoaXMuRV9CQURBUkdUWVBFID0g
bWFrZVN0YXR1cy5iaW5kKG51bGwsICJFX0JBREFSR1RZUEUiLCAiSW52YWxpZCB0eXBlIGZvciBh
cmd1bWVudCAlczogZ290ICVzLCBleHBlY3RlZCAlcyIpOworICAgIHRoaXMuRV9OT1RGT1VORCA9
IG1ha2VTdGF0dXMuYmluZChudWxsLCAiRV9OT1RGT1VORCIsICJPYmplY3Qgbm90IGZvdW5kOiAl
cyIpOworICAgIHRoaXMuRV9OT1RTVVBQT1JURUQgPSBtYWtlU3RhdHVzLmJpbmQobnVsbCwgIkVf
Tk9UU1VQUE9SVEVEIiwgIk9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IHJlcXVlc3RlZCBvcGVyYXRp
b246ICVzIik7CisgICAgdGhpcy5FX0ZBSUxFRCA9IG1ha2VTdGF0dXMuYmluZChudWxsLCAiRV9G
QUlMRUQiLCAiT3BlcmF0aW9uIGZhaWxlZDogJXMiKTsKIH0KIAogV2ViSW5zcGVjdG9yLmFkZEV4
dGVuc2lvbnMgPSBmdW5jdGlvbihleHRlbnNpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzCmluZGV4IGMyOTdkNDA5YjRlZjg3ODQ3YTQ5
MDY3YTU3ZTE4M2Y0OTNmODhmZjEuLjc0MzhhNmU1MTMwMzVkMDZlYjllMDdhYmU1YzIwM2Y3Mjli
ZWYzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya0xvZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtMb2cuanMKQEAgLTM5LDYgKzM5LDkgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cgPSBmdW5j
dGlvbigpCiB9CiAKIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nLnByb3RvdHlwZSA9IHsKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlJlc291cmNlPn0KKyAgICAg
Ki8KICAgICBnZXQgcmVzb3VyY2VzKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNv
dXJjZXM7CkBAIC01Niw5ICs1OSwxMyBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCiAgICAgX29uUmVzb3VyY2VTdGFydGVkOiBm
dW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlcy5wdXNoKGV2ZW50
LmRhdGEpOworICAgICAgICB2YXIgcmVzb3VyY2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5S
ZXNvdXJjZX0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2VzLnB1c2gocmVz
b3VyY2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9PYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L09iamVjdC5qcwppbmRleCA2MjdkY2NkZGYyYTBlZGM2NmZjNDY4OTViODczMzkyMWEyMjVhYWQ2
Li43NGU0MTliNTk1MDM1ZDNlMjlmZWJmNmRmNDI3OTZlYzY4YzkyNjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcwpAQCAtODQsMTEgKzg0LDEyIEBA
IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBldmVudFR5cGUKICAgICAgKiBAcGFyYW0geyo9fSBldmVudERhdGEKKyAgICAg
KiBAcmV0dXJuIHtib29sZWFufQogICAgICAqLwogICAgIGRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
czogZnVuY3Rpb24oZXZlbnRUeXBlLCBldmVudERhdGEpCiAgICAgewogICAgICAgICBpZiAoIXRo
aXMuX2xpc3RlbmVycyB8fCAhdGhpcy5fbGlzdGVuZXJzW2V2ZW50VHlwZV0pCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgdmFyIGV2ZW50
ID0gbmV3IFdlYkluc3BlY3Rvci5FdmVudCh0aGlzLCBldmVudFR5cGUsIGV2ZW50RGF0YSk7CiAg
ICAgICAgIHZhciBsaXN0ZW5lcnMgPSB0aGlzLl9saXN0ZW5lcnNbZXZlbnRUeXBlXS5zbGljZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGVzdENv
bnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250
cm9sbGVyLmpzCmluZGV4IDMwMTk5NGMzOWZjNWI2MmJmNDI3ZTBjNGNjMjIxNGQyZDRjNDY0OTEu
LmFlOTUzMWQ5NjVlYWE5ZWM4YTk1NjU2ZDE2YWM4MmZiYzk4YWUxMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcwpAQCAt
MjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3Rv
cgorICovCiBXZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xsZXIgPSBmdW5jdGlvbigpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKaW5kZXggNmU4
N2MyNTM4OTU1MWI0ZmFhYjk2YzU0Y2Q4ZjM1MjFiYzk3MDBhYy4uOGMwZTM2N2E2YmIwMDJiMzZj
MDFjMDZmODA5MDJhYjI0OWJhOTI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvZXh0ZXJucy5qcwpAQCAtMjksOSArMjksMTIgQEAKICAqLwogCiB2YXIgY29uc29s
ZSA9IHt9Ci1jb25zb2xlLndhcm4gPSBmdW5jdGlvbihtZXNzYWdlKSB7fQotLyoqIEBwYXJhbSB7
c3RyaW5nPX0gbWVzc2FnZSAqLwotY29uc29sZS5hc3NlcnQgPSBmdW5jdGlvbihleHByLCBtZXNz
YWdlKSB7fQorLyoqIEBwYXJhbSB7Li4uKn0gdmFyYXJnICovCitjb25zb2xlLndhcm4gPSBmdW5j
dGlvbih2YXJhcmcpIHt9CisvKiogQHBhcmFtIHsuLi4qfSB2YXJhcmcgKi8KK2NvbnNvbGUuYXNz
ZXJ0ID0gZnVuY3Rpb24odmFyYXJnKSB7fQorLyoqIEBwYXJhbSB7Li4uKn0gdmFyYXJnICovCitj
b25zb2xlLmVycm9yID0gZnVuY3Rpb24odmFyYXJnKSB7fQogCiB2YXIgV2ViSW5zcGVjdG9yID0g
e30KIApAQCAtMjI3LDMgKzIzMCw0MCBAQCBXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Qg
PSB7fQogV2ViSW5zcGVjdG9yLkV2ZW50cyA9IHsKICAgICBJbnNwZWN0b3JDbG9zaW5nOiAiSW5z
cGVjdG9yQ2xvc2luZyIKIH0KKworLyoqIEV4dGVuc2lvbnMgQVBJICovCisKKy8qKiBAY29uc3Ry
dWN0b3IgKi8KK2Z1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnkoKSB7fQorLyoqIEBjb25zdHJ1Y3RvciAq
LworZnVuY3Rpb24gQXVkaXRSZXN1bHQoKSB7fQorLyoqIEBjb25zdHJ1Y3RvciAqLworZnVuY3Rp
b24gRXZlbnRTaW5rKCkge30KKy8qKiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIEV4dGVuc2lv
blNpZGViYXJQYW5lKCkge30KKy8qKiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIFBhbmVsKCkg
e30KKy8qKiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIFBhbmVsV2l0aFNpZGViYXIoKSB7fQor
LyoqIEBjb25zdHJ1Y3RvciAqLworZnVuY3Rpb24gUmVxdWVzdCgpIHt9CisvKiogQGNvbnN0cnVj
dG9yICovCitmdW5jdGlvbiBSZXNvdXJjZSgpIHt9CisvKiogQGNvbnN0cnVjdG9yICovCitmdW5j
dGlvbiBUaW1lbGluZSgpIHt9CisKKy8qKiBAdHlwZSB7c3RyaW5nfSAqLworTG9jYXRpb24ucHJv
dG90eXBlLm9yaWdpbiA9ICIiOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitmdW5jdGlv
biBFeHRlbnNpb25EZXNjcmlwdG9yKCkgeworICAgIHRoaXMuc3RhcnRQYWdlID0gIiI7CisgICAg
dGhpcy5uYW1lID0gIiI7Cit9CisKKy8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5IYW5kbGVy
UmVnaXN0cnl9CisgKi8KK1dlYkluc3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRpb25SZWdpc3RyeSA9
IG51bGw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110509</attachid>
            <date>2011-10-11 06:28:06 -0700</date>
            <delta_ts>2011-10-11 06:52:58 -0700</delta_ts>
            <desc>[Patch] Same with settings screen and test controller</desc>
            <filename>bug-69833-20111011172804.patch</filename>
            <type>text/plain</type>
            <size>26833</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkNmRkMmQxODNlYmJjYjY1
MDNmMTRiYTY5NDNjM2JkZTQ0NzY0ZmMxLi45YmY2ODZiMTU4M2UzZGFkNDJlNmFjMTViNTBjY2E2
YzMzMmVjMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMTAtMTEgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBnb29nbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IG1ha2UgRXh0ZW5zaW9ucyBjb21wb25lbnQgY29tcGlsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQu
c2g6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CaW5hcnlTZWFyY2guanM6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanM6CisgICAgICAgIChpbmplY3RlZEV4dGVu
c2lvbkFQSS5OZXR3b3JrLnByb3RvdHlwZS5hZGRSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChp
bmplY3RlZEV4dGVuc2lvbkFQSS5BdWRpdFJlc3VsdEltcGwucHJvdG90eXBlLmFkZFJlc3VsdCk6
CisgICAgICAgIChpbmplY3RlZEV4dGVuc2lvbkFQSS5BdWRpdFJlc3VsdE5vZGUucHJvdG90eXBl
LmFkZENoaWxkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkF1ZGl0
Q2F0ZWdvcnkuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZS5wcm90b3R5
cGUuc2V0RXhwcmVzc2lvbik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25SZWdpc3RyeVN0dWIuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25TZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3Rv
dHlwZS5fcG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5fb25BZGRSZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25FdmFsdWF0ZU9uSW5zcGVjdGVkUGFn
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fcmVn
aXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblN0YXR1cyk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cucHJvdG90eXBlLl9vblJlc291cmNlU3RhcnRlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9PYmplY3QuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qczoKKyAgICAgICAgKGNvbnNvbGUud2Fy
bik6CisgICAgICAgIChjb25zb2xlLmFzc2VydCk6CisgICAgICAgIChjb25zb2xlLmVycm9yKToK
KyAgICAgICAgKCk6CisgICAgICAgIChBdWRpdFJlc3VsdCk6CisgICAgICAgIChFdmVudFNpbmsp
OgorICAgICAgICAoRXh0ZW5zaW9uU2lkZWJhclBhbmUpOgorICAgICAgICAoUGFuZWwpOgorICAg
ICAgICAoUGFuZWxXaXRoU2lkZWJhcik6CisgICAgICAgIChSZXF1ZXN0KToKKyAgICAgICAgKFJl
c291cmNlKToKKyAgICAgICAgKFRpbWVsaW5lKToKKwogMjAxMS0xMC0xMCAgQW5kcmVhcyBLbGlu
ZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU2hyaW5rIFdlYkNvcmU6Ok5vZGUgb24g
NjQtYml0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJv
bnQtZW5kLnNoIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNo
CmluZGV4IGY5MTg2YzVjYzVkYzZiZDIzOGI4M2E5YmNiYzQyOGI3MWFlN2I4ZTguLjNkODgxZjQ4
MDkwYmJiYWUyYWY5N2JiMWEyZDg2NWRmMGE2M2Q1N2UgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5zaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKQEAgLTE2NywxMiArMTY3LDIyIEBAIGphdmEg
LWphciB+L2Nsb3N1cmUvY29tcGlsZXIuamFyIC0tY29tcGlsYXRpb25fbGV2ZWwgU0lNUExFX09Q
VElNSVpBVElPTlMgLS13YXJuCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9BdWRpdExhdW5jaGVyVmlldy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJlc3VsdFZpZXcuanMgXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVkaXRSdWxlcy5qcyBcCi0g
ICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdHNQYW5l
bC5qcworICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRzUGFuZWwuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxlX2V4dGVuc2lvbnM6NTpqc21vZHVs
ZV9jb21wb25lbnRzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvbkFQSS5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BdWRpdENhdGVnb3J5LmpzIFwKKyAgICAgICAgLS1q
cyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzIFwK
KyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lv
blJlZ2lzdHJ5U3R1Yi5qcyBcCisgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgXAorICAgIC0tbW9kdWxlIGpzbW9kdWxlX2lu
c3BlY3RvcjoxOmpzbW9kdWxlX2NvbXBvbmVudHMsanNtb2R1bGVfZXh0ZW5zaW9ucyBcCisgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVl
bi5qcyBcCisgICAgLS1tb2R1bGUganNtb2R1bGVfdGVzdHM6MTpqc21vZHVsZV9jb21wb25lbnRz
IFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rlc3RD
b250cm9sbGVyLmpzCisKICMgICAgIC0tbW9kdWxlIGpzbW9kdWxlX3Rva2VuaXplcnM6Mzpqc21v
ZHVsZV9jb21wb25lbnRzIFwKICMgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VDU1NUb2tlbml6ZXIuanMgXAogIyAgICAgICAgLS1qcyBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUhUTUxUb2tlbml6ZXIuanMgXAotIyAg
ICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUphdmFT
Y3JpcHRUb2tlbml6ZXIuanMgXAotCisjICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU291cmNlSmF2YVNjcmlwdFRva2VuaXplci5qcwogCiAjIFRvIGJlIGNv
bXBpbGVkLi4uCiAjIApAQCAtMTg5LDE2ICsxOTksOCBAQCBqYXZhIC1qYXIgfi9jbG9zdXJlL2Nv
bXBpbGVyLmphciAtLWNvbXBpbGF0aW9uX2xldmVsIFNJTVBMRV9PUFRJTUlaQVRJT05TIC0td2Fy
bgogIyBQcm9maWxlVmlldwogIyBUb3BEb3duUHJvZmlsZURhdGFHcmlkVHJlZQogIwotIyBbRXh0
ZW5zaW9uc10KLSMgRXh0ZW5zaW9uQVBJCi0jIEV4dGVuc2lvbkF1ZGl0Q2F0ZWdvcnkKLSMgRXh0
ZW5zaW9uUGFuZWwKLSMgRXh0ZW5zaW9uUmVnaXN0cnlTdHViCi0jIEV4dGVuc2lvblNlcnZlcgot
IwogIyBbTWlzY10KICMgaW5zcGVjdG9yCiAjIFNldHRpbmdzU2NyZWVuCi0jIFRlc3RDb250cm9s
bGVyCiAjIEphdmFTY3JpcHRGb3JtYXR0ZXIKICMgU2NyaXB0Rm9ybWF0dGVyV29ya2VyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JpbmFyeVNlYXJjaC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQmluYXJ5U2VhcmNoLmpzCmlu
ZGV4IDE5ZTJhOTEwM2M1MjU2YTdhYmExYjVkZmJkNzZhYmFiNjQwMmVjZGEuLmU2Yzk5YzI3MmI3
NDk3OTY5M2VlMjZjYTQ0MGQyMjkyNDZhYWM0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQmluYXJ5U2VhcmNoLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQmluYXJ5U2VhcmNoLmpzCkBAIC0yOSw2ICsyOSwxMSBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBwYXJhbSB7Kn0gb2JqZWN0CisgKiBAcGFy
YW0ge0FycmF5LjwqPn0gYXJyYXkKKyAqIEBwYXJhbSB7ZnVuY3Rpb24oKiwgKil9IGNvbXBhcmF0
b3IKKyAqLwogZnVuY3Rpb24gYmluYXJ5U2VhcmNoKG9iamVjdCwgYXJyYXksIGNvbXBhcmF0b3Ip
CiB7CiAgICAgdmFyIGZpcnN0ID0gMDsKQEAgLTU1LDYgKzYwLDExIEBAIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShBcnJheS5wcm90b3R5cGUsICJiaW5hcnlJbmRleE9mIiwgeyB2YWx1ZTogZnVuY3Rp
b24odmFsdWUsCiAgICAgcmV0dXJuIHJlc3VsdCA+PSAwID8gcmVzdWx0IDogLTE7CiB9fSk7CiAK
Ky8qKgorICogQHBhcmFtIHsqfSBhbk9iamVjdAorICogQHBhcmFtIHtBcnJheS48Kj59IGFMaXN0
CisgKiBAcGFyYW0ge2Z1bmN0aW9uKCosICopfSBhRnVuY3Rpb24KKyAqLwogZnVuY3Rpb24gaW5z
ZXJ0aW9uSW5kZXhGb3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGFuT2JqZWN0LCBhTGlz
dCwgYUZ1bmN0aW9uKQogewogICAgIHZhciBpbmRleCA9IGJpbmFyeVNlYXJjaChhbk9iamVjdCwg
YUxpc3QsIGFGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1vZGVsLmpzCmluZGV4IGFiODNmZGU0ODBmMDFjMTRlNzhlYmEzY2Q5ZjE5
ZmRiZGJlNWNlNjAuLjFhNjhmNGJhZjJjYWEzMDBhYzcxYjQxOWNiZDU4OWI0OThlODI3NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVs
LmpzCkBAIC02NCw2ICs2NCw5IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlfSBtc2cKKyAgICAgKi8KICAgICBhZGRNZXNzYWdlOiBmdW5j
dGlvbihtc2cpCiAgICAgewogICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobXNnKTsKQEAgLTcz
LDYgKzc2LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgIHRoaXMuX2ludGVycnVwdFJlcGVhdENvdW50ID0gZmFsc2U7CiAgICAgfSwKIAorICAgIC8q
KgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlfSBtc2cKKyAgICAg
Ki8KICAgICBfaW5jcmVtZW50RXJyb3JXYXJuaW5nQ291bnQ6IGZ1bmN0aW9uKG1zZykKICAgICB7
CiAgICAgICAgIHN3aXRjaCAobXNnLmxldmVsKSB7CkBAIC0xNDMsNiArMTQ5LDkgQEAgV2ViSW5z
cGVjdG9yLkNvbnNvbGVNZXNzYWdlID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4ge251bWJl
cn0KKyAgICAgKi8KICAgICBnZXQgdG90YWxSZXBlYXRDb3VudCgpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdGhpcy5fdG90YWxSZXBlYXRDb3VudDsKQEAgLTIyOCw2ICsyMzcsOSBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZURpc3BhdGNoZXIgPSBmdW5jdGlvbihjb25zb2xlKQogfQogCiBXZWJJbnNw
ZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7Q29uc29sZUFnZW50LkNvbnNvbGVNZXNzYWdlfSBwYXlsb2FkCisgICAgICovCiAgICAg
bWVzc2FnZUFkZGVkOiBmdW5jdGlvbihwYXlsb2FkKQogICAgIHsKICAgICAgICAgdmFyIGNvbnNv
bGVNZXNzYWdlID0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLmNyZWF0ZSgKQEAgLTI0NCw2
ICsyNTYsOSBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZURpc3BhdGNoZXIucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9jb25zb2xlLmFkZE1lc3NhZ2UoY29uc29sZU1lc3NhZ2UpOwogICAgIH0s
CiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gY291bnQKKyAgICAgKi8KICAgICBt
ZXNzYWdlUmVwZWF0Q291bnRVcGRhdGVkOiBmdW5jdGlvbihjb3VudCkKICAgICB7CiAgICAgICAg
IHRoaXMuX2NvbnNvbGUuX21lc3NhZ2VSZXBlYXRDb3VudFVwZGF0ZWQoY291bnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwppbmRl
eCAxNjk4YTE5NzU2NWZiYWIyNWUzN2JmMGU1M2Q1NWJiOGM0MDI0ZmYzLi4yNWE2NzE3MjA5ZDA2
ZDdlNDZmOGRmZGM0NDI3ZDQxYzZjM2JmNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAtNjMsNiArNjMsOSBAQCBkZWZp
bmVDb21tb25FeHRlbnNpb25TeW1ib2xzKGFwaVByaXZhdGUpOwogLy8gYnkgRm9vIGNvbnN1dHJj
dG9yIHRvIHJlLWJpbmQgcHVibGljbHkgZXhwb3J0ZWQgbWVtYmVycyB0byBhbiBpbnN0YW5jZQog
Ly8gb2YgRm9vLgogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBFdmVudFNp
bmtJbXBsKHR5cGUsIGN1c3RvbURpc3BhdGNoKQogewogICAgIHRoaXMuX3R5cGUgPSB0eXBlOwpA
QCAtMTExLDYgKzExNCw5IEBAIEV2ZW50U2lua0ltcGwucHJvdG90eXBlID0gewogICAgIH0KIH0K
IAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVuY3Rpb24gSW5zcGVjdG9yRXh0ZW5zaW9u
QVBJKCkKIHsKICAgICB0aGlzLmF1ZGl0cyA9IG5ldyBBdWRpdHMoKTsKQEAgLTEyNCw2ICsxMzAs
OSBAQCBmdW5jdGlvbiBJbnNwZWN0b3JFeHRlbnNpb25BUEkoKQogICAgIHRoaXMub25SZXNldCA9
IG5ldyBFdmVudFNpbmsoInJlc2V0Iik7CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8K
IEluc3BlY3RvckV4dGVuc2lvbkFQSS5wcm90b3R5cGUgPSB7CiAgICAgbG9nOiBmdW5jdGlvbiht
ZXNzYWdlKQogICAgIHsKQEAgLTEzMSw2ICsxNDAsOSBAQCBJbnNwZWN0b3JFeHRlbnNpb25BUEku
cHJvdG90eXBlID0gewogICAgIH0KIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVu
Y3Rpb24gQ29uc29sZSgpCiB7CiAgICAgdGhpcy5vbk1lc3NhZ2VBZGRlZCA9IG5ldyBFdmVudFNp
bmsoImNvbnNvbGUtbWVzc2FnZS1hZGRlZCIpOwpAQCAtMTUxLDggKzE2MywxMSBAQCBDb25zb2xl
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHJldHVybiBhcGlQcml2YXRlLmNvbnNvbGUu
U2V2ZXJpdHk7CiAgICAgfQotfTsKK30KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVu
Y3Rpb24gTmV0d29yaygpCiB7CiAgICAgZnVuY3Rpb24gZGlzcGF0Y2hSZXF1ZXN0RXZlbnQobWVz
c2FnZSkKQEAgLTE4MywxMCArMTk4LDEzIEBAIE5ldHdvcmsucHJvdG90eXBlID0gewogCiAgICAg
YWRkUmVxdWVzdEhlYWRlcnM6IGZ1bmN0aW9uKGhlYWRlcnMpCiAgICAgewotICAgICAgICByZXR1
cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogImFkZFJlcXVlc3RIZWFk
ZXJzIiwgaGVhZGVyczogaGVhZGVycywgZXh0ZW5zaW9uSWQ6IGxvY2F0aW9uLmhvc3RuYW1lIH0p
OworICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDog
ImFkZFJlcXVlc3RIZWFkZXJzIiwgaGVhZGVyczogaGVhZGVycywgZXh0ZW5zaW9uSWQ6IHdpbmRv
dy5sb2NhdGlvbi5ob3N0bmFtZSB9KTsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9y
CisgKi8KIGZ1bmN0aW9uIFJlcXVlc3RJbXBsKGlkKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBA
IC0yMDEsOCArMjE5LDExIEBAIFJlcXVlc3RJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQog
ICAgICAgICBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAiZ2V0UmVxdWVz
dENvbnRlbnQiLCBpZDogdGhpcy5faWQgfSwgY2FsbGJhY2sgJiYgY2FsbGJhY2tXcmFwcGVyKTsK
ICAgICB9Ci19OworfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBQYW5l
bHMoKQogewogICAgIHZhciBwYW5lbHMgPSB7CkBAIC0yNTAsNiArMjcxLDkgQEAgUGFuZWxzLnBy
b3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0
aW9uIFBhbmVsSW1wbChpZCkKIHsKICAgICB0aGlzLl9pZCA9IGlkOwpAQCAtMjU3LDYgKzI4MSwx
MCBAQCBmdW5jdGlvbiBQYW5lbEltcGwoaWQpCiAgICAgdGhpcy5vbkhpZGRlbiA9IG5ldyBFdmVu
dFNpbmsoInBhbmVsLWhpZGRlbi0iICsgaWQpOwogfQogCisvKioKKyAqIEBjb25zdHJ1Y3Rvcgor
ICogQGV4dGVuZHMge1BhbmVsSW1wbH0KKyAqLwogZnVuY3Rpb24gUGFuZWxXaXRoU2lkZWJhcklt
cGwoaWQpCiB7CiAgICAgUGFuZWxJbXBsLmNhbGwodGhpcywgaWQpOwpAQCAtMjgyLDYgKzMxMCwx
MCBAQCBQYW5lbFdpdGhTaWRlYmFySW1wbC5wcm90b3R5cGUgPSB7CiAKIFBhbmVsV2l0aFNpZGVi
YXJJbXBsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBQYW5lbEltcGwucHJvdG90eXBlOwogCisvKioK
KyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1BhbmVsV2l0aFNpZGViYXJ9CisgKi8KIGZ1
bmN0aW9uIEVsZW1lbnRzUGFuZWwoKQogewogICAgIHZhciBpZCA9ICJlbGVtZW50cyI7CkBAIC0y
ODksMTIgKzMyMSwxOSBAQCBmdW5jdGlvbiBFbGVtZW50c1BhbmVsKCkKICAgICB0aGlzLm9uU2Vs
ZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudFNpbmsoInBhbmVsLW9iamVjdFNlbGVjdGVkLSIgKyBp
ZCk7CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7UGFuZWx9CisgKi8K
IGZ1bmN0aW9uIEV4dGVuc2lvblBhbmVsKGlkKQogewogICAgIFBhbmVsLmNhbGwodGhpcywgaWQp
OwogICAgIHRoaXMub25TZWFyY2ggPSBuZXcgRXZlbnRTaW5rKCJwYW5lbC1zZWFyY2gtIiArIGlk
KTsKIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVuY3Rpb24gRXh0ZW5zaW9uU2lk
ZWJhclBhbmVJbXBsKGlkKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBAIC0zMjMsNiArMzYyLDkg
QEAgRXh0ZW5zaW9uU2lkZWJhclBhbmVJbXBsLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8q
KgorICogQGNvbnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIEF1ZGl0cygpCiB7CiB9CkBAIC0zMzYs
NiArMzc4LDkgQEAgQXVkaXRzLnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBsKGlkKQogewogICAgIGZ1
bmN0aW9uIGRpc3BhdGNoQXVkaXRFdmVudChyZXF1ZXN0KQpAQCAtMzUyLDYgKzM5Nyw5IEBAIGZ1
bmN0aW9uIEF1ZGl0Q2F0ZWdvcnlJbXBsKGlkKQogICAgIHRoaXMub25BdWRpdFN0YXJ0ZWQgPSBu
ZXcgRXZlbnRTaW5rKCJhdWRpdC1zdGFydGVkLSIgKyBpZCwgZGlzcGF0Y2hBdWRpdEV2ZW50KTsK
IH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVuY3Rpb24gQXVkaXRSZXN1bHRJbXBs
KGlkKQogewogICAgIHRoaXMuX2lkID0gaWQ7CkBAIC0zNjcsNyArNDE1LDcgQEAgQXVkaXRSZXN1
bHRJbXBsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIC8vIHNob3J0aGFuZCBmb3Igc3Bl
Y2lmeWluZyBkZXRhaWxzIGRpcmVjdGx5IGluIGFkZFJlc3VsdCgpLgogICAgICAgICBpZiAoZGV0
YWlscyAmJiAhKGRldGFpbHMgaW5zdGFuY2VvZiBBdWRpdFJlc3VsdE5vZGUpKQotICAgICAgICAg
ICAgZGV0YWlscyA9IGRldGFpbHMgaW5zdGFuY2VvZiBBcnJheSA/IHRoaXMuY3JlYXRlTm9kZS5h
cHBseSh0aGlzLCBkZXRhaWxzKSA6IHRoaXMuY3JlYXRlTm9kZShkZXRhaWxzKTsKKyAgICAgICAg
ICAgIGRldGFpbHMgPSBuZXcgQXVkaXRSZXN1bHROb2RlKGRldGFpbHMgaW5zdGFuY2VvZiBBcnJh
eSA/IGRldGFpbHMgOiBbZGV0YWlsc10pOwogCiAgICAgICAgIHZhciByZXF1ZXN0ID0gewogICAg
ICAgICAgICAgY29tbWFuZDogImFkZEF1ZGl0UmVzdWx0IiwKQEAgLTM4MCwxMyArNDI4LDYgQEAg
QXVkaXRSZXN1bHRJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXh0ZW5zaW9uU2VydmVyLnNl
bmRSZXF1ZXN0KHJlcXVlc3QpOwogICAgIH0sCiAKLSAgICBjcmVhdGVSZXN1bHQ6IGZ1bmN0aW9u
KCkKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gbmV3IEF1ZGl0UmVzdWx0Tm9kZSgpOwotICAg
ICAgICBub2RlLmNvbnRlbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRz
KTsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfSwKLQogICAgIGRvbmU6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJz
dG9wQXVkaXRDYXRlZ29yeVJ1biIsIHJlc3VsdElkOiB0aGlzLl9pZCB9KTsKQEAgLTQwNiw2ICs0
NDcsOSBAQCBBdWRpdFJlc3VsdEltcGwucHJvdG90eXBlID0gewogICAgIH0KIH0KIAorLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqLwogZnVuY3Rpb24gQXVkaXRSZXN1bHROb2RlKGNvbnRlbnRzKQog
ewogICAgIHRoaXMuY29udGVudHMgPSBjb250ZW50czsKQEAgLTQxNiwxMiArNDYwLDE1IEBAIGZ1
bmN0aW9uIEF1ZGl0UmVzdWx0Tm9kZShjb250ZW50cykKIEF1ZGl0UmVzdWx0Tm9kZS5wcm90b3R5
cGUgPSB7CiAgICAgYWRkQ2hpbGQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBub2Rl
ID0gQXVkaXRSZXN1bHRJbXBsLnByb3RvdHlwZS5jcmVhdGVSZXN1bHQuYXBwbHkobnVsbCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgdmFyIG5vZGUgPSBuZXcgQXVkaXRSZXN1bHROb2RlKEFycmF5LnBy
b3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpOwogICAgICAgICB0aGlzLmNoaWxkcmVuLnB1
c2gobm9kZSk7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KIH07CiAKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKi8KIGZ1bmN0aW9uIEluc3BlY3RlZFdpbmRvdygpCiB7CiAgICAgZnVuY3Rp
b24gZGlzcGF0Y2hSZXNvdXJjZUV2ZW50KG1lc3NhZ2UpCkBAIC00NjgsNiArNTE1LDkgQEAgSW5z
cGVjdGVkV2luZG93LnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVj
dG9yCisgKi8KIGZ1bmN0aW9uIFJlc291cmNlSW1wbChyZXNvdXJjZURhdGEpCiB7CiAgICAgdGhp
cy5fdXJsID0gcmVzb3VyY2VEYXRhLnVybApAQCAtNDk5LDEzICs1NDksMTkgQEAgUmVzb3VyY2VJ
bXBsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2ZXIu
c2VuZFJlcXVlc3QoeyBjb21tYW5kOiAic2V0UmVzb3VyY2VDb250ZW50IiwgdXJsOiB0aGlzLl91
cmwsIGNvbnRlbnQ6IGNvbnRlbnQsIGNvbW1pdDogY29tbWl0IH0sIGNhbGxiYWNrKTsKICAgICB9
Ci19OworfQogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBmdW5jdGlvbiBUaW1lbGluZUlt
cGwoKQogewogICAgIHRoaXMub25FdmVudFJlY29yZGVkID0gbmV3IEV2ZW50U2luaygidGltZWxp
bmUtZXZlbnQtcmVjb3JkZWQiKTsKIH0KIAorLyoqCisgKiBAY29uc3RydWN0b3IKKyAqLwogZnVu
Y3Rpb24gRXh0ZW5zaW9uU2VydmVyQ2xpZW50KCkKIHsKICAgICB0aGlzLl9jYWxsYmFja3MgPSB7
fTsKQEAgLTU3Niw3ICs2MzIsMTAgQEAgRXh0ZW5zaW9uU2VydmVyQ2xpZW50LnByb3RvdHlwZSA9
IHsKICAgICB9CiB9CiAKLWZ1bmN0aW9uIGJpbmQoZnVuYywgdGhpc09iamVjdCkKKy8qKgorICog
QHBhcmFtIHsuLi4qfSB2YXJhcmcKKyAqLworZnVuY3Rpb24gYmluZChmdW5jLCB0aGlzT2JqZWN0
LCB2YXJhcmcpCiB7CiAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChh
cmd1bWVudHMsIDIpOwogICAgIHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGZ1bmMuYXBwbHko
dGhpc09iamVjdCwgYXJncy5jb25jYXQoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l
bnRzLCAwKSkpOyB9OwpAQCAtNjM4LDkgKzY5Nyw5IEBAIHZhciBUaW1lbGluZSA9IGRlY2xhcmVJ
bnRlcmZhY2VDbGFzcyhUaW1lbGluZUltcGwpOwogCiB2YXIgZXh0ZW5zaW9uU2VydmVyID0gbmV3
IEV4dGVuc2lvblNlcnZlckNsaWVudCgpOwogCi13ZWJJbnNwZWN0b3IgPSBuZXcgSW5zcGVjdG9y
RXh0ZW5zaW9uQVBJKCk7Ci1leHBlcmltZW50YWwgPSB3aW5kb3cuZXhwZXJpbWVudGFsIHx8IHt9
OwotZXhwZXJpbWVudGFsLndlYkluc3BlY3RvciA9IHdlYkluc3BlY3RvcjsKK3dpbmRvdy53ZWJJ
bnNwZWN0b3IgPSBuZXcgSW5zcGVjdG9yRXh0ZW5zaW9uQVBJKCk7Cit3aW5kb3cuZXhwZXJpbWVu
dGFsID0gd2luZG93LmV4cGVyaW1lbnRhbCB8fCB7fTsKK3dpbmRvdy5leHBlcmltZW50YWwud2Vi
SW5zcGVjdG9yID0gd2luZG93LndlYkluc3BlY3RvcjsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkF1ZGl0Q2F0ZWdvcnkuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkF1ZGl0Q2F0ZWdv
cnkuanMKaW5kZXggNWQxNTVkN2I3MzJjNjYzZjEzMWE3OWRlMjkxMTA0NjQyNzNiYWVjMi4uYWYx
MmE3YWRhNmNiOTBhNGRlN2Y5YTg4NmVjYjViZGI0OTg2MjY1YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BdWRpdENhdGVnb3J5LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQXVkaXRDYXRl
Z29yeS5qcwpAQCAtMjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uQXVkaXRDYXRlZ29yeSA9
IGZ1bmN0aW9uKGlkLCBkaXNwbGF5TmFtZSwgcnVsZUNvdW50KQogewogICAgIHRoaXMuX2lkID0g
aWQ7CkBAIC01OCw2ICs2MSw5IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25BdWRpdENhdGVnb3J5
LnByb3RvdHlwZSA9IHsKICAgICB9CiB9CiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25BdWRpdENhdGVnb3J5UmVzdWx0cyA9IGZ1bmN0aW9uKGNhdGVn
b3J5LCBjYWxsYmFjaykKIHsKICAgICB0aGlzLl9jYXRlZ29yeSA9IGNhdGVnb3J5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFuZWwuanMK
aW5kZXggYTJjNmEzYTg3MDM3MGNmYTVmMmJiNzA1YzdkZjI1NzEzYzRhYTNmMy4uZGJmMDAzNWRh
MGU4YjMyMTllNTFiZTRkNTM1MjA2YWYzZWYzZDY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25QYW5lbC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblBhbmVsLmpzCkBAIC0yOCw2ICsyOCwx
MyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4
dGVuZHMge1dlYkluc3BlY3Rvci5QYW5lbH0KKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICogQHBh
cmFtIHtzdHJpbmd9IGxhYmVsCisgKiBAcGFyYW0ge3N0cmluZ30gaWNvblVSTAorICovCiBXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uUGFuZWwgPSBmdW5jdGlvbihpZCwgbGFiZWwsIGljb25VUkwpCiB7
CiAgICAgdGhpcy5fdG9vbGJhckl0ZW1MYWJlbCA9IGxhYmVsOwpAQCAtODMsNiArOTAsMTIgQEAg
V2ViSW5zcGVjdG9yLkV4dGVuc2lvblBhbmVsLnByb3RvdHlwZSA9IHsKIAogV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblBhbmVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuUGFuZWwu
cHJvdG90eXBlOwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5TaWRlYmFyUGFuZX0KKyAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQorICogQHBhcmFtIHtz
dHJpbmd9IGlkCisgKi8KIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TaWRlYmFyUGFuZSA9IGZ1bmN0
aW9uKHRpdGxlLCBpZCkKIHsKICAgICBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUuY2FsbCh0aGlz
LCB0aXRsZSk7CkBAIC05Nyw3ICsxMTAsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2lkZWJh
clBhbmUucHJvdG90eXBlID0gewogCiAgICAgc2V0RXhwcmVzc2lvbjogZnVuY3Rpb24oZXhwcmVz
c2lvbiwgdGl0bGUpCiAgICAgewotICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVz
c2lvbiwgImV4dGVuc2lvbi13YXRjaCIsIHRydWUsIHRoaXMuX29uRXZhbHVhdGUuYmluZCh0aGlz
LCB0aXRsZSkpOworICAgICAgICBSdW50aW1lQWdlbnQuZXZhbHVhdGUoZXhwcmVzc2lvbiwgImV4
dGVuc2lvbi13YXRjaCIsIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHRo
aXMuX29uRXZhbHVhdGUuYmluZCh0aGlzLCB0aXRsZSkpOwogICAgIH0sCiAKICAgICBzZXRQYWdl
OiBmdW5jdGlvbih1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblJlZ2lzdHJ5U3R1Yi5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uUmVnaXN0cnlTdHViLmpzCmluZGV4IGE5Yzk2ZWY4NDcxMTQx
YmI2ZWZmMzZhOTU4MDE2MzA5YWVkODg3ZGYuLjI1ODA4ODAyNGMzZWVjYjg1YTgyZDIyODVjZWZi
NjhiMGVjODc5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uUmVnaXN0cnlTdHViLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRXh0ZW5zaW9uUmVnaXN0cnlTdHViLmpzCkBAIC0zMCw2ICszMCw5IEBACiAK
IGlmICghd2luZG93Lkluc3BlY3RvckV4dGVuc2lvblJlZ2lzdHJ5KSB7CiAKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKi8KIFdlYkluc3BlY3Rvci5JbnNwZWN0b3JFeHRlbnNpb25SZWdpc3RyeVN0
dWIgPSBmdW5jdGlvbigpCiB7CiB9CkBAIC0zOCw4ICs0MSw4IEBAIFdlYkluc3BlY3Rvci5JbnNw
ZWN0b3JFeHRlbnNpb25SZWdpc3RyeVN0dWIucHJvdG90eXBlID0gewogICAgIGdldEV4dGVuc2lv
bnNBc3luYzogZnVuY3Rpb24oKQogICAgIHsKICAgICB9Ci19OworfQogCi1JbnNwZWN0b3JFeHRl
bnNpb25SZWdpc3RyeSA9IG5ldyBXZWJJbnNwZWN0b3IuSW5zcGVjdG9yRXh0ZW5zaW9uUmVnaXN0
cnlTdHViKCk7Cit2YXIgSW5zcGVjdG9yRXh0ZW5zaW9uUmVnaXN0cnkgPSBuZXcgV2ViSW5zcGVj
dG9yLkluc3BlY3RvckV4dGVuc2lvblJlZ2lzdHJ5U3R1YigpOwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4
IGU5YzI3YTg0OGZiMGE3ZTFjMDk2NmFkZTliZTA0YzUxOWU1MzUwMmIuLjBkMzk4ZGExOGM3OTVj
ZTY5YTBjYzkwOTJjYjNhNWY1YWE1NTY5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yOCw2ICsyOCw5IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KIFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5fY2xpZW50
T2JqZWN0cyA9IHt9OwpAQCAtMTIxLDcgKzEyNCwxMCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNhdGlvbigicmVz
b3VyY2UtY29udGVudC1jb21taXR0ZWQiLCB0aGlzLl9tYWtlUmVzb3VyY2UocmVzb3VyY2UpLCBj
b250ZW50KTsKICAgICB9LAogCi0gICAgX3Bvc3ROb3RpZmljYXRpb246IGZ1bmN0aW9uKHR5cGUs
IGRldGFpbHMpCisgICAgLyoqCisgICAgICogQHBhcmFtIHsuLi4qfSB2YXJhcmcKKyAgICAgKi8K
KyAgICBfcG9zdE5vdGlmaWNhdGlvbjogZnVuY3Rpb24odHlwZSwgdmFyYXJnKQogICAgIHsKICAg
ICAgICAgdmFyIHN1YnNjcmliZXJzID0gdGhpcy5fc3Vic2NyaWJlcnNbdHlwZV07CiAgICAgICAg
IGlmICghc3Vic2NyaWJlcnMpCkBAIC0xNjksMTAgKzE3NSwxMCBAQCBXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGV4dGVuc2lvbkhlYWRlcnMg
PSB7fTsKICAgICAgICAgICAgIHRoaXMuX2V4dHJhSGVhZGVyc1tpZF0gPSBleHRlbnNpb25IZWFk
ZXJzOwogICAgICAgICB9Ci0gICAgICAgIGZvciAobmFtZSBpbiBtZXNzYWdlLmhlYWRlcnMpCisg
ICAgICAgIGZvciAodmFyIG5hbWUgaW4gbWVzc2FnZS5oZWFkZXJzKQogICAgICAgICAgICAgZXh0
ZW5zaW9uSGVhZGVyc1tuYW1lXSA9IG1lc3NhZ2UuaGVhZGVyc1tuYW1lXTsKLSAgICAgICAgdmFy
IGFsbEhlYWRlcnMgPSB7fTsKLSAgICAgICAgZm9yIChleHRlbnNpb24gaW4gdGhpcy5fZXh0cmFI
ZWFkZXJzKSB7CisgICAgICAgIHZhciBhbGxIZWFkZXJzID0gLyoqIEB0eXBlIE5ldHdvcmtBZ2Vu
dC5IZWFkZXJzICovIHt9OworICAgICAgICBmb3IgKHZhciBleHRlbnNpb24gaW4gdGhpcy5fZXh0
cmFIZWFkZXJzKSB7CiAgICAgICAgICAgICB2YXIgaGVhZGVycyA9IHRoaXMuX2V4dHJhSGVhZGVy
c1tleHRlbnNpb25dOwogICAgICAgICAgICAgZm9yIChuYW1lIGluIGhlYWRlcnMpIHsKICAgICAg
ICAgICAgICAgICBpZiAodHlwZW9mIGhlYWRlcnNbbmFtZV0gPT09ICJzdHJpbmciKQpAQCAtMzAx
LDcgKzMwNyw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hDYWxsYmFjayhtZXNzYWdlLnJlcXVlc3RJZCwgcG9y
dCwgcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICB2YXIgZXZhbEV4cHJlc3Npb24gPSAiSlNP
Ti5zdHJpbmdpZnkoZXZhbCh1bmVzY2FwZSgnIiArIGVzY2FwZShtZXNzYWdlLmV4cHJlc3Npb24p
ICsgIicpKSk7IjsKLSAgICAgICAgUnVudGltZUFnZW50LmV2YWx1YXRlKGV2YWxFeHByZXNzaW9u
LCAiIiwgdHJ1ZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5l
dmFsdWF0ZShldmFsRXhwcmVzc2lvbiwgIiIsIHRydWUsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1
bmRlZmluZWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfb25HZXRDb25z
b2xlTWVzc2FnZXM6IGZ1bmN0aW9uKCkKQEAgLTU0NSw2ICs1NTEsOSBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcG9zdE5vdGlmaWNh
dGlvbigidGltZWxpbmUtZXZlbnQtcmVjb3JkZWQiLCBldmVudC5kYXRhKTsKICAgICB9LAogCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtBcnJheS48RXh0ZW5zaW9uRGVzY3JpcHRvcj59IGV4dGVu
c2lvbnMKKyAgICAgKi8KICAgICBfYWRkRXh0ZW5zaW9uczogZnVuY3Rpb24oZXh0ZW5zaW9ucykK
ICAgICB7CiAgICAgICAgIC8vIFNlZSBFeHRlbnNpb25BUEkuanMgYW5kIEV4dGVuc2lvbkNvbW1v
bi5qcyBmb3IgZGV0YWlscy4KQEAgLTU5MCw3ICs1OTksNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5z
aW9uU2VydmVyLnByb3RvdHlwZSA9IHsKICAgICBfcmVnaXN0ZXJFeHRlbnNpb246IGZ1bmN0aW9u
KG9yaWdpbiwgcG9ydCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fcmVnaXN0ZXJlZEV4dGVu
c2lvbnMuaGFzT3duUHJvcGVydHkob3JpZ2luKSkgewotICAgICAgICAgICAgaWYgKG9yaWdpbiAh
PT0gbG9jYXRpb24ub3JpZ2luKSAvLyBKdXN0IGlnbm9yZSBpbnNwZWN0b3IgZnJhbWVzLgorICAg
ICAgICAgICAgaWYgKG9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikgLy8gSnVzdCBp
Z25vcmUgaW5zcGVjdG9yIGZyYW1lcy4KICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJ
Z25vcmluZyB1bmF1dGhvcml6ZWQgY2xpZW50IHJlcXVlc3QgZnJvbSAiICsgb3JpZ2luKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjU4LDIzICs2NjcsMTQgQEAgV2ViSW5z
cGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgfQogfQogCi1XZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU2VydmVyLl9zdGF0dXNlcyA9Ci17Ci0gICAgT0s6ICIiLAotICAgIEVf
RVhJU1RTOiAiT2JqZWN0IGFscmVhZHkgZXhpc3RzOiAlcyIsCi0gICAgRV9CQURBUkc6ICJJbnZh
bGlkIGFyZ3VtZW50ICVzOiAlcyIsCi0gICAgRV9CQURBUkdUWVBFOiAiSW52YWxpZCB0eXBlIGZv
ciBhcmd1bWVudCAlczogZ290ICVzLCBleHBlY3RlZCAlcyIsCi0gICAgRV9OT1RGT1VORDogIk9i
amVjdCBub3QgZm91bmQ6ICVzIiwKLSAgICBFX05PVFNVUFBPUlRFRDogIk9iamVjdCBkb2VzIG5v
dCBzdXBwb3J0IHJlcXVlc3RlZCBvcGVyYXRpb246ICVzIiwKLSAgICBFX0ZBSUxFRDogIk9wZXJh
dGlvbiBmYWlsZWQ6ICVzIgotfQotCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNw
ZWN0b3IuRXh0ZW5zaW9uU3RhdHVzID0gZnVuY3Rpb24oKQogewotICAgIGZ1bmN0aW9uIG1ha2VT
dGF0dXMoY29kZSkKKyAgICBmdW5jdGlvbiBtYWtlU3RhdHVzKGNvZGUsIGRlc2NyaXB0aW9uKQog
ICAgIHsKLSAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5fc3RhdHVzZXNbY29kZV0gfHwgY29kZTsKLSAgICAgICAgdmFyIGRldGFpbHMgPSBBcnJh
eS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpOworICAgICAgICB2YXIgZGV0YWls
cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMik7CiAgICAgICAgIHZh
ciBzdGF0dXMgPSB7IGNvZGU6IGNvZGUsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZGV0YWls
czogZGV0YWlscyB9OwogICAgICAgICBpZiAoY29kZSAhPT0gIk9LIikgewogICAgICAgICAgICAg
c3RhdHVzLmlzRXJyb3IgPSB0cnVlOwpAQCAtNjgyLDggKzY4MiwxNCBAQCBXZWJJbnNwZWN0b3Iu
RXh0ZW5zaW9uU3RhdHVzID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBz
dGF0dXM7CiAgICAgfQotICAgIGZvciAoc3RhdHVzIGluIFdlYkluc3BlY3Rvci5FeHRlbnNpb25T
ZXJ2ZXIuX3N0YXR1c2VzKQotICAgICAgICB0aGlzW3N0YXR1c10gPSBtYWtlU3RhdHVzLmJpbmQo
bnVsbCwgc3RhdHVzKTsKKworICAgIHRoaXMuT0sgPSBtYWtlU3RhdHVzLmJpbmQobnVsbCwgIk9L
IiwgIk9LIik7CisgICAgdGhpcy5FX0VYSVNUUyA9IG1ha2VTdGF0dXMuYmluZChudWxsLCAiRV9F
WElTVFMiLCAiT2JqZWN0IGFscmVhZHkgZXhpc3RzOiAlcyIpOworICAgIHRoaXMuRV9CQURBUkcg
PSBtYWtlU3RhdHVzLmJpbmQobnVsbCwgIkVfQkFEQVJHIiwgIkludmFsaWQgYXJndW1lbnQgJXM6
ICVzIik7CisgICAgdGhpcy5FX0JBREFSR1RZUEUgPSBtYWtlU3RhdHVzLmJpbmQobnVsbCwgIkVf
QkFEQVJHVFlQRSIsICJJbnZhbGlkIHR5cGUgZm9yIGFyZ3VtZW50ICVzOiBnb3QgJXMsIGV4cGVj
dGVkICVzIik7CisgICAgdGhpcy5FX05PVEZPVU5EID0gbWFrZVN0YXR1cy5iaW5kKG51bGwsICJF
X05PVEZPVU5EIiwgIk9iamVjdCBub3QgZm91bmQ6ICVzIik7CisgICAgdGhpcy5FX05PVFNVUFBP
UlRFRCA9IG1ha2VTdGF0dXMuYmluZChudWxsLCAiRV9OT1RTVVBQT1JURUQiLCAiT2JqZWN0IGRv
ZXMgbm90IHN1cHBvcnQgcmVxdWVzdGVkIG9wZXJhdGlvbjogJXMiKTsKKyAgICB0aGlzLkVfRkFJ
TEVEID0gbWFrZVN0YXR1cy5iaW5kKG51bGwsICJFX0ZBSUxFRCIsICJPcGVyYXRpb24gZmFpbGVk
OiAlcyIpOwogfQogCiBXZWJJbnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyA9IGZ1bmN0aW9uKGV4dGVu
c2lvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtMb2cuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtM
b2cuanMKaW5kZXggYzI5N2Q0MDliNGVmODc4NDdhNDkwNjdhNTdlMTgzZjQ5M2Y4OGZmMS4uNzQz
OGE2ZTUxMzAzNWQwNmViOWUwN2FiZTVjMjAzZjcyOWJlZjNiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcwpAQCAtMzksNiArMzksOSBA
QCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZyA9IGZ1bmN0aW9uKCkKIH0KIAogV2ViSW5zcGVjdG9y
Lk5ldHdvcmtMb2cucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4ge0FycmF5
LjxXZWJJbnNwZWN0b3IuUmVzb3VyY2U+fQorICAgICAqLwogICAgIGdldCByZXNvdXJjZXMoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlczsKQEAgLTU2LDkgKzU5LDEzIEBA
IFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0s
CiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAg
ICAgKi8KICAgICBfb25SZXNvdXJjZVN0YXJ0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdGhpcy5fcmVzb3VyY2VzLnB1c2goZXZlbnQuZGF0YSk7CisgICAgICAgIHZhciByZXNv
dXJjZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSAqLyBldmVudC5kYXRhOwor
ICAgICAgICB0aGlzLl9yZXNvdXJjZXMucHVzaChyZXNvdXJjZSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvT2JqZWN0LmpzCmluZGV4IDYyN2RjY2Rk
ZjJhMGVkYzY2ZmM0Njg5NWI4NzMzOTIxYTIyNWFhZDYuLjc0ZTQxOWI1OTUwMzVkM2UyOWZlYmY2
ZGY0Mjc5NmVjNjhjOTI2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvT2JqZWN0LmpzCkBAIC04NCwxMSArODQsMTIgQEAgV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90
b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50VHlwZQogICAg
ICAqIEBwYXJhbSB7Kj19IGV2ZW50RGF0YQorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAg
ICovCiAgICAgZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzOiBmdW5jdGlvbihldmVudFR5cGUsIGV2
ZW50RGF0YSkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fbGlzdGVuZXJzIHx8ICF0aGlzLl9s
aXN0ZW5lcnNbZXZlbnRUeXBlXSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICB2YXIgZXZlbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkV2ZW50
KHRoaXMsIGV2ZW50VHlwZSwgZXZlbnREYXRhKTsKICAgICAgICAgdmFyIGxpc3RlbmVycyA9IHRo
aXMuX2xpc3RlbmVyc1tldmVudFR5cGVdLnNsaWNlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3NTY3JlZW4uanMKaW5kZXggZmE1M2Q4ZDY0
OTIxYTZhN2M1MjhlNjQ3OTViNGU0ODM4OWUzYzA0OC4uMTVkMTk3MDU2YTY3MjdhYWMzN2U3MTEz
NzM4ZTJhYjUxYzcwMjM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TZXR0aW5nc1NjcmVlbi5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzU2NyZWVuLmpzCkBAIC0yOCw2ICsyOCwxMCBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3Bl
Y3Rvci5IZWxwU2NyZWVufQorICovCiBXZWJJbnNwZWN0b3IuU2V0dGluZ3NTY3JlZW4gPSBmdW5j
dGlvbigpCiB7CiAgICAgV2ViSW5zcGVjdG9yLkhlbHBTY3JlZW4uY2FsbCh0aGlzLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNldHRpbmdzIikpOwpAQCAtNzMsNiArNzcsMTAgQEAgV2ViSW5zcGVj
dG9yLlNldHRpbmdzU2NyZWVuID0gZnVuY3Rpb24oKQogfQogCiBXZWJJbnNwZWN0b3IuU2V0dGlu
Z3NTY3JlZW4ucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBu
YW1lCisgICAgICogQHBhcmFtIHtib29sZWFuPX0gcmlnaHQKKyAgICAgKi8KICAgICBfYXBwZW5k
U2VjdGlvbjogZnVuY3Rpb24obmFtZSwgcmlnaHQpCiAgICAgewogICAgICAgICB2YXIgcCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGVzdENvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Rlc3RDb250cm9sbGVyLmpzCmluZGV4IDMwMTk5NGMzOWZjNWI2MmJm
NDI3ZTBjNGNjMjIxNGQyZDRjNDY0OTEuLjIwZTljNGE3NTBkZGUzMDMxNjJlYTg2YjQ3YWYyNjll
NzIzZGVlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGVzdENvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXN0Q29udHJvbGxlci5qcwpAQCAtMjgsNiArMjgsOSBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCiBXZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xs
ZXIgPSBmdW5jdGlvbigpCiB7CiB9CkBAIC00NSwxNSArNDgsMTAgQEAgV2ViSW5zcGVjdG9yLmV2
YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQgPSBmdW5jdGlvbihjYWxsSWQsIHNjcmlwdCkKICAgICBm
dW5jdGlvbiBpbnZva2VNZXRob2QoKQogICAgIHsKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAg
IHZhciByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAod2luZG93W3NjcmlwdF0gJiYgdHlwZW9mIHdp
bmRvd1tzY3JpcHRdID09PSAiZnVuY3Rpb24iKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHdp
bmRvd1tzY3JpcHRdLmNhbGwoV2ViSW5zcGVjdG9yLCBjb250cm9sbGVyKTsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICByZXN1bHQgPSB3aW5kb3cuZXZhbChzY3JpcHQpOwotCisg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gd2luZG93LmV2YWwoc2NyaXB0KTsKICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5UZXN0Q29udHJvbGxlci5wcm90b3R5cGUubm90aWZ5RG9uZShjYWxsSWQs
IHJlc3VsdCk7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci50ZXN0Q29udHJvbGxlci5wcm90b3R5cGUubm90aWZ5RG9uZShjYWxsSWQsIGUudG9TdHJpbmco
KSk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuVGVzdENvbnRyb2xsZXIucHJvdG90eXBlLm5v
dGlmeURvbmUoY2FsbElkLCBlLnRvU3RyaW5nKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIElu
c3BlY3RvckJhY2tlbmQucnVuQWZ0ZXJQZW5kaW5nRGlzcGF0Y2hlcyhpbnZva2VNZXRob2QpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzCmluZGV4IDZl
ODdjMjUzODk1NTFiNGZhYWI5NmM1NGNkOGYzNTIxYmM5NzAwYWMuLjhjZGYwYWIyMWNmNmI3ZDhj
Y2Q1NDczMzAyZWIwZDcxZWJiOTJiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2V4dGVybnMuanMKQEAgLTI5LDkgKzI5LDEyIEBACiAgKi8KIAogdmFyIGNvbnNv
bGUgPSB7fQotY29uc29sZS53YXJuID0gZnVuY3Rpb24obWVzc2FnZSkge30KLS8qKiBAcGFyYW0g
e3N0cmluZz19IG1lc3NhZ2UgKi8KLWNvbnNvbGUuYXNzZXJ0ID0gZnVuY3Rpb24oZXhwciwgbWVz
c2FnZSkge30KKy8qKiBAcGFyYW0gey4uLip9IHZhcmFyZyAqLworY29uc29sZS53YXJuID0gZnVu
Y3Rpb24odmFyYXJnKSB7fQorLyoqIEBwYXJhbSB7Li4uKn0gdmFyYXJnICovCitjb25zb2xlLmFz
c2VydCA9IGZ1bmN0aW9uKHZhcmFyZykge30KKy8qKiBAcGFyYW0gey4uLip9IHZhcmFyZyAqLwor
Y29uc29sZS5lcnJvciA9IGZ1bmN0aW9uKHZhcmFyZykge30KIAogdmFyIFdlYkluc3BlY3RvciA9
IHt9CiAKQEAgLTg3LDYgKzkwLDcgQEAgV2ViSW5zcGVjdG9yLmNvbXBsZXRlVVJMID0gZnVuY3Rp
b24odXJsLCBocmVmKSB7fQogICovCiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcgPSBmdW5jdGlvbihz
dHIsIHZhckFyZ3MpIHt9CiB2YXIgSW5zcGVjdG9yQmFja2VuZCA9IHt9CitJbnNwZWN0b3JCYWNr
ZW5kLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMgPSBmdW5jdGlvbihtZXNzYWdlKSB7fQogCiB2
YXIgSlNPTiA9IHt9CiAvKiogQHBhcmFtIHtzdHJpbmd9IHN0ciAqLwpAQCAtMjI3LDMgKzIzMSw0
MCBAQCBXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3QgPSB7fQogV2ViSW5zcGVjdG9yLkV2
ZW50cyA9IHsKICAgICBJbnNwZWN0b3JDbG9zaW5nOiAiSW5zcGVjdG9yQ2xvc2luZyIKIH0KKwor
LyoqIEV4dGVuc2lvbnMgQVBJICovCisKKy8qKiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIEF1
ZGl0Q2F0ZWdvcnkoKSB7fQorLyoqIEBjb25zdHJ1Y3RvciAqLworZnVuY3Rpb24gQXVkaXRSZXN1
bHQoKSB7fQorLyoqIEBjb25zdHJ1Y3RvciAqLworZnVuY3Rpb24gRXZlbnRTaW5rKCkge30KKy8q
KiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIEV4dGVuc2lvblNpZGViYXJQYW5lKCkge30KKy8q
KiBAY29uc3RydWN0b3IgKi8KK2Z1bmN0aW9uIFBhbmVsKCkge30KKy8qKiBAY29uc3RydWN0b3Ig
Ki8KK2Z1bmN0aW9uIFBhbmVsV2l0aFNpZGViYXIoKSB7fQorLyoqIEBjb25zdHJ1Y3RvciAqLwor
ZnVuY3Rpb24gUmVxdWVzdCgpIHt9CisvKiogQGNvbnN0cnVjdG9yICovCitmdW5jdGlvbiBSZXNv
dXJjZSgpIHt9CisvKiogQGNvbnN0cnVjdG9yICovCitmdW5jdGlvbiBUaW1lbGluZSgpIHt9CisK
Ky8qKiBAdHlwZSB7c3RyaW5nfSAqLworTG9jYXRpb24ucHJvdG90eXBlLm9yaWdpbiA9ICIiOwor
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICovCitmdW5jdGlvbiBFeHRlbnNpb25EZXNjcmlwdG9y
KCkgeworICAgIHRoaXMuc3RhcnRQYWdlID0gIiI7CisgICAgdGhpcy5uYW1lID0gIiI7Cit9CisK
Ky8qKgorICogQHR5cGUge1dlYkluc3BlY3Rvci5IYW5kbGVyUmVnaXN0cnl9CisgKi8KK1dlYklu
c3BlY3Rvci5vcGVuQW5jaG9yTG9jYXRpb25SZWdpc3RyeSA9IG51bGw7Cg==
</data>
<flag name="review"
          id="108037"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>