<?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>109453</bug_id>
          
          <creation_ts>2013-02-11 09:17:40 -0800</creation_ts>
          <short_desc>Web Inspector: provide basic console.table implementation (no [,columns] support)</short_desc>
          <delta_ts>2013-02-18 02:53:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mkwst+watchlist</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>syoichi</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829778</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-11 09:17:40 -0800</bug_when>
    <thetext>This change adds support for console.table command supported in Firebug. Here is the syntax:

    console.table([[1,2,3], [2,3,4]]);
    console.table([{a:1, b:2, c:3}, {a:&quot;foo&quot;, b:false, c:undefined}]);

Screenshot to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829782</commentid>
    <comment_count>1</comment_count>
      <attachid>187597</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-11 09:21:54 -0800</bug_when>
    <thetext>Created attachment 187597
[IMAGE] Screenshot with patch applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829838</commentid>
    <comment_count>2</comment_count>
      <attachid>187611</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-11 10:16:14 -0800</bug_when>
    <thetext>Created attachment 187611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829879</commentid>
    <comment_count>3</comment_count>
      <attachid>187611</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-11 10:50:59 -0800</bug_when>
    <thetext>Comment on attachment 187611
Patch

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

&gt; Source/WebCore/inspector/front-end/ConsoleMessage.js:86
&gt; +            delete this._dataGrid;

this._dataGrid was never defined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830857</commentid>
    <comment_count>4</comment_count>
      <attachid>187850</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-12 06:08:15 -0800</bug_when>
    <thetext>Created attachment 187850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830858</commentid>
    <comment_count>5</comment_count>
      <attachid>187851</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-12 06:09:04 -0800</bug_when>
    <thetext>Created attachment 187851
[IMAGE] Screenshot with beverloo applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834972</commentid>
    <comment_count>6</comment_count>
      <attachid>188762</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-17 02:56:19 -0800</bug_when>
    <thetext>Created attachment 188762
