<?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>90266</bug_id>
          
          <creation_ts>2012-06-29 03:47:35 -0700</creation_ts>
          <short_desc>Web Inspector: Annotate TextViewer.js</short_desc>
          <delta_ts>2012-06-29 04:22:59 -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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</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>660343</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 03:47:35 -0700</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660346</commentid>
    <comment_count>1</comment_count>
      <attachid>150130</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 03:50:33 -0700</bug_when>
    <thetext>Created attachment 150130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660352</commentid>
    <comment_count>2</comment_count>
      <attachid>150130</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-06-29 04:12:23 -0700</bug_when>
    <thetext>Comment on attachment 150130
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:2599
&gt; +                    { &quot;name&quot;: &quot;contextId&quot;, &quot;$ref&quot;: &quot;Runtime.ExecutionContextId&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;Specifies in which isolated context to perform script run. Each content script lives in an isolated context and this parameter may be used to specify on of those contexts. If the parameter is omitted or 0 the evaluation will be performed in the context of the inspected page.&quot; },

While you are here, please fix the typo: &quot;specify on of those&quot; -&gt; &quot;specify one of those&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660357</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 04:22:59 -0700</bug_when>
    <thetext>Committed r121549: &lt;http://trac.webkit.org/changeset/121549&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150130</attachid>
            <date>2012-06-29 03:50:33 -0700</date>
            <delta_ts>2012-06-29 04:12:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90266-20120629145031.patch</filename>
            <type>text/plain</type>
            <size>39790</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdhOGE4ZWFlYjE2NmI5
