Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2k1p-0000tw-9S for pgadmin-hackers@arkaria.postgresql.org; Tue, 17 May 2016 18:47:37 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b2k1o-0004xJ-Ql for pgadmin-hackers@arkaria.postgresql.org; Tue, 17 May 2016 18:47:36 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b1HcN-0008HS-Ce for pgadmin-hackers@postgresql.org; Fri, 13 May 2016 18:15:20 +0000 Received: from mail-wm0-x22d.google.com ([2a00:1450:400c:c09::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b1HcF-00033T-3L for pgadmin-hackers@postgresql.org; Fri, 13 May 2016 18:15:18 +0000 Received: by mail-wm0-x22d.google.com with SMTP id a17so42937514wme.0 for ; Fri, 13 May 2016 11:15:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=K2X7ZNQTVWYCuNfqi9WjHLNIECgT0APnHIv0CCqY3DE=; b=v0ATZqsKh296RuYAa3FcbzRsqQkABxs15e9p+fArZco1/W7idJj7dVZoIc15Fgs69G iZrg3w3klklSROS67fLo2jTVTsPLHxyCukHMsQet1/tjaCJRmed25PLBSqMviu+NOyJK KEjv3C2BZ8vGQxT0zti5H1YDSbpnK9Hc8cvpUw98aY4mMFsNVNgIRPMC/7BM+bjCbMzx duSHqZ1NfZhKO4YHxsye8mgiwk1zm6IjLm4KfJlKD0pmGm9t+aslw/m4ISAo5byO55xH eq4i4ShKafzM7TmV1FLQ+vyHWdML+OYKm1kV7pl5R47E49KV8bdkmk2ChODmSicYbd3m 0nQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=K2X7ZNQTVWYCuNfqi9WjHLNIECgT0APnHIv0CCqY3DE=; b=nFK9ha53ekLF1SFIlJd0YgtsBmg5tSMm38vrXsG2mddrvnAJckebmO/jqN/JOWcFwo Jty+JuA2NrimYsl0kQf8+jWmfTi/WwuAO1f/6jY9AoJ7BIHmQevu0D08giKYaypwZFIr AN5SaBnBxk3eQrogr+m56jz00af6TSYRXTw+QwCDu5rgvASuLsOXglUEa4QIGmN12Jzw w3M1Nosk1xn9i2wQWkRUWiMdCU2RGI8ZO+S5DTTCnxMXRwguVIcBI0R7GFRvQr1gxeGf dtDEpNqsi+k8Y3kGsXMV+4ZD/NoO3H1tuobcuznjZdbc91ucYDrEgaqpamkDf10oj9uV ulIg== X-Gm-Message-State: AOPr4FUM4GooED4z5ol2lWkk+VJP7g3E0xquXzEC8fh2eV2k00MIpB0KrTMBeMqv956CQvyIVgngRyLfKOdqSimk X-Received: by 10.28.223.86 with SMTP id w83mr5121215wmg.95.1463163309444; Fri, 13 May 2016 11:15:09 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.14.212 with HTTP; Fri, 13 May 2016 11:14:39 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Fri, 13 May 2016 23:44:39 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: View and Materialised View Nodes To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114b08064f97e50532bd4161 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a114b08064f97e50532bd4161 Content-Type: multipart/alternative; boundary=001a114b08064f97de0532bd415f --001a114b08064f97de0532bd415f Content-Type: text/plain; charset=UTF-8 Hi, Please find updated patch with fixed review comments: Most of the issues occurred because some code was missing in tables subnodes patch. Now I have shared the code related to table subnodes with harshal to integrate in tables patch. This patch has dependency on tables patch. On Tue, May 10, 2016 at 7:46 PM, Akshay Joshi wrote: > Hi Surinder > > On Fri, Apr 29, 2016 at 8:07 PM, Surinder Kumar enterprisedb.com> wrote: > >> Hi, >> >> >> PFA patch for View and Materialised View Nodes. >> This patch is dependent on *tables node* and its subnodes patch. >> Please test this patch once latest tables node patch is submitted. >> >> I have merged one other patch: >> *"Don't show Security group of node if it is under Catalogs"* >> >> http://www.postgresql.org/message-id/CAM5-9D8RNZXRG0ygvuRqf2wQAEnye-rqBHSrwcr34dnLCemy3w@mail.gmail.com >> >> Below are the fix for the review comments given by Dave: >> >> *Views*: >> >> - Please add sqlCreateHelp and sqlAlterHelp properties to all nodes. >> *I have added these in View and Materialised View. * >> >> - Some of the SQL templates have inconsistent indenting (i.e. not 4 >> chars), e.g. >> >> CREATE OR REPLACE VIEW pem.avail_agents >> AS >> ... >> *Fixed* >> >> - When creating any object, the Owner, Schema and Tablespace should >> have default values. >> *Fixed* >> >> - Property labels should only have the first word capitalised, e.g. >> >> Security barrier >> Check options >> *Fixed* >> >> - The Definition box on the View dialogue should start at a single >> line and expand as needed - see the Function dialogue >> *Fixed* >> > > Still reproducible. > >> >> >> - The Cancel button doesn't work on the View dialog. Please check them >> all. >> *In latest code pull, It **seems to be** fixed. not reproducible at my >> end.* >> >> - The Save button doesn't close the View dialog, nor does it add the tree >> node. >> *In latest code pull, It **seems to be** fixed. not reproducible at my >> end.* >> >> - Dependencies and Dependents don't show icons, and have very tall >> rows. This issue likely comes from elsewhere as I'm seeing it on other >> object types as well. >> Yes, it is general, previously images were visible. It is regression of >> some commit. I will check it. >> >> - Reverse engineered SQL for a column on a view is shown like: >> >> -- Column: id -- ALTER TABLE pem.avail_agents >> DROP COLUMN id; ALTER TABLE pem.avail_agents ADD COLUMN id >> integer(4); >> >> (yes, it's displaying the HTML tags) >> *I pulled the latest code, but it is not reproducible.* >> >> - The ACL property should be called Privileges and be in the Security >> group (see functions, sequences etc). >> *Fixed* >> >> - The Schema should not be shown in "Properties" view. >> *Fixed* >> >> - Fields in the General section should be in the order: Name, OID, >> Owner, System xxx? (where appropriate), Comment >> *I have checked that In view Fields (Name, Owner, Schema & Comment) are >> in this order.* >> *I didn't got your point. Can you please give and example, if possible.* >> > > Not Fixed yet. > Now it is fixed. > >> >> >> *Materialised Views:* >> - Selecting an MV results in: >> >> 2016-04-14 09:34:58,863: ERROR pgadmin: Exception on >> /browser/materialized_view/obj/1/1/24587/27424/107612 [GET] >> Traceback (most recent call last): >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/app.py", >> line 1817, in wsgi_app >> response = self.full_dispatch_request() >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/app.py", >> line 1477, in full_dispatch_request >> rv = self.handle_user_exception(e) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/app.py", >> line 1381, in handle_user_exception >> reraise(exc_type, exc_value, tb) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/app.py", >> line 1475, in full_dispatch_request >> rv = self.dispatch_request() >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/app.py", >> line 1461, in dispatch_request >> return self.view_functions[rule.endpoint](**req.view_args) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/views.py", >> line 84, in view >> return self.dispatch_request(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line >> 233, in dispatch_request >> return method(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >> groups/servers/databases/schemas/views/__init__.py", >> line 185, in wrap >> return f(*args, **kwargs) >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >> groups/servers/databases/schemas/views/__init__.py", >> line 1226, in properties >> self.conn, result, 'table') >> File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_ >> groups/servers/databases/schemas/utils.py", >> line 357, in parse_vacuum_data >> vacuum_fields = render_template("vacuum_settings/vacuum_fields.json") >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/templating.py", >> line 127, in render_template >> return _render(ctx.app.jinja_env.get_or_select_template(template_ >> name_or_list), >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/jinja2/environment.py", >> line 830, in get_or_select_template >> return self.get_template(template_name_or_list, parent, globals) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/jinja2/environment.py", >> line 791, in get_template >> return self._load_template(name, self.make_globals(globals)) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/jinja2/environment.py", >> line 765, in _load_template >> template = self.loader.load(self, name, globals) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/jinja2/loaders.py", >> line 113, in load >> source, filename, uptodate = self.get_source(environment, name) >> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site- >> packages/flask/templating.py", >> line 64, in get_source >> raise TemplateNotFound(template) >> TemplateNotFound: vacuum_settings/vacuum_fields.json >> >> *It seems this patch* >> >> http://www.postgresql.org/message-id/CAM5-9D-4DYgMMHFc5mzDDdK++h7XNvkiA5ojBbXi5sTHmecGCA@mail.gmail.com >> *wasn't applied properly. Now this patch is sent with tables patch.* >> >> - When creating an MV, an error is immediately shown telling me to >> specify a name. We do not normally show such errors until the field >> loses focus. >> *Now its fixed.* >> > > Not fixed. Issue is reproducible. > >> >> >> - No default owner is shown in create mode. >> *Fixed.* >> >> - "Please enter function definition." is shown as an error on the >> definition field. >> *It triggers this error message as it is mandatory.* >> >> - The Definition field is missing a label. If relying on the tab title >> to be the label, the control should fill the tab (as with Security >> options etc). >> *Fixed.* >> >> - No default tablespace is shown. >> *Fixed* >> >> - If I enable custom auto-vacuum, there is no way to add a row to >> specify options. >> *You can enable custom auto vacuum field and add new values in the auto >> vacuum settings.* >> >> - If I specify a comment on an MV, I get "ERROR: "mv_pg_tables" is not a >> view" >> *For some reason tablespace name was missing in generated sql.* >> > > Not Fixed. Wrong sql generated "COMMENT ON VIEW ..." instead of > "COMMENT ON MATERIALIZED VIEW ..." > Fixed > >> >> - Save/Cancel buttons not working as expected (like other objects) >> *In latest code pull, It **seems to be** fixed. not reproducible at my >> end.* >> > > > Apart from above below are my review comments > > *Views*:- > > - As per pgAdmin3 "indexes" node should not be listed under Views. > > Done > > - SQL not generated when changing the value of "Event" and "Do > Instead" for Rule node under View node. > > Done > > - Changing the "Event" in Rule node not working. > > Done > > - As per pgAdmin3 user can't be able to create columns inside View > node. > > Done > > - User can't be able to delete/drop columns and system generated > Rule's, Trigger's etc.. > > Done > > - Found one issue when changing value of "Security Barrier" from "Yes" > to "No" it is not reflected on GUI when we open the dialog again while > in backend value is updated, but on GUI it is showing "Yes". > > Done > > - Create -> Trigger menu is missing when any view node is selected. > > Done > > *Materialized View:-* > > - *As per pgAdmin3 user can't be able to create columns inside > Materialized View node.* > > Done > > - > - > *User can't be able to delete/drop columns and system generated Rule's, > Trigger's etc. * > > I have checked in pgAdmin3 that delete/drop option specific to rules has 2 cases: 1. If rule is system rule, user can't delete/drop it. 2. If not system rule, it can drop dropped. Done > > - > - Create -> Trigger/Rule/Index menu is missing when any materialized > view node is selected. > > Done > > - In pgAdmin3 we have two more refresh options "Refresh data" and > "Refresh data concurrently" which is missing. > > Done > > - "Custom Auto Vaccum" for Table and Toast Table not working. > > Done > > >> >> Thanks, >> Surinder Kumar >> >> >> >> -- >> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> > > > -- > *Akshay Joshi* > *Principal Software Engineer * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* > --001a114b08064f97de0532bd415f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find updated patch with fixe= d review comments:

Most of the issues occurred bec= ause some code was missing in tables subnodes patch.
Now I have s= hared the code related to table subnodes with harshal to integrate in table= s patch.

This patch has dependency on tables patch= .

On Tu= e, May 10, 2016 at 7:46 PM, Akshay Joshi <akshay.joshi@enterpr= isedb.com> wrote:
Hi Surinder

On Fri, Apr 29, 2016 at 8:07 PM, Surinder Ku= mar <surinder.kumar@e= nterprisedb.com> wrote:
Hi,


PFA patch for View and Mater= ialised View Nodes.
This patch is dependent on=C2=A0tables nod= e=C2=A0and its subnodes=C2=A0patch.
Please test this p= atch once latest tables node patch is submitted.

I= have merged one other patch:
"Don't show = Security group of node if it is under Catalogs"

Below are the fix for the review com= ments given by Dave:

Views:

- Please add sqlCreateHelp and sqlAlterHelp properties to all nodes.
I have added these in View and Materialised View.=C2= =A0

- Some of the SQL templates have inconsistent indenting (i.e. not 4 = chars), e.g.

CREATE OR REPLACE VIEW pem.avail_agents
=C2=A0AS
=C2=A0...
Fixed

- When creating any obje= ct, the Owner, Schema and Tablespace should
have default values.
Fixed

= - Property labels should only have the first= word capitalised, e.g.

=C2=A0 Security barrier<= br style=3D"font-size:13px">=C2=A0 Check opt= ions
Fixed

- The Definition box= on the View dialogue should start at a single
line and expand as needed - see the F= unction dialogue
Fixed

=C2=A0 =C2=A0Still reproducible. =C2=A0<= /div>


- The Cance= l button doesn't work on the View dialog. Please check them all.=
In latest code pull, It=C2=A0seems to b= e=C2=A0fixed. not=C2=A0reproducible=C2=A0at my end.

- The S= ave button doesn't close the View dialog, nor does it add the tree node= .
In latest code pull, It=C2= =A0seems to be=C2=A0fixed. not=C2=A0reproducibl= e=C2=A0at my end.

- Dependencies and Dependents don't show icons, and= have very tall
rows. This issue likely comes from elsewhere as I'm seeing it on= other
ob= ject types as well.
Yes, it= is general, previously images were visible. It is regression of some commi= t. I will check it.

- Reverse engineered SQL for = a column on a view is shown like:

<html><head&= gt;</head><body>-- Column: id -- ALTER TABLE pem.avail_agents
DROP COLUM= N id; ALTER TABLE pem.avail_agents ADD COLUMN id
integer(4);</body></html&g= t;

(yes, it's displaying the HTML tags)
I pulled the latest code, but it is not repro= ducible.

- The ACL property should be called Privileges and be in the Security<= /span>
group (se= e functions, sequences etc).
Fixed

- The Schema should not be shown in "Properties" view.
Fixed

- Fields in the General sectio= n should be in the order: Name, OID,
Owner, System xxx? (where appropriate), Comment=
I have checked that In view Fields (Name, Owner= , Schema & Comment) are in this order.
I didn&#= 39;t got your point. Can you please give and example, if possible.<= /div>

=C2=A0 =C2=A0Not Fixed y= et.=C2=A0
Now it is fixed.=C2=A0


Materialised Views:<= /span>

- Selecting an MV results in:

2= 016-04-14 09:34:58,863: ERROR pgadmin: Exception on
/browser/materialized_view/obj/1/1/24587/27424/107612 [GET]Traceback (most re= cent call last):
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1817, in wsgi_app

=C2=A0 =C2=A0 response =3D self.ful= l_dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
= line 1477, in full_dispatch_request=C2=A0 =C2=A0 rv = =3D self.handle_user_exception(e)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1381, in handle_user_except= ion
=C2= =A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtuale= nvs/pgadmin4/lib/python2.7/site-packages/flask/app.py",
line 1475, in full_dis= patch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 File "/Users/dpage/.vi= rtualenvs/pgadmin4/lib/python2.7/site= -packages/flask/app.py",<= br style=3D"font-size:13px">line 1461, in di= spatch_request
=C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.view_args)
=C2=A0 File "/Users/dpage/.virtualenv= s/pgadmin4/lib/python2.7/site-= packages/flask/views.py",
line 84, in view
=C2=A0 =C2=A0 = return self.dispatch_request(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pga= dmin4/web/pgadmin/browser/utils.py&qu= ot;, line
233, in dispatch_request
=C2=A0 =C2=A0 return method(*args, **kwargs)
=C2=A0 File "/Use= rs/dpage/git/pgadmin4/web/pgadmin/bro= wser/server_groups/servers/databases/= schemas/views/__init__.py",
line 185, in = wrap
=C2= =A0 =C2=A0 return f(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py",
line 1226, in properties
=C2=A0 =C2=A0 self.con= n, result, 'table')
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_
groups/servers/databases/schemas/utils.py",
line 357, in parse_vacuum_data
=C2=A0 =C2=A0 vacuum_fields =3D r= ender_template("vacuum_settings/= vacuum_fields.json")
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py",
line 127, in render_template
=C2=A0 =C2=A0= return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_= list),
= =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pa= ckages/jinja2/environment.py",
line 830, = in get_or_select_template
=C2=A0 =C2=A0 return self.get_template(template_name_or_list, parent, globals)

=C2=A0 File "/Users= /dpage/.virtualenvs/pgadmin4/lib/pyth= on2.7/site-packages/jinja2/environmen= t.py",
line 791, in get_template=C2=A0 =C2=A0 ret= urn self._load_template(name, self.make_globals(globals))
=C2=A0 File "/Users= /dpage/.virtualenvs/pgadmin4/lib/pyth= on2.7/site-packages/jinja2/environmen= t.py",
line 765, in _load_template=
=C2=A0 =C2=A0 t= emplate =3D self.loader.load(self, name, globals)
=C2=A0 File "/Users/dpage/.vi= rtualenvs/pgadmin4/lib/python2.7/site= -packages/jinja2/loaders.py",
line 113, i= n load
= =C2=A0 =C2=A0 source, filename, uptodate =3D self.get_source(environment, n= ame)
=C2= =A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa= ges/flask/templating.py",
line 64, in get_source
=C2=A0 =C2=A0 raise TemplateNotFound(te= mplate)
T= emplateNotFound: vacuum_settings/vacuum_fields.json

It seems this p= atch
wasn't applied = properly. Now this patch is sent with tables patch.

- When creating an M= V, an error is immediately shown telling me to
specify a name. We do not normally sh= ow such errors until the field
loses focus.
Now its fixed.

=C2=A0 =C2=A0= Not fixed. Issue is reproducible. =C2=A0


= - No default owner is shown in create mode.<= /span>
Fixed.

- "Please enter fun= ction definition." is shown as an error on the
definition field.
It triggers this error message as it is mandatory.

- The Definition field is missing a label. If relying on the tab titl= e
to be t= he label, the control should fill the tab (as with Security
options etc).
Fixed.

- No default tablespace is shown.<= /span>
Fixed

- If I enable custom aut= o-vacuum, there is no way to add a row to
specify options.
Yo= u can enable custom auto vacuum field and add new values in the auto vacuum= settings.

- If I specify a comment on an MV, I get &q= uot;ERROR: "mv_pg_tables" is not a view"
For some reason tablespace name was missing in generated sql.

=C2=A0 =C2=A0Not Fixed. W= rong sql generated "COMMENT ON VIEW ..." instead of = "COMMENT ON MATERIALIZED VIEW ..."
Fixed=C2=A0


- Save/Cancel buttons not working as expected (lik= e other objects)
In latest code pull, It=C2=A0seems to be=C2=A0fixed. not=C2=A0reproducible=C2= =A0at my end.


=C2=A0 =C2=A0Apart from above below are my review comments=C2= =A0

=C2=A0 =C2=A0Views:-=C2=A0
  • As per pgAdmin3 "indexes" node should not be listed under V= iews.
  • Done=C2=A0
    • SQL not generated when changing the va= lue of "Event" and "Do Instead" for Rule node under Vie= w node.
    Done=C2=A0
    =
    • Changing the "Event" in Rule node not w= orking.
    Done=C2=A0
    =
    • As per pgAdmin3 user can't be able to create = columns inside View node.=C2=A0
    Done=C2=A0
    • User can't be able to= delete/drop columns and system generated Rule's, Trigger's etc..
    =C2=A0
    Done=C2= =A0
    • Found one issue when changing value of &= quot;Security Barrier" from "Yes" to "No" it is no= t reflected on GUI when we open the dialog again while in backend value is updated, but on GUI it is showing "Yes"= .
    Done=C2=A0
    • Create -> Trigger menu is missing when any view node= is selected.=C2=A0
    Done= =C2=A0

    =C2=A0 =C2=A0Materialized V= iew:-
    • As per pg= Admin3 user can't be able to create columns inside Materialized View no= de.
    Done=C2= =A0

    • User can't be able to delete/drop columns and system = generated Rule's, Trigger's etc.
    I have checked in pgAdmin3 that delete/drop= option specific to rules has 2 cases:
    1. If rule is system rule,= user can't delete/drop it.
    2. If not system rule, it can dro= p dropped.
    Done=C2=A0
    • Create -> Trigger/Rule/Ind= ex menu is missing when any materialized view node is selected.
    Done=C2=A0
    =
    • In pgAdmin3 we have two more refresh options "Refresh data&qu= ot; and "Refresh data concurrently" which is missing.
    Done
      "Custom Auto Vaccum" for Table and Toast Table not = working.=C2=A0
    Done=C2= =A0



    Thanks,
    Surinder Kumar



    --
    Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
    To make changes to your subscription:
    http://www.postgresql.org/mailpref/pgadmin-hackers=




    --
    Akshay Joshi<= /span>
    Principal Software Engineer=C2=A0


    Phone: +91 20-3058-9517
    Mobil= e: +91 976-788-8246

    --001a114b08064f97de0532bd415f-- --001a114b08064f97e50532bd4161 Content-Type: application/octet-stream; name="view_and_mat_view_nodes_v1.patch" Content-Disposition: attachment; filename="view_and_mat_view_nodes_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_io61cptn0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ0MWM4OAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTM5OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBWaWV3IGFuZCBNYXRlcmlh bGl6ZWQgVmlldyBOb2RlIiIiCisKK2ltcG9ydCBzaW1wbGVqc29uIGFzIGpz b24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0ZSwgcmVxdWVz dCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRl eHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25f cmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9u c2UsIGludGVybmFsX3NlcnZlcl9lcnJvciwgXAorICAgIGJhZF9yZXF1ZXN0 Citmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5v ZGVWaWV3CitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMgYXMgZGF0YWJhc2VzCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudXRpbHMgaW1wb3J0IFwKKyAgICBTY2hlbWFDaGlsZE1vZHVsZSwgcGFy c2VfcnVsZV9kZWZpbml0aW9uLCBWYWN1dW1TZXR0aW5ncworZnJvbSBwZ2Fk bWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1aXJlZAor ZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgor ZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIGZ1 bmN0b29scyBpbXBvcnQgd3JhcHMKKworCisiIiIKKyAgICBUaGlzIG1vZHVs ZSBpcyByZXNwb25zaWJsZSBmb3IgZ2VuZXJhdGluZyB0d28gbm9kZXMKKyAg ICAxKSBWaWV3CisgICAgMikgTWF0ZXJpYWxpemVkIFZpZXcKKworICAgIFdl IGhhdmUgY3JlYXRlZCBzaW5nbGUgZmlsZSBiZWNhdXNlIHZpZXcgJiBtYXRl cmlhbCB2aWV3IGhhcyBzYW1lCisgICAgZnVuY3Rpb25hbGl0eS4gSXQgYWxs b3dzIHVzIHRvIHNoYXJlIHRoZSBzYW1lIHN1Ym1vZHVsZXMgZm9yIGJvdGgK KyAgICB2aWV3LCBhbmQgbWF0ZXJpYWwgdmlldyBtb2R1bGVzLgorCisgICAg VGhpcyBtb2R1bGVzIHVzZXMgc2VwYXJhdGUgdGVtcGxhdGUgcGF0aHMgZm9y IGVhY2ggcmVzcGVjdGl2ZSBub2RlCisgICAgLSB0ZW1wbGF0ZXMvdmlldyBm b3IgVmlldyBub2RlCisgICAgLSB0ZW1wbGF0ZXMvbWF0ZXJpYWxpemVkX3Zp ZXcgZm9yIE1hdGVyaWFsaXplZFZpZXcgbm9kZQorCisgICAgW0VhY2ggcGF0 aCBjb250YWlucyBub2RlIHNwZWNpZmljIGpzIGZpbGVzIGFzIHdlbGwgYXMg c3FsIHRlbXBsYXRlIGZpbGVzLl0KKyIiIgorCisKK2NsYXNzIFZpZXdNb2R1 bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFZp ZXdNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisgICAgICAgIEEgbW9k dWxlIGNsYXNzIGZvciBWaWV3IG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNo aWxkTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAg KiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBp cyB1c2VkIHRvIGluaXRpYWxpemUgdGhlIFZpZXcgYW5kIGl0J3MgYmFzZSBt b2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lk KQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJv d3NlciBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQor ICAgICAgLSBNZXRob2QgaXMgb3ZlcnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNs YXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBz Y3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIFZpZXcsIHdoZW4gYW55IG9mIHRoZSBzZXJ2ZXIgbm9kZSBpcworICAg ICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAgICBOT0RFX1RZUEUgPSAn dmlldycKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiVmlld3Mi KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6 CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0 aWFsaXplIHRoZSBWaWV3TW9kdWxlIGFuZCBpdCdzIGJhc2UgbW9kdWxlLgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAgICAg ICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoVmll d01vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3Zl ciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0 aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgICIiIgorICAgICAgICB5aWVs ZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQp CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0 IGZvciB2aWV3cywgd2hlbiBhbnkgZGF0YWJhc2Ugbm9kZSBpcworICAgICAg ICBpbml0aWFsaXplZCwgVGhlIHJlYXNvbiBpcyB2aWV3cyBhcmUgYWxzbyBs aXN0ZWQgdW5kZXIgY2F0YWxvZ3MKKyAgICAgICAgd2hpY2ggYXJlIGxvYWRl ZCB1bmRlciBkYXRhYmFzZSBub2RlLgorICAgICAgICAiIiIKKyAgICAgICAg cmV0dXJuIGRhdGFiYXNlcy5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcyB0 byBpbmNsdWRlIGluIHRoZSBwYWdlCisgICAgICAgICIiIgorICAgICAgICBz bmlwcGV0cyA9IFsKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgICAgICJicm93c2VyL2Nzcy9jb2xsZWN0aW9u LmNzcyIsCisgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZT1zZWxmLm5v ZGVfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAg ICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAidmlldy9jc3Mvdmlldy5j c3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2Rl X3R5cGUsCisgICAgICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAg ICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIm12aWV3L2Nzcy9tdmlldy5j c3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9J212aWV3JywK KyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgZm9yIHN1 Ym1vZHVsZSBpbiBzZWxmLnN1Ym1vZHVsZXM6CisgICAgICAgICAgICBzbmlw cGV0cy5leHRlbmQoc3VibW9kdWxlLmNzc3NuaXBwZXRzKQorCisgICAgICAg IHJldHVybiBzbmlwcGV0cworCisKK2NsYXNzIE1hdGVyaWFsaXplZFZpZXdN b2R1bGUoVmlld01vZHVsZSk6CisgICAgIiIiCisgICAgIGNsYXNzIE1hdGVy aWFsaXplZFZpZXdNb2R1bGUoVmlld01vZHVsZSkKKyAgICAgICAgQSBtb2R1 bGUgY2xhc3MgZm9yIHRoZSBtYXRlcmlhbGl6ZWQgdmlldyBhbmQgdmlldyBu b2RlIGRlcml2ZWQKKyAgICAgICAgZnJvbSBWaWV3TW9kdWxlLgorICAgICIi IgorCisgICAgTk9ERV9UWVBFID0gJ212aWV3JworICAgIENPTExFQ1RJT05f TEFCRUwgPSBnZXR0ZXh0KCJNYXRlcmlhbGl6ZWQgVmlld3MiKQorCisgICAg ZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg ICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBNYXRlcmlhbGl6ZWRWaWV3TW9kdWxlIGFuZAorICAgICAgICBpdCdzIGJh c2UgbW9kdWxlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJn czoKKyAgICAgICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAg ICAgc3VwZXIoTWF0ZXJpYWxpemVkVmlld01vZHVsZSwgc2VsZikuX19pbml0 X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLm1pbl92ZXIgPSA5 MDMwMAorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKK3ZpZXdfYmx1 ZXByaW50ID0gVmlld01vZHVsZShfX25hbWVfXykKK212aWV3X2JsdWVwcmlu dCA9IE1hdGVyaWFsaXplZFZpZXdNb2R1bGUoCisgICAgICAgIF9fbmFtZV9f KQorCisKK2RlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3 aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVm b3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIGlu c3RhbmNlIG9mIHRoZSBtZXRob2QuCisKKyAgICBBc3N1bXB0aW9uczoKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSB1c2VkIGFzIGRl Y29yYXRvciBvZiBhIGNsYXNzIG1ldGhvZC4KKyAgICAiIiIKKyAgICBAd3Jh cHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorCisgICAg ICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdp bGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQor ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICBrd2Fy Z3NbJ3NpZCddCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAg ICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0 byBicm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVk KAorICAgICAgICAgICAgICAgIGdldHRleHQoIkNvbm5lY3Rpb24gdG8gdGhl IHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCisgICAgICAgICAgICApCisgICAg ICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZv WworICAgICAgICAgICAgICAgIGt3YXJnc1snZGlkJ11dWydkYXRsYXN0c3lz b2lkJ10KKworICAgICAgICAjIFNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwg c2NyaXB0cworICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSBzZWxmLnRl bXBsYXRlX2luaXRpYWwgKyAnLycgKyAoCisgICAgICAgICAgICBzZWxmLnBw YXNfdGVtcGxhdGVfcGF0aChzZWxmLm1hbmFnZXIudmVyc2lvbikKKyAgICAg ICAgICAgIGlmIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAncHBhcycg ZWxzZQorICAgICAgICAgICAgc2VsZi5wZ190ZW1wbGF0ZV9wYXRoKHNlbGYu bWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgIHJl dHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisK KworY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0 aW5ncyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25zaWJs ZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIHZpZXcgbm9kZS4KKworICAg IE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKiprd2Fy Z3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhl IFZpZXdOb2RlIGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9kdWxl X2pzKCkKKyAgICAgIC0gUmVxdWVzdCBoYW5kbGVyIGZvciBtb2R1bGUuanMg cm91dGVzIGZvciB0aGUgdmlldyBub2RlIG1vZHVsZQorICAgICAgamF2YXNj cmlwdCwgd2hpY2ggcmV0dXJucyBqYXZzY3JpcHQgZm9yIHRoaXMgbW9kdWxl LgorCisgICAgKiBsaXN0KCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIGxpc3QgYWxsIHRoZSB2aWV3IG5vZGVzIHdpdGhpbiB0aGUKKyAg ICAgIGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQg bm9kZSB3aXRoaW4gdGhlCisgICAgICAgIGNvbGxlY3Rpb24sIEhlcmUgaXQg d2lsbCBjcmVhdGUgYWxsIHRoZSB2aWV3IG5vZGUuCisKKyAgICAqIHByb3Bl cnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVk IHZpZXcgbm9kZS4KKworICAgICogY3JlYXRlKGdpZCwgc2lkLCBkaWQsIHNj aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIG5l dyB2aWV3IG9iamVjdC4KKworICAgICogdXBkYXRlKGdpZCwgc2lkLCBkaWQs IHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhl IGRhdGEgZm9yIHRoZSBzZWxlY3RlZCB2aWV3IG5vZGUuCisKKyAgICAqIGRl bGV0ZShzZWxmLCBnaWQsIHNpZCwgc2NpZCk6CisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBkcm9wIHRoZSB2aWV3IG9iamVjdAorCisgICAgKiBtc3Fs KGdpZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byByZXR1cm4gbW9kaWZpZWQgU1FMIGZvciB0aGUgc2VsZWN0 ZWQgdmlldworICAgICAgICBub2RlLgorCisgICAgKiBnZXRfc3FsKGRhdGEs IHNjaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBz cWwgZnJvbSBtb2RlbCBkYXRhCisKKyAgICAqIHNxbChnaWQsIHNpZCwgZGlk LCBzY2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUgdmlldworICAg ICAgICBub2RlLgorCisgICAgKiBkZXBlbmRlbmN5KGdpZCwgc2lkLCBkaWQs IHNjaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUg ZGVwZW5kZW5jeSBsaXN0IHNob3cgaXQgaW4gZGVwZW5kZW5jeQorICAgICAg ICBwYW5lIGZvciB0aGUgc2VsZWN0ZWQgdmlldyBub2RlLgorCisgICAgKiBk ZXBlbmRlbnQoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBkZXBlbmRlbnQgbGlzdCB0byBzaG93 IGl0IGluIGRlcGVuZGVudAorICAgICAgICBwYW5lIGZvciB0aGUgc2VsZWN0 ZWQgdmlldyBub2RlLgorICAgICIiIgorICAgIG5vZGVfdHlwZSA9IHZpZXdf Ymx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAg ICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAg ICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9CisgICAgICAgICAg ICBdCisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICd2aWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9u cyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydn ZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6 ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9z dCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnY2hpbGRyZW4n OiBbeworICAgICAgICAgICAgJ2dldCc6ICdjaGlsZHJlbicKKyAgICAgICAg fV0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31d LAorICAgICAgICAncmVmcmVzaF9kYXRhJzogW3sncHV0JzogJ3JlZnJlc2hf ZGF0YSd9LCB7J3B1dCc6ICdyZWZyZXNoX2RhdGEnfV0sCisgICAgICAgICdu b2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21z cWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAg ICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAor ICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0s CisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1 bGVfanMnfV0sCisgICAgICAgICdjb25maWdzJzogW3snZ2V0JzogJ2NvbmZp Z3MnfV0sCisgICAgICAgICdnZXRfdGJsc3BjJzogW3snZ2V0JzogJ2dldF90 YmxzcGMnfSwgeydnZXQnOiAnZ2V0X3RibHNwYyd9XSwKKyAgICAgICAgJ2dl dF90YWJsZV92YWN1dW0nOiBbCisgICAgICAgICAgeydnZXQnOiAnZ2V0X3Rh YmxlX3ZhY3V1bSd9LAorICAgICAgICAgIHsnZ2V0JzogJ2dldF90YWJsZV92 YWN1dW0nfV0sCisgICAgICAgICdnZXRfdG9hc3RfdGFibGVfdmFjdXVtJzog WworICAgICAgICAgIHsnZ2V0JzogJ2dldF90b2FzdF90YWJsZV92YWN1dW0n fSwKKyAgICAgICAgICB7J2dldCc6ICdnZXRfdG9hc3RfdGFibGVfdmFjdXVt J31dCisgICAgfSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg Kiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgSW5pdGlhbGl6ZSB0 aGUgdmFyaWFibGVzIHVzZWQgYnkgbWV0aG9kcyBvZiBWaWV3Tm9kZS4KKyAg ICAgICAgIiIiCisKKyAgICAgICAgc3VwZXIoVmlld05vZGUsIHNlbGYpLl9f aW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBzZWxmLm1hbmFn ZXIgPSBOb25lCisgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAg c2VsZi50ZW1wbGF0ZV9wYXRoID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBs YXRlX2luaXRpYWwgPSAndmlldycKKworICAgIEBzdGF0aWNtZXRob2QKKyAg ICBkZWYgcHBhc190ZW1wbGF0ZV9wYXRoKHZlcik6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIHRoZSB0ZW1wbGF0ZSBwYXRoIGZvciBQUEFTIHNl cnZlcnMuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gJ3BwYXMvOS4z X3BsdXMnCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBnX3RlbXBs YXRlX3BhdGgodmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMg dGhlIHRlbXBsYXRlIHBhdGggZm9yIFBvc3RncmVTUUwgc2VydmVycy4KKyAg ICAgICAgIiIiCisgICAgICAgIGlmIHZlciA+PSA5MDQwMDoKKyAgICAgICAg ICAgIHJldHVybiAncGcvOS40X3BsdXMnCisgICAgICAgIGVsaWYgdmVyID49 IDkwMzAwOgorICAgICAgICAgICAgcmV0dXJuICdwZy85LjNfcGx1cycKKyAg ICAgICAgZWxpZiB2ZXIgPj0gOTAyMDA6CisgICAgICAgICAgICByZXR1cm4g J3BnLzkuMl9wbHVzJworICAgICAgICBlbGlmIHZlciA+PSA5MDEwMDoKKyAg ICAgICAgICAgIHJldHVybiAncGcvOS4xX3BsdXMnCisgICAgICAgIHJldHVy biAncGcvOS4xX3BsdXMnCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAg ICAgICIiIgorICAgICAgICBGZXRjaGVzIGFsbCB2aWV3cyBwcm9wZXJ0aWVz IGFuZCByZW5kZXIgaW50byBwcm9wZXJ0aWVzIHRhYgorICAgICAgICAiIiIK KyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAg ICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvcHJvcGVydGllcy5z cWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAg ICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg TGlzdHMgYWxsIHZpZXdzIHVuZGVyIHRoZSBWaWV3cyBDb2xsZWN0aW9uIG5v ZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lk PXNjaWQpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAg c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHNjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICByb3db J25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGljb249Imljb24t dmlldyIKKyAgICAgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9 cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAg ICAgICApCisKKyAgICBkZWYgcGFyc2Vfdmlld3NfcHJpdmlsZWdlcyhzZWxm LCBkYl9wcml2aWxlZ2VzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gZm9ybXMgYSBzZXBhcmF0ZSBsaXN0IG9mIGdyYW50YWJsZQor ICAgICAgICBhbmQgbm9uIGdyYW50YWJsZSBwcml2aWxlZ2VzLgorICAgICAg ICAiIiIKKyAgICAgICAgYWNsID0geydncmFudG9yJzogZGJfcHJpdmlsZWdl c1snZ3JhbnRvciddLAorICAgICAgICAgICAgICAgJ2dyYW50ZWUnOiBkYl9w cml2aWxlZ2VzWydncmFudGVlJ10sCisgICAgICAgICAgICAgICAncHJpdmls ZWdlcyc6IFtdCisgICAgICAgICAgICAgICB9CisKKyAgICAgICAgcHJpdmls ZWdlcyA9IFtdCisgICAgICAgIGZvciBpZHgsIHByaXYgaW4gZW51bWVyYXRl KGRiX3ByaXZpbGVnZXNbJ3ByaXZpbGVnZXMnXSk6CisgICAgICAgICAgICBp ZiBkYl9wcml2aWxlZ2VzWydncmFudGFibGUnXVtpZHhdOgorICAgICAgICAg ICAgICAgIHByaXZpbGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUiOiBw cml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJp dmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIndpdGhfZ3JhbnQiOiBUcnVlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgIHByaXZpbGVnZXMuYXBwZW5kKHsicHJpdmlsZWdlX3R5cGUi OiBwcml2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi cHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIndpdGhfZ3JhbnQiOiBGYWxzZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQorCisgICAgICAgIGFjbFsncHJpdmls ZWdlcyddID0gcHJpdmlsZWdlcworCisgICAgICAgIHJldHVybiBhY2wKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIK KyAgICAgICAgRmV0Y2hlcyB0aGUgcHJvcGVydGllcyBvZiBhbiBpbmRpdmlk dWFsIHZpZXcKKyAgICAgICAgYW5kIHJlbmRlciBpbiB0aGUgcHJvcGVydGll cyB0YWIKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdzcWwvcHJvcGVydGllcy5zcWwnXQorICAgICAgICAgICksIHZpZD12 aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lkKQorICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWNsLnNxbCddKSwgdmlkPXZpZCkK KyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNscmVzWydyb3dzJ106Cisg ICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92aWV3c19wcml2aWxlZ2Vz KHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSddIGluIHJlc1sn cm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJlc1sncm93cyddWzBdW3Jv d1snZGVmdHlwZSddXS5hcHBlbmQocHJpdikKKyAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bcm93WydkZWZ0eXBl J11dID0gW3ByaXZdCisKKyAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11b MF0KKworICAgICAgICAjIHNlbmRpbmcgcmVzdWx0IHRvIGZvcm10dGVyCisg ICAgICAgIGZybXRkX3Jlc2x0ID0gc2VsZi5mb3JtYXR0ZXIocmVzdWx0KQor CisgICAgICAgICMgbWVyZ2luZyBmb3JtYXRlZCByZXN1bHQgd2l0aCBtYWlu IHJlc3VsdCBhZ2FpbgorICAgICAgICByZXN1bHQudXBkYXRlKGZybXRkX3Jl c2x0KQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIHJlc3BvbnNlPXJlc3VsdCwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQHN0YXRpY21l dGhvZAorICAgIGRlZiBmb3JtYXR0ZXIocmVzdWx0KToKKyAgICAgICAgIiIi IFRoaXMgZnVuY3Rpb24gZm9ybWF0cyBvdXRwdXQgZm9yIHNlY3VyaXR5IGxh YmVsICYgdmFyaWFibGVzIiIiCisgICAgICAgIGZybXRkX3Jlc3VsdCA9IGRp Y3QoKQorICAgICAgICBzZWNfbGJscyA9IFtdCisgICAgICAgIGlmICdzZWNs YWJlbHMnIGluIHJlc3VsdCBhbmQgcmVzdWx0WydzZWNsYWJlbHMnXSBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgIGZvciBzZWMgaW4gcmVzdWx0WydzZWNs YWJlbHMnXToKKyAgICAgICAgICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAg ICAgICAgICBzZWMgPSByZS5zZWFyY2gocicoW149XSspPSguKiQpJywgc2Vj KQorICAgICAgICAgICAgICAgIHNlY19sYmxzLmFwcGVuZCh7CisgICAgICAg ICAgICAgICAgICAgICdwcm92aWRlcic6IHNlYy5ncm91cCgxKSwKKyAgICAg ICAgICAgICAgICAgICAgJ3NlY3VyaXR5X2xhYmVsJzogc2VjLmdyb3VwKDIp CisgICAgICAgICAgICAgICAgICAgIH0pCisKKyAgICAgICAgZnJtdGRfcmVz dWx0LnVwZGF0ZSh7InNlY2xhYmVscyI6IHNlY19sYmxzfSkKKyAgICAgICAg cmV0dXJuIGZybXRkX3Jlc3VsdAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3Jl YXRlIGEgbmV3IHZpZXcgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICBy ZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25hbWUnLAorICAgICAg ICAgICAgJ2RlZmluaXRpb24nCisgICAgICAgIF0KKworICAgICAgICBkYXRh ID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIFwKKyAgICAg ICAgICAgIGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAg ICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBp ZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVz PTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAg ICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAg ICAgICAgICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFt ZXRlciAoJXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgICkKKworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChn aWQsIHNpZCwgZGF0YSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAg ICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC92aWV3 X2lkLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCB2 aWV3X2lkID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAg ICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9 c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgdmlld19pZCwKKyAgICAgICAgICAgICAgICAgIHNjaWQs CisgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLXZpZXciCisgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgYSB2aWV3IG9iamVjdAorICAgICAgICAiIiIKKyAgICAgICAgZGF0 YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBcCisgICAg ICAgICAgICBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAg ICAgICAgU1FMID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRhdGEsIHZpZCkK KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC92aWV3X2lkLnNxbCddKSwgZGF0 YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCB2aWV3X2lkID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIHJldHVybiBq c29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQu Z2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgdmll d19pZCwKKyAgICAgICAgICAgICAgICAgIHNjaWQsCisgICAgICAgICAgICAg ICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICBpY29uPSJp Y29uLXZpZXciCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIGEgdmlldyBvYmpl Y3QKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBCZWxvdyB3aWxsIGRlY2lk ZSBpZiBpdCdzIHNpbXBsZSBkcm9wIG9yIGRyb3Agd2l0aCBjYXNjYWRlIGNh bGwKKyAgICAgICAgY2FzY2FkZSA9IFRydWUgaWYgc2VsZi5jbWQgPT0gJ2Rl bGV0ZScgZWxzZSBGYWxzZQorCisgICAgICAgIHRyeToKKworICAgICAgICAg ICAgIyBHZXQgbmFtZSBmb3IgdmlldyBmcm9tIGRpZAorICAgICAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAg ICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2RlbGV0ZS5zcWwnXSksIHZp ZD12aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJlc19kYXRhID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzX2RhdGEpCisKKyAgICAgICAgICAgICMgZHJv cCB2aWV3CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdz cWwvZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICBuc3BuYW1lPXJl c19kYXRhWydyb3dzJ11bMF1bJ25zcG5hbWUnXSwKKyAgICAgICAgICAgICAg ICBuYW1lPXJlc19kYXRhWydyb3dzJ11bMF1bJ25hbWUnXSwgY2FzY2FkZT1j YXNjYWRlCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAg ICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgi VmlldyBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAgICAgICAgICAg ICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBfZ2V0X3Nj aGVtYShzZWxmLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy bnMgU2NoZW1hIE5hbWUgZnJvbSBpdHMgT0lELgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgIiIiCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3NxbC9nZXRfc2NoZW1hLnNxbCddKSwgc2NpZD1zY2lkKQorCisgICAgICAg IHN0YXR1cywgc2NoZW1hX25hbWUgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXNjaGVt YV9uYW1lKQorCisgICAgICAgIHJldHVybiBzY2hlbWFfbmFtZQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHZpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBtb2RpZmllZCBTUUwKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBp biByZXF1ZXN0LmFyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgIHRyeToKKyAg ICAgICAgICAgICAgICBkYXRhW2tdID0ganNvbi5sb2Fkcyh2KQorICAgICAg ICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgZGF0 YVtrXSA9IHYKKworICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNp ZCwgZGF0YSwgdmlkKQorICAgICAgICBpZihTUUwpOgorICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT1TUUwsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1nZXR0ZXh0KCItLSBOb3RoaW5nIGNoYW5nZWQiKSwK KyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICAgICApCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNl X3ByaXZpbGVnZXMoc3RyX3ByaXZpbGVnZXMsIG9iamVjdF90eXBlPSdWSUVX Jyk6CisgICAgICAgICIiIlBhcnNlIFByaXZpbGVnZXMuIiIiCisgICAgICAg IGRiX3ByaXZpbGVnZXMgPSB7CisgICAgICAgICAgICAnYSc6ICdJTlNFUlQn LAorICAgICAgICAgICAgJ3InOiAnU0VMRUNUJywKKyAgICAgICAgICAgICd3 JzogJ1VQREFURScsCisgICAgICAgICAgICAnZCc6ICdERUxFVEUnLAorICAg ICAgICAgICAgJ0QnOiAnVFJVTkNBVEUnLAorICAgICAgICAgICAgJ3gnOiAn UkVGRVJFTkNFUycsCisgICAgICAgICAgICAndCc6ICdUUklHR0VSJworICAg ICAgICAgICAgfQorICAgICAgICBwcml2aWxlZ2VzID0gW10KKyAgICAgICAg Zm9yIHByaXYgaW4gc3RyX3ByaXZpbGVnZXM6CisgICAgICAgICAgICBwcml2 X3dpdGhfZ3JhbnQgPSBbXQorICAgICAgICAgICAgcHJpdl93aXRob3V0X2dy YW50ID0gW10KKyAgICAgICAgICAgIGZvciBwcml2aWxlZ2UgaW4gcHJpdlsn cHJpdmlsZWdlcyddOgorICAgICAgICAgICAgICAgIGlmIHByaXZpbGVnZVsn d2l0aF9ncmFudCddOgorICAgICAgICAgICAgICAgICAgICBwcml2X3dpdGhf Z3JhbnQuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgIGRiX3ByaXZp bGVnZXNbcHJpdmlsZWdlWydwcml2aWxlZ2VfdHlwZSddXSkKKyAgICAgICAg ICAgICAgICBlbGlmIHByaXZpbGVnZVsncHJpdmlsZWdlJ106CisgICAgICAg ICAgICAgICAgICAgIHByaXZfd2l0aG91dF9ncmFudC5hcHBlbmQoCisgICAg ICAgICAgICAgICAgICAgICAgZGJfcHJpdmlsZWdlc1twcml2aWxlZ2VbJ3By aXZpbGVnZV90eXBlJ11dKQorCisgICAgICAgICAgICAgICAgIyBJZiB3ZSBo YXZlIGFsbCBhY2wgdGhlbiBqdXN0IHJldHVybiBhbGwKKyAgICAgICAgICAg ICAgICBpZiBsZW4ocHJpdl93aXRoX2dyYW50KSA9PSBsZW4oZGJfcHJpdmls ZWdlcyk6CisgICAgICAgICAgICAgICAgICAgIHByaXZfd2l0aF9ncmFudCA9 IFsnQUxMJ10KKyAgICAgICAgICAgICAgICBpZiBsZW4ocHJpdl93aXRob3V0 X2dyYW50KSA9PSBsZW4oZGJfcHJpdmlsZWdlcyk6CisgICAgICAgICAgICAg ICAgICAgIHByaXZfd2l0aG91dF9ncmFudCA9IFsnQUxMJ10KKworICAgICAg ICAgICAgIyBTZXJ2ZXIgTGV2ZWwgdmFsaWRhdGlvbgorICAgICAgICAgICAg aWYgJ2dyYW50ZWUnIGluIHByaXY6CisgICAgICAgICAgICAgICAgcHJpdmls ZWdlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICdncmFudGVlJzogcHJpdlsnZ3JhbnRlZSddIGlmICdncmFu dGVlJyBpbiBwcml2IGVsc2UgJycsCisgICAgICAgICAgICAgICAgICAgICd3 aXRoX2dyYW50JzogcHJpdl93aXRoX2dyYW50LAorICAgICAgICAgICAgICAg ICAgICAnd2l0aG91dF9ncmFudCc6IHByaXZfd2l0aG91dF9ncmFudAorICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAg IHJldHVybiBwcml2aWxlZ2VzCisKKyAgICBkZWYgZ2V0U1FMKHNlbGYsIGdp ZCwgc2lkLCBkYXRhLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwg ZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg aWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgICAg W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgICAgICAg ICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAgICAg IG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAg IGlmICduYW1lJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAg ZGF0YVsnbmFtZSddID0gcmVzWydyb3dzJ11bMF1bJ25hbWUnXQorICAgICAg ICAgICAgICAgIGlmICdzY2hlbWEnIG5vdCBpbiBkYXRhOgorICAgICAgICAg ICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHJlc1sncm93cyddWzBdWydz Y2hlbWEnXQorCisgICAgICAgICAgICAgICAga2V5ID0gJ2RhdGFjbCcKKyAg ICAgICAgICAgICAgICBpZiBrZXkgaW4gZGF0YSBhbmQgZGF0YVtrZXldIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBpZiAnYWRkZWQnIGlu IGRhdGFba2V5XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5 XVsnYWRkZWQnXSA9IHNlbGYucGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydhZGRlZCddKQorICAgICAg ICAgICAgICAgICAgICBpZiAnY2hhbmdlZCcgaW4gZGF0YVtrZXldOgorICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydjaGFuZ2VkJ10gPSBz ZWxmLnBhcnNlX3ByaXZpbGVnZXMoCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFba2V5XVsnY2hhbmdlZCddKQorICAgICAgICAgICAgICAgICAg ICBpZiAnZGVsZXRlZCcgaW4gZGF0YVtrZXldOgorICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVtrZXldWydkZWxldGVkJ10gPSBzZWxmLnBhcnNlX3By aXZpbGVnZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5 XVsnZGVsZXRlZCddKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAor ICAgICAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdz cWwvdXBkYXRlLnNxbCddKSwgZGF0YT1kYXRhLAorICAgICAgICAgICAgICAg ICAgICAgICAgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29ubikKKyAg ICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgICAgICAgICAn bmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzY2hlbWEnLAorICAgICAg ICAgICAgICAgICAgICAnZGVmaW5pdGlvbicKKyAgICAgICAgICAgICAgICBd CisgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgor ICAgICAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIiAtLSBkZWZpbml0aW9uIGlu Y29tcGxldGUiCisKKyAgICAgICAgICAgICAgICAjIEdldCBTY2hlbWEgTmFt ZSBmcm9tIGl0cyBPSUQuCisgICAgICAgICAgICAgICAgaWYgJ3NjaGVtYScg aW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10g PSBzZWxmLl9nZXRfc2NoZW1hKGRhdGFbJ3NjaGVtYSddKQorCisgICAgICAg ICAgICAgICAgaWYgJ2RhdGFjbCcgaW4gZGF0YSBhbmQgZGF0YVsnZGF0YWNs J10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2Rh dGFjbCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKGRhdGFbJ2RhdGFjbCdd KQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbigKKyAgICAgICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdzcWwvY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAg ICAgIGlmIGRhdGFbJ2RlZmluaXRpb24nXToKKyAgICAgICAgICAgICAgICAg ICAgU1FMICs9ICJcbiIKKyAgICAgICAgICAgICAgICAgICAgU1FMICs9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAgICAg ICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2dyYW50LnNxbCddKSwgZGF0 YT1kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFNRTAorCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVm IGdldF9pbmRleF9jb2x1bW5fZGV0YWlscyhzZWxmLCBpZHgsIGRhdGEpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsIHdpbGwgZmV0 Y2ggbGlzdCBvZiBjb2x1bW4gZGV0YWlscyBmb3IgaW5kZXgKKworICAgICAg ICBBcmdzOgorICAgICAgICAgICAgaWR4OiBJbmRleCBPSUQKKyAgICAgICAg ICAgIGRhdGE6IFByb3BlcnRpZXMgZGF0YQorCisgICAgICAgIFJldHVybnM6 CisgICAgICAgICAgICBVcGRhdGVkIHByb3BlcnRpZXMgZGF0YSB3aXRoIGNv bHVtbiBkZXRhaWxzCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuaW5k ZXhfdGVtcF9wYXRoID0gJ2luZGV4JworICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuaW5kZXhfdGVtcF9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NxbC85LjFfcGx1cy9jb2x1 bW5fZGV0YWlscy5zcWwnXSksIGlkeD1pZHgpCisgICAgICAgIHN0YXR1cywg cnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgICMgJ2F0 dGRlZicgY29tZXMgd2l0aCBxdW90ZXMgZnJvbSBxdWVyeSBzbyB3ZSBuZWVk IHRvIHN0cmlwIHRoZW0KKyAgICAgICAgIyAnb3B0aW9ucycgd2UgbmVlZCB0 cnVlL2ZhbHNlIHRvIHJlbmRlciBzd2l0Y2ggQVNDKGZhbHNlKS9ERVNDKHRy dWUpCisgICAgICAgIGNvbHVtbnMgPSBbXQorICAgICAgICBjb2xzID0gW10K KyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisKKyAgICAgICAg ICAgICMgV2UgbmVlZCBhbGwgZGF0YSBhcyBjb2xsZWN0aW9uIGZvciBDb2x1 bW5zTW9kZWwKKyAgICAgICAgICAgIGNvbHNfZGF0YSA9IHsKKyAgICAgICAg ICAgICAgICAnY29sbmFtZSc6IHJvd1snYXR0ZGVmJ10uc3RyaXAoJyInKSwK KyAgICAgICAgICAgICAgICAnY29sbHNwY25hbWUnOiByb3dbJ2NvbGxuc3Bu YW1lJ10sCisgICAgICAgICAgICAgICAgJ29wX2NsYXNzJzogcm93WydvcGNu YW1lJ10sCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiByb3dbJ29w dGlvbnMnXVswXSA9PSAnREVTQyc6CisgICAgICAgICAgICAgICAgY29sc19k YXRhWydzb3J0X29yZGVyJ10gPSBUcnVlCisgICAgICAgICAgICBjb2x1bW5z LmFwcGVuZChjb2xzX2RhdGEpCisKKyAgICAgICAgICAgICMgV2UgbmVlZCBz YW1lIGRhdGEgYXMgc3RyaW5nIHRvIGRpc3BsYXkgaW4gcHJvcGVydGllcyB3 aW5kb3cKKyAgICAgICAgICAgICMgSWYgbXVsdGlwbGUgY29sdW1uIHRoZW4g c2VwYXJhdGUgaXQgYnkgY29sb24KKyAgICAgICAgICAgIGNvbHNfc3RyID0g cm93WydhdHRkZWYnXQorICAgICAgICAgICAgaWYgcm93Wydjb2xsbnNwbmFt ZSddOgorICAgICAgICAgICAgICAgIGNvbHNfc3RyICs9ICcgQ09MTEFURSAn ICsgcm93Wydjb2xsbnNwbmFtZSddCisgICAgICAgICAgICBpZiByb3dbJ29w Y25hbWUnXToKKyAgICAgICAgICAgICAgICBjb2xzX3N0ciArPSAnICcgKyBy b3dbJ29wY25hbWUnXQorICAgICAgICAgICAgaWYgcm93WydvcHRpb25zJ11b MF0gPT0gJ0RFU0MnOgorICAgICAgICAgICAgICAgIGNvbHNfc3RyICs9ICcg REVTQycKKyAgICAgICAgICAgIGNvbHMuYXBwZW5kKGNvbHNfc3RyKQorCisg ICAgICAgICMgUHVzaCBhcyBjb2xsZWN0aW9uCisgICAgICAgIGRhdGFbJ2Nv bHVtbnMnXSA9IGNvbHVtbnMKKyAgICAgICAgIyBQdXNoIGFzIHN0cmluZwor ICAgICAgICBkYXRhWydjb2xzJ10gPSAnLCAnLmpvaW4oY29scykKKworICAg ICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIGdldF90cmlnZ2VyX2NvbHVt bl9kZXRhaWxzKHNlbGYsIHRpZCwgY2xpc3QpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGxpc3Qgb2YgY29sdW1u IGZvciB0cmlnZ2VyCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHRp ZDogVGFibGUgT0lECisgICAgICAgICAgICBjbGlzdDogTGlzdCBvZiBjb2x1 bW5zCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFVwZGF0ZWQg cHJvcGVydGllcyBkYXRhIHdpdGggY29sdW1uCisgICAgICAgICIiIgorCisg ICAgICAgIHNlbGYudHJpZ2dlcl90ZW1wX3BhdGggPSAnc2NoZW1hL3RyaWdn ZXInCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50cmlnZ2VyX3RlbXBfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnZ2V0X2NvbHVtbnMuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPXRpZCwgY2xpc3Q9Y2xp c3QpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRl XzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y c2V0KQorICAgICAgICAjICd0Z2F0dHInIGNvbnRhaW5zIGxpc3Qgb2YgY29s dW1ucyBmcm9tIHRhYmxlIHVzZWQgaW4gdHJpZ2dlcgorICAgICAgICBjb2x1 bW5zID0gW10KKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToK KyAgICAgICAgICAgIGNvbHVtbnMuYXBwZW5kKHsnY29sdW1uJzogcm93Wydu YW1lJ119KQorCisgICAgICAgIHJldHVybiBjb2x1bW5zCisKKyAgICBkZWYg Z2V0X3J1bGVfc3FsKHNlbGYsIHZpZCk6CisgICAgICAgICIiIgorICAgICAg ICBHZXQgYWxsIG5vbiBzeXN0ZW0gcnVsZXMgb2YgdmlldyBub2RlLAorICAg ICAgICBnZW5lcmF0ZSB0aGVpciBzcWwgYW5kIHJlbmRlcgorICAgICAgICBp bnRvIHNxbCB0YWIKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5ydWxl X3RlbXBfcGF0aCA9ICdydWxlcycKKyAgICAgICAgU1FMX2RhdGEgPSAnJwor ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgW3NlbGYucnVsZV90ZW1wX3BhdGgsICdzcWwvcHJvcGVydGllcy5z cWwnXSksIHRpZD12aWQpCisKKyAgICAgICAgc3RhdHVzLCBkYXRhID0gc2Vs Zi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPWRhdGEpCisKKyAgICAgICAgZm9yIHJ1bGUgaW4gZGF0YVsn cm93cyddOgorCisgICAgICAgICAgICAjIEdlbmVyYXRlIFNRTCBvbmx5IGZv ciBub24gc3lzdGVtIHJ1bGUKKyAgICAgICAgICAgIGlmIHJ1bGVbJ25hbWUn XSAhPSAnX1JFVFVSTic6CisgICAgICAgICAgICAgICAgcmVzID0gW10KKyAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgICAgICBbc2VsZi5ydWxlX3RlbXBfcGF0aCwgJ3Nx bC9wcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgcmlk PXJ1bGVbJ29pZCddCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICAgICAgICAgIHJlcyA9IHBhcnNlX3J1bGVfZGVmaW5p dGlvbihyZXMpCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAgW3NlbGYucnVsZV90 ZW1wX3BhdGgsICdzcWwvY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgZGF0YT1yZXMsIGRpc3BsYXlfY29tbWVudHM9VHJ1ZSkKKyAgICAg ICAgICAgICAgICBTUUxfZGF0YSArPSAnXG4nCisgICAgICAgICAgICAgICAg U1FMX2RhdGEgKz0gU1FMCisgICAgICAgIHJldHVybiBTUUxfZGF0YQorCisg ICAgZGVmIGdldF90cmlnZ2VyX3NxbChzZWxmLCB2aWQpOgorICAgICAgICAi IiIKKyAgICAgICAgR2V0IGFsbCB0cmlnZ2VyIG5vZGVzIGFzc29jaWF0ZWQg d2l0aCB2aWV3IG5vZGUsCisgICAgICAgIGdlbmVyYXRlIHRoZWlyIHNxbCBh bmQgcmVuZGVyCisgICAgICAgIGludG8gc3FsIHRhYgorICAgICAgICAiIiIK KworICAgICAgICAjIERlZmluZSB0ZW1wbGF0ZSBwYXRoCisgICAgICAgIHNl bGYudHJpZ2dlcl90ZW1wX3BhdGggPSAndHJpZ2dlcicKKworICAgICAgICBT UUxfZGF0YSA9ICcnCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRyaWdnZXJfdGVtcF9wYXRo LCAnc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgdGlkPXZpZCkKKworICAgICAgICBzdGF0dXMsIGRhdGEgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9ZGF0YSkKKworICAgICAgICBmb3IgdHJpZ2dlciBpbiBkYXRhWydy b3dzJ106CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLnRyaWdnZXJfdGVtcF9wYXRo LCAnc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgIHRpZD10cmlnZ2VyWydvaWQnXSwKKyAgICAgICAgICAgICAgICB0 Z3JlbGlkPXZpZAorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKwor ICAgICAgICAgICAgcmVzX3Jvd3MgPSBkaWN0KHJlc1sncm93cyddWzBdKQor ICAgICAgICAgICAgaWYgcmVzX3Jvd3NbJ3RnbmFyZ3MnXSA+IDE6CisgICAg ICAgICAgICAgICAgIyBXZSBrbm93IHRoYXQgdHJpZ2dlciBoYXMgbW9yZSB0 aGFuIDEKKyAgICAgICAgICAgICAgICAjIGFyZ3VtZW50cywgbGV0J3Mgam9p biB0aGVtCisgICAgICAgICAgICAgICAgcmVzX3Jvd3NbJ3RnYXJncyddID0g JywgJy5qb2luKAorICAgICAgICAgICAgICAgICAgICByZXNfcm93c1sndGdh cmdzJ10pCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNfcm93c1sndGdhdHRy J10pID4gMToKKyAgICAgICAgICAgICAgICBjb2x1bW5zID0gJywgJy5qb2lu KHJlc19yb3dzWyd0Z2F0dHInXS5zcGxpdCgnICcpKQorICAgICAgICAgICAg ICAgIHJlc19yb3dzWydjb2x1bW5zJ10gPSBzZWxmLmdldF90cmlnZ2VyX2Nv bHVtbl9kZXRhaWxzKAorICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyWydv aWQnXSwgY29sdW1ucykKKyAgICAgICAgICAgIHJlc19yb3dzID0gdHJpZ2dl cl9kZWZpbml0aW9uKHJlc19yb3dzKQorCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxm LnRyaWdnZXJfdGVtcF9wYXRoLCAnc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwn XSksCisgICAgICAgICAgICAgICAgZGF0YT1yZXNfcm93cywgZGlzcGxheV9j b21tZW50cz1UcnVlKQorICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJwor ICAgICAgICAgICAgU1FMX2RhdGEgKz0gU1FMCisKKyAgICAgICAgcmV0dXJu IFNRTF9kYXRhCisKKyAgICBkZWYgZ2V0X2luZGV4X3NxbChzZWxmLCB2aWQp OgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IGFsbCBpbmRleCBhc3NvY2lh dGVkIHdpdGggdmlldyBub2RlLAorICAgICAgICBnZW5lcmF0ZSB0aGVpciBz cWwgYW5kIHJlbmRlcgorICAgICAgICBpbnRvIHNxbCB0YWIKKyAgICAgICAg IiIiCisKKyAgICAgICAgc2VsZi5pbmRleF90ZW1wX3BhdGggPSAnaW5kZXgn CisgICAgICAgIFNRTF9kYXRhID0gJycKKyAgICAgICAgU1FMID0gcmVuZGVy X3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLmluZGV4X3Rl bXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCddKSwgdGlk PXZpZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWRh dGEpCisKKyAgICAgICAgZm9yIGluZGV4IGluIGRhdGFbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJlcyA9IFtdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxmLmluZGV4 X3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICBpZHg9aW5kZXhbJ29pZCddLAorICAgICAgICAg ICAgICAgIHRpZD12aWQKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor CisgICAgICAgICAgICBkYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKyAg ICAgICAgICAgICMgQWRkaW5nIHBhcmVudCBpbnRvIGRhdGEgZGljdCwgd2ls bCBiZSB1c2luZyBpdCB3aGlsZSBjcmVhdGluZyBzcWwKKyAgICAgICAgICAg IGRhdGFbJ3NjaGVtYSddID0gZGF0YVsnbnNwbmFtZSddCisgICAgICAgICAg ICBkYXRhWyd0YWJsZSddID0gZGF0YVsndGFibmFtZSddCisKKyAgICAgICAg ICAgICMgQWRkIGNvbHVtbiBkZXRhaWxzIGZvciBjdXJyZW50IGluZGV4Cisg ICAgICAgICAgICBkYXRhID0gc2VsZi5nZXRfaW5kZXhfY29sdW1uX2RldGFp bHMoaW5kZXhbJ29pZCddLCBkYXRhKQorCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICAgIFtzZWxm LmluZGV4X3RlbXBfcGF0aCwgJ3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsJ10p LAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgZGlzcGxheV9jb21tZW50 cz1UcnVlKQorICAgICAgICAgICAgU1FMX2RhdGEgKz0gJ1xuJworICAgICAg ICAgICAgU1FMX2RhdGEgKz0gU1FMCisgICAgICAgIHJldHVybiBTUUxfZGF0 YQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdmlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gcmVu ZGVyIGludG8gdGhlIHNxbCBwYW5lbAorICAgICAgICAiIiIKKworICAgICAg ICBTUUxfZGF0YSA9ICcnCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn c3FsL3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgIHZpZD12aWQsCisg ICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmRhdGxhc3RzeXNvaWQKKyAg ICAgICAgKQorCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICByZXN1bHQgPSByZXNbJ3Jvd3MnXVswXQorCisg ICAgICAgICMgRmV0Y2ggYWxsIHByaXZpbGVnZXMgZm9yIHZpZXcKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAg IFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWNsLnNxbCddKSwgdmlkPXZp ZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNscmVzWydyb3dzJ106 CisgICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92aWV3c19wcml2aWxl Z2VzKHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSddIGluIHJl c1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJlc1sncm93cyddWzBd WydkYXRhY2wnXS5hcHBlbmQocHJpdikKKyAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ2RhdGFjbCddID0gW3By aXZdCisKKyAgICAgICAgcmVzdWx0LnVwZGF0ZShyZXNbJ3Jvd3MnXVswXSkK KyAgICAgICAgaWYgJ2RhdGFjbCcgaW4gcmVzdWx0OgorICAgICAgICAgICAg cmVzdWx0WydkYXRhY2wnXSA9IHNlbGYucGFyc2VfcHJpdmlsZWdlcyhyZXN1 bHRbJ2RhdGFjbCddKQorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICBbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnc3FsL2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgZGF0 YT1yZXN1bHQsCisgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sCisg ICAgICAgICAgICAgICAgZGlzcGxheV9jb21tZW50cz1UcnVlCisgICAgICAg ICAgICAgICkKKyAgICAgICAgU1FMICs9ICJcbiIKKyAgICAgICAgU1FMICs9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICBbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnc3FsL2dyYW50LnNxbCddKSwgZGF0YT1yZXN1bHQp CisKKyAgICAgICAgU1FMX2RhdGEgKz0gU1FMCisgICAgICAgIFNRTF9kYXRh ICs9IHNlbGYuZ2V0X3J1bGVfc3FsKHZpZCkKKyAgICAgICAgU1FMX2RhdGEg Kz0gc2VsZi5nZXRfdHJpZ2dlcl9zcWwodmlkKQorICAgICAgICBTUUxfZGF0 YSArPSBzZWxmLmdldF9pbmRleF9zcWwodmlkKQorCisgICAgICAgIHJldHVy biBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTF9kYXRhKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdGJsc3BjKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB0byByZXR1cm4gbGlzdCBvZiB0YWJsZXNwYWNlcworICAg ICAgICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvZ2V0X3Ri bHNwYy5zcWwnXSkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAg ICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeydsYWJlbCc6IHJvd1snc3BjbmFtZSddLCAndmFsdWUnOiByb3dbJ3Nw Y25hbWUnXX0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgICAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQsIHZpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMg YW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHZpZXcgbm9kZS4K KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3Jv dXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAg ICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICB2aWQ6IFZpZXcgSUQK KyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2Vs Zi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBl bmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHZpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhl IGRlcGVuZGVuY2llcyBhbmQgcmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgdmlldyBub2RlLgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQK KyAgICAgICAgICAgIHZpZDogVmlldyBJRAorICAgICAgICAiIiIKKyAgICAg ICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2ll cyhzZWxmLmNvbm4sIHZpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0 LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorCisK K2NsYXNzIE1hdGVyaWFsaXplZFZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1T ZXR0aW5ncyk6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyBpcyByZXNwb25z aWJsZSBmb3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yCisgICAgbWF0ZXJpYWxp emVkIHZpZXcgbm9kZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQor ICAgICogX19pbml0X18oKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1 c2VkIHRvIGluaXRpYWxpemUgdGhlIE1hdGVyaWFsaXplZFZpZXcKKyAgICAg IGFuZCBpdCdzIGJhc2Ugdmlldy4KKworICAgICogbW9kdWxlX2pzKCkKKyAg ICAgIC0gVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBqYXZhc2NyaXB0KSBl eGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBw cm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMKKworICAgICogY3JlYXRlKGdp ZCwgc2lkLCBkaWQsIHNjaWQpCisgICAgICAtIFJhaXNlIGFuIGVycm9yIC0g d2UgY2FuIG5vdCBjcmVhdGUgYSBtYXRlcmlhbCB2aWV3LgorCisgICAgKiB1 cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIG1h dGVyaWFsIG5vZGUKKworICAgICogZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBz Y2lkKToKKyAgICAgIC0gUmFpc2UgYW4gZXJyb3IgLSB3ZSBjYW4gbm90IGRl bGV0ZSBhIG1hdGVyaWFsIHZpZXcuCisKKyAgICAqIGdldF9zcWwoZGF0YSwg c2NpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNx bCBmcm9tIG1vZGVsIGRhdGEKKworICAgICIiIgorCisgICAgbm9kZV90eXBl ID0gbXZpZXdfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgZGVmIF9faW5p dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAg ICAgICBJbml0aWFsaXplIHRoZSB2YXJpYWJsZXMgdXNlZCBieSBtZXRob2Rz IG9mIFZpZXdOb2RlLgorICAgICAgICAiIiIKKworICAgICAgICBzdXBlcihN YXRlcmlhbGl6ZWRWaWV3Tm9kZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoq a3dhcmdzKQorCisgICAgICAgIHNlbGYudGVtcGxhdGVfaW5pdGlhbCA9ICdt dmlldycKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgcGdfdGVtcGxh dGVfcGF0aCh2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0 aGUgdGVtcGxhdGUgcGF0aCBmb3IgUG9zdGdyZVNRTCBzZXJ2ZXJzLgorICAg ICAgICAiIiIKKyAgICAgICAgaWYgdmVyID49IDkwMzAwOgorICAgICAgICAg ICAgcmV0dXJuICdwZy85LjNfcGx1cycKKyAgICAgICAgcmV0dXJuICdwZy85 LjNfcGx1cycKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGdpZCwgc2lkLCBk YXRhLCBzY2lkLCB2aWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0 YQorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2NpZCBpcyBOb25lOgorICAg ICAgICAgICAgcmV0dXJuIGJhZF9yZXF1ZXN0KCdDYW5ub3QgY3JlYXRlIGEg VmlldyEnKQorCisgICAgICAgIHJldHVybiBzdXBlcihNYXRlcmlhbGl6ZWRW aWV3Tm9kZSwgc2VsZikuZ2V0X3NxbCgKKyAgICAgICAgICAgICAgICBnaWQs IHNpZCwgZGF0YSwgc2NpZCwgdmlkKQorCisgICAgZGVmIGdldFNRTChzZWxm LCBnaWQsIHNpZCwgZGF0YSwgdmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbnJhdGUgc3FsIGZyb20gbW9k ZWwgZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgaWYgdmlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgICAg ICAgW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9wcm9wZXJ0aWVzLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgIHZpZD12aWQsCisgICAgICAgICAgICAg ICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICAgICAg ICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAg ICAgIGlmICduYW1lJyBub3QgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgZGF0YVsnbmFtZSddID0gcmVzWydyb3dzJ11bMF1bJ25hbWUnXQorICAg ICAgICAgICAgICAgIGlmICdzY2hlbWEnIG5vdCBpbiBkYXRhOgorICAgICAg ICAgICAgICAgICAgICBkYXRhWydzY2hlbWEnXSA9IHJlc1sncm93cyddWzBd WydzY2hlbWEnXQorCisgICAgICAgICAgICAgICAgIyBtZXJnZSB2YWN1dW0g bGlzdHMgaW50byBvbmUKKyAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1f ZGF0YSddID0ge30KKyAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0 YSddWydjaGFuZ2VkJ10gPSBbXQorICAgICAgICAgICAgICAgIGRhdGFbJ3Zh Y3V1bV9kYXRhJ11bJ3Jlc2V0J10gPSBbXQorICAgICAgICAgICAgICAgIGlm ICgndmFjdXVtX3RhYmxlJyBpbiBkYXRhKToKKyAgICAgICAgICAgICAgICAg ICAgaWYgKCdjaGFuZ2VkJyBpbiBkYXRhWyd2YWN1dW1fdGFibGUnXSk6Cisg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhWyd2YWN1 dW1fdGFibGUnXVsnY2hhbmdlZCddOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmICd2YWx1ZScgaW4gaXRlbS5rZXlzKCk6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bJ3ZhbHVlJ10gaXMgTm9u ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFb J3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J10uYXBwZW5kKGl0ZW0pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0YSddWydj aGFuZ2VkJ10uYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgnYXV0b3ZhY3V1bV9lbmFibGVkJyBpbiBkYXRhIGFuZAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRhdGFbJ2F1dG92YWN1dW1f ZW5hYmxlZCddKS5sb3dlcigpID09ICd0cnVlJyk6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCdd LmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydu YW1lJzogJ2F1dG92YWN1dW1fZW5hYmxlZCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAndmFsdWUnOiBkYXRhWydhdXRvdmFjdXVtX2Vu YWJsZWQnXX0pCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIChvbGRf ZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gPT0gJ3RydWUnKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0YSddWydj aGFuZ2VkJ10uYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7J25hbWUnOiAnYXV0b3ZhY3V1bV9lbmFibGVkJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6ICd0cnVlJ30pCisg ICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXSA9 IHt9CisKKyAgICAgICAgICAgICAgICBrZXkgPSAnZGF0YWNsJworICAgICAg ICAgICAgICAgIGlmIGtleSBpbiBkYXRhIGFuZCBkYXRhW2tleV0gaXMgbm90 IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmICdhZGRlZCcgaW4gZGF0 YVtrZXldOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydh ZGRlZCddID0gc2VsZi5wYXJzZV9wcml2aWxlZ2VzKAorICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhW2tleV1bJ2FkZGVkJ10pCisgICAgICAgICAg ICAgICAgICAgIGlmICdjaGFuZ2VkJyBpbiBkYXRhW2tleV06CisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV1bJ2NoYW5nZWQnXSA9IHNlbGYu cGFyc2VfcHJpdmlsZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YVtrZXldWydjaGFuZ2VkJ10pCisgICAgICAgICAgICAgICAgICAgIGlm ICdkZWxldGVkJyBpbiBkYXRhW2tleV06CisgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW2tleV1bJ2RlbGV0ZWQnXSA9IHNlbGYucGFyc2VfcHJpdmls ZWdlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldWydk ZWxldGVkJ10pCisKKyAgICAgICAgICAgICAgICBpZiAobGVuKGRhdGFbJ3Zh Y3V1bV9kYXRhJ11bJ2NoYW5nZWQnXSkgPT0gMCBhbmQKKyAgICAgICAgICAg ICAgICAgICBsZW4oZGF0YVsndmFjdXVtX2RhdGEnXVsncmVzZXQnXSkgPT0g MCk6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3NldHRpbmdzJ10gPSBk aWN0KCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKCdhdXRvdmFjdXVtX2N1 c3RvbScgaW4gZGF0YSBhbmQgZGF0YVsnYXV0b3ZhY3V1bV9jdXN0b20nXSBp cyBUcnVlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAoZGF0YVsnYXV0 b3ZhY3V1bV9jdXN0b20nXSAhPSBvbGRfZGF0YVsnYXV0b3ZhY3V1bV9jdXN0 b20nXSkgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICgnYXV0b3ZhY3V1 bV9lbmFibGVkJyBpbiBkYXRhIGFuZCBkYXRhWydhdXRvdmFjdXVtX2VuYWJs ZWQnXSBpcyBUcnVlKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRh WydzZXR0aW5ncyddWydhdXRvdmFjdXVtX2VuYWJsZWQnXSA9IGRhdGFbJ2F1 dG92YWN1dW1fY3VzdG9tJ10KKyAgICAgICAgICAgICAgICAgICAgZWxpZiAo J2F1dG92YWN1dW1fZW5hYmxlZCcgaW4gZGF0YSBhbmQgb2xkX2RhdGFbJ2F1 dG92YWN1dW1fZW5hYmxlZCddIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVk J10pLmxvd2VyKCkgIT0gb2xkX2RhdGFbJ2F1dG92YWN1dW1fZW5hYmxlZCdd Lmxvd2VyKCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnc2V0 dGluZ3MnXVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gPSBkYXRhWydhdXRvdmFj dXVtX2VuYWJsZWQnXQorCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o CisgICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0aCwg J3NxbC91cGRhdGUuc3FsJ10pLCBkYXRhPWRhdGEsCisgICAgICAgICAgICAg ICAgICAgICAgICBvX2RhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5jb25uKQor ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisgICAgICAgICAgICAgICAgICAg ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3NjaGVtYScsCisgICAg ICAgICAgICAgICAgICAgICdkZWZpbml0aW9uJworICAgICAgICAgICAgICAg IF0KKyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6 CisgICAgICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiIC0tIGRlZmluaXRpb24g aW5jb21wbGV0ZSIKKworICAgICAgICAgICAgICAgICMgR2V0IFNjaGVtYSBO YW1lIGZyb20gaXRzIE9JRC4KKyAgICAgICAgICAgICAgICBpZiAnc2NoZW1h JyBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEn XSA9IHNlbGYuX2dldF9zY2hlbWEoZGF0YVsnc2NoZW1hJ10pCisKKyAgICAg ICAgICAgICAgICAjIG1lcmdlIHZhY3V1bSBsaXN0cyBpbnRvIG9uZQorICAg ICAgICAgICAgICAgIHZhY3V1bV90YWJsZSA9IFtpdGVtIGZvciBpdGVtIGlu IGRhdGFbJ3ZhY3V1bV90YWJsZSddCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICd2YWx1ZScgaW4gaXRlbS5rZXlzKCkgYW5kIGl0ZW1b J3ZhbHVlJ10gaXMgbm90IE5vbmVdCisgICAgICAgICAgICAgICAgdmFjdXVt X3RvYXN0ID0gWworICAgICAgICAgICAgICAgICAgICB7J25hbWUnOiAndG9h c3QuJytpdGVtWyduYW1lJ10sICd2YWx1ZSc6aXRlbVsndmFsdWUnXX0KKyAg ICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGF0YVsndmFjdXVtX3Rv YXN0J10gaWYgJ3ZhbHVlJyBpbiBpdGVtLmtleXMoKSBhbmQgaXRlbVsndmFs dWUnXSBpcyBub3QgTm9uZV0KKworICAgICAgICAgICAgICAgICMgYWRkIHZh Y3V1bV90b2FzdCBkaWN0IHRvIHZhY3V1bV9kYXRhIG9ubHkgaWYKKyAgICAg ICAgICAgICAgICAjIHRvYXN0J3MgYXV0b3ZhY3V1bSBpcyBlbmFibGVkCisg ICAgICAgICAgICAgICAgaWYgKCd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQn IGluIGRhdGEgYW5kCisgICAgICAgICAgICAgICAgICAgZGF0YVsndG9hc3Rf YXV0b3ZhY3V1bV9lbmFibGVkJ10gaXMgVHJ1ZSk6CisgICAgICAgICAgICAg ICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ10gPSB2YWN1dW1fdGFibGUgKyB2 YWN1dW1fdG9hc3QKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICAgICBkYXRhWyd2YWN1dW1fZGF0YSddID0gdmFjdXVtX3RhYmxl CisKKyAgICAgICAgICAgICAgICBpZiAnZGF0YWNsJyBpbiBkYXRhIGFuZCBk YXRhWydkYXRhY2wnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAg ICAgZGF0YVsnZGF0YWNsJ10gPSBzZWxmLnBhcnNlX3ByaXZpbGVnZXMoZGF0 YVsnZGF0YWNsJ10pCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKAorICAgICAgICAgICAgICAgICAgW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3NxbC9jcmVhdGUuc3FsJ10pLCBkYXRhPWRhdGEpCisg ICAgICAgICAgICAgICAgaWYgZGF0YVsnZGVmaW5pdGlvbiddOgorICAgICAg ICAgICAgICAgICAgICBTUUwgKz0gIlxuIgorICAgICAgICAgICAgICAgICAg ICBTUUwgKz0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAgICAg ICAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvZ3JhbnQu c3FsJ10pLCBkYXRhPWRhdGEpCisgICAgICAgICAgICByZXR1cm4gU1FMCisK KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkp CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byByZW5k ZXIgaW50byB0aGUgc3FsIHBhbmVsCisgICAgICAgICIiIgorCisgICAgICAg IFNRTF9kYXRhID0gJycKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdz cWwvcHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgdmlkPXZpZCwKKyAg ICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYuZGF0bGFzdHN5c29pZAorICAg ICAgICApCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQorCisgICAgICAgIHJlc3VsdCA9IHJlc1sncm93cyddWzBdCisKKyAg ICAgICAgIyBzZW5kaW5nIHJlc3VsdCB0byBmb3JtdHRlcgorICAgICAgICBm cm10ZF9yZXNsdCA9IHNlbGYuZm9ybWF0dGVyKHJlc3VsdCkKKworICAgICAg ICAjIG1lcmdpbmcgZm9ybWF0ZWQgcmVzdWx0IHdpdGggbWFpbiByZXN1bHQg YWdhaW4KKyAgICAgICAgcmVzdWx0LnVwZGF0ZShmcm10ZF9yZXNsdCkKKyAg ICAgICAgcmVzdWx0Wyd2YWN1dW1fdGFibGUnXSA9IHNlbGYucGFyc2VfdmFj dXVtX2RhdGEoCisgICAgICAgICAgICBzZWxmLmNvbm4sIHJlc3VsdCwgJ3Rh YmxlJykKKyAgICAgICAgcmVzdWx0Wyd2YWN1dW1fdG9hc3QnXSA9IHNlbGYu cGFyc2VfdmFjdXVtX2RhdGEoCisgICAgICAgICAgICBzZWxmLmNvbm4sIHJl c3VsdCwgJ3RvYXN0JykKKworICAgICAgICAjIG1lcmdlIHZhY3V1bSBsaXN0 cyBpbnRvIG9uZQorICAgICAgICB2YWN1dW1fdGFibGUgPSBbaXRlbSBmb3Ig aXRlbSBpbiByZXN1bHRbJ3ZhY3V1bV90YWJsZSddCisgICAgICAgICAgICAg ICAgICAgICAgICBpZiAndmFsdWUnIGluIGl0ZW0ua2V5cygpIGFuZCBpdGVt Wyd2YWx1ZSddIGlzIG5vdCBOb25lXQorICAgICAgICB2YWN1dW1fdG9hc3Qg PSBbCisgICAgICAgICAgICB7J25hbWUnOiAndG9hc3QuJytpdGVtWyduYW1l J10sICd2YWx1ZSc6aXRlbVsndmFsdWUnXX0KKyAgICAgICAgICAgIGZvciBp dGVtIGluIHJlc3VsdFsndmFjdXVtX3RvYXN0J10gaWYgJ3ZhbHVlJyBpbiBp dGVtLmtleXMoKSBhbmQgaXRlbVsndmFsdWUnXSBpcyBub3QgTm9uZV0KKwor ICAgICAgICAjIGFkZCB2YWN1dW1fdG9hc3QgZGljdCB0byB2YWN1dW1fZGF0 YSBvbmx5IGlmCisgICAgICAgICMgdG9hc3QncyBhdXRvdmFjdXVtIGlzIGVu YWJsZWQKKyAgICAgICAgaWYgKCd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQn IGluIHJlc3VsdCBhbmQKKyAgICAgICAgICAgcmVzdWx0Wyd0b2FzdF9hdXRv dmFjdXVtX2VuYWJsZWQnXSBpcyBUcnVlKToKKyAgICAgICAgICAgIHJlc3Vs dFsndmFjdXVtX2RhdGEnXSA9IHZhY3V1bV90YWJsZSArIHZhY3V1bV90b2Fz dAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0Wyd2YWN1dW1f ZGF0YSddID0gdmFjdXVtX3RhYmxlCisKKyAgICAgICAgIyBGZXRjaCBhbGwg cHJpdmlsZWdlcyBmb3IgdmlldworICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC9hY2wuc3FsJ10pLCB2aWQ9dmlkKQorICAgICAgICBzdGF0dXMs IGRhdGFjbHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZm9y IHJvdyBpbiBkYXRhY2xyZXNbJ3Jvd3MnXToKKyAgICAgICAgICAgIHByaXYg PSBzZWxmLnBhcnNlX3ZpZXdzX3ByaXZpbGVnZXMocm93KQorICAgICAgICAg ICAgaWYgcm93WydkZWZ0eXBlJ10gaW4gcmVzWydyb3dzJ11bMF06CisgICAg ICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ2RhdGFjbCddLmFwcGVuZChw cml2KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXNb J3Jvd3MnXVswXVsnZGF0YWNsJ10gPSBbcHJpdl0KKworICAgICAgICByZXN1 bHQudXBkYXRlKHJlc1sncm93cyddWzBdKQorICAgICAgICBpZiAnZGF0YWNs JyBpbiByZXN1bHQ6CisgICAgICAgICAgICByZXN1bHRbJ2RhdGFjbCddID0g c2VsZi5wYXJzZV9wcml2aWxlZ2VzKHJlc3VsdFsnZGF0YWNsJ10pCisKKyAg ICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAgICAg ICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvY3JlYXRlLnNx bCddKSwKKyAgICAgICAgICAgICAgICBkYXRhPXJlc3VsdCwKKyAgICAgICAg ICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAgICBkaXNw bGF5X2NvbW1lbnRzPVRydWUKKyAgICAgICAgICAgICAgKQorICAgICAgICBT UUwgKz0gIlxuIgorICAgICAgICBTUUwgKz0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKAorICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwv Z3JhbnQuc3FsJ10pLCBkYXRhPXJlc3VsdCkKKworICAgICAgICBTUUxfZGF0 YSArPSBTUUwKKyAgICAgICAgU1FMX2RhdGEgKz0gc2VsZi5nZXRfcnVsZV9z cWwodmlkKQorICAgICAgICBTUUxfZGF0YSArPSBzZWxmLmdldF90cmlnZ2Vy X3NxbCh2aWQpCisgICAgICAgIFNRTF9kYXRhICs9IHNlbGYuZ2V0X2luZGV4 X3NxbCh2aWQpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVz cG9uc2U9U1FMX2RhdGEpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGdldF90YWJsZV92YWN1dW0oc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBGZXRjaCB0aGUgZGVmYXVs dCB2YWx1ZXMgZm9yIGF1dG92YWN1dW0KKyAgICAgICAgZmllbGRzLCByZXR1 cm4gYW4gYXJyYXkgb2YKKyAgICAgICAgICAtIGxhYmVsCisgICAgICAgICAg LSBuYW1lCisgICAgICAgICAgLSBzZXR0aW5nCisgICAgICAgIHZhbHVlcwor ICAgICAgICAiIiIKKworICAgICAgICByZXMgPSBzZWxmLmdldF92YWN1dW1f dGFibGVfc2V0dGluZ3Moc2VsZi5jb25uKQorICAgICAgICByZXR1cm4gYWph eF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jv d3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBn ZXRfdG9hc3RfdGFibGVfdmFjdXVtKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRmV0Y2ggdGhlIGRlZmF1bHQg dmFsdWVzIGZvciBhdXRvdmFjdXVtCisgICAgICAgIGZpZWxkcywgcmV0dXJu IGFuIGFycmF5IG9mCisgICAgICAgICAgLSBsYWJlbAorICAgICAgICAgIC0g bmFtZQorICAgICAgICAgIC0gc2V0dGluZworICAgICAgICB2YWx1ZXMKKyAg ICAgICAgIiIiCisgICAgICAgIHJlcyA9IHNlbGYuZ2V0X3ZhY3V1bV90b2Fz dF9zZXR0aW5ncyhzZWxmLmNvbm4pCisKKyAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dz J10sCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg ICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJv cGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2aWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgRmV0Y2hlcyB0aGUgcHJvcGVydGllcyBvZiBh biBpbmRpdmlkdWFsIHZpZXcKKyAgICAgICAgYW5kIHJlbmRlciBpbiB0aGUg cHJvcGVydGllcyB0YWIKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgIFtzZWxmLnRl bXBsYXRlX3BhdGgsICdzcWwvcHJvcGVydGllcy5zcWwnXQorICAgICAgICAg ICksIHZpZD12aWQsIGRhdGxhc3RzeXNvaWQ9c2VsZi5kYXRsYXN0c3lzb2lk KQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKAorICAg ICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWNsLnNxbCddKSwg dmlkPXZpZCkKKyAgICAgICAgc3RhdHVzLCBkYXRhY2xyZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgIGZvciByb3cgaW4gZGF0YWNscmVzWydy b3dzJ106CisgICAgICAgICAgICBwcml2ID0gc2VsZi5wYXJzZV92aWV3c19w cml2aWxlZ2VzKHJvdykKKyAgICAgICAgICAgIGlmIHJvd1snZGVmdHlwZSdd IGluIHJlc1sncm93cyddWzBdOgorICAgICAgICAgICAgICAgIHJlc1sncm93 cyddWzBdW3Jvd1snZGVmdHlwZSddXS5hcHBlbmQocHJpdikKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bcm93 WydkZWZ0eXBlJ11dID0gW3ByaXZdCisKKyAgICAgICAgcmVzdWx0ID0gcmVz Wydyb3dzJ11bMF0KKworICAgICAgICAjIHNlbmRpbmcgcmVzdWx0IHRvIGZv cm10dGVyCisgICAgICAgIGZybXRkX3Jlc2x0ID0gc2VsZi5mb3JtYXR0ZXIo cmVzdWx0KQorCisgICAgICAgICMgbWVyZ2luZyBmb3JtYXRlZCByZXN1bHQg d2l0aCBtYWluIHJlc3VsdCBhZ2FpbgorICAgICAgICByZXN1bHQudXBkYXRl KGZybXRkX3Jlc2x0KQorCisgICAgICAgIHJlc3VsdFsndmFjdXVtX3RhYmxl J10gPSBzZWxmLnBhcnNlX3ZhY3V1bV9kYXRhKAorICAgICAgICAgICAgc2Vs Zi5jb25uLCByZXN1bHQsICd0YWJsZScpCisgICAgICAgIHJlc3VsdFsndmFj dXVtX3RvYXN0J10gPSBzZWxmLnBhcnNlX3ZhY3V1bV9kYXRhKAorICAgICAg ICAgICAgc2VsZi5jb25uLCByZXN1bHQsICd0b2FzdCcpCisKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9cmVzdWx0LAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIHJlZnJlc2hfZGF0YShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB2 aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHJlZnJlc2ggdmlldyBvYmplY3QKKyAgICAgICAgIiIiCisKKyAgICAgICAg IyBCZWxvdyB3aWxsIGRlY2lkZSBpZiBpdCdzIHJlZnJlc2ggZGF0YSBvciBy ZWZyZXNoIGNvbmN1cnJlbnRseQorICAgICAgICBkYXRhID0gcmVxdWVzdC5m b3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMocmVxdWVzdC5k YXRhLmRlY29kZSgpKQorICAgICAgICBpc19jb25jdXJyZW50ID0ganNvbi5s b2FkcyhkYXRhWydjb25jdXJyZW50J10pCisKKyAgICAgICAgdHJ5OgorCisg ICAgICAgICAgICAjIEZldGNoIHZpZXcgbmFtZSBieSB2aWV3IGlkCisgICAg ICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAg ICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvZ2V0X3ZpZXdf bmFtZS5zcWwnXSksIHZpZD12aWQpCisgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg IyBSZWZyZXNoIHZpZXcKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbigKKyAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVf cGF0aCwgJ3NxbC9yZWZyZXNoLnNxbCddKSwKKyAgICAgICAgICAgICAgbmFt ZT1yZXNbJ3Jvd3MnXVswXVsnbmFtZSddLAorICAgICAgICAgICAgICBuc3Bu YW1lPXJlc1sncm93cyddWzBdWydzY2hlbWEnXSwgaXNfY29uY3VycmVudD1p c19jb25jdXJyZW50KQorICAgICAgICAgICAgc3RhdHVzLCByZXNfZGF0YSA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc19kYXRhKQorCisgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIlZp ZXcgcmVmcmVzaGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICdpZCc6IHZpZCwKKyAgICAgICAgICAgICAgICAg ICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworVmlld05vZGUucmVnaXN0 ZXJfbm9kZV92aWV3KHZpZXdfYmx1ZXByaW50KQorTWF0ZXJpYWxpemVkVmll d05vZGUucmVnaXN0ZXJfbm9kZV92aWV3KG12aWV3X2JsdWVwcmludCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL2NoaWxkcmVuL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvY2hpbGRyZW4vX19pbml0 X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk5 M2ZmMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L2NoaWxkcmVuL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTIgQEAKKyIiIgor V2Ugd2lsbCB1c2UgdGhlIGV4aXNpdGluZyBtb2R1bGVzIGZvciBjcmVhdGlu ZyBjaGlsZHJlbiBtb2R1bGUgdW5kZXIKK21hdGVyaWFsaXplIHZpZXdzLgor IiIiCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLmNvbHVtbiBcCisgIGltcG9y dCBibHVlcHJpbnQgYXMgY29sdW1uc19tb2R1bGUKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50YWJsZXMuaW5kZXhlcyBcCisgIGltcG9ydCBibHVlcHJpbnQgYXMgaW5k ZXhlc19tb2R1bGVzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRyaWdnZXJz IFwKKyAgaW1wb3J0IGJsdWVwcmludCBhcyB0cmlnZ2Vyc19tb2R1bGVzCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGFibGVzLnJ1bGVzIFwKKyAgaW1wb3J0IGJsdWVw cmludCBhcyBydWxlc19tb2R1bGVzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy9zdGF0aWMvaW1nL2NvbGwtbXZpZXcucG5nIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy9jb2xsLW12aWV3LnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi40MGU2NWE5NmUxODAwNDEwNGIwNDFiMGFl MzI1NzliMjZhZTk3MDU4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzQK emNtVi0rMGczKkpQKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8xXkBz NkFNXmlWMDAwMDlhN2JCbTAwMFhVCnowMDBYVTBSV251N3l0a1BDYG0qP1I1 OzZ9bGZPI0NQIXh5MStlVjZsKXk7eSpBUDczUmhAalFRcjRCeFlMcHpCZQp6 O15IJDE7dFFsTjtOJjY+UEEoPmhMQU9FJDJiPFlONUBWQ3g+ITFWXm5pfFBu RXtBKTUtfSFlQmxzcDIhOEp3dnsKel94eFlOJlphOThmTkFNIXIrRWxiNEs8 dkZwZ31kN3FheTFGUlpCIWxlRGFSTm80RHJyXl5VI3VwM3JfJVp5cnR5CnpN VzBgb0I4K19pd0NyUU1JVCRQTStENkxPaWEzcGZZazg1alM1QkRwVDJ5Mm11 WEBreiVmVSMkVCk9Um1oZDFwSQp6Tns+KV94aDNUU2xvRXYrc3Vna0Nuel9R WF51KnE2XmI8UTVVX1ZgRUtNcm02ZWdCejN3JVoqOU4tMmE4bjNrU2AKelho bGNad1QpQzZCTFNfQWVJZ2tVJU1UKnk2VVAzfTFUSSl3VUw9ZnRBe2hXfmBE SSR3azYxSH5NY0hsVTN1ays4ClV2fS09KCY7UzRjMDcqcW9NNk48JGY8IUBA cCNUNT8KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC12aWV3LnBuZyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvY29sbC12aWV3LnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzhkNTMzNjg0YjhiZDdlMTg1 NzQ5YzRmMWM5NjIwYWYyM2QxMTRiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCA0MTgKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdi S31ZPUJSUUUwOHw+eE9kS1JuUnpEXjl7cmoyCnpffWxWRkBBZkA7YkB9UEBk KFdSZ2VmSTN4cW89cDdLVlB9IVYpVWNgLVQoZ21kLSVWNWAlQVV8fE5uMSlw Pz5HaAp6bihaJnRQSmEkTns9eGdmenFVSm4+VGRvakpecz1BQE95YFNaX0lZ UigoQUhXezAzK05WQFolLUZvVk9oOCkrYTsKemxERTV5UTF6WjFBZShgK3ok M0M0TlBCPj4rc1NNQEFTMig/I1c2KFVhJWd7flA9Zi1HdisyN1A5Vj5RSnw0 O1U2CnpiZSFHS0gra1BTTU5oJTBZRDt3VlBwISZwJD1IMlFhPjRfaUMtV3Ng NG9WdWBrWHZESWU1bF9lVnxqd1c7KzUrUwp6WWd5Nn5QWWR5Ky1jUzQ1KX5r MlohJFdBQVVjdCtva15rckMrTWxWcytwcGZ5Y2BARmBuQzw+bC1WTXE/dDVy KX0KekJUNztkT0ghP3BpJkI5VWdPUCF1cHt7fEV1OTEwJnBeMjVEcklvM3Z3 dDw8SWZrRlBoa2V3KFJhYFJJJSg8KlVtClVrYkNAdzZ7dnkxKTc4JnFvbGA7 KzBMUU1XNWRaKUgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvbXZpZXcucG5n IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy9tdmlldy5wbmcK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I3MmJkYmIwMjRkMjA2YTljY2Nj YzMwN2I5ODBhZjdkYzljZWE4OApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwg MzQ0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYxfDtQX3w0IyVg b0NPfHsjUzlHRyFYVjdaRmwmd2swfE8oTQp6cjtCNVYjcCZiKGlIcmpyJHZI YkV7e0JDQHoxYnp4WG9fWnYhOEZ+cGxtc0FYPGxPaEdacHkqNFRlPSFRUEZG Ym0KelU7WXR+UHJad3ojUSEyPWdNWkgodmozZF8oZm07T2FBdz0/Xj0xYztL NEFPdmAreGdHYF9KS1J2RXNLcyt8cFpuCno7Xj5EKng2T1QrQ3BkMDhuIUlN I15MWjFGM00zeSk3MmNIOykzKWhCQHcoPCRFTnR1SSErMzdYJjNZS3BlNylp Twp6bzdFQl9FPjA1OVdUclFFUzk7eFhkaWREJSFLMTBrSlJxUHMmMGt7RGY5 SCV2dT8oTSF4dE5zPyZ2fFViKTYqaiQKemJ5cSt2JHl4ZzUlP2pRRSF9Q2Mk S0VHIV9lODJ2X3F9fF98NjkqMSM9eUhzOFpmeWpEaHJpI0sxQzg8RHAjRjRv CmxmQSM8UV5fVHBNZzUpWklmdDRLfEU0S1VwQ1NYdThjKUkkenRhRDBlMHN4 UylsbS05KgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2ltZy92aWV3LnBuZyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9pbWcvdmlldy5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uNDQxMTZkYjU2NDk2YmI0NzdjOGVjZTdkM2Zk ZGE2NjZlMWIzNzU4YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDM3Cnpj bWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYkt9WEBGME5F MDh8PnhPZEtSbmFCVG9BTzQ+Nwp6O09uOVhaK0FVQGRHWUQ8YF9HPzBlZkkz eDxFT1c3SllSRntNZUBRXm52ZWM+Wi0xJXd8TnNCKEZWdF47cDdQfHkKempv VTliVD18aTY7Y01kUSZ0Yjx0ZFNDZ1RiS3pVIUBzSGx5VSNMQyYtK2xhcF9r KHxKY21DQWZ7OGY3T05BfV9PCno0KlRBaT9SdXM2UmRyUCYmfD0xdEFpclAr aGk1bV5LJTY5UmNOZjcmVFd4bSVJaCtMXms7T3BUMUJ+NUhYND9UNwp6UylN TUFBcmhDOTZBbSErXztAZz05NXswMyg1WWtSNHhUKUVeejdsJj5fUUxSSDNT bHhJNT9hYm9md3EjUHBHaG4KejN5M2B3YXVwTzFvPDZ9dmFLZlolNkJ2VXdC YHtofVh4UHpXNlQ+aWpwK1I8eykmPCNSM3N4LUEoTmtRIVhjYiNuCno8MERI cXBZek5OSnpMbXx8NSR5eDBKSyVMIzVKTk1DOXgjY0QhQ3tYTkhHezA3I2lw cjh0RURzaDhQKUduSFhEewp6bX0ob0NTe1dHM2QjQVN3TU1HfFdOQGlMbU0x ejRQU09aWUNpSXNzRk04bTErcD0qRXw3KDhBNVQtR0B5R3l3bngKQ205KCh7 CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvY3NzL212aWV3LmNzcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9jc3MvbXZp ZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNk ODY1OGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvY3NzL212aWV3LmNzcwpAQCAtMCwwICsxLDEz IEBACisuaWNvbi1tdmlld3sKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7 eyB1cmxfZm9yKCdOT0RFLW12aWV3LnN0YXRpYycsIGZpbGVuYW1lPSdpbWcv bXZpZXcucG5nJykgfX0nKSAhaW1wb3J0YW50OworICBib3JkZXItcmFkaXVz OiAxMHB4OworICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBh bGlnbi1jb250ZW50OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBtaWRk bGU7CisgIGhlaWdodDogMS4zZW07Cit9CisKKy5zcWxfZmllbGRfaGVpZ2h0 XzI4MCB7CisgIGhlaWdodDogMjgwcHg7CisgIHdpZHRoOiAxMDAlOworfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212 aWV3L2pzL212aWV3LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL212aWV3L2pzL212aWV3LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjcwNjU0MDAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvanMvbXZpZXcuanMK QEAgLTAsMCArMSwzMTUgQEAKK2RlZmluZSgKKyAgWydqcXVlcnknLCAndW5k ZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ2Fs ZXJ0aWZ5JywKKyAgICAncGdhZG1pbi5icm93c2VyJywgJ2NvZGVtaXJyb3In LCAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKKworZnVu Y3Rpb24oJCwgXywgUywgcGdBZG1pbiwgYWxlcnRpZnksIHBnQnJvd3Nlciwg Q29kZU1pcnJvcikgeworCisgIC8qKgorICAgIENyZWF0ZSBhbmQgYWRkIGEg dmlldyBjb2xsZWN0aW9uIGludG8gbm9kZXMKKyAgICBAcGFyYW0ge3Zhcmlh YmxlfSBsYWJlbCAtIExhYmVsIGZvciBOb2RlCisgICAgQHBhcmFtIHt2YXJp YWJsZX0gdHlwZSAtIFR5cGUgb2YgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFi bGV9IGNvbHVtbnMgLSBMaXN0IG9mIGNvbHVtbnMgdG8KKyAgICAgIGRpc3Bs YXkgdW5kZXIgdW5kZXIgcHJvcGVydGllcy4KKyAgICovCisgIGlmICghcGdC cm93c2VyLk5vZGVzWydjb2xsLW12aWV3J10pIHsKKyAgICB2YXIgbXZpZXdz PSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtbXZpZXcnXSA9CisgICAg ICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAg ICBub2RlOiAnbXZpZXcnLAorICAgICAgICBsYWJlbDogJ3t7IF8oIk1hdGVy aWFsaXplZCBWaWV3cyIpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtbXZp ZXcnLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnb3duZXInXQorICAg ICAgfSk7CisgIH0KKworICAvKioKKyAgICBDcmVhdGUgYW5kIEFkZCBhIFZp ZXcgTm9kZSBpbnRvIG5vZGVzCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gcGFy ZW50X3R5cGUgLSBUaGUgbGlzdCBvZiBub2RlcworICAgIHVuZGVyIHdoaWNo IHRoaXMgbm9kZSB0byBkaXNwbGF5CisgICAgQHBhcmFtIHt2YXJpYWJsZX0g dHlwZSAtIFR5cGUgb2YgTm9kZQorICAgIEBwYXJhbSB7dmFyaWFibGV9IGhh c1NRTCAtIFRvIHNob3cgU1FMIHRhYgorICAgIEBwYXJhbSB7dmFyaWFibGV9 IGNhbkRyb3AgLSBBZGRzIGRyb3AgdmlldyBvcHRpb24KKyAgICBpbiB0aGUg Y29udGV4dCBtZW51CisgICAgQHBhcmFtIHt2YXJpYWJsZX0gY2FuRHJvcENh c2NhZGUgLSBBZGRzIGRyb3AgQ2FzY2FkZQorICAgIHZpZXcgb3B0aW9uIGlu IHRoZSBjb250ZXh0IG1lbnUKKyAgICovCisgIGlmICghcGdCcm93c2VyLk5v ZGVzWydtdmlldyddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydt dmlldyddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAg IHBhcmVudF90eXBlOiBbJ3NjaGVtYScsICdjYXRhbG9nJ10sCisgICAgICB0 eXBlOiAnbXZpZXcnLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVy bWF0ZXJpYWxpemVkdmlldy5odG1sJywKKyAgICAgIHNxbENyZWF0ZUhlbHA6 ICdzcWwtY3JlYXRlbWF0ZXJpYWxpemVkdmlldy5odG1sJywKKyAgICAgIGxh YmVsOiAne3sgXygiTWF0ZXJpYWxpemVkIFZpZXciKSB9fScsCisgICAgICBo YXNTUUw6ICB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAg IGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtbXZpZXcnLAorICAgICAgY2FuRHJv cDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisg ICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEn XS5jYW5DaGlsZERyb3AsCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsKKwor ICAgICAgICAvLyBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2YgbWVu dXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAgICAg cmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwor CisgICAgICAgIC8qKgorICAgICAgICAgIEFkZCAiY3JlYXRlIHZpZXciIG1l bnUgb3B0aW9uIGludG8gY29udGV4dCBhbmQgb2JqZWN0IG1lbnUKKyAgICAg ICAgICBmb3IgdGhlIGZvbGxvd2luZyBub2RlczoKKyAgICAgICAgICBjb2xs LW12aWV3LCB2aWV3IGFuZCBzY2hlbWEuCisgICAgICAgICAgQHByb3BlcnR5 IHtkYXRhfSAtIEFsbG93IGNyZWF0ZSB2aWV3IG9wdGlvbiBvbiBzY2hlbWEg bm9kZSBvcgorICAgICAgICAgIHN5c3RlbSB2aWV3IG5vZGVzLgorICAgICAg ICAgKi8KKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAg ICAgIG5hbWU6ICdjcmVhdGVfbXZpZXdfb25fY29sbCcsIG5vZGU6ICdjb2xs LW12aWV3JywKKyAgICAgICAgICBtb2R1bGU6IHRoaXMsIGFwcGxpZXM6IFsn b2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9w ZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9y aXR5OiAxLCBsYWJlbDogJ3t7IF8oIk1hdGVyaWFsaXplZCBWaWV3Li4uIikg fX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1tdmlldycs IGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAg ICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX212aWV3Jywgbm9kZTogJ212aWV3JywgbW9k dWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiAxLCBsYWJl bDogJ3t7IF8oIk1hdGVyaWFsaXplZCBWaWV3Li4uIikgfX0nLAorICAgICAg ICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1tdmlldycsIGRhdGE6IHthY3Rp b246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxl OiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn Y3JlYXRlX212aWV3Jywgbm9kZTogJ3NjaGVtYScsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0 ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogMTgsIGxhYmVsOiAne3sgXygi TWF0ZXJpYWxpemVkIFZpZXcuLi4iKSB9fScsCisgICAgICAgICAgaWNvbjog J3djVGFiSWNvbiBpY29uLW12aWV3JywgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZScsIGNoZWNrOiBmYWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3Jl YXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAncmVmcmVzaF9t dmlldycsIG5vZGU6ICdtdmlldycsIG1vZHVsZTogdGhpcywgY2F0ZWdvcnk6 ICdSZWZyZXNoIHZpZXcnLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0 JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdyZWZyZXNoX212aWV3JywKKyAg ICAgICAgICBwcmlvcml0eTogMSwgbGFiZWw6ICd7eyBfKCJSZWZyZXNoIGRh dGEiKSB9fScsIGRhdGE6IHtjb25jdXJyZW50OiBmYWxzZX0KKyAgICAgICAg fSx7CisgICAgICAgICAgbmFtZTogJ3JlZnJlc2hfbXZpZXdfY29uY3VycmVu dCcsIG5vZGU6ICdtdmlldycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBj YXRlZ29yeTogJ1JlZnJlc2ggdmlldycsCisgICAgICAgICAgYXBwbGllczog WydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3JlZnJlc2hfbXZp ZXcnLAorICAgICAgICAgIHByaW9yaXR5OiAyLCBsYWJlbDogJ3t7IF8oIlJl ZnJlc2ggY29uY3VycmVudGx5IikgfX0nLCBkYXRhOiB7Y29uY3VycmVudDog dHJ1ZX0KKyAgICAgICAgfQorICAgICAgICBdKTsKKyAgICAgIH0sCisKKyAg ICAgIC8qKgorICAgICAgICBEZWZpbmUgbW9kZWwgZm9yIHRoZSB2aWV3IG5v ZGUgYW5kIHNwZWNpZnkgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2YgdGhl IG1vZGVsIGluIHNjaGVtYS4KKyAgICAgICAqLworICAgICAgbW9kZWw6IHBn QWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGlu aXRpYWxpemU6IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAg dmFyIGlzTmV3ID0gKF8uc2l6ZShhdHRycykgPT09IDApOworICAgICAgICAg IGlmIChpc05ldykgeworICAgICAgICAgICAgLy8gU2V0IFNlbGVjdGVkIFNj aGVtYQorICAgICAgICAgICAgc2NoZW1hX2lkID0gYXJncy5ub2RlX2luZm8u c2NoZW1hLl9pZDsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsnc2NoZW1hJzog c2NoZW1hX2lkfSwge3NpbGVudDogdHJ1ZX0pOworCisgICAgICAgICAgICAv LyBTZXQgQ3VycmVudCBVc2VyCisgICAgICAgICAgICB2YXIgdXNlckluZm8g PSBwZ0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5vZGVfaW5mby5zZXJ2ZXIu X2lkXS51c2VyOworICAgICAgICAgICAgdGhpcy5zZXQoeydvd25lcic6IHVz ZXJJbmZvLm5hbWV9LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQor ICAgICAgICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlw ZS5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAg IH0sCisgICAgICAgIGRlZmF1bHRzOiB7CisgICAgICAgICAgc3BjbmFtZTog J3BnX2RlZmF1bHQnLAorICAgICAgICAgIHRvYXN0X2F1dG92YWN1dW1fZW5h YmxlZDogZmFsc2UsCisgICAgICAgICAgYXV0b3ZhY3V1bV9lbmFibGVkOiBm YWxzZQorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAg ICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCJOYW1lIikgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVk OiAnaW5TY2hlbWEnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ29pZCcsIGxhYmVsOid7eyBfKCJPSUQiKSB9fScsIGNlbGw6ICdz dHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRy dWUsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7IF8oIk93bmVy IikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAn bm9kZS1saXN0LWJ5LW5hbWUnLAorICAgICAgICAgIG5vZGU6ICdyb2xlJywg ZGlzYWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAnc2NoZW1hJywgbGFiZWw6J3t7IF8oIlNjaGVtYSIp IH19JywgY2VsbDogJ3N0cmluZycsIGZpcnN0X2VtcHR5OiBmYWxzZSwKKyAg ICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0LWJ5LWlkJywgdHlwZTogJ3Rl eHQnLCBjYWNoZV9sZXZlbDogJ2RhdGFiYXNlJywKKyAgICAgICAgICBub2Rl OiAnc2NoZW1hJywgbW9kZTogWydjcmVhdGUnLCAnZWRpdCddLCBkaXNhYmxl ZDogJ2luU2NoZW1hJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdzeXN0ZW1fdmlldycsIGxhYmVsOid7eyBfKCJTeXN0ZW0gdmll dz8iKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdz d2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwgbW9kZTogWydwcm9wZXJ0aWVzJ10s CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2FjbCcs IGxhYmVsOiAne3sgXygiQUNMIikgfX0nLAorICAgICAgICAgIG1vZGU6IFsn cHJvcGVydGllcyddLCB0eXBlOiAndGV4dCcKKyAgICAgICAgfSwKKyAgICAg ICAgeworICAgICAgICAgIGlkOiAnY29tbWVudCcsIGxhYmVsOid7eyBfKCJD b21tZW50IikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBl OiAnbXVsdGlsaW5lJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg ICAgaWQ6ICdkZWZpbml0aW9uJywgbGFiZWw6J3t7IF8oIiIpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBb J2NyZWF0ZScsICdlZGl0J10sIGdyb3VwOiAnRGVmaW5pdGlvbicsCisgICAg ICAgICAgY29udHJvbDogQmFja2Zvcm0uU3FsRmllbGRDb250cm9sLCBleHRy YUNsYXNzZXM6WydzcWxfZmllbGRfaGVpZ2h0XzI4MCddCisgICAgICAgIH0s CisgICAgICAgIC8vIEFkZCBQcml2aWxlZ2UgQ29udHJvbAorICAgICAgICB7 CisgICAgICAgICAgaWQ6ICdkYXRhY2wnLCBsYWJlbDogJ3t7IF8oIlByaXZp bGVnZXMiKSB9fScsCisgICAgICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nl ci5Ob2RlLlByaXZpbGVnZVJvbGVNb2RlbC5leHRlbmQoCisgICAgICAgICAg ICB7cHJpdmlsZWdlczogWydhJywgJ3InLCAndycsICdkJywgJ0QnLCAneCcs ICd0J119KSwgdW5pcXVlQ29sIDogWydncmFudGVlJ10sCisgICAgICAgICAg ZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAn e3sgXygiU2VjdXJpdHkiKSB9fScsCisgICAgICAgICAgbW9kZTogWydlZGl0 JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwK KyAgICAgICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywg cHJpb3JpdHk6IDMKKyAgICAgICAgfSwKKworICAgICAgICAvLyBBZGQgU2Vj dXJpdHkgTGFiZWxzIENvbnRyb2wKKyAgICAgICAgeworICAgICAgICAgIGlk OiAnc2VjbGFiZWxzJywgbGFiZWw6ICd7eyBfKCJTZWN1cml0eSBMYWJlbHMi KSB9fScsCisgICAgICAgICAgbW9kZWw6IEJhY2tmb3JtLlNlY3VyaXR5TW9k ZWwsIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAg ICAgICAgIGNhbkVkaXQ6IGZhbHNlLCBncm91cDogJ3t7IF8oIlNlY3VyaXR5 IikgfX0nLCBjYW5EZWxldGU6IHRydWUsCisgICAgICAgICAgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUsCisgICAgICAgICAgY29u dHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsIHVuaXF1ZUNvbCA6IFsn cHJvdmlkZXInXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg aWQ6ICd3aXRoX2RhdGEnLCBsYWJlbDogJ3t7IF8oIldpdGggRGF0YSIpIH19 JywKKyAgICAgICAgICBncm91cDogJ3t7IF8oIlN0b3JhZ2UiKSB9fScsIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICB0eXBlOiAnc3dp dGNoJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAn c3BjbmFtZScsIGxhYmVsOiAne3sgXygiVGFibGVzcGFjZSIpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDog J3t7IF8oIlN0b3JhZ2UiKSB9fScsIGZpcnN0X2VtcHR5OiBmYWxzZSwKKyAg ICAgICAgICBjb250cm9sOiAnbm9kZS1saXN0LWJ5LW5hbWUnLCBub2RlOiAn dGFibGVzcGFjZScsCisgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbihtKSB7 CisgICAgICAgICAgICBpZiAobS5sYWJlbCA9PSAicGdfZ2xvYmFsIikgcmV0 dXJuIGZhbHNlOworICAgICAgICAgICAgZWxzZSByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBp ZDogJ2ZpbGxmYWN0b3InLCBsYWJlbDogJ3t7IF8oIkZpbGwgRmFjdG9yIikg fX0nLAorICAgICAgICAgIGdyb3VwOiAne3sgXygiU3RvcmFnZSIpIH19Jywg bW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIHR5cGU6ICdp bnRlZ2VyJywgbWluOiAxMCwgbWF4OiAxMDAKKyAgICAgICAgfSwKKyAgICAg ICAgeworICAgICAgICAgIHR5cGU6ICduZXN0ZWQnLCBjb250cm9sOiAndGFi JywgaWQ6ICdtYXRlcmlhbGl6YXRpb24nLAorICAgICAgICAgIGxhYmVsOiAn e3sgXygiTWF0ZXJpYWxpemF0aW9uIikgfX0nLCBtb2RlOiBbJ2VkaXQnLCAn Y3JlYXRlJ10sCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCJTdG9yYWdlIikg fX0nLAorICAgICAgICAgIHNjaGVtYTogQmFja2Zvcm0uVmFjdXVtU2V0dGlu Z3NTY2hlbWEKKyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgICAgdmFs aWRhdGU6IGZ1bmN0aW9uKGtleXMpIHsKKworICAgICAgICAgIC8vIFRyaWdn ZXJzIHNwZWNpZmljIGVycm9yIG1lc3NhZ2VzIGZvciBmaWVsZHMKKyAgICAg ICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgICBlcnJtc2csCisgICAg ICAgICAgICBmaWVsZF9uYW1lID0gdGhpcy5nZXQoJ25hbWUnKSwKKyAgICAg ICAgICAgIGZpZWxkX2RlZiA9IHRoaXMuZ2V0KCdkZWZpbml0aW9uJyk7Cisg ICAgICAgICAgaWYgKF8uaW5kZXhPZihrZXlzLCAnYXV0b3ZhY3V1bV9lbmFi bGVkJykgIT0gLTEgfHwKKyAgICAgICAgICAgICAgXy5pbmRleE9mKGtleXMs ICd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnKSAhPSAtMSApCisgICAgICAg ICAgICAgIHJldHVybiBudWxsOworCisgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQoZmllbGRfbmFtZSkgfHwgXy5pc051bGwoZmllbGRfbmFtZSkgfHwK KyAgICAgICAgICAgIFN0cmluZyhmaWVsZF9uYW1lKS5yZXBsYWNlKC9eXHMr fFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUn XSA9ICd7eyBfKCJQbGVhc2Ugc3BlY2lmeSBuYW1lLiIpIH19JzsKKyAgICAg ICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ25hbWUnLCBlcnJtc2cpOwor ICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAgICAgICB9ZWxzZXsK KyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgnbmFtZScpOwor ICAgICAgICAgIH0KKyAgICAgICAgICBpZih0aGlzLmlzTmV3KCkpeworICAg ICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoZmllbGRfZGVmKSB8fCBfLmlz TnVsbChmaWVsZF9kZWYpIHx8CisgICAgICAgICAgICAgIFN0cmluZyhmaWVs ZF9kZWYpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAg ICAgICAgICAgICAgZXJyWydkZWZpbml0aW9uJ10gPSAne3sgXygiUGxlYXNl IGVudGVyIGZ1bmN0aW9uIGRlZmluaXRpb24uIikgfX0nOworICAgICAgICAg ICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydkZWZpbml0aW9uJ107Cisg ICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2RlZmluaXRpb24n LCBlcnJtc2cpOworICAgICAgICAgICAgICByZXR1cm4gZXJybXNnOworICAg ICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgIHRoaXMuZXJyb3JNb2Rl bC51bnNldCgnZGVmaW5pdGlvbicpOworICAgICAgICAgICAgfQorICAgICAg ICAgIH0KKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAg ICAgICAgLy8gV2Ugd2lsbCBkaXNhYmxlIGV2ZXJ5dGhpbmcgaWYgd2UgYXJl IHVuZGVyIGNhdGFsb2cgbm9kZQorICAgICAgICBpblNjaGVtYTogZnVuY3Rp b24oKSB7CisgICAgICAgICAgaWYodGhpcy5ub2RlX2luZm8gJiYgJ2NhdGFs b2cnIGluIHRoaXMubm9kZV9pbmZvKQorICAgICAgICAgIHsKKyAgICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgfSksCisKKyAgICAgIC8q KgorICAgICAgICBTaG93IG9yIGhpZGUgY3JlYXRlIHZpZXcgbWVudSBvcHRp b24gb24gcGFyZW50IG5vZGUKKyAgICAgICAgYW5kIGhpZGUgZm9yIHN5c3Rl bSB2aWV3IGluIGNhdGFsb2dzLgorICAgICAgICovCisgICAgICBjYW5DcmVh dGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisKKyAgICAg ICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiwgd2Ugd2lsbCBhbGxvdyBj cmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmNoZWNrID09 PSBmYWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2 YXIgdCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1EYXRh OworCisgICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNr IHBhcmVudCBub2RlCisgICAgICAgIHdoaWxlIChpKSB7CisKKyAgICAgICAg ICAvLyBJZiBpdCBpcyBzY2hlbWEgdGhlbiBhbGxvdyB1c2VyIHRvIGNyZWF0 ZSB2aWV3CisgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBk Ll90eXBlKSA+IC0xKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg ICAgICAgICBpZiAoJ2NvbGwtbXZpZXcnID09IGQuX3R5cGUpIHsKKworICAg ICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgYXJlIG5vdCBjaGlsZCBvZiB2aWV3 CisgICAgICAgICAgICBwcmV2X2kgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFy ZW50KGkpIDogbnVsbDsKKyAgICAgICAgICAgIHByZXZfZCA9IHByZXZfaSA/ IHQuaXRlbURhdGEocHJldl9pKSA6IG51bGw7CisgICAgICAgICAgICBpZigg cHJldl9kLl90eXBlID09ICdjYXRhbG9nJykgeworICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9 CisgICAgICAgICAgaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkg OiBudWxsOworICAgICAgICAgIGQgPSBpID8gdC5pdGVtRGF0YShpKSA6IG51 bGw7CisgICAgICAgIH0KKworICAgICAgICAvLyBieSBkZWZhdWx0IHdlIGRv IG5vdCB3YW50IHRvIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIHJldHVy biB0cnVlOworCisgICAgICB9LAorICAgICAgcmVmcmVzaF9tdmlldzogZnVu Y3Rpb24oYXJncykgeworICAgICAgICAgIHZhciBpbnB1dCA9IGFyZ3MgfHwg e307CisgICAgICAgICAgb2JqID0gdGhpcywKKyAgICAgICAgICB0ID0gcGdC cm93c2VyLnRyZWUsCisgICAgICAgICAgaSA9IGlucHV0Lml0ZW0gfHwgdC5z ZWxlY3RlZCgpLAorICAgICAgICAgIGQgPSBpICYmIGkubGVuZ3RoID09IDEg PyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZpbmVkOworCisgICAgICAgICAgaWYg KCFkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIC8v IE1ha2UgYWpheCBjYWxsIHRvIHJlZnJlc2ggbXZpZXcgZGF0YQorICAgICAg ICAkLmFqYXgoeworICAgICAgICAgIHVybDogb2JqLmdlbmVyYXRlX3VybChp LCAncmVmcmVzaF9kYXRhJyAsIGQsIHRydWUpLAorICAgICAgICAgIHR5cGU6 ICdQVVQnLAorICAgICAgICAgIGRhdGE6IHsnY29uY3VycmVudCc6IGFyZ3Mu Y29uY3VycmVudH0sCisgICAgICAgICAgZGF0YVR5cGU6ICJqc29uIiwKKyAg ICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAg IGlmIChyZXMuc3VjY2VzcyA9PSAxKSB7CisgICAgICAgICAgICAgIGFsZXJ0 aWZ5LnN1Y2Nlc3MoJ1ZpZXcgcmVmcmVzaGVkIHN1Y2Nlc3NmdWxseScpOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAg ICAgIGFsZXJ0aWZ5LmFsZXJ0KAorICAgICAgICAgICAgICAgICdFcnJvciBy ZWZyZXNoaW5nIHZpZXcnLAorICAgICAgICAgICAgICAgICAgcmVzLmRhdGEu cmVzdWx0CisgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAg ICAgICAgfSwKKyAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgeworICAg ICAgICAgICAgdmFyIGVycm1zZyA9ICQucGFyc2VKU09OKGUucmVzcG9uc2VU ZXh0KTsKKyAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KCdFcnJvciByZWZy ZXNoaW5nIHZpZXcnLCBlcnJtc2cuZXJyb3Jtc2cpOworICAgICAgICAgIH0K KyAgICAgICAgfSk7CisKKyAgICAgIH0KKyAgfSk7CisgIH0KKworICByZXR1 cm4gcGdCcm93c2VyLk5vZGVzWydjb2xsLW12aWV3J107Cit9KTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9w Zy85LjNfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzFiZDZjCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L212aWV3L3BnLzkuM19wbHVzL3NxbC9hY2wuc3FsCkBAIC0wLDAgKzEsNDEg QEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUdldCBBQ0xzPT09 PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQgJX0KK1NFTEVD VAorICAgICdkYXRhY2wnIGFzIGRlZnR5cGUsCisgICAgQ09BTEVTQ0UoZ3Qu cm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdy YW50b3IsCisgICAgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2 aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdyYW50 YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLAor ICAgICAgICBkLmdyYW50b3IsCisgICAgICAgIGQuaXNfZ3JhbnRhYmxlLAor ICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgICBXSEVO ICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gn CisgICAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICAg IFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgICAgV0hFTiAnVVBE QVRFJyBUSEVOICd3JworICAgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVO ICdEJworICAgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBB UyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAor ICAgICAgICAgICAgcmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAg ICBwZ19jbGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3No ZGVzY3JpcHRpb24gZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVz Y3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKKyAgICAgICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7 eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICdtJworICAgICAgICApIGFj bCwKKyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04g KGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1l LAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3Bs dXMvc3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjljOWQxYQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9t dmlldy9wZy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDQy IEBACit7IyA9PT09PT09PT09PT09PT09PT09PT0gQ3JlYXRlIG5ldyB2aWV3 ID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYgZGlzcGxheV9jb21t ZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1h LCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgTUFURVJJQUxJWkVEIFZJRVcg e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19Owor Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVt YSBhbmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUgTUFURVJJQUxJWkVE IFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19Cit7JSBpZihkYXRhLmZpbGxmYWN0b3Igb3IgZGF0YVsnYXV0b3ZhY3V1 bV9lbmFibGVkJ10gb3IgZGF0YVsndG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVk J10pICV9CitXSVRIICgKK3slIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICAg IEZJTExGQUNUT1IgPSB7eyBkYXRhLmZpbGxmYWN0b3IgfX17JSBpZiBkYXRh WydhdXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRhWyd0b2FzdF9hdXRvdmFj dXVtX2VuYWJsZWQnXSBvciBkYXRhWyd2YWN1dW1fZGF0YSddfGxlbmd0aCA+ IDAgJX0se3sgJ1xyJyB9fXslIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gJX0KKyAgICBhdXRvdmFj dXVtX2VuYWJsZWQgPSB7eyBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXXxs b3dlciB9fXslIGlmIGRhdGFbJ3RvYXN0X2F1dG92YWN1dW1fZW5hYmxlZCdd IG9yIGRhdGFbJ3ZhY3V1bV9kYXRhJ118bGVuZ3RoID4gMCAlfSx7eyAnXHIn IH19eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWyd0b2Fz dF9hdXRvdmFjdXVtX2VuYWJsZWQnXSAlfQorICAgIHt7ICd0b2FzdC5hdXRv dmFjdXVtX2VuYWJsZWQnIH19ID0ge3sgZGF0YVsndG9hc3RfYXV0b3ZhY3V1 bV9lbmFibGVkJ118bG93ZXIgfX17JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSdd fGxlbmd0aCA+IDAgJX0se3sgJ1xyJyB9fXslIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQoreyUgZm9yIGZpZWxkIGluIGRhdGFbJ3ZhY3V1bV9kYXRhJ10gJX0K K3slIGlmIGZpZWxkLnZhbHVlIGlzIGRlZmluZWQgYW5kIGZpZWxkLnZhbHVl ICE9ICcnIGFuZCBmaWVsZC52YWx1ZSAhPSBub25lICV9Cit7JSBpZiBsb29w LmluZGV4ID4gMSV9LAoreyUgZW5kaWYgJX0gICAge3sgZmllbGQubmFtZSB9 fSA9IHt7IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQorCispCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5zcGNuYW1l ICV9VEFCTEVTUEFDRSB7eyBkYXRhLnNwY25hbWUgfX0KK3slIGVuZGlmICV9 QVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSB9fQoreyUgaWYg ZGF0YS53aXRoX2RhdGEgJX0KK1dJVEggREFUQTsKK3slIGVsc2UgJX0KK1dJ VEggTk8gREFUQTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQg JX0KKworQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxx dExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9w Zy85LjNfcGx1cy9zcWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwvZGVsZXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjY2N2Zj Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsCkBAIC0w LDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09PT0gRHJvcC9DYXNj YWRlIG1hdGVyaWFsaXplZCB2aWV3IGJ5IG5hbWUgPT09PT09PT09PT09PT09 PT09PT0jfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5hbWUg QXMgbmFtZSwKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2NsYXNz IGMKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIGMucmVsbmFtZXNw YWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBjLnJlbGZpbGVub2RlID0ge3sg dmlkIH19OworeyUgZWxpZiAobmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RST1Ag TUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5h bWUpIH19IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwvZ2V0X3NjaGVtYS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcv OS4zX3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4z X3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VM RUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hF UkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3Bs dXMvc3FsL2dldF92aWV3X25hbWUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9nZXRfdmlld19u YW1lLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m N2U0MDRhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9nZXRfdmlld19u YW1lLnNxbApAQCAtMCwwICsxLDExIEBACit7IyA9PT09PSBHZXQgdmlldyBu YW1lIGFnYWluc3QgdmlldyBpZCA9PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NF TEVDVAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1l IEFTIHNjaGVtYQorRlJPTQorICAgIHBnX2NsYXNzIGMKKyAgICBMRUZUIE9V VEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxu YW1lc3BhY2UKK1dIRVJFCisgICAgYy5vaWQgPSB7e3ZpZH19Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3Fs L2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jZmY5ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5z cWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9u cyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzID09PT0gI30KK3slIGlt cG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0K K3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7IyBXZSB3aWxsIGdlbmVyYXRlIFNlY3VyaXR5 IExhYmVsIFNRTCB1c2luZyBtYWNybyAjfQoreyUgaWYgZGF0YS5zZWNsYWJl bHMgJX17JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxF LkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLmRhdGFjbCAlfXslIGZvciBwcml2IGluIGRhdGEuZGF0YWNs ICV9e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50 ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQsIGRhdGEuc2NoZW1hKSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv bXZpZXcvcGcvOS4zX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3Nx bC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5mMDJiYzU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDExMSBAQAoreyMgPT09PT09PT09 PT09PT09PT09PT09PT09PT0gRmV0Y2ggTWF0ZXJpYWxpemVkIFZpZXcgUHJv cGVydGllcyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiAo dmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitTRUxFQ1QKKyAg ICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxuYW1lIEFTIG5hbWUs CisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBjLnJlbGlz cG9wdWxhdGVkIEFTIHdpdGhfZGF0YSwKKyAgICAoQ0FTRSBXSEVOIGxlbmd0 aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3BjLnNwY25hbWUgRUxTRSAncGdf ZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAorICAgIGMucmVsYWNsLAorICAg IG5zcC5uc3BuYW1lIGFzIHNjaGVtYSwKKyAgICBwZ19nZXRfdXNlcmJ5aWQo Yy5yZWxvd25lcikgQVMgb3duZXIsCisgICAgZGVzY3JpcHRpb24gQVMgY29t bWVudCwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwgdHJ1ZSkgQVMgZGVm aW5pdGlvbiwKKyAgICB7Iz09PT09PT09PT09PT1DaGVja3MgaWYgaXQgaXMg c3lzdGVtIHZpZXc9PT09PT09PT09PT09PT09I30KKyAgICB7JSBpZiB2aWQg YW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8 PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQg QVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyAgICBhcnJheV90 b19zdHJpbmcoYy5yZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAg IChTRUxFQ1QgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkg RlJPTSBwZ19zZWNsYWJlbHMgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9Yy5vaWQg QU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBzZWNsYWJlbHMsCisgICAgc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2ZpbGxmYWN0b3I9KFswLTldKiknKSBBUyBmaWxsZmFjdG9yLAor ICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAn LCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8MC05 XSopJykgQVMgYXV0b3ZhY3V1bV9lbmFibGVkLAorICAgIHN1YnN0cmluZyhh cnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9N ICdhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyBh dXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00g J2F1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAt OV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwKKyAg ICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywn KQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZD0o WzAtOV0qKScpIEFTIGF1dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcs JykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0 b3I9KFswLTldKlsuXVswLTldKiknKSBBUyBhdXRvdmFjdXVtX2FuYWx5emVf c2NhbGVfZmFjdG9yLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco Yy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX3Zh Y3V1bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1 dW1fY29zdF9kZWxheSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92 YWN1dW1fY29zdF9saW1pdD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFj dXVtX2Nvc3RfbGltaXQsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmlu ZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1f ZnJlZXplX21pbl9hZ2U9KFswLTldKiknKSBBUyBhdXRvdmFjdXVtX2ZyZWV6 ZV9taW5fYWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5y ZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6 ZV9tYXhfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfbWF4 X2FnZSwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0 aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfdGFi bGVfYWdlPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVf YWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9w dGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZW5hYmxlZD0o W2EtenwwLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQsCisg ICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywg JywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xk PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNo b2xkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9w dGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3Nj YWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92 YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9N ICdhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMg dG9hc3RfYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisg ICAgICBGUk9NICdhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yPShb MC05XSpbLl1bMC05XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9hbmFseXpl X3NjYWxlX2ZhY3RvciwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVt X3ZhY3V1bV9jb3N0X2RlbGF5PShbMC05XSopJykgQVMgdG9hc3RfYXV0b3Zh Y3V1bV92YWN1dW1fY29zdF9kZWxheSwKKyAgICBzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdh dXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0PShbMC05XSopJykgQVMgdG9h c3RfYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCwKKyAgICBzdWJzdHJp bmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAg ICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9taW5fYWdlPShbMC05XSopJykg QVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisg ICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlPShbMC05XSop JykgQVMgdG9hc3RfYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSwKKyAgICBz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKHRzdC5yZWxvcHRpb25zLCAnLCcp CisgICAgICBGUk9NICdhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U9KFsw LTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2Us CisgICAgYy5yZWxvcHRpb25zIEFTIHJlbG9wdGlvbnMsIHRzdC5yZWxvcHRp b25zIEFTIHRvYXN0X3JlbG9wdGlvbnMsCisgICAgKENBU0UgV0hFTiBjLnJl bHRvYXN0cmVsaWQgPSAwIFRIRU4gZmFsc2UgRUxTRSB0cnVlIEVORCkgQVMg aGFzdG9hc3R0YWJsZSwKKyAgICAoQ0FTRSBXSEVOIChzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiAg VEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBhdXRvdmFjdXVtX2N1c3Rv bSwKKyAgICAoQ0FTRSBXSEVOIChzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5n KHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVt X2VuYWJsZWQ9KFthLXp8MC05XSopJykpOjpib29sZWFuICBBTkQgYy5yZWx0 b2FzdHJlbGlkID0gMCBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIHRv YXN0X2F1dG92YWNjdW0KK0ZST00KKyAgICBwZ19jbGFzcyBjCitMRUZUIE9V VEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxu YW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBv biBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVz Lm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKK0xFRlQgT1VURVIgSk9JTiBwZ19jbGFzcyB0c3QgT04gdHN0Lm9p ZCA9IGMucmVsdG9hc3RyZWxpZAorICAgIFdIRVJFICgoYy5yZWxoYXNydWxl cyBBTkQgKEVYSVNUUyAoCisgICAgICAgIFNFTEVDVAorICAgICAgICAgICAg ci5ydWxlbmFtZQorICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19yZXdy aXRlIHIKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICgoci5ldl9jbGFz cyA9IGMub2lkKQorICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIuZXZf dHlwZSkgPSAnMSc6OmJwY2hhcikpICkpKQorICAgICAgICAgICAgQU5EIChj LnJlbGtpbmQgPSAnbSc6OmNoYXIpCisgICAgICAgICAgKQoreyUgaWYgKHZp ZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0KKyAgICBBTkQgYy5vaWQgPSB7e3Zp ZH19OjpvaWQKK3slIGVsaWYgc2NpZCAlfQorICAgIEFORCBjLnJlbG5hbWVz cGFjZSA9IHt7c2NpZH19OjpvaWQKK09SREVSIEJZCisgICAgYy5yZWxuYW1l Cit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUgPT0gJ3JvbGVzJyAlfQor U0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQorICAgIHBnX3JvbGVzIHBy CitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitPUkRFUiBCWQorICAgIHBy LnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdzY2hlbWFzJyAlfQorU0VM RUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2Ug bnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxf JScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9ICdpbmZvcm1hdGlvbl9z Y2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwvcmVm cmVzaC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZp ZXcvcGcvOS4zX3BsdXMvc3FsL3JlZnJlc2guc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2MDUzNGIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcv OS4zX3BsdXMvc3FsL3JlZnJlc2guc3FsCkBAIC0wLDAgKzEsNCBAQAoreyM9 PT0gcmVmcmVzaCBtYXQgdmlldyBbY29uY3VycmVubHR5XSA9PT0jfQoreyUg aWYgbmFtZSBhbmQgbnNwbmFtZSAlfQorUkVGUkVTSCBNQVRFUklBTElaRUQg VklFVyB7JSBpZiBpc19jb25jdXJyZW50ICV9Q09OQ1VSUkVOVExZeyUgZW5k aWYgJX0ge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19IDsKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcGcvOS4zX3Bs dXMvc3FsL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYzNjMjI2YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wZy85LjNfcGx1cy9zcWwv dXBkYXRlLnNxbApAQCAtMCwwICsxLDE2NCBAQAoreyMgPT09PT09PT09PT09 PT09PT09PT09IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09PT0jfQor eyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3slLSBpZiBkYXRhIC0lfQoreyUgc2V0 IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5hbWUgZWxzZSBvX2Rh dGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0gZGF0YS5zY2hlbWEg aWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1hICV9Cit7JSBzZXQg ZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIGlmIGRhdGEuZGVm aW5pdGlvbiAlfQoreyMgPT09PT0gUmVuYW1lIG1hdCB2aWV3ID09PT09ICN9 Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2RhdGEubmFt ZSAlfQorQUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50 KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICBSRU5BTUUgVE8g e3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07CisKK3slIGVuZGlmICV9 Cit7IyA9PT09PSBBbHRlciBzY2hlbWEgdmlldyA9PT09PSAjfQoreyUgaWYg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEg JX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudChv X2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICBTRVQgU0NIRU1BIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07CisKK3slIGVuZGlmICV9 Cit7IyA9PT09PSBBbHRlciBUYWJsZSBvd25lciA9PT09PSAjfQoreyUgaWYg ZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0K K0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5v d25lcikgfX07CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhWyd2YWN1dW1f ZGF0YSddWydyZXNldCddfGxlbmd0aCA9PSAwIGFuZAorZGF0YVsndmFjdXVt X2RhdGEnXVsncmVzZXQnXXxsZW5ndGggPT0gMCBhbmQgZGF0YVsnc2V0dGlu Z3MnXXxsZW5ndGggPiAwICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7 eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1NF VCgKK3slIGZvciBmaWVsZCBpbiBkYXRhWydzZXR0aW5ncyddICV9CisgIHt7 IGZpZWxkIH19ID0ge3sgZGF0YVsnc2V0dGluZ3MnXVtmaWVsZF18bG93ZXIg fX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRpZiAlfXt7ICdccicg fX0KK3slIGVuZGZvciAlfQorKTsKKworeyUgZW5kaWYgJX0KK3slIGlmIGRh dGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jlc2V0J118bGVuZ3RoID4gMCAlfQorQUxU RVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19CitSRVNFVCgKK3slIGZvciBmaWVsZCBpbiBk YXRhWyd2YWN1dW1fZGF0YSddWydyZXNldCddICV9CisgIHt7IGZpZWxkLm5h bWUgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRpZiAlfXt7ICdc cicgfX0KK3slIGVuZGZvciAlfQorKTsKK3slIGVuZGlmICV9Cit7IyA9PT09 PSBGaXJzdCBEcm9wIGFuZCB0aGVuIGNyZWF0ZSBtYXQgdmlldyA9PT09PSAj fQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19kYXRhLmRlZmluaXRpb24ucnN0 cmlwKCc7JykgJX0KK3slIGlmIGRhdGEuZmlsbGZhY3RvciBvciAoIGRhdGFb J3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPiAwICkgJX0KK0RS T1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19OworQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor V0lUSCgKK3slIGlmIGRhdGEuZmlsbGZhY3RvciAlfQorICBGSUxMRkFDVE9S ID0ge3sgZGF0YS5maWxsZmFjdG9yIH19eyUgaWYgZGF0YVsndmFjdXVtX2Rh dGEnXVsnY2hhbmdlZCddfGxlbmd0aCA+IDAgJX0seyUgZW5kaWYgJX17eyAn XHInIH19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsndmFjdXVtX2RhdGEn XVsnY2hhbmdlZCddfGxlbmd0aCA+IDAgJX0KK3slIGZvciBmaWVsZCBpbiBk YXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ10gJX0KKyAge3sgZmllbGQu bmFtZSB9fSA9IHt7IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUgaWYgbm90IGxv b3AubGFzdCAgJX0seyUgZW5kaWYgJX17eyAnXHInIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9CispCisgQVMKK3t7IGRlZiB9fQoreyUgaWYgZGF0 YS53aXRoX2RhdGEgJX0KKyBXSVRIIERBVEE7CisKK3slIGVsc2UgJX0KKyBX SVRIIE5PIERBVEE7CisKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUg ZWxzZSAlfQoreyMgPT09PT09PSBBbHRlciBUYWJsZXNwYWNlID09PT09PT09 PSAjfQoreyUtIGlmIGRhdGEuc3Bjb2lkIGFuZCBvX2RhdGEuc3Bjb2lkICE9 IGRhdGEuc3Bjb2lkICAtJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7 IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICBT RVQgVEFCTEVTUEFDRSB7eyBkYXRhLnNwY29pZCB9fTsKKworeyUgZW5kaWYg JX0KK3sjID09PT09PT0gU0VUL1JFU0VUIEZpbGxmYWN0b3IgPT09PT09PT09 ICN9Cit7JSBpZiBkYXRhLmZpbGxmYWN0b3IgYW5kIG9fZGF0YS5maWxsZmFj dG9yICE9IGRhdGEuZmlsbGZhY3RvciAlfQorQUxURVIgTUFURVJJQUxJWkVE IFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUp IH19CitTRVQoRklMTEZBQ1RPUiA9IHt7IGRhdGEuZmlsbGZhY3RvciB9fSk7 CisKK3slIGVsaWYgZGF0YS5maWxsZmFjdG9yID09ICcnICV9CitBTFRFUiBN QVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEs IHZpZXdfbmFtZSkgfX0KK1JFU0VUKAorICBGSUxMRkFDVE9SCispOworCit7 JSBlbmRpZiAlfQoreyMgPT09PT0gQ2hlY2sgZm9yIHdpdGhfZGF0YSBwcm9w ZXJ0eSA9PT09PSAjfQoreyUgaWYgZGF0YS53aXRoX2RhdGEgaXMgZGVmaW5l ZCBhbmQgb19kYXRhLndpdGhfZGF0YXxsb3dlciAhPSBkYXRhLndpdGhfZGF0 YXxsb3dlciAgJX0KK1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcge3sgY29u bnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19IFdJVEh7eyAn IE5PJyBpZiBkYXRhLndpdGhfZGF0YXxsb3dlciA9PSAnZmFsc2UnIGVsc2Ug JycgfX0gREFUQTsKKworeyUgZW5kaWYgJX0KK3sjID09PT09IENoZWNrIGZv ciBUYWJsZSB0YWIgcHJvcGVydGllcyA9PT09PSAjfQoreyUgaWYgZGF0YS5h dXRvdmFjdXVtX2N1c3RvbSBpcyBkZWZpbmVkIGFuZCBkYXRhLmF1dG92YWN1 dW1fY3VzdG9tfGxvd2VyID09ICdmYWxzZScgJX0KK0FMVEVSIE1BVEVSSUFM SVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19u YW1lKSB9fQorUkVTRVQoCisgIGF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9s ZCwKKyAgYXV0b3ZhY3V1bV9hbmFseXplX3RocmVzaG9sZCwKKyAgYXV0b3Zh Y3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yLAorICBhdXRvdmFjdXVtX2FuYWx5 emVfc2NhbGVfZmFjdG9yLAorICBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2Rl bGF5LAorICBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0LAorICBhdXRv dmFjdXVtX2ZyZWV6ZV9taW5fYWdlLAorICBhdXRvdmFjdXVtX2ZyZWV6ZV9t YXhfYWdlLAorICBhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UKKyk7CisK K3slIGVsaWYoZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddfGxlbmd0 aCA+IDApICV9Cit7JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2Vk J118bGVuZ3RoID09IDEgYW5kIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5n ZWQnXVswXVsnbmFtZSddICE9ICdhdXRvdmFjdXVtX2VuYWJsZWQnICV9CitB TFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0gU0VUKAoreyUgZm9yIGZpZWxkIGluIGRh dGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXSAlfQoreyUgaWYgZmllbGQu dmFsdWUgIT0gTm9uZSAlfQorICB7eyBmaWVsZC5uYW1lIH19ID0ge3sgZmll bGQudmFsdWV8bG93ZXIgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBl bmRpZiAlfXt7ICdccicgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K Kyk7Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAlfXsjID09PT09IEVuZCBj aGVjayBmb3IgY3VzdG9tIGF1dG92YWNjdW0gPT09PT0gI30KK3slIGVuZGlm ICV9eyMgPT09PT0gRW5kIGJsb2NrIGZvciBjaGVjayBkYXRhIGRlZmluaXRp b24gPT09PT0gI30KK3slLSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEuY29t bWVudCAhPSBvX2RhdGEuY29tbWVudCAtJX0KK0NPTU1FTlQgT04gTUFURVJJ QUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07 CisKK3slIGVuZGlmICV9Cit7IyA9PT09PT09PT09PT09IFRoZSBTUUwgZ2Vu ZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMgPT09PT09PT09 PT09PSAjfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGlmICdkZWxldGVk JyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRh Y2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlJFU0VUQUxMKGNvbm4sICdU QUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2Vk JyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRh Y2wuY2hhbmdlZCAtJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEp IH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JS0gZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUg Zm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNj aGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlm ICV9Cit7IyA9PT09PT09PT09PT09PSBUaGUgU1FMIGdlbmVyYXRlZCBiZWxv dyB3aWxsIGNoYW5nZSBTZWN1cml0eSBMYWJlbCA9PT09PT09PT0gI30KK3sl IGlmIGRhdGEuc2VjbGFiZWxzIGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xh YmVsc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4s ICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMg YW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuYWRkZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4s ICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xh YmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2No YW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcv cGcvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC92aWV3X2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTky YTgwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL212aWV3L3BnLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApA QCAtMCwwICsxLDQgQEAKK3sjID09PT09IEJlbG93IHdpbGwgcHJvdmlkZSB2 aWV3IGlkIGZvciBsYXN0IGNyZWF0ZWQgdmlldyA9PT09ICN9Cit7JSBpZiBk YXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19jbGFzcyBjIFdIRVJFIGMu cmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmll dy9wcGFzLzkuM19wbHVzL3NxbC9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2FjbC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMxYmQ2 YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9hY2wuc3FsCkBAIC0w LDAgKzEsNDEgQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUdl dCBBQ0xzPT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiB2aWQg JX0KK1NFTEVDVAorICAgICdkYXRhY2wnIGFzIGRlZnR5cGUsCisgICAgQ09B TEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5y b2xuYW1lIGdyYW50b3IsCisgICAgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBl KSBhcyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUp IGFzIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5n cmFudGVlLAorICAgICAgICBkLmdyYW50b3IsCisgICAgICAgIGQuaXNfZ3Jh bnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgICAgV0hFTiAn SU5TRVJUJyBUSEVOICdhJworICAgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMn IFRIRU4gJ3gnCisgICAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJwor ICAgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgICAg V0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICAgIFdIRU4gJ1RSVU5D QVRFJyBUSEVOICdEJworICAgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAg ICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAg KFNFTEVDVAorICAgICAgICAgICAgcmVsYWNsCisgICAgICAgICBGUk9NCisg ICAgICAgICAgICBwZ19jbGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBK T0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3IgT04KKyAgICAgICAgICAgIChj bC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xh c3MnOjpyZWdjbGFzcykKKyAgICAgICAgIFdIRVJFCisgICAgICAgICAgICBj bC5vaWQgPSB7eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICdtJworICAg ICAgICApIGFjbCwKKyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAg ICApIGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQu Z3JhbnRvciA9IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAg Zy5yb2xuYW1lLAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcv cHBhcy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9jcmVh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5 YzlkMWEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvY3JlYXRlLnNx bApAQCAtMCwwICsxLDQyIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT0g Q3JlYXRlIG5ldyB2aWV3ID09PT09PT09PT09PT09PT09PT09PSAjfQoreyUg aWYgZGlzcGxheV9jb21tZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgTUFU RVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBk YXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1l IGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVB VEUgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2No ZW1hLCBkYXRhLm5hbWUpIH19Cit7JSBpZihkYXRhLmZpbGxmYWN0b3Igb3Ig ZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10gb3IgZGF0YVsndG9hc3RfYXV0 b3ZhY3V1bV9lbmFibGVkJ10pICV9CitXSVRIICgKK3slIGlmIGRhdGEuZmls bGZhY3RvciAlfQorICAgIEZJTExGQUNUT1IgPSB7eyBkYXRhLmZpbGxmYWN0 b3IgfX17JSBpZiBkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRh Wyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXSBvciBkYXRhWyd2YWN1dW1f ZGF0YSddfGxlbmd0aCA+IDAgJX0se3sgJ1xyJyB9fXslIGVuZGlmICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsnYXV0b3ZhY3V1bV9lbmFibGVkJ10g JX0KKyAgICBhdXRvdmFjdXVtX2VuYWJsZWQgPSB7eyBkYXRhWydhdXRvdmFj dXVtX2VuYWJsZWQnXXxsb3dlciB9fXslIGlmIGRhdGFbJ3RvYXN0X2F1dG92 YWN1dW1fZW5hYmxlZCddIG9yIGRhdGFbJ3ZhY3V1bV9kYXRhJ118bGVuZ3Ro ID4gMCAlfSx7eyAnXHInIH19eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhWyd0b2FzdF9hdXRvdmFjdXVtX2VuYWJsZWQnXSAlfQorICAg IHt7ICd0b2FzdC5hdXRvdmFjdXVtX2VuYWJsZWQnIH19ID0ge3sgZGF0YVsn dG9hc3RfYXV0b3ZhY3V1bV9lbmFibGVkJ118bG93ZXIgfX17JSBpZiBkYXRh Wyd2YWN1dW1fZGF0YSddfGxlbmd0aCA+IDAgJX0se3sgJ1xyJyB9fXslIGVu ZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgZm9yIGZpZWxkIGluIGRhdGFbJ3Zh Y3V1bV9kYXRhJ10gJX0KK3slIGlmIGZpZWxkLnZhbHVlIGlzIGRlZmluZWQg YW5kIGZpZWxkLnZhbHVlICE9ICcnIGFuZCBmaWVsZC52YWx1ZSAhPSBub25l ICV9Cit7JSBpZiBsb29wLmluZGV4ID4gMSV9LAoreyUgZW5kaWYgJX0gICAg e3sgZmllbGQubmFtZSB9fSA9IHt7IGZpZWxkLnZhbHVlfGxvd2VyIH19eyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfQorCispCit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5zcGNuYW1lICV9VEFCTEVTUEFDRSB7eyBkYXRhLnNwY25hbWUg fX0KK3slIGVuZGlmICV9QVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAo JzsnKSB9fQoreyUgaWYgZGF0YS53aXRoX2RhdGEgJX0KK1dJVEggREFUQTsK K3slIGVsc2UgJX0KK1dJVEggTk8gREFUQTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmNvbW1lbnQgJX0KKworQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7 IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4z X3BsdXMvc3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uY2Y2NjdmYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVz L3NxbC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09 PT09PT09PT09PT0gRHJvcC9DYXNjYWRlIG1hdGVyaWFsaXplZCB2aWV3IGJ5 IG5hbWUgPT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgdmlkICV9CitT RUxFQ1QKKyAgICBjLnJlbG5hbWUgQXMgbmFtZSwKKyAgICBuc3AubnNwbmFt ZQorRlJPTQorICAgIHBnX2NsYXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1lc3Bh Y2UgbnNwIE9OIGMucmVsbmFtZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAg ICBjLnJlbGZpbGVub2RlID0ge3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBh bmQgbnNwbmFtZSkgJX0KK0RST1AgTUFURVJJQUxJWkVEIFZJRVcge3sgY29u bnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19IHslIGlmIGNhc2NhZGUgJX0g Q0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzku M19wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9nZXRfc2No ZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x MjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dldF9zY2hl bWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBz Y2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ3JhbnQuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMv OS4zX3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jZmY5ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3Bs dXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYgQEAKK3sjID09PT09IEdy YW50IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMg PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjIFdlIHdpbGwgZ2Vu ZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvICN9Cit7JSBp ZiBkYXRhLnNlY2xhYmVscyAlfXslIGZvciByIGluIGRhdGEuc2VjbGFiZWxz ICV9e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19eyUgZW5kZm9yICV9 eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGF0YWNsICV9eyUgZm9yIHByaXYg aW4gZGF0YS5kYXRhY2wgJX17eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19eyUgZW5kZm9y ICV9eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC9wcm9wZXJ0 aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmll dy9wcGFzLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDJiYzU0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L3BwYXMvOS4zX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEs MTExIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PSBGZXRjaCBN YXRlcmlhbGl6ZWQgVmlldyBQcm9wZXJ0aWVzID09PT09PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9y IHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAorICAgIGMueG1pbiwKKyAg ICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMg c3Bjb2lkLAorICAgIGMucmVsaXNwb3B1bGF0ZWQgQVMgd2l0aF9kYXRhLAor ICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBz cGMuc3BjbmFtZSBFTFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNwY25hbWUs CisgICAgYy5yZWxhY2wsCisgICAgbnNwLm5zcG5hbWUgYXMgc2NoZW1hLAor ICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwKKyAg ICBkZXNjcmlwdGlvbiBBUyBjb21tZW50LAorICAgIHBnX2dldF92aWV3ZGVm KGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIHsjPT09PT09PT09 PT09PUNoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09 PT0jfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAg IENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4g VHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBl bmRpZiAlfQorICAgIGFycmF5X3RvX3N0cmluZyhjLnJlbGFjbDo6dGV4dFtd LCAnLCAnKSBBUyBhY2wsCisgICAgKFNFTEVDVCBhcnJheV9hZ2cocHJvdmlk ZXIgfHwgJz0nIHx8IGxhYmVsKSBGUk9NIHBnX3NlY2xhYmVscyBzbDEgV0hF UkUgc2wxLm9iam9pZD1jLm9pZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIHNl Y2xhYmVscywKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVs b3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnZmlsbGZhY3Rvcj0oWzAtOV0q KScpIEFTIGZpbGxmYWN0b3IsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0 cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1 dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSBBUyBhdXRvdmFjdXVtX2VuYWJs ZWQsCisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlv bnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX3RocmVz aG9sZD0oWzAtOV0qKScpIEFTIGF1dG92YWN1dW1fdmFjdXVtX3RocmVzaG9s ZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9u cywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVf ZmFjdG9yPShbMC05XSpbLl1bMC05XSopJykgQVMgYXV0b3ZhY3V1bV92YWN1 dW1fc2NhbGVfZmFjdG9yLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVt X2FuYWx5emVfdGhyZXNob2xkPShbMC05XSopJykgQVMgYXV0b3ZhY3V1bV9h bmFseXplX3RocmVzaG9sZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAnYXV0b3ZhY3V1 bV9hbmFseXplX3NjYWxlX2ZhY3Rvcj0oWzAtOV0qWy5dWzAtOV0qKScpIEFT IGF1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IsCisgICAgc3Vic3Ry aW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAg IEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXk9KFswLTldKikn KSBBUyBhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5LAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAg ICBGUk9NICdhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0PShbMC05XSop JykgQVMgYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9saW1pdCwKKyAgICBzdWJz dHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAg ICAgRlJPTSAnYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZT0oWzAtOV0qKScp IEFTIGF1dG92YWN1dW1fZnJlZXplX21pbl9hZ2UsCisgICAgc3Vic3RyaW5n KGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZS T00gJ2F1dG92YWN1dW1fZnJlZXplX21heF9hZ2U9KFswLTldKiknKSBBUyBh dXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlLAorICAgIHN1YnN0cmluZyhhcnJh eV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdh dXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2U9KFswLTldKiknKSBBUyBhdXRv dmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV9lbmFibGVkPShbYS16fDAtOV0qKScpIEFTIHRvYXN0X2F1 dG92YWN1dW1fZW5hYmxlZCwKKyAgICBzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKHRzdC5yZWxvcHRpb25zLCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFj dXVtX3ZhY3V1bV90aHJlc2hvbGQ9KFswLTldKiknKSBBUyB0b2FzdF9hdXRv dmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQsCisgICAgc3Vic3RyaW5nKGFycmF5 X3RvX3N0cmluZyh0c3QucmVsb3B0aW9ucywgJywnKQorICAgICAgRlJPTSAn YXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yPShbMC05XSpbLl1bMC05 XSopJykgQVMgdG9hc3RfYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9y LAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlv bnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fYW5hbHl6ZV90aHJl c2hvbGQ9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2FuYWx5emVf dGhyZXNob2xkLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fYW5h bHl6ZV9zY2FsZV9mYWN0b3I9KFswLTldKlsuXVswLTldKiknKSBBUyB0b2Fz dF9hdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yLAorICAgIHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAg ICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXk9KFswLTld KiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5LAor ICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMs ICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGlt aXQ9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX3ZhY3V1bV9jb3N0 X2xpbWl0LAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJl bG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZnJlZXpl X21pbl9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2ZyZWV6 ZV9taW5fYWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcodHN0 LnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1fZnJl ZXplX21heF9hZ2U9KFswLTldKiknKSBBUyB0b2FzdF9hdXRvdmFjdXVtX2Zy ZWV6ZV9tYXhfYWdlLAorICAgIHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco dHN0LnJlbG9wdGlvbnMsICcsJykKKyAgICAgIEZST00gJ2F1dG92YWN1dW1f ZnJlZXplX3RhYmxlX2FnZT0oWzAtOV0qKScpIEFTIHRvYXN0X2F1dG92YWN1 dW1fZnJlZXplX3RhYmxlX2FnZSwKKyAgICBjLnJlbG9wdGlvbnMgQVMgcmVs b3B0aW9ucywgdHN0LnJlbG9wdGlvbnMgQVMgdG9hc3RfcmVsb3B0aW9ucywK KyAgICAoQ0FTRSBXSEVOIGMucmVsdG9hc3RyZWxpZCA9IDAgVEhFTiBmYWxz ZSBFTFNFIHRydWUgRU5EKSBBUyBoYXN0b2FzdHRhYmxlLAorICAgIChDQVNF IFdIRU4gKHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25z LCAnLCcpCisgICAgICBGUk9NICdhdXRvdmFjdXVtX2VuYWJsZWQ9KFthLXp8 MC05XSopJykpOjpib29sZWFuICBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQp IEFTIGF1dG92YWN1dW1fY3VzdG9tLAorICAgIChDQVNFIFdIRU4gKHN1YnN0 cmluZyhhcnJheV90b19zdHJpbmcodHN0LnJlbG9wdGlvbnMsICcsJykKKyAg ICAgIEZST00gJ2F1dG92YWN1dW1fZW5hYmxlZD0oW2EtenwwLTldKiknKSk6 OmJvb2xlYW4gIEFORCBjLnJlbHRvYXN0cmVsaWQgPSAwIFRIRU4gdHJ1ZSBF TFNFIGZhbHNlIEVORCkgQVMgdG9hc3RfYXV0b3ZhY2N1bQorRlJPTQorICAg IHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNw IG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lO IHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9Yy5yZWx0YWJsZXNwYWNl CitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMu b2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9MCBBTkQgZGVzLmNsYXNz b2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorTEVGVCBPVVRFUiBKT0lOIHBn X2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5yZWx0b2FzdHJlbGlkCisgICAg V0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAg U0VMRUNUCisgICAgICAgICAgICByLnJ1bGVuYW1lCisgICAgICAgIEZST00K KyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgorICAgICAgICBXSEVSRQorICAg ICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQpCisgICAgICAgICAgICAg ICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKSkgKSkp CisgICAgICAgICAgICBBTkQgKGMucmVsa2luZCA9ICdtJzo6Y2hhcikKKyAg ICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSAlfQor ICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9 CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorT1JE RVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVuZGlmICV9CisKK3slIGVsaWYg dHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAgICBwci5yb2xuYW1lCitG Uk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisgICAgcHIucm9sY2FubG9n aW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQorCit7JSBlbGlmIHR5cGUg PT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBuc3AubnNwbmFtZQorRlJP TQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFCisgICAgKG5zcC5uc3Bu YW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAgICBBTkQgbnNwLm5zcG5h bWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L3BwYXMvOS4zX3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvbXZpZXcvcHBhcy85LjNfcGx1cy9zcWwvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x ODRiYmNkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL212aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3VwZGF0ZS5z cWwKQEAgLTAsMCArMSwxNTQgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09PT09I30KK3slIGltcG9y dCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3sl IGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3JvcycgYXMg UFJJVklMRUdFICV9Cit7JS0gaWYgZGF0YSAtJX0KK3slIHNldCB2aWV3X25h bWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5hbWUg JX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRhdGEu c2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9IGRh dGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRpb24g JX0KK3sjID09PT09IFJlbmFtZSBtYXQgdmlldyA9PT09PSAjfQoreyUgaWYg ZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FM VEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEu c2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyMgPT09 PT0gQWx0ZXIgc2NoZW1hIHZpZXcgPT09PT0gI30KK3slIGlmIGRhdGEuc2No ZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRF UiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNj aGVtYSwgdmlld19uYW1lICkgfX0KKyAgU0VUIFNDSEVNQSB7eyBjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEpIH19OworCit7JSBlbmRpZiAlfQoreyMgPT09 PT0gQWx0ZXIgVGFibGUgb3duZXIgPT09PT0gI30KK3slIGlmIGRhdGEub3du ZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRhLm93bmVyICV9CitBTFRFUiBU QUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkg fX0KKyAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3duZXIpIH19 OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YVsndmFjdXVtX2RhdGEnXVsn cmVzZXQnXXxsZW5ndGggPiAwICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0K K1JFU0VUKAoreyUgZm9yIGZpZWxkIGluIGRhdGFbJ3ZhY3V1bV9kYXRhJ11b J3Jlc2V0J10gJX0KKyAge3sgZmllbGQubmFtZSB9fXslIGlmIG5vdCBsb29w Lmxhc3QgICV9LHslIGVuZGlmICV9e3sgJ1xyJyB9fQoreyUgZW5kZm9yICV9 CispOworeyUgZW5kaWYgJX0KK3sjID09PT09IEZpcnN0IERyb3AgYW5kIHRo ZW4gY3JlYXRlIG1hdCB2aWV3ID09PT09ICN9Cit7JSBpZiBkZWYgYW5kIGRl ZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQoreyUgaWYg ZGF0YS5maWxsZmFjdG9yIG9yICggZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hh bmdlZCddfGxlbmd0aCA+IDAgKSAlfQorRFJPUCBNQVRFUklBTElaRUQgVklF VyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX07 CitDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZp ZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CitXSVRIKAoreyUgaWYgZGF0YS5m aWxsZmFjdG9yICV9CisgIEZJTExGQUNUT1IgPSB7eyBkYXRhLmZpbGxmYWN0 b3IgfX17JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ118bGVu Z3RoID4gMCAlfSx7JSBlbmRpZiAlfXt7ICdccicgfX0KK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhWyd2YWN1dW1fZGF0YSddWydjaGFuZ2VkJ118bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIGZpZWxkIGluIGRhdGFbJ3ZhY3V1bV9kYXRhJ11b J2NoYW5nZWQnXSAlfQorICB7eyBmaWVsZC5uYW1lIH19ID0ge3sgZmllbGQu dmFsdWV8bG93ZXIgfX17JSBpZiBub3QgbG9vcC5sYXN0ICAlfSx7JSBlbmRp ZiAlfXt7ICdccicgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKykK KyBBUwore3sgZGVmIH19Cit7JSBpZiBkYXRhLndpdGhfZGF0YSAlfQorIFdJ VEggREFUQTsKKworeyUgZWxzZSAlfQorIFdJVEggTk8gREFUQTsKKworeyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBlbHNlICV9Cit7IyA9PT09PT09 IEFsdGVyIFRhYmxlc3BhY2UgPT09PT09PT09ICN9Cit7JS0gaWYgZGF0YS5z cGNvaWQgYW5kIG9fZGF0YS5zcGNvaWQgIT0gZGF0YS5zcGNvaWQgIC0lfQor QUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgIFNFVCBUQUJMRVNQQUNFIHt7IGRh dGEuc3Bjb2lkIH19OworCit7JSBlbmRpZiAlfQoreyMgPT09PT09PSBTRVQv UkVTRVQgRmlsbGZhY3RvciA9PT09PT09PT0gI30KK3slIGlmIGRhdGEuZmls bGZhY3RvciBhbmQgb19kYXRhLmZpbGxmYWN0b3IgIT0gZGF0YS5maWxsZmFj dG9yICV9CitBTFRFUiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK1NFVChGSUxMRkFDVE9S ID0ge3sgZGF0YS5maWxsZmFjdG9yIH19KTsKKworeyUgZWxpZiBkYXRhLmZp bGxmYWN0b3IgPT0gJycgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBWSUVXIHt7 IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorUkVT RVQoCisgIEZJTExGQUNUT1IKKyk7CisKK3slIGVuZGlmICV9Cit7IyA9PT09 PSBDaGVjayBmb3Igd2l0aF9kYXRhIHByb3BlcnR5ID09PT09ICN9Cit7JSBp ZiBkYXRhLndpdGhfZGF0YSBpcyBkZWZpbmVkIGFuZCBvX2RhdGEud2l0aF9k YXRhfGxvd2VyICE9IGRhdGEud2l0aF9kYXRhfGxvd2VyICAlfQorUkVGUkVT SCBNQVRFUklBTElaRUQgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hl bWEsIHZpZXdfbmFtZSkgfX0gV0lUSHt7ICcgTk8nIGlmIGRhdGEud2l0aF9k YXRhfGxvd2VyID09ICdmYWxzZScgZWxzZSAnJyB9fSBEQVRBOworCit7JSBl bmRpZiAlfQoreyMgPT09PT0gQ2hlY2sgZm9yIFRhYmxlIHRhYiBwcm9wZXJ0 aWVzID09PT09ICN9Cit7JSBpZiBkYXRhLmF1dG92YWN1dW1fY3VzdG9tIGlz IGRlZmluZWQgYW5kIGRhdGEuYXV0b3ZhY3V1bV9jdXN0b218bG93ZXIgPT0g J2ZhbHNlJyAlfQorQUxURVIgTUFURVJJQUxJWkVEIFZJRVcge3sgY29ubnxx dElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CitSRVNFVCgKKyAg YXV0b3ZhY3V1bV92YWN1dW1fdGhyZXNob2xkLAorICBhdXRvdmFjdXVtX2Fu YWx5emVfdGhyZXNob2xkLAorICBhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9m YWN0b3IsCisgIGF1dG92YWN1dW1fYW5hbHl6ZV9zY2FsZV9mYWN0b3IsCisg IGF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXksCisgIGF1dG92YWN1dW1f dmFjdXVtX2Nvc3RfbGltaXQsCisgIGF1dG92YWN1dW1fZnJlZXplX21pbl9h Z2UsCisgIGF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UsCisgIGF1dG92YWN1 dW1fZnJlZXplX3RhYmxlX2FnZQorKTsKKworeyUgZWxpZihkYXRhWyd2YWN1 dW1fZGF0YSddWydjaGFuZ2VkJ118bGVuZ3RoID4gMCkgJX0KK3slIGlmIGRh dGFbJ3ZhY3V1bV9kYXRhJ11bJ2NoYW5nZWQnXXxsZW5ndGggPT0gMSBhbmQg ZGF0YVsndmFjdXVtX2RhdGEnXVsnY2hhbmdlZCddWzBdWyduYW1lJ10gIT0g J2F1dG92YWN1dW1fZW5hYmxlZCcgJX0KK0FMVEVSIE1BVEVSSUFMSVpFRCBW SUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9 fSBTRVQoCit7JSBmb3IgZmllbGQgaW4gZGF0YVsndmFjdXVtX2RhdGEnXVsn Y2hhbmdlZCddICV9Cit7JSBpZiBmaWVsZC52YWx1ZSAhPSBOb25lICV9Cisg IHt7IGZpZWxkLm5hbWUgfX0gPSB7eyBmaWVsZC52YWx1ZXxsb3dlciB9fXsl IGlmIG5vdCBsb29wLmxhc3QgICV9LHslIGVuZGlmICV9e3sgJ1xyJyB9fQor eyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQorKTsKK3slIGVuZGlmICV9CisK K3slIGVuZGlmICV9eyMgPT09PT0gRW5kIGNoZWNrIGZvciBjdXN0b20gYXV0 b3ZhY2N1bSA9PT09PSAjfQoreyUgZW5kaWYgJX17IyA9PT09PSBFbmQgYmxv Y2sgZm9yIGNoZWNrIGRhdGEgZGVmaW5pdGlvbiA9PT09PSAjfQoreyUtIGlm IGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21tZW50ICE9IG9fZGF0YS5jb21t ZW50IC0lfQorQ09NTUVOVCBPTiBNQVRFUklBTElaRUQgVklFVyB7eyBjb25u fHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgSVMge3sg ZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKKworeyUgZW5kaWYgJX0KK3sj ID09PT09PT09PT09PT0gVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBj aGFuZ2UgcHJpdmlsZWdlcyA9PT09PT09PT09PT09ICN9Cit7JSBpZiBkYXRh LmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuZGF0YWNsICV9 Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5kZWxldGVkICV9Cit7eyBQ UklWSUxFR0UuUkVTRVRBTEwoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVl LCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9 Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5jaGFuZ2VkIC0lfQore3sg UFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5T RVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVt YSkgfX0KK3slLSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRk ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUn LCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09 PT09IFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3Vy aXR5IExhYmVsID09PT09PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMg aXMgbm90IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0K K3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAl fQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy9tdmlldy9wcGFzLzkuM19wbHVzL3NxbC92 aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy9t dmlldy9wcGFzLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTkyYTgwCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL212aWV3 L3BwYXMvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBA QAoreyMgPT09PT0gQmVsb3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxh c3QgY3JlYXRlZCB2aWV3ID09PT0gI30KK3slIGlmIGRhdGEgJX0KK1NFTEVD VCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7 IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvY3NzL3ZpZXcuY3Nz IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvY3NzL3Zp ZXcuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5 ZWFlNGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9jc3Mvdmlldy5jc3MKQEAgLTAsMCArMSwxMiBA QAorLmljb24tdmlld3sKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1 cmxfZm9yKCdOT0RFLXZpZXcuc3RhdGljJywgZmlsZW5hbWU9J2ltZy92aWV3 LnBuZycpIH19JykgIWltcG9ydGFudDsKKyAgYm9yZGVyLXJhZGl1czogMTBw eDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24t Y29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwor ICBoZWlnaHQ6IDEuM2VtOworfQorCisuc3FsX2ZpZWxkX2hlaWdodF8xNDAg eworICBoZWlnaHQ6IDE0MHB4OworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvanMvdmlldy5qcyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L2pzL3ZpZXcuanMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc4YTVhYwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L2pzL3ZpZXcuanMKQEAgLTAsMCArMSwyNjggQEAKK2RlZmluZSgK KyAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0cmlu ZycsICdwZ2FkbWluJywKKyAgICAncGdhZG1pbi5icm93c2VyJywgJ2NvZGVt aXJyb3InLCAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnLCAn cGdhZG1pbi5ub2RlLnJ1bGUnXSwKKworZnVuY3Rpb24oJCwgXywgUywgcGdB ZG1pbiwgcGdCcm93c2VyLCBDb2RlTWlycm9yKSB7CisKKyAgLyoqCisgICAg Q3JlYXRlIGFuZCBhZGQgYSB2aWV3IGNvbGxlY3Rpb24gaW50byBub2Rlcwor ICAgIEBwYXJhbSB7dmFyaWFibGV9IGxhYmVsIC0gTGFiZWwgZm9yIE5vZGUK KyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0eXBlIC0gVHlwZSBvZiBOb2RlCisg ICAgQHBhcmFtIHt2YXJpYWJsZX0gY29sdW1ucyAtIExpc3Qgb2YgY29sdW1u cyB0bworICAgICAgZGlzcGxheSB1bmRlciB1bmRlciBwcm9wZXJ0aWVzLgor ICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtdmlldyddKSB7 CisgICAgdmFyIHZpZXdzPSBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwt dmlldyddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4 dGVuZCh7CisgICAgICAgIG5vZGU6ICd2aWV3JywKKyAgICAgICAgbGFiZWw6 ICd7eyBfKCJWaWV3cyIpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtdmll dycsCisgICAgICAgIGNvbHVtbnM6IFsibmFtZSIsICJvd25lciJdCisgICAg ICB9KTsKKyAgfQorCisgIC8qKgorICAgIENyZWF0ZSBhbmQgQWRkIGEgVmll dyBOb2RlIGludG8gbm9kZXMKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBwYXJl bnRfdHlwZSAtIFRoZSBsaXN0IG9mIG5vZGVzCisgICAgdW5kZXIgd2hpY2gg dGhpcyBub2RlIHRvIGRpc3BsYXkKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSB0 eXBlIC0gVHlwZSBvZiBOb2RlCisgICAgQHBhcmFtIHt2YXJpYWJsZX0gaGFz U1FMIC0gVG8gc2hvdyBTUUwgdGFiCisgICAgQHBhcmFtIHt2YXJpYWJsZX0g Y2FuRHJvcCAtIEFkZHMgZHJvcCB2aWV3IG9wdGlvbgorICAgIGluIHRoZSBj b250ZXh0IG1lbnUKKyAgICBAcGFyYW0ge3ZhcmlhYmxlfSBjYW5Ecm9wQ2Fz Y2FkZSAtIEFkZHMgZHJvcCBDYXNjYWRlCisgICAgdmlldyBvcHRpb24gaW4g dGhlIGNvbnRleHQgbWVudQorICAgKi8KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ3ZpZXcnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1sndmll dyddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAgIHBh cmVudF90eXBlOiBbJ3NjaGVtYScsICdjYXRhbG9nJ10sCisgICAgICB0eXBl OiAndmlldycsCisgICAgICBzcWxBbHRlckhlbHA6ICdzcWwtYWx0ZXJ2aWV3 Lmh0bWwnLAorICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVhdGV2aWV3 Lmh0bWwnLAorICAgICAgbGFiZWw6ICd7eyBfKCJWaWV3IikgfX0nLAorICAg ICAgaGFzU1FMOiAgdHJ1ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUsCisg ICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLXZpZXcnLAorICAgICAgY2Fu RHJvcDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3As CisgICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hl bWEnXS5jYW5DaGlsZERyb3AsCisgICAgICBJbml0OiBmdW5jdGlvbigpIHsK KworICAgICAgICAvLyBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24gb2Yg bWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAg ICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVl OworCisgICAgICAgIC8qKgorICAgICAgICAgIEFkZCAiY3JlYXRlIHZpZXci IG1lbnUgb3B0aW9uIGludG8gY29udGV4dCBhbmQgb2JqZWN0IG1lbnUKKyAg ICAgICAgICBmb3IgdGhlIGZvbGxvd2luZyBub2RlczoKKyAgICAgICAgICBj b2xsLXZpZXcsIHZpZXcgYW5kIHNjaGVtYS4KKyAgICAgICAgICBAcHJvcGVy dHkge2RhdGF9IC0gQWxsb3cgY3JlYXRlIHZpZXcgb3B0aW9uIG9uIHNjaGVt YSBub2RlIG9yCisgICAgICAgICAgc3lzdGVtIHZpZXcgbm9kZXMuCisgICAg ICAgICAqLworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAg ICAgICAgbmFtZTogJ2NyZWF0ZV92aWV3X29uX2NvbGwnLCBub2RlOiAnY29s bC12aWV3JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsn b2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9w ZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9y aXR5OiAxLCBsYWJlbDogJ3t7IF8oIlZpZXcuLi4iKSB9fScsCisgICAgICAg ICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXZpZXcnLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTog J2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2Ny ZWF0ZV92aWV3Jywgbm9kZTogJ3ZpZXcnLCBtb2R1bGU6IHRoaXMsCisgICAg ICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFj azogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5 OiAnY3JlYXRlJywgcHJpb3JpdHk6IDEsIGxhYmVsOiAne3sgXygiVmlldy4u LiIpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tdmll dycsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisg ICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAg ICAgICAgICBuYW1lOiAnY3JlYXRlX3ZpZXcnLCBub2RlOiAnc2NoZW1hJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiAxNywg bGFiZWw6ICd7eyBfKCJWaWV3Li4uIikgfX0nLAorICAgICAgICAgIGljb246 ICd3Y1RhYkljb24gaWNvbi12aWV3JywgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZScsIGNoZWNrOiBmYWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3Jl YXRlJworICAgICAgICB9CisgICAgICAgIF0pOworICAgICAgfSwKKworICAg ICAgLyoqCisgICAgICAgIERlZmluZSBtb2RlbCBmb3IgdGhlIHZpZXcgbm9k ZSBhbmQgc3BlY2lmeSB0aGUKKyAgICAgICAgcHJvcGVydGllcyBvZiB0aGUg bW9kZWwgaW4gc2NoZW1hLgorICAgICAgICovCisgICAgICBtb2RlbDogcGdB ZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgaW5p dGlhbGl6ZTogZnVuY3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2 YXIgaXNOZXcgPSAoXy5zaXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAg aWYgKGlzTmV3KSB7CisgICAgICAgICAgICAvLyBTZXQgU2VsZWN0ZWQgU2No ZW1hCisgICAgICAgICAgICBzY2hlbWFfaWQgPSBhcmdzLm5vZGVfaW5mby5z Y2hlbWEuX2lkOworICAgICAgICAgICAgdGhpcy5zZXQoeydzY2hlbWEnOiBz Y2hlbWFfaWR9LCB7c2lsZW50OiB0cnVlfSk7CisKKyAgICAgICAgICAgIC8v IFNldCBDdXJyZW50IFVzZXIKKyAgICAgICAgICAgIHZhciB1c2VySW5mbyA9 IHBnQnJvd3Nlci5zZXJ2ZXJJbmZvW2FyZ3Mubm9kZV9pbmZvLnNlcnZlci5f aWRdLnVzZXI7CisgICAgICAgICAgICB0aGlzLnNldCh7J293bmVyJzogdXNl ckluZm8ubmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9Cisg ICAgICAgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBl LmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAg fSwKKyAgICAgICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScs IGxhYmVsOiAne3sgXygiTmFtZSIpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2luU2NoZW1hJwor ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdvaWQnLCBs YWJlbDone3sgXygiT0lEIikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3By b3BlcnRpZXMnXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg aWQ6ICdvd25lcicsIGxhYmVsOid7eyBfKCJPd25lciIpIH19JywgY2VsbDog J3N0cmluZycsIGNvbnRyb2w6ICdub2RlLWxpc3QtYnktbmFtZScsCisgICAg ICAgICAgbm9kZTogJ3JvbGUnLCBkaXNhYmxlZDogJ2luU2NoZW1hJworICAg ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzY2hlbWEnLCBs YWJlbDone3sgXygiU2NoZW1hIikgfX0nLCBjZWxsOiAnc3RyaW5nJywgZmly c3RfZW1wdHk6IGZhbHNlLAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWxp c3QtYnktaWQnLCB0eXBlOiAndGV4dCcsIGNhY2hlX2xldmVsOiAnZGF0YWJh c2UnLAorICAgICAgICAgIG5vZGU6ICdzY2hlbWEnLCBkaXNhYmxlZDogJ2lu U2NoZW1hJywgbW9kZTogWydjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICB9 LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzeXN0ZW1fdmlldycsIGxh YmVsOid7eyBfKCJTeXN0ZW0gdmlldz8iKSB9fScsIGNlbGw6ICdzdHJpbmcn LAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBkaXNhYmxlZDogdHJ1ZSwg bW9kZTogWydwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAnYWNsJywgbGFiZWw6ICd7eyBfKCJQcml2aWxlZ2Vz IikgfX0nLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddLCB0eXBl OiAndGV4dCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlk OiAnY29tbWVudCcsIGxhYmVsOid7eyBfKCJDb21tZW50IikgfX0nLCBjZWxs OiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAnbXVsdGlsaW5lJywgZGlz YWJsZWQ6ICdpblNjaGVtYScKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg ICAgICAgIGlkOiAnc2VjdXJpdHlfYmFycmllcicsIGxhYmVsOid7eyBfKCJT ZWN1cml0eSBiYXJyaWVyIikgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAnc3dpdGNoJywgbWluX3ZlcnNpb246ICc5MDIwMCcsIG1v ZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBncm91cDogJ0Rl ZmluaXRpb24nLCBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9LAor ICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjaGVja19vcHRpb24nLCBsYWJl bDone3sgXygiQ2hlY2sgb3B0aW9ucyIpIH19JywKKyAgICAgICAgICBjb250 cm9sOiAnc2VsZWN0MicsIGdyb3VwOiAnRGVmaW5pdGlvbicsIHR5cGU6ICd0 ZXh0JywKKyAgICAgICAgICBtaW5fdmVyc2lvbjogJzkwNDAwJywgbW9kZTpb J3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwKKyAgICAgICAgICBz ZWxlY3QyOiB7CisKKyAgICAgICAgICAgIC8vIHNldCBzZWxlY3QyIG9wdGlv biB3aWR0aCB0byAxMDAlCisgICAgICAgICAgICB3aWR0aDogJzEwMCUnCisg ICAgICAgICAgfSwKKyAgICAgICAgICBvcHRpb25zOlsKKyAgICAgICAgICAg IHtsYWJlbDogIk5vIiwgdmFsdWU6ICJubyJ9LAorICAgICAgICAgICAge2xh YmVsOiAiTG9jYWwiLCB2YWx1ZTogImxvY2FsIn0sCisgICAgICAgICAgICB7 bGFiZWw6ICJDYXNjYWRlZCIsIHZhbHVlOiAiY2FzY2FkZWQifQorICAgICAg ICAgIF0sIGRpc2FibGVkOiAnaW5TY2hlbWEnCisgICAgICAgIH0sCisgICAg ICAgIHsKKyAgICAgICAgICBpZDogJ2RlZmluaXRpb24nLCBsYWJlbDone3sg XygiRGVmaW5pdGlvbiIpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ2NyZWF0ZScsICdlZGl0J10sIGdy b3VwOiAnRGVmaW5pdGlvbicsCisgICAgICAgICAgY29udHJvbDogQmFja2Zv cm0uU3FsRmllbGRDb250cm9sLCBleHRyYUNsYXNzZXM6WydzcWxfZmllbGRf aGVpZ2h0XzE0MCddLAorICAgICAgICAgIGRpc2FibGVkOiAnaW5TY2hlbWEn CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3NlY3Vy aXR5JywgbGFiZWw6ICd7eyBfKCJTZWN1cml0eSIpIH19JywKKyAgICAgICAg ICB0eXBlOiAnZ3JvdXAnLAorICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9u KG0pIHsKKyAgICAgICAgICAgIGlmIChtLnRvcCAmJiAnY2F0YWxvZycgaW4g bS50b3Aubm9kZV9pbmZvKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor ICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAgICAgICAvLyBBZGQgUHJp dmlsZWdlIENvbnRyb2wKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnZGF0 YWNsJywgbGFiZWw6ICd7eyBfKCJQcml2aWxlZ2VzIikgfX0nLAorICAgICAg ICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Qcml2aWxlZ2VSb2xl TW9kZWwuZXh0ZW5kKAorICAgICAgICAgICAge3ByaXZpbGVnZXM6IFsnYScs ICdyJywgJ3cnLCAnZCcsICdEJywgJ3gnLCAndCddfSksIHVuaXF1ZUNvbCA6 IFsnZ3JhbnRlZSddLAorICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlw ZTogJ2NvbGxlY3Rpb24nLCBncm91cDogJ3NlY3VyaXR5JywKKyAgICAgICAg ICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sIGNhbkFkZDogdHJ1ZSwgY2Fu RGVsZXRlOiB0cnVlLAorICAgICAgICAgIGNvbnRyb2w6ICd1bmlxdWUtY29s LWNvbGxlY3Rpb24nLCBkaXNhYmxlZDogJ2luU2NoZW1hJworICAgICAgICB9 LAorCisgICAgICAgIC8vIEFkZCBTZWN1cml0eSBMYWJlbHMgQ29udHJvbAor ICAgICAgICB7CisgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMnLCBsYWJlbDog J3t7IF8oIlNlY3VyaXR5IGxhYmVscyIpIH19JywKKyAgICAgICAgICBtb2Rl bDogQmFja2Zvcm0uU2VjdXJpdHlNb2RlbCwgZWRpdGFibGU6IGZhbHNlLCB0 eXBlOiAnY29sbGVjdGlvbicsCisgICAgICAgICAgY2FuRWRpdDogZmFsc2Us IGdyb3VwOiAnc2VjdXJpdHknLCBjYW5EZWxldGU6IHRydWUsCisgICAgICAg ICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUsIGRp c2FibGVkOiAnaW5TY2hlbWEnLAorICAgICAgICAgIGNvbnRyb2w6ICd1bmlx dWUtY29sLWNvbGxlY3Rpb24nLCB1bmlxdWVDb2wgOiBbJ3Byb3ZpZGVyJ10K KyAgICAgICAgfSwKKyAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1 bmN0aW9uKCkgeworCisgICAgICAgICAgLy8gVHJpZ2dlcnMgc3BlY2lmaWMg ZXJyb3IgbWVzc2FnZXMgZm9yIGZpZWxkcworICAgICAgICAgIHZhciBlcnIg PSB7fSwKKyAgICAgICAgICAgIGVycm1zZywKKyAgICAgICAgICAgIGZpZWxk X25hbWUgPSB0aGlzLmdldCgnbmFtZScpLAorICAgICAgICAgICAgZmllbGRf ZGVmID0gdGhpcy5nZXQoJ2RlZmluaXRpb24nKTsKKyAgICAgICAgICBpZiAo Xy5pc1VuZGVmaW5lZChmaWVsZF9uYW1lKSB8fCBfLmlzTnVsbChmaWVsZF9u YW1lKSB8fAorICAgICAgICAgICAgU3RyaW5nKGZpZWxkX25hbWUpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVy clsnbmFtZSddID0gJ3t7IF8oIlBsZWFzZSBzcGVjaWZ5IG5hbWUuIikgfX0n OworICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsnbmFtZSdd OworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIGVy cm1zZyk7CisgICAgICAgICAgICByZXR1cm4gZXJybXNnOworICAgICAgICAg IH1lbHNleworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnVuc2V0KCdu YW1lJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmKHRoaXMuaXNOZXco KSl7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChmaWVsZF9kZWYp IHx8IF8uaXNOdWxsKGZpZWxkX2RlZikgfHwKKyAgICAgICAgICAgICAgU3Ry aW5nKGZpZWxkX2RlZikucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAn JykgeworICAgICAgICAgICAgICBlcnJbJ2RlZmluaXRpb24nXSA9ICd7eyBf KCJQbGVhc2UgZW50ZXIgZnVuY3Rpb24gZGVmaW5pdGlvbi4iKSB9fSc7Cisg ICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2RlZmluaXRp b24nXTsKKyAgICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnZGVm aW5pdGlvbicsIGVycm1zZyk7CisgICAgICAgICAgICAgIHJldHVybiBlcnJt c2c7CisgICAgICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLnVuc2V0KCdkZWZpbml0aW9uJyk7CisgICAgICAgICAgICB9 CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg ICB9LAorICAgICAgICAvLyBXZSB3aWxsIGRpc2FibGUgZXZlcnl0aGluZyBp ZiB3ZSBhcmUgdW5kZXIgY2F0YWxvZyBub2RlCisgICAgICAgIGluU2NoZW1h OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAm JiAnY2F0YWxvZycgaW4gdGhpcy5ub2RlX2luZm8pCisgICAgICAgICAgewor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfSksCisKKyAg ICAgIC8qKgorICAgICAgICBTaG93IG9yIGhpZGUgY3JlYXRlIHZpZXcgbWVu dSBvcHRpb24gb24gcGFyZW50IG5vZGUKKyAgICAgICAgYW5kIGhpZGUgZm9y IHN5c3RlbSB2aWV3IGluIGNhdGFsb2dzLgorICAgICAgICovCisgICAgICBj YW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisK KyAgICAgICAgLy8gSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiwgd2Ugd2lsbCBh bGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmNo ZWNrID09IGZhbHNlKQorICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAg ICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsIGkgPSBpdGVtLCBkID0gaXRl bURhdGE7CisKKyAgICAgICAgLy8gVG8gaXRlcmF0ZSBvdmVyIHRyZWUgdG8g Y2hlY2sgcGFyZW50IG5vZGUKKyAgICAgICAgd2hpbGUgKGkpIHsKKworICAg ICAgICAgIC8vIElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8g Y3JlYXRlIHZpZXcKKyAgICAgICAgICBpZiAoXy5pbmRleE9mKFsnc2NoZW1h J10sIGQuX3R5cGUpID4gLTEpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK KworICAgICAgICAgIGlmICgnY29sbC12aWV3JyA9PSBkLl90eXBlKSB7CisK KyAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIGFyZSBub3QgY2hpbGQgb2Yg dmlldworICAgICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJlbnQoaSkgPyB0 LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2QgPSBwcmV2 X2kgPyB0Lml0ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAg aWYoIHByZXZfZC5fdHlwZSA9PSAnY2F0YWxvZycpIHsKKyAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg ICAgfQorICAgICAgICAgIGkgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50 KGkpIDogbnVsbDsKKyAgICAgICAgICBkID0gaSA/IHQuaXRlbURhdGEoaSkg OiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgLy8gYnkgZGVmYXVsdCB3 ZSBkbyBub3Qgd2FudCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICBy ZXR1cm4gdHJ1ZTsKKworICAgICAgfQorICB9KTsKKyAgfQorCisgIHJldHVy biBwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtdmlldyddOworfSk7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjFfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NTA2MzkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjFfcGx1cy9zcWwvYWNsLnNxbApAQCAtMCwwICsxLDUxIEBACit7 IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IEdldCBBQ0xzID09PT09 PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNU CisgICAgJ2RhdGFjbCcgYXMgZGVmdHlwZSwKKyAgICBDT0FMRVNDRShndC5y b2xuYW1lLCAncHVibGljJykgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgZ3Jh bnRvciwKKyAgICBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIGFzIHByaXZp bGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgYXMgZ3JhbnRh YmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQu Z3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2 aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisg ICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBU SEVOICdyJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAg ICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1RS VU5DQVRFJyBUSEVOICdEJworICAgICAgICBFTFNFICdVTktOT1dOJworICAg ICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAg IChTRUxFQ1QKKyAgICAgICAgICAgIHJlbGFjbAorICAgICAgICBGUk9NCisg ICAgICAgICAgICBwZ19jbGFzcyBjbAorICAgICAgICBMRUZUIE9VVEVSIEpP SU4gcGdfc2hkZXNjcmlwdGlvbiBkZXNjciBPTiAoCisgICAgICAgICAgICBj bC5vaWQ9ZGVzY3Iub2Jqb2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xh c3MnOjpyZWdjbGFzcykKKyAgICAgICAgV0hFUkUKKyAgICAgICAgICAgIGNs Lm9pZCA9IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3YnCisgICAg ICAgICkgYWNsLAorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCku Z3JhbnRlZSBBUyBncmFudGVlLAorICAgICAgICAgICAgKGQpLmdyYW50b3Ig QVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMg aXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBl IEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAg IChTRUxFQ1QKKyAgICAgICAgICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkg QVMgZAorICAgICAgICAgICAgIEZST00KKyAgICAgICAgICAgICAgICBwZ19j bGFzcyBjbDEKKyAgICAgICAgICAgICBXSEVSRQorICAgICAgICAgICAgICAg IGNsMS5vaWQgPSB7eyB2aWQgfX0KKyAgICAgICAgICAgICkgYQorICAgICAg ICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4g cGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lk KQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsIGd0LnJvbG5hbWUKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvY3JlYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3Nx bC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmIxMWJjOGUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvY3JlYXRl LnNxbApAQCAtMCwwICsxLDIwIEBACit7Iz09PT09PT09PT09PT09PT09PT09 PT09PT09PT1DcmVhdGUgbmV3IHZpZXc9PT09PT09PT09PT09PT09PT09PT09 PT09I30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0KKy0tIFZpZXc6IHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCist LSBEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh Lm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFu ZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUg T1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKSB9fSBBUwore3sgZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgn OycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitBTFRFUiBUQUJMRSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAg ICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7 IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9kZWxldGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMv c3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5yZWxu YW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19j bGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJlbG5h bWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9kZSA9 IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9CitE Uk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUpIH19 IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMV9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9wbHVz L3NxbC9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3Fs L2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBv aWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvZ3Jh bnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4xX3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41OWEzMTBmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3Bs dXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYgQEAKK3sjID09PT09IEdy YW50IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMg PT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3Jvcycg YXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJp dmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3 aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9 PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX17JSBmb3IgciBpbiBk YXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVX JywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9 fXslIGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9e3sgUFJJVklMRUdFLlNF VChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1h KSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9z cWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UxZDgwMQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BnLzkuMV9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAtMCww ICsxLDY5IEBACit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBz Y2lkICV9CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAg KENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVOIHNwYy5z cGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFtZSwKKyAg ICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBuc3AubnNwbmFtZSBBUyBzY2hl bWEsCisgICAgZGVzY3JpcHRpb24gQVMgY29tbWVudCwKKyAgICBjLnJlbHRh Ymxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJl bG93bmVyKSBBUyBvd25lciwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwg dHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICBhcnJheV90b19zdHJpbmcoYy5y ZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAgIHsjPT09PT09PT09 PT09PUNoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09 PT0jfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAg IENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4g VHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBl bmRpZiAlfQorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKGxhYmVs KQorICAgICBGUk9NCisgICAgICAgIHBnX3NlY2xhYmVscyBzbDEKKyAgICAg V0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1jLm9pZCBBTkQgc2wxLm9ianN1 YmlkPTAKKyAgICApIEFTIGxhYmVscywKKyAgICAoU0VMRUNUCisgICAgICAg IGFycmF5X2FnZyhwcm92aWRlcikKKyAgICAgRlJPTQorICAgICAgICBwZ19z ZWNsYWJlbHMgc2wyCisgICAgIFdIRVJFIHNsMi5vYmpvaWQ9Yy5vaWQgQU5E IHNsMi5vYmpzdWJpZD0wCisgICAgKSBBUyBwcm92aWRlcnMKK0ZST00gcGdf Y2xhc3MgYworICAgIExFRlQgT1VURVIgSk9JTiBwZ19uYW1lc3BhY2UgbnNw IG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQorICAgIExFRlQgT1VURVIg Sk9JTiBwZ190YWJsZXNwYWNlIHNwYyBvbiBzcGMub2lkPWMucmVsdGFibGVz cGFjZQorICAgIExFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMg T04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJpZD0wIEFORCBk ZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitXSEVSRSAoKGMu cmVsaGFzcnVsZXMKKyAgICAgICAgICAgIEFORAorICAgICAgICAgICAgICAg IChFWElTVFMoCisgICAgICAgICAgICAgICAgICAgIFNFTEVDVAorICAgICAg ICAgICAgICAgICAgICAgICAgci5ydWxlbmFtZQorICAgICAgICAgICAgICAg ICAgICBGUk9NCisgICAgICAgICAgICAgICAgICAgICAgICBwZ19yZXdyaXRl IHIKKyAgICAgICAgICAgICAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICAg ICAgICAgICAgICgoci5ldl9jbGFzcyA9IGMub2lkKSBBTkQgKGJwY2hhcihy LmV2X3R5cGUpID0gJzEnOjpicGNoYXIpKQorICAgICAgICAgICAgICAgICkp CisgICAgICAgKSBBTkQgKGMucmVsa2luZCA9ICd2Jzo6Y2hhcikpCit7JSBp ZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9 IHt7dmlkfX06Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVs bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZCBPUkRFUiBCWSBjLnJlbG5hbWUK K3slIGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitT RUxFQ1QKKyAgICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIK K1dIRVJFCisgICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIu cm9sbmFtZQorCit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxF Q1QKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBu c3AKK1dIRVJFCisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8l JworICAgICAgICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3Nj aGVtYScpCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3BsdXMvc3FsL3VwZGF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjFfcGx1cy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yZjdmODJlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4xX3Bs dXMvc3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw2NiBAQAoreyMgPT09PT09 PT09PT09PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09 PT09PT09PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9z Y2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUg aWYgZGF0YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBk YXRhLm5hbWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2No ZW1hID0gZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEu c2NoZW1hICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJp cCgnOycpIGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1l IGFuZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcg e3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9 fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5z Y2hlbWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25u fHF0SWRlbnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBT RVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAh PSBvX2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVu dCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7 IGNvbm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7 JSBpZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAo JzsnKSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBBU3t7IGRlZiB9 fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEu Y29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVX IHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQor ICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRp ZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2Ug cHJpdmlsZWdlcyAjfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5kYXRhY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNj aGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5kYXRhY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNj aGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJp di5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJp di53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5u YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0 YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFu Z2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlz IG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9 Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0K K3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBh bmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNv bm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjFfcGx1cy9zcWwvdmlld19p ZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjFfcGx1cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNmRmZjA0ZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMV9w bHVzL3NxbC92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjIEJlbG93 IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBuZXdseSBjcmVhdGVkIHZpZXcg I30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNz IGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL2FjbC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwv YWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 ZjJkMGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL2FjbC5zcWwKQEAg LTAsMCArMSw1MiBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PSBHZXQgQUNMcyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBp ZiB2aWQgJX0KK1NFTEVDVAorICAgICdkYXRhY2wnIGFzIGRlZnR5cGUsCisg ICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisg ICAgZy5yb2xuYW1lIGdyYW50b3IsCisgICAgYXJyYXlfYWdnKHByaXZpbGVn ZV90eXBlKSBhcyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFu dGFibGUpIGFzIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAg ICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAg ICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnREVM RVRFJyBUSEVOICdkJworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2En CisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAg IFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVFJJR0dF UicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3Jwor ICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAgRUxT RSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisg ICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wK KyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfY2xhc3MgY2wKKyAgICAg ICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3IgT04g KAorICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVzY3Iu Y2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgIFdIRVJF CisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQgfX06Ok9JRCBBTkQgcmVs a2luZCA9ICd2JworICAgICAgICApIGFjbCwKKyAgICAgICAgKFNFTEVDVAor ICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwKKyAgICAgICAg ICAgIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCku aXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChk KS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBG Uk9NCisgICAgICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAgICAgYWNs ZXhwbG9kZShyZWxhY2wpIEFTIGQKKyAgICAgICAgICAgICBGUk9NCisgICAg ICAgICAgICAgICAgcGdfY2xhc3MgY2wxCisgICAgICAgICAgICAgV0hFUkUK KyAgICAgICAgICAgICAgICBjbDEub2lkID0ge3sgdmlkIH19CisgICAgICAg ICAgICApIGEKKyAgICAgICAgKSBkCisgICAgKSBkCitMRUZUIEpPSU4gcGdf Y2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKK0xF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUg PSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAgICBndC5y b2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjJfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40ZmZiNzJmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3Bs dXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyMyBAQAoreyM9PT09PT09 PT09PT09PT09PT09PT09PT09PT09Q3JlYXRlIG5ldyB2aWV3PT09PT09PT09 PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5X2NvbW1lbnRzICV9 CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRhdGEuZGVmaW5pdGlv biAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX17JSBpZiAoZGF0YS5zZWN1cml0 eV9iYXJyaWVyKSAlfXt7J1xyJ319CitXSVRIICgKK3slIGlmIGRhdGEuc2Vj dXJpdHlfYmFycmllciAlfSAgICBzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9e3snXHInfX0K Kyl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgn OycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitBTFRFUiBUQUJMRSB7 eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAg ICBPV05FUiBUTyB7eyBkYXRhLm93bmVyIH19OworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7 IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9kZWxldGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMv c3FsL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09 PT09PT0gRHJvcC9DYXNjYWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5yZWxu YW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19j bGFzcyBjCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJlbG5h bWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9kZSA9 IHt7IHZpZCB9fTsKK3slIGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9CitE Uk9QIFZJRVcge3tuc3BuYW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUpIH19 IHslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVz L3NxbC9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3Fs L2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg bnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBv aWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvZ3Jh bnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4yX3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41OWEzMTBmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3Bs dXMvc3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYgQEAKK3sjID09PT09IEdy YW50IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMg PT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3Jvcycg YXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJp dmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3 aWxsIGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9 PT09PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX17JSBmb3IgciBpbiBk YXRhLnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVX JywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9 fXslIGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5kYXRhY2wgJX0K K3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9e3sgUFJJVklMRUdFLlNF VChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1h KSB9fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9z cWwvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlYjNkZgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BnLzkuMl9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAtMCww ICsxLDcwIEBACit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBz Y2lkICV9CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAg Yy5yZWxuYW1lIEFTIG5hbWUsCisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNw Y29pZCwKKyAgICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAw IFRIRU4gc3BjLnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBz cGNuYW1lLAorICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBv d25lciwKKyAgICBkZXNjcmlwdGlvbiBBcyBjb21tZW50LAorICAgIHBnX2dl dF92aWV3ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAorICAgIG5z cC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICBhcnJheV90b19zdHJpbmcoYy5y ZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAgIHsjPT09PT09PT09 PT09PUNoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldz09PT09PT09PT09PT09 PT0jfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAg IENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4g VHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBl bmRpZiAlfQorKFNFTEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00K KyAgICBwZ19zZWNsYWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9 Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNU CisgICAgYXJyYXlfYWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xh YmVscyBzbDIKK1dIRVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wy Lm9ianN1YmlkPTApIEFTIHByb3ZpZGVycywKKyAgICAoc3Vic3RyaW5nKGFy cmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMsICcsJykKKyAgICAgICAgRlJP TSAnc2VjdXJpdHlfYmFycmllcj0oW2EtenwwLTldKiknKSk6OmJvb2xlYW4g QVMgc2VjdXJpdHlfYmFycmllcgorRlJPTSBwZ19jbGFzcyBjCitMRUZUIE9V VEVSIEpPSU4gcGdfbmFtZXNwYWNlIG5zcCBvbiBuc3Aub2lkID0gYy5yZWxu YW1lc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ190YWJsZXNwYWNlIHNwYyBv biBzcGMub2lkPWMucmVsdGFibGVzcGFjZQorTEVGVCBPVVRFUiBKT0lOIHBn X2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1jLm9pZCBhbmQgZGVz Lm9ianN1YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdj bGFzcykKKyAgICBXSEVSRSAoKGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMg KAorICAgICAgICAgICAgU0VMRUNUCisgICAgICAgICAgICAgICAgci5ydWxl bmFtZQorICAgICAgICAgICAgRlJPTQorICAgICAgICAgICAgICAgIHBnX3Jl d3JpdGUgcgorICAgICAgICAgICAgV0hFUkUKKyAgICAgICAgICAgICAgICAo KHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAgICAgICAgICAgICAgICAgQU5E IChicGNoYXIoci5ldl90eXBlKSA9ICcxJzo6YnBjaGFyKQorICAgICAgICAg ICAgICAgICkgKSkKKyAgICAgICAgICAgKSBBTkQgKGMucmVsa2luZCA9ICd2 Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRsYXN0 c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAoreyUg ZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tzY2lk fX06Om9pZCBPUkRFUiBCWSBjLnJlbG5hbWUKK3slIGVuZGlmICV9CisKK3sl IGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAgICBwci5yb2xu YW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisgICAgcHIucm9s Y2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQorCit7JSBlbGlm IHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBuc3AubnNwbmFt ZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJFCisgICAgKG5z cC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAgICBBTkQgbnNw Lm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS4yX3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j MzdkNGJhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4yX3BsdXMvc3FsL3VwZGF0ZS5zcWwK QEAgLTAsMCArMSw3NCBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xB QkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYgZGF0YSAlfQoreyUgc2V0 IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5hbWUgZWxzZSBvX2Rh dGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0gZGF0YS5zY2hlbWEg aWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1hICV9Cit7JSBzZXQg ZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIGlmIGRhdGEuZGVm aW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5hbWUgIT0g b19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9f ZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEgIT0gb19kYXRhLnNj aGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRhLnNj aGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEub3duZXIgJX0K K0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmll d19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRh Lm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYgYW5kIGRlZiAh PSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQorQ1JFQVRFIE9S IFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZp ZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5k IGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSBvX2RhdGEuc2VjdXJpdHlfYmFy cmllcikgJX0KKyAgICBXSVRIICh7JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJp ZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmll cnxsb3dlciB9fXslIGVuZGlmICV9KSB7JSBlbmRpZiAlfQorICAgIEFTe3sg ZGVmIH19OworeyUgZWxzZSAlfQoreyUgaWYgKGRhdGEuc2VjdXJpdHlfYmFy cmllciBpcyBkZWZpbmVkIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93 ZXIgIT0gIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyKSAlfQorQUxU RVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1 cml0eV9iYXJyaWVyfGxvd2VyIH19KTsKK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQorCit7JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRhdGEuY29tbWVudCAh PSBvX2RhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBWSUVXIHt7IGNvbm58 cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIElTIHt7 IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQoreyMg VGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWdl cyAjfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGlmICdkZWxldGVkJyBp biBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wu ZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBp biBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wu Y2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRhLnNjaGVtYSkgfX0K K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVl LCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dy YW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBw cml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQor eyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgU2VjdXJp dHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzIGlzIG5vdCBub25l IGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9Cit7JSBzZXQgc2Vj bGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBp biBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAg JX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNM QUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVk JyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KK3t7IFNFQ0xB QkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVy LCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVX JywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1cy9zcWwvdmlld19pZC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjJfcGx1 cy9zcWwvdmlld19pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNmRmZjA0ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuMl9wbHVzL3NxbC92 aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAKK3sjIEJlbG93IHdpbGwgcHJv dmlkZSB2aWV3IGlkIGZvciBuZXdseSBjcmVhdGVkIHZpZXcgI30KK3slIGlm IGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNzIGMgV0hFUkUg Yy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcGcvOS4zX3BsdXMvc3FsL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvYWNsLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NDMwMGNmCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2FjbC5zcWwKQEAgLTAsMCArMSwz OCBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSBHZXQgQUNM cyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0K K1NFTEVDVAorICAgICdkYXRhY2wnIGFzIGRlZnR5cGUsCisgICAgQ09BTEVT Q0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50ZWUsCisgICAgZy5yb2xu YW1lIGdyYW50b3IsCisgICAgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBh cyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIGFz IGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFu dGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNF IGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVO ICdkJworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAg IFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NF TEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAn dCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBX SEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAgRUxTRSAnVU5LTk9X TicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQor ICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICByZWxhY2wKKyAgICAgICAg RlJPTQorICAgICAgICAgICAgcGdfY2xhc3MgY2wKKyAgICAgICAgTEVGVCBP VVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVzY3IgT04gKAorICAgICAg ICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQgZGVzY3IuY2xhc3NvaWQ9 J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAgIFdIRVJFIGNsLm9pZCA9 IHt7IHZpZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3YnCisgICAgICAgICkg YWNsLAorICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkgZAorICAgICkgZAor TEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9y ID0gZy5vaWQpCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBP TiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5h bWUsCisgICAgZ3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuM19w bHVzL3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZmYjcyZgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuM19wbHVzL3NxbC9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjMg QEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcg dmlldz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxh eV9jb21tZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25u fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBk YXRhLmRlZmluaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUgaWYg KGRhdGEuc2VjdXJpdHlfYmFycmllcikgJX17eydccid9fQorV0lUSCAoCit7 JSBpZiBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgJX0gICAgc2VjdXJpdHlfYmFy cmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRp ZiAlfXt7J1xyJ319CispeyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5p dGlvbi5yc3RyaXAoJzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgJX0KKwor QUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRh Lm5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04g VklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvZGVs ZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BnLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmU1MGJlZWMKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNf cGx1cy9zcWwvZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7IyA9PT09 PT09PT09PT09PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5hbWUg PT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVD VAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lCitG Uk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBu c3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAgIGMu cmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFuZCBu c3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58cXRJ ZGVudChuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvZ2V0X3Nj aGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wZy85LjNfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuM19wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAK K1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UK K1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4z X3BsdXMvc3FsL2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rl bXBsYXRlcy92aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlhMzEwZgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BnLzkuM19wbHVzL3NxbC9ncmFudC5zcWwKQEAgLTAsMCArMSw2IEBA Cit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9ucyB0byBVc2VyIFJvbGUgb24g Vmlld3MvVGFibGVzID09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9zY2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQor eyMgPT09PT0gV2Ugd2lsbCBnZW5lcmF0ZSBTZWN1cml0eSBMYWJlbCBTUUwg dXNpbmcgbWFjcm8gPT09PT0gI30KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9 eyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX17eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbCAlfXt7 IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBk YXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50 LCBkYXRhLnNjaGVtYSkgfX17JSBlbmRmb3IgJX17JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cGcvOS4zX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjdmMDMzMDQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjNfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSw3NCBAQAoreyUgaWYgKHZpZCBhbmQgZGF0bGFz dHN5c29pZCkgb3Igc2NpZCAlfQorU0VMRUNUCisgICAgYy5vaWQsCisgICAg Yy54bWluLAorICAgIGMucmVsa2luZCwKKyAgICBkZXNjcmlwdGlvbiwKKyAg ICAoQ0FTRSBXSEVOIGxlbmd0aChzcGMuc3BjbmFtZSkgPiAwIFRIRU4gc3Bj LnNwY25hbWUgRUxTRSAncGdfZGVmYXVsdCcgRU5EKSBhcyBzcGNuYW1lLAor ICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1lIEFTIHNj aGVtYSwKKyAgICBjLnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIGMu cmVsaXNwb3B1bGF0ZWQgQVMgaXNwb3B1bGF0ZWQsCisgICAgcGdfZ2V0X3Vz ZXJieWlkKGMucmVsb3duZXIpIEFTIG93bmVyLAorICAgIGFycmF5X3RvX3N0 cmluZyhjLnJlbGFjbDo6dGV4dFtdLCAnLCAnKSBBUyBhY2wsCisgICAgcGdf Z2V0X3ZpZXdkZWYoYy5vaWQsIHRydWUpIEFTIGRlZmluaXRpb24sCisgICAg eyMgPT09PT0gQ2hlY2tzIGlmIGl0IGlzIHN5c3RlbSB2aWV3ID09PT09ICN9 CisgICAgeyUgaWYgdmlkIGFuZCBkYXRsYXN0c3lzb2lkICV9CisgICAgQ0FT RSBXSEVOIHt7dmlkfX0gPD0ge3tkYXRsYXN0c3lzb2lkfX0gVEhFTiBUcnVl IEVMU0UgRmFsc2UgRU5EIEFTIHN5c3RlbV92aWV3LAorICAgIHslIGVuZGlm ICV9CisoU0VMRUNUCisgICAgYXJyYXlfYWdnKGxhYmVsKQorRlJPTQorICAg IHBnX3NlY2xhYmVscyBzbDEKK1dIRVJFCisgICAgc2wxLm9iam9pZD1jLm9p ZCBBTkQgc2wxLm9ianN1YmlkPTApIEFTIGxhYmVscywKKyhTRUxFQ1QKKyAg ICBhcnJheV9hZ2cocHJvdmlkZXIpCitGUk9NCisgICAgcGdfc2VjbGFiZWxz IHNsMgorV0hFUkUKKyAgICBzbDIub2Jqb2lkPWMub2lkIEFORCBzbDIub2Jq c3ViaWQ9MCkgQVMgcHJvdmlkZXJzLAorICAgIChzdWJzdHJpbmcoYXJyYXlf dG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdz ZWN1cml0eV9iYXJyaWVyPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBz ZWN1cml0eV9iYXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIg Sk9JTiBwZ19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVz cGFjZQorTEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNw Yy5vaWQ9Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVz Y3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jq c3ViaWQ9MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNz KQorTEVGVCBPVVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qub2lkID0g Yy5yZWx0b2FzdHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFO RCAoRVhJU1RTICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICByLnJ1 bGVuYW1lCisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jld3JpdGUg cgorICAgICAgICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2NsYXNzID0g Yy5vaWQpCisgICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBl KSA9ICcxJzo6YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQgKGMucmVs a2luZCA9ICd2Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFu ZCBkYXRsYXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06 Om9pZAoreyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5hbWUKK3sl IGVuZGlmICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxF Q1QKKyAgICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dI RVJFCisgICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9s bmFtZQorCit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QK KyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AK K1dIRVJFCisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJwor ICAgICAgICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVt YScpCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85 LjNfcGx1cy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4wMmQ4ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMv c3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw3NSBAQAoreyMgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09 PT09PT09PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5t YWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hl bWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYg ZGF0YSAlfQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRh Lm5hbWUgZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1h ID0gZGF0YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2No ZW1hICV9Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgn OycpIGlmIGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFu ZCBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sg Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQor ICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsK K3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hl bWEgIT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQg U0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBv X2RhdGEub3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2 aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBp ZiBkZWYgYW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsn KSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLnNlY3Vy aXR5X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciAhPSBvX2Rh dGEuc2VjdXJpdHlfYmFycmllcikgJX0KKyAgICBXSVRIICh7JSBpZiBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5k aWYgJX0KKyAgICBBU3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChk YXRhLnNlY3VyaXR5X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1 cml0eV9iYXJyaWVyfGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmll cnxsb3dlcikgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJy aWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KKworeyUgaWYgZGF0YS5jb21tZW50IGFu ZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQg T04gVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19Owor eyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwg Y2hhbmdlIHByaXZpbGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg ZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2 IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg ZGF0YS5zY2hlbWEpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJM RScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0 YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUs IGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdp bGwgY2hhbmdlIFNlY3VyaXR5IExhYmVsICN9Cit7JSBpZiBkYXRhLnNlY2xh YmVscyBpcyBub3Qgbm9uZSBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4g MCAlfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVs ZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVs ZXRlZCAlfQore3sgU0VDTEFCTEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMu YWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS4zX3BsdXMvc3Fs L3ZpZXdfaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjNfcGx1cy9zcWwvdmlld19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7 IyBCZWxvdyB3aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbmV3bHkgY3JlYXRl ZCB2aWV3ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBw Z19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0n OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9hY2wuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3Bs dXMvc3FsL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uN2Q3OTFmNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9hY2wu c3FsCkBAIC0wLDAgKzEsMzkgQEAKK3sjID09PT09PT09PT09PT09PT09PT09 PT09PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09PT09PT09PT09PSAj fQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0 eXBlLAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFu dGVlLAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhw cml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2co aXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNU CisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJs ZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdI RU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBU SEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4Jwor ICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4g J1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhF TiAndycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAg ICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2Vf dHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAg cmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19jbGFzcyBj bAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24g ZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVzY3Iub2Jqb2lkIEFO RCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKKyAgICAg ICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQgfX06Ok9J RCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwKKyAgICAgICAg YWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xFRlQgSk9JTiBwZ19j YXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9 IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAorICAgIGd0LnJv bG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bn LzkuNF9wbHVzL3NxbC9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmI0M2I1MTkKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1 cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDIyIEBACit7Iz09PT09PT09 PT09PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3IHZpZXc9PT09PT09PT09 PT09PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0K Ky0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9u ICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fXslIGlmICgoZGF0YS5jaGVja19v cHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJykg b3IgZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfXt7ICdcbicgfX1XSVRIICgK K3slIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv bi5sb3dlcigpICE9ICdubycgJX0gICAgY2hlY2tfb3B0aW9uPXt7IGRhdGEu Y2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17eyAnLFxyJyBpZiBkYXRhLmNo ZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24ubG93ZXIoKSAhPSAn bm8nIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgJX0gICAgc2VjdXJpdHlfYmFycmllcj17eyBkYXRh LnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgfX17JSBlbmRpZiAlfXt7J1xyJ319 CispeyUgZW5kaWYgJX0gQVMKK3t7IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAo JzsnKSB9fTsKK3slIGlmIGRhdGEub3duZXIgYW5kIGRhdGEubV92aWV3IGlz IHVuZGVmaW5lZCAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBj b25ufHF0SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgSVMge3sg ZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9z cWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5lNTBiZWVjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2RlbGV0 ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAoreyMgPT09PT09PT09PT09PT09PT09 PT09PSBEcm9wL0Nhc2NhZGUgdmlldyBieSBuYW1lID09PT09PT09PT09PT09 PT09PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5h bWUgQVMgbmFtZSwKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2Ns YXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIGMucmVsbmFt ZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBjLnJlbGZpbGVub2RlID0g e3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RS T1AgVklFVyB7e25zcG5hbWV9fS57eyBjb25ufHF0SWRlbnQobmFtZSkgfX0g eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFIHslIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMv c3FsL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1cy9zcWwv Z2V0X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBu c3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9p ZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9ncmFu dC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w Zy85LjRfcGx1cy9zcWwvZ3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjU5YTMxMGYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1 cy9zcWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsNiBAQAoreyMgPT09PT0gR3Jh bnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xlIG9uIFZpZXdzL1RhYmxlcyA9 PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3sjID09PT09IFdlIHdp bGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVzaW5nIG1hY3JvID09 PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfXslIGZvciByIGluIGRh dGEuc2VjbGFiZWxzICV9e3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcn LCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19 eyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmRhdGFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wgJX17eyBQUklWSUxFR0UuU0VU KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0YS5zY2hlbWEp IH19eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3Nx bC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2Q5NTdmCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcGcvOS40X3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAg KzEsNzcgQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09PT09IEZldGNo IFZpZXcgUHJvcGVydGllcyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9 Cit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBvciBzY2lkICV9CitT RUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisgICAgYy5yZWxraW5k LAorICAgIGRlc2NyaXB0aW9uLAorICAgIChDQVNFIFdIRU4gbGVuZ3RoKHNw Yy5zcGNuYW1lKSA+IDAgVEhFTiBzcGMuc3BjbmFtZSBFTFNFICdwZ19kZWZh dWx0JyBFTkQpIGFzIHNwY25hbWUsCisgICAgYy5yZWxuYW1lIEFTIG5hbWUs CisgICAgYy5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCwKKyAgICBuc3AubnNw bmFtZSBBUyBzY2hlbWEsCisgICAgYy5yZWxpc3BvcHVsYXRlZCBBUyBpc3Bv cHVsYXRlZCwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMg b3duZXIsCisgICAgYXJyYXlfdG9fc3RyaW5nKGMucmVsYWNsOjp0ZXh0W10s ICcsICcpIEFTIGFjbCwKKyAgICBwZ19nZXRfdmlld2RlZihjLm9pZCwgdHJ1 ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7IyA9PT09PSBDaGVja3MgaWYgaXQg aXMgc3lzdGVtIHZpZXcgPT09PT0gI30KKyAgICB7JSBpZiB2aWQgYW5kIGRh dGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2aWR9fSA8PSB7e2Rh dGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBGYWxzZSBFTkQgQVMgc3lz dGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyhTRUxFQ1QKKyAgICBhcnJh eV9hZ2cobGFiZWwpCitGUk9NCisgICAgcGdfc2VjbGFiZWxzIHNsMQorV0hF UkUKKyAgICBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEub2Jqc3ViaWQ9MCkg QVMgbGFiZWxzLAorKFNFTEVDVAorICAgIGFycmF5X2FnZyhwcm92aWRlcikK K0ZST00KKyAgICBwZ19zZWNsYWJlbHMgc2wyCitXSEVSRQorICAgIHNsMi5v YmpvaWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0wKSBBUyBwcm92aWRlcnMs CisgICAgc3Vic3RyaW5nKGFycmF5X3RvX3N0cmluZyhjLnJlbG9wdGlvbnMs ICcsJykKKyAgICAgICAgRlJPTSAnY2hlY2tfb3B0aW9uPShbYS16XSopJykg QVMgY2hlY2tfb3B0aW9uLAorICAgIChzdWJzdHJpbmcoYXJyYXlfdG9fc3Ry aW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9NICdzZWN1cml0 eV9iYXJyaWVyPShbYS16fDAtOV0qKScpKTo6Ym9vbGVhbiBBUyBzZWN1cml0 eV9iYXJyaWVyCitGUk9NIHBnX2NsYXNzIGMKK0xFRlQgT1VURVIgSk9JTiBw Z19uYW1lc3BhY2UgbnNwIG9uIG5zcC5vaWQgPSBjLnJlbG5hbWVzcGFjZQor TEVGVCBPVVRFUiBKT0lOIHBnX3RhYmxlc3BhY2Ugc3BjIG9uIHNwYy5vaWQ9 Yy5yZWx0YWJsZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3JpcHRp b24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIGFuZCBkZXMub2Jqc3ViaWQ9 MCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorTEVG VCBPVVRFUiBKT0lOIHBnX2NsYXNzIHRzdCBPTiB0c3Qub2lkID0gYy5yZWx0 b2FzdHJlbGlkCisgICAgV0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJ U1RTICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICByLnJ1bGVuYW1l CisgICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX3Jld3JpdGUgcgorICAg ICAgICBXSEVSRQorICAgICAgICAgICAgKChyLmV2X2NsYXNzID0gYy5vaWQp CisgICAgICAgICAgICAgICAgQU5EIChicGNoYXIoci5ldl90eXBlKSA9ICcx Jzo6YnBjaGFyKSkgKSkpCisgICAgICAgICAgICBBTkQgKGMucmVsa2luZCA9 ICd2Jzo6Y2hhcikKKyAgICAgICAgICApCit7JSBpZiAodmlkIGFuZCBkYXRs YXN0c3lzb2lkKSAlfQorICAgIEFORCBjLm9pZCA9IHt7dmlkfX06Om9pZAor eyUgZWxpZiBzY2lkICV9CisgICAgQU5EIGMucmVsbmFtZXNwYWNlID0ge3tz Y2lkfX06Om9pZAorT1JERVIgQlkKKyAgICBjLnJlbG5hbWUKK3slIGVuZGlm ICV9CisKK3slIGVsaWYgdHlwZSA9PSAncm9sZXMnICV9CitTRUxFQ1QKKyAg ICBwci5yb2xuYW1lCitGUk9NCisgICAgcGdfcm9sZXMgcHIKK1dIRVJFCisg ICAgcHIucm9sY2FubG9naW4KK09SREVSIEJZCisgICAgcHIucm9sbmFtZQor Cit7JSBlbGlmIHR5cGUgPT0gJ3NjaGVtYXMnICV9CitTRUxFQ1QKKyAgICBu c3AubnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZSBuc3AKK1dIRVJF CisgICAgKG5zcC5uc3BuYW1lIE5PVCBMSUtFIEUncGdcXF8lJworICAgICAg ICBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScpCit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wZy85LjRfcGx1 cy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41NjE4M2ZkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMvc3FsL3Vw ZGF0ZS5zcWwKQEAgLTAsMCArMSw4MiBAQAoreyMgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PSBVcGRhdGUgVmlldyA9PT09PT09PT09PT09PT09PT09 PT09PT09ICN9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3By aXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaWYgZGF0YSAl fQoreyUgc2V0IHZpZXdfbmFtZSA9IGRhdGEubmFtZSBpZiBkYXRhLm5hbWUg ZWxzZSBvX2RhdGEubmFtZSAlfQoreyUgc2V0IHZpZXdfc2NoZW1hID0gZGF0 YS5zY2hlbWEgaWYgZGF0YS5zY2hlbWEgZWxzZSBvX2RhdGEuc2NoZW1hICV9 Cit7JSBzZXQgZGVmID0gZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIGlm IGRhdGEuZGVmaW5pdGlvbiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRh Lm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFZJRVcge3sgY29ubnxx dElkZW50KG9fZGF0YS5zY2hlbWEsIG9fZGF0YS5uYW1lKSB9fQorICAgIFJF TkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEgIT0g b19kYXRhLnNjaGVtYSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnNjaGVtYSwgdmlld19uYW1lICkgfX0KKyAgICBTRVQgU0NIRU1B IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSkgfX07Cit7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5vd25lciBhbmQgZGF0YS5vd25lciAhPSBvX2RhdGEu b3duZXIgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudCh2aWV3X3Nj aGVtYSwgdmlld19uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLm93bmVyKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkZWYg YW5kIGRlZiAhPSBvX2RhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSAlfQor Q1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0KK3slIGlmIChkYXRhLmNoZWNrX29wdGlv biBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNrX29wdGlv bikKKyAgICBvciAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRhLnNl Y3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9 CisgICAgV0lUSCAoeyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRh LmNoZWNrX29wdGlvbiAhPSAnbm8nKSAlfWNoZWNrX29wdGlvbj17eyBkYXRh LmNoZWNrX29wdGlvbiB9fXslIGVuZGlmICV9e3snLCAnIGlmIGRhdGEuY2hl Y2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSAnbm8nIGFuZCBk YXRhLnNlY3VyaXR5X2JhcnJpZXIgfX17JSBpZiBkYXRhLnNlY3VyaXR5X2Jh cnJpZXIgJX1zZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFy cmllcnxsb3dlciB9fXslIGVuZGlmICV9KQoreyUgZW5kaWYgJX0KKyAgICBB U3t7IGRlZiB9fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5 X2JhcnJpZXIgaXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVy fGxvd2VyICE9ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikgJX0K K0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3 X25hbWUpIH19CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEu c2VjdXJpdHlfYmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQoreyUg aWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAh PSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19z Y2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKGNoZWNrX29wdGlvbj17 eyBkYXRhLmNoZWNrX29wdGlvbiB9fSk7Cit7JSBlbGlmIChkYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gIT0gb19kYXRhLmNoZWNr X29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24gPT0gJ25vJykgJX0KK0FM VEVSIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19IFJFU0VUIChjaGVja19vcHRpb24pOworeyUgZW5kaWYgJX0KK3sl IGVuZGlmICV9CisKK3slIGlmIGRhdGEuY29tbWVudCBhbmQgZGF0YS5jb21t ZW50ICE9IG9fZGF0YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sg Y29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAg SVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9 Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2 aWxlZ2VzICN9Cit7JSBpZiBkYXRhLmRhdGFjbCAlfQoreyUgaWYgJ2RlbGV0 ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1h KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5n ZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmRh dGFjbC5jaGFuZ2VkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwg J1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIGRhdGEuc2NoZW1h KSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnVEFCTEUnLCBwcml2Lmdy YW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2Lndp dGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUg Zm9yIHByaXYgaW4gZGF0YS5kYXRhY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ1RBQkxFJywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUs IHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNj aGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlm ICV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBT ZWN1cml0eSBMYWJlbCAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgaXMgbm90 IG5vbmUgYW5kIGRhdGEuc2VjbGFiZWxzfGxlbmd0aCA+IDAgJX0KK3slIHNl dCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0 ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KK3t7 IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAn YWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0 aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sg U0VDTEFCTEUuQVBQTFkoY29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBz ZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBz ZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwg J1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFi ZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BnLzkuNF9wbHVzL3NxbC92aWV3X2lkLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BnLzku NF9wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lZjI3NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcGcvOS40X3BsdXMv c3FsL3ZpZXdfaWQuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyMgPT09PT0gQmVs b3cgd2lsbCBwcm92aWRlIHZpZXcgaWQgZm9yIGxhc3QgY3JlYXRlZCB2aWV3 ID09PT09ICN9Cit7JSBpZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBw Z19jbGFzcyBjIFdIRVJFIGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0n OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2FjbC5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzku MV9wbHVzL3NxbC9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdkNzkxZjUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3Nx bC9hY2wuc3FsCkBAIC0wLDAgKzEsMzkgQEAKK3sjID09PT09PT09PT09PT09 PT09PT09PT09PT09PT0gR2V0IEFDTHMgPT09PT09PT09PT09PT09PT09PT09 PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBh cyBkZWZ0eXBlLAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMn KSBncmFudGVlLAorICAgIGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5 X2FnZyhwcml2aWxlZ2VfdHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJh eV9hZ2coaXNfZ3JhbnRhYmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAo U0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dy YW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAg ICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5T RVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVO ICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAg IFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFU RScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0Qn CisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2 aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAg ICAgICAgcmVsYWNsCisgICAgICAgICBGUk9NCisgICAgICAgICAgICBwZ19j bGFzcyBjbAorICAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3Jp cHRpb24gZGVzY3IgT04KKyAgICAgICAgICAgIChjbC5vaWQ9ZGVzY3Iub2Jq b2lkIEFORCBkZXNjci5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK KyAgICAgICAgIFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQg fX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwKKyAg ICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAgICApIGQKK0xFRlQgSk9J TiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lk KQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3Jh bnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAgZy5yb2xuYW1lLAorICAg IGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3Nx bC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzIwYjE0Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjFfcGx1cy9zcWwvY3JlYXRlLnNxbApAQCAtMCwwICsxLDIwIEBA Cit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT1DcmVhdGUgbmV3IHZp ZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30KK3slIGlmIGRpc3BsYXlf Y29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58cXRJZGVudChkYXRhLnNj aGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9QIFZJRVcge3sgY29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19OworCit7JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLnNjaGVtYSBhbmQgZGF0 YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fSBBUwore3sg ZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5v d25lciAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25ufHF0 SWRlbnQoZGF0YS5vd25lcikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5jb21tZW50ICV9CitDT01NRU5UIE9OIFZJRVcge3sgY29ubnxxdElkZW50 KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19CisgICAgSVMge3sgZGF0YS5j b21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvZGVsZXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3Fs L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZTUwYmVlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2RlbGV0 ZS5zcWwKQEAgLTAsMCArMSwxMyBAQAoreyMgPT09PT09PT09PT09PT09PT09 PT09PSBEcm9wL0Nhc2NhZGUgdmlldyBieSBuYW1lID09PT09PT09PT09PT09 PT09PT09PSAjfQoreyUgaWYgdmlkICV9CitTRUxFQ1QKKyAgICBjLnJlbG5h bWUgQVMgbmFtZSwKKyAgICBuc3AubnNwbmFtZQorRlJPTQorICAgIHBnX2Ns YXNzIGMKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNwIE9OIGMucmVsbmFt ZXNwYWNlID0gbnNwLm9pZAorV0hFUkUKKyAgICBjLnJlbGZpbGVub2RlID0g e3sgdmlkIH19OworeyUgZWxpZiAobmFtZSBhbmQgbnNwbmFtZSkgJX0KK0RS T1AgVklFVyB7e25zcG5hbWV9fS57eyBjb25ufHF0SWRlbnQobmFtZSkgfX0g eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFIHslIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvZ2V0X3NjaGVtYS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9w bHVzL3NxbC9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1 cy9zcWwvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QK KyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQor ICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMv c3FsL2dyYW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL2dyYW50LnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWEzMTBmCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjFfcGx1cy9zcWwvZ3JhbnQuc3FsCkBAIC0wLDAgKzEsNiBAQAor eyMgPT09PT0gR3JhbnQgUGVybWlzc2lvbnMgdG8gVXNlciBSb2xlIG9uIFZp ZXdzL1RhYmxlcyA9PT09PSAjfQoreyUgaW1wb3J0ICdtYWNyb3Mvc2VjdXJp dHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv c2NoZW1hcy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3sj ID09PT09IFdlIHdpbGwgZ2VuZXJhdGUgU2VjdXJpdHkgTGFiZWwgU1FMIHVz aW5nIG1hY3JvID09PT09ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfXsl IGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9e3sgU0VDTEFCTEUuQVBQTFko Y29ubiwgJ1ZJRVcnLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwpIH19eyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBpZiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5kYXRhY2wgJX17eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0 YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwg ZGF0YS5zY2hlbWEpIH19eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3Bw YXMvOS4xX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvcHJv cGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNGFkYmViYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4xX3BsdXMvc3FsL3Byb3Bl cnRpZXMuc3FsCkBAIC0wLDAgKzEsNzYgQEAKK3slIGlmICh2aWQgYW5kIGRh dGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVAorICAgIGMub2lkLAor ICAgIGMueG1pbiwKKyAgICBjLnJlbGtpbmQsCisgICAgZGVzY3JpcHRpb24s CisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVO IHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFt ZSwKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBjLnJlbHRhYmxlc3Bh Y2UgQVMgc3Bjb2lkLAorICAgIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAg ICBjLnJlbGlzcG9wdWxhdGVkIEFTIGlzcG9wdWxhdGVkLAorICAgIHBnX2dl dF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwKKyAgICBhcnJheV90 b19zdHJpbmcoYy5yZWxhY2w6OnRleHRbXSwgJywgJykgQVMgYWNsLAorICAg IHBnX2dldF92aWV3ZGVmKGMub2lkLCB0cnVlKSBBUyBkZWZpbml0aW9uLAor ICAgIHsjID09PT09IENoZWNrcyBpZiBpdCBpcyBzeXN0ZW0gdmlldyA9PT09 PSAjfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5c29pZCAlfQorICAg IENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5c29pZH19IFRIRU4g VHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmlldywKKyAgICB7JSBl bmRpZiAlfQorKFNFTEVDVAorICAgIGFycmF5X2FnZyhsYWJlbCkKK0ZST00K KyAgICBwZ19zZWNsYWJlbHMgc2wxCitXSEVSRQorICAgIHNsMS5vYmpvaWQ9 Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJlbHMsCisoU0VMRUNU CisgICAgYXJyYXlfYWdnKHByb3ZpZGVyKQorRlJPTQorICAgIHBnX3NlY2xh YmVscyBzbDIKK1dIRVJFCisgICAgc2wyLm9iam9pZD1jLm9pZCBBTkQgc2wy Lm9ianN1YmlkPTApIEFTIHByb3ZpZGVycywKKyAgICBzdWJzdHJpbmcoYXJy YXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQorICAgICAgICBGUk9N ICdjaGVja19vcHRpb249KFthLXpdKiknKSBBUyBjaGVja19vcHRpb24sCisg ICAgKHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5yZWxvcHRpb25zLCAn LCcpCisgICAgICAgIEZST00gJ3NlY3VyaXR5X2JhcnJpZXI9KFthLXp8MC05 XSopJykpOjpib29sZWFuIEFTIHNlY3VyaXR5X2JhcnJpZXIKK0ZST00gcGdf Y2xhc3MgYworTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVzcGFjZSBuc3Agb24g bnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCitMRUZUIE9VVEVSIEpPSU4gcGdf dGFibGVzcGFjZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRhYmxlc3BhY2UKK0xF RlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpv aWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJpZD0wIEFORCBkZXMuY2xhc3NvaWQ9 J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitMRUZUIE9VVEVSIEpPSU4gcGdfY2xh c3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0cmVsaWQKKyAgICBXSEVS RSAoKGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMgKAorICAgICAgICBTRUxF Q1QKKyAgICAgICAgICAgIHIucnVsZW5hbWUKKyAgICAgICAgRlJPTQorICAg ICAgICAgICAgcGdfcmV3cml0ZSByCisgICAgICAgIFdIRVJFCisgICAgICAg ICAgICAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAgICAgICAgICAgICBB TkQgKGJwY2hhcihyLmV2X3R5cGUpID0gJzEnOjpicGNoYXIpKSApKSkKKyAg ICAgICAgICAgIEFORCAoYy5yZWxraW5kID0gJ3YnOjpjaGFyKQorICAgICAg ICAgICkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpICV9CisgICAg QU5EIGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlmIHNjaWQgJX0KKyAg ICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCitPUkRFUiBC WQorICAgIGMucmVsbmFtZQoreyUgZW5kaWYgJX0KKworeyUgZWxpZiB0eXBl ID09ICdyb2xlcycgJX0KK1NFTEVDVAorICAgIHByLnJvbG5hbWUKK0ZST00K KyAgICBwZ19yb2xlcyBwcgorV0hFUkUKKyAgICBwci5yb2xjYW5sb2dpbgor T1JERVIgQlkKKyAgICBwci5yb2xuYW1lCisKK3slIGVsaWYgdHlwZSA9PSAn c2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3BuYW1lCitGUk9NCisg ICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAobnNwLm5zcG5hbWUg Tk9UIExJS0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBuc3AubnNwbmFtZSAh PSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlmICV9CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMV9wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjE4M2Zk Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvdXBkYXRlLnNxbApAQCAt MCwwICsxLDgyIEBACit7IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3sl IGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9Cit7JSBzZXQgdmll d19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBlbHNlIG9fZGF0YS5u YW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRhLnNjaGVtYSBpZiBk YXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0KK3slIHNldCBkZWYg PSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYgZGF0YS5kZWZpbml0 aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEubmFtZSAhPSBvX2Rh dGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQob19kYXRh LnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KK3slIGlm IGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1h ICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEuc2NoZW1h LCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hKSB9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh Lm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5vd25lciAlfQorQUxU RVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEub3du ZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRlZiBhbmQgZGVmICE9IG9f ZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9CitDUkVBVEUgT1IgUkVQ TEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19u YW1lKSB9fQoreyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNo ZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uKQorICAgIG9yIChk YXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmll ciAhPSBvX2RhdGEuc2VjdXJpdHlfYmFycmllcikgJX0KKyAgICBXSVRIICh7 JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9u ICE9ICdubycpICV9Y2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tfb3B0aW9u IH19eyUgZW5kaWYgJX17eycsICcgaWYgZGF0YS5jaGVja19vcHRpb24gYW5k IGRhdGEuY2hlY2tfb3B0aW9uICE9ICdubycgYW5kIGRhdGEuc2VjdXJpdHlf YmFycmllciB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfXNlY3Vy aXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19 eyUgZW5kaWYgJX0pCit7JSBlbmRpZiAlfQorICAgIEFTe3sgZGVmIH19Owor eyUgZWxzZSAlfQoreyUgaWYgKGRhdGEuc2VjdXJpdHlfYmFycmllciBpcyBk ZWZpbmVkIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93ZXIgIT0gIG9f ZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyKSAlfQorQUxURVIgVklFVyB7 eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAg ICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJy aWVyfGxvd2VyIH19KTsKK3slIGVuZGlmICV9Cit7JSBpZiAoZGF0YS5jaGVj a19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9IG9fZGF0YS5jaGVj a19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9ICdubycpICV9CitB TFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19u YW1lKSB9fQorICAgIFNFVCAoY2hlY2tfb3B0aW9uPXt7IGRhdGEuY2hlY2tf b3B0aW9uIH19KTsKK3slIGVsaWYgKGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBk YXRhLmNoZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9uIGFuZCBk YXRhLmNoZWNrX29wdGlvbiA9PSAnbm8nKSAlfQorQUxURVIgVklFVyB7eyBj b25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0gUkVTRVQg KGNoZWNrX29wdGlvbik7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KKwor eyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19kYXRh LmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRlbnQo dmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNv bW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3sjIFRoZSBTUUwg Z2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMgI30KK3sl IGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5k YXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmRlbGV0ZWQg JX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5k YXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmNoYW5nZWQg JX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnVEFCTEUnLCBwcml2 LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5u YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgZGF0 YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLlNFVChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRob3V0 X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sjIFRoZSBT UUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5IExhYmVs ICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyBpcyBub3Qgbm9uZSBhbmQgZGF0 YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHNlY2xhYmVscyA9 IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuRFJP UChjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlcikgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUg Zm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNMQUJMRS5BUFBM WShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFu Z2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFu Z2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvdmlld19pZC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMV9wbHVzL3Nx bC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5lZjI3NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjFfcGx1cy9zcWwvdmll d19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7IyA9PT09PSBCZWxvdyB3aWxs IHByb3ZpZGUgdmlldyBpZCBmb3IgbGFzdCBjcmVhdGVkIHZpZXcgPT09PT0g I30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9NIHBnX2NsYXNz IGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9fSc7Cit7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVt cGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvYWNsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMv c3FsL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNWYyZDBmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2FjbC5z cWwKQEAgLTAsMCArMSw1MiBAQAoreyMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PSBHZXQgQUNMcyA9PT09PT09PT09PT09PT09PT09PT09PT09ICN9 Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgICdkYXRhY2wnIGFzIGRlZnR5 cGUsCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIGdyYW50 ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsCisgICAgYXJyYXlfYWdnKHBy aXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhp c19ncmFudGFibGUpIGFzIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QK KyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxl LAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hF TiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVOICdJTlNFUlQnIFRI RU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisg ICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAn VFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVO ICd3JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAg ICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90 eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICBy ZWxhY2wKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfY2xhc3MgY2wK KyAgICAgICAgTEVGVCBPVVRFUiBKT0lOIHBnX3NoZGVzY3JpcHRpb24gZGVz Y3IgT04gKAorICAgICAgICAgICAgY2wub2lkPWRlc2NyLm9iam9pZCBBTkQg ZGVzY3IuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAgICAg IFdIRVJFCisgICAgICAgICAgICBjbC5vaWQgPSB7eyB2aWQgfX06Ok9JRCBB TkQgcmVsa2luZCA9ICd2JworICAgICAgICApIGFjbCwKKyAgICAgICAgKFNF TEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwKKyAg ICAgICAgICAgIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAg ICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAg ICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAg ICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAg ICAgYWNsZXhwbG9kZShyZWxhY2wpIEFTIGQKKyAgICAgICAgICAgICBGUk9N CisgICAgICAgICAgICAgICAgcGdfY2xhc3MgY2wxCisgICAgICAgICAgICAg V0hFUkUKKyAgICAgICAgICAgICAgICBjbDEub2lkID0ge3sgdmlkIH19Cisg ICAgICAgICAgICApIGEKKyAgICAgICAgKSBkCisgICAgKSBkCitMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9p ZCkKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdy YW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWQorICAgIGcucm9sbmFtZSwKKyAg ICBndC5yb2xuYW1lCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9z cWwvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2NyZWF0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0YTNhYgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3 L3BwYXMvOS4yX3BsdXMvc3FsL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyMyBA QAoreyM9PT09PT09PT09PT09PT09PT09PT09PT09PT09Q3JlYXRlIG5ldyB2 aWV3PT09PT09PT09PT09PT09PT09PT09PT09PSN9Cit7JSBpZiBkaXNwbGF5 X2NvbW1lbnRzICV9CistLSBWaWV3OiB7eyBjb25ufHF0SWRlbnQoZGF0YS5z Y2hlbWEsIGRhdGEubmFtZSkgfX0KKworLS0gRFJPUCBWSUVXIHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fTsKKworeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5zY2hlbWEgYW5kIGRh dGEuZGVmaW5pdGlvbiAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyB7eyBj b25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX17JSBpZiAo ZGF0YS5zZWN1cml0eV9iYXJyaWVyKSAlfXt7J1xyJ319CitXSVRIICgKK3sl IGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfSAgICBzZWN1cml0eV9iYXJy aWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVuZGlm ICV9e3snXHInfX0KKyl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZpbml0 aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciAlfQorCitB TFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu bmFtZSkgfX0KKyAgT1dORVIgVE8ge3sgZGF0YS5vd25lciB9fTsKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklF VyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX0K KyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5k aWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9kZWxl dGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcv cHBhcy85LjJfcGx1cy9zcWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5lNTBiZWVjCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85 LjJfcGx1cy9zcWwvZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7IyA9 PT09PT09PT09PT09PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5IG5h bWUgPT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NF TEVDVAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3BuYW1l CitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVzcGFj ZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQorICAg IGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1lIGFu ZCBuc3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNvbm58 cXRJZGVudChuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUgeyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9n ZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRl cy92aWV3L3BwYXMvOS4yX3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMv dmlldy9wcGFzLzkuMl9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbApAQCAtMCww ICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19u YW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjJfcGx1cy9zcWwvZ3JhbnQuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvZ3Jh bnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5 YTMxMGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC9ncmFudC5zcWwK QEAgLTAsMCArMSw2IEBACit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9ucyB0 byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzID09PT09ICN9Cit7JSBpbXBv cnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3ByaXZpbGVnZS5tYWNyb3MnIGFz IFBSSVZJTEVHRSAlfQoreyMgPT09PT0gV2Ugd2lsbCBnZW5lcmF0ZSBTZWN1 cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFjcm8gPT09PT0gI30KK3slIGlmIGRh dGEuc2VjbGFiZWxzICV9eyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX17 eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5w cm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX17JSBlbmRmb3IgJX17JSBl bmRpZiAlfXslIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX17JSBlbmRmb3IgJX17 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvcHJvcGVydGllcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuMl9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4yMGViM2RmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85 LjJfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw3MCBAQAor eyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgb3Igc2NpZCAlfQorU0VM RUNUCisgICAgYy5vaWQsCisgICAgYy54bWluLAorICAgIGMucmVsbmFtZSBB UyBuYW1lLAorICAgIGMucmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAg KENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25hbWUpID4gMCBUSEVOIHNwYy5z cGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVORCkgYXMgc3BjbmFtZSwKKyAg ICBwZ19nZXRfdXNlcmJ5aWQoYy5yZWxvd25lcikgQVMgb3duZXIsCisgICAg ZGVzY3JpcHRpb24gQXMgY29tbWVudCwKKyAgICBwZ19nZXRfdmlld2RlZihj Lm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICBuc3AubnNwbmFtZSBB UyBzY2hlbWEsCisgICAgYXJyYXlfdG9fc3RyaW5nKGMucmVsYWNsOjp0ZXh0 W10sICcsICcpIEFTIGFjbCwKKyAgICB7Iz09PT09PT09PT09PT1DaGVja3Mg aWYgaXQgaXMgc3lzdGVtIHZpZXc9PT09PT09PT09PT09PT09I30KKyAgICB7 JSBpZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4g e3t2aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBG YWxzZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyhT RUxFQ1QKKyAgICBhcnJheV9hZ2cobGFiZWwpCitGUk9NCisgICAgcGdfc2Vj bGFiZWxzIHNsMQorV0hFUkUKKyAgICBzbDEub2Jqb2lkPWMub2lkIEFORCBz bDEub2Jqc3ViaWQ9MCkgQVMgbGFiZWxzLAorKFNFTEVDVAorICAgIGFycmF5 X2FnZyhwcm92aWRlcikKK0ZST00KKyAgICBwZ19zZWNsYWJlbHMgc2wyCitX SEVSRQorICAgIHNsMi5vYmpvaWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0w KSBBUyBwcm92aWRlcnMsCisgICAgKHN1YnN0cmluZyhhcnJheV90b19zdHJp bmcoYy5yZWxvcHRpb25zLCAnLCcpCisgICAgICAgIEZST00gJ3NlY3VyaXR5 X2JhcnJpZXI9KFthLXp8MC05XSopJykpOjpib29sZWFuIEFTIHNlY3VyaXR5 X2JhcnJpZXIKK0ZST00gcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lOIHBn X25hbWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCitM RUZUIE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMgb24gc3BjLm9pZD1j LnJlbHRhYmxlc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlv biBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJpZD0w IEFORCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCisgICAg V0hFUkUgKChjLnJlbGhhc3J1bGVzIEFORCAoRVhJU1RTICgKKyAgICAgICAg ICAgIFNFTEVDVAorICAgICAgICAgICAgICAgIHIucnVsZW5hbWUKKyAgICAg ICAgICAgIEZST00KKyAgICAgICAgICAgICAgICBwZ19yZXdyaXRlIHIKKyAg ICAgICAgICAgIFdIRVJFCisgICAgICAgICAgICAgICAgKChyLmV2X2NsYXNz ID0gYy5vaWQpCisgICAgICAgICAgICAgICAgICAgIEFORCAoYnBjaGFyKHIu ZXZfdHlwZSkgPSAnMSc6OmJwY2hhcikKKyAgICAgICAgICAgICAgICApICkp CisgICAgICAgICAgICkgQU5EIChjLnJlbGtpbmQgPSAndic6OmNoYXIpCisg ICAgICAgICAgKQoreyUgaWYgKHZpZCBhbmQgZGF0bGFzdHN5c29pZCkgJX0K KyAgICBBTkQgYy5vaWQgPSB7e3ZpZH19OjpvaWQKK3slIGVsaWYgc2NpZCAl fQorICAgIEFORCBjLnJlbG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQgT1JE RVIgQlkgYy5yZWxuYW1lCit7JSBlbmRpZiAlfQorCit7JSBlbGlmIHR5cGUg PT0gJ3JvbGVzJyAlfQorU0VMRUNUCisgICAgcHIucm9sbmFtZQorRlJPTQor ICAgIHBnX3JvbGVzIHByCitXSEVSRQorICAgIHByLnJvbGNhbmxvZ2luCitP UkRFUiBCWQorICAgIHByLnJvbG5hbWUKKworeyUgZWxpZiB0eXBlID09ICdz Y2hlbWFzJyAlfQorU0VMRUNUCisgICAgbnNwLm5zcG5hbWUKK0ZST00KKyAg ICBwZ19uYW1lc3BhY2UgbnNwCitXSEVSRQorICAgIChuc3AubnNwbmFtZSBO T1QgTElLRSBFJ3BnXFxfJScKKyAgICAgICAgQU5EIG5zcC5uc3BuYW1lICE9 ICdpbmZvcm1hdGlvbl9zY2hlbWEnKQoreyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMv OS4yX3BsdXMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC91cGRhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzN2Q0YmEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVzL3NxbC91cGRhdGUuc3FsCkBAIC0w LDAgKzEsNzQgQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09PT09PT0g VXBkYXRlIFZpZXcgPT09PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUg aW1wb3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAl fQoreyUgaW1wb3J0ICdtYWNyb3Mvc2NoZW1hcy9wcml2aWxlZ2UubWFjcm9z JyBhcyBQUklWSUxFR0UgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCB2aWV3 X25hbWUgPSBkYXRhLm5hbWUgaWYgZGF0YS5uYW1lIGVsc2Ugb19kYXRhLm5h bWUgJX0KK3slIHNldCB2aWV3X3NjaGVtYSA9IGRhdGEuc2NoZW1hIGlmIGRh dGEuc2NoZW1hIGVsc2Ugb19kYXRhLnNjaGVtYSAlfQoreyUgc2V0IGRlZiA9 IGRhdGEuZGVmaW5pdGlvbi5yc3RyaXAoJzsnKSBpZiBkYXRhLmRlZmluaXRp b24gJX0KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChvX2RhdGEu c2NoZW1hLCBvX2RhdGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5zY2hlbWEgYW5kIGRhdGEuc2NoZW1hICE9IG9fZGF0YS5zY2hlbWEg JX0KK0FMVEVSIFZJRVcge3sgY29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEs IHZpZXdfbmFtZSApIH19CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRl bnQoZGF0YS5zY2hlbWEpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu b3duZXIgYW5kIGRhdGEub3duZXIgIT0gb19kYXRhLm93bmVyICV9CitBTFRF UiBUQUJMRSB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0KKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5vd25l cikgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGVmIGFuZCBkZWYgIT0gb19k YXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgJX0KK0NSRUFURSBPUiBSRVBM QUNFIFZJRVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25h bWUpIH19Cit7JSBpZiAoZGF0YS5zZWN1cml0eV9iYXJyaWVyIGFuZCBkYXRh LnNlY3VyaXR5X2JhcnJpZXIgIT0gb19kYXRhLnNlY3VyaXR5X2JhcnJpZXIp ICV9CisgICAgV0lUSCAoeyUgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9 c2VjdXJpdHlfYmFycmllcj17eyBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8bG93 ZXIgfX17JSBlbmRpZiAlfSkgeyUgZW5kaWYgJX0KKyAgICBBU3t7IGRlZiB9 fTsKK3slIGVsc2UgJX0KK3slIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIg aXMgZGVmaW5lZCBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyICE9 ICBvX2RhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlcikgJX0KK0FMVEVSIFZJ RVcge3sgY29ubnxxdElkZW50KHZpZXdfc2NoZW1hLCB2aWV3X25hbWUpIH19 CisgICAgU0VUIChzZWN1cml0eV9iYXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlf YmFycmllcnxsb3dlciB9fSk7Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0K KworeyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1lbnQgIT0gb19k YXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBjb25ufHF0SWRl bnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRh LmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KK3sjIFRoZSBT UUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVnZXMgI30K K3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmRlbGV0 ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0 YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmNoYW5n ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnVEFCTEUnLCBw cml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEpIH19Cit7eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0 YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwg ZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLlNFVChjb25u LCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3sjIFRo ZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNlY3VyaXR5IExh YmVsICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyBpcyBub3Qgbm9uZSBhbmQg ZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHNlY2xhYmVs cyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFCTEUu RFJPUChjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlcikgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBTRUNMQUJMRS5B UFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5j aGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5j aGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRh dGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxh dGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwvdmlld19pZC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuMl9wbHVz L3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42ZGZmMDRlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjJfcGx1cy9zcWwv dmlld19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7IyBCZWxvdyB3aWxsIHBy b3ZpZGUgdmlldyBpZCBmb3IgbmV3bHkgY3JlYXRlZCB2aWV3ICN9Cit7JSBp ZiBkYXRhICV9CitTRUxFQ1QgYy5vaWQgRlJPTSBwZ19jbGFzcyBjIFdIRVJF IGMucmVsbmFtZSA9ICd7eyBkYXRhLm5hbWUgfX0nOworeyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9hY2wu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MzAw Y2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9hY2wuc3FsCkBAIC0w LDAgKzEsMzggQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT09PT09PT0g R2V0IEFDTHMgPT09PT09PT09PT09PT09PT09PT09PT09PSAjfQoreyUgaWYg dmlkICV9CitTRUxFQ1QKKyAgICAnZGF0YWNsJyBhcyBkZWZ0eXBlLAorICAg IENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBncmFudGVlLAorICAg IGcucm9sbmFtZSBncmFudG9yLAorICAgIGFycmF5X2FnZyhwcml2aWxlZ2Vf dHlwZSkgYXMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRh YmxlKSBhcyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAg IGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAg ICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0RFTEVU RScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJwor ICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBX SEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RSSUdHRVIn IFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAg ICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIEVMU0Ug J1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAg IEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgcmVsYWNsCisg ICAgICAgIEZST00KKyAgICAgICAgICAgIHBnX2NsYXNzIGNsCisgICAgICAg IExFRlQgT1VURVIgSk9JTiBwZ19zaGRlc2NyaXB0aW9uIGRlc2NyIE9OICgK KyAgICAgICAgICAgIGNsLm9pZD1kZXNjci5vYmpvaWQgQU5EIGRlc2NyLmNs YXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNzKQorICAgICAgICBXSEVSRSBj bC5vaWQgPSB7eyB2aWQgfX06Ok9JRCBBTkQgcmVsa2luZCA9ICd2JworICAg ICAgICApIGFjbCwKKyAgICAgICAgYWNsZXhwbG9kZShyZWxhY2wpIGQKKyAg ICApIGQKK0xFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQu Z3JhbnRvciA9IGcub2lkKQorTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZCisgICAg Zy5yb2xuYW1lLAorICAgIGd0LnJvbG5hbWUKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuM19wbHVzL3NxbC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvY3JlYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzRh M2FiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv dGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvY3JlYXRlLnNxbApA QCAtMCwwICsxLDIzIEBACit7Iz09PT09PT09PT09PT09PT09PT09PT09PT09 PT1DcmVhdGUgbmV3IHZpZXc9PT09PT09PT09PT09PT09PT09PT09PT09I30K K3slIGlmIGRpc3BsYXlfY29tbWVudHMgJX0KKy0tIFZpZXc6IHt7IGNvbm58 cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorCistLSBEUk9Q IFZJRVcge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUp IH19OworCit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRh LnNjaGVtYSBhbmQgZGF0YS5kZWZpbml0aW9uICV9CitDUkVBVEUgT1IgUkVQ TEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5u YW1lKSB9fXslIGlmIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9e3snXHIn fX0KK1dJVEggKAoreyUgaWYgZGF0YS5zZWN1cml0eV9iYXJyaWVyICV9ICAg IHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxv d2VyIH19eyUgZW5kaWYgJX17eydccid9fQorKXslIGVuZGlmICV9IEFTCit7 eyBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgfX07Cit7JSBpZiBkYXRh Lm93bmVyICV9CisKK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICBPV05FUiBUTyB7eyBkYXRhLm93 bmVyIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY29tbWVudCAlfQor Q09NTUVOVCBPTiBWSUVXIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwg ZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVy YWwgfX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4z X3BsdXMvc3FsL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90 ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1MGJlZWMKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9kZWxldGUuc3FsCkBAIC0wLDAg KzEsMTMgQEAKK3sjID09PT09PT09PT09PT09PT09PT09PT0gRHJvcC9DYXNj YWRlIHZpZXcgYnkgbmFtZSA9PT09PT09PT09PT09PT09PT09PT0gI30KK3sl IGlmIHZpZCAlfQorU0VMRUNUCisgICAgYy5yZWxuYW1lIEFTIG5hbWUsCisg ICAgbnNwLm5zcG5hbWUKK0ZST00KKyAgICBwZ19jbGFzcyBjCitMRUZUIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBjLnJlbG5hbWVzcGFjZSA9IG5zcC5v aWQKK1dIRVJFCisgICAgYy5yZWxmaWxlbm9kZSA9IHt7IHZpZCB9fTsKK3sl IGVsaWYgKG5hbWUgYW5kIG5zcG5hbWUpICV9CitEUk9QIFZJRVcge3tuc3Bu YW1lfX0ue3sgY29ubnxxdElkZW50KG5hbWUpIH19IHslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERSB7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMv OS4zX3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwvZ2V0X3Nj aGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL2dldF9zY2hl bWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBz Y2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3 cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9ncmFudC5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzku M19wbHVzL3NxbC9ncmFudC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNTlhMzEwZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS4zX3BsdXMv c3FsL2dyYW50LnNxbApAQCAtMCwwICsxLDYgQEAKK3sjID09PT09IEdyYW50 IFBlcm1pc3Npb25zIHRvIFVzZXIgUm9sZSBvbiBWaWV3cy9UYWJsZXMgPT09 PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJpdmls ZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7IyA9PT09PSBXZSB3aWxs IGdlbmVyYXRlIFNlY3VyaXR5IExhYmVsIFNRTCB1c2luZyBtYWNybyA9PT09 PSAjfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX17JSBmb3IgciBpbiBkYXRh LnNlY2xhYmVscyAlfXt7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywg ZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fXsl IGVuZGZvciAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5kYXRhY2wgJX0KK3sl IGZvciBwcml2IGluIGRhdGEuZGF0YWNsICV9e3sgUFJJVklMRUdFLlNFVChj b25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgcHJpdi53 aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2NoZW1hKSB9 fXslIGVuZGZvciAlfXslIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3Nx bC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmMDMzMDQKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDc0IEBACit7JSBpZiAodmlkIGFuZCBkYXRsYXN0c3lzb2lkKSBv ciBzY2lkICV9CitTRUxFQ1QKKyAgICBjLm9pZCwKKyAgICBjLnhtaW4sCisg ICAgYy5yZWxraW5kLAorICAgIGRlc2NyaXB0aW9uLAorICAgIChDQVNFIFdI RU4gbGVuZ3RoKHNwYy5zcGNuYW1lKSA+IDAgVEhFTiBzcGMuc3BjbmFtZSBF TFNFICdwZ19kZWZhdWx0JyBFTkQpIGFzIHNwY25hbWUsCisgICAgYy5yZWxu YW1lIEFTIG5hbWUsCisgICAgbnNwLm5zcG5hbWUgQVMgc2NoZW1hLAorICAg IGMucmVsdGFibGVzcGFjZSBBUyBzcGNvaWQsCisgICAgYy5yZWxpc3BvcHVs YXRlZCBBUyBpc3BvcHVsYXRlZCwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoYy5y ZWxvd25lcikgQVMgb3duZXIsCisgICAgYXJyYXlfdG9fc3RyaW5nKGMucmVs YWNsOjp0ZXh0W10sICcsICcpIEFTIGFjbCwKKyAgICBwZ19nZXRfdmlld2Rl ZihjLm9pZCwgdHJ1ZSkgQVMgZGVmaW5pdGlvbiwKKyAgICB7IyA9PT09PSBD aGVja3MgaWYgaXQgaXMgc3lzdGVtIHZpZXcgPT09PT0gI30KKyAgICB7JSBp ZiB2aWQgYW5kIGRhdGxhc3RzeXNvaWQgJX0KKyAgICBDQVNFIFdIRU4ge3t2 aWR9fSA8PSB7e2RhdGxhc3RzeXNvaWR9fSBUSEVOIFRydWUgRUxTRSBGYWxz ZSBFTkQgQVMgc3lzdGVtX3ZpZXcsCisgICAgeyUgZW5kaWYgJX0KKyhTRUxF Q1QKKyAgICBhcnJheV9hZ2cobGFiZWwpCitGUk9NCisgICAgcGdfc2VjbGFi ZWxzIHNsMQorV0hFUkUKKyAgICBzbDEub2Jqb2lkPWMub2lkIEFORCBzbDEu b2Jqc3ViaWQ9MCkgQVMgbGFiZWxzLAorKFNFTEVDVAorICAgIGFycmF5X2Fn Zyhwcm92aWRlcikKK0ZST00KKyAgICBwZ19zZWNsYWJlbHMgc2wyCitXSEVS RQorICAgIHNsMi5vYmpvaWQ9Yy5vaWQgQU5EIHNsMi5vYmpzdWJpZD0wKSBB UyBwcm92aWRlcnMsCisgICAgKHN1YnN0cmluZyhhcnJheV90b19zdHJpbmco Yy5yZWxvcHRpb25zLCAnLCcpCisgICAgICAgIEZST00gJ3NlY3VyaXR5X2Jh cnJpZXI9KFthLXp8MC05XSopJykpOjpib29sZWFuIEFTIHNlY3VyaXR5X2Jh cnJpZXIKK0ZST00gcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lOIHBnX25h bWVzcGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCitMRUZU IE9VVEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMgb24gc3BjLm9pZD1jLnJl bHRhYmxlc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBk ZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJpZD0wIEFO RCBkZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitMRUZUIE9V VEVSIEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0 cmVsaWQKKyAgICBXSEVSRSAoKGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMg KAorICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIHIucnVsZW5hbWUKKyAg ICAgICAgRlJPTQorICAgICAgICAgICAgcGdfcmV3cml0ZSByCisgICAgICAg IFdIRVJFCisgICAgICAgICAgICAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAg ICAgICAgICAgICAgICBBTkQgKGJwY2hhcihyLmV2X3R5cGUpID0gJzEnOjpi cGNoYXIpKSApKSkKKyAgICAgICAgICAgIEFORCAoYy5yZWxraW5kID0gJ3Yn OjpjaGFyKQorICAgICAgICAgICkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3Rz eXNvaWQpICV9CisgICAgQU5EIGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBl bGlmIHNjaWQgJX0KKyAgICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCitPUkRFUiBCWQorICAgIGMucmVsbmFtZQoreyUgZW5kaWYgJX0K KworeyUgZWxpZiB0eXBlID09ICdyb2xlcycgJX0KK1NFTEVDVAorICAgIHBy LnJvbG5hbWUKK0ZST00KKyAgICBwZ19yb2xlcyBwcgorV0hFUkUKKyAgICBw ci5yb2xjYW5sb2dpbgorT1JERVIgQlkKKyAgICBwci5yb2xuYW1lCisKK3sl IGVsaWYgdHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5u c3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAg ICAobnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAgICAgIEFO RCBuc3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1w bGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1 cy9zcWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wMmQ4ZjM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjNfcGx1cy9zcWwv dXBkYXRlLnNxbApAQCAtMCwwICsxLDc1IEBACit7IyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09 PT09PT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3Jv cycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRh ICV9Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFt ZSBlbHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBk YXRhLnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEg JX0KK3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7Jykg aWYgZGF0YS5kZWZpbml0aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRh dGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25u fHF0SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAg UkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAh PSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVu dChvX2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hF TUEge3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hKSB9fTsKK3slIGVuZGlm ICV9Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0 YS5vd25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdf c2NoZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxx dElkZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRl ZiBhbmQgZGVmICE9IG9fZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9 CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3 X3NjaGVtYSwgdmlld19uYW1lKSB9fQoreyUgaWYgKGRhdGEuc2VjdXJpdHlf YmFycmllciBhbmQgZGF0YS5zZWN1cml0eV9iYXJyaWVyICE9IG9fZGF0YS5z ZWN1cml0eV9iYXJyaWVyKSAlfQorICAgIFdJVEggKHslIGlmIGRhdGEuc2Vj dXJpdHlfYmFycmllciAlfXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1 cml0eV9iYXJyaWVyfGxvd2VyIH19eyUgZW5kaWYgJX0pCit7JSBlbmRpZiAl fQorICAgIEFTe3sgZGVmIH19OworeyUgZWxzZSAlfQoreyUgaWYgKGRhdGEu c2VjdXJpdHlfYmFycmllciBpcyBkZWZpbmVkIGFuZCBkYXRhLnNlY3VyaXR5 X2JhcnJpZXJ8bG93ZXIgIT0gIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxv d2VyKSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hl bWEsIHZpZXdfbmFtZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9 e3sgZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19KTsKK3slIGVuZGlm ICV9Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmNvbW1lbnQgYW5kIGRh dGEuY29tbWVudCAhPSBvX2RhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBW SUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3NjaGVtYSwgdmlld19uYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuY29tbWVudHxxdExpdGVyYWwgfX07Cit7JSBl bmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFu Z2UgcHJpdmlsZWdlcyAjfQoreyUgaWYgZGF0YS5kYXRhY2wgJX0KK3slIGlm ICdkZWxldGVkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5kYXRhY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRh LnNjaGVtYSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5kYXRhY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0YS5uYW1lLCBkYXRh LnNjaGVtYSkgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxFJywg cHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5kYXRhY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0YWNsLmFkZGVkICV9Cit7eyBQ UklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3JhbnRlZSwgZGF0 YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwg ZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7 JSBlbmRpZiAlfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBj aGFuZ2UgU2VjdXJpdHkgTGFiZWwgI30KK3slIGlmIGRhdGEuc2VjbGFiZWxz IGlzIG5vdCBub25lIGFuZCBkYXRhLnNlY2xhYmVsc3xsZW5ndGggPiAwICV9 Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm ICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVk ICV9Cit7eyBTRUNMQUJMRS5EUk9QKGNvbm4sICdWSUVXJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQg JX0KK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdWSUVXJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZ KGNvbm4sICdWSUVXJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3Vy aXR5X2xhYmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuM19wbHVzL3NxbC92 aWV3X2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92 aWV3L3BwYXMvOS4zX3BsdXMvc3FsL3ZpZXdfaWQuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZmYwNGUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuM19wbHVzL3NxbC92aWV3X2lkLnNxbApAQCAtMCwwICsxLDQgQEAK K3sjIEJlbG93IHdpbGwgcHJvdmlkZSB2aWV3IGlkIGZvciBuZXdseSBjcmVh dGVkIHZpZXcgI30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBGUk9N IHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFtZSB9 fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvYWNsLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMv OS40X3BsdXMvc3FsL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uN2Q3OTFmNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMv c3FsL2FjbC5zcWwKQEAgLTAsMCArMSwzOSBAQAoreyMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PSBHZXQgQUNMcyA9PT09PT09PT09PT09PT09PT09 PT09PT09ICN9Cit7JSBpZiB2aWQgJX0KK1NFTEVDVAorICAgICdkYXRhY2wn IGFzIGRlZnR5cGUsCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1Ymxp YycpIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIGdyYW50b3IsCisgICAgYXJy YXlfYWdnKHByaXZpbGVnZV90eXBlKSBhcyBwcml2aWxlZ2VzLAorICAgIGFy cmF5X2FnZyhpc19ncmFudGFibGUpIGFzIGdyYW50YWJsZQorRlJPTQorICAg IChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNf Z3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAg ICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVOICdJ TlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRI RU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAg ICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVVBE QVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAn RCcKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHBy aXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAg ICAgICAgICByZWxhY2wKKyAgICAgICAgIEZST00KKyAgICAgICAgICAgIHBn X2NsYXNzIGNsCisgICAgICAgICBMRUZUIE9VVEVSIEpPSU4gcGdfc2hkZXNj cmlwdGlvbiBkZXNjciBPTgorICAgICAgICAgICAgKGNsLm9pZD1kZXNjci5v YmpvaWQgQU5EIGRlc2NyLmNsYXNzb2lkPSdwZ19jbGFzcyc6OnJlZ2NsYXNz KQorICAgICAgICAgV0hFUkUKKyAgICAgICAgICAgIGNsLm9pZCA9IHt7IHZp ZCB9fTo6T0lEIEFORCByZWxraW5kID0gJ3YnCisgICAgICAgICkgYWNsLAor ICAgICAgICBhY2xleHBsb2RlKHJlbGFjbCkgZAorICAgICkgZAorTEVGVCBK T0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5v aWQpCitMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5n cmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkKKyAgICBnLnJvbG5hbWUsCisg ICAgZ3Qucm9sbmFtZQoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3ZpZXdzL3RlbXBsYXRlcy92aWV3L3BwYXMvOS40X3BsdXMv c3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9jcmVhdGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0M2I1MTkKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmll dy9wcGFzLzkuNF9wbHVzL3NxbC9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsMjIg QEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09PUNyZWF0ZSBuZXcg dmlldz09PT09PT09PT09PT09PT09PT09PT09PT0jfQoreyUgaWYgZGlzcGxh eV9jb21tZW50cyAlfQorLS0gVmlldzoge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLm5hbWUpIH19CisKKy0tIERST1AgVklFVyB7eyBjb25u fHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkgfX07CisKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEuc2NoZW1hIGFuZCBk YXRhLmRlZmluaXRpb24gJX0KK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcge3sg Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpIH19eyUgaWYg KChkYXRhLmNoZWNrX29wdGlvbiBhbmQgZGF0YS5jaGVja19vcHRpb24ubG93 ZXIoKSAhPSAnbm8nKSBvciBkYXRhLnNlY3VyaXR5X2JhcnJpZXIpICV9e3sg J1xuJyB9fVdJVEggKAoreyUgaWYgZGF0YS5jaGVja19vcHRpb24gYW5kIGRh dGEuY2hlY2tfb3B0aW9uLmxvd2VyKCkgIT0gJ25vJyAlfSAgICBjaGVja19v cHRpb249e3sgZGF0YS5jaGVja19vcHRpb24gfX17JSBlbmRpZiAlfXt7ICcs XHInIGlmIGRhdGEuY2hlY2tfb3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlv bi5sb3dlcigpICE9ICdubycgYW5kIGRhdGEuc2VjdXJpdHlfYmFycmllciB9 fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFycmllciAlfSAgICBzZWN1cml0eV9i YXJyaWVyPXt7IGRhdGEuc2VjdXJpdHlfYmFycmllcnxsb3dlciB9fXslIGVu ZGlmICV9e3snXHInfX0KKyl7JSBlbmRpZiAlfSBBUwore3sgZGF0YS5kZWZp bml0aW9uLnJzdHJpcCgnOycpIH19OworeyUgaWYgZGF0YS5vd25lciBhbmQg ZGF0YS5tX3ZpZXcgaXMgdW5kZWZpbmVkICV9CisKK0FMVEVSIFRBQkxFIHt7 IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAg IE9XTkVSIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm93bmVyKSB9fTsKK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04g VklFVyB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSkg fX0KKyAgICBJUyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUg ZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9k ZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3Zp ZXcvcHBhcy85LjRfcGx1cy9zcWwvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTBiZWVjCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBh cy85LjRfcGx1cy9zcWwvZGVsZXRlLnNxbApAQCAtMCwwICsxLDEzIEBACit7 IyA9PT09PT09PT09PT09PT09PT09PT09IERyb3AvQ2FzY2FkZSB2aWV3IGJ5 IG5hbWUgPT09PT09PT09PT09PT09PT09PT09ICN9Cit7JSBpZiB2aWQgJX0K K1NFTEVDVAorICAgIGMucmVsbmFtZSBBUyBuYW1lLAorICAgIG5zcC5uc3Bu YW1lCitGUk9NCisgICAgcGdfY2xhc3MgYworTEVGVCBKT0lOIHBnX25hbWVz cGFjZSBuc3AgT04gYy5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkCitXSEVSRQor ICAgIGMucmVsZmlsZW5vZGUgPSB7eyB2aWQgfX07Cit7JSBlbGlmIChuYW1l IGFuZCBuc3BuYW1lKSAlfQorRFJPUCBWSUVXIHt7bnNwbmFtZX19Lnt7IGNv bm58cXRJZGVudChuYW1lKSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUg eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3Nx bC9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3RlbXBs YXRlcy92aWV3L3BwYXMvOS40X3BsdXMvc3FsL2dldF9zY2hlbWEuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9nZXRfc2NoZW1hLnNxbApAQCAt MCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBw Z19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVz L3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvZ3JhbnQuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwv Z3JhbnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjU5YTMxMGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC9ncmFudC5z cWwKQEAgLTAsMCArMSw2IEBACit7IyA9PT09PSBHcmFudCBQZXJtaXNzaW9u cyB0byBVc2VyIFJvbGUgb24gVmlld3MvVGFibGVzID09PT09ICN9Cit7JSBp bXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyMgPT09PT0gV2Ugd2lsbCBnZW5lcmF0ZSBT ZWN1cml0eSBMYWJlbCBTUUwgdXNpbmcgbWFjcm8gPT09PT0gI30KK3slIGlm IGRhdGEuc2VjbGFiZWxzICV9eyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMg JX17eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwg ci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX17JSBlbmRmb3IgJX17 JSBlbmRpZiAlfXslIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmRhdGFjbCAlfXt7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1RBQkxF JywgcHJpdi5ncmFudGVlLCBkYXRhLm5hbWUsIHByaXYud2l0aG91dF9ncmFu dCwgcHJpdi53aXRoX2dyYW50LCBkYXRhLnNjaGVtYSkgfX17JSBlbmRmb3Ig JX17JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvcHJvcGVydGll cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9w cGFzLzkuNF9wbHVzL3NxbC9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2Q5NTdmCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBh cy85LjRfcGx1cy9zcWwvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSw3NyBA QAoreyMgPT09PT09PT09PT09PT09PT09PT09PT09PT0gRmV0Y2ggVmlldyBQ cm9wZXJ0aWVzID09PT09PT09PT09PT09PT09PT09PT09PT0gI30KK3slIGlm ICh2aWQgYW5kIGRhdGxhc3RzeXNvaWQpIG9yIHNjaWQgJX0KK1NFTEVDVAor ICAgIGMub2lkLAorICAgIGMueG1pbiwKKyAgICBjLnJlbGtpbmQsCisgICAg ZGVzY3JpcHRpb24sCisgICAgKENBU0UgV0hFTiBsZW5ndGgoc3BjLnNwY25h bWUpID4gMCBUSEVOIHNwYy5zcGNuYW1lIEVMU0UgJ3BnX2RlZmF1bHQnIEVO RCkgYXMgc3BjbmFtZSwKKyAgICBjLnJlbG5hbWUgQVMgbmFtZSwKKyAgICBj LnJlbHRhYmxlc3BhY2UgQVMgc3Bjb2lkLAorICAgIG5zcC5uc3BuYW1lIEFT IHNjaGVtYSwKKyAgICBjLnJlbGlzcG9wdWxhdGVkIEFTIGlzcG9wdWxhdGVk LAorICAgIHBnX2dldF91c2VyYnlpZChjLnJlbG93bmVyKSBBUyBvd25lciwK KyAgICBhcnJheV90b19zdHJpbmcoYy5yZWxhY2w6OnRleHRbXSwgJywgJykg QVMgYWNsLAorICAgIHBnX2dldF92aWV3ZGVmKGMub2lkLCB0cnVlKSBBUyBk ZWZpbml0aW9uLAorICAgIHsjID09PT09IENoZWNrcyBpZiBpdCBpcyBzeXN0 ZW0gdmlldyA9PT09PSAjfQorICAgIHslIGlmIHZpZCBhbmQgZGF0bGFzdHN5 c29pZCAlfQorICAgIENBU0UgV0hFTiB7e3ZpZH19IDw9IHt7ZGF0bGFzdHN5 c29pZH19IFRIRU4gVHJ1ZSBFTFNFIEZhbHNlIEVORCBBUyBzeXN0ZW1fdmll dywKKyAgICB7JSBlbmRpZiAlfQorKFNFTEVDVAorICAgIGFycmF5X2FnZyhs YWJlbCkKK0ZST00KKyAgICBwZ19zZWNsYWJlbHMgc2wxCitXSEVSRQorICAg IHNsMS5vYmpvaWQ9Yy5vaWQgQU5EIHNsMS5vYmpzdWJpZD0wKSBBUyBsYWJl bHMsCisoU0VMRUNUCisgICAgYXJyYXlfYWdnKHByb3ZpZGVyKQorRlJPTQor ICAgIHBnX3NlY2xhYmVscyBzbDIKK1dIRVJFCisgICAgc2wyLm9iam9pZD1j Lm9pZCBBTkQgc2wyLm9ianN1YmlkPTApIEFTIHByb3ZpZGVycywKKyAgICBz dWJzdHJpbmcoYXJyYXlfdG9fc3RyaW5nKGMucmVsb3B0aW9ucywgJywnKQor ICAgICAgICBGUk9NICdjaGVja19vcHRpb249KFthLXpdKiknKSBBUyBjaGVj a19vcHRpb24sCisgICAgKHN1YnN0cmluZyhhcnJheV90b19zdHJpbmcoYy5y ZWxvcHRpb25zLCAnLCcpCisgICAgICAgIEZST00gJ3NlY3VyaXR5X2JhcnJp ZXI9KFthLXp8MC05XSopJykpOjpib29sZWFuIEFTIHNlY3VyaXR5X2JhcnJp ZXIKK0ZST00gcGdfY2xhc3MgYworTEVGVCBPVVRFUiBKT0lOIHBnX25hbWVz cGFjZSBuc3Agb24gbnNwLm9pZCA9IGMucmVsbmFtZXNwYWNlCitMRUZUIE9V VEVSIEpPSU4gcGdfdGFibGVzcGFjZSBzcGMgb24gc3BjLm9pZD1jLnJlbHRh Ymxlc3BhY2UKK0xFRlQgT1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMg T04gKGRlcy5vYmpvaWQ9Yy5vaWQgYW5kIGRlcy5vYmpzdWJpZD0wIEFORCBk ZXMuY2xhc3NvaWQ9J3BnX2NsYXNzJzo6cmVnY2xhc3MpCitMRUZUIE9VVEVS IEpPSU4gcGdfY2xhc3MgdHN0IE9OIHRzdC5vaWQgPSBjLnJlbHRvYXN0cmVs aWQKKyAgICBXSEVSRSAoKGMucmVsaGFzcnVsZXMgQU5EIChFWElTVFMgKAor ICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIHIucnVsZW5hbWUKKyAgICAg ICAgRlJPTQorICAgICAgICAgICAgcGdfcmV3cml0ZSByCisgICAgICAgIFdI RVJFCisgICAgICAgICAgICAoKHIuZXZfY2xhc3MgPSBjLm9pZCkKKyAgICAg ICAgICAgICAgICBBTkQgKGJwY2hhcihyLmV2X3R5cGUpID0gJzEnOjpicGNo YXIpKSApKSkKKyAgICAgICAgICAgIEFORCAoYy5yZWxraW5kID0gJ3YnOjpj aGFyKQorICAgICAgICAgICkKK3slIGlmICh2aWQgYW5kIGRhdGxhc3RzeXNv aWQpICV9CisgICAgQU5EIGMub2lkID0ge3t2aWR9fTo6b2lkCit7JSBlbGlm IHNjaWQgJX0KKyAgICBBTkQgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6 b2lkCitPUkRFUiBCWQorICAgIGMucmVsbmFtZQoreyUgZW5kaWYgJX0KKwor eyUgZWxpZiB0eXBlID09ICdyb2xlcycgJX0KK1NFTEVDVAorICAgIHByLnJv bG5hbWUKK0ZST00KKyAgICBwZ19yb2xlcyBwcgorV0hFUkUKKyAgICBwci5y b2xjYW5sb2dpbgorT1JERVIgQlkKKyAgICBwci5yb2xuYW1lCisKK3slIGVs aWYgdHlwZSA9PSAnc2NoZW1hcycgJX0KK1NFTEVDVAorICAgIG5zcC5uc3Bu YW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlIG5zcAorV0hFUkUKKyAgICAo bnNwLm5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXyUnCisgICAgICAgIEFORCBu c3AubnNwbmFtZSAhPSAnaW5mb3JtYXRpb25fc2NoZW1hJykKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0 ZXMvdmlldy9wcGFzLzkuNF9wbHVzL3NxbC91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9z cWwvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41NjE4M2ZkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvdXBk YXRlLnNxbApAQCAtMCwwICsxLDgyIEBACit7IyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09IFVwZGF0ZSBWaWV3ID09PT09PT09PT09PT09PT09PT09 PT09PT0gI30KK3slIGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3Jvcycg YXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMvcHJp dmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpZiBkYXRhICV9 Cit7JSBzZXQgdmlld19uYW1lID0gZGF0YS5uYW1lIGlmIGRhdGEubmFtZSBl bHNlIG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgdmlld19zY2hlbWEgPSBkYXRh LnNjaGVtYSBpZiBkYXRhLnNjaGVtYSBlbHNlIG9fZGF0YS5zY2hlbWEgJX0K K3slIHNldCBkZWYgPSBkYXRhLmRlZmluaXRpb24ucnN0cmlwKCc7JykgaWYg ZGF0YS5kZWZpbml0aW9uICV9Cit7JSBpZiBkYXRhLm5hbWUgYW5kIGRhdGEu bmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgVklFVyB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnNjaGVtYSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVO QU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFuZCBkYXRhLnNjaGVtYSAhPSBv X2RhdGEuc2NoZW1hICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudChv X2RhdGEuc2NoZW1hLCB2aWV3X25hbWUgKSB9fQorICAgIFNFVCBTQ0hFTUEg e3sgY29ubnxxdElkZW50KGRhdGEuc2NoZW1hKSB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLm93bmVyIGFuZCBkYXRhLm93bmVyICE9IG9fZGF0YS5v d25lciAlfQorQUxURVIgVEFCTEUge3sgY29ubnxxdElkZW50KHZpZXdfc2No ZW1hLCB2aWV3X25hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElk ZW50KGRhdGEub3duZXIpIH19OworeyUgZW5kaWYgJX0KK3slIGlmIGRlZiBh bmQgZGVmICE9IG9fZGF0YS5kZWZpbml0aW9uLnJzdHJpcCgnOycpICV9CitD UkVBVEUgT1IgUkVQTEFDRSBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3Nj aGVtYSwgdmlld19uYW1lKSB9fQoreyUgaWYgKGRhdGEuY2hlY2tfb3B0aW9u IGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tfb3B0aW9u KQorICAgIG9yIChkYXRhLnNlY3VyaXR5X2JhcnJpZXIgYW5kIGRhdGEuc2Vj dXJpdHlfYmFycmllciAhPSBvX2RhdGEuc2VjdXJpdHlfYmFycmllcikgJX0K KyAgICBXSVRIICh7JSBpZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEu Y2hlY2tfb3B0aW9uICE9ICdubycpICV9Y2hlY2tfb3B0aW9uPXt7IGRhdGEu Y2hlY2tfb3B0aW9uIH19eyUgZW5kaWYgJX17eycsICcgaWYgZGF0YS5jaGVj a19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9ICdubycgYW5kIGRh dGEuc2VjdXJpdHlfYmFycmllciB9fXslIGlmIGRhdGEuc2VjdXJpdHlfYmFy cmllciAlfXNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5zZWN1cml0eV9iYXJy aWVyfGxvd2VyIH19eyUgZW5kaWYgJX0pCit7JSBlbmRpZiAlfQorICAgIEFT e3sgZGVmIH19OworeyUgZWxzZSAlfQoreyUgaWYgKGRhdGEuc2VjdXJpdHlf YmFycmllciBpcyBkZWZpbmVkIGFuZCBkYXRhLnNlY3VyaXR5X2JhcnJpZXJ8 bG93ZXIgIT0gIG9fZGF0YS5zZWN1cml0eV9iYXJyaWVyfGxvd2VyKSAlfQor QUxURVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdf bmFtZSkgfX0KKyAgICBTRVQgKHNlY3VyaXR5X2JhcnJpZXI9e3sgZGF0YS5z ZWN1cml0eV9iYXJyaWVyfGxvd2VyIH19KTsKK3slIGVuZGlmICV9Cit7JSBp ZiAoZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9 IG9fZGF0YS5jaGVja19vcHRpb24gYW5kIGRhdGEuY2hlY2tfb3B0aW9uICE9 ICdubycpICV9CitBTFRFUiBWSUVXIHt7IGNvbm58cXRJZGVudCh2aWV3X3Nj aGVtYSwgdmlld19uYW1lKSB9fQorICAgIFNFVCAoY2hlY2tfb3B0aW9uPXt7 IGRhdGEuY2hlY2tfb3B0aW9uIH19KTsKK3slIGVsaWYgKGRhdGEuY2hlY2tf b3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiAhPSBvX2RhdGEuY2hlY2tf b3B0aW9uIGFuZCBkYXRhLmNoZWNrX29wdGlvbiA9PSAnbm8nKSAlfQorQUxU RVIgVklFVyB7eyBjb25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFt ZSkgfX0gUkVTRVQgKGNoZWNrX29wdGlvbik7Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KKworeyUgaWYgZGF0YS5jb21tZW50IGFuZCBkYXRhLmNvbW1l bnQgIT0gb19kYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQgT04gVklFVyB7eyBj b25ufHF0SWRlbnQodmlld19zY2hlbWEsIHZpZXdfbmFtZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K K3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZp bGVnZXMgI30KK3slIGlmIGRhdGEuZGF0YWNsICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0 YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuZGF0 YWNsLmNoYW5nZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn VEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwgZGF0YS5zY2hlbWEp IH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdUQUJMRScsIHByaXYuZ3Jh bnRlZSwgZGF0YS5uYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCwgZGF0YS5zY2hlbWEpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnYWRkZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmRhdGFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnVEFCTEUnLCBwcml2LmdyYW50ZWUsIGRhdGEubmFtZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIGRhdGEuc2No ZW1hKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIFNl Y3VyaXR5IExhYmVsICN9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyBpcyBub3Qg bm9uZSBhbmQgZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMCAlfQoreyUgc2V0 IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sg U0VDTEFCTEUuRFJPUChjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92 aWRlcikgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdh ZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3Ro ID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9Cit7eyBT RUNMQUJMRS5BUFBMWShjb25uLCAnVklFVycsIGRhdGEubmFtZSwgci5wcm92 aWRlciwgci5zZWN1cml0eV9sYWJlbCkgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNl Y2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAn VklFVycsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmll d3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRfcGx1cy9zcWwvdmlld19pZC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZW1wbGF0ZXMvdmlldy9wcGFz LzkuNF9wbHVzL3NxbC92aWV3X2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5lZjI3NTk0Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVtcGxhdGVzL3ZpZXcvcHBhcy85LjRf cGx1cy9zcWwvdmlld19pZC5zcWwKQEAgLTAsMCArMSw0IEBACit7IyA9PT09 PSBCZWxvdyB3aWxsIHByb3ZpZGUgdmlldyBpZCBmb3IgbGFzdCBjcmVhdGVk IHZpZXcgPT09PT0gI30KK3slIGlmIGRhdGEgJX0KK1NFTEVDVCBjLm9pZCBG Uk9NIHBnX2NsYXNzIGMgV0hFUkUgYy5yZWxuYW1lID0gJ3t7IGRhdGEubmFt ZSB9fSc7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvYmFja2Zvcm0ucGdhZG1pbi5qcwppbmRleCA0YTgxNDExLi5l MDA1NTcwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFj a2Zvcm0ucGdhZG1pbi5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv YmFja2Zvcm0ucGdhZG1pbi5qcwpAQCAtMTY2NSwxMyArMTY2NSwxOCBAQAog ICAgICAgICAgICAgICAoXy5pc1VuZGVmaW5lZChzLm1pbl92ZXJzaW9uKSA/ IHRydWUgOgogICAgICAgICAgICAgICAgKHNlcnZlcl9pbmZvLnZlcnNpb24g Pj0gcy5taW5fdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIChfLmlzVW5k ZWZpbmVkKHMubWF4X3ZlcnNpb24pID8gdHJ1ZSA6Ci0gICAgICAgICAgICAg ICAoc2VydmVyX2luZm8udmVyc2lvbiA8PSBzLm1heF92ZXJzaW9uKSkpKTsK KyAgICAgICAgICAgICAgIChzZXJ2ZXJfaW5mby52ZXJzaW9uIDw9IHMubWF4 X3ZlcnNpb24pKSkpLAorICAgICAgICAgICAgICB2aXNpYmxlID0gdHJ1ZTsK KworICAgICAgICAgIGlmIChzLm1vZGUgJiYgXy5pc09iamVjdChzLm1vZGUp KQorICAgICAgICAgICAgdmlzaWJsZSA9IChfLmluZGV4T2Yocy5tb2RlLCBt b2RlKSA+IC0xKTsKKyAgICAgICAgICBpZiAodmlzaWJsZSkKKyAgICAgICAg ICAgIHZpc2libGUgPSBldmFsQVNGdW5jKHMudmlzaWJsZSk7CisKICAgICAg ICAgICBncm91cEluZm9bcy5pZF0gPSB7CiAgICAgICAgICAgICBsYWJlbDog cy5sYWJlbCB8fCBzLmlkLAogICAgICAgICAgICAgdmVyc2lvbl9jb21wYXRp YmxlOiB2ZXJfaW5fbGltaXQsCi0gICAgICAgICAgICB2aXNpYmxlOiAhcy5t b2RlIHx8ICgKLSAgICAgICAgICAgICAgcyAmJiBzLm1vZGUgJiYgXy5pc09i amVjdChzLm1vZGUpICYmCi0gICAgICAgICAgICAgICAgXy5pbmRleE9mKHMu bW9kZSwgbW9kZSkgIT0gLTEpICYmIGV2YWxBU0Z1bmMocy52aXNpYmxlKSB8 fCB0cnVlCisgICAgICAgICAgICB2aXNpYmxlOiB2aXNpYmxlCiAgICAgICAg ICAgfTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE3Njgs OSArMTc3MywxMyBAQAogICAgICAgLy8gQ3JlYXRlIGFuIGFycmF5IGZyb20g dGhlIGRpY3Rpb25hcnkgd2l0aCBwcm9wZXIgcmVxdWlyZWQKICAgICAgIC8v IHN0cnVjdHVyZS4KICAgICAgIF8uZWFjaChncm91cHMsIGZ1bmN0aW9uKHZh bCwga2V5KSB7Ci0gICAgICAgIGZpZWxkcy5wdXNoKF8uZXh0ZW5kKHsKLSAg ICAgICAgICBsYWJlbDoga2V5LCBmaWVsZHM6IHZhbAotICAgICAgICB9LCAo Z3JvdXBJbmZvW2tleV0gfHwge3ZlcnNpb25fY29tcGF0aWJsZTogdHJ1ZSwg dmlzaWJsZTogdHJ1ZX0pKSk7CisgICAgICAgIGZpZWxkcy5wdXNoKAorICAg ICAgICAgIF8uZXh0ZW5kKAorICAgICAgICAgICAgXy5kZWZhdWx0cygKKyAg ICAgICAgICAgICAgZ3JvdXBJbmZvW2tleV0gfHwge2xhYmVsOiBrZXl9LAor ICAgICAgICAgICAgICB7dmVyc2lvbl9jb21wYXRpYmxlOiB0cnVlLCB2aXNp YmxlOiB0cnVlfQorICAgICAgICAgICAgKSwge2ZpZWxkczogdmFsfSkKKyAg ICAgICAgICApOwogICAgICAgfSk7CiAgICAgfQoK --001a114b08064f97e50532bd4161 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a114b08064f97e50532bd4161--