[wip]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834976</commentid>
    <comment_count>7</comment_count>
      <attachid>188763</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-17 04:38:02 -0800</bug_when>
    <thetext>Created attachment 188763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835259</commentid>
    <comment_count>8</comment_count>
      <attachid>188763</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-18 02:25:19 -0800</bug_when>
    <thetext>Comment on attachment 188763
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptSource.js:151
&gt; +        if (InjectedScriptHost.type(columns) == &quot;array&quot;) {

===</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835279</commentid>
    <comment_count>9</comment_count>
      <attachid>188763</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 02:53:19 -0800</bug_when>
    <thetext>Comment on attachment 188763
Patch

Clearing flags on attachment: 188763

Committed r143186: &lt;http://trac.webkit.org/changeset/143186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835280</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 02:53:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187597</attachid>
            <date>2013-02-11 09:21:54 -0800</date>
            <delta_ts>2013-02-12 06:09:04 -0800</delta_ts>
            <desc>[IMAGE] Screenshot with patch applied</desc>
            <filename>Screen Shot 2013-02-11 at 5.17.46 PM.png</filename>
            <type>image/png</type>
            <size>21138</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">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
lUs9lcZJa0qHSZ+SfiSDklGTCZYplumXRcmqy4bInpJ9LIeV2yJHkyuXG5InyhvKx8nXyo8pcCnY
KKQpNCvMKYopeioeUexV/KmkphSuVKn0Spld2Uo5TblV+bOKjIqfSrHKU1VmVTPVPaotqgubZTcH
bD69+bkaWW2rWpZap9oPdQ11unq9+oyGmIaPRonGkCaHpr1mjuadLdgtRlv2bGnbsqKlrhWj1aj1
SVteO0z7vPa0jqROgE6lzriuiC5V94zuqB5Fz0evTG9UX1ifql+u/9ZA1MDfoMrgnaG0YahhneGc
kZIR3eiq0bKxlnGy8S0TtIm5SbbJQ1N2UxfTItMRMxGzILNas3lzNfNd5rcssBbWFkcshiwFLP0s
ayznrTSskq26rInWTtZF1m9tZGzoNq1bUVutth7b+tpW3JZm22wH7CztjtkN20va77S/7oBzsHco
dphyVHbc7djrRHbydjrv9NXZyDnP+ZWLlEusS6crq+t21xrXZTcTt6Nuo+6K7snu9z14PUI8Wjzx
nq6eVZ5L20y3Hd82uV1te+b2wR2SOxJ23PXi9Qr3avdm9aZ6X/bB+rj5nPf5TrWjllOXfC19S3zn
/Yz9Tvh98Dfwz/efCdANOBrwLlA38GjgdJBu0LGgmWD94ILg2RDjkKKQhVCL0NLQ5TC7sOqw9XC3
8IYIhgifiGs0dloYrStSMDIh8nGUbFRm1OhOrZ3Hd87TrelV0Uj0juiWGA54ye2LlYrdFzsWpxdX
HPct3jX+cgIpgZbQlyiTeCDxXZJZ0tldmF1+uzp3C+9O3T2WbJh8JgVJ8U3p3CO6J2PP5F7zvedS
CalhqQ/SlNKOpn1Jd0tvzRDI2Jsxvs98X20mSyY9cyhLO6t0P2Z/yP6HB1QPnDzwM9s/+95BpYMF
B7/n+OXcO6R8qPDQem5g7sM89bzTh3GHaYcHj+gfOXeUdDTp6Pixrcea8in52flfjnsfv1uwuaD0
BOFE7InRQpvClpNiJw+f/F4UXPSs2Ki4oYS/5EDJ8in/UwOnDU7XlwqUHixdLQspe37G/ExTuUR5
QQWuIq5iqtK1sves5tmaKt6qg1U/qmnVo+ccz3XVaNTUnOc/n1eLqo2tnanbXvfogsmFlnr5+jMN
XA0HL4KLsRffX/K5NNho3dh5WfNy/RXxKyVXyVezm5CmxKb55uDm0RaPlsfXrK51tmq3Xr2ucL26
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
qTFisX3xsYmiSU9370/R37OS2pKeuE8/C7e/JzsjxzgXndd7JPuY7XFywYvC0qLAEvlTS6XtZ7Iq
HM8KVc2eu37+YJ1tPblh+FLN5firFs18LQut99uqbuy7FdBp2aXYw3UHuTt7/+WD+/3tjy89oT+T
H3z3vOyl22vCcPMbvzHGt+cnLCZH3tGmV9+nzaI/7p1bm49aGF90/nLrq+xywQpYDVp78EPtZ/Ef
/2MAIyABPiAJM01mcO1HgHRQDJrAAJiHvpdDLGFGKAvmgPqQeRQnSgfljzqEakFNoEloA7jiz6Cf
YPAYHUw05jxmHCsAV3s+dgDHjnPCHce9wAvhA/EN+FWYRclnmGBUZzzA+IagRsglzDCZMlUQmYjJ
xM/MocxTML8xzRrJusaWQxIl3WT3JTORWzkiOWU5P8CVncrtyqPEy8I7zzfE3ynQKFglVEopFj4l
UiFaL9YmfldiSHJGGpHhl9WW85bfr3BVcUqZX8VN9cTmV+piGlGaN7RI2iE63Xpi+gcMFo18jQdN
7cz6LOwsB639bBZtaXaTDt6OI87eLlNuke4/PQ9vl9zR4e1DxfjW+rsF4oKuh0SFSYaP0crg3Vwy
eiH2Rnxeot8unWSulKW9z9NuZNRkFuxPynbJUckl5307MnKs93jjibKTh4vTTsWVhp8JqPA5613t
VUOtdbqg3MB68WNj35XzTVktvq1abaztozfrOxJu63aDnpt3dt1Tu//xQXm/x2OWgQNP7j9DBjWG
wp+XvRh4BV7LDzuPxL8pGK0f63j7YHxw4tnk46mud43TJTPJ770/qMEb4/DH6jn6J/VP3+avLcR8
Vvg8s1jyxW4JtXTx645lwvKVbztWcCsXVh1Xv62d+q7/fexH+k/Rn53rPhv+jw5UhTlL+CBEI5h+
HFlfX5SAucqjAPw4sr6+Vr6+/qMCBhuvAbgV/vt/lw1mHMzVlzRvoB7jjL0b3/98/gsrpsXaVHD0
EAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6
bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRm
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDov
L25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+
NzEwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9u
PjIwMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8
L3JkZjpSREY+CjwveDp4bXBtZXRhPgrUwpJvAAA4i0lEQVR4Ae2dD3QUVZ7vf9m0piJx0r5hQnuE
EBaQxokSFtQgIAGdNczkPMMDDp3Ft2QXjgYPM8TFGWBlF3J0nsmqQxgZDa7OxB15Jkd5xH38CbuM
NAoSzsCx0czSYng0ECVk8NDRcFKBhLzfrf5XXV39L+lOupNvnZz0rVv3/n6/+7m/qvvrW7e6Uvr6
+ggbCIAACIAACIAACAyMwF8MrDpqgwAIgAAIgAAIgIAgYIgJho6OjpjIgRAQAAEQAAEQAIEkJZCC
Gx9J2nMwGwRAAARAAAQSigBufCRUd8AYEAABEAABEEhWAskXUrTZyNZENlvcidttJPdotUSr3VZL
ljp/ITKVV1BKBdWqm6Cb6V8vxJ7cSbIzxHHfocCS9jphDP/ZZV+x6FIDMz4qXdxMWWWnrvG6mSST
pYJsnVFpQ2EQAAEQAIEoCCRfSGE/QeUHaPoHPEb0c2t6h6wt4ep20tQPdEbZ6LR3Uul5Ki/Q6uJY
4tAysuT65Wsy5Vaq2y5G+rpmv2LanVYqraD0Vyh9G6VUkiPEkCmrSr5Adk9JczGde1BIDYyftLqC
72uMdxW0vaNEKh5FOrU9sYgrpvGLsQJLt4pQjJuZXuWLxnSN180kicq+T6UNgXKRAwIgAAIgEBsC
oUKK3yhbbPTETkrBKrIuG5A4+1nfgBpUkIHmEUmS9nhU2h1WOpVKeSatEN435ZAUsDTWl9lJ+W9R
iUzc0NAjPX9rN95F51ZS10pa203FIYfMstl0aS11PUUv9pLFW1Ii01hhYUBbdcwOkeUzXikk22n6
2RDF3Yc4Ftm/mK6uoHPLyWIOVb7mLdqWSZfW0dVllD/aU1LXeN1MovwCOnWW2jxV8QkCIAACIBBb
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187611</attachid>
            <date>2013-02-11 10:16:14 -0800</date>
            <delta_ts>2013-02-12 06:08:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109453-20130211181245.patch</filename>
            <type>text/plain</type>
            <size>33716</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RhYTBlODFlNmFjMGMw
MGQ3OGVmNjVmNWExM2RiNDZjODZkMTJmZi4uYzRkNzhlYWIzOTE2ZDdjNjBhNmRjMTNjZDViODhl
NjI4YjQwYTA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDEzLTAyLTExICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYmFzaWMgY29uc29sZS50YWJsZSBpbXBsZW1lbnRhdGlvbiAobm8gWyxjb2x1
bW5zXSBzdXBwb3J0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9ybWF0dGluZyB0YWJsZSB1c2luZyBEYXRhR3JpZC4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmg6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VUeXBlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNj
cmlwdDo6d3JhcE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6
CisgICAgICAgIChJbmplY3RlZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLndpbGxIaWRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRQ
YXJhbWV0ZXJBc0FycmF5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLl9mb3JtYXRQYXJhbWV0ZXJBc1RhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZS5fYXBwZW5kQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZS5fY29uc29sZUNsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fdXBkYXRlTWVzc2FnZUxpc3QpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmQucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlLmFkZE1lc3NhZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanM6CisgICAgICAgICguc29ydERh
dGFHcmlkLmNvbXBhcmF0b3IpOgorICAgICAgICAoLnNvcnREYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3JlYXRlU29ydGFibGVEYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnJlbmRlcklubGluZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EYXRhYmFzZVF1ZXJ5Vmlldy5wcm90b3R5cGUuX3F1ZXJ5RmluaXNoZWQpOgorICAg
ICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb25zb2xlOjp0YWJs
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuaDoKKyAgICAg
ICAgKENvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5pZGw6CisKKzIwMTMtMDItMTEg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIElu
c3BlY3RvcjogaGlnaGxpZ2h0IERPTSBub2RlcyBvbiBob3ZlciB3aGlsZSBkZWJ1Z2dpbmcKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM1NQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmgKaW5kZXggMTkwZjExNTgy
MjdmZTVjOWNlODg0MzY2YzRiYTdjZjc1NGVmOWZjMC4uMzFmMDNiMmFhZjI3ZTlkNjViMjZkZWFl
NmI2ZmEwODkyNWJhZmFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
bnNvbGVBUElUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJ
VHlwZXMuaApAQCAtMzEsNiArMzEsNyBAQCBlbnVtIE1lc3NhZ2VUeXBlIHsKICAgICBMb2dNZXNz
YWdlVHlwZSwKICAgICBEaXJNZXNzYWdlVHlwZSwKICAgICBEaXJYTUxNZXNzYWdlVHlwZSwKKyAg
ICBUYWJsZU1lc3NhZ2VUeXBlLAogICAgIFRyYWNlTWVzc2FnZVR5cGUsCiAgICAgU3RhcnRHcm91
cE1lc3NhZ2VUeXBlLAogICAgIFN0YXJ0R3JvdXBDb2xsYXBzZWRNZXNzYWdlVHlwZSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCmluZGV4IDcyNDJkOGQ2YTFj
ZDk1NjViNGFlMDkwNDFhYzBiYjg0NTUwMzg3NDcuLjE4MTcxZjY1MTQwMDJkNDc3OTFkZDc1ZGJl
YzUzYmViYmY0NTUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcApAQCAtMTU0LDYgKzE1NCw3IEBAIHN0YXRpYyBUeXBlQnVpbGRlcjo6Q29uc29sZTo6
Q29uc29sZU1lc3NhZ2U6OlR5cGU6OkVudW0gbWVzc2FnZVR5cGVWYWx1ZShNZXNzYWdlCiAgICAg
Y2FzZSBDbGVhck1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNv
bGVNZXNzYWdlOjpUeXBlOjpDbGVhcjsKICAgICBjYXNlIERpck1lc3NhZ2VUeXBlOiByZXR1cm4g
VHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpEaXI7CiAgICAgY2Fz
ZSBEaXJYTUxNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xl
TWVzc2FnZTo6VHlwZTo6RGlyeG1sOworICAgIGNhc2UgVGFibGVNZXNzYWdlVHlwZTogcmV0dXJu
IFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6VGFibGU7CiAgICAg
Y2FzZSBUcmFjZU1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNv
bGVNZXNzYWdlOjpUeXBlOjpUcmFjZTsKICAgICBjYXNlIFN0YXJ0R3JvdXBNZXNzYWdlVHlwZTog
cmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6U3RhcnRH
cm91cDsKICAgICBjYXNlIFN0YXJ0R3JvdXBDb2xsYXBzZWRNZXNzYWdlVHlwZTogcmV0dXJuIFR5
cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6U3RhcnRHcm91cENvbGxh
cHNlZDsKQEAgLTE5NCw3ICsxOTUsNyBAQCB2b2lkIENvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250
ZW5kKEluc3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVuZCwgSW5qZWN0ZQogICAgICAg
ICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewogICAgICAgICAgICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiA+
IGpzb25BcmdzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1v
dGVPYmplY3Q+OjpjcmVhdGUoKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2FyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gaW5zcGVjdG9yVmFsdWUg
PSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KG1fYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLCAi
Y29uc29sZSIsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVC
dWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IGluc3BlY3RvclZhbHVlID0gaW5qZWN0ZWRT
Y3JpcHQud3JhcE9iamVjdChtX2FyZ3VtZW50cy0+YXJndW1lbnRBdChpKSwgImNvbnNvbGUiLCBn
ZW5lcmF0ZVByZXZpZXcsIG1fdHlwZSA9PSBUYWJsZU1lc3NhZ2VUeXBlKTsKICAgICAgICAgICAg
ICAgICBpZiAoIWluc3BlY3RvclZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA2MGFhMGNhODkyODE3YjFlMmQ1
OTk2NmUwMTMzYWZmZTJlODJjMjI4Li5lMWNlMmUzNmQ4ODVlOWM2ZDY1OGZjMzhiMjQ4NGZjYjJj
OTkyMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAK
QEAgLTIzMCw3ICsyMzAsNyBAQCBQYXNzUmVmUHRyPEFycmF5PENhbGxGcmFtZT4gPiBJbmplY3Rl
ZFNjcmlwdDo6d3JhcENhbGxGcmFtZXMoY29uc3QgU2NyaXB0VmFsdWUmCiB9CiAjZW5kaWYKIAot
UGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJbmplY3RlZFNj
cmlwdDo6d3JhcE9iamVjdChjb25zdCBTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IFN0cmluZyYg
Z3JvdXBOYW1lLCBib29sIGdlbmVyYXRlUHJldmlldykgY29uc3QKK1Bhc3NSZWZQdHI8VHlwZUJ1
aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5qZWN0ZWRTY3JpcHQ6OndyYXBPYmplY3Qo
Y29uc3QgU2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBTdHJpbmcmIGdyb3VwTmFtZSwgYm9vbCBn
ZW5lcmF0ZVByZXZpZXcsIGJvb2wgZ2VuZXJhdGVUYWJsZVByZXZpZXcpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKCFoYXNOb1ZhbHVlKCkpOwogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCB3cmFwRnVuY3Rp
b24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgIndyYXBPYmplY3QiKTsKQEAgLTIzOCw2ICsyMzgs
NyBAQCBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluamVj
dGVkU2NyaXB0Ojp3cmFwT2JqZWN0KGNvbnN0CiAgICAgd3JhcEZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KGdyb3VwTmFtZSk7CiAgICAgd3JhcEZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbkFjY2Vz
c0luc3BlY3RlZFdpbmRvdygpKTsKICAgICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZ2Vu
ZXJhdGVQcmV2aWV3KTsKKyAgICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZ2VuZXJhdGVU
YWJsZVByZXZpZXcpOwogICAgIGJvb2wgaGFkRXhjZXB0aW9uID0gZmFsc2U7CiAgICAgU2NyaXB0
VmFsdWUgciA9IGNhbGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZCh3cmFwRnVuY3Rpb24sIGhhZEV4
Y2VwdGlvbik7CiAgICAgaWYgKGhhZEV4Y2VwdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuaAppbmRleCAyZjk2YzJkZjc4ODY4OTJkYjMzNzNhNTQ2YTAwNzZi
Yzk4MDZiM2IyLi5lNTliODdmODgzMWUxMWUxMWZkMjMwMjc4MDlkYWU4NzAyOWZiNThmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtOTEsNyArOTEsNyBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6
OkRlYnVnZ2VyOjpDYWxsRnJhbWU+ID4gd3JhcENhbGxGcmFtZXMoY29uc3QgU2NyaXB0VmFsdWUm
KTsKICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3Rl
T2JqZWN0PiB3cmFwT2JqZWN0KGNvbnN0IFNjcmlwdFZhbHVlJiwgY29uc3QgU3RyaW5nJiBncm91
cE5hbWUsIGJvb2wgZ2VuZXJhdGVQcmV2aWV3ID0gZmFsc2UpIGNvbnN0OworICAgIFBhc3NSZWZQ
dHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE9iamVjdChjb25zdCBT
Y3JpcHRWYWx1ZSYsIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lLCBib29sIGdlbmVyYXRlUHJldmll
dyA9IGZhbHNlLCBib29sIGdlbmVyYXRlVGFibGVQcmV2aWV3ID0gZmFsc2UpIGNvbnN0OwogICAg
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE5vZGUo
Tm9kZSosIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKICAgICBTY3JpcHRWYWx1ZSBmaW5kT2Jq
ZWN0QnlJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDkxZWIxZTI3YjBk
OTYxNjFmNzJiMGQ1MTRjMDRmNzY0NmQ5OTAwN2YuLmNkZDQyMjMyZWYwMDQxOTc4MTkxMzQ5YTc4
Y2VjNjg5ZTVmNjExZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTExMSwxMiArMTExLDEzIEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBOYW1lCiAgICAgICogQHBh
cmFtIHtib29sZWFufSBjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3cKICAgICAgKiBAcGFyYW0ge2Jv
b2xlYW59IGdlbmVyYXRlUHJldmlldworICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ2VuZXJhdGVU
YWJsZVByZXZpZXcKICAgICAgKiBAcmV0dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0K
ICAgICAgKi8KLSAgICB3cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIGdyb3VwTmFtZSwgY2Fu
QWNjZXNzSW5zcGVjdGVkV2luZG93LCBnZW5lcmF0ZVByZXZpZXcpCisgICAgd3JhcE9iamVjdDog
ZnVuY3Rpb24ob2JqZWN0LCBncm91cE5hbWUsIGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdywgZ2Vu
ZXJhdGVQcmV2aWV3LCBnZW5lcmF0ZVRhYmxlUHJldmlldykKICAgICB7CiAgICAgICAgIGlmIChj
YW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3cpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fd3JhcE9i
amVjdChvYmplY3QsIGdyb3VwTmFtZSwgZmFsc2UsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fd3JhcE9iamVjdChvYmplY3QsIGdyb3VwTmFtZSwgZmFsc2UsIGdl
bmVyYXRlUHJldmlldywgZ2VuZXJhdGVUYWJsZVByZXZpZXcpOwogCiAgICAgICAgIHZhciByZXN1
bHQgPSB7fTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBlb2Ygb2JqZWN0OwpAQCAtMTY5LDEz
ICsxNzAsMTQgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7
c3RyaW5nPX0gb2JqZWN0R3JvdXBOYW1lCiAgICAgICogQHBhcmFtIHtib29sZWFuPX0gZm9yY2VW
YWx1ZVR5cGUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBnZW5lcmF0ZVByZXZpZXcKKyAgICAg
KiBAcGFyYW0ge2Jvb2xlYW49fSBnZW5lcmF0ZVRhYmxlUHJldmlldwogICAgICAqIEByZXR1cm4g
eyFSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0fQogICAgICAqIEBzdXBwcmVzcyB7Y2hlY2tUeXBl
c30KICAgICAgKi8KLSAgICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91
cE5hbWUsIGZvcmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcpCisgICAgX3dyYXBPYmplY3Q6
IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2VuZXJh
dGVQcmV2aWV3LCBnZW5lcmF0ZVRhYmxlUHJldmlldykKICAgICB7CiAgICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdChvYmplY3Qs
IG9iamVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5cGUsIGdlbmVyYXRlUHJldmlldyk7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdChvYmplY3QsIG9i
amVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5cGUsIGdlbmVyYXRlUHJldmlldywgZ2VuZXJhdGVU
YWJsZVByZXZpZXcpOwogICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICB0cnkgewog
ICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdGlvbiA9IGluamVjdGVkU2NyaXB0Ll9kZXNjcmli
ZShlKTsKQEAgLTU5Niw3ICs1OTgsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAg
ICAgICogQHBhcmFtIHtPYmplY3R9IHRvcENhbGxGcmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5n
fGJvb2xlYW59IGNhbGxGcmFtZUlkIG9yIGZhbHNlCiAgICAgICogQHBhcmFtIHtzdHJpbmd8Ym9v
bGVhbn0gZnVuY3Rpb25PYmplY3RJZCBvciBmYWxzZQotICAgICAqIEBwYXJhbSB7aW50ZWdlcn0g
c2NvcGVOdW1iZXIKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gc2NvcGVOdW1iZXIKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gdmFyaWFibGVOYW1lCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1Zh
bHVlSnNvblN0cmluZyBSdW50aW1lQWdlbnQuQ2FsbEFyZ3VtZW50IHN0cnVjdHVyZSBzZXJpYWxp
emVkIGFzIHN0cmluZyAKICAgICAgKiBAcmV0dXJuIHtzdHJpbmd8dW5kZWZpbmVkfSB1bmRlZmlu
ZWQgaWYgc3VjY2VzcyBvciBhbiBlcnJvciBtZXNzYWdlIApAQCAtODM5LDggKzg0MSw5IEBAIHZh
ciBpbmplY3RlZFNjcmlwdCA9IG5ldyBJbmplY3RlZFNjcmlwdCgpOwogICogQHBhcmFtIHtzdHJp
bmc9fSBvYmplY3RHcm91cE5hbWUKICAqIEBwYXJhbSB7Ym9vbGVhbj19IGZvcmNlVmFsdWVUeXBl
CiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBnZW5lcmF0ZVByZXZpZXcKKyAqIEBwYXJhbSB7Ym9vbGVh
bj19IGdlbmVyYXRlVGFibGVQcmV2aWV3CiAgKi8KLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVj
dCA9IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2Vu
ZXJhdGVQcmV2aWV3KQorSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2Jq
ZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcsIGdl
bmVyYXRlVGFibGVQcmV2aWV3KQogewogICAgIHRoaXMudHlwZSA9IHR5cGVvZiBvYmplY3Q7CiAg
ICAgaWYgKGluamVjdGVkU2NyaXB0LmlzUHJpbWl0aXZlVmFsdWUob2JqZWN0KSB8fCBvYmplY3Qg
PT09IG51bGwgfHwgZm9yY2VWYWx1ZVR5cGUpIHsKQEAgLTg2OCw0MiArODcxLDQ4IEBAIEluamVj
dGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1l
LCBmb3JjZVZhbHVlVHlwZSwKICAgICB0aGlzLmRlc2NyaXB0aW9uID0gaW5qZWN0ZWRTY3JpcHQu
X2Rlc2NyaWJlKG9iamVjdCk7CiAKICAgICBpZiAoZ2VuZXJhdGVQcmV2aWV3ICYmICh0aGlzLnR5
cGUgPT09ICJvYmplY3QiIHx8IGluamVjdGVkU2NyaXB0Ll9pc0hUTUxBbGxDb2xsZWN0aW9uKG9i
amVjdCkpKQotICAgICAgICB0aGlzLl9nZW5lcmF0ZVByZXZpZXcob2JqZWN0KTsKKyAgICAgICAg
dGhpcy5wcmV2aWV3ID0gdGhpcy5fZ2VuZXJhdGVQcmV2aWV3KG9iamVjdCwgZ2VuZXJhdGVUYWJs
ZVByZXZpZXcgPyAyIDogMSwgZ2VuZXJhdGVUYWJsZVByZXZpZXcgPyAyMCA6IDUsIGdlbmVyYXRl
VGFibGVQcmV2aWV3ID8gMTAwMCA6IDEwMCk7CiB9CiAKIEluamVjdGVkU2NyaXB0LlJlbW90ZU9i
amVjdC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVj
dAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBw
cm9wZXJ0eUNvdW50CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4Q291bnQKKyAgICAgKiBA
cmV0dXJuIHtPYmplY3R9IHByZXZpZXcKICAgICAgKi8KLSAgICBfZ2VuZXJhdGVQcmV2aWV3OiBm
dW5jdGlvbihvYmplY3QpCisgICAgX2dlbmVyYXRlUHJldmlldzogZnVuY3Rpb24ob2JqZWN0LCBk
ZXB0aCwgcHJvcGVydHlDb3VudCwgaW5kZXhDb3VudCkKICAgICB7Ci0gICAgICAgIHRoaXMucHJl
dmlldyA9IHt9OwotICAgICAgICB0aGlzLnByZXZpZXcubG9zc2xlc3MgPSB0cnVlOwotICAgICAg
ICB0aGlzLnByZXZpZXcub3ZlcmZsb3cgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5wcmV2aWV3LnBy
b3BlcnRpZXMgPSBbXTsKLQotICAgICAgICB2YXIgaXNBcnJheSA9IHRoaXMuc3VidHlwZSA9PT0g
ImFycmF5IjsKLSAgICAgICAgdmFyIHByb3BlcnRpZXNUaHJlc2hvbGQgPSB7Ci0gICAgICAgICAg
ICBwcm9wZXJ0aWVzOiA1LAotICAgICAgICAgICAgaW5kZXhlczogMTAwCisgICAgICAgIHZhciBw
cmV2aWV3ID0ge307CisgICAgICAgIHByZXZpZXcubG9zc2xlc3MgPSB0cnVlOworICAgICAgICBw
cmV2aWV3Lm92ZXJmbG93ID0gZmFsc2U7CisgICAgICAgIHByZXZpZXcucHJvcGVydGllcyA9IFtd
OworCisgICAgICAgIHZhciBjb25maWcgPSB7CisgICAgICAgICAgICBwcm9wZXJ0aWVzOiBwcm9w
ZXJ0eUNvdW50LAorICAgICAgICAgICAgaW5kZXhlczogaW5kZXhDb3VudCwKKyAgICAgICAgICAg
IGRlcHRoOiBkZXB0aAogICAgICAgICB9OwogCiAgICAgICAgIGZvciAodmFyIG8gPSBvYmplY3Q7
IGluamVjdGVkU2NyaXB0Ll9pc0RlZmluZWQobyk7IG8gPSBvLl9fcHJvdG9fXykKLSAgICAgICAg
ICAgIHRoaXMuX2dlbmVyYXRlUHJvdG9QcmV2aWV3KG8sIHByb3BlcnRpZXNUaHJlc2hvbGQpOwor
ICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVQcm90b1ByZXZpZXcobywgcHJldmlldywgY29uZmln
KTsKKyAgICAgICAgcmV0dXJuIHByZXZpZXc7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7T2JqZWN0fSBvYmplY3QKLSAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1Ro
cmVzaG9sZAorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcmV2aWV3CisgICAgICogQHBhcmFtIHtP
YmplY3R9IGNvbmZpZwogICAgICAqLwotICAgIF9nZW5lcmF0ZVByb3RvUHJldmlldzogZnVuY3Rp
b24ob2JqZWN0LCBwcm9wZXJ0aWVzVGhyZXNob2xkKQorICAgIF9nZW5lcmF0ZVByb3RvUHJldmll
dzogZnVuY3Rpb24ob2JqZWN0LCBwcmV2aWV3LCBjb25maWcpCiAgICAgewogICAgICAgICB2YXIg
cHJvcGVydHlOYW1lcyA9IE9iamVjdC5rZXlzKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0
KSk7CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3Bl
cnR5TmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXNU
aHJlc2hvbGQucHJvcGVydGllcyB8fCAhcHJvcGVydGllc1RocmVzaG9sZC5pbmRleGVzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlldy5vdmVyZmxvdyA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgICAgIHRoaXMucHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGlmICghY29uZmlnLnByb3BlcnRpZXMgfHwgIWNvbmZpZy5pbmRleGVzKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByZXZpZXcub3ZlcmZsb3cgPSB0cnVlOworICAgICAgICAgICAgICAgICAg
ICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHByb3BlcnR5TmFt
ZXNbaV07CkBAIC05MTIsMTMgKzkyMSwxMyBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qu
cHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0KSwg
bmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCEoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSB8fCAh
ZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNz
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWU7CiAgICAg
ICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX2FwcGVuZFByb3BlcnR5UHJldmlldyh7IG5hbWU6IG5hbWUsIHR5cGU6ICJvYmplY3QiLCB2
YWx1ZTogIm51bGwiIH0sIHByb3BlcnRpZXNUaHJlc2hvbGQpOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcocHJldmlldywgeyBuYW1lOiBuYW1lLCB0eXBl
OiAib2JqZWN0IiwgdmFsdWU6ICJudWxsIiB9LCBjb25maWcpOwogICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgCkBAIC05MjksMTUgKzkzOCwyNiBA
QCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgICAgICBpZiAodHlwZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9IHRoaXMuX2FiYnJldmlhdGVTdHJpbmcodmFsdWUsIG1heExlbmd0aCwgdHJ1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3Lmxvc3NsZXNzID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZh
bHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSAiXCIiICsgdmFsdWUucmVwbGFjZSgvXG4vZywgIlx1MjFCNSIpICsgIlwiIjsKICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9w
ZXJ0eVByZXZpZXcoeyBuYW1lOiBuYW1lLCB0eXBlOiB0eXBlLCB2YWx1ZTogdmFsdWUgKyAiIiB9
LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5k
UHJvcGVydHlQcmV2aWV3KHByZXZpZXcsIHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWU6
IHZhbHVlICsgIiIgfSwgY29uZmlnKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICAgICAgfQotICAgIAotICAgICAgICAgICAgICAgIHRoaXMucHJldmlldy5sb3Nz
bGVzcyA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5kZXB0aCA+IDEpIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIHN1YlByZXZpZXcgPSB0aGlzLl9nZW5lcmF0ZVByZXZp
ZXcodmFsdWUsIGNvbmZpZy5kZXB0aCAtIDEsIGNvbmZpZy5wcm9wZXJ0aWVzLCBjb25maWcuaW5k
ZXhlcyk7CisgICAgICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IHsgbmFtZTogbmFtZSwg
dHlwZTogdHlwZSwgdmFsdWVQcmV2aWV3OiBzdWJQcmV2aWV3IH07CisgICAgICAgICAgICAgICAg
ICAgIHRoaXMuX2FwcGVuZFByb3BlcnR5UHJldmlldyhwcmV2aWV3LCBwcm9wZXJ0eSwgY29uZmln
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWJQcmV2aWV3Lmxvc3NsZXNzKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAg
ICAgICAgICBpZiAoc3ViUHJldmlldy5vdmVyZmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAg
IHByZXZpZXcub3ZlcmZsb3cgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNzID0g
ZmFsc2U7CiAKICAgICAgICAgICAgICAgICB2YXIgc3VidHlwZSA9IGluamVjdGVkU2NyaXB0Ll9z
dWJ0eXBlKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSAiIjsKQEAg
LTk0NywyMyArOTY3LDI0IEBAIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0geyBuYW1lOiBuYW1lLCB0eXBlOiB0
eXBlLCB2YWx1ZTogZGVzY3JpcHRpb24gfTsKICAgICAgICAgICAgICAgICBpZiAoc3VidHlwZSkK
ICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkuc3VidHlwZSA9IHN1YnR5cGU7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHByb3BlcnR5LCBwcm9wZXJ0aWVz
VGhyZXNob2xkKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXco
cHJldmlldywgcHJvcGVydHksIGNvbmZpZyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKICAgICAgICAgfQogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge09i
amVjdH0gcHJldmlldwogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0eQotICAgICAqIEBw
YXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVzVGhyZXNob2xkCisgICAgICogQHBhcmFtIHtPYmplY3R9
IGNvbmZpZwogICAgICAqLwotICAgIF9hcHBlbmRQcm9wZXJ0eVByZXZpZXc6IGZ1bmN0aW9uKHBy
b3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNob2xkKQorICAgIF9hcHBlbmRQcm9wZXJ0eVByZXZpZXc6
IGZ1bmN0aW9uKHByZXZpZXcsIHByb3BlcnR5LCBjb25maWcpCiAgICAgewogICAgICAgICBpZiAo
aXNOYU4ocHJvcGVydHkubmFtZSkpCi0gICAgICAgICAgICBwcm9wZXJ0aWVzVGhyZXNob2xkLnBy
b3BlcnRpZXMtLTsKKyAgICAgICAgICAgIGNvbmZpZy5wcm9wZXJ0aWVzLS07CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHByb3BlcnRpZXNUaHJlc2hvbGQuaW5kZXhlcy0tOwotICAgICAgICB0
aGlzLnByZXZpZXcucHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsKKyAgICAgICAgICAgIGNvbmZp
Zy5pbmRleGVzLS07CisgICAgICAgIHByZXZpZXcucHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsK
ICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
aW5kZXggMTQxNGY2NGM4MjI2Yzk2MDc5ZTIwZTk3Zjc1NDc4NDNlMjY0MzUzYS4uMDI2ZDQ4MzI1
OTBhOTJjZDBlOGE1MmJjYjdjNzdjNGY2ZDc4MzY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgpAQCAtNjA0LDYgKzYwNCw3IEBACiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9w
ZXJ0eSBuYW1lLiIgfSwKIAkgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUi
OiAic3RyaW5nIiwgImVudW0iOiBbIm9iamVjdCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQiLCAi
c3RyaW5nIiwgIm51bWJlciIsICJib29sZWFuIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgdHlw
ZS4iIH0sCiAJICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVXNlci1mcmllbmRseSBwcm9w
ZXJ0eSB2YWx1ZSBzdHJpbmcuIiB9LAorCSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVl
UHJldmlldyIsICIkcmVmIjogIk9iamVjdFByZXZpZXciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiTmVzdGVkIHZhbHVlIHByZXZpZXcuIiB9LAogCSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInN1YnR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZW51bSI6IFsiYXJyYXkiLCAibnVsbCIsICJub2RlIiwgInJlZ2V4cCIsICJkYXRlIl0sICJkZXNj
cmlwdGlvbiI6ICJPYmplY3Qgc3VidHlwZSBoaW50LiBTcGVjaWZpZWQgZm9yIDxjb2RlPm9iamVj
dDwvY29kZT4gdHlwZSB2YWx1ZXMgb25seS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAg
ICAgICB9LApAQCAtNzYxLDcgKzc2Miw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic291cmNlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbImh0bWwiLCAid21sIiwgInht
bCIsICJqYXZhc2NyaXB0IiwgIm5ldHdvcmsiLCAiY29uc29sZS1hcGkiLCAib3RoZXIiXSwgImRl
c2NyaXB0aW9uIjogIk1lc3NhZ2Ugc291cmNlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJsZXZlbCIsICJ0eXBlIjogInN0cmluZyIsICJlbnVtIjogWyJ0aXAiLCAibG9nIiwg
Indhcm5pbmciLCAiZXJyb3IiLCAiZGVidWciXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc2V2
ZXJpdHkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSB0ZXh0LiIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImVudW0iOiBbImxvZyIsICJkaXIiLCAiZGlyeG1sIiwgInRyYWNlIiwgImNsZWFyIiwg
InN0YXJ0R3JvdXAiLCAic3RhcnRHcm91cENvbGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQi
LCAidGltaW5nIl0sICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIs
ICJ0cmFjZSIsICJjbGVhciIsICJzdGFydEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAi
ZW5kR3JvdXAiLCAiYXNzZXJ0IiwgInRpbWluZyJdLCAiZGVzY3JpcHRpb24iOiAiQ29uc29sZSBt
ZXNzYWdlIHR5cGUuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0
eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2Yg
dGhlIG1lc3NhZ2Ugb3JpZ2luLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJs
aW5lIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJMaW5lIG51bWJlciBpbiB0aGUgcmVzb3VyY2UgdGhhdCBnZW5lcmF0ZWQgdGhpcyBtZXNzYWdl
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXBlYXRDb3VudCIsICJ0eXBl
IjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVwZWF0IGNv
dW50IGZvciByZXBlYXRlZCBtZXNzYWdlcy4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCBmODdhYjM0ZGVhZTg2
MjE1YmYyNTA5YzNjYWQxYTZiNzMyYzAyNGY1Li5kOWFlOGQyMzVjOWIzYzJiZDJjZTcyYTc5ZTEz
MTExNGM1MzQ2OGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTU2LDYgKzU2LDggQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlSW1wbCA9IGZ1bmN0aW9uKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmtp
ZmllciwgdHkKICAgICB0aGlzLl9zdGFja1RyYWNlID0gc3RhY2tUcmFjZTsKICAgICB0aGlzLl9y
ZXF1ZXN0ID0gcmVxdWVzdElkID8gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZvcklk
KHJlcXVlc3RJZCkgOiBudWxsOwogICAgIHRoaXMuX2lzT3V0ZGF0ZWQgPSBpc091dGRhdGVkOwor
ICAgIHRoaXMuX2RhdGFHcmlkcyA9IFtdOworICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cyA9IG5l
dyBNYXAoKTsKIAogICAgIHRoaXMuX2N1c3RvbUZvcm1hdHRlcnMgPSB7CiAgICAgICAgICJvYmpl
Y3QiOiB0aGlzLl9mb3JtYXRQYXJhbWV0ZXJBc09iamVjdCwKQEAgLTY2LDYgKzY4LDI1IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwgPSBmdW5jdGlvbihzb3VyY2UsIGxldmVsLCBt
ZXNzYWdlLCBsaW5raWZpZXIsIHR5CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0geworICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgdGhpcy5fZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9kYXRhR3JpZHMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBkYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlk
c1tpXTsKKyAgICAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5fZGF0YUdyaWRQYXJl
bnRzLmdldChkYXRhR3JpZCk7CisgICAgICAgICAgICBkYXRhR3JpZC5zaG93KHBhcmVudEVsZW1l
bnQpOworICAgICAgICB9CisgICAgfSwKKworICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9k
YXRhR3JpZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBkYXRhR3JpZCA9IHRoaXMu
X2RhdGFHcmlkc1tpXTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cy5wdXQoZGF0
YUdyaWQsIGRhdGFHcmlkLmVsZW1lbnQucGFyZW50RWxlbWVudCk7CisgICAgICAgICAgICBkYXRh
R3JpZC5kZXRhY2goKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9kYXRhR3JpZDsKKyAgICAg
ICAgfQorICAgIH0sCisKICAgICBfZm9ybWF0TWVzc2FnZTogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNw
YW4iKTsKQEAgLTQwMSwxMCArNDIyLDE3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy50eXBlICE9PSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuRGlyWE1MICYmICEhYXJyYXkucHJldmlldzsK
ICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0fSBhcnJheQorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbQorICAgICAqLwogICAgIF9m
b3JtYXRQYXJhbWV0ZXJBc0FycmF5OiBmdW5jdGlvbihhcnJheSwgZWxlbSkKICAgICB7CiAgICAg
ICAgIGlmICh0aGlzLnVzZUFycmF5UHJldmlld0luRm9ybWF0dGVyKGFycmF5KSkgewotICAgICAg
ICAgICAgdGhpcy5fZm9ybWF0UGFyYW1ldGVyQXNBcnJheU9yT2JqZWN0KGFycmF5LCAiIiwgZWxl
bSwgdHJ1ZSk7CisgICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVGFibGUpCisgICAgICAgICAgICAgICAgdGhpcy5fZm9y
bWF0UGFyYW1ldGVyQXNUYWJsZShhcnJheSwgZWxlbSk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgdGhpcy5fZm9ybWF0UGFyYW1ldGVyQXNBcnJheU9yT2JqZWN0KGFycmF5LCAi
IiwgZWxlbSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNDE1
LDYgKzQ0Myw0OCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIGFycmF5LmdldE93blByb3BlcnRpZXModGhpcy5fcHJpbnRBcnJheS5i
aW5kKHRoaXMsIGFycmF5LCBlbGVtKSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdGFibGUKKyAgICAgKiBAcGFyYW0ge0VsZW1l
bnR9IGVsZW1lbnQKKyAgICAgKi8KKyAgICBfZm9ybWF0UGFyYW1ldGVyQXNUYWJsZTogZnVuY3Rp
b24odGFibGUsIGVsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgcHJldmlldyA9IHRhYmxlLnBy
ZXZpZXc7CisgICAgICAgIHZhciBjb2x1bW5OYW1lcyA9IFtdOworICAgICAgICB2YXIgcm93VmFs
dWVzID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJldmlldy5wcm9wZXJ0aWVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgcm93UHJvcGVydHkgPSBwcmV2aWV3LnBy
b3BlcnRpZXNbaV07CisgICAgICAgICAgICB2YXIgcm93UHJldmlldyA9IHJvd1Byb3BlcnR5LnZh
bHVlUHJldmlldzsKKyAgICAgICAgICAgIGlmICghcm93UHJldmlldykKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICAgICAgdmFyIHJvd1ZhbHVlID0ge307CisgICAgICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IHJvd1ByZXZpZXcucHJvcGVydGllcy5sZW5ndGggJiYgY29s
dW1uTmFtZXMubGVuZ3RoIDwgMjA7ICsraikgeworICAgICAgICAgICAgICAgIHZhciBjZWxsUHJv
cGVydHkgPSByb3dQcmV2aWV3LnByb3BlcnRpZXNbal07CisgICAgICAgICAgICAgICAgaWYgKGNv
bHVtbk5hbWVzLmluZGV4T2YoY2VsbFByb3BlcnR5Lm5hbWUpID09PSAtMSkKKyAgICAgICAgICAg
ICAgICAgICAgY29sdW1uTmFtZXMucHVzaChjZWxsUHJvcGVydHkubmFtZSk7CisgICAgICAgICAg
ICAgICAgcm93VmFsdWVbY2VsbFByb3BlcnR5Lm5hbWVdID0gY2VsbFByb3BlcnR5LnZhbHVlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcm93VmFsdWVzLnB1c2gocm93VmFsdWUpOworICAg
ICAgICB9CisKKyAgICAgICAgdmFyIGZsYXRWYWx1ZXMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByb3dWYWx1ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByb3dW
YWx1ZSA9IHJvd1ZhbHVlc1tpXTsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29s
dW1uTmFtZXMubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgZmxhdFZhbHVlcy5wdXNoKHJv
d1ZhbHVlW2NvbHVtbk5hbWVzW2pdXSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZsYXRW
YWx1ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLl9mb3JtYXRQYXJhbWV0ZXJBc09iamVj
dCh0YWJsZSwgZWxlbWVudCwgZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIHZhciBkYXRhR3JpZCA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVTb3J0
YWJsZURhdGFHcmlkKGNvbHVtbk5hbWVzLCBmbGF0VmFsdWVzKTsKKyAgICAgICAgZGF0YUdyaWQu
cmVuZGVySW5saW5lKCk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkcy5wdXNoKGRhdGFHcmlkKTsK
KyAgICAgICAgdGhpcy5fZGF0YUdyaWRQYXJlbnRzLnB1dChkYXRhR3JpZCwgZWxlbWVudCk7Cisg
ICAgfSwKKwogICAgIF9mb3JtYXRQYXJhbWV0ZXJBc1N0cmluZzogZnVuY3Rpb24ob3V0cHV0LCBl
bGVtKQogICAgIHsKICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZU1vZGVsLmpzCmluZGV4IDBhODIxNzhhM2ZiN2FkMzQ1ODVhOGVjYTU3Y2Y3ZTFmMDNmZTUyNGQu
LmFkNDQzMTRjMzczNjI5NDk1ZDllNzFjMDgxY2Y5ZmFlNjQ5NjZiMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCkBAIC0yMzAs
NiArMjMwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlID0gewog
ICAgIExvZzogImxvZyIsCiAgICAgRGlyOiAiZGlyIiwKICAgICBEaXJYTUw6ICJkaXJ4bWwiLAor
ICAgIFRhYmxlOiAidGFibGUiLAogICAgIFRyYWNlOiAidHJhY2UiLAogICAgIENsZWFyOiAiY2xl
YXIiLAogICAgIFN0YXJ0R3JvdXA6ICJzdGFydEdyb3VwIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IGE1ZTZjNWJhMWYwMDk3
ZDJiODEyNzJkZDBiYzA3ZmY3MGFjNjA0MzYuLjg5NTk2ZDk0MGNmNjU2N2FkOGE2ODc2MDJlNzZk
Mjg1NDAxZTU3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcwpAQCAtNDEyLDcgKzQxMiw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAubWVz
c2FnZXNFbGVtZW50LmFwcGVuZENoaWxkKGdyb3VwLmVsZW1lbnQpOwogICAgICAgICAgICAgICAg
IHRoaXMuY3VycmVudEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICB9Ci0KICAgICAgICAgICAg
IHRoaXMuY3VycmVudEdyb3VwLmFkZE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgIH0KIApAQCAt
NDIyLDYgKzQyMSw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgX2NvbnNvbGVDbGVhcmVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9zY3Jv
bGxlZFRvQm90dG9tID0gdHJ1ZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl92
aXNpYmxlTWVzc2FnZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl92aXNpYmxlTWVz
c2FnZXNbaV0ud2lsbEhpZGUoKTsKICAgICAgICAgdGhpcy5fdmlzaWJsZU1lc3NhZ2VzID0gW107
CiAKICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSB0aGlzLnRvcEdyb3VwOwpAQCAtNTQ1LDgg
KzU0NiwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIHZpc2libGVNZXNzYWdlSW5kZXgrKzsKICAgICAgICAgICAgICAgICBpZiAodGhp
cy5fc2hvdWxkQmVWaXNpYmxlKHZpc2libGVNZXNzYWdlKSkKICAgICAgICAgICAgICAgICAgICAg
bmV3VmlzaWJsZU1lc3NhZ2VzLnB1c2godmlzaWJsZU1lc3NhZ2UpOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdmlzaWJsZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVu
dCgpLnJlbW92ZVNlbGYoKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgdmlzaWJsZU1lc3NhZ2Uud2lsbEhpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgdmlz
aWJsZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVudCgpLnJlbW92ZVNlbGYoKTsgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKHRoaXMuX3Nob3VsZEJlVmlzaWJsZShzb3VyY2VNZXNzYWdlKSkgewogICAg
ICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRHcm91cC5hZGRNZXNzYWdlKHNvdXJjZU1lc3Nh
Z2UsIHZpc2libGVNZXNzYWdlID8gdmlzaWJsZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVudCgpIDog
bnVsbCk7CkBAIC02OTgsNiArNzAxLDE0IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZCA9
IGZ1bmN0aW9uKGNvbW1hbmQpCiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZC5wcm90
b3R5cGUgPSB7CisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgfSwKKworICAg
IHdpbGxIaWRlOiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKICAgICBjbGVhckhpZ2hsaWdo
dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGhpZ2hsaWdodGVkTWVzc2FnZSA9IHRo
aXMuX2Zvcm1hdHRlZENvbW1hbmQ7CkBAIC04MTksOCArODMwLDEwIEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlR3JvdXAucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGdyb3VwRWxlbWVudCA9
IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwog
ICAgICAgICAgICAgaWYgKGdyb3VwRWxlbWVudCAmJiBtZXNzYWdlLnR5cGUgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwQ29sbGFwc2VkKQogICAg
ICAgICAgICAgICAgIGdyb3VwRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb2xsYXBzZWQiKTsKLSAg
ICAgICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLm1lc3NhZ2Vz
RWxlbWVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSB8fCBudWxsKTsKKyAgICAgICAgICAg
IG1lc3NhZ2Uud2FzU2hvd24oKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChlbGVtZW50LnBy
ZXZpb3VzU2libGluZyAmJiBtZXNzYWdlLm9yaWdpbmF0aW5nQ29tbWFuZCAmJiBlbGVtZW50LnBy
ZXZpb3VzU2libGluZy5jb21tYW5kID09PSBtZXNzYWdlLm9yaWdpbmF0aW5nQ29tbWFuZCkKICAg
ICAgICAgICAgIGVsZW1lbnQucHJldmlvdXNTaWJsaW5nLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUt
YWRqYWNlbnQtdXNlci1jb21tYW5kLXJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggZjFmZGZkNTAxZmQxMzFjNzRjMzdlY2Mw
YWNhYzVlMTIzY2ZkOWJiNy4uMTdhZTBhNWEwZmU4MWFlOWUxZmUzZDNlZGUyZjFkYTY1Y2QxN2M5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3Jp
ZC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpz
CkBAIC0yMDksOCArMjA5LDggQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxl
RGF0YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5OYW1lcywgdmFsdWVzKQogCiAgICAgICAgIGZ1bmN0
aW9uIGNvbXBhcmF0b3IoZGF0YUdyaWROb2RlMSwgZGF0YUdyaWROb2RlMikKICAgICAgICAgewot
ICAgICAgICAgICAgdmFyIGl0ZW0xID0gZGF0YUdyaWROb2RlMS5kYXRhW3NvcnRDb2x1bW5JZGVu
dGlmaWVyXTsKLSAgICAgICAgICAgIHZhciBpdGVtMiA9IGRhdGFHcmlkTm9kZTIuZGF0YVtzb3J0
Q29sdW1uSWRlbnRpZmllcl07CisgICAgICAgICAgICB2YXIgaXRlbTEgPSBTdHJpbmcoZGF0YUdy
aWROb2RlMS5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXSk7CisgICAgICAgICAgICB2YXIgaXRl
bTIgPSBTdHJpbmcoZGF0YUdyaWROb2RlMi5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXSk7CiAK
ICAgICAgICAgICAgIHZhciBjb21wYXJpc29uOwogICAgICAgICAgICAgaWYgKGNvbHVtbklzTnVt
ZXJpYykgewpAQCAtMzEwLDYgKzMxMCwxMCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90
eXBlID0gewogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChl
bGVtZW50LCAwLCBlbGVtZW50LCAxKTsKICAgICB9LAogCisgICAgcmVuZGVySW5saW5lOiBmdW5j
dGlvbigpCisgICAgeyAgCisgICAgICAgIHRoaXMuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJpbmxp
bmUiKTsKKyAgICB9LAogCiAgICAgX3N0YXJ0RWRpdGluZ0NvbmZpZzogZnVuY3Rpb24oZWxlbWVu
dCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0RhdGFiYXNlUXVlcnlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwppbmRleCAzNzRiNjZkYzgxNTU5NzczYjdlMzhjYTZlMWZl
NjgxYzI1YmQxNWEwLi41YTQ0YWI0NWMxODI5MWI1MTdlZTcyODU0NWQ1OGY3ZGMwMWVkMDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVl
cnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YWJh
c2VRdWVyeVZpZXcuanMKQEAgLTE0NSw3ICsxNDUsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YWJhc2VR
dWVyeVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgdHJpbW1lZFF1ZXJ5ID0gcXVlcnku
dHJpbSgpOwogCiAgICAgICAgIGlmIChkYXRhR3JpZCkgewotICAgICAgICAgICAgZGF0YUdyaWQu
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJpbmxpbmUiKTsKKyAgICAgICAgICAgIGRhdGFHcmlkLnJl
bmRlcklubGluZSgpOwogICAgICAgICAgICAgdGhpcy5fYXBwZW5kVmlld1F1ZXJ5UmVzdWx0KHRy
aW1tZWRRdWVyeSwgZGF0YUdyaWQpOwogICAgICAgICAgICAgZGF0YUdyaWQuYXV0b1NpemVDb2x1
bW5zKDUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCA3NDc5NWE4YTU5
ODk3MDZjYTM2MWQ0ZWE5OTc5MmEyNzhhNjc5MDI1Li43MDhlOGU5OTJhMWM4Yzg0OTg1NjQ1NzUy
NGY0MTliYTFmNGM2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTI2Niw2ICsyNjYs
MTEgQEAgdm9pZCBDb25zb2xlOjpkaXJ4bWwoU2NyaXB0U3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIGludGVybmFsQWRkTWVzc2FnZShwYWdl
KCksIERpclhNTE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBhcmd1bWVudHMp
OwogfQogCit2b2lkIENvbnNvbGU6OnRhYmxlKFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0
cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKK3sKKyAgICBpbnRlcm5hbEFkZE1lc3NhZ2Uo
cGFnZSgpLCBUYWJsZU1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBhcmd1bWVu
dHMpOworfQorCiB2b2lkIENvbnNvbGU6OmNsZWFyKFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbEFkZE1lc3Nh
Z2UocGFnZSgpLCBDbGVhck1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBhcmd1
bWVudHMsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCAzZDUzYTc1Y2Y1NTEzNjk1NDE4
MjczYTFjZjI2ZmYzYTg3MTljYTczLi5hOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVj
NWZjNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB3YXJuKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsK
ICAgICB2b2lkIGRpcihTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7
CiAgICAgdm9pZCBkaXJ4bWwoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4pOworICAgIHZvaWQgdGFibGUoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwogICAgIHZvaWQgdHJhY2UoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgYXNzZXJ0Q29uZGl0aW9uKFNjcmlwdFN0YXRlKiwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBib29sIGNvbmRpdGlvbik7CiAgICAgdm9pZCBjb3VudChT
Y3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25z
b2xlLmlkbAppbmRleCAyNjAyMTdlYmZkNWIyNDkzODYxNzI5MGFiMTMzNDNjOTlhMjcyY2YzLi5m
YWVmZDZiNTJhZjNjYTAxOGRkMWYxNmQ5YjlkNTE0MGMwNzIyMDYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5pZGwKQEAgLTM4LDYgKzM4LDcgQEAKICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRz
fFNjcmlwdFN0YXRlXSB2b2lkIHdhcm4oKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRz
fFNjcmlwdFN0YXRlXSB2b2lkIGRpcigpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8
U2NyaXB0U3RhdGVdIHZvaWQgZGlyeG1sKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50
c3xTY3JpcHRTdGF0ZV0gdm9pZCB0YWJsZSgpOwogICAgIFtWOEN1c3RvbSwgQ2FsbFdpdGg9U2Ny
aXB0QXJndW1lbnRzfFNjcmlwdFN0YXRlXSB2b2lkIHRyYWNlKCk7CiAgICAgW1Y4Q3VzdG9tLCBD
YWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8U2NyaXB0U3RhdGUsIEltcGxlbWVudGVkQXM9YXNzZXJ0
Q29uZGl0aW9uXSB2b2lkIGFzc2VydChpbiBib29sZWFuIGNvbmRpdGlvbik7CiAgICAgW0NhbGxX
aXRoPVNjcmlwdEFyZ3VtZW50c3xTY3JpcHRTdGF0ZV0gdm9pZCBjb3VudCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMw
OTY0OWRlOGI4NTI4MzgwYTg2Zjk1MWE5MzAyMmJlOGNiZjA0OWUuLjMyNzViNTUwZjA3OGYzNmIx
NGFhYjhlOTAyNWFmMWJmMTFkMGE1YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMi0x
MSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBwcm92aWRlIGJhc2ljIGNvbnNvbGUudGFibGUgaW1wbGVtZW50YXRpb24gKG5v
IFssY29sdW1uc10gc3VwcG9ydCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZvcm1hdC10YWJsZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xMSAgS2VudGFybyBIYXJhICA8
aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE1h
cmtlZCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVj
dGVkLnR4dAppbmRleCBhYzM2OTk5MTc1YzcyZWZmZjY5ODU2Y2E3YmUyYzJhNjY0YWFlMTM2Li4w
ZjdlNzIxYzI1YWNmNWQ0Njg1NTdmM2UzNzg3NDZiNzhmYTgwZWQzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBpLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMTIxOiBUaGUg
Y29uc29sZSBmdW5jdGlvbiAkKCkgaGFzIGNoYW5nZWQgZnJvbSAkPWdldEVsZW1lbnRCeUlkKGlk
KSB0byAkPXF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLiBZb3UgbWlnaHQgdHJ5ICQoIiMlcyIpCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTE0MjogVGhlIGNvbnNvbGUgZnVuY3Rpb24gJCgpIGhhcyBj
aGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChpZCkgdG8gJD1xdWVyeVNlbGVjdG9yKHNlbGVj
dG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjJXMiKQogVGVzdHMgdGhhdCBjb21tYW5kIGxpbmUgYXBp
IHdvcmtzLgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZjM5
N2Y0ZTViZjgxZDIyMGI3MTIzZDhkM2I2OWJlZDMxMzcwNWU0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxLDIsMyw0
LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBbb2JqZWN0IEhUTUxEb2N1bWVudF0KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMTogbnVsbAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiAx
LDIsMyxbb2JqZWN0IE9iamVjdF0sCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3Qg
T2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5OiAxLDIsMyw0
LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBbb2JqZWN0IEhUTUxEb2N1bWVudF0KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxMTogbnVsbAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEyOiAx
LDIsMyxbb2JqZWN0IE9iamVjdF0sCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IFtvYmplY3Qg
T2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KK1Rlc3RzIGNvbnNvbGUudGFibGUuCisKK0FycmF5WzJd
IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6OQorI2RvY3VtZW50IGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MTAKK251bGwgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMQorQXJyYXlbM10g
Y29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMgorQXJyYXlbMl0gY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDoxMworMDEyMTIzNDU2IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6OQorIGNvbnNv
bGUtZm9ybWF0LXRhYmxlLmh0bWw6MTAKK251bGwgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDox
MQorMDEyYWJjMTIzdW5kZWZpbmVkdW5kZWZpbmVkdW5kZWZpbmVkdW5kZWZpbmVkdW5kZWZpbmVk
dW5kZWZpbmVkMTIzIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTIKK2FiYzEyMyJmb28iZmFs
c2V1bmRlZmluZWQgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNzZiNGI1Yzk3YjY2MjJmYjJhZDIyNTcxOTc5ZGZlNDViZTYwMTk5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3Jt
YXQtdGFibGUuaHRtbApAQCAtMCwwICsxLDQwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9nVG9Db25zb2xlKCkKK3sKKyAg
ICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSk7CisgICAgY29uc29sZS50YWJsZShk
b2N1bWVudCk7CisgICAgY29uc29sZS50YWJsZShudWxsKTsKKyAgICBjb25zb2xlLnRhYmxlKFtb
MSwyLDNdLCB7YToxLCBiOjIsIGM6M30sIG51bGxdKTsKKyAgICBjb25zb2xlLnRhYmxlKFt7YTox
LCBiOjIsIGM6M30sIHthOiJmb28iLCBiOmZhbHNlLCBjOnVuZGVmaW5lZH1dKTsKK30KKworZnVu
Y3Rpb24gb25sb2FkKCkKK3sKKyAgICBsb2dUb0NvbnNvbGUoKTsKKyAgICBydW5UZXN0KCk7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2Uo
ImxvZ1RvQ29uc29sZSgpIiwgY2FsbGJhY2spOworCisgICAgZnVuY3Rpb24gY2FsbGJhY2soKQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyBjb25zb2xlLnRh
YmxlLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187850</attachid>
            <date>2013-02-12 06:08:15 -0800</date>
            <delta_ts>2013-02-17 02:56:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109453-20130212140444.patch</filename>
            <type>text/plain</type>
            <size>35022</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RhYTBlODFlNmFjMGMw
MGQ3OGVmNjVmNWExM2RiNDZjODZkMTJmZi4uODQ1YjEyYWUxMTRjMTYwMzhkOTEwODFhYzc0Mjkz
NTNiODU2NWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTEyICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYmFzaWMgY29uc29sZS50YWJsZSBpbXBsZW1lbnRhdGlvbiAobm8gWyxjb2x1
bW5zXSBzdXBwb3J0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9ybWF0dGluZyB0YWJsZSB1c2luZyBEYXRhR3JpZC4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmg6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VUeXBlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNj
cmlwdDo6d3JhcE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6
CisgICAgICAgIChJbmplY3RlZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLndpbGxIaWRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRQ
YXJhbWV0ZXJBc0FycmF5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLl9mb3JtYXRQYXJhbWV0ZXJBc1RhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZS5fYXBwZW5kQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZS5fY29uc29sZUNsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fdXBkYXRlTWVzc2FnZUxpc3QpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmQucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlLmFkZE1lc3NhZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanM6CisgICAgICAgICguc29ydERh
dGFHcmlkLmNvbXBhcmF0b3IpOgorICAgICAgICAoLnNvcnREYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3JlYXRlU29ydGFibGVEYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnJlbmRlcklubGluZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EYXRhYmFzZVF1ZXJ5Vmlldy5wcm90b3R5cGUuX3F1ZXJ5RmluaXNoZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZGF0YUdyaWQuY3NzOgorICAgICAgICAoLmRhdGEt
Z3JpZC5pbmxpbmUpOgorICAgICAgICAoLmRhdGEtZ3JpZC5pbmxpbmUgdGQuY29ybmVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3Jlc291cmNlc1BhbmVsLmNzczoKKyAgICAgICAg
KC5zdG9yYWdlLXZpZXcgPiAuZGF0YS1ncmlkKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGFibGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAg
KiBwYWdlL0NvbnNvbGUuaWRsOgorCiAyMDEzLTAyLTExICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGhpZ2hsaWdodCBET00g
bm9kZXMgb24gaG92ZXIgd2hpbGUgZGVidWdnaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
Q29uc29sZUFQSVR5cGVzLmgKaW5kZXggMTkwZjExNTgyMjdmZTVjOWNlODg0MzY2YzRiYTdjZjc1
NGVmOWZjMC4uMzFmMDNiMmFhZjI3ZTlkNjViMjZkZWFlNmI2ZmEwODkyNWJhZmFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJVHlwZXMuaApAQCAtMzEsNiArMzEsNyBA
QCBlbnVtIE1lc3NhZ2VUeXBlIHsKICAgICBMb2dNZXNzYWdlVHlwZSwKICAgICBEaXJNZXNzYWdl
VHlwZSwKICAgICBEaXJYTUxNZXNzYWdlVHlwZSwKKyAgICBUYWJsZU1lc3NhZ2VUeXBlLAogICAg
IFRyYWNlTWVzc2FnZVR5cGUsCiAgICAgU3RhcnRHcm91cE1lc3NhZ2VUeXBlLAogICAgIFN0YXJ0
R3JvdXBDb2xsYXBzZWRNZXNzYWdlVHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCmluZGV4IDcyNDJkOGQ2YTFjZDk1NjViNGFlMDkwNDFhYzBiYjg0NTUw
Mzg3NDcuLjE4MTcxZjY1MTQwMDJkNDc3OTFkZDc1ZGJlYzUzYmViYmY0NTUwYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcApAQCAtMTU0LDYgKzE1NCw3
IEBAIHN0YXRpYyBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OkVu
dW0gbWVzc2FnZVR5cGVWYWx1ZShNZXNzYWdlCiAgICAgY2FzZSBDbGVhck1lc3NhZ2VUeXBlOiBy
ZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpDbGVhcjsK
ICAgICBjYXNlIERpck1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNv
bnNvbGVNZXNzYWdlOjpUeXBlOjpEaXI7CiAgICAgY2FzZSBEaXJYTUxNZXNzYWdlVHlwZTogcmV0
dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6RGlyeG1sOwor
ICAgIGNhc2UgVGFibGVNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpD
b25zb2xlTWVzc2FnZTo6VHlwZTo6VGFibGU7CiAgICAgY2FzZSBUcmFjZU1lc3NhZ2VUeXBlOiBy
ZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpUcmFjZTsK
ICAgICBjYXNlIFN0YXJ0R3JvdXBNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25z
b2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6U3RhcnRHcm91cDsKICAgICBjYXNlIFN0YXJ0R3Jv
dXBDb2xsYXBzZWRNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25z
b2xlTWVzc2FnZTo6VHlwZTo6U3RhcnRHcm91cENvbGxhcHNlZDsKQEAgLTE5NCw3ICsxOTUsNyBA
QCB2b2lkIENvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250ZW5kKEluc3BlY3RvckZyb250ZW5kOjpD
b25zb2xlKiBmcm9udGVuZCwgSW5qZWN0ZQogICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhh
c05vVmFsdWUoKSkgewogICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBl
QnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiA+IGpzb25BcmdzID0gVHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+OjpjcmVhdGUoKTsKICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2FyZ3VtZW50cy0+YXJndW1lbnRD
b3VudCgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRp
bWU6OlJlbW90ZU9iamVjdD4gaW5zcGVjdG9yVmFsdWUgPSBpbmplY3RlZFNjcmlwdC53cmFwT2Jq
ZWN0KG1fYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLCAiY29uc29sZSIsIGdlbmVyYXRlUHJldmll
dyk7CisgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVP
YmplY3Q+IGluc3BlY3RvclZhbHVlID0gaW5qZWN0ZWRTY3JpcHQud3JhcE9iamVjdChtX2FyZ3Vt
ZW50cy0+YXJndW1lbnRBdChpKSwgImNvbnNvbGUiLCBnZW5lcmF0ZVByZXZpZXcsIG1fdHlwZSA9
PSBUYWJsZU1lc3NhZ2VUeXBlKTsKICAgICAgICAgICAgICAgICBpZiAoIWluc3BlY3RvclZhbHVl
KSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmNwcAppbmRleCA2MGFhMGNhODkyODE3YjFlMmQ1OTk2NmUwMTMzYWZmZTJlODJjMjI4Li5l
MWNlMmUzNmQ4ODVlOWM2ZDY1OGZjMzhiMjQ4NGZjYjJjOTkyMmEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCBQYXNz
UmVmUHRyPEFycmF5PENhbGxGcmFtZT4gPiBJbmplY3RlZFNjcmlwdDo6d3JhcENhbGxGcmFtZXMo
Y29uc3QgU2NyaXB0VmFsdWUmCiB9CiAjZW5kaWYKIAotUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6
UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJbmplY3RlZFNjcmlwdDo6d3JhcE9iamVjdChjb25zdCBT
Y3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lLCBib29sIGdlbmVyYXRl
UHJldmlldykgY29uc3QKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9i
amVjdD4gSW5qZWN0ZWRTY3JpcHQ6OndyYXBPYmplY3QoY29uc3QgU2NyaXB0VmFsdWUmIHZhbHVl
LCBjb25zdCBTdHJpbmcmIGdyb3VwTmFtZSwgYm9vbCBnZW5lcmF0ZVByZXZpZXcsIGJvb2wgZ2Vu
ZXJhdGVUYWJsZVByZXZpZXcpIGNvbnN0CiB7CiAgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkpOwog
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCB3cmFwRnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3Qo
KSwgIndyYXBPYmplY3QiKTsKQEAgLTIzOCw2ICsyMzgsNyBAQCBQYXNzUmVmUHRyPFR5cGVCdWls
ZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IEluamVjdGVkU2NyaXB0Ojp3cmFwT2JqZWN0KGNv
bnN0CiAgICAgd3JhcEZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGdyb3VwTmFtZSk7CiAgICAgd3Jh
cEZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpKTsKICAg
ICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZ2VuZXJhdGVQcmV2aWV3KTsKKyAgICB3cmFw
RnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZ2VuZXJhdGVUYWJsZVByZXZpZXcpOwogICAgIGJvb2wg
aGFkRXhjZXB0aW9uID0gZmFsc2U7CiAgICAgU2NyaXB0VmFsdWUgciA9IGNhbGxGdW5jdGlvbldp
dGhFdmFsRW5hYmxlZCh3cmFwRnVuY3Rpb24sIGhhZEV4Y2VwdGlvbik7CiAgICAgaWYgKGhhZEV4
Y2VwdGlvbikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAppbmRl
eCAyZjk2YzJkZjc4ODY4OTJkYjMzNzNhNTQ2YTAwNzZiYzk4MDZiM2IyLi5lNTliODdmODgzMWUx
MWUxMWZkMjMwMjc4MDlkYWU4NzAyOWZiNThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHQuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpDYWxsRnJhbWU+ID4g
d3JhcENhbGxGcmFtZXMoY29uc3QgU2NyaXB0VmFsdWUmKTsKICNlbmRpZgogCi0gICAgUGFzc1Jl
ZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFwT2JqZWN0KGNvbnN0
IFNjcmlwdFZhbHVlJiwgY29uc3QgU3RyaW5nJiBncm91cE5hbWUsIGJvb2wgZ2VuZXJhdGVQcmV2
aWV3ID0gZmFsc2UpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6
OlJlbW90ZU9iamVjdD4gd3JhcE9iamVjdChjb25zdCBTY3JpcHRWYWx1ZSYsIGNvbnN0IFN0cmlu
ZyYgZ3JvdXBOYW1lLCBib29sIGdlbmVyYXRlUHJldmlldyA9IGZhbHNlLCBib29sIGdlbmVyYXRl
VGFibGVQcmV2aWV3ID0gZmFsc2UpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYgZ3Jv
dXBOYW1lKTsKICAgICBTY3JpcHRWYWx1ZSBmaW5kT2JqZWN0QnlJZChjb25zdCBTdHJpbmcmIG9i
amVjdElkKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzCmluZGV4IDkxZWIxZTI3YjBkOTYxNjFmNzJiMGQ1MTRjMDRmNzY0NmQ5
OTAwN2YuLmNkZDQyMjMyZWYwMDQxOTc4MTkxMzQ5YTc4Y2VjNjg5ZTVmNjExZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTEx
MSwxMiArMTExLDEzIEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gZ3JvdXBOYW1lCiAgICAgICogQHBhcmFtIHtib29sZWFufSBjYW5BY2Nlc3NJ
bnNwZWN0ZWRXaW5kb3cKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGdlbmVyYXRlUHJldmlldwor
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZ2VuZXJhdGVUYWJsZVByZXZpZXcKICAgICAgKiBAcmV0
dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0KICAgICAgKi8KLSAgICB3cmFwT2JqZWN0
OiBmdW5jdGlvbihvYmplY3QsIGdyb3VwTmFtZSwgY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93LCBn
ZW5lcmF0ZVByZXZpZXcpCisgICAgd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBncm91cE5h
bWUsIGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdywgZ2VuZXJhdGVQcmV2aWV3LCBnZW5lcmF0ZVRh
YmxlUHJldmlldykKICAgICB7CiAgICAgICAgIGlmIChjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3cp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5fd3JhcE9iamVjdChvYmplY3QsIGdyb3VwTmFtZSwg
ZmFsc2UsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fd3JhcE9i
amVjdChvYmplY3QsIGdyb3VwTmFtZSwgZmFsc2UsIGdlbmVyYXRlUHJldmlldywgZ2VuZXJhdGVU
YWJsZVByZXZpZXcpOwogCiAgICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICAgcmVzdWx0
LnR5cGUgPSB0eXBlb2Ygb2JqZWN0OwpAQCAtMTY5LDEzICsxNzAsMTQgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7c3RyaW5nPX0gb2JqZWN0R3JvdXBOYW1l
CiAgICAgICogQHBhcmFtIHtib29sZWFuPX0gZm9yY2VWYWx1ZVR5cGUKICAgICAgKiBAcGFyYW0g
e2Jvb2xlYW49fSBnZW5lcmF0ZVByZXZpZXcKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBnZW5l
cmF0ZVRhYmxlUHJldmlldwogICAgICAqIEByZXR1cm4geyFSdW50aW1lQWdlbnQuUmVtb3RlT2Jq
ZWN0fQogICAgICAqIEBzdXBwcmVzcyB7Y2hlY2tUeXBlc30KICAgICAgKi8KLSAgICBfd3JhcE9i
amVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlLCBn
ZW5lcmF0ZVByZXZpZXcpCisgICAgX3dyYXBPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0
R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2VuZXJhdGVQcmV2aWV3LCBnZW5lcmF0ZVRhYmxl
UHJldmlldykKICAgICB7CiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IElu
amVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdChvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VW
YWx1ZVR5cGUsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IEluamVj
dGVkU2NyaXB0LlJlbW90ZU9iamVjdChvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1
ZVR5cGUsIGdlbmVyYXRlUHJldmlldywgZ2VuZXJhdGVUYWJsZVByZXZpZXcpOwogICAgICAgICB9
IGNhdGNoIChlKSB7CiAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgIHZhciBkZXNj
cmlwdGlvbiA9IGluamVjdGVkU2NyaXB0Ll9kZXNjcmliZShlKTsKQEAgLTU5Niw3ICs1OTgsNyBA
QCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtPYmplY3R9IHRv
cENhbGxGcmFtZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfGJvb2xlYW59IGNhbGxGcmFtZUlkIG9y
IGZhbHNlCiAgICAgICogQHBhcmFtIHtzdHJpbmd8Ym9vbGVhbn0gZnVuY3Rpb25PYmplY3RJZCBv
ciBmYWxzZQotICAgICAqIEBwYXJhbSB7aW50ZWdlcn0gc2NvcGVOdW1iZXIKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gc2NvcGVOdW1iZXIKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFyaWFibGVO
YW1lCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZhbHVlSnNvblN0cmluZyBSdW50aW1lQWdl
bnQuQ2FsbEFyZ3VtZW50IHN0cnVjdHVyZSBzZXJpYWxpemVkIGFzIHN0cmluZyAKICAgICAgKiBA
cmV0dXJuIHtzdHJpbmd8dW5kZWZpbmVkfSB1bmRlZmluZWQgaWYgc3VjY2VzcyBvciBhbiBlcnJv
ciBtZXNzYWdlIApAQCAtODM5LDggKzg0MSw5IEBAIHZhciBpbmplY3RlZFNjcmlwdCA9IG5ldyBJ
bmplY3RlZFNjcmlwdCgpOwogICogQHBhcmFtIHtzdHJpbmc9fSBvYmplY3RHcm91cE5hbWUKICAq
IEBwYXJhbSB7Ym9vbGVhbj19IGZvcmNlVmFsdWVUeXBlCiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBn
ZW5lcmF0ZVByZXZpZXcKKyAqIEBwYXJhbSB7Ym9vbGVhbj19IGdlbmVyYXRlVGFibGVQcmV2aWV3
CiAgKi8KLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9iamVjdCwgb2Jq
ZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2VuZXJhdGVQcmV2aWV3KQorSW5qZWN0ZWRT
Y3JpcHQuUmVtb3RlT2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZv
cmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcsIGdlbmVyYXRlVGFibGVQcmV2aWV3KQogewog
ICAgIHRoaXMudHlwZSA9IHR5cGVvZiBvYmplY3Q7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmlz
UHJpbWl0aXZlVmFsdWUob2JqZWN0KSB8fCBvYmplY3QgPT09IG51bGwgfHwgZm9yY2VWYWx1ZVR5
cGUpIHsKQEAgLTg2OCw0MiArODcxLDQ4IEBAIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9
IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwKICAgICB0
aGlzLmRlc2NyaXB0aW9uID0gaW5qZWN0ZWRTY3JpcHQuX2Rlc2NyaWJlKG9iamVjdCk7CiAKICAg
ICBpZiAoZ2VuZXJhdGVQcmV2aWV3ICYmICh0aGlzLnR5cGUgPT09ICJvYmplY3QiIHx8IGluamVj
dGVkU2NyaXB0Ll9pc0hUTUxBbGxDb2xsZWN0aW9uKG9iamVjdCkpKQotICAgICAgICB0aGlzLl9n
ZW5lcmF0ZVByZXZpZXcob2JqZWN0KTsKKyAgICAgICAgdGhpcy5wcmV2aWV3ID0gdGhpcy5fZ2Vu
ZXJhdGVQcmV2aWV3KG9iamVjdCwgZ2VuZXJhdGVUYWJsZVByZXZpZXcgPyAyIDogMSwgZ2VuZXJh
dGVUYWJsZVByZXZpZXcgPyAyMCA6IDUsIGdlbmVyYXRlVGFibGVQcmV2aWV3ID8gMTAwMCA6IDEw
MCk7CiB9CiAKIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAg
LyoqCiAgICAgICogQHBhcmFtIHtPYmplY3R9IG9iamVjdAorICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBkZXB0aAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwcm9wZXJ0eUNvdW50CisgICAgICogQHBh
cmFtIHtudW1iZXJ9IGluZGV4Q291bnQKKyAgICAgKiBAcmV0dXJuIHtPYmplY3R9IHByZXZpZXcK
ICAgICAgKi8KLSAgICBfZ2VuZXJhdGVQcmV2aWV3OiBmdW5jdGlvbihvYmplY3QpCisgICAgX2dl
bmVyYXRlUHJldmlldzogZnVuY3Rpb24ob2JqZWN0LCBkZXB0aCwgcHJvcGVydHlDb3VudCwgaW5k
ZXhDb3VudCkKICAgICB7Ci0gICAgICAgIHRoaXMucHJldmlldyA9IHt9OwotICAgICAgICB0aGlz
LnByZXZpZXcubG9zc2xlc3MgPSB0cnVlOwotICAgICAgICB0aGlzLnByZXZpZXcub3ZlcmZsb3cg
PSBmYWxzZTsKLSAgICAgICAgdGhpcy5wcmV2aWV3LnByb3BlcnRpZXMgPSBbXTsKLQotICAgICAg
ICB2YXIgaXNBcnJheSA9IHRoaXMuc3VidHlwZSA9PT0gImFycmF5IjsKLSAgICAgICAgdmFyIHBy
b3BlcnRpZXNUaHJlc2hvbGQgPSB7Ci0gICAgICAgICAgICBwcm9wZXJ0aWVzOiA1LAotICAgICAg
ICAgICAgaW5kZXhlczogMTAwCisgICAgICAgIHZhciBwcmV2aWV3ID0ge307CisgICAgICAgIHBy
ZXZpZXcubG9zc2xlc3MgPSB0cnVlOworICAgICAgICBwcmV2aWV3Lm92ZXJmbG93ID0gZmFsc2U7
CisgICAgICAgIHByZXZpZXcucHJvcGVydGllcyA9IFtdOworCisgICAgICAgIHZhciBjb25maWcg
PSB7CisgICAgICAgICAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0eUNvdW50LAorICAgICAgICAgICAg
aW5kZXhlczogaW5kZXhDb3VudCwKKyAgICAgICAgICAgIGRlcHRoOiBkZXB0aAogICAgICAgICB9
OwogCiAgICAgICAgIGZvciAodmFyIG8gPSBvYmplY3Q7IGluamVjdGVkU2NyaXB0Ll9pc0RlZmlu
ZWQobyk7IG8gPSBvLl9fcHJvdG9fXykKLSAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlUHJvdG9Q
cmV2aWV3KG8sIHByb3BlcnRpZXNUaHJlc2hvbGQpOworICAgICAgICAgICAgdGhpcy5fZ2VuZXJh
dGVQcm90b1ByZXZpZXcobywgcHJldmlldywgY29uZmlnKTsKKyAgICAgICAgcmV0dXJuIHByZXZp
ZXc7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QKLSAg
ICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1RocmVzaG9sZAorICAgICAqIEBwYXJhbSB7
T2JqZWN0fSBwcmV2aWV3CisgICAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZwogICAgICAqLwot
ICAgIF9nZW5lcmF0ZVByb3RvUHJldmlldzogZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0aWVzVGhy
ZXNob2xkKQorICAgIF9nZW5lcmF0ZVByb3RvUHJldmlldzogZnVuY3Rpb24ob2JqZWN0LCBwcmV2
aWV3LCBjb25maWcpCiAgICAgewogICAgICAgICB2YXIgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5r
ZXlzKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0KSk7CiAgICAgICAgIHRyeSB7CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnR5TmFtZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXNUaHJlc2hvbGQucHJvcGVydGllcyB8fCAh
cHJvcGVydGllc1RocmVzaG9sZC5pbmRleGVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMu
cHJldmlldy5vdmVyZmxvdyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghY29uZmlnLnByb3BlcnRp
ZXMgfHwgIWNvbmZpZy5pbmRleGVzKSB7CisgICAgICAgICAgICAgICAgICAgIHByZXZpZXcub3Zl
cmZsb3cgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB2YXIgbmFtZSA9IHByb3BlcnR5TmFtZXNbaV07CkBAIC05MTIsMTMgKzkyMSwx
MyBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAgICAgICAg
ICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0KSwgbmFtZSk7CiAgICAgICAgICAgICAgICAg
aWYgKCEoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSB8fCAhZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworICAg
ICAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIHZh
ciB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWU7CiAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09
PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFByb3BlcnR5UHJldmll
dyh7IG5hbWU6IG5hbWUsIHR5cGU6ICJvYmplY3QiLCB2YWx1ZTogIm51bGwiIH0sIHByb3BlcnRp
ZXNUaHJlc2hvbGQpOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVBy
ZXZpZXcocHJldmlldywgeyBuYW1lOiBuYW1lLCB0eXBlOiAib2JqZWN0IiwgdmFsdWU6ICJudWxs
IiB9LCBjb25maWcpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgCkBAIC05MjksMTUgKzkzOCwyNiBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVP
YmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gInN0
cmluZyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPiBtYXhM
ZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2FiYnJl
dmlhdGVTdHJpbmcodmFsdWUsIG1heExlbmd0aCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5wcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAiXCIiICsgdmFsdWUucmVw
bGFjZSgvXG4vZywgIlx1MjFCNSIpICsgIlwiIjsKICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcoeyBuYW1lOiBuYW1l
LCB0eXBlOiB0eXBlLCB2YWx1ZTogdmFsdWUgKyAiIiB9LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHByZXZpZXcs
IHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWU6IHZhbHVlICsgIiIgfSwgY29uZmlnKTsK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQotICAgIAot
ICAgICAgICAgICAgICAgIHRoaXMucHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworCisgICAgICAg
ICAgICAgICAgaWYgKGNvbmZpZy5kZXB0aCA+IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFy
IHN1YlByZXZpZXcgPSB0aGlzLl9nZW5lcmF0ZVByZXZpZXcodmFsdWUsIGNvbmZpZy5kZXB0aCAt
IDEsIGNvbmZpZy5wcm9wZXJ0aWVzLCBjb25maWcuaW5kZXhlcyk7CisgICAgICAgICAgICAgICAg
ICAgIHZhciBwcm9wZXJ0eSA9IHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWVQcmV2aWV3
OiBzdWJQcmV2aWV3IH07CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFByb3BlcnR5
UHJldmlldyhwcmV2aWV3LCBwcm9wZXJ0eSwgY29uZmlnKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFzdWJQcmV2aWV3Lmxvc3NsZXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgcHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpZiAoc3ViUHJldmlldy5v
dmVyZmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXcub3ZlcmZsb3cgPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CiAKICAgICAgICAgICAgICAg
ICB2YXIgc3VidHlwZSA9IGluamVjdGVkU2NyaXB0Ll9zdWJ0eXBlKHZhbHVlKTsKICAgICAgICAg
ICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSAiIjsKQEAgLTk0NywyMyArOTY3LDI0IEBAIEluamVj
dGVkU2NyaXB0LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdmFy
IHByb3BlcnR5ID0geyBuYW1lOiBuYW1lLCB0eXBlOiB0eXBlLCB2YWx1ZTogZGVzY3JpcHRpb24g
fTsKICAgICAgICAgICAgICAgICBpZiAoc3VidHlwZSkKICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHkuc3VidHlwZSA9IHN1YnR5cGU7Ci0gICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kUHJv
cGVydHlQcmV2aWV3KHByb3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcocHJldmlldywgcHJvcGVydHksIGNvbmZp
Zyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgfQogICAg
IH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJldmlldwogICAgICAqIEBw
YXJhbSB7T2JqZWN0fSBwcm9wZXJ0eQotICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wZXJ0aWVz
VGhyZXNob2xkCisgICAgICogQHBhcmFtIHtPYmplY3R9IGNvbmZpZwogICAgICAqLwotICAgIF9h
cHBlbmRQcm9wZXJ0eVByZXZpZXc6IGZ1bmN0aW9uKHByb3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNo
b2xkKQorICAgIF9hcHBlbmRQcm9wZXJ0eVByZXZpZXc6IGZ1bmN0aW9uKHByZXZpZXcsIHByb3Bl
cnR5LCBjb25maWcpCiAgICAgewogICAgICAgICBpZiAoaXNOYU4ocHJvcGVydHkubmFtZSkpCi0g
ICAgICAgICAgICBwcm9wZXJ0aWVzVGhyZXNob2xkLnByb3BlcnRpZXMtLTsKKyAgICAgICAgICAg
IGNvbmZpZy5wcm9wZXJ0aWVzLS07CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByb3BlcnRp
ZXNUaHJlc2hvbGQuaW5kZXhlcy0tOwotICAgICAgICB0aGlzLnByZXZpZXcucHJvcGVydGllcy5w
dXNoKHByb3BlcnR5KTsKKyAgICAgICAgICAgIGNvbmZpZy5pbmRleGVzLS07CisgICAgICAgIHBy
ZXZpZXcucHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMTQxNGY2NGM4MjI2Yzk2MDc5
ZTIwZTk3Zjc1NDc4NDNlMjY0MzUzYS4uMDI2ZDQ4MzI1OTBhOTJjZDBlOGE1MmJjYjdjNzdjNGY2
ZDc4MzY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNjA0
LDYgKzYwNCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9wZXJ0eSBuYW1lLiIgfSwKIAkgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm9i
amVjdCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQiLCAic3RyaW5nIiwgIm51bWJlciIsICJib29s
ZWFuIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgdHlwZS4iIH0sCiAJICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiVXNlci1mcmllbmRseSBwcm9wZXJ0eSB2YWx1ZSBzdHJpbmcuIiB9LAor
CSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlUHJldmlldyIsICIkcmVmIjogIk9iamVj
dFByZXZpZXciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTmVzdGVkIHZhbHVl
IHByZXZpZXcuIiB9LAogCSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN1YnR5cGUiLCAidHlw
ZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZW51bSI6IFsiYXJyYXkiLCAibnVsbCIs
ICJub2RlIiwgInJlZ2V4cCIsICJkYXRlIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qgc3VidHlw
ZSBoaW50LiBTcGVjaWZpZWQgZm9yIDxjb2RlPm9iamVjdDwvY29kZT4gdHlwZSB2YWx1ZXMgb25s
eS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LApAQCAtNzYxLDcgKzc2Miw3
IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3Ry
aW5nIiwgImVudW0iOiBbImh0bWwiLCAid21sIiwgInhtbCIsICJqYXZhc2NyaXB0IiwgIm5ldHdv
cmsiLCAiY29uc29sZS1hcGkiLCAib3RoZXIiXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc291
cmNlLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZXZlbCIsICJ0eXBlIjog
InN0cmluZyIsICJlbnVtIjogWyJ0aXAiLCAibG9nIiwgIndhcm5pbmciLCAiZXJyb3IiLCAiZGVi
dWciXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc2V2ZXJpdHkuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiTWVzc2FnZSB0ZXh0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBl
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImVudW0iOiBbImxvZyIsICJk
aXIiLCAiZGlyeG1sIiwgInRyYWNlIiwgImNsZWFyIiwgInN0YXJ0R3JvdXAiLCAic3RhcnRHcm91
cENvbGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQiLCAidGltaW5nIl0sICJkZXNjcmlwdGlv
biI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjog
WyJsb2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIsICJ0cmFjZSIsICJjbGVhciIsICJzdGFy
dEdyb3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5kR3JvdXAiLCAiYXNzZXJ0IiwgInRp
bWluZyJdLCAiZGVzY3JpcHRpb24iOiAiQ29uc29sZSBtZXNzYWdlIHR5cGUuIiB9LAogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIG1lc3NhZ2Ugb3JpZ2luLiIgfSwK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lIiwgInR5cGUiOiAiaW50ZWdlciIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciBpbiB0aGUgcmVz
b3VyY2UgdGhhdCBnZW5lcmF0ZWQgdGhpcyBtZXNzYWdlLiIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJyZXBlYXRDb3VudCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVwZWF0IGNvdW50IGZvciByZXBlYXRlZCBtZXNzYWdl
cy4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nv
bnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlTWVzc2FnZS5qcwppbmRleCBmODdhYjM0ZGVhZTg2MjE1YmYyNTA5YzNjYWQxYTZiNzMyYzAy
NGY1Li4wNWIxNzJlYWVmMTJiZjMwMDgxY2ZkZTljZjFiMDEyNDhlZTU1MjIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMK
QEAgLTU2LDYgKzU2LDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbCA9IGZ1bmN0
aW9uKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmtpZmllciwgdHkKICAgICB0aGlzLl9zdGFj
a1RyYWNlID0gc3RhY2tUcmFjZTsKICAgICB0aGlzLl9yZXF1ZXN0ID0gcmVxdWVzdElkID8gV2Vi
SW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZvcklkKHJlcXVlc3RJZCkgOiBudWxsOwogICAg
IHRoaXMuX2lzT3V0ZGF0ZWQgPSBpc091dGRhdGVkOworICAgIHRoaXMuX2RhdGFHcmlkcyA9IFtd
OworICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cyA9IG5ldyBNYXAoKTsKIAogICAgIHRoaXMuX2N1
c3RvbUZvcm1hdHRlcnMgPSB7CiAgICAgICAgICJvYmplY3QiOiB0aGlzLl9mb3JtYXRQYXJhbWV0
ZXJBc09iamVjdCwKQEAgLTY2LDYgKzY4LDI0IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2Fn
ZUltcGwgPSBmdW5jdGlvbihzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5raWZpZXIsIHR5CiB9
CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0geworICAgIHdh
c1Nob3duOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5f
ZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9kYXRhR3JpZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
ICAgIHZhciBkYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlkc1tpXTsKKyAgICAgICAgICAgIHZhciBw
YXJlbnRFbGVtZW50ID0gdGhpcy5fZGF0YUdyaWRQYXJlbnRzLmdldChkYXRhR3JpZCk7CisgICAg
ICAgICAgICBkYXRhR3JpZC5zaG93KHBhcmVudEVsZW1lbnQpOworICAgICAgICB9CisgICAgfSwK
KworICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0g
MDsgdGhpcy5fZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9kYXRhR3JpZHMubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgIHZhciBkYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlkc1tpXTsKKyAgICAgICAg
ICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cy5wdXQoZGF0YUdyaWQsIGRhdGFHcmlkLmVsZW1lbnQu
cGFyZW50RWxlbWVudCk7CisgICAgICAgICAgICBkYXRhR3JpZC5kZXRhY2goKTsKKyAgICAgICAg
fQorICAgIH0sCisKICAgICBfZm9ybWF0TWVzc2FnZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKQEAgLTQwMSwxMCArNDIxLDE3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy50eXBlICE9PSBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuRGlyWE1MICYmICEhYXJyYXkucHJldmlldzsKICAg
ICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
fSBhcnJheQorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbQorICAgICAqLwogICAgIF9mb3Jt
YXRQYXJhbWV0ZXJBc0FycmF5OiBmdW5jdGlvbihhcnJheSwgZWxlbSkKICAgICB7CiAgICAgICAg
IGlmICh0aGlzLnVzZUFycmF5UHJldmlld0luRm9ybWF0dGVyKGFycmF5KSkgewotICAgICAgICAg
ICAgdGhpcy5fZm9ybWF0UGFyYW1ldGVyQXNBcnJheU9yT2JqZWN0KGFycmF5LCAiIiwgZWxlbSwg
dHJ1ZSk7CisgICAgICAgICAgICBpZiAodGhpcy50eXBlID09PSBXZWJJbnNwZWN0b3IuQ29uc29s
ZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVGFibGUpCisgICAgICAgICAgICAgICAgdGhpcy5fZm9ybWF0
UGFyYW1ldGVyQXNUYWJsZShhcnJheSwgZWxlbSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgdGhpcy5fZm9ybWF0UGFyYW1ldGVyQXNBcnJheU9yT2JqZWN0KGFycmF5LCAiIiwg
ZWxlbSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNDE1LDYg
KzQ0Miw0OCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGFycmF5LmdldE93blByb3BlcnRpZXModGhpcy5fcHJpbnRBcnJheS5iaW5k
KHRoaXMsIGFycmF5LCBlbGVtKSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdH0gdGFibGUKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9
IGVsZW1lbnQKKyAgICAgKi8KKyAgICBfZm9ybWF0UGFyYW1ldGVyQXNUYWJsZTogZnVuY3Rpb24o
dGFibGUsIGVsZW1lbnQpCisgICAgeworICAgICAgICB2YXIgcHJldmlldyA9IHRhYmxlLnByZXZp
ZXc7CisgICAgICAgIHZhciBjb2x1bW5OYW1lcyA9IFtdOworICAgICAgICB2YXIgcm93VmFsdWVz
ID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJldmlldy5wcm9wZXJ0aWVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgcm93UHJvcGVydHkgPSBwcmV2aWV3LnByb3Bl
cnRpZXNbaV07CisgICAgICAgICAgICB2YXIgcm93UHJldmlldyA9IHJvd1Byb3BlcnR5LnZhbHVl
UHJldmlldzsKKyAgICAgICAgICAgIGlmICghcm93UHJldmlldykKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgdmFyIHJvd1ZhbHVlID0ge307CisgICAgICAgICAgICBm
b3IgKHZhciBqID0gMDsgaiA8IHJvd1ByZXZpZXcucHJvcGVydGllcy5sZW5ndGggJiYgY29sdW1u
TmFtZXMubGVuZ3RoIDwgMjA7ICsraikgeworICAgICAgICAgICAgICAgIHZhciBjZWxsUHJvcGVy
dHkgPSByb3dQcmV2aWV3LnByb3BlcnRpZXNbal07CisgICAgICAgICAgICAgICAgaWYgKGNvbHVt
bk5hbWVzLmluZGV4T2YoY2VsbFByb3BlcnR5Lm5hbWUpID09PSAtMSkKKyAgICAgICAgICAgICAg
ICAgICAgY29sdW1uTmFtZXMucHVzaChjZWxsUHJvcGVydHkubmFtZSk7CisgICAgICAgICAgICAg
ICAgcm93VmFsdWVbY2VsbFByb3BlcnR5Lm5hbWVdID0gY2VsbFByb3BlcnR5LnZhbHVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcm93VmFsdWVzLnB1c2gocm93VmFsdWUpOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGZsYXRWYWx1ZXMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCByb3dWYWx1ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByb3dWYWx1
ZSA9IHJvd1ZhbHVlc1tpXTsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29sdW1u
TmFtZXMubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgZmxhdFZhbHVlcy5wdXNoKHJvd1Zh
bHVlW2NvbHVtbk5hbWVzW2pdXSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZsYXRWYWx1
ZXMubGVuZ3RoKSB7CisgICAgICAgICAgICB0aGlzLl9mb3JtYXRQYXJhbWV0ZXJBc09iamVjdCh0
YWJsZSwgZWxlbWVudCwgZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIHZhciBkYXRhR3JpZCA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVTb3J0YWJs
ZURhdGFHcmlkKGNvbHVtbk5hbWVzLCBmbGF0VmFsdWVzKTsKKyAgICAgICAgZGF0YUdyaWQucmVu
ZGVySW5saW5lKCk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkcy5wdXNoKGRhdGFHcmlkKTsKKyAg
ICAgICAgdGhpcy5fZGF0YUdyaWRQYXJlbnRzLnB1dChkYXRhR3JpZCwgZWxlbWVudCk7CisgICAg
fSwKKwogICAgIF9mb3JtYXRQYXJhbWV0ZXJBc1N0cmluZzogZnVuY3Rpb24ob3V0cHV0LCBlbGVt
KQogICAgIHsKICAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNv
bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1v
ZGVsLmpzCmluZGV4IDBhODIxNzhhM2ZiN2FkMzQ1ODVhOGVjYTU3Y2Y3ZTFmMDNmZTUyNGQuLmFk
NDQzMTRjMzczNjI5NDk1ZDllNzFjMDgxY2Y5ZmFlNjQ5NjZiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzCkBAIC0yMzAsNiAr
MjMwLDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlID0gewogICAg
IExvZzogImxvZyIsCiAgICAgRGlyOiAiZGlyIiwKICAgICBEaXJYTUw6ICJkaXJ4bWwiLAorICAg
IFRhYmxlOiAidGFibGUiLAogICAgIFRyYWNlOiAidHJhY2UiLAogICAgIENsZWFyOiAiY2xlYXIi
LAogICAgIFN0YXJ0R3JvdXA6ICJzdGFydEdyb3VwIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IGE1ZTZjNWJhMWYwMDk3ZDJi
ODEyNzJkZDBiYzA3ZmY3MGFjNjA0MzYuLjg5NTk2ZDk0MGNmNjU2N2FkOGE2ODc2MDJlNzZkMjg1
NDAxZTU3ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlVmlldy5qcwpAQCAtNDEyLDcgKzQxMiw2IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAubWVzc2Fn
ZXNFbGVtZW50LmFwcGVuZENoaWxkKGdyb3VwLmVsZW1lbnQpOwogICAgICAgICAgICAgICAgIHRo
aXMuY3VycmVudEdyb3VwID0gZ3JvdXA7CiAgICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIHRo
aXMuY3VycmVudEdyb3VwLmFkZE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgIH0KIApAQCAtNDIy
LDYgKzQyMSw4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
X2NvbnNvbGVDbGVhcmVkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9zY3JvbGxl
ZFRvQm90dG9tID0gdHJ1ZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl92aXNp
YmxlTWVzc2FnZXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlzLl92aXNpYmxlTWVzc2Fn
ZXNbaV0ud2lsbEhpZGUoKTsKICAgICAgICAgdGhpcy5fdmlzaWJsZU1lc3NhZ2VzID0gW107CiAK
ICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSB0aGlzLnRvcEdyb3VwOwpAQCAtNTQ1LDggKzU0
NiwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIHZpc2libGVNZXNzYWdlSW5kZXgrKzsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5f
c2hvdWxkQmVWaXNpYmxlKHZpc2libGVNZXNzYWdlKSkKICAgICAgICAgICAgICAgICAgICAgbmV3
VmlzaWJsZU1lc3NhZ2VzLnB1c2godmlzaWJsZU1lc3NhZ2UpOwotICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgdmlzaWJsZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVudCgp
LnJlbW92ZVNlbGYoKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmlzaWJsZU1lc3NhZ2Uud2lsbEhpZGUoKTsKKyAgICAgICAgICAgICAgICAgICAgdmlzaWJs
ZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVudCgpLnJlbW92ZVNlbGYoKTsgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX3Nob3VsZEJlVmlzaWJsZShzb3VyY2VNZXNzYWdlKSkgewogICAgICAg
ICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRHcm91cC5hZGRNZXNzYWdlKHNvdXJjZU1lc3NhZ2Us
IHZpc2libGVNZXNzYWdlID8gdmlzaWJsZU1lc3NhZ2UudG9NZXNzYWdlRWxlbWVudCgpIDogbnVs
bCk7CkBAIC02OTgsNiArNzAxLDE0IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZCA9IGZ1
bmN0aW9uKGNvbW1hbmQpCiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlQ29tbWFuZC5wcm90b3R5
cGUgPSB7CisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgfSwKKworICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCisgICAgeworICAgIH0sCisKICAgICBjbGVhckhpZ2hsaWdodDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGhpZ2hsaWdodGVkTWVzc2FnZSA9IHRoaXMu
X2Zvcm1hdHRlZENvbW1hbmQ7CkBAIC04MTksOCArODMwLDEwIEBAIFdlYkluc3BlY3Rvci5Db25z
b2xlR3JvdXAucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIGdyb3VwRWxlbWVudCA9IGVs
ZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiY29uc29sZS1ncm91cCIpOwogICAg
ICAgICAgICAgaWYgKGdyb3VwRWxlbWVudCAmJiBtZXNzYWdlLnR5cGUgPT09IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlVHlwZS5TdGFydEdyb3VwQ29sbGFwc2VkKQogICAgICAg
ICAgICAgICAgIGdyb3VwRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJjb2xsYXBzZWQiKTsKLSAgICAg
ICAgfSBlbHNlCisgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VzRWxl
bWVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSB8fCBudWxsKTsKKyAgICAgICAgICAgIG1l
c3NhZ2Uud2FzU2hvd24oKTsKKyAgICAgICAgfQogCiAgICAgICAgIGlmIChlbGVtZW50LnByZXZp
b3VzU2libGluZyAmJiBtZXNzYWdlLm9yaWdpbmF0aW5nQ29tbWFuZCAmJiBlbGVtZW50LnByZXZp
b3VzU2libGluZy5jb21tYW5kID09PSBtZXNzYWdlLm9yaWdpbmF0aW5nQ29tbWFuZCkKICAgICAg
ICAgICAgIGVsZW1lbnQucHJldmlvdXNTaWJsaW5nLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtYWRq
YWNlbnQtdXNlci1jb21tYW5kLXJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YUdyaWQuanMKaW5kZXggZjFmZGZkNTAxZmQxMzFjNzRjMzdlY2MwYWNh
YzVlMTIzY2ZkOWJiNy4uYTA3MDIyYTM0ZDk2ZmUwOTJjNzNkN2NmZjg5MzhiYWEzMDIwZWViZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCkBA
IC0yMDksOCArMjA5LDggQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxlRGF0
YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5OYW1lcywgdmFsdWVzKQogCiAgICAgICAgIGZ1bmN0aW9u
IGNvbXBhcmF0b3IoZGF0YUdyaWROb2RlMSwgZGF0YUdyaWROb2RlMikKICAgICAgICAgewotICAg
ICAgICAgICAgdmFyIGl0ZW0xID0gZGF0YUdyaWROb2RlMS5kYXRhW3NvcnRDb2x1bW5JZGVudGlm
aWVyXTsKLSAgICAgICAgICAgIHZhciBpdGVtMiA9IGRhdGFHcmlkTm9kZTIuZGF0YVtzb3J0Q29s
dW1uSWRlbnRpZmllcl07CisgICAgICAgICAgICB2YXIgaXRlbTEgPSBTdHJpbmcoZGF0YUdyaWRO
b2RlMS5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXSk7CisgICAgICAgICAgICB2YXIgaXRlbTIg
PSBTdHJpbmcoZGF0YUdyaWROb2RlMi5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXSk7CiAKICAg
ICAgICAgICAgIHZhciBjb21wYXJpc29uOwogICAgICAgICAgICAgaWYgKGNvbHVtbklzTnVtZXJp
YykgewpAQCAtMzEwLDYgKzMxMCwxMCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBl
ID0gewogICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChlbGVt
ZW50LCAwLCBlbGVtZW50LCAxKTsKICAgICB9LAogCisgICAgcmVuZGVySW5saW5lOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkU3R5bGVDbGFzcygiaW5saW5lIik7
CisgICAgfSwKIAogICAgIF9zdGFydEVkaXRpbmdDb25maWc6IGZ1bmN0aW9uKGVsZW1lbnQpCiAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRh
YmFzZVF1ZXJ5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0
YWJhc2VRdWVyeVZpZXcuanMKaW5kZXggMzc0YjY2ZGM4MTU1OTc3M2I3ZTM4Y2E2ZTFmZTY4MWMy
NWJkMTVhMC4uNWE0NGFiNDVjMTgyOTFiNTE3ZWU3Mjg1NDVkNThmN2RjMDFlZDA4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmll
dy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVl
cnlWaWV3LmpzCkBAIC0xNDUsNyArMTQ1LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFiYXNlUXVlcnlW
aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHRyaW1tZWRRdWVyeSA9IHF1ZXJ5LnRyaW0o
KTsKIAogICAgICAgICBpZiAoZGF0YUdyaWQpIHsKLSAgICAgICAgICAgIGRhdGFHcmlkLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiaW5saW5lIik7CisgICAgICAgICAgICBkYXRhR3JpZC5yZW5kZXJJ
bmxpbmUoKTsKICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFZpZXdRdWVyeVJlc3VsdCh0cmltbWVk
UXVlcnksIGRhdGFHcmlkKTsKICAgICAgICAgICAgIGRhdGFHcmlkLmF1dG9TaXplQ29sdW1ucyg1
KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9kYXRhR3JpZC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2Rh
dGFHcmlkLmNzcwppbmRleCBkNjY0MjA3MDQ5OWE0NjdjZjkzNWRjY2U4ZWZmZDdkNmM4YTIzNDFm
Li45NzA0MjgxY2E4YWM5ZDI5Mzk3NmRmMGFmMzIxYzAxNWJhMDYzOWQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2RhdGFHcmlkLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2RhdGFHcmlkLmNzcwpAQCAtMzAsMTAgKzMw
LDE5IEBACiAgICAgb3ZlcmZsb3cteTogb3ZlcmxheTsKIH0KIAorLmRhdGEtZ3JpZC5pbmxpbmUg
eworICAgIGJvcmRlci1yaWdodDogbm9uZTsKK30KKwogLmRhdGEtZ3JpZC5pbmxpbmUgLmRhdGEt
Y29udGFpbmVyIHsKICAgICBwb3NpdGlvbjogc3RhdGljOwogfQogCisuZGF0YS1ncmlkLmlubGlu
ZSB0aC5jb3JuZXIsCisuZGF0YS1ncmlkLmlubGluZSB0ZC5jb3JuZXIgeworICAgIGRpc3BsYXk6
IG5vbmU7Cit9CisKIC5kYXRhLWdyaWQgdGggewogICAgIHRleHQtYWxpZ246IGxlZnQ7CiAgICAg
YmFja2dyb3VuZC1pbWFnZTogdXJsKEltYWdlcy9nbG9zc3lIZWFkZXIucG5nKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcmVzb3VyY2VzUGFuZWwuY3Nz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQYW5lbC5jc3MK
aW5kZXggMTkxNmEzYWQzOGNjYmE5YjgwNjlhODI2YzY0ZWE3MGJlYWQzMTczOC4uOWMzODJhY2Nk
ZTlmYjU4YWE1ZGE5MTUwZDhjY2YxYTAyNzNjNzQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQYW5lbC5jc3MKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQYW5lbC5jc3MKQEAgLTExOCw3ICsx
MTgsNyBAQCBsaS5zZWxlY3RlZCAuYmFzZS1zdG9yYWdlLXRyZWUtZWxlbWVudC1zdWJ0aXRsZSB7
CiAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKIH0KIAotLnN0b3JhZ2UtdmlldyAuZGF0YS1ncmlkIHsK
Ky5zdG9yYWdlLXZpZXcgPiAuZGF0YS1ncmlkIHsKICAgICBib3JkZXI6IG5vbmU7CiAgICAgaGVp
Z2h0OiAxMDAlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggNzQ3OTVhOGE1OTg5NzA2
Y2EzNjFkNGVhOTk3OTJhMjc4YTY3OTAyNS4uNzA4ZThlOTkyYTFjOGM4NDk4NTY0NTc1MjRmNDE5
YmExZjRjNmExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC0yNjYsNiArMjY2LDExIEBA
IHZvaWQgQ29uc29sZTo6ZGlyeG1sKFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3Jp
cHRBcmd1bWVudHM+IGFyZ3VtZW50cykKICAgICBpbnRlcm5hbEFkZE1lc3NhZ2UocGFnZSgpLCBE
aXJYTUxNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBzdGF0ZSwgYXJndW1lbnRzKTsKIH0K
IAordm9pZCBDb25zb2xlOjp0YWJsZShTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCit7CisgICAgaW50ZXJuYWxBZGRNZXNzYWdlKHBhZ2Uo
KSwgVGFibGVNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBzdGF0ZSwgYXJndW1lbnRzKTsK
K30KKwogdm9pZCBDb25zb2xlOjpjbGVhcihTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCiB7CiAgICAgaW50ZXJuYWxBZGRNZXNzYWdlKHBh
Z2UoKSwgQ2xlYXJNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBzdGF0ZSwgYXJndW1lbnRz
LCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXggM2Q1M2E3NWNmNTUxMzY5NTQxODI3M2Ex
Y2YyNmZmM2E4NzE5Y2E3My4uYTlhNWQyNzQ0NTQ1ZDhiODc4OTNjNzg2MjRkMjE4MzllYzVmYzQy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgogICAgIHZv
aWQgd2FybihTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAg
dm9pZCBkaXIoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAg
IHZvaWQgZGlyeG1sKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsK
KyAgICB2b2lkIHRhYmxlKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
KTsKICAgICB2b2lkIHRyYWNlKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+KTsKICAgICB2b2lkIGFzc2VydENvbmRpdGlvbihTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiwgYm9vbCBjb25kaXRpb24pOwogICAgIHZvaWQgY291bnQoU2NyaXB0
U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5p
ZGwKaW5kZXggMjYwMjE3ZWJmZDViMjQ5Mzg2MTcyOTBhYjEzMzQzYzk5YTI3MmNmMy4uZmFlZmQ2
YjUyYWYzY2EwMThkZDFmMTZkOWI5ZDUxNDBjMDcyMjA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aWRsCkBAIC0zOCw2ICszOCw3IEBACiAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xTY3Jp
cHRTdGF0ZV0gdm9pZCB3YXJuKCk7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xTY3Jp
cHRTdGF0ZV0gdm9pZCBkaXIoKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfFNjcmlw
dFN0YXRlXSB2b2lkIGRpcnhtbCgpOworICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8U2Ny
aXB0U3RhdGVdIHZvaWQgdGFibGUoKTsKICAgICBbVjhDdXN0b20sIENhbGxXaXRoPVNjcmlwdEFy
Z3VtZW50c3xTY3JpcHRTdGF0ZV0gdm9pZCB0cmFjZSgpOwogICAgIFtWOEN1c3RvbSwgQ2FsbFdp
dGg9U2NyaXB0QXJndW1lbnRzfFNjcmlwdFN0YXRlLCBJbXBsZW1lbnRlZEFzPWFzc2VydENvbmRp
dGlvbl0gdm9pZCBhc3NlcnQoaW4gYm9vbGVhbiBjb25kaXRpb24pOwogICAgIFtDYWxsV2l0aD1T
Y3JpcHRBcmd1bWVudHN8U2NyaXB0U3RhdGVdIHZvaWQgY291bnQoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMDk2NDlk
ZThiODUyODM4MGE4NmY5NTFhOTMwMjJiZThjYmYwNDllLi43YTkzNjJlNGIwZmM1NjgzYzdlOWE5
MGYyMzRlZGZjOTc2OTUxYTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMTIgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcHJvdmlkZSBiYXNpYyBjb25zb2xlLnRhYmxlIGltcGxlbWVudGF0aW9uIChubyBbLGNv
bHVtbnNdIHN1cHBvcnQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk0NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3Jt
YXQtdGFibGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMTEgIEtlbnRhcm8gSGFyYSAgPGhhcmFr
ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBNYXJrZWQg
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWFzeW5jLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50
eHQKaW5kZXggYWMzNjk5OTE3NWM3MmVmZmY2OTg1NmNhN2JlMmMyYTY2NGFhZTEzNi4uMGY3ZTcy
MWMyNWFjZjVkNDY4NTU3ZjNlMzc4NzQ2Yjc4ZmE4MGVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50
eHQKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTEyMTogVGhlIGNvbnNv
bGUgZnVuY3Rpb24gJCgpIGhhcyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChpZCkgdG8g
JD1xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjJXMiKQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExNDI6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hhbmdl
ZCBmcm9tICQ9Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3Rvciku
IFlvdSBtaWdodCB0cnkgJCgiIyVzIikKIFRlc3RzIHRoYXQgY29tbWFuZCBsaW5lIGFwaSB3b3Jr
cy4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xl
LWZvcm1hdC10YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9jb25zb2xlLWZvcm1hdC10YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWYzOTdmNGU1
YmY4MWQyMjBiNzEyM2Q4ZDNiNjliZWQzMTM3MDVlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogMSwyLDMsNCw1LDYK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogW29iamVjdCBIVE1MRG9jdW1lbnRdCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTE6IG51bGwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogMSwyLDMs
W29iamVjdCBPYmplY3RdLAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVj
dF0sW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogMSwyLDMsNCw1LDYK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogW29iamVjdCBIVE1MRG9jdW1lbnRdCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTE6IG51bGwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMjogMSwyLDMs
W29iamVjdCBPYmplY3RdLAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBbb2JqZWN0IE9iamVj
dF0sW29iamVjdCBPYmplY3RdCitUZXN0cyBjb25zb2xlLnRhYmxlLgorCitBcnJheVsyXSBjb25z
b2xlLWZvcm1hdC10YWJsZS5odG1sOjkKKyNkb2N1bWVudCBjb25zb2xlLWZvcm1hdC10YWJsZS5o
dG1sOjEwCitudWxsIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTEKK0FycmF5WzNdIGNvbnNv
bGUtZm9ybWF0LXRhYmxlLmh0bWw6MTIKK0FycmF5WzJdIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0
bWw6MTMKKzAxMjEyMzQ1NiBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjkKKyBjb25zb2xlLWZv
cm1hdC10YWJsZS5odG1sOjEwCitudWxsIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTEKKzAx
MmFiYzEyM3VuZGVmaW5lZHVuZGVmaW5lZHVuZGVmaW5lZHVuZGVmaW5lZHVuZGVmaW5lZHVuZGVm
aW5lZDEyMyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEyCithYmMxMjMiZm9vImZhbHNldW5k
ZWZpbmVkIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTc2YjRiNWM5N2I2NjIyZmIyYWQyMjU3MTk3OWRmZTQ1YmU2MDE5OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvZ1RvQ29uc29sZSgpCit7CisgICAgY29u
c29sZS50YWJsZShbWzEsMiwzXSwgWzQsNSw2XV0pOworICAgIGNvbnNvbGUudGFibGUoZG9jdW1l
bnQpOworICAgIGNvbnNvbGUudGFibGUobnVsbCk7CisgICAgY29uc29sZS50YWJsZShbWzEsMiwz
XSwge2E6MSwgYjoyLCBjOjN9LCBudWxsXSk7CisgICAgY29uc29sZS50YWJsZShbe2E6MSwgYjoy
LCBjOjN9LCB7YToiZm9vIiwgYjpmYWxzZSwgYzp1bmRlZmluZWR9XSk7Cit9CisKK2Z1bmN0aW9u
IG9ubG9hZCgpCit7CisgICAgbG9nVG9Db25zb2xlKCk7CisgICAgcnVuVGVzdCgpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJsb2dU
b0NvbnNvbGUoKSIsIGNhbGxiYWNrKTsKKworICAgIGZ1bmN0aW9uIGNhbGxiYWNrKCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcENvbnNvbGVNZXNzYWdlcygpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxwPgorVGVzdHMgY29uc29sZS50YWJsZS4K
KzwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>187851</attachid>
            <date>2013-02-12 06:09:04 -0800</date>
            <delta_ts>2013-02-12 06:09:04 -0800</delta_ts>
            <desc>[IMAGE] Screenshot with beverloo applied</desc>
            <filename>Screen Shot 2013-02-12 at 2.04.03 PM.png</filename>
            <type>image/png</type>
            <size>21045</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">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
lUs9lcZJa0qHSZ+SfiSDklGTCZYplumXRcmqy4bInpJ9LIeV2yJHkyuXG5InyhvKx8nXyo8pcCnY
KKQpNCvMKYopeioeUexV/KmkphSuVKn0Spld2Uo5TblV+bOKjIqfSrHKU1VmVTPVPaotqgubZTcH
bD69+bkaWW2rWpZap9oPdQ11unq9+oyGmIaPRonGkCaHpr1mjuadLdgtRlv2bGnbsqKlrhWj1aj1
SVteO0z7vPa0jqROgE6lzriuiC5V94zuqB5Fz0evTG9UX1ifql+u/9ZA1MDfoMrgnaG0YahhneGc
kZIR3eiq0bKxlnGy8S0TtIm5SbbJQ1N2UxfTItMRMxGzILNas3lzNfNd5rcssBbWFkcshiwFLP0s
ayznrTSskq26rInWTtZF1m9tZGzoNq1bUVutth7b+tpW3JZm22wH7CztjtkN20va77S/7oBzsHco
dphyVHbc7djrRHbydjrv9NXZyDnP+ZWLlEusS6crq+t21xrXZTcTt6Nuo+6K7snu9z14PUI8Wjzx
nq6eVZ5L20y3Hd82uV1te+b2wR2SOxJ23PXi9Qr3avdm9aZ6X/bB+rj5nPf5TrWjllOXfC19S3zn
/Yz9Tvh98Dfwz/efCdANOBrwLlA38GjgdJBu0LGgmWD94ILg2RDjkKKQhVCL0NLQ5TC7sOqw9XC3
8IYIhgifiGs0dloYrStSMDIh8nGUbFRm1OhOrZ3Hd87TrelV0Uj0juiWGA54ye2LlYrdFzsWpxdX
HPct3jX+cgIpgZbQlyiTeCDxXZJZ0tldmF1+uzp3C+9O3T2WbJh8JgVJ8U3p3CO6J2PP5F7zvedS
CalhqQ/SlNKOpn1Jd0tvzRDI2Jsxvs98X20mSyY9cyhLO6t0P2Z/yP6HB1QPnDzwM9s/+95BpYMF
B7/n+OXcO6R8qPDQem5g7sM89bzTh3GHaYcHj+gfOXeUdDTp6Pixrcea8in52flfjnsfv1uwuaD0
BOFE7InRQpvClpNiJw+f/F4UXPSs2Ki4oYS/5EDJ8in/UwOnDU7XlwqUHixdLQspe37G/ExTuUR5
QQWuIq5iqtK1sves5tmaKt6qg1U/qmnVo+ccz3XVaNTUnOc/n1eLqo2tnanbXvfogsmFlnr5+jMN
XA0HL4KLsRffX/K5NNho3dh5WfNy/RXxKyVXyVezm5CmxKb55uDm0RaPlsfXrK51tmq3Xr2ucL26
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
qTFisX3xsYmiSU9370/R37OS2pKeuE8/C7e/JzsjxzgXndd7JPuY7XFywYvC0qLAEvlTS6XtZ7Iq
HM8KVc2eu37+YJ1tPblh+FLN5firFs18LQut99uqbuy7FdBp2aXYw3UHuTt7/+WD+/3tjy89oT+T
H3z3vOyl22vCcPMbvzHGt+cnLCZH3tGmV9+nzaI/7p1bm49aGF90/nLrq+xywQpYDVp78EPtZ/Ef
/2MAIyABPiAJM01mcO1HgHRQDJrAAJiHvpdDLGFGKAvmgPqQeRQnSgfljzqEakFNoEloA7jiz6Cf
YPAYHUw05jxmHCsAV3s+dgDHjnPCHce9wAvhA/EN+FWYRclnmGBUZzzA+IagRsglzDCZMlUQmYjJ
xM/MocxTML8xzRrJusaWQxIl3WT3JTORWzkiOWU5P8CVncrtyqPEy8I7zzfE3ynQKFglVEopFj4l
UiFaL9YmfldiSHJGGpHhl9WW85bfr3BVcUqZX8VN9cTmV+piGlGaN7RI2iE63Xpi+gcMFo18jQdN
7cz6LOwsB639bBZtaXaTDt6OI87eLlNuke4/PQ9vl9zR4e1DxfjW+rsF4oKuh0SFSYaP0crg3Vwy
eiH2Rnxeot8unWSulKW9z9NuZNRkFuxPynbJUckl5307MnKs93jjibKTh4vTTsWVhp8JqPA5613t
VUOtdbqg3MB68WNj35XzTVktvq1abaztozfrOxJu63aDnpt3dt1Tu//xQXm/x2OWgQNP7j9DBjWG
wp+XvRh4BV7LDzuPxL8pGK0f63j7YHxw4tnk46mud43TJTPJ770/qMEb4/DH6jn6J/VP3+avLcR8
Vvg8s1jyxW4JtXTx645lwvKVbztWcCsXVh1Xv62d+q7/fexH+k/Rn53rPhv+jw5UhTlL+CBEI5h+
HFlfX5SAucqjAPw4sr6+Vr6+/qMCBhuvAbgV/vt/lw1mHMzVlzRvoB7jjL0b3/98/gsrpsXaVHD0
EAAAAZ1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6
bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuMS4yIj4KICAgPHJkZjpSREYgeG1sbnM6cmRm
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDov
L25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+
NzI3PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9u
PjE1OTwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8
L3JkZjpSREY+CjwveDp4bXBtZXRhPgp1Ek1qAAA4LklEQVR4Ae2dDVhbVbrvF9MmTYlO0/ucRoSn
mM4VDoWq6Wg7tTinlDnt9Ou5A0cYoTzPMb1jscoZjXMFa+k46aOgtnNsqqbS4mhmFIZK58CcW7Ef
MyU9Cv1Sm7ZQETzT2JZ+4B0blNhNsHLX2vkg2dkJAZLQkP/Sh6z9rne971q/tZr9Zq2V7LjBwUGC
BAIgAAIgAAIgAAIRJ/C9iHuEQxAAARAAARAAARBgBCZ7Yujt7fW8RB4EQAAEQAAEQAAEwkcgDjsy
4YMLyyAAAiAAAiAAAgEIYEcmABwUgQAIgAAIgAAIhJGA147MSPx8azF/eJkjk2X/oFbf7rIiKhyJ
VeiCAAiAAAjENoGe9hPddiKVKjMykkZNwn61u+uilUhmZKQqR20k4hVtne3dSRmpcm/HYwMibtPb
Q6CrsXkPZNlRNuq1kG87Pjzyl3373v3zkb4hL6LCoWLkQAAEQAAEQCAgAXu7qXF7ZaVOt98WUC9Q
YU9zUbFWV1Ghrzk+eiOBHDjK7MfeNDR3B+MhOE2bpVxX3im0NzYg4jZp+4NrEhmBd1tPe03F4/n5
+TUefRAVeqIddRQiW/aQdv0D/0htuRZCaFZU6OkOeRAAARAAARAIQEC6uGRT9eacABrDFtmtFkJW
1NTWVm9aKVhXGLbuiBTam0xdVkkwVYLSlBAFUciFLR4bEN6mVGiTNTmoJpGgvdva15boGq2KRBrg
DLiQiApdhY5XjxCCCriOqt82kn+YfOUKDcbkmUXr/vn2m6jw1d/+JevJf5sjo9lG/d7JWu0qGV+b
4771tsauRIW+apCAAAiAAAhEFYGehoqKWvNF2ubEJdotxZlSQnraG8p1tVZetLmyeBa929nPbi3R
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
AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188762</attachid>
            <date>2013-02-17 02:56:19 -0800</date>
            <delta_ts>2013-02-17 04:37:57 -0800</delta_ts>
            <desc>[wip]</desc>
            <filename>bug-109453-20130217145343.patch</filename>
            <type>text/plain</type>
            <size>47711</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI4ZDcwNzc0OTFiNzBk
YTM1MDBkYmY3ZDhmNzliOTIyMjRmMDdkOS4uMzBhYWQ3ZTE1ZTkwNjY0ZjI0ZDc0MjU5NGVmOTM4
MDcyOTlmNDc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEzLTAyLTEyICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYmFzaWMgY29uc29sZS50YWJsZSBpbXBsZW1lbnRhdGlvbiAobm8gWyxjb2x1
bW5zXSBzdXBwb3J0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRm9ybWF0dGluZyB0YWJsZSB1c2luZyBEYXRhR3JpZC4KKworICAgICAgICBUZXN0OiBp
bnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvQ29uc29sZUFQSVR5cGVzLmg6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1lc3NhZ2VUeXBlVmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29uc29sZU1lc3NhZ2U6OmFkZFRvRnJvbnRlbmQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNj
cmlwdDo6d3JhcE9iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6
CisgICAgICAgIChJbmplY3RlZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2Uu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLndpbGxIaWRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXRQ
YXJhbWV0ZXJBc0FycmF5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLl9mb3JtYXRQYXJhbWV0ZXJBc1RhYmxlKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVNb2RlbC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnBy
b3RvdHlwZS5fYXBwZW5kQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVWaWV3LnByb3RvdHlwZS5fY29uc29sZUNsZWFyZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZS5fdXBkYXRlTWVzc2FnZUxpc3QpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZUNvbW1hbmQucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Db25zb2xlR3JvdXAucHJvdG90eXBlLmFkZE1lc3NhZ2UpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanM6CisgICAgICAgICguc29ydERh
dGFHcmlkLmNvbXBhcmF0b3IpOgorICAgICAgICAoLnNvcnREYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3JlYXRlU29ydGFibGVEYXRhR3JpZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnJlbmRlcklubGluZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EYXRhYmFzZVF1ZXJ5Vmlldy5wcm90b3R5cGUuX3F1ZXJ5RmluaXNoZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvZGF0YUdyaWQuY3NzOgorICAgICAgICAoLmRhdGEt
Z3JpZC5pbmxpbmUpOgorICAgICAgICAoLmRhdGEtZ3JpZC5pbmxpbmUgdGQuY29ybmVyKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL3Jlc291cmNlc1BhbmVsLmNzczoKKyAgICAgICAg
KC5zdG9yYWdlLXZpZXcgPiAuZGF0YS1ncmlkKToKKyAgICAgICAgKiBwYWdlL0NvbnNvbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29uc29sZTo6dGFibGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAg
KiBwYWdlL0NvbnNvbGUuaWRsOgorCiAyMDEzLTAyLTE3ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5n
QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBHbHlwaFBhZ2UgZm9yIGNhc2Ugd2hlcmUg
YWxsIGdseXBocyBhcmUgYXZhaWxhYmxlIGluIHRoZSBzYW1lIGZvbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggMDIyOGFhOTAz
YzE0NDU4ZjczZDdmY2RiMjgyYjZlMmJkYzVjZDYzZi4uZjNiOTYyYTQyOTA2ZTZjMjM1ZDMxOGM2
YzVkZWIwZDU2NzgyZDY1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtODYzLDMgKzg2Myw0IEBAIGxvY2FsaXplZFN0cmluZ3Nb
IkZpbGUgc3lzdGVtcyJdID0gIkZpbGUgc3lzdGVtcyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNYXBw
aW5ncyJdID0gIk1hcHBpbmdzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFkZCJdID0gIkFkZCI7CiBs
b2NhbGl6ZWRTdHJpbmdzWyJPYmplY3Qgc3RhdGUgYmVsb3cgaXMgY2FwdHVyZWQgdXBvbiBmaXJz
dCBleHBhbnNpb24iXSA9ICJPYmplY3Qgc3RhdGUgYmVsb3cgaXMgY2FwdHVyZWQgdXBvbiBmaXJz
dCBleHBhbnNpb24iOworbG9jYWxpemVkU3RyaW5nc1siKGluZGV4KSJdID0gIihpbmRleCkiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oCmluZGV4IDE5MGYxMTU4
MjI3ZmU1YzljZTg4NDM2NmM0YmE3Y2Y3NTRlZjlmYzAuLjMxZjAzYjJhYWYyN2U5ZDY1YjI2ZGVh
ZTZiNmZhMDg5MjViYWZhYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b25zb2xlQVBJVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQ
SVR5cGVzLmgKQEAgLTMxLDYgKzMxLDcgQEAgZW51bSBNZXNzYWdlVHlwZSB7CiAgICAgTG9nTWVz
c2FnZVR5cGUsCiAgICAgRGlyTWVzc2FnZVR5cGUsCiAgICAgRGlyWE1MTWVzc2FnZVR5cGUsCisg
ICAgVGFibGVNZXNzYWdlVHlwZSwKICAgICBUcmFjZU1lc3NhZ2VUeXBlLAogICAgIFN0YXJ0R3Jv
dXBNZXNzYWdlVHlwZSwKICAgICBTdGFydEdyb3VwQ29sbGFwc2VkTWVzc2FnZVR5cGUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcAppbmRleCA3MjQyZDhkNmEx
Y2Q5NTY1YjRhZTA5MDQxYWMwYmI4NDU1MDM4NzQ3Li4wYTM2MGRlNTk1ZDI2ZjdhODMzY2JlZGZl
NDExOTg2N2JkOTVmMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5jcHAKQEAgLTE1NCw2ICsxNTQsNyBAQCBzdGF0aWMgVHlwZUJ1aWxkZXI6OkNvbnNvbGU6
OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpFbnVtIG1lc3NhZ2VUeXBlVmFsdWUoTWVzc2FnZQogICAg
IGNhc2UgQ2xlYXJNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25z
b2xlTWVzc2FnZTo6VHlwZTo6Q2xlYXI7CiAgICAgY2FzZSBEaXJNZXNzYWdlVHlwZTogcmV0dXJu
IFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xlTWVzc2FnZTo6VHlwZTo6RGlyOwogICAgIGNh
c2UgRGlyWE1MTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29s
ZU1lc3NhZ2U6OlR5cGU6OkRpcnhtbDsKKyAgICBjYXNlIFRhYmxlTWVzc2FnZVR5cGU6IHJldHVy
biBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OlRhYmxlOwogICAg
IGNhc2UgVHJhY2VNZXNzYWdlVHlwZTogcmV0dXJuIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25z
b2xlTWVzc2FnZTo6VHlwZTo6VHJhY2U7CiAgICAgY2FzZSBTdGFydEdyb3VwTWVzc2FnZVR5cGU6
IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OlN0YXJ0
R3JvdXA7CiAgICAgY2FzZSBTdGFydEdyb3VwQ29sbGFwc2VkTWVzc2FnZVR5cGU6IHJldHVybiBU
eXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OlN0YXJ0R3JvdXBDb2xs
YXBzZWQ7CkBAIC0xOTMsMTMgKzE5NCwyNCBAQCB2b2lkIENvbnNvbGVNZXNzYWdlOjphZGRUb0Zy
b250ZW5kKEluc3BlY3RvckZyb250ZW5kOjpDb25zb2xlKiBmcm9udGVuZCwgSW5qZWN0ZQogICAg
ICAgICBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IGluamVjdGVkU2NyaXB0TWFuYWdl
ci0+aW5qZWN0ZWRTY3JpcHRGb3IobV9hcmd1bWVudHMtPmdsb2JhbFN0YXRlKCkpOwogICAgICAg
ICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkgewogICAgICAgICAgICAgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiA+
IGpzb25BcmdzID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1v
dGVPYmplY3Q+OjpjcmVhdGUoKTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2FyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gaW5zcGVjdG9yVmFsdWUg
PSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KG1fYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLCAi
Y29uc29sZSIsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAgICAgICBpZiAobV90eXBlID09IFRh
YmxlTWVzc2FnZVR5cGUgJiYgZ2VuZXJhdGVQcmV2aWV3ICYmIG1fYXJndW1lbnRzLT5hcmd1bWVu
dENvdW50KCkpIHsKKyAgICAgICAgICAgICAgICBTY3JpcHRWYWx1ZSB0YWJsZSA9IG1fYXJndW1l
bnRzLT5hcmd1bWVudEF0KDApOworICAgICAgICAgICAgICAgIFNjcmlwdFZhbHVlIGNvbHVtbnMg
PSBtX2FyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpID4gMSA/IG1fYXJndW1lbnRzLT5hcmd1bWVu
dEF0KDEpIDogU2NyaXB0VmFsdWUoKTsKKyAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gaW5zcGVjdG9yVmFsdWUgPSBpbmplY3RlZFNjcmlw
dC53cmFwVGFibGUodGFibGUsIGNvbHVtbnMpOwogICAgICAgICAgICAgICAgIGlmICghaW5zcGVj
dG9yVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAganNvbkFyZ3MtPmFkZEl0ZW0oaW5zcGVjdG9yVmFsdWUpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcmd1bWVu
dHMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBpbnNwZWN0b3JWYWx1ZSA9IGluamVj
dGVkU2NyaXB0LndyYXBPYmplY3QobV9hcmd1bWVudHMtPmFyZ3VtZW50QXQoaSksICJjb25zb2xl
IiwgZ2VuZXJhdGVQcmV2aWV3KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpbnNwZWN0b3JW
YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAganNvbkFyZ3MtPmFkZEl0ZW0oaW5zcGVjdG9yVmFsdWUpOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGpzb25PYmotPnNldFBh
cmFtZXRlcnMoanNvbkFyZ3MpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA2MGFhMGNhODkyODE3YjFlMmQ1OTk2NmUwMTMzYWZm
ZTJlODJjMjI4Li5jMTllMDFhOWI1ZjczMTY0MGMyMzFlYzk4OTA0Y2YzOGY4YjkzNWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTI0MCw5ICsy
NDAsMjYgQEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiBJ
bmplY3RlZFNjcmlwdDo6d3JhcE9iamVjdChjb25zdAogICAgIHdyYXBGdW5jdGlvbi5hcHBlbmRB
cmd1bWVudChnZW5lcmF0ZVByZXZpZXcpOwogICAgIGJvb2wgaGFkRXhjZXB0aW9uID0gZmFsc2U7
CiAgICAgU2NyaXB0VmFsdWUgciA9IGNhbGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZCh3cmFwRnVu
Y3Rpb24sIGhhZEV4Y2VwdGlvbik7Ci0gICAgaWYgKGhhZEV4Y2VwdGlvbikgeworICAgIGlmICho
YWRFeGNlcHRpb24pCisgICAgICAgIHJldHVybiAwOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJhd1Jlc3VsdCA9IHIudG9JbnNwZWN0b3JWYWx1ZShzY3JpcHRTdGF0ZSgpKS0+YXNPYmpl
Y3QoKTsKKyAgICByZXR1cm4gVHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdDo6cnVu
dGltZUNhc3QocmF3UmVzdWx0KTsKK30KKworUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGlt
ZTo6UmVtb3RlT2JqZWN0PiBJbmplY3RlZFNjcmlwdDo6d3JhcFRhYmxlKGNvbnN0IFNjcmlwdFZh
bHVlJiB0YWJsZSwgY29uc3QgU2NyaXB0VmFsdWUmIGNvbHVtbnMpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFoYXNOb1ZhbHVlKCkpOworICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCB3cmFwRnVuY3Rpb24o
aW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgIndyYXBUYWJsZSIpOworICAgIHdyYXBGdW5jdGlvbi5h
cHBlbmRBcmd1bWVudChjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3coKSk7CisgICAgd3JhcEZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KHRhYmxlKTsKKyAgICBpZiAoY29sdW1ucy5oYXNOb1ZhbHVlKCkp
CisgICAgICAgIHdyYXBGdW5jdGlvbi5hcHBlbmRBcmd1bWVudChmYWxzZSk7CisgICAgZWxzZQor
ICAgICAgICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoY29sdW1ucyk7CisgICAgYm9vbCBo
YWRFeGNlcHRpb24gPSBmYWxzZTsKKyAgICBTY3JpcHRWYWx1ZSByID0gY2FsbEZ1bmN0aW9uV2l0
aEV2YWxFbmFibGVkKHdyYXBGdW5jdGlvbiwgaGFkRXhjZXB0aW9uKTsKKyAgICBpZiAoaGFkRXhj
ZXB0aW9uKQogICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAgICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gcmF3UmVzdWx0ID0gci50b0luc3BlY3RvclZhbHVlKHNjcmlwdFN0YXRlKCkpLT5hc09i
amVjdCgpOwogICAgIHJldHVybiBUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0Ojpy
dW50aW1lQ2FzdChyYXdSZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaAppbmRleCAyZjk2YzJkZjc4ODY4OTJkYjMzNzNhNTQ2YTAwNzZiYzk4MDZiM2Iy
Li4wYjBjNGYxYmZmNjQ0MzJmMDBiYTA0NDk5OTFhYWZlZGIzYWViMmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0QmFzZS5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdl
ci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0
QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTkyLDYgKzkzLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+IHdyYXBPYmplY3QoY29uc3QgU2NyaXB0VmFsdWUmLCBjb25zdCBTdHJpbmcm
IGdyb3VwTmFtZSwgYm9vbCBnZW5lcmF0ZVByZXZpZXcgPSBmYWxzZSkgY29uc3Q7CisgICAgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFwVGFibGUoY29u
c3QgU2NyaXB0VmFsdWUmIHRhYmxlLCBjb25zdCBTY3JpcHRWYWx1ZSYgY29sdW1ucykgY29uc3Q7
CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB3cmFw
Tm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiBncm91cE5hbWUpOwogICAgIFNjcmlwdFZhbHVlIGZp
bmRPYmplY3RCeUlkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggMTY3N2Jh
MzU0MDU5YTRmYTU3YTgzYmJhZDJmZjBlNzdmMTExYjcxNi4uMTVlZmNmZjBjMTdhMGVkMWIzZjEy
OGNjNWNlYjQ2MWM2MDkwMGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMTE3LDE0ICsxMTcsNDEgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKGNhbkFjY2Vzc0luc3BlY3RlZFdp
bmRvdykKICAgICAgICAgICAgIHJldHVybiB0aGlzLl93cmFwT2JqZWN0KG9iamVjdCwgZ3JvdXBO
YW1lLCBmYWxzZSwgZ2VuZXJhdGVQcmV2aWV3KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZhbGxi
YWNrV3JhcHBlcihvYmplY3QpOworICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0geyp9
IG9iamVjdAorICAgICAqIEByZXR1cm4geyFSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0fQorICAg
ICAqLworICAgIF9mYWxsYmFja1dyYXBwZXI6IGZ1bmN0aW9uKG9iamVjdCkKKyAgICB7CiAgICAg
ICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBlb2Ygb2JqZWN0
OwogICAgICAgICBpZiAodGhpcy5pc1ByaW1pdGl2ZVZhbHVlKG9iamVjdCkpCiAgICAgICAgICAg
ICByZXN1bHQudmFsdWUgPSBvYmplY3Q7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3Vs
dC5kZXNjcmlwdGlvbiA9IHRoaXMuX3RvU3RyaW5nKG9iamVjdCk7Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgIHJldHVybiAvKiogQHR5cGUgeyFSdW50aW1lQWdlbnQuUmVtb3RlT2Jq
ZWN0fSAqLyAocmVzdWx0KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtib29s
ZWFufSBjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3cKKyAgICAgKiBAcGFyYW0ge09iamVjdH0gdGFi
bGUKKyAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+fGJvb2xlYW59IGNvbHVtbnMKKyAgICAg
KiBAcmV0dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0KKyAgICAgKi8KKyAgICB3cmFw
VGFibGU6IGZ1bmN0aW9uKGNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdywgdGFibGUsIGNvbHVtbnMp
CisgICAgeworICAgICAgICBpZiAoIWNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdykKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1dyYXBwZXIodGFibGUpOworICAgICAgICB2YXIgY29s
dW1uTmFtZXMgPSBudWxsOworICAgICAgICBpZiAoSW5qZWN0ZWRTY3JpcHRIb3N0LnR5cGUoY29s
dW1ucykgPT0gImFycmF5IikgeworICAgICAgICAgICAgY29sdW1uTmFtZXMgPSBbXTsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKFN0cmluZyhjb2x1bW5zW2ldKSk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3QodGFibGUsICJjb25zb2xlIiwgZmFsc2Us
IHRydWUsIGNvbHVtbk5hbWVzKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNjksMTMgKzE5Niwx
NCBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmc9
fSBvYmplY3RHcm91cE5hbWUKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBmb3JjZVZhbHVlVHlw
ZQogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGdlbmVyYXRlUHJldmlldworICAgICAqIEBwYXJh
bSB7P0FycmF5LjxzdHJpbmc+PX0gY29sdW1uTmFtZXMKICAgICAgKiBAcmV0dXJuIHshUnVudGlt
ZUFnZW50LlJlbW90ZU9iamVjdH0KICAgICAgKiBAc3VwcHJlc3Mge2NoZWNrVHlwZXN9CiAgICAg
ICovCi0gICAgX3dyYXBPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lLCBm
b3JjZVZhbHVlVHlwZSwgZ2VuZXJhdGVQcmV2aWV3KQorICAgIF93cmFwT2JqZWN0OiBmdW5jdGlv
bihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5cGUsIGdlbmVyYXRlUHJldmll
dywgY29sdW1uTmFtZXMpCiAgICAgewogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJu
IG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0LCBvYmplY3RHcm91cE5hbWUs
IGZvcmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcpOworICAgICAgICAgICAgcmV0dXJuIG5l
dyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGZv
cmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcsIGNvbHVtbk5hbWVzKTsKICAgICAgICAgfSBj
YXRjaCAoZSkgewogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICB2YXIgZGVzY3Jp
cHRpb24gPSBpbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUoZSk7CkBAIC04MzksOCArODY3LDkgQEAg
dmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVkU2NyaXB0KCk7CiAgKiBAcGFyYW0ge3N0
cmluZz19IG9iamVjdEdyb3VwTmFtZQogICogQHBhcmFtIHtib29sZWFuPX0gZm9yY2VWYWx1ZVR5
cGUKICAqIEBwYXJhbSB7Ym9vbGVhbj19IGdlbmVyYXRlUHJldmlldworICogQHBhcmFtIHs/QXJy
YXkuPHN0cmluZz49fSBjb2x1bW5OYW1lcwogICovCi1JbmplY3RlZFNjcmlwdC5SZW1vdGVPYmpl
Y3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5cGUsIGdl
bmVyYXRlUHJldmlldykKK0luamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdCA9IGZ1bmN0aW9uKG9i
amVjdCwgb2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2VuZXJhdGVQcmV2aWV3LCBj
b2x1bW5OYW1lcykKIHsKICAgICB0aGlzLnR5cGUgPSB0eXBlb2Ygb2JqZWN0OwogICAgIGlmIChp
bmplY3RlZFNjcmlwdC5pc1ByaW1pdGl2ZVZhbHVlKG9iamVjdCkgfHwgb2JqZWN0ID09PSBudWxs
IHx8IGZvcmNlVmFsdWVUeXBlKSB7CkBAIC04NjgsNDIgKzg5Nyw0NyBAQCBJbmplY3RlZFNjcmlw
dC5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VW
YWx1ZVR5cGUsCiAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGluamVjdGVkU2NyaXB0Ll9kZXNjcmli
ZShvYmplY3QpOwogCiAgICAgaWYgKGdlbmVyYXRlUHJldmlldyAmJiAodGhpcy50eXBlID09PSAi
b2JqZWN0IiB8fCBpbmplY3RlZFNjcmlwdC5faXNIVE1MQWxsQ29sbGVjdGlvbihvYmplY3QpKSkK
LSAgICAgICAgdGhpcy5fZ2VuZXJhdGVQcmV2aWV3KG9iamVjdCk7CisgICAgICAgIHRoaXMucHJl
dmlldyA9IHRoaXMuX2dlbmVyYXRlUHJldmlldyhvYmplY3QsIHVuZGVmaW5lZCwgY29sdW1uTmFt
ZXMpOwogfQogCiBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAg
IC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QKKyAgICAgKiBAcGFyYW0ge0FycmF5
LjxzdHJpbmc+PX0gZmlyc3RMZXZlbEtleXMKKyAgICAgKiBAcGFyYW0gez9BcnJheS48c3RyaW5n
Pj19IHNlY29uZExldmVsS2V5cworICAgICAqIEByZXR1cm4ge09iamVjdH0gcHJldmlldwogICAg
ICAqLwotICAgIF9nZW5lcmF0ZVByZXZpZXc6IGZ1bmN0aW9uKG9iamVjdCkKKyAgICBfZ2VuZXJh
dGVQcmV2aWV3OiBmdW5jdGlvbihvYmplY3QsIGZpcnN0TGV2ZWxLZXlzLCBzZWNvbmRMZXZlbEtl
eXMpCiAgICAgewotICAgICAgICB0aGlzLnByZXZpZXcgPSB7fTsKLSAgICAgICAgdGhpcy5wcmV2
aWV3Lmxvc3NsZXNzID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5wcmV2aWV3Lm92ZXJmbG93ID0gZmFs
c2U7Ci0gICAgICAgIHRoaXMucHJldmlldy5wcm9wZXJ0aWVzID0gW107CisgICAgICAgIHZhciBw
cmV2aWV3ID0ge307CisgICAgICAgIHByZXZpZXcubG9zc2xlc3MgPSB0cnVlOworICAgICAgICBw
cmV2aWV3Lm92ZXJmbG93ID0gZmFsc2U7CisgICAgICAgIHByZXZpZXcucHJvcGVydGllcyA9IFtd
OwogCi0gICAgICAgIHZhciBpc0FycmF5ID0gdGhpcy5zdWJ0eXBlID09PSAiYXJyYXkiOwogICAg
ICAgICB2YXIgcHJvcGVydGllc1RocmVzaG9sZCA9IHsKICAgICAgICAgICAgIHByb3BlcnRpZXM6
IDUsCiAgICAgICAgICAgICBpbmRleGVzOiAxMDAKICAgICAgICAgfTsKLQogICAgICAgICBmb3Ig
KHZhciBvID0gb2JqZWN0OyBpbmplY3RlZFNjcmlwdC5faXNEZWZpbmVkKG8pOyBvID0gby5fX3By
b3RvX18pCi0gICAgICAgICAgICB0aGlzLl9nZW5lcmF0ZVByb3RvUHJldmlldyhvLCBwcm9wZXJ0
aWVzVGhyZXNob2xkKTsKKyAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlUHJvdG9QcmV2aWV3KG8s
IHByZXZpZXcsIHByb3BlcnRpZXNUaHJlc2hvbGQsIGZpcnN0TGV2ZWxLZXlzLCBzZWNvbmRMZXZl
bEtleXMpOworICAgICAgICByZXR1cm4gcHJldmlldzsKICAgICB9LAogCiAgICAgLyoqCiAgICAg
ICogQHBhcmFtIHtPYmplY3R9IG9iamVjdAorICAgICAqIEBwYXJhbSB7T2JqZWN0fSBwcmV2aWV3
CiAgICAgICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnRpZXNUaHJlc2hvbGQKKyAgICAgKiBAcGFy
YW0ge0FycmF5LjxzdHJpbmc+PX0gZmlyc3RMZXZlbEtleXMKKyAgICAgKiBAcGFyYW0ge0FycmF5
LjxzdHJpbmc+PX0gc2Vjb25kTGV2ZWxLZXlzCiAgICAgICovCi0gICAgX2dlbmVyYXRlUHJvdG9Q
cmV2aWV3OiBmdW5jdGlvbihvYmplY3QsIHByb3BlcnRpZXNUaHJlc2hvbGQpCisgICAgX2dlbmVy
YXRlUHJvdG9QcmV2aWV3OiBmdW5jdGlvbihvYmplY3QsIHByZXZpZXcsIHByb3BlcnRpZXNUaHJl
c2hvbGQsIGZpcnN0TGV2ZWxLZXlzLCBzZWNvbmRMZXZlbEtleXMpCiAgICAgewotICAgICAgICB2
YXIgcHJvcGVydHlOYW1lcyA9IE9iamVjdC5rZXlzKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2Jq
ZWN0KSk7CisgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gZmlyc3RMZXZlbEtleXMgPyBmaXJz
dExldmVsS2V5cyA6IE9iamVjdC5rZXlzKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0KSk7
CiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnR5
TmFtZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnRpZXNUaHJl
c2hvbGQucHJvcGVydGllcyB8fCAhcHJvcGVydGllc1RocmVzaG9sZC5pbmRleGVzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHRoaXMucHJldmlldy5vdmVyZmxvdyA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgICAgIHRoaXMucHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAg
ICAgICBwcmV2aWV3Lm92ZXJmbG93ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgcHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOwpA
QCAtOTEyLDEzICs5NDYsMTMgQEAgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcigvKiogQHR5cGUgeyFPYmplY3R9ICovKG9iamVjdCksIG5hbWUpOwog
ICAgICAgICAgICAgICAgIGlmICghKCJ2YWx1ZSIgaW4gZGVzY3JpcHRvcikgfHwgIWRlc2NyaXB0
b3IuZW51bWVyYWJsZSkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXcubG9zc2xl
c3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZhbHNl
OwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBkZXNjcmlwdG9yLnZhbHVlOwogICAgICAgICAgICAg
ICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgewotICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBl
bmRQcm9wZXJ0eVByZXZpZXcoeyBuYW1lOiBuYW1lLCB0eXBlOiAib2JqZWN0IiwgdmFsdWU6ICJu
dWxsIiB9LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5f
YXBwZW5kUHJvcGVydHlQcmV2aWV3KHByZXZpZXcsIHsgbmFtZTogbmFtZSwgdHlwZTogIm9iamVj
dCIsIHZhbHVlOiAibnVsbCIgfSwgcHJvcGVydGllc1RocmVzaG9sZCk7CiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAKQEAgLTkyOSwxNSArOTYz
LDI2IEBAIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICh0eXBlID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlID0gdGhpcy5fYWJicmV2aWF0ZVN0cmluZyh2YWx1ZSwgbWF4TGVuZ3Ro
LCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXcubG9zc2xl
c3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNz
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA9ICJcIiIgKyB2YWx1ZS5yZXBsYWNlKC9cbi9nLCAiXHUyMUI1IikgKyAiXCIi
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cbi9nLCAi
XHUyMUI1Iik7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdGhp
cy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWU6
IHZhbHVlICsgIiIgfSwgcHJvcGVydGllc1RocmVzaG9sZCk7CisgICAgICAgICAgICAgICAgICAg
IHRoaXMuX2FwcGVuZFByb3BlcnR5UHJldmlldyhwcmV2aWV3LCB7IG5hbWU6IG5hbWUsIHR5cGU6
IHR5cGUsIHZhbHVlOiB2YWx1ZSArICIiIH0sIHByb3BlcnRpZXNUaHJlc2hvbGQpOwogICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgCi0gICAgICAg
ICAgICAgICAgdGhpcy5wcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CisKKyAgICAgICAgICAgICAg
ICBpZiAoc2Vjb25kTGV2ZWxLZXlzID09PSBudWxsIHx8IHNlY29uZExldmVsS2V5cykgeworICAg
ICAgICAgICAgICAgICAgICB2YXIgc3ViUHJldmlldyA9IHRoaXMuX2dlbmVyYXRlUHJldmlldyh2
YWx1ZSwgc2Vjb25kTGV2ZWxLZXlzIHx8IHVuZGVmaW5lZCk7CisgICAgICAgICAgICAgICAgICAg
IHZhciBwcm9wZXJ0eSA9IHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWVQcmV2aWV3OiBz
dWJQcmV2aWV3IH07CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFByb3BlcnR5UHJl
dmlldyhwcmV2aWV3LCBwcm9wZXJ0eSwgcHJvcGVydGllc1RocmVzaG9sZCk7CisgICAgICAgICAg
ICAgICAgICAgIGlmICghc3ViUHJldmlldy5sb3NzbGVzcykKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZpZXcubG9zc2xlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHN1
YlByZXZpZXcub3ZlcmZsb3cpCisgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lm92ZXJm
bG93ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOwogCiAgICAg
ICAgICAgICAgICAgdmFyIHN1YnR5cGUgPSBpbmplY3RlZFNjcmlwdC5fc3VidHlwZSh2YWx1ZSk7
CiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0aW9uID0gIiI7CkBAIC05NDcsMjMgKzk5Miwy
NCBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIHZhciBwcm9wZXJ0eSA9IHsgbmFtZTogbmFtZSwgdHlwZTogdHlwZSwgdmFsdWU6IGRl
c2NyaXB0aW9uIH07CiAgICAgICAgICAgICAgICAgaWYgKHN1YnR5cGUpCiAgICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5LnN1YnR5cGUgPSBzdWJ0eXBlOwotICAgICAgICAgICAgICAgIHRoaXMu
X2FwcGVuZFByb3BlcnR5UHJldmlldyhwcm9wZXJ0eSwgcHJvcGVydGllc1RocmVzaG9sZCk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHByZXZpZXcsIHByb3Bl
cnR5LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBjYXRj
aCAoZSkgewogICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2Jq
ZWN0fSBwcmV2aWV3CiAgICAgICogQHBhcmFtIHtPYmplY3R9IHByb3BlcnR5CiAgICAgICogQHBh
cmFtIHtPYmplY3R9IHByb3BlcnRpZXNUaHJlc2hvbGQKICAgICAgKi8KLSAgICBfYXBwZW5kUHJv
cGVydHlQcmV2aWV3OiBmdW5jdGlvbihwcm9wZXJ0eSwgcHJvcGVydGllc1RocmVzaG9sZCkKKyAg
ICBfYXBwZW5kUHJvcGVydHlQcmV2aWV3OiBmdW5jdGlvbihwcmV2aWV3LCBwcm9wZXJ0eSwgcHJv
cGVydGllc1RocmVzaG9sZCkKICAgICB7CiAgICAgICAgIGlmIChpc05hTihwcm9wZXJ0eS5uYW1l
KSkKICAgICAgICAgICAgIHByb3BlcnRpZXNUaHJlc2hvbGQucHJvcGVydGllcy0tOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBwcm9wZXJ0aWVzVGhyZXNob2xkLmluZGV4ZXMtLTsKLSAgICAg
ICAgdGhpcy5wcmV2aWV3LnByb3BlcnRpZXMucHVzaChwcm9wZXJ0eSk7CisgICAgICAgIHByZXZp
ZXcucHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYzY3NzdlYTYwMzNmNjE5Yjk4MmRl
Yzk2YzNlMmNlYzEwMjhlOTNlYy4uMDE2MWM0MWZhZWVkOWFjNDk1M2UzMTllZjEzOWM5ZWJiZDQw
NTRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29u
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNjEyLDYg
KzYxMiw3IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJQcm9wZXJ0eSBuYW1lLiIgfSwKIAkgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgImVudW0iOiBbIm9iamVj
dCIsICJmdW5jdGlvbiIsICJ1bmRlZmluZWQiLCAic3RyaW5nIiwgIm51bWJlciIsICJib29sZWFu
Il0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgdHlwZS4iIH0sCiAJICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiVXNlci1mcmllbmRseSBwcm9wZXJ0eSB2YWx1ZSBzdHJpbmcuIiB9LAorCSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlUHJldmlldyIsICIkcmVmIjogIk9iamVjdFBy
ZXZpZXciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTmVzdGVkIHZhbHVlIHBy
ZXZpZXcuIiB9LAogCSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN1YnR5cGUiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZW51bSI6IFsiYXJyYXkiLCAibnVsbCIsICJu
b2RlIiwgInJlZ2V4cCIsICJkYXRlIl0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3Qgc3VidHlwZSBo
aW50LiBTcGVjaWZpZWQgZm9yIDxjb2RlPm9iamVjdDwvY29kZT4gdHlwZSB2YWx1ZXMgb25seS4i
IH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LApAQCAtNzY5LDcgKzc3MCw3IEBA
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic291cmNlIiwgInR5cGUiOiAic3RyaW5n
IiwgImVudW0iOiBbImh0bWwiLCAid21sIiwgInhtbCIsICJqYXZhc2NyaXB0IiwgIm5ldHdvcmsi
LCAiY29uc29sZS1hcGkiLCAib3RoZXIiXSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc291cmNl
LiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsZXZlbCIsICJ0eXBlIjogInN0
cmluZyIsICJlbnVtIjogWyJ0aXAiLCAibG9nIiwgIndhcm5pbmciLCAiZXJyb3IiLCAiZGVidWci
XSwgImRlc2NyaXB0aW9uIjogIk1lc3NhZ2Ugc2V2ZXJpdHkuIiB9LAogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
TWVzc2FnZSB0ZXh0LiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwg
InR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImVudW0iOiBbImxvZyIsICJkaXIi
LCAiZGlyeG1sIiwgInRyYWNlIiwgImNsZWFyIiwgInN0YXJ0R3JvdXAiLCAic3RhcnRHcm91cENv
bGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQiLCAidGltaW5nIl0sICJkZXNjcmlwdGlvbiI6
ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidHlwZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJs
b2ciLCAiZGlyIiwgImRpcnhtbCIsICJ0YWJsZSIsICJ0cmFjZSIsICJjbGVhciIsICJzdGFydEdy
b3VwIiwgInN0YXJ0R3JvdXBDb2xsYXBzZWQiLCAiZW5kR3JvdXAiLCAiYXNzZXJ0IiwgInRpbWlu
ZyJdLCAiZGVzY3JpcHRpb24iOiAiQ29uc29sZSBtZXNzYWdlIHR5cGUuIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJVUkwgb2YgdGhlIG1lc3NhZ2Ugb3JpZ2luLiIgfSwKICAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lIiwgInR5cGUiOiAiaW50ZWdlciIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlciBpbiB0aGUgcmVzb3Vy
Y2UgdGhhdCBnZW5lcmF0ZWQgdGhpcyBtZXNzYWdlLiIgfSwKICAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJyZXBlYXRDb3VudCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiUmVwZWF0IGNvdW50IGZvciByZXBlYXRlZCBtZXNzYWdlcy4i
IH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApp
bmRleCA1ZmRmYmZiZWViN2MwZmZiZTdiYWNmMjBhYTYyZTNhOWQyYWIxOTIxLi4yYTI5NjkyNDRl
MTE0MTExNmE3N2FiNTg0YjU4MjQ3MjUwZTk1MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAgLTEzOTUsNyArMTM5NSw3IEBAIFBhc3NS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdlbnQ6
OmJ1aWxkT2JqZWN0Rm9yRXZlCiAgICAgICAgICAgICAgICAgaWYgKHNjcmlwdFN0YXRlKSB7CiAg
ICAgICAgICAgICAgICAgICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0ID0gbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yKHNjcmlwdFN0YXRlKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiB2YWx1ZUpzb24gPSBpbmplY3RlZFNjcmlwdC53cmFwT2JqZWN0KGZ1bmN0aW9uVmFsdWUs
ICpvYmplY3RHcm91cElkLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0PiB2YWx1ZUpzb24gPSBpbmplY3RlZFNj
cmlwdC53cmFwT2JqZWN0KGZ1bmN0aW9uVmFsdWUsICpvYmplY3RHcm91cElkKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRIYW5kbGVyKHZhbHVlSnNvbik7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwppbmRleCBmODdhYjM0ZGVhZTg2
MjE1YmYyNTA5YzNjYWQxYTZiNzMyYzAyNGY1Li41ZTk5ODFkODkwNzY3ZjFjZDk0ZDdkN2E2NzU0
NjQ4ZGEzNGZkNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NvbnNvbGVNZXNzYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKQEAgLTU2LDYgKzU2LDggQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlSW1wbCA9IGZ1bmN0aW9uKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmtp
ZmllciwgdHkKICAgICB0aGlzLl9zdGFja1RyYWNlID0gc3RhY2tUcmFjZTsKICAgICB0aGlzLl9y
ZXF1ZXN0ID0gcmVxdWVzdElkID8gV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZvcklk
KHJlcXVlc3RJZCkgOiBudWxsOwogICAgIHRoaXMuX2lzT3V0ZGF0ZWQgPSBpc091dGRhdGVkOwor
ICAgIHRoaXMuX2RhdGFHcmlkcyA9IFtdOworICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cyA9IG5l
dyBNYXAoKTsKIAogICAgIHRoaXMuX2N1c3RvbUZvcm1hdHRlcnMgPSB7CiAgICAgICAgICJvYmpl
Y3QiOiB0aGlzLl9mb3JtYXRQYXJhbWV0ZXJBc09iamVjdCwKQEAgLTY2LDYgKzY4LDI0IEBAIFdl
Ykluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwgPSBmdW5jdGlvbihzb3VyY2UsIGxldmVsLCBt
ZXNzYWdlLCBsaW5raWZpZXIsIHR5CiB9CiAKIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlID0geworICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgdGhpcy5fZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9kYXRhR3JpZHMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBkYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlk
c1tpXTsKKyAgICAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5fZGF0YUdyaWRQYXJl
bnRzLmdldChkYXRhR3JpZCk7CisgICAgICAgICAgICBkYXRhR3JpZC5zaG93KHBhcmVudEVsZW1l
bnQpOworICAgICAgICB9CisgICAgfSwKKworICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fZGF0YUdyaWRzICYmIGkgPCB0aGlzLl9k
YXRhR3JpZHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBkYXRhR3JpZCA9IHRoaXMu
X2RhdGFHcmlkc1tpXTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cy5wdXQoZGF0
YUdyaWQsIGRhdGFHcmlkLmVsZW1lbnQucGFyZW50RWxlbWVudCk7CisgICAgICAgICAgICBkYXRh
R3JpZC5kZXRhY2goKTsKKyAgICAgICAgfQorICAgIH0sCisKICAgICBfZm9ybWF0TWVzc2FnZTog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fZm9ybWF0dGVkTWVzc2FnZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTIzMyw2ICsyNTMsMTEgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZm9y
bWF0dGVkUmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgIikpOwog
ICAgICAgICB9CiAKKyAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlRhYmxlKSB7CisgICAgICAgICAgICBmb3JtYXR0ZWRSZXN1
bHQuYXBwZW5kQ2hpbGQodGhpcy5fZm9ybWF0UGFyYW1ldGVyQXNUYWJsZShwYXJhbWV0ZXJzKSk7
CisgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkUmVzdWx0OworICAgICAgICB9CisKICAgICAg
ICAgLy8gU2luZ2xlIHBhcmFtZXRlciwgb3IgdW51c2VkIHN1YnN0aXR1dGlvbnMgZnJvbSBhYm92
ZS4KICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7
CiAgICAgICAgICAgICAvLyBJbmxpbmUgc3RyaW5ncyB3aGVuIGZvcm1hdHRpbmcuCkBAIC0zMzQs
NyArMzU5LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgdGl0bGVFbGVtZW50LmNyZWF0ZVRleHRDaGlsZCgiOiAiKTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHRp
dGxlRWxlbWVudCwgcHJvcGVydHkpOworICAgICAgICAgICAgdGl0bGVFbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX3JlbmRlclByb3BlcnR5UHJldmlldyhwcm9wZXJ0eSkpOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChwcmV2aWV3Lm92ZXJmbG93KQogICAgICAgICAgICAgdGl0bGVFbGVtZW50LmNy
ZWF0ZUNoaWxkKCJzcGFuIikudGV4dENvbnRlbnQgPSAiXHUyMDI2IjsKQEAgLTM0MywzMSArMzY4
LDM4IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAg
IH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IHRpdGxlRWxlbWVudAogICAg
ICAqIEBwYXJhbSB7UnVudGltZUFnZW50LlByb3BlcnR5UHJldmlld30gcHJvcGVydHkKKyAgICAg
KiBAcmV0dXJuIHtFbGVtZW50fQogICAgICAqLwotICAgIF9hcHBlbmRQcm9wZXJ0eVByZXZpZXc6
IGZ1bmN0aW9uKHRpdGxlRWxlbWVudCwgcHJvcGVydHkpCisgICAgX3JlbmRlclByb3BlcnR5UHJl
dmlldzogZnVuY3Rpb24ocHJvcGVydHkpCiAgICAgewotICAgICAgICB2YXIgc3BhbiA9IHRpdGxl
RWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJjb25zb2xlLWZvcm1hdHRlZC0iICsgcHJvcGVy
dHkudHlwZSk7CisgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3Bh
biIpOworICAgICAgICBzcGFuLmNsYXNzTmFtZSA9ICJjb25zb2xlLWZvcm1hdHRlZC0iOwogCiAg
ICAgICAgIGlmIChwcm9wZXJ0eS50eXBlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICBz
cGFuLnRleHRDb250ZW50ID0gImZ1bmN0aW9uIjsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiBzcGFuOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHByb3BlcnR5LnR5
cGUgPT09ICJvYmplY3QiICYmIHByb3BlcnR5LnN1YnR5cGUgPT09ICJyZWdleHAiKSB7CiAgICAg
ICAgICAgICBzcGFuLmFkZFN0eWxlQ2xhc3MoImNvbnNvbGUtZm9ybWF0dGVkLXN0cmluZyIpOwog
ICAgICAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9IHByb3BlcnR5LnZhbHVlOwotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocHJvcGVydHkudHlwZSA9PT0gIm9iamVjdCIgJiYgcHJvcGVydHkuc3VidHlwZSA9PT0g
Im5vZGUiICYmIHByb3BlcnR5LnZhbHVlKSB7CiAgICAgICAgICAgICBzcGFuLmFkZFN0eWxlQ2xh
c3MoImNvbnNvbGUtZm9ybWF0dGVkLXByZXZpZXctbm9kZSIpOwogICAgICAgICAgICAgV2ViSW5z
cGVjdG9yLkRPTVByZXNlbnRhdGlvblV0aWxzLmNyZWF0ZVNwYW5zRm9yTm9kZVRpdGxlKHNwYW4s
IHByb3BlcnR5LnZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVy
biBzcGFuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHByb3BlcnR5LnR5cGUgPT09ICJzdHJp
bmciKSB7CisgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gIlwiIiArIHByb3BlcnR5LnZh
bHVlICsgIlwiIjsKKyAgICAgICAgICAgIHJldHVybiBzcGFuOwogICAgICAgICB9CiAKICAgICAg
ICAgc3Bhbi50ZXh0Q29udGVudCA9IHByb3BlcnR5LnZhbHVlOworICAgICAgICByZXR1cm4gc3Bh
bjsKICAgICB9LAogCiAgICAgX2Zvcm1hdFBhcmFtZXRlckFzTm9kZTogZnVuY3Rpb24ob2JqZWN0
LCBlbGVtKQpAQCAtNDAxLDYgKzQzMywxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJ
bXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSAhPT0gV2ViSW5zcGVj
dG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLkRpclhNTCAmJiAhIWFycmF5LnByZXZpZXc7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlbW90ZU9i
amVjdH0gYXJyYXkKKyAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW0KKyAgICAgKi8KICAgICBf
Zm9ybWF0UGFyYW1ldGVyQXNBcnJheTogZnVuY3Rpb24oYXJyYXksIGVsZW0pCiAgICAgewogICAg
ICAgICBpZiAodGhpcy51c2VBcnJheVByZXZpZXdJbkZvcm1hdHRlcihhcnJheSkpIHsKQEAgLTQx
NSw2ICs0NTEsNTYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBhcnJheS5nZXRPd25Qcm9wZXJ0aWVzKHRoaXMuX3ByaW50QXJyYXku
YmluZCh0aGlzLCBhcnJheSwgZWxlbSkpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0Pn0gcGFyYW1ldGVycworICAgICAq
IEByZXR1cm4ge0VsZW1lbnR9CisgICAgICovCisgICAgX2Zvcm1hdFBhcmFtZXRlckFzVGFibGU6
IGZ1bmN0aW9uKHBhcmFtZXRlcnMpCisgICAgeworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgdmFyIHRhYmxlID0gcGFyYW1ldGVy
c1swXTsKKyAgICAgICAgaWYgKCF0YWJsZSB8fCAhdGFibGUucHJldmlldyB8fCB0YWJsZS5zdWJ0
eXBlICE9PSAiYXJyYXkiKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisKKyAgICAgICAg
dmFyIGNvbHVtbk5hbWVzID0gW107CisgICAgICAgIHZhciBwcmV2aWV3ID0gdGFibGUucHJldmll
dzsKKyAgICAgICAgdmFyIHJvd3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
cmV2aWV3LnByb3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByb3dQcm9w
ZXJ0eSA9IHByZXZpZXcucHJvcGVydGllc1tpXTsKKyAgICAgICAgICAgIHZhciByb3dQcmV2aWV3
ID0gcm93UHJvcGVydHkudmFsdWVQcmV2aWV3OworICAgICAgICAgICAgaWYgKCFyb3dQcmV2aWV3
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICB2YXIgcm93VmFsdWUg
PSB7fTsKKyAgICAgICAgICAgIGNvbnN0IG1heENvbHVtbnNUb1JlbmRlciA9IDIwOworICAgICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCByb3dQcmV2aWV3LnByb3BlcnRpZXMubGVuZ3RoICYm
IGNvbHVtbk5hbWVzLmxlbmd0aCA8IG1heENvbHVtbnNUb1JlbmRlcjsgKytqKSB7CisgICAgICAg
ICAgICAgICAgdmFyIGNlbGxQcm9wZXJ0eSA9IHJvd1ByZXZpZXcucHJvcGVydGllc1tqXTsKKyAg
ICAgICAgICAgICAgICBpZiAoY29sdW1uTmFtZXMuaW5kZXhPZihjZWxsUHJvcGVydHkubmFtZSkg
PT09IC0xKQorICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKGNlbGxQcm9wZXJ0
eS5uYW1lKTsKKyAgICAgICAgICAgICAgICByb3dWYWx1ZVtjZWxsUHJvcGVydHkubmFtZV0gPSB0
aGlzLl9yZW5kZXJQcm9wZXJ0eVByZXZpZXcoY2VsbFByb3BlcnR5KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJvd3MucHVzaChbcm93UHJvcGVydHkubmFtZSwgcm93VmFsdWVdKTsKKyAg
ICAgICAgfQorCisgICAgICAgIHZhciBmbGF0VmFsdWVzID0gW107CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgcm93cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHJvd05hbWUg
PSByb3dzW2ldWzBdOworICAgICAgICAgICAgdmFyIHJvd1ZhbHVlID0gcm93c1tpXVsxXTsKKyAg
ICAgICAgICAgIGZsYXRWYWx1ZXMucHVzaChyb3dOYW1lKTsKKyAgICAgICAgICAgIGZvciAodmFy
IGogPSAwOyBqIDwgY29sdW1uTmFtZXMubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgZmxh
dFZhbHVlcy5wdXNoKHJvd1ZhbHVlW2NvbHVtbk5hbWVzW2pdXSk7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIWZsYXRWYWx1ZXMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7
CisgICAgICAgIGNvbHVtbk5hbWVzLnVuc2hpZnQoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoaW5k
ZXgpIikpOworICAgICAgICB2YXIgZGF0YUdyaWQgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3Jl
YXRlU29ydGFibGVEYXRhR3JpZChjb2x1bW5OYW1lcywgZmxhdFZhbHVlcyk7CisgICAgICAgIGRh
dGFHcmlkLnJlbmRlcklubGluZSgpOworICAgICAgICB0aGlzLl9kYXRhR3JpZHMucHVzaChkYXRh
R3JpZCk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkUGFyZW50cy5wdXQoZGF0YUdyaWQsIGVsZW1l
bnQpOworICAgICAgICByZXR1cm4gZWxlbWVudDsKKyAgICB9LAorCiAgICAgX2Zvcm1hdFBhcmFt
ZXRlckFzU3RyaW5nOiBmdW5jdGlvbihvdXRwdXQsIGVsZW0pCiAgICAgewogICAgICAgICB2YXIg
c3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggMGE4MjE3OGEz
ZmI3YWQzNDU4NWE4ZWNhNTdjZjdlMWYwM2ZlNTI0ZC4uYWQ0NDMxNGMzNzM2Mjk0OTVkOWU3MWMw
ODFjZjlmYWU2NDk2NmIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTW9kZWwuanMKQEAgLTIzMCw2ICsyMzAsNyBAQCBXZWJJbnNwZWN0b3Iu
Q29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUgPSB7CiAgICAgTG9nOiAibG9nIiwKICAgICBEaXI6
ICJkaXIiLAogICAgIERpclhNTDogImRpcnhtbCIsCisgICAgVGFibGU6ICJ0YWJsZSIsCiAgICAg
VHJhY2U6ICJ0cmFjZSIsCiAgICAgQ2xlYXI6ICJjbGVhciIsCiAgICAgU3RhcnRHcm91cDogInN0
YXJ0R3JvdXAiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Db25zb2xlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKaW5kZXggYTVlNmM1YmExZjAwOTdkMmI4MTI3MmRkMGJjMDdmZjcwYWM2MDQz
Ni4uODk1OTZkOTQwY2Y2NTY3YWQ4YTY4NzYwMmU3NmQyODU0MDFlNTc4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC00MTIs
NyArNDEyLDYgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgICAgICB0aGlzLmN1cnJlbnRHcm91cC5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQo
Z3JvdXAuZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSBncm91
cDsKICAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAuYWRkTWVz
c2FnZShtZXNzYWdlKTsKICAgICAgICAgfQogCkBAIC00MjIsNiArNDIxLDggQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICBfY29uc29sZUNsZWFyZWQ6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Njcm9sbGVkVG9Cb3R0b20gPSB0cnVlOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3Zpc2libGVNZXNzYWdlcy5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgIHRoaXMuX3Zpc2libGVNZXNzYWdlc1tpXS53aWxsSGlkZSgpOwogICAg
ICAgICB0aGlzLl92aXNpYmxlTWVzc2FnZXMgPSBbXTsKIAogICAgICAgICB0aGlzLmN1cnJlbnRH
cm91cCA9IHRoaXMudG9wR3JvdXA7CkBAIC01NDUsOCArNTQ2LDEwIEBAIFdlYkluc3BlY3Rvci5D
b25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdmlzaWJsZU1lc3NhZ2VJ
bmRleCsrOwogICAgICAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRCZVZpc2libGUodmlzaWJs
ZU1lc3NhZ2UpKQogICAgICAgICAgICAgICAgICAgICBuZXdWaXNpYmxlTWVzc2FnZXMucHVzaCh2
aXNpYmxlTWVzc2FnZSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICB2aXNpYmxlTWVzc2FnZS50b01lc3NhZ2VFbGVtZW50KCkucmVtb3ZlU2VsZigpOworICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICB2aXNpYmxlTWVzc2FnZS53aWxs
SGlkZSgpOworICAgICAgICAgICAgICAgICAgICB2aXNpYmxlTWVzc2FnZS50b01lc3NhZ2VFbGVt
ZW50KCkucmVtb3ZlU2VsZigpOyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxk
QmVWaXNpYmxlKHNvdXJjZU1lc3NhZ2UpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3Vy
cmVudEdyb3VwLmFkZE1lc3NhZ2Uoc291cmNlTWVzc2FnZSwgdmlzaWJsZU1lc3NhZ2UgPyB2aXNp
YmxlTWVzc2FnZS50b01lc3NhZ2VFbGVtZW50KCkgOiBudWxsKTsKQEAgLTY5OCw2ICs3MDEsMTQg
QEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kID0gZnVuY3Rpb24oY29tbWFuZCkKIH0KIAog
V2ViSW5zcGVjdG9yLkNvbnNvbGVDb21tYW5kLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93bjog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICB9LAorCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgfSwKKwogICAgIGNsZWFySGlnaGxpZ2h0OiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICB2YXIgaGlnaGxpZ2h0ZWRNZXNzYWdlID0gdGhpcy5fZm9ybWF0dGVkQ29tbWFuZDsKQEAg
LTgxOSw4ICs4MzAsMTAgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVHcm91cC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB2YXIgZ3JvdXBFbGVtZW50ID0gZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKCJjb25zb2xlLWdyb3VwIik7CiAgICAgICAgICAgICBpZiAoZ3JvdXBFbGVt
ZW50ICYmIG1lc3NhZ2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3Nh
Z2VUeXBlLlN0YXJ0R3JvdXBDb2xsYXBzZWQpCiAgICAgICAgICAgICAgICAgZ3JvdXBFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoImNvbGxhcHNlZCIpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgIHRoaXMubWVzc2FnZXNFbGVtZW50Lmluc2VydEJlZm9yZShlbGVt
ZW50LCBub2RlIHx8IG51bGwpOworICAgICAgICAgICAgbWVzc2FnZS53YXNTaG93bigpOworICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGVsZW1lbnQucHJldmlvdXNTaWJsaW5nICYmIG1lc3NhZ2Uu
b3JpZ2luYXRpbmdDb21tYW5kICYmIGVsZW1lbnQucHJldmlvdXNTaWJsaW5nLmNvbW1hbmQgPT09
IG1lc3NhZ2Uub3JpZ2luYXRpbmdDb21tYW5kKQogICAgICAgICAgICAgZWxlbWVudC5wcmV2aW91
c1NpYmxpbmcuYWRkU3R5bGVDbGFzcygiY29uc29sZS1hZGphY2VudC11c2VyLWNvbW1hbmQtcmVz
dWx0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Rh
dGFHcmlkLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5q
cwppbmRleCA2Njc1ODk3NWY2MjQyMTlkODlkNzBhNWJjODRhNGQ0NmVmNDhhY2M1Li5hYTY3YjQ5
ZGFiYjZhMzU2N2Q5ZDcyN2Y0ODQxOTNjY2FkZjA4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRGF0YUdyaWQuanMKQEAgLTczLDEwICs3MywyNyBAQCBXZWJJ
bnNwZWN0b3IuRGF0YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5zLCBlZGl0Q2FsbGJhY2ssIGRlbGV0
ZUNhbGxiYWNrLCByZWZyZXNoQwogICAgIHZhciBjb2x1bW5Hcm91cCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImNvbGdyb3VwIik7CiAgICAgdGhpcy5fY29sdW1uQ291bnQgPSAwOwogCisgICAg
dGhpcy5jb2x1bW5zID0gY29sdW1ucyB8fCB7fTsKKyAgICB0aGlzLl9jb2x1bW5zQXJyYXkgPSBb
XTsKICAgICBmb3IgKHZhciBjb2x1bW5JZGVudGlmaWVyIGluIGNvbHVtbnMpIHsKLSAgICAgICAg
dmFyIGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl07CisgICAgICAgIGlmICghKCJv
cmRpbmFsIiBpbiBjb2x1bW5zW2NvbHVtbklkZW50aWZpZXJdKSkKKyAgICAgICAgICAgIGNvbHVt
bnNbY29sdW1uSWRlbnRpZmllcl0ub3JkaW5hbCA9IHRoaXMuX2NvbHVtbnNBcnJheS5sZW5ndGg7
CisgICAgICAgIGNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0uaWRlbnRpZmllciA9IGNvbHVtbklk
ZW50aWZpZXI7CisgICAgICAgIHRoaXMuX2NvbHVtbnNBcnJheS5wdXNoKGNvbHVtbnNbY29sdW1u
SWRlbnRpZmllcl0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9yZGluYWxDb21wYXJhdG9yKGNv
bHVtbjEsIGNvbHVtbjIpCisgICAgeworICAgICAgICBpZiAoY29sdW1uMS5vcmRpbmFsIDwgY29s
dW1uMi5vcmRpbmFsKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICByZXR1cm4gY29s
dW1uMS5vcmRpbmFsID4gY29sdW1uMi5vcmRpbmFsID8gMSA6IDA7CisgICAgfQorICAgIHRoaXMu
X2NvbHVtbnNBcnJheS5zb3J0KG9yZGluYWxDb21wYXJhdG9yKTsKKworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgdGhpcy5fY29sdW1uc0FycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBj
b2x1bW4gPSB0aGlzLl9jb2x1bW5zQXJyYXlbaV07CiAgICAgICAgIGlmIChjb2x1bW4uZGlzY2xv
c3VyZSkKLSAgICAgICAgICAgIHRoaXMuZGlzY2xvc3VyZUNvbHVtbklkZW50aWZpZXIgPSBjb2x1
bW5JZGVudGlmaWVyOworICAgICAgICAgICAgdGhpcy5kaXNjbG9zdXJlQ29sdW1uSWRlbnRpZmll
ciA9IGNvbHVtbi5pZGVudGlmaWVyOwogCiAgICAgICAgIHZhciBjb2wgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJjb2wiKTsKICAgICAgICAgaWYgKGNvbHVtbi53aWR0aCkKQEAgLTg1LDkgKzEw
Miw5IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZCA9IGZ1bmN0aW9uKGNvbHVtbnMsIGVkaXRDYWxs
YmFjaywgZGVsZXRlQ2FsbGJhY2ssIHJlZnJlc2hDCiAgICAgICAgIGNvbHVtbkdyb3VwLmFwcGVu
ZENoaWxkKGNvbCk7CiAKICAgICAgICAgdmFyIGNlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ0aCIpOwotICAgICAgICBjZWxsLmNsYXNzTmFtZSA9IGNvbHVtbklkZW50aWZpZXIgKyAiLWNv
bHVtbiI7Ci0gICAgICAgIGNlbGwuY29sdW1uSWRlbnRpZmllciA9IGNvbHVtbklkZW50aWZpZXI7
Ci0gICAgICAgIHRoaXMuX2hlYWRlclRhYmxlSGVhZGVyc1tjb2x1bW5JZGVudGlmaWVyXSA9IGNl
bGw7CisgICAgICAgIGNlbGwuY2xhc3NOYW1lID0gY29sdW1uLmlkZW50aWZpZXIgKyAiLWNvbHVt
biI7CisgICAgICAgIGNlbGwuY29sdW1uSWRlbnRpZmllciA9IGNvbHVtbi5pZGVudGlmaWVyOwor
ICAgICAgICB0aGlzLl9oZWFkZXJUYWJsZUhlYWRlcnNbY29sdW1uLmlkZW50aWZpZXJdID0gY2Vs
bDsKIAogICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAg
ICAgICAgIGlmIChjb2x1bW4udGl0bGVET01GcmFnbWVudCkKQEAgLTEwNyw3ICsxMjQsNyBAQCBX
ZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5zLCBlZGl0Q2FsbGJhY2ssIGRl
bGV0ZUNhbGxiYWNrLCByZWZyZXNoQwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGNvbHVtbi5h
bGlnbmVkKQotICAgICAgICAgICAgdGhpcy5hbGlnbmVkW2NvbHVtbklkZW50aWZpZXJdID0gY29s
dW1uLmFsaWduZWQ7CisgICAgICAgICAgICB0aGlzLmFsaWduZWRbY29sdW1uLmlkZW50aWZpZXJd
ID0gY29sdW1uLmFsaWduZWQ7CiAKICAgICAgICAgaGVhZGVyUm93LmFwcGVuZENoaWxkKGNlbGwp
OwogCkBAIC0xMjUsMjIgKzE0MiwxNiBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQgPSBmdW5jdGlv
bihjb2x1bW5zLCBlZGl0Q2FsbGJhY2ssIGRlbGV0ZUNhbGxiYWNrLCByZWZyZXNoQwogICAgIHZh
ciBmaWxsZXJSb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgIGZpbGxlclJv
dy5jbGFzc05hbWUgPSAiZmlsbGVyIjsKIAotICAgIGZvciAodmFyIGNvbHVtbklkZW50aWZpZXIg
aW4gY29sdW1ucykKLSAgICAgICAgZmlsbGVyUm93LmNyZWF0ZUNoaWxkKCJ0ZCIsIGNvbHVtbklk
ZW50aWZpZXIgKyAiLWNvbHVtbiIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fY29s
dW1uc0FycmF5Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBjb2x1bW4gPSB0aGlzLl9jb2x1
bW5zQXJyYXlbaV07CisgICAgICAgIGZpbGxlclJvdy5jcmVhdGVDaGlsZCgidGQiLCBjb2x1bW4u
aWRlbnRpZmllciArICItY29sdW1uIik7CisgICAgfQogICAgIGZpbGxlclJvdy5jcmVhdGVDaGls
ZCgidGQiLCAiY29ybmVyIik7CiAKICAgICB0aGlzLl9kYXRhVGFibGVDb2x1bW5Hcm91cCA9IGNv
bHVtbkdyb3VwLmNsb25lTm9kZSh0cnVlKTsKICAgICB0aGlzLl9kYXRhVGFibGUuYXBwZW5kQ2hp
bGQodGhpcy5fZGF0YVRhYmxlQ29sdW1uR3JvdXApOwogICAgIHRoaXMuZGF0YVRhYmxlQm9keS5h
cHBlbmRDaGlsZChmaWxsZXJSb3cpOwogCi0gICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucyB8fCB7
fTsKLSAgICB0aGlzLl9jb2x1bW5zQXJyYXkgPSBbXTsKLSAgICBmb3IgKHZhciBjb2x1bW5JZGVu
dGlmaWVyIGluIGNvbHVtbnMpIHsKLSAgICAgICAgY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXS5v
cmRpbmFsID0gdGhpcy5fY29sdW1uc0FycmF5Lmxlbmd0aDsKLSAgICAgICAgY29sdW1uc1tjb2x1
bW5JZGVudGlmaWVyXS5pZGVudGlmaWVyID0gY29sdW1uSWRlbnRpZmllcjsKLSAgICAgICAgdGhp
cy5fY29sdW1uc0FycmF5LnB1c2goY29sdW1uc1tjb2x1bW5JZGVudGlmaWVyXSk7Ci0gICAgfQot
CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb2x1bW5zQXJyYXkubGVuZ3RoOyArK2kp
CiAgICAgICAgIHRoaXMuX2NvbHVtbnNBcnJheVtpXS5ib2R5RWxlbWVudCA9IHRoaXMuX2RhdGFU
YWJsZUNvbHVtbkdyb3VwLmNoaWxkcmVuW2ldOwogCkBAIC0xNzcsNiArMTg4LDcgQEAgV2ViSW5z
cGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxlRGF0YUdyaWQgPSBmdW5jdGlvbihjb2x1bW5O
YW1lcywgdmFsdWVzKQogICAgICAgICBjb2x1bW4ud2lkdGggPSBjb2x1bW5OYW1lc1tpXS5sZW5n
dGg7CiAgICAgICAgIGNvbHVtbi50aXRsZSA9IGNvbHVtbk5hbWVzW2ldOwogICAgICAgICBjb2x1
bW4uc29ydGFibGUgPSB0cnVlOworICAgICAgICBjb2x1bW4ub3JkaW5hbCA9IGk7CiAKICAgICAg
ICAgY29sdW1uc1tjb2x1bW5OYW1lc1tpXV0gPSBjb2x1bW47CiAgICAgfQpAQCAtMjE1LDYgKzIy
Nyw4IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVTb3J0YWJsZURhdGFHcmlkID0gZnVu
Y3Rpb24oY29sdW1uTmFtZXMsIHZhbHVlcykKICAgICAgICAgewogICAgICAgICAgICAgdmFyIGl0
ZW0xID0gZGF0YUdyaWROb2RlMS5kYXRhW3NvcnRDb2x1bW5JZGVudGlmaWVyXTsKICAgICAgICAg
ICAgIHZhciBpdGVtMiA9IGRhdGFHcmlkTm9kZTIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl07
CisgICAgICAgICAgICBpdGVtMSA9IGl0ZW0xIGluc3RhbmNlb2YgTm9kZSA/IGl0ZW0xLnRleHRD
b250ZW50IDogU3RyaW5nKGl0ZW0xKTsKKyAgICAgICAgICAgIGl0ZW0yID0gaXRlbTIgaW5zdGFu
Y2VvZiBOb2RlID8gaXRlbTIudGV4dENvbnRlbnQgOiBTdHJpbmcoaXRlbTIpOwogCiAgICAgICAg
ICAgICB2YXIgY29tcGFyaXNvbjsKICAgICAgICAgICAgIGlmIChjb2x1bW5Jc051bWVyaWMpIHsK
QEAgLTMxNCw2ICszMjgsMTAgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoZWxlbWVudCwg
MCwgZWxlbWVudCwgMSk7CiAgICAgfSwKIAorICAgIHJlbmRlcklubGluZTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImlubGluZSIpOworICAg
IH0sCiAKICAgICBfc3RhcnRFZGl0aW5nQ29uZmlnOiBmdW5jdGlvbihlbGVtZW50KQogICAgIHsK
QEAgLTUxNiwxNiArNTM0LDE1IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7
CiAgICAgYXV0b1NpemVDb2x1bW5zOiBmdW5jdGlvbihtaW5QZXJjZW50LCBtYXhQZXJjZW50LCBt
YXhEZXNjZW50TGV2ZWwpCiAgICAgewogICAgICAgICB2YXIgd2lkdGhzID0gW107Ci0gICAgICAg
IHZhciBjb2x1bW5JZGVudGlmaWVycyA9IE9iamVjdC5rZXlzKHRoaXMuY29sdW1ucyk7Ci0gICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1uSWRlbnRpZmllcnMubGVuZ3RoOyArK2kpCi0g
ICAgICAgICAgICB3aWR0aHNbaV0gPSAodGhpcy5jb2x1bW5zW2NvbHVtbklkZW50aWZpZXJzW2ld
XS50aXRsZSB8fCAiIikubGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X2NvbHVtbnNBcnJheS5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHdpZHRoc1tpXSA9ICh0aGlz
LmNvbHVtbnNbdGhpcy5fY29sdW1uc0FycmF5W2ldLmlkZW50aWZpZXJdLnRpdGxlIHx8ICIiKS5s
ZW5ndGg7CiAKICAgICAgICAgbWF4RGVzY2VudExldmVsID0gbWF4RGVzY2VudExldmVsIHx8IDA7
CiAgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuX2VudW1lcmF0ZUNoaWxkcmVuKHRoaXMuX3Jv
b3ROb2RlLCBbXSwgbWF4RGVzY2VudExldmVsICsgMSk7CiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBub2RlID0gY2hp
bGRyZW5baV07Ci0gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGNvbHVtbklkZW50aWZp
ZXJzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHRleHQgPSBub2RlLmRhdGFb
Y29sdW1uSWRlbnRpZmllcnNbal1dIHx8ICIiOworICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7
IGogPCB0aGlzLl9jb2x1bW5zQXJyYXkubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgICAgICB2
YXIgdGV4dCA9IG5vZGUuZGF0YVt0aGlzLl9jb2x1bW5zQXJyYXlbal0uaWRlbnRpZmllcl0gfHwg
IiI7CiAgICAgICAgICAgICAgICAgaWYgKHRleHQubGVuZ3RoID4gd2lkdGhzW2pdKQogICAgICAg
ICAgICAgICAgICAgICB3aWR0aHNbal0gPSB0ZXh0Lmxlbmd0aDsKICAgICAgICAgICAgIH0KQEAg
LTUzMyw4ICs1NTAsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAg
ICAgICAgIHdpZHRocyA9IHRoaXMuX2F1dG9TaXplV2lkdGhzKHdpZHRocywgbWluUGVyY2VudCwg
bWF4UGVyY2VudCk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5JZGVudGlm
aWVycy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuY29sdW1uc1tjb2x1bW5JZGVudGlm
aWVyc1tpXV0uZWxlbWVudC5zdHlsZS53aWR0aCA9IHdpZHRoc1tpXSArICIlIjsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9jb2x1bW5zQXJyYXkubGVuZ3RoOyArK2kpCisgICAg
ICAgICAgICB0aGlzLmNvbHVtbnNbdGhpcy5fY29sdW1uc0FycmF5W2ldLmlkZW50aWZpZXJdLmVs
ZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aHNbaV0gKyAiJSI7CiAgICAgICAgIHRoaXMuX2NvbHVt
bldpZHRoc0luaXRpYWxpemVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMudXBkYXRlV2lkdGhzKCk7
CiAgICAgfSwKQEAgLTU5MywxNSArNjEwLDE2IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90
b3R5cGUgPSB7CiAgICAgYXBwbHlDb2x1bW5XZWlnaHRzOiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICB2YXIgc3VtT2ZXZWlnaHRzID0gMC4wOwotICAgICAgICBmb3IgKHZhciBjb2x1bW5JZGVu
dGlmaWVyIGluIHRoaXMuY29sdW1ucykgewotICAgICAgICAgICAgaWYgKHRoaXMuaXNDb2x1bW5W
aXNpYmxlKGNvbHVtbklkZW50aWZpZXIpKQotICAgICAgICAgICAgICAgIHN1bU9mV2VpZ2h0cyAr
PSB0aGlzLmNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl0ud2VpZ2h0OworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHRoaXMuX2NvbHVtbnNBcnJheS5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgdmFyIGNvbHVtbiA9IHRoaXMuX2NvbHVtbnNBcnJheVtpXTsKKyAgICAgICAgICAgIGlmICh0
aGlzLmlzQ29sdW1uVmlzaWJsZShjb2x1bW4uaWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAg
c3VtT2ZXZWlnaHRzICs9IHRoaXMuY29sdW1uc1tjb2x1bW4uaWRlbnRpZmllcl0ud2VpZ2h0Owog
ICAgICAgICB9CiAgICAgICAgIHZhciBmYWN0b3IgPSAxMDAgLyBzdW1PZldlaWdodHM7CiAKLSAg
ICAgICAgZm9yICh2YXIgY29sdW1uSWRlbnRpZmllciBpbiB0aGlzLmNvbHVtbnMpIHsKLSAgICAg
ICAgICAgIHZhciBjb2x1bW4gPSB0aGlzLmNvbHVtbnNbY29sdW1uSWRlbnRpZmllcl07Ci0gICAg
ICAgICAgICB2YXIgd2lkdGggPSB0aGlzLmlzQ29sdW1uVmlzaWJsZShjb2x1bW5JZGVudGlmaWVy
KSA/ICgoZmFjdG9yICogY29sdW1uLndlaWdodCkgKyAiJSIpOiAiMCUiOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHRoaXMuX2NvbHVtbnNBcnJheS5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgICAgdmFyIGNvbHVtbiA9IHRoaXMuX2NvbHVtbnNBcnJheVtpXTsKKyAgICAgICAgICAgIHZh
ciB3aWR0aCA9IHRoaXMuaXNDb2x1bW5WaXNpYmxlKGNvbHVtbi5pZGVudGlmaWVyKSA/ICgoZmFj
dG9yICogY29sdW1uLndlaWdodCkgKyAiJSIpOiAiMCUiOwogICAgICAgICAgICAgdGhpcy5faGVh
ZGVyVGFibGVDb2x1bW5Hcm91cC5jaGlsZHJlbltjb2x1bW4ub3JkaW5hbF0uc3R5bGUud2lkdGgg
PSB3aWR0aDsKICAgICAgICAgICAgIHRoaXMuX2RhdGFUYWJsZUNvbHVtbkdyb3VwLmNoaWxkcmVu
W2NvbHVtbi5vcmRpbmFsXS5zdHlsZS53aWR0aCA9IHdpZHRoOwogICAgICAgICB9CkBAIC0xMTAw
LDggKzExMTgsOSBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZSA9IHsKIAog
ICAgIGNyZWF0ZUNlbGxzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBmb3IgKHZhciBjb2x1
bW5JZGVudGlmaWVyIGluIHRoaXMuZGF0YUdyaWQuY29sdW1ucykgewotICAgICAgICAgICAgdmFy
IGNlbGwgPSB0aGlzLmNyZWF0ZUNlbGwoY29sdW1uSWRlbnRpZmllcik7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhR3JpZC5fY29sdW1uc0FycmF5Lmxlbmd0aDsgKytpKSB7
CisgICAgICAgICAgICB2YXIgY29sdW1uID0gdGhpcy5kYXRhR3JpZC5fY29sdW1uc0FycmF5W2ld
OworICAgICAgICAgICAgdmFyIGNlbGwgPSB0aGlzLmNyZWF0ZUNlbGwoY29sdW1uLmlkZW50aWZp
ZXIpOwogICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChjZWxsKTsKICAgICAg
ICAgfQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwppbmRleCAzNzRiNjZkYzgxNTU5NzczYjdlMzhjYTZl
MWZlNjgxYzI1YmQxNWEwLi41YTQ0YWI0NWMxODI5MWI1MTdlZTcyODU0NWQ1OGY3ZGMwMWVkMDgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFiYXNl
UXVlcnlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGF0
YWJhc2VRdWVyeVZpZXcuanMKQEAgLTE0NSw3ICsxNDUsNyBAQCBXZWJJbnNwZWN0b3IuRGF0YWJh
c2VRdWVyeVZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2YXIgdHJpbW1lZFF1ZXJ5ID0gcXVl
cnkudHJpbSgpOwogCiAgICAgICAgIGlmIChkYXRhR3JpZCkgewotICAgICAgICAgICAgZGF0YUdy
aWQuZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJpbmxpbmUiKTsKKyAgICAgICAgICAgIGRhdGFHcmlk
LnJlbmRlcklubGluZSgpOwogICAgICAgICAgICAgdGhpcy5fYXBwZW5kVmlld1F1ZXJ5UmVzdWx0
KHRyaW1tZWRRdWVyeSwgZGF0YUdyaWQpOwogICAgICAgICAgICAgZGF0YUdyaWQuYXV0b1NpemVD
b2x1bW5zKDUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2RhdGFHcmlkLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvZGF0YUdyaWQuY3NzCmluZGV4IGQ2NjQyMDcwNDk5YTQ2N2NmOTM1ZGNjZThlZmZkN2Q2
YzhhMjM0MWYuLjk3MDQyODFjYThhYzlkMjkzOTc2ZGYwYWYzMjFjMDE1YmEwNjM5ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZGF0YUdyaWQuY3NzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZGF0YUdyaWQuY3NzCkBAIC0z
MCwxMCArMzAsMTkgQEAKICAgICBvdmVyZmxvdy15OiBvdmVybGF5OwogfQogCisuZGF0YS1ncmlk
LmlubGluZSB7CisgICAgYm9yZGVyLXJpZ2h0OiBub25lOworfQorCiAuZGF0YS1ncmlkLmlubGlu
ZSAuZGF0YS1jb250YWluZXIgewogICAgIHBvc2l0aW9uOiBzdGF0aWM7CiB9CiAKKy5kYXRhLWdy
aWQuaW5saW5lIHRoLmNvcm5lciwKKy5kYXRhLWdyaWQuaW5saW5lIHRkLmNvcm5lciB7CisgICAg
ZGlzcGxheTogbm9uZTsKK30KKwogLmRhdGEtZ3JpZCB0aCB7CiAgICAgdGV4dC1hbGlnbjogbGVm
dDsKICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoSW1hZ2VzL2dsb3NzeUhlYWRlci5wbmcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQ
YW5lbC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Jlc291cmNlc1Bh
bmVsLmNzcwppbmRleCAxOTE2YTNhZDM4Y2NiYTliODA2OWE4MjZjNjRlYTcwYmVhZDMxNzM4Li45
YzM4MmFjY2RlOWZiNThhYTVkYTkxNTBkOGNjZjFhMDI3M2M3NDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Jlc291cmNlc1BhbmVsLmNzcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Jlc291cmNlc1BhbmVsLmNzcwpAQCAt
MTE4LDcgKzExOCw3IEBAIGxpLnNlbGVjdGVkIC5iYXNlLXN0b3JhZ2UtdHJlZS1lbGVtZW50LXN1
YnRpdGxlIHsKICAgICBvdmVyZmxvdzogaGlkZGVuOwogfQogCi0uc3RvcmFnZS12aWV3IC5kYXRh
LWdyaWQgeworLnN0b3JhZ2UtdmlldyA+IC5kYXRhLWdyaWQgewogICAgIGJvcmRlcjogbm9uZTsK
ICAgICBoZWlnaHQ6IDEwMCU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCA3NDc5NWE4
YTU5ODk3MDZjYTM2MWQ0ZWE5OTc5MmEyNzhhNjc5MDI1Li43MDhlOGU5OTJhMWM4Yzg0OTg1NjQ1
NzUyNGY0MTliYTFmNGM2YTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTI2Niw2ICsy
NjYsMTEgQEAgdm9pZCBDb25zb2xlOjpkaXJ4bWwoU2NyaXB0U3RhdGUqIHN0YXRlLCBQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQogICAgIGludGVybmFsQWRkTWVzc2FnZShw
YWdlKCksIERpclhNTE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBhcmd1bWVu
dHMpOwogfQogCit2b2lkIENvbnNvbGU6OnRhYmxlKFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1Jl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKK3sKKyAgICBpbnRlcm5hbEFkZE1lc3Nh
Z2UocGFnZSgpLCBUYWJsZU1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBhcmd1
bWVudHMpOworfQorCiB2b2lkIENvbnNvbGU6OmNsZWFyKFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3VtZW50cykKIHsKICAgICBpbnRlcm5hbEFkZE1l
c3NhZ2UocGFnZSgpLCBDbGVhck1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIHN0YXRlLCBh
cmd1bWVudHMsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCAzZDUzYTc1Y2Y1NTEzNjk1
NDE4MjczYTFjZjI2ZmYzYTg3MTljYTczLi5hOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgz
OWVjNWZjNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtNzAsNiArNzAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB3YXJuKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
KTsKICAgICB2b2lkIGRpcihTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
Pik7CiAgICAgdm9pZCBkaXJ4bWwoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOworICAgIHZvaWQgdGFibGUoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgdHJhY2UoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4pOwogICAgIHZvaWQgYXNzZXJ0Q29uZGl0aW9uKFNjcmlwdFN0YXRlKiwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+LCBib29sIGNvbmRpdGlvbik7CiAgICAgdm9pZCBjb3Vu
dChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlLmlkbAppbmRleCAyNjAyMTdlYmZkNWIyNDkzODYxNzI5MGFiMTMzNDNjOTlhMjcyY2Yz
Li5mYWVmZDZiNTJhZjNjYTAxOGRkMWYxNmQ5YjlkNTE0MGMwNzIyMDYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29uc29sZS5pZGwKQEAgLTM4LDYgKzM4LDcgQEAKICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1l
bnRzfFNjcmlwdFN0YXRlXSB2b2lkIHdhcm4oKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1l
bnRzfFNjcmlwdFN0YXRlXSB2b2lkIGRpcigpOwogICAgIFtDYWxsV2l0aD1TY3JpcHRBcmd1bWVu
dHN8U2NyaXB0U3RhdGVdIHZvaWQgZGlyeG1sKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEFyZ3Vt
ZW50c3xTY3JpcHRTdGF0ZV0gdm9pZCB0YWJsZSgpOwogICAgIFtWOEN1c3RvbSwgQ2FsbFdpdGg9
U2NyaXB0QXJndW1lbnRzfFNjcmlwdFN0YXRlXSB2b2lkIHRyYWNlKCk7CiAgICAgW1Y4Q3VzdG9t
LCBDYWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8U2NyaXB0U3RhdGUsIEltcGxlbWVudGVkQXM9YXNz
ZXJ0Q29uZGl0aW9uXSB2b2lkIGFzc2VydChpbiBib29sZWFuIGNvbmRpdGlvbik7CiAgICAgW0Nh
bGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xTY3JpcHRTdGF0ZV0gdm9pZCBjb3VudCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDliZTZkYjRlYzk0ZDkzMGYyYThkNTI2YjA4ODc1ZDVkYzJjZDZiNzguLjk4MzNjM2RiMTY1OWIw
YmEwNjFjYTkyNzhkMDYyMzZkZGM0OWFlZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0w
Mi0xMiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBwcm92aWRlIGJhc2ljIGNvbnNvbGUudGFibGUgaW1wbGVtZW50YXRpb24g
KG5vIFssY29sdW1uc10gc3VwcG9ydCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTQ1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFi
bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLWZvcm1hdC10YWJsZS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0xNiAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgYSBmbGFreSBpbWFnZSBvbmx5IGZh
aWx1cmUgZXhwZWN0YXRpb24gdG8gdGhlIHRlc3QgYWRkZWQgaW4gcjE0Mjk3OSBvbiBNYWMgcGVy
IGJ1ZyAxMTAwMjcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b21tYW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0CmluZGV4IGFjMzY5OTkxNzVjNzJlZmZm
Njk4NTZjYTdiZTJjMmE2NjRhYWUxMzYuLjBmN2U3MjFjMjVhY2Y1ZDQ2ODU1N2YzZTM3ODc0NmI3
OGZhODBlZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1h
bmQtbGluZS1hcGktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25z
b2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExMjE6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hhbmdl
ZCBmcm9tICQ9Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3Rvciku
IFlvdSBtaWdodCB0cnkgJCgiIyVzIikKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTQyOiBUaGUg
Y29uc29sZSBmdW5jdGlvbiAkKCkgaGFzIGNoYW5nZWQgZnJvbSAkPWdldEVsZW1lbnRCeUlkKGlk
KSB0byAkPXF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLiBZb3UgbWlnaHQgdHJ5ICQoIiMlcyIpCiBU
ZXN0cyB0aGF0IGNvbW1hbmQgbGluZSBhcGkgd29ya3MuCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMzk3ZjRlNWJmODFkMjIwYjcxMjNkOGQzYjY5YmVkMzEz
NzA1ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC10YWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDk6IDEsMiwzLDQsNSw2CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6
IFtvYmplY3QgSFRNTERvY3VtZW50XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBudWxsCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IDEsMiwzLFtvYmplY3QgT2JqZWN0XSwKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxMzogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDk6IDEsMiwzLDQsNSw2CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6
IFtvYmplY3QgSFRNTERvY3VtZW50XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBudWxsCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTI6IDEsMiwzLFtvYmplY3QgT2JqZWN0XSwKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxMzogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQorVGVzdHMg
Y29uc29sZS50YWJsZS4KKworQXJyYXlbMl0gY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDo5Cisj
ZG9jdW1lbnQgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMAorbnVsbCBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjExCitBcnJheVszXSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEyCitB
cnJheVsyXSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEzCiswMTIxMjM0NTYgY29uc29sZS1m
b3JtYXQtdGFibGUuaHRtbDo5CisgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMAorbnVsbCBj
b25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjExCiswMTJhYmMxMjN1bmRlZmluZWR1bmRlZmluZWR1
bmRlZmluZWR1bmRlZmluZWR1bmRlZmluZWR1bmRlZmluZWQxMjMgY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDoxMgorYWJjMTIzImZvbyJmYWxzZXVuZGVmaW5lZCBjb25zb2xlLWZvcm1hdC10YWJs
ZS5odG1sOjEzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtZm9ybWF0LXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC10YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNzdiYWUwNTEwODgwYjQyMjc3
YmI5MTg1NTgzY2I1Y2Y0NWU3YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS5odG1sCkBAIC0wLDAgKzEsNDMgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5j
dGlvbiBsb2dUb0NvbnNvbGUoKQoreworICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0LDUs
Nl1dKTsKKyAgICBjb25zb2xlLnRhYmxlKGRvY3VtZW50KTsKKyAgICBjb25zb2xlLnRhYmxlKG51
bGwpOworICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIHthOjEsIGI6MiwgYzozfSwgbnVsbF0p
OworICAgIGNvbnNvbGUudGFibGUoW3thOjEsIGI6MiwgYzozfSwge2E6ImZvbyIsIGI6ZmFsc2Us
IGM6dW5kZWZpbmVkfV0pOworCisgICAgY29uc29sZS50YWJsZShbe2E6MSwgYjoyLCBjOjN9LCB7
YToiZm9vIiwgYjpmYWxzZSwgYzp1bmRlZmluZWR9XSwgWyJhIiwgImIiXSk7CisgICAgY29uc29s
ZS50YWJsZShbe2E6MSwgYjoyLCBjOjN9LCB7YToiZm9vIiwgYjpmYWxzZSwgYzp1bmRlZmluZWR9
XSwgWyJhIiwgImIiLCAiZCJdKTsKK30KKworZnVuY3Rpb24gb25sb2FkKCkKK3sKKyAgICBsb2dU
b0NvbnNvbGUoKTsKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvZ1RvQ29uc29sZSgpIiwgY2FsbGJhY2sp
OworCisgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25s
b2FkKCkiPgorPHA+CitUZXN0cyBjb25zb2xlLnRhYmxlLgorPC9wPgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188763</attachid>
            <date>2013-02-17 04:38:02 -0800</date>
            <delta_ts>2013-02-18 02:53:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109453-20130217163525.patch</filename>
            <type>text/plain</type>
            <size>46580</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI4ZDcwNzc0OTFiNzBk
YTM1MDBkYmY3ZDhmNzliOTIyMjRmMDdkOS4uYmNiNzI5YzRiYThhY2I0YzIyM2Q2NDM4N2Q0MzUz
NjFkNDY4YzE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTAyLTE3ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHByb3ZpZGUgYmFzaWMgY29uc29sZS50YWJsZSBpbXBsZW1lbnRhdGlvbiAobm8gWyxjb2x1
bW5zXSBzdXBwb3J0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbAor
CisgICAgICAgIFVzaW5nIGNvbnNvbGUgcHJldmlldyBpbmZyYXN0cnVjdHVyZSB0byBzdXBwb3J0
IGNvbnNvbGUudGFibGUuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5oOgorICAgICAgICAq
IGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptZXNzYWdl
VHlwZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnNvbGVNZXNzYWdlOjphZGRUb0Zyb250
ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5qZWN0ZWRTY3JpcHQ6OndyYXBPYmplY3QpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6d3JhcFRhYmxlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKEluamVjdGVkU2NyaXB0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICgu
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29u
c29sZU1lc3NhZ2VJbXBsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUlt
cGwucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlTWVz
c2FnZUltcGwucHJvdG90eXBlLl9mb3JtYXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNv
bGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX2FwcGVuZE9iamVjdFByZXZpZXcpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUuX3JlbmRlclByb3BlcnR5
UHJldmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3Rv
dHlwZS5fZm9ybWF0UGFyYW1ldGVyQXNUYWJsZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlTW9kZWwuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUu
X2FwcGVuZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUuX2NvbnNvbGVDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25z
b2xlVmlldy5wcm90b3R5cGUuX3VwZGF0ZU1lc3NhZ2VMaXN0KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Db25zb2xlQ29tbWFuZC5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNvbnNvbGVDb21tYW5kLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29uc29sZUdyb3VwLnByb3RvdHlwZS5hZGRNZXNzYWdlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzOgorICAgICAgICAoLnNvcnREYXRhR3JpZC5j
b21wYXJhdG9yKToKKyAgICAgICAgKC5zb3J0RGF0YUdyaWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxlRGF0YUdyaWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRhdGFHcmlkLnByb3RvdHlwZS5yZW5kZXJJbmxpbmUpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGF0YWJhc2VRdWVyeVZpZXcucHJvdG90eXBlLl9xdWVyeUZpbmlzaGVkKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL2RhdGFHcmlkLmNzczoKKyAgICAgICAgKC5kYXRhLWdyaWQuaW5s
aW5lKToKKyAgICAgICAgKC5kYXRhLWdyaWQuaW5saW5lIHRkLmNvcm5lcik6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9yZXNvdXJjZXNQYW5lbC5jc3M6CisgICAgICAgICguc3RvcmFn
ZS12aWV3ID4gLmRhdGEtZ3JpZCk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnNvbGU6OnRhYmxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAgICAoQ29uc29sZSk6CisgICAgICAgICogcGFnZS9D
b25zb2xlLmlkbDoKKwogMjAxMy0wMi0xNyAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgT3B0aW1pemUgR2x5cGhQYWdlIGZvciBjYXNlIHdoZXJlIGFsbCBnbHlw
aHMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgc2FtZSBmb250LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDAyMjhhYTkwM2MxNDQ1OGY3
M2Q3ZmNkYjI4MmI2ZTJiZGM1Y2Q2M2YuLmYzYjk2MmE0MjkwNmU2YzIzNWQzMThjNmM1ZGViMGQ1
Njc4MmQ2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanMKQEAgLTg2MywzICs4NjMsNCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJGaWxlIHN5
c3RlbXMiXSA9ICJGaWxlIHN5c3RlbXMiOwogbG9jYWxpemVkU3RyaW5nc1siTWFwcGluZ3MiXSA9
ICJNYXBwaW5ncyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBZGQiXSA9ICJBZGQiOwogbG9jYWxpemVk
U3RyaW5nc1siT2JqZWN0IHN0YXRlIGJlbG93IGlzIGNhcHR1cmVkIHVwb24gZmlyc3QgZXhwYW5z
aW9uIl0gPSAiT2JqZWN0IHN0YXRlIGJlbG93IGlzIGNhcHR1cmVkIHVwb24gZmlyc3QgZXhwYW5z
aW9uIjsKK2xvY2FsaXplZFN0cmluZ3NbIihpbmRleCkiXSA9ICIoaW5kZXgpIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJVHlwZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlQVBJVHlwZXMuaAppbmRleCAxOTBmMTE1ODIyN2ZlNWM5
Y2U4ODQzNjZjNGJhN2NmNzU0ZWY5ZmMwLi4zMWYwM2IyYWFmMjdlOWQ2NWIyNmRlYWU2YjZmYTA4
OTI1YmFmYWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZUFQ
SVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVBUElUeXBlcy5o
CkBAIC0zMSw2ICszMSw3IEBAIGVudW0gTWVzc2FnZVR5cGUgewogICAgIExvZ01lc3NhZ2VUeXBl
LAogICAgIERpck1lc3NhZ2VUeXBlLAogICAgIERpclhNTE1lc3NhZ2VUeXBlLAorICAgIFRhYmxl
TWVzc2FnZVR5cGUsCiAgICAgVHJhY2VNZXNzYWdlVHlwZSwKICAgICBTdGFydEdyb3VwTWVzc2Fn
ZVR5cGUsCiAgICAgU3RhcnRHcm91cENvbGxhcHNlZE1lc3NhZ2VUeXBlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAKaW5kZXggNzI0MmQ4ZDZhMWNkOTU2NWI0
YWUwOTA0MWFjMGJiODQ1NTAzODc0Ny4uMGEzNjBkZTU5NWQyNmY3YTgzM2NiZWRmZTQxMTk4Njdi
ZDk1ZjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVNZXNz
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3Bw
CkBAIC0xNTQsNiArMTU0LDcgQEAgc3RhdGljIFR5cGVCdWlsZGVyOjpDb25zb2xlOjpDb25zb2xl
TWVzc2FnZTo6VHlwZTo6RW51bSBtZXNzYWdlVHlwZVZhbHVlKE1lc3NhZ2UKICAgICBjYXNlIENs
ZWFyTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3Nh
Z2U6OlR5cGU6OkNsZWFyOwogICAgIGNhc2UgRGlyTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVp
bGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3NhZ2U6OlR5cGU6OkRpcjsKICAgICBjYXNlIERpclhN
TE1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdl
OjpUeXBlOjpEaXJ4bWw7CisgICAgY2FzZSBUYWJsZU1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1
aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpUYWJsZTsKICAgICBjYXNlIFRy
YWNlTWVzc2FnZVR5cGU6IHJldHVybiBUeXBlQnVpbGRlcjo6Q29uc29sZTo6Q29uc29sZU1lc3Nh
Z2U6OlR5cGU6OlRyYWNlOwogICAgIGNhc2UgU3RhcnRHcm91cE1lc3NhZ2VUeXBlOiByZXR1cm4g
VHlwZUJ1aWxkZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpTdGFydEdyb3VwOwog
ICAgIGNhc2UgU3RhcnRHcm91cENvbGxhcHNlZE1lc3NhZ2VUeXBlOiByZXR1cm4gVHlwZUJ1aWxk
ZXI6OkNvbnNvbGU6OkNvbnNvbGVNZXNzYWdlOjpUeXBlOjpTdGFydEdyb3VwQ29sbGFwc2VkOwpA
QCAtMTkzLDEzICsxOTQsMjQgQEAgdm9pZCBDb25zb2xlTWVzc2FnZTo6YWRkVG9Gcm9udGVuZChJ
bnNwZWN0b3JGcm9udGVuZDo6Q29uc29sZSogZnJvbnRlbmQsIEluamVjdGUKICAgICAgICAgSW5q
ZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBpbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVj
dGVkU2NyaXB0Rm9yKG1fYXJndW1lbnRzLT5nbG9iYWxTdGF0ZSgpKTsKICAgICAgICAgaWYgKCFp
bmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gPiBqc29uQXJn
cyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2JqZWN0
Pjo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9hcmd1
bWVudHMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFR5
cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IGluc3BlY3RvclZhbHVlID0gaW5qZWN0
ZWRTY3JpcHQud3JhcE9iamVjdChtX2FyZ3VtZW50cy0+YXJndW1lbnRBdChpKSwgImNvbnNvbGUi
LCBnZW5lcmF0ZVByZXZpZXcpOworICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBUYWJsZU1lc3Nh
Z2VUeXBlICYmIGdlbmVyYXRlUHJldmlldyAmJiBtX2FyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgp
KSB7CisgICAgICAgICAgICAgICAgU2NyaXB0VmFsdWUgdGFibGUgPSBtX2FyZ3VtZW50cy0+YXJn
dW1lbnRBdCgwKTsKKyAgICAgICAgICAgICAgICBTY3JpcHRWYWx1ZSBjb2x1bW5zID0gbV9hcmd1
bWVudHMtPmFyZ3VtZW50Q291bnQoKSA+IDEgPyBtX2FyZ3VtZW50cy0+YXJndW1lbnRBdCgxKSA6
IFNjcmlwdFZhbHVlKCk7CisgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50
aW1lOjpSZW1vdGVPYmplY3Q+IGluc3BlY3RvclZhbHVlID0gaW5qZWN0ZWRTY3JpcHQud3JhcFRh
YmxlKHRhYmxlLCBjb2x1bW5zKTsKICAgICAgICAgICAgICAgICBpZiAoIWluc3BlY3RvclZhbHVl
KSB7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGpz
b25BcmdzLT5hZGRJdGVtKGluc3BlY3RvclZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fYXJndW1lbnRzLT5hcmd1
bWVudENvdW50KCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gaW5zcGVjdG9yVmFsdWUgPSBpbmplY3RlZFNjcmlw
dC53cmFwT2JqZWN0KG1fYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLCAiY29uc29sZSIsIGdlbmVy
YXRlUHJldmlldyk7CisgICAgICAgICAgICAgICAgICAgIGlmICghaW5zcGVjdG9yVmFsdWUpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGpzb25BcmdzLT5hZGRJdGVtKGluc3BlY3RvclZhbHVlKTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBqc29uT2JqLT5zZXRQYXJhbWV0ZXJz
KGpzb25BcmdzKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHAKaW5kZXggNjBhYTBjYTg5MjgxN2IxZTJkNTk5NjZlMDEzM2FmZmUyZTgyYzIy
OC4uYzE5ZTAxYTliNWY3MzE2NDBjMjMxZWM5ODkwNGNmMzhmOGI5MzVkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCkBAIC0yNDAsOSArMjQwLDI2IEBA
IFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gSW5qZWN0ZWRT
Y3JpcHQ6OndyYXBPYmplY3QoY29uc3QKICAgICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQo
Z2VuZXJhdGVQcmV2aWV3KTsKICAgICBib29sIGhhZEV4Y2VwdGlvbiA9IGZhbHNlOwogICAgIFNj
cmlwdFZhbHVlIHIgPSBjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQod3JhcEZ1bmN0aW9uLCBo
YWRFeGNlcHRpb24pOwotICAgIGlmIChoYWRFeGNlcHRpb24pIHsKKyAgICBpZiAoaGFkRXhjZXB0
aW9uKQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByYXdS
ZXN1bHQgPSByLnRvSW5zcGVjdG9yVmFsdWUoc2NyaXB0U3RhdGUoKSktPmFzT2JqZWN0KCk7Cisg
ICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q6OnJ1bnRpbWVDYXN0
KHJhd1Jlc3VsdCk7Cit9CisKK1Bhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90
ZU9iamVjdD4gSW5qZWN0ZWRTY3JpcHQ6OndyYXBUYWJsZShjb25zdCBTY3JpcHRWYWx1ZSYgdGFi
bGUsIGNvbnN0IFNjcmlwdFZhbHVlJiBjb2x1bW5zKSBjb25zdAoreworICAgIEFTU0VSVCghaGFz
Tm9WYWx1ZSgpKTsKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgd3JhcEZ1bmN0aW9uKGluamVjdGVk
U2NyaXB0T2JqZWN0KCksICJ3cmFwVGFibGUiKTsKKyAgICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJn
dW1lbnQoY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93KCkpOworICAgIHdyYXBGdW5jdGlvbi5hcHBl
bmRBcmd1bWVudCh0YWJsZSk7CisgICAgaWYgKGNvbHVtbnMuaGFzTm9WYWx1ZSgpKQorICAgICAg
ICB3cmFwRnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoZmFsc2UpOworICAgIGVsc2UKKyAgICAgICAg
d3JhcEZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KGNvbHVtbnMpOworICAgIGJvb2wgaGFkRXhjZXB0
aW9uID0gZmFsc2U7CisgICAgU2NyaXB0VmFsdWUgciA9IGNhbGxGdW5jdGlvbldpdGhFdmFsRW5h
YmxlZCh3cmFwRnVuY3Rpb24sIGhhZEV4Y2VwdGlvbik7CisgICAgaWYgKGhhZEV4Y2VwdGlvbikK
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJh
d1Jlc3VsdCA9IHIudG9JbnNwZWN0b3JWYWx1ZShzY3JpcHRTdGF0ZSgpKS0+YXNPYmplY3QoKTsK
ICAgICByZXR1cm4gVHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdDo6cnVudGltZUNh
c3QocmF3UmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmgKaW5kZXggMmY5NmMyZGY3ODg2ODkyZGIzMzczYTU0NmEwMDc2YmM5ODA2YjNiMi4uMGIwYzRm
MWJmZjY0NDMyZjAwYmEwNDQ5OTkxYWFmZWRiM2FlYjJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJbmpl
Y3RlZFNjcmlwdEJhc2UuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JUeXBlQnVpbGRlci5oIgorI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50
cy5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC05Miw2ICs5Myw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6UnVudGltZTo6UmVtb3RlT2Jq
ZWN0PiB3cmFwT2JqZWN0KGNvbnN0IFNjcmlwdFZhbHVlJiwgY29uc3QgU3RyaW5nJiBncm91cE5h
bWUsIGJvb2wgZ2VuZXJhdGVQcmV2aWV3ID0gZmFsc2UpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcFRhYmxlKGNvbnN0IFNjcmlw
dFZhbHVlJiB0YWJsZSwgY29uc3QgU2NyaXB0VmFsdWUmIGNvbHVtbnMpIGNvbnN0OwogICAgIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3JhcE5vZGUoTm9k
ZSosIGNvbnN0IFN0cmluZyYgZ3JvdXBOYW1lKTsKICAgICBTY3JpcHRWYWx1ZSBmaW5kT2JqZWN0
QnlJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCmluZGV4IDE2NzdiYTM1NDA1OWE0
ZmE1N2E4M2JiYWQyZmYwZTc3ZjExMWI3MTYuLmM5ZTYzZWY0OTg3NjVlMmU3ZDgxZmQ2MDAwODgx
YTEyY2Q1NzI2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRTb3VyY2UuanMKQEAgLTExNywxNCArMTE3LDQzIEBAIEluamVjdGVkU2NyaXB0LnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmIChjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3cpCiAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fd3JhcE9iamVjdChvYmplY3QsIGdyb3VwTmFtZSwgZmFs
c2UsIGdlbmVyYXRlUHJldmlldyk7CisgICAgICAgIHJldHVybiB0aGlzLl9mYWxsYmFja1dyYXBw
ZXIob2JqZWN0KTsKKyAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHsqfSBvYmplY3QK
KyAgICAgKiBAcmV0dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0KKyAgICAgKi8KKyAg
ICBfZmFsbGJhY2tXcmFwcGVyOiBmdW5jdGlvbihvYmplY3QpCisgICAgewogICAgICAgICB2YXIg
cmVzdWx0ID0ge307CiAgICAgICAgIHJlc3VsdC50eXBlID0gdHlwZW9mIG9iamVjdDsKICAgICAg
ICAgaWYgKHRoaXMuaXNQcmltaXRpdmVWYWx1ZShvYmplY3QpKQogICAgICAgICAgICAgcmVzdWx0
LnZhbHVlID0gb2JqZWN0OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQuZGVzY3Jp
cHRpb24gPSB0aGlzLl90b1N0cmluZyhvYmplY3QpOwotICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICByZXR1cm4gLyoqIEB0eXBlIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0gKi8g
KHJlc3VsdCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2Fu
QWNjZXNzSW5zcGVjdGVkV2luZG93CisgICAgICogQHBhcmFtIHtPYmplY3R9IHRhYmxlCisgICAg
ICogQHBhcmFtIHtBcnJheS48c3RyaW5nPnxzdHJpbmd8Ym9vbGVhbn0gY29sdW1ucworICAgICAq
IEByZXR1cm4geyFSdW50aW1lQWdlbnQuUmVtb3RlT2JqZWN0fQorICAgICAqLworICAgIHdyYXBU
YWJsZTogZnVuY3Rpb24oY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93LCB0YWJsZSwgY29sdW1ucykK
KyAgICB7CisgICAgICAgIGlmICghY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93KQorICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrV3JhcHBlcih0YWJsZSk7CisgICAgICAgIHZhciBjb2x1
bW5OYW1lcyA9IG51bGw7CisgICAgICAgIGlmICh0eXBlb2YgY29sdW1ucyA9PT0gInN0cmluZyIp
CisgICAgICAgICAgICBjb2x1bW5zID0gW2NvbHVtbnNdOworICAgICAgICBpZiAoSW5qZWN0ZWRT
Y3JpcHRIb3N0LnR5cGUoY29sdW1ucykgPT0gImFycmF5IikgeworICAgICAgICAgICAgY29sdW1u
TmFtZXMgPSBbXTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29sdW1ucy5sZW5n
dGg7ICsraSkKKyAgICAgICAgICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKFN0cmluZyhjb2x1bW5z
W2ldKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3QodGFibGUs
ICJjb25zb2xlIiwgZmFsc2UsIHRydWUsIGNvbHVtbk5hbWVzKTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC0xNjksMTMgKzE5OCwxNCBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAg
ICogQHBhcmFtIHtzdHJpbmc9fSBvYmplY3RHcm91cE5hbWUKICAgICAgKiBAcGFyYW0ge2Jvb2xl
YW49fSBmb3JjZVZhbHVlVHlwZQogICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IGdlbmVyYXRlUHJl
dmlldworICAgICAqIEBwYXJhbSB7P0FycmF5LjxzdHJpbmc+PX0gY29sdW1uTmFtZXMKICAgICAg
KiBAcmV0dXJuIHshUnVudGltZUFnZW50LlJlbW90ZU9iamVjdH0KICAgICAgKiBAc3VwcHJlc3Mg
e2NoZWNrVHlwZXN9CiAgICAgICovCi0gICAgX3dyYXBPYmplY3Q6IGZ1bmN0aW9uKG9iamVjdCwg
b2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwgZ2VuZXJhdGVQcmV2aWV3KQorICAgIF93
cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5
cGUsIGdlbmVyYXRlUHJldmlldywgY29sdW1uTmFtZXMpCiAgICAgewogICAgICAgICB0cnkgewot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0
LCBvYmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcpOworICAg
ICAgICAgICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qob2JqZWN0LCBv
YmplY3RHcm91cE5hbWUsIGZvcmNlVmFsdWVUeXBlLCBnZW5lcmF0ZVByZXZpZXcsIGNvbHVtbk5h
bWVzKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAg
ICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSBpbmplY3RlZFNjcmlwdC5fZGVzY3JpYmUoZSk7CkBA
IC04MzksOCArODY5LDkgQEAgdmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVkU2NyaXB0
KCk7CiAgKiBAcGFyYW0ge3N0cmluZz19IG9iamVjdEdyb3VwTmFtZQogICogQHBhcmFtIHtib29s
ZWFuPX0gZm9yY2VWYWx1ZVR5cGUKICAqIEBwYXJhbSB7Ym9vbGVhbj19IGdlbmVyYXRlUHJldmll
dworICogQHBhcmFtIHs/QXJyYXkuPHN0cmluZz49fSBjb2x1bW5OYW1lcwogICovCi1JbmplY3Rl
ZFNjcmlwdC5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSwg
Zm9yY2VWYWx1ZVR5cGUsIGdlbmVyYXRlUHJldmlldykKK0luamVjdGVkU2NyaXB0LlJlbW90ZU9i
amVjdCA9IGZ1bmN0aW9uKG9iamVjdCwgb2JqZWN0R3JvdXBOYW1lLCBmb3JjZVZhbHVlVHlwZSwg
Z2VuZXJhdGVQcmV2aWV3LCBjb2x1bW5OYW1lcykKIHsKICAgICB0aGlzLnR5cGUgPSB0eXBlb2Yg
b2JqZWN0OwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5pc1ByaW1pdGl2ZVZhbHVlKG9iamVjdCkg
fHwgb2JqZWN0ID09PSBudWxsIHx8IGZvcmNlVmFsdWVUeXBlKSB7CkBAIC04NjgsNDIgKzg5OSw1
MCBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVj
dEdyb3VwTmFtZSwgZm9yY2VWYWx1ZVR5cGUsCiAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGluamVj
dGVkU2NyaXB0Ll9kZXNjcmliZShvYmplY3QpOwogCiAgICAgaWYgKGdlbmVyYXRlUHJldmlldyAm
JiAodGhpcy50eXBlID09PSAib2JqZWN0IiB8fCBpbmplY3RlZFNjcmlwdC5faXNIVE1MQWxsQ29s
bGVjdGlvbihvYmplY3QpKSkKLSAgICAgICAgdGhpcy5fZ2VuZXJhdGVQcmV2aWV3KG9iamVjdCk7
CisgICAgICAgIHRoaXMucHJldmlldyA9IHRoaXMuX2dlbmVyYXRlUHJldmlldyhvYmplY3QsIHVu
ZGVmaW5lZCwgY29sdW1uTmFtZXMpOwogfQogCiBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qu
cHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QKKyAg
ICAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+PX0gZmlyc3RMZXZlbEtleXMKKyAgICAgKiBAcGFy
YW0gez9BcnJheS48c3RyaW5nPj19IHNlY29uZExldmVsS2V5cworICAgICAqIEByZXR1cm4ge09i
amVjdH0gcHJldmlldwogICAgICAqLwotICAgIF9nZW5lcmF0ZVByZXZpZXc6IGZ1bmN0aW9uKG9i
amVjdCkKKyAgICBfZ2VuZXJhdGVQcmV2aWV3OiBmdW5jdGlvbihvYmplY3QsIGZpcnN0TGV2ZWxL
ZXlzLCBzZWNvbmRMZXZlbEtleXMpCiAgICAgewotICAgICAgICB0aGlzLnByZXZpZXcgPSB7fTsK
LSAgICAgICAgdGhpcy5wcmV2aWV3Lmxvc3NsZXNzID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5wcmV2
aWV3Lm92ZXJmbG93ID0gZmFsc2U7Ci0gICAgICAgIHRoaXMucHJldmlldy5wcm9wZXJ0aWVzID0g
W107CisgICAgICAgIHZhciBwcmV2aWV3ID0ge307CisgICAgICAgIHByZXZpZXcubG9zc2xlc3Mg
PSB0cnVlOworICAgICAgICBwcmV2aWV3Lm92ZXJmbG93ID0gZmFsc2U7CisgICAgICAgIHByZXZp
ZXcucHJvcGVydGllcyA9IFtdOworCisgICAgICAgIHZhciBpc1RhYmxlUm93c1JlcXVlc3QgPSBz
ZWNvbmRMZXZlbEtleXMgPT09IG51bGwgfHwgc2Vjb25kTGV2ZWxLZXlzOworICAgICAgICB2YXIg
Zmlyc3RMZXZlbEtleXNDb3VudCA9IGZpcnN0TGV2ZWxLZXlzID8gZmlyc3RMZXZlbEtleXMubGVu
Z3RoIDogMDsKIAotICAgICAgICB2YXIgaXNBcnJheSA9IHRoaXMuc3VidHlwZSA9PT0gImFycmF5
IjsKICAgICAgICAgdmFyIHByb3BlcnRpZXNUaHJlc2hvbGQgPSB7Ci0gICAgICAgICAgICBwcm9w
ZXJ0aWVzOiA1LAotICAgICAgICAgICAgaW5kZXhlczogMTAwCisgICAgICAgICAgICBwcm9wZXJ0
aWVzOiBpc1RhYmxlUm93c1JlcXVlc3QgPyAxMDAwIDogTWF0aC5tYXgoNSwgZmlyc3RMZXZlbEtl
eXNDb3VudCksCisgICAgICAgICAgICBpbmRleGVzOiBpc1RhYmxlUm93c1JlcXVlc3QgPyAxMDAw
IDogTWF0aC5tYXgoMTAwLCBmaXJzdExldmVsS2V5c0NvdW50KQogICAgICAgICB9OwotCiAgICAg
ICAgIGZvciAodmFyIG8gPSBvYmplY3Q7IGluamVjdGVkU2NyaXB0Ll9pc0RlZmluZWQobyk7IG8g
PSBvLl9fcHJvdG9fXykKLSAgICAgICAgICAgIHRoaXMuX2dlbmVyYXRlUHJvdG9QcmV2aWV3KG8s
IHByb3BlcnRpZXNUaHJlc2hvbGQpOworICAgICAgICAgICAgdGhpcy5fZ2VuZXJhdGVQcm90b1By
ZXZpZXcobywgcHJldmlldywgcHJvcGVydGllc1RocmVzaG9sZCwgZmlyc3RMZXZlbEtleXMsIHNl
Y29uZExldmVsS2V5cyk7CisgICAgICAgIHJldHVybiBwcmV2aWV3OwogICAgIH0sCiAKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0CisgICAgICogQHBhcmFtIHtPYmplY3R9
IHByZXZpZXcKICAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1RocmVzaG9sZAorICAg
ICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz49fSBmaXJzdExldmVsS2V5cworICAgICAqIEBwYXJh
bSB7QXJyYXkuPHN0cmluZz49fSBzZWNvbmRMZXZlbEtleXMKICAgICAgKi8KLSAgICBfZ2VuZXJh
dGVQcm90b1ByZXZpZXc6IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydGllc1RocmVzaG9sZCkKKyAg
ICBfZ2VuZXJhdGVQcm90b1ByZXZpZXc6IGZ1bmN0aW9uKG9iamVjdCwgcHJldmlldywgcHJvcGVy
dGllc1RocmVzaG9sZCwgZmlyc3RMZXZlbEtleXMsIHNlY29uZExldmVsS2V5cykKICAgICB7Ci0g
ICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gT2JqZWN0LmtleXMoLyoqIEB0eXBlIHshT2JqZWN0
fSAqLyhvYmplY3QpKTsKKyAgICAgICAgdmFyIHByb3BlcnR5TmFtZXMgPSBmaXJzdExldmVsS2V5
cyA/IGZpcnN0TGV2ZWxLZXlzIDogT2JqZWN0LmtleXMoLyoqIEB0eXBlIHshT2JqZWN0fSAqLyhv
YmplY3QpKTsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cHJvcGVydHlOYW1lcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgIGlmICghcHJvcGVy
dGllc1RocmVzaG9sZC5wcm9wZXJ0aWVzIHx8ICFwcm9wZXJ0aWVzVGhyZXNob2xkLmluZGV4ZXMp
IHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3Lm92ZXJmbG93ID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgICAgIHByZXZpZXcub3ZlcmZsb3cgPSB0cnVlOworICAgICAgICAgICAgICAgICAg
ICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHByb3BlcnR5TmFt
ZXNbaV07CkBAIC05MTIsMTMgKzk1MSwxMyBAQCBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3Qu
cHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKC8qKiBAdHlwZSB7IU9iamVjdH0gKi8ob2JqZWN0KSwg
bmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKCEoInZhbHVlIiBpbiBkZXNjcmlwdG9yKSB8fCAh
ZGVzY3JpcHRvci5lbnVtZXJhYmxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNz
ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGRlc2NyaXB0b3IudmFsdWU7CiAgICAg
ICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRo
aXMuX2FwcGVuZFByb3BlcnR5UHJldmlldyh7IG5hbWU6IG5hbWUsIHR5cGU6ICJvYmplY3QiLCB2
YWx1ZTogIm51bGwiIH0sIHByb3BlcnRpZXNUaHJlc2hvbGQpOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcocHJldmlldywgeyBuYW1lOiBuYW1lLCB0eXBl
OiAib2JqZWN0IiwgdmFsdWU6ICJudWxsIiB9LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgIApAQCAtOTI5
LDE1ICs5NjgsMjYgQEAgSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9hYmJyZXZpYXRlU3RyaW5nKHZhbHVlLCBt
YXhMZW5ndGgsIHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmll
dy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXcu
bG9zc2xlc3MgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlID0gIlwiIiArIHZhbHVlLnJlcGxhY2UoL1xuL2csICJcdTIxQjUi
KSArICJcIiI7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2Uo
L1xuL2csICJcdTIxQjUiKTsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcoeyBuYW1lOiBuYW1lLCB0eXBlOiB0eXBl
LCB2YWx1ZTogdmFsdWUgKyAiIiB9LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHByZXZpZXcsIHsgbmFtZTogbmFt
ZSwgdHlwZTogdHlwZSwgdmFsdWU6IHZhbHVlICsgIiIgfSwgcHJvcGVydGllc1RocmVzaG9sZCk7
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KLSAgICAK
LSAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXcubG9zc2xlc3MgPSBmYWxzZTsKKworICAgICAg
ICAgICAgICAgIGlmIChzZWNvbmRMZXZlbEtleXMgPT09IG51bGwgfHwgc2Vjb25kTGV2ZWxLZXlz
KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBzdWJQcmV2aWV3ID0gdGhpcy5fZ2VuZXJhdGVQ
cmV2aWV3KHZhbHVlLCBzZWNvbmRMZXZlbEtleXMgfHwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAg
ICAgICAgICAgdmFyIHByb3BlcnR5ID0geyBuYW1lOiBuYW1lLCB0eXBlOiB0eXBlLCB2YWx1ZVBy
ZXZpZXc6IHN1YlByZXZpZXcgfTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fYXBwZW5kUHJv
cGVydHlQcmV2aWV3KHByZXZpZXcsIHByb3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNob2xkKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFzdWJQcmV2aWV3Lmxvc3NsZXNzKQorICAgICAgICAgICAg
ICAgICAgICAgICAgcHJldmlldy5sb3NzbGVzcyA9IGZhbHNlOworICAgICAgICAgICAgICAgICAg
ICBpZiAoc3ViUHJldmlldy5vdmVyZmxvdykKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZXZp
ZXcub3ZlcmZsb3cgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwcmV2aWV3Lmxvc3NsZXNzID0gZmFsc2U7
CiAKICAgICAgICAgICAgICAgICB2YXIgc3VidHlwZSA9IGluamVjdGVkU2NyaXB0Ll9zdWJ0eXBl
KHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRpb24gPSAiIjsKQEAgLTk0Nywy
MyArOTk3LDI0IEBAIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0geyBuYW1lOiBuYW1lLCB0eXBlOiB0eXBlLCB2
YWx1ZTogZGVzY3JpcHRpb24gfTsKICAgICAgICAgICAgICAgICBpZiAoc3VidHlwZSkKICAgICAg
ICAgICAgICAgICAgICAgcHJvcGVydHkuc3VidHlwZSA9IHN1YnR5cGU7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fYXBwZW5kUHJvcGVydHlQcmV2aWV3KHByb3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNo
b2xkKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVByZXZpZXcocHJldmll
dywgcHJvcGVydHksIHByb3BlcnRpZXNUaHJlc2hvbGQpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9IGNhdGNoIChlKSB7CiAgICAgICAgIH0KICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBh
cmFtIHtPYmplY3R9IHByZXZpZXcKICAgICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydHkKICAg
ICAgKiBAcGFyYW0ge09iamVjdH0gcHJvcGVydGllc1RocmVzaG9sZAogICAgICAqLwotICAgIF9h
cHBlbmRQcm9wZXJ0eVByZXZpZXc6IGZ1bmN0aW9uKHByb3BlcnR5LCBwcm9wZXJ0aWVzVGhyZXNo
b2xkKQorICAgIF9hcHBlbmRQcm9wZXJ0eVByZXZpZXc6IGZ1bmN0aW9uKHByZXZpZXcsIHByb3Bl
cnR5LCBwcm9wZXJ0aWVzVGhyZXNob2xkKQogICAgIHsKICAgICAgICAgaWYgKGlzTmFOKHByb3Bl
cnR5Lm5hbWUpKQogICAgICAgICAgICAgcHJvcGVydGllc1RocmVzaG9sZC5wcm9wZXJ0aWVzLS07
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHByb3BlcnRpZXNUaHJlc2hvbGQuaW5kZXhlcy0t
OwotICAgICAgICB0aGlzLnByZXZpZXcucHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsKKyAgICAg
ICAgcHJldmlldy5wcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOwogICAgIH0sCiAKICAgICAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjNjc3N2VhNjAzM2Y2
MTliOTgyZGVjOTZjM2UyY2VjMTAyOGU5M2VjLi4wMTYxYzQxZmFlZWQ5YWM0OTUzZTMxOWVmMTM5
YzllYmJkNDA1NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBA
IC02MTIsNiArNjEyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlByb3BlcnR5IG5hbWUuIiB9LAogCSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAiZW51bSI6
IFsib2JqZWN0IiwgImZ1bmN0aW9uIiwgInVuZGVmaW5lZCIsICJzdHJpbmciLCAibnVtYmVyIiwg
ImJvb2xlYW4iXSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCB0eXBlLiIgfSwKIAkgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJVc2VyLWZyaWVuZGx5IHByb3BlcnR5IHZhbHVlIHN0cmluZy4i
IH0sCisJICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWVQcmV2aWV3IiwgIiRyZWYiOiAi
T2JqZWN0UHJldmlldyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJOZXN0ZWQg
dmFsdWUgcHJldmlldy4iIH0sCiAJICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3VidHlwZSIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJlbnVtIjogWyJhcnJheSIsICJu
dWxsIiwgIm5vZGUiLCAicmVnZXhwIiwgImRhdGUiXSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBz
dWJ0eXBlIGhpbnQuIFNwZWNpZmllZCBmb3IgPGNvZGU+b2JqZWN0PC9jb2RlPiB0eXBlIHZhbHVl
cyBvbmx5LiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCkBAIC03NjksNyAr
NzcwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzb3VyY2UiLCAidHlwZSI6
ICJzdHJpbmciLCAiZW51bSI6IFsiaHRtbCIsICJ3bWwiLCAieG1sIiwgImphdmFzY3JpcHQiLCAi
bmV0d29yayIsICJjb25zb2xlLWFwaSIsICJvdGhlciJdLCAiZGVzY3JpcHRpb24iOiAiTWVzc2Fn
ZSBzb3VyY2UuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxldmVsIiwgInR5
cGUiOiAic3RyaW5nIiwgImVudW0iOiBbInRpcCIsICJsb2ciLCAid2FybmluZyIsICJlcnJvciIs
ICJkZWJ1ZyJdLCAiZGVzY3JpcHRpb24iOiAiTWVzc2FnZSBzZXZlcml0eS4iIH0sCiAgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJNZXNzYWdlIHRleHQuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InR5cGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZW51bSI6IFsibG9n
IiwgImRpciIsICJkaXJ4bWwiLCAidHJhY2UiLCAiY2xlYXIiLCAic3RhcnRHcm91cCIsICJzdGFy
dEdyb3VwQ29sbGFwc2VkIiwgImVuZEdyb3VwIiwgImFzc2VydCIsICJ0aW1pbmciXSwgImRlc2Ny
aXB0aW9uIjogIkNvbnNvbGUgbWVzc2FnZSB0eXBlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ0eXBlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImVu
dW0iOiBbImxvZyIsICJkaXIiLCAiZGlyeG1sIiwgInRhYmxlIiwgInRyYWNlIiwgImNsZWFyIiwg
InN0YXJ0R3JvdXAiLCAic3RhcnRHcm91cENvbGxhcHNlZCIsICJlbmRHcm91cCIsICJhc3NlcnQi
LCAidGltaW5nIl0sICJkZXNjcmlwdGlvbiI6ICJDb25zb2xlIG1lc3NhZ2UgdHlwZS4iIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTCBvZiB0aGUgbWVzc2FnZSBvcmlnaW4u
IiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmUiLCAidHlwZSI6ICJpbnRl
Z2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVyIGluIHRo
ZSByZXNvdXJjZSB0aGF0IGdlbmVyYXRlZCB0aGlzIG1lc3NhZ2UuIiB9LAogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInJlcGVhdENvdW50IiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJSZXBlYXQgY291bnQgZm9yIHJlcGVhdGVkIG1l
c3NhZ2VzLiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCmluZGV4IDVmZGZiZmJlZWI3YzBmZmJlN2JhY2YyMGFhNjJlM2E5ZDJhYjE5MjEuLjJh
Mjk2OTI0NGUxMTQxMTE2YTc3YWI1ODRiNTgyNDcyNTBlOTUxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMTM5NSw3ICsxMzk1LDcg
QEAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NOjpFdmVudExpc3RlbmVyPiBJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmUKICAgICAgICAgICAgICAgICBpZiAoc2NyaXB0U3Rh
dGUpIHsKICAgICAgICAgICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQg
PSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3JpcHRGb3Ioc2NyaXB0U3RhdGUp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFsdWUoKSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpS
ZW1vdGVPYmplY3Q+IHZhbHVlSnNvbiA9IGluamVjdGVkU2NyaXB0LndyYXBPYmplY3QoZnVuY3Rp
b25WYWx1ZSwgKm9iamVjdEdyb3VwSWQsIHRydWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
UmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+IHZhbHVlSnNvbiA9IGlu
amVjdGVkU2NyaXB0LndyYXBPYmplY3QoZnVuY3Rpb25WYWx1ZSwgKm9iamVjdEdyb3VwSWQpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnNldEhhbmRsZXIodmFsdWVKc29uKTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpzCmluZGV4IGY4N2Fi
MzRkZWFlODYyMTViZjI1MDljM2NhZDFhNmI3MzJjMDI0ZjUuLmIxZTYyYWFiMmUyYmRhYjY2NmJl
Y2M1ZDdlZGY2ZmY5YTYzOTJhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwpAQCAtNTYsNiArNTYsOCBAQCBXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsID0gZnVuY3Rpb24oc291cmNlLCBsZXZlbCwgbWVzc2Fn
ZSwgbGlua2lmaWVyLCB0eQogICAgIHRoaXMuX3N0YWNrVHJhY2UgPSBzdGFja1RyYWNlOwogICAg
IHRoaXMuX3JlcXVlc3QgPSByZXF1ZXN0SWQgPyBXZWJJbnNwZWN0b3IubmV0d29ya0xvZy5yZXF1
ZXN0Rm9ySWQocmVxdWVzdElkKSA6IG51bGw7CiAgICAgdGhpcy5faXNPdXRkYXRlZCA9IGlzT3V0
ZGF0ZWQ7CisgICAgdGhpcy5fZGF0YUdyaWRzID0gW107CisgICAgdGhpcy5fZGF0YUdyaWRQYXJl
bnRzID0gbmV3IE1hcCgpOwogCiAgICAgdGhpcy5fY3VzdG9tRm9ybWF0dGVycyA9IHsKICAgICAg
ICAgIm9iamVjdCI6IHRoaXMuX2Zvcm1hdFBhcmFtZXRlckFzT2JqZWN0LApAQCAtNjYsNiArNjgs
MjQgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbCA9IGZ1bmN0aW9uKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmtpZmllciwgdHkKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVN
ZXNzYWdlSW1wbC5wcm90b3R5cGUgPSB7CisgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyB0aGlzLl9kYXRhR3JpZHMgJiYgaSA8IHRoaXMuX2Rh
dGFHcmlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGRhdGFHcmlkID0gdGhpcy5f
ZGF0YUdyaWRzW2ldOworICAgICAgICAgICAgdmFyIHBhcmVudEVsZW1lbnQgPSB0aGlzLl9kYXRh
R3JpZFBhcmVudHMuZ2V0KGRhdGFHcmlkKTsKKyAgICAgICAgICAgIGRhdGFHcmlkLnNob3cocGFy
ZW50RWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9LAorCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyB0aGlzLl9kYXRhR3JpZHMgJiYgaSA8
IHRoaXMuX2RhdGFHcmlkcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGRhdGFHcmlk
ID0gdGhpcy5fZGF0YUdyaWRzW2ldOworICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWRQYXJlbnRz
LnB1dChkYXRhR3JpZCwgZGF0YUdyaWQuZWxlbWVudC5wYXJlbnRFbGVtZW50KTsKKyAgICAgICAg
ICAgIGRhdGFHcmlkLmRldGFjaCgpOworICAgICAgICB9CisgICAgfSwKKwogICAgIF9mb3JtYXRN
ZXNzYWdlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAtMjMzLDYgKzI1MywxMSBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICBmb3JtYXR0ZWRSZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IiAiKSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAodGhpcy50eXBlID09PSBXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuVGFibGUpIHsKKyAgICAgICAgICAgIGZvcm1h
dHRlZFJlc3VsdC5hcHBlbmRDaGlsZCh0aGlzLl9mb3JtYXRQYXJhbWV0ZXJBc1RhYmxlKHBhcmFt
ZXRlcnMpKTsKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXR0ZWRSZXN1bHQ7CisgICAgICAgIH0K
KwogICAgICAgICAvLyBTaW5nbGUgcGFyYW1ldGVyLCBvciB1bnVzZWQgc3Vic3RpdHV0aW9ucyBm
cm9tIGFib3ZlLgogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgICAgIC8vIElubGluZSBzdHJpbmdzIHdoZW4gZm9ybWF0dGluZy4K
QEAgLTMzNCw3ICszNTksNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQuY3JlYXRlVGV4dENoaWxkKCI6
ICIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICB0aGlzLl9hcHBlbmRQcm9wZXJ0eVBy
ZXZpZXcodGl0bGVFbGVtZW50LCBwcm9wZXJ0eSk7CisgICAgICAgICAgICB0aXRsZUVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5fcmVuZGVyUHJvcGVydHlQcmV2aWV3KHByb3BlcnR5KSk7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKHByZXZpZXcub3ZlcmZsb3cpCiAgICAgICAgICAgICB0aXRsZUVs
ZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKS50ZXh0Q29udGVudCA9ICJcdTIwMjYiOwpAQCAtMzQz
LDMxICszNjgsMzggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlSW1wbC5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0gdGl0bGVFbGVt
ZW50CiAgICAgICogQHBhcmFtIHtSdW50aW1lQWdlbnQuUHJvcGVydHlQcmV2aWV3fSBwcm9wZXJ0
eQorICAgICAqIEByZXR1cm4ge0VsZW1lbnR9CiAgICAgICovCi0gICAgX2FwcGVuZFByb3BlcnR5
UHJldmlldzogZnVuY3Rpb24odGl0bGVFbGVtZW50LCBwcm9wZXJ0eSkKKyAgICBfcmVuZGVyUHJv
cGVydHlQcmV2aWV3OiBmdW5jdGlvbihwcm9wZXJ0eSkKICAgICB7Ci0gICAgICAgIHZhciBzcGFu
ID0gdGl0bGVFbGVtZW50LmNyZWF0ZUNoaWxkKCJzcGFuIiwgImNvbnNvbGUtZm9ybWF0dGVkLSIg
KyBwcm9wZXJ0eS50eXBlKTsKKyAgICAgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7CisgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gImNvbnNvbGUtZm9ybWF0dGVk
LSI7CiAKICAgICAgICAgaWYgKHByb3BlcnR5LnR5cGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAg
ICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSAiZnVuY3Rpb24iOwotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocHJv
cGVydHkudHlwZSA9PT0gIm9iamVjdCIgJiYgcHJvcGVydHkuc3VidHlwZSA9PT0gInJlZ2V4cCIp
IHsKICAgICAgICAgICAgIHNwYW4uYWRkU3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtc3Ry
aW5nIik7CiAgICAgICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gcHJvcGVydHkudmFsdWU7Ci0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gc3BhbjsKICAgICAgICAgfQog
CiAgICAgICAgIGlmIChwcm9wZXJ0eS50eXBlID09PSAib2JqZWN0IiAmJiBwcm9wZXJ0eS5zdWJ0
eXBlID09PSAibm9kZSIgJiYgcHJvcGVydHkudmFsdWUpIHsKICAgICAgICAgICAgIHNwYW4uYWRk
U3R5bGVDbGFzcygiY29uc29sZS1mb3JtYXR0ZWQtcHJldmlldy1ub2RlIik7CiAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuRE9NUHJlc2VudGF0aW9uVXRpbHMuY3JlYXRlU3BhbnNGb3JOb2RlVGl0
bGUoc3BhbiwgcHJvcGVydHkudmFsdWUpOwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgcmV0dXJuIHNwYW47CisgICAgICAgIH0KKworICAgICAgICBpZiAocHJvcGVydHkudHlwZSA9
PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIHNwYW4udGV4dENvbnRlbnQgPSAiXCIiICsgcHJv
cGVydHkudmFsdWUgKyAiXCIiOworICAgICAgICAgICAgcmV0dXJuIHNwYW47CiAgICAgICAgIH0K
IAogICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gcHJvcGVydHkudmFsdWU7CisgICAgICAgIHJl
dHVybiBzcGFuOwogICAgIH0sCiAKICAgICBfZm9ybWF0UGFyYW1ldGVyQXNOb2RlOiBmdW5jdGlv
bihvYmplY3QsIGVsZW0pCkBAIC00MDEsNiArNDMzLDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xl
TWVzc2FnZUltcGwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy50eXBlICE9PSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZVR5cGUuRGlyWE1MICYmICEhYXJyYXku
cHJldmlldzsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UmVtb3RlT2JqZWN0fSBhcnJheQorICAgICAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbQorICAgICAq
LwogICAgIF9mb3JtYXRQYXJhbWV0ZXJBc0FycmF5OiBmdW5jdGlvbihhcnJheSwgZWxlbSkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLnVzZUFycmF5UHJldmlld0luRm9ybWF0dGVyKGFycmF5KSkg
ewpAQCAtNDE1LDYgKzQ1MSw1NiBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGFycmF5LmdldE93blByb3BlcnRpZXModGhpcy5fcHJp
bnRBcnJheS5iaW5kKHRoaXMsIGFycmF5LCBlbGVtKSk7CiAgICAgfSwKIAorICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Q+fSBwYXJhbWV0ZXJz
CisgICAgICogQHJldHVybiB7RWxlbWVudH0KKyAgICAgKi8KKyAgICBfZm9ybWF0UGFyYW1ldGVy
QXNUYWJsZTogZnVuY3Rpb24ocGFyYW1ldGVycykKKyAgICB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB2YXIgdGFibGUgPSBw
YXJhbWV0ZXJzWzBdOworICAgICAgICBpZiAoIXRhYmxlIHx8ICF0YWJsZS5wcmV2aWV3KQorICAg
ICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisKKyAgICAgICAgdmFyIGNvbHVtbk5hbWVzID0gW107
CisgICAgICAgIHZhciBwcmV2aWV3ID0gdGFibGUucHJldmlldzsKKyAgICAgICAgdmFyIHJvd3Mg
PSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcmV2aWV3LnByb3BlcnRpZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByb3dQcm9wZXJ0eSA9IHByZXZpZXcucHJvcGVy
dGllc1tpXTsKKyAgICAgICAgICAgIHZhciByb3dQcmV2aWV3ID0gcm93UHJvcGVydHkudmFsdWVQ
cmV2aWV3OworICAgICAgICAgICAgaWYgKCFyb3dQcmV2aWV3KQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICB2YXIgcm93VmFsdWUgPSB7fTsKKyAgICAgICAgICAgIGNv
bnN0IG1heENvbHVtbnNUb1JlbmRlciA9IDIwOworICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7
IGogPCByb3dQcmV2aWV3LnByb3BlcnRpZXMubGVuZ3RoICYmIGNvbHVtbk5hbWVzLmxlbmd0aCA8
IG1heENvbHVtbnNUb1JlbmRlcjsgKytqKSB7CisgICAgICAgICAgICAgICAgdmFyIGNlbGxQcm9w
ZXJ0eSA9IHJvd1ByZXZpZXcucHJvcGVydGllc1tqXTsKKyAgICAgICAgICAgICAgICBpZiAoY29s
dW1uTmFtZXMuaW5kZXhPZihjZWxsUHJvcGVydHkubmFtZSkgPT09IC0xKQorICAgICAgICAgICAg
ICAgICAgICBjb2x1bW5OYW1lcy5wdXNoKGNlbGxQcm9wZXJ0eS5uYW1lKTsKKyAgICAgICAgICAg
ICAgICByb3dWYWx1ZVtjZWxsUHJvcGVydHkubmFtZV0gPSB0aGlzLl9yZW5kZXJQcm9wZXJ0eVBy
ZXZpZXcoY2VsbFByb3BlcnR5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJvd3MucHVz
aChbcm93UHJvcGVydHkubmFtZSwgcm93VmFsdWVdKTsKKyAgICAgICAgfQorCisgICAgICAgIHZh
ciBmbGF0VmFsdWVzID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcm93cy5sZW5n
dGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHJvd05hbWUgPSByb3dzW2ldWzBdOworICAgICAg
ICAgICAgdmFyIHJvd1ZhbHVlID0gcm93c1tpXVsxXTsKKyAgICAgICAgICAgIGZsYXRWYWx1ZXMu
cHVzaChyb3dOYW1lKTsKKyAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29sdW1uTmFt
ZXMubGVuZ3RoOyArK2opCisgICAgICAgICAgICAgICAgZmxhdFZhbHVlcy5wdXNoKHJvd1ZhbHVl
W2NvbHVtbk5hbWVzW2pdXSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWZsYXRWYWx1ZXMu
bGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICAgIGNvbHVtbk5hbWVz
LnVuc2hpZnQoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoaW5kZXgpIikpOworICAgICAgICB2YXIg
ZGF0YUdyaWQgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuY3JlYXRlU29ydGFibGVEYXRhR3JpZChj
b2x1bW5OYW1lcywgZmxhdFZhbHVlcyk7CisgICAgICAgIGRhdGFHcmlkLnJlbmRlcklubGluZSgp
OworICAgICAgICB0aGlzLl9kYXRhR3JpZHMucHVzaChkYXRhR3JpZCk7CisgICAgICAgIHRoaXMu
X2RhdGFHcmlkUGFyZW50cy5wdXQoZGF0YUdyaWQsIGVsZW1lbnQpOworICAgICAgICByZXR1cm4g
ZWxlbWVudDsKKyAgICB9LAorCiAgICAgX2Zvcm1hdFBhcmFtZXRlckFzU3RyaW5nOiBmdW5jdGlv
bihvdXRwdXQsIGVsZW0pCiAgICAgewogICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQ29uc29sZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Db25zb2xlTW9kZWwuanMKaW5kZXggMGE4MjE3OGEzZmI3YWQzNDU4NWE4ZWNhNTdjZjdl
MWYwM2ZlNTI0ZC4uYWQ0NDMxNGMzNzM2Mjk0OTVkOWU3MWMwODFjZjlmYWU2NDk2NmIwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTW9kZWwu
anMKQEAgLTIzMCw2ICsyMzAsNyBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2Fn
ZVR5cGUgPSB7CiAgICAgTG9nOiAibG9nIiwKICAgICBEaXI6ICJkaXIiLAogICAgIERpclhNTDog
ImRpcnhtbCIsCisgICAgVGFibGU6ICJ0YWJsZSIsCiAgICAgVHJhY2U6ICJ0cmFjZSIsCiAgICAg
Q2xlYXI6ICJjbGVhciIsCiAgICAgU3RhcnRHcm91cDogInN0YXJ0R3JvdXAiLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKaW5kZXggYTVl
NmM1YmExZjAwOTdkMmI4MTI3MmRkMGJjMDdmZjcwYWM2MDQzNi4uODk1OTZkOTQwY2Y2NTY3YWQ4
YTY4NzYwMmU3NmQyODU0MDFlNTc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC00MTIsNyArNDEyLDYgQEAgV2ViSW5zcGVj
dG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLmN1cnJl
bnRHcm91cC5tZXNzYWdlc0VsZW1lbnQuYXBwZW5kQ2hpbGQoZ3JvdXAuZWxlbWVudCk7CiAgICAg
ICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAgPSBncm91cDsKICAgICAgICAgICAgIH0KLQog
ICAgICAgICAgICAgdGhpcy5jdXJyZW50R3JvdXAuYWRkTWVzc2FnZShtZXNzYWdlKTsKICAgICAg
ICAgfQogCkBAIC00MjIsNiArNDIxLDggQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICBfY29uc29sZUNsZWFyZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAg
IHRoaXMuX3Njcm9sbGVkVG9Cb3R0b20gPSB0cnVlOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMuX3Zpc2libGVNZXNzYWdlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMu
X3Zpc2libGVNZXNzYWdlc1tpXS53aWxsSGlkZSgpOwogICAgICAgICB0aGlzLl92aXNpYmxlTWVz
c2FnZXMgPSBbXTsKIAogICAgICAgICB0aGlzLmN1cnJlbnRHcm91cCA9IHRoaXMudG9wR3JvdXA7
CkBAIC01NDUsOCArNTQ2LDEwIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgdmlzaWJsZU1lc3NhZ2VJbmRleCsrOwogICAgICAgICAgICAg
ICAgIGlmICh0aGlzLl9zaG91bGRCZVZpc2libGUodmlzaWJsZU1lc3NhZ2UpKQogICAgICAgICAg
ICAgICAgICAgICBuZXdWaXNpYmxlTWVzc2FnZXMucHVzaCh2aXNpYmxlTWVzc2FnZSk7Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB2aXNpYmxlTWVzc2FnZS50b01l
c3NhZ2VFbGVtZW50KCkucmVtb3ZlU2VsZigpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICB2aXNpYmxlTWVzc2FnZS53aWxsSGlkZSgpOworICAgICAgICAgICAg
ICAgICAgICB2aXNpYmxlTWVzc2FnZS50b01lc3NhZ2VFbGVtZW50KCkucmVtb3ZlU2VsZigpOyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2hvdWxkQmVWaXNpYmxlKHNvdXJjZU1lc3Nh
Z2UpKSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEdyb3VwLmFkZE1lc3NhZ2Uo
c291cmNlTWVzc2FnZSwgdmlzaWJsZU1lc3NhZ2UgPyB2aXNpYmxlTWVzc2FnZS50b01lc3NhZ2VF
bGVtZW50KCkgOiBudWxsKTsKQEAgLTY5OCw2ICs3MDEsMTQgQEAgV2ViSW5zcGVjdG9yLkNvbnNv
bGVDb21tYW5kID0gZnVuY3Rpb24oY29tbWFuZCkKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnNvbGVD
b21tYW5kLnByb3RvdHlwZSA9IHsKKyAgICB3YXNTaG93bjogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICB9LAorCisgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgfSwKKwogICAgIGNs
ZWFySGlnaGxpZ2h0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgaGlnaGxpZ2h0ZWRN
ZXNzYWdlID0gdGhpcy5fZm9ybWF0dGVkQ29tbWFuZDsKQEAgLTgxOSw4ICs4MzAsMTAgQEAgV2Vi
SW5zcGVjdG9yLkNvbnNvbGVHcm91cC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgZ3Jv
dXBFbGVtZW50ID0gZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJjb25zb2xl
LWdyb3VwIik7CiAgICAgICAgICAgICBpZiAoZ3JvdXBFbGVtZW50ICYmIG1lc3NhZ2UudHlwZSA9
PT0gV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLk1lc3NhZ2VUeXBlLlN0YXJ0R3JvdXBDb2xs
YXBzZWQpCiAgICAgICAgICAgICAgICAgZ3JvdXBFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImNvbGxh
cHNlZCIpOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHRo
aXMubWVzc2FnZXNFbGVtZW50Lmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlIHx8IG51bGwpOwor
ICAgICAgICAgICAgbWVzc2FnZS53YXNTaG93bigpOworICAgICAgICB9CiAKICAgICAgICAgaWYg
KGVsZW1lbnQucHJldmlvdXNTaWJsaW5nICYmIG1lc3NhZ2Uub3JpZ2luYXRpbmdDb21tYW5kICYm
IGVsZW1lbnQucHJldmlvdXNTaWJsaW5nLmNvbW1hbmQgPT09IG1lc3NhZ2Uub3JpZ2luYXRpbmdD
b21tYW5kKQogICAgICAgICAgICAgZWxlbWVudC5wcmV2aW91c1NpYmxpbmcuYWRkU3R5bGVDbGFz
cygiY29uc29sZS1hZGphY2VudC11c2VyLWNvbW1hbmQtcmVzdWx0Iik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RhdGFHcmlkLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EYXRhR3JpZC5qcwppbmRleCA2Njc1ODk3NWY2MjQy
MTlkODlkNzBhNWJjODRhNGQ0NmVmNDhhY2M1Li5jODQ3MjU2NjdkNDBhYjJiYTllNDEyZmZhOTE2
ODQxM2QwMTUzMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGF0YUdyaWQuanMKQEAgLTE3MywxOSArMTczLDE3IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5j
cmVhdGVTb3J0YWJsZURhdGFHcmlkID0gZnVuY3Rpb24oY29sdW1uTmFtZXMsIHZhbHVlcykKICAg
ICB2YXIgY29sdW1ucyA9IHt9OwogCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2x1bW5OYW1l
cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgY29sdW1uID0ge307Ci0gICAgICAgIGNvbHVt
bi53aWR0aCA9IGNvbHVtbk5hbWVzW2ldLmxlbmd0aDsKLSAgICAgICAgY29sdW1uLnRpdGxlID0g
Y29sdW1uTmFtZXNbaV07Ci0gICAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IHRydWU7Ci0KLSAgICAg
ICAgY29sdW1uc1tjb2x1bW5OYW1lc1tpXV0gPSBjb2x1bW47CisgICAgICAgIGNvbHVtbnNbaV0g
PSB7fTsKKyAgICAgICAgY29sdW1uc1tpXS53aWR0aCA9IGNvbHVtbk5hbWVzW2ldLmxlbmd0aDsK
KyAgICAgICAgY29sdW1uc1tpXS50aXRsZSA9IGNvbHVtbk5hbWVzW2ldOworICAgICAgICBjb2x1
bW5zW2ldLnNvcnRhYmxlID0gdHJ1ZTsKICAgICB9CiAKICAgICB2YXIgbm9kZXMgPSBbXTsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGggLyBudW1Db2x1bW5zOyArK2kpIHsK
ICAgICAgICAgdmFyIGRhdGEgPSB7fTsKICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb2x1
bW5OYW1lcy5sZW5ndGg7ICsraikKLSAgICAgICAgICAgIGRhdGFbY29sdW1uTmFtZXNbal1dID0g
dmFsdWVzW251bUNvbHVtbnMgKiBpICsgal07CisgICAgICAgICAgICBkYXRhW2pdID0gdmFsdWVz
W251bUNvbHVtbnMgKiBpICsgal07CiAKICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLkRhdGFHcmlkTm9kZShkYXRhLCBmYWxzZSk7CiAgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9
IGZhbHNlOwpAQCAtMjE1LDYgKzIxMyw4IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5jcmVhdGVT
b3J0YWJsZURhdGFHcmlkID0gZnVuY3Rpb24oY29sdW1uTmFtZXMsIHZhbHVlcykKICAgICAgICAg
ewogICAgICAgICAgICAgdmFyIGl0ZW0xID0gZGF0YUdyaWROb2RlMS5kYXRhW3NvcnRDb2x1bW5J
ZGVudGlmaWVyXTsKICAgICAgICAgICAgIHZhciBpdGVtMiA9IGRhdGFHcmlkTm9kZTIuZGF0YVtz
b3J0Q29sdW1uSWRlbnRpZmllcl07CisgICAgICAgICAgICBpdGVtMSA9IGl0ZW0xIGluc3RhbmNl
b2YgTm9kZSA/IGl0ZW0xLnRleHRDb250ZW50IDogU3RyaW5nKGl0ZW0xKTsKKyAgICAgICAgICAg
IGl0ZW0yID0gaXRlbTIgaW5zdGFuY2VvZiBOb2RlID8gaXRlbTIudGV4dENvbnRlbnQgOiBTdHJp
bmcoaXRlbTIpOwogCiAgICAgICAgICAgICB2YXIgY29tcGFyaXNvbjsKICAgICAgICAgICAgIGlm
IChjb2x1bW5Jc051bWVyaWMpIHsKQEAgLTMxNCw2ICszMTQsMTAgQEAgV2ViSW5zcGVjdG9yLkRh
dGFHcmlkLnByb3RvdHlwZSA9IHsKICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQoZWxlbWVudCwgMCwgZWxlbWVudCwgMSk7CiAgICAgfSwKIAorICAgIHJlbmRl
cklubGluZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZFN0eWxl
Q2xhc3MoImlubGluZSIpOworICAgIH0sCiAKICAgICBfc3RhcnRFZGl0aW5nQ29uZmlnOiBmdW5j
dGlvbihlbGVtZW50KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGF0YWJhc2VRdWVyeVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RhdGFiYXNlUXVlcnlWaWV3LmpzCmluZGV4IDM3NGI2NmRjODE1NTk3NzNi
N2UzOGNhNmUxZmU2ODFjMjViZDE1YTAuLjVhNDRhYjQ1YzE4MjkxYjUxN2VlNzI4NTQ1ZDU4Zjdk
YzAxZWQwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGF0YWJhc2VRdWVyeVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EYXRhYmFzZVF1ZXJ5Vmlldy5qcwpAQCAtMTQ1LDcgKzE0NSw3IEBAIFdlYkluc3BlY3Rv
ci5EYXRhYmFzZVF1ZXJ5Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0cmltbWVkUXVl
cnkgPSBxdWVyeS50cmltKCk7CiAKICAgICAgICAgaWYgKGRhdGFHcmlkKSB7Ci0gICAgICAgICAg
ICBkYXRhR3JpZC5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoImlubGluZSIpOworICAgICAgICAgICAg
ZGF0YUdyaWQucmVuZGVySW5saW5lKCk7CiAgICAgICAgICAgICB0aGlzLl9hcHBlbmRWaWV3UXVl
cnlSZXN1bHQodHJpbW1lZFF1ZXJ5LCBkYXRhR3JpZCk7CiAgICAgICAgICAgICBkYXRhR3JpZC5h
dXRvU2l6ZUNvbHVtbnMoNSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvZGF0YUdyaWQuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9kYXRhR3JpZC5jc3MKaW5kZXggZDY2NDIwNzA0OTlhNDY3Y2Y5MzVkY2Nl
OGVmZmQ3ZDZjOGEyMzQxZi4uOTcwNDI4MWNhOGFjOWQyOTM5NzZkZjBhZjMyMWMwMTViYTA2Mzlk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9kYXRhR3Jp
ZC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9kYXRhR3JpZC5j
c3MKQEAgLTMwLDEwICszMCwxOSBAQAogICAgIG92ZXJmbG93LXk6IG92ZXJsYXk7CiB9CiAKKy5k
YXRhLWdyaWQuaW5saW5lIHsKKyAgICBib3JkZXItcmlnaHQ6IG5vbmU7Cit9CisKIC5kYXRhLWdy
aWQuaW5saW5lIC5kYXRhLWNvbnRhaW5lciB7CiAgICAgcG9zaXRpb246IHN0YXRpYzsKIH0KIAor
LmRhdGEtZ3JpZC5pbmxpbmUgdGguY29ybmVyLAorLmRhdGEtZ3JpZC5pbmxpbmUgdGQuY29ybmVy
IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiAuZGF0YS1ncmlkIHRoIHsKICAgICB0ZXh0LWFs
aWduOiBsZWZ0OwogICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChJbWFnZXMvZ2xvc3N5SGVhZGVy
LnBuZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL3Jl
c291cmNlc1BhbmVsLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcmVz
b3VyY2VzUGFuZWwuY3NzCmluZGV4IDE5MTZhM2FkMzhjY2JhOWI4MDY5YTgyNmM2NGVhNzBiZWFk
MzE3MzguLjljMzgyYWNjZGU5ZmI1OGFhNWRhOTE1MGQ4Y2NmMWEwMjczYzc0OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcmVzb3VyY2VzUGFuZWwuY3Nz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvcmVzb3VyY2VzUGFuZWwu
Y3NzCkBAIC0xMTgsNyArMTE4LDcgQEAgbGkuc2VsZWN0ZWQgLmJhc2Utc3RvcmFnZS10cmVlLWVs
ZW1lbnQtc3VidGl0bGUgewogICAgIG92ZXJmbG93OiBoaWRkZW47CiB9CiAKLS5zdG9yYWdlLXZp
ZXcgLmRhdGEtZ3JpZCB7Cisuc3RvcmFnZS12aWV3ID4gLmRhdGEtZ3JpZCB7CiAgICAgYm9yZGVy
OiBub25lOwogICAgIGhlaWdodDogMTAwJTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4
IDc0Nzk1YThhNTk4OTcwNmNhMzYxZDRlYTk5NzkyYTI3OGE2NzkwMjUuLjcwOGU4ZTk5MmExYzhj
ODQ5ODU2NDU3NTI0ZjQxOWJhMWY0YzZhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAt
MjY2LDYgKzI2NiwxMSBAQCB2b2lkIENvbnNvbGU6OmRpcnhtbChTY3JpcHRTdGF0ZSogc3RhdGUs
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCiAgICAgaW50ZXJuYWxBZGRN
ZXNzYWdlKHBhZ2UoKSwgRGlyWE1MTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgc3RhdGUs
IGFyZ3VtZW50cyk7CiB9CiAKK3ZvaWQgQ29uc29sZTo6dGFibGUoU2NyaXB0U3RhdGUqIHN0YXRl
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQoreworICAgIGludGVybmFs
QWRkTWVzc2FnZShwYWdlKCksIFRhYmxlTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgc3Rh
dGUsIGFyZ3VtZW50cyk7Cit9CisKIHZvaWQgQ29uc29sZTo6Y2xlYXIoU2NyaXB0U3RhdGUqIHN0
YXRlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzKQogewogICAgIGludGVy
bmFsQWRkTWVzc2FnZShwYWdlKCksIENsZWFyTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwg
c3RhdGUsIGFyZ3VtZW50cywgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCmluZGV4IDNkNTNhNzVj
ZjU1MTM2OTU0MTgyNzNhMWNmMjZmZjNhODcxOWNhNzMuLmE5YTVkMjc0NDU0NWQ4Yjg3ODkzYzc4
NjI0ZDIxODM5ZWM1ZmM0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29s
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC03MCw2ICs3MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHdhcm4oU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgZGlyKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRB
cmd1bWVudHM+KTsKICAgICB2b2lkIGRpcnhtbChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPik7CisgICAgdm9pZCB0YWJsZShTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCB0cmFjZShTY3JpcHRTdGF0ZSosIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBhc3NlcnRDb25kaXRpb24oU2NyaXB0U3Rh
dGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4sIGJvb2wgY29uZGl0aW9uKTsKICAgICB2
b2lkIGNvdW50KFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnNvbGUuaWRsCmluZGV4IDI2MDIxN2ViZmQ1YjI0OTM4NjE3MjkwYWIxMzM0M2M5
OWEyNzJjZjMuLmZhZWZkNmI1MmFmM2NhMDE4ZGQxZjE2ZDliOWQ1MTQwYzA3MjIwNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmlkbApAQCAtMzgsNiArMzgsNyBAQAogICAgIFtDYWxsV2l0aD1TY3Jp
cHRBcmd1bWVudHN8U2NyaXB0U3RhdGVdIHZvaWQgd2FybigpOwogICAgIFtDYWxsV2l0aD1TY3Jp
cHRBcmd1bWVudHN8U2NyaXB0U3RhdGVdIHZvaWQgZGlyKCk7CiAgICAgW0NhbGxXaXRoPVNjcmlw
dEFyZ3VtZW50c3xTY3JpcHRTdGF0ZV0gdm9pZCBkaXJ4bWwoKTsKKyAgICBbQ2FsbFdpdGg9U2Ny
aXB0QXJndW1lbnRzfFNjcmlwdFN0YXRlXSB2b2lkIHRhYmxlKCk7CiAgICAgW1Y4Q3VzdG9tLCBD
YWxsV2l0aD1TY3JpcHRBcmd1bWVudHN8U2NyaXB0U3RhdGVdIHZvaWQgdHJhY2UoKTsKICAgICBb
VjhDdXN0b20sIENhbGxXaXRoPVNjcmlwdEFyZ3VtZW50c3xTY3JpcHRTdGF0ZSwgSW1wbGVtZW50
ZWRBcz1hc3NlcnRDb25kaXRpb25dIHZvaWQgYXNzZXJ0KGluIGJvb2xlYW4gY29uZGl0aW9uKTsK
ICAgICBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfFNjcmlwdFN0YXRlXSB2b2lkIGNvdW50KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOWJlNmRiNGVjOTRkOTMwZjJhOGQ1MjZiMDg4NzVkNWRjMmNkNmI3OC4uN2JkYzAw
MzA2MDUyNmUzNzI5NDhiOTU2NzgzNmExM2Y1ZjUxYWQ2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEzLTAyLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYmFzaWMgY29uc29sZS50YWJsZSBpbXBsZW1l
bnRhdGlvbiAobm8gWyxjb2x1bW5zXSBzdXBwb3J0KQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUt
YXBpLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZv
cm1hdC10YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTE2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBhIGZsYWt5IGltYWdl
IG9ubHkgZmFpbHVyZSBleHBlY3RhdGlvbiB0byB0aGUgdGVzdCBhZGRlZCBpbiByMTQyOTc5IG9u
IE1hYyBwZXIgYnVnIDExMDAyNy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQKaW5kZXggYWMzNjk5OTE3
NWM3MmVmZmY2OTg1NmNhN2JlMmMyYTY2NGFhZTEzNi4uYTM4MGRmNGRiMGVlMWZlNTRlMjE1Mjhm
ZjQzODcwMjA1ZDgxZjMwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTEyMTogVGhlIGNvbnNvbGUgZnVuY3Rpb24gJCgpIGhh
cyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChpZCkgdG8gJD1xdWVyeVNlbGVjdG9yKHNl
bGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjJXMiKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEx
NzI6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hhbmdlZCBmcm9tICQ9Z2V0RWxlbWVu
dEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3RvcikuIFlvdSBtaWdodCB0cnkgJCgi
IyVzIikKIFRlc3RzIHRoYXQgY29tbWFuZCBsaW5lIGFwaSB3b3Jrcy4KIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10YWJsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWZvcm1hdC10
YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM4MjJiZDU2YmQ2Y2ZkOWE4NTA3ODNlYjRh
MzYzZTg0N2I2YmY1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtZm9ybWF0LXRhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDk1IEBA
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IG51bGwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
MjogQXJyYXkgb2YgYXJyYXlzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IDEsMiwzLDQsNSw2
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IExhcmdlIGFycmF5IG9mIGFycmF5cworQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE2OiAxLDIsMyw0LDUsNiwxLDIsMyw0LDUsNiwxLDIsMyw0LDUsNiwx
LDIsMyw0LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBBcnJheSBvciBhcnJheSBhbmQg
b2JqZWN0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IDEsMiwzLFtvYmplY3QgT2JqZWN0XQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBPYmplY3QgdGFibGUKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAyMjogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IE51bGwg
YXMgY29sdW1ucworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1OiAxLDIsMyw0LDUsNgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDI3OiBEaWdpdCBhcyBjb2x1bW5zCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjg6IDEsMiwzLDQsNSw2CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzA6IFN0cmluZyBhcyBj
b2x1bW5zCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IDEsMiwzLDQsNSw2CitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMzM6IFJhbmRvbSBzdHJpbmcgYXMgY29sdW1ucworQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM0OiAxLDIsMyw0LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBBcnJheSBv
ZiBzdHJpbmdzIGFzIGNvbHVtbnMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzNzogW29iamVjdCBP
YmplY3RdLFtvYmplY3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM5OiBHb29kIGFu
ZCBiYWQgY29sdW1uIG5hbWVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFtvYmplY3QgT2Jq
ZWN0XSxbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0MjogTWlzc2luZyBj
b2x1bW4gbmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQzOiBbb2JqZWN0IE9iamVjdF0sW29i
amVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IG51bGwKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAxMjogQXJyYXkgb2YgYXJyYXlzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6
IDEsMiwzLDQsNSw2CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTU6IExhcmdlIGFycmF5IG9mIGFy
cmF5cworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE2OiAxLDIsMyw0LDUsNiwxLDIsMyw0LDUsNiwx
LDIsMyw0LDUsNiwxLDIsMyw0LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBBcnJheSBv
ciBhcnJheSBhbmQgb2JqZWN0CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IDEsMiwzLFtvYmpl
Y3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBPYmplY3QgdGFibGUKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAyMjogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjQ6IE51bGwgYXMgY29sdW1ucworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1OiAxLDIsMyw0
LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBEaWdpdCBhcyBjb2x1bW5zCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjg6IDEsMiwzLDQsNSw2CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzA6
IFN0cmluZyBhcyBjb2x1bW5zCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzE6IDEsMiwzLDQsNSw2
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzM6IFJhbmRvbSBzdHJpbmcgYXMgY29sdW1ucworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM0OiAxLDIsMyw0LDUsNgorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDM2OiBBcnJheSBvZiBzdHJpbmdzIGFzIGNvbHVtbnMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
NzogW29iamVjdCBPYmplY3RdLFtvYmplY3QgT2JqZWN0XQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDM5OiBHb29kIGFuZCBiYWQgY29sdW1uIG5hbWVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6
IFtvYmplY3QgT2JqZWN0XSxbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0
MjogTWlzc2luZyBjb2x1bW4gbmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQzOiBbb2JqZWN0
IE9iamVjdF0sW29iamVjdCBPYmplY3RdCitUZXN0cyBjb25zb2xlLnRhYmxlLgorCisgY29uc29s
ZS1mb3JtYXQtdGFibGUuaHRtbDoxMAorQXJyYXkgb2YgYXJyYXlzIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MTIKKyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEzCitMYXJnZSBhcnJheSBv
ZiBhcnJheXMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxNQorIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MTYKK0FycmF5IG9yIGFycmF5IGFuZCBvYmplY3QgY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDoxOAorIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MTkKK09iamVjdCB0YWJsZSBj
b25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjIxCisgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoy
MgorTnVsbCBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjQKKyBjb25zb2xl
LWZvcm1hdC10YWJsZS5odG1sOjI1CitEaWdpdCBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MjcKKyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjI4CitTdHJpbmcgYXMgY29s
dW1ucyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjMwCisgY29uc29sZS1mb3JtYXQtdGFibGUu
aHRtbDozMQorUmFuZG9tIHN0cmluZyBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0
bWw6MzMKKyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM0CitBcnJheSBvZiBzdHJpbmdzIGFz
IGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozNgorIGNvbnNvbGUtZm9ybWF0LXRh
YmxlLmh0bWw6MzcKK0dvb2QgYW5kIGJhZCBjb2x1bW4gbmFtZXMgY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDozOQorIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6NDAKK01pc3NpbmcgY29sdW1u
IG5hbWUgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDo0MgorIGNvbnNvbGUtZm9ybWF0LXRhYmxl
Lmh0bWw6NDMKKyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjEwCitBcnJheSBvZiBhcnJheXMg
Y29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxMgorKGluZGV4KTAxMjAxMjMxNDU2IGNvbnNvbGUt
Zm9ybWF0LXRhYmxlLmh0bWw6MTMKK0xhcmdlIGFycmF5IG9mIGFycmF5cyBjb25zb2xlLWZvcm1h
dC10YWJsZS5odG1sOjE1CisoaW5kZXgpMDEyMDEyMzE0NTYyMTIzMzQ1NjQxMjM1NDU2NjEyMzc0
NTYgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoxNgorQXJyYXkgb3IgYXJyYXkgYW5kIG9iamVj
dCBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjE4CisoaW5kZXgpMDEyYWJjMDEyM3VuZGVmaW5l
ZHVuZGVmaW5lZHVuZGVmaW5lZDF1bmRlZmluZWR1bmRlZmluZWR1bmRlZmluZWQxMjMgY29uc29s
ZS1mb3JtYXQtdGFibGUuaHRtbDoxOQorT2JqZWN0IHRhYmxlIGNvbnNvbGUtZm9ybWF0LXRhYmxl
Lmh0bWw6MjEKKyhpbmRleClhYmZvbzEyYmFyMzQgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDoy
MgorTnVsbCBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjQKKyhpbmRleCkw
MTIwMTIzMTQ1NiBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjI1CitEaWdpdCBhcyBjb2x1bW5z
IGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MjcKKyhpbmRleCkwMTIwMTIzMTQ1NiBjb25zb2xl
LWZvcm1hdC10YWJsZS5odG1sOjI4CitTdHJpbmcgYXMgY29sdW1ucyBjb25zb2xlLWZvcm1hdC10
YWJsZS5odG1sOjMwCisoaW5kZXgpMDAxMTQgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozMQor
UmFuZG9tIHN0cmluZyBhcyBjb2x1bW5zIGNvbnNvbGUtZm9ybWF0LXRhYmxlLmh0bWw6MzMKKyhp
bmRleCkwMSBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM0CitBcnJheSBvZiBzdHJpbmdzIGFz
IGNvbHVtbnMgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozNgorKGluZGV4KWFiMDEyMSJmb28i
ImJhciIgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDozNworR29vZCBhbmQgYmFkIGNvbHVtbiBu
YW1lcyBjb25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjM5CisoaW5kZXgpYWIwMTIxImZvbyJ1bmRl
ZmluZWQgY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbDo0MAorTWlzc2luZyBjb2x1bW4gbmFtZSBj
b25zb2xlLWZvcm1hdC10YWJsZS5odG1sOjQyCisoaW5kZXgpMDEgY29uc29sZS1mb3JtYXQtdGFi
bGUuaHRtbDo0MworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9j
b25zb2xlLWZvcm1hdC10YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
Y29uc29sZS1mb3JtYXQtdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmM4OTFhNmNhMDdmYTViY2I0
Yzc1MzZlZDkxYmU3NzdkM2E1ZTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUvY29uc29sZS1mb3JtYXQtdGFibGUuaHRtbApAQCAtMCwwICsxLDcwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVu
Y3Rpb24gbG9nVG9Db25zb2xlKCkKK3sKKyAgICBjb25zb2xlLnRhYmxlKCk7CisgICAgY29uc29s
ZS50YWJsZShudWxsKTsKKworICAgIGNvbnNvbGUubG9nKCJBcnJheSBvZiBhcnJheXMiKTsKKyAg
ICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSk7CisKKyAgICBjb25zb2xlLmxvZygi
TGFyZ2UgYXJyYXkgb2YgYXJyYXlzIik7CisgICAgY29uc29sZS50YWJsZShbWzEsMiwzXSwgWzQs
NSw2XSwgWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQsNSw2XSwgWzEsMiwzXSwgWzQsNSw2
XV0pOworCisgICAgY29uc29sZS5sb2coIkFycmF5IG9yIGFycmF5IGFuZCBvYmplY3QiKTsKKyAg
ICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCB7YToxLCBiOjIsIGM6M31dKTsKKworICAgIGNvbnNv
bGUubG9nKCJPYmplY3QgdGFibGUiKTsKKyAgICBjb25zb2xlLnRhYmxlKHsiZm9vIjoge2E6MSwg
YjoyfSwgImJhciI6IHthOjMsIGI6NH19KTsKKworICAgIGNvbnNvbGUubG9nKCJOdWxsIGFzIGNv
bHVtbnMiKTsKKyAgICBjb25zb2xlLnRhYmxlKFtbMSwyLDNdLCBbNCw1LDZdXSwgbnVsbCk7CisK
KyAgICBjb25zb2xlLmxvZygiRGlnaXQgYXMgY29sdW1ucyIpOworICAgIGNvbnNvbGUudGFibGUo
W1sxLDIsM10sIFs0LDUsNl1dLCAwKTsKKworICAgIGNvbnNvbGUubG9nKCJTdHJpbmcgYXMgY29s
dW1ucyIpOworICAgIGNvbnNvbGUudGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAiMCIpOworCisg
ICAgY29uc29sZS5sb2coIlJhbmRvbSBzdHJpbmcgYXMgY29sdW1ucyIpOworICAgIGNvbnNvbGUu
dGFibGUoW1sxLDIsM10sIFs0LDUsNl1dLCAiRm9vIik7CisKKyAgICBjb25zb2xlLmxvZygiQXJy
YXkgb2Ygc3RyaW5ncyBhcyBjb2x1bW5zIik7CisgICAgY29uc29sZS50YWJsZShbe2E6MSwgYjoy
LCBjOjN9LCB7YToiZm9vIiwgYjoiYmFyIn1dLCBbImEiLCAiYiJdKTsKKworICAgIGNvbnNvbGUu
bG9nKCJHb29kIGFuZCBiYWQgY29sdW1uIG5hbWVzIik7CisgICAgY29uc29sZS50YWJsZShbe2E6
MSwgYjoyLCBjOjN9LCB7YToiZm9vIn1dLCBbImEiLCAiYiIsICJkIl0pOworCisgICAgY29uc29s
ZS5sb2coIk1pc3NpbmcgY29sdW1uIG5hbWUiKTsKKyAgICBjb25zb2xlLnRhYmxlKFt7YToxLCBi
OjIsIGM6M30sIHthOiJmb28ifV0sIFsiZCJdKTsKK30KKworZnVuY3Rpb24gb25sb2FkKCkKK3sK
KyAgICBsb2dUb0NvbnNvbGUoKTsKKyAgICBydW5UZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImxvZ1RvQ29uc29sZSgpIiwg
Y2FsbGJhY2spOworCisgICAgZnVuY3Rpb24gY2FsbGJhY2soKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wQ29uc29sZU1lc3NhZ2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9u
bG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyBjb25zb2xlLnRhYmxlLgorPC9wPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>