ZjVmNDdjYTc5NWIyMTNlMGZhNmNlYjMxZS4uZWU3OGYwMjUxNjAzNzk2OTY4Nzc3ZGExN2NiNGJj
NDliODhjZGI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA2LTI5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFubm90YXRlIFRleHRWaWV3ZXIuanMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwMjY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQW5ub3RhdGVkIFRleHRWaWV3ZXIuanMgYW5kIGZpeGVkIGZvdW5k
IGVycm9ycy4KKyAgICAgICAgRHJpdmUtYnk6IEZpeGVkIE5hdGl2ZU1lbW9yeVNuYXBzaG90Vmll
dy5qcyBjb21waWxhdGlvbi4KKyAgICAgICAgRHJpdmUtYnk6IEZpeGVkIHByb3RvY29sLWV4dGVy
bnMuanMgY29tcGlsYXRpb24uCisgICAgICAgIERyaXZlLWJ5OiBSZW1vdmVkIHVudXNlZCBwbGF0
Zm9ybSBwYXJhbWV0ZXIgZnJvbSBUZXh0Vmlld2VyIGNvbnN0cnVjdG9yLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRlYnVnZ2VyQWdl
bnQ6OnJ1blNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuaDoKKyAgICAgICAgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25hcHNob3RWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdGl2ZU1lbW9yeUJhckNoYXJ0LnByb3RvdHlwZS5fdXBkYXRlVmlldyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9U
ZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlLl91cGRhdGVIaWdobGlnaHRzRm9yUmFuZ2UpOgorCiAyMDEyLTA2LTI5ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTIxNTI5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCmluZGV4IDgxYjc3NGU2NWZmNmYxZjdmNDM2YTkyOWY5Y2E4MTNjNjE5MTNlNWUuLjUx
OGQ3NzYxMTAzZjIwZjIyMDc4NDBkNDllNDZlNzgyMTY3NjJlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTI1OTUsOCArMjU5NSw4IEBACiAgICAgICAgICAg
ICAgICAgIm5hbWUiOiAicnVuU2NyaXB0IiwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZSwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjb250ZXh0SWQiLCAiJHJlZiI6ICJSdW50aW1lLkV4ZWN1dGlvbkNvbnRleHRJ
ZCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgaW4gd2hpY2gg
aXNvbGF0ZWQgY29udGV4dCB0byBwZXJmb3JtIHNjcmlwdCBydW4uIEVhY2ggY29udGVudCBzY3Jp
cHQgbGl2ZXMgaW4gYW4gaXNvbGF0ZWQgY29udGV4dCBhbmQgdGhpcyBwYXJhbWV0ZXIgbWF5IGJl
IHVzZWQgdG8gc3BlY2lmeSBvbiBvZiB0aG9zZSBjb250ZXh0cy4gSWYgdGhlIHBhcmFtZXRlciBp
cyBvbWl0dGVkIG9yIDAgdGhlIGV2YWx1YXRpb24gd2lsbCBiZSBwZXJmb3JtZWQgaW4gdGhlIGNv
bnRleHQgb2YgdGhlIGluc3BlY3RlZCBwYWdlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzY3JpcHRJZCIsICIkcmVmIjogIlNjcmlwdElkIiwgImRlc2NyaXB0aW9uIjogIklk
IG9mIHRoZSBzY3JpcHQgdG8gcnVuLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJjb250ZXh0SWQiLCAiJHJlZiI6ICJSdW50aW1lLkV4ZWN1dGlvbkNvbnRleHRJZCIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTcGVjaWZpZXMgaW4gd2hpY2ggaXNvbGF0ZWQg
Y29udGV4dCB0byBwZXJmb3JtIHNjcmlwdCBydW4uIEVhY2ggY29udGVudCBzY3JpcHQgbGl2ZXMg
aW4gYW4gaXNvbGF0ZWQgY29udGV4dCBhbmQgdGhpcyBwYXJhbWV0ZXIgbWF5IGJlIHVzZWQgdG8g
c3BlY2lmeSBvbiBvZiB0aG9zZSBjb250ZXh0cy4gSWYgdGhlIHBhcmFtZXRlciBpcyBvbWl0dGVk
IG9yIDAgdGhlIGV2YWx1YXRpb24gd2lsbCBiZSBwZXJmb3JtZWQgaW4gdGhlIGNvbnRleHQgb2Yg
dGhlIGluc3BlY3RlZCBwYWdlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJv
YmplY3RHcm91cCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJTeW1ib2xpYyBncm91cCBuYW1lIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVsZWFzZSBt
dWx0aXBsZSBvYmplY3RzLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlNwZWNpZmllcyB3aGV0aGVyIHNjcmlwdCBy
dW4gc2hvdWxkIHN0b3Agb24gZXhjZXB0aW9ucyBhbmQgbXV0ZSBjb25zb2xlLiBPdmVycmlkZXMg
c2V0UGF1c2VPbkV4Y2VwdGlvbiBzdGF0ZS4iIH0KICAgICAgICAgICAgICAgICBdLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmlu
ZGV4IGExZmY5MWM2ZGNjNjE1NzE5MjNmODFkMDcyNzRmZmViNTJjZjRmZGYuLjExODA3YTNmOWU4
Nzk4NDBkZWE2MDNiMzY2M2UyMDlhZmNlZDcyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTUzNSw3ICs1MzUsNyBA
QCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNvbXBpbGVTY3JpcHQoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgogICAgICpzY3JpcHRJZCA9IHNjcmlwdElkVmFsdWU7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6cnVuU2NyaXB0KEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0IFNjcmlw
dElkJiBzY3JpcHRJZCwgY29uc3QgU3RyaW5nKiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9v
bCogY29uc3QgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwgVHlwZUJ1aWxkZXI6Ok9w
dE91dHB1dDxib29sPiogd2FzVGhyb3duKQordm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpy
dW5TY3JpcHQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTY3JpcHRJZCYgc2NyaXB0
SWQsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9i
amVjdEdyb3VwLCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0
ZUNvbnNvbGUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVz
dWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNUaHJvd24pCiB7CiAgICAgSW5q
ZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBpbmplY3RlZFNjcmlwdEZvckV2YWwoZXJyb3JT
dHJpbmcsIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05v
VmFsdWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKaW5kZXggYTk3ZDA0YTEzZDgyZmEyYzhjYzkzYTMzM2Y4MjI5YjcyMjg5YTQy
OS4uMDljOTdkMTk1M2U0YjliMDAxNjFmODc0ZjQ1MzFmYmRlYzdkYjZjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC0xMTEs
NyArMTExLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJlc3VsdCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1dDxib29sPiogd2FzVGhyb3du
KTsKICAgICB2b2lkIGNvbXBpbGVTY3JpcHQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGV4
cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0
PFR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6U2NyaXB0SWQ+KiwgVHlwZUJ1aWxkZXI6Ok9wdE91dHB1
dDxTdHJpbmc+KiBzeW50YXhFcnJvck1lc3NhZ2UpOwotICAgIHZvaWQgcnVuU2NyaXB0KEVycm9y
U3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQsIGNvbnN0IFR5cGVCdWlsZGVy
OjpEZWJ1Z2dlcjo6U2NyaXB0SWQmLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBi
b29sKiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0
cHV0PGJvb2w+KiB3YXNUaHJvd24pOworICAgIHZvaWQgcnVuU2NyaXB0KEVycm9yU3RyaW5nKiwg
Y29uc3QgVHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpTY3JpcHRJZCYsIGNvbnN0IGludCogZXhlY3V0
aW9uQ29udGV4dElkLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBkb05v
dFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0PiYgcmVzdWx0LCBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+
KiB3YXNUaHJvd24pOwogCiAgICAgY2xhc3MgTGlzdGVuZXIgewogICAgIHB1YmxpYzoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF0aXZlTWVtb3J5U25h
cHNob3RWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVN
ZW1vcnlTbmFwc2hvdFZpZXcuanMKaW5kZXggM2IzN2JjZGY4ZTVlYWI0MDFlNDEwMDAxMWIxZmUw
NDhhMDE2ZTY5Ny4uYjgzNDcwYTUzZDU0NGYzOWU0MzhiZTdmNmI4N2QxYjQ1MjQ5NGYwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXRpdmVNZW1vcnlT
bmFwc2hvdFZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
YXRpdmVNZW1vcnlTbmFwc2hvdFZpZXcuanMKQEAgLTQ1Niw5ICs0NTYsOSBAQCBXZWJJbnNwZWN0
b3IuTmF0aXZlTWVtb3J5QmFyQ2hhcnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIG5h
bWVEaXYudGV4dENvbnRlbnQgPSB0aXRsZTsKICAgICAgICAgICAgICAgICBuYW1lRGl2LmFkZFN0
eWxlQ2xhc3MoIm1lbW9yeS1iYXItY2hhcnQtbmFtZSIpOwogICAgICAgICAgICAgICAgIHZhciBi
YXJDZWxsID0gcm93Lmluc2VydENlbGwoLTEpOwotICAgICAgICAgICAgICAgIGJhckRpdiA9IGJh
ckNlbGwuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgICAgICAgICAgICAgIHZhciBiYXJEaXYgPSBi
YXJDZWxsLmNyZWF0ZUNoaWxkKCJkaXYiKTsKICAgICAgICAgICAgICAgICBiYXJEaXYuYWRkU3R5
bGVDbGFzcygibWVtb3J5LWJhci1jaGFydC1iYXIiKTsKLSAgICAgICAgICAgICAgICB2YXIgdmll
d1Byb3BlcnRpZXMgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9y
TWVtb3J5QmxvY2soY2hpbGQpOworICAgICAgICAgICAgICAgIHZpZXdQcm9wZXJ0aWVzID0gV2Vi
SW5zcGVjdG9yLk1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2Zvck1lbW9yeUJsb2NrKGNoaWxk
KTsKICAgICAgICAgICAgICAgICBiYXJEaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdmlld1By
b3BlcnRpZXMuX2ZpbGxTdHlsZTsKICAgICAgICAgICAgICAgICB2YXIgdW51c2VkRGl2ID0gYmFy
RGl2LmNyZWF0ZUNoaWxkKCJkaXYiKTsKICAgICAgICAgICAgICAgICB1bnVzZWREaXYuYWRkU3R5
bGVDbGFzcygibWVtb3J5LWJhci1jaGFydC11bnVzZWQiKTsKQEAgLTQ4Myw4ICs0ODMsOCBAQCBX
ZWJJbnNwZWN0b3IuTmF0aXZlTWVtb3J5QmFyQ2hhcnQucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgZGl2cy5zaXplRGl2LnRleHRDb250ZW50ID0gKGNoaWxkLnNpemUgLyBNQikudG9GaXhlZCgx
KSArICJcdTIwMDlNQiI7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgdmlld1Byb3BlcnRpZXMg
PSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9yTWVtb3J5QmxvY2so
bWVtb3J5QmxvY2spOwotICAgICAgICB0aGlzLl90b3RhbERpdi50ZXh0Q29udGVudCA9IHZpZXdQ
cm9wZXJ0aWVzLl9kZXNjcmlwdGlvbiArICI6ICIgKyAobWVtb3J5QmxvY2suc2l6ZSAvIE1CKS50
b0ZpeGVkKDEpICsgIlx1MjAwOU1CIjsKKyAgICAgICAgdmFyIG1lbW9yeUJsb2NrVmlld1Byb3Bl
cnRpZXMgPSBXZWJJbnNwZWN0b3IuTWVtb3J5QmxvY2tWaWV3UHJvcGVydGllcy5fZm9yTWVtb3J5
QmxvY2sobWVtb3J5QmxvY2spOworICAgICAgICB0aGlzLl90b3RhbERpdi50ZXh0Q29udGVudCA9
IG1lbW9yeUJsb2NrVmlld1Byb3BlcnRpZXMuX2Rlc2NyaXB0aW9uICsgIjogIiArIChtZW1vcnlC
bG9jay5zaXplIC8gTUIpLnRvRml4ZWQoMSkgKyAiXHUyMDA5TUIiOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKaW5k
ZXggZDJmMWYwYzMwMWI3ODQwNzI2YTg3Y2Q3ODU0ZjZiZmIzNjcwNmExMC4uZTZiZTZmNzE5Nzdj
NjQ2NjA5MDc3ODVkYzFjMzljNDgxMGFkNDhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC00NCw3ICs0NCw3IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZSA9IGZ1bmN0aW9uKGNvbnRlbnRQcm92aWRlcikKICAgICB0aGlz
Ll90ZXh0TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbCgpOwogCiAgICAg
dmFyIHRleHRWaWV3ZXJEZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVn
YXRlRm9yU291cmNlRnJhbWUodGhpcyk7Ci0gICAgdGhpcy5fdGV4dFZpZXdlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuVGV4dFZpZXdlcih0aGlzLl90ZXh0TW9kZWwsIFdlYkluc3BlY3Rvci5wbGF0Zm9y
bSgpLCB0aGlzLl91cmwsIHRleHRWaWV3ZXJEZWxlZ2F0ZSk7CisgICAgdGhpcy5fdGV4dFZpZXdl
ciA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlcih0aGlzLl90ZXh0TW9kZWwsIHRoaXMuX3Vy
bCwgdGV4dFZpZXdlckRlbGVnYXRlKTsKIAogICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hSZXN1bHRJ
bmRleCA9IC0xOwogICAgIHRoaXMuX3NlYXJjaFJlc3VsdHMgPSBbXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcwppbmRleCA5NmZlOGFkNTVk
YjBkZGIyM2Y2YjhhZDZmMmU1YzdiODBlN2ZkNDFlLi43MzUyNjE3NWZiMTFjMDIwZjQzN2M5YjE4
OGEzZThlYjJlYjNkNTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RleHRWaWV3ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC0zMiw4ICszMiwxMSBAQAogLyoqCiAgKiBAZXh0ZW5kcyB7
V2ViSW5zcGVjdG9yLlZpZXd9CiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JNb2RlbH0gdGV4dE1vZGVsCisgKiBAcGFyYW0gez9zdHJpbmd9IHVybAor
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVnYXRlfSBkZWxlZ2F0ZQogICov
Ci1XZWJJbnNwZWN0b3IuVGV4dFZpZXdlciA9IGZ1bmN0aW9uKHRleHRNb2RlbCwgcGxhdGZvcm0s
IHVybCwgZGVsZWdhdGUpCitXZWJJbnNwZWN0b3IuVGV4dFZpZXdlciA9IGZ1bmN0aW9uKHRleHRN
b2RlbCwgdXJsLCBkZWxlZ2F0ZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuVmlldy5jYWxsKHRoaXMp
OwogICAgIHRoaXMucmVnaXN0ZXJSZXF1aXJlZENTUygidGV4dFZpZXdlci5jc3MiKTsKQEAgLTc1
LDYgKzc4LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIgPSBmdW5jdGlvbih0ZXh0TW9kZWws
IHBsYXRmb3JtLCB1cmwsIGRlbGVnYXRlKQogfQogCiBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5w
cm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IG1pbWVUeXBlCisg
ICAgICovCiAgICAgc2V0IG1pbWVUeXBlKG1pbWVUeXBlKQogICAgIHsKICAgICAgICAgdGhpcy5f
bWFpblBhbmVsLm1pbWVUeXBlID0gbWltZVR5cGU7CkBAIC05MSw0MyArOTcsNjkgQEAgV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IubWFy
a0JlaW5nRWRpdGVkKHRoaXMuZWxlbWVudCwgIXJlYWRPbmx5KTsKICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KICAgICByZWFkT25seTogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX21haW5QYW5lbC5yZWFkT25seSgpOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1vZGVsfQorICAgICAqLwogICAgIGdldCB0ZXh0TW9kZWwoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHRoaXMuX3RleHRNb2RlbDsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7
RWxlbWVudH0KKyAgICAgKi8KICAgICBkZWZhdWx0Rm9jdXNlZEVsZW1lbnQ6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwuZGVmYXVsdEZvY3VzZWRFbGVt
ZW50KCk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVt
YmVyCisgICAgICovCiAgICAgcmV2ZWFsTGluZTogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7
CiAgICAgICAgIHRoaXMuX21haW5QYW5lbC5yZXZlYWxMaW5lKGxpbmVOdW1iZXIpOwogICAgIH0s
CiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBw
YXJhbSB7c3RyaW5nfEVsZW1lbnR9IGRlY29yYXRpb24KKyAgICAgKi8KICAgICBhZGREZWNvcmF0
aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBkZWNvcmF0aW9uKQogICAgIHsKICAgICAgICAgdGhp
cy5fbWFpblBhbmVsLmFkZERlY29yYXRpb24obGluZU51bWJlciwgZGVjb3JhdGlvbik7CiAgICAg
ICAgIHRoaXMuX2d1dHRlclBhbmVsLmFkZERlY29yYXRpb24obGluZU51bWJlciwgZGVjb3JhdGlv
bik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVy
CisgICAgICogQHBhcmFtIHtzdHJpbmd8RWxlbWVudH0gZGVjb3JhdGlvbgorICAgICAqLwogICAg
IHJlbW92ZURlY29yYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGRlY29yYXRpb24pCiAgICAg
ewogICAgICAgICB0aGlzLl9tYWluUGFuZWwucmVtb3ZlRGVjb3JhdGlvbihsaW5lTnVtYmVyLCBk
ZWNvcmF0aW9uKTsKICAgICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwucmVtb3ZlRGVjb3JhdGlvbihs
aW5lTnVtYmVyLCBkZWNvcmF0aW9uKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSByYW5nZQorICAgICAqLwogICAgIG1hcmtBbmRSZXZl
YWxSYW5nZTogZnVuY3Rpb24ocmFuZ2UpCiAgICAgewogICAgICAgICB0aGlzLl9tYWluUGFuZWwu
bWFya0FuZFJldmVhbFJhbmdlKHJhbmdlKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKi8KICAgICBoaWdobGlnaHRMaW5lOiBmdW5j
dGlvbihsaW5lTnVtYmVyKQogICAgIHsKICAgICAgICAgaWYgKHR5cGVvZiBsaW5lTnVtYmVyICE9
PSAibnVtYmVyIiB8fCBsaW5lTnVtYmVyIDwgMCkKQEAgLTE0OCwxMSArMTgwLDE3IEBAIFdlYklu
c3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZ3V0dGVyUGFu
ZWwuZnJlZUNhY2hlZEVsZW1lbnRzKCk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEByZXR1
cm4ge0FycmF5LjxFbGVtZW50Pn0KKyAgICAgKi8KICAgICBlbGVtZW50c1RvUmVzdG9yZVNjcm9s
bFBvc2l0aW9uc0ZvcjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIFt0aGlzLl9t
YWluUGFuZWwuZWxlbWVudF07CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlRleHRWaWV3ZXJ9IHRleHRWaWV3ZXIKKyAgICAgKi8KICAgICBpbmhlcml0U2Ny
b2xsUG9zaXRpb25zOiBmdW5jdGlvbih0ZXh0Vmlld2VyKQogICAgIHsKICAgICAgICAgdGhpcy5f
bWFpblBhbmVsLmVsZW1lbnQuX3Njcm9sbFRvcCA9IHRleHRWaWV3ZXIuX21haW5QYW5lbC5lbGVt
ZW50LnNjcm9sbFRvcDsKQEAgLTE5NCw2ICsyMzIsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3
ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5iZWZvcmVUZXh0Q2hhbmdl
ZCgpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0
UmFuZ2V9IG9sZFJhbmdlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSBu
ZXdSYW5nZQorICAgICAqLwogICAgIF9leGl0SW50ZXJuYWxUZXh0Q2hhbmdlTW9kZTogZnVuY3Rp
b24ob2xkUmFuZ2UsIG5ld1JhbmdlKQogICAgIHsKICAgICAgICAgdGhpcy5faW50ZXJuYWxUZXh0
Q2hhbmdlTW9kZSA9IGZhbHNlOwpAQCAtMjE4LDYgKzI2MCw5IEBAIFdlYkluc3BlY3Rvci5UZXh0
Vmlld2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgZ3V0dGVyRWxlbWVudC5zY3JvbGxUb3AgPSBt
YWluRWxlbWVudC5zY3JvbGxUb3A7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICovCiAgICAgX3N5bmNEZWNvcmF0aW9uc0ZvckxpbmU6
IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICBpZiAobGluZU51bWJlciA+PSB0
aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCkKQEAgLTIzOCw2ICsyODMsOSBAQCBXZWJJbnNwZWN0
b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtFbGVtZW50fSBndXR0ZXJSb3cKKyAgICAgKi8KICAgICBfc3luY0xp
bmVIZWlnaHQ6IGZ1bmN0aW9uKGd1dHRlclJvdykKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9s
aW5lSGVpZ2h0U3luY2VkKQpAQCAtMzE0LDcgKzM2Miw3IEBAIFdlYkluc3BlY3Rvci5UZXh0Vmll
d2VyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9tYWluUGFuZWwu
X2dldFNlbGVjdGlvbigpOwogICAgIH0sCi0gICAgCisKICAgICAvKioKICAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHRleHRSYW5nZQogICAgICAqLwpAQCAtMzIyLDcgKzM3
MCw3IEBAIFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAg
ICAgIHRoaXMuX21haW5QYW5lbC5fcmVzdG9yZVNlbGVjdGlvbih0ZXh0UmFuZ2UpOwogICAgIH0s
Ci0gICAgCisKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKCF0
aGlzLnJlYWRPbmx5KCkpCkBAIC0zNDgsMTcgKzM5NiwzMCBAQCBXZWJJbnNwZWN0b3IuVGV4dFZp
ZXdlckRlbGVnYXRlID0gZnVuY3Rpb24oKQogV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0
ZS5wcm90b3R5cGUgPSB7CiAgICAgYmVmb3JlVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkgeyB9LAog
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSBvbGRSYW5n
ZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gbmV3UmFuZ2UKKyAgICAg
Ki8KICAgICBhZnRlclRleHRDaGFuZ2VkOiBmdW5jdGlvbihvbGRSYW5nZSwgbmV3UmFuZ2UpIHsg
fSwKIAogICAgIGNvbW1pdEVkaXRpbmc6IGZ1bmN0aW9uKCkgeyB9LAogCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnV9IGNvbnRleHRNZW51CisgICAgICog
QHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKi8KICAgICBwb3B1bGF0ZUxpbmVHdXR0
ZXJDb250ZXh0TWVudTogZnVuY3Rpb24oY29udGV4dE1lbnUsIGxpbmVOdW1iZXIpIHsgfSwKIAor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRleHRNZW51fSBjb250ZXh0
TWVudQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICovCiAgICAgcG9w
dWxhdGVUZXh0QXJlYUNvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSwgbGluZU51bWJl
cikgeyB9CiB9CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yTW9kZWx9IHRleHRNb2RlbAogICovCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ckNodW5rZWRQYW5lbCA9IGZ1bmN0aW9uKHRleHRNb2RlbCkKIHsKQEAgLTM3MCwxMSArNDMxLDE3
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsID0gZnVuY3Rpb24odGV4dE1v
ZGVsKQogfQogCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5wcm90b3R5cGUg
PSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2Rl
bH0KKyAgICAgKi8KICAgICBnZXQgdGV4dE1vZGVsKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0
aGlzLl90ZXh0TW9kZWw7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBsaW5lTnVtYmVyCisgICAgICovCiAgICAgcmV2ZWFsTGluZTogZnVuY3Rpb24obGluZU51bWJl
cikKICAgICB7CiAgICAgICAgIGlmIChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5l
c0NvdW50KQpAQCAtMzg0LDYgKzQ1MSwxMCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5r
ZWRQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNodW5rLmVsZW1lbnQuc2Nyb2xsSW50b1Zp
ZXdJZk5lZWRlZCgpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0g
bGluZU51bWJlcgorICAgICAqIEBwYXJhbSB7c3RyaW5nfEVsZW1lbnR9IGRlY29yYXRpb24KKyAg
ICAgKi8KICAgICBhZGREZWNvcmF0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBkZWNvcmF0aW9u
KQogICAgIHsKICAgICAgICAgaWYgKGxpbmVOdW1iZXIgPj0gdGhpcy5fdGV4dE1vZGVsLmxpbmVz
Q291bnQpCkBAIC0zOTMsNiArNDY0LDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtl
ZFBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgY2h1bmsuYWRkRGVjb3JhdGlvbihkZWNvcmF0
aW9uKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1i
ZXIKKyAgICAgKiBAcGFyYW0ge3N0cmluZ3xFbGVtZW50fSBkZWNvcmF0aW9uCisgICAgICovCiAg
ICAgcmVtb3ZlRGVjb3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgZGVjb3JhdGlvbikKICAg
ICB7CiAgICAgICAgIGlmIChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50
KQpAQCAtNDIwLDYgKzQ5NSw5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5lbmREb21VcGRhdGVzKCk7CiAgICAgfSwKIAor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICovCiAgICAg
bWFrZUxpbmVBQ2h1bms6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIg
Y2h1bmtOdW1iZXIgPSB0aGlzLl9jaHVua051bWJlckZvckxpbmUobGluZU51bWJlcik7CkBAIC00
MzYsNiArNTE0LDExIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3NwbGl0Q2h1bmtPbkFMaW5lKGxpbmVOdW1i
ZXIsIGNodW5rTnVtYmVyLCB0cnVlKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gY2h1bmtOdW1iZXIK
KyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBjcmVhdGVTdWZmaXhDaHVuaworICAgICAqLwogICAg
IF9zcGxpdENodW5rT25BTGluZTogZnVuY3Rpb24obGluZU51bWJlciwgY2h1bmtOdW1iZXIsIGNy
ZWF0ZVN1ZmZpeENodW5rKQogICAgIHsKICAgICAgICAgdGhpcy5iZWdpbkRvbVVwZGF0ZXMoKTsK
QEAgLTUyNiw2ICs2MDksOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2RvbVVwZGF0ZUNvYWxlc2NpbmdMZXZlbC0tOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAg
ICAqLwogICAgIF9jaHVua051bWJlckZvckxpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAg
ewogICAgICAgICBmdW5jdGlvbiBjb21wYXJlTGluZU51bWJlcnModmFsdWUsIGNodW5rKQpAQCAt
NTM2LDExICs2MjIsMTcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlIC0gMTsKICAgICB9LAogCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKi8KICAgICBj
aHVua0ZvckxpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICByZXR1cm4g
dGhpcy5fdGV4dENodW5rc1t0aGlzLl9jaHVua051bWJlckZvckxpbmUobGluZU51bWJlcildOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gdmlzaWJsZUZyb20KKyAg
ICAgKi8KICAgICBfZmluZEZpcnN0VmlzaWJsZUNodW5rTnVtYmVyOiBmdW5jdGlvbih2aXNpYmxl
RnJvbSkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVPZmZzZXRUb3BzKHZhbHVlLCBj
aHVuaykKQEAgLTU1MSw2ICs2NDMsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2Vk
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gaW5zZXJ0QmVmb3JlIC0gMTsKICAg
ICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHZpc2libGVGcm9tCisgICAg
ICogQHBhcmFtIHtudW1iZXJ9IHZpc2libGVUbworICAgICAqLwogICAgIF9maW5kVmlzaWJsZUNo
dW5rczogZnVuY3Rpb24odmlzaWJsZUZyb20sIHZpc2libGVUbykKICAgICB7CiAgICAgICAgIHZh
ciBmcm9tID0gdGhpcy5fZmluZEZpcnN0VmlzaWJsZUNodW5rTnVtYmVyKHZpc2libGVGcm9tKTsK
QEAgLTU2MSw2ICs2NTcsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB7IHN0YXJ0OiBmcm9tLCBlbmQ6IHRvIH07CiAg
ICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2aXNpYmxlRnJvbQorICAg
ICAqLwogICAgIF9maW5kRmlyc3RWaXNpYmxlTGluZU51bWJlcjogZnVuY3Rpb24odmlzaWJsZUZy
b20pCiAgICAgewogICAgICAgICB2YXIgY2h1bmsgPSB0aGlzLl90ZXh0Q2h1bmtzW3RoaXMuX2Zp
bmRGaXJzdFZpc2libGVDaHVua051bWJlcih2aXNpYmxlRnJvbSldOwpAQCAtNTk3LDYgKzY5Niwx
MCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIH0KICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21J
bmRleAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSB0b0luZGV4CisgICAgICovCiAgICAgX2V4cGFu
ZENodW5rczogZnVuY3Rpb24oZnJvbUluZGV4LCB0b0luZGV4KQogICAgIHsKICAgICAgICAgLy8g
Rmlyc3QgY29sbGFwc2UgY2h1bmtzIHRvIGNvbGxlY3QgdGhlIERPTSBlbGVtZW50cyBpbnRvIGEg
Y2FjaGUgdG8gcmV1c2UgdGhlbSBsYXRlci4KQEAgLTYwOCw2ICs3MTEsMTAgQEAgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhp
cy5fdGV4dENodW5rc1tpXS5leHBhbmRlZCA9IHRydWU7CiAgICAgfSwKIAorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7RWxlbWVudH0gZmlyc3RFbGVtZW50CisgICAgICogQHBhcmFtIHtFbGVtZW50
PX0gbGFzdEVsZW1lbnQKKyAgICAgKi8KICAgICBfdG90YWxIZWlnaHQ6IGZ1bmN0aW9uKGZpcnN0
RWxlbWVudCwgbGFzdEVsZW1lbnQpCiAgICAgewogICAgICAgICBsYXN0RWxlbWVudCA9IChsYXN0
RWxlbWVudCB8fCBmaXJzdEVsZW1lbnQpLm5leHRFbGVtZW50U2libGluZzsKQEAgLTYzNSw2ICs3
NDIsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5wcm90b3R5cGUgPSB7
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5UZXh0RWRp
dG9yQ2h1bmtlZFBhbmVsfQorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVs
fSB0ZXh0TW9kZWwKICAqLwogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJQYW5lbCA9IGZ1
bmN0aW9uKHRleHRNb2RlbCwgc3luY0RlY29yYXRpb25zRm9yTGluZUxpc3RlbmVyLCBzeW5jTGlu
ZUhlaWdodExpc3RlbmVyKQogewpAQCAtNjYzLDExICs3NzEsMTkgQEAgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JHdXR0ZXJQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2NhY2hlZFJv
d3MgPSBbXTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0
TGluZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRMaW5lCisgICAgICovCiAgICAgX2NyZWF0
ZU5ld0NodW5rOiBmdW5jdGlvbihzdGFydExpbmUsIGVuZExpbmUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsodGhpcywgc3RhcnRM
aW5lLCBlbmRMaW5lKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlfSBvbGRSYW5nZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRl
eHRSYW5nZX0gbmV3UmFuZ2UKKyAgICAgKi8KICAgICB0ZXh0Q2hhbmdlZDogZnVuY3Rpb24ob2xk
UmFuZ2UsIG5ld1JhbmdlKQogICAgIHsKICAgICAgICAgdGhpcy5iZWdpbkRvbVVwZGF0ZXMoKTsK
QEAgLTczNiw2ICs4NTIsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlclBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5lbmREb21VcGRhdGVzKCk7CiAgICAgfSwKIAorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjbGllbnRIZWlnaHQKKyAgICAgKi8KICAgICBz
eW5jQ2xpZW50SGVpZ2h0OiBmdW5jdGlvbihjbGllbnRIZWlnaHQpCiAgICAgewogICAgICAgICBp
ZiAodGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodCA+IGNsaWVudEhlaWdodCkKQEAgLTc0NCw2ICs4
NjMsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRp
bmctYm90dG9tIik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBs
aW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtzdHJpbmd8RWxlbWVudH0gZGVjb3JhdGlvbgorICAg
ICAqLwogICAgIGFkZERlY29yYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGRlY29yYXRpb24p
CiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5wcm90
b3R5cGUuYWRkRGVjb3JhdGlvbi5jYWxsKHRoaXMsIGxpbmVOdW1iZXIsIGRlY29yYXRpb24pOwpA
QCAtNzU1LDYgKzg3OCwxMCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlclBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGVjb3JhdGlvbnMucHVzaChkZWNvcmF0aW9uKTsKICAgICB9
LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ3xFbGVtZW50fSBkZWNvcmF0aW9uCisgICAgICovCiAgICAgcmVtb3ZlRGVj
b3JhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgZGVjb3JhdGlvbikKICAgICB7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5yZW1vdmVEZWNv
cmF0aW9uLmNhbGwodGhpcywgbGluZU51bWJlciwgZGVjb3JhdGlvbik7CkBAIC04MDYsNiArOTMz
LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuayA9IGZ1bmN0aW9uKHRleHRW
aWV3ZXIsIHN0YXJ0TGluZSwgZW5kTGluZSkKIH0KIAogV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JH
dXR0ZXJDaHVuay5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9
IGRlY29yYXRpb24KKyAgICAgKi8KICAgICBhZGREZWNvcmF0aW9uOiBmdW5jdGlvbihkZWNvcmF0
aW9uKQogICAgIHsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5iZWdpbkRvbVVwZGF0ZXMoKTsK
QEAgLTgxNCw2ICs5NDQsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlckNodW5rLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5lbmREb21VcGRhdGVzKCk7CiAg
ICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkZWNvcmF0aW9uCisgICAg
ICovCiAgICAgcmVtb3ZlRGVjb3JhdGlvbjogZnVuY3Rpb24oZGVjb3JhdGlvbikKICAgICB7CiAg
ICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuYmVnaW5Eb21VcGRhdGVzKCk7CkBAIC04MjIsNiArOTU1
LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuay5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuZW5kRG9tVXBkYXRlcygpOwogICAgIH0sCiAKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLwogICAgIGdldCBleHBhbmRlZCgp
CiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQ7CkBAIC04NzIsNiArMTAwOCw5
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl90ZXh0Vmlld2VyLmVuZERvbVVwZGF0ZXMoKTsKICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLwogICAgIGdldCBoZWlnaHQoKQogICAg
IHsKICAgICAgICAgaWYgKCF0aGlzLl9leHBhbmRlZExpbmVSb3dzKQpAQCAtODc5LDExICsxMDE4
LDE4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gdGhpcy5fdGV4dFZpZXdlci5fdG90YWxIZWlnaHQodGhpcy5fZXhwYW5k
ZWRMaW5lUm93c1swXSwgdGhpcy5fZXhwYW5kZWRMaW5lUm93c1t0aGlzLl9leHBhbmRlZExpbmVS
b3dzLmxlbmd0aCAtIDFdKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVt
YmVyfQorICAgICAqLwogICAgIGdldCBvZmZzZXRUb3AoKQogICAgIHsKICAgICAgICAgcmV0dXJu
ICh0aGlzLl9leHBhbmRlZExpbmVSb3dzICYmIHRoaXMuX2V4cGFuZGVkTGluZVJvd3MubGVuZ3Ro
KSA/IHRoaXMuX2V4cGFuZGVkTGluZVJvd3NbMF0ub2Zmc2V0VG9wIDogdGhpcy5lbGVtZW50Lm9m
ZnNldFRvcDsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVO
dW1iZXIKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQorICAgICAqLwogICAgIF9jcmVhdGVSb3c6
IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIgbGluZVJvdyA9IHRoaXMu
X3RleHRWaWV3ZXIuX2NhY2hlZFJvd3MucG9wKCkgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CkBAIC04OTcsNiArMTA0Myw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVy
Q2h1bmsucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbH0KKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JNb2RlbH0gdGV4dE1vZGVsCisgKiBAcGFyYW0gez9zdHJpbmd9IHVybAog
ICovCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCA9IGZ1bmN0aW9uKHRleHRNb2Rl
bCwgdXJsLCBzeW5jU2Nyb2xsTGlzdGVuZXIsIHN5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5l
ciwgZW50ZXJUZXh0Q2hhbmdlTW9kZSwgZXhpdFRleHRDaGFuZ2VNb2RlKQogewpAQCAtOTQxLDEx
ICsxMDg5LDE4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsID0gZnVuY3Rpb24o
dGV4dE1vZGVsLCB1cmwsIHN5bmNTY3JvbGxMaXN0ZW5lciwKIH0KIAogV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBtaW1lVHlwZQorICAgICAqLwogICAgIHNldCBtaW1lVHlwZShtaW1lVHlwZSkKICAg
ICB7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLm1pbWVUeXBlID0gbWltZVR5cGU7CiAgICAg
fSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVhZE9ubHkKKyAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IHJlcXVlc3RGb2N1cworICAgICAqLwogICAgIHNldFJlYWRPbmx5OiBm
dW5jdGlvbihyZWFkT25seSwgcmVxdWVzdEZvY3VzKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X3JlYWRPbmx5ID09PSByZWFkT25seSkKQEAgLTk2Myw2ICsxMTE4LDkgQEAgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmVuZERvbVVw
ZGF0ZXMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAg
ICAgKi8KICAgICByZWFkT25seTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMuX3JlYWRPbmx5OwpAQCAtOTc0LDYgKzExMzIsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuZm9j
dXMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7RWxlbWVudH0KKyAgICAg
Ki8KICAgICBkZWZhdWx0Rm9jdXNlZEVsZW1lbnQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLl9yZWFkT25seSkKQEAgLTEwMDIsNiArMTE2MywxMCBAQCBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHNlbGVjdGlvbi5hZGRS
YW5nZShyYW5nZSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBz
dGFydExpbmUKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kTGluZQorICAgICAqLwogICAgIHNl
dEVkaXRhYmxlUmFuZ2U6IGZ1bmN0aW9uKHN0YXJ0TGluZSwgZW5kTGluZSkKICAgICB7CiAgICAg
ICAgIHRoaXMuYmVnaW5Eb21VcGRhdGVzKCk7CkBAIC0xMDM5LDYgKzEyMDQsOSBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlz
Ll90ZXh0Q2h1bmtzW2NodW5rTnVtYmVyXS5yZWFkT25seSA9IGZhbHNlOwogICAgIH0sCiAKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHJhbmdlCisgICAg
ICovCiAgICAgbWFya0FuZFJldmVhbFJhbmdlOiBmdW5jdGlvbihyYW5nZSkKICAgICB7CiAgICAg
ICAgIGlmICh0aGlzLl9yYW5nZVRvTWFyaykgewpAQCAtMTA2OCw2ICsxMjM2LDkgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUg
dGhpcy5fbWFya2VkUmFuZ2VFbGVtZW50OwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqLwogICAgIGhpZ2hsaWdodExpbmU6IGZ1bmN0
aW9uKGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB0aGlzLmNsZWFyTGluZUhpZ2hsaWdodCgp
OwpAQCAtMTA5NSw2ICsxMjY2LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jYWNoZWRSb3dzID0gW107CiAgICAgfSwKIAor
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVkbworICAgICAqLwogICAgIGhhbmRs
ZVVuZG9SZWRvOiBmdW5jdGlvbihyZWRvKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2RpcnR5
TGluZXMpCkBAIC0xMTIzLDYgKzEyOTcsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNoaWZ0S2V5CisgICAgICovCiAgICAgaGFuZGxl
VGFiS2V5UHJlc3M6IGZ1bmN0aW9uKHNoaWZ0S2V5KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
X2RpcnR5TGluZXMpCkBAIC0xMTU2LDYgKzEzMzMsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHJhbmdlCisg
ICAgICovCiAgICAgX2luZGVudExpbmVzOiBmdW5jdGlvbihyYW5nZSkKICAgICB7CiAgICAgICAg
IHZhciBpbmRlbnQgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MudGV4dEVkaXRvckluZGVudC5nZXQo
KTsKQEAgLTExNzYsMTMgKzEzNTYsMTYgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaW5kZW50RW5kTGluZS0tOwogCiAgICAgICAg
IGZvciAodmFyIGxpbmVOdW1iZXIgPSByYW5nZS5zdGFydExpbmU7IGxpbmVOdW1iZXIgPD0gaW5k
ZW50RW5kTGluZTsgbGluZU51bWJlcisrKQotICAgICAgICAgICAgdGhpcy5fdGV4dE1vZGVsLmVk
aXRSYW5nZShuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24obGlu
ZU51bWJlciwgMCksIGluZGVudCk7CisgICAgICAgICAgICB0aGlzLl90ZXh0TW9kZWwuZWRpdFJh
bmdlKFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRlRnJvbUxvY2F0aW9uKGxpbmVOdW1iZXIs
IDApLCBpbmRlbnQpOwogCiAgICAgICAgIHRoaXMuX2xhc3RFZGl0ZWRSYW5nZSA9IG5ld1Jhbmdl
OwogCiAgICAgICAgIHJldHVybiBuZXdSYW5nZTsKICAgICB9LAogCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSByYW5nZQorICAgICAqLwogICAgIF91bmlu
ZGVudExpbmVzOiBmdW5jdGlvbihyYW5nZSkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9sYXN0
RWRpdGVkUmFuZ2UpCkBAIC0xMjcyLDYgKzE0NTUsMTEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAog
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gY2h1bmtOdW1iZXIKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBjcmVhdGVT
dWZmaXhDaHVuaworICAgICAqLwogICAgIF9zcGxpdENodW5rT25BTGluZTogZnVuY3Rpb24obGlu
ZU51bWJlciwgY2h1bmtOdW1iZXIsIGNyZWF0ZVN1ZmZpeENodW5rKQogICAgIHsKICAgICAgICAg
dmFyIHNlbGVjdGlvbiA9IHRoaXMuX2dldFNlbGVjdGlvbigpOwpAQCAtMTMwMCw2ICsxNDg4LDEw
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGxpbmVSb3cK
KyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZQorICAgICAqLwogICAgIF9lbmFibGVET01O
b2RlUmVtb3ZlZExpc3RlbmVyOiBmdW5jdGlvbihsaW5lUm93LCBlbmFibGUpCiAgICAgewogICAg
ICAgICBpZiAoZW5hYmxlKQpAQCAtMTMxNiwxMSArMTUwOCwxOSBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5fYnVpbGRDaHVua3MuY2FsbCh0aGlzKTsKICAg
ICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0TGluZQorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBlbmRMaW5lCisgICAgICovCiAgICAgX2NyZWF0ZU5ld0NodW5rOiBm
dW5jdGlvbihzdGFydExpbmUsIGVuZExpbmUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yTWFpbkNodW5rKHRoaXMsIHN0YXJ0TGluZSwgZW5kTGluZSk7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBmcm9tSW5kZXgKKyAg
ICAgKiBAcGFyYW0ge251bWJlcn0gdG9JbmRleAorICAgICAqLwogICAgIF9leHBhbmRDaHVua3M6
IGZ1bmN0aW9uKGZyb21JbmRleCwgdG9JbmRleCkKICAgICB7CiAgICAgICAgIHZhciBsYXN0Q2h1
bmsgPSB0aGlzLl90ZXh0Q2h1bmtzW3RvSW5kZXggLSAxXTsKQEAgLTEzMzksNiArMTUzOSwxMCBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGZyb21MaW5lCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHRv
TGluZQorICAgICAqLwogICAgIF9oaWdobGlnaHREYXRhUmVhZHk6IGZ1bmN0aW9uKGZyb21MaW5l
LCB0b0xpbmUpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fbXV0ZUhpZ2hsaWdodExpc3RlbmVy
KQpAQCAtMTM0Nyw2ICsxNTUxLDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcGFpbnRMaW5lcyhmcm9tTGluZSwgdG9MaW5l
LCB0cnVlIC8qcmVzdG9yZVNlbGVjdGlvbiovKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtudW1iZXJ9IHN0YXJ0TGluZQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRMaW5l
CisgICAgICovCiAgICAgX3NjaGVkdWxlUGFpbnRMaW5lczogZnVuY3Rpb24oc3RhcnRMaW5lLCBl
bmRMaW5lKQogICAgIHsKICAgICAgICAgaWYgKHN0YXJ0TGluZSA+PSBlbmRMaW5lKQpAQCAtMTM3
Miw2ICsxNTgwLDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB9CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gc2tpcFJlc3RvcmVTZWxlY3Rpb24KKyAgICAgKi8KICAgICBfcGFpbnRTY2hlZHVsZWRMaW5l
czogZnVuY3Rpb24oc2tpcFJlc3RvcmVTZWxlY3Rpb24pCiAgICAgewogICAgICAgICBpZiAodGhp
cy5fcGFpbnRTY2hlZHVsZWRMaW5lc1RpbWVyKQpAQCAtMTQxNyw2ICsxNjI4LDggQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gZnJvbUxpbmUKKyAgICAgKiBAcGFyYW0ge251bWJl
cn0gdG9MaW5lCiAgICAgICogQHBhcmFtIHtib29sZWFuPX0gcmVzdG9yZVNlbGVjdGlvbgogICAg
ICAqLwogICAgIF9wYWludExpbmVzOiBmdW5jdGlvbihmcm9tTGluZSwgdG9MaW5lLCByZXN0b3Jl
U2VsZWN0aW9uKQpAQCAtMTQyNCw2ICsxNjM3LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wYWludExpbmVDaHVua3MoWyB7
IHN0YXJ0TGluZTogZnJvbUxpbmUsIGVuZExpbmU6IHRvTGluZSB9IF0sIHJlc3RvcmVTZWxlY3Rp
b24pOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSByZXN0b3Jl
U2VsZWN0aW9uCisgICAgICovCiAgICAgX3BhaW50TGluZUNodW5rczogZnVuY3Rpb24obGluZUNo
dW5rcywgcmVzdG9yZVNlbGVjdGlvbikKICAgICB7CiAgICAgICAgIC8vIEZpcnN0LCBwYWludCB2
aXNpYmxlIGxpbmVzLCBzbyB0aGF0IGluIGNhc2Ugb2YgbG9uZyBsaW5lcyB3ZSBzaG91bGQgc3Rh
cnQgaGlnaGxpZ2h0aW5nCkBAIC0xNDcwLDYgKzE2ODYsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9yZXN0b3JlU2Vs
ZWN0aW9uKHNlbGVjdGlvbik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxl
bWVudH0gbGluZVJvdworICAgICAqLwogICAgIF9wYWludExpbmU6IGZ1bmN0aW9uKGxpbmVSb3cp
CiAgICAgewogICAgICAgICB2YXIgbGluZU51bWJlciA9IGxpbmVSb3cubGluZU51bWJlcjsKQEAg
LTE1MzEsNiArMTc1MCw5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0Vs
ZW1lbnR9IGxpbmVSb3cKKyAgICAgKi8KICAgICBfcmVsZWFzZUxpbmVzSGlnaGxpZ2h0OiBmdW5j
dGlvbihsaW5lUm93KQogICAgIHsKICAgICAgICAgaWYgKCFsaW5lUm93KQpAQCAtMTU4Nyw2ICsx
ODA5LDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge05vZGV9IGNvbnRh
aW5lcgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvZmZzZXQKKyAgICAgKi8KICAgICBfc2VsZWN0
aW9uVG9Qb3NpdGlvbjogZnVuY3Rpb24oY29udGFpbmVyLCBvZmZzZXQpCiAgICAgewogICAgICAg
ICBpZiAoY29udGFpbmVyID09PSB0aGlzLl9jb250YWluZXIgJiYgb2Zmc2V0ID09PSAwKQpAQCAt
MTYyNyw2ICsxODUzLDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHsgbGluZTogbGluZU51bWJlciwgY29sdW1uOiBjb2x1
bW4gfTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmUKKyAg
ICAgKiBAcGFyYW0ge251bWJlcn0gY29sdW1uCisgICAgICovCiAgICAgX3Bvc2l0aW9uVG9TZWxl
Y3Rpb246IGZ1bmN0aW9uKGxpbmUsIGNvbHVtbikKICAgICB7CiAgICAgICAgIHZhciBjaHVuayA9
IHRoaXMuY2h1bmtGb3JMaW5lKGxpbmUpOwpAQCAtMTY0Nyw2ICsxODc3LDkgQEAgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gcmFu
Z2VCb3VuZGFyeTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtOb2RlfSBlbGVt
ZW50CisgICAgICovCiAgICAgX2VuY2xvc2luZ0xpbmVSb3dPclNlbGY6IGZ1bmN0aW9uKGVsZW1l
bnQpCiAgICAgewogICAgICAgICB2YXIgbGluZVJvdyA9IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9y
U2VsZldpdGhDbGFzcygid2Via2l0LWxpbmUtY29udGVudCIpOwpAQCAtMTY2MCw2ICsxODkzLDEx
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVu
dH0gZWxlbWVudAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50CisgICAgICogQHBhcmFt
IHtzdHJpbmd9IGNsYXNzTmFtZQorICAgICAqLwogICAgIF9hcHBlbmRTcGFuOiBmdW5jdGlvbihl
bGVtZW50LCBjb250ZW50LCBjbGFzc05hbWUpCiAgICAgewogICAgICAgICBpZiAoY2xhc3NOYW1l
ID09PSAiaHRtbC1yZXNvdXJjZS1saW5rIiB8fCBjbGFzc05hbWUgPT09ICJodG1sLWV4dGVybmFs
LWxpbmsiKSB7CkBAIC0xNjc2LDYgKzE5MTQsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBlbGVtZW50LnNwYW5zLnB1c2goc3Bhbik7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudAorICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0CisgICAgICovCiAgICAgX2FwcGVuZFRleHROb2RlOiBm
dW5jdGlvbihlbGVtZW50LCB0ZXh0KQogICAgIHsKICAgICAgICAgdmFyIHRleHROb2RlID0gdGhp
cy5fY2FjaGVkVGV4dE5vZGVzLnBvcCgpOwpAQCAtMTY4OSw2ICsxOTMxLDEwIEBAIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZWxlbWVudC50
ZXh0Tm9kZXMucHVzaCh0ZXh0Tm9kZSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBjb250ZW50CisgICAgICogQHBhcmFtIHtib29sZWFufSBpc0V4dGVybmFsCisg
ICAgICovCiAgICAgX2NyZWF0ZUxpbms6IGZ1bmN0aW9uKGNvbnRlbnQsIGlzRXh0ZXJuYWwpCiAg
ICAgewogICAgICAgICB2YXIgcXVvdGUgPSBjb250ZW50LmNoYXJBdCgwKTsKQEAgLTE3MDksNiAr
MTk1NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBocmVmVmFsdWUKICAg
ICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpc0V4dGVybmFsCiAgICAgICovCiAgICAgX3Jld3JpdGVI
cmVmOiBmdW5jdGlvbihocmVmVmFsdWUsIGlzRXh0ZXJuYWwpCkBAIC0xODg1LDYgKzIxMzIsMTAg
QEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9leGl0VGV4dENoYW5nZU1vZGUob2xkUmFuZ2UsIG5ld1JhbmdlKTsKICAgICB9LAog
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSBvbGRSYW5n
ZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gbmV3UmFuZ2UKKyAgICAg
Ki8KICAgICB0ZXh0Q2hhbmdlZDogZnVuY3Rpb24ob2xkUmFuZ2UsIG5ld1JhbmdlKQogICAgIHsK
ICAgICAgICAgdGhpcy5iZWdpbkRvbVVwZGF0ZXMoKTsKQEAgLTE4OTQsNiArMjE0NSwxMCBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuZW5kRG9tVXBkYXRlcygpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5UZXh0UmFuZ2V9IHJhbmdlCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQK
KyAgICAgKi8KICAgICBfZWRpdFJhbmdlOiBmdW5jdGlvbihyYW5nZSwgdGV4dCkKICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLl9sYXN0RWRpdGVkUmFuZ2UgJiYgKCF0ZXh0IHx8IHRleHQuaW5kZXhP
ZigiXG4iKSAhPT0gLTEgfHwgdGhpcy5fbGFzdEVkaXRlZFJhbmdlLmVuZExpbmUgIT09IHJhbmdl
LnN0YXJ0TGluZSB8fCB0aGlzLl9sYXN0RWRpdGVkUmFuZ2UuZW5kQ29sdW1uICE9PSByYW5nZS5z
dGFydENvbHVtbikpCkBAIC0xOTA1LDYgKzIxNjAsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBuZXdSYW5nZTsKICAgICB9
LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSByYW5n
ZQorICAgICAqLwogICAgIF9yZW1vdmVEZWNvcmF0aW9uc0luUmFuZ2U6IGZ1bmN0aW9uKHJhbmdl
KQogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuX2NodW5rTnVtYmVyRm9yTGluZShy
YW5nZS5zdGFydExpbmUpOyBpIDwgdGhpcy5fdGV4dENodW5rcy5sZW5ndGg7ICsraSkgewpAQCAt
MTkxNSw2ICsyMTczLDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5UZXh0UmFuZ2V9IG9sZFJhbmdlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuVGV4dFJhbmdlfSBuZXdSYW5nZQorICAgICAqLwogICAgIF91cGRhdGVDaHVua3NGb3JSYW5n
ZXM6IGZ1bmN0aW9uKG9sZFJhbmdlLCBuZXdSYW5nZSkKICAgICB7CiAgICAgICAgIC8vIFVwZGF0
ZSB0aGUgY2h1bmtzIGluIHJhbmdlOiBmaXJzdENodW5rTnVtYmVyIDw9IGluZGV4IDw9IGxhc3RD
aHVua051bWJlcgpAQCAtMjAxMSw2ICsyMjczLDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsTGVmdCA9
IHNjcm9sbExlZnQ7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlRleHRSYW5nZX0gcmFuZ2UKKyAgICAgKi8KICAgICBfdXBkYXRlSGlnaGxpZ2h0c0ZvclJh
bmdlOiBmdW5jdGlvbihyYW5nZSkKICAgICB7CiAgICAgICAgIHZhciB2aXNpYmxlRnJvbSA9IHRo
aXMuZWxlbWVudC5zY3JvbGxUb3A7CkBAIC0yMDMzLDYgKzIyOTgsMTAgQEAgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXBhaW50
QWxsKCk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59
IGxpbmVzCisgICAgICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50CisgICAgICovCiAgICAgX2Nv
bGxlY3RMaW5lc0Zyb21EaXY6IGZ1bmN0aW9uKGxpbmVzLCBlbGVtZW50KQogICAgIHsKICAgICAg
ICAgdmFyIHRleHRDb250ZW50cyA9IFtdOwpAQCAtMjA2MywxNiArMjMzMiwxOSBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JDaAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgotICovCi1XZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5DaHVuayA9IGZ1bmN0aW9uKHRleHRWaWV3ZXIsIHN0YXJ0TGluZSwg
ZW5kTGluZSkKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWx9
IGNodW5rZWRQYW5lbAorICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0TGluZQorICogQHBhcmFtIHtu
dW1iZXJ9IGVuZExpbmUKKyovCitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuayA9IGZ1
bmN0aW9uKGNodW5rZWRQYW5lbCwgc3RhcnRMaW5lLCBlbmRMaW5lKQogewotICAgIHRoaXMuX3Rl
eHRWaWV3ZXIgPSB0ZXh0Vmlld2VyOwotICAgIHRoaXMuX3RleHRNb2RlbCA9IHRleHRWaWV3ZXIu
X3RleHRNb2RlbDsKKyAgICB0aGlzLl9jaHVua2VkUGFuZWwgPSBjaHVua2VkUGFuZWw7CisgICAg
dGhpcy5fdGV4dE1vZGVsID0gY2h1bmtlZFBhbmVsLl90ZXh0TW9kZWw7CiAKICAgICB0aGlzLmVs
ZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0aGlzLmVsZW1lbnQu
bGluZU51bWJlciA9IHN0YXJ0TGluZTsKICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gIndl
YmtpdC1saW5lLWNvbnRlbnQiOwotICAgIHRoaXMuX3RleHRWaWV3ZXIuX2VuYWJsZURPTU5vZGVS
ZW1vdmVkTGlzdGVuZXIodGhpcy5lbGVtZW50LCB0cnVlKTsKKyAgICB0aGlzLl9jaHVua2VkUGFu
ZWwuX2VuYWJsZURPTU5vZGVSZW1vdmVkTGlzdGVuZXIodGhpcy5lbGVtZW50LCB0cnVlKTsKIAog
ICAgIHRoaXMuX3N0YXJ0TGluZSA9IHN0YXJ0TGluZTsKICAgICBlbmRMaW5lID0gTWF0aC5taW4o
dGhpcy5fdGV4dE1vZGVsLmxpbmVzQ291bnQsIGVuZExpbmUpOwpAQCAtMjA4Nyw3ICsyMzU5LDcg
QEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsgPSBmdW5jdGlvbih0ZXh0Vmlld2Vy
LCBzdGFydExpbmUsIGVuZExpbmUpCiBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuay5w
cm90b3R5cGUgPSB7CiAgICAgYWRkRGVjb3JhdGlvbjogZnVuY3Rpb24oZGVjb3JhdGlvbikKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuYmVnaW5Eb21VcGRhdGVzKCk7CisgICAgICAg
IHRoaXMuX2NodW5rZWRQYW5lbC5iZWdpbkRvbVVwZGF0ZXMoKTsKICAgICAgICAgaWYgKHR5cGVv
ZiBkZWNvcmF0aW9uID09PSAic3RyaW5nIikKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRT
dHlsZUNsYXNzKGRlY29yYXRpb24pOwogICAgICAgICBlbHNlIHsKQEAgLTIwOTgsMzUgKzIzNzAs
NDQgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LmRlY29yYXRpb25zRWxlbWVudC5h
cHBlbmRDaGlsZChkZWNvcmF0aW9uKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl90ZXh0Vmll
d2VyLmVuZERvbVVwZGF0ZXMoKTsKKyAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLmVuZERvbVVw
ZGF0ZXMoKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd8RWxlbWVu
dH0gZGVjb3JhdGlvbgorICAgICAqLwogICAgIHJlbW92ZURlY29yYXRpb246IGZ1bmN0aW9uKGRl
Y29yYXRpb24pCiAgICAgewotICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmJlZ2luRG9tVXBkYXRl
cygpOworICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuYmVnaW5Eb21VcGRhdGVzKCk7CiAgICAg
ICAgIGlmICh0eXBlb2YgZGVjb3JhdGlvbiA9PT0gInN0cmluZyIpCiAgICAgICAgICAgICB0aGlz
LmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcyhkZWNvcmF0aW9uKTsKICAgICAgICAgZWxzZSBpZiAo
dGhpcy5lbGVtZW50LmRlY29yYXRpb25zRWxlbWVudCkKICAgICAgICAgICAgIHRoaXMuZWxlbWVu
dC5kZWNvcmF0aW9uc0VsZW1lbnQucmVtb3ZlQ2hpbGQoZGVjb3JhdGlvbik7Ci0gICAgICAgIHRo
aXMuX3RleHRWaWV3ZXIuZW5kRG9tVXBkYXRlcygpOworICAgICAgICB0aGlzLl9jaHVua2VkUGFu
ZWwuZW5kRG9tVXBkYXRlcygpOwogICAgIH0sCiAKICAgICByZW1vdmVBbGxEZWNvcmF0aW9uczog
ZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5iZWdpbkRvbVVwZGF0
ZXMoKTsKKyAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLmJlZ2luRG9tVXBkYXRlcygpOwogICAg
ICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gIndlYmtpdC1saW5lLWNvbnRlbnQiOwogICAg
ICAgICBpZiAodGhpcy5lbGVtZW50LmRlY29yYXRpb25zRWxlbWVudCkgewogICAgICAgICAgICAg
dGhpcy5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudC5kZWNvcmF0aW9uc0VsZW1lbnQp
OwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuZWxlbWVudC5kZWNvcmF0aW9uc0VsZW1lbnQ7CiAg
ICAgICAgIH0KLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5lbmREb21VcGRhdGVzKCk7CisgICAg
ICAgIHRoaXMuX2NodW5rZWRQYW5lbC5lbmREb21VcGRhdGVzKCk7CiAgICAgfSwKIAorICAgIC8q
KgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCiAgICAgZ2V0IGRlY29yYXRlZCgp
CiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50LmNsYXNzTmFtZSAhPT0gIndlYmtp
dC1saW5lLWNvbnRlbnQiIHx8ICEhKHRoaXMuZWxlbWVudC5kZWNvcmF0aW9uc0VsZW1lbnQgJiYg
dGhpcy5lbGVtZW50LmRlY29yYXRpb25zRWxlbWVudC5maXJzdENoaWxkKTsKICAgICB9LAogCisg
ICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLwogICAgIGdldCBzdGFydExp
bmUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0TGluZTsKQEAgLTIxNDIsNiAr
MjQyMyw5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpbkNodW5rLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgfQogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQor
ICAgICAqLwogICAgIGdldCBleHBhbmRlZCgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5f
ZXhwYW5kZWQ7CkBAIC0yMTU2LDQ1ICsyNDQwLDQ1IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TWFpbkNodW5rLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAodGhpcy5saW5lc0NvdW50ID09
PSAxKSB7CiAgICAgICAgICAgICBpZiAoZXhwYW5kZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5f
dGV4dFZpZXdlci5fcGFpbnRMaW5lKHRoaXMuZWxlbWVudCk7CisgICAgICAgICAgICAgICAgdGhp
cy5fY2h1bmtlZFBhbmVsLl9wYWludExpbmUodGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuYmVnaW5Eb21VcGRh
dGVzKCk7CisgICAgICAgIHRoaXMuX2NodW5rZWRQYW5lbC5iZWdpbkRvbVVwZGF0ZXMoKTsKIAog
ICAgICAgICBpZiAoZXhwYW5kZWQpIHsKICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkTGluZVJv
d3MgPSBbXTsKICAgICAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50LnBh
cmVudEVsZW1lbnQ7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5zdGFydExpbmU7IGkg
PCB0aGlzLnN0YXJ0TGluZSArIHRoaXMubGluZXNDb3VudDsgKytpKSB7CiAgICAgICAgICAgICAg
ICAgdmFyIGxpbmVSb3cgPSB0aGlzLl9jcmVhdGVSb3coaSk7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fdGV4dFZpZXdlci5fZW5hYmxlRE9NTm9kZVJlbW92ZWRMaXN0ZW5lcihsaW5lUm93LCB0cnVl
KTsKKyAgICAgICAgICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuX2VuYWJsZURPTU5vZGVSZW1v
dmVkTGlzdGVuZXIobGluZVJvdywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRl
RWxlbWVudFJlYWRPbmx5U3RhdGUobGluZVJvdyk7CiAgICAgICAgICAgICAgICAgcGFyZW50RWxl
bWVudC5pbnNlcnRCZWZvcmUobGluZVJvdywgdGhpcy5lbGVtZW50KTsKICAgICAgICAgICAgICAg
ICB0aGlzLl9leHBhbmRlZExpbmVSb3dzLnB1c2gobGluZVJvdyk7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLl9lbmFibGVET01Ob2RlUmVtb3ZlZExpc3RlbmVy
KHRoaXMuZWxlbWVudCwgZmFsc2UpOworICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9l
bmFibGVET01Ob2RlUmVtb3ZlZExpc3RlbmVyKHRoaXMuZWxlbWVudCwgZmFsc2UpOwogICAgICAg
ICAgICAgcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQpOwotICAgICAgICAg
ICAgdGhpcy5fdGV4dFZpZXdlci5fcGFpbnRMaW5lcyh0aGlzLnN0YXJ0TGluZSwgdGhpcy5zdGFy
dExpbmUgKyB0aGlzLmxpbmVzQ291bnQpOworICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVs
Ll9wYWludExpbmVzKHRoaXMuc3RhcnRMaW5lLCB0aGlzLnN0YXJ0TGluZSArIHRoaXMubGluZXND
b3VudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB2YXIgZWxlbWVudEluc2VydGVk
ID0gZmFsc2U7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2V4cGFuZGVk
TGluZVJvd3MubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2YXIgbGluZVJvdyA9IHRo
aXMuX2V4cGFuZGVkTGluZVJvd3NbaV07Ci0gICAgICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdl
ci5fZW5hYmxlRE9NTm9kZVJlbW92ZWRMaXN0ZW5lcihsaW5lUm93LCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9lbmFibGVET01Ob2RlUmVtb3ZlZExpc3RlbmVy
KGxpbmVSb3csIGZhbHNlKTsKICAgICAgICAgICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IGxp
bmVSb3cucGFyZW50RWxlbWVudDsKICAgICAgICAgICAgICAgICBpZiAocGFyZW50RWxlbWVudCkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnRJbnNlcnRlZCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgZWxlbWVudEluc2VydGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuX2VuYWJsZURPTU5vZGVSZW1vdmVkTGlzdGVuZXIodGhp
cy5lbGVtZW50LCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NodW5rZWRQ
YW5lbC5fZW5hYmxlRE9NTm9kZVJlbW92ZWRMaXN0ZW5lcih0aGlzLmVsZW1lbnQsIHRydWUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUodGhpcy5l
bGVtZW50LCBsaW5lUm93KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGxpbmVSb3cpOwogICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLl9yZWxlYXNlTGluZXNIaWdobGln
aHQobGluZVJvdyk7CisgICAgICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9yZWxlYXNl
TGluZXNIaWdobGlnaHQobGluZVJvdyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fZXhwYW5kZWRMaW5lUm93czsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX3Rl
eHRWaWV3ZXIuZW5kRG9tVXBkYXRlcygpOworICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuZW5k
RG9tVXBkYXRlcygpOwogICAgIH0sCiAKICAgICBzZXQgcmVhZE9ubHkocmVhZE9ubHkpCkBAIC0y
MjEwLDYgKzI0OTQsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5
cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7Ym9v
bGVhbn0KKyAgICAgKi8KICAgICBnZXQgcmVhZE9ubHkoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3JlYWRPbmx5OwpAQCAtMjIyMywyMSArMjUxMCwzMSBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBlbGVtZW50LnJlbW92
ZVN0eWxlQ2xhc3MoInRleHQtZWRpdG9yLXJlYWQtb25seSIpOwogICAgIH0sCiAKKyAgICAvKioK
KyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCiAgICAgZ2V0IGhlaWdodCgpCiAgICAg
ewogICAgICAgICBpZiAoIXRoaXMuX2V4cGFuZGVkTGluZVJvd3MpCi0gICAgICAgICAgICByZXR1
cm4gdGhpcy5fdGV4dFZpZXdlci5fdG90YWxIZWlnaHQodGhpcy5lbGVtZW50KTsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX3RleHRWaWV3ZXIuX3RvdGFsSGVpZ2h0KHRoaXMuX2V4cGFuZGVkTGluZVJv
d3NbMF0sIHRoaXMuX2V4cGFuZGVkTGluZVJvd3NbdGhpcy5fZXhwYW5kZWRMaW5lUm93cy5sZW5n
dGggLSAxXSk7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtlZFBhbmVsLl90b3RhbEhl
aWdodCh0aGlzLmVsZW1lbnQpOworICAgICAgICByZXR1cm4gdGhpcy5fY2h1bmtlZFBhbmVsLl90
b3RhbEhlaWdodCh0aGlzLl9leHBhbmRlZExpbmVSb3dzWzBdLCB0aGlzLl9leHBhbmRlZExpbmVS
b3dzW3RoaXMuX2V4cGFuZGVkTGluZVJvd3MubGVuZ3RoIC0gMV0pOwogICAgIH0sCiAKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCiAgICAgZ2V0IG9mZnNldFRvcCgp
CiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMuX2V4cGFuZGVkTGluZVJvd3MgJiYgdGhpcy5f
ZXhwYW5kZWRMaW5lUm93cy5sZW5ndGgpID8gdGhpcy5fZXhwYW5kZWRMaW5lUm93c1swXS5vZmZz
ZXRUb3AgOiB0aGlzLmVsZW1lbnQub2Zmc2V0VG9wOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEByZXR1cm4ge0VsZW1lbnR9Cisg
ICAgICovCiAgICAgX2NyZWF0ZVJvdzogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7Ci0gICAg
ICAgIHZhciBsaW5lUm93ID0gdGhpcy5fdGV4dFZpZXdlci5fY2FjaGVkUm93cy5wb3AoKSB8fCBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdmFyIGxpbmVSb3cgPSB0aGlz
Ll9jaHVua2VkUGFuZWwuX2NhY2hlZFJvd3MucG9wKCkgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CiAgICAgICAgIGxpbmVSb3cubGluZU51bWJlciA9IGxpbmVOdW1iZXI7CiAgICAg
ICAgIGxpbmVSb3cuY2xhc3NOYW1lID0gIndlYmtpdC1saW5lLWNvbnRlbnQiOwogICAgICAgICBs
aW5lUm93LnRleHRDb250ZW50ID0gdGhpcy5fdGV4dE1vZGVsLmxpbmUobGluZU51bWJlcik7CkBA
IC0yMjQ2LDYgKzI1NDMsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gbGluZVJvdzsKICAgICB9LAogCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50
fQorICAgICAqLwogICAgIGdldEV4cGFuZGVkTGluZVJvdzogZnVuY3Rpb24obGluZU51bWJlcikK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWQgfHwgbGluZU51bWJlciA8IHRoaXMu
c3RhcnRMaW5lIHx8IGxpbmVOdW1iZXIgPj0gdGhpcy5zdGFydExpbmUgKyB0aGlzLmxpbmVzQ291
bnQpCg==
</data>
<flag name="review"
          id="158322"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>